@enderfga/claw-orchestrator 7.5.5 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,12 +2,14 @@
2
2
 
3
3
  This document tracks which Claude Code CLI version Claw Orchestrator is currently synced to, and which features have been integrated. Recent rows also record the other engines' versions checked in the same sync.
4
4
 
5
- ## Currently tracked: **Claude Code CLI 2.1.280** (as of 2026-09-23, plugin v7.5.3)
5
+ ## Currently tracked: **Claude Code CLI 2.1.284** (as of 2026-09-29, plugin v7.6.0)
6
6
 
7
7
  ## Sync history
8
8
 
9
9
  | Plugin Version | Claude CLI Version | Date | Notable integrations |
10
10
  | ------------------- | ------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
+ | v7.6.0 | 2.1.284 | 2026-09-29 | CC 2.1.283→2.1.284, Codex 0.157.1→0.159.0, agy 1.2.11→1.2.13, grok 1.0.41→1.0.44, OpenCode 1.18.32→1.18.33. No flag surface changed. Integrated: Claude Sonnet 5.5 registered and the `sonnet` alias moved to `claude-sonnet-5-5` (the CLI resolves `--model sonnet` to it); priced at $2/$10 per Mtok with $0.20 cache reads, the same as Sonnet 5. Read, no change needed: CC 2.1.284 makes Ultracode its own `/effort` toggle that no longer forces xhigh (the `ultracode` settings key this wrapper passes already composes with a separate effort) and starts interactive sessions in auto mode (headless sessions are unaffected); Codex 0.158–0.159 TUI, sandbox and approval changes; agy 1.2.12–1.2.13 rate-limit handling; OpenCode 1.18.33 Gemini effort defaults. |
12
+ | v7.5.6 | 2.1.283 | 2026-09-26 | CC 2.1.280→2.1.283, Codex 0.156.1→0.157.1, agy 1.2.8→1.2.11; grok 1.0.41 and OpenCode 1.18.32 unchanged. No flag surface changed. Integrated: since agy 1.2.9 a headless run waits for the agent's background tasks until `--print-timeout` and prints its reply only on exit, so agy's deadline now falls just inside the send timeout, and a run that reaches it mid-turn (`SUCCESS` with a partial reply, flagged only on stderr) fails as a timeout. Effort-qualified agy slugs are priced as their base model. Codex `appendSystemPrompt` delivery verified live on `codex exec` and `codex app-server`. Read, no change needed: agy 1.2.10 exits 3 on a partial response ending in an error (already a failed turn); agy 1.2.11 effort handling (the tier rules measured unchanged); CC 2.1.281 accepts `--system-prompt` together with its `-file` form; Codex 0.157 background-server startup applies to interactive sessions only. |
11
13
  | v7.5.3 | 2.1.280 | 2026-09-23 | CC 2.1.278→2.1.280, Codex 0.155.1→0.156.1, agy 1.2.7→1.2.8, grok 1.0.34→1.0.41, OpenCode 1.18.31→1.18.32. Integrated: Claude Opus 5.5 registered and the `opus` alias moved to `claude-opus-5-5` (the CLI resolves `--model opus` to it); Opus 5.5 is priced at $4/$20 per Mtok with cache reads at 5% of input. GPT-6 Sol and Luna (Codex 0.156.1) registered from the vendors' published price tables. The weekly sweep's Codex upstream lookup now uses `gh release list` and prints the reason when a lookup fails. Codex was not exercised live this cycle. Read, no change needed: agy 1.2.8 (compaction and TUI); CC 2.1.280 fixes for symlinked writes, auto-mode retries, and subagent reports lost on compaction. |
12
14
  | v7.5.1 | 2.1.278 | 2026-09-20 | CC 2.1.274→2.1.278, Codex 0.154.0→0.155.1, agy 1.2.5→1.2.7; grok 1.0.34 and OpenCode 1.18.31 unchanged. No flag surface changed. Integrated: since 2.1.277 a process started with `--resume` reports the resumed session's saved cost totals, so the first cost report of a resumed process is now taken as a baseline and that turn keeps its registry estimate, so the inherited total is not counted toward `maxBudgetUsd`. Read, no change needed: agy 1.2.6's unlimited `-p` default timeout (the wrapper passes `--print-timeout`); agy 1.2.6 exit code 3 with an `AGY_ERROR: {...}` line (already treated as a failed turn); agy 1.2.7 removed `find_by_name`, `grep_search` and `list_dir` from the default toolset; CC 2.1.277 fixed `claude -p` hanging after an internal error; CC 2.1.275 fixed `--forward-subagent-text` for `context: fork` skills; Codex 0.155.x is TUI work. |
13
15
  | v7.5.0 | 2.1.274 | 2026-09-17 | CC 2.1.271→2.1.274, agy 1.2.2→1.2.5, grok 1.0.30→1.0.34; Codex 0.154.0 and OpenCode 1.18.31 unchanged. No flag surface changed. Integrated, from 2.1.274 stream recordings: tool calls are counted once (with `--include-partial-messages` each `tool_use` appears on `content_block_start` and again in the `assistant` event); `toolErrors` reads tool results from `user` messages; the ledger records the model named in the `init` event. A headless ultracode launch returns one `result` at launch and a second, tagged `origin: {kind: "task-notification"}`, when the workflow finishes; sends now carry an id and resolve only on the `result` whose `user_message_uuids` includes it. The sweep now fails on an empty upstream lookup and reads grok's upstream from `grok update --check --json`. Read, no change needed: agy 1.2.4–1.2.5 still report refused `RunCommand` calls as `permission_denials`; agy's new `--remote-control` flag is interactive; CC stream-json fixes for deferred MCP servers, backgrounded subagent reports and `unexpected tool_use_id`; agy no longer ends a turn with `NO_TOOL_CALL` on a schema-invalid tool call. |
@@ -32,7 +32,7 @@ Agents automatically get access to all session, council, and management tools.
32
32
  ```typescript
33
33
  import { SessionManager } from '@enderfga/claw-orchestrator';
34
34
 
35
- const manager = new SessionManager({ defaultModel: 'claude-sonnet-5' });
35
+ const manager = new SessionManager({ defaultModel: 'claude-sonnet-5-5' });
36
36
 
37
37
  const session = await manager.startSession({
38
38
  name: 'backend-fix',
@@ -87,11 +87,11 @@ The server exposes an OpenAI-compatible API at `/v1/chat/completions`. It serves
87
87
 
88
88
  Quick config for any client:
89
89
 
90
- | Setting | Value |
91
- | ------------ | ------------------------------------------------------------------------------------- |
92
- | API Base URL | `http://127.0.0.1:18796/v1` |
93
- | API Key | The server token (from `~/.openclaw/server-token`), or any string if auth is disabled |
94
- | Model | `claude-fable-5-1`, `claude-opus-5-5`, `claude-sonnet-5`, `gpt-5.5`, `agy-pro`, etc. |
90
+ | Setting | Value |
91
+ | ------------ | -------------------------------------------------------------------------------------- |
92
+ | API Base URL | `http://127.0.0.1:18796/v1` |
93
+ | API Key | The server token (from `~/.openclaw/server-token`), or any string if auth is disabled |
94
+ | Model | `claude-fable-5-1`, `claude-opus-5-5`, `claude-sonnet-5-5`, `gpt-5.5`, `agy-pro`, etc. |
95
95
 
96
96
  See [openai-compat.md](./openai-compat.md) for the full session-keying rules, `X-Session-Reset` semantics, the legacy-heuristic env var, and the `/v1/sessions` inspection endpoint.
97
97
 
@@ -28,7 +28,7 @@ SessionManager
28
28
 
29
29
  ### Claude Code (`engine: 'claude'`)
30
30
 
31
- Default engine. Long-running subprocess with streaming JSON I/O. Tested with Claude Code CLI **2.1.280**.
31
+ Default engine. Long-running subprocess with streaming JSON I/O. Tested with Claude Code CLI **2.1.284**.
32
32
 
33
33
  - Persistent multi-turn conversations
34
34
  - Real-time streaming (text, tool_use, tool_result, system events)
@@ -62,7 +62,7 @@ await manager.startSession({
62
62
 
63
63
  ### OpenAI Codex (`engine: 'codex'`)
64
64
 
65
- Wraps the `codex exec` subcommand. Each `send()` spawns a new process. Tested with `codex` CLI **0.156.1**.
65
+ Wraps the `codex exec` subcommand. Each `send()` spawns a new process. Tested with `codex` CLI **0.159.0**.
66
66
 
67
67
  - Non-interactive execution via `codex exec --sandbox workspace-write --skip-git-repo-check --json`
68
68
  - Real `usage` from the `turn.completed` JSON event (input, output, cached, reasoning tokens). **These are cumulative over the thread, not per turn**, so they replace the session totals rather than being added to them; subtracting consecutive values gives one turn's prompt
@@ -126,7 +126,7 @@ await manager.startSession({
126
126
 
127
127
  Wraps Google's **Antigravity CLI** (`agy`) — the successor to Gemini CLI (consumer
128
128
  Gemini CLI tiers stopped serving 2026-06-18). Each `send()` spawns a new process
129
- in print mode. Tested with `agy` **1.2.8**.
129
+ in print mode. Tested with `agy` **1.2.13**.
130
130
 
131
131
  - One-shot execution per message (no persistent subprocess)
132
132
  - **Structured output and real usage** — `--output-format stream-json` emits an
@@ -169,9 +169,13 @@ in print mode. Tested with `agy` **1.2.8**.
169
169
  must explicitly choose `bypassPermissions` for a write-enabled session; it is
170
170
  not a recovery mechanism. In particular, an Autoloop Planner stays on
171
171
  `--mode plan` when its preserved conversation is resumed.
172
- - The engine always passes `--print-timeout` (the send timeout plus 5s), so the
173
- wrapper's timer decides when a turn ends; without it a stuck headless agy turn
174
- can run indefinitely
172
+ - The engine always passes `--print-timeout`, set just inside the send timeout
173
+ (10% earlier, at most 10s). Since agy 1.2.9 a headless run whose agent started a
174
+ background task (a dev server, a watcher) stays open until that deadline and
175
+ delivers the reply when it exits, ending the task; the earlier deadline lets it
176
+ do so before the send times out. A run that reaches the deadline while the agent
177
+ is still working fails as a timeout even though agy reports `SUCCESS` with a
178
+ partial reply. Without the flag a stuck headless agy turn can run indefinitely
175
179
  - Do not rely on an unknown `--model` falling back: current agy versions can
176
180
  report `status: ERROR` with no usable response. The adapter rejects result
177
181
  errors, non-success statuses, and empty responses. `agy-flash` and the engine
@@ -207,7 +211,7 @@ await manager.startSession({
207
211
  ### Grok Build (`engine: 'grok'`)
208
212
 
209
213
  Wraps xAI's **Grok Build** CLI. Each `send()` spawns `grok -p <msg> --output-format json`, which
210
- prints a single JSON object and exits. Tested with `grok` **1.0.41**.
214
+ prints a single JSON object and exits. Tested with `grok` **1.0.44**.
211
215
 
212
216
  - **Cost comes from the engine, not from the price table.** The result object carries
213
217
  `total_cost_usd`, and the wrapper writes it straight into the session's spend, so the run ledger
@@ -39,7 +39,7 @@ Start a persistent coding session with full CLI flag support.
39
39
  | `betas` | string \| string[] | Custom beta headers |
40
40
  | `enableAgentTeams` | boolean | Enable experimental agent teams |
41
41
  | `enableAutoMode` | boolean | Enable auto permission mode |
42
- | `customEngine` | object | Custom engine config (required when `engine='custom'`). See [Multi-Engine: Custom Engine](./multi-engine.md#custom-engine-engine-custom). |
42
+ | `customEngine` | object | Custom engine config (required when `engine='custom'`). See [Multi-Engine: Custom Engine](./multi-engine.md#custom-engine-engine-custom). |
43
43
  | `crossSessionInbound` | string | `accept` / `hold` / `refuse` — policy for peer messages from other Claude Code sessions on this machine (Claude engine). Delivered as a settings key; there is no CLI flag. Without it the CLI holds messages whose two sides run different permission modes, which is the usual orchestrated-session-to-human-terminal case |
44
44
  | `includeHookEvents` | boolean | Stream hook lifecycle events (PreToolUse/PostToolUse) as `system` events |
45
45
  | `forwardSubagentText` | boolean | Forward subagent text and thinking into the output stream (Claude engine, CLI 2.1.211+). Without it the parent stream stays quiet while a subagent works |
@@ -353,9 +353,9 @@ Run one task across N engine/model agents **in parallel** and collect their answ
353
353
 
354
354
  | Parameter | Type | Required | Description |
355
355
  | ------------------------------------ | ------- | -------- | -------------------------------------------------------------------------------------- |
356
- | `task` | string | yes | Shared prompt sent to every agent (unless an agent overrides via its own `prompt`). |
356
+ | `task` | string | yes | Shared task sent to every agent, optionally after its `persona`. |
357
357
  | `projectDir` | string | yes | Working directory all agents run in. |
358
- | `agents` | array | yes | Specs: `{ name, engine?, model?, prompt?, baseUrl?, permissionMode?, customEngine? }`. |
358
+ | `agents` | array | yes | Specs: `{ name, engine?, model?, effort?, prompt?, persona?, baseUrl?, permissionMode?, customEngine? }`. |
359
359
  | `synthesize` | boolean | | Run a final synthesis pass over the successful results (needs ≥2). |
360
360
  | `synthesisModel` / `synthesisEngine` | string | | Model/engine for the synthesis pass (default engine `claude`). |
361
361
  | `agentTimeoutMs` | number | | Per-agent timeout (default 600000). |
@@ -363,6 +363,17 @@ Run one task across N engine/model agents **in parallel** and collect their answ
363
363
  | `maxBudgetUsd` | number | | Per-agent spend cap. |
364
364
 
365
365
  Runs in the background; returns `{ ok, id, status, ... }`. Poll with `fanout_status`.
366
+ Each agent's optional `effort` accepts `low`, `medium`, `high`, `xhigh`, `max`,
367
+ `ultra`, or `auto`. Omit it to keep the session default. The selected adapter
368
+ applies or clamps the value as documented for `session_start`; legacy adapters
369
+ that do not map effort retain their existing behavior.
370
+
371
+ Per-agent `persona` provides role instructions without replacing the shared
372
+ task. Fan-out sends `<persona>\n\n## Shared task\n\n<task>`. A non-empty
373
+ per-agent `prompt` keeps its original full-override semantics: it is sent by
374
+ itself, even when `persona` is also present. With neither field, the agent
375
+ receives `task` unchanged. These fields are persisted in the workflow spec, so
376
+ resume/recovery repeats the same message construction.
366
377
 
367
378
  ### `fanout_status`
368
379
 
@@ -540,13 +551,13 @@ Get status and plan text when completed.
540
551
 
541
552
  Start 1–20 reviewer agents that review the code in parallel, each from a different angle. Runs in background.
542
553
 
543
- | Parameter | Type | Required | Description |
544
- | -------------------- | -------- | -------- | ---------------------------------------------------------------------------------- |
545
- | `cwd` | string | yes | Project directory |
546
- | `agentCount` | number | | Agents (1-20, default 5) |
547
- | `maxDurationMinutes` | number | | Duration (5-25 min, default 10) |
548
- | `model` | string | | Model for reviewers |
549
- | `focus` | string | | Review focus area |
554
+ | Parameter | Type | Required | Description |
555
+ | -------------------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
556
+ | `cwd` | string | yes | Project directory |
557
+ | `agentCount` | number | | Agents (1-20, default 5) |
558
+ | `maxDurationMinutes` | number | | Duration (5-25 min, default 10) |
559
+ | `model` | string | | Model for reviewers |
560
+ | `focus` | string | | Review focus area |
550
561
  | `engines` | string[] | | Engines to spread reviewers across (default `["claude"]`). Every reviewer runs read-only, so `grok` and `custom` are not allowed |
551
562
 
552
563
  ### `ultrareview_status`
@@ -573,12 +584,15 @@ Start a chat-mode autoloop. Planner starts immediately; Coder + Reviewer start o
573
584
  | `workspace` | string | yes | Git workspace path |
574
585
  | `planner_engine` | EngineType | | Planner engine (default `claude`) |
575
586
  | `planner_model` | string | | Planner model (Claude default `opus`; other engines use their own default when omitted) |
587
+ | `planner_effort` | EffortLevel | | Fixed Planner reasoning effort; omission keeps the session default |
576
588
  | `planner_custom_engine` | object | | Trusted `CustomEngineConfig` when Planner engine is `custom`. **Local callers only** — see below |
577
589
  | `coder_engine` | EngineType | | Default Coder engine (default `claude`) |
578
590
  | `coder_model` | string | | Default Coder model (Claude default `sonnet`) |
591
+ | `coder_effort` | EffortLevel | | Fixed Coder reasoning effort; omission keeps the session default |
579
592
  | `coder_custom_engine` | object | | Trusted config when Coder may use `custom`. **Local callers only** |
580
593
  | `reviewer_engine` | EngineType | | Default Reviewer engine (default `claude`) |
581
594
  | `reviewer_model` | string | | Default Reviewer model (Claude default `sonnet`) |
595
+ | `reviewer_effort` | EffortLevel | | Fixed Reviewer reasoning effort; omission keeps the session default |
582
596
  | `reviewer_custom_engine` | object | | Trusted config when Reviewer may use `custom`. **Local callers only** |
583
597
  | `send_timeout_ms` | number | | Per-agent send cap in ms (default 600000; inclusive 5000–7200000) |
584
598
  | `activity_lease_ms` | number | | Inactivity lease in ms (default 1800000; inclusive 60000–7200000) |
@@ -604,6 +618,12 @@ Start a chat-mode autoloop. Planner starts immediately; Coder + Reviewer start o
604
618
 
605
619
  Custom configs are not persisted or accepted from Planner output. See [`multi-engine.md`](./multi-engine.md) for their shape.
606
620
 
621
+ Role efforts accept `low`, `medium`, `high`, `xhigh`, `max`, `ultra`, or
622
+ `auto`. They are fixed at run start, stored in the durable run spec, reused on
623
+ reset and resume, and are not part of the Planner's `spawn_subagents` control.
624
+ Planner-selected Coder/Reviewer engine or model overrides therefore retain the
625
+ effort chosen by the caller.
626
+
607
627
  The three timeout controls form a hierarchy. `send_timeout_ms` caps one
608
628
  Planner, Coder, or Reviewer delivery. A genuine send timeout is not retried:
609
629
  the run pauses in `awaiting_resume` with a stable pending dispatch identity.
@@ -803,8 +823,8 @@ survives a process restart and can be resumed.
803
823
  | `spec` | object | `WorkflowSpec`: `{ name, nodes[], cwd?, contract?, maxNodeVisits? }` |
804
824
  | `template` | `solve` \| `council` \| `fanout` | Build a built-in instead of supplying `spec` |
805
825
  | `task` | string | Required with `template` |
806
- | `agents` | array | `{ name, engine?, model?, persona? }` |
807
- | `reviewers` | array | `solve` only — agents that review the finished change |
826
+ | `agents` | array | `{ name, engine?, model?, effort?, persona? }` |
827
+ | `reviewers` | array | `solve` only — same agent binding for final reviewers |
808
828
  | `humanGate` | boolean | `solve` only — park for approval before anything is written |
809
829
  | `maxRepairs` | number | `solve` only, default 3 |
810
830
  | `cwd` | string | Working directory |
@@ -116,12 +116,12 @@ if (status?.status === 'completed') {
116
116
 
117
117
  ### Configuration
118
118
 
119
- | Parameter | Default | Range | Description |
120
- | -------------------- | ------------------------- | ----- | ------------------------------------------------------------------------------- |
121
- | `agentCount` | 5 | 1-20 | Number of reviewer agents |
122
- | `maxDurationMinutes` | 10 | 5-25 | Per-agent timeout |
123
- | `model` | session default | — | Model for all reviewers |
124
- | `focus` | bugs + security + quality | — | Review focus description |
119
+ | Parameter | Default | Range | Description |
120
+ | -------------------- | ------------------------- | ----- | ----------------------------------------------------------------------------------------------------- |
121
+ | `agentCount` | 5 | 1-20 | Number of reviewer agents |
122
+ | `maxDurationMinutes` | 10 | 5-25 | Per-agent timeout |
123
+ | `model` | session default | — | Model for all reviewers |
124
+ | `focus` | bugs + security + quality | — | Review focus description |
125
125
  | `engines` | `['claude']` | — | Engines assigned to reviewers round-robin. Not `grok`, which refuses a read-only session, or `custom` |
126
126
 
127
127
  Reviewers run once each (up to 20 turns); there is no cross-review round. Results are stored as a durable run and remain queryable after a restart.
@@ -151,6 +151,18 @@ is unrecoverable and reads back as "not found".
151
151
  Every node takes `retry: { max, backoffMs }`, `timeoutMs`, and
152
152
  `onFailure: 'fail' | 'continue'`.
153
153
 
154
+ Direct agent bindings use the same optional `engine`, `model`, and `effort`
155
+ fields. Fan-out and council entries configure them per agent; `effort` accepts
156
+ `low`, `medium`, `high`, `xhigh`, `max`, `ultra`, or `auto`. Omission preserves
157
+ the session default.
158
+
159
+ Fan-out agents may also set `persona` for role instructions. When no non-empty
160
+ per-agent `prompt` exists, the executor sends the persona followed by a
161
+ `## Shared task` section containing the node's shared prompt. A non-empty
162
+ per-agent `prompt` remains a complete override and takes precedence over both
163
+ persona and the shared task. The spec stores `prompt` and `persona` separately,
164
+ so a resumed node reconstructs the same message.
165
+
154
166
  On `fanout` and `council`, `timeoutMs` bounds the whole node and `agentTimeoutMs` one
155
167
  agent's send. They differ because agents beyond the free session slots wait for one, so
156
168
  the node can run several agents' worth of time. Without `agentTimeoutMs`, `timeoutMs`
@@ -201,8 +213,8 @@ with `visits_lt`.
201
213
  "kind": "fanout",
202
214
  "prompt": "Investigate. Change nothing.",
203
215
  "agents": [
204
- { "name": "a", "engine": "claude" },
205
- { "name": "b", "engine": "codex" },
216
+ { "name": "a", "engine": "claude", "effort": "high" },
217
+ { "name": "b", "engine": "codex", "effort": "ultra" },
206
218
  ],
207
219
  "synthesize": true,
208
220
  },