@cello-protocol/daemon 0.0.183 → 0.0.184

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 (69) hide show
  1. package/dist/close-session-handler.d.ts.map +1 -1
  2. package/dist/close-session-handler.js +90 -16
  3. package/dist/close-session-handler.js.map +1 -1
  4. package/dist/daemon.d.ts.map +1 -1
  5. package/dist/daemon.js +365 -44
  6. package/dist/daemon.js.map +1 -1
  7. package/dist/frame-values.d.ts.map +1 -1
  8. package/dist/frame-values.js +14 -0
  9. package/dist/frame-values.js.map +1 -1
  10. package/dist/inclusion-proof-handlers.d.ts +43 -0
  11. package/dist/inclusion-proof-handlers.d.ts.map +1 -0
  12. package/dist/inclusion-proof-handlers.js +565 -0
  13. package/dist/inclusion-proof-handlers.js.map +1 -0
  14. package/dist/inclusion-proof.d.ts +151 -0
  15. package/dist/inclusion-proof.d.ts.map +1 -0
  16. package/dist/inclusion-proof.js +228 -0
  17. package/dist/inclusion-proof.js.map +1 -0
  18. package/dist/network-directory-node.d.ts +16 -0
  19. package/dist/network-directory-node.d.ts.map +1 -1
  20. package/dist/network-directory-node.js +40 -0
  21. package/dist/network-directory-node.js.map +1 -1
  22. package/dist/notification-handlers.d.ts.map +1 -1
  23. package/dist/notification-handlers.js +71 -2
  24. package/dist/notification-handlers.js.map +1 -1
  25. package/dist/outbound-sessions.d.ts +6 -0
  26. package/dist/outbound-sessions.d.ts.map +1 -1
  27. package/dist/outbound-sessions.js +31 -7
  28. package/dist/outbound-sessions.js.map +1 -1
  29. package/dist/seal-coordinator.d.ts +51 -1
  30. package/dist/seal-coordinator.d.ts.map +1 -1
  31. package/dist/seal-coordinator.js +248 -1
  32. package/dist/seal-coordinator.js.map +1 -1
  33. package/dist/seal-escalation.d.ts.map +1 -1
  34. package/dist/seal-escalation.js +28 -0
  35. package/dist/seal-escalation.js.map +1 -1
  36. package/dist/seal-failure-store.d.ts.map +1 -1
  37. package/dist/seal-failure-store.js +5 -1
  38. package/dist/seal-failure-store.js.map +1 -1
  39. package/dist/sealed-leaf-set.d.ts +92 -0
  40. package/dist/sealed-leaf-set.d.ts.map +1 -0
  41. package/dist/sealed-leaf-set.js +129 -0
  42. package/dist/sealed-leaf-set.js.map +1 -0
  43. package/dist/session-ceremony.d.ts +21 -1
  44. package/dist/session-ceremony.d.ts.map +1 -1
  45. package/dist/session-ceremony.js +83 -7
  46. package/dist/session-ceremony.js.map +1 -1
  47. package/dist/session-node-manager.d.ts +141 -1
  48. package/dist/session-node-manager.d.ts.map +1 -1
  49. package/dist/session-node-manager.js +480 -14
  50. package/dist/session-node-manager.js.map +1 -1
  51. package/dist/session-relay-client.d.ts +47 -1
  52. package/dist/session-relay-client.d.ts.map +1 -1
  53. package/dist/session-relay-client.js +145 -0
  54. package/dist/session-relay-client.js.map +1 -1
  55. package/dist/signal-submission.d.ts +11 -1
  56. package/dist/signal-submission.d.ts.map +1 -1
  57. package/dist/signal-submission.js.map +1 -1
  58. package/dist/submission-retry.d.ts +208 -0
  59. package/dist/submission-retry.d.ts.map +1 -0
  60. package/dist/submission-retry.js +505 -0
  61. package/dist/submission-retry.js.map +1 -0
  62. package/dist/types.d.ts +12 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/types.js.map +1 -1
  65. package/dist/vocabulary.d.ts +13 -3
  66. package/dist/vocabulary.d.ts.map +1 -1
  67. package/dist/vocabulary.js +14 -3
  68. package/dist/vocabulary.js.map +1 -1
  69. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"seal-failure-store.js","sourceRoot":"","sources":["../src/seal-failure-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AA2BH;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAClB,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,IAAI,CAAC,SAAiB,EAAE,SAAiB;QACvC,uFAAuF;QACvF,6FAA6F;QAC7F,6FAA6F;QAC7F,0CAA0C;QAC1C,OAAO,GAAG,SAAS,OAAO,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAU,EAAE,IAAyB;QAChG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAiB,EAAE,SAAiB;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,SAAiB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAGlC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;IAC5C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,aAAa;QACrB,iGAAiG;QACjG,8FAA8F;QAC9F,6BAA6B;QAC7B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;QAC5C,UAAU,EAAE,IAAI,CAAC,SAAS;QAC1B,iGAAiG;QACjG,mFAAmF;QACnF,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QACxC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;QAC/B,QAAQ,EAAE,KAAK;YACb,CAAC,CAAC,iEAAiE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI;gBACpF,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,uEAAuE;gBAC7F,0FAA0F;gBAC1F,4FAA4F;gBAC5F,8FAA8F;gBAC9F,yFAAyF;gBACzF,4FAA4F;gBAC5F,gCAAgC;YAClC,CAAC,CAAC,6DAA6D,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW;gBACvF,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM,6CAA6C;gBACxF,sFAAsF;gBACtF,6FAA6F;gBAC7F,qFAAqF;gBACrF,wFAAwF;gBACxF,0FAA0F;gBAC1F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,+CAA+C;KACpD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"seal-failure-store.js","sourceRoot":"","sources":["../src/seal-failure-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AA2BH;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAClB,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,IAAI,CAAC,SAAiB,EAAE,SAAiB;QACvC,uFAAuF;QACvF,6FAA6F;QAC7F,6FAA6F;QAC7F,0CAA0C;QAC1C,OAAO,GAAG,SAAS,OAAO,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAU,EAAE,IAAyB;QAChG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAiB,EAAE,SAAiB;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,SAAiB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAGlC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;IAC5C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,aAAa;QACrB,iGAAiG;QACjG,8FAA8F;QAC9F,6BAA6B;QAC7B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;QAC5C,UAAU,EAAE,IAAI,CAAC,SAAS;QAC1B,iGAAiG;QACjG,mFAAmF;QACnF,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QACxC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;QAC/B,QAAQ,EAAE,KAAK;YACb,CAAC,CAAC,iEAAiE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI;gBACpF,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,uEAAuE;gBAC7F,0FAA0F;gBAC1F,4FAA4F;gBAC5F,8FAA8F;gBAC9F,yFAAyF;gBACzF,4FAA4F;gBAC5F,gCAAgC;YAClC,CAAC,CAAC,6DAA6D,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW;gBACvF,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM,6CAA6C;gBACxF,sFAAsF;gBACtF,6FAA6F;gBAC7F,qFAAqF;gBACrF,0FAA0F;gBAC1F,oEAAoE;gBACpE,2FAA2F;gBAC3F,4FAA4F;gBAC5F,oDAAoD;gBACpD,0FAA0F;gBAC1F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,+CAA+C;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * THE LEAF SET THE DIRECTORY NOTARIZED — recovered from the seal frame, checked against the signed
3
+ * root, and kept so a message can later be proved to sit under it.
4
+ *
5
+ * ─── WHY THIS EXISTS AND WHY THE LOCAL TREE CANNOT DO THE JOB ─────────────────────────────────
6
+ *
7
+ * The daemon's `SessionTree` is NOT the tree the certified root covers, and the difference is not a
8
+ * rounding error:
9
+ *
10
+ * - the certified root is `merkleRoot` over **every** leaf's content hash in the relay's canonical
11
+ * order, **control leaves included** (`directory-node.ts` — "THE CERTIFIED ROOT —
12
+ * client-reproducible, and the one every signature below binds");
13
+ * - `SessionTree` holds **content leaves only**. Nothing appends a SEAL ctrl leaf to it —
14
+ * `submitSealLeaf` deliberately computes its root without mutating the durable tree, and the
15
+ * inbound handler routes a counterparty ctrl leaf to the auto-acknowledge path, never to an
16
+ * append.
17
+ *
18
+ * So `SessionTree.rootHex()` equals the SEAL payload's `final_root` (the root over the non-ctrl
19
+ * leaves, which is what each party signs), and it does **not** equal `sealed_root`. An audit path
20
+ * built from the local tree therefore lands on a root no certificate names — which is precisely the
21
+ * "a proof against your own root proves nothing" trap, reached by accident rather than by design.
22
+ *
23
+ * ─── WHAT MAKES THE STORED SET TRUSTWORTHY ────────────────────────────────────────────────────
24
+ *
25
+ * It is never stored on the directory's word. `recordSealedLeafSet` rebuilds the Merkle root over
26
+ * the hashes and refuses unless it reproduces the `sealed_root` the FROST signature covers. A
27
+ * directory that reorders, adds, drops or alters a single leaf produces a different root and the set
28
+ * is refused — so what lands on disk is, by construction, the leaf set the consortium signed.
29
+ *
30
+ * ⚠️ THE PARAGRAPH THAT USED TO SIT HERE OVERSTATED IT, and it is rewritten rather than deleted
31
+ * because it is what a future reader would have reasoned from. It said: *"the hashes come out of
32
+ * `structure1_cbor`, each leaf's participant-signed to-be-signed bytes; `reDeriveFrontiers` has
33
+ * already verified those signatures on this same array before we are called, so the content hashes
34
+ * are the senders' own, not the directory's."*
35
+ *
36
+ * **That holds on the BILATERAL path only.** There, `seal-coordinator.ts` returns outright when
37
+ * `reDeriveFrontiers` fails, so nothing unverified reaches this module. On the UNILATERAL path
38
+ * `checkUnilateralFrontier` deliberately never rejects — a forged or cross-session leaf yields
39
+ * `leaves_invalid`, the frontier is corrected DOWN to zero, and the seal proceeds rather than
40
+ * dead-ending — and those same leaves are then handed here.
41
+ *
42
+ * **What is true on EVERY path is the root comparison below, and it is the load-bearing one.** A
43
+ * leaf set only lands if it reproduces the FROST-signed `sealed_root`, so forged leaves cannot enter
44
+ * the store unless they hash to a root the consortium already signed. The per-leaf signature check is
45
+ * a second, path-dependent line of defence, not the guarantee — and stating it as the guarantee is
46
+ * exactly the shape `DOD-M15-CLAIM-COMMENTS-1` exists to catch.
47
+ *
48
+ * The hashes still come out of `structure1_cbor`, each leaf's to-be-signed bytes — that part was
49
+ * always accurate, and it is why the hashes are the ones a sender's signature would cover.
50
+ *
51
+ * Crypto refs: RFC 6962 §2.1 (Merkle hash trees).
52
+ */
53
+ import type { SealFrontierLeaf } from "./seal-frontier-verify.js";
54
+ /**
55
+ * Every leaf's content hash, hex, in the order the directory certified.
56
+ *
57
+ * Structure 1 TBS is `[protocol_version, content_hash, sender_pubkey, session_id, last_seen_seq,
58
+ * timestamp]` — index 1 is the content hash, and it is the same value the directory feeds to
59
+ * `buildMerkleTree`. Decoded here rather than taken from any other field so the hashes are the ones
60
+ * the sender's signature actually covers.
61
+ *
62
+ * Returns null on ANY undecodable or wrong-width leaf rather than skipping it. Skipping would build
63
+ * a SHORTER leaf set that still hashes to something, and that something would then be compared to
64
+ * the certified root — a comparison that fails for the right reason today and would silently start
65
+ * passing the moment a dropped leaf happened to be the last one.
66
+ */
67
+ export declare function sealedLeafHashesFromSignedLeaves(leaves: readonly SealFrontierLeaf[]): string[] | null;
68
+ /** Why a candidate leaf set was not accepted as the notarized one. */
69
+ export declare const SEALED_LEAF_SET_REASONS: {
70
+ /** A leaf's Structure 1 bytes did not decode, or carried no 32-byte content hash. */
71
+ readonly LEAVES_MALFORMED: "sealed_leaves_malformed";
72
+ /** The Merkle root over these hashes is not the root the certificate is signed over. */
73
+ readonly ROOT_DISAGREES: "sealed_leaves_root_disagrees";
74
+ };
75
+ export type SealedLeafSetReason = (typeof SEALED_LEAF_SET_REASONS)[keyof typeof SEALED_LEAF_SET_REASONS];
76
+ export type SealedLeafSetResult = {
77
+ ok: true;
78
+ leafHashes: string[];
79
+ } | {
80
+ ok: false;
81
+ reason: SealedLeafSetReason;
82
+ detail: string;
83
+ };
84
+ /**
85
+ * Recover the certified leaf set from the seal frame's signed leaves, and prove it against the
86
+ * certified root before handing it back.
87
+ *
88
+ * The root comparison is the ONLY thing that makes the result usable, so it is not optional and not
89
+ * a warning: a set that does not reproduce `sealedRootHex` is refused outright.
90
+ */
91
+ export declare function certifiedLeafSetFrom(leaves: readonly SealFrontierLeaf[], sealedRootHex: string): SealedLeafSetResult;
92
+ //# sourceMappingURL=sealed-leaf-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-leaf-set.d.ts","sourceRoot":"","sources":["../src/sealed-leaf-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAuBrG;AAED,sEAAsE;AACtE,eAAO,MAAM,uBAAuB;IAClC,qFAAqF;;IAErF,wFAAwF;;CAEhF,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EACnC,aAAa,EAAE,MAAM,GACpB,mBAAmB,CAmBrB"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * THE LEAF SET THE DIRECTORY NOTARIZED — recovered from the seal frame, checked against the signed
3
+ * root, and kept so a message can later be proved to sit under it.
4
+ *
5
+ * ─── WHY THIS EXISTS AND WHY THE LOCAL TREE CANNOT DO THE JOB ─────────────────────────────────
6
+ *
7
+ * The daemon's `SessionTree` is NOT the tree the certified root covers, and the difference is not a
8
+ * rounding error:
9
+ *
10
+ * - the certified root is `merkleRoot` over **every** leaf's content hash in the relay's canonical
11
+ * order, **control leaves included** (`directory-node.ts` — "THE CERTIFIED ROOT —
12
+ * client-reproducible, and the one every signature below binds");
13
+ * - `SessionTree` holds **content leaves only**. Nothing appends a SEAL ctrl leaf to it —
14
+ * `submitSealLeaf` deliberately computes its root without mutating the durable tree, and the
15
+ * inbound handler routes a counterparty ctrl leaf to the auto-acknowledge path, never to an
16
+ * append.
17
+ *
18
+ * So `SessionTree.rootHex()` equals the SEAL payload's `final_root` (the root over the non-ctrl
19
+ * leaves, which is what each party signs), and it does **not** equal `sealed_root`. An audit path
20
+ * built from the local tree therefore lands on a root no certificate names — which is precisely the
21
+ * "a proof against your own root proves nothing" trap, reached by accident rather than by design.
22
+ *
23
+ * ─── WHAT MAKES THE STORED SET TRUSTWORTHY ────────────────────────────────────────────────────
24
+ *
25
+ * It is never stored on the directory's word. `recordSealedLeafSet` rebuilds the Merkle root over
26
+ * the hashes and refuses unless it reproduces the `sealed_root` the FROST signature covers. A
27
+ * directory that reorders, adds, drops or alters a single leaf produces a different root and the set
28
+ * is refused — so what lands on disk is, by construction, the leaf set the consortium signed.
29
+ *
30
+ * ⚠️ THE PARAGRAPH THAT USED TO SIT HERE OVERSTATED IT, and it is rewritten rather than deleted
31
+ * because it is what a future reader would have reasoned from. It said: *"the hashes come out of
32
+ * `structure1_cbor`, each leaf's participant-signed to-be-signed bytes; `reDeriveFrontiers` has
33
+ * already verified those signatures on this same array before we are called, so the content hashes
34
+ * are the senders' own, not the directory's."*
35
+ *
36
+ * **That holds on the BILATERAL path only.** There, `seal-coordinator.ts` returns outright when
37
+ * `reDeriveFrontiers` fails, so nothing unverified reaches this module. On the UNILATERAL path
38
+ * `checkUnilateralFrontier` deliberately never rejects — a forged or cross-session leaf yields
39
+ * `leaves_invalid`, the frontier is corrected DOWN to zero, and the seal proceeds rather than
40
+ * dead-ending — and those same leaves are then handed here.
41
+ *
42
+ * **What is true on EVERY path is the root comparison below, and it is the load-bearing one.** A
43
+ * leaf set only lands if it reproduces the FROST-signed `sealed_root`, so forged leaves cannot enter
44
+ * the store unless they hash to a root the consortium already signed. The per-leaf signature check is
45
+ * a second, path-dependent line of defence, not the guarantee — and stating it as the guarantee is
46
+ * exactly the shape `DOD-M15-CLAIM-COMMENTS-1` exists to catch.
47
+ *
48
+ * The hashes still come out of `structure1_cbor`, each leaf's to-be-signed bytes — that part was
49
+ * always accurate, and it is why the hashes are the ones a sender's signature would cover.
50
+ *
51
+ * Crypto refs: RFC 6962 §2.1 (Merkle hash trees).
52
+ */
53
+ import { decode as cborDecode } from "cbor-x";
54
+ import { rootOverLeafHashes } from "./inclusion-proof.js";
55
+ /**
56
+ * Every leaf's content hash, hex, in the order the directory certified.
57
+ *
58
+ * Structure 1 TBS is `[protocol_version, content_hash, sender_pubkey, session_id, last_seen_seq,
59
+ * timestamp]` — index 1 is the content hash, and it is the same value the directory feeds to
60
+ * `buildMerkleTree`. Decoded here rather than taken from any other field so the hashes are the ones
61
+ * the sender's signature actually covers.
62
+ *
63
+ * Returns null on ANY undecodable or wrong-width leaf rather than skipping it. Skipping would build
64
+ * a SHORTER leaf set that still hashes to something, and that something would then be compared to
65
+ * the certified root — a comparison that fails for the right reason today and would silently start
66
+ * passing the moment a dropped leaf happened to be the last one.
67
+ */
68
+ export function sealedLeafHashesFromSignedLeaves(leaves) {
69
+ // AN EMPTY SET IS NOT A LEAF SET — the guard belongs here, not in the caller that happens to have
70
+ // one. `[]` yields a root of sha256("") (RFC 6962 §2.1's empty tree), so a certificate whose root
71
+ // were ever that value would "verify" against zero leaves, be stored as zero rows, and log
72
+ // `leafCount: 0` as a success. Unreachable today only because `parseFrontierLeaves` filters empty
73
+ // arrays upstream — which is a property of the caller, not of this function.
74
+ if (leaves.length === 0)
75
+ return null;
76
+ const hashes = [];
77
+ for (const leaf of leaves) {
78
+ let arr;
79
+ try {
80
+ arr = cborDecode(leaf.structure1_cbor);
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ if (!Array.isArray(arr) || arr.length < 2)
86
+ return null;
87
+ const raw = arr[1];
88
+ const bytes = raw instanceof Uint8Array ? raw : Buffer.isBuffer(raw) ? new Uint8Array(raw) : null;
89
+ if (bytes === null || bytes.length !== 32)
90
+ return null;
91
+ hashes.push(Buffer.from(bytes).toString("hex"));
92
+ }
93
+ return hashes;
94
+ }
95
+ /** Why a candidate leaf set was not accepted as the notarized one. */
96
+ export const SEALED_LEAF_SET_REASONS = {
97
+ /** A leaf's Structure 1 bytes did not decode, or carried no 32-byte content hash. */
98
+ LEAVES_MALFORMED: "sealed_leaves_malformed",
99
+ /** The Merkle root over these hashes is not the root the certificate is signed over. */
100
+ ROOT_DISAGREES: "sealed_leaves_root_disagrees",
101
+ };
102
+ /**
103
+ * Recover the certified leaf set from the seal frame's signed leaves, and prove it against the
104
+ * certified root before handing it back.
105
+ *
106
+ * The root comparison is the ONLY thing that makes the result usable, so it is not optional and not
107
+ * a warning: a set that does not reproduce `sealedRootHex` is refused outright.
108
+ */
109
+ export function certifiedLeafSetFrom(leaves, sealedRootHex) {
110
+ const hashes = sealedLeafHashesFromSignedLeaves(leaves);
111
+ if (hashes === null) {
112
+ return {
113
+ ok: false,
114
+ reason: SEALED_LEAF_SET_REASONS.LEAVES_MALFORMED,
115
+ detail: `one of the ${leaves.length} signed leaves carried no decodable 32-byte content hash at Structure 1 index 1`,
116
+ };
117
+ }
118
+ const recomputed = rootOverLeafHashes(hashes);
119
+ const expected = sealedRootHex.toLowerCase();
120
+ if (recomputed !== expected) {
121
+ return {
122
+ ok: false,
123
+ reason: SEALED_LEAF_SET_REASONS.ROOT_DISAGREES,
124
+ detail: `${hashes.length} leaves hash to ${recomputed}, and the certificate is signed over ${expected}`,
125
+ };
126
+ }
127
+ return { ok: true, leafHashes: hashes };
128
+ }
129
+ //# sourceMappingURL=sealed-leaf-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-leaf-set.js","sourceRoot":"","sources":["../src/sealed-leaf-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAmC;IAClF,kGAAkG;IAClG,kGAAkG;IAClG,2FAA2F;IAC3F,kGAAkG;IAClG,6EAA6E;IAC7E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,KAAK,GACT,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,qFAAqF;IACrF,gBAAgB,EAAE,yBAAyB;IAC3C,wFAAwF;IACxF,cAAc,EAAE,8BAA8B;CACtC,CAAC;AASX;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAmC,EACnC,aAAqB;IAErB,MAAM,MAAM,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uBAAuB,CAAC,gBAAgB;YAChD,MAAM,EAAE,cAAc,MAAM,CAAC,MAAM,iFAAiF;SACrH,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uBAAuB,CAAC,cAAc;YAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,mBAAmB,UAAU,wCAAwC,QAAQ,EAAE;SACxG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC"}
@@ -106,8 +106,28 @@ export interface CeremonyWiringDeps {
106
106
  /** The agent's per-agent signaling seam (where ceremony_request arrives + result is sent). */
107
107
  signaling: SignalingSeam;
108
108
  logger: Logger;
109
+ /**
110
+ * DOD-M15-SEALPARTIES-1: leave a mark when the seal ceremony dies, so the answer outlives it.
111
+ *
112
+ * `if (!frostSignature) return;` was the whole handling of a ceremony that produced no signature
113
+ * — no log line, no record, nothing. Requiring the co-signing directories to judge the leaves adds
114
+ * a NEW way to land there (they refuse), and a refusal nobody hears is indistinguishable from the
115
+ * seal simply never happening. It also covers the paths that were already silent: a root this
116
+ * agent cannot confirm, an inflated frontier, a share it cannot load.
117
+ *
118
+ * REQUIRED rather than optional, deliberately: an optional sink is one a call site forgets, and
119
+ * the whole class of defect this unit is closing is a check that quietly stopped being wired.
120
+ */
121
+ recordSealFailure: (agentName: string, sessionId: string, reason: string) => void;
109
122
  }
110
- export declare function reconstructThresholdSigner(deps: CeremonyWiringDeps): Promise<IThresholdSigner | null>;
123
+ export declare function reconstructThresholdSigner(deps: CeremonyWiringDeps,
124
+ /**
125
+ * DOD-M15-SEALPARTIES-1: the signed leaves this ceremony's TBS is a root over, forwarded to every
126
+ * directory node so each reaches its own verdict instead of signing a claim. Supplied on the seal
127
+ * ceremony and on nothing else — a co-signer requires it under the seal context and ignores it
128
+ * everywhere else.
129
+ */
130
+ sealEvidence?: import("./network-directory-node.js").SealCeremonyEvidence): Promise<IThresholdSigner | null>;
111
131
  /**
112
132
  * M8B DOD-REFRESH-1: run a proactive share refresh for an already-registered agent. Rotates the client's
113
133
  * + every directory node's share to the next epoch (group public key unchanged), then persists the
@@ -1 +1 @@
1
- {"version":3,"file":"session-ceremony.d.ts","sourceRoot":"","sources":["../src/session-ceremony.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-ceremony.d.ts","sourceRoot":"","sources":["../src/session-ceremony.ts"],"names":[],"mappings":"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"}
@@ -303,10 +303,20 @@ async function hydrateShareAndStubs(deps) {
303
303
  }
304
304
  return { share, stubs: directoryNodeStubs };
305
305
  }
306
- export async function reconstructThresholdSigner(deps) {
306
+ export async function reconstructThresholdSigner(deps,
307
+ /**
308
+ * DOD-M15-SEALPARTIES-1: the signed leaves this ceremony's TBS is a root over, forwarded to every
309
+ * directory node so each reaches its own verdict instead of signing a claim. Supplied on the seal
310
+ * ceremony and on nothing else — a co-signer requires it under the seal context and ignores it
311
+ * everywhere else.
312
+ */
313
+ sealEvidence) {
307
314
  const h = await hydrateShareAndStubs(deps);
308
315
  if (!h)
309
316
  return null;
317
+ if (sealEvidence)
318
+ for (const stub of h.stubs ?? [])
319
+ stub.setSealEvidence(sealEvidence);
310
320
  return new FrostThresholdSigner({ threshold: h.share.threshold, participants: h.share.participants, directoryNodeStubs: h.stubs }, Buffer.from(deps.agentPubkeyHex, "hex"));
311
321
  }
312
322
  /**
@@ -433,11 +443,41 @@ export function wireSealCeremonyHandler(deps) {
433
443
  return;
434
444
  }
435
445
  const sidHex = Buffer.from(sessionId).toString("hex");
446
+ /**
447
+ * DOD-M15-SEALPARTIES-1: forward the raw signed leaves to every co-signing directory.
448
+ *
449
+ * They arrive on `seal_verified` and are already re-verified on this side (the frontier
450
+ * re-derivation below reads the same array). Forwarding them is what lets a node that did NOT
451
+ * run the verification rebuild the root itself and refuse a certificate over a leaf set the
452
+ * participants never produced — the difference between three signatures that mean three
453
+ * independent judgements and three that rest on one node's reading.
454
+ *
455
+ * Absent here means the frame carried none, and the directories refuse on that: it is not
456
+ * this side's place to decide the evidence was optional.
457
+ */
458
+ const sealEvidenceLeaves = Array.isArray(frame["frontier_leaves"]) && frame["frontier_leaves"].length > 0
459
+ ? frame["frontier_leaves"]
460
+ : undefined;
436
461
  // Reconstruct a FRESH signer per ceremony (same rationale as the session ceremony:
437
462
  // fresh directory endpoint, no shared FROST state across concurrent ceremonies).
438
- const signer = await reconstructThresholdSigner(deps);
463
+ /**
464
+ * ⚠️ ABSENT IS PASSED AS ABSENT — fallback hunt, finding 4. This used to send `[]`, which the
465
+ * co-signer classified as MALFORMED ("compare builds") rather than MISSING ("someone is asking
466
+ * for a signature without showing the record"). The seal failed either way; the diagnosis the
467
+ * module exists to produce was the one case it could never reach.
468
+ */
469
+ /**
470
+ * Review F6: what each holder SAID, kept so the recorded failure can name it. "Threshold not
471
+ * met" is a count; `SEAL_ROOT_UNSUPPORTED` from a holder is an accusation against the
472
+ * verifying directory, and the operator surface should be able to tell them apart.
473
+ */
474
+ const cosignRefusals = new Set();
475
+ const signer = await reconstructThresholdSigner(deps, sealEvidenceLeaves
476
+ ? { leaves: sealEvidenceLeaves, closeTimestamp: timestamp, onRefused: (r) => cosignRefusals.add(r) }
477
+ : undefined);
439
478
  if (!signer) {
440
479
  deps.logger.warn("session.seal.ceremony.abort", { agentName: deps.agentName, sessionId: sidHex, reason: "no_signer" });
480
+ deps.recordSealFailure(deps.agentName, sidHex, "seal_ceremony_no_signer");
441
481
  return;
442
482
  }
443
483
  // M7 legibility-TBS-binding: when the directory's seal_verified carries `legibility` (the
@@ -469,10 +509,11 @@ export function wireSealCeremonyHandler(deps) {
469
509
  const flRaw = frame["frontier_leaves"];
470
510
  const haveLeaves = Array.isArray(flRaw) && flRaw.length > 0;
471
511
  if (malformed || (anyClaimed && !haveLeaves)) {
512
+ const abortReason = malformed ? "frontier_participant_malformed" : "frontier_leaves_missing";
472
513
  deps.logger.warn("session.seal.ceremony.abort", {
473
- agentName: deps.agentName, sessionId: sidHex,
474
- reason: malformed ? "frontier_participant_malformed" : "frontier_leaves_missing",
514
+ agentName: deps.agentName, sessionId: sidHex, reason: abortReason,
475
515
  });
516
+ deps.recordSealFailure(deps.agentName, sidHex, abortReason);
476
517
  return;
477
518
  }
478
519
  if (haveLeaves) {
@@ -486,11 +527,13 @@ export function wireSealCeremonyHandler(deps) {
486
527
  ? findInflatedFrontier(parts, rederived.frontiers)
487
528
  : null;
488
529
  if (!rederived.ok || inflated) {
530
+ const inflatedReason = rederived.ok ? "frontier_unverifiable" : rederived.reason;
489
531
  deps.logger.warn("session.seal.ceremony.abort", {
490
532
  agentName: deps.agentName, sessionId: sidHex,
491
- reason: rederived.ok ? "frontier_unverifiable" : rederived.reason,
533
+ reason: inflatedReason,
492
534
  ...(inflated ? { party: inflated.party, publishedFrontier: inflated.publishedFrontier, derivedFrontier: inflated.derivedFrontier } : {}),
493
535
  });
536
+ deps.recordSealFailure(deps.agentName, sidHex, inflatedReason);
494
537
  return; // refuse to co-sign — the directory gets no signature for an inflated cert
495
538
  }
496
539
  }
@@ -520,6 +563,7 @@ export function wireSealCeremonyHandler(deps) {
520
563
  guidance: "Compare the leaf count with the counterparty and check the directory and relay logs for " +
521
564
  "this session id. Do NOT force-abandon: that forfeits the receipt permanently.",
522
565
  });
566
+ deps.recordSealFailure(deps.agentName, sidHex, rootCheck.verdict === "mismatch" ? "seal_root_mismatch" : "seal_root_unverifiable");
523
567
  return; // refuse to co-sign — the directory gets no signature for a root we cannot verify
524
568
  }
525
569
  const tbs = bindLegibilityToTbs(buildSealTbs(sessionId, sealedRoot, leafCount, timestamp), legForHash);
@@ -537,10 +581,42 @@ export function wireSealCeremonyHandler(deps) {
537
581
  sessionId: sidHex,
538
582
  detail: err instanceof Error ? err.message : String(err),
539
583
  });
584
+ deps.recordSealFailure(deps.agentName, sidHex, "seal_ceremony_threw");
585
+ return;
586
+ }
587
+ if (!frostSignature) {
588
+ /**
589
+ * ⚠️ THIS WAS `if (!frostSignature) return;` WITH NO LOG AND NO RECORD —
590
+ * `DOD-M15-SEALPARTIES-1`.
591
+ *
592
+ * It is where a seal lands when the FROST ceremony produces nothing, and requiring the
593
+ * co-signing directories to judge the leaves makes it reachable for a NEW and important
594
+ * reason: a holder looked at the record, decided it does not support the root, and declined.
595
+ * That is the strongest signal this system produces, and its entire trace was a bare return.
596
+ *
597
+ * The refusing node's own reason is on the coordinating side too — `network-directory-node`
598
+ * logs `frost.directory.sign.refused` per node with what that node said — because a
599
+ * threshold failure is a count, and the count does not say WHY any particular holder said
600
+ * no.
601
+ */
602
+ deps.logger.error("session.seal.ceremony.no_signature", {
603
+ agentName: deps.agentName,
604
+ sessionId: sidHex,
605
+ cosignRefusals: [...cosignRefusals].sort(),
606
+ impact: "the seal FROST ceremony ended with no signature, so this session has no certificate " +
607
+ "and nothing was signed with this agent's key. Enough share-holding directories " +
608
+ "declined or were unreachable that the threshold was not met.",
609
+ guidance: "Look for frost.directory.sign.refused in this daemon's log — each line names one " +
610
+ "directory and the reason it gave. A SEAL_ROOT_UNSUPPORTED there means a holder rebuilt " +
611
+ "the root from the leaves and got a different answer, which is a fault in the verifying " +
612
+ "directory or the relay, not in this agent. Do NOT force-abandon: that forfeits the " +
613
+ "receipt permanently.",
614
+ });
615
+ deps.recordSealFailure(deps.agentName, sidHex, cosignRefusals.size > 0
616
+ ? `seal_cosigners_refused:${[...cosignRefusals].sort().join(",")}`
617
+ : "seal_ceremony_threshold_not_met");
540
618
  return;
541
619
  }
542
- if (!frostSignature)
543
- return; // ceremony failed (threshold not met) — no signature to send
544
620
  await sendSealFrostSignature(deps, sessionId, sidHex, frostSignature);
545
621
  })();
546
622
  });
@@ -1 +1 @@
1
- {"version":3,"file":"session-ceremony.js","sourceRoot":"","sources":["../src/session-ceremony.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-ceremony.js","sourceRoot":"","sources":["../src/session-ceremony.ts"],"names":[],"mappings":"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"}