MoonshotAI / MoonshotAI/kimi-code
feat(acp): expose graded reasoning-effort over session/set_config_option
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.5k
- Forks
- 1.2k
- Avg merge
- 11h 53m
- Merged PRs (30d)
- 350
Description
What feature would you like to see?
Expose graded reasoning-effort over the ACP session/set_config_option method
The ACP adapter exposes the thinking config option as a 2-entry boolean (on/off). A client that sends a graded value (low/medium/high/xhigh/max) over session/set_config_option has it collapsed to a boolean, and any non-on string reads as off. Yet the core already supports setting a graded effort live, mid-session, with no restart — the REST server and web UI both do exactly this (see #1344 for the web segmented control). The capability exists one layer below the adapter (resolveThinkingEffort, and the setThinking RPC that already accepts any effort string); the ACP adapter is the only surface that throws it away.
Ask: let an ACP client set and discover a graded reasoning effort live, matching the REST/web surface — so an editor like Zed can offer a reasoning-effort slider instead of a restart hack.
Suggested shape (backward compatible):
- Route the raw
thinkingvalue to the graded setter —offdisables,on= model default, any level the model declares insupport_effortsis applied live; keepon/offworking for existing clients (an unadvertised value clamps tooff, preserving the current footgun-guard). - Advertise the model's ordered
support_efforts(plusoff, or just the levels foralways_thinkingmodels) as the config-optionoptions, updating on model change — clients that only understandon/offstill work.
Additional information
Builds directly on #1132 (thinking-config overhaul that made ThinkingEffort an open, model-driven string and centralized the always_thinking clamp — its own description flags the ACP adapter as a residual effort-collapse site) and #1344 (the analogous graded-effort UX shipped for the web client). This is the natural third client after TUI (#194) and web. No open or closed issue/PR currently asks for it. Happy to open a PR once maintainers greenlight — per the feature-request template I'm filing the issue first.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ACP adapter's session/set_config_option handling and trace the existing resolveThinkingEffort and setThinking paths. Compare the REST and web behavior, then follow how support_efforts and always_thinking determine the advertised options. Done means ACP can set and discover graded effort live while retaining compatible on/off behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100