@cello-protocol/daemon 0.0.225 → 0.0.227

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 (891) hide show
  1. package/package.json +5 -5
  2. package/dist/agent-admin-handlers.d.ts +0 -56
  3. package/dist/agent-admin-handlers.d.ts.map +0 -1
  4. package/dist/agent-admin-handlers.js +0 -73
  5. package/dist/agent-admin-handlers.js.map +0 -1
  6. package/dist/agent-handlers.d.ts +0 -72
  7. package/dist/agent-handlers.d.ts.map +0 -1
  8. package/dist/agent-handlers.js +0 -604
  9. package/dist/agent-handlers.js.map +0 -1
  10. package/dist/agent-id-migration.d.ts +0 -70
  11. package/dist/agent-id-migration.d.ts.map +0 -1
  12. package/dist/agent-id-migration.js +0 -468
  13. package/dist/agent-id-migration.js.map +0 -1
  14. package/dist/agent-loader.d.ts +0 -37
  15. package/dist/agent-loader.d.ts.map +0 -1
  16. package/dist/agent-loader.js +0 -37
  17. package/dist/agent-loader.js.map +0 -1
  18. package/dist/agent-selection-root.d.ts +0 -29
  19. package/dist/agent-selection-root.d.ts.map +0 -1
  20. package/dist/agent-selection-root.js +0 -126
  21. package/dist/agent-selection-root.js.map +0 -1
  22. package/dist/agent-selection.d.ts +0 -73
  23. package/dist/agent-selection.d.ts.map +0 -1
  24. package/dist/agent-selection.js +0 -80
  25. package/dist/agent-selection.js.map +0 -1
  26. package/dist/agent-settings-keys.d.ts +0 -52
  27. package/dist/agent-settings-keys.d.ts.map +0 -1
  28. package/dist/agent-settings-keys.js +0 -114
  29. package/dist/agent-settings-keys.js.map +0 -1
  30. package/dist/agent-state.d.ts +0 -67
  31. package/dist/agent-state.d.ts.map +0 -1
  32. package/dist/agent-state.js +0 -66
  33. package/dist/agent-state.js.map +0 -1
  34. package/dist/assignment-verify.d.ts +0 -90
  35. package/dist/assignment-verify.d.ts.map +0 -1
  36. package/dist/assignment-verify.js +0 -301
  37. package/dist/assignment-verify.js.map +0 -1
  38. package/dist/attendance-wiring.d.ts +0 -23
  39. package/dist/attendance-wiring.d.ts.map +0 -1
  40. package/dist/attendance-wiring.js +0 -248
  41. package/dist/attendance-wiring.js.map +0 -1
  42. package/dist/attestation-body.d.ts +0 -47
  43. package/dist/attestation-body.d.ts.map +0 -1
  44. package/dist/attestation-body.js +0 -71
  45. package/dist/attestation-body.js.map +0 -1
  46. package/dist/authorship-verification.d.ts +0 -91
  47. package/dist/authorship-verification.d.ts.map +0 -1
  48. package/dist/authorship-verification.js +0 -532
  49. package/dist/authorship-verification.js.map +0 -1
  50. package/dist/away-detection.d.ts +0 -139
  51. package/dist/away-detection.d.ts.map +0 -1
  52. package/dist/away-detection.js +0 -186
  53. package/dist/away-detection.js.map +0 -1
  54. package/dist/away-inbox-oneshot.d.ts +0 -40
  55. package/dist/away-inbox-oneshot.d.ts.map +0 -1
  56. package/dist/away-inbox-oneshot.js +0 -311
  57. package/dist/away-inbox-oneshot.js.map +0 -1
  58. package/dist/backup-restore-handlers.d.ts +0 -10
  59. package/dist/backup-restore-handlers.d.ts.map +0 -1
  60. package/dist/backup-restore-handlers.js +0 -82
  61. package/dist/backup-restore-handlers.js.map +0 -1
  62. package/dist/backup-restore.d.ts +0 -102
  63. package/dist/backup-restore.d.ts.map +0 -1
  64. package/dist/backup-restore.js +0 -341
  65. package/dist/backup-restore.js.map +0 -1
  66. package/dist/bin/cello-daemon.d.ts +0 -13
  67. package/dist/bin/cello-daemon.d.ts.map +0 -1
  68. package/dist/bin/cello-daemon.js.map +0 -1
  69. package/dist/boot-agents.d.ts +0 -64
  70. package/dist/boot-agents.d.ts.map +0 -1
  71. package/dist/boot-agents.js +0 -241
  72. package/dist/boot-agents.js.map +0 -1
  73. package/dist/boot-connection-state.d.ts +0 -38
  74. package/dist/boot-connection-state.d.ts.map +0 -1
  75. package/dist/boot-connection-state.js +0 -95
  76. package/dist/boot-connection-state.js.map +0 -1
  77. package/dist/boot-core.d.ts +0 -36
  78. package/dist/boot-core.d.ts.map +0 -1
  79. package/dist/boot-core.js +0 -293
  80. package/dist/boot-core.js.map +0 -1
  81. package/dist/boot-parked-content.d.ts +0 -34
  82. package/dist/boot-parked-content.d.ts.map +0 -1
  83. package/dist/boot-parked-content.js +0 -528
  84. package/dist/boot-parked-content.js.map +0 -1
  85. package/dist/boot-sweeps.d.ts +0 -22
  86. package/dist/boot-sweeps.d.ts.map +0 -1
  87. package/dist/boot-sweeps.js +0 -51
  88. package/dist/boot-sweeps.js.map +0 -1
  89. package/dist/bundled-consortium-manifest.d.ts +0 -47
  90. package/dist/bundled-consortium-manifest.d.ts.map +0 -1
  91. package/dist/bundled-consortium-manifest.js +0 -116
  92. package/dist/bundled-consortium-manifest.js.map +0 -1
  93. package/dist/cbor-blob-migration.d.ts +0 -8
  94. package/dist/cbor-blob-migration.d.ts.map +0 -1
  95. package/dist/cbor-blob-migration.js +0 -116
  96. package/dist/cbor-blob-migration.js.map +0 -1
  97. package/dist/challenge-verifier.d.ts +0 -12
  98. package/dist/challenge-verifier.d.ts.map +0 -1
  99. package/dist/challenge-verifier.js +0 -11
  100. package/dist/challenge-verifier.js.map +0 -1
  101. package/dist/close-commitment.d.ts +0 -67
  102. package/dist/close-commitment.d.ts.map +0 -1
  103. package/dist/close-commitment.js +0 -78
  104. package/dist/close-commitment.js.map +0 -1
  105. package/dist/close-session-handler.d.ts +0 -94
  106. package/dist/close-session-handler.d.ts.map +0 -1
  107. package/dist/close-session-handler.js +0 -1418
  108. package/dist/close-session-handler.js.map +0 -1
  109. package/dist/co-attendance.d.ts +0 -29
  110. package/dist/co-attendance.d.ts.map +0 -1
  111. package/dist/co-attendance.js +0 -32
  112. package/dist/co-attendance.js.map +0 -1
  113. package/dist/column-birth.d.ts +0 -40
  114. package/dist/column-birth.d.ts.map +0 -1
  115. package/dist/column-birth.js +0 -61
  116. package/dist/column-birth.js.map +0 -1
  117. package/dist/connect-or-start.d.ts +0 -25
  118. package/dist/connect-or-start.d.ts.map +0 -1
  119. package/dist/connect-or-start.js +0 -175
  120. package/dist/connect-or-start.js.map +0 -1
  121. package/dist/connection-agents.d.ts +0 -16
  122. package/dist/connection-agents.d.ts.map +0 -1
  123. package/dist/connection-agents.js +0 -68
  124. package/dist/connection-agents.js.map +0 -1
  125. package/dist/consent-migration.d.ts +0 -49
  126. package/dist/consent-migration.d.ts.map +0 -1
  127. package/dist/consent-migration.js +0 -128
  128. package/dist/consent-migration.js.map +0 -1
  129. package/dist/consortium-bootstrap.d.ts +0 -138
  130. package/dist/consortium-bootstrap.d.ts.map +0 -1
  131. package/dist/consortium-bootstrap.js +0 -339
  132. package/dist/consortium-bootstrap.js.map +0 -1
  133. package/dist/consortium-fingerprint.d.ts +0 -115
  134. package/dist/consortium-fingerprint.d.ts.map +0 -1
  135. package/dist/consortium-fingerprint.js +0 -175
  136. package/dist/consortium-fingerprint.js.map +0 -1
  137. package/dist/contact-handlers.d.ts +0 -59
  138. package/dist/contact-handlers.d.ts.map +0 -1
  139. package/dist/contact-handlers.js +0 -343
  140. package/dist/contact-handlers.js.map +0 -1
  141. package/dist/contact-pubkey-case.d.ts +0 -65
  142. package/dist/contact-pubkey-case.d.ts.map +0 -1
  143. package/dist/contact-pubkey-case.js +0 -136
  144. package/dist/contact-pubkey-case.js.map +0 -1
  145. package/dist/contacts-tier-migration.d.ts +0 -90
  146. package/dist/contacts-tier-migration.d.ts.map +0 -1
  147. package/dist/contacts-tier-migration.js +0 -150
  148. package/dist/contacts-tier-migration.js.map +0 -1
  149. package/dist/content-encryption-status.d.ts +0 -111
  150. package/dist/content-encryption-status.d.ts.map +0 -1
  151. package/dist/content-encryption-status.js +0 -158
  152. package/dist/content-encryption-status.js.map +0 -1
  153. package/dist/content-park-client.d.ts +0 -90
  154. package/dist/content-park-client.d.ts.map +0 -1
  155. package/dist/content-park-client.js +0 -362
  156. package/dist/content-park-client.js.map +0 -1
  157. package/dist/content-park.d.ts +0 -52
  158. package/dist/content-park.d.ts.map +0 -1
  159. package/dist/content-park.js +0 -1309
  160. package/dist/content-park.js.map +0 -1
  161. package/dist/cross-node-negotiation.d.ts +0 -44
  162. package/dist/cross-node-negotiation.d.ts.map +0 -1
  163. package/dist/cross-node-negotiation.js +0 -34
  164. package/dist/cross-node-negotiation.js.map +0 -1
  165. package/dist/daemon-handle.d.ts +0 -57
  166. package/dist/daemon-handle.d.ts.map +0 -1
  167. package/dist/daemon-handle.js +0 -2
  168. package/dist/daemon-handle.js.map +0 -1
  169. package/dist/daemon-status-report.d.ts +0 -50
  170. package/dist/daemon-status-report.d.ts.map +0 -1
  171. package/dist/daemon-status-report.js +0 -81
  172. package/dist/daemon-status-report.js.map +0 -1
  173. package/dist/daemon.d.ts +0 -45
  174. package/dist/daemon.d.ts.map +0 -1
  175. package/dist/daemon.js +0 -1177
  176. package/dist/daemon.js.map +0 -1
  177. package/dist/db-identity-store.d.ts +0 -159
  178. package/dist/db-identity-store.d.ts.map +0 -1
  179. package/dist/db-identity-store.js +0 -502
  180. package/dist/db-identity-store.js.map +0 -1
  181. package/dist/delivery-open-registry.d.ts +0 -92
  182. package/dist/delivery-open-registry.d.ts.map +0 -1
  183. package/dist/delivery-open-registry.js +0 -121
  184. package/dist/delivery-open-registry.js.map +0 -1
  185. package/dist/delivery-session-suspects.d.ts +0 -56
  186. package/dist/delivery-session-suspects.d.ts.map +0 -1
  187. package/dist/delivery-session-suspects.js +0 -94
  188. package/dist/delivery-session-suspects.js.map +0 -1
  189. package/dist/directory-auth-posture.d.ts +0 -87
  190. package/dist/directory-auth-posture.d.ts.map +0 -1
  191. package/dist/directory-auth-posture.js +0 -134
  192. package/dist/directory-auth-posture.js.map +0 -1
  193. package/dist/directory-bootstrap.d.ts +0 -310
  194. package/dist/directory-bootstrap.d.ts.map +0 -1
  195. package/dist/directory-bootstrap.js +0 -557
  196. package/dist/directory-bootstrap.js.map +0 -1
  197. package/dist/directory-connect.d.ts +0 -27
  198. package/dist/directory-connect.d.ts.map +0 -1
  199. package/dist/directory-connect.js +0 -106
  200. package/dist/directory-connect.js.map +0 -1
  201. package/dist/disconnect-cleanup.d.ts +0 -51
  202. package/dist/disconnect-cleanup.d.ts.map +0 -1
  203. package/dist/disconnect-cleanup.js +0 -72
  204. package/dist/disconnect-cleanup.js.map +0 -1
  205. package/dist/document-amendment-store.d.ts +0 -120
  206. package/dist/document-amendment-store.d.ts.map +0 -1
  207. package/dist/document-amendment-store.js +0 -266
  208. package/dist/document-amendment-store.js.map +0 -1
  209. package/dist/document-delivery-transport.d.ts +0 -168
  210. package/dist/document-delivery-transport.d.ts.map +0 -1
  211. package/dist/document-delivery-transport.js +0 -206
  212. package/dist/document-delivery-transport.js.map +0 -1
  213. package/dist/document-engine.d.ts +0 -134
  214. package/dist/document-engine.d.ts.map +0 -1
  215. package/dist/document-engine.js +0 -282
  216. package/dist/document-engine.js.map +0 -1
  217. package/dist/document-flag.d.ts +0 -58
  218. package/dist/document-flag.d.ts.map +0 -1
  219. package/dist/document-flag.js +0 -70
  220. package/dist/document-flag.js.map +0 -1
  221. package/dist/document-frame-router.d.ts +0 -245
  222. package/dist/document-frame-router.d.ts.map +0 -1
  223. package/dist/document-frame-router.js +0 -397
  224. package/dist/document-frame-router.js.map +0 -1
  225. package/dist/document-gate-wiring.d.ts +0 -61
  226. package/dist/document-gate-wiring.d.ts.map +0 -1
  227. package/dist/document-gate-wiring.js +0 -125
  228. package/dist/document-gate-wiring.js.map +0 -1
  229. package/dist/document-gate.d.ts +0 -149
  230. package/dist/document-gate.d.ts.map +0 -1
  231. package/dist/document-gate.js +0 -509
  232. package/dist/document-gate.js.map +0 -1
  233. package/dist/document-handlers.d.ts +0 -47
  234. package/dist/document-handlers.d.ts.map +0 -1
  235. package/dist/document-handlers.js +0 -2203
  236. package/dist/document-handlers.js.map +0 -1
  237. package/dist/document-handshake.d.ts +0 -176
  238. package/dist/document-handshake.d.ts.map +0 -1
  239. package/dist/document-handshake.js +0 -452
  240. package/dist/document-handshake.js.map +0 -1
  241. package/dist/document-inbound.d.ts +0 -162
  242. package/dist/document-inbound.d.ts.map +0 -1
  243. package/dist/document-inbound.js +0 -530
  244. package/dist/document-inbound.js.map +0 -1
  245. package/dist/document-json.d.ts +0 -120
  246. package/dist/document-json.d.ts.map +0 -1
  247. package/dist/document-json.js +0 -191
  248. package/dist/document-json.js.map +0 -1
  249. package/dist/document-layer.d.ts +0 -215
  250. package/dist/document-layer.d.ts.map +0 -1
  251. package/dist/document-layer.js +0 -1025
  252. package/dist/document-layer.js.map +0 -1
  253. package/dist/document-lifecycle.d.ts +0 -52
  254. package/dist/document-lifecycle.d.ts.map +0 -1
  255. package/dist/document-lifecycle.js +0 -134
  256. package/dist/document-lifecycle.js.map +0 -1
  257. package/dist/document-live-docs.d.ts +0 -58
  258. package/dist/document-live-docs.d.ts.map +0 -1
  259. package/dist/document-live-docs.js +0 -126
  260. package/dist/document-live-docs.js.map +0 -1
  261. package/dist/document-notify.d.ts +0 -228
  262. package/dist/document-notify.d.ts.map +0 -1
  263. package/dist/document-notify.js +0 -580
  264. package/dist/document-notify.js.map +0 -1
  265. package/dist/document-profile.d.ts +0 -61
  266. package/dist/document-profile.d.ts.map +0 -1
  267. package/dist/document-profile.js +0 -112
  268. package/dist/document-profile.js.map +0 -1
  269. package/dist/document-publish.d.ts +0 -87
  270. package/dist/document-publish.d.ts.map +0 -1
  271. package/dist/document-publish.js +0 -173
  272. package/dist/document-publish.js.map +0 -1
  273. package/dist/document-reachability.d.ts +0 -42
  274. package/dist/document-reachability.d.ts.map +0 -1
  275. package/dist/document-reachability.js +0 -80
  276. package/dist/document-reachability.js.map +0 -1
  277. package/dist/document-reconcile-engine.d.ts +0 -66
  278. package/dist/document-reconcile-engine.d.ts.map +0 -1
  279. package/dist/document-reconcile-engine.js +0 -225
  280. package/dist/document-reconcile-engine.js.map +0 -1
  281. package/dist/document-reconcile-scheduler.d.ts +0 -163
  282. package/dist/document-reconcile-scheduler.d.ts.map +0 -1
  283. package/dist/document-reconcile-scheduler.js +0 -303
  284. package/dist/document-reconcile-scheduler.js.map +0 -1
  285. package/dist/document-rejection.d.ts +0 -251
  286. package/dist/document-rejection.d.ts.map +0 -1
  287. package/dist/document-rejection.js +0 -435
  288. package/dist/document-rejection.js.map +0 -1
  289. package/dist/document-screen.d.ts +0 -114
  290. package/dist/document-screen.d.ts.map +0 -1
  291. package/dist/document-screen.js +0 -223
  292. package/dist/document-screen.js.map +0 -1
  293. package/dist/document-store.d.ts +0 -372
  294. package/dist/document-store.d.ts.map +0 -1
  295. package/dist/document-store.js +0 -931
  296. package/dist/document-store.js.map +0 -1
  297. package/dist/document-surface.d.ts +0 -32
  298. package/dist/document-surface.d.ts.map +0 -1
  299. package/dist/document-surface.js +0 -151
  300. package/dist/document-surface.js.map +0 -1
  301. package/dist/document-types.d.ts +0 -94
  302. package/dist/document-types.d.ts.map +0 -1
  303. package/dist/document-types.js +0 -90
  304. package/dist/document-types.js.map +0 -1
  305. package/dist/document-watch.d.ts +0 -69
  306. package/dist/document-watch.d.ts.map +0 -1
  307. package/dist/document-watch.js +0 -108
  308. package/dist/document-watch.js.map +0 -1
  309. package/dist/document-wiring.d.ts +0 -53
  310. package/dist/document-wiring.d.ts.map +0 -1
  311. package/dist/document-wiring.js +0 -323
  312. package/dist/document-wiring.js.map +0 -1
  313. package/dist/document-write-guard.d.ts +0 -66
  314. package/dist/document-write-guard.d.ts.map +0 -1
  315. package/dist/document-write-guard.js +0 -98
  316. package/dist/document-write-guard.js.map +0 -1
  317. package/dist/document-write-path.d.ts +0 -94
  318. package/dist/document-write-path.d.ts.map +0 -1
  319. package/dist/document-write-path.js +0 -530
  320. package/dist/document-write-path.js.map +0 -1
  321. package/dist/error-message.d.ts +0 -7
  322. package/dist/error-message.d.ts.map +0 -1
  323. package/dist/error-message.js +0 -19
  324. package/dist/error-message.js.map +0 -1
  325. package/dist/file-manifest-provider.d.ts +0 -37
  326. package/dist/file-manifest-provider.d.ts.map +0 -1
  327. package/dist/file-manifest-provider.js +0 -105
  328. package/dist/file-manifest-provider.js.map +0 -1
  329. package/dist/frame-values.d.ts +0 -3
  330. package/dist/frame-values.d.ts.map +0 -1
  331. package/dist/frame-values.js +0 -84
  332. package/dist/frame-values.js.map +0 -1
  333. package/dist/frontier-mismatch.d.ts +0 -73
  334. package/dist/frontier-mismatch.d.ts.map +0 -1
  335. package/dist/frontier-mismatch.js +0 -89
  336. package/dist/frontier-mismatch.js.map +0 -1
  337. package/dist/gateway-config-handlers.d.ts +0 -26
  338. package/dist/gateway-config-handlers.d.ts.map +0 -1
  339. package/dist/gateway-config-handlers.js +0 -429
  340. package/dist/gateway-config-handlers.js.map +0 -1
  341. package/dist/held-content.d.ts +0 -145
  342. package/dist/held-content.d.ts.map +0 -1
  343. package/dist/held-content.js +0 -389
  344. package/dist/held-content.js.map +0 -1
  345. package/dist/http-manifest-poll.d.ts +0 -67
  346. package/dist/http-manifest-poll.d.ts.map +0 -1
  347. package/dist/http-manifest-poll.js +0 -150
  348. package/dist/http-manifest-poll.js.map +0 -1
  349. package/dist/identity-migration.d.ts +0 -40
  350. package/dist/identity-migration.d.ts.map +0 -1
  351. package/dist/identity-migration.js +0 -461
  352. package/dist/identity-migration.js.map +0 -1
  353. package/dist/inbound-refusals.d.ts +0 -283
  354. package/dist/inbound-refusals.d.ts.map +0 -1
  355. package/dist/inbound-refusals.js +0 -919
  356. package/dist/inbound-refusals.js.map +0 -1
  357. package/dist/inbound-seal-request.d.ts +0 -32
  358. package/dist/inbound-seal-request.d.ts.map +0 -1
  359. package/dist/inbound-seal-request.js +0 -228
  360. package/dist/inbound-seal-request.js.map +0 -1
  361. package/dist/inbound-sessions.d.ts +0 -291
  362. package/dist/inbound-sessions.d.ts.map +0 -1
  363. package/dist/inbound-sessions.js +0 -1609
  364. package/dist/inbound-sessions.js.map +0 -1
  365. package/dist/inclusion-proof-handlers.d.ts +0 -43
  366. package/dist/inclusion-proof-handlers.d.ts.map +0 -1
  367. package/dist/inclusion-proof-handlers.js +0 -565
  368. package/dist/inclusion-proof-handlers.js.map +0 -1
  369. package/dist/inclusion-proof.d.ts +0 -151
  370. package/dist/inclusion-proof.d.ts.map +0 -1
  371. package/dist/inclusion-proof.js +0 -228
  372. package/dist/inclusion-proof.js.map +0 -1
  373. package/dist/index.d.ts +0 -32
  374. package/dist/index.d.ts.map +0 -1
  375. package/dist/index.js.map +0 -1
  376. package/dist/initiate-session-handler.d.ts +0 -55
  377. package/dist/initiate-session-handler.d.ts.map +0 -1
  378. package/dist/initiate-session-handler.js +0 -310
  379. package/dist/initiate-session-handler.js.map +0 -1
  380. package/dist/ipc-client.d.ts +0 -31
  381. package/dist/ipc-client.d.ts.map +0 -1
  382. package/dist/ipc-client.js +0 -113
  383. package/dist/ipc-client.js.map +0 -1
  384. package/dist/ipc-server.d.ts +0 -63
  385. package/dist/ipc-server.d.ts.map +0 -1
  386. package/dist/ipc-server.js +0 -429
  387. package/dist/ipc-server.js.map +0 -1
  388. package/dist/ipc-surface.d.ts +0 -44
  389. package/dist/ipc-surface.d.ts.map +0 -1
  390. package/dist/ipc-surface.js +0 -107
  391. package/dist/ipc-surface.js.map +0 -1
  392. package/dist/line-lcs.d.ts +0 -51
  393. package/dist/line-lcs.d.ts.map +0 -1
  394. package/dist/line-lcs.js +0 -71
  395. package/dist/line-lcs.js.map +0 -1
  396. package/dist/lock-file.d.ts +0 -39
  397. package/dist/lock-file.d.ts.map +0 -1
  398. package/dist/lock-file.js +0 -120
  399. package/dist/lock-file.js.map +0 -1
  400. package/dist/log-collapse.d.ts +0 -66
  401. package/dist/log-collapse.d.ts.map +0 -1
  402. package/dist/log-collapse.js +0 -244
  403. package/dist/log-collapse.js.map +0 -1
  404. package/dist/log-rotate.d.ts +0 -67
  405. package/dist/log-rotate.d.ts.map +0 -1
  406. package/dist/log-rotate.js +0 -134
  407. package/dist/log-rotate.js.map +0 -1
  408. package/dist/manifest-deps.d.ts +0 -25
  409. package/dist/manifest-deps.d.ts.map +0 -1
  410. package/dist/manifest-deps.js +0 -151
  411. package/dist/manifest-deps.js.map +0 -1
  412. package/dist/manifest-poll-scheduler.d.ts +0 -31
  413. package/dist/manifest-poll-scheduler.d.ts.map +0 -1
  414. package/dist/manifest-poll-scheduler.js +0 -59
  415. package/dist/manifest-poll-scheduler.js.map +0 -1
  416. package/dist/manifest-validity.d.ts +0 -153
  417. package/dist/manifest-validity.d.ts.map +0 -1
  418. package/dist/manifest-validity.js +0 -268
  419. package/dist/manifest-validity.js.map +0 -1
  420. package/dist/manifest-version-store-db.d.ts +0 -24
  421. package/dist/manifest-version-store-db.d.ts.map +0 -1
  422. package/dist/manifest-version-store-db.js +0 -58
  423. package/dist/manifest-version-store-db.js.map +0 -1
  424. package/dist/manifest-version-store.d.ts +0 -16
  425. package/dist/manifest-version-store.d.ts.map +0 -1
  426. package/dist/manifest-version-store.js +0 -15
  427. package/dist/manifest-version-store.js.map +0 -1
  428. package/dist/network-directory-node.d.ts +0 -136
  429. package/dist/network-directory-node.d.ts.map +0 -1
  430. package/dist/network-directory-node.js +0 -810
  431. package/dist/network-directory-node.js.map +0 -1
  432. package/dist/nonce-dedup.d.ts +0 -68
  433. package/dist/nonce-dedup.d.ts.map +0 -1
  434. package/dist/nonce-dedup.js +0 -205
  435. package/dist/nonce-dedup.js.map +0 -1
  436. package/dist/notification-dispatcher.d.ts +0 -92
  437. package/dist/notification-dispatcher.d.ts.map +0 -1
  438. package/dist/notification-dispatcher.js +0 -210
  439. package/dist/notification-dispatcher.js.map +0 -1
  440. package/dist/notification-handlers.d.ts +0 -53
  441. package/dist/notification-handlers.d.ts.map +0 -1
  442. package/dist/notification-handlers.js +0 -461
  443. package/dist/notification-handlers.js.map +0 -1
  444. package/dist/onboarding-guidance.d.ts +0 -79
  445. package/dist/onboarding-guidance.d.ts.map +0 -1
  446. package/dist/onboarding-guidance.js +0 -95
  447. package/dist/onboarding-guidance.js.map +0 -1
  448. package/dist/operator-guidance.d.ts +0 -25
  449. package/dist/operator-guidance.d.ts.map +0 -1
  450. package/dist/operator-guidance.js +0 -50
  451. package/dist/operator-guidance.js.map +0 -1
  452. package/dist/orphan-triage.d.ts +0 -130
  453. package/dist/orphan-triage.d.ts.map +0 -1
  454. package/dist/orphan-triage.js +0 -207
  455. package/dist/orphan-triage.js.map +0 -1
  456. package/dist/outbound-sessions.d.ts +0 -126
  457. package/dist/outbound-sessions.d.ts.map +0 -1
  458. package/dist/outbound-sessions.js +0 -1052
  459. package/dist/outbound-sessions.js.map +0 -1
  460. package/dist/park-envelope.d.ts +0 -329
  461. package/dist/park-envelope.d.ts.map +0 -1
  462. package/dist/park-envelope.js +0 -509
  463. package/dist/park-envelope.js.map +0 -1
  464. package/dist/park-recovery.d.ts +0 -273
  465. package/dist/park-recovery.d.ts.map +0 -1
  466. package/dist/park-recovery.js +0 -717
  467. package/dist/park-recovery.js.map +0 -1
  468. package/dist/park-refusals.d.ts +0 -147
  469. package/dist/park-refusals.d.ts.map +0 -1
  470. package/dist/park-refusals.js +0 -331
  471. package/dist/park-refusals.js.map +0 -1
  472. package/dist/quarantine-framing.d.ts +0 -92
  473. package/dist/quarantine-framing.d.ts.map +0 -1
  474. package/dist/quarantine-framing.js +0 -111
  475. package/dist/quarantine-framing.js.map +0 -1
  476. package/dist/reconnect-drain.d.ts +0 -22
  477. package/dist/reconnect-drain.d.ts.map +0 -1
  478. package/dist/reconnect-drain.js +0 -65
  479. package/dist/reconnect-drain.js.map +0 -1
  480. package/dist/recovered-position.d.ts +0 -14
  481. package/dist/recovered-position.d.ts.map +0 -1
  482. package/dist/recovered-position.js +0 -59
  483. package/dist/recovered-position.js.map +0 -1
  484. package/dist/refusal-notices.d.ts +0 -196
  485. package/dist/refusal-notices.d.ts.map +0 -1
  486. package/dist/refusal-notices.js +0 -516
  487. package/dist/refusal-notices.js.map +0 -1
  488. package/dist/refusal-reasons.d.ts +0 -245
  489. package/dist/refusal-reasons.d.ts.map +0 -1
  490. package/dist/refusal-reasons.js +0 -363
  491. package/dist/refusal-reasons.js.map +0 -1
  492. package/dist/register-handler.d.ts +0 -36
  493. package/dist/register-handler.d.ts.map +0 -1
  494. package/dist/register-handler.js +0 -285
  495. package/dist/register-handler.js.map +0 -1
  496. package/dist/registration-context.d.ts +0 -72
  497. package/dist/registration-context.d.ts.map +0 -1
  498. package/dist/registration-context.js +0 -126
  499. package/dist/registration-context.js.map +0 -1
  500. package/dist/registration-manager.d.ts +0 -94
  501. package/dist/registration-manager.d.ts.map +0 -1
  502. package/dist/registration-manager.js +0 -585
  503. package/dist/registration-manager.js.map +0 -1
  504. package/dist/registration-persistence.d.ts +0 -183
  505. package/dist/registration-persistence.d.ts.map +0 -1
  506. package/dist/registration-persistence.js +0 -263
  507. package/dist/registration-persistence.js.map +0 -1
  508. package/dist/registry-poll.d.ts +0 -52
  509. package/dist/registry-poll.d.ts.map +0 -1
  510. package/dist/registry-poll.js +0 -140
  511. package/dist/registry-poll.js.map +0 -1
  512. package/dist/registry-version-store-db.d.ts +0 -22
  513. package/dist/registry-version-store-db.d.ts.map +0 -1
  514. package/dist/registry-version-store-db.js +0 -50
  515. package/dist/registry-version-store-db.js.map +0 -1
  516. package/dist/relay-endpoints.d.ts +0 -18
  517. package/dist/relay-endpoints.d.ts.map +0 -1
  518. package/dist/relay-endpoints.js +0 -9
  519. package/dist/relay-endpoints.js.map +0 -1
  520. package/dist/relay-only.d.ts +0 -140
  521. package/dist/relay-only.d.ts.map +0 -1
  522. package/dist/relay-only.js +0 -193
  523. package/dist/relay-only.js.map +0 -1
  524. package/dist/relay-receipt-store.d.ts +0 -155
  525. package/dist/relay-receipt-store.d.ts.map +0 -1
  526. package/dist/relay-receipt-store.js +0 -284
  527. package/dist/relay-receipt-store.js.map +0 -1
  528. package/dist/relay-reconnect.d.ts +0 -32
  529. package/dist/relay-reconnect.d.ts.map +0 -1
  530. package/dist/relay-reconnect.js +0 -29
  531. package/dist/relay-reconnect.js.map +0 -1
  532. package/dist/reply-lag.d.ts +0 -11
  533. package/dist/reply-lag.d.ts.map +0 -1
  534. package/dist/reply-lag.js +0 -46
  535. package/dist/reply-lag.js.map +0 -1
  536. package/dist/resolve-named-agent.d.ts +0 -49
  537. package/dist/resolve-named-agent.d.ts.map +0 -1
  538. package/dist/resolve-named-agent.js +0 -77
  539. package/dist/resolve-named-agent.js.map +0 -1
  540. package/dist/restart-seal-resolver.d.ts +0 -110
  541. package/dist/restart-seal-resolver.d.ts.map +0 -1
  542. package/dist/restart-seal-resolver.js +0 -353
  543. package/dist/restart-seal-resolver.js.map +0 -1
  544. package/dist/resume-last-seen.d.ts +0 -15
  545. package/dist/resume-last-seen.d.ts.map +0 -1
  546. package/dist/resume-last-seen.js +0 -44
  547. package/dist/resume-last-seen.js.map +0 -1
  548. package/dist/retry-queue.d.ts +0 -203
  549. package/dist/retry-queue.d.ts.map +0 -1
  550. package/dist/retry-queue.js +0 -701
  551. package/dist/retry-queue.js.map +0 -1
  552. package/dist/roster-freshness.d.ts +0 -160
  553. package/dist/roster-freshness.d.ts.map +0 -1
  554. package/dist/roster-freshness.js +0 -250
  555. package/dist/roster-freshness.js.map +0 -1
  556. package/dist/screening-status.d.ts +0 -15
  557. package/dist/screening-status.d.ts.map +0 -1
  558. package/dist/screening-status.js +0 -65
  559. package/dist/screening-status.js.map +0 -1
  560. package/dist/seal-carried-close.d.ts +0 -37
  561. package/dist/seal-carried-close.d.ts.map +0 -1
  562. package/dist/seal-carried-close.js +0 -179
  563. package/dist/seal-carried-close.js.map +0 -1
  564. package/dist/seal-certificate-pull.d.ts +0 -79
  565. package/dist/seal-certificate-pull.d.ts.map +0 -1
  566. package/dist/seal-certificate-pull.js +0 -186
  567. package/dist/seal-certificate-pull.js.map +0 -1
  568. package/dist/seal-certified-root-check.d.ts +0 -37
  569. package/dist/seal-certified-root-check.d.ts.map +0 -1
  570. package/dist/seal-certified-root-check.js +0 -127
  571. package/dist/seal-certified-root-check.js.map +0 -1
  572. package/dist/seal-coordinator.d.ts +0 -118
  573. package/dist/seal-coordinator.d.ts.map +0 -1
  574. package/dist/seal-coordinator.js +0 -927
  575. package/dist/seal-coordinator.js.map +0 -1
  576. package/dist/seal-escalation.d.ts +0 -80
  577. package/dist/seal-escalation.d.ts.map +0 -1
  578. package/dist/seal-escalation.js +0 -283
  579. package/dist/seal-escalation.js.map +0 -1
  580. package/dist/seal-evidence-root-check.d.ts +0 -70
  581. package/dist/seal-evidence-root-check.d.ts.map +0 -1
  582. package/dist/seal-evidence-root-check.js +0 -199
  583. package/dist/seal-evidence-root-check.js.map +0 -1
  584. package/dist/seal-failure-store.d.ts +0 -129
  585. package/dist/seal-failure-store.d.ts.map +0 -1
  586. package/dist/seal-failure-store.js +0 -173
  587. package/dist/seal-failure-store.js.map +0 -1
  588. package/dist/seal-flows.d.ts +0 -107
  589. package/dist/seal-flows.d.ts.map +0 -1
  590. package/dist/seal-flows.js +0 -638
  591. package/dist/seal-flows.js.map +0 -1
  592. package/dist/seal-frontier-verify.d.ts +0 -103
  593. package/dist/seal-frontier-verify.d.ts.map +0 -1
  594. package/dist/seal-frontier-verify.js +0 -143
  595. package/dist/seal-frontier-verify.js.map +0 -1
  596. package/dist/seal-leaf.d.ts +0 -58
  597. package/dist/seal-leaf.d.ts.map +0 -1
  598. package/dist/seal-leaf.js +0 -112
  599. package/dist/seal-leaf.js.map +0 -1
  600. package/dist/seal-legibility-tbs.d.ts +0 -25
  601. package/dist/seal-legibility-tbs.d.ts.map +0 -1
  602. package/dist/seal-legibility-tbs.js +0 -77
  603. package/dist/seal-legibility-tbs.js.map +0 -1
  604. package/dist/seal-local-terminus.d.ts +0 -41
  605. package/dist/seal-local-terminus.d.ts.map +0 -1
  606. package/dist/seal-local-terminus.js +0 -170
  607. package/dist/seal-local-terminus.js.map +0 -1
  608. package/dist/seal-receipt-upgrade.d.ts +0 -30
  609. package/dist/seal-receipt-upgrade.d.ts.map +0 -1
  610. package/dist/seal-receipt-upgrade.js +0 -49
  611. package/dist/seal-receipt-upgrade.js.map +0 -1
  612. package/dist/seal-relay-silence.d.ts +0 -51
  613. package/dist/seal-relay-silence.d.ts.map +0 -1
  614. package/dist/seal-relay-silence.js +0 -76
  615. package/dist/seal-relay-silence.js.map +0 -1
  616. package/dist/seal-settle.d.ts +0 -38
  617. package/dist/seal-settle.d.ts.map +0 -1
  618. package/dist/seal-settle.js +0 -33
  619. package/dist/seal-settle.js.map +0 -1
  620. package/dist/seal-upgrade.d.ts +0 -107
  621. package/dist/seal-upgrade.d.ts.map +0 -1
  622. package/dist/seal-upgrade.js +0 -200
  623. package/dist/seal-upgrade.js.map +0 -1
  624. package/dist/sealed-conversation.d.ts +0 -36
  625. package/dist/sealed-conversation.d.ts.map +0 -1
  626. package/dist/sealed-conversation.js +0 -171
  627. package/dist/sealed-conversation.js.map +0 -1
  628. package/dist/sealed-leaf-set.d.ts +0 -92
  629. package/dist/sealed-leaf-set.d.ts.map +0 -1
  630. package/dist/sealed-leaf-set.js +0 -122
  631. package/dist/sealed-leaf-set.js.map +0 -1
  632. package/dist/send-claims.d.ts +0 -56
  633. package/dist/send-claims.d.ts.map +0 -1
  634. package/dist/send-claims.js +0 -50
  635. package/dist/send-claims.js.map +0 -1
  636. package/dist/session-assignment-parser.d.ts +0 -98
  637. package/dist/session-assignment-parser.d.ts.map +0 -1
  638. package/dist/session-assignment-parser.js +0 -325
  639. package/dist/session-assignment-parser.js.map +0 -1
  640. package/dist/session-category.d.ts +0 -19
  641. package/dist/session-category.d.ts.map +0 -1
  642. package/dist/session-category.js +0 -14
  643. package/dist/session-category.js.map +0 -1
  644. package/dist/session-ceremony.d.ts +0 -297
  645. package/dist/session-ceremony.d.ts.map +0 -1
  646. package/dist/session-ceremony.js +0 -964
  647. package/dist/session-ceremony.js.map +0 -1
  648. package/dist/session-closed.d.ts +0 -79
  649. package/dist/session-closed.d.ts.map +0 -1
  650. package/dist/session-closed.js +0 -189
  651. package/dist/session-closed.js.map +0 -1
  652. package/dist/session-connection-gater.d.ts +0 -148
  653. package/dist/session-connection-gater.d.ts.map +0 -1
  654. package/dist/session-connection-gater.js +0 -332
  655. package/dist/session-connection-gater.js.map +0 -1
  656. package/dist/session-content-context.d.ts +0 -162
  657. package/dist/session-content-context.d.ts.map +0 -1
  658. package/dist/session-content-context.js +0 -2
  659. package/dist/session-content-context.js.map +0 -1
  660. package/dist/session-content-handlers.d.ts +0 -82
  661. package/dist/session-content-handlers.d.ts.map +0 -1
  662. package/dist/session-content-handlers.js +0 -1382
  663. package/dist/session-content-handlers.js.map +0 -1
  664. package/dist/session-content-ingest.d.ts +0 -206
  665. package/dist/session-content-ingest.d.ts.map +0 -1
  666. package/dist/session-content-ingest.js +0 -2167
  667. package/dist/session-content-ingest.js.map +0 -1
  668. package/dist/session-content-send.d.ts +0 -191
  669. package/dist/session-content-send.d.ts.map +0 -1
  670. package/dist/session-content-send.js +0 -1360
  671. package/dist/session-content-send.js.map +0 -1
  672. package/dist/session-delivery-acks.d.ts +0 -169
  673. package/dist/session-delivery-acks.d.ts.map +0 -1
  674. package/dist/session-delivery-acks.js +0 -569
  675. package/dist/session-delivery-acks.js.map +0 -1
  676. package/dist/session-ephemerals.d.ts +0 -279
  677. package/dist/session-ephemerals.d.ts.map +0 -1
  678. package/dist/session-ephemerals.js +0 -591
  679. package/dist/session-ephemerals.js.map +0 -1
  680. package/dist/session-leaf-records.d.ts +0 -159
  681. package/dist/session-leaf-records.d.ts.map +0 -1
  682. package/dist/session-leaf-records.js +0 -408
  683. package/dist/session-leaf-records.js.map +0 -1
  684. package/dist/session-lifecycle.d.ts +0 -303
  685. package/dist/session-lifecycle.d.ts.map +0 -1
  686. package/dist/session-lifecycle.js +0 -1679
  687. package/dist/session-lifecycle.js.map +0 -1
  688. package/dist/session-liveness.d.ts +0 -135
  689. package/dist/session-liveness.d.ts.map +0 -1
  690. package/dist/session-liveness.js +0 -347
  691. package/dist/session-liveness.js.map +0 -1
  692. package/dist/session-name.d.ts +0 -35
  693. package/dist/session-name.d.ts.map +0 -1
  694. package/dist/session-name.js +0 -60
  695. package/dist/session-name.js.map +0 -1
  696. package/dist/session-node-factory.d.ts +0 -18
  697. package/dist/session-node-factory.d.ts.map +0 -1
  698. package/dist/session-node-factory.js +0 -182
  699. package/dist/session-node-factory.js.map +0 -1
  700. package/dist/session-node-manager.d.ts +0 -875
  701. package/dist/session-node-manager.d.ts.map +0 -1
  702. package/dist/session-node-manager.js +0 -2995
  703. package/dist/session-node-manager.js.map +0 -1
  704. package/dist/session-node-types.d.ts +0 -1057
  705. package/dist/session-node-types.d.ts.map +0 -1
  706. package/dist/session-node-types.js +0 -657
  707. package/dist/session-node-types.js.map +0 -1
  708. package/dist/session-notify.d.ts +0 -46
  709. package/dist/session-notify.d.ts.map +0 -1
  710. package/dist/session-notify.js +0 -116
  711. package/dist/session-notify.js.map +0 -1
  712. package/dist/session-own-chain-store.d.ts +0 -65
  713. package/dist/session-own-chain-store.d.ts.map +0 -1
  714. package/dist/session-own-chain-store.js +0 -75
  715. package/dist/session-own-chain-store.js.map +0 -1
  716. package/dist/session-queries.d.ts +0 -476
  717. package/dist/session-queries.d.ts.map +0 -1
  718. package/dist/session-queries.js +0 -1007
  719. package/dist/session-queries.js.map +0 -1
  720. package/dist/session-read-handlers.d.ts +0 -87
  721. package/dist/session-read-handlers.d.ts.map +0 -1
  722. package/dist/session-read-handlers.js +0 -682
  723. package/dist/session-read-handlers.js.map +0 -1
  724. package/dist/session-records.d.ts +0 -341
  725. package/dist/session-records.d.ts.map +0 -1
  726. package/dist/session-records.js +0 -858
  727. package/dist/session-records.js.map +0 -1
  728. package/dist/session-relay-client.d.ts +0 -659
  729. package/dist/session-relay-client.d.ts.map +0 -1
  730. package/dist/session-relay-client.js +0 -2876
  731. package/dist/session-relay-client.js.map +0 -1
  732. package/dist/session-relay.d.ts +0 -397
  733. package/dist/session-relay.d.ts.map +0 -1
  734. package/dist/session-relay.js +0 -1636
  735. package/dist/session-relay.js.map +0 -1
  736. package/dist/session-salt-agreement.d.ts +0 -331
  737. package/dist/session-salt-agreement.d.ts.map +0 -1
  738. package/dist/session-salt-agreement.js +0 -472
  739. package/dist/session-salt-agreement.js.map +0 -1
  740. package/dist/session-salts.d.ts +0 -432
  741. package/dist/session-salts.d.ts.map +0 -1
  742. package/dist/session-salts.js +0 -1540
  743. package/dist/session-salts.js.map +0 -1
  744. package/dist/session-schema.d.ts +0 -30
  745. package/dist/session-schema.d.ts.map +0 -1
  746. package/dist/session-schema.js +0 -877
  747. package/dist/session-schema.js.map +0 -1
  748. package/dist/session-seal-leaf-store.d.ts +0 -70
  749. package/dist/session-seal-leaf-store.d.ts.map +0 -1
  750. package/dist/session-seal-leaf-store.js +0 -105
  751. package/dist/session-seal-leaf-store.js.map +0 -1
  752. package/dist/session-seal.d.ts +0 -334
  753. package/dist/session-seal.d.ts.map +0 -1
  754. package/dist/session-seal.js +0 -1017
  755. package/dist/session-seal.js.map +0 -1
  756. package/dist/session-terminal-refusal.d.ts +0 -65
  757. package/dist/session-terminal-refusal.d.ts.map +0 -1
  758. package/dist/session-terminal-refusal.js +0 -87
  759. package/dist/session-terminal-refusal.js.map +0 -1
  760. package/dist/session-tree.d.ts +0 -110
  761. package/dist/session-tree.d.ts.map +0 -1
  762. package/dist/session-tree.js +0 -144
  763. package/dist/session-tree.js.map +0 -1
  764. package/dist/session-views.d.ts +0 -47
  765. package/dist/session-views.d.ts.map +0 -1
  766. package/dist/session-views.js +0 -278
  767. package/dist/session-views.js.map +0 -1
  768. package/dist/signal-handlers.d.ts +0 -63
  769. package/dist/signal-handlers.d.ts.map +0 -1
  770. package/dist/signal-handlers.js +0 -980
  771. package/dist/signal-handlers.js.map +0 -1
  772. package/dist/signal-requirement-policy.d.ts +0 -51
  773. package/dist/signal-requirement-policy.d.ts.map +0 -1
  774. package/dist/signal-requirement-policy.js +0 -89
  775. package/dist/signal-requirement-policy.js.map +0 -1
  776. package/dist/signal-revocability.d.ts +0 -49
  777. package/dist/signal-revocability.d.ts.map +0 -1
  778. package/dist/signal-revocability.js +0 -93
  779. package/dist/signal-revocability.js.map +0 -1
  780. package/dist/signal-submission.d.ts +0 -181
  781. package/dist/signal-submission.d.ts.map +0 -1
  782. package/dist/signal-submission.js +0 -368
  783. package/dist/signal-submission.js.map +0 -1
  784. package/dist/signaling-connect.d.ts +0 -118
  785. package/dist/signaling-connect.d.ts.map +0 -1
  786. package/dist/signaling-connect.js +0 -538
  787. package/dist/signaling-connect.js.map +0 -1
  788. package/dist/signaling-wiring.d.ts +0 -105
  789. package/dist/signaling-wiring.d.ts.map +0 -1
  790. package/dist/signaling-wiring.js +0 -393
  791. package/dist/signaling-wiring.js.map +0 -1
  792. package/dist/singleton-lock.d.ts +0 -85
  793. package/dist/singleton-lock.d.ts.map +0 -1
  794. package/dist/singleton-lock.js +0 -219
  795. package/dist/singleton-lock.js.map +0 -1
  796. package/dist/sqlcipher-db.d.ts +0 -139
  797. package/dist/sqlcipher-db.d.ts.map +0 -1
  798. package/dist/sqlcipher-db.js +0 -357
  799. package/dist/sqlcipher-db.js.map +0 -1
  800. package/dist/standing-receivers.d.ts +0 -319
  801. package/dist/standing-receivers.d.ts.map +0 -1
  802. package/dist/standing-receivers.js +0 -1295
  803. package/dist/standing-receivers.js.map +0 -1
  804. package/dist/start-agent.d.ts +0 -64
  805. package/dist/start-agent.d.ts.map +0 -1
  806. package/dist/start-agent.js +0 -136
  807. package/dist/start-agent.js.map +0 -1
  808. package/dist/status-handler.d.ts +0 -54
  809. package/dist/status-handler.d.ts.map +0 -1
  810. package/dist/status-handler.js +0 -61
  811. package/dist/status-handler.js.map +0 -1
  812. package/dist/submission-retry.d.ts +0 -208
  813. package/dist/submission-retry.d.ts.map +0 -1
  814. package/dist/submission-retry.js +0 -506
  815. package/dist/submission-retry.js.map +0 -1
  816. package/dist/telegram-bot-client.d.ts +0 -34
  817. package/dist/telegram-bot-client.d.ts.map +0 -1
  818. package/dist/telegram-bot-client.js +0 -36
  819. package/dist/telegram-bot-client.js.map +0 -1
  820. package/dist/telegram-doorbell.d.ts +0 -38
  821. package/dist/telegram-doorbell.d.ts.map +0 -1
  822. package/dist/telegram-doorbell.js +0 -140
  823. package/dist/telegram-doorbell.js.map +0 -1
  824. package/dist/test-handlers.d.ts +0 -62
  825. package/dist/test-handlers.d.ts.map +0 -1
  826. package/dist/test-handlers.js +0 -240
  827. package/dist/test-handlers.js.map +0 -1
  828. package/dist/testing.d.ts +0 -10
  829. package/dist/testing.d.ts.map +0 -1
  830. package/dist/testing.js +0 -10
  831. package/dist/testing.js.map +0 -1
  832. package/dist/transport-composition.d.ts +0 -31
  833. package/dist/transport-composition.d.ts.map +0 -1
  834. package/dist/transport-composition.js +0 -55
  835. package/dist/transport-composition.js.map +0 -1
  836. package/dist/transport-selector.d.ts +0 -202
  837. package/dist/transport-selector.d.ts.map +0 -1
  838. package/dist/transport-selector.js +0 -196
  839. package/dist/transport-selector.js.map +0 -1
  840. package/dist/trust-signal-pickup-listener.d.ts +0 -43
  841. package/dist/trust-signal-pickup-listener.d.ts.map +0 -1
  842. package/dist/trust-signal-pickup-listener.js +0 -48
  843. package/dist/trust-signal-pickup-listener.js.map +0 -1
  844. package/dist/trust-signal-store.d.ts +0 -406
  845. package/dist/trust-signal-store.d.ts.map +0 -1
  846. package/dist/trust-signal-store.js +0 -939
  847. package/dist/trust-signal-store.js.map +0 -1
  848. package/dist/trust-signal-sweep-tick.d.ts +0 -60
  849. package/dist/trust-signal-sweep-tick.d.ts.map +0 -1
  850. package/dist/trust-signal-sweep-tick.js +0 -101
  851. package/dist/trust-signal-sweep-tick.js.map +0 -1
  852. package/dist/trust-signal-sweep.d.ts +0 -94
  853. package/dist/trust-signal-sweep.d.ts.map +0 -1
  854. package/dist/trust-signal-sweep.js +0 -147
  855. package/dist/trust-signal-sweep.js.map +0 -1
  856. package/dist/type-registry.d.ts +0 -42
  857. package/dist/type-registry.d.ts.map +0 -1
  858. package/dist/type-registry.js +0 -37
  859. package/dist/type-registry.js.map +0 -1
  860. package/dist/types.d.ts +0 -746
  861. package/dist/types.d.ts.map +0 -1
  862. package/dist/types.js +0 -20
  863. package/dist/types.js.map +0 -1
  864. package/dist/unresolved-nodes-report.d.ts +0 -14
  865. package/dist/unresolved-nodes-report.d.ts.map +0 -1
  866. package/dist/unresolved-nodes-report.js +0 -96
  867. package/dist/unresolved-nodes-report.js.map +0 -1
  868. package/dist/vocabulary.d.ts +0 -150
  869. package/dist/vocabulary.d.ts.map +0 -1
  870. package/dist/vocabulary.js +0 -386
  871. package/dist/vocabulary.js.map +0 -1
  872. package/dist/who-label.d.ts +0 -28
  873. package/dist/who-label.d.ts.map +0 -1
  874. package/dist/who-label.js +0 -31
  875. package/dist/who-label.js.map +0 -1
  876. package/dist/who-resolver.d.ts +0 -15
  877. package/dist/who-resolver.d.ts.map +0 -1
  878. package/dist/who-resolver.js +0 -47
  879. package/dist/who-resolver.js.map +0 -1
  880. package/dist/wire-content-hash.d.ts +0 -93
  881. package/dist/wire-content-hash.d.ts.map +0 -1
  882. package/dist/wire-content-hash.js +0 -116
  883. package/dist/wire-content-hash.js.map +0 -1
  884. package/dist/withheld-content.d.ts +0 -13
  885. package/dist/withheld-content.d.ts.map +0 -1
  886. package/dist/withheld-content.js +0 -46
  887. package/dist/withheld-content.js.map +0 -1
  888. package/dist/witness-alerts.d.ts +0 -40
  889. package/dist/witness-alerts.d.ts.map +0 -1
  890. package/dist/witness-alerts.js +0 -102
  891. package/dist/witness-alerts.js.map +0 -1
@@ -1,591 +0,0 @@
1
- import { generateSessionEphemeral, destroySessionEphemeral, deriveSessionSecrets, signSessionEphemeral, verifySessionEphemeral, } from "@cello-protocol/crypto";
2
- import { encodeCbor } from "@cello-protocol/protocol-types";
3
- import { extractErrorMessage } from "./error-message.js";
4
- import { CONTENT_ENCRYPTION_REASONS, CONTENT_ENCRYPTION_GUIDANCE, } from "./content-encryption-status.js";
5
- import { CELLO_CONTENT_PROTOCOL_ID } from "@cello-protocol/transport";
6
- import * as lp from "it-length-prefixed";
7
- import { SESSION_KEY_ANNOUNCE_RETRIES, SESSION_KEY_ANNOUNCE_RETRY_MS, } from "./session-node-types.js";
8
- export class SessionEphemerals {
9
- #ctx;
10
- constructor(ctx) {
11
- this.#ctx = ctx;
12
- }
13
- /**
14
- * THIS SESSION'S THROWAWAY KEYPAIR — `DOD-M15-KEYAGREE-1`, the lifecycle half (006-CRYPTO).
15
- *
16
- * **A `Map`, never a field on the session row, and that is the whole point.** The secret is held
17
- * in memory and nowhere else: not in SQLite, not in a backup, not in an export. Forward secrecy is
18
- * not a property of minting a fresh key — it is a property of the old one being GONE — so anything
19
- * that made this durable would void it permanently and silently.
20
- *
21
- * Minted ONCE per session, at the moment the session becomes active, and destroyed at every site
22
- * that drops the `#activeNodes` entry — see `#destroySessionEphemeralFor`, which explains why it
23
- * is keyed to the entry rather than to the cache eviction. A revived session therefore mints a
24
- * FRESH one and re-keys, which is Decisions Carried #5; that is only true because the interrupt
25
- * path destroys, and an earlier version of this comment asserted it while the interrupt path
26
- * silently kept the old key for hours.
27
- *
28
- * ⚠️ NOTHING SENDS THE PUBLIC HALF YET. The exchange, the signature over it, and encrypting
29
- * content with the agreed secret are `007-CRYPTO`, and they are one wire format that ships
30
- * together. Until that lands, this keypair is minted, held and destroyed correctly and no message
31
- * is encrypted with it — which `#contentEncryptionStatus` states on the session itself rather than
32
- * leaving a reader to assume.
33
- */
34
- #sessionEphemerals = new Map();
35
- /**
36
- * THE AGREED CONTENT KEY — `DOD-M15-EPHEMERAL-AUTH-1` (007-CRYPTO).
37
- *
38
- * Present only once the peer's SIGNED ephemeral has been verified against the counterparty
39
- * identity this session is with. Absent means every message body on this session goes out under
40
- * the transport's protection alone, and `#contentEncryptionState` says which of the reasons that
41
- * is — never silence.
42
- *
43
- * In memory only, and destroyed with the ephemeral it came from. It is the same secret one step
44
- * on, so persisting it would void forward secrecy exactly as persisting the ephemeral would.
45
- */
46
- #sessionContentKeys = new Map();
47
- /**
48
- * WHICH peer ephemeral produced the key we hold, hex — 007-CRYPTO, review F1.
49
- *
50
- * The idempotence guard keys on THIS rather than on "a key exists", because a re-keying peer sends
51
- * a DIFFERENT half and must be adopted, while the same half re-announced on every connect must
52
- * not churn. Keying on presence meant the side that never restarted kept a stale key and every
53
- * message failed to decrypt — reported to its operator as possible tampering.
54
- */
55
- #sessionContentKeyPeerHalf = new Map();
56
- /**
57
- * WHY this session has no content key, when it has none. A closed reason, never a free string.
58
- */
59
- #contentEncryptionReasons = new Map();
60
- /**
61
- * DOD-M15-FRAME-1 — a proven identity failure ends the session, and says so as an OBSERVATION.
62
- *
63
- * SESSION-ENDING, NOT PER-MESSAGE. One frame that fails to verify against the expected
64
- * counterparty is not a bad message to drop while hoping the next is better — it is evidence
65
- * about the CONNECTION. Dropping the frame and continuing leaves the same peer able to try again
66
- * with a frame that omits the proof entirely.
67
- *
68
- * THE WORDING IS NOT A VERDICT, and that is deliberate rather than squeamish. The identical
69
- * signal comes from a real impersonation attempt and from our own infrastructure mishandling a
70
- * fallback — a relay bug, a bad deploy, an uncovered edge in the direct-connection failover. The
71
- * daemon cannot tell those apart from this signal, so it must not pretend to. This mirrors the
72
- * account-recovery pattern already in the codebase, which anchors a compromise window to logged
73
- * events and accepts that some evidence cannot separate misconduct from an innocent cause.
74
- *
75
- * IT MUST NEVER FEED A TRUST SIGNAL. An automatic reputation consequence driven by a signal this
76
- * ambiguous would let a hostile peer — or a bad deploy of ours — manufacture a mark against an
77
- * innocent counterparty. Recorded here because the absence of that wiring is a decision, not an
78
- * omission, and the next person to reach for it should find this comment first.
79
- *
80
- * The accusatory half stays local for the same reason. Freezing what THIS daemon trusts is always
81
- * safe unilaterally; asserting on the record that a counterparty misbehaved needs corroboration
82
- * from a party the accusing client does not control, which is `DOD-M15-CORROBORATE-1` (the relay
83
- * holds the sender's signed hash independently and never routes it through the receiver).
84
- */
85
- /**
86
- * DOD-M15-SEALWIRE-1 bullet 6 (part A) — THE SALT AGREEMENT, the I/O half.
87
- *
88
- * The decisions live in `session-salt-agreement.ts` as a pure function; everything here is the
89
- * three things that function cannot do: read and write the durable row, put a frame on the wire,
90
- * and stop a session.
91
- *
92
- * ─── Where a contribution may travel, and it is the one rule that cannot be fixed later ───────
93
- *
94
- * `/cello/content/1.0.0` ONLY. It rides circuit-relay-v2 carrying its own Noise session, so a
95
- * relay forwarding it sees ciphertext. It must never be added to `session_offer` /
96
- * `session_offer_accept` or anything a DIRECTORY brokers — and that is the trap, because the only
97
- * round trip at session open today runs on the directory's signaling stream, which makes it the
98
- * obvious place to put one. A session that shipped it there could not be repaired: the relay
99
- * would already hold the salt and every hash it protects.
100
- */
101
- /**
102
- * MINT THIS SESSION'S THROWAWAY KEYPAIR — once, at the moment the session becomes active.
103
- *
104
- * Idempotent on purpose. Three paths make a session active (open, hand-off from the standing
105
- * receiver, revive) and a reconnect can re-enter them; minting a second keypair mid-session would
106
- * leave the two sides deriving against a moving value, and the symptom — a session that reconnects
107
- * and still cannot agree — reads as a network fault rather than as a bug here. `#saltContributionFor`
108
- * mints once for exactly the same reason.
109
- *
110
- * A REVIVED session is not an exception, and this guard is why it took a fix to make that true.
111
- * Revival requires status `interrupted`, and the producer of `interrupted` drops the entry without
112
- * evicting — so while the secret outlived that path, this guard found it still present and
113
- * silently kept a key that had been resident for hours, on the one path where re-keying was
114
- * explicitly decided. The interrupt path now destroys it, so the map really is empty by the time
115
- * a revival reaches here and it mints fresh (Decisions Carried #5).
116
- */
117
- mintSessionEphemeral(agentName, sessionId, correlationId) {
118
- const key = this.#ctx.sessionKey(agentName, sessionId);
119
- if (this.#sessionEphemerals.has(key))
120
- return;
121
- this.#sessionEphemerals.set(key, generateSessionEphemeral());
122
- this.#ctx.logger.debug("session.ephemeral.minted", {
123
- agentName, sessionId, correlationId,
124
- // The PUBLIC half only, and only a prefix of it. The secret must never reach a log line, and
125
- // an operator correlating two daemons needs an identifier rather than the value.
126
- publicKeyPrefix: Buffer.from(this.#sessionEphemerals.get(key).publicKey.subarray(0, 8)).toString("hex"),
127
- });
128
- }
129
- /**
130
- * DESTROY THIS SESSION'S THROWAWAY SECRET — 006-CRYPTO, and this is what forward secrecy IS.
131
- *
132
- * ⚠️ CALLED FROM EVERY SITE THAT DROPS THE `#activeNodes` ENTRY, not from `#evictSessionCaches`,
133
- * and review pass 2 finding 2 is why. The first version rode the evict, which sounded right and
134
- * was wrong on the path an interrupted session actually takes:
135
- *
136
- * `markInterruptedWithDetails` drops the entry and DELIBERATELY does not evict — the received
137
- * plaintext has to stay drainable and the TTF park timers have to stay armed. So the secret
138
- * survived. Then, when that session later sealed, `destroySessionNode` returned at its
139
- * `if (!entry) return` — the entry was already gone — and never reached the evict either. The
140
- * receipt landed, the session was over, and the secret stayed resident until the process exited.
141
- *
142
- * A relay blip is the ORDINARY way a session ends badly, so that was the common path, not a corner.
143
- * The evict's reasons for keeping the other caches are real and do not transfer: buffered plaintext
144
- * must stay readable, and a secret nothing reads must not stay alive.
145
- *
146
- * Zero THEN drop. Dropping alone leaves the bytes wherever the collector last moved them;
147
- * `destroySessionEphemeral` overwrites the one copy this process controls.
148
- */
149
- destroySessionEphemeralFor(agentName, sessionId, correlationId) {
150
- const key = this.#ctx.sessionKey(agentName, sessionId);
151
- // 007-CRYPTO: the AGREED KEY goes with the ephemeral it was derived from. It is the same secret
152
- // one step on — leaving it behind would keep the thing the destruction exists to remove.
153
- const agreed = this.#sessionContentKeys.get(key);
154
- if (agreed) {
155
- agreed.fill(0);
156
- this.#sessionContentKeys.delete(key);
157
- }
158
- this.#sessionContentKeyPeerHalf.delete(key);
159
- this.#contentEncryptionReasons.delete(key);
160
- const ephemeral = this.#sessionEphemerals.get(key);
161
- if (!ephemeral)
162
- return;
163
- destroySessionEphemeral(ephemeral);
164
- this.#sessionEphemerals.delete(key);
165
- this.#ctx.logger.debug("session.ephemeral.destroyed", { agentName, sessionId, correlationId });
166
- }
167
- /**
168
- * AN INBOUND SIGNED EPHEMERAL — verify, THEN derive. Never the other way round.
169
- *
170
- * 🚨 A FAILED VERIFICATION IS A SECURITY EVENT AND IT STOPS THE SESSION. It is not a degradation
171
- * to unencrypted, and the difference is the whole unit: an unsigned or wrongly-signed key is what
172
- * a relay substituting its own looks like, and carrying on unencrypted would hand that relay
173
- * exactly the plaintext it was reaching for. Missing, malformed and mismatched take this same
174
- * path — a check that is lenient about a missing proof is a check an attacker skips.
175
- *
176
- * Contrast with a peer that says NOTHING at all: that is an old build, it is not evidence of
177
- * anything about them, and it is recorded as `PEER_SILENT` — which still blocks sending, because
178
- * there is no unencrypted path to fall back to.
179
- */
180
- async handleEphemeralFrame(agentName, sessionId, frame, correlationId) {
181
- const entry = this.#ctx.activeEntry(this.#ctx.sessionKey(agentName, sessionId));
182
- if (!entry)
183
- return;
184
- /**
185
- * THE IDENTITY WE EXPECT is the session's own counterparty record — and its provenance differs
186
- * by side, which review F10 measured and an earlier version of this comment overstated.
187
- *
188
- * INITIATOR: what the OPERATOR asked for (`initiate-session-handler` takes `target_pubkey`).
189
- * RESPONDER: the initiator identity the DIRECTORY attested in the offer/assignment.
190
- *
191
- * So this binds the ephemeral to that identity, whichever it is. The attack it closes is the
192
- * RELAY substituting its own key — a different actor from the directory — and that is closed in
193
- * both directions. What it does NOT do is move the responder's trust off the directory; the
194
- * inbound path says as much itself ("a single compromised directory still controls both frames
195
- * here"), and that is a separate line.
196
- *
197
- * The distinction is written down rather than smoothed over because this is a public repo and
198
- * the sentence it replaces — "never from anything the directory handed back" — was absolute and
199
- * false on one of the two sides.
200
- */
201
- const expected = Buffer.from(entry.counterpartyPubkey, "hex");
202
- const sessionIdBytes = Buffer.from(sessionId, "hex");
203
- const verdict = verifySessionEphemeral({
204
- expectedIdentityPublic: new Uint8Array(expected),
205
- sessionId: sessionIdBytes,
206
- peerEphemeralPublic: frame.ephemeralPublic,
207
- peerSignature: frame.signature,
208
- });
209
- if (!verdict.ok) {
210
- this.#ctx.logger.error("session.key.refused", {
211
- agentName, sessionId, correlationId,
212
- reason: verdict.reason,
213
- detail: verdict.detail,
214
- guidance: "STOPPED ON PURPOSE. The session key your counterparty sent could not be tied to them, so " +
215
- "this session has been stopped rather than continued in the open. The ordinary cause is a " +
216
- "build mismatch; the one that matters is something in the middle of your connection " +
217
- "substituting its own key so it can read what you send. Confirm with your counterparty OUT " +
218
- "OF BAND — not over CELLO — before opening another session with them.",
219
- });
220
- // Session-ending, not per-message: one proven wrong signer is evidence about the CONNECTION,
221
- // not about the frame that carried it.
222
- await this.#ctx.freezeSessionForKeyRefusal(agentName, sessionId, verdict.reason, correlationId);
223
- return;
224
- }
225
- /**
226
- * ALREADY AGREED WITH **THIS** PEER HALF — idempotence keyed on the bytes, not on presence.
227
- *
228
- * ⚠️ KEYING IT ON PRESENCE WAS A DEFECT, and a routine relay roll was enough to trigger it.
229
- * Only the side whose witness stream closed interrupts, so only that side destroys its key and
230
- * re-keys on revival. The OTHER side is never torn down — nothing else clears this map — so it
231
- * saw the peer's NEW ephemeral, found a key already present, and kept the old one.
232
- *
233
- * Two different keys, and the damage is worse than a dead path: every message then fails GCM,
234
- * and the receiving daemon reports *"the message did not decrypt — it was modified in flight, or
235
- * encrypted under a different key"* and tells the operator to confirm OUT OF BAND. Nothing was
236
- * modified. Two people have a security conversation about a local key skew.
237
- *
238
- * I MEASURED THIS TWICE AND CALLED IT A HARNESS QUIRK — the notes in `seam-4` and `m9-core-001`
239
- * about seeding "before the settle" leaving the two ends on different keys are this defect,
240
- * observed and worked around instead of read.
241
- *
242
- * So: the same half re-announced on every connect is still a no-op, and a DIFFERENT half — which
243
- * only a re-keying peer sends — is adopted. The peer is identity-authenticated by the time we
244
- * get here, so letting them move the key is not a new capability.
245
- */
246
- const peerHalfHex = Buffer.from(frame.ephemeralPublic).toString("hex");
247
- if (this.#sessionContentKeyPeerHalf.get(this.#ctx.sessionKey(agentName, sessionId)) === peerHalfHex)
248
- return;
249
- const ownEphemeral = this.sessionEphemeralFor(agentName, sessionId);
250
- if (!ownEphemeral) {
251
- this.#ctx.logger.error("session.key.refused", {
252
- agentName, sessionId, correlationId, reason: "no_local_ephemeral",
253
- detail: "the peer's key verified but this side holds no throwaway keypair to agree with, so nothing can be derived. This is a LOCAL defect, not something the peer did.",
254
- });
255
- this.noteContentEncryptionReason(agentName, sessionId, CONTENT_ENCRYPTION_REASONS.OUR_ANNOUNCE_FAILED);
256
- return;
257
- }
258
- try {
259
- const secrets = deriveSessionSecrets({
260
- ownEphemeralSecret: ownEphemeral.secretKey,
261
- peerEphemeralPublic: frame.ephemeralPublic,
262
- sessionId: sessionIdBytes,
263
- });
264
- const prior = this.#sessionContentKeyPeerHalf.get(this.#ctx.sessionKey(agentName, sessionId));
265
- this.#sessionContentKeys.set(this.#ctx.sessionKey(agentName, sessionId), secrets.contentKey);
266
- this.#sessionContentKeyPeerHalf.set(this.#ctx.sessionKey(agentName, sessionId), peerHalfHex);
267
- this.#contentEncryptionReasons.delete(this.#ctx.sessionKey(agentName, sessionId));
268
- this.#ctx.logger.info("session.key.agreed", {
269
- agentName, sessionId, correlationId,
270
- // A RE-KEY is a different event from a first agreement and an operator correlating two
271
- // daemons needs to tell them apart: a re-key means the other side restarted.
272
- rekey: prior !== undefined && prior !== peerHalfHex,
273
- impact: "message bodies on this session are now encrypted by CELLO under a key both sides agreed and neither sent, and which is destroyed when the session ends",
274
- });
275
- }
276
- catch (err) {
277
- // The primitive owns every rule about the peer's half — a degenerate point, a non-canonical
278
- // encoding, a reflection — and owns the WORDING. Substituting a code of our own here would
279
- // destroy the only explanation that exists at the only moment anyone reads it.
280
- this.#ctx.logger.error("session.key.refused", {
281
- agentName, sessionId, correlationId, reason: "derivation_failed",
282
- // Review F1: the ternary above this line SILENTLY DESTROYED the wording the comment says
283
- // it is here to preserve — `deriveSessionSecrets` throws from `@cello-protocol/crypto`,
284
- // the cross-realm case where a throw is not `instanceof Error`, so the operator read
285
- // `[object Object]` at the one moment the primitive's explanation existed. Higher stakes
286
- // than the announce path this unit was opened for: this branch FREEZES the session.
287
- detail: extractErrorMessage(err),
288
- errorName: err?.name,
289
- errorCode: err?.code,
290
- });
291
- await this.#ctx.freezeSessionForKeyRefusal(agentName, sessionId, "derivation_failed", correlationId);
292
- }
293
- }
294
- /**
295
- * The agreed content key for a session, or `null` with the reason there is none.
296
- *
297
- * ONE place decides this, so the send path, the receive path and the status surface cannot
298
- * disagree about whether a session is encrypted — the failure `wire-content-hash.ts` already
299
- * records for the hash, where the expression was written out at five call sites and the two added
300
- * last got it wrong.
301
- */
302
- contentEncryptionState(agentName, sessionId) {
303
- const k = this.#ctx.sessionKey(agentName, sessionId);
304
- const agreed = this.#sessionContentKeys.get(k);
305
- if (agreed)
306
- return { key: agreed };
307
- // No recorded fault means the exchange simply has not finished yet — the ordinary state in the
308
- // instant between a session opening and its first connect completing.
309
- return { key: null, reason: this.#contentEncryptionReasons.get(k) ?? CONTENT_ENCRYPTION_REASONS.NOT_YET_AGREED };
310
- }
311
- noteContentEncryptionReason(agentName, sessionId, reason) {
312
- const k = this.#ctx.sessionKey(agentName, sessionId);
313
- // FIRST reason wins. A later, vaguer one must not overwrite the specific cause already recorded
314
- // — "they never answered" written over "we could not sign" points the operator at the wrong
315
- // machine, which is the substitution this closed set exists to end.
316
- if (!this.#contentEncryptionReasons.has(k))
317
- this.#contentEncryptionReasons.set(k, reason);
318
- }
319
- /**
320
- * ANNOUNCE THIS SIDE'S SIGNED EPHEMERAL — `DOD-M15-EPHEMERAL-AUTH-1`.
321
- *
322
- * 🚨 ON THE PEER-TO-PEER CONTENT STREAM ONLY, exactly like the salt contribution and for the same
323
- * unrepairable reason: it rides circuit-relay-v2 carrying its own Noise session, so a forwarding
324
- * relay sees ciphertext. It must NEVER be added to `session_offer` / `session_offer_accept` or
325
- * anything a DIRECTORY brokers — and that is the trap, because the only round trip at session open
326
- * is the directory's signaling stream.
327
- *
328
- * Fire-and-forget on the connect handler, like the salt: a failed announcement must not turn a
329
- * peer-connect handler into a rejected promise, and we re-announce on the next connect.
330
- */
331
- /**
332
- * `attempt` is WHICH RETRY THIS IS, and it is a parameter because the catch below is the only
333
- * place that can advance it. It was hardcoded to 1 at the retry call site, which made
334
- * `SESSION_KEY_ANNOUNCE_RETRIES` unreachable: every failure re-entered the chain at 1, so the
335
- * bound was never tested and `session.key.announce.gave_up` was never once logged in production.
336
- * Measured 2026-09-08 on session `0646b474`: 49,137 failures, ~17/second, still running eleven
337
- * hours after the session went quiet. Do not reintroduce a literal here.
338
- */
339
- async sendEphemeralFrame(agentName, sessionId, correlationId, attempt = 0) {
340
- const entry = this.#ctx.activeEntry(this.#ctx.sessionKey(agentName, sessionId));
341
- if (!entry)
342
- return;
343
- const ephemeral = this.sessionEphemeralFor(agentName, sessionId);
344
- if (!ephemeral) {
345
- this.#ctx.logger.error("session.key.announce.failed", {
346
- agentName, sessionId, correlationId, reason: "no_ephemeral",
347
- impact: "this session is active with no throwaway keypair, so there is nothing to announce; content stays unencrypted by CELLO",
348
- });
349
- this.noteContentEncryptionReason(agentName, sessionId, CONTENT_ENCRYPTION_REASONS.OUR_ANNOUNCE_FAILED);
350
- return;
351
- }
352
- const signer = this.#ctx.keyProvider(agentName);
353
- if (!signer) {
354
- /**
355
- * A LOCAL fault, and it is named as one. Without this branch the peer simply never hears from
356
- * us and blames a build that is fine — the operator whose machine cannot sign reads a message
357
- * about their counterparty, which is the exact substitution the salt work already paid for.
358
- */
359
- this.#ctx.logger.error("session.key.announce.failed", {
360
- agentName, sessionId, correlationId, reason: "no_identity_key",
361
- impact: "this machine has no identity key for the agent, so it cannot sign its half of the session key; every session it opens is unencrypted by CELLO and the counterparty is not involved",
362
- guidance: CONTENT_ENCRYPTION_GUIDANCE[CONTENT_ENCRYPTION_REASONS.NO_LOCAL_IDENTITY],
363
- });
364
- this.noteContentEncryptionReason(agentName, sessionId, CONTENT_ENCRYPTION_REASONS.NO_LOCAL_IDENTITY);
365
- return;
366
- }
367
- let stream = null;
368
- try {
369
- const sessionIdBytes = Buffer.from(sessionId, "hex");
370
- const signature = await signSessionEphemeral(signer, sessionIdBytes, ephemeral.publicKey);
371
- stream = await entry.node.newStream(entry.counterpartySessionPeerId, CELLO_CONTENT_PROTOCOL_ID);
372
- stream.send(lp.encode.single(encodeCbor({
373
- type: "session_key_agreement",
374
- session_id: sessionId,
375
- ephemeral_public: ephemeral.publicKey,
376
- ephemeral_sig: signature,
377
- })).subarray());
378
- await stream.close();
379
- this.#ctx.logger.debug("session.key.announced", {
380
- agentName, sessionId, correlationId,
381
- publicKeyPrefix: Buffer.from(ephemeral.publicKey.subarray(0, 8)).toString("hex"),
382
- });
383
- }
384
- catch (err) {
385
- // The frame never left. Say so as a LOCAL fault rather than letting the session look like a
386
- // counterparty on an old build — a re-announce rides the next connect.
387
- this.#ctx.logger.error("session.key.announce.failed", {
388
- agentName, sessionId, correlationId, reason: "stream_failed",
389
- // `extractErrorMessage`, not `String(err)`: libp2p errors are not `instanceof Error` in
390
- // this realm, so the ternary printed `[object Object]` on every one of the 49,137 lines
391
- // this loop produced — the cause was in the throw and none of it reached the log.
392
- error: extractErrorMessage(err),
393
- /**
394
- * Review F3 — `reason: "stream_failed"` names WHERE this surfaced, never why, and
395
- * `extractErrorMessage` drops the two fields that name the subsystem. libp2p's `code` IS
396
- * the diagnosis and the three common values send an operator to three different places:
397
- * `ERR_UNSUPPORTED_PROTOCOL` (counterparty on an old build), `ERR_NO_VALID_ADDRESSES`
398
- * (transport), `ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS` (the stream-cap failure this
399
- * file's longest comment documents). Without them this line cannot tell them apart, which
400
- * is why the 49,137-line loop went unnoticed for eleven hours.
401
- */
402
- errorName: err?.name,
403
- errorCode: err?.code,
404
- attempt,
405
- impact: "this side's half of the session key never reached the counterparty, so content stays unencrypted by CELLO until a later connect succeeds",
406
- });
407
- this.noteContentEncryptionReason(agentName, sessionId, CONTENT_ENCRYPTION_REASONS.OUR_ANNOUNCE_FAILED);
408
- /**
409
- * ABORT, don't just close — review F13. A `close()` on a broken stream can itself fail and
410
- * leave the slot held, which is the per-protocol stream-cap failure this file's longest
411
- * comment documents. Every other failed write on this protocol aborts.
412
- */
413
- if (stream) {
414
- try {
415
- stream.abort(err instanceof Error ? err : new Error(String(err)));
416
- }
417
- catch { /* already gone */ }
418
- }
419
- /**
420
- * AND RETRY — review F5, and without it a single failed stream open kills encryption for the
421
- * life of the session.
422
- *
423
- * The announce otherwise rides `onPeerConnect` only. If the connection then stays up there is
424
- * no next connect, so nothing re-announces, every send parks forever, and the guidance's
425
- * "it re-announces on the next connect" names an event that never arrives. It also compounds
426
- * the re-key path: a revived session announces its FRESH half exactly once, and if that one
427
- * attempt loses the race with the reconnect, the two ends sit on different keys.
428
- *
429
- * Bounded and self-cancelling: it stops when the session is no longer active, when a key has
430
- * been agreed, and after `SESSION_KEY_ANNOUNCE_RETRIES` attempts.
431
- */
432
- this.retryEphemeralAnnounce(agentName, sessionId, correlationId, attempt + 1);
433
- }
434
- }
435
- /**
436
- * Re-announce this side's ephemeral after a failed attempt — review F5.
437
- *
438
- * Backs off, and gives up rather than looping: a peer that is simply gone must not have a timer
439
- * chasing it for the life of the process.
440
- */
441
- retryEphemeralAnnounce(agentName, sessionId, correlationId, attempt) {
442
- if (attempt > SESSION_KEY_ANNOUNCE_RETRIES) {
443
- /**
444
- * Review F6: `error`, not `warn`. Every TRANSIENT failure on this path logs at error; the
445
- * one TERMINAL, actionable line — encryption is now permanently off for this session — was
446
- * the quietest of them, so an operator filtering on error read five noisy lines and missed
447
- * the conclusion.
448
- *
449
- * Review F5: `attempts: attempt`, not the constant. Five announce attempts are made (`attempt`
450
- * 0 through `SESSION_KEY_ANNOUNCE_RETRIES`) and the constant printed four — a hardcoded
451
- * literal standing in for a live value, which is the exact shape this unit exists to remove,
452
- * and the same bug `submission-retry.ts:115` records having made before. `attempt` is the
453
- * index, `attempts` is the total; that is the difference between the two field names here.
454
- */
455
- this.#ctx.logger.error("session.key.announce.gave_up", {
456
- agentName, sessionId, correlationId, attempts: attempt,
457
- impact: "this side never managed to send its half of the session key, so every message on this session takes the relay mailbox instead of the direct path",
458
- guidance: CONTENT_ENCRYPTION_GUIDANCE[CONTENT_ENCRYPTION_REASONS.OUR_ANNOUNCE_FAILED],
459
- });
460
- return;
461
- }
462
- const timer = setTimeout(() => {
463
- // Stop if the session went away, or if a key has since been agreed by any route.
464
- if (this.#ctx.activeEntry(this.#ctx.sessionKey(agentName, sessionId)) === undefined)
465
- return;
466
- if (this.#sessionContentKeys.has(this.#ctx.sessionKey(agentName, sessionId)))
467
- return;
468
- // Carry `attempt` INTO the send, so its catch can advance it. Dropping it here is what
469
- // pinned the chain at 1 and made the give-up branch dead code.
470
- void this.sendEphemeralFrame(agentName, sessionId, correlationId, attempt);
471
- }, SESSION_KEY_ANNOUNCE_RETRY_MS * attempt);
472
- // Never hold the process open for a retry.
473
- if (typeof timer.unref === "function")
474
- timer.unref();
475
- }
476
- /**
477
- * Our throwaway keypair for a session, WITHOUT minting one — the read-only counterpart.
478
- *
479
- * `null` means the session is not active here. It never means "mint one now": minting outside
480
- * `#mintSessionEphemeral` is how a second keypair appears mid-session.
481
- */
482
- sessionEphemeralFor(agentName, sessionId) {
483
- return this.#sessionEphemerals.get(this.#ctx.sessionKey(agentName, sessionId)) ?? null;
484
- }
485
- /**
486
- * Test seams: re-enter the mint path, and read back the PUBLIC half — 006-CRYPTO.
487
- *
488
- * `#mintSessionEphemeral` is idempotent because a reconnect can re-enter an activation path, and a
489
- * second keypair mid-session would leave the two sides deriving against a moving value. Proving
490
- * that needs the path called TWICE, and the alternative — driving a real reconnect — drags in node
491
- * rebuild and relay reconnection, none of which the property is about. Same justification as
492
- * `forgetSaltContributionForTest` above.
493
- *
494
- * It calls the REAL private method, so a test cannot pass against a decision production does not
495
- * make. The reader returns the public half ONLY: a seam that could hand out the secret is a way
496
- * for the secret to leave this object, which is the one thing the whole unit is about.
497
- */
498
- mintSessionEphemeralForTest(agentName, sessionId) {
499
- this.mintSessionEphemeral(agentName, sessionId);
500
- }
501
- sessionEphemeralPublicForTest(agentName, sessionId) {
502
- const e = this.sessionEphemeralFor(agentName, sessionId);
503
- return e ? Uint8Array.from(e.publicKey) : null;
504
- }
505
- /**
506
- * Test seam: INSTALL a keypair the caller already holds — the only way to prove ZEROING.
507
- *
508
- * Presence is easy to assert and is not the property. `destroySessionEphemeral` overwrites the
509
- * buffer before the entry is dropped, and a mutant that drops without overwriting leaves the
510
- * secret wherever the collector last moved it while passing every presence check — which is
511
- * exactly what happened: the shutdown zeroing shipped with a surviving mutant, and the transport
512
- * seeds four lines above it have the same untested gap today.
513
- *
514
- * The direction matters. Nothing here HANDS OUT a secret — the test supplies an object it already
515
- * owns and then inspects its own reference. A reader that returned the live keypair would be a
516
- * path for the secret to leave this object, which is the one thing this unit exists to prevent.
517
- */
518
- setSessionEphemeralForTest(agentName, sessionId, ephemeral) {
519
- this.#sessionEphemerals.set(this.#ctx.sessionKey(agentName, sessionId), ephemeral);
520
- }
521
- /**
522
- * Test seam: put a session into the state a COMPLETED exchange leaves it in — 007-CRYPTO.
523
- *
524
- * A live send now requires an agreed key, because there is no plaintext path to fall back to. In
525
- * production the exchange completes on connect, before any send. A fixture with no real peer never
526
- * completes it, so without this every content test in the repo would be exercising the refusal
527
- * path instead of the thing it was written for.
528
- *
529
- * ⚠️ IT SHORT-CIRCUITS HOW THE KEY GOT THERE, NEVER WHAT THE KEY IS FOR. The state it produces —
530
- * a session holding an agreed content key — is exactly the production state, which is what makes
531
- * it legitimate; `setSaltContributionForTest` exists for the same reason. Tests of the EXCHANGE
532
- * itself drive the real signed frames and must not use this.
533
- */
534
- setSessionContentKeyForTest(agentName, sessionId, key) {
535
- this.#sessionContentKeys.set(this.#ctx.sessionKey(agentName, sessionId), Uint8Array.from(key));
536
- this.#contentEncryptionReasons.delete(this.#ctx.sessionKey(agentName, sessionId));
537
- }
538
- /**
539
- * Test seam: drop the agreed key while leaving the session up — the state before an exchange
540
- * completes, and after a teardown evicts one. Its mirror above is what a completed exchange
541
- * leaves; both are needed, or a status field stuck in one position passes either test alone.
542
- */
543
- forgetSessionContentKeyForTest(agentName, sessionId) {
544
- this.#sessionContentKeys.delete(this.#ctx.sessionKey(agentName, sessionId));
545
- }
546
- /**
547
- * Test seam: produce THIS side's signed ephemeral, using the manager's own identity resolver.
548
- *
549
- * For harnesses whose connectivity is one-directional — one side dials, so only one announce ever
550
- * lands. Carrying the other side's half across with a REAL signature is what completes the
551
- * exchange, and it beats seeding a key: a seeded key has no peer half recorded against it, so the
552
- * first genuine announce replaces it and the two ends drift apart (which is correct behaviour —
553
- * see the re-key guard — and exactly what made seeding fragile here).
554
- *
555
- * It signs with the same provider production signs with, so a test cannot pass against a signature
556
- * production would have refused.
557
- */
558
- async signOwnEphemeralForTest(agentName, sessionId) {
559
- const eph = this.sessionEphemeralFor(agentName, sessionId);
560
- const signer = this.#ctx.keyProvider(agentName);
561
- if (!eph || !signer)
562
- return null;
563
- const signature = await signSessionEphemeral(signer, Buffer.from(sessionId, "hex"), eph.publicKey);
564
- return { ephemeralPublic: Uint8Array.from(eph.publicKey), signature };
565
- }
566
- /**
567
- * Test seam: deliver a peer's signed ephemeral, exactly as the content-stream decoder does.
568
- *
569
- * For harnesses whose connectivity is one-directional — one side dials, so only one announce ever
570
- * lands — this is what completes the exchange instead of stuffing a key in. It runs the REAL
571
- * verification and the REAL derivation, so a test cannot pass against a signature production would
572
- * have refused.
573
- */
574
- async handleEphemeralFrameForTest(agentName, sessionId, frame, correlationId = "test") {
575
- await this.handleEphemeralFrame(agentName, sessionId, frame, correlationId);
576
- }
577
- /**
578
- * Zero and drop EVERY session's ephemeral secret. Called on shutdown.
579
- *
580
- * ⚠️ THE ZEROING IS THE POINT, not the map clear. Shutdown marks rows `interrupted` by direct SQL,
581
- * so no per-session teardown fires for them — and this process is known to linger (a `cello
582
- * logout` has been seen still alive 30+ seconds later). Without this, every live session's key
583
- * survives the shutdown in memory for as long as the process does.
584
- */
585
- destroyAll() {
586
- for (const ephemeral of this.#sessionEphemerals.values())
587
- destroySessionEphemeral(ephemeral);
588
- this.#sessionEphemerals.clear();
589
- }
590
- }
591
- //# sourceMappingURL=session-ephemerals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-ephemerals.js","sourceRoot":"","sources":["../src/session-ephemerals.ts"],"names":[],"mappings":"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"}