Follow-up to #75 (items B and C; item A — snake_case reasoning_effort silently dropped — shipped in v0.3.6 via #76).
Problem
There is still no discoverable way to disable thinking on ollama models through the CLI. --variant none resolves to {} (no-op) for the @ai-sdk/openai-compatible provider because:
ProviderTransform.variants() (packages/cli/src/provider/transform.ts, ~467) emits only WIDELY_SUPPORTED_EFFORTS (low/medium/high) for this provider.
OPENAI_EFFORTS (which already includes none and minimal) is defined nearby but unused for this provider.
- Variants are only emitted when
capabilities.reasoning === true, which gates the one variant whose purpose is to disable reasoning.
The working escape hatch is setting reasoning_effort: "none" (or camelCase reasoningEffort) in the model's options — functional since v0.3.6, but not discoverable.
Proposed change
- Use
OPENAI_EFFORTS for @ai-sdk/openai-compatible in ProviderTransform.variants() so --variant none / --variant minimal produce reasoning_effort in the request body.
- Don't require
capabilities.reasoning === true to expose the none variant.
- Docs: document
--variant none (and the reasoning_effort: "none" option fallback) as the way to disable thinking for ollama / openai-compatible models.
Refs
🤖 Generated with Claude Code
Follow-up to #75 (items B and C; item A — snake_case
reasoning_effortsilently dropped — shipped in v0.3.6 via #76).Problem
There is still no discoverable way to disable thinking on ollama models through the CLI.
--variant noneresolves to{}(no-op) for the@ai-sdk/openai-compatibleprovider because:ProviderTransform.variants()(packages/cli/src/provider/transform.ts, ~467) emits onlyWIDELY_SUPPORTED_EFFORTS(low/medium/high) for this provider.OPENAI_EFFORTS(which already includesnoneandminimal) is defined nearby but unused for this provider.capabilities.reasoning === true, which gates the one variant whose purpose is to disable reasoning.The working escape hatch is setting
reasoning_effort: "none"(or camelCasereasoningEffort) in the model'soptions— functional since v0.3.6, but not discoverable.Proposed change
OPENAI_EFFORTSfor@ai-sdk/openai-compatibleinProviderTransform.variants()so--variant none/--variant minimalproducereasoning_effortin the request body.capabilities.reasoning === trueto expose thenonevariant.--variant none(and thereasoning_effort: "none"option fallback) as the way to disable thinking for ollama / openai-compatible models.Refs
reasoning_effortsupport in OpenAI-compatible/v1/chat/completionsAPI ollama/ollama#14820, Chat completion API throws errors for reasoning_effort set to false (gpt-oss) and 'minimal' level is not supported ollama/ollama#12004 (reasoning_effortsemantics on/v1)🤖 Generated with Claude Code