@cello-protocol/daemon 0.0.227 → 0.0.228

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 (895) hide show
  1. package/dist/agent-admin-handlers.d.ts +56 -0
  2. package/dist/agent-admin-handlers.d.ts.map +1 -0
  3. package/dist/agent-admin-handlers.js +73 -0
  4. package/dist/agent-admin-handlers.js.map +1 -0
  5. package/dist/agent-handlers.d.ts +72 -0
  6. package/dist/agent-handlers.d.ts.map +1 -0
  7. package/dist/agent-handlers.js +604 -0
  8. package/dist/agent-handlers.js.map +1 -0
  9. package/dist/agent-id-migration.d.ts +70 -0
  10. package/dist/agent-id-migration.d.ts.map +1 -0
  11. package/dist/agent-id-migration.js +468 -0
  12. package/dist/agent-id-migration.js.map +1 -0
  13. package/dist/agent-loader.d.ts +37 -0
  14. package/dist/agent-loader.d.ts.map +1 -0
  15. package/dist/agent-loader.js +37 -0
  16. package/dist/agent-loader.js.map +1 -0
  17. package/dist/agent-selection-root.d.ts +29 -0
  18. package/dist/agent-selection-root.d.ts.map +1 -0
  19. package/dist/agent-selection-root.js +126 -0
  20. package/dist/agent-selection-root.js.map +1 -0
  21. package/dist/agent-selection.d.ts +73 -0
  22. package/dist/agent-selection.d.ts.map +1 -0
  23. package/dist/agent-selection.js +80 -0
  24. package/dist/agent-selection.js.map +1 -0
  25. package/dist/agent-settings-keys.d.ts +52 -0
  26. package/dist/agent-settings-keys.d.ts.map +1 -0
  27. package/dist/agent-settings-keys.js +114 -0
  28. package/dist/agent-settings-keys.js.map +1 -0
  29. package/dist/agent-state.d.ts +67 -0
  30. package/dist/agent-state.d.ts.map +1 -0
  31. package/dist/agent-state.js +66 -0
  32. package/dist/agent-state.js.map +1 -0
  33. package/dist/assignment-verify.d.ts +90 -0
  34. package/dist/assignment-verify.d.ts.map +1 -0
  35. package/dist/assignment-verify.js +301 -0
  36. package/dist/assignment-verify.js.map +1 -0
  37. package/dist/attendance-wiring.d.ts +23 -0
  38. package/dist/attendance-wiring.d.ts.map +1 -0
  39. package/dist/attendance-wiring.js +248 -0
  40. package/dist/attendance-wiring.js.map +1 -0
  41. package/dist/attestation-body.d.ts +47 -0
  42. package/dist/attestation-body.d.ts.map +1 -0
  43. package/dist/attestation-body.js +71 -0
  44. package/dist/attestation-body.js.map +1 -0
  45. package/dist/authorship-verification.d.ts +91 -0
  46. package/dist/authorship-verification.d.ts.map +1 -0
  47. package/dist/authorship-verification.js +532 -0
  48. package/dist/authorship-verification.js.map +1 -0
  49. package/dist/away-detection.d.ts +139 -0
  50. package/dist/away-detection.d.ts.map +1 -0
  51. package/dist/away-detection.js +186 -0
  52. package/dist/away-detection.js.map +1 -0
  53. package/dist/away-inbox-oneshot.d.ts +40 -0
  54. package/dist/away-inbox-oneshot.d.ts.map +1 -0
  55. package/dist/away-inbox-oneshot.js +311 -0
  56. package/dist/away-inbox-oneshot.js.map +1 -0
  57. package/dist/backup-restore-handlers.d.ts +10 -0
  58. package/dist/backup-restore-handlers.d.ts.map +1 -0
  59. package/dist/backup-restore-handlers.js +82 -0
  60. package/dist/backup-restore-handlers.js.map +1 -0
  61. package/dist/backup-restore.d.ts +102 -0
  62. package/dist/backup-restore.d.ts.map +1 -0
  63. package/dist/backup-restore.js +341 -0
  64. package/dist/backup-restore.js.map +1 -0
  65. package/dist/bin/cello-daemon.d.ts +13 -0
  66. package/dist/bin/cello-daemon.d.ts.map +1 -0
  67. package/dist/bin/cello-daemon.js.map +1 -0
  68. package/dist/boot-agents.d.ts +64 -0
  69. package/dist/boot-agents.d.ts.map +1 -0
  70. package/dist/boot-agents.js +241 -0
  71. package/dist/boot-agents.js.map +1 -0
  72. package/dist/boot-connection-state.d.ts +38 -0
  73. package/dist/boot-connection-state.d.ts.map +1 -0
  74. package/dist/boot-connection-state.js +95 -0
  75. package/dist/boot-connection-state.js.map +1 -0
  76. package/dist/boot-core.d.ts +36 -0
  77. package/dist/boot-core.d.ts.map +1 -0
  78. package/dist/boot-core.js +293 -0
  79. package/dist/boot-core.js.map +1 -0
  80. package/dist/boot-parked-content.d.ts +34 -0
  81. package/dist/boot-parked-content.d.ts.map +1 -0
  82. package/dist/boot-parked-content.js +528 -0
  83. package/dist/boot-parked-content.js.map +1 -0
  84. package/dist/boot-sweeps.d.ts +22 -0
  85. package/dist/boot-sweeps.d.ts.map +1 -0
  86. package/dist/boot-sweeps.js +51 -0
  87. package/dist/boot-sweeps.js.map +1 -0
  88. package/dist/bundled-consortium-manifest.d.ts +47 -0
  89. package/dist/bundled-consortium-manifest.d.ts.map +1 -0
  90. package/dist/bundled-consortium-manifest.js +116 -0
  91. package/dist/bundled-consortium-manifest.js.map +1 -0
  92. package/dist/cbor-blob-migration.d.ts +8 -0
  93. package/dist/cbor-blob-migration.d.ts.map +1 -0
  94. package/dist/cbor-blob-migration.js +116 -0
  95. package/dist/cbor-blob-migration.js.map +1 -0
  96. package/dist/challenge-verifier.d.ts +12 -0
  97. package/dist/challenge-verifier.d.ts.map +1 -0
  98. package/dist/challenge-verifier.js +11 -0
  99. package/dist/challenge-verifier.js.map +1 -0
  100. package/dist/channel-log-store.d.ts +80 -0
  101. package/dist/channel-log-store.d.ts.map +1 -0
  102. package/dist/channel-log-store.js +290 -0
  103. package/dist/channel-log-store.js.map +1 -0
  104. package/dist/close-commitment.d.ts +67 -0
  105. package/dist/close-commitment.d.ts.map +1 -0
  106. package/dist/close-commitment.js +78 -0
  107. package/dist/close-commitment.js.map +1 -0
  108. package/dist/close-session-handler.d.ts +94 -0
  109. package/dist/close-session-handler.d.ts.map +1 -0
  110. package/dist/close-session-handler.js +1418 -0
  111. package/dist/close-session-handler.js.map +1 -0
  112. package/dist/co-attendance.d.ts +29 -0
  113. package/dist/co-attendance.d.ts.map +1 -0
  114. package/dist/co-attendance.js +32 -0
  115. package/dist/co-attendance.js.map +1 -0
  116. package/dist/column-birth.d.ts +40 -0
  117. package/dist/column-birth.d.ts.map +1 -0
  118. package/dist/column-birth.js +61 -0
  119. package/dist/column-birth.js.map +1 -0
  120. package/dist/connect-or-start.d.ts +25 -0
  121. package/dist/connect-or-start.d.ts.map +1 -0
  122. package/dist/connect-or-start.js +175 -0
  123. package/dist/connect-or-start.js.map +1 -0
  124. package/dist/connection-agents.d.ts +16 -0
  125. package/dist/connection-agents.d.ts.map +1 -0
  126. package/dist/connection-agents.js +68 -0
  127. package/dist/connection-agents.js.map +1 -0
  128. package/dist/consent-migration.d.ts +49 -0
  129. package/dist/consent-migration.d.ts.map +1 -0
  130. package/dist/consent-migration.js +128 -0
  131. package/dist/consent-migration.js.map +1 -0
  132. package/dist/consortium-bootstrap.d.ts +138 -0
  133. package/dist/consortium-bootstrap.d.ts.map +1 -0
  134. package/dist/consortium-bootstrap.js +339 -0
  135. package/dist/consortium-bootstrap.js.map +1 -0
  136. package/dist/consortium-fingerprint.d.ts +115 -0
  137. package/dist/consortium-fingerprint.d.ts.map +1 -0
  138. package/dist/consortium-fingerprint.js +175 -0
  139. package/dist/consortium-fingerprint.js.map +1 -0
  140. package/dist/contact-handlers.d.ts +59 -0
  141. package/dist/contact-handlers.d.ts.map +1 -0
  142. package/dist/contact-handlers.js +343 -0
  143. package/dist/contact-handlers.js.map +1 -0
  144. package/dist/contact-pubkey-case.d.ts +65 -0
  145. package/dist/contact-pubkey-case.d.ts.map +1 -0
  146. package/dist/contact-pubkey-case.js +136 -0
  147. package/dist/contact-pubkey-case.js.map +1 -0
  148. package/dist/contacts-tier-migration.d.ts +90 -0
  149. package/dist/contacts-tier-migration.d.ts.map +1 -0
  150. package/dist/contacts-tier-migration.js +150 -0
  151. package/dist/contacts-tier-migration.js.map +1 -0
  152. package/dist/content-encryption-status.d.ts +111 -0
  153. package/dist/content-encryption-status.d.ts.map +1 -0
  154. package/dist/content-encryption-status.js +158 -0
  155. package/dist/content-encryption-status.js.map +1 -0
  156. package/dist/content-park-client.d.ts +90 -0
  157. package/dist/content-park-client.d.ts.map +1 -0
  158. package/dist/content-park-client.js +362 -0
  159. package/dist/content-park-client.js.map +1 -0
  160. package/dist/content-park.d.ts +52 -0
  161. package/dist/content-park.d.ts.map +1 -0
  162. package/dist/content-park.js +1309 -0
  163. package/dist/content-park.js.map +1 -0
  164. package/dist/cross-node-negotiation.d.ts +44 -0
  165. package/dist/cross-node-negotiation.d.ts.map +1 -0
  166. package/dist/cross-node-negotiation.js +34 -0
  167. package/dist/cross-node-negotiation.js.map +1 -0
  168. package/dist/daemon-handle.d.ts +57 -0
  169. package/dist/daemon-handle.d.ts.map +1 -0
  170. package/dist/daemon-handle.js +2 -0
  171. package/dist/daemon-handle.js.map +1 -0
  172. package/dist/daemon-status-report.d.ts +50 -0
  173. package/dist/daemon-status-report.d.ts.map +1 -0
  174. package/dist/daemon-status-report.js +81 -0
  175. package/dist/daemon-status-report.js.map +1 -0
  176. package/dist/daemon.d.ts +45 -0
  177. package/dist/daemon.d.ts.map +1 -0
  178. package/dist/daemon.js +1177 -0
  179. package/dist/daemon.js.map +1 -0
  180. package/dist/db-identity-store.d.ts +159 -0
  181. package/dist/db-identity-store.d.ts.map +1 -0
  182. package/dist/db-identity-store.js +502 -0
  183. package/dist/db-identity-store.js.map +1 -0
  184. package/dist/delivery-open-registry.d.ts +92 -0
  185. package/dist/delivery-open-registry.d.ts.map +1 -0
  186. package/dist/delivery-open-registry.js +121 -0
  187. package/dist/delivery-open-registry.js.map +1 -0
  188. package/dist/delivery-session-suspects.d.ts +56 -0
  189. package/dist/delivery-session-suspects.d.ts.map +1 -0
  190. package/dist/delivery-session-suspects.js +94 -0
  191. package/dist/delivery-session-suspects.js.map +1 -0
  192. package/dist/directory-auth-posture.d.ts +87 -0
  193. package/dist/directory-auth-posture.d.ts.map +1 -0
  194. package/dist/directory-auth-posture.js +134 -0
  195. package/dist/directory-auth-posture.js.map +1 -0
  196. package/dist/directory-bootstrap.d.ts +310 -0
  197. package/dist/directory-bootstrap.d.ts.map +1 -0
  198. package/dist/directory-bootstrap.js +557 -0
  199. package/dist/directory-bootstrap.js.map +1 -0
  200. package/dist/directory-connect.d.ts +27 -0
  201. package/dist/directory-connect.d.ts.map +1 -0
  202. package/dist/directory-connect.js +106 -0
  203. package/dist/directory-connect.js.map +1 -0
  204. package/dist/disconnect-cleanup.d.ts +51 -0
  205. package/dist/disconnect-cleanup.d.ts.map +1 -0
  206. package/dist/disconnect-cleanup.js +72 -0
  207. package/dist/disconnect-cleanup.js.map +1 -0
  208. package/dist/document-amendment-store.d.ts +120 -0
  209. package/dist/document-amendment-store.d.ts.map +1 -0
  210. package/dist/document-amendment-store.js +266 -0
  211. package/dist/document-amendment-store.js.map +1 -0
  212. package/dist/document-delivery-transport.d.ts +168 -0
  213. package/dist/document-delivery-transport.d.ts.map +1 -0
  214. package/dist/document-delivery-transport.js +206 -0
  215. package/dist/document-delivery-transport.js.map +1 -0
  216. package/dist/document-engine.d.ts +134 -0
  217. package/dist/document-engine.d.ts.map +1 -0
  218. package/dist/document-engine.js +282 -0
  219. package/dist/document-engine.js.map +1 -0
  220. package/dist/document-flag.d.ts +58 -0
  221. package/dist/document-flag.d.ts.map +1 -0
  222. package/dist/document-flag.js +70 -0
  223. package/dist/document-flag.js.map +1 -0
  224. package/dist/document-frame-router.d.ts +245 -0
  225. package/dist/document-frame-router.d.ts.map +1 -0
  226. package/dist/document-frame-router.js +397 -0
  227. package/dist/document-frame-router.js.map +1 -0
  228. package/dist/document-gate-wiring.d.ts +61 -0
  229. package/dist/document-gate-wiring.d.ts.map +1 -0
  230. package/dist/document-gate-wiring.js +125 -0
  231. package/dist/document-gate-wiring.js.map +1 -0
  232. package/dist/document-gate.d.ts +149 -0
  233. package/dist/document-gate.d.ts.map +1 -0
  234. package/dist/document-gate.js +509 -0
  235. package/dist/document-gate.js.map +1 -0
  236. package/dist/document-handlers.d.ts +47 -0
  237. package/dist/document-handlers.d.ts.map +1 -0
  238. package/dist/document-handlers.js +2203 -0
  239. package/dist/document-handlers.js.map +1 -0
  240. package/dist/document-handshake.d.ts +176 -0
  241. package/dist/document-handshake.d.ts.map +1 -0
  242. package/dist/document-handshake.js +452 -0
  243. package/dist/document-handshake.js.map +1 -0
  244. package/dist/document-inbound.d.ts +162 -0
  245. package/dist/document-inbound.d.ts.map +1 -0
  246. package/dist/document-inbound.js +530 -0
  247. package/dist/document-inbound.js.map +1 -0
  248. package/dist/document-json.d.ts +120 -0
  249. package/dist/document-json.d.ts.map +1 -0
  250. package/dist/document-json.js +191 -0
  251. package/dist/document-json.js.map +1 -0
  252. package/dist/document-layer.d.ts +215 -0
  253. package/dist/document-layer.d.ts.map +1 -0
  254. package/dist/document-layer.js +1025 -0
  255. package/dist/document-layer.js.map +1 -0
  256. package/dist/document-lifecycle.d.ts +52 -0
  257. package/dist/document-lifecycle.d.ts.map +1 -0
  258. package/dist/document-lifecycle.js +134 -0
  259. package/dist/document-lifecycle.js.map +1 -0
  260. package/dist/document-live-docs.d.ts +58 -0
  261. package/dist/document-live-docs.d.ts.map +1 -0
  262. package/dist/document-live-docs.js +126 -0
  263. package/dist/document-live-docs.js.map +1 -0
  264. package/dist/document-notify.d.ts +228 -0
  265. package/dist/document-notify.d.ts.map +1 -0
  266. package/dist/document-notify.js +580 -0
  267. package/dist/document-notify.js.map +1 -0
  268. package/dist/document-profile.d.ts +61 -0
  269. package/dist/document-profile.d.ts.map +1 -0
  270. package/dist/document-profile.js +112 -0
  271. package/dist/document-profile.js.map +1 -0
  272. package/dist/document-publish.d.ts +87 -0
  273. package/dist/document-publish.d.ts.map +1 -0
  274. package/dist/document-publish.js +173 -0
  275. package/dist/document-publish.js.map +1 -0
  276. package/dist/document-reachability.d.ts +42 -0
  277. package/dist/document-reachability.d.ts.map +1 -0
  278. package/dist/document-reachability.js +80 -0
  279. package/dist/document-reachability.js.map +1 -0
  280. package/dist/document-reconcile-engine.d.ts +66 -0
  281. package/dist/document-reconcile-engine.d.ts.map +1 -0
  282. package/dist/document-reconcile-engine.js +225 -0
  283. package/dist/document-reconcile-engine.js.map +1 -0
  284. package/dist/document-reconcile-scheduler.d.ts +163 -0
  285. package/dist/document-reconcile-scheduler.d.ts.map +1 -0
  286. package/dist/document-reconcile-scheduler.js +303 -0
  287. package/dist/document-reconcile-scheduler.js.map +1 -0
  288. package/dist/document-rejection.d.ts +251 -0
  289. package/dist/document-rejection.d.ts.map +1 -0
  290. package/dist/document-rejection.js +435 -0
  291. package/dist/document-rejection.js.map +1 -0
  292. package/dist/document-screen.d.ts +114 -0
  293. package/dist/document-screen.d.ts.map +1 -0
  294. package/dist/document-screen.js +223 -0
  295. package/dist/document-screen.js.map +1 -0
  296. package/dist/document-store.d.ts +372 -0
  297. package/dist/document-store.d.ts.map +1 -0
  298. package/dist/document-store.js +931 -0
  299. package/dist/document-store.js.map +1 -0
  300. package/dist/document-surface.d.ts +32 -0
  301. package/dist/document-surface.d.ts.map +1 -0
  302. package/dist/document-surface.js +151 -0
  303. package/dist/document-surface.js.map +1 -0
  304. package/dist/document-types.d.ts +94 -0
  305. package/dist/document-types.d.ts.map +1 -0
  306. package/dist/document-types.js +90 -0
  307. package/dist/document-types.js.map +1 -0
  308. package/dist/document-watch.d.ts +69 -0
  309. package/dist/document-watch.d.ts.map +1 -0
  310. package/dist/document-watch.js +108 -0
  311. package/dist/document-watch.js.map +1 -0
  312. package/dist/document-wiring.d.ts +53 -0
  313. package/dist/document-wiring.d.ts.map +1 -0
  314. package/dist/document-wiring.js +323 -0
  315. package/dist/document-wiring.js.map +1 -0
  316. package/dist/document-write-guard.d.ts +66 -0
  317. package/dist/document-write-guard.d.ts.map +1 -0
  318. package/dist/document-write-guard.js +98 -0
  319. package/dist/document-write-guard.js.map +1 -0
  320. package/dist/document-write-path.d.ts +94 -0
  321. package/dist/document-write-path.d.ts.map +1 -0
  322. package/dist/document-write-path.js +530 -0
  323. package/dist/document-write-path.js.map +1 -0
  324. package/dist/error-message.d.ts +7 -0
  325. package/dist/error-message.d.ts.map +1 -0
  326. package/dist/error-message.js +19 -0
  327. package/dist/error-message.js.map +1 -0
  328. package/dist/file-manifest-provider.d.ts +37 -0
  329. package/dist/file-manifest-provider.d.ts.map +1 -0
  330. package/dist/file-manifest-provider.js +105 -0
  331. package/dist/file-manifest-provider.js.map +1 -0
  332. package/dist/frame-values.d.ts +3 -0
  333. package/dist/frame-values.d.ts.map +1 -0
  334. package/dist/frame-values.js +84 -0
  335. package/dist/frame-values.js.map +1 -0
  336. package/dist/frontier-mismatch.d.ts +73 -0
  337. package/dist/frontier-mismatch.d.ts.map +1 -0
  338. package/dist/frontier-mismatch.js +89 -0
  339. package/dist/frontier-mismatch.js.map +1 -0
  340. package/dist/gateway-config-handlers.d.ts +26 -0
  341. package/dist/gateway-config-handlers.d.ts.map +1 -0
  342. package/dist/gateway-config-handlers.js +429 -0
  343. package/dist/gateway-config-handlers.js.map +1 -0
  344. package/dist/held-content.d.ts +145 -0
  345. package/dist/held-content.d.ts.map +1 -0
  346. package/dist/held-content.js +389 -0
  347. package/dist/held-content.js.map +1 -0
  348. package/dist/http-manifest-poll.d.ts +67 -0
  349. package/dist/http-manifest-poll.d.ts.map +1 -0
  350. package/dist/http-manifest-poll.js +150 -0
  351. package/dist/http-manifest-poll.js.map +1 -0
  352. package/dist/identity-migration.d.ts +40 -0
  353. package/dist/identity-migration.d.ts.map +1 -0
  354. package/dist/identity-migration.js +461 -0
  355. package/dist/identity-migration.js.map +1 -0
  356. package/dist/inbound-refusals.d.ts +283 -0
  357. package/dist/inbound-refusals.d.ts.map +1 -0
  358. package/dist/inbound-refusals.js +919 -0
  359. package/dist/inbound-refusals.js.map +1 -0
  360. package/dist/inbound-seal-request.d.ts +32 -0
  361. package/dist/inbound-seal-request.d.ts.map +1 -0
  362. package/dist/inbound-seal-request.js +228 -0
  363. package/dist/inbound-seal-request.js.map +1 -0
  364. package/dist/inbound-sessions.d.ts +291 -0
  365. package/dist/inbound-sessions.d.ts.map +1 -0
  366. package/dist/inbound-sessions.js +1609 -0
  367. package/dist/inbound-sessions.js.map +1 -0
  368. package/dist/inclusion-proof-handlers.d.ts +43 -0
  369. package/dist/inclusion-proof-handlers.d.ts.map +1 -0
  370. package/dist/inclusion-proof-handlers.js +565 -0
  371. package/dist/inclusion-proof-handlers.js.map +1 -0
  372. package/dist/inclusion-proof.d.ts +151 -0
  373. package/dist/inclusion-proof.d.ts.map +1 -0
  374. package/dist/inclusion-proof.js +228 -0
  375. package/dist/inclusion-proof.js.map +1 -0
  376. package/dist/index.d.ts +32 -0
  377. package/dist/index.d.ts.map +1 -0
  378. package/dist/index.js.map +1 -0
  379. package/dist/initiate-session-handler.d.ts +55 -0
  380. package/dist/initiate-session-handler.d.ts.map +1 -0
  381. package/dist/initiate-session-handler.js +310 -0
  382. package/dist/initiate-session-handler.js.map +1 -0
  383. package/dist/ipc-client.d.ts +31 -0
  384. package/dist/ipc-client.d.ts.map +1 -0
  385. package/dist/ipc-client.js +113 -0
  386. package/dist/ipc-client.js.map +1 -0
  387. package/dist/ipc-server.d.ts +63 -0
  388. package/dist/ipc-server.d.ts.map +1 -0
  389. package/dist/ipc-server.js +429 -0
  390. package/dist/ipc-server.js.map +1 -0
  391. package/dist/ipc-surface.d.ts +44 -0
  392. package/dist/ipc-surface.d.ts.map +1 -0
  393. package/dist/ipc-surface.js +107 -0
  394. package/dist/ipc-surface.js.map +1 -0
  395. package/dist/line-lcs.d.ts +51 -0
  396. package/dist/line-lcs.d.ts.map +1 -0
  397. package/dist/line-lcs.js +71 -0
  398. package/dist/line-lcs.js.map +1 -0
  399. package/dist/lock-file.d.ts +39 -0
  400. package/dist/lock-file.d.ts.map +1 -0
  401. package/dist/lock-file.js +120 -0
  402. package/dist/lock-file.js.map +1 -0
  403. package/dist/log-collapse.d.ts +66 -0
  404. package/dist/log-collapse.d.ts.map +1 -0
  405. package/dist/log-collapse.js +244 -0
  406. package/dist/log-collapse.js.map +1 -0
  407. package/dist/log-rotate.d.ts +67 -0
  408. package/dist/log-rotate.d.ts.map +1 -0
  409. package/dist/log-rotate.js +134 -0
  410. package/dist/log-rotate.js.map +1 -0
  411. package/dist/manifest-deps.d.ts +25 -0
  412. package/dist/manifest-deps.d.ts.map +1 -0
  413. package/dist/manifest-deps.js +151 -0
  414. package/dist/manifest-deps.js.map +1 -0
  415. package/dist/manifest-poll-scheduler.d.ts +31 -0
  416. package/dist/manifest-poll-scheduler.d.ts.map +1 -0
  417. package/dist/manifest-poll-scheduler.js +59 -0
  418. package/dist/manifest-poll-scheduler.js.map +1 -0
  419. package/dist/manifest-validity.d.ts +153 -0
  420. package/dist/manifest-validity.d.ts.map +1 -0
  421. package/dist/manifest-validity.js +268 -0
  422. package/dist/manifest-validity.js.map +1 -0
  423. package/dist/manifest-version-store-db.d.ts +24 -0
  424. package/dist/manifest-version-store-db.d.ts.map +1 -0
  425. package/dist/manifest-version-store-db.js +58 -0
  426. package/dist/manifest-version-store-db.js.map +1 -0
  427. package/dist/manifest-version-store.d.ts +16 -0
  428. package/dist/manifest-version-store.d.ts.map +1 -0
  429. package/dist/manifest-version-store.js +15 -0
  430. package/dist/manifest-version-store.js.map +1 -0
  431. package/dist/network-directory-node.d.ts +136 -0
  432. package/dist/network-directory-node.d.ts.map +1 -0
  433. package/dist/network-directory-node.js +810 -0
  434. package/dist/network-directory-node.js.map +1 -0
  435. package/dist/nonce-dedup.d.ts +68 -0
  436. package/dist/nonce-dedup.d.ts.map +1 -0
  437. package/dist/nonce-dedup.js +205 -0
  438. package/dist/nonce-dedup.js.map +1 -0
  439. package/dist/notification-dispatcher.d.ts +92 -0
  440. package/dist/notification-dispatcher.d.ts.map +1 -0
  441. package/dist/notification-dispatcher.js +210 -0
  442. package/dist/notification-dispatcher.js.map +1 -0
  443. package/dist/notification-handlers.d.ts +53 -0
  444. package/dist/notification-handlers.d.ts.map +1 -0
  445. package/dist/notification-handlers.js +461 -0
  446. package/dist/notification-handlers.js.map +1 -0
  447. package/dist/onboarding-guidance.d.ts +79 -0
  448. package/dist/onboarding-guidance.d.ts.map +1 -0
  449. package/dist/onboarding-guidance.js +95 -0
  450. package/dist/onboarding-guidance.js.map +1 -0
  451. package/dist/operator-guidance.d.ts +25 -0
  452. package/dist/operator-guidance.d.ts.map +1 -0
  453. package/dist/operator-guidance.js +50 -0
  454. package/dist/operator-guidance.js.map +1 -0
  455. package/dist/orphan-triage.d.ts +130 -0
  456. package/dist/orphan-triage.d.ts.map +1 -0
  457. package/dist/orphan-triage.js +207 -0
  458. package/dist/orphan-triage.js.map +1 -0
  459. package/dist/outbound-sessions.d.ts +126 -0
  460. package/dist/outbound-sessions.d.ts.map +1 -0
  461. package/dist/outbound-sessions.js +1052 -0
  462. package/dist/outbound-sessions.js.map +1 -0
  463. package/dist/park-envelope.d.ts +329 -0
  464. package/dist/park-envelope.d.ts.map +1 -0
  465. package/dist/park-envelope.js +509 -0
  466. package/dist/park-envelope.js.map +1 -0
  467. package/dist/park-recovery.d.ts +273 -0
  468. package/dist/park-recovery.d.ts.map +1 -0
  469. package/dist/park-recovery.js +717 -0
  470. package/dist/park-recovery.js.map +1 -0
  471. package/dist/park-refusals.d.ts +147 -0
  472. package/dist/park-refusals.d.ts.map +1 -0
  473. package/dist/park-refusals.js +331 -0
  474. package/dist/park-refusals.js.map +1 -0
  475. package/dist/quarantine-framing.d.ts +92 -0
  476. package/dist/quarantine-framing.d.ts.map +1 -0
  477. package/dist/quarantine-framing.js +111 -0
  478. package/dist/quarantine-framing.js.map +1 -0
  479. package/dist/reconnect-drain.d.ts +22 -0
  480. package/dist/reconnect-drain.d.ts.map +1 -0
  481. package/dist/reconnect-drain.js +65 -0
  482. package/dist/reconnect-drain.js.map +1 -0
  483. package/dist/recovered-position.d.ts +14 -0
  484. package/dist/recovered-position.d.ts.map +1 -0
  485. package/dist/recovered-position.js +59 -0
  486. package/dist/recovered-position.js.map +1 -0
  487. package/dist/refusal-notices.d.ts +196 -0
  488. package/dist/refusal-notices.d.ts.map +1 -0
  489. package/dist/refusal-notices.js +516 -0
  490. package/dist/refusal-notices.js.map +1 -0
  491. package/dist/refusal-reasons.d.ts +245 -0
  492. package/dist/refusal-reasons.d.ts.map +1 -0
  493. package/dist/refusal-reasons.js +363 -0
  494. package/dist/refusal-reasons.js.map +1 -0
  495. package/dist/register-handler.d.ts +36 -0
  496. package/dist/register-handler.d.ts.map +1 -0
  497. package/dist/register-handler.js +285 -0
  498. package/dist/register-handler.js.map +1 -0
  499. package/dist/registration-context.d.ts +72 -0
  500. package/dist/registration-context.d.ts.map +1 -0
  501. package/dist/registration-context.js +126 -0
  502. package/dist/registration-context.js.map +1 -0
  503. package/dist/registration-manager.d.ts +94 -0
  504. package/dist/registration-manager.d.ts.map +1 -0
  505. package/dist/registration-manager.js +585 -0
  506. package/dist/registration-manager.js.map +1 -0
  507. package/dist/registration-persistence.d.ts +183 -0
  508. package/dist/registration-persistence.d.ts.map +1 -0
  509. package/dist/registration-persistence.js +263 -0
  510. package/dist/registration-persistence.js.map +1 -0
  511. package/dist/registry-poll.d.ts +52 -0
  512. package/dist/registry-poll.d.ts.map +1 -0
  513. package/dist/registry-poll.js +140 -0
  514. package/dist/registry-poll.js.map +1 -0
  515. package/dist/registry-version-store-db.d.ts +22 -0
  516. package/dist/registry-version-store-db.d.ts.map +1 -0
  517. package/dist/registry-version-store-db.js +50 -0
  518. package/dist/registry-version-store-db.js.map +1 -0
  519. package/dist/relay-endpoints.d.ts +18 -0
  520. package/dist/relay-endpoints.d.ts.map +1 -0
  521. package/dist/relay-endpoints.js +9 -0
  522. package/dist/relay-endpoints.js.map +1 -0
  523. package/dist/relay-only.d.ts +140 -0
  524. package/dist/relay-only.d.ts.map +1 -0
  525. package/dist/relay-only.js +193 -0
  526. package/dist/relay-only.js.map +1 -0
  527. package/dist/relay-receipt-store.d.ts +155 -0
  528. package/dist/relay-receipt-store.d.ts.map +1 -0
  529. package/dist/relay-receipt-store.js +284 -0
  530. package/dist/relay-receipt-store.js.map +1 -0
  531. package/dist/relay-reconnect.d.ts +32 -0
  532. package/dist/relay-reconnect.d.ts.map +1 -0
  533. package/dist/relay-reconnect.js +29 -0
  534. package/dist/relay-reconnect.js.map +1 -0
  535. package/dist/reply-lag.d.ts +11 -0
  536. package/dist/reply-lag.d.ts.map +1 -0
  537. package/dist/reply-lag.js +46 -0
  538. package/dist/reply-lag.js.map +1 -0
  539. package/dist/resolve-named-agent.d.ts +49 -0
  540. package/dist/resolve-named-agent.d.ts.map +1 -0
  541. package/dist/resolve-named-agent.js +77 -0
  542. package/dist/resolve-named-agent.js.map +1 -0
  543. package/dist/restart-seal-resolver.d.ts +110 -0
  544. package/dist/restart-seal-resolver.d.ts.map +1 -0
  545. package/dist/restart-seal-resolver.js +353 -0
  546. package/dist/restart-seal-resolver.js.map +1 -0
  547. package/dist/resume-last-seen.d.ts +15 -0
  548. package/dist/resume-last-seen.d.ts.map +1 -0
  549. package/dist/resume-last-seen.js +44 -0
  550. package/dist/resume-last-seen.js.map +1 -0
  551. package/dist/retry-queue.d.ts +203 -0
  552. package/dist/retry-queue.d.ts.map +1 -0
  553. package/dist/retry-queue.js +701 -0
  554. package/dist/retry-queue.js.map +1 -0
  555. package/dist/roster-freshness.d.ts +160 -0
  556. package/dist/roster-freshness.d.ts.map +1 -0
  557. package/dist/roster-freshness.js +250 -0
  558. package/dist/roster-freshness.js.map +1 -0
  559. package/dist/screening-status.d.ts +15 -0
  560. package/dist/screening-status.d.ts.map +1 -0
  561. package/dist/screening-status.js +65 -0
  562. package/dist/screening-status.js.map +1 -0
  563. package/dist/seal-carried-close.d.ts +37 -0
  564. package/dist/seal-carried-close.d.ts.map +1 -0
  565. package/dist/seal-carried-close.js +179 -0
  566. package/dist/seal-carried-close.js.map +1 -0
  567. package/dist/seal-certificate-pull.d.ts +79 -0
  568. package/dist/seal-certificate-pull.d.ts.map +1 -0
  569. package/dist/seal-certificate-pull.js +186 -0
  570. package/dist/seal-certificate-pull.js.map +1 -0
  571. package/dist/seal-certified-root-check.d.ts +37 -0
  572. package/dist/seal-certified-root-check.d.ts.map +1 -0
  573. package/dist/seal-certified-root-check.js +127 -0
  574. package/dist/seal-certified-root-check.js.map +1 -0
  575. package/dist/seal-coordinator.d.ts +118 -0
  576. package/dist/seal-coordinator.d.ts.map +1 -0
  577. package/dist/seal-coordinator.js +927 -0
  578. package/dist/seal-coordinator.js.map +1 -0
  579. package/dist/seal-escalation.d.ts +80 -0
  580. package/dist/seal-escalation.d.ts.map +1 -0
  581. package/dist/seal-escalation.js +283 -0
  582. package/dist/seal-escalation.js.map +1 -0
  583. package/dist/seal-evidence-root-check.d.ts +70 -0
  584. package/dist/seal-evidence-root-check.d.ts.map +1 -0
  585. package/dist/seal-evidence-root-check.js +199 -0
  586. package/dist/seal-evidence-root-check.js.map +1 -0
  587. package/dist/seal-failure-store.d.ts +139 -0
  588. package/dist/seal-failure-store.d.ts.map +1 -0
  589. package/dist/seal-failure-store.js +207 -0
  590. package/dist/seal-failure-store.js.map +1 -0
  591. package/dist/seal-flows.d.ts +107 -0
  592. package/dist/seal-flows.d.ts.map +1 -0
  593. package/dist/seal-flows.js +638 -0
  594. package/dist/seal-flows.js.map +1 -0
  595. package/dist/seal-frontier-verify.d.ts +103 -0
  596. package/dist/seal-frontier-verify.d.ts.map +1 -0
  597. package/dist/seal-frontier-verify.js +143 -0
  598. package/dist/seal-frontier-verify.js.map +1 -0
  599. package/dist/seal-leaf.d.ts +58 -0
  600. package/dist/seal-leaf.d.ts.map +1 -0
  601. package/dist/seal-leaf.js +112 -0
  602. package/dist/seal-leaf.js.map +1 -0
  603. package/dist/seal-legibility-tbs.d.ts +25 -0
  604. package/dist/seal-legibility-tbs.d.ts.map +1 -0
  605. package/dist/seal-legibility-tbs.js +77 -0
  606. package/dist/seal-legibility-tbs.js.map +1 -0
  607. package/dist/seal-local-terminus.d.ts +41 -0
  608. package/dist/seal-local-terminus.d.ts.map +1 -0
  609. package/dist/seal-local-terminus.js +170 -0
  610. package/dist/seal-local-terminus.js.map +1 -0
  611. package/dist/seal-receipt-upgrade.d.ts +30 -0
  612. package/dist/seal-receipt-upgrade.d.ts.map +1 -0
  613. package/dist/seal-receipt-upgrade.js +49 -0
  614. package/dist/seal-receipt-upgrade.js.map +1 -0
  615. package/dist/seal-relay-silence.d.ts +51 -0
  616. package/dist/seal-relay-silence.d.ts.map +1 -0
  617. package/dist/seal-relay-silence.js +76 -0
  618. package/dist/seal-relay-silence.js.map +1 -0
  619. package/dist/seal-settle.d.ts +38 -0
  620. package/dist/seal-settle.d.ts.map +1 -0
  621. package/dist/seal-settle.js +33 -0
  622. package/dist/seal-settle.js.map +1 -0
  623. package/dist/seal-upgrade.d.ts +107 -0
  624. package/dist/seal-upgrade.d.ts.map +1 -0
  625. package/dist/seal-upgrade.js +200 -0
  626. package/dist/seal-upgrade.js.map +1 -0
  627. package/dist/sealed-conversation.d.ts +36 -0
  628. package/dist/sealed-conversation.d.ts.map +1 -0
  629. package/dist/sealed-conversation.js +171 -0
  630. package/dist/sealed-conversation.js.map +1 -0
  631. package/dist/sealed-leaf-set.d.ts +92 -0
  632. package/dist/sealed-leaf-set.d.ts.map +1 -0
  633. package/dist/sealed-leaf-set.js +122 -0
  634. package/dist/sealed-leaf-set.js.map +1 -0
  635. package/dist/send-claims.d.ts +56 -0
  636. package/dist/send-claims.d.ts.map +1 -0
  637. package/dist/send-claims.js +50 -0
  638. package/dist/send-claims.js.map +1 -0
  639. package/dist/session-assignment-parser.d.ts +104 -0
  640. package/dist/session-assignment-parser.d.ts.map +1 -0
  641. package/dist/session-assignment-parser.js +345 -0
  642. package/dist/session-assignment-parser.js.map +1 -0
  643. package/dist/session-category.d.ts +19 -0
  644. package/dist/session-category.d.ts.map +1 -0
  645. package/dist/session-category.js +14 -0
  646. package/dist/session-category.js.map +1 -0
  647. package/dist/session-ceremony.d.ts +297 -0
  648. package/dist/session-ceremony.d.ts.map +1 -0
  649. package/dist/session-ceremony.js +964 -0
  650. package/dist/session-ceremony.js.map +1 -0
  651. package/dist/session-closed.d.ts +79 -0
  652. package/dist/session-closed.d.ts.map +1 -0
  653. package/dist/session-closed.js +189 -0
  654. package/dist/session-closed.js.map +1 -0
  655. package/dist/session-connection-gater.d.ts +148 -0
  656. package/dist/session-connection-gater.d.ts.map +1 -0
  657. package/dist/session-connection-gater.js +332 -0
  658. package/dist/session-connection-gater.js.map +1 -0
  659. package/dist/session-content-context.d.ts +162 -0
  660. package/dist/session-content-context.d.ts.map +1 -0
  661. package/dist/session-content-context.js +2 -0
  662. package/dist/session-content-context.js.map +1 -0
  663. package/dist/session-content-handlers.d.ts +82 -0
  664. package/dist/session-content-handlers.d.ts.map +1 -0
  665. package/dist/session-content-handlers.js +1382 -0
  666. package/dist/session-content-handlers.js.map +1 -0
  667. package/dist/session-content-ingest.d.ts +206 -0
  668. package/dist/session-content-ingest.d.ts.map +1 -0
  669. package/dist/session-content-ingest.js +2167 -0
  670. package/dist/session-content-ingest.js.map +1 -0
  671. package/dist/session-content-send.d.ts +191 -0
  672. package/dist/session-content-send.d.ts.map +1 -0
  673. package/dist/session-content-send.js +1360 -0
  674. package/dist/session-content-send.js.map +1 -0
  675. package/dist/session-delivery-acks.d.ts +169 -0
  676. package/dist/session-delivery-acks.d.ts.map +1 -0
  677. package/dist/session-delivery-acks.js +569 -0
  678. package/dist/session-delivery-acks.js.map +1 -0
  679. package/dist/session-ephemerals.d.ts +279 -0
  680. package/dist/session-ephemerals.d.ts.map +1 -0
  681. package/dist/session-ephemerals.js +591 -0
  682. package/dist/session-ephemerals.js.map +1 -0
  683. package/dist/session-leaf-records.d.ts +159 -0
  684. package/dist/session-leaf-records.d.ts.map +1 -0
  685. package/dist/session-leaf-records.js +408 -0
  686. package/dist/session-leaf-records.js.map +1 -0
  687. package/dist/session-lifecycle.d.ts +303 -0
  688. package/dist/session-lifecycle.d.ts.map +1 -0
  689. package/dist/session-lifecycle.js +1679 -0
  690. package/dist/session-lifecycle.js.map +1 -0
  691. package/dist/session-liveness.d.ts +135 -0
  692. package/dist/session-liveness.d.ts.map +1 -0
  693. package/dist/session-liveness.js +347 -0
  694. package/dist/session-liveness.js.map +1 -0
  695. package/dist/session-name.d.ts +35 -0
  696. package/dist/session-name.d.ts.map +1 -0
  697. package/dist/session-name.js +60 -0
  698. package/dist/session-name.js.map +1 -0
  699. package/dist/session-node-factory.d.ts +18 -0
  700. package/dist/session-node-factory.d.ts.map +1 -0
  701. package/dist/session-node-factory.js +182 -0
  702. package/dist/session-node-factory.js.map +1 -0
  703. package/dist/session-node-manager.d.ts +877 -0
  704. package/dist/session-node-manager.d.ts.map +1 -0
  705. package/dist/session-node-manager.js +2998 -0
  706. package/dist/session-node-manager.js.map +1 -0
  707. package/dist/session-node-types.d.ts +1057 -0
  708. package/dist/session-node-types.d.ts.map +1 -0
  709. package/dist/session-node-types.js +657 -0
  710. package/dist/session-node-types.js.map +1 -0
  711. package/dist/session-notify.d.ts +46 -0
  712. package/dist/session-notify.d.ts.map +1 -0
  713. package/dist/session-notify.js +116 -0
  714. package/dist/session-notify.js.map +1 -0
  715. package/dist/session-own-chain-store.d.ts +65 -0
  716. package/dist/session-own-chain-store.d.ts.map +1 -0
  717. package/dist/session-own-chain-store.js +75 -0
  718. package/dist/session-own-chain-store.js.map +1 -0
  719. package/dist/session-queries.d.ts +476 -0
  720. package/dist/session-queries.d.ts.map +1 -0
  721. package/dist/session-queries.js +1007 -0
  722. package/dist/session-queries.js.map +1 -0
  723. package/dist/session-read-handlers.d.ts +87 -0
  724. package/dist/session-read-handlers.d.ts.map +1 -0
  725. package/dist/session-read-handlers.js +689 -0
  726. package/dist/session-read-handlers.js.map +1 -0
  727. package/dist/session-records.d.ts +341 -0
  728. package/dist/session-records.d.ts.map +1 -0
  729. package/dist/session-records.js +858 -0
  730. package/dist/session-records.js.map +1 -0
  731. package/dist/session-relay-client.d.ts +659 -0
  732. package/dist/session-relay-client.d.ts.map +1 -0
  733. package/dist/session-relay-client.js +2876 -0
  734. package/dist/session-relay-client.js.map +1 -0
  735. package/dist/session-relay.d.ts +397 -0
  736. package/dist/session-relay.d.ts.map +1 -0
  737. package/dist/session-relay.js +1636 -0
  738. package/dist/session-relay.js.map +1 -0
  739. package/dist/session-salt-agreement.d.ts +331 -0
  740. package/dist/session-salt-agreement.d.ts.map +1 -0
  741. package/dist/session-salt-agreement.js +472 -0
  742. package/dist/session-salt-agreement.js.map +1 -0
  743. package/dist/session-salts.d.ts +432 -0
  744. package/dist/session-salts.d.ts.map +1 -0
  745. package/dist/session-salts.js +1540 -0
  746. package/dist/session-salts.js.map +1 -0
  747. package/dist/session-schema.d.ts +30 -0
  748. package/dist/session-schema.d.ts.map +1 -0
  749. package/dist/session-schema.js +877 -0
  750. package/dist/session-schema.js.map +1 -0
  751. package/dist/session-seal-leaf-store.d.ts +70 -0
  752. package/dist/session-seal-leaf-store.d.ts.map +1 -0
  753. package/dist/session-seal-leaf-store.js +105 -0
  754. package/dist/session-seal-leaf-store.js.map +1 -0
  755. package/dist/session-seal.d.ts +334 -0
  756. package/dist/session-seal.d.ts.map +1 -0
  757. package/dist/session-seal.js +1017 -0
  758. package/dist/session-seal.js.map +1 -0
  759. package/dist/session-terminal-refusal.d.ts +65 -0
  760. package/dist/session-terminal-refusal.d.ts.map +1 -0
  761. package/dist/session-terminal-refusal.js +87 -0
  762. package/dist/session-terminal-refusal.js.map +1 -0
  763. package/dist/session-tree.d.ts +110 -0
  764. package/dist/session-tree.d.ts.map +1 -0
  765. package/dist/session-tree.js +144 -0
  766. package/dist/session-tree.js.map +1 -0
  767. package/dist/session-views.d.ts +47 -0
  768. package/dist/session-views.d.ts.map +1 -0
  769. package/dist/session-views.js +278 -0
  770. package/dist/session-views.js.map +1 -0
  771. package/dist/signal-handlers.d.ts +63 -0
  772. package/dist/signal-handlers.d.ts.map +1 -0
  773. package/dist/signal-handlers.js +980 -0
  774. package/dist/signal-handlers.js.map +1 -0
  775. package/dist/signal-requirement-policy.d.ts +51 -0
  776. package/dist/signal-requirement-policy.d.ts.map +1 -0
  777. package/dist/signal-requirement-policy.js +89 -0
  778. package/dist/signal-requirement-policy.js.map +1 -0
  779. package/dist/signal-revocability.d.ts +49 -0
  780. package/dist/signal-revocability.d.ts.map +1 -0
  781. package/dist/signal-revocability.js +93 -0
  782. package/dist/signal-revocability.js.map +1 -0
  783. package/dist/signal-submission.d.ts +181 -0
  784. package/dist/signal-submission.d.ts.map +1 -0
  785. package/dist/signal-submission.js +368 -0
  786. package/dist/signal-submission.js.map +1 -0
  787. package/dist/signaling-connect.d.ts +118 -0
  788. package/dist/signaling-connect.d.ts.map +1 -0
  789. package/dist/signaling-connect.js +538 -0
  790. package/dist/signaling-connect.js.map +1 -0
  791. package/dist/signaling-wiring.d.ts +105 -0
  792. package/dist/signaling-wiring.d.ts.map +1 -0
  793. package/dist/signaling-wiring.js +393 -0
  794. package/dist/signaling-wiring.js.map +1 -0
  795. package/dist/singleton-lock.d.ts +85 -0
  796. package/dist/singleton-lock.d.ts.map +1 -0
  797. package/dist/singleton-lock.js +219 -0
  798. package/dist/singleton-lock.js.map +1 -0
  799. package/dist/sqlcipher-db.d.ts +139 -0
  800. package/dist/sqlcipher-db.d.ts.map +1 -0
  801. package/dist/sqlcipher-db.js +357 -0
  802. package/dist/sqlcipher-db.js.map +1 -0
  803. package/dist/standing-receivers.d.ts +319 -0
  804. package/dist/standing-receivers.d.ts.map +1 -0
  805. package/dist/standing-receivers.js +1295 -0
  806. package/dist/standing-receivers.js.map +1 -0
  807. package/dist/start-agent.d.ts +64 -0
  808. package/dist/start-agent.d.ts.map +1 -0
  809. package/dist/start-agent.js +136 -0
  810. package/dist/start-agent.js.map +1 -0
  811. package/dist/status-handler.d.ts +54 -0
  812. package/dist/status-handler.d.ts.map +1 -0
  813. package/dist/status-handler.js +61 -0
  814. package/dist/status-handler.js.map +1 -0
  815. package/dist/submission-retry.d.ts +208 -0
  816. package/dist/submission-retry.d.ts.map +1 -0
  817. package/dist/submission-retry.js +506 -0
  818. package/dist/submission-retry.js.map +1 -0
  819. package/dist/telegram-bot-client.d.ts +34 -0
  820. package/dist/telegram-bot-client.d.ts.map +1 -0
  821. package/dist/telegram-bot-client.js +36 -0
  822. package/dist/telegram-bot-client.js.map +1 -0
  823. package/dist/telegram-doorbell.d.ts +38 -0
  824. package/dist/telegram-doorbell.d.ts.map +1 -0
  825. package/dist/telegram-doorbell.js +140 -0
  826. package/dist/telegram-doorbell.js.map +1 -0
  827. package/dist/test-handlers.d.ts +62 -0
  828. package/dist/test-handlers.d.ts.map +1 -0
  829. package/dist/test-handlers.js +240 -0
  830. package/dist/test-handlers.js.map +1 -0
  831. package/dist/testing.d.ts +10 -0
  832. package/dist/testing.d.ts.map +1 -0
  833. package/dist/testing.js +10 -0
  834. package/dist/testing.js.map +1 -0
  835. package/dist/transport-composition.d.ts +31 -0
  836. package/dist/transport-composition.d.ts.map +1 -0
  837. package/dist/transport-composition.js +55 -0
  838. package/dist/transport-composition.js.map +1 -0
  839. package/dist/transport-selector.d.ts +202 -0
  840. package/dist/transport-selector.d.ts.map +1 -0
  841. package/dist/transport-selector.js +196 -0
  842. package/dist/transport-selector.js.map +1 -0
  843. package/dist/trust-signal-pickup-listener.d.ts +43 -0
  844. package/dist/trust-signal-pickup-listener.d.ts.map +1 -0
  845. package/dist/trust-signal-pickup-listener.js +48 -0
  846. package/dist/trust-signal-pickup-listener.js.map +1 -0
  847. package/dist/trust-signal-store.d.ts +406 -0
  848. package/dist/trust-signal-store.d.ts.map +1 -0
  849. package/dist/trust-signal-store.js +939 -0
  850. package/dist/trust-signal-store.js.map +1 -0
  851. package/dist/trust-signal-sweep-tick.d.ts +60 -0
  852. package/dist/trust-signal-sweep-tick.d.ts.map +1 -0
  853. package/dist/trust-signal-sweep-tick.js +101 -0
  854. package/dist/trust-signal-sweep-tick.js.map +1 -0
  855. package/dist/trust-signal-sweep.d.ts +94 -0
  856. package/dist/trust-signal-sweep.d.ts.map +1 -0
  857. package/dist/trust-signal-sweep.js +147 -0
  858. package/dist/trust-signal-sweep.js.map +1 -0
  859. package/dist/type-registry.d.ts +42 -0
  860. package/dist/type-registry.d.ts.map +1 -0
  861. package/dist/type-registry.js +37 -0
  862. package/dist/type-registry.js.map +1 -0
  863. package/dist/types.d.ts +746 -0
  864. package/dist/types.d.ts.map +1 -0
  865. package/dist/types.js +20 -0
  866. package/dist/types.js.map +1 -0
  867. package/dist/unresolved-nodes-report.d.ts +14 -0
  868. package/dist/unresolved-nodes-report.d.ts.map +1 -0
  869. package/dist/unresolved-nodes-report.js +96 -0
  870. package/dist/unresolved-nodes-report.js.map +1 -0
  871. package/dist/vocabulary.d.ts +150 -0
  872. package/dist/vocabulary.d.ts.map +1 -0
  873. package/dist/vocabulary.js +386 -0
  874. package/dist/vocabulary.js.map +1 -0
  875. package/dist/who-label.d.ts +28 -0
  876. package/dist/who-label.d.ts.map +1 -0
  877. package/dist/who-label.js +31 -0
  878. package/dist/who-label.js.map +1 -0
  879. package/dist/who-resolver.d.ts +15 -0
  880. package/dist/who-resolver.d.ts.map +1 -0
  881. package/dist/who-resolver.js +47 -0
  882. package/dist/who-resolver.js.map +1 -0
  883. package/dist/wire-content-hash.d.ts +93 -0
  884. package/dist/wire-content-hash.d.ts.map +1 -0
  885. package/dist/wire-content-hash.js +116 -0
  886. package/dist/wire-content-hash.js.map +1 -0
  887. package/dist/withheld-content.d.ts +13 -0
  888. package/dist/withheld-content.d.ts.map +1 -0
  889. package/dist/withheld-content.js +46 -0
  890. package/dist/withheld-content.js.map +1 -0
  891. package/dist/witness-alerts.d.ts +40 -0
  892. package/dist/witness-alerts.d.ts.map +1 -0
  893. package/dist/witness-alerts.js +102 -0
  894. package/dist/witness-alerts.js.map +1 -0
  895. package/package.json +5 -5
@@ -0,0 +1,569 @@
1
+ /**
2
+ * DOD-M15-DELIVERYACK-1 — the delivery acknowledgement, both directions.
3
+ *
4
+ * Split out of `session-content-ingest.ts` rather than added to it. The acknowledgement is now a
5
+ * signed artifact with its own five rules and its own evidence store, which is a subject of its
6
+ * own — and the ingest file sits on a `max-lines` ratchet whose whole purpose is that a feature
7
+ * lands as a module instead of as growth in a file nobody can read.
8
+ *
9
+ * ⚠️ NOTHING HERE TOUCHES THE TAMPER-EVIDENT RECORD. An acknowledgement takes no chain leaf, is
10
+ * never itself acknowledged, and its absence proves nothing. The evidence it produces is read by
11
+ * the sealed-receipt surface and by nothing else.
12
+ */
13
+ import * as lp from "it-length-prefixed";
14
+ import { signDeliveryAck, verifyDeliveryAck } from "@cello-protocol/crypto";
15
+ import { encodeCbor } from "@cello-protocol/protocol-types";
16
+ import { encodeParkedDeliveryAck, parkedDeliveryAckMailboxHash } from "./park-envelope.js";
17
+ import { CELLO_CONTENT_PROTOCOL_ID } from "@cello-protocol/transport";
18
+ import { extractErrorMessage } from "./error-message.js";
19
+ /**
20
+ * DOD-M15-DELIVERYACK-1 rule 2 — did THIS side send this message in THIS session?
21
+ *
22
+ * ⚠️ THIS USED TO ASK "are we still awaiting an acknowledgement for it", AND THAT CLOSED THE
23
+ * EVIDENCE WINDOW ON EXACTLY THE DISPUTES THE UNIT EXISTS TO SETTLE. `awaitingAck` is in memory and
24
+ * its entries live for the time-to-fallback — 20 seconds by default — after which the timer fires,
25
+ * the content parks, and the entry is deleted. So: A sends, B is offline or slow, A parks the
26
+ * message, B comes back, recovers it, ingests it and signs. A threw the acknowledgement away as
27
+ * `not_awaiting` and kept nothing. **The message that was hardest to deliver is the one A ends up
28
+ * with no proof for**, which is the opposite of the point. A daemon restart in between did the same.
29
+ *
30
+ * So the bind is now DURABLE: the sent-direction transcript row and its leaf, which say this side
31
+ * put these bytes on the wire in this session and survive both the timer and a restart. The
32
+ * in-memory map stays as a first answer for the ordinary case where the acknowledgement comes back
33
+ * in milliseconds and the durable rows may not be visible yet.
34
+ *
35
+ * It is still a bound the counterparty cannot spend: both sources are written only by our OWN
36
+ * sends, so the number of acknowledgements a session can record is the number of messages this side
37
+ * sent in it. What changed is that the window is the conversation rather than twenty seconds.
38
+ */
39
+ function weSentThisMessage(ctx, agentName, sessionId, contentHash) {
40
+ const hashHex = Buffer.from(contentHash).toString("hex");
41
+ const bySession = ctx.awaitingAck.get(ctx.sessionKey(agentName, sessionId));
42
+ if (bySession?.has(hashHex) === true)
43
+ return true;
44
+ return ctx.records.hasSentContentHash(agentName, sessionId, hashHex);
45
+ }
46
+ /**
47
+ * Send a SIGNED `persisted` delivery ACK back to the sender over the same
48
+ * /cello/content/1.0.0 protocol (AC-001).
49
+ *
50
+ * ⚠️ IT USED TO BE UNSIGNED, and the comment here used to justify that: "authentication is the
51
+ * Noise session channel, so the ACK carries no signature". That is true of the HOP and it dies
52
+ * with the connection — it left the sender holding nothing it could show a third party, which is
53
+ * what `DOD-M15-DELIVERYACK-1` exists to fix. Rewritten rather than deleted, because the old
54
+ * sentence is exactly why an auditor would conclude the frame is unsigned by design.
55
+ *
56
+ * What is signed says only *this machine received these bytes in this session*. Signed on INGEST,
57
+ * so it asserts nothing about attention and nothing about agreement.
58
+ *
59
+ * Still best-effort in the SEND: a failed ACK send is logged and the sender recovers via its
60
+ * TTF/recovery path rather than a thrown error here.
61
+ */
62
+ export async function sendDeliveryAck(ctx, agentName, sessionId, contentHash, correlationId) {
63
+ const entry = ctx.activeNodes.get(ctx.sessionKey(agentName, sessionId));
64
+ /**
65
+ * SIGN BEFORE THE STREAM IS OPENED — an unsignable acknowledgement must not be sent at all.
66
+ *
67
+ * A frame with no signature is discarded at the far end on the same path as a wrong one, so
68
+ * sending one would burn a stream slot to produce a refusal. Declining is LOUD rather than
69
+ * silent, for the reason the `session_node_gone` branch above is: no acknowledgement is this
70
+ * unit's own symptom, so every case where we knowingly do not send one has to say so.
71
+ */
72
+ const signer = ctx.keyProvider(agentName);
73
+ if (!signer) {
74
+ ctx.logger.error("content.delivery.ack.unsignable", {
75
+ agentName,
76
+ sessionId,
77
+ contentHash: Buffer.from(contentHash).toString("hex"),
78
+ reason: "no_identity_key",
79
+ impact: "this machine holds no identity key for the agent, so it cannot sign for the message it " +
80
+ "just received. The message IS ingested and readable here; what is missing is the proof " +
81
+ "the sender keeps, so from their side this message will look unacknowledged",
82
+ guidance: "This is a LOCAL fault, not anything your counterparty did. Check that the agent's " +
83
+ "identity key is present on this machine (cello_status), then restart the agent.",
84
+ correlationId,
85
+ });
86
+ return;
87
+ }
88
+ let ackSig;
89
+ try {
90
+ ackSig = await signDeliveryAck(signer, Buffer.from(sessionId, "hex"), contentHash);
91
+ }
92
+ catch (err) {
93
+ ctx.logger.error("content.delivery.ack.unsignable", {
94
+ agentName, sessionId,
95
+ contentHash: Buffer.from(contentHash).toString("hex"),
96
+ reason: "signing_failed",
97
+ error: extractErrorMessage(err),
98
+ impact: "the message is ingested and readable here, but no acknowledgement could be signed for " +
99
+ "it, so the sender will see it as unacknowledged",
100
+ guidance: "This is a LOCAL fault. Check the agent's identity key on this machine (cello_status) " +
101
+ "and restart the agent; nothing your counterparty did causes this.",
102
+ correlationId,
103
+ });
104
+ return;
105
+ }
106
+ // Held outside the try so the catch can retire a stream that was opened and then failed to
107
+ // write. Without it every failure leaks the OUTBOUND half of the stream the receiver-side
108
+ // `finally` retires — same defect, other end, other cap. See the note on #handleContentStream.
109
+ // Assigned IMMEDIATELY after newStream: anything between the two is a window where a throw
110
+ // leaks the stream because the catch cannot see it.
111
+ let ackStream;
112
+ /**
113
+ * ⚠️ NO LIVE SESSION NODE IS THE OFFLINE CASE, NOT A REASON TO GIVE UP — and this branch used to
114
+ * be a bare early return logged as `session_node_gone`.
115
+ *
116
+ * Measured on the live journey: a message recovered from the relay mailbox is ingested when the
117
+ * SENDER is down, so there is no session node and no stream to write to. The acknowledgement was
118
+ * abandoned right here — which meant the messages that had to be parked, the ones a sender most
119
+ * needs evidence about, came back reading as never acknowledged. Straight to the mailbox instead.
120
+ */
121
+ if (!entry) {
122
+ await parkDeliveryAck(ctx, agentName, sessionId, contentHash, ackSig, correlationId, "no_live_session_node");
123
+ return;
124
+ }
125
+ try {
126
+ const stream = await entry.node.newStream(entry.counterpartySessionPeerId, CELLO_CONTENT_PROTOCOL_ID);
127
+ ackStream = stream;
128
+ // Injected ACK-write failure — thrown from inside the try so it lands in exactly the catch a
129
+ // real reset lands in, and the whole downstream path (impair → abort → log) runs unmodified.
130
+ if (ctx.ackFaultRemaining > 0) {
131
+ ctx.ackFaultRemaining -= 1;
132
+ ctx.logger.warn("content.delivery.ack.fault.injected", { sessionId });
133
+ throw new Error("connection_lost: injected delivery-ack fault");
134
+ }
135
+ const frame = encodeCbor({
136
+ type: "content_delivery_ack",
137
+ session_id: sessionId,
138
+ content_hash: contentHash,
139
+ level: "persisted",
140
+ // DOD-M15-DELIVERYACK-1: what the sender can still show someone after the connection is gone.
141
+ ack_sig: ackSig,
142
+ correlation_id: correlationId,
143
+ });
144
+ stream.send(lp.encode.single(frame));
145
+ // NOT SWALLOWED, for the same reason the direct-send path stopped swallowing it: `close()`
146
+ // waits for the write buffer to drain, so a reset mid-flush throws HERE and that is exactly
147
+ // the case where the bytes never left. A swallowed close made two things happen at once —
148
+ // this log claimed the ACK went out while the sender's TTF fired and parked, and the abort in
149
+ // the catch below (the thing that frees the stream slot) became unreachable.
150
+ await stream.close();
151
+ // Our own copy, kept only once it went out, so the seal answer never shows an acknowledgement
152
+ // the sender does not hold. The parked route keeps its copy when the mailbox accepts it.
153
+ ctx.records.recordGivenDeliveryAck(agentName, sessionId, Buffer.from(contentHash).toString("hex"), ackSig, correlationId);
154
+ // AFTER the close, because that is when it is true. The receiver-side counterpart to the
155
+ // sender's content.delivery.acked: B has acknowledged this content `persisted`, so the sender
156
+ // stops retrying/parking. Emitted for BOTH a normally delivered message AND a terminal-screen
157
+ // block (the block is a definitive receipt — the leaf is recorded, so the sender must stop) —
158
+ // and deliberately NOT for a transient hold.
159
+ ctx.logger.info("content.delivery.ack.sent", {
160
+ sessionId,
161
+ contentHash: Buffer.from(contentHash).toString("hex"),
162
+ correlationId,
163
+ });
164
+ // An agent that mostly LISTENS sends content rarely and ACKs constantly. Clearing only on the
165
+ // content path would leave exactly those sessions reporting a broken conversation forever
166
+ // after one bad ACK — the one-way door, on the other send path.
167
+ ctx.liveness.clearSessionImpairment(agentName, sessionId, "delivery_ack", correlationId);
168
+ }
169
+ catch (err) {
170
+ ctx.logger.warn("content.delivery.ack.send.failed", {
171
+ sessionId,
172
+ contentHash: Buffer.from(contentHash).toString("hex"),
173
+ error: extractErrorMessage(err),
174
+ // "Cannot write to a stream that is closed" names where the write died, never why. The
175
+ // why is almost always the per-protocol stream cap, and these two numbers are what turn
176
+ // that from a log-measurement session into a grep.
177
+ ...ctx.streamCensus(entry.node, entry.counterpartySessionPeerId),
178
+ correlationId,
179
+ });
180
+ // The ACK travels the same direct path as our own content, so a failure here is the same
181
+ // evidence: writes to this counterparty are not landing.
182
+ ctx.liveness.markSessionImpaired(agentName, sessionId, { cause: "delivery_ack", error: extractErrorMessage(err), correlationId });
183
+ if (ackStream !== undefined) {
184
+ try {
185
+ ackStream.abort(err instanceof Error ? err : new Error(String(err)));
186
+ }
187
+ catch { /* already gone */ }
188
+ }
189
+ /**
190
+ * DOD-M15-DELIVERYACK-1 unit 1 — THE DIRECT STREAM FAILED, SO THE RELAY'S MAILBOX CARRIES IT.
191
+ *
192
+ * This is the case the unit exists for and the one it used to lose. The ordinary reason this
193
+ * catch runs is that the sender's daemon is DOWN — we have their message, we have read it, and
194
+ * there is nobody on the other end of the stream. Before this, the acknowledgement simply
195
+ * evaporated and the sender came back holding no proof for a message they had in fact delivered.
196
+ *
197
+ * It rides the same store-and-forward path their content rides, sealed to them, with the
198
+ * discriminator inside the seal so the relay stays a blind custodian and needs no change. If the
199
+ * relay refuses or none is configured, we are exactly where the old code left us — which is why
200
+ * this is fire-and-forget and never turns a delivered message into a failure.
201
+ */
202
+ void parkDeliveryAck(ctx, agentName, sessionId, contentHash, ackSig, correlationId, "direct_send_failed");
203
+ }
204
+ }
205
+ /**
206
+ * Deposit an acknowledgement in the relay's per-recipient mailbox, addressed to the sender.
207
+ *
208
+ * ⚠️ THE MAILBOX SLOT IS A DERIVED HASH, NOT THE MESSAGE'S. Filing it under the hash it
209
+ * acknowledges would put it in the slot a parked copy of that very message occupies. See
210
+ * `parkedDeliveryAckMailboxHash`.
211
+ *
212
+ * ⚠️ AND IT IS NEVER ACKNOWLEDGED IN TURN. `parkContent` is being used for its transport only: the
213
+ * deposit produces no awaiting entry, no timer and no leaf, so nothing here can start a second
214
+ * conversation between two daemons about whether the first one arrived.
215
+ */
216
+ async function parkDeliveryAck(ctx, agentName, sessionId, contentHash, ackSig, correlationId,
217
+ /** Why the direct stream was not used — carried into the log so the two cases stay legible. */
218
+ why) {
219
+ const hashHex = Buffer.from(contentHash).toString("hex");
220
+ try {
221
+ const payload = encodeParkedDeliveryAck({ sessionIdHex: sessionId, contentHash, ackSig });
222
+ const slotHex = Buffer.from(parkedDeliveryAckMailboxHash(sessionId, contentHash)).toString("hex");
223
+ const attempt = await ctx.park.parkOutOfBand(agentName, sessionId, slotHex, payload);
224
+ if (attempt.outcome === "parked") {
225
+ ctx.records.recordGivenDeliveryAck(agentName, sessionId, hashHex, ackSig, correlationId);
226
+ ctx.logger.info("content.delivery.ack.parked", {
227
+ agentName, sessionId, contentHash: hashHex, correlationId, why,
228
+ impact: "the sender could not be reached directly, so the acknowledgement is waiting in the " +
229
+ "relay mailbox and reaches them when their agent is next online",
230
+ });
231
+ return;
232
+ }
233
+ /**
234
+ * NOT SILENT, and not an error either. The sender is simply left without this one piece of
235
+ * evidence — which is where they were before this unit existed. Said out loud because "no
236
+ * acknowledgement" is this unit's own symptom, so every case where one knowingly does not
237
+ * arrive has to be visible or it is indistinguishable from the defect.
238
+ */
239
+ ctx.logger.warn("content.delivery.ack.park.failed", {
240
+ agentName, sessionId, contentHash: hashHex, correlationId, why,
241
+ reason: attempt.outcome === "unconfigured" ? "no_relay_for_session" : (attempt.cause ?? "refused"),
242
+ impact: "the acknowledgement reached neither the sender directly nor the relay mailbox, so they " +
243
+ "will hold no proof for this message. Their message WAS received and is readable here; " +
244
+ "nothing about the conversation is affected",
245
+ guidance: "Nothing to do on this side. If the counterparty asks, the message is in your transcript " +
246
+ "and you can confirm receipt out of band.",
247
+ });
248
+ }
249
+ catch (err) {
250
+ ctx.logger.warn("content.delivery.ack.park.failed", {
251
+ agentName, sessionId, contentHash: hashHex, correlationId,
252
+ reason: extractErrorMessage(err),
253
+ impact: "the acknowledgement reached neither the sender directly nor the relay mailbox, so they " +
254
+ "will hold no proof for this message. Their message WAS received and is readable here",
255
+ });
256
+ }
257
+ }
258
+ /**
259
+ * DOD-M15-DELIVERYACK-1 — AN INBOUND ACKNOWLEDGEMENT IS ATTACKER-CONTROLLED INPUT.
260
+ *
261
+ * The client is open source and runs on the counterparty's machine, so they can send whatever
262
+ * they like here. Five properties, and all five are load-bearing:
263
+ *
264
+ * 1. **Verified against the session's RECORDED counterparty key**, never a key in the frame. The
265
+ * recorded key comes from what the operator asked for (initiator) or the directory-attested
266
+ * offer (responder) — `entry.counterpartyPubkey`. Checking a signature against a key carried
267
+ * inside its own frame proves only that somebody owns a keypair.
268
+ * ⚠️ Deliberately NARROWER than "either participant". The clause says an ack verifying under
269
+ * neither participant key is discarded; ours additionally discards one signed by US, which is
270
+ * the self-referential case — our own signature on our own message, stored in our own
271
+ * database, constrains nobody.
272
+ * 2. **Bound** — it must name a hash this side actually sent in this session and is still
273
+ * awaiting. The session is already pinned by the shared frame gate above.
274
+ * 3. **Inert** — it records evidence and resolves the sender's own fallback timer. It advances no
275
+ * sequence, touches no tree, takes no leaf, closes nothing, seals nothing.
276
+ * 4. **Idempotent and bounded** — the awaiting entry is consumed on the first accepted ack, so a
277
+ * duplicate finds nothing and does nothing, and the number of acks that can ever be recorded
278
+ * for a session is the number of messages this side sent in it. There is no counter an
279
+ * attacker can inflate because there is no per-ack allocation at all.
280
+ * 5. **Malformed fails exactly as missing does.** Both take this one discard path: the timer stays
281
+ * armed, no `content.delivery.acked` fires, nothing is recorded, and the message parks on TTF
282
+ * expiry exactly as it would have with no acknowledgement at all.
283
+ *
284
+ * 🚨 AND A DISCARD IS NOT A SECURITY EVENT. It does not freeze the session and must never feed a
285
+ * trust signal. A missing acknowledgement is usually innocent — the relay parked the content, the
286
+ * far daemon died between ordering and pull, a bounded queue dropped its oldest frame, a screener
287
+ * refused it. Reading absence as evasion is the defect, not the fix.
288
+ */
289
+ export function onDeliveryAck(ctx, resolveAwaitingAck, agentName, sessionId, contentHash, rawSig, correlationId) {
290
+ const hashHex = Buffer.from(contentHash).toString("hex");
291
+ // RULE 2 — bound. Cheapest check, and it is what bounds everything below: an ack naming a hash
292
+ // we never sent (or already recorded) allocates nothing and is gone here.
293
+ if (!weSentThisMessage(ctx, agentName, sessionId, contentHash)) {
294
+ ctx.logger.debug("content.delivery.ack.discarded", {
295
+ agentName, sessionId, contentHash: hashHex, correlationId,
296
+ reason: "not_sent_here",
297
+ impact: "an acknowledgement arrived naming a message this side has no record of sending in this " +
298
+ "session. Discarded; nothing is concluded from it",
299
+ });
300
+ return;
301
+ }
302
+ const entry = ctx.activeNodes.get(ctx.sessionKey(agentName, sessionId));
303
+ // RULE 1 — the key we check against is the session's own record, and the frame supplies none of it.
304
+ const counterparty = entry?.counterpartyPubkey;
305
+ const verdict = verifyDeliveryAck({
306
+ participantIdentityPublics: counterparty && /^[0-9a-fA-F]{64}$/.test(counterparty)
307
+ ? [new Uint8Array(Buffer.from(counterparty, "hex"))]
308
+ : [],
309
+ sessionId: new Uint8Array(Buffer.from(sessionId, "hex")),
310
+ contentHash,
311
+ // RULE 5 — a non-Uint8Array arrives at the verifier as ABSENT, so a present-but-wrong-typed
312
+ // field takes the missing path rather than a tolerance branch of its own.
313
+ signature: rawSig instanceof Uint8Array ? rawSig : undefined,
314
+ });
315
+ if (!verdict.ok) {
316
+ /**
317
+ * WHO HEARS THIS, and why the answer is only the log — asked because a refusal with no named
318
+ * surface is this milestone's most repeated defect and the exception has to be argued.
319
+ *
320
+ * There is no caller to answer: this arrives on an inbound stream, unrequested. And the AGENT
321
+ * must not be told, because telling it is the harm. "Your counterparty sent a bad
322
+ * acknowledgement" reads as an accusation, and the one thing this unit must never do is let an
323
+ * absent or unusable acknowledgement be read as evasion. The behavioural consequence the agent
324
+ * DOES see is already correct and already surfaced: the message stays awaiting and parks on the
325
+ * usual fallback, exactly as if nothing had arrived — which is the truth. The log keeps the
326
+ * forensic record for the operator who goes looking.
327
+ *
328
+ * ONCE PER MESSAGE, LOUDLY; after that quietly — the flag rides on the awaiting entry, so it
329
+ * is freed with it and an entry exists only for a message THIS side sent. See
330
+ * `AwaitingAckEntry.ackRefusalLogged` for why the budget is not something the other side can
331
+ * spend.
332
+ */
333
+ const awaiting = ctx.awaitingAck.get(ctx.sessionKey(agentName, sessionId))?.get(hashHex);
334
+ const firstForThisMessage = awaiting !== undefined && awaiting.ackRefusalLogged !== true;
335
+ if (awaiting)
336
+ awaiting.ackRefusalLogged = true;
337
+ ctx.logger[firstForThisMessage ? "warn" : "debug"]("content.delivery.ack.discarded", {
338
+ agentName, sessionId, contentHash: hashHex, correlationId,
339
+ reason: verdict.reason,
340
+ detail: verdict.detail,
341
+ impact: "this message is treated exactly as if no acknowledgement had arrived: it stays awaiting " +
342
+ "and will park on the usual fallback. Nothing about the counterparty is concluded",
343
+ });
344
+ return;
345
+ }
346
+ /**
347
+ * RULE 3 AND RULE 4 — evidence, and nothing else, exactly once.
348
+ *
349
+ * Recorded BEFORE the timer is resolved, so a write failure cannot leave the sender believing it
350
+ * holds a proof it does not. The WRITE is what makes this idempotent now that the bind is durable:
351
+ * a replay finds the row already there, `INSERT OR IGNORE` keeps the first one, and the caller is
352
+ * told nothing was written — so no second `content.delivery.acked`, no second log line, and a
353
+ * counterparty replaying an acknowledgement ten thousand times moves nothing at all.
354
+ *
355
+ * `rawSig` is a Uint8Array whenever the verdict is ok — the verifier refuses `undefined`.
356
+ */
357
+ const wrote = ctx.records.recordDeliveryAck(agentName, sessionId, hashHex, Buffer.from(verdict.signerPublic).toString("hex"), rawSig, correlationId);
358
+ if (!wrote) {
359
+ ctx.logger.debug("content.delivery.ack.discarded", {
360
+ agentName, sessionId, contentHash: hashHex, correlationId,
361
+ reason: "already_recorded",
362
+ impact: "this acknowledgement is one this side already holds. Discarded as a duplicate; the first " +
363
+ "one recorded stands and nothing changed",
364
+ });
365
+ return;
366
+ }
367
+ resolveAwaitingAck(agentName, sessionId, contentHash);
368
+ }
369
+ /**
370
+ * DOD-M15-DELIVERYACK-1 — keep the counterparty's signature that their machine received a message.
371
+ *
372
+ * Called ONLY after `verifyDeliveryAck` succeeded against the session's recorded counterparty key.
373
+ * `INSERT OR IGNORE` is the idempotence: the first acknowledgement recorded for a (session, hash)
374
+ * stands and a replay changes nothing.
375
+ *
376
+ * A write failure is LOUD and it is not fatal. The message was delivered; what is lost is this
377
+ * side's ability to prove it later, and the operator is the only one who can act on that.
378
+ */
379
+ export function storeDeliveryAck(db, logger, a) {
380
+ const { agentId, agentName, sessionId, contentHashHex, signerPubkeyHex, signature, correlationId } = a;
381
+ try {
382
+ const info = db
383
+ .prepare(`INSERT OR IGNORE INTO delivery_acks
384
+ (agent_id, session_id, content_hash_hex, signer_pubkey, signature, recorded_at)
385
+ VALUES (?, ?, ?, ?, ?, ?)`)
386
+ .run(agentId, sessionId, contentHashHex, signerPubkeyHex, Buffer.from(signature), Date.now());
387
+ const wrote = Number(info.changes) > 0;
388
+ if (wrote) {
389
+ logger.info("content.delivery.ack.recorded", {
390
+ agentName, sessionId, contentHash: contentHashHex, signerPubkey: signerPubkeyHex, correlationId,
391
+ });
392
+ }
393
+ return wrote;
394
+ }
395
+ catch (err) {
396
+ logger.error("content.delivery.ack.record.failed", {
397
+ agentName, sessionId, contentHash: contentHashHex, correlationId,
398
+ reason: extractErrorMessage(err),
399
+ impact: "the counterparty's signed acknowledgement for this message could not be stored, so the " +
400
+ "sealed receipt will report this message as not acknowledged even though it was. The " +
401
+ "message itself was delivered and nothing about the conversation is affected",
402
+ guidance: "This is a LOCAL storage fault. If it repeats, check free disk space and that the " +
403
+ "agent's database is writable; the acknowledgement cannot be re-requested afterwards.",
404
+ });
405
+ return false;
406
+ }
407
+ }
408
+ /**
409
+ * Keep a copy of the acknowledgement THIS side signed for a message it received, so the seal
410
+ * answer can show it. Without it the only copy left with the sender, and a received message read
411
+ * as unacknowledged from this side forever. A write failure is logged and not fatal: the
412
+ * acknowledgement still goes out.
413
+ */
414
+ export function storeGivenDeliveryAck(db, logger, a) {
415
+ try {
416
+ db.prepare(`INSERT OR IGNORE INTO delivery_acks_given
417
+ (agent_id, session_id, content_hash_hex, signer_pubkey, signature, recorded_at)
418
+ VALUES (?, ?, ?, ?, ?, ?)`).run(a.agentId, a.sessionId, a.contentHashHex, a.signerPubkeyHex, Buffer.from(a.signature), Date.now());
419
+ }
420
+ catch (err) {
421
+ logger.error("content.delivery.ack.given.record.failed", {
422
+ agentName: a.agentName, sessionId: a.sessionId, contentHash: a.contentHashHex, correlationId: a.correlationId,
423
+ reason: extractErrorMessage(err),
424
+ impact: "the acknowledgement was signed and sent, but this side kept no copy, so its seal answer " +
425
+ "will show this received message without a delivery signature",
426
+ guidance: "This is a LOCAL storage fault. Check free disk space and that the agent's database is writable.",
427
+ });
428
+ }
429
+ }
430
+ /**
431
+ * DOD-M15-DELIVERYACK-1 rule 2, at the database — did this side put these exact bytes on the wire in
432
+ * this session?
433
+ *
434
+ * The durable bind, reachable from both routes: the live inbound handler asks through
435
+ * `SessionRecords`, and the mailbox drain asks here directly because it holds a database handle and
436
+ * no manager. A sent-direction transcript row joined to its leaf is written by our own send path and
437
+ * survives the fallback timer and a restart, which is what lets an acknowledgement for a message
438
+ * that had to be parked and recovered still count. Nothing a counterparty sends creates a row here.
439
+ */
440
+ export function sentContentHashExists(db, agentId, sessionId, contentHashHex) {
441
+ const row = db
442
+ .prepare(`SELECT 1 AS present
443
+ FROM session_tree_leaves l
444
+ JOIN transcript t
445
+ ON t.agent_id = l.agent_id AND t.session_id = l.session_id AND t.sequence = l.leaf_index
446
+ WHERE l.agent_id = ? AND l.session_id = ? AND l.leaf_hash_hex = ? AND t.direction = 'sent'
447
+ LIMIT 1`)
448
+ .get(agentId, sessionId, contentHashHex);
449
+ return row !== undefined;
450
+ }
451
+ /**
452
+ * DOD-M15-DELIVERYACK-1 unit 1 — ACCEPT AN ACKNOWLEDGEMENT THAT CAME BACK THROUGH THE RELAY'S
453
+ * MAILBOX.
454
+ *
455
+ * This is the offline route: the counterparty read the message while this daemon was down, could not
456
+ * reach it directly, and parked the acknowledgement. It is held to the SAME five rules the live
457
+ * route is, because it is the same attacker-controlled input arriving by a different road — and to
458
+ * one more check the live route does not need, which has already run before this is called: the park
459
+ * envelope's own SEC-1 gate proved the DEPOSITOR is this session's counterparty.
460
+ *
461
+ * ⚠️ THE TWO CHECKS ARE INDEPENDENT AND BOTH ARE REQUIRED. The envelope gate says who put it in the
462
+ * mailbox; the signature below says who acknowledged the message. A relay holding the recipient's
463
+ * public key can deposit anything, and the envelope gate is what stops that — but a counterparty who
464
+ * rewrote their own daemon passes the envelope gate by construction, and only the signature check
465
+ * catches an acknowledgement they did not actually sign for this message.
466
+ *
467
+ * 🚨 INERT, exactly as the live route is. It records evidence. It appends no leaf, advances no
468
+ * sequence, touches no tree, and nothing about a refusal here says anything about the counterparty.
469
+ *
470
+ * ─── RULE 4's "rate-limited", on THIS route, and why there is no memo here ─────────────────────
471
+ *
472
+ * A refused entry is deliberately NOT confirm-deleted — a forgery must never be able to evict
473
+ * itself — so a bad acknowledgement is re-pulled on every drain, forever. The content path answers
474
+ * that with a bounded in-memory memo of what it already refused. This route does not need one, and
475
+ * the reason is three enforced bounds rather than an argument:
476
+ *
477
+ * 1. Only the COUNTERPARTY can put an entry here at all. The park envelope's SEC-1 gate runs
478
+ * first and refuses anyone else, the relay included.
479
+ * 2. The relay caps each recipient's mailbox — `#maxRecipientEntries` / `#maxRecipientBytes` in
480
+ * `file-content-store.ts`, with FIFO eviction inside the quota. So the number of entries that
481
+ * can be waiting is bounded by the operator's own mailbox size, not by the counterparty's
482
+ * patience.
483
+ * 3. The slot check above runs BEFORE any cryptography, so the cheap forgery — an entry filed
484
+ * anywhere but the derived slot — costs one SHA-256 and no signature verification.
485
+ *
486
+ * What is left is one Ed25519 verify per correctly-slotted, wrongly-signed entry per drain,
487
+ * multiplied by a mailbox the relay already bounds. That is a cost, and it is a bounded one; a memo
488
+ * would shave it at the price of a second piece of state whose key a counterparty influences.
489
+ */
490
+ export function acceptParkedDeliveryAck(a) {
491
+ const hashHex = Buffer.from(a.ack.contentHash).toString("hex");
492
+ const discard = (reason, impact) => {
493
+ a.logger.warn("content.delivery.ack.parked.discarded", {
494
+ agentName: a.agentName, sessionId: a.sessionId, contentHash: hashHex,
495
+ correlationId: a.correlationId, reason, impact,
496
+ });
497
+ return { ok: false, reason };
498
+ };
499
+ /**
500
+ 🚨 THE SLOT MUST BE THE DERIVED ONE, AND WITHOUT THIS CHECK THE DERIVATION PROTECTED NOBODY.
501
+
502
+ `parkedDeliveryAckMailboxHash` puts an acknowledgement in a slot no message's content hash can
503
+ occupy — for an HONEST depositor. A counterparty running a modified client picks the slot
504
+ freely: the park envelope's signature covers whatever slot they chose, so it authenticates. They
505
+ file an acknowledgement AT THE CONTENT HASH of a message they were supposed to deliver, the
506
+ relay files by (recipient, content_hash) and dedups, and the real content deposit is absorbed.
507
+ The message never arrives, nothing is refused, and every log line is clean — because the
508
+ acknowledgement itself is perfectly valid.
509
+
510
+ So the slot is checked against the derivation before anything else. It costs no cryptography,
511
+ which also makes it the right first gate for an entry that is re-pulled on every drain.
512
+ */
513
+ const expectedSlot = Buffer.from(parkedDeliveryAckMailboxHash(a.sessionId, a.ack.contentHash)).toString("hex");
514
+ if (a.mailboxSlotHex.toLowerCase() !== expectedSlot) {
515
+ return discard("slot_not_derived", "a parked acknowledgement was filed in a mailbox slot that is not the one its own contents " +
516
+ "derive. An acknowledgement sitting in a message's slot would absorb that message's delivery " +
517
+ "through the relay's own dedup, so it is discarded and the slot is left alone");
518
+ }
519
+ /**
520
+ * The session id INSIDE the seal must be the one the relay filed it under. The relay supplies the
521
+ * outer value and is in the threat model; the inner one is under the depositor's signature and
522
+ * the relay can neither read nor change it. Disagreement means one of them is lying, and there is
523
+ * no version of that where continuing is right.
524
+ */
525
+ if (a.ack.sessionIdHex.toLowerCase() !== a.sessionId.toLowerCase()) {
526
+ return discard("session_mismatch", "a parked acknowledgement names a different session inside its seal than the one the relay " +
527
+ "filed it under. Discarded rather than routed on either claim");
528
+ }
529
+ // RULE 2 — bound. Durable only: by the time a parked acknowledgement is drained, any live timer
530
+ // for that message is long gone, which is the whole reason this route exists.
531
+ if (!sentContentHashExists(a.db, a.agentId, a.sessionId, hashHex)) {
532
+ return discard("not_sent_here", "a parked acknowledgement named a message this side has no record of sending in this " +
533
+ "session. Discarded; nothing is concluded from it");
534
+ }
535
+ // RULE 1 — against the session's recorded key, never the one inside the payload.
536
+ const verdict = verifyDeliveryAck({
537
+ participantIdentityPublics: a.counterpartyPubkeyHex && /^[0-9a-fA-F]{64}$/.test(a.counterpartyPubkeyHex)
538
+ ? [new Uint8Array(Buffer.from(a.counterpartyPubkeyHex, "hex"))]
539
+ : [],
540
+ sessionId: new Uint8Array(Buffer.from(a.sessionId, "hex")),
541
+ contentHash: a.ack.contentHash,
542
+ signature: a.ack.ackSig,
543
+ });
544
+ if (!verdict.ok) {
545
+ return discard(verdict.reason, "a parked acknowledgement did not verify against this session's recorded counterparty key. " +
546
+ "It is treated exactly as if none had arrived, and nothing about the counterparty is concluded");
547
+ }
548
+ // RULE 3 and RULE 4 — evidence only, exactly once. The stored row is the idempotence: this route
549
+ // and the direct route write the same key, so an acknowledgement that arrived both ways lands once.
550
+ const wrote = storeDeliveryAck(a.db, a.logger, {
551
+ agentId: a.agentId,
552
+ agentName: a.agentName,
553
+ sessionId: a.sessionId,
554
+ contentHashHex: hashHex,
555
+ signerPubkeyHex: Buffer.from(verdict.signerPublic).toString("hex"),
556
+ signature: a.ack.ackSig,
557
+ correlationId: a.correlationId,
558
+ });
559
+ if (wrote) {
560
+ a.logger.info("content.delivery.ack.parked.recovered", {
561
+ agentName: a.agentName, sessionId: a.sessionId, contentHash: hashHex,
562
+ correlationId: a.correlationId,
563
+ impact: "an acknowledgement that could not be delivered while this daemon was down has been " +
564
+ "recovered from the relay mailbox; the proof for this message is now held locally",
565
+ });
566
+ }
567
+ return { ok: true };
568
+ }
569
+ //# sourceMappingURL=session-delivery-acks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-delivery-acks.js","sourceRoot":"","sources":["../src/session-delivery-acks.ts"],"names":[],"mappings":"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"}