@agentdeck/bridge 1.1.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +14 -6
  2. package/assets/fonts/NOTICE-PocketSansWorld.md +10 -0
  3. package/assets/fonts/OFL-PocketSansWorld.txt +93 -0
  4. package/assets/fonts/PocketSansWorld_12.cpfont +0 -0
  5. package/assets/fonts/pocket-sans-world.manifest.json +49 -0
  6. package/assets/learning/LICENSE-CC-BY-SA-4.0.txt +10 -0
  7. package/assets/learning/NOTICE.md +33 -0
  8. package/assets/learning/jp-n3-ko.manifest.json +27 -0
  9. package/assets/learning/jp-n3-ko.pdl +0 -0
  10. package/dist/agent-cli-diagnostics.d.ts +20 -0
  11. package/dist/agent-cli-diagnostics.d.ts.map +1 -0
  12. package/dist/agent-cli-diagnostics.js +100 -0
  13. package/dist/agent-cli-diagnostics.js.map +1 -0
  14. package/dist/apme/classifier.d.ts.map +1 -1
  15. package/dist/apme/classifier.js +18 -10
  16. package/dist/apme/classifier.js.map +1 -1
  17. package/dist/apme/claude-transcript-reader.d.ts +36 -0
  18. package/dist/apme/claude-transcript-reader.d.ts.map +1 -1
  19. package/dist/apme/claude-transcript-reader.js +78 -2
  20. package/dist/apme/claude-transcript-reader.js.map +1 -1
  21. package/dist/apme/collector.d.ts +126 -3
  22. package/dist/apme/collector.d.ts.map +1 -1
  23. package/dist/apme/collector.js +450 -41
  24. package/dist/apme/collector.js.map +1 -1
  25. package/dist/apme/dashboard-html.d.ts.map +1 -1
  26. package/dist/apme/dashboard-html.js +278 -36
  27. package/dist/apme/dashboard-html.js.map +1 -1
  28. package/dist/apme/graph.d.ts +1 -1
  29. package/dist/apme/graph.d.ts.map +1 -1
  30. package/dist/apme/graph.js +51 -1
  31. package/dist/apme/graph.js.map +1 -1
  32. package/dist/apme/http.d.ts.map +1 -1
  33. package/dist/apme/http.js +37 -5
  34. package/dist/apme/http.js.map +1 -1
  35. package/dist/apme/index.d.ts +4 -0
  36. package/dist/apme/index.d.ts.map +1 -1
  37. package/dist/apme/index.js +19 -3
  38. package/dist/apme/index.js.map +1 -1
  39. package/dist/apme/runner.d.ts +90 -0
  40. package/dist/apme/runner.d.ts.map +1 -1
  41. package/dist/apme/runner.js +524 -48
  42. package/dist/apme/runner.js.map +1 -1
  43. package/dist/apme/sample-to-timeline.d.ts.map +1 -1
  44. package/dist/apme/sample-to-timeline.js +5 -0
  45. package/dist/apme/sample-to-timeline.js.map +1 -1
  46. package/dist/apme/settings.d.ts +8 -0
  47. package/dist/apme/settings.d.ts.map +1 -1
  48. package/dist/apme/settings.js +4 -0
  49. package/dist/apme/settings.js.map +1 -1
  50. package/dist/apme/store.d.ts +118 -9
  51. package/dist/apme/store.d.ts.map +1 -1
  52. package/dist/apme/store.js +342 -44
  53. package/dist/apme/store.js.map +1 -1
  54. package/dist/apme/task-gradeability.d.ts +82 -0
  55. package/dist/apme/task-gradeability.d.ts.map +1 -0
  56. package/dist/apme/task-gradeability.js +126 -0
  57. package/dist/apme/task-gradeability.js.map +1 -0
  58. package/dist/awaiting-overlay.d.ts +13 -26
  59. package/dist/awaiting-overlay.d.ts.map +1 -1
  60. package/dist/awaiting-overlay.js +7 -40
  61. package/dist/awaiting-overlay.js.map +1 -1
  62. package/dist/bridge-core.d.ts +15 -0
  63. package/dist/bridge-core.d.ts.map +1 -1
  64. package/dist/bridge-core.js +30 -4
  65. package/dist/bridge-core.js.map +1 -1
  66. package/dist/claude-permission-rules.d.ts +20 -32
  67. package/dist/claude-permission-rules.d.ts.map +1 -1
  68. package/dist/claude-permission-rules.js +19 -102
  69. package/dist/claude-permission-rules.js.map +1 -1
  70. package/dist/claude-usage-recovery.d.ts +54 -0
  71. package/dist/claude-usage-recovery.d.ts.map +1 -0
  72. package/dist/claude-usage-recovery.js +200 -0
  73. package/dist/claude-usage-recovery.js.map +1 -0
  74. package/dist/cli.d.ts +11 -0
  75. package/dist/cli.d.ts.map +1 -1
  76. package/dist/cli.js +81 -14
  77. package/dist/cli.js.map +1 -1
  78. package/dist/codex-rate-limits-live.d.ts +180 -10
  79. package/dist/codex-rate-limits-live.d.ts.map +1 -1
  80. package/dist/codex-rate-limits-live.js +475 -22
  81. package/dist/codex-rate-limits-live.js.map +1 -1
  82. package/dist/codex-rollout-response.d.ts +43 -0
  83. package/dist/codex-rollout-response.d.ts.map +1 -1
  84. package/dist/codex-rollout-response.js +67 -0
  85. package/dist/codex-rollout-response.js.map +1 -1
  86. package/dist/coordination-evidence.d.ts +150 -0
  87. package/dist/coordination-evidence.d.ts.map +1 -0
  88. package/dist/coordination-evidence.js +455 -0
  89. package/dist/coordination-evidence.js.map +1 -0
  90. package/dist/daemon-server.d.ts.map +1 -1
  91. package/dist/daemon-server.js +592 -35
  92. package/dist/daemon-server.js.map +1 -1
  93. package/dist/daemon-ws-client.d.ts +1 -0
  94. package/dist/daemon-ws-client.d.ts.map +1 -1
  95. package/dist/daemon-ws-client.js +25 -16
  96. package/dist/daemon-ws-client.js.map +1 -1
  97. package/dist/daemon.js +1 -1
  98. package/dist/deferred-reply-read.d.ts +24 -0
  99. package/dist/deferred-reply-read.d.ts.map +1 -0
  100. package/dist/deferred-reply-read.js +42 -0
  101. package/dist/deferred-reply-read.js.map +1 -0
  102. package/dist/esp32-serial.d.ts +15 -0
  103. package/dist/esp32-serial.d.ts.map +1 -1
  104. package/dist/esp32-serial.js +61 -2
  105. package/dist/esp32-serial.js.map +1 -1
  106. package/dist/font-pack.d.ts +15 -0
  107. package/dist/font-pack.d.ts.map +1 -0
  108. package/dist/font-pack.js +75 -0
  109. package/dist/font-pack.js.map +1 -0
  110. package/dist/glance-frame.d.ts.map +1 -1
  111. package/dist/glance-frame.js +2 -0
  112. package/dist/glance-frame.js.map +1 -1
  113. package/dist/hook-codex-sessions.d.ts +9 -0
  114. package/dist/hook-codex-sessions.d.ts.map +1 -1
  115. package/dist/hook-codex-sessions.js +35 -2
  116. package/dist/hook-codex-sessions.js.map +1 -1
  117. package/dist/hook-opencode-sessions.d.ts +62 -0
  118. package/dist/hook-opencode-sessions.d.ts.map +1 -0
  119. package/dist/hook-opencode-sessions.js +180 -0
  120. package/dist/hook-opencode-sessions.js.map +1 -0
  121. package/dist/hook-response-source.d.ts +40 -0
  122. package/dist/hook-response-source.d.ts.map +1 -0
  123. package/dist/hook-response-source.js +31 -0
  124. package/dist/hook-response-source.js.map +1 -0
  125. package/dist/http-auth-gate.d.ts.map +1 -1
  126. package/dist/http-auth-gate.js +9 -1
  127. package/dist/http-auth-gate.js.map +1 -1
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +6 -3
  130. package/dist/index.js.map +1 -1
  131. package/dist/learning-pack.d.ts +24 -0
  132. package/dist/learning-pack.d.ts.map +1 -0
  133. package/dist/learning-pack.js +125 -0
  134. package/dist/learning-pack.js.map +1 -0
  135. package/dist/mdns.js +1 -1
  136. package/dist/mdns.js.map +1 -1
  137. package/dist/native-dependency-diagnostics.d.ts +29 -0
  138. package/dist/native-dependency-diagnostics.d.ts.map +1 -0
  139. package/dist/native-dependency-diagnostics.js +95 -0
  140. package/dist/native-dependency-diagnostics.js.map +1 -0
  141. package/dist/observed-steering.d.ts +4 -4
  142. package/dist/observed-steering.d.ts.map +1 -1
  143. package/dist/observed-steering.js +28 -32
  144. package/dist/observed-steering.js.map +1 -1
  145. package/dist/openclaw-gateway-stability.d.ts +94 -0
  146. package/dist/openclaw-gateway-stability.d.ts.map +1 -0
  147. package/dist/openclaw-gateway-stability.js +176 -0
  148. package/dist/openclaw-gateway-stability.js.map +1 -0
  149. package/dist/pairing-knocks.d.ts +80 -0
  150. package/dist/pairing-knocks.d.ts.map +1 -0
  151. package/dist/pairing-knocks.js +312 -0
  152. package/dist/pairing-knocks.js.map +1 -0
  153. package/dist/passive-observer.d.ts +5 -0
  154. package/dist/passive-observer.d.ts.map +1 -1
  155. package/dist/passive-observer.js +6 -0
  156. package/dist/passive-observer.js.map +1 -1
  157. package/dist/pixoo/micro-glyphs.d.ts +4 -0
  158. package/dist/pixoo/micro-glyphs.d.ts.map +1 -1
  159. package/dist/pixoo/micro-glyphs.js +29 -0
  160. package/dist/pixoo/micro-glyphs.js.map +1 -1
  161. package/dist/pixoo/pixoo-font.d.ts.map +1 -1
  162. package/dist/pixoo/pixoo-font.js +3 -1
  163. package/dist/pixoo/pixoo-font.js.map +1 -1
  164. package/dist/pixoo/pixoo-renderer.d.ts +1 -1
  165. package/dist/pixoo/pixoo-renderer.d.ts.map +1 -1
  166. package/dist/pixoo/pixoo-renderer.js +17 -2
  167. package/dist/pixoo/pixoo-renderer.js.map +1 -1
  168. package/dist/pty-manager.d.ts +9 -0
  169. package/dist/pty-manager.d.ts.map +1 -1
  170. package/dist/pty-manager.js +63 -4
  171. package/dist/pty-manager.js.map +1 -1
  172. package/dist/relayed-usage.d.ts +30 -0
  173. package/dist/relayed-usage.d.ts.map +1 -1
  174. package/dist/relayed-usage.js +25 -2
  175. package/dist/relayed-usage.js.map +1 -1
  176. package/dist/review-runner.js +1 -1
  177. package/dist/subagent-timeline.d.ts +27 -0
  178. package/dist/subagent-timeline.d.ts.map +1 -1
  179. package/dist/subagent-timeline.js +52 -5
  180. package/dist/subagent-timeline.js.map +1 -1
  181. package/dist/surface-protocol.d.ts.map +1 -1
  182. package/dist/surface-protocol.js +2 -0
  183. package/dist/surface-protocol.js.map +1 -1
  184. package/dist/tui/dashboard.d.ts.map +1 -1
  185. package/dist/tui/dashboard.js +8 -1
  186. package/dist/tui/dashboard.js.map +1 -1
  187. package/dist/usage-api.d.ts +3 -0
  188. package/dist/usage-api.d.ts.map +1 -1
  189. package/dist/usage-api.js +101 -36
  190. package/dist/usage-api.js.map +1 -1
  191. package/dist/usage-event.d.ts.map +1 -1
  192. package/dist/usage-event.js +2 -1
  193. package/dist/usage-event.js.map +1 -1
  194. package/dist/ws-server.d.ts +18 -0
  195. package/dist/ws-server.d.ts.map +1 -1
  196. package/dist/ws-server.js +40 -2
  197. package/dist/ws-server.js.map +1 -1
  198. package/package.json +6 -5
  199. package/src/timebox/sync_ble.py +35 -16
@@ -0,0 +1,455 @@
1
+ /**
2
+ * Cross-session coordination evidence.
3
+ *
4
+ * A harness divides work in more ways than `SubagentStart`. Measured on
5
+ * 2026-09-06 while a user asked why their epoch-of-tech creatures "looked
6
+ * idle": the parent had closed its turn ("waiting for the matrix"), six
7
+ * `claude -p --model glm-5.3` workers it launched from a background Bash had
8
+ * each become a separate observed session with no link back, twelve
9
+ * `SendMessage` calls had crossed between it and a sibling, and a 22-minute
10
+ * `run_bot_matrix.sh` it would be re-invoked by was still running under
11
+ * launchd with the parent's scratchpad path in its argv. Every surface showed
12
+ * `idle`, and the collaboration lens drew one Explore branch.
13
+ *
14
+ * Each of those facts is OBSERVABLE without guessing, and this module turns
15
+ * them into `RelationEvent`s plus a per-session `CoordinationSummary`:
16
+ *
17
+ * - `spawned` — a peer session whose process is a descendant of this
18
+ * session's process (`process_ancestry`), or the intent to spawn one
19
+ * seen on a Bash tool call (`bash_claude_p`) before the child exists.
20
+ * - `messaged` — the sender's `SendMessage` tool input (`send_message_tool`)
21
+ * and the receiver's `<cross-session-message from="uds:…/<pid>.sock"
22
+ * from-name="…">` envelope (`cross_session_message`). The sender pid in
23
+ * the envelope resolves to a session through the process table.
24
+ * - `waiting_on` — a process (not itself an agent session) whose argv names
25
+ * this session's scratchpad directory (`background_process`), i.e. a
26
+ * `run_in_background` job the harness will re-invoke the session for.
27
+ *
28
+ * What it deliberately does not do: link two sessions because they share a
29
+ * project, or read a "worker" out of prose. A relation whose peer cannot be
30
+ * resolved carries only the name/pid the evidence itself had.
31
+ */
32
+ const ENVELOPE_RE = /<cross-session-message\b([^>]*)>/;
33
+ const ATTR_RE = /([a-z-]+)="([^"]*)"/g;
34
+ const UDS_PID_RE = /\/(\d+)\.sock\b/;
35
+ const MAX_DETAIL = 140;
36
+ function attrs(raw) {
37
+ const out = {};
38
+ for (const m of raw.matchAll(ATTR_RE))
39
+ out[m[1]] = m[2];
40
+ return out;
41
+ }
42
+ function pidFromUds(value) {
43
+ if (!value)
44
+ return null;
45
+ const m = UDS_PID_RE.exec(value);
46
+ const pid = m ? Number(m[1]) : NaN;
47
+ return Number.isInteger(pid) && pid > 0 ? pid : null;
48
+ }
49
+ function clip(text, max = MAX_DETAIL) {
50
+ const flat = text.replace(/\s+/g, ' ').trim();
51
+ return flat.length > max ? `${flat.slice(0, max - 1).trim()}…` : flat;
52
+ }
53
+ /** Parse a received prompt for the cross-session envelope; null when the
54
+ * prompt is an ordinary user turn. */
55
+ export function parseCrossSessionEnvelope(prompt) {
56
+ if (typeof prompt !== 'string')
57
+ return null;
58
+ const m = ENVELOPE_RE.exec(prompt);
59
+ if (!m)
60
+ return null;
61
+ const a = attrs(m[1]);
62
+ const after = prompt.slice(m.index + m[0].length);
63
+ // The harness preamble ("This came from another Claude session — …") ends
64
+ // at the first blank line; the body is what the peer actually wrote.
65
+ const blank = after.search(/\n\s*\n/);
66
+ const body = blank >= 0 ? after.slice(blank) : after;
67
+ const closing = body.indexOf('</cross-session-message>');
68
+ return {
69
+ fromPid: pidFromUds(a.from),
70
+ fromName: a['from-name']?.trim() || null,
71
+ fromMode: a['from-mode']?.trim() || null,
72
+ body: clip(closing >= 0 ? body.slice(0, closing) : body),
73
+ };
74
+ }
75
+ /** The `to` of a Claude Code `SendMessage` tool call: either a session name
76
+ * or a `uds:/…/<pid>.sock` address. */
77
+ export function parseSendMessageInput(input) {
78
+ if (!input || typeof input !== 'object')
79
+ return null;
80
+ const to = input.to;
81
+ if (typeof to !== 'string' || !to.trim())
82
+ return null;
83
+ const pid = pidFromUds(to);
84
+ const summaryRaw = input;
85
+ const summary = typeof summaryRaw.summary === 'string' && summaryRaw.summary.trim()
86
+ ? clip(summaryRaw.summary)
87
+ : (typeof summaryRaw.message === 'string' && summaryRaw.message.trim() ? clip(summaryRaw.message, 96) : null);
88
+ return { peerName: pid ? null : to.trim(), peerPid: pid, summary };
89
+ }
90
+ /** A Bash command that launches a headless agent worker. Only the spellings
91
+ * we have measured: `claude -p` / `claude --print`. */
92
+ export function isAgentSpawnCommand(command) {
93
+ if (typeof command !== 'string')
94
+ return false;
95
+ return /(^|[\s;&|(])claude\s+(?:[^\n;&|]*\s)?(?:-p|--print)(?:\s|$)/.test(command);
96
+ }
97
+ /** The interactive/headless agent binaries a session runs as. Used to stop
98
+ * the hook-pid walk and to keep an agent's own descendants out of the
99
+ * background-job set. */
100
+ export function isAgentProcessCommand(command) {
101
+ const head = command.split(/\s+/).filter(Boolean).find((t) => !/^[A-Z_]+=/.test(t)) ?? '';
102
+ const base = head.split('/').pop() ?? '';
103
+ if (/^(claude|codex|opencode|kiro-cli)$/.test(base))
104
+ return true;
105
+ // `node …/cli.js` style launches name the agent in a later token.
106
+ return /(^|\/)(claude|codex|opencode)(\.js|\.mjs)?(\s|$)/.test(command.split(/\s+/).slice(0, 3).join(' '));
107
+ }
108
+ /** Scratchpad directory Claude Code hands a session (the `SP=` every
109
+ * background job in the measured transcript inherited). The session id is
110
+ * the last path segment before `/scratchpad`. */
111
+ export function commandNamesSession(command, sessionId) {
112
+ if (!sessionId || sessionId.length < 8)
113
+ return false;
114
+ return command.includes(`/${sessionId}/`) || command.endsWith(`/${sessionId}`);
115
+ }
116
+ export function commandLabel(command) {
117
+ // "bash -c bash tools/run_bot_matrix.sh /private/tmp/…" → "run_bot_matrix.sh".
118
+ // Conservative on purpose: the first live read produced "NO" and "\012" as
119
+ // labels for heredoc-driven shells, so a label must be a script/path token
120
+ // or a word of 3+ characters; anything else is just "process".
121
+ const raw = command.split(/\s+/).filter(Boolean);
122
+ const tokens = raw
123
+ // A `cd <dir>` target is where the job runs, not what it is.
124
+ .filter((t, i) => i === 0 || raw[i - 1] !== 'cd')
125
+ .filter((t) => !/^(bash|sh|zsh|-c|-lc|-l|-e|python3?|node|npx|pnpm|env|exec|nohup|timeout|cd|&&|;|\|\|)$/.test(t))
126
+ .filter((t) => !/^[A-Za-z_][A-Za-z0-9_]*=/.test(t) && !t.startsWith('-') && !t.includes('/private/tmp/'));
127
+ const script = tokens.find((t) => /\.(sh|py|mjs|cjs|js|ts|rb|pl|swift)$/.test(t));
128
+ const path = tokens.find((t) => t.includes('/') && !/^\d+$/.test(t));
129
+ const word = tokens.find((t) => /^[A-Za-z][A-Za-z0-9._-]{2,}$/.test(t));
130
+ const first = script ?? path ?? word;
131
+ if (!first)
132
+ return 'process';
133
+ const base = first.split('/').filter(Boolean).pop() ?? first;
134
+ return /^[A-Za-z0-9][A-Za-z0-9._-]{1,}$/.test(base) ? clip(base, 48) : 'process';
135
+ }
136
+ /** Walk the parent chain from `pid` (exclusive) up to `maxDepth` levels and
137
+ * return the first ancestor that is an observed peer session. */
138
+ export function findAncestorSession(processes, pid, peers, maxDepth = 8) {
139
+ const byPid = new Map(processes.map((p) => [p.pid, p]));
140
+ const peerByPid = new Map(peers.map((p) => [p.pid, p]));
141
+ let cur = byPid.get(pid);
142
+ for (let depth = 0; cur && depth < maxDepth; depth++) {
143
+ const ppid = cur.ppid;
144
+ if (!ppid || ppid <= 1)
145
+ return null;
146
+ const peer = peerByPid.get(ppid);
147
+ if (peer && peer.pid !== pid)
148
+ return peer;
149
+ cur = byPid.get(ppid);
150
+ }
151
+ return null;
152
+ }
153
+ const MAX_COMMAND_CHARS = 4096;
154
+ /**
155
+ * Per-session reducer. Two inputs — hook facts (`noteMessageOut`,
156
+ * `noteMessageIn`, `noteToolCall`) and the periodic process table
157
+ * (`observe`) — and two outputs: `RelationObservation`s to persist on the
158
+ * session's APME task, and `summary()` for the `sessions_list` wire. The
159
+ * summary is kept here rather than derived from the rows it emits, for the
160
+ * same reason the subagent census is (the rows are lossy on purpose).
161
+ */
162
+ export class CoordinationTracker {
163
+ now;
164
+ sessions = new Map();
165
+ /** Session names learned from envelopes: name → sender session id. */
166
+ nameToSession = new Map();
167
+ sessionToName = new Map();
168
+ /** Latest pid → session map from the observer, for uds resolution. */
169
+ pidToSession = new Map();
170
+ /** Session → agent pid learned from the hook header (`X-AgentDeck-Pid`),
171
+ * the path a sandboxed daemon has no file-based alternative to. */
172
+ hookPids = new Map();
173
+ constructor(now = Date.now) {
174
+ this.now = now;
175
+ }
176
+ entry(sessionId) {
177
+ let e = this.sessions.get(sessionId);
178
+ if (!e) {
179
+ e = { jobs: new Map(), spawned: new Map(), spawnIntents: 0, messagesIn: 0, messagesOut: 0 };
180
+ this.sessions.set(sessionId, e);
181
+ }
182
+ return e;
183
+ }
184
+ touch(e, peerName, ts) {
185
+ if (peerName)
186
+ e.lastPeerName = peerName;
187
+ e.lastRelationAt = ts;
188
+ }
189
+ /** A hook arrived with the posting shell's parent pid. The shell's parent
190
+ * is normally the agent process itself; if a wrapper sits in between, walk
191
+ * up to the nearest agent process so the registered pid is the one whose
192
+ * children are the session's workers. */
193
+ registerPid(sessionId, pid, processes = []) {
194
+ if (!Number.isInteger(pid) || pid <= 1)
195
+ return;
196
+ const byPid = new Map(processes.map((p) => [p.pid, p]));
197
+ let cur = byPid.get(pid);
198
+ let chosen = pid;
199
+ for (let depth = 0; cur && depth < 4 && !isAgentProcessCommand(cur.command); depth++) {
200
+ const parent = byPid.get(cur.ppid);
201
+ if (!parent || parent.pid <= 1)
202
+ break;
203
+ cur = parent;
204
+ if (isAgentProcessCommand(cur.command))
205
+ chosen = cur.pid;
206
+ }
207
+ this.hookPids.set(sessionId, chosen);
208
+ this.pidToSession.set(chosen, sessionId);
209
+ }
210
+ /** Observer peers plus hook-registered pids for sessions the observer did
211
+ * not resolve (a session whose `sessions/<pid>.json` is unreadable, or the
212
+ * whole roster on a daemon with no file access). The observer's pid wins
213
+ * when both exist. */
214
+ mergePeers(observed) {
215
+ const seen = new Set(observed.map((p) => p.sessionId));
216
+ const out = [...observed];
217
+ for (const [sessionId, pid] of this.hookPids) {
218
+ if (!seen.has(sessionId))
219
+ out.push({ sessionId, pid });
220
+ }
221
+ return out;
222
+ }
223
+ /** The receiver's side of a message: the prompt carried the envelope. */
224
+ noteMessageIn(sessionId, prompt) {
225
+ const env = parseCrossSessionEnvelope(prompt);
226
+ if (!env)
227
+ return null;
228
+ const ts = this.now();
229
+ const peerSessionId = env.fromPid != null ? this.pidToSession.get(env.fromPid) ?? null : null;
230
+ if (env.fromName && peerSessionId) {
231
+ this.nameToSession.set(env.fromName, peerSessionId);
232
+ this.sessionToName.set(peerSessionId, env.fromName);
233
+ }
234
+ const e = this.entry(sessionId);
235
+ e.messagesIn += 1;
236
+ this.touch(e, env.fromName, ts);
237
+ return {
238
+ sessionId,
239
+ relation: 'messaged',
240
+ direction: 'in',
241
+ phase: 'closed',
242
+ peerSessionId,
243
+ peerName: env.fromName,
244
+ evidence: 'cross_session_message',
245
+ detail: env.body || null,
246
+ ts,
247
+ key: `${env.fromPid ?? env.fromName ?? 'peer'}:${ts}`,
248
+ };
249
+ }
250
+ /** A tool call the session made: SendMessage → `messaged` out; a Bash that
251
+ * launches `claude -p` → a `spawned` intent (open, peer unknown yet). */
252
+ noteToolCall(sessionId, toolName, toolInput) {
253
+ if (toolName === 'SendMessage') {
254
+ const target = parseSendMessageInput(toolInput);
255
+ if (!target)
256
+ return null;
257
+ const ts = this.now();
258
+ const peerSessionId = target.peerPid != null
259
+ ? this.pidToSession.get(target.peerPid) ?? null
260
+ : (target.peerName ? this.nameToSession.get(target.peerName) ?? null : null);
261
+ const peerName = target.peerName ?? (peerSessionId ? this.sessionToName.get(peerSessionId) ?? null : null);
262
+ const e = this.entry(sessionId);
263
+ e.messagesOut += 1;
264
+ this.touch(e, peerName, ts);
265
+ return {
266
+ sessionId,
267
+ relation: 'messaged',
268
+ direction: 'out',
269
+ phase: 'closed',
270
+ peerSessionId,
271
+ peerName,
272
+ evidence: 'send_message_tool',
273
+ detail: target.summary,
274
+ ts,
275
+ key: `${target.peerPid ?? target.peerName ?? 'peer'}:${ts}`,
276
+ };
277
+ }
278
+ if (toolName === 'Bash') {
279
+ const command = toolInput?.command;
280
+ if (!isAgentSpawnCommand(command))
281
+ return null;
282
+ const ts = this.now();
283
+ const e = this.entry(sessionId);
284
+ e.spawnIntents += 1;
285
+ this.touch(e, null, ts);
286
+ return {
287
+ sessionId,
288
+ relation: 'spawned',
289
+ direction: 'out',
290
+ phase: 'open',
291
+ peerSessionId: null,
292
+ peerName: 'claude -p',
293
+ evidence: 'bash_claude_p',
294
+ detail: clip(String(command), 96),
295
+ ts,
296
+ key: `intent:${ts}`,
297
+ };
298
+ }
299
+ return null;
300
+ }
301
+ /**
302
+ * Reconcile against the process table. `peers` are the observed agent
303
+ * sessions with their pids (bare ids). Emits: `spawned` open on the parent
304
+ * when a peer's ancestry reaches another peer, `spawned` closed when such a
305
+ * child's process is gone, `waiting_on` open/closed for background jobs.
306
+ */
307
+ observe(processes, peers) {
308
+ // An empty process table is "I could not look", never "everything ended".
309
+ // `collectProcessInfo` returns [] when `ps` fails or times out, and the
310
+ // sweeps below close every open child and every job they cannot find — so
311
+ // one failed scan would emit a `closed` relation for the whole machine and
312
+ // drop every census to zero. The next tick cannot undo it either: the
313
+ // sample's dedup key is `relation:direction:phase:key`, so the re-`open`
314
+ // is discarded as a duplicate of the one already stored and the trajectory
315
+ // stays closed while the live census says active. Same rule as the flash-id
316
+ // and lsof probes: three answers, and "unknown" makes no claim.
317
+ if (processes.length === 0)
318
+ return [];
319
+ const ts = this.now();
320
+ const out = [];
321
+ this.pidToSession = new Map(peers.map((p) => [p.pid, p.sessionId]));
322
+ for (const [sessionId, pid] of this.hookPids)
323
+ if (!this.pidToSession.has(pid))
324
+ this.pidToSession.set(pid, sessionId);
325
+ const peerPids = new Set(peers.map((p) => p.pid));
326
+ const alivePeerIds = new Set(peers.map((p) => p.sessionId));
327
+ const rows = processes.map((p) => ({ ...p, command: p.command.slice(0, MAX_COMMAND_CHARS) }));
328
+ // Spawned peers: ancestry.
329
+ for (const child of peers) {
330
+ const parent = findAncestorSession(rows, child.pid, peers);
331
+ if (!parent || parent.sessionId === child.sessionId)
332
+ continue;
333
+ const e = this.entry(parent.sessionId);
334
+ if (e.spawned.has(child.sessionId))
335
+ continue;
336
+ e.spawned.set(child.sessionId, true);
337
+ // A spawn intent that has now materialized is no longer pending.
338
+ if (e.spawnIntents > 0)
339
+ e.spawnIntents -= 1;
340
+ this.touch(e, null, ts);
341
+ out.push({
342
+ sessionId: parent.sessionId, relation: 'spawned', direction: 'out', phase: 'open',
343
+ peerSessionId: child.sessionId, peerName: null, evidence: 'process_ancestry',
344
+ detail: null, ts, key: child.sessionId,
345
+ });
346
+ out.push({
347
+ sessionId: child.sessionId, relation: 'spawned', direction: 'in', phase: 'open',
348
+ peerSessionId: parent.sessionId, peerName: null, evidence: 'process_ancestry',
349
+ detail: null, ts, key: parent.sessionId,
350
+ });
351
+ }
352
+ // Spawned peers that ended.
353
+ for (const [parentId, e] of this.sessions) {
354
+ for (const [childId, alive] of e.spawned) {
355
+ if (alive && !alivePeerIds.has(childId)) {
356
+ e.spawned.set(childId, false);
357
+ this.touch(e, null, ts);
358
+ out.push({
359
+ sessionId: parentId, relation: 'spawned', direction: 'out', phase: 'closed',
360
+ peerSessionId: childId, peerName: null, evidence: 'process_ancestry',
361
+ detail: null, ts, key: childId,
362
+ });
363
+ }
364
+ }
365
+ }
366
+ // Background jobs: argv names a session's scratchpad, and the process is
367
+ // neither an agent session itself nor a descendant of one (a `claude -p`
368
+ // worker inherits the parent's scratchpad path in its prompt).
369
+ for (const peer of peers) {
370
+ const e = this.sessions.get(peer.sessionId) ?? null;
371
+ const seen = new Set();
372
+ for (const proc of rows) {
373
+ if (proc.pid === peer.pid || peerPids.has(proc.pid))
374
+ continue;
375
+ if (!commandNamesSession(proc.command, peer.sessionId))
376
+ continue;
377
+ if (findAncestorSession(rows, proc.pid, peers))
378
+ continue;
379
+ // One job may be a `bash -c …` wrapping the same script — count the
380
+ // outermost only, so a job reads as one row rather than two.
381
+ const parentRow = rows.find((r) => r.pid === proc.ppid);
382
+ if (parentRow && commandNamesSession(parentRow.command, peer.sessionId) && !peerPids.has(parentRow.pid))
383
+ continue;
384
+ seen.add(proc.pid);
385
+ const entry = e ?? this.entry(peer.sessionId);
386
+ if (entry.jobs.has(proc.pid))
387
+ continue;
388
+ const label = commandLabel(proc.command);
389
+ entry.jobs.set(proc.pid, label);
390
+ this.touch(entry, null, ts);
391
+ out.push({
392
+ sessionId: peer.sessionId, relation: 'waiting_on', direction: 'out', phase: 'open',
393
+ peerSessionId: null, peerName: label, evidence: 'background_process',
394
+ detail: clip(proc.command, 96), ts, key: String(proc.pid),
395
+ });
396
+ }
397
+ if (!e)
398
+ continue;
399
+ for (const [pid, label] of e.jobs) {
400
+ if (seen.has(pid))
401
+ continue;
402
+ e.jobs.delete(pid);
403
+ this.touch(e, null, ts);
404
+ out.push({
405
+ sessionId: peer.sessionId, relation: 'waiting_on', direction: 'out', phase: 'closed',
406
+ peerSessionId: null, peerName: label, evidence: 'background_process',
407
+ detail: null, ts, key: String(pid),
408
+ });
409
+ }
410
+ }
411
+ return out;
412
+ }
413
+ /** The session ended: its jobs and children are no longer its concern. */
414
+ forget(sessionId) {
415
+ this.sessions.delete(sessionId);
416
+ const pid = this.hookPids.get(sessionId);
417
+ this.hookPids.delete(sessionId);
418
+ if (pid != null && this.pidToSession.get(pid) === sessionId)
419
+ this.pidToSession.delete(pid);
420
+ }
421
+ /** `null` when the session has never had a relation — the caller omits the
422
+ * wire field; once it has, zeros are emitted explicitly. */
423
+ summary(sessionId) {
424
+ const e = this.sessions.get(sessionId);
425
+ if (!e)
426
+ return null;
427
+ let spawnedActive = 0;
428
+ let spawnedCompleted = 0;
429
+ for (const alive of e.spawned.values()) {
430
+ if (alive)
431
+ spawnedActive += 1;
432
+ else
433
+ spawnedCompleted += 1;
434
+ }
435
+ return {
436
+ backgroundJobs: e.jobs.size,
437
+ spawnedActive: spawnedActive + e.spawnIntents,
438
+ spawnedCompleted,
439
+ messagesIn: e.messagesIn,
440
+ messagesOut: e.messagesOut,
441
+ ...(e.lastPeerName ? { lastPeerName: e.lastPeerName } : {}),
442
+ ...(e.lastRelationAt ? { lastRelationAt: e.lastRelationAt } : {}),
443
+ };
444
+ }
445
+ summaries() {
446
+ const out = new Map();
447
+ for (const id of this.sessions.keys()) {
448
+ const s = this.summary(id);
449
+ if (s)
450
+ out.set(id, s);
451
+ }
452
+ return out;
453
+ }
454
+ }
455
+ //# sourceMappingURL=coordination-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination-evidence.js","sourceRoot":"","sources":["../src/coordination-evidence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon-server.d.ts","sourceRoot":"","sources":["../src/daemon-server.ts"],"names":[],"mappings":"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"}