agent-mcp-hub 0.5.3 → 0.6.1
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 +69 -8
- package/dist/adapters/agy.d.ts +2 -0
- package/dist/adapters/agy.js +56 -0
- package/dist/adapters/agy.js.map +1 -0
- package/dist/adapters/claude.js +19 -0
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.js +8 -0
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/cursor.js +21 -7
- package/dist/adapters/cursor.js.map +1 -1
- package/dist/adapters/opencode.js +8 -0
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/confirm.d.ts +1 -0
- package/dist/confirm.js +6 -0
- package/dist/confirm.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.js +3 -2
- package/dist/registry.js.map +1 -1
- package/dist/server.js +103 -15
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# agent-mcp-hub
|
|
2
2
|
|
|
3
3
|
One MCP server that bridges multiple CLI coding agents — **Codex**, **Cursor**,
|
|
4
|
-
**OpenCode**, and **
|
|
4
|
+
**OpenCode**, **Claude**, and **Antigravity** — into any MCP client.
|
|
5
5
|
|
|
6
6
|
> **stdio only — by design.** The hub ships no Docker image and no HTTP
|
|
7
7
|
> transport (both were removed during the 0.5.x line). A containerised or remote
|
|
@@ -17,6 +17,7 @@ One MCP server that bridges multiple CLI coding agents — **Codex**, **Cursor**
|
|
|
17
17
|
| `cursor` | Delegate a prompt to `cursor-agent -p` (prompt piped via stdin) |
|
|
18
18
|
| `opencode` | Delegate a prompt to `opencode run` |
|
|
19
19
|
| `claude` | Delegate a prompt to the Claude Code CLI (prompt piped via stdin) |
|
|
20
|
+
| `agy` | Delegate a prompt to Google Antigravity (`agy --print=…`, prompt passed as a flag value) |
|
|
20
21
|
| `run_all` | Same prompt to all agents in parallel, results side by side |
|
|
21
22
|
| `list_agents` | Which agent CLIs are installed and on PATH |
|
|
22
23
|
| `ping` | Health check |
|
|
@@ -28,6 +29,39 @@ cap, default 1800000 = 30 min), and `idleTimeoutMs` (inactivity cap, default 300
|
|
|
28
29
|
Known limitation: `opencode` prompts may not start with `-` (its CLI could parse
|
|
29
30
|
them as flags); the tool returns an actionable error instead of guessing.
|
|
30
31
|
|
|
32
|
+
### Choosing models per agent
|
|
33
|
+
|
|
34
|
+
**Model ids are agent-specific and do not overlap.** `o3` means nothing to
|
|
35
|
+
`agy`, `gemini-3.6-flash-low` means nothing to `codex`, and `opencode` namespaces
|
|
36
|
+
its own (`opencode/big-pickle`). So a single `model` value is valid for at most
|
|
37
|
+
one agent in a fan-out.
|
|
38
|
+
|
|
39
|
+
- `run_all` takes **`models`** — a per-agent map. Agents you don't list fall back
|
|
40
|
+
to `model`, then to their own CLI default.
|
|
41
|
+
- `review_change` takes **`runnerModel`** and **`reviewerModel`**, so the agent
|
|
42
|
+
writing the change and the agent judging it can use different engines *and*
|
|
43
|
+
tiers. `model` remains a fallback for both.
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"tool": "run_all",
|
|
48
|
+
"arguments": {
|
|
49
|
+
"prompt": "Explain the retry logic in src/exec.ts",
|
|
50
|
+
"models": { "codex": "o3", "agy": "gemini-3.6-flash-low", "claude": "haiku" }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
An unknown agent name in `models` is rejected with the list of enabled agents —
|
|
56
|
+
a typo never silently falls back to the default model.
|
|
57
|
+
|
|
58
|
+
Where to find valid ids: `opencode models`, `cursor-agent models` and
|
|
59
|
+
`agy models` list them. `codex` and `claude` have no such command — codex reads
|
|
60
|
+
its default from `~/.codex/config.toml`, and claude accepts the documented
|
|
61
|
+
aliases (`opus`, `sonnet`, `haiku`, `fable`). Note `claude models` is **not** a
|
|
62
|
+
subcommand: it is treated as a prompt, so its "model list" is generated text,
|
|
63
|
+
not a source of truth.
|
|
64
|
+
|
|
31
65
|
### Error handling
|
|
32
66
|
|
|
33
67
|
When a wrapped CLI fails, the hub classifies the failure and returns a clean,
|
|
@@ -37,7 +71,7 @@ class and the exact fix:
|
|
|
37
71
|
| Class | Example remediation |
|
|
38
72
|
|---|---|
|
|
39
73
|
| `not_installed` | install the CLI (e.g. `npm i -g @openai/codex`) / fix PATH |
|
|
40
|
-
| `not_authenticated` | `codex login` · `cursor-agent login` · `opencode auth login` · `claude` → `/login` (or set the matching API key) |
|
|
74
|
+
| `not_authenticated` | `codex login` · `cursor-agent login` · `opencode auth login` · `claude` → `/login` · `agy` → sign in on first run (or set the matching API key) |
|
|
41
75
|
| `not_configured` | set a model/provider in the CLI's config |
|
|
42
76
|
| `timed_out` | raise `timeoutMs`, or check the agent/model is responsive |
|
|
43
77
|
| `stream_stalled` | the agent reached the network but its stream keeps dropping (e.g. `cursor` behind a TLS-intercepting proxy) — treat that agent as unavailable; raising `timeoutMs` will not help |
|
|
@@ -56,7 +90,8 @@ the runner's output, the diff (`--stat`), and a **PASS / WARN / FAIL** verdict
|
|
|
56
90
|
with findings.
|
|
57
91
|
|
|
58
92
|
**Inputs:** `runner`, `reviewer` (agent names), `prompt`, `cwd` (must be a git
|
|
59
|
-
worktree), optional `
|
|
93
|
+
worktree), optional `runnerModel`, `reviewerModel`, `model` (fallback for both),
|
|
94
|
+
`timeoutMs`.
|
|
60
95
|
|
|
61
96
|
**Key notes:**
|
|
62
97
|
|
|
@@ -69,6 +104,22 @@ worktree), optional `model`, `timeoutMs`.
|
|
|
69
104
|
(noted in the output).
|
|
70
105
|
- Complements — does not replace — client-side stop-hooks or PR-time CI review.
|
|
71
106
|
- The confirm gate (`MCP_CONFIRM`) applies.
|
|
107
|
+
- **The reviewer runs least-privilege — but how much that guarantees depends on the
|
|
108
|
+
agent.** The reviewer's prompt embeds an attacker-influenced diff, so it is run
|
|
109
|
+
read-only rather than with the write grant the runner gets. Only two of the five
|
|
110
|
+
are real restrictions:
|
|
111
|
+
|
|
112
|
+
| Reviewer | Read-only mechanism | Enforced? |
|
|
113
|
+
|---|---|---|
|
|
114
|
+
| `codex` | `-s read-only` | **Yes — OS-level sandbox** |
|
|
115
|
+
| `claude` | `--disallowedTools Write,Edit,…,Bash` | **Yes — harness-level deny** |
|
|
116
|
+
| `cursor` | `--trust --mode plan` (no `--force`) | No — model-advisory only |
|
|
117
|
+
| `agy` | permission grant withheld | Partly — headless auto-deny, not a sandbox |
|
|
118
|
+
| `opencode` | *none available* | **No — unrestricted** |
|
|
119
|
+
|
|
120
|
+
Pick `codex` or `claude` as the reviewer if you want the restriction to be real.
|
|
121
|
+
This is defense-in-depth alongside the nonce-fenced diff and the throwaway temp
|
|
122
|
+
cwd; none of it is a sandbox.
|
|
72
123
|
|
|
73
124
|
```json
|
|
74
125
|
{
|
|
@@ -90,6 +141,9 @@ Install and authenticate the CLIs you want to use (any subset works):
|
|
|
90
141
|
- Cursor: `curl https://cursor.com/install -fsS | bash && cursor-agent login`
|
|
91
142
|
- OpenCode: `npm i -g opencode-ai && opencode auth login`
|
|
92
143
|
- Claude Code: `npm i -g @anthropic-ai/claude-code && claude` (first run logs in)
|
|
144
|
+
- Antigravity: install the Antigravity CLI (e.g. `brew install --cask antigravity-cli`),
|
|
145
|
+
then run `agy` once and sign in — it has no `login` subcommand and stores
|
|
146
|
+
credentials in the OS keyring, so there is no API-key env var to set
|
|
93
147
|
|
|
94
148
|
## Install
|
|
95
149
|
|
|
@@ -139,7 +193,7 @@ claude mcp add agent-hub -- npx -y agent-mcp-hub@0.5.0
|
|
|
139
193
|
## Configuration
|
|
140
194
|
|
|
141
195
|
**`MCP_AGENTS`** — comma-separated allowlist of the agents to expose
|
|
142
|
-
(`codex,cursor,opencode,claude`). Unset or empty exposes all agents. Disabled
|
|
196
|
+
(`codex,cursor,opencode,claude,agy`). Unset or empty exposes all agents. Disabled
|
|
143
197
|
agents get no tool and are absent from `list_agents`/`run_all`. An unknown name
|
|
144
198
|
fails at startup with an error listing the valid names, so typos never silently
|
|
145
199
|
disable an agent.
|
|
@@ -199,10 +253,17 @@ fails fast:
|
|
|
199
253
|
default **1800000 (30 min)**. A hard upper bound regardless of activity.
|
|
200
254
|
|
|
201
255
|
Whichever fires first kills the agent's process group. **Tradeoff:** the idle reset
|
|
202
|
-
assumes the CLI streams intermediate output. `codex` and `opencode` do; `claude -p
|
|
203
|
-
|
|
204
|
-
those can be idle-killed at 5 min — raise `idleTimeoutMs` /
|
|
205
|
-
for such tasks, or rely on the total cap.
|
|
256
|
+
assumes the CLI streams intermediate output. `codex` and `opencode` do; `claude -p`,
|
|
257
|
+
`cursor-agent -p` and `agy --print` may emit only the final result, so a long
|
|
258
|
+
**silent** task on those can be idle-killed at 5 min — raise `idleTimeoutMs` /
|
|
259
|
+
`MCP_AGENT_IDLE_TIMEOUT_MS` for such tasks, or rely on the total cap.
|
|
260
|
+
|
|
261
|
+
`agy` is the strongest case here: it emits its entire answer in one flush at the
|
|
262
|
+
end (measured — every line of a 12-line reply arrived at the same instant), and
|
|
263
|
+
the hub raises its internal `--print-timeout` to 48h so that agy's own 5-minute
|
|
264
|
+
default can never truncate a run. The idle timer is therefore agy's only
|
|
265
|
+
protection against a genuine hang; budget `idleTimeoutMs` accordingly for long
|
|
266
|
+
autonomous agy tasks.
|
|
206
267
|
|
|
207
268
|
While an agent runs, the hub emits MCP **progress notifications** to clients that
|
|
208
269
|
request them (`_meta.progressToken`) — live feedback during long runs. Note: on
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cap agy applies to its OWN print-mode run. Deliberately ABOVE `MAX_TIMEOUT_MS`
|
|
3
|
+
* (24h, `exec.ts`) so agy's internal timer can never fire before the hub's total/
|
|
4
|
+
* idle timers — the hub stays the single source of timeout truth, exactly as for
|
|
5
|
+
* the other four agents.
|
|
6
|
+
*
|
|
7
|
+
* This flag is load-bearing: `--print-timeout` defaults to **5 minutes**, so
|
|
8
|
+
* without it agy silently kills every longer run with an opaque
|
|
9
|
+
* `Error: timeout waiting for response` (exit 1) no matter what `timeoutMs` the
|
|
10
|
+
* caller asked for — making this tool's documented timeout a lie for this agent.
|
|
11
|
+
*/
|
|
12
|
+
const PRINT_TIMEOUT = "48h";
|
|
13
|
+
export const agyAdapter = {
|
|
14
|
+
name: "agy",
|
|
15
|
+
summary: "Google Antigravity (agy) — Gemini-powered autonomous coding agent that reads and edits files to implement, refactor, and fix code.",
|
|
16
|
+
binary: "agy",
|
|
17
|
+
// agy has NO `login` subcommand: it authenticates on first interactive run and
|
|
18
|
+
// stores credentials in the OS keyring. There is therefore no API-key env var,
|
|
19
|
+
// so `apiKeyEnv` stays undefined — which also means every OTHER agent's key is
|
|
20
|
+
// stripped from its environment (see `credentialStripKeys`), same as opencode.
|
|
21
|
+
loginCommand: "agy (then sign in when prompted)",
|
|
22
|
+
// `agy models` prints bare model ids ("gemini-3.1-pro-high"), one per line, and
|
|
23
|
+
// exercises account eligibility rather than merely starting the binary — the
|
|
24
|
+
// same reasoning that makes `opencode models` a better probe than `--version`.
|
|
25
|
+
probeArgs: ["models"],
|
|
26
|
+
probeRequiresOutput: true,
|
|
27
|
+
buildInvocation(prompt, options = {}) {
|
|
28
|
+
// `--new-project` is LOAD-BEARING. Without it agy ignores the process working
|
|
29
|
+
// directory entirely and runs in ~/.gemini/antigravity-cli/scratch, so the
|
|
30
|
+
// hub's `cwd` contract would silently not hold for this agent and it would
|
|
31
|
+
// edit files somewhere the caller never named. Verified against agy 1.1.7.
|
|
32
|
+
const args = ["--new-project", "--print-timeout", PRINT_TIMEOUT];
|
|
33
|
+
// Headless agy cannot prompt for tool permission, so it auto-DENIES and then
|
|
34
|
+
// exits 0 with EMPTY stdout — a failure that reads as success. Auto-approving
|
|
35
|
+
// is what lets agy actually read and edit files (cursor's `--force` plays the
|
|
36
|
+
// same role). Withheld only when the run is JUDGING attacker-controlled
|
|
37
|
+
// content — the `review_change` reviewer passes `permissionMode: "read-only"`.
|
|
38
|
+
// `--sandbox` is NEVER emitted: upstream #36 reports that combining it with
|
|
39
|
+
// the skip flag lets the agent auto-approve its own sandbox escape, and alone
|
|
40
|
+
// it does not produce a usable read-only mode.
|
|
41
|
+
if (options.permissionMode !== "read-only")
|
|
42
|
+
args.push("--dangerously-skip-permissions");
|
|
43
|
+
if (options.model)
|
|
44
|
+
args.push("--model", options.model);
|
|
45
|
+
// The prompt is the GLUED value of `--print`. Glued (`--print=x`) rather than
|
|
46
|
+
// `-p x` on purpose: the value is physically part of a single argv token, so
|
|
47
|
+
// it can never be re-parsed as a flag regardless of how agy's flag library
|
|
48
|
+
// treats a dash-leading value now or in a future release. That makes the
|
|
49
|
+
// dash-prompt guarantee a property of OUR argv, not of a third-party parser —
|
|
50
|
+
// which is why this adapter needs no opencode-style dash-guard.
|
|
51
|
+
// No stdin: agy takes the prompt here, not on stdin.
|
|
52
|
+
args.push(`--print=${prompt}`);
|
|
53
|
+
return { args };
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=agy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agy.js","sourceRoot":"","sources":["../../src/adapters/agy.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,KAAK;IACX,OAAO,EACL,oIAAoI;IACtI,MAAM,EAAE,KAAK;IACb,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,YAAY,EAAE,mCAAmC;IACjD,gFAAgF;IAChF,6EAA6E;IAC7E,+EAA+E;IAC/E,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,mBAAmB,EAAE,IAAI;IACzB,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,8EAA8E;QAC9E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACjE,6EAA6E;QAC7E,8EAA8E;QAC9E,8EAA8E;QAC9E,wEAAwE;QACxE,+EAA+E;QAC/E,4EAA4E;QAC5E,8EAA8E;QAC9E,+CAA+C;QAC/C,IAAI,OAAO,CAAC,cAAc,KAAK,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,8EAA8E;QAC9E,6EAA6E;QAC7E,2EAA2E;QAC3E,yEAAyE;QACzE,8EAA8E;QAC9E,gEAAgE;QAChE,qDAAqD;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;CACF,CAAC"}
|
package/dist/adapters/claude.js
CHANGED
|
@@ -6,6 +6,25 @@ export const claudeAdapter = {
|
|
|
6
6
|
apiKeyEnv: "ANTHROPIC_API_KEY",
|
|
7
7
|
buildInvocation(prompt, options = {}) {
|
|
8
8
|
const args = ["-p", "--output-format", "text"];
|
|
9
|
+
if (options.permissionMode === "read-only") {
|
|
10
|
+
// Deny rules are evaluated BEFORE the tool runs and hold in every permission
|
|
11
|
+
// mode, so this is a genuine harness-level restriction rather than advice —
|
|
12
|
+
// the strongest read-only lever of the five after codex's OS sandbox.
|
|
13
|
+
// Verified live: with this list the Write/Edit/Bash tools are absent from the
|
|
14
|
+
// session entirely, while normal verdict output is unaffected.
|
|
15
|
+
//
|
|
16
|
+
// GLUED (`--disallowedTools=<list>`) on purpose: the flag is variadic
|
|
17
|
+
// (`<tools...>`), so as a separate token it greedily consumes following
|
|
18
|
+
// non-flag argv entries — observed swallowing a positional prompt and
|
|
19
|
+
// killing the run. Gluing makes correctness a property of OUR argv rather
|
|
20
|
+
// than of argument order.
|
|
21
|
+
//
|
|
22
|
+
// Every name here must be a REAL tool: an unknown one only prints
|
|
23
|
+
// `Permission deny rule "X" matches no known tool` and silently protects
|
|
24
|
+
// nothing. `MultiEdit` was in this list and does not exist in current
|
|
25
|
+
// Claude Code — do not re-add a name without checking for that warning.
|
|
26
|
+
args.push("--disallowedTools=Write,Edit,NotebookEdit,Bash");
|
|
27
|
+
}
|
|
9
28
|
if (options.model)
|
|
10
29
|
args.push("--model", options.model);
|
|
11
30
|
// No positional prompt: claude reads it from piped stdin in print mode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,kGAAkG;IACpG,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,uBAAuB;IACrC,SAAS,EAAE,mBAAmB;IAC9B,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,wEAAwE;QACxE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,kGAAkG;IACpG,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,uBAAuB;IACrC,SAAS,EAAE,mBAAmB;IAC9B,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;YAC3C,6EAA6E;YAC7E,4EAA4E;YAC5E,sEAAsE;YACtE,8EAA8E;YAC9E,+DAA+D;YAC/D,EAAE;YACF,sEAAsE;YACtE,wEAAwE;YACxE,sEAAsE;YACtE,0EAA0E;YAC1E,0BAA0B;YAC1B,EAAE;YACF,kEAAkE;YAClE,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,wEAAwE;QACxE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;CACF,CAAC"}
|
package/dist/adapters/codex.js
CHANGED
|
@@ -8,6 +8,14 @@ export const codexAdapter = {
|
|
|
8
8
|
const args = ["exec", "--skip-git-repo-check"];
|
|
9
9
|
if (options.model)
|
|
10
10
|
args.push("--model", options.model);
|
|
11
|
+
// LOAD-BEARING. `codex exec` defaults to a **read-only** sandbox, so without
|
|
12
|
+
// an explicit `-s` this tool silently reported success while writing nothing
|
|
13
|
+
// — verified live: it answered "DONE" and created no file anywhere on disk.
|
|
14
|
+
// `workspace-write` is the least-privilege setting that still delivers what
|
|
15
|
+
// the tool description promises. `--dangerously-bypass-approvals-and-sandbox`
|
|
16
|
+
// is deliberately NEVER emitted: it nullifies `--sandbox` entirely.
|
|
17
|
+
// Emitted BEFORE the "-" sentinel so the prompt is never taken positionally.
|
|
18
|
+
args.push("-s", options.permissionMode === "read-only" ? "read-only" : "workspace-write");
|
|
11
19
|
// "-" = read the prompt from stdin (documented Codex CLI sentinel).
|
|
12
20
|
args.push("-");
|
|
13
21
|
return { args, stdin: prompt };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,OAAO,EACL,qIAAqI;IACvI,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,aAAa;IAC3B,SAAS,EAAE,gBAAgB;IAC3B,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,OAAO,EACL,qIAAqI;IACvI,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,aAAa;IAC3B,SAAS,EAAE,gBAAgB;IAC3B,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,6EAA6E;QAC7E,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,8EAA8E;QAC9E,oEAAoE;QACpE,6EAA6E;QAC7E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC1F,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;CACF,CAAC"}
|
package/dist/adapters/cursor.js
CHANGED
|
@@ -17,13 +17,27 @@ export const cursorAdapter = {
|
|
|
17
17
|
/^retriable\s*error:\s*connection stalled\b/i,
|
|
18
18
|
],
|
|
19
19
|
buildInvocation(prompt, options = {}) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
const args = ["-p", "--output-format", "text"];
|
|
21
|
+
if (options.permissionMode === "read-only") {
|
|
22
|
+
// Reviewer role. `--mode plan` answers without editing, and `--trust` is
|
|
23
|
+
// REQUIRED alongside it: without a trust/force flag cursor-agent refuses to
|
|
24
|
+
// proceed in an unfamiliar directory, printing "Pass --trust, --yolo, or -f
|
|
25
|
+
// if you trust this directory" and returning NO answer at all (exit 0).
|
|
26
|
+
// `--force` is deliberately omitted here — it is the write grant.
|
|
27
|
+
// ADVISORY ONLY: plan mode is not an enforced sandbox (Cursor staff have
|
|
28
|
+
// confirmed "plan mode is not respected"), so do not describe a cursor
|
|
29
|
+
// reviewer as sandboxed. It narrows behavior; it does not guarantee it.
|
|
30
|
+
args.push("--trust", "--mode", "plan");
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// --force: cursor-agent otherwise blocks on an interactive permission prompt
|
|
34
|
+
// ("Workspace Trust Required" / command approval) in any directory it has not
|
|
35
|
+
// seen before, which for a server invoked against arbitrary cwds is most of
|
|
36
|
+
// them. There is no stdin to answer it with in print mode, so the run would
|
|
37
|
+
// hang until the timeout kills it. Verified live: with `--force` on a normal
|
|
38
|
+
// path the agent does create files.
|
|
39
|
+
args.push("--force");
|
|
40
|
+
}
|
|
27
41
|
if (options.model)
|
|
28
42
|
args.push("--model", options.model);
|
|
29
43
|
// No positional prompt: cursor-agent reads it from piped stdin in print mode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,oIAAoI;IACtI,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,gBAAgB;IAC3B,kFAAkF;IAClF,kFAAkF;IAClF,2EAA2E;IAC3E,qEAAqE;IACrE,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,+EAA+E;IAC/E,0EAA0E;IAC1E,eAAe,EAAE;QACf,4DAA4D;QAC5D,yBAAyB;QACzB,6CAA6C;KAC9C;IACD,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,oIAAoI;IACtI,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,gBAAgB;IAC3B,kFAAkF;IAClF,kFAAkF;IAClF,2EAA2E;IAC3E,qEAAqE;IACrE,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,+EAA+E;IAC/E,0EAA0E;IAC1E,eAAe,EAAE;QACf,4DAA4D;QAC5D,yBAAyB;QACzB,6CAA6C;KAC9C;IACD,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;YAC3C,yEAAyE;YACzE,4EAA4E;YAC5E,4EAA4E;YAC5E,wEAAwE;YACxE,kEAAkE;YAClE,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,6EAA6E;YAC7E,8EAA8E;YAC9E,4EAA4E;YAC5E,4EAA4E;YAC5E,6EAA6E;YAC7E,oCAAoC;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,8EAA8E;QAC9E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;CACF,CAAC"}
|
|
@@ -13,6 +13,14 @@ export const opencodeAdapter = {
|
|
|
13
13
|
// dash-leading prompt could be parsed as a flag by its CLI.
|
|
14
14
|
throw new Error("opencode cannot safely run prompts that start with '-' (its CLI may parse them as flags). Rephrase the prompt to start with a word, e.g. \"explain --help ...\".");
|
|
15
15
|
}
|
|
16
|
+
// NOTE: `permissionMode` is deliberately IGNORED here — opencode exposes no
|
|
17
|
+
// read-only lever on `run`. `--agent <name>` could point at a restricted
|
|
18
|
+
// agent, but that agent must already exist in the operator's own config, so
|
|
19
|
+
// this adapter cannot rely on it. `--auto` is also never emitted: opencode
|
|
20
|
+
// already writes files without it (verified), so it would only widen
|
|
21
|
+
// permissions. Consequence: an opencode REVIEWER is not restricted. That gap
|
|
22
|
+
// is documented rather than papered over — see the enforcement table in
|
|
23
|
+
// AGENTS.md.
|
|
16
24
|
const args = ["run"];
|
|
17
25
|
if (options.model)
|
|
18
26
|
args.push("--model", options.model);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,IAAI,EAAE,UAAU;IAChB,OAAO,EACL,mMAAmM;IACrM,MAAM,EAAE,UAAU;IAClB,+EAA+E;IAC/E,+EAA+E;IAC/E,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,qBAAqB;IACnC,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,oEAAoE;YACpE,4DAA4D;YAC5D,MAAM,IAAI,KAAK,CACb,kKAAkK,CACnK,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,IAAI,EAAE,UAAU;IAChB,OAAO,EACL,mMAAmM;IACrM,MAAM,EAAE,UAAU;IAClB,+EAA+E;IAC/E,+EAA+E;IAC/E,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,qBAAqB;IACnC,eAAe,CAAC,MAAc,EAAE,UAA2B,EAAE;QAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,oEAAoE;YACpE,4DAA4D;YAC5D,MAAM,IAAI,KAAK,CACb,kKAAkK,CACnK,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,qEAAqE;QACrE,6EAA6E;QAC7E,wEAAwE;QACxE,aAAa;QACb,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;CACF,CAAC"}
|
package/dist/confirm.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare function buildRunAllMessage(agentNames: string[], opts: {
|
|
|
27
27
|
prompt: string;
|
|
28
28
|
cwd?: string;
|
|
29
29
|
model?: string;
|
|
30
|
+
models?: Record<string, string>;
|
|
30
31
|
}): string;
|
|
31
32
|
/** requestedSchema for elicitInput: a single required boolean the client renders.
|
|
32
33
|
* Typed against the SDK so a malformed edit fails typecheck (drift-safe). The
|
package/dist/confirm.js
CHANGED
|
@@ -44,6 +44,12 @@ export function buildRunAllMessage(agentNames, opts) {
|
|
|
44
44
|
// it is attacker-influenceable and must not be hidden from the human gate.
|
|
45
45
|
if (opts.model !== undefined)
|
|
46
46
|
lines.push(`model: ${opts.model}`);
|
|
47
|
+
// Same reasoning for the per-agent overrides: each one ends up as `--model
|
|
48
|
+
// <value>` on some CLI's argv, so every one of them must be visible here.
|
|
49
|
+
const entries = Object.entries(opts.models ?? {});
|
|
50
|
+
if (entries.length > 0) {
|
|
51
|
+
lines.push(`models: ${entries.map(([agent, id]) => `${agent}=${id}`).join(", ")}`);
|
|
52
|
+
}
|
|
47
53
|
return lines.join("\n");
|
|
48
54
|
}
|
|
49
55
|
/** requestedSchema for elicitInput: a single required boolean the client renders.
|
package/dist/confirm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"AAIA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAYrD,MAAM,UAAU,WAAW,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjE,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,GAAW;IACjD,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,IAAsD;IAEtD,MAAM,KAAK,GAAG,CAAC,cAAc,SAAS,IAAI,EAAE,WAAW,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5F,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAChC,UAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../src/confirm.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -65,6 +65,6 @@ export type ResolveBinary = (binary: string) => string | undefined;
|
|
|
65
65
|
* Probes one adapter. Never throws: a probe failure is data, not an exception.
|
|
66
66
|
* The probe command is per-adapter because the CLIs disagree — `opencode models`
|
|
67
67
|
* lists models, `codex models` is not a subcommand at all — so there is no single
|
|
68
|
-
* command that proves usability across
|
|
68
|
+
* command that proves usability across every wrapped CLI.
|
|
69
69
|
*/
|
|
70
70
|
export declare function checkAvailability(adapter: AgentAdapter, exec: Exec, resolve?: ResolveBinary): Promise<AgentAvailability>;
|
package/dist/registry.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { accessSync, constants, statSync } from "node:fs";
|
|
2
2
|
import { delimiter, isAbsolute, join } from "node:path";
|
|
3
|
+
import { agyAdapter } from "./adapters/agy.js";
|
|
3
4
|
import { claudeAdapter } from "./adapters/claude.js";
|
|
4
5
|
import { codexAdapter } from "./adapters/codex.js";
|
|
5
6
|
import { cursorAdapter } from "./adapters/cursor.js";
|
|
6
7
|
import { opencodeAdapter } from "./adapters/opencode.js";
|
|
7
8
|
import { classifyFailure } from "./failure.js";
|
|
8
9
|
export function allAdapters() {
|
|
9
|
-
return [codexAdapter, cursorAdapter, opencodeAdapter, claudeAdapter];
|
|
10
|
+
return [codexAdapter, cursorAdapter, opencodeAdapter, claudeAdapter, agyAdapter];
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* Union of every adapter's credential env var, DERIVED from the adapter list so a
|
|
@@ -122,7 +123,7 @@ function result(name, installed, usable, reason) {
|
|
|
122
123
|
* Probes one adapter. Never throws: a probe failure is data, not an exception.
|
|
123
124
|
* The probe command is per-adapter because the CLIs disagree — `opencode models`
|
|
124
125
|
* lists models, `codex models` is not a subcommand at all — so there is no single
|
|
125
|
-
* command that proves usability across
|
|
126
|
+
* command that proves usability across every wrapped CLI.
|
|
126
127
|
*/
|
|
127
128
|
export async function checkAvailability(adapter, exec, resolve = resolveOnPath) {
|
|
128
129
|
if (resolve(adapter.binary) === undefined) {
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -33,7 +33,10 @@ async function runAdapter(adapter, exec, params, onActivity) {
|
|
|
33
33
|
try {
|
|
34
34
|
// Inside the try so a buildInvocation throw (e.g. opencode's dash-guard) is
|
|
35
35
|
// audited too, rather than escaping with no run-log trace.
|
|
36
|
-
const invocation = adapter.buildInvocation(params.prompt, {
|
|
36
|
+
const invocation = adapter.buildInvocation(params.prompt, {
|
|
37
|
+
model: params.model,
|
|
38
|
+
permissionMode: params.permissionMode,
|
|
39
|
+
});
|
|
37
40
|
const result = await exec(adapter.binary, invocation.args, {
|
|
38
41
|
cwd: params.cwd,
|
|
39
42
|
timeoutMs: params.timeoutMs,
|
|
@@ -99,12 +102,52 @@ function makeProgressEmitter(extra, label) {
|
|
|
99
102
|
* all pass.
|
|
100
103
|
*/
|
|
101
104
|
export const MODEL_RE = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/;
|
|
102
|
-
const
|
|
103
|
-
.string()
|
|
104
|
-
.refine((v) => MODEL_RE.test(v), {
|
|
105
|
+
const modelValue = z.string().refine((v) => MODEL_RE.test(v), {
|
|
105
106
|
message: "invalid model id: must start with a letter or digit and contain only letters, digits, and . _ : / - (≤128 chars). A flag-shaped value (leading '-') is rejected to prevent CLI argument injection.",
|
|
106
|
-
})
|
|
107
|
-
|
|
107
|
+
});
|
|
108
|
+
const modelArg = modelValue.optional();
|
|
109
|
+
/**
|
|
110
|
+
* Per-agent model overrides, `{ "<agent>": "<model id>" }`. Every VALUE goes
|
|
111
|
+
* through the same `MODEL_RE` allowlist as the scalar `model` — a map must not
|
|
112
|
+
* become a hole in the argument-injection defence. Unknown KEYS are rejected in
|
|
113
|
+
* the handler (which knows the enabled set) rather than here.
|
|
114
|
+
*
|
|
115
|
+
* This exists because model namespaces do NOT overlap between agents — `o3` is
|
|
116
|
+
* meaningless to `agy`, `gemini-3.6-flash-low` is meaningless to `codex` — so a
|
|
117
|
+
* single scalar `model` can be valid for at most one agent in a fan-out.
|
|
118
|
+
*/
|
|
119
|
+
const modelsArg = z.record(z.string(), modelValue).optional();
|
|
120
|
+
/** `models[agent]` wins over the shared `model`; undefined means the CLI's default. */
|
|
121
|
+
function resolveModel(agentName, models, model) {
|
|
122
|
+
// `Object.hasOwn`, not a bare lookup: `models` is caller-controlled, so a bare
|
|
123
|
+
// `models[agentName]` would consult Object.prototype. Safe today only because
|
|
124
|
+
// no adapter is named `toString`/`constructor`/`valueOf` — this makes the
|
|
125
|
+
// guarantee explicit instead of resting on that coincidence.
|
|
126
|
+
if (models && Object.hasOwn(models, agentName))
|
|
127
|
+
return models[agentName];
|
|
128
|
+
return model;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Reject agent names that are not enabled, so a typo fails fast with the valid
|
|
132
|
+
* list instead of silently doing nothing — the same contract `MCP_AGENTS` has.
|
|
133
|
+
*
|
|
134
|
+
* KNOWN LIMIT, one key only: `z.record` rebuilds its output by assigning each
|
|
135
|
+
* key onto a fresh object, and assigning `__proto__` invokes the inherited
|
|
136
|
+
* setter — so a literal `{"__proto__": …}` key is gone before this runs and is
|
|
137
|
+
* silently ignored rather than reported. Verified that `toString`,
|
|
138
|
+
* `constructor` and `valueOf` all survive intact and ARE rejected here.
|
|
139
|
+
*
|
|
140
|
+
* Left as-is deliberately: `__proto__` can never name an agent, so it cannot
|
|
141
|
+
* select a model and no value from it reaches argv — the only cost is a missing
|
|
142
|
+
* error message on an input nobody types by accident. The alternative
|
|
143
|
+
* (hand-rolling the schema with `z.custom`) makes the tool's inputSchema
|
|
144
|
+
* unrepresentable in JSON Schema — "Custom types cannot be represented in JSON
|
|
145
|
+
* Schema" — which breaks `tools/list` for every MCP client. That cure is far
|
|
146
|
+
* worse than the disease.
|
|
147
|
+
*/
|
|
148
|
+
function unknownAgentKeys(models, known) {
|
|
149
|
+
return Object.keys(models ?? {}).filter((k) => !known.includes(k));
|
|
150
|
+
}
|
|
108
151
|
const agentInputSchema = {
|
|
109
152
|
prompt: z.string().describe("The task or question for the agent, in natural language."),
|
|
110
153
|
model: modelArg.describe('Optional model id passed through to the CLI, overriding that CLI\'s configured/default model (e.g. "o3"). Model names are agent-specific. Must match [A-Za-z0-9][A-Za-z0-9._:/-]{0,127} — a flag-shaped value is rejected.'),
|
|
@@ -223,7 +266,8 @@ resolve = resolveOnPath) {
|
|
|
223
266
|
prompt: z
|
|
224
267
|
.string()
|
|
225
268
|
.describe("The task or question to send to every agent, in natural language."),
|
|
226
|
-
model: modelArg.describe("Optional model id
|
|
269
|
+
model: modelArg.describe("Optional model id applied to EVERY agent as a fallback. Model namespaces do not overlap between agents, so a single value is usually valid for only one of them — prefer `models` for a fan-out. Must match [A-Za-z0-9][A-Za-z0-9._:/-]{0,127} — a flag-shaped value is rejected."),
|
|
270
|
+
models: modelsArg.describe('Per-agent model overrides, e.g. {"codex":"o3","agy":"gemini-3.6-flash-low"}. Takes precedence over `model` for the agents named; any agent not listed falls back to `model`, then to its own CLI default. Keys must be enabled agent names (an unknown name is rejected with the valid list). Each value must match [A-Za-z0-9][A-Za-z0-9._:/-]{0,127}.'),
|
|
227
271
|
cwd: z
|
|
228
272
|
.string()
|
|
229
273
|
.optional()
|
|
@@ -242,15 +286,37 @@ resolve = resolveOnPath) {
|
|
|
242
286
|
.describe("Per-agent idle/inactivity timeout in milliseconds — killed only if the agent produces NO output for this long (resets on each output chunk; default 300000 = 5 minutes)."),
|
|
243
287
|
},
|
|
244
288
|
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
245
|
-
}, async ({ prompt, model, cwd, timeoutMs, idleTimeoutMs }, extra) => {
|
|
246
|
-
|
|
289
|
+
}, async ({ prompt, model, models, cwd, timeoutMs, idleTimeoutMs }, extra) => {
|
|
290
|
+
const names = adapters.map((a) => a.name);
|
|
291
|
+
const unknown = unknownAgentKeys(models, names);
|
|
292
|
+
if (unknown.length > 0) {
|
|
293
|
+
return {
|
|
294
|
+
isError: true,
|
|
295
|
+
content: [
|
|
296
|
+
{
|
|
297
|
+
type: "text",
|
|
298
|
+
text: `run_all: unknown agent${unknown.length > 1 ? "s" : ""} in \`models\`: ${unknown.join(", ")}; enabled agents: ${names.join(", ")}`,
|
|
299
|
+
},
|
|
300
|
+
],
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
if (!(await confirmOrCancel(
|
|
304
|
+
// Per-agent models are as attacker-influenceable as the scalar and are
|
|
305
|
+
// forwarded to a CLI, so the human gate must show them too.
|
|
306
|
+
buildRunAllMessage(names, { prompt, cwd, model, models })))) {
|
|
247
307
|
return { isError: true, content: [{ type: "text", text: `run_all: ${CANCEL_TAIL}` }] };
|
|
248
308
|
}
|
|
249
309
|
// One shared emitter for the whole batch: a single progressToken and a
|
|
250
310
|
// single monotonic counter, so 4 concurrent adapters cannot emit colliding
|
|
251
311
|
// progress values.
|
|
252
312
|
const onActivity = makeProgressEmitter(extra, "run_all");
|
|
253
|
-
const settled = await Promise.allSettled(adapters.map((adapter) => runAdapter(adapter, exec, {
|
|
313
|
+
const settled = await Promise.allSettled(adapters.map((adapter) => runAdapter(adapter, exec, {
|
|
314
|
+
prompt,
|
|
315
|
+
model: resolveModel(adapter.name, models, model),
|
|
316
|
+
cwd,
|
|
317
|
+
timeoutMs,
|
|
318
|
+
idleTimeoutMs,
|
|
319
|
+
}, onActivity)));
|
|
254
320
|
const content = settled.map((outcome, i) => {
|
|
255
321
|
const adapter = adapters[i];
|
|
256
322
|
const name = adapter.name;
|
|
@@ -273,11 +339,17 @@ resolve = resolveOnPath) {
|
|
|
273
339
|
reviewer: z.string().describe("Adapter name of the agent that judges the change"),
|
|
274
340
|
prompt: z.string().describe("Task or question to send to the runner agent"),
|
|
275
341
|
cwd: z.string().describe("Git working tree the runner operates in (REQUIRED)"),
|
|
276
|
-
model: modelArg.describe("
|
|
342
|
+
model: modelArg.describe("Fallback model for BOTH agents. Only useful when runner and reviewer are the same agent — model namespaces do not overlap, so one value cannot be valid for two different CLIs. For the cross-agent setup this tool recommends, use `runnerModel` / `reviewerModel`. Must match [A-Za-z0-9][A-Za-z0-9._:/-]{0,127}."),
|
|
343
|
+
runnerModel: modelArg.describe("Model for the RUNNER agent, overriding `model`. Use this (not `model`) when runner and reviewer are different agents."),
|
|
344
|
+
reviewerModel: modelArg.describe("Model for the REVIEWER agent, overriding `model`. Lets you review with a different engine/tier than the one that wrote the change."),
|
|
277
345
|
timeoutMs: z.number().int().positive().optional().describe("Per-agent timeout in ms"),
|
|
278
346
|
},
|
|
279
347
|
annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: true },
|
|
280
|
-
}, async ({ runner, reviewer, prompt, cwd, model, timeoutMs }) => {
|
|
348
|
+
}, async ({ runner, reviewer, prompt, cwd, model, runnerModel, reviewerModel, timeoutMs }) => {
|
|
349
|
+
// Each role resolves independently: the whole point is that runner and
|
|
350
|
+
// reviewer are usually DIFFERENT CLIs with disjoint model namespaces.
|
|
351
|
+
const runnerModelId = runnerModel ?? model;
|
|
352
|
+
const reviewerModelId = reviewerModel ?? model;
|
|
281
353
|
const runnerAdapter = adapters.find((a) => a.name === runner);
|
|
282
354
|
const reviewerAdapter = adapters.find((a) => a.name === reviewer);
|
|
283
355
|
if (!runnerAdapter || !reviewerAdapter) {
|
|
@@ -297,7 +369,10 @@ resolve = resolveOnPath) {
|
|
|
297
369
|
],
|
|
298
370
|
};
|
|
299
371
|
}
|
|
300
|
-
if (!(await confirmOrCancel(
|
|
372
|
+
if (!(await confirmOrCancel(
|
|
373
|
+
// Both resolved models are shown: they are attacker-influenceable and
|
|
374
|
+
// are forwarded to a CLI, so neither may be hidden from the human gate.
|
|
375
|
+
`review_change: run ${runner} in ${cwd}, then review with ${reviewer}\nprompt: ${prompt}${runnerModelId === undefined ? "" : `\nrunner model: ${runnerModelId}`}${reviewerModelId === undefined ? "" : `\nreviewer model: ${reviewerModelId}`}`))) {
|
|
301
376
|
return {
|
|
302
377
|
isError: true,
|
|
303
378
|
content: [{ type: "text", text: `review_change: ${CANCEL_TAIL}` }],
|
|
@@ -346,7 +421,12 @@ resolve = resolveOnPath) {
|
|
|
346
421
|
}
|
|
347
422
|
let runnerResult;
|
|
348
423
|
try {
|
|
349
|
-
runnerResult = await runAdapter(runnerAdapter, exec, {
|
|
424
|
+
runnerResult = await runAdapter(runnerAdapter, exec, {
|
|
425
|
+
prompt,
|
|
426
|
+
model: runnerModelId,
|
|
427
|
+
cwd,
|
|
428
|
+
timeoutMs,
|
|
429
|
+
});
|
|
350
430
|
}
|
|
351
431
|
catch (err) {
|
|
352
432
|
const { message } = classifyFailure(runnerAdapter, { error: err });
|
|
@@ -446,9 +526,17 @@ resolve = resolveOnPath) {
|
|
|
446
526
|
try {
|
|
447
527
|
reviewResult = await runAdapter(reviewerAdapter, exec, {
|
|
448
528
|
prompt: reviewPrompt,
|
|
449
|
-
model,
|
|
529
|
+
model: reviewerModelId,
|
|
450
530
|
cwd: reviewerCwd,
|
|
451
531
|
timeoutMs,
|
|
532
|
+
// The reviewer only needs to READ the fenced diff and return a verdict,
|
|
533
|
+
// yet its prompt is the most attacker-influenced input in the server.
|
|
534
|
+
// So it runs least-privilege. How much that actually BUYS differs per
|
|
535
|
+
// CLI — codex gets an OS sandbox, claude gets harness-level deny rules,
|
|
536
|
+
// cursor/agy get advisory narrowing, and opencode gets nothing at all.
|
|
537
|
+
// Defense-in-depth alongside the nonce fence and the temp cwd; for three
|
|
538
|
+
// of the five this is narrowing, not a guarantee. See AGENTS.md.
|
|
539
|
+
permissionMode: "read-only",
|
|
452
540
|
});
|
|
453
541
|
}
|
|
454
542
|
catch (err) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much the agent is allowed to do on this run.
|
|
3
|
+
*
|
|
4
|
+
* - `"write"` — the agent may edit files and run commands in `cwd`. The default.
|
|
5
|
+
* - `"read-only"` — the agent should only read and answer. Used by the
|
|
6
|
+
* `review_change` REVIEWER, whose prompt embeds an attacker-controlled diff
|
|
7
|
+
* and which only needs to return a verdict.
|
|
8
|
+
*
|
|
9
|
+
* **Enforcement differs per CLI and must not be overstated.** Only `codex`
|
|
10
|
+
* (`--sandbox`, OS-level) and `claude` (deny rules, harness-level) genuinely
|
|
11
|
+
* restrict the agent. `cursor --mode plan` is model-advisory; `agy` simply has
|
|
12
|
+
* its permission grant withheld, which makes headless runs auto-deny write and
|
|
13
|
+
* command tools — narrowing, not a sandbox; and `opencode` has no CLI lever at
|
|
14
|
+
* all, so for it `read-only` is a documented no-op. Table in AGENTS.md.
|
|
15
|
+
*/
|
|
16
|
+
export type PermissionMode = "read-only" | "write";
|
|
1
17
|
export interface AgentRunOptions {
|
|
2
18
|
model?: string;
|
|
19
|
+
/** Defaults to `"write"` when undefined, so existing call sites are unchanged. */
|
|
20
|
+
permissionMode?: PermissionMode;
|
|
3
21
|
}
|
|
4
22
|
export interface AgentInvocation {
|
|
5
23
|
/** argv passed to the binary (no shell involved). */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-mcp-hub",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "One MCP server bridging the Codex, Cursor, OpenCode, and
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "One MCP server bridging the Codex, Cursor, OpenCode, Claude, and Antigravity CLI agents",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/blackaxgit/agent-mcp-hub.git"
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"cursor",
|
|
19
19
|
"opencode",
|
|
20
20
|
"claude",
|
|
21
|
+
"antigravity",
|
|
22
|
+
"agy",
|
|
21
23
|
"coding-agent",
|
|
22
24
|
"stdio"
|
|
23
25
|
],
|