agent-coord-mcp 0.26.11 → 0.26.13
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/dist/server.js +87 -3
- package/dist/server.js.map +1 -1
- package/dist/tools/away.js +180 -59
- package/dist/tools/away.js.map +1 -1
- package/dist/tools/event-kinds.js +39 -0
- package/dist/tools/event-kinds.js.map +1 -0
- package/dist/tools/events.js +7 -1
- package/dist/tools/events.js.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/record-events.js +375 -0
- package/dist/tools/record-events.js.map +1 -0
- package/dist/tools/registry.js +10 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/stall.js +100 -8
- package/dist/tools/stall.js.map +1 -1
- package/dist/tools/transport.js +19 -1
- package/dist/tools/transport.js.map +1 -1
- package/package.json +3 -3
- package/scripts/check-test-count.mjs +1 -1
- package/src/server.ts +97 -4
- package/src/tools/away.ts +221 -55
- package/src/tools/event-kinds.ts +60 -0
- package/src/tools/events.ts +8 -4
- package/src/tools/index.ts +2 -0
- package/src/tools/record-events.ts +390 -0
- package/src/tools/registry.ts +10 -1
- package/src/tools/stall.ts +104 -11
- package/src/tools/transport.ts +19 -1
package/dist/server.js
CHANGED
|
@@ -9,6 +9,7 @@ import { z } from "zod";
|
|
|
9
9
|
import { coordAwaySchema, coordAwayTool, readAway, awayRefusal } from "./tools/away.js";
|
|
10
10
|
import { rotateSchema, rotateTool, rotateReconcileSchema, rotateReconcileTool } from "./tools/rotate.js";
|
|
11
11
|
import { subscribeSchema, subscribeTool, unsubscribeSchema, unsubscribeTool, listSubscriptionsSchema, listSubscriptionsTool } from "./tools/events.js";
|
|
12
|
+
import { scanRecordEventsSchema, scanRecordEventsTool } from "./tools/record-events.js";
|
|
12
13
|
import { ensureDirs, getTokenMap, reloadTokenMapSync, sessionFile, } from "./store.js";
|
|
13
14
|
import { liveClaimEvidence, attachAgentSchema, attachAgentTool, clearTransportSchema, clearTransportTool, deleteRoomSchema, deleteRoomTool, detachAgentSchema, detachAgentTool, doctorSchema, doctorTool, forceUnregisterSchema, forceUnregisterTool, heartbeatSchema, heartbeatTool, joinRoomSchema, joinRoomTool, joinSchema, joinTool, leaveRoomSchema, leaveRoomTool, listAgentsSchema, listAgentsTool, pingSchema, pingTool, listRoomsSchema, listRoomsTool, postStatusSchema, postStatusTool, pruneSchema, pruneTool, readMessagesSchema, readMessagesTool, retrieveMessageSchema, retrieveMessageTool, retrieveRoomHistorySchema, retrieveRoomHistoryTool, registerSchema, registerTool, renameAgentSchema, renameAgentTool, reportReceiptSchema, reportReceiptTool, reportTransportSchema, reportTransportTool, sendCommandSchema, sendCommandTool, sendMessageSchema, sendMessageTool, setRoomMotdSchema, setRoomMotdTool, setRoomTopicSchema, setRoomTopicTool, statusSchema, statusTool, unregisterSchema, unregisterTool, quitSchema, quitTool, waitForMessageSchema, waitForMessageTool, listScopesSchema, listScopesTool, importWorkSchema, importWorkTool, stallCheckSchema, stallCheckTool, setHaltSchema, setHaltTool, lastRanSchema, stallClockStatusTool, ensureWorktreeSchema, ensureWorktreeTool, refreshWorktreesSchema, refreshWorktreesTool, claimSchema, claimTool, landSchema, landTool, mergeSchema, mergeTool, nextUnblockedSchema, nextUnblockedTool, listWorkSchema, listWorkTool, exportWorkSchema, exportWorkTool, } from "./tools/index.js";
|
|
14
15
|
function jsonResult(data) {
|
|
@@ -202,7 +203,7 @@ function buildServer(initialBound, opts = {}) {
|
|
|
202
203
|
addTool("quit", "Clean shutdown: unregister this agent (detach transport, leave rooms, remove registry entry) then exit the MCP process. Only callable by the session's bound identity. Use this to cleanly hand off before a restart with a new name.", quitSchema, gate("agentId", quitTool));
|
|
203
204
|
addTool("status", "Introspect this agent's coord state: registration, attached transport, inbox depth and unread count, and whether this MCP server is running inside tmux. Useful for debugging 'why isn't my DM landing'. Read-only — naming an agentId here never binds this session's identity.", statusSchema, gate("agentId", statusTool, { bindOnClaim: false }));
|
|
204
205
|
addTool("heartbeat", "Refresh this agent's lastHeartbeat timestamp.", heartbeatSchema, gate("agentId", heartbeatTool));
|
|
205
|
-
addTool("ping", "Liveness probe for another agent, answered entirely from server-side state (registry entry, transport marker, pusher pid, tmux pane) — it never touches the target's session, so a fleet-wide sweep costs zero model tokens on the targets. Returns alive (fresh heartbeat
|
|
206
|
+
addTool("ping", "Liveness probe for another agent, answered entirely from server-side state (registry entry, transport marker, pusher pid, tmux pane) — it never touches the target's session, so a fleet-wide sweep costs zero model tokens on the targets. Returns alive (live transport, or a fresh heartbeat ONLY where something writes one — never a local tmux-push transport's, whose heartbeat measures time since it joined rather than activity), reachable (a DM pushed now would land), granular checks including heartbeatValid (whether heartbeatFresh next to it is real evidence for this transport), and latencyMs. Distinct from heartbeat, which is an agent refreshing its OWN activity timestamp. Pass echo:true (default off) to additionally drop a PING DM into the target's inbox — that wakes the target's model, so use it sparingly and only when you need an agent-level acknowledgement. 'from' is enforced against the session's bound identity, but read-only — naming 'from' here never binds this session's identity.", pingSchema, gate("from", pingTool, { bindOnClaim: false }));
|
|
206
207
|
addTool("list_agents", "List all known agents and whether they appear online (heartbeat <5min). Also reports the prose-only exemptions from the typed-record rule — who holds one, since when, and the count over the total, so a rising exempt share is visible rather than inferred.", listAgentsSchema, gate(null, listAgentsTool));
|
|
207
208
|
addTool("send_message", "Send a message. If 'to' is set, goes to that agent's inbox (DM); otherwise to a channel — pass 'room' (e.g. 'seo' or '#seo') to target a specific channel, or omit it for the default 'general' channel. For channel posts, tag 'kind': 'decision' for GOs/verdicts/agreements that must outlive routine cleanup (kept ~30 days, quoted verbatim in digests), 'status' for progress notes, omit for ordinary chatter. Optional 'inReplyTo' is a parent message uuid (a reply that resolves a DAVID_DECISION); malformed id is refused, unknown id is stored with a warning. The 'from' field is enforced against the session's bound identity when binding is configured. EVERY AGENT→AGENT MESSAGE MUST CARRY 'record' with a typed 'type' (decision · verdict · done · blocker · risk · fyi · action · go · scope): a typed multi-line message is delivered as ONE attributed line plus a retrieve_message handle, while an untyped one arrives in full in every reader's context. 'fyi' is the honest catch-all — use it rather than forcing a false 'decision'/'risk'. Untyped sends WARN today and are REFUSED from 2026-09-15. Messages TO a human are exempt (David-facing traffic stays prose), as is a sender that declared proseOnly:true at join.", sendMessageSchema, gate("from", sendMessageTool));
|
|
208
209
|
addTool("send_command", "Inject a context-management slash command (/clear, /compact or /reload-skills) directly into a sub-agent's live tmux session — delivered RAW with no banner or prefix, so the agent's CLI runs it as a real slash command. Target one agent with 'to' or broadcast to a channel's tmux-attached members with 'room' (never the sender). Hard-gated to tmux: returns ok:false if the target has no live tmux-push(-remote) transport. By default BLOCKS until the receiving pusher confirms it actually typed the command into the pane (out-of-band delivery receipt, no added agent context) and returns delivery:'confirmed' with deliveredAt, or delivery:'pending'+warning if no receipt arrived within deliveryTimeoutMs (default 8000) — a stale/wedged pusher. Pass waitForDelivery:false for fire-and-forget. Intended for a lead agent to clear/compact sub-agent context and save tokens. The command allowlist is locked to /clear, /compact and /reload-skills; nothing else is accepted. 'from' is enforced against the session's bound identity.", sendCommandSchema, gate("from", sendCommandTool));
|
|
@@ -263,10 +264,11 @@ function buildServer(initialBound, opts = {}) {
|
|
|
263
264
|
addTool("claim", "Bind a queue item to an agent and produce the 🚧 board row. With no itemId it takes next_unblocked. WARNS LOUDLY while `ensure_worktree` (Phase 5 Task 1) does not exist: the claim binds the item and the row only, and creating an isolated worktree at origin/<base> is still yours. The warning is conditional on that verb's absence, so it stops once Task 1 lands.", claimSchema, gate(null, claimTool));
|
|
264
265
|
addTool("land", "Record a merged PR: refuses without a cited PR number, and refuses unless the PR is on the TARGET TIP (origin/<base>) rather than a merge base — an item merged after your branch was cut is missing from the base too, so the base cannot answer 'what does the thing I am merging into have that I do not?'. Closes the queue item STATUS ONLY (priority and body bytes unchanged), proposes the DONE entry, and reports by default: pass write:true to apply.", landSchema, gate(null, landTool));
|
|
265
266
|
addTool("merge", "Merge a PR ONLY as the consequence of its check verdict: reads the status rollup and merges in the same call, so there is no ordering in which the check runs and the merge ignores it. Refuses on any failing check, on any check not yet terminal, on a CONFLICTING base, and on ZERO checks \u2014 no checks is not passing checks, an empty rollup has zero failures and evidences nothing. Every return carries the POPULATION it judged. Reports by default; pass write:true to merge.", mergeSchema, gate(null, mergeTool));
|
|
266
|
-
addTool("coord_away", "Declare
|
|
267
|
+
addTool("coord_away", "Declare that DAVID IS AWAY and the aide LEADS, or RELEASE it. (Redefined 2026-08-30; the old duty-officer meaning is RETIRED, not deprecated \u2014 one label, one meaning.) The lead DECIDES planning, priority, queue curation, roadmap, canon and releases under standing authorisation; NEVER merges, gates, or takes a code lane (enforced: `merge` and `land` are refused with their reason); and PARKS licence, funding, public-vs-private, credentials, anything altering scope or authority, and destructive machine actions \u2014 those are not the aide's to decide and an absence is not a transfer of that authority. Requires a `leadId` (an unnamed lead reports the fleet as led while leaving it unled) and a `decisionLog` path, so David returns to a diff rather than a transcript. THE PRECONDITION IS MEASURED COVERAGE, NOT A CLOCK RUN: it reads `stall_check`'s own unmeasurable list \u2014 never `stall_clock_status`'s green, which cannot express its own blindness \u2014 and REFUSES when the clock would run and see nothing, unless `acknowledgeBlindFleet:true` records that the promise is being made anyway.", coordAwaySchema, gate("agentId", coordAwayTool));
|
|
267
268
|
addTool("rotate", "Build a handover-to-self packet from LIVE state (git + gh), never chat memory \u2014 memory is the one source that cannot be re-derived after the reset it is meant to survive. REFUSES while the tree is dirty: uncommitted work is the one thing a packet cannot carry, and after /clear nothing can discover it existed. Jobs are an allowlist (reseed-only | phase-boundary); 'archive-done' is deliberately absent. Reports by default; write:true persists the packet.", rotateSchema, gate("agentId", rotateTool));
|
|
268
269
|
addTool("rotate_reconcile", "FIRST ACT AFTER A RESEED. Re-checks every packet claim against live state and REFUSES to report ready on any divergence \u2014 a PR that merged during the reset is the dangerous direction, because the agent resumes a branch already in main and every next step is coherent and wrong. 'missionHint' is reported as UNVERIFIABLE rather than counted as reconciled.", rotateReconcileSchema, gate("agentId", rotateReconcileTool));
|
|
269
|
-
addTool("subscribe", "Register for a record event: a
|
|
270
|
+
addTool("subscribe", "Register for a record event: `task` (a phase checkbox newly ticked), `phase` (the last open box in a phase ticked), `item` (a queue item closed), or `pr` (a PR recorded in DONE.md). Events are DERIVED from the record and refused if the ref is not in it, so the stream can never claim something the authoritative markdown does not \u2014 but the TRIGGER is the record's COMMITTED CHANGE (`scan_record_events`), not any one verb, so a hand-edited DONE.md fires exactly like `land` does. Every offered kind has an emitter: the wire enum is generated from the emitter registry, so an unsatisfiable subscription cannot be registered. Re-subscribing returns the existing registration rather than a duplicate.", subscribeSchema, gate("agentId", subscribeTool));
|
|
271
|
+
addTool("scan_record_events", "Turn a repo's COMMITTED record changes into events: new `docs/DONE.md` entries, queue items that left `docs/QUEUE.md`, and newly-ticked phase checkboxes, between the stored watermark and HEAD. The commit is the boundary \u2014 an uncommitted edit is not yet a record. A HAND-EDIT fires exactly like `land` does, which is the point: fleets merge with `gh` and edit DONE.md directly. Reports by default; `write:true` delivers and advances the watermark. Re-scanning a delivered range is safe (the idempotency key comes from the event, so it reports duplicate-suppressed), and a watermark that no longer resolves REFUSES rather than silently narrowing its window.", scanRecordEventsSchema, gate(null, scanRecordEventsTool));
|
|
270
272
|
addTool("unsubscribe", "Remove one of YOUR subscriptions. Refuses another agent's: silently dropping someone else's notification is how a miss is manufactured.", unsubscribeSchema, gate("agentId", unsubscribeTool));
|
|
271
273
|
addTool("list_subscriptions", "List subscriptions with their health. A subscription NEVER EVALUATED is an ERROR, not a quiet zero \u2014 'no events yet' and 'never ran' are the same output and only one is healthy. Carries its population, because 'no subscriptions' and 'none listed for you' are different claims.", listSubscriptionsSchema, gate(null, listSubscriptionsTool));
|
|
272
274
|
addTool("export_work", "Render a project's work documents back out of the store, reproducing the pinned glyph contract exactly (ref after the last ' \u2014 ', date after a trailing ' \u00b7 '). Reports by default; pass write:true to rewrite the files. Refuses to export from an empty store rather than blanking a document. Refuses write:true when that write would emit a new 5-col lanes-v0 table (parse-only; write grammar is workstreams.v1). Any declared Task 4 write scope is REPORTED alongside the write, never enforced.", exportWorkSchema, gate(null, exportWorkTool));
|
|
@@ -323,6 +325,25 @@ async function main() {
|
|
|
323
325
|
}
|
|
324
326
|
const server = buildServer(boundAgent, { trackSession: true });
|
|
325
327
|
const transport = new StdioServerTransport();
|
|
328
|
+
// StdioServerTransport only wires `data`/`error` on stdin — it never
|
|
329
|
+
// observes EOF. A client that ends the pipe (Claude Code's `/mcp`
|
|
330
|
+
// reconnect calls `stdin.end()` on the child) leaves this process with
|
|
331
|
+
// nothing listening for it, so it idles forever: measured as 25 live
|
|
332
|
+
// servers against 15 registered agents, one pane holding 3 generations.
|
|
333
|
+
// React to the session ending from EITHER direction — the read side
|
|
334
|
+
// closing (client done talking to us) or the write side breaking
|
|
335
|
+
// (client stopped listening, so a reply would EPIPE) — rather than
|
|
336
|
+
// waiting on the SDK client's own SIGTERM escalation to reach us.
|
|
337
|
+
const exitOnSessionEnd = (reason) => {
|
|
338
|
+
console.error(`[agent-coord-mcp] stdio session ended (${reason}) — exiting`);
|
|
339
|
+
process.exit(0);
|
|
340
|
+
};
|
|
341
|
+
process.stdin.on("end", () => exitOnSessionEnd("stdin end"));
|
|
342
|
+
process.stdin.on("close", () => exitOnSessionEnd("stdin close"));
|
|
343
|
+
process.stdout.on("error", (err) => {
|
|
344
|
+
if (err.code === "EPIPE")
|
|
345
|
+
exitOnSessionEnd("stdout EPIPE");
|
|
346
|
+
});
|
|
326
347
|
await server.connect(transport);
|
|
327
348
|
}
|
|
328
349
|
}
|
|
@@ -376,6 +397,56 @@ async function startHttp(port) {
|
|
|
376
397
|
// Which bound agent each session id belongs to, so a session can't be driven
|
|
377
398
|
// by a *different* bearer that merely presents its id (session hijack).
|
|
378
399
|
const sessionAgents = new Map();
|
|
400
|
+
// Session-orphan reap (docs/DECISIONS.md ADR-015 gate #2, QUEUE.md:175 part
|
|
401
|
+
// 2). Design history, kept because the rejected shape is as load-bearing as
|
|
402
|
+
// the shipped one:
|
|
403
|
+
//
|
|
404
|
+
// `transport.onclose` — the SDK's only cleanup hook — fires exclusively from
|
|
405
|
+
// an explicit DELETE (webStandardStreamableHttp.js, "Handles DELETE requests
|
|
406
|
+
// to terminate sessions"). Measured: `Client.close()` never sends one —
|
|
407
|
+
// `StreamableHTTPClientTransport.close()` only aborts locally, and the
|
|
408
|
+
// separate `terminateSession()` method that DOES send DELETE is never
|
|
409
|
+
// called anywhere in the generic client path (shared/protocol.js). So a
|
|
410
|
+
// client that reconnects the ordinary way (close + new client, the same
|
|
411
|
+
// shape as the stdio leak fixed one level up) orphans its session here
|
|
412
|
+
// forever — confirmed live: a session answered 200 after `client.close()`.
|
|
413
|
+
//
|
|
414
|
+
// FIRST DESIGN WAS IDLE-TIMEOUT, AND IT WAS WRONG — kept as the cautionary
|
|
415
|
+
// case, not deleted: the stdio sibling of this fix (#169) shipped the same
|
|
416
|
+
// shape and was HELD after a live test proved the failure mode. Killing a
|
|
417
|
+
// session's process out from under a still-attached client produces
|
|
418
|
+
// SILENT, NON-RECOVERABLE loss — no transparent respawn, confirmed by
|
|
419
|
+
// killing this repo's own coord-mcp subprocess and watching every
|
|
420
|
+
// `mcp__agent-coord__*` tool vanish with no automatic recovery. Idle is not
|
|
421
|
+
// abandoned: an agent can sit quiet for 128 minutes while working normally.
|
|
422
|
+
// A timer cannot tell those apart; it was never going to be safe as the
|
|
423
|
+
// sole signal, on the daemon or on stdio.
|
|
424
|
+
//
|
|
425
|
+
// WHAT ACTUALLY DISTINGUISHES ABANDONED FROM QUIET: whether a NEWER session
|
|
426
|
+
// for the same bound agent already exists. If it does, the OLD session's
|
|
427
|
+
// own client already reconnected — the exact shape measured live (a fresh
|
|
428
|
+
// `client.connect()` after `client.close()`) — and closing the superseded
|
|
429
|
+
// session costs that client nothing, because it already moved on. This
|
|
430
|
+
// needs no timer and no guess: `agentSessions` tracks the current session
|
|
431
|
+
// per bound agent, and a session that stops being current is provably
|
|
432
|
+
// orphaned the instant it is superseded.
|
|
433
|
+
//
|
|
434
|
+
// Unbound (TOFU/advisory) sessions have no agent identity to key
|
|
435
|
+
// supersession on, so they get none of this — deliberately: a mechanism
|
|
436
|
+
// that cannot tell "superseded" from "just another session" must not guess.
|
|
437
|
+
const agentSessions = new Map();
|
|
438
|
+
async function reapSuperseded(agentId, supersededId) {
|
|
439
|
+
const transport = sessions.get(supersededId);
|
|
440
|
+
if (!transport)
|
|
441
|
+
return; // already gone
|
|
442
|
+
console.error(`[agent-coord-mcp] reaping session ${supersededId} for agent '${agentId}' — superseded by a newer session`);
|
|
443
|
+
try {
|
|
444
|
+
await transport.close();
|
|
445
|
+
}
|
|
446
|
+
catch (err) {
|
|
447
|
+
console.error(`[agent-coord-mcp] reap FAILED for session ${supersededId}:`, err);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
379
450
|
async function makeSessionTransport(boundAgent) {
|
|
380
451
|
// `let` + explicit type lets the SDK callbacks close over the binding
|
|
381
452
|
// before it's assigned — they only fire after construction completes.
|
|
@@ -385,12 +456,25 @@ async function startHttp(port) {
|
|
|
385
456
|
onsessioninitialized: (id) => {
|
|
386
457
|
sessions.set(id, transport);
|
|
387
458
|
sessionAgents.set(id, boundAgent);
|
|
459
|
+
if (boundAgent) {
|
|
460
|
+
const superseded = agentSessions.get(boundAgent);
|
|
461
|
+
agentSessions.set(boundAgent, id);
|
|
462
|
+
if (superseded && superseded !== id) {
|
|
463
|
+
reapSuperseded(boundAgent, superseded).catch((err) => console.error("[agent-coord-mcp] supersession reap threw:", err));
|
|
464
|
+
}
|
|
465
|
+
}
|
|
388
466
|
},
|
|
389
467
|
});
|
|
390
468
|
transport.onclose = () => {
|
|
391
469
|
if (transport.sessionId) {
|
|
392
470
|
sessions.delete(transport.sessionId);
|
|
393
471
|
sessionAgents.delete(transport.sessionId);
|
|
472
|
+
// Only clear the agent's CURRENT pointer if it still points here — a
|
|
473
|
+
// superseded session closing after its successor already claimed the
|
|
474
|
+
// slot must not erase the successor's own entry.
|
|
475
|
+
if (boundAgent && agentSessions.get(boundAgent) === transport.sessionId) {
|
|
476
|
+
agentSessions.delete(boundAgent);
|
|
477
|
+
}
|
|
394
478
|
}
|
|
395
479
|
};
|
|
396
480
|
const server = buildServer(boundAgent);
|
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/tools/away.js
CHANGED
|
@@ -1,37 +1,76 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* `coord_away` —
|
|
2
|
+
* `coord_away` — DAVID IS AWAY AND THE AIDE LEADS.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* writing, that a duty officer may call it.
|
|
4
|
+
* REDEFINED (David, 2026-08-30). The verb used to mean "the coordinator stepped
|
|
5
|
+
* out and a duty officer keeps its seat warm". That meaning is RETIRED, not
|
|
6
|
+
* deprecated: same skill label, one meaning. A verb with two meanings is read
|
|
7
|
+
* as whichever one the reader already had in mind, and the two differ on who
|
|
8
|
+
* holds authority — the most expensive thing to be ambiguous about.
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* WHAT IT NOW MEANS: David is away, and the aide LEADS in his absence. That is
|
|
11
|
+
* a grant of DECISION authority, not of execution authority, and the boundary
|
|
12
|
+
* is the feature:
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* DECIDES planning · priority · queue curation · roadmap · canon · releases
|
|
15
|
+
* under standing publish authorisation.
|
|
16
|
+
* NEVER merges, gates, or takes a code lane. Unchanged by the grant — a
|
|
17
|
+
* lead is not a second worker, and the aide's nevers are what keep
|
|
18
|
+
* the gate non-author.
|
|
19
|
+
* PARKS licence · funding · public-vs-private · credentials · anything
|
|
20
|
+
* altering scope or authority · destructive machine actions.
|
|
21
|
+
*
|
|
22
|
+
* WHY PARK RATHER THAN REFUSE-AND-FORGET: a parked decision is one David
|
|
23
|
+
* returns to. The whole point of leading in an absence is that the absence ends,
|
|
24
|
+
* and the fleet should hand back a DIFF rather than a transcript — which is why
|
|
25
|
+
* `decisionLog` is required to turn this on rather than being a nice-to-have.
|
|
26
|
+
*
|
|
27
|
+
* THE PRECONDITION IS MEASURED COVERAGE, NOT A RUN. Going away is a promise
|
|
28
|
+
* that the fleet is observed while nobody is watching, and the fleet was
|
|
29
|
+
* measured making that promise with a stall clock that had been stopped for
|
|
30
|
+
* eight hours — and then, once started, reporting `checked 3 · measurable 0`.
|
|
31
|
+
* "The clock ran" and "the fleet is observed" are different facts. So the
|
|
32
|
+
* precondition asks what the clock could actually SEE, and going away blind is
|
|
33
|
+
* a deliberate, recorded act rather than a silent default.
|
|
19
34
|
*/
|
|
20
35
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
21
36
|
import path from "node:path";
|
|
22
37
|
import { z } from "zod";
|
|
23
38
|
import { ROOT } from "../store.js";
|
|
39
|
+
import { stallCheckTool } from "./stall.js";
|
|
24
40
|
const awayFile = () => path.join(ROOT, "coord-away.json");
|
|
25
41
|
/**
|
|
26
|
-
* WHAT
|
|
42
|
+
* WHAT THE LEAD MAY NOT DO, enforced rather than trusted to a card line.
|
|
43
|
+
*
|
|
44
|
+
* ALLOWLIST FOR THE OLD MEANING, DENYLIST FOR THIS ONE — and the asymmetry is
|
|
45
|
+
* deliberate rather than a relaxation. A duty officer's grant was NARROW ("keep
|
|
46
|
+
* claimed work moving"), so absence had to mean refusal or every unlisted tool
|
|
47
|
+
* was a silent grant. A lead's grant is WIDE by design: it decides planning,
|
|
48
|
+
* priority, curation, roadmap, canon and releases, which is most of the bus. An
|
|
49
|
+
* allowlist over a wide grant would have to enumerate nearly every tool, and the
|
|
50
|
+
* one someone forgets would refuse legitimate work in the middle of an absence —
|
|
51
|
+
* failing in the direction that leaves the fleet stuck with nobody to ask.
|
|
27
52
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* grow-fleet verbs — a stand-in does not get to change the fleet's shape.
|
|
32
|
-
* CANON writes — canon outlives the absence that created the stand-in.
|
|
53
|
+
* What is refused is small, closed, and named for its reason: the aide's
|
|
54
|
+
* `never merges / never gates` rule. That rule does not widen when David leaves;
|
|
55
|
+
* it is load-bearing precisely because the gate must stay non-author.
|
|
33
56
|
*/
|
|
34
|
-
export const
|
|
57
|
+
export const LEAD_REFUSED = {
|
|
58
|
+
merge: "merging is the gate acting. The aide never gates, and leading in David's absence does not change who may — a lead that merges is an author gating its own plan.",
|
|
59
|
+
land: "`land` writes docs/DONE.md, which is the coordinator's file. Leading does not transfer file ownership; ask the coordinator to record it.",
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Decisions that WAIT for David. Not refused because they are dangerous to
|
|
63
|
+
* execute — refused because they are not the aide's to make, and an absence is
|
|
64
|
+
* not a transfer of that authority.
|
|
65
|
+
*/
|
|
66
|
+
export const PARKED_CATEGORIES = [
|
|
67
|
+
"licence",
|
|
68
|
+
"funding",
|
|
69
|
+
"public-vs-private",
|
|
70
|
+
"credentials",
|
|
71
|
+
"anything altering scope or authority",
|
|
72
|
+
"destructive machine actions",
|
|
73
|
+
];
|
|
35
74
|
export function readAway() {
|
|
36
75
|
const f = awayFile();
|
|
37
76
|
if (!existsSync(f))
|
|
@@ -48,75 +87,157 @@ function writeAway(state) {
|
|
|
48
87
|
writeFileSync(awayFile(), `${JSON.stringify(state, null, 2)}\n`);
|
|
49
88
|
}
|
|
50
89
|
/**
|
|
51
|
-
* The refusal
|
|
90
|
+
* The refusal the LEAD gets, or null if the call is allowed.
|
|
52
91
|
*
|
|
53
|
-
* Only the
|
|
54
|
-
* `
|
|
55
|
-
* working because
|
|
92
|
+
* Only the lead is constrained, and only on the two verbs above. Everyone
|
|
93
|
+
* else's lane is untouched: `coord_away` is not a freeze on the project, and a
|
|
94
|
+
* worker whose tools stopped working because David went out would simply stop
|
|
95
|
+
* calling them.
|
|
56
96
|
*/
|
|
57
97
|
export function awayRefusal(state, agentId, tool) {
|
|
58
98
|
if (!agentId)
|
|
59
99
|
return null;
|
|
60
|
-
const held = Object.values(state).find((s) => s.on && s.
|
|
100
|
+
const held = Object.values(state).find((s) => s.on && s.leadId === agentId);
|
|
61
101
|
if (!held)
|
|
62
102
|
return null;
|
|
63
|
-
|
|
103
|
+
const why = LEAD_REFUSED[tool];
|
|
104
|
+
if (!why)
|
|
64
105
|
return null;
|
|
65
|
-
return `'${tool}' is
|
|
106
|
+
return (`'${tool}' is refused while you LEAD on '${held.project}' in David's absence: ${why} ` +
|
|
107
|
+
`Leading grants DECISION authority — planning, priority, curation, roadmap, canon, releases — not execution authority. ` +
|
|
108
|
+
`If this genuinely needs doing, it needs the coordinator, or David back. Record it in ${held.decisionLog} either way.`);
|
|
66
109
|
}
|
|
67
110
|
/**
|
|
68
|
-
*
|
|
111
|
+
* RETIRED WITH THE OLD MEANING. Kept as a no-op so the call site in
|
|
112
|
+
* `registerTool` keeps compiling and the retirement is visible where the guard
|
|
113
|
+
* used to be, rather than as an absence someone re-derives later.
|
|
114
|
+
*
|
|
115
|
+
* Under the old meaning the coordinator was the one away, so a second
|
|
116
|
+
* coordinator joining was a fleet-shape change made behind its back. Under this
|
|
117
|
+
* one the coordinator is present and working, and blocking a second coordinator
|
|
118
|
+
* while DAVID is out would refuse a legitimate handoff at exactly the moment
|
|
119
|
+
* nobody can approve it.
|
|
69
120
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* refuses by construction.
|
|
121
|
+
* RECORDED GAP, deliberately not solved here: retiring the duty-officer meaning
|
|
122
|
+
* leaves COORDINATOR absence uncovered. If the coordinator goes down while David
|
|
123
|
+
* is away, nothing covers the seat. That is a decision, not an oversight — it is
|
|
124
|
+
* named so the next reader finds a choice rather than a hole.
|
|
75
125
|
*/
|
|
76
|
-
export function secondCoordinatorRefusal(
|
|
77
|
-
|
|
78
|
-
return null;
|
|
79
|
-
const held = Object.values(state).find((s) => s.on && s.coordinatorId !== agentId);
|
|
80
|
-
if (!held)
|
|
81
|
-
return null;
|
|
82
|
-
return `coord-away is HELD on '${held.project}' by '${held.coordinatorId}' (duty officer '${held.dutyOfficerId}'). A second coordinator cannot join until it is RELEASED — two coordinators is the condition under which one lane gets two GOs, and the absent one cannot see the second arrive.`;
|
|
126
|
+
export function secondCoordinatorRefusal(_state, _agentId, _roleId) {
|
|
127
|
+
return null;
|
|
83
128
|
}
|
|
84
129
|
export const coordAwaySchema = {
|
|
85
130
|
project: z.string().min(1),
|
|
86
131
|
on: z.boolean(),
|
|
87
|
-
|
|
88
|
-
|
|
132
|
+
/** The agent leading in David's absence — the aide. */
|
|
133
|
+
leadId: z.string().optional(),
|
|
134
|
+
/** Repo-relative path where decisions taken during the absence are written. */
|
|
135
|
+
decisionLog: z.string().optional(),
|
|
89
136
|
until: z.string().optional(),
|
|
137
|
+
/** Repo to measure stall coverage against. */
|
|
138
|
+
repo: z.string().optional(),
|
|
139
|
+
/** Turn it on knowing the fleet is unobserved. Recorded in the state. */
|
|
140
|
+
acknowledgeBlindFleet: z.boolean().optional(),
|
|
141
|
+
/** Who is calling — the lead may turn it on and release it. */
|
|
142
|
+
agentId: z.string().optional(),
|
|
90
143
|
};
|
|
144
|
+
async function measureCoverage(repo) {
|
|
145
|
+
if (!repo)
|
|
146
|
+
return null;
|
|
147
|
+
try {
|
|
148
|
+
const r = (await stallCheckTool({ repo }));
|
|
149
|
+
if (!r?.ok)
|
|
150
|
+
return null;
|
|
151
|
+
return { checked: r.checked ?? 0, measurable: r.measurable ?? 0, blind: r.blind ?? [], at: new Date().toISOString() };
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
91
157
|
export async function coordAwayTool(args) {
|
|
92
158
|
const state = readAway();
|
|
93
159
|
const prior = state[args.project];
|
|
94
160
|
if (args.on) {
|
|
95
|
-
// A
|
|
96
|
-
//
|
|
97
|
-
if (!args.
|
|
98
|
-
return { ok: false, error: `coord-away ON requires a
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
161
|
+
// A LEAD WITH NO NAME IS AN ABSENCE DESCRIBED AS COVERED, which is strictly
|
|
162
|
+
// worse than an absence everyone can see is uncovered.
|
|
163
|
+
if (!args.leadId) {
|
|
164
|
+
return { ok: false, error: `coord-away ON requires a leadId — the agent leading in David's absence. Turning it on without naming one reports the fleet as led while leaving it unled.` };
|
|
165
|
+
}
|
|
166
|
+
if (!args.decisionLog) {
|
|
167
|
+
return {
|
|
168
|
+
ok: false,
|
|
169
|
+
error: `coord-away ON requires a decisionLog path. The point of leading through an absence is that the absence ENDS: ` +
|
|
170
|
+
`David should return to a diff he can read, not a transcript he has to reconstruct. A log promised at the start ` +
|
|
171
|
+
`and written at the end is a log nobody wrote.`,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
if (prior?.on) {
|
|
175
|
+
return { ok: false, error: `coord-away is already ON for '${args.project}' — '${prior.leadId}' leads since ${prior.at}. Release it before re-arming.` };
|
|
176
|
+
}
|
|
177
|
+
// THE PRECONDITION: what could the clock actually SEE?
|
|
178
|
+
const coverage = await measureCoverage(args.repo);
|
|
179
|
+
if (!coverage) {
|
|
180
|
+
return {
|
|
181
|
+
ok: false,
|
|
182
|
+
error: `cannot measure stall coverage for '${args.project}'${args.repo ? "" : " — pass 'repo'"}. ` +
|
|
183
|
+
`Going away is a promise that the fleet is watched while nobody is watching, and an UNMEASURED promise ` +
|
|
184
|
+
`is the one this verb exists to stop making. Fix the measurement, or pass acknowledgeBlindFleet:true to ` +
|
|
185
|
+
`record that the promise is being made anyway.`,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
// `checked > 0` MATTERS: an empty board is an IDLE fleet, not a blind one.
|
|
189
|
+
// Without it, arming while nothing is in flight refuses with "the clock
|
|
190
|
+
// covers 0 of 0" — a refusal that reads as a fleet nobody can see when in
|
|
191
|
+
// fact there is nothing to see, and the only way past it would be to
|
|
192
|
+
// acknowledge a blindness that does not exist.
|
|
193
|
+
if (coverage.checked > 0 && coverage.measurable === 0 && !args.acknowledgeBlindFleet) {
|
|
194
|
+
return {
|
|
195
|
+
ok: false,
|
|
196
|
+
error: `REFUSING: the stall clock covers ${coverage.measurable} of ${coverage.checked} in-flight row(s). ` +
|
|
197
|
+
`It would RUN and see nothing${coverage.blind.length ? ` — blind on: ${coverage.blind.join(", ")}` : ""}. ` +
|
|
198
|
+
`"The clock ran" and "the fleet is observed" are different facts, and this verb must not treat the first as the second. ` +
|
|
199
|
+
`The usual cause is a board 'Branch · Worktree' cell holding a PATH rather than a branch ref: a path resolves for ` +
|
|
200
|
+
`git and measures the wrong thing, so the check reports it unmeasurable rather than guessing. Fix those cells and ` +
|
|
201
|
+
`coverage returns. If you mean to go anyway, pass acknowledgeBlindFleet:true — it is recorded in the state and in the announcement.`,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
state[args.project] = {
|
|
205
|
+
on: true,
|
|
206
|
+
project: args.project,
|
|
207
|
+
away: "david",
|
|
208
|
+
leadId: args.leadId,
|
|
209
|
+
until: args.until,
|
|
210
|
+
at: new Date().toISOString(),
|
|
211
|
+
decisionLog: args.decisionLog,
|
|
212
|
+
coverage,
|
|
213
|
+
...(coverage.checked > 0 && coverage.measurable === 0 ? { blindAcknowledged: true } : {}),
|
|
214
|
+
};
|
|
104
215
|
writeAway(state);
|
|
105
216
|
return {
|
|
106
217
|
ok: true,
|
|
107
218
|
state: state[args.project],
|
|
108
|
-
|
|
109
|
-
|
|
219
|
+
refused: LEAD_REFUSED,
|
|
220
|
+
parked: PARKED_CATEGORIES,
|
|
221
|
+
announce: `AGENT_ACTION: coord-away ON — David is away${args.until ? ` until ${args.until}` : ""}; '${args.leadId}' LEADS. ` +
|
|
222
|
+
`Decides: planning · priority · curation · roadmap · canon · releases under standing authorisation. ` +
|
|
223
|
+
`Never: merges, gates, or takes a code lane. Parks for David: ${PARKED_CATEGORIES.join(" · ")}. ` +
|
|
224
|
+
`Decisions logged to ${args.decisionLog}. ` +
|
|
225
|
+
`Stall coverage ${coverage.measurable}/${coverage.checked}${coverage.checked > 0 && coverage.measurable === 0 ? " — ACKNOWLEDGED BLIND: the clock runs and sees nothing" : ""}.`,
|
|
110
226
|
};
|
|
111
227
|
}
|
|
112
|
-
// RELEASE IS THE COORDINATOR'S. A duty officer releasing its own limits is
|
|
113
|
-
// the limit not existing — the one call it must not be able to make.
|
|
114
228
|
if (!prior?.on)
|
|
115
229
|
return { ok: false, error: `coord-away is not on for '${args.project}' — nothing to release.` };
|
|
116
|
-
|
|
117
|
-
|
|
230
|
+
// RELEASE IS OBSERVING THAT DAVID IS BACK, not lifting a limit on yourself —
|
|
231
|
+
// which is why the lead may do it and a duty officer could not. The parked
|
|
232
|
+
// decisions are NOT unparked by it: they were never the lead's to make, and
|
|
233
|
+
// release does not retroactively authorise one.
|
|
118
234
|
state[args.project] = { ...prior, on: false, at: new Date().toISOString() };
|
|
119
235
|
writeAway(state);
|
|
120
|
-
return {
|
|
236
|
+
return {
|
|
237
|
+
ok: true,
|
|
238
|
+
state: state[args.project],
|
|
239
|
+
announce: `AGENT_ACTION: coord-away RELEASED on '${args.project}' — David is back; '${prior.leadId}' stands down as lead. ` +
|
|
240
|
+
`Anything parked during the absence is still parked: release does not authorise it. Decisions taken: ${prior.decisionLog}.`,
|
|
241
|
+
};
|
|
121
242
|
}
|
|
122
243
|
//# sourceMappingURL=away.js.map
|
package/dist/tools/away.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"away.js","sourceRoot":"","sources":["../../src/tools/away.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"away.js","sourceRoot":"","sources":["../../src/tools/away.ts"],"names":[],"mappings":"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"}
|