Support configuring effort alongside model

This commit is contained in:
Ian Gulliver
2026-10-23 08:40:00 -07:00
parent 6bbae3fffe
commit d6d9dd86d9
40 changed files with 805 additions and 541 deletions
+3 -2
View File
@@ -10,7 +10,7 @@ claude --output-format stream-json --input-format stream-json --verbose \
--permission-mode bypassPermissions --allow-dangerously-skip-permissions \
--settings '{"attribution":{"commit":"","pr":""}}' \
--mcp-config '{"mcpServers":{"byre":{"type":"sdk","name":"byre","alwaysLoad":true}}}' \
[--model M] [--session-id=ID] [--resume=SESSION_ID] [--resume-session-at=UUID] [--fork-session]
[--model M] [--effort E] [--session-id=ID] [--resume=SESSION_ID] [--resume-session-at=UUID] [--fork-session]
```
- No `--print`; stream-json input implies non-interactive.
@@ -41,7 +41,8 @@ Host → CLI:
- `initialize` must be first. It carries hook registrations: `{"hooks":{"Stop":[{"matcher":null,"hookCallbackIds":["hook_0"],"timeout":<seconds>}],...}}`. Without `timeout` the CLI abandons a hook callback after its default; the timer is a JavaScript `setTimeout`, so values past about 24 days (2^31 ms) fire at once.
- `interrupt` ends the current turn; the turn's `result` follows almost immediately and a running Bash tool is killed. The session stays usable.
- `set_model` (`{"subtype":"set_model","model":M}`) switches the running process's model for later turns.
- `set_permission_mode`, `mcp_status`, `get_context_usage`, `rewind_files`, `stop_task` exist and are not used yet.
- `apply_flag_settings` (`{"subtype":"apply_flag_settings","settings":{"effortLevel":E}}`) switches its effort; `null` returns to the default. It answers success for any value, an unknown level included.
- `set_max_thinking_tokens`, `set_permission_mode`, `mcp_status`, `get_context_usage`, `rewind_files`, `stop_task` exist and are not used yet.
CLI → host: