agent-coord-mcp 0.26.31 → 0.26.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/dist/capabilities.js +52 -0
- package/dist/capabilities.js.map +1 -1
- package/dist/seat-identity.js +116 -0
- package/dist/seat-identity.js.map +1 -0
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/pane.js +46 -0
- package/dist/tools/pane.js.map +1 -0
- package/dist/transports/herdr.js +29 -0
- package/dist/transports/herdr.js.map +1 -1
- package/dist/transports/types.js.map +1 -1
- package/package.json +1 -1
- package/scripts/coord-seat.mjs +90 -1
- package/scripts/coord-token.mjs +9 -62
- package/scripts/lib/seat-identity.mjs +14 -0
- package/src/capabilities.ts +50 -0
- package/src/seat-identity.ts +125 -0
- package/src/server.ts +9 -0
- package/src/tools/index.ts +1 -0
- package/src/tools/pane.ts +49 -0
- package/src/transports/herdr.ts +28 -1
- package/src/transports/types.ts +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pane.js","sourceRoot":"","sources":["../../src/tools/pane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,mCAAmC;IACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACvD,yEAAyE;IACzE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC;AAIF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAkF,EAClF,SAAS,GAAiC,eAAe,EAAE;IAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAyB,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,uFAAuF,EAAE,CAAC;IAC1J,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,0EAA0E,EAAE,CAAC;IAChJ,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,SAAS,CAAC,IAAI,8CAA8C,EAAE,CAAC;IACvK,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;IACpI,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,+CAAgD,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7H,CAAC;AACH,CAAC"}
|
package/dist/transports/herdr.js
CHANGED
|
@@ -491,6 +491,35 @@ export class HerdrTransport {
|
|
|
491
491
|
return { readable: true, state, source: `herdr pane ${target}` };
|
|
492
492
|
return { readable: false, why: `herdr reports agent_status "${status}" for pane ${target} — no agent state is published there, which is a MISSING signal, not a calm seat` };
|
|
493
493
|
}
|
|
494
|
+
/**
|
|
495
|
+
* ⟨q-927e28cd⟩ THE SCREEN, FOR A CONSUMER — herdr's own `pane read`, the same read `push`
|
|
496
|
+
* verifies with. Same guards, in the same order, as `readTick`: a marker that is not herdr's,
|
|
497
|
+
* one with no target, or herdr absent answers UNKNOWN naming which; a pane herdr cannot find
|
|
498
|
+
* is UNKNOWN too — it is gone, and a gone pane has no screen, not an empty one.
|
|
499
|
+
*/
|
|
500
|
+
async readPane(marker, opts = {}) {
|
|
501
|
+
return this.readPaneNow(marker, opts);
|
|
502
|
+
}
|
|
503
|
+
/** The whole rule, synchronous — `readPane` and the capabilities probe both call THIS, so the probe cannot pass while the verb behaves differently. */
|
|
504
|
+
readPaneNow(marker, opts = {}) {
|
|
505
|
+
if (marker.transport !== HERDR)
|
|
506
|
+
return { state: "unknown", why: `transport "${marker.transport}" is not herdr — this transport reads only its own panes` };
|
|
507
|
+
const target = targetOf(marker);
|
|
508
|
+
if (!target)
|
|
509
|
+
return { state: "unknown", why: "no target recorded on the marker" };
|
|
510
|
+
const avail = this.availability();
|
|
511
|
+
if (!avail.available)
|
|
512
|
+
return { state: "unknown", why: avail.reason };
|
|
513
|
+
const lines = Math.min(Math.max(Math.trunc(opts.lines ?? 200), 1), 2000);
|
|
514
|
+
const format = opts.format === "ansi" ? "ansi" : "text";
|
|
515
|
+
const read = this.#run(["pane", "read", target, "--source", "visible", "--lines", String(lines), "--format", format]);
|
|
516
|
+
if (!read.ok) {
|
|
517
|
+
if (read.error?.code === "pane_not_found")
|
|
518
|
+
return { state: "unknown", why: `herdr reports pane ${target} not found — a gone pane has no screen to read` };
|
|
519
|
+
return { state: "unknown", why: `herdr could not read pane ${target}: ${read.error?.message ?? read.stderr}` };
|
|
520
|
+
}
|
|
521
|
+
return { state: "read", text: read.stdout, lines, format, source: `herdr pane ${target}` };
|
|
522
|
+
}
|
|
494
523
|
/**
|
|
495
524
|
* ⟨q-1c95f7d4⟩ Task 1's open question — PUBLISH, and it needs a receipt it does not get.
|
|
496
525
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"herdr.js","sourceRoot":"","sources":["../../src/transports/herdr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"herdr.js","sourceRoot":"","sources":["../../src/transports/herdr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transports/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;;GAMG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAoB,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAA2B,CAAC;AAC5D,MAAM,CAAC,MAAM,KAAK,GAAG,OAAgB,CAAC;AAItC,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,gBAAgB,EAAE,KAAK,CAAU,CAAC;AAE5F;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAElE,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,SAA6B;IACtD,OAAO,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA6B;IAC9D,OAAO,SAAS,KAAK,SAAS,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,SAA6B,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC/F,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;IAC/D,IAAI,kBAAkB,CAAC,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA6B;IAC5D,OAAO,SAAS,KAAK,gBAAgB,CAAC;AACxC,CAAC;AAsED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAsD;IAC7E,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAmB,MAAS,EAAE,MAA0B;IAChF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACnD,CAAC;AAeD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3I,MAAM,CAAC,MAAM,aAAa,GAAwC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transports/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;;GAMG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAoB,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAA2B,CAAC;AAC5D,MAAM,CAAC,MAAM,KAAK,GAAG,OAAgB,CAAC;AAItC,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,gBAAgB,EAAE,KAAK,CAAU,CAAC;AAE5F;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAElE,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,SAA6B;IACtD,OAAO,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA6B;IAC9D,OAAO,SAAS,KAAK,SAAS,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,SAA6B,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IAC/F,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;IAC/D,IAAI,kBAAkB,CAAC,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA6B;IAC5D,OAAO,SAAS,KAAK,gBAAgB,CAAC;AACxC,CAAC;AAsED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAsD;IAC7E,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAmB,MAAS,EAAE,MAA0B;IAChF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACnD,CAAC;AAeD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAC3I,MAAM,CAAC,MAAM,aAAa,GAAwC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAiBxJ,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-coord-mcp",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.33",
|
|
4
4
|
"description": "File-backed MCP server for coordinating multiple AI coding agents (Claude Code, Cursor, Cline, etc.). Local stdio or networked over Streamable HTTP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/scripts/coord-seat.mjs
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
import { spawnSync } from "node:child_process";
|
|
26
26
|
import path from "node:path";
|
|
27
27
|
import { fileURLToPath } from "node:url";
|
|
28
|
+
import { identityProblem, loadTokens, readConfigIdentity, tokensFile, writeMcpConfig } from "./lib/seat-identity.mjs";
|
|
28
29
|
|
|
29
30
|
const HERE = path.dirname(fileURLToPath(import.meta.url));
|
|
30
31
|
const COORD_TOKEN = path.join(HERE, "coord-token.mjs");
|
|
@@ -58,6 +59,86 @@ export function resolvePane(explicitPane, run) {
|
|
|
58
59
|
);
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
/**
|
|
63
|
+
* ⟨q-0c5476ec⟩ `coord-seat launch <agent-id> --dir <dir>` — THE SEAT'S IDENTITY, STATED ONCE.
|
|
64
|
+
*
|
|
65
|
+
* The agent id is the one statement. The bearer is derived from `tokens.json[agentId]`, the config
|
|
66
|
+
* is written from that same pair, and the child is ALWAYS started with `--strict-mcp-config`, which
|
|
67
|
+
* is the flag whose absence let three seats take the global config's bearer and come back as
|
|
68
|
+
* somebody else. A config already on disk that states a DIFFERENT identity is refused here, before
|
|
69
|
+
* the child starts, naming which half disagreed — never left to surface as a 401 mid-session.
|
|
70
|
+
*
|
|
71
|
+
* The token is READ, not rotated: rotating on every launch would invalidate the seat's other
|
|
72
|
+
* configs, which is the ⟨q-54adf191⟩ failure one step earlier. Minting happens only when the seat
|
|
73
|
+
* has no token at all, and only when `--server`/`--pane` say where the config should point.
|
|
74
|
+
*/
|
|
75
|
+
export function launch({
|
|
76
|
+
argv,
|
|
77
|
+
env = process.env,
|
|
78
|
+
spawn = (cmd, args, opts) => spawnSync(cmd, args, opts),
|
|
79
|
+
mintRun = (args) => spawnSync(process.execPath, [COORD_TOKEN, ...args], { encoding: "utf8" }),
|
|
80
|
+
fail = die,
|
|
81
|
+
} = {}) {
|
|
82
|
+
function opt(name, fallback) {
|
|
83
|
+
const i = argv.indexOf(name);
|
|
84
|
+
return i >= 0 ? argv[i + 1] : fallback;
|
|
85
|
+
}
|
|
86
|
+
const agentId = argv[0];
|
|
87
|
+
if (!agentId || agentId.startsWith("--")) return fail("usage: coord-seat launch <agent-id> --dir <project-dir> [--server <url>] [--pane <target>] [--cmd claude]");
|
|
88
|
+
const dir = opt("--dir");
|
|
89
|
+
if (!dir) return fail("--dir <project-dir> is required");
|
|
90
|
+
const cmd = opt("--cmd", "claude");
|
|
91
|
+
const tokensPath = tokensFile({ dir: opt("--tokens-dir"), env });
|
|
92
|
+
const configPath = path.join(dir, ".mcp.json");
|
|
93
|
+
|
|
94
|
+
let tokens, config;
|
|
95
|
+
try {
|
|
96
|
+
tokens = loadTokens(tokensPath);
|
|
97
|
+
config = readConfigIdentity(configPath);
|
|
98
|
+
} catch (e) {
|
|
99
|
+
return fail(e.message);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// ⛔ REFUSE BEFORE THE CHILD STARTS. Both halves are named; neither message carries a bearer.
|
|
103
|
+
const problem = identityProblem({ agentId, configPath, config, tokens, tokensPath });
|
|
104
|
+
if (problem) {
|
|
105
|
+
return fail(
|
|
106
|
+
`refusing to launch '${agentId}': the ${problem.half} half of this seat's identity disagrees.\n ${problem.message}\n` +
|
|
107
|
+
` Nothing was started, and no file was changed.`,
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
let token = tokens[agentId];
|
|
112
|
+
if (!token) {
|
|
113
|
+
// No token at all: mint one through coord-token, which also writes the config from the same pair.
|
|
114
|
+
const server = opt("--server");
|
|
115
|
+
const pane = opt("--pane");
|
|
116
|
+
if (!server || !pane) {
|
|
117
|
+
return fail(
|
|
118
|
+
`'${agentId}' has no token in ${tokensPath}, so there is nothing to launch with. ` +
|
|
119
|
+
`Pass --server <url> --pane <target> and coord-seat will mint one and write ${configPath} from it.`,
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
const minted = mintRun(["add", agentId, "--emit-mcp-config", dir, "--server", server, "--pane", pane]);
|
|
123
|
+
if (minted.status !== 0) return fail(`coord-token add failed:\n${minted.stderr ?? ""}`);
|
|
124
|
+
token = String(minted.stdout ?? "").trim();
|
|
125
|
+
if (!token) return fail("coord-token add printed no token");
|
|
126
|
+
} else if (!config) {
|
|
127
|
+
// The seat has a token but no config here: write one from the same statement rather than
|
|
128
|
+
// letting the child inherit a global entry.
|
|
129
|
+
const server = opt("--server", config?.url);
|
|
130
|
+
const pane = opt("--pane");
|
|
131
|
+
if (!server) return fail(`no config at ${configPath} and no --server <url> given, so there is nothing to point '${agentId}' at`);
|
|
132
|
+
writeMcpConfig({ dir, agentId, server, token, pane });
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// ⛔ ALWAYS --strict-mcp-config: without it the child reads the global config too, and the global
|
|
136
|
+
// entry answers as whoever owns its bearer. That is the measured failure this command exists for.
|
|
137
|
+
const args = ["--strict-mcp-config", "--mcp-config", configPath];
|
|
138
|
+
const r = spawn(cmd, args, { cwd: dir, stdio: "inherit", env });
|
|
139
|
+
return { agentId, dir, configPath, cmd, args, status: r?.status ?? null };
|
|
140
|
+
}
|
|
141
|
+
|
|
61
142
|
export function main(run = (args) => spawnSync("herdr", args, { encoding: "utf8" }), argv = process.argv.slice(2)) {
|
|
62
143
|
function opt(name, fallback) {
|
|
63
144
|
const i = argv.indexOf(name);
|
|
@@ -93,4 +174,12 @@ export function main(run = (args) => spawnSync("herdr", args, { encoding: "utf8"
|
|
|
93
174
|
return { pane, dir, agentId };
|
|
94
175
|
}
|
|
95
176
|
|
|
96
|
-
if (import.meta.url === `file://${process.argv[1]}`)
|
|
177
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
178
|
+
const argv = process.argv.slice(2);
|
|
179
|
+
if (argv[0] === "launch") {
|
|
180
|
+
const r = launch({ argv: argv.slice(1) });
|
|
181
|
+
process.exit(r?.status ?? 0);
|
|
182
|
+
} else {
|
|
183
|
+
main();
|
|
184
|
+
}
|
|
185
|
+
}
|
package/scripts/coord-token.mjs
CHANGED
|
@@ -32,15 +32,12 @@
|
|
|
32
32
|
// in what the OPERATOR (or the agent's own first tool call) is handed, not in `process.env`.
|
|
33
33
|
|
|
34
34
|
import { randomBytes } from "node:crypto";
|
|
35
|
-
import {
|
|
36
|
-
readFileSync,
|
|
37
|
-
writeFileSync,
|
|
38
|
-
existsSync,
|
|
39
|
-
chmodSync,
|
|
40
|
-
mkdirSync,
|
|
41
|
-
} from "node:fs";
|
|
42
|
-
import { homedir } from "node:os";
|
|
35
|
+
import { writeFileSync, chmodSync, mkdirSync } from "node:fs";
|
|
43
36
|
import path from "node:path";
|
|
37
|
+
// ⟨q-0c5476ec⟩ the store resolution and the config writer are SHARED with coord-seat, so the
|
|
38
|
+
// launcher cannot read a different tokens.json than the one this mints into.
|
|
39
|
+
import { coordRoot, loadTokens, tokensFile, writeMcpConfig } from "./lib/seat-identity.mjs";
|
|
40
|
+
export { writeMcpConfig };
|
|
44
41
|
|
|
45
42
|
const argv = process.argv.slice(2);
|
|
46
43
|
function opt(name) {
|
|
@@ -52,29 +49,17 @@ function die(msg) {
|
|
|
52
49
|
process.exit(1);
|
|
53
50
|
}
|
|
54
51
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const ROOT =
|
|
58
|
-
opt("--dir") ??
|
|
59
|
-
process.env.AGENT_COORD_DIR ??
|
|
60
|
-
process.env.CLAUDE_COORD_DIR ??
|
|
61
|
-
path.join(homedir(), "agent-coord");
|
|
62
|
-
const TOKENS_FILE = path.join(ROOT, "tokens.json");
|
|
52
|
+
const ROOT = coordRoot({ dir: opt("--dir") });
|
|
53
|
+
const TOKENS_FILE = tokensFile({ dir: opt("--dir") });
|
|
63
54
|
|
|
64
55
|
const AGENT_ID_RE = /^[a-zA-Z0-9._-]{1,64}$/;
|
|
65
56
|
|
|
66
57
|
function load() {
|
|
67
|
-
if (!existsSync(TOKENS_FILE)) return {};
|
|
68
|
-
let parsed;
|
|
69
58
|
try {
|
|
70
|
-
|
|
59
|
+
return loadTokens(TOKENS_FILE);
|
|
71
60
|
} catch (e) {
|
|
72
|
-
die(`${TOKENS_FILE} is not valid JSON: ${e.message}`);
|
|
61
|
+
die(e.message.startsWith(TOKENS_FILE) ? e.message : `${TOKENS_FILE} is not valid JSON: ${e.message}`);
|
|
73
62
|
}
|
|
74
|
-
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
75
|
-
die(`${TOKENS_FILE} must be a JSON object of { "agent-id": "token" }`);
|
|
76
|
-
}
|
|
77
|
-
return parsed;
|
|
78
63
|
}
|
|
79
64
|
|
|
80
65
|
function save(map) {
|
|
@@ -85,44 +70,6 @@ function save(map) {
|
|
|
85
70
|
chmodSync(TOKENS_FILE, 0o600); // enforce even when the file pre-existed looser
|
|
86
71
|
}
|
|
87
72
|
|
|
88
|
-
/**
|
|
89
|
-
* Write a project-local `.mcp.json` (⟨q-8c23e5a3⟩ acceptance (a)) whose `agent-coord`
|
|
90
|
-
* entry embeds this seat's own token in the `Authorization` header — never a shared
|
|
91
|
-
* default, so a project that gets its OWN config never depends on (or silently becomes)
|
|
92
|
-
* a global fallback. mode 600, same as tokens.json: a bearer token is a secret regardless
|
|
93
|
-
* of which file holds it. `pane` is recorded under `_agentCoordPane`, a key no MCP client
|
|
94
|
-
* reads or writes — it exists so a re-run of this script, or `coord-seat`, can recover the
|
|
95
|
-
* pane a config was minted for without re-asking the operator, and so a human reading the
|
|
96
|
-
* file sees the fact `attach_agent` will need, instead of it living only in scrollback.
|
|
97
|
-
*/
|
|
98
|
-
export function writeMcpConfig({ dir, agentId, server, token, pane }) {
|
|
99
|
-
mkdirSync(dir, { recursive: true });
|
|
100
|
-
const configPath = path.join(dir, ".mcp.json");
|
|
101
|
-
let existing = {};
|
|
102
|
-
if (existsSync(configPath)) {
|
|
103
|
-
try {
|
|
104
|
-
existing = JSON.parse(readFileSync(configPath, "utf8"));
|
|
105
|
-
} catch (e) {
|
|
106
|
-
die(`${configPath} exists and is not valid JSON (${e.message}) — refusing to overwrite blindly`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
const config = {
|
|
110
|
-
...existing,
|
|
111
|
-
mcpServers: {
|
|
112
|
-
...(existing.mcpServers ?? {}),
|
|
113
|
-
"agent-coord": {
|
|
114
|
-
type: "http",
|
|
115
|
-
url: server,
|
|
116
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
117
|
-
...(pane ? { _agentCoordPane: pane } : {}),
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
};
|
|
121
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", { mode: 0o600 });
|
|
122
|
-
chmodSync(configPath, 0o600);
|
|
123
|
-
return configPath;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
73
|
const positional = argv.filter((a) => !a.startsWith("--"));
|
|
127
74
|
const cmd = positional[0];
|
|
128
75
|
const id = positional[1];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// ⟨q-0c5476ec⟩ — the launcher's view of the identity module, which LIVES IN src/ and ships in dist/.
|
|
2
|
+
//
|
|
3
|
+
// It was here first, and `capabilities.ts` probes it: a probe in dist importing out of scripts/ breaks
|
|
4
|
+
// any install that carries dist without scripts. Measured — the REAL SERVERS test stages dist+hooks
|
|
5
|
+
// only, and every server spawned from that copy died at import. So the module moved to src/ and this
|
|
6
|
+
// file is the thin re-export the scripts keep using.
|
|
7
|
+
export {
|
|
8
|
+
coordRoot,
|
|
9
|
+
tokensFile,
|
|
10
|
+
loadTokens,
|
|
11
|
+
writeMcpConfig,
|
|
12
|
+
readConfigIdentity,
|
|
13
|
+
identityProblem,
|
|
14
|
+
} from "../../dist/seat-identity.js";
|
package/src/capabilities.ts
CHANGED
|
@@ -44,6 +44,7 @@ import { recordAuthorityFor } from "./roles.js";
|
|
|
44
44
|
// ⟨q-e5cb3538⟩ The renderer and the byte class live in hooks/, shared with both pushers.
|
|
45
45
|
// @ts-expect-error — untyped .mjs sibling, deliberately not duplicated in TS
|
|
46
46
|
import { injectLine } from "../hooks/tier.mjs";
|
|
47
|
+
import { identityProblem } from "./seat-identity.js";
|
|
47
48
|
// @ts-expect-error — untyped .mjs sibling, deliberately not duplicated in TS
|
|
48
49
|
import { findControlByte } from "../hooks/control-bytes.mjs";
|
|
49
50
|
// ⟨q-15d763dc⟩ The ready-box guard's profile, as this process read it from its own env at start.
|
|
@@ -689,6 +690,32 @@ const PROBES: Probe[] = [
|
|
|
689
690
|
};
|
|
690
691
|
},
|
|
691
692
|
},
|
|
693
|
+
{
|
|
694
|
+
// ⟨q-927e28cd⟩ (0.26.32) — a consumer reads a seat's pane THROUGH its transport. The console
|
|
695
|
+
// answered 410 "session gone?" for every live herdr seat because it captured through tmux.
|
|
696
|
+
// Asked of the function read_pane reaches (HerdrTransport.readPaneNow) against a scripted
|
|
697
|
+
// herdr: a live pane is READ, a gone pane and a foreign marker are UNKNOWN — never an empty
|
|
698
|
+
// screen. A server on the pre-fix build has no readPaneNow and answers false.
|
|
699
|
+
id: "read-pane-through-transport",
|
|
700
|
+
since: "0.26.32",
|
|
701
|
+
run: () => {
|
|
702
|
+
const STATUS = "client:\n version: 0.9.0\nserver:\n status: running\n version: 0.9.0\n";
|
|
703
|
+
const run = (args: string[]) => {
|
|
704
|
+
if (args[0] === "status") return interpretHerdrReply({ status: 0, stdout: STATUS, stderr: "" });
|
|
705
|
+
if (args[1] === "read" && args[2] === "wP:p1") return interpretHerdrReply({ status: 0, stdout: "❯ PANE-PROBE\n", stderr: "" });
|
|
706
|
+
return interpretHerdrReply({ status: 0, stdout: JSON.stringify({ error: { code: "pane_not_found", message: `pane ${args[2]} not found` } }), stderr: "" });
|
|
707
|
+
};
|
|
708
|
+
const t = new HerdrTransport({ run, sleep: () => {}, env: {} }) as HerdrTransport & { readPaneNow?: (m: unknown, o?: unknown) => { state: string; text?: string } };
|
|
709
|
+
// BOTH methods: read_pane calls readPane, which must exist on the interface; readPaneNow is the rule it runs.
|
|
710
|
+
if (typeof t.readPane !== "function" || typeof t.readPaneNow !== "function") return { present: false, evidence: `HerdrTransport readPane=${typeof t.readPane} readPaneNow=${typeof t.readPaneNow} — this build cannot answer read_pane` };
|
|
711
|
+
const m = (target: string, kind: string = HERDR) => ({ agentId: "probe", transport: kind, pid: 0, since: 0, target, tmuxTarget: target });
|
|
712
|
+
const live = t.readPaneNow(m("wP:p1"));
|
|
713
|
+
const gone = t.readPaneNow(m("wP:p9"));
|
|
714
|
+
const foreign = t.readPaneNow(m("wP:p1", "carrier-pigeon"));
|
|
715
|
+
const present = live.state === "read" && /PANE-PROBE/.test(live.text ?? "") && gone.state === "unknown" && foreign.state === "unknown";
|
|
716
|
+
return { present, evidence: `live pane -> ${live.state} · gone pane -> ${gone.state} · foreign marker -> ${foreign.state} -> present=${present}` };
|
|
717
|
+
},
|
|
718
|
+
},
|
|
692
719
|
{
|
|
693
720
|
// ⟨q-f995c3c7⟩ — a seat re-claiming its OWN pane is not an intruder. The same-pane exception read
|
|
694
721
|
// process.env.TMUX_PANE only, which a herdr seat never has, so no herdr seat could match its own
|
|
@@ -708,6 +735,29 @@ const PROBES: Probe[] = [
|
|
|
708
735
|
};
|
|
709
736
|
},
|
|
710
737
|
},
|
|
738
|
+
{
|
|
739
|
+
// ⟨q-0c5476ec⟩ — a seat's identity is stated once, and the launcher refuses a config that states
|
|
740
|
+
// another seat. Probed through the function coord-seat itself calls, so a build whose launcher
|
|
741
|
+
// would start such a seat answers false here.
|
|
742
|
+
id: "seat-identity-stated-once",
|
|
743
|
+
since: "0.26.33",
|
|
744
|
+
run: () => {
|
|
745
|
+
const tokens = { "seat-a": "tk_probe_a", "seat-b": "tk_probe_b" };
|
|
746
|
+
const at = (token: string) =>
|
|
747
|
+
identityProblem({ agentId: "seat-a", configPath: "/p/.mcp.json", config: { token }, tokens, tokensPath: "/c/tokens.json" });
|
|
748
|
+
const foreign = at("tk_probe_b");
|
|
749
|
+
const rotated = at("tk_gone");
|
|
750
|
+
const agreeing = at("tk_probe_a");
|
|
751
|
+
const namesOther = !!foreign && /'seat-b'/.test(foreign.message) && /'seat-a'/.test(foreign.message);
|
|
752
|
+
const namesRotation = !!rotated && /rotated or revoked/.test(rotated.message);
|
|
753
|
+
const leaks = [foreign, rotated].some((p) => p && /tk_probe_b|tk_gone/.test(p.message));
|
|
754
|
+
const present = namesOther && namesRotation && agreeing === null && !leaks;
|
|
755
|
+
return {
|
|
756
|
+
present,
|
|
757
|
+
evidence: `another seat's bearer -> names both seats: ${namesOther} · unknown bearer -> named as rotated: ${namesRotation} · agreeing -> no problem: ${agreeing === null} · bearer in message: ${leaks} -> present=${present}`,
|
|
758
|
+
};
|
|
759
|
+
},
|
|
760
|
+
},
|
|
711
761
|
{
|
|
712
762
|
id: "record-authority",
|
|
713
763
|
since: "0.24.0",
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// ⟨q-0c5476ec⟩ — A SEAT'S IDENTITY IS STATED ONCE, AND THE TWO HALVES CANNOT DISAGREE SILENTLY.
|
|
2
|
+
//
|
|
3
|
+
// A seat's identity was typed twice: as an agent id at launch, and as a bearer inside a config.
|
|
4
|
+
// Every HTTP identity failure so far is that duplication. Measured on the other machine: a seat
|
|
5
|
+
// launched WITHOUT `--strict-mcp-config` took the GLOBAL config's bearer and came back as whoever
|
|
6
|
+
// owned it — three times in two days on three seats, with no in-session recovery; and a config
|
|
7
|
+
// holding a token `tokens.json` had since rotated returned a bare 401, with nothing in the config
|
|
8
|
+
// saying it was stale.
|
|
9
|
+
//
|
|
10
|
+
// So the launcher derives BOTH halves from one statement (the agent id), and refuses before start
|
|
11
|
+
// when a config on disk disagrees, NAMING WHICH HALF disagreed. Refusing at launch is the point: a
|
|
12
|
+
// 401 later is the same fault read as a broken daemon.
|
|
13
|
+
//
|
|
14
|
+
// ⛔ NO SECRET IN ANY MESSAGE. Not the token, not a prefix, not a hash: a refusal a human pastes
|
|
15
|
+
// into a bus message must not carry the bearer. The messages name AGENTS and FILES, never bytes.
|
|
16
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
17
|
+
import { homedir } from "node:os";
|
|
18
|
+
import path from "node:path";
|
|
19
|
+
|
|
20
|
+
/** Must match store.ts ROOT/TOKENS_FILE resolution exactly, or we read a file the bus never wrote. */
|
|
21
|
+
export function coordRoot({ dir, env = process.env }: { dir?: string; env?: NodeJS.ProcessEnv } = {}): string {
|
|
22
|
+
return dir ?? env.AGENT_COORD_DIR ?? env.CLAUDE_COORD_DIR ?? path.join(homedir(), "agent-coord");
|
|
23
|
+
}
|
|
24
|
+
export const tokensFile = (opts?: { dir?: string; env?: NodeJS.ProcessEnv }) => path.join(coordRoot(opts), "tokens.json");
|
|
25
|
+
|
|
26
|
+
/** `{ "agent-id": "token" }`, or `{}` when absent. Throws on malformed, never on missing. */
|
|
27
|
+
export function loadTokens(file: string): Record<string, string> {
|
|
28
|
+
if (!existsSync(file)) return {};
|
|
29
|
+
const parsed: unknown = JSON.parse(readFileSync(file, "utf8"));
|
|
30
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
31
|
+
throw new Error(`${file} must be a JSON object of { "agent-id": "token" }`);
|
|
32
|
+
}
|
|
33
|
+
return parsed as Record<string, string>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Write a project-local `.mcp.json` (⟨q-8c23e5a3⟩ acceptance (a)) whose `agent-coord` entry embeds
|
|
38
|
+
* this seat's own token — never a shared default, so a project that gets its OWN config never
|
|
39
|
+
* depends on (or silently becomes) a global fallback. mode 600, same as tokens.json.
|
|
40
|
+
* `pane` is recorded under `_agentCoordPane`, a key no MCP client reads or writes: it exists so a
|
|
41
|
+
* re-run, or `coord-seat`, can recover the pane a config was minted for without re-asking.
|
|
42
|
+
*/
|
|
43
|
+
export function writeMcpConfig({ dir, agentId, server, token, pane }: { dir: string; agentId: string; server: string; token: string; pane?: string | null }): string {
|
|
44
|
+
mkdirSync(dir, { recursive: true });
|
|
45
|
+
const configPath = path.join(dir, ".mcp.json");
|
|
46
|
+
let existing: Record<string, any> = {};
|
|
47
|
+
if (existsSync(configPath)) {
|
|
48
|
+
try {
|
|
49
|
+
existing = JSON.parse(readFileSync(configPath, "utf8"));
|
|
50
|
+
} catch (e) {
|
|
51
|
+
throw new Error(`${configPath} exists and is not valid JSON (${(e as Error).message}) — refusing to overwrite blindly`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const config: Record<string, any> = {
|
|
55
|
+
...existing,
|
|
56
|
+
mcpServers: {
|
|
57
|
+
...(existing.mcpServers ?? {}),
|
|
58
|
+
"agent-coord": {
|
|
59
|
+
type: "http",
|
|
60
|
+
url: server,
|
|
61
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
62
|
+
...(pane ? { _agentCoordPane: pane } : {}),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", { mode: 0o600 });
|
|
67
|
+
chmodSync(configPath, 0o600);
|
|
68
|
+
return configPath;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** The agent-coord entry a config states, or null when there is no config / no such entry. */
|
|
72
|
+
export type ConfigIdentity = { token: string | null; url: string | null; pane: string | null };
|
|
73
|
+
export function readConfigIdentity(configPath: string): ConfigIdentity | null {
|
|
74
|
+
if (!existsSync(configPath)) return null;
|
|
75
|
+
let parsed: any;
|
|
76
|
+
try {
|
|
77
|
+
parsed = JSON.parse(readFileSync(configPath, "utf8"));
|
|
78
|
+
} catch (e) {
|
|
79
|
+
throw new Error(`${configPath} is not valid JSON (${(e as Error).message}) — refusing to read an identity out of it`);
|
|
80
|
+
}
|
|
81
|
+
const entry = parsed?.mcpServers?.["agent-coord"];
|
|
82
|
+
if (!entry) return null;
|
|
83
|
+
const auth = String(entry.headers?.Authorization ?? "");
|
|
84
|
+
const m = /^Bearer\s+(.+)$/.exec(auth);
|
|
85
|
+
return { token: m ? m[1].trim() : null, url: entry.url ?? null, pane: entry._agentCoordPane ?? null };
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Does the config on disk state the same seat the launch claims?
|
|
90
|
+
*
|
|
91
|
+
* Returns null when they agree (or when there is no config to disagree — the launcher writes one
|
|
92
|
+
* from the single statement). Otherwise `{ half, message }`, where `half` names the side that is
|
|
93
|
+
* wrong relative to `tokens.json`, which is the bus's own map and therefore the authority.
|
|
94
|
+
*/
|
|
95
|
+
export type IdentityProblem = { half: "config" | "tokens"; message: string };
|
|
96
|
+
export function identityProblem({ agentId, configPath, config, tokens, tokensPath }: { agentId: string; configPath: string; config: { token?: string | null } | null; tokens: Record<string, string>; tokensPath: string }): IdentityProblem | null {
|
|
97
|
+
const expected = tokens?.[agentId];
|
|
98
|
+
if (!config) return null;
|
|
99
|
+
if (!config.token) {
|
|
100
|
+
return {
|
|
101
|
+
half: "config",
|
|
102
|
+
message:
|
|
103
|
+
`${configPath} has an agent-coord entry with no bearer, so it states no identity, while the launch claims '${agentId}'. ` +
|
|
104
|
+
`Delete it and relaunch through coord-seat, which writes both halves from the one statement.`,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (!expected) {
|
|
108
|
+
return {
|
|
109
|
+
half: "tokens",
|
|
110
|
+
message:
|
|
111
|
+
`${tokensPath} holds no token for '${agentId}', so the launch identity cannot be honoured, while ${configPath} carries a bearer. ` +
|
|
112
|
+
`Mint one with \`coord-token add ${agentId}\` (it rotates if one exists) and relaunch, or launch the agent whose token that config holds.`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (config.token === expected) return null;
|
|
116
|
+
const ownerOfConfigToken = Object.keys(tokens).find((a) => tokens[a] === config.token);
|
|
117
|
+
return {
|
|
118
|
+
half: "config",
|
|
119
|
+
message: ownerOfConfigToken
|
|
120
|
+
? `${configPath} carries the bearer of '${ownerOfConfigToken}', but the launch claims '${agentId}' — the two halves of this seat's identity disagree. ` +
|
|
121
|
+
`Launch '${ownerOfConfigToken}', or let coord-seat rewrite the config for '${agentId}'.`
|
|
122
|
+
: `${configPath} carries a bearer that ${tokensPath} does not know — it was rotated or revoked since the config was written, while the launch claims '${agentId}'. ` +
|
|
123
|
+
`Relaunch through coord-seat, which rewrites the config from the token '${agentId}' has now.`,
|
|
124
|
+
};
|
|
125
|
+
}
|
package/src/server.ts
CHANGED
|
@@ -84,6 +84,8 @@ import {
|
|
|
84
84
|
setRoomTopicTool,
|
|
85
85
|
statusSchema,
|
|
86
86
|
statusTool,
|
|
87
|
+
readPaneSchema,
|
|
88
|
+
readPaneTool,
|
|
87
89
|
unregisterSchema,
|
|
88
90
|
unregisterTool,
|
|
89
91
|
quitSchema,
|
|
@@ -441,6 +443,13 @@ function buildServer(initialBound?: string, opts: { trackSession?: boolean } = {
|
|
|
441
443
|
gate("agentId", statusTool as (a: Record<string, unknown>) => Promise<unknown>, { bindOnClaim: false }),
|
|
442
444
|
);
|
|
443
445
|
|
|
446
|
+
addTool(
|
|
447
|
+
"read_pane",
|
|
448
|
+
"Read what a seat's pane is showing, THROUGH the seat's transport (⟨q-927e28cd⟩, ADR-023 d4). Read-only: it names no marker field, shells out to nothing, and deletes nothing. Answers `state: \"read\"` with the screen text, or `state: \"unknown\"` with the reason — a pane that is gone, a transport that cannot read panes from this host (tmux-push-remote), or no marker. Never an empty or stale screen. `lines` caps the read (default 200, max 2000); `colors: true` keeps ANSI styling.",
|
|
449
|
+
readPaneSchema,
|
|
450
|
+
gate("agentId", readPaneTool as unknown as (a: Record<string, unknown>) => Promise<unknown>, { bindOnClaim: false }),
|
|
451
|
+
);
|
|
452
|
+
|
|
444
453
|
addTool(
|
|
445
454
|
"heartbeat",
|
|
446
455
|
"Refresh this agent's lastHeartbeat timestamp.",
|
package/src/tools/index.ts
CHANGED