@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
@@ -25,7 +25,7 @@
25
25
  *
26
26
  * Crypto: Ed25519 (RFC 8032), SHA-256 (FIPS 180-4).
27
27
  */
28
- import { timingSafeEqual } from "node:crypto";
28
+ import { timingSafeEqual, createHash } from "node:crypto";
29
29
  import { decode as cborDecode } from "cbor-x";
30
30
  import { encodeCbor } from "@cello-protocol/protocol-types";
31
31
  import { verify, sealToRecipient } from "@cello-protocol/crypto";
@@ -60,6 +60,91 @@ export function pubkeyMatchesHex(pubkey, storedHex) {
60
60
  return false;
61
61
  return timingSafeEqual(Buffer.from(pubkey), stored);
62
62
  }
63
+ /**
64
+ * DOD-M15-DELIVERYACK-1 unit 1 — WHAT A PARKED ENTRY IS, SAID WHERE THE RELAY CANNOT READ IT.
65
+ *
66
+ * The relay's mailbox holds opaque ciphertext and has no idea what is inside. An acknowledgement
67
+ * parked there would arrive at the recipient's content-recovery path and be ingested as a MESSAGE —
68
+ * which is why the acknowledgement could not use that path at all, and why an acknowledgement sent
69
+ * while the sender's daemon was down was simply lost.
70
+ *
71
+ * So the discriminator rides INSIDE the seal. Consequences, and all three are the point:
72
+ * - the relay needs NO change and learns nothing new — it stays a blind custodian (INV-3);
73
+ * - the relay cannot strip the tag to make an acknowledgement be ingested as content, nor add one
74
+ * to make a message disappear into the evidence store;
75
+ * - the envelope's existing SEC-1 gate still runs first, so a parked acknowledgement is
76
+ * authenticated as coming from this session's counterparty BEFORE anything looks at what it says.
77
+ *
78
+ * ⚠️ THE TAG IS A WIRE VALUE. The string is the contract; renaming the constant is free, changing
79
+ * its value breaks every parked acknowledgement already sitting in a mailbox.
80
+ */
81
+ export const PARKED_DELIVERY_ACK_TAG = "cello/park/delivery-ack/v1";
82
+ /** Domain separator for the mailbox slot an acknowledgement is filed under. */
83
+ const PARKED_DELIVERY_ACK_SLOT_DOMAIN = "CELLO-PARK-DELIVERY-ACK-SLOT-v1";
84
+ /**
85
+ * The relay mailbox slot a parked acknowledgement occupies.
86
+ *
87
+ * ⚠️ NOT the hash it acknowledges, and that is a correctness requirement rather than tidiness. The
88
+ * relay files entries by `(recipient_pubkey, content_hash)`. Filing an acknowledgement under the
89
+ * hash it is about would put it in the same slot a parked copy of that very message occupies, so
90
+ * one could evict or be mistaken for the other. A labelled derivation puts it somewhere no
91
+ * message's content hash can land, by accident or by construction.
92
+ *
93
+ * DETERMINISTIC on purpose: re-parking the same acknowledgement lands on the same slot, so the
94
+ * relay's own `INSERT OR IGNORE`-shaped dedup absorbs a repeat instead of growing the mailbox.
95
+ *
96
+ * SHA-256 — FIPS 180-4.
97
+ */
98
+ export function parkedDeliveryAckMailboxHash(sessionIdHex, contentHash) {
99
+ return new Uint8Array(createHash("sha256")
100
+ .update(Buffer.from(PARKED_DELIVERY_ACK_SLOT_DOMAIN, "utf8"))
101
+ .update(Buffer.from(sessionIdHex, "hex"))
102
+ .update(Buffer.from(contentHash))
103
+ .digest());
104
+ }
105
+ /**
106
+ * Encode a parked acknowledgement. This becomes the park envelope's `content`, so the envelope's
107
+ * signature covers it and the seal hides it.
108
+ */
109
+ export function encodeParkedDeliveryAck(ack) {
110
+ return encodeCbor([
111
+ PARKED_DELIVERY_ACK_TAG,
112
+ ack.sessionIdHex,
113
+ ack.contentHash,
114
+ ack.ackSig,
115
+ ]);
116
+ }
117
+ /**
118
+ * Is this park envelope's content a delivery acknowledgement? `null` means no — which is the answer
119
+ * for every ordinary message, and must stay the answer for every ordinary message.
120
+ *
121
+ * 🚨 STRICT ON PURPOSE, AND IT REFUSES RATHER THAN REPAIRS. A malformed acknowledgement answers
122
+ * `null`, which routes it to the content path where the envelope gate has already vouched for the
123
+ * depositor and ingest will judge it on its own terms. There is no half-accepted acknowledgement:
124
+ * the widths are exact, the tag is in the first slot only, and a hex session id that is not hex is
125
+ * refused. A tolerant decode here would let a crafted message be filed as proof of its own delivery.
126
+ */
127
+ export function decodeParkedDeliveryAck(content) {
128
+ let arr;
129
+ try {
130
+ arr = cborDecode(content);
131
+ }
132
+ catch {
133
+ return null;
134
+ }
135
+ if (!Array.isArray(arr) || arr.length !== 4)
136
+ return null;
137
+ const [tag, sessionIdHex, contentHash, ackSig] = arr;
138
+ if (tag !== PARKED_DELIVERY_ACK_TAG)
139
+ return null;
140
+ if (typeof sessionIdHex !== "string" || !/^[0-9a-fA-F]+$/.test(sessionIdHex) || sessionIdHex.length % 2 !== 0)
141
+ return null;
142
+ if (!(contentHash instanceof Uint8Array) || contentHash.length !== 32)
143
+ return null;
144
+ if (!(ackSig instanceof Uint8Array) || ackSig.length !== 64)
145
+ return null;
146
+ return { sessionIdHex, contentHash, ackSig };
147
+ }
63
148
  /** Current envelope version. v1 (unsigned) is decodable but NEVER acceptable — see authenticate(). */
64
149
  export const PARK_ENVELOPE_VERSION = 2;
65
150
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"park-envelope.js","sourceRoot":"","sources":["../src/park-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"park-envelope.js","sourceRoot":"","sources":["../src/park-envelope.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@
16
16
  import type { Logger, SessionRecord } from "./types.js";
17
17
  import type { SealCarryLeaf } from "./session-seal-leaf-store.js";
18
18
  import type { SessionTree } from "./session-tree.js";
19
+ import { type ParkedDeliveryAck } from "./park-envelope.js";
19
20
  import type { InboundRefusals } from "./inbound-refusals.js";
20
21
  import { type ParkedDrainReason, type ParkAttempt, type ActiveSessionEntry } from "./session-node-types.js";
21
22
  import { type ParkAuthFailure } from "./park-envelope.js";
@@ -50,6 +51,22 @@ export interface ParkContext {
50
51
  }>;
51
52
  witnessReceivedLeaf(agentName: string, sessionId: string, contentHash: Uint8Array, structure1Cbor: Uint8Array, senderSignature: Uint8Array, leafKind: number, correlationId?: string): void;
52
53
  noteAcknowledgeable(agentName: string, sessionId: string, canonicalSeq: number, contentHash: Uint8Array): void;
54
+ /**
55
+ * DOD-M15-DELIVERYACK-1 unit 1 — sign for a message that arrived through the MAILBOX.
56
+ *
57
+ * ⚠️ THE RECOVERED PATH NEVER ACKNOWLEDGED ANYTHING AT ALL, and that is a bigger gap than the one
58
+ * the unit set out to close. The acknowledgement was emitted from the direct frame handler only,
59
+ * so a message that had to be parked — one of the blameless ways delivery is delayed, and the
60
+ * exact case the sender most needs evidence about — was read, appended and answered with silence.
61
+ * The sender's own copy then showed it as never acknowledged, which is indistinguishable from the
62
+ * counterparty ignoring it.
63
+ */
64
+ sendDeliveryAck(agentName: string, sessionId: string, contentHash: Uint8Array, correlationId?: string): void;
65
+ /** The relay endpoint recorded for a session, for the case where no live entry exists. */
66
+ persistedRelayEndpoint(agentName: string, sessionId: string): {
67
+ relayPeerId: string;
68
+ relayAddrs: string[];
69
+ } | null;
53
70
  }
54
71
  export declare class ParkRecovery {
55
72
  #private;
@@ -131,6 +148,25 @@ export declare class ParkRecovery {
131
148
  * hashed under, so a new fourth caller cannot omit it by accident.
132
149
  */
133
150
  parkContent(agentName: string, sessionId: string, contentHashHex: string, content: Uint8Array, structure1Cbor: Uint8Array | undefined, structure2Cbor: Uint8Array | undefined, contentHashAlg: string | undefined, structure1Signature?: Uint8Array, parkLeafKind?: number): Promise<ParkAttempt>;
151
+ /**
152
+ * DOD-M15-DELIVERYACK-1 unit 1 — DEPOSIT OUT-OF-BAND MACHINE TRAFFIC WITH NO LIVE SESSION NODE.
153
+ *
154
+ * `parkContent` resolves the recipient and the relay from the in-memory session entry, which is
155
+ * exactly what does not exist in the case this is for: the counterparty's daemon is down, so there
156
+ * is no live node, and an acknowledgement produced by the mailbox-recovery path had nowhere to go.
157
+ * Measured, not assumed — the live journey showed `content.delivery.ack.skipped
158
+ * / session_node_gone` at precisely this point.
159
+ *
160
+ * So the endpoint is taken from the PERSISTED session row, the same source the crash-backstop
161
+ * flush uses for the same reason. Everything else is `parkContent`'s path unchanged: the payload
162
+ * is sealed to the recipient and the relay holds ciphertext it cannot read.
163
+ *
164
+ * ⚠️ NOT FOR CONTENT. Content parked with no ordering record and no signature over one is a
165
+ * message that is readable and permanently unnotarizable, which is the withholding attack's whole
166
+ * shape — `parkContent`'s own comment says so. Out-of-band traffic takes no leaf and enters no
167
+ * receipt, so it has nothing to be truncated out of.
168
+ */
169
+ parkOutOfBand(agentName: string, sessionId: string, slotHashHex: string, payload: Uint8Array): Promise<ParkAttempt>;
134
170
  /** DOD-M12B-INDEX-1 — this agent's own K_local pubkey, for attributing its own held content.
135
171
  * Null when it cannot be resolved: an UNATTRIBUTED annex row is true, a falsely attributed one
136
172
  * is not, and this is the record that outlives the session. */
@@ -179,6 +215,16 @@ export declare class ParkRecovery {
179
215
  appendedCount?: number;
180
216
  screenedOut?: boolean;
181
217
  }
218
+ /**
219
+ * DOD-M15-DELIVERYACK-1 unit 1 — the entry was not a message at all; it was the counterparty
220
+ * acknowledging one of OURS, parked because this daemon was down when they read it. The caller
221
+ * accepts it (verify, bind, store) and confirm-deletes the mailbox entry. It appends no leaf and
222
+ * has no sequence, which is why it is its own shape rather than an `ok: true` with zeroes in it.
223
+ */
224
+ | {
225
+ ok: true;
226
+ deliveryAck: ParkedDeliveryAck;
227
+ }
182
228
  /**
183
229
  * `retained` — `041-PARKSTUCK` review H1. Did this daemon actually keep a local copy of the
184
230
  * refused bytes?
@@ -1 +1 @@
1
- {"version":3,"file":"park-recovery.d.ts","sourceRoot":"","sources":["../src/park-recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"park-recovery.d.ts","sourceRoot":"","sources":["../src/park-recovery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { LEAF_KIND_CTRL } from "./session-relay-client.js";
2
2
  import { decodeStructure1 } from "@cello-protocol/protocol-types";
3
- import { decodeParkEnvelope, authenticateParkedEntry } from "./park-envelope.js";
3
+ import { decodeParkEnvelope, authenticateParkedEntry, decodeParkedDeliveryAck } from "./park-envelope.js";
4
4
  import { MAX_REFUSED_PARKED_ENTRIES } from "./session-node-types.js";
5
5
  import { ParkEnvelopeError } from "./park-envelope.js";
6
6
  import { extractErrorMessage } from "./error-message.js";
@@ -219,6 +219,62 @@ export class ParkRecovery {
219
219
  };
220
220
  }
221
221
  }
222
+ /**
223
+ * DOD-M15-DELIVERYACK-1 unit 1 — DEPOSIT OUT-OF-BAND MACHINE TRAFFIC WITH NO LIVE SESSION NODE.
224
+ *
225
+ * `parkContent` resolves the recipient and the relay from the in-memory session entry, which is
226
+ * exactly what does not exist in the case this is for: the counterparty's daemon is down, so there
227
+ * is no live node, and an acknowledgement produced by the mailbox-recovery path had nowhere to go.
228
+ * Measured, not assumed — the live journey showed `content.delivery.ack.skipped
229
+ * / session_node_gone` at precisely this point.
230
+ *
231
+ * So the endpoint is taken from the PERSISTED session row, the same source the crash-backstop
232
+ * flush uses for the same reason. Everything else is `parkContent`'s path unchanged: the payload
233
+ * is sealed to the recipient and the relay holds ciphertext it cannot read.
234
+ *
235
+ * ⚠️ NOT FOR CONTENT. Content parked with no ordering record and no signature over one is a
236
+ * message that is readable and permanently unnotarizable, which is the withholding attack's whole
237
+ * shape — `parkContent`'s own comment says so. Out-of-band traffic takes no leaf and enters no
238
+ * receipt, so it has nothing to be truncated out of.
239
+ */
240
+ async parkOutOfBand(agentName, sessionId, slotHashHex, payload) {
241
+ const hook = this.#contentParkHook;
242
+ if (!hook)
243
+ return { outcome: "unconfigured" };
244
+ const entry = this.#ctx.activeEntry(this.#ctx.sessionKey(agentName, sessionId));
245
+ const record = this.#ctx.getSessionRecord(agentName, sessionId);
246
+ const recipientPubkeyHex = entry?.counterpartyPubkey ?? record?.counterparty_pubkey;
247
+ const relay = entry?.relayPeerId && entry?.relayAddrs
248
+ ? { relayPeerId: entry.relayPeerId, relayAddrs: entry.relayAddrs }
249
+ : this.#ctx.persistedRelayEndpoint(agentName, sessionId);
250
+ /**
251
+ * TWO CAUSES, TWO ANSWERS — review F5. One label for both sent an operator to the relay when the
252
+ * real problem was a session row with no counterparty recorded, which is a local fault and has a
253
+ * completely different remedy.
254
+ */
255
+ if (!recipientPubkeyHex)
256
+ return { outcome: "refused", cause: "no_counterparty_recorded" };
257
+ if (!relay)
258
+ return { outcome: "unconfigured" };
259
+ try {
260
+ const result = await hook({
261
+ agentName,
262
+ sessionId,
263
+ recipientPubkeyHex,
264
+ relayPeerId: relay.relayPeerId,
265
+ relayAddrs: relay.relayAddrs,
266
+ contentHashHex: slotHashHex,
267
+ content: payload,
268
+ contentHashAlg: undefined,
269
+ });
270
+ if (!result.ok)
271
+ return { outcome: "refused", cause: result.cause ?? result.reason };
272
+ return { outcome: "parked" };
273
+ }
274
+ catch (err) {
275
+ return { outcome: "refused", cause: extractErrorMessage(err) };
276
+ }
277
+ }
222
278
  /** DOD-M12B-INDEX-1 — this agent's own K_local pubkey, for attributing its own held content.
223
279
  * Null when it cannot be resolved: an UNATTRIBUTED annex row is true, a falsely attributed one
224
280
  * is not, and this is the record that outlives the session. */
@@ -359,6 +415,33 @@ export class ParkRecovery {
359
415
  });
360
416
  return { ok: false, reason: verdict.reason };
361
417
  }
418
+ /**
419
+ * DOD-M15-DELIVERYACK-1 unit 1 — IS THIS A MESSAGE, OR AN ACKNOWLEDGEMENT OF ONE?
420
+ *
421
+ * Placed HERE and not one line earlier, deliberately: the envelope gate above has just proved
422
+ * the depositor is this session's counterparty, so nothing a stranger or the relay put in the
423
+ * mailbox reaches this branch. Placed here and not LATER, because the next thing that happens to
424
+ * a recovered entry is ingest — and an acknowledgement ingested as a message would be appended
425
+ * to the transcript, take a leaf, and enter the notarized record, which is the one thing machine
426
+ * traffic must never do.
427
+ *
428
+ * The decision does not touch the relay: the tag lives inside the seal, so the relay can neither
429
+ * read it, strip it to make an acknowledgement be ingested as content, nor add one to make a
430
+ * message disappear into the evidence store.
431
+ *
432
+ * The ACCEPTANCE is not done here. This function's caller holds the database handle, and putting
433
+ * the verify-bind-store here would need this module to reach a store it has no business holding;
434
+ * the caller hands the payload to the one function both routes share.
435
+ */
436
+ const parkedAck = decodeParkedDeliveryAck(env.content);
437
+ if (parkedAck) {
438
+ this.#ctx.logger.debug("content.recover.delivery_ack", {
439
+ agentName, sessionId, correlationId,
440
+ contentHash: Buffer.from(parkedAck.contentHash).toString("hex"),
441
+ mailboxSlot: contentHashHex,
442
+ });
443
+ return { ok: true, deliveryAck: parkedAck };
444
+ }
362
445
  // Authenticated. The ordering record (when present) is still verified independently by
363
446
  // #recordFrameOrdering — it answers a different question (WHERE this message sits in the
364
447
  // canonical sequence, per the relay) and is still best-effort: a bad record must not block a
@@ -556,6 +639,22 @@ export class ParkRecovery {
556
639
  guidance: "Nothing to do about this message. The fix named on the original refusal still stands: until the cause clears, every message on this session takes the slower route and lands with less attached to it.",
557
640
  });
558
641
  }
642
+ /**
643
+ * DOD-M15-DELIVERYACK-1 unit 1 — SIGN FOR IT, exactly as the direct path does.
644
+ *
645
+ * ⚠️ NOT ON `held` OR `screenedOut`. The acknowledgement says *this machine took delivery of
646
+ * these bytes*, and neither of those is delivery yet: a held frame is buffered behind an
647
+ * ordering gap and is acknowledged when the release path re-enters ingest, and a screened-out
648
+ * one is leafed but never shown. Acknowledging either would tell the sender something that is
649
+ * not true, on the one signal this whole unit exists to make trustworthy.
650
+ *
651
+ * Fire-and-forget: the acknowledgement's own path handles its own failure (it parks), and a
652
+ * message that WAS recovered must never be reported as a failed recovery because signing for it
653
+ * did not work out.
654
+ */
655
+ if (result.ok && result.held !== true && result.screenedOut !== true) {
656
+ this.#ctx.sendDeliveryAck(agentName, sessionId, contentHash, correlationId);
657
+ }
559
658
  return result;
560
659
  }
561
660
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"park-recovery.js","sourceRoot":"","sources":["../src/park-recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"park-recovery.js","sourceRoot":"","sources":["../src/park-recovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relay-only.d.ts","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,+FAA+F;AAC/F,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAE/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EAC1C,QAAQ,EAAE,OAAO,GAChB,IAAI,GAAG,KAAK,GAAG,SAAS,CAO1B;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA4BnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,EAC/D,QAAQ,EAAE,CAAC,GAAG,IAAI,EAClB,SAAS,EAAE,OAAO,GACjB,CAAC,GAAG,mBAAmB,GAAG,IAAI,CAIhC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAIpG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAGpF"}
1
+ {"version":3,"file":"relay-only.d.ts","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,+FAA+F;AAC/F,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,OAAO,CAE/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EAC1C,QAAQ,EAAE,OAAO,GAChB,IAAI,GAAG,KAAK,GAAG,SAAS,CAO1B;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA+BnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,EAC/D,QAAQ,EAAE,CAAC,GAAG,IAAI,EAClB,SAAS,EAAE,OAAO,GACjB,CAAC,GAAG,mBAAmB,GAAG,IAAI,CAIhC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAIpG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAGpF"}
@@ -119,10 +119,13 @@ export function isCircuitAddr(addr) {
119
119
  // operators' machines where install weight is a user-facing cost. The exact-segment test defeats
120
120
  // the demonstrated bypass with no new dependency.
121
121
  //
122
- // ⚠️ RESIDUAL, stated rather than left implied: this proves the address CLAIMS a circuit hop, not
123
- // that the circuit runs through a relay we chose. A peer could name a relay we hold no reservation
124
- // with. Binding the embedded relay peer id to our own reservations is the stronger check and is
125
- // NOT done here.
122
+ // ⚠️ RESIDUAL, stated rather than left implied, and TRACKED as `DOD-M15-CIRCUIT-RELAY-BIND-1`:
123
+ // this proves the address CLAIMS a circuit hop, not that the circuit runs through a relay we
124
+ // chose. A counterparty can name a relay we hold no reservation with including one they run
125
+ // and `dialableAddrs` will pass it, so the relay they named learns our IP with relay-only on.
126
+ // The stronger check is binding the embedded relay peer id to our own reservations, and it needs
127
+ // the reservation set here, which this module does not have. Do not narrow the bound by editing
128
+ // this sentence; close it at the call site that holds the reservations.
126
129
  return addr.split("/").includes("p2p-circuit");
127
130
  }
128
131
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"relay-only.js","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,UAA0C;IACpE,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,UAA0C,EAC1C,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAQD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,4FAA4F;IAC5F,8FAA8F;IAC9F,kGAAkG;IAClG,EAAE;IACF,oEAAoE;IACpE,EAAE;IACF,6FAA6F;IAC7F,mGAAmG;IACnG,gGAAgG;IAChG,kBAAkB;IAClB,EAAE;IACF,0FAA0F;IAC1F,8FAA8F;IAC9F,mGAAmG;IACnG,sBAAsB;IACtB,EAAE;IACF,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,iGAAiG;IACjG,kDAAkD;IAClD,EAAE;IACF,kGAAkG;IAClG,mGAAmG;IACnG,gGAAgG;IAChG,iBAAiB;IACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAkB,EAClB,SAAkB;IAElB,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAoC,EAAE,SAAkB;IACzF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwB,EAAE,SAAkB;IACxE,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"relay-only.js","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAGH,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,UAA0C;IACpE,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,UAA0C,EAC1C,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAQD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,4FAA4F;IAC5F,8FAA8F;IAC9F,kGAAkG;IAClG,EAAE;IACF,oEAAoE;IACpE,EAAE;IACF,6FAA6F;IAC7F,mGAAmG;IACnG,gGAAgG;IAChG,kBAAkB;IAClB,EAAE;IACF,0FAA0F;IAC1F,8FAA8F;IAC9F,mGAAmG;IACnG,sBAAsB;IACtB,EAAE;IACF,gGAAgG;IAChG,kGAAkG;IAClG,4FAA4F;IAC5F,iGAAiG;IACjG,kDAAkD;IAClD,EAAE;IACF,+FAA+F;IAC/F,6FAA6F;IAC7F,gGAAgG;IAChG,8FAA8F;IAC9F,iGAAiG;IACjG,gGAAgG;IAChG,wEAAwE;IACxE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAkB,EAClB,SAAkB;IAElB,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAoC,EAAE,SAAkB;IACzF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,KAAwB,EAAE,SAAkB;IACxE,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC"}
@@ -16,6 +16,14 @@ export interface RelayReceipt {
16
16
  sequenceNumber: number;
17
17
  /** Unix ms timestamp embedded in the ACK TBS. */
18
18
  timestamp: number;
19
+ /**
20
+ * 069-ORDERPROOF — hex of the 32-byte running root of this session's tree AFTER this leaf was
21
+ * appended, as the relay signed it. The position alone says where a leaf sits in a COUNTER; the
22
+ * root says where it sits in a CHAIN, which is what lets a party prove a prefix once the relay is
23
+ * gone. Optional on the TYPE only so rows written before this order still read; every row this
24
+ * build writes has one.
25
+ */
26
+ runningRootHex?: string;
19
27
  /** Hex of the 64-byte Ed25519 signature over the ACK TBS. */
20
28
  signatureHex: string;
21
29
  /** The relay's committed Structure2 (CBOR) for this leaf (DOD-MSG-4 hash_submit_ack). */
@@ -36,37 +44,87 @@ export interface SealLeaf extends RelayReceipt {
36
44
  leafKind: number;
37
45
  }
38
46
  /**
39
- * Verify a relay ACK signature against the (relayId-derived) relay pubkey. Returns true iff the signature
40
- * is exactly 64 bytes and Ed25519-verifies over TBS = SHA-256(hash_bytes || seq_BE4 || ts_BE8) — the same
41
- * TBS the relay signs (`buildRelayAckTbs`). A forged sequence number changes the TBS, so its signature fails.
47
+ * Verify a relay ordering attestation against a relay pubkey the CALLER supplies — and the caller
48
+ * must have got it from the directory-signed assignment, never from the frame.
49
+ *
50
+ * Returns true iff every field is well-formed and the 64-byte Ed25519 signature verifies over
51
+ * TBS = SHA-256(DOMAIN ‖ session_id ‖ content_hash ‖ seq_BE4 ‖ running_root ‖ ts_BE8) — the same
52
+ * statement the relay signs. A forged sequence, a swapped session or a rewritten prefix all change
53
+ * the TBS, so each fails.
54
+ *
55
+ * A wrong-length field returns FALSE rather than throwing: these bytes come off a wire the relay
56
+ * controls, and a malformed length must refuse this attestation, not take down the frame handler.
42
57
  */
43
- export declare function verifyRelayAck(contentHash: Uint8Array, sequenceNumber: number, timestamp: number, signature: Uint8Array, relayPubkey: Uint8Array): boolean;
58
+ export declare function verifyRelayAck(sessionId: Uint8Array, contentHash: Uint8Array, sequenceNumber: number, runningRoot: Uint8Array, timestamp: number, signature: Uint8Array, relayPubkey: Uint8Array): boolean;
59
+ /** Why an attestation was refused. For the LOG — the protocol outcome is identical for all of them. */
60
+ export type AckRefusalCause =
61
+ /** This session has no directory-named relay key recorded, so nothing can anchor the check. */
62
+ "no_anchor"
63
+ /** The frame named a relay other than the one the directory assigned to this session. */
64
+ | "relay_not_assigned"
65
+ /** `relay_id` was present but is not a 64-hex Ed25519 pubkey. */
66
+ | "bad_relay_id"
67
+ /** No signature, no timestamp, or no running root — the relay attested nothing. */
68
+ | "attestation_absent"
69
+ /** The signature does not bind (session, hash, sequence, root, timestamp) under the assigned key. */
70
+ | "signature_invalid";
44
71
  /** The decision for one `hash_submit_ack` — pure + directly unit-testable (the verify-gates-store wiring). */
45
72
  export type AckEvaluation = {
46
73
  kind: "store";
47
74
  receipt: RelayReceipt;
48
75
  }
49
- /** The ACK carried no relay_id/signature/timestamp (a keyless/legacy relay) — nothing to attest. */
50
- | {
51
- kind: "unsigned";
52
- }
53
- /** relay_id is not a 64-hex Ed25519 pubkey. */
54
- | {
55
- kind: "bad_relay_id";
56
- }
57
- /** The signature does NOT bind (content_hash, sequence, timestamp) — a forged/corrupt ACK. REJECT. */
76
+ /**
77
+ * REFUSED. One outcome for missing, malformed and mismatched — the caller must treat all three
78
+ * identically, and `cause` exists so the LOG can still name which one it was. A caller that
79
+ * branches on `cause` to soften any of them reintroduces exactly the hole this closes.
80
+ */
58
81
  | {
59
- kind: "invalid_signature";
82
+ kind: "refused";
83
+ cause: AckRefusalCause;
84
+ };
85
+ /**
86
+ * Read back the leaf we just submitted, so the relay's attestation has something to be checked
87
+ * against — the step BEFORE `evaluateRelayAck`, and the one that decides whether the check can run
88
+ * at all.
89
+ *
90
+ * ⚠️ "COULD NOT RUN THE CHECK" IS NOT "THE CHECK PASSED" — 069-ORDERPROOF.
91
+ *
92
+ * Both failures here used to be waved through by the caller, which settled the send `ok` having
93
+ * verified nothing: the absent-versus-verified collapse this unit exists to remove, reproduced at
94
+ * the one point where nothing was left to verify with. These are our OWN just-signed bytes, so a
95
+ * hostile relay cannot steer into either — unreachable in practice, which is a different claim from
96
+ * safe to wave through, and the distinction is the one that decays under later edits.
97
+ *
98
+ * `"none"` is the honest third answer: no submit was made, so no attestation is owed and none is
99
+ * missing. It is the only one of the three that does not reject.
100
+ */
101
+ export declare function readSubmittedLeaf(structure1Cbor: Uint8Array | undefined, seq: number): {
102
+ kind: "none";
103
+ } | {
104
+ kind: "unreadable";
105
+ event: string;
106
+ reason?: string;
107
+ } | {
108
+ kind: "ok";
109
+ contentHash: Uint8Array;
110
+ sessionId: Uint8Array;
60
111
  };
61
112
  /**
62
- * Evaluate a relay ACK: decide whether it yields a storable, signature-verified receipt. This is the
63
- * verify-gates-store decision in isolation (so it is unit-testable without the relay stream) — a forged
64
- * signature returns `invalid_signature` and MUST NOT be stored (DoD: "a forged sequence is rejected").
113
+ * Evaluate a relay ordering attestation: decide whether it yields a storable, signature-verified
114
+ * receipt. This is the verify-gates-store decision in isolation, so it is unit-testable without the
115
+ * relay stream.
116
+ *
117
+ * `expectedRelayPubkeyHex` is the anchor and it is REQUIRED in substance: `undefined` refuses. It
118
+ * must come from `relay_id` on an assignment whose FROST signature has been verified.
65
119
  */
66
120
  export declare function evaluateRelayAck(params: {
121
+ sessionId: Uint8Array;
67
122
  contentHash: Uint8Array;
123
+ runningRoot: Uint8Array | undefined;
68
124
  sessionIdHex: string;
69
125
  agentPubkeyHex: string;
126
+ /** The relay the DIRECTORY assigned to this session, hex. Absent ⇒ nothing to anchor to ⇒ refuse. */
127
+ expectedRelayPubkeyHex: string | undefined;
70
128
  relayId: string | undefined;
71
129
  relaySignature: Uint8Array | undefined;
72
130
  timestamp: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"relay-receipt-store.d.ts","sourceRoot":"","sources":["../src/relay-receipt-store.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,qGAAqG;IACrG,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC;IAChB,6GAA6G;IAC7G,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IAMrB,yFAAyF;IACzF,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,yDAAyD;IACzD,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,UAAU,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,UAAU,EACvB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,UAAU,GACtB,OAAO,CAIT;AAED,8GAA8G;AAC9G,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE;AAC1C,oGAAoG;GAClG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE;AACtB,+CAA+C;GAC7C;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE;AAC1B,sGAAsG;GACpG;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,cAAc,EAAE,UAAU,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,aAAa,CAqBhB;AAqBD,qBAAa,iBAAiB;;gBAIhB,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM;IA6B9C;;;;;OAKG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAsCzD,8FAA8F;IAC9F,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAUnG,wGAAwG;IACxG,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAiBrE;;;;;OAKG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,EAAE;CA6BxE"}
1
+ {"version":3,"file":"relay-receipt-store.d.ts","sourceRoot":"","sources":["../src/relay-receipt-store.ts"],"names":[],"mappings":"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"}