@cello-protocol/daemon 0.0.211 → 0.0.213

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 (215) hide show
  1. package/dist/agent-admin-handlers.d.ts.map +1 -1
  2. package/dist/agent-admin-handlers.js +3 -0
  3. package/dist/agent-admin-handlers.js.map +1 -1
  4. package/dist/agent-handlers.d.ts.map +1 -1
  5. package/dist/agent-handlers.js +44 -0
  6. package/dist/agent-handlers.js.map +1 -1
  7. package/dist/agent-id-migration.d.ts.map +1 -1
  8. package/dist/agent-id-migration.js +11 -2
  9. package/dist/agent-id-migration.js.map +1 -1
  10. package/dist/assignment-verify.d.ts.map +1 -1
  11. package/dist/assignment-verify.js +2 -2
  12. package/dist/assignment-verify.js.map +1 -1
  13. package/dist/attendance-wiring.d.ts +2 -21
  14. package/dist/attendance-wiring.d.ts.map +1 -1
  15. package/dist/attendance-wiring.js +57 -251
  16. package/dist/attendance-wiring.js.map +1 -1
  17. package/dist/away-detection.d.ts +16 -21
  18. package/dist/away-detection.d.ts.map +1 -1
  19. package/dist/away-detection.js +34 -23
  20. package/dist/away-detection.js.map +1 -1
  21. package/dist/boot-agents.d.ts.map +1 -1
  22. package/dist/close-session-handler.d.ts.map +1 -1
  23. package/dist/close-session-handler.js +79 -6
  24. package/dist/close-session-handler.js.map +1 -1
  25. package/dist/co-attendance.d.ts +1 -1
  26. package/dist/co-attendance.js +1 -1
  27. package/dist/consortium-fingerprint.d.ts +115 -0
  28. package/dist/consortium-fingerprint.d.ts.map +1 -0
  29. package/dist/consortium-fingerprint.js +175 -0
  30. package/dist/consortium-fingerprint.js.map +1 -0
  31. package/dist/content-park.d.ts.map +1 -1
  32. package/dist/content-park.js +80 -0
  33. package/dist/content-park.js.map +1 -1
  34. package/dist/daemon-handle.d.ts +1 -1
  35. package/dist/daemon-handle.d.ts.map +1 -1
  36. package/dist/daemon-status-report.d.ts +10 -2
  37. package/dist/daemon-status-report.d.ts.map +1 -1
  38. package/dist/daemon-status-report.js +6 -3
  39. package/dist/daemon-status-report.js.map +1 -1
  40. package/dist/daemon.d.ts.map +1 -1
  41. package/dist/daemon.js +57 -27
  42. package/dist/daemon.js.map +1 -1
  43. package/dist/directory-bootstrap.d.ts +3 -1
  44. package/dist/directory-bootstrap.d.ts.map +1 -1
  45. package/dist/directory-bootstrap.js +3 -1
  46. package/dist/directory-bootstrap.js.map +1 -1
  47. package/dist/directory-connect.d.ts.map +1 -1
  48. package/dist/directory-connect.js +10 -2
  49. package/dist/directory-connect.js.map +1 -1
  50. package/dist/disconnect-cleanup.d.ts +7 -0
  51. package/dist/disconnect-cleanup.d.ts.map +1 -1
  52. package/dist/disconnect-cleanup.js +16 -1
  53. package/dist/disconnect-cleanup.js.map +1 -1
  54. package/dist/document-flag.d.ts +58 -0
  55. package/dist/document-flag.d.ts.map +1 -0
  56. package/dist/document-flag.js +70 -0
  57. package/dist/document-flag.js.map +1 -0
  58. package/dist/document-gate-wiring.d.ts +61 -0
  59. package/dist/document-gate-wiring.d.ts.map +1 -0
  60. package/dist/document-gate-wiring.js +119 -0
  61. package/dist/document-gate-wiring.js.map +1 -0
  62. package/dist/document-notify.d.ts +0 -1
  63. package/dist/document-notify.d.ts.map +1 -1
  64. package/dist/document-notify.js +0 -1
  65. package/dist/document-notify.js.map +1 -1
  66. package/dist/document-store.d.ts +0 -1
  67. package/dist/document-store.d.ts.map +1 -1
  68. package/dist/document-store.js +0 -1
  69. package/dist/document-store.js.map +1 -1
  70. package/dist/document-write-path.d.ts.map +1 -1
  71. package/dist/document-write-path.js +2 -9
  72. package/dist/document-write-path.js.map +1 -1
  73. package/dist/inbound-sessions.d.ts +3 -1
  74. package/dist/inbound-sessions.d.ts.map +1 -1
  75. package/dist/inbound-sessions.js +12 -4
  76. package/dist/inbound-sessions.js.map +1 -1
  77. package/dist/index.d.ts +5 -1
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +13 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/initiate-session-handler.d.ts.map +1 -1
  82. package/dist/initiate-session-handler.js +5 -1
  83. package/dist/initiate-session-handler.js.map +1 -1
  84. package/dist/ipc-server.d.ts.map +1 -1
  85. package/dist/ipc-server.js +52 -2
  86. package/dist/ipc-server.js.map +1 -1
  87. package/dist/park-envelope.d.ts +68 -0
  88. package/dist/park-envelope.d.ts.map +1 -1
  89. package/dist/park-envelope.js +86 -1
  90. package/dist/park-envelope.js.map +1 -1
  91. package/dist/park-recovery.d.ts +46 -0
  92. package/dist/park-recovery.d.ts.map +1 -1
  93. package/dist/park-recovery.js +100 -1
  94. package/dist/park-recovery.js.map +1 -1
  95. package/dist/relay-only.d.ts.map +1 -1
  96. package/dist/relay-only.js +7 -4
  97. package/dist/relay-only.js.map +1 -1
  98. package/dist/relay-receipt-store.d.ts +75 -17
  99. package/dist/relay-receipt-store.d.ts.map +1 -1
  100. package/dist/relay-receipt-store.js +109 -27
  101. package/dist/relay-receipt-store.js.map +1 -1
  102. package/dist/seal-carried-close.d.ts +37 -0
  103. package/dist/seal-carried-close.d.ts.map +1 -0
  104. package/dist/seal-carried-close.js +179 -0
  105. package/dist/seal-carried-close.js.map +1 -0
  106. package/dist/seal-certified-root-check.d.ts +37 -0
  107. package/dist/seal-certified-root-check.d.ts.map +1 -0
  108. package/dist/seal-certified-root-check.js +127 -0
  109. package/dist/seal-certified-root-check.js.map +1 -0
  110. package/dist/seal-coordinator.d.ts +6 -1
  111. package/dist/seal-coordinator.d.ts.map +1 -1
  112. package/dist/seal-coordinator.js +2 -1
  113. package/dist/seal-coordinator.js.map +1 -1
  114. package/dist/seal-escalation.d.ts.map +1 -1
  115. package/dist/seal-escalation.js +54 -0
  116. package/dist/seal-escalation.js.map +1 -1
  117. package/dist/seal-local-terminus.d.ts +41 -0
  118. package/dist/seal-local-terminus.d.ts.map +1 -0
  119. package/dist/seal-local-terminus.js +170 -0
  120. package/dist/seal-local-terminus.js.map +1 -0
  121. package/dist/seal-relay-silence.d.ts +51 -0
  122. package/dist/seal-relay-silence.d.ts.map +1 -0
  123. package/dist/seal-relay-silence.js +76 -0
  124. package/dist/seal-relay-silence.js.map +1 -0
  125. package/dist/seal-settle.d.ts +38 -0
  126. package/dist/seal-settle.d.ts.map +1 -0
  127. package/dist/seal-settle.js +33 -0
  128. package/dist/seal-settle.js.map +1 -0
  129. package/dist/session-assignment-parser.d.ts.map +1 -1
  130. package/dist/session-assignment-parser.js +5 -0
  131. package/dist/session-assignment-parser.js.map +1 -1
  132. package/dist/session-ceremony.d.ts +21 -14
  133. package/dist/session-ceremony.d.ts.map +1 -1
  134. package/dist/session-ceremony.js +25 -15
  135. package/dist/session-ceremony.js.map +1 -1
  136. package/dist/session-content-context.d.ts +11 -2
  137. package/dist/session-content-context.d.ts.map +1 -1
  138. package/dist/session-content-ingest.d.ts +0 -3
  139. package/dist/session-content-ingest.d.ts.map +1 -1
  140. package/dist/session-content-ingest.js +18 -111
  141. package/dist/session-content-ingest.js.map +1 -1
  142. package/dist/session-content-send.d.ts +5 -0
  143. package/dist/session-content-send.d.ts.map +1 -1
  144. package/dist/session-content-send.js +58 -0
  145. package/dist/session-content-send.js.map +1 -1
  146. package/dist/session-delivery-acks.d.ts +195 -0
  147. package/dist/session-delivery-acks.d.ts.map +1 -0
  148. package/dist/session-delivery-acks.js +674 -0
  149. package/dist/session-delivery-acks.js.map +1 -0
  150. package/dist/session-leaf-records.d.ts +28 -1
  151. package/dist/session-leaf-records.d.ts.map +1 -1
  152. package/dist/session-leaf-records.js +86 -1
  153. package/dist/session-leaf-records.js.map +1 -1
  154. package/dist/session-lifecycle.js +12 -12
  155. package/dist/session-lifecycle.js.map +1 -1
  156. package/dist/session-node-manager.d.ts +49 -22
  157. package/dist/session-node-manager.d.ts.map +1 -1
  158. package/dist/session-node-manager.js +113 -42
  159. package/dist/session-node-manager.js.map +1 -1
  160. package/dist/session-node-types.d.ts +18 -12
  161. package/dist/session-node-types.d.ts.map +1 -1
  162. package/dist/session-node-types.js +1 -9
  163. package/dist/session-node-types.js.map +1 -1
  164. package/dist/session-read-handlers.d.ts.map +1 -1
  165. package/dist/session-read-handlers.js +125 -4
  166. package/dist/session-read-handlers.js.map +1 -1
  167. package/dist/session-records.d.ts +17 -0
  168. package/dist/session-records.d.ts.map +1 -1
  169. package/dist/session-records.js +32 -0
  170. package/dist/session-records.js.map +1 -1
  171. package/dist/session-relay-client.d.ts +103 -6
  172. package/dist/session-relay-client.d.ts.map +1 -1
  173. package/dist/session-relay-client.js +380 -41
  174. package/dist/session-relay-client.js.map +1 -1
  175. package/dist/session-relay.d.ts +24 -2
  176. package/dist/session-relay.d.ts.map +1 -1
  177. package/dist/session-relay.js +23 -8
  178. package/dist/session-relay.js.map +1 -1
  179. package/dist/session-schema.d.ts.map +1 -1
  180. package/dist/session-schema.js +43 -0
  181. package/dist/session-schema.js.map +1 -1
  182. package/dist/session-seal-leaf-store.d.ts +6 -0
  183. package/dist/session-seal-leaf-store.d.ts.map +1 -1
  184. package/dist/session-seal-leaf-store.js +21 -4
  185. package/dist/session-seal-leaf-store.js.map +1 -1
  186. package/dist/session-seal.d.ts +30 -32
  187. package/dist/session-seal.d.ts.map +1 -1
  188. package/dist/session-seal.js +145 -116
  189. package/dist/session-seal.js.map +1 -1
  190. package/dist/session-views.d.ts +1 -0
  191. package/dist/session-views.d.ts.map +1 -1
  192. package/dist/session-views.js +81 -1
  193. package/dist/session-views.js.map +1 -1
  194. package/dist/signaling-connect.d.ts +1 -0
  195. package/dist/signaling-connect.d.ts.map +1 -1
  196. package/dist/signaling-connect.js +0 -1
  197. package/dist/signaling-connect.js.map +1 -1
  198. package/dist/status-handler.d.ts +9 -1
  199. package/dist/status-handler.d.ts.map +1 -1
  200. package/dist/status-handler.js +5 -2
  201. package/dist/status-handler.js.map +1 -1
  202. package/dist/test-handlers.js +4 -3
  203. package/dist/test-handlers.js.map +1 -1
  204. package/dist/trust-signal-store.d.ts +4 -2
  205. package/dist/trust-signal-store.d.ts.map +1 -1
  206. package/dist/trust-signal-store.js +4 -2
  207. package/dist/trust-signal-store.js.map +1 -1
  208. package/dist/types.d.ts +64 -0
  209. package/dist/types.d.ts.map +1 -1
  210. package/dist/types.js.map +1 -1
  211. package/dist/vocabulary.d.ts +22 -4
  212. package/dist/vocabulary.d.ts.map +1 -1
  213. package/dist/vocabulary.js +66 -21
  214. package/dist/vocabulary.js.map +1 -1
  215. package/package.json +5 -5
@@ -19,15 +19,26 @@
19
19
  * by luck.
20
20
  */
21
21
  import { createHash } from "node:crypto";
22
- import { buildMerkleTree, merkleRoot } from "@cello-protocol/crypto";
22
+ import { closeOverCarriedEvidence } from "./seal-carried-close.js";
23
+ import { verifyCertifiedRoot as judgeCertifiedRoot } from "./seal-certified-root-check.js";
23
24
  import { encodeSealPayload, decodeStructure1 } from "@cello-protocol/protocol-types";
24
- import { AUTOACK_BROKER_GRACE_MS, carryContentHashInputs } from "./session-node-types.js";
25
+ import { AUTOACK_BROKER_GRACE_MS } from "./session-node-types.js";
25
26
  import { LEAF_KIND_CTRL } from "./session-relay-client.js";
26
27
  import { RelayReceiptStore } from "./relay-receipt-store.js";
27
28
  import { SessionSealLeafStore } from "./session-seal-leaf-store.js";
28
29
  import { extractErrorMessage } from "./error-message.js";
30
+ import { awaitOwnRecordSettled } from "./seal-settle.js";
29
31
  export class SessionSeal {
30
32
  #ctx;
33
+ /**
34
+ * Sessions whose closing leaf THIS PROCESS signed locally, because no relay answered.
35
+ *
36
+ * Kept beside the idempotency mark rather than inside it: a retried close reads the mark and gets
37
+ * `responder_seal_already_submitted`, and without this it would lose the one fact that makes the
38
+ * eleven-minute bilateral wait pointless — so the retry would sit out a window for a ceremony that
39
+ * still cannot begin. In memory only; a restart correctly re-derives it by trying the relay again.
40
+ */
41
+ #closedViaLocalTerminus = new Set();
31
42
  constructor(ctx) {
32
43
  this.#ctx = ctx;
33
44
  }
@@ -131,7 +142,10 @@ export class SessionSeal {
131
142
  // 033-ACKEMIT: the seal transport submits a ctrl leaf like any other, so it needs the same
132
143
  // acknowledgement seed. It carries no assignment of its own, so the genesis is supplied here
133
144
  // from the session's own active entry rather than derived inside the client.
134
- client.registerSession(sessionId, node, undefined, undefined, this.#ctx.leafRecords.sessionGenesisPrevRoot(agentName, sessionId));
145
+ // 069-ORDERPROOF: the seal's ctrl leaf is submitted like any other and needs the same anchor.
146
+ // It carries no assignment, so this comes from the session's durable record — without it the
147
+ // relay's attestation for the SEAL leaf is refused and the close cannot settle.
148
+ client.registerSession(sessionId, node, undefined, undefined, this.#ctx.leafRecords.sessionGenesisPrevRoot(agentName, sessionId), this.#ctx.leafRecords.sessionRelayAnchor(agentName, sessionId));
135
149
  }
136
150
  else {
137
151
  /**
@@ -171,117 +185,11 @@ export class SessionSeal {
171
185
  };
172
186
  }
173
187
  /**
174
- * REBUILD THE CERTIFIED ROOT FROM THIS DAEMON'S OWN LEAVES `DOD-M15-SEALWIRE-1` bullet 2.
175
- *
176
- * The receipt used to prove only that the directory signed SOMETHING: the client took the sealed
177
- * root off the wire, confirmed the directory's signature over those bytes, stored it, and threw
178
- * away the root it had computed a step earlier. At co-signing time that means **your key signs a
179
- * root you never checked.**
180
- *
181
- * Bullet 1 moved the certified root into the content-hash domain, which is the domain this daemon
182
- * can actually rebuild — each carry leaf's `content_hash` is the leaf hash (RFC 6962 §2.1 "hash"
183
- * leaves are used as-is), and the carry is ordered by the relay's canonical `sequence_number`,
184
- * which is the order the directory rebuilds in.
185
- *
186
- * ─── Why this returns "cannot judge" instead of always answering ───────────────────────────
187
- *
188
- * A root comparison that is WRONG makes every session unsealable, and force-abandon — no receipt —
189
- * becomes the only exit. That failure is worse than the one being guarded, and this file already
190
- * carries two comments saying so about other gates.
191
- *
192
- * The carry is this daemon's view, and it is not guaranteed complete at the instant a certificate
193
- * arrives: the counterparty's SEAL ctrl leaf is what TRIGGERS the seal, so it may not have been
194
- * witnessed here yet. So completeness is checked FIRST, against the certificate's own leaf count.
195
- * A short carry means this daemon cannot judge — which is a different answer from "the roots
196
- * disagree", and conflating them would turn a local timing gap into an accusation.
188
+ * Does a certificate describe the leaf set this daemon holds? The judgement lives in
189
+ * `seal-certified-root-check.ts`; this binds it to this instance's carry.
197
190
  */
198
191
  verifyCertifiedRoot(agentPubkeyHex, sessionIdHex, certifiedRoot, certifiedLeafCount) {
199
- const carry = this.getSealCarry(agentPubkeyHex, sessionIdHex);
200
- if (carry.length === 0)
201
- return { verdict: "cannot_judge", reason: "no_carry" };
202
- /**
203
- * COMPLETENESS IS ESTABLISHED FROM THE CARRY'S OWN EVIDENCE, NEVER FROM THE CERTIFICATE.
204
- *
205
- * Review F3, and the first cut had this exactly backwards. It gated on
206
- * `carry.length !== certifiedLeafCount`, where `certifiedLeafCount` is a field the DIRECTORY
207
- * chooses and signs — so the party being checked controlled whether it was checked. A directory
208
- * certifying a root over a different conversation had only to state a `leaf_count` that did not
209
- * match, and the client answered "cannot judge" and accepted. The signature still verified,
210
- * because the count is signed inside the same TBS.
211
- *
212
- * That is the hole §2b names in as many words: *"an attacker who wants to evade a mismatch check
213
- * simply never supplies a checkable proof. Treating 'we could not tell' as harmless is the
214
- * hole."* I defended against a false POSITIVE and left the false NEGATIVE one field away.
215
- *
216
- * The carry can answer the question by itself. A complete bilateral leaf set is:
217
- * - sequences contiguous from 1 — no gap where a leaf this daemon never saw would sit; and
218
- * - exactly two SEAL ctrl leaves, from two DISTINCT senders — which is what a bilateral seal
219
- * is, and is the condition that says the counterparty's closing leaf has landed here.
220
- * Both predicates already exist in `seal-escalation.ts`; this reuses their shape rather than
221
- * inventing a second opinion about the same question.
222
- *
223
- * When the carry IS self-evidently complete, a `leaf_count` that disagrees is no longer "I
224
- * cannot tell" — it is the certificate describing a different leaf set, which is a MISMATCH.
225
- */
226
- const sequences = carry.map((l) => l.sequenceNumber).sort((a, b) => a - b);
227
- const contiguousFromOne = sequences.every((n, i) => n === i + 1);
228
- const ctrlSenders = new Set(carry.filter((l) => l.leafKind === LEAF_KIND_CTRL).map((l) => l.senderPubkeyHex));
229
- const selfEvidentlyComplete = contiguousFromOne && ctrlSenders.size === 2;
230
- /**
231
- * 🚨 THE CERTIFICATE MAY COVER EXACTLY WHAT THIS SIDE HOLDS — ASK THAT FIRST.
232
- *
233
- * `DOD-M15-UNILATERAL-1`. The completeness predicate below describes a BILATERAL leaf set: two
234
- * SEAL ctrl leaves, from two distinct senders. **A solo seal can never satisfy it**, because the
235
- * counterparty is gone and never posts one — that is the entire premise. So on the solo path
236
- * this returned `cannot_judge` every time, `session-ceremony.ts` refuses to co-sign on anything
237
- * that is not `match`, and **the sealing party refused to co-sign its own unilateral seal.** The
238
- * FROST ceremony never reached threshold, the directory never completed, and the close came back
239
- * `seal_unilateral_timeout` — the label that names our own wait. Measured against the real
240
- * binaries: `j-unilateral` failed on exactly this, with the directory having already verified the
241
- * chain and recorded the counterparty ABSENT.
242
- *
243
- * Completeness was only ever needed to tell TWO KINDS OF DISAGREEMENT apart — "the roots differ
244
- * because my carry is behind" (cannot judge) from "the roots differ because the directory
245
- * certified something else" (mismatch). It answers nothing when the roots AGREE: a certificate
246
- * whose root and leaf count are exactly what this daemon holds is, by construction, over this
247
- * daemon's own leaves. Nothing is taken on trust — both values are recomputed here from the
248
- * carry, and an adversary who could satisfy them would have to have produced this leaf set.
249
- *
250
- * Deliberately BOTH values. A count that disagreed while the root matched would be a certificate
251
- * contradicting itself, and this is not the place to wave that through.
252
- */
253
- const carryInputs = carryContentHashInputs(carry);
254
- if (carryInputs !== null &&
255
- carry.length === certifiedLeafCount &&
256
- Buffer.compare(Buffer.from(merkleRoot(buildMerkleTree(carryInputs))), Buffer.from(certifiedRoot)) === 0) {
257
- return { verdict: "match" };
258
- }
259
- if (!selfEvidentlyComplete) {
260
- return {
261
- verdict: "cannot_judge",
262
- reason: contiguousFromOne
263
- ? `carry_incomplete: ${ctrlSenders.size} of 2 SEAL ctrl leaves witnessed here`
264
- : `carry_noncontiguous: hold ${carry.length} leaves with a gap in the relay sequence`,
265
- };
266
- }
267
- if (carry.length !== certifiedLeafCount) {
268
- // The carry proves itself complete and the certificate claims a different size, so the
269
- // certificate is over a different leaf set. Accusing is correct here.
270
- return {
271
- verdict: "mismatch",
272
- ownRootHex: null, // no root computed — the sets differ in SIZE, which is decisive on its own
273
- detail: `leaf_count_disagrees: this daemon holds a provably complete ${carry.length}-leaf set, the certificate claims ${certifiedLeafCount}`,
274
- };
275
- }
276
- if (carryInputs === null) {
277
- // A leaf this daemon cannot decode is a leaf it cannot judge. Never an accusation.
278
- return { verdict: "cannot_judge", reason: "structure1_content_hash_unreadable" };
279
- }
280
- const ownRoot = merkleRoot(buildMerkleTree(carryInputs));
281
- const ownRootHex = Buffer.from(ownRoot).toString("hex");
282
- return Buffer.compare(Buffer.from(ownRoot), Buffer.from(certifiedRoot)) === 0
283
- ? { verdict: "match" }
284
- : { verdict: "mismatch", ownRootHex, detail: "root_disagrees: same leaf count, different leaves or different order" };
192
+ return judgeCertifiedRoot((pk, sid) => this.getSealCarry(pk, sid), agentPubkeyHex, sessionIdHex, certifiedRoot, certifiedLeafCount);
285
193
  }
286
194
  /**
287
195
  * FED-OPTIONB-SEAL-001: the complete ordered leaf chain (both parties) a UNILATERAL seal carries to the
@@ -411,13 +319,62 @@ export class SessionSeal {
411
319
  * session_sealed. Requires an active relay client; the caller falls back to the
412
320
  * directory-mediated path when this returns relay_unavailable.
413
321
  */
322
+ /**
323
+ * 070-CARRIEDSEAL — close over evidence this side already holds, when the relay never answered.
324
+ * The reasoning, the gates and the refusals live in `seal-carried-close.ts`; this binds it to
325
+ * this instance's context. `null` means "not that situation" and the caller's own refusal stands.
326
+ */
327
+ #carriedClose(agentName, sessionId, cause, correlationId, standingRefusal) {
328
+ return closeOverCarriedEvidence({
329
+ ctx: this.#ctx,
330
+ db: this.#db,
331
+ getSealCarry: (pk, sid) => this.getSealCarry(pk, sid),
332
+ }, agentName, sessionId, cause, correlationId, standingRefusal);
333
+ }
414
334
  async submitSealLeaf(agentName, sessionId, correlationId) {
415
335
  const sealKey = this.#ctx.sessionKey(agentName, sessionId);
336
+ /**
337
+ * DOD-M15-SEALPRECOND-1 — THE PRECONDITION BY CONSTRUCTION, at the one point every seal leaf
338
+ * passes through. Review HIGH-3.
339
+ *
340
+ * The three callers wait for the record to settle and then submit, which leaves a check-then-act
341
+ * window: a `cello_send` can take its position after the caller read readiness and before the
342
+ * root is computed. The window is microseconds rather than the measured 352ms, and microseconds
343
+ * is exactly what this order says not to accept — a 14ms gap and a 14s gap fail identically.
344
+ *
345
+ * So the last word is here. Every present and future seal submission site is gated whether or
346
+ * not its author knew this rule existed, which is the property the enumeration in the order
347
+ * could only give for the sites that existed on the day it was written.
348
+ *
349
+ * Read AFTER nothing and BEFORE everything: no transport is resolved, no idempotency mark is
350
+ * taken, so a refusal here leaves the session exactly as it found it and the caller's retry is
351
+ * a genuine retry.
352
+ */
353
+ const settling = this.sealReadiness(agentName, sessionId).ownLeavesOrdered;
354
+ if (settling > 0) {
355
+ this.#ctx.logger.warn("session.seal.leaf.refused_settling", {
356
+ agentName, sessionId, ownLeavesOrdered: settling, correlationId,
357
+ impact: "a message of ours has a place in the relay's ordering this record has not taken, so NO leaf was submitted and no root was signed — a root signed short of the relay's leaf set is refused by the directory and the receipt cannot be recovered",
358
+ });
359
+ return { ok: false, reason: "own_record_settling" };
360
+ }
416
361
  // M12-P15: resolved, not required. See #resolveSealTransport — an interrupted session has no
417
362
  // in-memory node BY CONSTRUCTION, and refusing here is what made the first fix inert.
418
363
  const transport = this.#resolveSealTransport(agentName, sessionId);
419
- if ("error" in transport)
420
- return { ok: false, reason: transport.error };
364
+ if ("error" in transport) {
365
+ // 070-CARRIEDSEAL: there is no relay to hand this leaf to. If the reason is SILENCE rather
366
+ // than a ruling, close over what we already hold instead of losing the receipt.
367
+ const local = await this.#carriedClose(agentName, sessionId, transport.error, correlationId);
368
+ if (!local)
369
+ return { ok: false, reason: transport.error };
370
+ // ⚠️ THE MARK, ON THIS PATH TOO — review MEDIUM-3. The submit-failure branch below records it
371
+ // and this one did not, so a retried close re-entered the terminus builder, hit
372
+ // `seal_carry_own_ctrl_present`, and reported the RELAY as the fault for a session whose
373
+ // closing leaf was already on disk.
374
+ this.#ctx.responderSealSubmitted.set(sealKey, { reportedRootHex: local.reportedRootHex, sequenceNumber: local.sequenceNumber });
375
+ this.#closedViaLocalTerminus.add(sealKey);
376
+ return { ...local, viaLocalTerminus: true };
377
+ }
421
378
  const entry = transport;
422
379
  /**
423
380
  * DOD-M15-RELAYLEAK-1 — release a DETACHED seal transport when this submission is done.
@@ -501,6 +458,8 @@ export class SessionSeal {
501
458
  reason: "responder_seal_already_submitted",
502
459
  reportedRootHex: prior.reportedRootHex,
503
460
  sequenceNumber: prior.sequenceNumber,
461
+ // Carried so a retry does not sit out a bilateral window that still cannot open.
462
+ ...(this.#closedViaLocalTerminus.has(sealKey) ? { viaLocalTerminus: true } : {}),
504
463
  }
505
464
  : { ok: false, reason: "responder_seal_already_submitted" };
506
465
  }
@@ -538,6 +497,16 @@ export class SessionSeal {
538
497
  // Clear the idempotency mark so a genuine retry (agent close / reconnect) can proceed (DB-001).
539
498
  this.#ctx.responderSealSubmitted.delete(sealKey);
540
499
  this.#ctx.logger.warn("session.seal.leaf.submit.failed", { sessionId, reason: result.reason, correlationId });
500
+ // 070-CARRIEDSEAL: the relay was asked and said nothing. Same answer as having no relay at
501
+ // all — write the closing leaf here rather than lose a receipt for a witnessed record.
502
+ // The relay client is in hand here, so its standing verdict can be asked for directly —
503
+ // the reason string above cannot carry it.
504
+ const local = await this.#carriedClose(agentName, sessionId, result.reason, correlationId, entry.relayClient.getLastAuthRefusal());
505
+ if (local) {
506
+ this.#ctx.responderSealSubmitted.set(sealKey, { reportedRootHex: local.reportedRootHex, sequenceNumber: local.sequenceNumber });
507
+ this.#closedViaLocalTerminus.add(sealKey);
508
+ return { ...local, viaLocalTerminus: true };
509
+ }
541
510
  return { ok: false, reason: result.reason };
542
511
  }
543
512
  // SESSION-002: the reported_root for a unilateral seal is the content-hash root the
@@ -706,6 +675,20 @@ export class SessionSeal {
706
675
  reason: extractErrorMessage(err),
707
676
  });
708
677
  }
678
+ /**
679
+ * DOD-M15-SEALPRECOND-1 — the responder must not co-sign a record still being written either.
680
+ *
681
+ * This side signs its OWN root over its OWN tree, so a send of ours the relay has ordered and
682
+ * this tree has not placed produces exactly the short root the initiator produced on
683
+ * 2026-09-11. It was the one seal submission site with no gate at all.
684
+ *
685
+ * It WAITS first — the condition clears in milliseconds and declining costs a prompt
686
+ * bilateral seal. The REFUSAL is not written here: `submitSealLeaf` reads the same condition
687
+ * and answers `own_record_settling`, so this waits and then asks, and the one refusal travels
688
+ * out through the ordinary result handling below (review HIGH-1/LOW-5 — an early return here
689
+ * skipped the broker release and logged the same skip twice).
690
+ */
691
+ await awaitOwnRecordSettled(this, agentName, sessionId);
709
692
  const submitted = await this.submitSealLeaf(agentName, sessionId, correlationId);
710
693
  // RELEASE AFTER A GRACE WINDOW, not when the submit resolves.
711
694
  //
@@ -751,6 +734,27 @@ export class SessionSeal {
751
734
  reason: result.reason,
752
735
  correlationId,
753
736
  });
737
+ /**
738
+ * DOD-M15-SEALPRECOND-1 review HIGH-2 — SAY IT TO SOMEBODY WHO CAN ACT ON IT.
739
+ *
740
+ * A refusal that only reaches the log promises a recovery nothing performs: the initiator
741
+ * waits out its unilateral timeout — two hours on the session this order was written from
742
+ * — and the receipt is lost anyway. The SI-002 gate twelve lines up already solved this
743
+ * by pushing `counterparty_closing` so B's agent drives an explicit close, and this is the
744
+ * same situation: a refusal to AUTO-sign, where a human close still completes the seal.
745
+ *
746
+ * Scoped to the settling reason on purpose. The other reasons here (relay down, transport
747
+ * gone) are not conditions a prompt close can fix, and pushing a decision point for them
748
+ * would train the agent to ignore the one that matters.
749
+ */
750
+ if (result.reason === "own_record_settling") {
751
+ try {
752
+ this.#ctx.onSessionStateChanged?.(record.agent_name, sessionId, "counterparty_closing", record.counterparty_pubkey);
753
+ }
754
+ catch (err) {
755
+ this.#ctx.logger.debug("session.state.notify.failed", { sessionId, reason: extractErrorMessage(err) });
756
+ }
757
+ }
754
758
  }
755
759
  })
756
760
  .catch((err) => {
@@ -840,11 +844,28 @@ export class SessionSeal {
840
844
  // merely suspected, because a gate that refuses a healthy session forever is worse than the bug
841
845
  // it guards: force-abandon, with no receipt, becomes the only exit.
842
846
  const diverged = this.#ctx.records.isSessionDiverged(agentName, sessionId);
847
+ /**
848
+ * DOD-M15-SEALPRECOND-1. A marker whose position the tree has ALREADY passed is spent — the
849
+ * leaf is in, or something else took the position and `diverged` says so — so it is dropped
850
+ * rather than counted, and no marker outlives its condition with no clock involved.
851
+ */
852
+ const ordered = this.#ctx.ownLeavesOrdered.get(key);
853
+ let ownLeavesOrdered = 0;
854
+ if (ordered) {
855
+ for (const [hash, seq] of [...ordered]) {
856
+ if (seq < treeSize)
857
+ ordered.delete(hash);
858
+ else
859
+ ownLeavesOrdered++;
860
+ }
861
+ if (ordered.size === 0)
862
+ this.#ctx.ownLeavesOrdered.delete(key);
863
+ }
843
864
  return {
844
- ready: missingLeaves === 0 && heldCount === 0 && !diverged,
865
+ ready: missingLeaves === 0 && heldCount === 0 && !diverged && ownLeavesOrdered === 0,
845
866
  treeSize, highWaterSeq, heldCount, missingLeaves,
846
867
  heldOwn, heldReceived: heldCount - heldOwn,
847
- diverged,
868
+ diverged, ownLeavesOrdered,
848
869
  };
849
870
  }
850
871
  /**
@@ -877,6 +898,14 @@ export class SessionSeal {
877
898
  // raw counters cannot see this: nothing is missing and nothing is held.
878
899
  return { state: "unknown", reason: "record_diverged_from_relay" };
879
900
  }
901
+ /**
902
+ * DOD-M15-SEALPRECOND-1 — READ BEFORE THE `!ready` BRANCH, for the reason stated above it.
903
+ * A settling record has nothing missing and nothing held, so `blocked` would report zeros for
904
+ * both — describing nothing, and pointing at a counterparty who has done nothing.
905
+ */
906
+ if (r.ownLeavesOrdered > 0) {
907
+ return { state: "settling", ownSendsInFlight: r.ownLeavesOrdered };
908
+ }
880
909
  if (!r.ready) {
881
910
  const oldestHeldMs = this.#ctx.queries.oldestHeldMs(agentName, sessionId);
882
911
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"session-seal.js","sourceRoot":"","sources":["../src/session-seal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-seal.js","sourceRoot":"","sources":["../src/session-seal.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export declare function createSessionViews(deps: SessionViewsDeps): {
41
41
  buildInterruptedSessions: () => InterruptedSessionInfo[];
42
42
  reapDeadHalfOpenSessions: (agentName?: string) => void;
43
43
  buildActiveSessions: () => ActiveSessionInfo[];
44
+ buildActiveSessionsWithAttendance: () => Promise<ActiveSessionInfo[]>;
44
45
  agentStateFor: (a: AgentInfo) => AgentState;
45
46
  };
46
47
  //# sourceMappingURL=session-views.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-views.d.ts","sourceRoot":"","sources":["../src/session-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,EACzE,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAMpE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,wGAAwG;IACxG,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACzE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACxE,gDAAgD;IAChD,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;CAC/E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB;oCAwClB,sBAAsB,EAAE;2CA4Cf,MAAM,KAAG,IAAI;+BAgD3B,iBAAiB,EAAE;uBA8BzB,SAAS,KAAG,UAAU;EAqCjD"}
1
+ {"version":3,"file":"session-views.d.ts","sourceRoot":"","sources":["../src/session-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EACV,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,EACzE,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAMpE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,wGAAwG;IACxG,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACzE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IACxE,gDAAgD;IAChD,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;CAC/E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB;oCAwClB,sBAAsB,EAAE;2CA4Cf,MAAM,KAAG,IAAI;+BAqD3B,iBAAiB,EAAE;6CAoGC,OAAO,CAAC,iBAAiB,EAAE,CAAC;uBAtEtD,SAAS,KAAG,UAAU;EA+GjD"}
@@ -127,6 +127,10 @@ export function createSessionViews(deps) {
127
127
  });
128
128
  }
129
129
  }
130
+ // DOD-M15-AWAYSCOPE-1: one budget for ALL the attendance probes a status read fires, not one
131
+ // each. An operator with a dozen sessions must not wait a dozen timeouts, and the number is set by
132
+ // what a person will sit through at a terminal rather than by what a slow relay might need.
133
+ const ATTENDANCE_PROBE_BUDGET_MS = 1_500;
130
134
  // M8B F16: per-session liveness for ACTIVE sessions, shared by both status surfaces
131
135
  // ("status" for the CLI, "cello_status" for MCP). The signal (session.liveness.changed,
132
136
  // tracked in the node manager) existed but nothing consumed it — a dead counterparty
@@ -193,6 +197,82 @@ export function createSessionViews(deps) {
193
197
  }
194
198
  // `probeSealReadiness` is NOT returned: its only caller is `buildInterruptedSessions`, which
195
199
  // moved with it. Returning it would make a private helper reachable for no consumer.
196
- return { buildInterruptedSessions, reapDeadHalfOpenSessions, buildActiveSessions, agentStateFor };
200
+ /**
201
+ * DOD-M15-AWAYSCOPE-1 unit 3 — the same active sessions, plus what the RELAY knows about the far
202
+ * side: is it reachable, and is anyone attending it.
203
+ *
204
+ * ── WHY THIS IS A SEPARATE, ASYNC BUILD ─────────────────────────────────────────────────────────
205
+ *
206
+ * `buildActiveSessions` answers from local state and must stay synchronous — it is called from the
207
+ * half-open reaper's own path and from surfaces that cannot await. Attendance is not local: it is
208
+ * the far daemon's assertion, held by the relay, and the only way to have it is to ask. So the
209
+ * round trip lives here, on top, and every caller that can afford it uses this one.
210
+ *
211
+ * ── WHAT THE OPERATOR GETS, AND WHY IT IS NOT A MESSAGE ─────────────────────────────────────────
212
+ *
213
+ * This is the whole replacement for the away reply. An unattended agent used to announce itself by
214
+ * sending its greeting INTO the conversation, which took a hash-chain leaf and cost session
215
+ * `e7dd3f43…` its receipt on both machines. The same fact now arrives here, as session STATUS: the
216
+ * operator reads it, their agent never has to answer it, and it never enters a transcript or a
217
+ * sealed receipt.
218
+ *
219
+ * ── THE TWO LIVENESSES ARE BOTH REPORTED, AND THEY ARE NOT THE SAME QUESTION ────────────────────
220
+ *
221
+ * `liveness` is daemon-local — does THIS process hold a libp2p connection for the session. It has a
222
+ * fourth value, `impaired`, meaning the connection is up and writes on it are failing.
223
+ * `relayLiveness` is the RELAY's observation of the counterparty's standing connection, which is
224
+ * visible even when this daemon has no direct link at all. They disagree routinely and legitimately
225
+ * — a relay-mediated session is the normal case — so collapsing them into one word would make the
226
+ * commoner state look like a fault.
227
+ *
228
+ * ── BOUNDED, BECAUSE A STATUS COMMAND MUST ANSWER ───────────────────────────────────────────────
229
+ *
230
+ * Every session is asked in parallel under ONE budget. A relay that does not answer costs the
231
+ * operator a wait, not a hang, and the sessions that did answer are still reported — a status read
232
+ * that blocks on the slowest relay is a status read nobody runs when it matters.
233
+ */
234
+ async function buildActiveSessionsWithAttendance() {
235
+ const sessions = buildActiveSessions();
236
+ if (sessions.length === 0)
237
+ return sessions;
238
+ const deadline = new Promise((r) => setTimeout(() => r("timeout"), ATTENDANCE_PROBE_BUDGET_MS));
239
+ const answered = await Promise.race([
240
+ Promise.all(sessions.map(async (s) => {
241
+ try {
242
+ return await sessionNodeManager.queryRelayLiveness(s.agentName, s.sessionId);
243
+ }
244
+ catch {
245
+ // A probe that throws tells the operator nothing, and must not take the status read with
246
+ // it. Null here reads the same as "this session has no relay to ask", which is honest.
247
+ return null;
248
+ }
249
+ })),
250
+ deadline,
251
+ ]);
252
+ if (answered === "timeout") {
253
+ // The local picture, unenriched. NOT an error and not a partial merge: pairing answers to
254
+ // sessions after a race would report some rows enriched and others not, with nothing saying
255
+ // which — and an operator cannot tell a missing field from a field that means "unknown".
256
+ logger.debug("session.attendance.probe.timeout", { sessions: sessions.length, budgetMs: ATTENDANCE_PROBE_BUDGET_MS });
257
+ return sessions;
258
+ }
259
+ return sessions.map((s, i) => {
260
+ const a = answered[i];
261
+ if (!a)
262
+ return s;
263
+ return {
264
+ ...s,
265
+ relayLiveness: a.liveness,
266
+ ...(a.observedAt > 0 ? { relayObservedAt: a.observedAt } : {}),
267
+ // BOTH, and they are different facts. `relayObservedAt` is when the relay last saw the
268
+ // connection change; `attendanceObservedAt` is when the agent last said something about
269
+ // itself. Labelling the attendance with the first dates an absence to a time before it was
270
+ // true, and the number then never moves when the operator steps away again.
271
+ ...(a.attendance ? { counterpartyAttendance: a.attendance } : {}),
272
+ ...(a.attendanceObservedAt !== undefined ? { attendanceObservedAt: a.attendanceObservedAt } : {}),
273
+ };
274
+ });
275
+ }
276
+ return { buildInterruptedSessions, reapDeadHalfOpenSessions, buildActiveSessions, buildActiveSessionsWithAttendance, agentStateFor };
197
277
  }
198
278
  //# sourceMappingURL=session-views.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-views.js","sourceRoot":"","sources":["../src/session-views.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAkBzD,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,EACJ,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,uBAAuB,EACrF,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,OAAO,EAAE,yBAAyB,EAC1F,kBAAkB,GACnB,GAAG,IAAI,CAAC;IAET,8EAA8E;IAC9E,sEAAsE;IACtE,6EAA6E;IAC7E,mDAAmD;IACnD,yFAAyF;IACzF,8FAA8F;IAC9F,4FAA4F;IAC5F,kGAAkG;IAClG,qDAAqD;IACrD,MAAM,oBAAoB,GAAG,EAAE,CAAC;IAChC;;;;;;;;;;;;OAYG;IACH,SAAS,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;QAC9D,IAAI,CAAC;YACH,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,OAAO,EAAE,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAED,SAAS,wBAAwB;QAC/B,OAAO,kBAAkB;aACtB,mBAAmB,CAAC,aAAa,CAAC;aAClC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,+CAA+C;aAC7F,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;aAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,kBAAkB,EAAE,GAAG,CAAC,mBAAmB;YAC3C,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,CAAC;YACpC,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YAC3E,4FAA4F;YAC5F,+CAA+C;YAC/C,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACrC,wFAAwF;YACxF,wFAAwF;YACxF,wFAAwF;YACxF,sFAAsF;YACtF,2DAA2D;YAC3D,aAAa,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;YACjE,6FAA6F;YAC7F,4FAA4F;YAC5F,uFAAuF;YACvF,0FAA0F;YAC1F,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACjE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,CAAC,CAAC,EAAE;SACL,CAAC,CAAC,CAAC;IACR,CAAC;IAED,qGAAqG;IACrG,mGAAmG;IACnG,uGAAuG;IACvG,uGAAuG;IACvG,qGAAqG;IACrG,qGAAqG;IACrG,uEAAuE;IACvE,qGAAqG;IACrG,mGAAmG;IACnG,sGAAsG;IACtG,kGAAkG;IAClG,qGAAqG;IACrG,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACxF,SAAS,wBAAwB,CAAC,SAAkB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,CAAC,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;QACnI,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;gBAAE,SAAS;YACtE,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,IAAI,gBAAgB;gBAAE,SAAS,CAAC,qCAAqC;YAC7F,qFAAqF;YACrF,wFAAwF;YACxF,yFAAyF;YACzF,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACvF,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,UAAU;gBAAE,SAAS,CAAC,OAAO;YACtE;;;;;;;;;;;;;;eAcG;YACH,IAAI,kBAAkB,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,qBAAqB;YACpH,kGAAkG;YAClG,iGAAiG;YACjG,0FAA0F;YAC1F,gGAAgG;YAChG,KAAK,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;iBACnE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChB,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC1J,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3I,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,wFAAwF;IACxF,qFAAqF;IACrF,iCAAiC;IACjC,SAAS,mBAAmB;QAC1B,wBAAwB,EAAE,CAAC,CAAC,+EAA+E;QAC3G,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClE,uFAAuF;YACvF,0FAA0F;YAC1F,8DAA8D;YAC9D,OAAO;gBACL,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,kBAAkB,EAAE,GAAG,CAAC,mBAAmB;gBAC3C,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;gBAC/E,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE,8BAA8B;gBACrE,aAAa,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;gBACjE,uFAAuF;gBACvF,6FAA6F;gBAC7F,uBAAuB;gBACvB,OAAO,EACL,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC/D,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;aACzE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,SAAS,aAAa,CAAC,CAAY;QACjC,OAAO,iBAAiB,CAAC;YACvB,UAAU,EAAE,CAAC,CAAC,KAAK,KAAK,aAAa;YACrC,wFAAwF;YACxF,EAAE;YACF,8FAA8F;YAC9F,yFAAyF;YACzF,4FAA4F;YAC5F,4FAA4F;YAC5F,0FAA0F;YAC1F,2DAA2D;YAC3D,EAAE;YACF,+FAA+F;YAC/F,gGAAgG;YAChG,0FAA0F;YAC1F,+DAA+D;YAC/D,aAAa,EAAE,IAAI;YACnB,mBAAmB,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,4FAA4F;YAC5F,8CAA8C;YAC9C,EAAE;YACF,2FAA2F;YAC3F,uHAAuH;YACzH,gGAAgG;YAC9F,8FAA8F;YAC9F,+FAA+F;YAC/F,uFAAuF;YACvF,kBAAkB,EAChB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,eAAe,EAAE,MAAM,CAAC,KAAK,WAAW;YAC9F,UAAU,EAAE,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,qFAAqF;IACrF,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC;AACpG,CAAC"}
1
+ {"version":3,"file":"session-views.js","sourceRoot":"","sources":["../src/session-views.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@
27
27
  import { type CelloNode, type ConnectResult, type IDirectoryChallengeVerifier } from "@cello-protocol/transport";
28
28
  import type { KeyProvider } from "@cello-protocol/crypto";
29
29
  import type { Logger } from "./types.js";
30
+ /** A directory node the daemon can dial, resolved from bootstrap config or a manifest. */
30
31
  export interface DirectoryEndpoint {
31
32
  peerId: string;
32
33
  /** A dialable multiaddr (e.g. /dns4/host/tcp/443/wss/p2p/<peerId>). Optional if already connected. */
@@ -1 +1 @@
1
- {"version":3,"file":"signaling-connect.d.ts","sourceRoot":"","sources":["../src/signaling-connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAOH,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAgDzC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACzF,4FAA4F;IAC5F,eAAe,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,oGAAoG;IACpG,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvE;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACnF;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,GAAG,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5F;AAuBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CA0X/F"}
1
+ {"version":3,"file":"signaling-connect.d.ts","sourceRoot":"","sources":["../src/signaling-connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAOH,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA+CzC,0FAA0F;AAC1F,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACzF,4FAA4F;IAC5F,eAAe,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,oGAAoG;IACpG,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACvE;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACnF;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,GAAG,cAAc,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5F;AAuBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CA0X/F"}
@@ -60,7 +60,6 @@ async function safeStop(node) {
60
60
  /* best-effort teardown */
61
61
  }
62
62
  }
63
- /** A directory node the daemon can dial, resolved from bootstrap config or a manifest. */
64
63
  /**
65
64
  * DOD-M15-STEP6-REPLAY-1 — how far out of date a directory identity proof may be.
66
65
  *