agent-coord-mcp 0.14.0 → 0.16.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/tools/transport.ts"],"names":[],"mappings":"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"}
package/hooks/tier.mjs CHANGED
@@ -51,18 +51,38 @@ export function isGateRunnerRole(role) {
51
51
  // returns the batch to deliver (trigger(s) + entire queued routine backlog)
52
52
  // or null when nothing urgent arrived — the caller then leaves cursors alone
53
53
  // so the backlog stays unread and cannot be lost.
54
+ //
55
+ // maxAgeMs bounds how long routine traffic can sit without an urgent trigger:
56
+ // once the OLDEST queued message exceeds it, flushOverdue() drains the whole
57
+ // backlog as a routine-only digest. 0 (default) disables age-based flushing.
58
+ // Callers pass `now` explicitly so the class stays clock-free and testable.
54
59
  export class TierQueue {
55
- constructor() {
60
+ constructor(opts = {}) {
56
61
  this.routine = [];
62
+ this.maxAgeMs = opts.maxAgeMs ?? 0;
63
+ this.oldestAt = null;
57
64
  }
58
- ingest(msgs) {
65
+ ingest(msgs, now = 0) {
59
66
  const urgent = msgs.filter((m) => m.tier === "urgent");
60
- this.routine.push(...msgs.filter((m) => m.tier !== "urgent"));
67
+ const routine = msgs.filter((m) => m.tier !== "urgent");
68
+ if (routine.length > 0 && this.oldestAt === null) this.oldestAt = now;
69
+ this.routine.push(...routine);
61
70
  if (urgent.length === 0) return null;
62
71
  const batch = [...urgent, ...this.routine];
63
72
  this.routine = [];
73
+ this.oldestAt = null;
64
74
  return batch;
65
75
  }
76
+ // Drain the backlog when its oldest entry has waited past maxAgeMs.
77
+ // Returns the routine-only batch to deliver, or null if nothing is overdue.
78
+ flushOverdue(now) {
79
+ if (this.maxAgeMs <= 0 || this.oldestAt === null) return null;
80
+ if (now - this.oldestAt < this.maxAgeMs) return null;
81
+ const batch = this.routine;
82
+ this.routine = [];
83
+ this.oldestAt = null;
84
+ return batch.length > 0 ? batch : null;
85
+ }
66
86
  size() {
67
87
  return this.routine.length;
68
88
  }
@@ -19,6 +19,9 @@
19
19
  * AGENT_COORD_DEBOUNCE_MS coalesce window for bursts (default 1000)
20
20
  * AGENT_COORD_POLL_MS fallback poll interval (default 1000)
21
21
  * AGENT_COORD_TARGET_GRACE missed pane probes before self-exit (default 3)
22
+ * AGENT_COORD_MAX_QUEUE_MS max time routine traffic may queue without an
23
+ * urgent trigger before it flushes as a digest
24
+ * (default 300000 = 5min; 0 disables)
22
25
  *
23
26
  * Safety:
24
27
  * - drops messages where from === AGENT_COORD_ID (no self-echo)
@@ -83,6 +86,11 @@ const TARGET_GRACE = parseInt(process.env.AGENT_COORD_TARGET_GRACE || "3", 10);
83
86
  // agent; everything else queues unread and rides the next push as a coalesced
84
87
  // digest. AGENT_COORD_TIERS=0 restores legacy push-everything.
85
88
  const TIERS_ENABLED = process.env.AGENT_COORD_TIERS !== "0";
89
+ // Max-age flush: routine traffic never waits longer than this for an urgent
90
+ // trigger — once the oldest queued message is overdue, the backlog flushes as
91
+ // a routine-only digest. Bounds the silent-fleet failure mode where FYI:/DONE:
92
+ // chatter queues forever because nothing urgent ever arrives.
93
+ const MAX_QUEUE_MS = parseInt(process.env.AGENT_COORD_MAX_QUEUE_MS || "300000", 10);
86
94
  // Gate runners (QA/coordinator) receive DONE: as push-now; countersigned
87
95
  // SCOPE: changes are honored only from these trusted ids. Re-resolved from
88
96
  // the registry every 30s so a role change doesn't strand a stale pusher;
@@ -171,6 +179,24 @@ function readJsonl(file) {
171
179
  // sender can't smuggle an arbitrary slash command past the guard below.
172
180
  const CONTROL_COMMANDS = new Set(["/clear", "/compact"]);
173
181
 
182
+ // Shells we refuse to inject into: if the pane's foreground command is one of
183
+ // these, the agent CLI has exited and typing would run pasted text as commands.
184
+ const SHELL_COMMANDS = new Set(["bash", "zsh", "sh", "fish", "dash", "ksh"]);
185
+
186
+ // Foreground command of the target pane, or null if it can't be determined
187
+ // (in which case we do NOT block — fall back to the bracketed-paste protection).
188
+ function paneCurrentCommand() {
189
+ const r = spawnSync("tmux", [
190
+ "display-message",
191
+ "-p",
192
+ "-t",
193
+ TMUX_TARGET,
194
+ "#{pane_current_command}",
195
+ ]);
196
+ if (r.status !== 0) return null;
197
+ return (r.stdout ?? "").toString().trim() || null;
198
+ }
199
+
174
200
  function isControl(m) {
175
201
  return (
176
202
  !!m &&
@@ -197,7 +223,7 @@ function shouldInject(m) {
197
223
  // never lost. Routine messages wait in tierQueue until a push-now trigger
198
224
  // coalesces them; their offset commits travel in pendingCommits alongside.
199
225
  const stagedOffsets = {};
200
- const tierQueue = new TierQueue();
226
+ const tierQueue = new TierQueue({ maxAgeMs: TIERS_ENABLED ? MAX_QUEUE_MS : 0 });
201
227
  let pendingCommits = [];
202
228
 
203
229
  function collectSource(label, file, cursorKey, cur, staged) {
@@ -280,8 +306,10 @@ function checkOnce() {
280
306
  }
281
307
  // Tiered delivery: push only when the fresh batch contains a push-now
282
308
  // trigger. A routine-only backlog stays queued (on-disk cursor untouched)
283
- // so an idle agent is never woken — it rides the digest of the next trigger.
284
- const batch = tierQueue.ingest(staged.msgs);
309
+ // so an idle agent is never woken — it rides the digest of the next trigger,
310
+ // or flushes on its own once the oldest queued message exceeds MAX_QUEUE_MS.
311
+ const now = Date.now();
312
+ const batch = tierQueue.ingest(staged.msgs, now) ?? tierQueue.flushOverdue(now);
285
313
  if (!batch) return;
286
314
  pending.push(...batch);
287
315
  scheduleFlush();
@@ -328,17 +356,28 @@ async function flush() {
328
356
  // its own as a RAW line so the TUI runs it as a slash command — a banner or
329
357
  // `[DM …]` prefix would turn it into plain chat text instead.
330
358
  async function injectViaTmux(batch) {
359
+ // Fail-closed pane guard: never type into a pane that has dropped to a shell
360
+ // (crashed/exited agent CLI). Bracketed paste protects a compliant TUI, but a
361
+ // raw shell would execute pasted lines — so refuse and let the at-least-once
362
+ // cursor redeliver once the agent CLI is back.
363
+ const cmd = paneCurrentCommand();
364
+ if (cmd !== null && SHELL_COMMANDS.has(cmd)) {
365
+ process.stderr.write(
366
+ `[tmux-pusher] pane '${TMUX_TARGET}' is at a shell ('${cmd}'), not the agent CLI — skipping inject (will redeliver)\n`,
367
+ );
368
+ return;
369
+ }
331
370
  let run = [];
332
371
  const flushRun = async () => {
333
372
  if (run.length === 0) return;
334
- await pasteAndSubmit(formatBatch(run));
373
+ await pasteAndSubmit(formatBatch(run), true); // peer content: inert bracketed paste
335
374
  writeReceipts(run); // stamp only AFTER the paste+submit resolves
336
375
  run = [];
337
376
  };
338
377
  for (const m of batch) {
339
378
  if (isControl(m)) {
340
379
  await flushRun();
341
- await pasteAndSubmit(m.text.trim());
380
+ await pasteAndSubmit(m.text.trim(), false); // validated control: raw slash command
342
381
  writeReceipts([m]);
343
382
  } else {
344
383
  run.push(m);
@@ -373,7 +412,11 @@ function writeReceipts(msgs) {
373
412
  }
374
413
  }
375
414
 
376
- function pasteAndSubmit(payload) {
415
+ // bracketed=true wraps the paste in bracketed-paste markers (paste-buffer -p) so
416
+ // a compliant TUI treats the payload as inert data — embedded newlines can't
417
+ // submit lines or smuggle a "/command". Control commands (/clear, /compact) must
418
+ // paste RAW (bracketed=false) so the TUI still runs them as slash commands.
419
+ function pasteAndSubmit(payload, bracketed = false) {
377
420
  return new Promise((resolve, reject) => {
378
421
  const load = spawn("tmux", ["load-buffer", "-b", BUFFER_NAME, "-"]);
379
422
  load.on("error", reject);
@@ -381,6 +424,7 @@ function pasteAndSubmit(payload) {
381
424
  if (code !== 0) return reject(new Error(`tmux load-buffer exit ${code}`));
382
425
  const paste = spawnSync("tmux", [
383
426
  "paste-buffer",
427
+ ...(bracketed ? ["-p"] : []),
384
428
  "-b",
385
429
  BUFFER_NAME,
386
430
  "-t",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-coord-mcp",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
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": {
@@ -762,7 +762,7 @@ async function postStatus(status) {
762
762
  async function runDoctor(fix, emit) {
763
763
  let doctorTool;
764
764
  try {
765
- ({ doctorTool } = await import(new URL("../dist/tools.js", import.meta.url)));
765
+ ({ doctorTool } = await import(new URL("../dist/tools/index.js", import.meta.url)));
766
766
  } catch (e) {
767
767
  emit(A.red(`/doctor unavailable: could not load the doctor tool (${e?.message ?? e}).`));
768
768
  emit(A.dim(" This build may be missing dist/ — run `npm run build` in the package."));
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env bash
2
+ # coord-node.sh — one-command onboarding for a REMOTE machine to join the coord bus.
3
+ #
4
+ # The networked counterpart to spawn-agent.sh. spawn-agent.sh wires a LOCAL agent
5
+ # to a bus on the same box (hooks/tmux-pusher.mjs, reads the filesystem);
6
+ # coord-node wires a REMOTE agent to a networked bus over HTTP
7
+ # (scripts/coord-pusher.mjs). It:
8
+ # 1. starts a tmux session running your agent CLI,
9
+ # 2. auto-resolves that pane's tmux target,
10
+ # 3. launches the coord-pusher daemon pointed at the bus with this node's token.
11
+ #
12
+ # MVP daemon: per-node token. The operator mints a per-agent entry in the bus's
13
+ # tokens.json and passes that token here (single-use enrollment tokens + mTLS are
14
+ # a later step). It reuses spawn-agent.sh's tmux/pid conventions, so
15
+ # `scripts/stop-agent.sh --id <id>` also tears a coord-node down.
16
+ #
17
+ # Usage:
18
+ # scripts/coord-node.sh --server <url> --token <tok> --id <agent-id> \
19
+ # [--cmd 'claude'] [--allowlist a,b] [--no-room] [--dir <coord-dir>]
20
+ #
21
+ # Prefer the AGENT_COORD_TOKEN env var over --token so the secret never lands in
22
+ # your shell history or this script's argv:
23
+ # AGENT_COORD_TOKEN=tk_abc scripts/coord-node.sh --server https://bus:8765/mcp --id worker-2
24
+
25
+ set -euo pipefail
26
+
27
+ SERVER="${AGENT_COORD_SERVER:-}"
28
+ TOKEN="${AGENT_COORD_TOKEN:-}"
29
+ ID=""
30
+ CMD="claude"
31
+ ALLOWLIST=""
32
+ NO_ROOM=""
33
+ COORD_DIR=""
34
+
35
+ # tolerate an optional leading 'up' verb for symmetry with future subcommands
36
+ [[ "${1:-}" == "up" ]] && shift
37
+
38
+ while [[ $# -gt 0 ]]; do
39
+ case "$1" in
40
+ --server) SERVER="$2"; shift 2 ;;
41
+ --token) TOKEN="$2"; shift 2 ;;
42
+ --id|--agent) ID="$2"; shift 2 ;;
43
+ --cmd) CMD="$2"; shift 2 ;;
44
+ --allowlist) ALLOWLIST="$2"; shift 2 ;;
45
+ --no-room) NO_ROOM=1; shift ;;
46
+ --dir) COORD_DIR="$2"; shift 2 ;;
47
+ -h|--help) sed -n '2,29p' "$0"; exit 0 ;;
48
+ *) echo "unknown arg: $1" >&2; exit 2 ;;
49
+ esac
50
+ done
51
+
52
+ [[ -z "$SERVER" ]] && { echo "--server (or AGENT_COORD_SERVER) required" >&2; exit 2; }
53
+ [[ -z "$TOKEN" ]] && { echo "--token (or AGENT_COORD_TOKEN) required" >&2; exit 2; }
54
+ [[ -z "$ID" ]] && { echo "--id required" >&2; exit 2; }
55
+
56
+ command -v tmux >/dev/null || { echo "tmux not installed" >&2; exit 1; }
57
+ command -v node >/dev/null || { echo "node not installed" >&2; exit 1; }
58
+
59
+ REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
60
+ PUSHER="$REPO_DIR/scripts/coord-pusher.mjs"
61
+ [[ -f "$PUSHER" ]] || { echo "missing $PUSHER" >&2; exit 1; }
62
+
63
+ ROOT="${COORD_DIR:-${AGENT_COORD_DIR:-$HOME/agent-coord}}"
64
+ LOGDIR="$ROOT/logs"
65
+ PIDDIR="$ROOT/pids"
66
+ mkdir -p "$LOGDIR" "$PIDDIR"
67
+
68
+ SESSION="coord-$ID"
69
+ PID_FILE="$PIDDIR/pusher-$ID.pid"
70
+
71
+ if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
72
+ echo "node daemon already running for '$ID' (pid $(cat "$PID_FILE"))" >&2
73
+ exit 0
74
+ fi
75
+
76
+ if tmux has-session -t "$SESSION" 2>/dev/null; then
77
+ echo "tmux session '$SESSION' already exists — attach with: tmux attach -t $SESSION" >&2
78
+ else
79
+ tmux new-session -d -s "$SESSION" -n agent "$CMD"
80
+ fi
81
+
82
+ TARGET="$(tmux display-message -p -t "$SESSION:agent" '#{pane_id}')"
83
+ [[ -n "$TARGET" ]] || { echo "failed to resolve tmux pane id" >&2; exit 1; }
84
+
85
+ # Token travels via env, not argv, so it does not appear in `ps` for the daemon.
86
+ ARGS=(--server "$SERVER" --agent "$ID" --tmux "$TARGET")
87
+ [[ -n "$ALLOWLIST" ]] && ARGS+=(--allowlist "$ALLOWLIST")
88
+ [[ -n "$NO_ROOM" ]] && ARGS+=(--no-room)
89
+
90
+ AGENT_COORD_TOKEN="$TOKEN" nohup node "$PUSHER" "${ARGS[@]}" \
91
+ >> "$LOGDIR/pusher-$ID.log" 2>&1 &
92
+ echo $! > "$PID_FILE"
93
+
94
+ echo "coord-node '$ID' up:"
95
+ echo " agent: tmux attach -t $SESSION (running: $CMD)"
96
+ echo " bus: $SERVER"
97
+ echo " daemon: pid $(cat "$PID_FILE") log: $LOGDIR/pusher-$ID.log"
98
+ echo " stop: scripts/stop-agent.sh --id $ID"
@@ -128,6 +128,24 @@ let sending = false;
128
128
  // Allowlisted control commands (mirrors CONTROL_COMMANDS in src/tools.ts).
129
129
  const CONTROL_COMMANDS = new Set(["/clear", "/compact"]);
130
130
 
131
+ // Shells we refuse to inject into: if the pane's foreground command is one of
132
+ // these, the agent CLI has exited and typing would run pasted text as commands.
133
+ const SHELL_COMMANDS = new Set(["bash", "zsh", "sh", "fish", "dash", "ksh"]);
134
+
135
+ // Foreground command of the target pane, or null if it can't be determined
136
+ // (in which case we do NOT block — fall back to the bracketed-paste protection).
137
+ function paneCurrentCommand() {
138
+ const r = spawnSync("tmux", [
139
+ "display-message",
140
+ "-p",
141
+ "-t",
142
+ TMUX_TARGET,
143
+ "#{pane_current_command}",
144
+ ]);
145
+ if (r.status !== 0) return null;
146
+ return (r.stdout ?? "").toString().trim() || null;
147
+ }
148
+
131
149
  function isControl(m) {
132
150
  return (
133
151
  !!m &&
@@ -193,16 +211,27 @@ function formatBatch(batch) {
193
211
  // control command (/clear, /compact) goes in on its own as a RAW line so the
194
212
  // CLI runs it as a slash command rather than echoing it as chat text.
195
213
  async function injectViaTmux(batch) {
214
+ // Fail-closed pane guard: never type into a pane that has dropped to a shell
215
+ // (crashed/exited agent CLI). Bracketed paste protects a compliant TUI, but a
216
+ // raw shell would execute pasted lines — so refuse and let the at-least-once
217
+ // cursor redeliver once the agent CLI is back.
218
+ const cmd = paneCurrentCommand();
219
+ if (cmd !== null && SHELL_COMMANDS.has(cmd)) {
220
+ process.stderr.write(
221
+ `[coord-pusher] pane '${TMUX_TARGET}' is at a shell ('${cmd}'), not the agent CLI — skipping inject (will redeliver)\n`,
222
+ );
223
+ return;
224
+ }
196
225
  let run = [];
197
226
  const flushRun = async () => {
198
227
  if (run.length === 0) return;
199
- await pasteAndSubmit(formatBatch(run));
228
+ await pasteAndSubmit(formatBatch(run), true); // peer content: inert bracketed paste
200
229
  run = [];
201
230
  };
202
231
  for (const m of batch) {
203
232
  if (isControl(m)) {
204
233
  await flushRun();
205
- await pasteAndSubmit(m.text.trim());
234
+ await pasteAndSubmit(m.text.trim(), false); // validated control: raw slash command
206
235
  } else {
207
236
  run.push(m);
208
237
  }
@@ -210,13 +239,17 @@ async function injectViaTmux(batch) {
210
239
  await flushRun();
211
240
  }
212
241
 
213
- function pasteAndSubmit(payload) {
242
+ // bracketed=true wraps the paste in bracketed-paste markers (paste-buffer -p) so
243
+ // a compliant TUI treats the payload as inert data — embedded newlines can't
244
+ // submit lines or smuggle a "/command". Control commands (/clear, /compact) must
245
+ // paste RAW (bracketed=false) so the TUI still runs them as slash commands.
246
+ function pasteAndSubmit(payload, bracketed = false) {
214
247
  return new Promise((resolve, reject) => {
215
248
  const load = spawn("tmux", ["load-buffer", "-b", BUFFER_NAME, "-"]);
216
249
  load.on("error", reject);
217
250
  load.on("exit", (code) => {
218
251
  if (code !== 0) return reject(new Error(`tmux load-buffer exit ${code}`));
219
- const paste = spawnSync("tmux", ["paste-buffer", "-b", BUFFER_NAME, "-t", TMUX_TARGET, "-d"]);
252
+ const paste = spawnSync("tmux", ["paste-buffer", ...(bracketed ? ["-p"] : []), "-b", BUFFER_NAME, "-t", TMUX_TARGET, "-d"]);
220
253
  if (paste.status !== 0) return reject(new Error(`tmux paste-buffer: ${(paste.stderr ?? "").toString().trim()}`));
221
254
  const enter = spawnSync("tmux", ["send-keys", "-t", TMUX_TARGET, "Enter"]);
222
255
  if (enter.status !== 0) return reject(new Error(`tmux send-keys: ${(enter.stderr ?? "").toString().trim()}`));
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env node
2
+ // coord-token — mint / list / revoke per-agent bearer tokens in tokens.json.
3
+ //
4
+ // Closes the operator side of low-barrier node onboarding: instead of
5
+ // hand-editing tokens.json (and getting its perms right), mint a token for a
6
+ // node in one command, then paste it into coord-node on that machine.
7
+ //
8
+ // Usage:
9
+ // scripts/coord-token.mjs add <agent-id> mint (or rotate) a token, print it
10
+ // scripts/coord-token.mjs list list agent ids (never prints tokens)
11
+ // scripts/coord-token.mjs revoke <agent-id> remove a token
12
+ // [--dir <coord-dir>] override AGENT_COORD_DIR
13
+ //
14
+ // tokens.json is created 0600 (and re-chmod'd on every write) so secrets are
15
+ // never group/other-readable. After add/revoke, SIGHUP the running bus to
16
+ // reload its token map (kill -HUP <bus-pid>).
17
+
18
+ import { randomBytes } from "node:crypto";
19
+ import {
20
+ readFileSync,
21
+ writeFileSync,
22
+ existsSync,
23
+ chmodSync,
24
+ mkdirSync,
25
+ } from "node:fs";
26
+ import { homedir } from "node:os";
27
+ import path from "node:path";
28
+
29
+ const argv = process.argv.slice(2);
30
+ function opt(name) {
31
+ const i = argv.indexOf(name);
32
+ return i >= 0 ? argv[i + 1] : undefined;
33
+ }
34
+ function die(msg) {
35
+ process.stderr.write(`coord-token: ${msg}\n`);
36
+ process.exit(1);
37
+ }
38
+
39
+ // Must match store.ts ROOT/TOKENS_FILE resolution exactly, or we'd write a file
40
+ // the bus never reads.
41
+ const ROOT =
42
+ opt("--dir") ??
43
+ process.env.AGENT_COORD_DIR ??
44
+ process.env.CLAUDE_COORD_DIR ??
45
+ path.join(homedir(), "agent-coord");
46
+ const TOKENS_FILE = path.join(ROOT, "tokens.json");
47
+
48
+ const AGENT_ID_RE = /^[a-zA-Z0-9._-]{1,64}$/;
49
+
50
+ function load() {
51
+ if (!existsSync(TOKENS_FILE)) return {};
52
+ let parsed;
53
+ try {
54
+ parsed = JSON.parse(readFileSync(TOKENS_FILE, "utf8"));
55
+ } catch (e) {
56
+ die(`${TOKENS_FILE} is not valid JSON: ${e.message}`);
57
+ }
58
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
59
+ die(`${TOKENS_FILE} must be a JSON object of { "agent-id": "token" }`);
60
+ }
61
+ return parsed;
62
+ }
63
+
64
+ function save(map) {
65
+ mkdirSync(ROOT, { recursive: true, mode: 0o700 });
66
+ writeFileSync(TOKENS_FILE, JSON.stringify(map, null, 2) + "\n", {
67
+ mode: 0o600,
68
+ });
69
+ chmodSync(TOKENS_FILE, 0o600); // enforce even when the file pre-existed looser
70
+ }
71
+
72
+ const positional = argv.filter((a) => !a.startsWith("--"));
73
+ const cmd = positional[0];
74
+ const id = positional[1];
75
+
76
+ switch (cmd) {
77
+ case "add": {
78
+ if (!id || !AGENT_ID_RE.test(id)) {
79
+ die("usage: coord-token add <agent-id> (id: [a-zA-Z0-9._-], <=64 chars)");
80
+ }
81
+ const map = load();
82
+ const rotating = id in map;
83
+ const token = "tk_" + randomBytes(24).toString("base64url");
84
+ // Guard the astronomically unlikely collision that would collapse two
85
+ // identities onto one token in the bus's reverse map.
86
+ if (Object.values(map).includes(token)) die("token collision — rerun");
87
+ map[id] = token;
88
+ save(map);
89
+ process.stderr.write(
90
+ `${rotating ? "rotated" : "minted"} token for '${id}' in ${TOKENS_FILE}\n`,
91
+ );
92
+ process.stderr.write(
93
+ `SIGHUP the running bus to load it (kill -HUP <bus-pid>), then on the node:\n` +
94
+ ` AGENT_COORD_TOKEN=${token} scripts/coord-node.sh --server <url> --id ${id} --cmd claude\n`,
95
+ );
96
+ process.stdout.write(token + "\n"); // token alone on stdout, pipe/capture-friendly
97
+ break;
98
+ }
99
+ case "list": {
100
+ const ids = Object.keys(load());
101
+ if (ids.length === 0) {
102
+ process.stderr.write("no tokens configured\n");
103
+ break;
104
+ }
105
+ for (const a of ids) process.stdout.write(a + "\n");
106
+ break;
107
+ }
108
+ case "revoke": {
109
+ if (!id) die("usage: coord-token revoke <agent-id>");
110
+ const map = load();
111
+ if (!(id in map)) die(`no token for '${id}'`);
112
+ delete map[id];
113
+ save(map);
114
+ process.stderr.write(`revoked '${id}'. SIGHUP the bus to apply.\n`);
115
+ break;
116
+ }
117
+ default:
118
+ process.stderr.write(
119
+ "coord-token — per-agent bus tokens\n" +
120
+ " coord-token add <agent-id> mint/rotate a token (prints it)\n" +
121
+ " coord-token list list agent ids\n" +
122
+ " coord-token revoke <agent-id> remove a token\n" +
123
+ " [--dir <coord-dir>]\n",
124
+ );
125
+ process.exit(cmd ? 1 : 0);
126
+ }