@enderfga/claw-orchestrator 7.7.0 → 7.9.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 +76 -28
- package/dist/bin/cli.js +263 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/acp-server.d.ts +17 -5
- package/dist/src/acp-server.js +40 -5
- package/dist/src/acp-server.js.map +1 -1
- package/dist/src/embedded-server.js +12 -2
- package/dist/src/embedded-server.js.map +1 -1
- package/dist/src/engine-spawn.js +8 -5
- package/dist/src/engine-spawn.js.map +1 -1
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/kernel/exec.js +4 -1
- package/dist/src/kernel/exec.js.map +1 -1
- package/dist/src/kernel/nodes/agent.d.ts +9 -0
- package/dist/src/kernel/nodes/agent.js +35 -1
- package/dist/src/kernel/nodes/agent.js.map +1 -1
- package/dist/src/kernel/nodes/autoloop.d.ts +2 -0
- package/dist/src/kernel/nodes/autoloop.js +5 -0
- package/dist/src/kernel/nodes/autoloop.js.map +1 -1
- package/dist/src/persistent-codex-app-session.d.ts +2 -0
- package/dist/src/persistent-codex-app-session.js +11 -0
- package/dist/src/persistent-codex-app-session.js.map +1 -1
- package/dist/src/persistent-codex-session.d.ts +9 -0
- package/dist/src/persistent-codex-session.js +24 -0
- package/dist/src/persistent-codex-session.js.map +1 -1
- package/dist/src/persistent-grok-session.js +4 -0
- package/dist/src/persistent-grok-session.js.map +1 -1
- package/dist/src/persistent-opencode-session.d.ts +8 -0
- package/dist/src/persistent-opencode-session.js +16 -0
- package/dist/src/persistent-opencode-session.js.map +1 -1
- package/dist/src/session-manager.d.ts +6 -0
- package/dist/src/session-manager.js +61 -0
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.d.ts +13 -0
- package/dist/src/verify/evidence.d.ts +6 -0
- package/dist/src/verify/evidence.js +19 -0
- package/dist/src/verify/evidence.js.map +1 -1
- package/package.json +1 -1
- package/skills/SKILL.md +1 -1
- package/skills/references/acp.md +7 -0
- package/skills/references/autoloop.md +7 -1
- package/skills/references/claude-cli-tracking.md +2 -1
- package/skills/references/cli.md +45 -2
- package/skills/references/multi-engine.md +7 -2
- package/skills/references/tools.md +17 -14
- package/skills/references/workflow.md +5 -0
package/skills/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: claw-orchestrator
|
|
3
|
-
description: Manage persistent coding sessions across Claude Code, Codex, Antigravity (agy), Grok Build, and OpenCode engines. Use when orchestrating multi-engine coding agents, starting/sending/stopping sessions, running multi-agent council collaborations, cross-session messaging, ultraplan deep planning, ultrareview parallel code review, autoloop autonomous workspace iteration, ultraapp building deployable web apps from a structured Q&A interview, switching models/tools at runtime, exposing the orchestrator's 78 tools as an MCP server to Hermes Agent / Claude Desktop / Cursor / Cline / Continue / Zed / Windsurf / Goose, or running as an Agent Client Protocol (ACP) agent that Zed / JetBrains / Neovim / Emacs / VS Code / dsh can drive directly. Triggers on "start a session", "send to session", "run council", "ultraplan", "ultrareview", "autoloop", "ultraapp", "Forge tab", "build a web app", "one-click app", "AppSpec", "autonomous iteration", "iterate until goal", "auto research", "switch model", "hand off a session", "session handoff", "switch engine", "continue on codex", "continue on claude", "move this session to another engine", "multi-agent coding", "coding session", "session inbox", "grok session", "grok build", "opencode", "mcp server", "clawo-mcp", "hermes mcp", "model context protocol", "ultracode", "dynamic workflow", "fanout", "fan-out", "best-of-N", "steer turn", "interrupt turn", "fork thread", "rollback turns", "acp", "agent client protocol", "clawo acp", "zed agent", "jetbrains agent", "external agent", "dsh subagent", "deepseek harness", "clawo runs", "run ledger", "session cost", "coding-agent token usage", "spend cap", "budget limit", "maxBudgetUsd", "durable workflow", "resume a run", "verify a coding run", "acceptance contract", "evidence bundle", "did the agent's tests actually pass", "protected tests", "agent edited the tests", "human gate", "repair loop", "clawo workflow", "clawo verify".
|
|
3
|
+
description: Manage persistent coding sessions across Claude Code, Codex, Antigravity (agy), Grok Build, and OpenCode engines. Use when orchestrating multi-engine coding agents, starting/sending/stopping sessions, running multi-agent council collaborations, cross-session messaging, ultraplan deep planning, ultrareview parallel code review, autoloop autonomous workspace iteration, ultraapp building deployable web apps from a structured Q&A interview, switching models/tools at runtime, exposing the orchestrator's 78 tools as an MCP server to Hermes Agent / Claude Desktop / Cursor / Cline / Continue / Zed / Windsurf / Goose, or running as an Agent Client Protocol (ACP) agent that Zed / JetBrains / Neovim / Emacs / VS Code / dsh can drive directly. Triggers on "start a session", "send to session", "run council", "ultraplan", "ultrareview", "autoloop", "ultraapp", "Forge tab", "build a web app", "one-click app", "AppSpec", "autonomous iteration", "iterate until goal", "auto research", "switch model", "hand off a session", "session handoff", "switch engine", "continue on codex", "continue on claude", "move this session to another engine", "multi-agent coding", "coding session", "session inbox", "grok session", "grok build", "opencode", "mcp server", "clawo-mcp", "hermes mcp", "model context protocol", "ultracode", "dynamic workflow", "fanout", "fan-out", "best-of-N", "steer turn", "interrupt turn", "fork thread", "rollback turns", "acp", "agent client protocol", "clawo acp", "zed agent", "jetbrains agent", "external agent", "dsh subagent", "deepseek harness", "clawo runs", "run ledger", "session cost", "coding-agent token usage", "spend cap", "budget limit", "maxBudgetUsd", "durable workflow", "resume a run", "verify a coding run", "acceptance contract", "evidence bundle", "did the agent's tests actually pass", "protected tests", "agent edited the tests", "human gate", "repair loop", "clawo workflow", "clawo verify", "clawo solve", "clawo fanout", "fix and verify", "solve from the terminal".
|
|
4
4
|
metadata:
|
|
5
5
|
{
|
|
6
6
|
'openclaw':
|
package/skills/references/acp.md
CHANGED
|
@@ -114,6 +114,13 @@ Other engines are absent for different reasons:
|
|
|
114
114
|
straight through, so there is nothing in the registry to enumerate. An opencode
|
|
115
115
|
session is reachable by naming the model, just not by picking it from this list.
|
|
116
116
|
|
|
117
|
+
## Generated images
|
|
118
|
+
|
|
119
|
+
When the engine generates an image in a turn (Codex does, when asked for one), the agent names the
|
|
120
|
+
file's path in a text chunk and then sends the image itself as an `image` content block, so a client
|
|
121
|
+
that renders images shows it and one that does not still gets the path. Files over 8 MB are named
|
|
122
|
+
only.
|
|
123
|
+
|
|
117
124
|
## Resuming sessions
|
|
118
125
|
|
|
119
126
|
Sessions outlive the agent process. `initialize` advertises
|
|
@@ -124,6 +124,8 @@ A genuine per-agent send timeout is recoverable but is never retried
|
|
|
124
124
|
automatically: the underlying agent may still complete and cause side effects.
|
|
125
125
|
The runner pauses with an `awaiting_resume` reason and records the immutable
|
|
126
126
|
logical dispatch as `pending_dispatch`, including its stable `dispatch_id`.
|
|
127
|
+
Live runner state transitions are checkpointed, so a non-owning
|
|
128
|
+
`autoloop_status` shows both a recoverable send-timeout pause and an operator pause.
|
|
127
129
|
Resume may supply only a finite, in-range `send_timeout_ms` that is strictly
|
|
128
130
|
larger than the latest effective value, together with the matching
|
|
129
131
|
`pending_dispatch_id` when a dispatch is pending. Legacy runs start comparison
|
|
@@ -456,7 +458,11 @@ Resume is explicit. `POST /autoloop/<id>/resume` (or
|
|
|
456
458
|
`SessionManager.autoloopResume()`) restarts a run from its stored spec.
|
|
457
459
|
Custom-engine configs are the one thing the spec does not carry (they can hold
|
|
458
460
|
secrets), so a resume must be given them again. Cancelling a run stops all three
|
|
459
|
-
agents, the same as `autoloop_stop`.
|
|
461
|
+
agents, the same as `autoloop_stop`. If the highest committed Coder iteration
|
|
462
|
+
has ledger artifacts and no `verdict.json`, and `HEAD` still names that iter,
|
|
463
|
+
resume delivers one `review_request` for it and the dispatcher persists the
|
|
464
|
+
Reviewer verdict; it does not send a new Coder directive. An in-flight send is
|
|
465
|
+
still not retried, and there is no message outbox.
|
|
460
466
|
|
|
461
467
|
## Known limitations
|
|
462
468
|
|
|
@@ -2,12 +2,13 @@
|
|
|
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.292** (as of 2026-10-07, plugin v7.8.0)
|
|
6
6
|
|
|
7
7
|
## Sync history
|
|
8
8
|
|
|
9
9
|
| Plugin Version | Claude CLI Version | Date | Notable integrations |
|
|
10
10
|
| ------------------- | ------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| v7.8.0 | 2.1.292 | 2026-10-07 | CC 2.1.291→2.1.292, agy 1.3.0→1.3.1, OpenCode 1.18.34→1.18.35; Codex 0.160.1 and grok 1.0.46 unchanged. No flag surface changed. Integrated: Codex image generation surfaced as `images` on the send result (`codex exec` from `$CODEX_HOME/generated_images/<thread>/`, `codex-app` from the `imageGeneration` item). Read, no change needed: CC 2.1.292 negotiates MCP protocol 2026-07-28 with local stdio servers by default — `clawo-mcp` answers with 2025-11-25 and connects with no delay (measured against `MCP_PROTOCOL_NEGOTIATION=legacy`). |
|
|
11
12
|
| v7.7.0 | 2.1.291 | 2026-10-07 | CC 2.1.289→2.1.291, Codex 0.160.0→0.160.1, agy 1.2.17→1.3.0; grok 1.0.46 and OpenCode 1.18.34 unchanged. No flag surface changed. Integrated: `--chrome` behind a `chrome` session option (2.1.290 stopped project settings from turning Claude in Chrome on, so the flag is the way in); `system/model_refusal_fallback` recorded per turn in the ledger. Read, no change needed: Codex's `computer_use` feature is the ChatGPT desktop app's Computer Use plugin, not a tool in `codex exec`, which reports none; agy 1.3.0 is interactive-view changes. |
|
|
12
13
|
| v7.6.2 | 2.1.289 | 2026-10-05 | CC 2.1.286→2.1.289, Codex 0.159.3→0.160.0, agy 1.2.14→1.2.17, grok 1.0.44→1.0.46; OpenCode 1.18.34 unchanged. No flag surface changed, no wrapper change. Read, no change needed: CC 2.1.288 limits background-command time only in unattended (`-p`) sessions, which these already are; agy 1.2.16 fixes `-p` runs exiting before the agent answers a finished background command, consistent with the 7.5.6 deadline handling. |
|
|
13
14
|
| v7.6.1 | 2.1.286 | 2026-10-01 | CC 2.1.284→2.1.286, Codex 0.159.0→0.159.3, agy 1.2.13→1.2.14, OpenCode 1.18.33→1.18.34; grok 1.0.44 unchanged. No flag surface changed. Integrated: `gpt-6.1-sol` registered ($2/$10, cache reads at 5% of input); a Codex session with no model is priced as the model Codex reports it ran rather than `gpt-5.5`. Read, no change needed: CC 2.1.285 starts `-p` sessions on third-party providers or with telemetry off in auto mode when no permission mode is set (this wrapper always passes `--permission-mode`); CC 2.1.286 resume fixes after parallel tool calls. Gemini 4 is not yet released: no API id, price or `agy models` entry. |
|
package/skills/references/cli.md
CHANGED
|
@@ -196,6 +196,48 @@ Tools without a CLI command are reachable through the OpenClaw plugin, the MCP
|
|
|
196
196
|
server (`clawo-mcp`, see [mcp.md](./mcp.md)), or the `SessionManager` API. See
|
|
197
197
|
[Tools Reference](./tools.md) for full parameter documentation.
|
|
198
198
|
|
|
199
|
+
## `clawo solve`
|
|
200
|
+
|
|
201
|
+
Start the built-in `solve` workflow — triage → implement → verify → repair until
|
|
202
|
+
green — and let the runtime decide whether it worked.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
clawo solve "<task>" [--engine <engine[:model]>] [--check "<command>"]... [--contract <file>]
|
|
206
|
+
[--scouts <list>] [--reviewers <list>] [--max-repairs N] [--human-gate]
|
|
207
|
+
[--cwd <dir>] [--wait] [--json]
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
| Option | Default | Notes |
|
|
211
|
+
| --------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
212
|
+
| `-e, --engine` | `claude` | The implementer, `engine` or `engine:model` (`codex:gpt-6.1-sol`) |
|
|
213
|
+
| `-c, --check` | — | A command check, repeatable. Split on whitespace and run as argv, never through a shell; anything that needs quoting belongs in `--contract` |
|
|
214
|
+
| `--contract` | — | A contract JSON file ([verification.md](./verification.md)); `--check` entries are appended to it |
|
|
215
|
+
| `--scouts` | the implementer | Comma-separated triage agents, `engine[:model]` each |
|
|
216
|
+
| `--reviewers` | — | Comma-separated reviewers of the finished change |
|
|
217
|
+
| `--max-repairs` | `3` | Attempts the router allows while the checks are red; `0` keeps only the first attempt |
|
|
218
|
+
| `--human-gate` | off | Park before anything is written until `clawo workflow approve` |
|
|
219
|
+
| `--cwd` | current directory | Project directory |
|
|
220
|
+
| `-w, --wait` | off | Follow the run, printing each node transition, then the verdict |
|
|
221
|
+
| `--json` | off | Print `{ runId }`, or with `--wait` the final run record |
|
|
222
|
+
|
|
223
|
+
With `--wait` the exit code is the verdict: `0` when the run completed (verified,
|
|
224
|
+
or unverified because no check was given), `1` when it was refuted, failed or
|
|
225
|
+
cancelled. Unknown engine names are refused before anything starts.
|
|
226
|
+
|
|
227
|
+
## `clawo fanout`
|
|
228
|
+
|
|
229
|
+
Ask several engines the same thing in parallel, optionally merging the answers.
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
clawo fanout "<task>" [--engines <list>] [--synthesize] [--check "<command>"]...
|
|
233
|
+
[--contract <file>] [--cwd <dir>] [--wait] [--json]
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
`--engines` (default `claude,codex`) takes `engine[:model]` items; the same
|
|
237
|
+
engine may appear more than once. With `--wait` the run is followed to the end
|
|
238
|
+
and every answer is printed, followed by the synthesis when `--synthesize` was
|
|
239
|
+
given. Checks run after the fan-out, as for `solve`.
|
|
240
|
+
|
|
199
241
|
## `clawo workflow`
|
|
200
242
|
|
|
201
243
|
```bash
|
|
@@ -220,8 +262,9 @@ earlier sessions.
|
|
|
220
262
|
clawo verify <runId> [--evidence <id>] [--json]
|
|
221
263
|
```
|
|
222
264
|
|
|
223
|
-
Prints the evidence bundle: per-check pass/fail with the failing command and
|
|
224
|
-
output
|
|
265
|
+
Prints the evidence bundle: per-check pass/fail with the failing command and the
|
|
266
|
+
lines of its output that say why (an assertion message, an error line — the last
|
|
267
|
+
few lines when nothing stands out), the base and head commits, and the files the run changed (created
|
|
225
268
|
files included).
|
|
226
269
|
|
|
227
270
|
## `clawo engines`
|
|
@@ -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.292**.
|
|
32
32
|
|
|
33
33
|
- Persistent multi-turn conversations
|
|
34
34
|
- Real-time streaming (text, tool_use, tool_result, system events)
|
|
@@ -83,6 +83,11 @@ Wraps the `codex exec` subcommand. Each `send()` spawns a new process. Tested wi
|
|
|
83
83
|
- Requires `codex` CLI >= 0.119 (for `exec resume`): `npm install -g @openai/codex`
|
|
84
84
|
- The prompt is sent on stdin (`codex exec … -`), never on the command line.
|
|
85
85
|
- **Windows:** the npm `.cmd` shim launches through `src/engine-spawn.ts` (cross-spawn), which escapes the remaining arguments for `cmd.exe`. Because the prompt is on stdin it arrives unchanged, newlines and quotes included. A timed-out turn ends the whole process tree (`taskkill /T /F`), not only `cmd.exe`.
|
|
86
|
+
- **Image generation**: ask for an image and Codex generates it with its built-in tool and saves it under
|
|
87
|
+
`$CODEX_HOME/generated_images/<thread_id>/`. `codex exec --json` reports no event for it, so the
|
|
88
|
+
adapter lists the files the turn added there and returns them as `images` on the send result
|
|
89
|
+
(`codex-app` reads them from the `imageGeneration` item, with the revised prompt). It uses the
|
|
90
|
+
account's image-generation allowance.
|
|
86
91
|
- **Does not support `/goal`** — for that, use `engine: 'codex-app'` below
|
|
87
92
|
|
|
88
93
|
```typescript
|
|
@@ -128,7 +133,7 @@ await manager.startSession({
|
|
|
128
133
|
|
|
129
134
|
Wraps Google's **Antigravity CLI** (`agy`) — the successor to Gemini CLI (consumer
|
|
130
135
|
Gemini CLI tiers stopped serving 2026-06-18). Each `send()` spawns a new process
|
|
131
|
-
in print mode. Tested with `agy` **1.3.
|
|
136
|
+
in print mode. Tested with `agy` **1.3.1**.
|
|
132
137
|
|
|
133
138
|
- One-shot execution per message (no persistent subprocess)
|
|
134
139
|
- **Structured output and real usage** — `--output-format stream-json` emits an
|
|
@@ -73,11 +73,13 @@ Send a message and get the response.
|
|
|
73
73
|
| `timeout` | number | | Timeout in ms (default 300000) |
|
|
74
74
|
| `stream` | boolean | | Collect streaming chunks in result |
|
|
75
75
|
|
|
76
|
-
Returns `{ ok, output, sessionId, error?, permissionDenials? }`. `permissionDenials` lists the tool
|
|
76
|
+
Returns `{ ok, output, sessionId, error?, permissionDenials?, images? }`. `permissionDenials` lists the tool
|
|
77
77
|
calls the engine refused during the turn — `[{ toolName, toolUseId?, input? }]` — and is present only
|
|
78
78
|
when there was at least one. Check it even when `error` is absent: a turn whose tool calls were all
|
|
79
79
|
denied still ends as a success. See [sessions.md](./sessions.md) on what "succeeded" does and does
|
|
80
|
-
not mean.
|
|
80
|
+
not mean. `images` lists the images the engine generated in this turn as `{ path, revisedPrompt? }`,
|
|
81
|
+
with `path` a file on the machine running the orchestrator; Codex (`codex` and `codex-app`) generates
|
|
82
|
+
them when asked for an image.
|
|
81
83
|
|
|
82
84
|
### `session_handoff`
|
|
83
85
|
|
|
@@ -820,18 +822,19 @@ Full semantics in [`workflow.md`](./workflow.md) and
|
|
|
820
822
|
Start a durable run. Every state transition is checkpointed to disk, so a run
|
|
821
823
|
survives a process restart and can be resumed.
|
|
822
824
|
|
|
823
|
-
| Param
|
|
824
|
-
|
|
|
825
|
-
| `spec`
|
|
826
|
-
| `template`
|
|
827
|
-
| `task`
|
|
828
|
-
| `agents`
|
|
829
|
-
| `reviewers`
|
|
830
|
-
| `
|
|
831
|
-
| `
|
|
832
|
-
| `
|
|
833
|
-
| `
|
|
834
|
-
| `
|
|
825
|
+
| Param | Type | Notes |
|
|
826
|
+
| ------------- | -------------------------------- | ------------------------------------------------------------------------- |
|
|
827
|
+
| `spec` | object | `WorkflowSpec`: `{ name, nodes[], cwd?, contract?, maxNodeVisits? }` |
|
|
828
|
+
| `template` | `solve` \| `council` \| `fanout` | Build a built-in instead of supplying `spec` |
|
|
829
|
+
| `task` | string | Required with `template` |
|
|
830
|
+
| `agents` | array | `{ name, engine?, model?, effort?, persona? }` |
|
|
831
|
+
| `reviewers` | array | `solve` only — same agent binding for final reviewers |
|
|
832
|
+
| `implementer` | object | `solve` only — `{ engine?, model? }` for the agent that writes the change |
|
|
833
|
+
| `humanGate` | boolean | `solve` only — park for approval before anything is written |
|
|
834
|
+
| `maxRepairs` | number | `solve` only, default 3 |
|
|
835
|
+
| `cwd` | string | Working directory |
|
|
836
|
+
| `runId` | string | Explicit id |
|
|
837
|
+
| `contract` | object | Acceptance contract — see below |
|
|
835
838
|
|
|
836
839
|
Returns `{ runId, workflow, state, nodes }` and runs in the background.
|
|
837
840
|
|
|
@@ -240,6 +240,11 @@ with `visits_lt`.
|
|
|
240
240
|
}
|
|
241
241
|
```
|
|
242
242
|
|
|
243
|
+
When the router sends control back to `implement`, the agent is told what the
|
|
244
|
+
last verification found: each failing required check and the lines of its output
|
|
245
|
+
that say why, framed as data, ahead of the node's own prompt. This applies to any
|
|
246
|
+
`agent` node re-entered after a failed verifier, not only to `solve`.
|
|
247
|
+
|
|
243
248
|
The run leaves `completed` only if the last `verify` was green. There is no
|
|
244
249
|
second verifier at the end on purpose: re-running a contract that shells out to a
|
|
245
250
|
test suite would double the most expensive part of the run to learn nothing new.
|