agent-coord-mcp 0.26.16 → 0.26.18

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.
Files changed (79) hide show
  1. package/hooks/replay.mjs +107 -0
  2. package/hooks/tier.mjs +11 -0
  3. package/hooks/tmux-pusher.mjs +27 -0
  4. package/package.json +1 -1
  5. package/scripts/coord-pusher.mjs +16 -32
  6. package/src/server.ts +40 -20
  7. package/src/tools/admin.ts +8 -1
  8. package/src/tools/away.ts +48 -4
  9. package/src/tools/board-ref.ts +47 -2
  10. package/src/tools/messaging.ts +43 -2
  11. package/src/tools/records.ts +381 -25
  12. package/src/tools/registry.ts +5 -2
  13. package/src/tools/rooms.ts +2 -1
  14. package/src/tools/shared.ts +28 -0
  15. package/src/tools/stall.ts +29 -1
  16. package/src/tools/transport.ts +79 -10
  17. package/src/tools/work.ts +70 -4
  18. package/src/tools/worktrees.ts +64 -2
  19. package/src/work.ts +4 -0
  20. package/dist/build.js +0 -113
  21. package/dist/build.js.map +0 -1
  22. package/dist/capabilities.js +0 -158
  23. package/dist/capabilities.js.map +0 -1
  24. package/dist/prefix.js +0 -64
  25. package/dist/prefix.js.map +0 -1
  26. package/dist/roles.js +0 -132
  27. package/dist/roles.js.map +0 -1
  28. package/dist/server-identity.js +0 -82
  29. package/dist/server-identity.js.map +0 -1
  30. package/dist/server.js +0 -625
  31. package/dist/server.js.map +0 -1
  32. package/dist/store.js +0 -553
  33. package/dist/store.js.map +0 -1
  34. package/dist/tools/admin.js +0 -317
  35. package/dist/tools/admin.js.map +0 -1
  36. package/dist/tools/attention.js +0 -73
  37. package/dist/tools/attention.js.map +0 -1
  38. package/dist/tools/away.js +0 -243
  39. package/dist/tools/away.js.map +0 -1
  40. package/dist/tools/board-ref.js +0 -164
  41. package/dist/tools/board-ref.js.map +0 -1
  42. package/dist/tools/event-kinds.js +0 -39
  43. package/dist/tools/event-kinds.js.map +0 -1
  44. package/dist/tools/events.js +0 -234
  45. package/dist/tools/events.js.map +0 -1
  46. package/dist/tools/index.js +0 -14
  47. package/dist/tools/index.js.map +0 -1
  48. package/dist/tools/logwatch.js +0 -85
  49. package/dist/tools/logwatch.js.map +0 -1
  50. package/dist/tools/messaging.js +0 -667
  51. package/dist/tools/messaging.js.map +0 -1
  52. package/dist/tools/record-events.js +0 -380
  53. package/dist/tools/record-events.js.map +0 -1
  54. package/dist/tools/records.js +0 -686
  55. package/dist/tools/records.js.map +0 -1
  56. package/dist/tools/registry.js +0 -497
  57. package/dist/tools/registry.js.map +0 -1
  58. package/dist/tools/render.js +0 -2
  59. package/dist/tools/render.js.map +0 -1
  60. package/dist/tools/rooms.js +0 -210
  61. package/dist/tools/rooms.js.map +0 -1
  62. package/dist/tools/rotate.js +0 -143
  63. package/dist/tools/rotate.js.map +0 -1
  64. package/dist/tools/scopes.js +0 -126
  65. package/dist/tools/scopes.js.map +0 -1
  66. package/dist/tools/shared.js +0 -86
  67. package/dist/tools/shared.js.map +0 -1
  68. package/dist/tools/stall.js +0 -387
  69. package/dist/tools/stall.js.map +0 -1
  70. package/dist/tools/transport.js +0 -1810
  71. package/dist/tools/transport.js.map +0 -1
  72. package/dist/tools/work.js +0 -319
  73. package/dist/tools/work.js.map +0 -1
  74. package/dist/tools/worktrees.js +0 -339
  75. package/dist/tools/worktrees.js.map +0 -1
  76. package/dist/typed-records.js +0 -174
  77. package/dist/typed-records.js.map +0 -1
  78. package/dist/work.js +0 -2
  79. package/dist/work.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"records.js","sourceRoot":"","sources":["../../src/tools/records.ts"],"names":[],"mappings":"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"}
@@ -1,497 +0,0 @@
1
- import { detachAgentTool } from "./transport.js";
2
- import { readAway, secondCoordinatorRefusal } from "./away.js";
3
- import { z } from "zod";
4
- import path from "node:path";
5
- import { AGENTS_FILE, ROOMS_FILE, appendJsonl, cursorFile, deleteFile, inboxFile, listTransportFiles, memberRooms, readJson, roomFile, rotateAgentToken, transportFile, TRANSPORT_DIR, updateJson, listSessionFiles, readJsonStrict, } from "../store.js";
6
- import { recordAuthorityFor, resolveRole, CANONICAL_ROLE_IDS, roleInputSchema } from "../roles.js";
7
- import { roomFeedOf, sysMsg, moveFile, STALE_MS, EVICT_MS, } from "./shared.js";
8
- // ---------- register ----------
9
- export const registerSchema = {
10
- agentId: z.string().min(1),
11
- project: z.string().optional(),
12
- role: roleInputSchema.optional(),
13
- // First-claim guard overrides (server.ts guardFirstClaim): claiming an id
14
- // that is LIVE on the bus refuses unless the call presents that agent's
15
- // token (tokens.json / coord-token) or force:true. Ignored once bound.
16
- token: z.string().optional(),
17
- force: z.boolean().optional(),
18
- // PROSE-ONLY EXEMPTION (Phase 5.1 Task 12.8). `true` grants it, `false`
19
- // revokes it, omitted leaves it exactly as it was — so an agent re-joining
20
- // after a /clear does not silently drop an exemption it was granted, and a
21
- // card that never heard of the flag cannot revoke one either.
22
- proseOnly: z.union([z.boolean(), z.object({ reason: z.string().min(1) })]).optional(),
23
- };
24
- // Work out what `role`/`roleId` should become, or why the update is refused.
25
- //
26
- // Rules (Phase 8 Task 4):
27
- // - A DECLARED roleId is immutable. Re-declaring the same id is a no-op;
28
- // declaring a different one is rejected.
29
- // - displayName is always free to change — that is the whole point.
30
- // - A plain string never freezes an id (it only sets the display name), so
31
- // v1 agents that re-register under changing free text keep working exactly
32
- // as before, and their id stays derived.
33
- export function resolveRoleUpdate(agentId, existing, input) {
34
- if (input === undefined)
35
- return { ok: true, role: existing?.role, roleId: existing?.roleId };
36
- const resolved = resolveRole(typeof input === "string" ? input : { ...input });
37
- if (!resolved)
38
- return { ok: true, role: existing?.role, roleId: existing?.roleId };
39
- const declared = typeof input === "object" && !!input.roleId;
40
- if (existing?.roleId && declared && resolved.roleId !== existing.roleId) {
41
- return {
42
- ok: false,
43
- error: `roleId '${existing.roleId}' is frozen for agent '${agentId}'; rejected attempt to change it to '${resolved.roleId}'. ` +
44
- `The display name is free to change — pass role.displayName instead.`,
45
- };
46
- }
47
- // A bare string against an agent with a frozen id updates the name only.
48
- const nextRole = typeof input === "string" ? input : input.displayName ?? existing?.role ?? resolved.displayName;
49
- return { ok: true, role: nextRole, roleId: declared ? resolved.roleId : existing?.roleId };
50
- }
51
- export async function registerTool(args) {
52
- const before = await readJson(AGENTS_FILE, {});
53
- const roleUpdate = resolveRoleUpdate(args.agentId, before[args.agentId], args.role);
54
- if (!roleUpdate.ok)
55
- return { ok: false, error: roleUpdate.error };
56
- // 4.2 — a SECOND coordinator may not register while the first is away.
57
- // Checked on the RESOLVED role, not the string the caller passed: the refusal
58
- // has to see what the registry will actually record, or a spelling slips past
59
- // the guard and lands as `coordinator` anyway.
60
- const second = secondCoordinatorRefusal(readAway(), args.agentId, roleUpdate.roleId);
61
- if (second)
62
- return { ok: false, error: second };
63
- const reg = await updateJson(AGENTS_FILE, {}, (current) => {
64
- const now = Date.now();
65
- const existing = current[args.agentId];
66
- current[args.agentId] = {
67
- agentId: args.agentId,
68
- project: args.project ?? existing?.project,
69
- role: roleUpdate.role,
70
- // Only ever written when the caller declared one — absent stays absent,
71
- // so an existing agents.json is never rewritten into a new shape.
72
- ...(roleUpdate.roleId ? { roleId: roleUpdate.roleId } : {}),
73
- registeredAt: existing?.registeredAt ?? now,
74
- lastHeartbeat: now,
75
- capabilities: existing?.capabilities,
76
- // Omitted → carried forward untouched. Only an explicit `false` revokes.
77
- ...(args.proseOnly === undefined
78
- ? existing?.proseOnly
79
- ? { proseOnly: existing.proseOnly }
80
- : {}
81
- : args.proseOnly === false
82
- ? {}
83
- : {
84
- proseOnly: {
85
- since: existing?.proseOnly?.since ?? now,
86
- ...(typeof args.proseOnly === "object" && args.proseOnly.reason
87
- ? { reason: args.proseOnly.reason }
88
- : existing?.proseOnly?.reason
89
- ? { reason: existing.proseOnly.reason }
90
- : {}),
91
- },
92
- }),
93
- };
94
- return current;
95
- });
96
- const entry = reg[args.agentId];
97
- // Echo the record types this role may and may not emit. Record authority is
98
- // otherwise invisible until the first typed send is refused mid-work — this
99
- // is how an agent whose role owns `go`/`scope`/`verdict` finds out at
100
- // onboarding that it has to declare that role.
101
- const authority = recordAuthorityFor(entry);
102
- // A declared, non-canonical roleId still works (word-split carries authority),
103
- // but the next card should use the exact spelling — say so at onboarding, the
104
- // one moment the agent is reading its registration.
105
- const canonWarning = entry.roleId && !CANONICAL_ROLE_IDS.has(entry.roleId)
106
- ? `roleId '${entry.roleId}' is not canonical (canonical: ${[...CANONICAL_ROLE_IDS].join(", ")}). ` +
107
- `It keeps any authority its words carry (e.g. 'coord-qa' → 'qa'), but prefer the canonical id — ` +
108
- `role:{roleId:"<canonical>", displayName:"${entry.role ?? entry.roleId}"}.`
109
- : undefined;
110
- // The exemption's own docs state the asymmetry, at the one moment the agent
111
- // granting itself one is reading the response. An exemption whose cost is
112
- // invisible to the agent holding it is how the rule decays.
113
- const proseOnlyEcho = entry.proseOnly
114
- ? {
115
- proseOnly: {
116
- ...entry.proseOnly,
117
- asymmetry: "GRANTED TO THE SENDER, PAID BY EVERY READER. An untyped message cannot be slimmed by the " +
118
- "transport (hooks/tier.mjs slims only when record.type is present), so every multi-line message " +
119
- "you send arrives in full in every reader's context — which is precisely the cost the typed-record " +
120
- "rule exists to remove. This is opt-in and reviewed, not self-service: it is visible in list_agents " +
121
- "and counted there, so if the exempt share climbs the drift is measurable. Drop it with " +
122
- "proseOnly:false as soon as the model behind this agent can pick a record.type.",
123
- },
124
- }
125
- : {};
126
- return {
127
- ok: true,
128
- ...(canonWarning ? { warning: canonWarning } : {}),
129
- agent: entry,
130
- ...proseOnlyEcho,
131
- resolvedRole: resolveRole(entry),
132
- recordAuthority: {
133
- ...authority,
134
- ...(authority.mayNotEmit.length
135
- ? { note: `this role may not emit ${authority.mayNotEmit.map((t) => `'${t}'`).join("/")} as a typed record — register with the owning role (e.g. role:{roleId:"coordinator"}) if it should. Text prefixes are unrestricted.` }
136
- : {}),
137
- },
138
- };
139
- }
140
- // ---------- unregister ----------
141
- export const unregisterSchema = { agentId: z.string().min(1) };
142
- export async function unregisterTool(args) {
143
- // If a transport is attached, take it down first so the pusher doesn't keep
144
- // re-publishing the marker after we drop the registry entry.
145
- const detach = await detachAgentTool(args);
146
- let existed = false;
147
- await updateJson(AGENTS_FILE, {}, (current) => {
148
- if (current[args.agentId]) {
149
- existed = true;
150
- delete current[args.agentId];
151
- }
152
- return current;
153
- });
154
- // Drop the agent from every channel's membership so it doesn't linger as a
155
- // ghost in list_rooms / joinedRooms() after it's gone from the registry.
156
- const leftRooms = [];
157
- await updateJson(ROOMS_FILE, {}, (current) => {
158
- for (const [chan, e] of Object.entries(current)) {
159
- if (e.members?.includes(args.agentId)) {
160
- e.members = e.members.filter((m) => m !== args.agentId);
161
- leftRooms.push(chan);
162
- }
163
- }
164
- return current;
165
- });
166
- return { ok: true, removed: existed, detach, leftRooms };
167
- }
168
- // ---------- quit ----------
169
- // Clean shutdown: unregister (detach transport + leave rooms + remove registry
170
- // entry) then exit the MCP process. Only the bound identity can call this —
171
- // prevents one agent from killing another agent's session.
172
- export const quitSchema = { agentId: z.string().min(1) };
173
- export async function quitTool(args) {
174
- await unregisterTool(args);
175
- // Give stdio a moment to flush the JSON response before exiting
176
- setTimeout(() => process.exit(0), 150);
177
- // Return a result so the MCP framework sends the response before the
178
- // setTimeout fires — the caller will see this before the process dies.
179
- return { ok: true, message: `'${args.agentId}' unregistered — MCP process exiting` };
180
- }
181
- // ---------- heartbeat ----------
182
- export const heartbeatSchema = { agentId: z.string().min(1) };
183
- export async function heartbeatTool(args) {
184
- let missing = false;
185
- await updateJson(AGENTS_FILE, {}, (current) => {
186
- if (!current[args.agentId]) {
187
- missing = true;
188
- return current;
189
- }
190
- current[args.agentId].lastHeartbeat = Date.now();
191
- return current;
192
- });
193
- if (missing)
194
- return { ok: false, error: `agent '${args.agentId}' not registered` };
195
- return { ok: true };
196
- }
197
- // ---------- list_agents ----------
198
- export const listAgentsSchema = {};
199
- export async function listAgentsTool() {
200
- const now = Date.now();
201
- const evicted = [];
202
- // Load live transport markers first so we can refresh heartbeats for agents
203
- // whose pusher (or other transport daemon) is alive — the live process IS
204
- // the heartbeat, no separate ping needed.
205
- const liveTransports = await loadLiveTransports();
206
- const reg = await updateJson(AGENTS_FILE, {}, (current) => {
207
- for (const [id, entry] of Object.entries(current)) {
208
- // A LIVE TRANSPORT PROTECTS AN AGENT FROM EVICTION. IT DOES NOT STAMP IT.
209
- //
210
- // This loop used to write `entry.lastHeartbeat = now` here, and
211
- // `agents.json` is ONE store shared by every fleet on the machine while
212
- // `list_agents` takes no project argument — so a call from one fleet
213
- // rewrote every other fleet's timestamps. Another fleet did not ask for
214
- // that, cannot see it, and it is not ours to write.
215
- //
216
- // kit#105 removed the fabricated value from the RESPONSE; the WRITE
217
- // stayed, so every consumer reading the file directly still saw
218
- // freshness this call had invented.
219
- //
220
- // AND IT MASKED STALL DETECTION. `stall_check` reads `lastHeartbeat` to
221
- // find agents that have gone quiet. Because any `list_agents` call
222
- // refreshed every live-transport agent, that clock could never age past
223
- // the threshold, so no-heartbeat could not fire for exactly the agents
224
- // most likely to be stuck — alive, attached, and doing nothing.
225
- //
226
- // Nothing is lost: the pusher calls `heartbeat` every 60s
227
- // (scripts/coord-pusher.mjs:181), so an attached agent has a REAL
228
- // heartbeat. This stamp only ever overwrote a true value with a
229
- // simultaneous one.
230
- if (liveTransports.has(id))
231
- continue;
232
- if (now - entry.lastHeartbeat > EVICT_MS) {
233
- evicted.push(id);
234
- delete current[id];
235
- }
236
- }
237
- return current;
238
- });
239
- // A LIVE-TRANSPORT AGENT EMITS NO HEARTBEAT FIELDS, because the value would be
240
- // the one this call just wrote.
241
- //
242
- // The loop above stamps `lastHeartbeat = now` on every live-transport agent and
243
- // the response then reports it: THE ACT OF OBSERVING SETS THE THING OBSERVED, so
244
- // `secondsSinceHeartbeat: 0` is the caller's own timestamp handed back. Measured
245
- // live: 12 agents, 3 distinct `lastHeartbeat` values, TEN sharing one — every
246
- // live-transport agent across two fleets.
247
- //
248
- // THE DESIGN IS RIGHT AND THE FIELD NAME IS THE DEFECT. "The live process IS the
249
- // heartbeat, no separate ping needed" is a defensible answer to *is this agent
250
- // alive*, and `online` already carries it, derived from `transport`
251
- // independently. What is dishonest is emitting it as `lastHeartbeat` /
252
- // `secondsSinceHeartbeat`, which read as *when did THIS agent last check in* —
253
- // the value is honest about what it means and dishonest about what it is called.
254
- //
255
- // AN ABSENT FIELD IS HONEST; A WRONG ONE IS NOT. Nothing loses information:
256
- // liveness for these agents is `online`/`transport`, and per-agent freshness that
257
- // is genuinely read from server state is what `ping` reports. For agents WITHOUT
258
- // live transport the fields are accurate and are kept — which is exactly the
259
- // population where they are load-bearing.
260
- const agents = Object.values(reg).map((a) => {
261
- const transport = liveTransports.get(a.agentId);
262
- const merged = [...(a.capabilities ?? [])];
263
- if (transport && !merged.includes(transport.transport))
264
- merged.push(transport.transport);
265
- const { lastHeartbeat, ...rest } = a;
266
- const heartbeatFields = transport
267
- ? {
268
- // NOT "refreshed BY this call" — that write was removed in #137
269
- // precisely because it stamped every OTHER fleet's agents too
270
- // (agents.json is shared, list_agents takes no project argument).
271
- // Measured after the removal (Task 13.5): calling list_agents and
272
- // re-reading agents.json directly leaves lastHeartbeat UNCHANGED.
273
- // The field is omitted because the value is STALE-BY-DESIGN for a
274
- // live-transport agent, not because this call would overwrite it —
275
- // an explanation that outlived the code it explained is the same
276
- // carrier-gap shape as a stated cause nobody re-checked.
277
- heartbeatSource: "omitted — a live-transport agent's raw lastHeartbeat measures time since it last JOINED, not activity (nothing else writes it for a local transport; Task 13.3/13.4). Liveness is `online`/`transport`; for per-agent freshness read from server state, use `ping`.",
278
- }
279
- : { lastHeartbeat, secondsSinceHeartbeat: Math.floor((now - lastHeartbeat) / 1000) };
280
- return {
281
- ...rest,
282
- online: transport ? true : now - a.lastHeartbeat < STALE_MS,
283
- ...heartbeatFields,
284
- capabilities: merged.length > 0 ? merged : undefined,
285
- transport: transport
286
- ? {
287
- kind: transport.transport,
288
- tmuxTarget: transport.tmuxTarget,
289
- pid: transport.pid,
290
- // `attached` alone said nothing about WHAT is attached. A pusher
291
- // started `--no-room` delivers DMs only, and its marker used to be
292
- // indistinguishable from a full one — so an agent could sit with
293
- // its room feed off while status read healthy (worker-2).
294
- //
295
- // Absent is UNKNOWN, never "on": an older pusher's marker cannot
296
- // answer, and answering for it is how the original defect worked.
297
- rooms: roomFeedOf(transport),
298
- }
299
- : undefined,
300
- };
301
- });
302
- // COUNTED, so drift is measurable (Task 12.8). "No exemptions" and "I did not
303
- // look" are different claims, so the block is always present and always
304
- // carries its denominator — a bare list of ids would read as zero on a bus
305
- // where the field had simply never been written.
306
- const exempt = agents.filter((a) => a.proseOnly);
307
- const proseOnly = {
308
- exempt: exempt.map((a) => ({ agentId: a.agentId, since: a.proseOnly.since, reason: a.proseOnly.reason })),
309
- count: exempt.length,
310
- total: agents.length,
311
- share: agents.length ? Number((exempt.length / agents.length).toFixed(3)) : 0,
312
- note: "prose-only agents are exempt from the typed-record rule on agent→agent sends. The exemption is " +
313
- "granted to the SENDER and paid by every READER: their multi-line messages cannot be slimmed. " +
314
- "A rising share means the rule is decaying.",
315
- };
316
- return { agents, evicted, proseOnly };
317
- }
318
- export async function loadLiveTransports() {
319
- const out = new Map();
320
- const reg = await readJson(AGENTS_FILE, {});
321
- const now = Date.now();
322
- for (const fname of await listTransportFiles()) {
323
- const file = path.join(TRANSPORT_DIR, fname);
324
- const marker = await readJson(file, null);
325
- if (!marker || !isMarkerLive(marker, reg, now)) {
326
- await deleteFile(file);
327
- continue;
328
- }
329
- out.set(marker.agentId, marker);
330
- }
331
- return out;
332
- }
333
- // Liveness for a transport marker. Local markers carry a real pid we can probe;
334
- // remote markers (tmux-push-remote, pid 0 on a foreign host) can't be — so we
335
- // trust the registry heartbeat the remote pusher refreshes (within STALE_MS).
336
- export function isMarkerLive(marker, reg, now) {
337
- if (marker.transport === "tmux-push-remote") {
338
- const entry = reg[marker.agentId];
339
- return !!entry && now - entry.lastHeartbeat < STALE_MS;
340
- }
341
- return isPidAlive(marker.pid);
342
- }
343
- export function isPidAlive(pid) {
344
- if (!pid || pid <= 0)
345
- return false;
346
- try {
347
- process.kill(pid, 0);
348
- return true;
349
- }
350
- catch (err) {
351
- const code = err.code;
352
- return code === "EPERM"; // EPERM = exists but not ours; ESRCH = gone
353
- }
354
- }
355
- export async function liveClaimEvidence(agentId, now) {
356
- const reasons = [];
357
- const leakedSessions = [];
358
- let verifiable = true;
359
- let samePane = false;
360
- let heartbeatFresh = false;
361
- let markerLive = false;
362
- let boundElsewhere = 0;
363
- let reg = {};
364
- try {
365
- reg = await readJsonStrict(AGENTS_FILE, {});
366
- }
367
- catch {
368
- verifiable = false;
369
- reasons.push("agents.json exists but cannot be parsed — heartbeat liveness is unverifiable");
370
- }
371
- const entry = reg[agentId];
372
- if (entry && now - entry.lastHeartbeat < STALE_MS) {
373
- heartbeatFresh = true;
374
- reasons.push(`fresh registry heartbeat ${Math.floor((now - entry.lastHeartbeat) / 1000)}s ago`);
375
- }
376
- let marker = null;
377
- try {
378
- marker = await readJsonStrict(transportFile(agentId), null);
379
- }
380
- catch {
381
- verifiable = false;
382
- reasons.push("transport marker exists but cannot be parsed — transport liveness is unverifiable");
383
- }
384
- if (marker && isMarkerLive(marker, reg, now)) {
385
- markerLive = true;
386
- reasons.push(`live ${marker.transport} transport (pid ${marker.pid}${marker.tmuxTarget ? `, pane ${marker.tmuxTarget}` : ""})`);
387
- if (marker.transport === "tmux-push" &&
388
- marker.tmuxTarget &&
389
- process.env.TMUX_PANE &&
390
- marker.tmuxTarget === process.env.TMUX_PANE) {
391
- samePane = true;
392
- }
393
- }
394
- for (const file of await listSessionFiles()) {
395
- let s = null;
396
- try {
397
- s = await readJsonStrict(file, null);
398
- }
399
- catch {
400
- verifiable = false;
401
- reasons.push(`session binding ${path.basename(file)} cannot be parsed — unverifiable (doctor fix cleans it)`);
402
- continue;
403
- }
404
- if (!s || s.agentId !== agentId || s.pid === process.pid)
405
- continue;
406
- if (isPidAlive(s.pid)) {
407
- boundElsewhere++;
408
- leakedSessions.push({ pid: s.pid, via: String(s.via ?? "unknown") });
409
- reasons.push(`another live session (pid ${s.pid}, via ${s.via}) is already bound to this id`);
410
- }
411
- }
412
- return {
413
- live: heartbeatFresh || markerLive || boundElsewhere > 0,
414
- verifiable,
415
- samePane,
416
- boundElsewhere,
417
- reasons,
418
- leakedSessions,
419
- };
420
- }
421
- // ---------- rename_agent (NICK) ----------
422
- export const renameAgentSchema = {
423
- agentId: z.string().min(1),
424
- newAgentId: z.string().min(1),
425
- };
426
- export async function renameAgentTool(args) {
427
- const oldId = args.agentId;
428
- const newId = args.newAgentId;
429
- if (oldId === newId)
430
- return { ok: false, error: "new id is identical to the current id" };
431
- const reg = await readJson(AGENTS_FILE, {});
432
- if (!reg[oldId])
433
- return { ok: false, error: `agent '${oldId}' not registered` };
434
- if (reg[newId])
435
- return { ok: false, error: `agent '${newId}' already exists` };
436
- const joined = await memberRooms(oldId);
437
- // A running pusher has the OLD agentId (and its file paths) baked into its
438
- // env, so after we migrate the inbox/cursor below it would keep tailing the
439
- // now-empty old inbox while new DMs land in the new one — silently breaking
440
- // delivery and orphaning the moved marker. Take it down first; the caller
441
- // must re-attach under the new id (join/attach_agent) to restore push.
442
- const liveTransport = await readJson(transportFile(oldId), null);
443
- let detachedTransport = false;
444
- if (liveTransport && isPidAlive(liveTransport.pid)) {
445
- await detachAgentTool({ agentId: oldId });
446
- detachedTransport = true;
447
- }
448
- // Registry: move the entry under the new key.
449
- await updateJson(AGENTS_FILE, {}, (current) => {
450
- if (current[oldId]) {
451
- current[newId] = { ...current[oldId], agentId: newId };
452
- delete current[oldId];
453
- }
454
- return current;
455
- });
456
- // Channel memberships: rename in place.
457
- await updateJson(ROOMS_FILE, {}, (current) => {
458
- for (const e of Object.values(current)) {
459
- if (e.members?.includes(oldId))
460
- e.members = e.members.map((m) => (m === oldId ? newId : m));
461
- }
462
- return current;
463
- });
464
- // Per-agent files: inbox, cursor. (The transport marker was already removed
465
- // above if a pusher was live; nothing to move otherwise.)
466
- await moveFile(inboxFile(oldId), inboxFile(newId));
467
- await moveFile(cursorFile(oldId), cursorFile(newId));
468
- await moveFile(transportFile(oldId), transportFile(newId));
469
- // Identity-binding token rotation: if tokens.json exists and had the old
470
- // id, move its token to the new id atomically. Lets the same bearer keep
471
- // authenticating after rename — no-op if binding isn't configured.
472
- await rotateAgentToken(oldId, newId);
473
- // Broadcast a NICK notice to every channel the agent was in.
474
- for (const chan of joined) {
475
- await appendJsonl(roomFile(chan), sysMsg(newId, chan, `is now known as ${newId} (was ${oldId})`));
476
- }
477
- return {
478
- ok: true,
479
- from: oldId,
480
- to: newId,
481
- rooms: joined,
482
- detachedTransport,
483
- ...(detachedTransport
484
- ? { warning: `the live tmux-push transport was detached during rename — re-attach as '${newId}' (e.g. join/attach_agent) to restore real-time delivery` }
485
- : {}),
486
- };
487
- }
488
- // ---------- force_unregister ----------
489
- export const forceUnregisterSchema = {
490
- targetAgentId: z.string().min(1),
491
- };
492
- // Admin eviction — same logic as unregister but bypasses the identity gate
493
- // so the caller does not need to be the target agent.
494
- export async function forceUnregisterTool(args) {
495
- return unregisterTool({ agentId: args.targetAgentId });
496
- }
497
- //# sourceMappingURL=registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { renderRecord, PREFIX } from "@davidbalzan/groundwork-seam/protocol";
2
- //# sourceMappingURL=render.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/tools/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC"}