@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.
- package/README.md +5 -5
- package/dist/src/autoloop/dispatcher.d.ts +6 -1
- package/dist/src/autoloop/dispatcher.js +11 -3
- package/dist/src/autoloop/dispatcher.js.map +1 -1
- package/dist/src/embedded-server.js +5 -0
- package/dist/src/embedded-server.js.map +1 -1
- package/dist/src/fanout.d.ts +5 -5
- package/dist/src/fanout.js +9 -1
- package/dist/src/fanout.js.map +1 -1
- package/dist/src/index.js +21 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/nodes/fanout.js +3 -1
- package/dist/src/kernel/nodes/fanout.js.map +1 -1
- package/dist/src/kernel/types.d.ts +5 -11
- package/dist/src/kernel/types.js.map +1 -1
- package/dist/src/models.js +24 -15
- package/dist/src/models.js.map +1 -1
- package/dist/src/persistent-agy-session.d.ts +7 -0
- package/dist/src/persistent-agy-session.js +45 -8
- package/dist/src/persistent-agy-session.js.map +1 -1
- package/dist/src/session-manager.d.ts +3 -0
- package/dist/src/session-manager.js +21 -1
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.d.ts +10 -6
- package/dist/src/types.js +6 -0
- package/dist/src/types.js.map +1 -1
- package/package.json +1 -1
- package/skills/references/autoloop.md +12 -2
- package/skills/references/claude-cli-tracking.md +3 -1
- package/skills/references/getting-started.md +6 -6
- package/skills/references/multi-engine.md +11 -7
- package/skills/references/tools.md +32 -12
- package/skills/references/ultra.md +6 -6
- package/skills/references/workflow.md +14 -2
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
173
|
-
|
|
174
|
-
|
|
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.
|
|
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
|
|
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 —
|
|
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
|
},
|