Provider-specific reasoning effort support for /effort.
Provider name for _ChatOpenAICodex models authenticated via ChatGPT OAuth.
Distinct from "openai" (which uses an OPENAI_API_KEY) because the auth
source, model class, and request endpoint all differ. See
deepagents_code.integrations.openai_codex for the OAuth flow.
OpenAI GPT-5 effort labels for reasoning.effort.
Anthropic output_config.effort labels for Opus 4.7+ and Sonnet 5.
See https://platform.claude.com/docs/en/build-with-claude/effort.
Anthropic effort labels for Opus 4.6 and Sonnet 4.6.
These models predate xhigh; Sonnet 4.5 rejects effort entirely.
See https://platform.claude.com/docs/en/build-with-claude/effort.
Anthropic effort labels for Opus 4.5.
Opus 4.5 predates both max (Opus 4.6+) and xhigh (Opus 4.7+).
See https://platform.claude.com/docs/en/build-with-claude/effort.
Gemini thinking_level labels.
Applied to every gemini-3* model (the gate in _classify_reasoning_provider),
including Gemini 3 Pro/Flash, 3.1 Pro, and 3.5 Flash — all accept
low/medium/high. minimal is Flash-Lite / original-Pro territory, neither of
which is offered here. See https://ai.google.dev/gemini-api/docs/thinking.
Fireworks reasoning_effort labels for DeepSeek V4 Pro.
Fireworks reasoning_effort labels for Kimi K2 models.
Fireworks reasoning_effort labels for GLM 5 models.
Return reasoning efforts supported by model_spec.
Returns plain str labels rather than EffortLabel: this is the public
boundary where the label vocabulary is intentionally dropped, since the
values flow straight to the UI.
Return the documented default reasoning effort when known.
Returns a plain str rather than EffortLabel: like
supported_efforts_for_model, this is the public boundary where the label
vocabulary is intentionally dropped, since every caller treats the value as
display text.
Translate an effort label into provider-specific model params.
Read the configured effort from model params when present.
Merge effort params into existing per-session model params.
Remove known effort params while preserving unrelated model params.
Closed vocabulary of effort labels across all supported providers.
Typing the per-provider tuples with this alias catches typos in the vocabulary
at check time. It does not express the deeper invariant that a label must be
supported by a specific model — that is enforced at runtime by
supported_efforts_for_model.
This vocabulary is also hand-duplicated as display text in the /effort
argument_hint (command_registry.py) and in COMMANDS.md; those are not
type-checked against this alias, so update them in lockstep when it changes.
Provider identifiers that support model-specific reasoning effort controls.
Values must stay byte-identical to the provider strings from ModelSpec.parse
used throughout model_config.py (e.g. CODEX_PROVIDER).