@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,506 @@
1
+ import { extractErrorMessage } from "./error-message.js";
2
+ /**
3
+ * Send failures worth retrying — the ones that are NOT a verdict on the submission.
4
+ *
5
+ * directory_unreachable / signaling_reconnecting / signaling_lost
6
+ * Nothing reached anybody. This is the case the unit exists for.
7
+ * submission_unsupported_by_node
8
+ * The node never decoded the frame. Nodes deploy independently per region, so the reconnect
9
+ * this rides may land on one that has the frame kind — which IS the failover case. It is not
10
+ * a decision about the submission; the node did not get far enough to make one.
11
+ * submission_write_timeout
12
+ * The transport handed the frame over and no ack came back. Storage is UNKNOWN, which is
13
+ * different from refused: re-sending is safe by the content-derived id, so the honest move is
14
+ * to try again rather than to report a failure the operator cannot resolve either.
15
+ *
16
+ * submission_refused_by_node
17
+ * The node decoded it, evaluated it and said no. A retry cannot change that answer, and a
18
+ * machine asking again is badgering a node that has already decided.
19
+ * submission_agent_unloaded
20
+ * Retry-path only, and terminal: nobody on this daemon can sign as the submitting agent any
21
+ * more, so no amount of waiting produces a sender.
22
+ *
23
+ * A `Record`, NOT a hand-written list, and that is the whole point (review §4). A list is a loop
24
+ * over what the author typed; adding a seventh member to `SubmissionSendFailure` left the old test
25
+ * green while the new member defaulted into "not retried" in silence. A total record fails to
26
+ * COMPILE until someone decides — and it lives here rather than in a test, because
27
+ * `core/daemon/tsconfig.json` excludes `src/__tests__`, so a compile-time pin there is never
28
+ * evaluated and asserts nothing (`signal-submission.ts` calls that "a hollow test wearing
29
+ * compile-time clothing").
30
+ */
31
+ const RETRY_DECISION = {
32
+ directory_unreachable: true,
33
+ signaling_reconnecting: true,
34
+ signaling_lost: true,
35
+ submission_unsupported_by_node: true,
36
+ submission_write_timeout: true,
37
+ submission_refused_by_node: false,
38
+ submission_agent_unloaded: false,
39
+ };
40
+ const RETRYABLE_SEND_FAILURES = new Set(Object.keys(RETRY_DECISION).filter((r) => RETRY_DECISION[r]));
41
+ /**
42
+ * Failures that say something about OUR local preconditions rather than about the submission.
43
+ *
44
+ * These retry on the same backoff but do NOT consume the attempt budget — they are bounded by the
45
+ * retry WINDOW instead, so a genuinely dead network still stops eventually. Straight from
46
+ * `restart-seal-resolver.ts`'s `LOCAL_PRECONDITION_REFUSALS`, for the same reason: without it a
47
+ * flapping stream durably gives up on work that was never in question.
48
+ */
49
+ const LOCAL_PRECONDITION_FAILURES = new Set([
50
+ "directory_unreachable",
51
+ "signaling_reconnecting",
52
+ "signaling_lost",
53
+ ]);
54
+ export function isRetryableSendFailure(reason) {
55
+ return RETRYABLE_SEND_FAILURES.has(reason);
56
+ }
57
+ const DEFAULT_STAGGER_MS = 5_000;
58
+ const DEFAULT_MAX_ATTEMPTS = 5;
59
+ /**
60
+ * How long to wait before re-trying a LOCAL PRECONDITION failure.
61
+ *
62
+ * Deliberately not the stagger. When the stream is down `sendRaw` returns without touching the
63
+ * network, so a stagger-paced retry would be nearly free and nearly useless — 720 attempts and 720
64
+ * log lines in an hour, none of which could have succeeded. The reconnect callback is the real
65
+ * trigger; this is only the backstop for a reconnect that never fires, so it is paced against the
66
+ * ~70-second stream turnover rather than against impatience.
67
+ */
68
+ const LOCAL_PRECONDITION_RETRY_MS = 60_000;
69
+ /** Doubles from here, so five attempts span roughly fifteen minutes. */
70
+ const BASE_BACKOFF_MS = 30_000;
71
+ /**
72
+ * One hour. Chosen against the intake key, not against patience: the queued blob is sealed to the
73
+ * intake key the manifest published at compose time, and a manifest window is measured in weeks.
74
+ *
75
+ * THIS COMMENT USED TO ASSERT THAT AN HOUR "CANNOT OUTLIVE THE KEY", AND THAT WAS AN UNCHECKED
76
+ * CLAIM (review M4). It holds only when the manifest has more than an hour left at compose time.
77
+ * `composeSealedSubmission` refuses an already-expired manifest, but nothing stopped a submission
78
+ * composed one minute before expiry from being held and re-sent for the next fifty-nine — and the
79
+ * portal's rotated-key retention does not cover it either, because that rule keeps a retired key
80
+ * "until no undrained row references it" (M10B-D11) and a HELD submission has no row at any node.
81
+ * The result is exactly the state the expiry gate exists to prevent: a blob the portal cannot open
82
+ * and cannot attribute, arriving as poison with no reply possible — while the operator has been
83
+ * told it is held and needs nothing from them.
84
+ *
85
+ * So the CALLER checks rather than this comment asserting. See the enqueue site in `daemon.ts`,
86
+ * which has the manifest in hand and refuses to hold a submission whose intake key would expire
87
+ * inside this window.
88
+ */
89
+ export const DEFAULT_RETRY_WINDOW_MS = 60 * 60_000;
90
+ const DEFAULT_QUEUE_CAP = 32;
91
+ /** What the operator does about a submission still in flight. Named verb, real parameterless call. */
92
+ const RETRYING_GUIDANCE = "The daemon is retrying this submission on its own — it is sealed and held, and it goes out as " +
93
+ "soon as the directory signaling stream is back. You do not need to send it again. Run " +
94
+ "cello_attestations_issued to see where it got to. It is held IN MEMORY: if the daemon restarts " +
95
+ "before it lands, it is gone and you will have to write it again — re-sending is safe either way, " +
96
+ "the submission id is derived from the content.";
97
+ function gaveUpGuidance(reason, last) {
98
+ const shared = "Nothing was minted and nothing was recorded at a directory. Re-submitting is safe — the " +
99
+ "submission id is derived from the content, so a re-send is stored once, not twice — but the " +
100
+ "text is not kept on this machine, so you have to write it again: run cello_attestations_issue " +
101
+ "with the same subject.";
102
+ switch (reason) {
103
+ case "attempts_exhausted":
104
+ // "ANSWERED" WAS WRONG (review L8). The only reason that normally exhausts this budget is
105
+ // `submission_write_timeout` — where the node answered NOTHING, which is what the reason
106
+ // means — and `submission_unsupported_by_node`, where it answered `not_authenticated`, a
107
+ // frame `sendSealedSubmission` deliberately refuses to treat as an answer.
108
+ return (`The daemon retried this submission until it ran out of attempts; the last attempt ended ` +
109
+ `in '${last}'. ${shared}`);
110
+ case "retry_window_elapsed":
111
+ return (`The daemon held this submission for an hour and the directory signaling stream never came ` +
112
+ `back (last state '${last}'). Check the daemon's directory connection with cello_status ` +
113
+ `first — this is a connectivity problem, not a rejection. ${shared}`);
114
+ case "refused_by_node":
115
+ // Reached only when a node refuses mid-retry AND gives no reason of its own; the node's
116
+ // words win whenever it has any. Even here it must not read as a network problem.
117
+ return ("A directory node decoded this submission and refused it. That is a decision about the " +
118
+ "submission, not a connectivity problem, so it will not be retried — sending it again " +
119
+ "unchanged will be refused again. " + shared);
120
+ case "agent_unloaded":
121
+ return ("This daemon can no longer sign as the agent that wrote this submission, so the held bytes " +
122
+ "cannot be sent by anyone. Start the agent with cello_start_agent, then issue it again. " +
123
+ shared);
124
+ }
125
+ }
126
+ function defaultSchedule(fn, ms) {
127
+ const t = setTimeout(fn, ms);
128
+ // A background retry must never be the reason a daemon will not exit.
129
+ t.unref?.();
130
+ return { cancel: () => clearTimeout(t) };
131
+ }
132
+ /**
133
+ * The retry queue. One per daemon; keyed by (agentId, submissionId) because two agents on one
134
+ * daemon can each submit about the same subject and the rows are per-agent facts.
135
+ */
136
+ export class SubmissionRetryQueue {
137
+ #deps;
138
+ #now;
139
+ #schedule;
140
+ #staggerMs;
141
+ #maxAttempts;
142
+ #retryWindowMs;
143
+ #localPreconditionRetryMs;
144
+ #baseBackoffMs;
145
+ #queueCap;
146
+ /** Live retries. An entry leaves on acceptance or on give-up. */
147
+ #queue = new Map();
148
+ /**
149
+ * Given-up submissions, kept so the operator surface can SHOW the terminal state. A give-up whose
150
+ * only consumer is a log line is indistinguishable from the submission never having existed,
151
+ * which is exactly the silence this unit exists to end. Bounded by the same cap.
152
+ */
153
+ #gaveUp = [];
154
+ #timer = null;
155
+ #running = false;
156
+ #stopped = false;
157
+ constructor(deps) {
158
+ this.#deps = deps;
159
+ this.#now = deps.now ?? (() => Date.now());
160
+ this.#schedule = deps.schedule ?? defaultSchedule;
161
+ this.#staggerMs = deps.staggerMs ?? DEFAULT_STAGGER_MS;
162
+ this.#maxAttempts = deps.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
163
+ this.#retryWindowMs = deps.retryWindowMs ?? DEFAULT_RETRY_WINDOW_MS;
164
+ this.#localPreconditionRetryMs = deps.localPreconditionRetryMs ?? LOCAL_PRECONDITION_RETRY_MS;
165
+ this.#baseBackoffMs = deps.baseBackoffMs ?? BASE_BACKOFF_MS;
166
+ this.#queueCap = deps.queueCap ?? DEFAULT_QUEUE_CAP;
167
+ }
168
+ /**
169
+ * Take ownership of a submission whose send failed for a retryable reason.
170
+ *
171
+ * Returns `false` when the queue is full, and the caller then reports the plain failure — an
172
+ * operator who is told "the daemon has it" about a submission the daemon dropped is worse off
173
+ * than one who is told it failed, because only the second knows to act.
174
+ */
175
+ enqueue(item, lastReason) {
176
+ if (this.#stopped)
177
+ return false;
178
+ const key = `${item.agentId}:${item.submissionId}`;
179
+ // Idempotent on the content-derived id: re-submitting the same body while a retry is pending is
180
+ // the SAME submission, not a second one.
181
+ if (this.#queue.has(key))
182
+ return true;
183
+ if (this.#queue.size >= this.#queueCap) {
184
+ this.#deps.logger.warn("signal.submission.retry.queue_full", {
185
+ agentName: item.agentName,
186
+ submissionId: item.submissionId,
187
+ cap: this.#queueCap,
188
+ impact: "this submission is NOT held for retry — the operator is told it failed and must re-send",
189
+ });
190
+ return false;
191
+ }
192
+ const now = this.#now();
193
+ this.#queue.set(key, {
194
+ item,
195
+ attempts: 0,
196
+ totalSends: 0,
197
+ enqueuedAt: now,
198
+ // Deliberately NOT now: the stream is down, and an immediate attempt spends the stagger on a
199
+ // connection that does not exist. The reconnect is what makes it due.
200
+ nextAt: now + this.#staggerMs,
201
+ delivery: {
202
+ state: "retrying",
203
+ attempts: 0,
204
+ lastReason,
205
+ nextAttemptAt: now + this.#staggerMs,
206
+ guidance: RETRYING_GUIDANCE,
207
+ },
208
+ });
209
+ this.#deps.logger.info("signal.submission.retry.enqueued", {
210
+ agentName: item.agentName,
211
+ submissionId: item.submissionId,
212
+ op: item.op,
213
+ reason: lastReason,
214
+ pending: this.#queue.size,
215
+ });
216
+ this.#arm(this.#staggerMs);
217
+ return true;
218
+ }
219
+ /**
220
+ * The agent's directory signaling stream reached 'connected' — the first connect and every
221
+ * reconnect after a drop. THIS IS THE FAILOVER. Which node it landed on is not this module's
222
+ * business and is deliberately not read.
223
+ */
224
+ onSignalingConnected(agentName) {
225
+ if (this.#stopped)
226
+ return;
227
+ const now = this.#now();
228
+ let woke = 0;
229
+ for (const entry of this.#queue.values()) {
230
+ if (entry.item.agentName !== agentName)
231
+ continue;
232
+ entry.nextAt = now;
233
+ // Only live entries are in `#queue`, so this is always the retrying shape — written out
234
+ // rather than spread, so a later member of the union cannot be silently mangled by a cast.
235
+ entry.delivery = {
236
+ state: "retrying",
237
+ attempts: entry.attempts,
238
+ lastReason: entry.delivery.lastReason,
239
+ nextAttemptAt: now,
240
+ guidance: RETRYING_GUIDANCE,
241
+ };
242
+ woke += 1;
243
+ }
244
+ if (woke === 0)
245
+ return;
246
+ this.#deps.logger.info("signal.submission.retry.woken", { agentName, count: woke });
247
+ this.#arm(0);
248
+ }
249
+ /**
250
+ * What this agent still has in flight, and what was given up on. Read by `wallet_list_issued`,
251
+ * which is the surface behind `cello_attestations_issued` — the verb whose whole question is
252
+ * "what happened to what I sent?".
253
+ */
254
+ list(agentId) {
255
+ const views = [];
256
+ for (const entry of [...this.#queue.values(), ...this.#gaveUp]) {
257
+ if (entry.item.agentId !== agentId)
258
+ continue;
259
+ views.push({
260
+ submissionId: entry.item.submissionId,
261
+ op: entry.item.op,
262
+ subject: entry.item.subject,
263
+ intakeKeyId: entry.item.intakeKeyId,
264
+ delivery: entry.delivery,
265
+ });
266
+ }
267
+ return views;
268
+ }
269
+ /**
270
+ * A submission finally landed by some other route — the operator re-issued it, and the
271
+ * first-pass send succeeded. Drop any give-up recorded for it (review L9).
272
+ *
273
+ * The id is content-derived, so re-issuing the SAME words about the SAME subject produces the
274
+ * SAME id: this is precisely the "I wrote it again and it worked" case. Without it the operator
275
+ * sees the old failure and the new accepted row side by side for the life of the daemon, with no
276
+ * way to dismiss the one that is no longer true.
277
+ */
278
+ clearGaveUp(agentId, submissionId) {
279
+ const at = this.#gaveUp.findIndex((e) => e.item.agentId === agentId && e.item.submissionId === submissionId);
280
+ if (at === -1)
281
+ return;
282
+ this.#gaveUp.splice(at, 1);
283
+ this.#deps.logger.info("signal.submission.retry.gave_up.cleared", {
284
+ agentId,
285
+ submissionId,
286
+ impact: "a later send of the same submission succeeded, so the earlier give-up no longer stands",
287
+ });
288
+ }
289
+ /**
290
+ * Stop, and start nothing further.
291
+ *
292
+ * EVERY DROPPED SUBMISSION IS NAMED (review H2). The queue is in memory by design, but the
293
+ * operator was told in as many words "you do NOT need to run this again" — and before this, a
294
+ * restart left no durable trace anywhere naming what had been lost. A comment in the composition
295
+ * root asserting "in memory by design" is not a record; these lines are.
296
+ *
297
+ * The SUBJECT is logged and the body is not: the subject is a pubkey or a signal hash, and the
298
+ * body is the operator's own words about a third party, which this whole path exists to keep out
299
+ * of the clear on disk.
300
+ */
301
+ stop() {
302
+ this.#stopped = true;
303
+ this.#timer?.cancel();
304
+ this.#timer = null;
305
+ for (const entry of this.#queue.values()) {
306
+ this.#deps.logger.warn("signal.submission.retry.dropped_on_shutdown", {
307
+ agentName: entry.item.agentName,
308
+ submissionId: entry.item.submissionId,
309
+ op: entry.item.op,
310
+ subject: entry.item.subject,
311
+ attempts: entry.attempts,
312
+ sends: entry.totalSends,
313
+ impact: "it reached no directory node and the daemon is stopping — it must be issued again",
314
+ });
315
+ }
316
+ this.#queue.clear();
317
+ }
318
+ #arm(delayMs) {
319
+ if (this.#stopped)
320
+ return;
321
+ if (this.#queue.size === 0)
322
+ return;
323
+ this.#timer?.cancel();
324
+ this.#timer = this.#schedule(() => {
325
+ this.#timer = null;
326
+ void this.#pump();
327
+ }, delayMs);
328
+ }
329
+ /**
330
+ * Arm for whichever entry is due SOONEST, floored at the stagger so a queue is never a burst.
331
+ *
332
+ * It used to arm unconditionally at the stagger, which was right for the "one just finished"
333
+ * case and wrong for every other: an entry re-armed 60 seconds out would still be woken every 5
334
+ * seconds, and conversely a failing entry's own long wait used to be armed on behalf of siblings
335
+ * that were already due (review M7).
336
+ */
337
+ #armIfWork() {
338
+ if (this.#queue.size === 0)
339
+ return;
340
+ const now = this.#now();
341
+ let earliest = Infinity;
342
+ for (const entry of this.#queue.values())
343
+ earliest = Math.min(earliest, entry.nextAt);
344
+ this.#arm(Math.max(this.#staggerMs, earliest - now));
345
+ }
346
+ async #pump() {
347
+ if (this.#stopped || this.#running || this.#queue.size === 0)
348
+ return;
349
+ const now = this.#now();
350
+ let due = null;
351
+ for (const entry of this.#queue.values()) {
352
+ if (entry.nextAt <= now && (due === null || entry.nextAt < due.nextAt))
353
+ due = entry;
354
+ }
355
+ if (due === null) {
356
+ let earliest = Infinity;
357
+ for (const entry of this.#queue.values())
358
+ earliest = Math.min(earliest, entry.nextAt);
359
+ if (earliest !== Infinity)
360
+ this.#arm(Math.max(0, earliest - now));
361
+ return;
362
+ }
363
+ const entry = due;
364
+ const key = `${entry.item.agentId}:${entry.item.submissionId}`;
365
+ entry.totalSends += 1;
366
+ this.#running = true;
367
+ let result;
368
+ try {
369
+ result = await this.#deps.send(entry.item);
370
+ }
371
+ catch (err) {
372
+ // A thrown send is not a decision about the submission either — it is our own transport
373
+ // falling over. Treated as the local precondition it is.
374
+ this.#deps.logger.warn("signal.submission.retry.threw", {
375
+ agentName: entry.item.agentName,
376
+ submissionId: entry.item.submissionId,
377
+ error: extractErrorMessage(err),
378
+ });
379
+ result = { ok: false, reason: "directory_unreachable", guidance: "" };
380
+ }
381
+ finally {
382
+ this.#running = false;
383
+ }
384
+ /**
385
+ * AN ACCEPTANCE IS RECORDED EVEN IF WE ARE SHUTTING DOWN, and the `#stopped` check sits BELOW
386
+ * this branch for that reason (review H1).
387
+ *
388
+ * `stop()` does not await the send in flight. Checking `#stopped` first meant a node that
389
+ * accepted the submission during shutdown produced no `onAccepted`, no log line, and no row in
390
+ * `issued_submissions` — while the portal went on to mint it. The endorsement is real and the
391
+ * operator holds no handle to it, so it can never be withdrawn: `recordIssuedSubmission`'s own
392
+ * comment is "KEEP THE HANDLE, or a withdrawal has nothing to name."
393
+ *
394
+ * The log line goes out FIRST and carries the subject, so even if the database is already
395
+ * closed the handle survives in `daemon.log`. A bare `return` here was the worst of the three
396
+ * available options.
397
+ */
398
+ if (result.ok) {
399
+ this.#queue.delete(key);
400
+ this.#deps.logger.info("signal.submission.retry.accepted", {
401
+ agentName: entry.item.agentName,
402
+ submissionId: entry.item.submissionId,
403
+ op: entry.item.op,
404
+ // The SUBJECT, so this line alone is enough to reconstruct the handle if the write below
405
+ // cannot run. It is a pubkey or a signal hash — never the operator's words.
406
+ subject: entry.item.subject,
407
+ intakeKeyId: entry.item.intakeKeyId,
408
+ sends: entry.totalSends,
409
+ stored: result.stored,
410
+ ...(this.#stopped ? { duringShutdown: true } : {}),
411
+ });
412
+ try {
413
+ this.#deps.onAccepted(entry.item, result.stored);
414
+ }
415
+ catch (err) {
416
+ // Best-effort, exactly as the first-pass record write is: the submission IS accepted, and
417
+ // failing over a local bookkeeping write would invite a re-send of something already queued.
418
+ this.#deps.logger.error("signal.submission.retry.record_failed", {
419
+ agentName: entry.item.agentName,
420
+ submissionId: entry.item.submissionId,
421
+ subject: entry.item.subject,
422
+ error: extractErrorMessage(err),
423
+ });
424
+ }
425
+ if (!this.#stopped)
426
+ this.#armIfWork();
427
+ return;
428
+ }
429
+ // Below here everything is bookkeeping for a FUTURE attempt, and a stopped queue makes none.
430
+ if (this.#stopped)
431
+ return;
432
+ // A NON-RETRYABLE FAILURE ARRIVING MID-RETRY IS TERMINAL, AND IT KEEPS ITS OWN NAME (review
433
+ // H3). Stamping these `attempts_exhausted` printed a transport story — with `attempts: 0` beside
434
+ // it — for a quota refusal, in the one field a machine consumer branches on.
435
+ if (!isRetryableSendFailure(result.reason)) {
436
+ this.#giveUp(key, entry, result.reason, result.reason === "submission_agent_unloaded" ? "agent_unloaded" : "refused_by_node", result.guidance);
437
+ return;
438
+ }
439
+ const localPrecondition = LOCAL_PRECONDITION_FAILURES.has(result.reason);
440
+ if (!localPrecondition)
441
+ entry.attempts += 1;
442
+ const windowElapsed = this.#now() - entry.enqueuedAt >= this.#retryWindowMs;
443
+ if (windowElapsed) {
444
+ this.#giveUp(key, entry, result.reason, "retry_window_elapsed");
445
+ return;
446
+ }
447
+ if (!localPrecondition && entry.attempts >= this.#maxAttempts) {
448
+ this.#giveUp(key, entry, result.reason, "attempts_exhausted");
449
+ return;
450
+ }
451
+ const waitMs = localPrecondition
452
+ ? this.#localPreconditionRetryMs
453
+ : this.#baseBackoffMs * 2 ** Math.max(0, entry.attempts - 1);
454
+ entry.nextAt = this.#now() + waitMs;
455
+ entry.delivery = {
456
+ state: "retrying",
457
+ attempts: entry.attempts,
458
+ lastReason: result.reason,
459
+ nextAttemptAt: entry.nextAt,
460
+ guidance: RETRYING_GUIDANCE,
461
+ };
462
+ this.#deps.logger.info("signal.submission.retry.waiting", {
463
+ agentName: entry.item.agentName,
464
+ submissionId: entry.item.submissionId,
465
+ attempts: entry.attempts,
466
+ sends: entry.totalSends,
467
+ reason: result.reason,
468
+ localPrecondition,
469
+ retryInMs: waitMs,
470
+ });
471
+ // ARM FOR THE EARLIEST DEADLINE IN THE QUEUE, not for this entry's (review M7). A reconnect
472
+ // makes EVERY held submission for that agent due at once; arming on the failing entry's own
473
+ // 60-second wait sent the rest back to sleep on a stream that was up, so throughput collapsed
474
+ // to one send per minute regardless of queue depth — defeating the stagger this module claims.
475
+ this.#armIfWork();
476
+ }
477
+ #giveUp(key, entry, lastReason, because, nodeGuidance) {
478
+ this.#queue.delete(key);
479
+ entry.delivery = {
480
+ state: "gave_up",
481
+ attempts: entry.attempts,
482
+ lastReason,
483
+ gaveUpBecause: because,
484
+ // The NODE'S OWN words survive when it gave any — a refusal on the merits names something
485
+ // this module cannot know. Ours is the fallback, never the replacement.
486
+ guidance: nodeGuidance && nodeGuidance.length > 0 ? nodeGuidance : gaveUpGuidance(because, lastReason),
487
+ };
488
+ this.#gaveUp.push(entry);
489
+ while (this.#gaveUp.length > this.#queueCap)
490
+ this.#gaveUp.shift();
491
+ this.#deps.logger.warn("signal.submission.retry.gave_up", {
492
+ agentName: entry.item.agentName,
493
+ submissionId: entry.item.submissionId,
494
+ op: entry.item.op,
495
+ attempts: entry.attempts,
496
+ sends: entry.totalSends,
497
+ reason: lastReason,
498
+ // WHY it stopped, not just that it did — "we ran out of tries" and "the network never came
499
+ // back" lead to different operator actions.
500
+ stoppedBecause: because,
501
+ impact: "this trust signal reached no directory node; it is visible as gave_up in cello_attestations_issued",
502
+ });
503
+ this.#armIfWork();
504
+ }
505
+ }
506
+ //# sourceMappingURL=submission-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submission-retry.js","sourceRoot":"","sources":["../src/submission-retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * M8C-TGDOOR-1: the Telegram Bot API adapter — an interface + a real HTTP implementation, per the
3
+ * M4+ rule ("every external dependency is behind an interface... never call it directly from
4
+ * application code"). Tests inject a fake implementing the same interface; no real network.
5
+ */
6
+ export interface TelegramUpdate {
7
+ update_id: number;
8
+ message?: {
9
+ chat: {
10
+ id: number | string;
11
+ };
12
+ text?: string;
13
+ message_id: number;
14
+ };
15
+ }
16
+ export interface TelegramBotClient {
17
+ /** Long-poll for updates since `offset` (the next update_id to fetch), waiting up to
18
+ * `timeoutSec` for one to arrive. Returns an empty array on timeout (not an error). */
19
+ getUpdates(offset: number, timeoutSec: number): Promise<TelegramUpdate[]>;
20
+ sendMessage(chatId: string, text: string): Promise<{
21
+ ok: boolean;
22
+ error?: string;
23
+ }>;
24
+ }
25
+ export declare class HttpTelegramBotClient implements TelegramBotClient {
26
+ private readonly botToken;
27
+ constructor(botToken: string);
28
+ getUpdates(offset: number, timeoutSec: number): Promise<TelegramUpdate[]>;
29
+ sendMessage(chatId: string, text: string): Promise<{
30
+ ok: boolean;
31
+ error?: string;
32
+ }>;
33
+ }
34
+ //# sourceMappingURL=telegram-bot-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-bot-client.d.ts","sourceRoot":"","sources":["../src/telegram-bot-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC;4FACwF;IACxF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,qBAAa,qBAAsB,YAAW,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEvC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAezE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAU1F"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * M8C-TGDOOR-1: the Telegram Bot API adapter — an interface + a real HTTP implementation, per the
3
+ * M4+ rule ("every external dependency is behind an interface... never call it directly from
4
+ * application code"). Tests inject a fake implementing the same interface; no real network.
5
+ */
6
+ export class HttpTelegramBotClient {
7
+ botToken;
8
+ constructor(botToken) {
9
+ this.botToken = botToken;
10
+ }
11
+ async getUpdates(offset, timeoutSec) {
12
+ const url = `https://api.telegram.org/bot${this.botToken}/getUpdates?offset=${offset}&timeout=${timeoutSec}`;
13
+ const res = await fetch(url);
14
+ const body = (await res.json());
15
+ // Reviewer HIGH fix: fetch() does not throw on a non-2xx/ok:false Telegram response (e.g. a
16
+ // revoked token returns HTTP 200 with {ok:false}) — treating that the same as "genuinely no
17
+ // updates waiting" (an empty array) silently hides a misconfigured/dead bot forever, since the
18
+ // poller's only error-observability path is its catch block, which this never reached. THROW
19
+ // so the caller's catch/backoff/log path actually fires.
20
+ if (!body.ok) {
21
+ throw new Error(`telegram_get_updates_failed: ${body.description ?? "unknown_telegram_error"}`);
22
+ }
23
+ return body.result ?? [];
24
+ }
25
+ async sendMessage(chatId, text) {
26
+ const url = `https://api.telegram.org/bot${this.botToken}/sendMessage`;
27
+ const res = await fetch(url, {
28
+ method: "POST",
29
+ headers: { "Content-Type": "application/json" },
30
+ body: JSON.stringify({ chat_id: chatId, text }),
31
+ });
32
+ const body = (await res.json());
33
+ return body.ok ? { ok: true } : { ok: false, error: body.description ?? "unknown_telegram_error" };
34
+ }
35
+ }
36
+ //# sourceMappingURL=telegram-bot-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-bot-client.js","sourceRoot":"","sources":["../src/telegram-bot-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,MAAM,OAAO,qBAAqB;IACH;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,UAAkB;QACjD,MAAM,GAAG,GAAG,+BAA+B,IAAI,CAAC,QAAQ,sBAAsB,MAAM,YAAY,UAAU,EAAE,CAAC;QAC7G,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqE,CAAC;QACpG,4FAA4F;QAC5F,4FAA4F;QAC5F,+FAA+F;QAC/F,6FAA6F;QAC7F,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,WAAW,IAAI,wBAAwB,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAY;QAC5C,MAAM,GAAG,GAAG,+BAA+B,IAAI,CAAC,QAAQ,cAAc,CAAC;QACvE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA0C,CAAC;QACzE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,IAAI,wBAAwB,EAAE,CAAC;IACrG,CAAC;CACF"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * M8C-TGDOOR-1: the Telegram doorbell.
3
+ *
4
+ * A daemon-owned bot pushes discrete, CONTENT-FREE events (session request / message waiting /
5
+ * state change) to one allowlisted operator chat. It is a convenience, never load-bearing: a
6
+ * network hiccup backs off and retries rather than killing the poller, and an unconfigured
7
+ * doorbell is INERT, not an error.
8
+ *
9
+ * Two invariants worth stating at the boundary, because the boundary is what enforces them now:
10
+ *
11
+ * DOD-INV-CONTENTFREE — the doorbell sends a fixed label per event kind, NEVER message text.
12
+ * This module cannot leak conversation content because it is never given any: its whole
13
+ * dependency list is a logger, the stored settings, and a bot client.
14
+ * D6 — an inbound Telegram message from ANY chat is acknowledged and dropped. Nothing from
15
+ * Telegram enters a CELLO content path. Inside startDaemon that was a promise; here it is
16
+ * structural — there is no session-send seam in this module to abuse.
17
+ */
18
+ import { type TelegramBotClient } from "./telegram-bot-client.js";
19
+ import type { Logger } from "./types.js";
20
+ export interface TelegramDoorbellDeps {
21
+ logger: Logger;
22
+ /** The persisted bot token + allowlisted chat id, or null when TGDOOR was never configured. */
23
+ getTelegramSettings: () => {
24
+ botToken: string;
25
+ allowlistedChatId: string;
26
+ } | null;
27
+ /** Test injection. Production passes nothing and a real HttpTelegramBotClient is built per token. */
28
+ injectedClient?: TelegramBotClient | null;
29
+ }
30
+ export interface TelegramDoorbell {
31
+ sendTelegramDoorbell: (agentName: string, sessionId: string, kind: "session_request" | "message_waiting" | "state_change", detail: string) => Promise<void>;
32
+ clearTelegramRung: (agentName: string, sessionId: string) => void;
33
+ startTelegramPollerIfConfigured: () => void;
34
+ /** Shutdown: invalidate the running loop. It exits on its next generation check. */
35
+ stopTelegramPoller: () => void;
36
+ }
37
+ export declare function createTelegramDoorbell(deps: TelegramDoorbellDeps): TelegramDoorbell;
38
+ //# sourceMappingURL=telegram-doorbell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-doorbell.d.ts","sourceRoot":"","sources":["../src/telegram-doorbell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,mBAAmB,EAAE,MAAM;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClF,qGAAqG;IACrG,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5J,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,+BAA+B,EAAE,MAAM,IAAI,CAAC;IAC5C,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,CA+HnF"}