@enderfga/claw-orchestrator 6.0.1 → 6.0.3
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/dist/bin/cli.js +5 -3
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/acp-server.d.ts +18 -1
- package/dist/src/acp-server.js +52 -29
- package/dist/src/acp-server.js.map +1 -1
- package/dist/src/consensus.js +22 -12
- package/dist/src/consensus.js.map +1 -1
- package/dist/src/council.d.ts +20 -0
- package/dist/src/council.js +73 -36
- package/dist/src/council.js.map +1 -1
- package/dist/src/embedded-server.d.ts +15 -0
- package/dist/src/embedded-server.js +92 -49
- package/dist/src/embedded-server.js.map +1 -1
- package/dist/src/fanout.js +11 -0
- package/dist/src/fanout.js.map +1 -1
- package/dist/src/inbox-manager.d.ts +24 -0
- package/dist/src/inbox-manager.js +44 -9
- package/dist/src/inbox-manager.js.map +1 -1
- package/dist/src/kernel/conditions.d.ts +1 -1
- package/dist/src/kernel/conditions.js +13 -1
- package/dist/src/kernel/conditions.js.map +1 -1
- package/dist/src/kernel/engine.d.ts +14 -0
- package/dist/src/kernel/engine.js +51 -9
- package/dist/src/kernel/engine.js.map +1 -1
- package/dist/src/kernel/nodes/subflow.js +19 -1
- package/dist/src/kernel/nodes/subflow.js.map +1 -1
- package/dist/src/kernel/nodes/verifier.js +7 -2
- package/dist/src/kernel/nodes/verifier.js.map +1 -1
- package/dist/src/kernel/store.js +7 -1
- package/dist/src/kernel/store.js.map +1 -1
- package/dist/src/kernel/templates/index.js +16 -8
- package/dist/src/kernel/templates/index.js.map +1 -1
- package/dist/src/kernel/types.d.ts +13 -0
- package/dist/src/kernel/types.js.map +1 -1
- package/dist/src/openai-compat.d.ts +5 -2
- package/dist/src/openai-compat.js +79 -10
- package/dist/src/openai-compat.js.map +1 -1
- package/dist/src/proxy/anthropic-adapter.js +30 -11
- package/dist/src/proxy/anthropic-adapter.js.map +1 -1
- package/dist/src/proxy/handler.js +21 -8
- package/dist/src/proxy/handler.js.map +1 -1
- package/dist/src/session-manager.d.ts +3 -0
- package/dist/src/session-manager.js +49 -14
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.d.ts +28 -0
- package/dist/src/types.js +11 -0
- package/dist/src/types.js.map +1 -1
- package/dist/src/verify/evidence.d.ts +12 -2
- package/dist/src/verify/evidence.js +14 -3
- package/dist/src/verify/evidence.js.map +1 -1
- package/dist/src/verify/runner.js +32 -3
- package/dist/src/verify/runner.js.map +1 -1
- package/package.json +1 -1
- package/skills/references/acp.md +6 -0
- package/skills/references/cli.md +1 -1
- package/skills/references/council.md +3 -1
- package/skills/references/openai-compat.md +86 -1
- package/skills/references/tools.md +14 -6
- package/skills/references/verification.md +4 -1
- package/skills/references/workflow.md +20 -7
|
@@ -35,8 +35,18 @@ export interface EvidenceBundle {
|
|
|
35
35
|
}
|
|
36
36
|
export declare function evidenceRoot(runDir: string): string;
|
|
37
37
|
export declare function evidenceDir(runDir: string, evidenceId: string): string;
|
|
38
|
-
/**
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* `<node>-v<visit>-<attempt>` — stable, sortable, and readable in a ledger row.
|
|
40
|
+
*
|
|
41
|
+
* The visit is part of the id because the attempt alone is not unique across a
|
|
42
|
+
* loop. `attempts` is the per-visit retry counter and restarts at 1 on every
|
|
43
|
+
* fresh visit, so in the `solve` repair loop every pass through the verifier
|
|
44
|
+
* produced `verify-01` and `writeEvidence` overwrote the previous bundle.json,
|
|
45
|
+
* diff.patch and check logs — while both `evidence` events and the record's
|
|
46
|
+
* `evidenceId` collapsed onto the one string. The final verdict stayed correct;
|
|
47
|
+
* the history of what was wrong and what fixed it did not survive.
|
|
48
|
+
*/
|
|
49
|
+
export declare function makeEvidenceId(node: string, visit: number, attempt: number): string;
|
|
40
50
|
export interface WriteEvidenceArgs {
|
|
41
51
|
runDir: string;
|
|
42
52
|
runId: string;
|
|
@@ -18,9 +18,20 @@ export function evidenceRoot(runDir) {
|
|
|
18
18
|
export function evidenceDir(runDir, evidenceId) {
|
|
19
19
|
return path.join(evidenceRoot(runDir), evidenceId);
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
/**
|
|
22
|
+
* `<node>-v<visit>-<attempt>` — stable, sortable, and readable in a ledger row.
|
|
23
|
+
*
|
|
24
|
+
* The visit is part of the id because the attempt alone is not unique across a
|
|
25
|
+
* loop. `attempts` is the per-visit retry counter and restarts at 1 on every
|
|
26
|
+
* fresh visit, so in the `solve` repair loop every pass through the verifier
|
|
27
|
+
* produced `verify-01` and `writeEvidence` overwrote the previous bundle.json,
|
|
28
|
+
* diff.patch and check logs — while both `evidence` events and the record's
|
|
29
|
+
* `evidenceId` collapsed onto the one string. The final verdict stayed correct;
|
|
30
|
+
* the history of what was wrong and what fixed it did not survive.
|
|
31
|
+
*/
|
|
32
|
+
export function makeEvidenceId(node, visit, attempt) {
|
|
33
|
+
const n = (x) => String(x).padStart(2, '0');
|
|
34
|
+
return `${node.replace(/[^\w.-]/g, '_')}-v${n(visit)}-${n(attempt)}`;
|
|
24
35
|
}
|
|
25
36
|
/**
|
|
26
37
|
* Write the bundle. Best-effort like the run ledger: a bundle that fails to land
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/verify/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAoB,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,cAAc,EAAoB,MAAM,eAAe,CAAC;AA0BjE,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,UAAkB;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../../src/verify/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ import { exec as realExec, lastLines } from '../kernel/exec.js';
|
|
|
18
18
|
import { changedFilesSince, isUnder, resolveIn } from './baseline.js';
|
|
19
19
|
import { contractPassed, DEFAULT_CHECK_TIMEOUT_MS, DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_SCREENSHOT_TIMEOUT_MS, } from './contract.js';
|
|
20
20
|
const TAIL_LINES = 200;
|
|
21
|
+
/** How often an in-flight HTTP check re-checks the run's cancellation flag. */
|
|
22
|
+
const CANCEL_POLL_MS = 100;
|
|
21
23
|
// ─── Individual check kinds ─────────────────────────────────────────────────
|
|
22
24
|
async function runCommandCheck(spec, ctx) {
|
|
23
25
|
const run = ctx.exec ?? realExec;
|
|
@@ -51,8 +53,24 @@ async function runHttpCheck(spec, ctx) {
|
|
|
51
53
|
while (Date.now() - startedAt < timeoutMs) {
|
|
52
54
|
if (ctx.signal?.aborted)
|
|
53
55
|
break;
|
|
56
|
+
// The while-guard is only re-read between iterations, so it cannot bound a
|
|
57
|
+
// fetch that never returns. Without a signal on the request, a server that
|
|
58
|
+
// accepts the connection and never sends headers parked this loop until
|
|
59
|
+
// undici's default 300s headersTimeout — a declared `timeoutMs: 30000`
|
|
60
|
+
// became an effective ten minutes, and `ctx.signal` going true in the
|
|
61
|
+
// meantime had no observer either. Each request now carries the same
|
|
62
|
+
// deadline the loop does, and the run's cancellation preempts it.
|
|
63
|
+
const controller = new AbortController();
|
|
64
|
+
const remaining = Math.max(0, timeoutMs - (Date.now() - startedAt));
|
|
65
|
+
const deadline = setTimeout(() => controller.abort(new Error(`deadline after ${timeoutMs}ms`)), remaining);
|
|
66
|
+
const cancelPoll = ctx.signal
|
|
67
|
+
? setInterval(() => {
|
|
68
|
+
if (ctx.signal?.aborted)
|
|
69
|
+
controller.abort(new Error('cancelled'));
|
|
70
|
+
}, CANCEL_POLL_MS)
|
|
71
|
+
: undefined;
|
|
54
72
|
try {
|
|
55
|
-
const res = await doFetch(spec.url);
|
|
73
|
+
const res = await doFetch(spec.url, { signal: controller.signal });
|
|
56
74
|
if (res.status === expect) {
|
|
57
75
|
return { passed: true, durationMs: Date.now() - startedAt, detail: `GET ${spec.url} → ${res.status}` };
|
|
58
76
|
}
|
|
@@ -61,12 +79,23 @@ async function runHttpCheck(spec, ctx) {
|
|
|
61
79
|
catch (e) {
|
|
62
80
|
lastDetail = `GET ${spec.url} → ${e.message}`;
|
|
63
81
|
}
|
|
82
|
+
finally {
|
|
83
|
+
clearTimeout(deadline);
|
|
84
|
+
if (cancelPoll)
|
|
85
|
+
clearInterval(cancelPoll);
|
|
86
|
+
}
|
|
87
|
+
if (ctx.signal?.aborted)
|
|
88
|
+
break;
|
|
64
89
|
await new Promise((r) => setTimeout(r, intervalMs));
|
|
65
90
|
}
|
|
91
|
+
// Report the time actually spent, not the budget. These two disagreed
|
|
92
|
+
// whenever the budget was not honoured, which was exactly when a reader
|
|
93
|
+
// needed to know.
|
|
94
|
+
const durationMs = Date.now() - startedAt;
|
|
66
95
|
return {
|
|
67
96
|
passed: false,
|
|
68
|
-
durationMs
|
|
69
|
-
detail: `${lastDetail} (gave up after ${timeoutMs}ms)`,
|
|
97
|
+
durationMs,
|
|
98
|
+
detail: `${lastDetail} (gave up after ${durationMs}ms, budget ${timeoutMs}ms)`,
|
|
70
99
|
timedOut: true,
|
|
71
100
|
};
|
|
72
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/verify/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/verify/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enderfga/claw-orchestrator",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3",
|
|
4
4
|
"description": "Claw Orchestrator \u2014 run Claude Code, Codex, Gemini, Cursor Agent, OpenCode and custom coding CLIs as one unified runtime. Drop into Hermes Agent, Claude Desktop, Cursor, Cline, Continue, Zed, Windsurf, Goose or any Model Context Protocol (MCP) host, install as an OpenClaw plugin, or run standalone. Persistent sessions, multi-agent council, ultraplan, ultrareview, autoloop, tool orchestration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|
package/skills/references/acp.md
CHANGED
|
@@ -120,6 +120,12 @@ saying so, so the choice is a session config option instead — which also suits
|
|
|
120
120
|
`session/cancel` settles the in-flight prompt as `cancelled` immediately, then tears
|
|
121
121
|
the underlying session down and recreates it.
|
|
122
122
|
|
|
123
|
+
A cancel with **nothing in flight does nothing**. The teardown drops the engine's
|
|
124
|
+
native conversation id — codex, codex-app, agy, cursor and opencode all capture
|
|
125
|
+
theirs mid-turn — so running it on an idle session would fork the history
|
|
126
|
+
silently: the client keeps the same ACP session id while the next prompt opens a
|
|
127
|
+
fresh engine thread.
|
|
128
|
+
|
|
123
129
|
The session layer has **no mid-turn cancel** — `stopSession()` is the only lever and
|
|
124
130
|
it destroys the session rather than pausing the turn. So the ACP turn returns
|
|
125
131
|
promptly while the engine subprocess may take a moment longer to die, and any
|
package/skills/references/cli.md
CHANGED
|
@@ -82,7 +82,7 @@ clawo session-start [name] [options]
|
|
|
82
82
|
| `--json-schema <schema>` | JSON Schema for structured output |
|
|
83
83
|
| `--mcp-config <paths>` | MCP config files (comma-separated) |
|
|
84
84
|
| `--settings <path>` | Settings.json path |
|
|
85
|
-
| `--skip-persistence` |
|
|
85
|
+
| `--skip-persistence` | Do not save the session — neither the engine's transcript nor the resume registry |
|
|
86
86
|
| `--betas <headers>` | Beta headers (comma-separated) |
|
|
87
87
|
| `--enable-agent-teams` | Enable agent teams |
|
|
88
88
|
| `--include-hook-events` | Stream hook lifecycle events (PreToolUse/PostToolUse) |
|
|
@@ -152,7 +152,9 @@ Returns a structured report:
|
|
|
152
152
|
|
|
153
153
|
Cleans up all council scaffolding:
|
|
154
154
|
|
|
155
|
-
- Removes
|
|
155
|
+
- Removes the worktrees under `{projectDir}/.worktrees/`, and that directory —
|
|
156
|
+
selection is by containment, so a worktree of yours that merely has `council`
|
|
157
|
+
somewhere in its path is never touched
|
|
156
158
|
- Deletes all `council/*` branches
|
|
157
159
|
- Removes `plan.md` and `reviews/` directory
|
|
158
160
|
- Sets council status to `accepted`
|
|
@@ -32,7 +32,19 @@ The hash fallback exists because the previous behavior collapsed every unkeyed c
|
|
|
32
32
|
|
|
33
33
|
The model is mixed into the hash so that two callers with the same system prompt but different requested models (e.g. one wants `claude-opus-4-6`, another wants `claude-sonnet-4-6`) don't collide and silently get responses from the wrong model.
|
|
34
34
|
|
|
35
|
-
The full plugin-side session name is `openai-<key>`.
|
|
35
|
+
The full plugin-side session name is `openai-<key>`. The key becomes a directory
|
|
36
|
+
name — the bridge starts each session in `os.tmpdir()/openclaw-compat-<name>` —
|
|
37
|
+
so a key that is not already `[A-Za-z0-9._-]` is replaced by a hash of itself.
|
|
38
|
+
A caller using an ordinary id keeps the session name it has always had; one
|
|
39
|
+
sending path separators no longer chooses where the session runs.
|
|
40
|
+
|
|
41
|
+
The tool list is fingerprinted into the hash fallback by name, a description
|
|
42
|
+
prefix, and the **parameter schema** (with object keys normalised, so a
|
|
43
|
+
re-serialised identical schema still resolves to the same session). On the
|
|
44
|
+
Claude engine the schemas are baked into the session's system prompt at create
|
|
45
|
+
time and deliberately not re-injected per turn, so the key is the only thing
|
|
46
|
+
that can notice a schema change — without it, a caller that edited a tool's
|
|
47
|
+
parameters kept getting `tool_calls` shaped like the schema it had replaced.
|
|
36
48
|
|
|
37
49
|
## Operator modes
|
|
38
50
|
|
|
@@ -108,12 +120,85 @@ and opencode's session id), not merely that the session is in the manager's map:
|
|
|
108
120
|
first turn that died before announcing one leaves a session behind that resumes
|
|
109
121
|
nothing, and those turns keep receiving the full prompt.
|
|
110
122
|
|
|
123
|
+
One exception to the sentence above, and it is a defect rather than a design: on a
|
|
124
|
+
request whose last non-system message is a `tool` result, `X-Session-Reset` is not
|
|
125
|
+
seen at all. The header is parsed after the branch that handles a trailing `tool`
|
|
126
|
+
role returns, so on that shape the reset stops nothing, creates nothing, and the
|
|
127
|
+
turn is treated as a resumed one — the prompt is skipped if the thread is live.
|
|
128
|
+
Every other shape, `[..., tool, user]` included, honors it. A client that needs a
|
|
129
|
+
reset mid-tool-loop has to send it on a turn that does not end in a `tool`
|
|
130
|
+
message.
|
|
131
|
+
|
|
111
132
|
`OPENAI_COMPAT_TOOLS_PER_MESSAGE=1` opts out: it re-sends the full block on every
|
|
112
133
|
turn for `claude` too, which is what makes a changing tool set work inside one
|
|
113
134
|
session (in that mode the tool list is deliberately left out of the session hash).
|
|
114
135
|
It costs the per-turn growth described above — only use it if the tool set really
|
|
115
136
|
does change mid-conversation.
|
|
116
137
|
|
|
138
|
+
## Tool results on the way back
|
|
139
|
+
|
|
140
|
+
A `tool` role message in the caller's array is the result of a call the model asked for on an
|
|
141
|
+
earlier turn. The `tool` messages that are in scope are serialized into one `<tool_results>` block
|
|
142
|
+
and prepended to the caller's latest `user` text in the message the CLI receives.
|
|
143
|
+
|
|
144
|
+
What is in scope depends on what the engine is holding, not on where the `tool` messages sit in the
|
|
145
|
+
array:
|
|
146
|
+
|
|
147
|
+
| On this turn the engine | What is sent |
|
|
148
|
+
| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
149
|
+
| is **not** resuming a conversation — no session yet, a session that never announced a conversation id, or one being stopped and recreated | every `tool` message in the array |
|
|
150
|
+
| **is** resuming a live conversation | only the `tool` messages after the array's last `assistant` message — everything before it is already in the transcript |
|
|
151
|
+
|
|
152
|
+
Whether the engine is resuming is resolved with the same `nativeThreadIsLive()` check as the
|
|
153
|
+
middle row of [Tool definitions](#tool-definitions-and-where-they-live). Engines with no resume
|
|
154
|
+
surface (`gemini`, one-shot `custom`) are never in the second row, because
|
|
155
|
+
`engineHasNativeConversation()` gates the check.
|
|
156
|
+
|
|
157
|
+
Two engines reach the second row from map presence alone rather than from a captured id, because
|
|
158
|
+
`nativeThreadIsLive()` has no case for them and its `default` arm returns `true`: `claude`, which
|
|
159
|
+
holds its context in a live process and has no separate id to check, and `grok` — which does resume
|
|
160
|
+
by id (`--resume <sessionUUID>`), but whose id is absent from `SessionStats`, so there is nothing to
|
|
161
|
+
check even though there is something to check for. A `grok` session whose first turn died before
|
|
162
|
+
emitting its id therefore reports a live thread and gets its earlier rounds scoped away. That is
|
|
163
|
+
pre-existing and not addressed here; fixing it means adding the field.
|
|
164
|
+
|
|
165
|
+
The trailing role of the array does not enter into it — `[..., tool]`, `[..., tool, user]` and
|
|
166
|
+
`[..., tool, assistant]` are read the same way, and the caller's latest `user` text, when there is
|
|
167
|
+
one, is appended after the block either way. A turn whose latest `user` message carries no text at
|
|
168
|
+
all — a multimodal content array holding only an image — gets the block as the whole message. An
|
|
169
|
+
array carrying no `tool` message at all is untouched: no block, no wrapper, the message goes as it
|
|
170
|
+
came.
|
|
171
|
+
|
|
172
|
+
The third case in the first row — a session being stopped and recreated — is `X-Session-Reset`, and
|
|
173
|
+
it puts the turn in that row on every shape where the header is read at all. That excludes an array
|
|
174
|
+
ending in a `tool` result, where the header is not seen; see the note under [Tool definitions](#tool-definitions-and-where-they-live).
|
|
175
|
+
|
|
176
|
+
### What the scoping is for, and what it does not cover
|
|
177
|
+
|
|
178
|
+
On a resumed conversation the scoping is what keeps a tool loop linear instead of quadratic. With a
|
|
179
|
+
30k-character batch per round, the tenth hop carries ~30k characters of results instead of the
|
|
180
|
+
~300k the engine has already seen. Two properties are worth checking against your own client before
|
|
181
|
+
relying on it:
|
|
182
|
+
|
|
183
|
+
- **The boundary is the last `assistant` message, and what matters is whether one sits AFTER the
|
|
184
|
+
earliest unsent `tool` message** — not whether the array contains one at all. The OpenAI wire
|
|
185
|
+
format has the caller echo the `assistant` turn that carried the `tool_calls` ahead of the
|
|
186
|
+
matching `tool` messages, and a client that echoes it pays for one round per hop. When no
|
|
187
|
+
`assistant` message follows the earliest unsent result, `lastIndexOf('assistant')` is behind them
|
|
188
|
+
all and the slice keeps everything, so the scoping is a no-op. Two shapes land there: an array
|
|
189
|
+
with no `assistant` message at all, and one `assistant` announcing N parallel calls followed by
|
|
190
|
+
its N results — the second is a no-op that costs nothing, since those N results _are_ one round.
|
|
191
|
+
- **A round can go out twice.** Engine replies are not read back out of the array, so a round the
|
|
192
|
+
caller did not record an `assistant` turn for looks the same as a round the engine never saw, and
|
|
193
|
+
it goes out again. The duplication is bounded to one round wherever the scoping runs — i.e. on a
|
|
194
|
+
resumed conversation whose array does carry an `assistant` message. It is unbounded in the two
|
|
195
|
+
cases where nothing is scoped: the row above, and any turn in the first row of the table (no
|
|
196
|
+
resumed conversation), where the whole array goes out by design because the engine holds none of
|
|
197
|
+
it.
|
|
198
|
+
|
|
199
|
+
Neither applies to a caller that keeps its own transcript and forwards only the latest turn — it
|
|
200
|
+
sends one round at a time.
|
|
201
|
+
|
|
117
202
|
## Environment variables
|
|
118
203
|
|
|
119
204
|
| Variable | Default | Purpose |
|
|
@@ -33,7 +33,7 @@ Start a persistent coding session with full CLI flag support.
|
|
|
33
33
|
| `mcpConfig` | string \| string[] | MCP server config file(s) |
|
|
34
34
|
| `settings` | string | Settings.json path or inline JSON |
|
|
35
35
|
| `ultracode` | boolean | Claude only. Enable "ultracode" / dynamic workflows — Claude plans a JS orchestration script per substantive task and fans out to subagents. Injected as the `ultracode:true` settings key (merged into `settings`), **not** a `--effort` value (the CLI rejects `--effort ultracode`). |
|
|
36
|
-
| `noSessionPersistence` | boolean | Do not save session to disk |
|
|
36
|
+
| `noSessionPersistence` | boolean | Do not save session to disk — both the engine's own transcript and this orchestrator's resume registry, so a later start under the same name does not reattach |
|
|
37
37
|
| `betas` | string \| string[] | Custom beta headers |
|
|
38
38
|
| `enableAgentTeams` | boolean | Enable experimental agent teams |
|
|
39
39
|
| `enableAutoMode` | boolean | Enable auto permission mode |
|
|
@@ -559,11 +559,19 @@ Start a chat-mode autoloop. Planner starts immediately; Coder + Reviewer start o
|
|
|
559
559
|
|
|
560
560
|
> **Custom engines are local-only.** A `CustomEngineConfig` names an executable to
|
|
561
561
|
> spawn plus its argv and env, so it may only be supplied by a caller that already
|
|
562
|
-
> runs on the host (this MCP tool, or the `SessionManager` API).
|
|
563
|
-
>
|
|
564
|
-
>
|
|
565
|
-
>
|
|
566
|
-
>
|
|
562
|
+
> runs on the host (this MCP tool, or the `SessionManager` API). **Every** HTTP
|
|
563
|
+
> request body is checked, on every route, and one carrying a custom-engine
|
|
564
|
+
> object at any depth — `customEngine`, `*_custom_engine`, `agentCustomEngines` —
|
|
565
|
+
> is rejected with a 400 naming the offending key path. The embedded server is
|
|
566
|
+
> often reverse-tunnelled and its token is a monitoring credential, not
|
|
567
|
+
> permission to choose what binary runs. Built-in engines stay fully selectable
|
|
568
|
+
> over HTTP.
|
|
569
|
+
>
|
|
570
|
+
> The check used to be wired into two autoloop routes and to match three
|
|
571
|
+
> snake_case names; `POST /session/start` had no guard and `session_start` spells
|
|
572
|
+
> the field `customEngine`, so it went straight through. Matching by shape at the
|
|
573
|
+
> one place every body passes is what stops the next route from inheriting the
|
|
574
|
+
> same gap.
|
|
567
575
|
>
|
|
568
576
|
> **Resuming one is done by reference.** Refusing the config over HTTP left a real
|
|
569
577
|
> gap: a custom-engine run that crashed could not be brought back by any remote
|
|
@@ -92,7 +92,10 @@ used to miss every new file while `git add -A` committed them anyway.
|
|
|
92
92
|
|
|
93
93
|
## Evidence bundles
|
|
94
94
|
|
|
95
|
-
Every verifier attempt writes a directory under the run
|
|
95
|
+
Every verifier attempt writes a directory under the run, named
|
|
96
|
+
`<node>-v<visit>-<attempt>`. Both counters are in the id because the attempt
|
|
97
|
+
counter is per-visit and restarts at 1 each time a loop comes back round — so a
|
|
98
|
+
repair loop keeps every pass rather than overwriting the last one:
|
|
96
99
|
|
|
97
100
|
```
|
|
98
101
|
~/.claw-orchestrator/wf/<runId>/evidence/<evidenceId>/
|
|
@@ -210,7 +210,7 @@ add failure modes (partial joins, orphaned branches) that nothing here exercises
|
|
|
210
210
|
|
|
211
211
|
A spec can arrive from a tool call, which means it can arrive from an agent. If
|
|
212
212
|
routing accepted a JS expression, the kernel would be an arbitrary code execution
|
|
213
|
-
surface.
|
|
213
|
+
surface. These closed forms are evaluated and nothing else:
|
|
214
214
|
|
|
215
215
|
```jsonc
|
|
216
216
|
{ "type": "always" }
|
|
@@ -218,8 +218,15 @@ surface. Five closed forms are evaluated and nothing else:
|
|
|
218
218
|
{ "type": "node_succeeded", "node": "verify" }
|
|
219
219
|
{ "type": "verified", "node": "verify" }
|
|
220
220
|
{ "type": "visits_lt", "node": "implement", "n": 4 }
|
|
221
|
+
{ "type": "and", "all": [ /* … */ ] }
|
|
221
222
|
```
|
|
222
223
|
|
|
224
|
+
`and` is the only recursive one, and nesting is capped at six deep. Use it rather
|
|
225
|
+
than chaining two routers: **a router whose routes all miss falls through to the
|
|
226
|
+
next node**, so a gate that failed to match simply hands control to the router
|
|
227
|
+
after it, which then matches on its own. Chaining reads as AND and behaves as
|
|
228
|
+
"whatever the last router says".
|
|
229
|
+
|
|
223
230
|
`maxNodeVisits` (default 50) bounds every loop as a backstop. Use `visits_lt` for
|
|
224
231
|
the actual budget — the backstop failing a run is a bug report, not a feature.
|
|
225
232
|
|
|
@@ -247,12 +254,18 @@ the actual budget — the backstop failing a run is a bug report, not a feature.
|
|
|
247
254
|
{
|
|
248
255
|
"id": "repair-gate",
|
|
249
256
|
"kind": "router",
|
|
250
|
-
"routes": [
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
257
|
+
"routes": [
|
|
258
|
+
{
|
|
259
|
+
"when": {
|
|
260
|
+
"type": "and",
|
|
261
|
+
"all": [
|
|
262
|
+
{ "type": "node_failed", "node": "verify" },
|
|
263
|
+
{ "type": "visits_lt", "node": "implement", "n": 4 },
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
"to": "implement",
|
|
267
|
+
},
|
|
268
|
+
],
|
|
256
269
|
},
|
|
257
270
|
],
|
|
258
271
|
}
|