@enderfga/claw-orchestrator 7.17.2 → 7.19.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enderfga/claw-orchestrator",
3
- "version": "7.17.2",
3
+ "version": "7.19.0",
4
4
  "description": "Claw Orchestrator — run Claude Code, Codex, Antigravity, Grok Build, OpenCode, any ACP agent 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, serve editors as an ACP agent, install as an OpenClaw plugin, or run standalone. Persistent sessions, durable resumable workflows, acceptance checks the runtime runs itself, fan-out, multi-agent council, Codex /goal runs, autoloop, ultraplan, ultrareview, and a per-turn cost ledger with spend caps.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -500,6 +500,19 @@ What happens behind the scenes:
500
500
  2. Starts a local proxy server on `127.0.0.1` (random port, auto-managed) the first time a Claude session names a non-Claude model, provided a gateway URL was found
501
501
  3. Claude Code CLI sends Anthropic-format requests → proxy converts to OpenAI → gateway → any model
502
502
 
503
+ ### Your own Anthropic-compatible gateway
504
+
505
+ A gateway that speaks the Anthropic API and serves other models under their own names (an internal model
506
+ gateway, for instance) needs none of this. Set `CLAWO_CLAUDE_GATEWAY=1` in the environment clawo runs in,
507
+ with the gateway in `ANTHROPIC_BASE_URL` (and its token in `ANTHROPIC_AUTH_TOKEN`) or in a session's
508
+ `baseUrl`. A `claude` session then passes any model name to the CLI as given (`--model gw-model-1`), starts no
509
+ proxy, and does not rewrite the base URL. Because it is read from the environment, it applies to every
510
+ `claude` session the process starts, including those of workflow, fan-out and council nodes.
511
+
512
+ Such a model is priced only from `pricingOverrides` (or the registry, if it knows the name). The CLI's own
513
+ cost figure is ignored, since it prices tokens from Anthropic's table, and without an override the cost is
514
+ recorded as 0, with a single warning per model name.
515
+
503
516
  ### Manual Config (optional)
504
517
 
505
518
  Override with environment variables if needed:
@@ -284,7 +284,7 @@ Built-in format translation lets Claude Code CLI talk to non-Anthropic models:
284
284
  - **Gemini** thought signature caching (round-trip thinking)
285
285
  - Auto-detect provider from model name patterns
286
286
 
287
- A `claude` session started with a non-Claude model and no `baseUrl` starts the proxy on a local port and points the session at it. Configuration is in the proxy section of [Multi-Engine](./multi-engine.md); see [`src/proxy/`](https://github.com/Enderfga/claw-orchestrator/tree/main/src/proxy) for implementation details.
287
+ A `claude` session started with a non-Claude model and no `baseUrl` starts the proxy on a local port and points the session at it, unless `CLAWO_CLAUDE_GATEWAY=1` says the caller's own gateway serves that model (see [Multi-Engine](./multi-engine.md)). Configuration is in the proxy section of [Multi-Engine](./multi-engine.md); see [`src/proxy/`](https://github.com/Enderfga/claw-orchestrator/tree/main/src/proxy) for implementation details.
288
288
 
289
289
  ## Circuit Breaker
290
290
 
@@ -373,17 +373,17 @@ Run one task across N engine/model agents **in parallel** and collect their answ
373
373
 
374
374
  ### `fanout_start`
375
375
 
376
- | Parameter | Type | Required | Description |
377
- | ------------------------------------ | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
378
- | `task` | string | yes | Shared task sent to every agent, optionally after its `persona`. |
379
- | `projectDir` | string | yes | Working directory all agents run in. |
380
- | `agents` | array | yes | Up to 16 specs: `{ name, engine?, model?, effort?, prompt?, persona?, baseUrl?, permissionMode?, sandboxMode?, customEngine?, acpAgent? }`. Names must be unique (each forms a session name); `permissionMode` defaults to `bypassPermissions`. |
381
- | `synthesize` | boolean | | Run a final synthesis pass over the successful results (needs ≥2). |
382
- | `synthesisModel` / `synthesisEngine` | string | | Model/engine for the synthesis pass (default engine `claude`). |
383
- | `synthesisAcpAgent` | string | | With `synthesisEngine: 'acp'`: the ACP agent preset the synthesis pass starts. |
384
- | `agentTimeoutMs` | number | | Per-agent timeout (default 600000). |
385
- | `maxTurnsPerAgent` | number | | Max agent loop turns (default 30). |
386
- | `maxBudgetUsd` | number | | Per-agent spend cap. |
376
+ | Parameter | Type | Required | Description |
377
+ | ------------------------------------ | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
378
+ | `task` | string | yes | Shared task sent to every agent, optionally after its `persona`. |
379
+ | `projectDir` | string | yes | Working directory the agents run in, unless an agent names its own cwd. |
380
+ | `agents` | array | yes | Up to 16 specs: `{ name, engine?, model?, effort?, prompt?, persona?, cwd?, baseUrl?, permissionMode?, sandboxMode?, customEngine?, acpAgent? }`. Names must be unique (each forms a session name); `permissionMode` defaults to `bypassPermissions`. `cwd` gives the agent its own working directory, absolute or relative to `projectDir` (the default); each result in `fanout_status` records the `cwd` it ran in. |
381
+ | `synthesize` | boolean | | Run a final synthesis pass over the successful results (needs ≥2). |
382
+ | `synthesisModel` / `synthesisEngine` | string | | Model/engine for the synthesis pass (default engine `claude`). |
383
+ | `synthesisAcpAgent` | string | | With `synthesisEngine: 'acp'`: the ACP agent preset the synthesis pass starts. |
384
+ | `agentTimeoutMs` | number | | Per-agent timeout (default 600000). |
385
+ | `maxTurnsPerAgent` | number | | Max agent loop turns (default 30). |
386
+ | `maxBudgetUsd` | number | | Per-agent spend cap. |
387
387
 
388
388
  Runs in the background; returns `{ ok, id, status, ... }`. Poll with `fanout_status`.
389
389
  Each agent's optional `effort` accepts `low`, `medium`, `high`, `xhigh`, `max`,
@@ -193,7 +193,7 @@ The kind-specific fields:
193
193
  | Kind | Fields |
194
194
  | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
195
195
  | `agent` | `prompt` (required); `engine`, `model`, `effort`, `acpAgent` (a bundled ACP preset id, for `engine: "acp"`); `cwd` (default: the run's); `sessionName`, to keep one conversation across visits and nodes (each turn's process stops, and the next start under the name resumes the conversation; the name outlives the run, so make it unique to the run); `permissionMode` (default `bypassPermissions`); `appendSystemPrompt`, standing instructions for the session; `disallowedTools`, tools the session may not use (engines `claude` and `grok`; refused at start on the others) |
196
- | `fanout` | `prompt` (required, the shared task) and `agents` (required); `synthesize`, `synthesisEngine` (default `claude`), `synthesisModel`, `synthesisAcpAgent`, `synthesisPermissionMode` (default `bypassPermissions`); `maxTurnsPerAgent` and `maxBudgetUsd`, per agent; `cwd`; `agentTimeoutMs` |
196
+ | `fanout` | `prompt` (required, the shared task) and `agents` (required); `synthesize`, `synthesisEngine` (default `claude`), `synthesisModel`, `synthesisAcpAgent`, `synthesisPermissionMode` (default `bypassPermissions`); `maxTurnsPerAgent` and `maxBudgetUsd`, per agent; `cwd`; `agentTimeoutMs`. An agent's own `cwd` (absolute, or relative to the node's) starts it in a directory of its own, so agents that each write code do not edit the same files; every result records the `cwd` it ran in |
197
197
  | `council` | `task` (required) and `agents` (required); `projectDir` (default: the run's cwd); `maxRounds` (default 15, as for `council_start`); `maxTurnsPerAgent` and `maxBudgetUsd`, per agent; `defaultPermissionMode`; `agentTimeoutMs` |
198
198
  | `verifier` | `contract` (required): an inline contract, or `"run"` for the run-level one; `cwd` (default: the run's) |
199
199
  | `human_gate` | `prompt` (required) |