Repository navigation
Show what Auto effort resolves to in the agents frame - #390
Merged
Merged
Conversation
A launch with effort "Auto" passes no `--effort` or `model_reasoning_effort`, so the agent picks its own level. The agents frame did not say which level that is, so an extension's model picker could not place Auto anywhere. - Each model in the `agents` frame, and in the client `api.agents()`, has an optional `autoEffort`: the level the agent runs that model at when no effort is passed. It is left out when unknown. - Claude: resolved in Claude Code's documented order using static reads only. - `CLAUDE_CODE_EFFORT_LEVEL` from a settings `env` block. Launches strip it from the shell environment, so a shell export does not count. - Managed settings: server-managed `remote-settings.json`, the MDM plist, then `managed-settings.json` with its `managed-settings.d/` drop-ins. The first source with a policy key wins, unless it opts into `merge`. - User settings. A `modelSettings` entry beats the top-level `effortLevel`. The top-level key in user settings only reaches models older than Opus 5.5. - The model's documented default: medium for Opus, Sonnet and Haiku 5.5, xhigh for Opus 4.7, high otherwise. - The lowest `maxEffortLevel` cap from any source then applies. - Codex: the top-level `model_reasoning_effort` in `config.toml`, then the model's `default_reasoning_level` from `codex debug models`. That level is now kept in the catalog and the bundled snapshot. - The frame is re-sent when a source file changes (a stat poll every 15s; files are re-read only when their mtime or size moves) and on a catalog refresh. - Host API 1.49.0 documents `autoEffort`. Validation: - New `server/agents/auto-effort.test.js` and a `codex-catalog.test.js` case. Full `npm test`: 4,659 passed. `npm run docs:check` passed. - On an isolated dev board, the `agents` frame showed opus `medium`, fable `high`, and each Codex model at `config.toml`'s level. That matches the effort recorded in 478 earlier Auto-effort Opus transcripts. Made with Agent Wrangler and the PortSwigger/wrangler-squared extension
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A launch with effort "Auto" passes no
--effortormodel_reasoning_effort, so the agent picks its own level. The agents frame did not say which level that is, so an extension's model picker could not place Auto anywhere.agentsframe, and in the clientapi.agents(), has an optionalautoEffort: the level the agent runs that model at when no effort is passed. It is left out when unknown.CLAUDE_CODE_EFFORT_LEVELfrom a settingsenvblock. Launches strip it from the shell environment, so a shell export does not count.remote-settings.json, the MDM plist, thenmanaged-settings.jsonwith itsmanaged-settings.d/drop-ins. The first source with a policy key wins, unless it opts intomerge.modelSettingsentry beats the top-leveleffortLevel. The top-level key in user settings only reaches models older than Opus 5.5.maxEffortLevelcap from any source then applies.model_reasoning_effortinconfig.toml, then the model'sdefault_reasoning_levelfromcodex debug models. That level is now kept in the catalog and the bundled snapshot.autoEffort.Validation:
server/agents/auto-effort.test.jsand acodex-catalog.test.jscase. Fullnpm test: 4,659 passed.npm run docs:checkpassed.agentsframe showed opusmedium, fablehigh, and each Codex model atconfig.toml's level. That matches the effort recorded in 478 earlier Auto-effort Opus transcripts.Made with Agent Wrangler and the PortSwigger/wrangler-squared extension