@cello-protocol/daemon 0.0.227 → 0.0.229

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 +454 -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 @@
1
+ {"version":3,"file":"document-profile.d.ts","sourceRoot":"","sources":["../src/document-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA0BD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAYpE,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,MAAM,GACX,gBAAgB,GAAG,IAAI,CAoBzB"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * DOD-DOC-PROFILE-1 — the content profile: an ALLOWLIST, agreed at the handshake.
3
+ *
4
+ * ── WHY AN ALLOWLIST WHEN A DENYLIST ALREADY EXISTS ───────────────────────────────────────────
5
+ *
6
+ * `document-screen.ts` is the denylist: it argues about characters, one at a time, in an open-ended
7
+ * space, and every argument happens mid-document with whoever is working ambushed by it. A profile
8
+ * inverts that. Only this character space is permitted, so violations are unambiguous — and the
9
+ * decision moves to CONSENT, which is the real win. "Do I want a Devanagari document with this
10
+ * person" is a question an operator can answer once, with a human already engaged, about the whole
11
+ * document. "What is U+200D doing at offset 412" is not a question anyone can answer.
12
+ *
13
+ * ── THE THREE CONSTRAINTS ─────────────────────────────────────────────────────────────────────
14
+ *
15
+ * NAMED AND CLOSED. A free-form profile is a negotiation again, and named profiles are what let
16
+ * an operator hold a standing policy — "never auto-accept `unicode-text` from an unendorsed
17
+ * contact". A sixth name is a protocol decision, not a caller's choice.
18
+ *
19
+ * CODEPOINT SETS, NOT ADJECTIVES. A profile enforced by a heuristic is a promise we do not keep,
20
+ * and "looks like markdown" is a heuristic. Every profile below is a predicate over code points.
21
+ *
22
+ * ENFORCED IN BOTH PLACES, for different reasons (§16.7-14). At authoring, so a stray character
23
+ * is caught where it was written and never becomes a rejection round — that is ERGONOMICS. At
24
+ * receipt, because the sender's enforcement is unverifiable — that is SECURITY. The second is not
25
+ * redundant with the first: a sender's client can be patched, or simply compromised while the
26
+ * sender themselves is a good actor.
27
+ *
28
+ * ── NARROWING ONLY ────────────────────────────────────────────────────────────────────────────
29
+ *
30
+ * Every profile, including the widest, still refuses what `document-screen.ts` refuses. A profile
31
+ * may only narrow the space, never widen it — otherwise choosing `unicode-text` would be a way to
32
+ * opt OUT of screening, and a peer could ask for that at consent time in the same breath as asking
33
+ * for Japanese.
34
+ */
35
+ /** Shape of text, in every profile: the two characters that are structure rather than content. */
36
+ const TAB = 0x09;
37
+ const NEWLINE = 0x0a;
38
+ const CARRIAGE_RETURN = 0x0d;
39
+ /**
40
+ * Refused by EVERY profile — the floor `document-screen.ts` sets, restated here so a profile cannot
41
+ * be used to bypass it. Kept as its own set rather than imported so the two can be read
42
+ * independently: this one is "no profile may admit these", which is a different claim from "the
43
+ * default rules refuse these".
44
+ */
45
+ const NEVER = new Set([
46
+ 0x200b, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x2066, 0x2067, 0x2068, 0x2069,
47
+ ]);
48
+ function isShapingChar(cp) {
49
+ return cp === TAB || cp === NEWLINE || cp === CARRIAGE_RETURN;
50
+ }
51
+ /** Printable ASCII. Control characters are not content — they address whatever renders them. */
52
+ function isPrintableAscii(cp) {
53
+ return cp >= 0x20 && cp <= 0x7e;
54
+ }
55
+ /**
56
+ * The closed set. Each value answers one question: may this code point appear?
57
+ *
58
+ * `ascii-markdown` and `ascii-text` are the same space today — markdown's syntax is printable ASCII.
59
+ * They are kept distinct because the NAME is what an operator consents to and what a future diff
60
+ * renderer keys on, and collapsing them would make "this is a markdown document" unstateable.
61
+ */
62
+ export const CONTENT_PROFILES = {
63
+ "ascii-text": (cp) => isShapingChar(cp) || isPrintableAscii(cp),
64
+ "ascii-markdown": (cp) => isShapingChar(cp) || isPrintableAscii(cp),
65
+ // JSON is ASCII-only BY DESIGN: `é` is how JSON carries `é`. Admitting the raw character too
66
+ // would mean two documents that parse identically have different bytes, and a CRDT replica's
67
+ // whole claim is that they do not.
68
+ json: (cp) => isShapingChar(cp) || isPrintableAscii(cp),
69
+ // The wide profiles admit anything that is not explicitly refused — including every sample the
70
+ // sanitizer audit destroyed. A profile that refused Devanagari orthography or a family emoji
71
+ // would be that same failure wearing a different name.
72
+ "unicode-text": (cp) => !NEVER.has(cp),
73
+ "unicode-markdown": (cp) => !NEVER.has(cp),
74
+ };
75
+ export function isKnownProfile(name) {
76
+ return typeof name === "string" && Object.hasOwn(CONTENT_PROFILES, name);
77
+ }
78
+ function formatCodepoint(cp) {
79
+ return `U+${cp.toString(16).toUpperCase().padStart(4, "0")}`;
80
+ }
81
+ /**
82
+ * Check text against a profile. Null admits.
83
+ *
84
+ * AN UNKNOWN OR ABSENT PROFILE ENFORCES NOTHING, and this is the one fail-open on the document
85
+ * path. A document agreed before profiles existed carries none, and refusing all of its updates
86
+ * would break a working document to enforce a rule its two parties never agreed to. The screening
87
+ * denylist still applies to it — that is the floor, and it is why failing open here is bounded
88
+ * rather than a hole.
89
+ */
90
+ export function profileViolation(profile, text) {
91
+ if (!isKnownProfile(profile))
92
+ return null;
93
+ const allows = CONTENT_PROFILES[profile];
94
+ const codepoints = new Set();
95
+ const offsets = [];
96
+ let index = 0;
97
+ for (const ch of text) {
98
+ const cp = ch.codePointAt(0);
99
+ if (!allows(cp) || NEVER.has(cp)) {
100
+ codepoints.add(formatCodepoint(cp));
101
+ offsets.push(index);
102
+ }
103
+ // CODE POINTS, not UTF-16 units — the offsets exist for a human or an agent to find the
104
+ // character in their own editor, and one that lands mid-surrogate in a document containing an
105
+ // emoji is worse than none.
106
+ index++;
107
+ }
108
+ if (codepoints.size === 0)
109
+ return null;
110
+ return { profile: profile, codepoints: [...codepoints], count: offsets.length, offsets };
111
+ }
112
+ //# sourceMappingURL=document-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-profile.js","sourceRoot":"","sources":["../src/document-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * DOD-DOC-DELIVERY-1 (outbound half) — turning a local edit into a signed envelope in the log.
3
+ *
4
+ * Publish is fire-and-forget by design (§16.4): it writes the envelope and returns. Delivery is the
5
+ * worker's job, and pending is derived from the log, so the only thing publish has to get right is
6
+ * that what it writes is complete, signed, and correctly chained.
7
+ *
8
+ * ── WHAT IS PUBLISHED IS A DIFF AGAINST THE PEER'S STATE VECTOR ───────────────────────────────
9
+ *
10
+ * Not the whole document. §3.2 step 3 and §7: an update computed against what the peer has already
11
+ * seen carries exactly the operations they lack — including, after a rejection, the refused
12
+ * operations PLUS their inverses, which is what lets supersession converge. Publishing the full
13
+ * state instead would work but would re-send the entire document on every edit, and would lose the
14
+ * property that makes the rejection protocol terminate.
15
+ *
16
+ * The peer's state vector is the one they last told us about. Absent — before they have ever
17
+ * published — the diff is against an empty document, which is the whole state and correct.
18
+ *
19
+ * ── THE CHAIN LINK IS READ, NEVER GUESSED ─────────────────────────────────────────────────────
20
+ *
21
+ * `doc_prev_hash` is our own last envelope for this document, read from the log at publish time. A
22
+ * cached value would go stale the moment anything else appended — a rejection, a withdrawal — and a
23
+ * wrong link is not a soft failure: the peer refuses it and, if it is ever replayed locally, the
24
+ * document stops rebuilding.
25
+ */
26
+ import type * as Y from "yjs";
27
+ import type { DocumentStore } from "./document-store.js";
28
+ import type { DocumentEngine } from "./document-engine.js";
29
+ import type { Logger } from "./types.js";
30
+ export type PublishResult = {
31
+ ok: true;
32
+ envelopeHash: string;
33
+ bytes: number;
34
+ } | {
35
+ ok: false;
36
+ reason: string;
37
+ detail: string;
38
+ };
39
+ export interface DocumentPublishDeps {
40
+ /**
41
+ * SYNC-G1 — the author's governance frontier at publish time (entry hashes, the fold's
42
+ * heads). Stamped into the signed envelope as content's causal link to the governance that
43
+ * makes it admissible; receivers rule R20/R30 on it. Null when the frontier cannot be
44
+ * derived — the publish REFUSES rather than stamping a guess.
45
+ */
46
+ governanceFrontierFor(ownerAgentId: string, documentId: string): string[] | null;
47
+ store: DocumentStore;
48
+ engine: DocumentEngine;
49
+ logger: Logger;
50
+ /** Sign as the owning agent, over the update envelope's TBS. */
51
+ sign(ownerAgentId: string, tbs: Uint8Array): Promise<Uint8Array>;
52
+ /** The owning agent's own id — which is its pubkey hex (M14-D5) — for the envelope's sender. */
53
+ senderIdFor(ownerAgentId: string): string | null;
54
+ /** May this agent publish into this document right now? LIFECYCLE-1 owns the answer. */
55
+ canPublish(ownerAgentId: string, documentId: string): {
56
+ ok: true;
57
+ } | {
58
+ ok: false;
59
+ reason: string;
60
+ detail: string;
61
+ };
62
+ /**
63
+ * M14B / FANOUT-1 — the CURRENT derived holders. Null means the chain does not derive, and a
64
+ * publish that cannot name its targets REFUSES rather than appending an envelope nothing will
65
+ * ever deliver (an un-seeded envelope is invisible work — the exact silent failure the
66
+ * envelope-first rule exists to prevent, arriving through the other door).
67
+ */
68
+ holdersFor(ownerAgentId: string, documentId: string): string[] | null;
69
+ /**
70
+ * SYNC-P4 (R39's first trigger): a publish NUDGES every other seat by initiating a reconcile
71
+ * exchange with them — fire-and-forget, no ledger, no schedule. A nudge that does not land
72
+ * strands nothing: the difference it would have closed is recomputed at any later exchange.
73
+ */
74
+ nudgeSeats(ownerAgentId: string, documentId: string, seats: readonly string[]): void;
75
+ }
76
+ export declare class DocumentPublish {
77
+ #private;
78
+ constructor(deps: DocumentPublishDeps);
79
+ /**
80
+ * Publish the live document's state as an update the peer does not yet have.
81
+ *
82
+ * Returns the envelope hash so a caller can follow it — a publish that says only "ok" gives an
83
+ * operator nothing to correlate with what later lands or stalls.
84
+ */
85
+ publish(ownerAgentId: string, documentId: string, doc: Y.Doc, nowMs: number): Promise<PublishResult>;
86
+ }
87
+ //# sourceMappingURL=document-publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-publish.d.ts","sourceRoot":"","sources":["../src/document-publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAO9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACjF,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjE,gGAAgG;IAChG,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,wFAAwF;IACxF,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnH;;;;;OAKG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACtE;;;;OAIG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CACtF;AAQD,qBAAa,eAAe;;gBAGd,IAAI,EAAE,mBAAmB;IAIrC;;;;;OAKG;IACG,OAAO,CACX,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,CAAC,CAAC,GAAG,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC;CAuI1B"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * DOD-DOC-DELIVERY-1 (outbound half) — turning a local edit into a signed envelope in the log.
3
+ *
4
+ * Publish is fire-and-forget by design (§16.4): it writes the envelope and returns. Delivery is the
5
+ * worker's job, and pending is derived from the log, so the only thing publish has to get right is
6
+ * that what it writes is complete, signed, and correctly chained.
7
+ *
8
+ * ── WHAT IS PUBLISHED IS A DIFF AGAINST THE PEER'S STATE VECTOR ───────────────────────────────
9
+ *
10
+ * Not the whole document. §3.2 step 3 and §7: an update computed against what the peer has already
11
+ * seen carries exactly the operations they lack — including, after a rejection, the refused
12
+ * operations PLUS their inverses, which is what lets supersession converge. Publishing the full
13
+ * state instead would work but would re-send the entire document on every edit, and would lose the
14
+ * property that makes the rejection protocol terminate.
15
+ *
16
+ * The peer's state vector is the one they last told us about. Absent — before they have ever
17
+ * published — the diff is against an empty document, which is the whole state and correct.
18
+ *
19
+ * ── THE CHAIN LINK IS READ, NEVER GUESSED ─────────────────────────────────────────────────────
20
+ *
21
+ * `doc_prev_hash` is our own last envelope for this document, read from the log at publish time. A
22
+ * cached value would go stale the moment anything else appended — a rejection, a withdrawal — and a
23
+ * wrong link is not a soft failure: the peer refuses it and, if it is ever replayed locally, the
24
+ * document stops rebuilding.
25
+ */
26
+ import { buildDocumentUpdateTbs, documentEnvelopeHash, DOCUMENT_UPDATE_ENCODING_V1, } from "@cello-protocol/protocol-types";
27
+ function equalBytes(a, b) {
28
+ if (a.length !== b.length)
29
+ return false;
30
+ for (let i = 0; i < a.length; i++)
31
+ if (a[i] !== b[i])
32
+ return false;
33
+ return true;
34
+ }
35
+ export class DocumentPublish {
36
+ #d;
37
+ constructor(deps) {
38
+ this.#d = deps;
39
+ }
40
+ /**
41
+ * Publish the live document's state as an update the peer does not yet have.
42
+ *
43
+ * Returns the envelope hash so a caller can follow it — a publish that says only "ok" gives an
44
+ * operator nothing to correlate with what later lands or stalls.
45
+ */
46
+ async publish(ownerAgentId, documentId, doc, nowMs) {
47
+ const document = this.#d.store.getDocument(ownerAgentId, documentId);
48
+ if (!document) {
49
+ return {
50
+ ok: false,
51
+ reason: "document_unknown",
52
+ detail: `no document ${documentId.slice(0, 16)}… for this agent`,
53
+ };
54
+ }
55
+ // LIFECYCLE-1 decides. A closed, killed, stalled or platform-paused agent must not publish, and
56
+ // the reason it gives is the one the operator needs — not a generic refusal from here.
57
+ const allowed = this.#d.canPublish(ownerAgentId, documentId);
58
+ if (!allowed.ok)
59
+ return { ok: false, reason: allowed.reason, detail: allowed.detail };
60
+ const senderId = this.#d.senderIdFor(ownerAgentId);
61
+ if (senderId === null) {
62
+ return {
63
+ ok: false,
64
+ reason: "document_publish_no_identity",
65
+ detail: `no signing identity for ${ownerAgentId}, so an envelope cannot be authored`,
66
+ };
67
+ }
68
+ // THE PEER's state vector, from their most recent envelope — not our own snapshot. Our
69
+ // snapshot answers "what have we not yet materialized", which is a different question whose
70
+ // answer looks plausible: it produced an update every time, so a republish with no new edits
71
+ // appended a second envelope instead of reporting that there was nothing to say.
72
+ const peerStateVector = this.#d.store.peerStateVector(ownerAgentId, documentId, document.peerAgentId) ?? undefined;
73
+ const update = this.#d.engine.encodeState(doc, peerStateVector);
74
+ // NOTHING NEW is a different question from what to SEND, and conflating them was a bug. The
75
+ // update is a diff against the PEER's state vector, so before they have ever published it is
76
+ // the whole document — non-empty however long we have gone without editing. Whether there is
77
+ // anything new is a fact about US: compare our current state vector against the one our own
78
+ // last envelope carried.
79
+ const ourLast = this.#d.store.lastPublishedStateVector(ownerAgentId, documentId, senderId);
80
+ const ourNow = this.#d.engine.encodeStateVector(doc);
81
+ if (ourLast !== null && equalBytes(ourLast, ourNow)) {
82
+ // Publishing anyway would append a leaf, cost a delivery, and converge nothing.
83
+ return {
84
+ ok: false,
85
+ reason: "document_nothing_to_publish",
86
+ detail: "nothing has changed in this document since your last publish",
87
+ };
88
+ }
89
+ if (update.length === 0) {
90
+ return {
91
+ ok: false,
92
+ reason: "document_nothing_to_publish",
93
+ detail: "the peer already has everything in this document",
94
+ };
95
+ }
96
+ // SYNC-G1: the frontier is stamped, or the publish refuses — a guessed anchor would let
97
+ // this envelope claim governance its author never held.
98
+ const governanceParents = this.#d.governanceFrontierFor(ownerAgentId, documentId);
99
+ if (governanceParents === null) {
100
+ return {
101
+ ok: false,
102
+ reason: "document_frontier_underivable",
103
+ detail: "this document's governance could not be derived, so the envelope cannot name the " +
104
+ "frontier it was authored under — fix the chain before publishing",
105
+ };
106
+ }
107
+ const envelope = {
108
+ type: "document_update",
109
+ document_id: documentId,
110
+ // READ, never cached. Anything else appended since — a rejection, a withdrawal — moves this,
111
+ // and a wrong link is refused by the peer and stops the document rebuilding locally.
112
+ doc_prev_hash: this.#d.store.lastEnvelopeHashBySender(ownerAgentId, documentId, senderId),
113
+ sender_agent_id: senderId,
114
+ sender_client_id: doc.clientID,
115
+ update_encoding: DOCUMENT_UPDATE_ENCODING_V1,
116
+ state_vector: ourNow,
117
+ update,
118
+ governance_parents: [...governanceParents].sort(),
119
+ signature: new Uint8Array(0),
120
+ };
121
+ // TARGETS BEFORE THE ENVELOPE: a publish that cannot name its holders refuses before it
122
+ // writes, because an appended-but-unseeded envelope is invisible work nothing will deliver.
123
+ const holders = this.#d.holdersFor(ownerAgentId, documentId);
124
+ if (holders === null) {
125
+ return {
126
+ ok: false,
127
+ reason: "document_chain_invalid",
128
+ detail: "this document's arrangement does not derive from its recorded chain — nothing can be " +
129
+ "published until it does; see document.holders.underivable in the log",
130
+ };
131
+ }
132
+ envelope.signature = await this.#d.sign(ownerAgentId, buildDocumentUpdateTbs(envelope));
133
+ const envelopeHash = documentEnvelopeHash(envelope);
134
+ const appended = this.#d.store.appendEnvelope(ownerAgentId, {
135
+ envelopeHash,
136
+ documentId,
137
+ senderAgentId: senderId,
138
+ docPrevHash: envelope.doc_prev_hash,
139
+ governanceParents: [...envelope.governance_parents],
140
+ signature: envelope.signature,
141
+ stateVector: envelope.state_vector,
142
+ payload: update,
143
+ kind: "update",
144
+ referencesEnvelopeHash: null,
145
+ // Recorded so the peer's authorship binding is derived from what we SIGNED, matching what the
146
+ // inbound path stores for their envelopes.
147
+ senderClientId: doc.clientID,
148
+ createdAtMs: nowMs,
149
+ });
150
+ if (!appended) {
151
+ // The same content published twice hashes the same, so this is a genuine no-op rather than a
152
+ // fault — but it is reported, because a caller that believes it published something new and
153
+ // waits for it to deliver would wait forever.
154
+ return {
155
+ ok: false,
156
+ reason: "document_already_published",
157
+ detail: `this exact update is already in the log as ${envelopeHash.slice(0, 16)}…`,
158
+ };
159
+ }
160
+ this.#d.logger.info("document.published", {
161
+ documentId,
162
+ envelopeHash,
163
+ bytes: update.length,
164
+ senderClientId: doc.clientID,
165
+ });
166
+ // Fire and forget: the NUDGE (an initiated reconcile per seat) is how the envelope travels
167
+ // now — there is no delivery ledger and no worker. Nothing here waits for a peer, and a nudge
168
+ // that does not land is repaired by any later exchange.
169
+ this.#d.nudgeSeats(ownerAgentId, documentId, holders.filter((h) => h !== senderId));
170
+ return { ok: true, envelopeHash, bytes: update.length };
171
+ }
172
+ }
173
+ //# sourceMappingURL=document-publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-publish.js","sourceRoot":"","sources":["../src/document-publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * DOD-DOC-DELIVERY-2 — binding the delivery worker's reachability check to `discovery_lookup`.
3
+ *
4
+ * The worker asks one question — "is this peer reachable right now?" — and its whole retry
5
+ * behaviour turns on the answer being about the PEER. `runDiscoveryLookup` deliberately returns
6
+ * five outcomes, only one of which is an answer about the peer at all, and this maps them:
7
+ *
8
+ * result / offline | unknown_agent -> false the peer is not reachable. A fact about them.
9
+ * result / online -> true
10
+ * error | malformed | timeout | send_failed
11
+ * -> THROW the lookup did not happen. A fact about US.
12
+ *
13
+ * The throw is the point. `isPeerReachable` returning false for a directory fault would record a
14
+ * directory outage — or our own signaling stream being down — as the operator's collaborator being
15
+ * absent, and send them to ask the wrong person why nothing is syncing. The worker already treats
16
+ * a throw as `lookup_failed` and keeps that distinction in the log; this is what feeds it.
17
+ *
18
+ * `unknown_agent` maps to false rather than throwing on purpose. It IS an answer from the
19
+ * directory about the peer — the address does not resolve — and the honest consequence is the same
20
+ * as offline: do not dial, retry later. It is a bad address rather than a transient absence, so it
21
+ * is surfaced distinctly by the caller rather than being collapsed into the same log line.
22
+ */
23
+ import type { DiscoveryOutcome } from "./cross-node-negotiation.js";
24
+ /** Why a lookup could not be performed. Carries the upstream reason verbatim. */
25
+ export declare class DiscoveryUnavailableError extends Error {
26
+ readonly kind: string;
27
+ constructor(kind: string, reason: string);
28
+ }
29
+ export interface Reachability {
30
+ reachable: boolean;
31
+ /** Present when the directory answered but the address does not resolve to a known agent. */
32
+ unknownAgent: boolean;
33
+ }
34
+ /**
35
+ * Map a discovery outcome onto the worker's reachability question.
36
+ *
37
+ * Pure, so the mapping is testable without a directory — which matters, because the expensive way
38
+ * to discover this mapping is wrong is in production, where the symptom is an operator chasing a
39
+ * collaborator who was never offline.
40
+ */
41
+ export declare function reachabilityFromDiscovery(outcome: DiscoveryOutcome): Reachability;
42
+ //# sourceMappingURL=document-reachability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-reachability.d.ts","sourceRoot":"","sources":["../src/document-reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,iFAAiF;AACjF,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKzC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,6FAA6F;IAC7F,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,CA+CjF"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * DOD-DOC-DELIVERY-2 — binding the delivery worker's reachability check to `discovery_lookup`.
3
+ *
4
+ * The worker asks one question — "is this peer reachable right now?" — and its whole retry
5
+ * behaviour turns on the answer being about the PEER. `runDiscoveryLookup` deliberately returns
6
+ * five outcomes, only one of which is an answer about the peer at all, and this maps them:
7
+ *
8
+ * result / offline | unknown_agent -> false the peer is not reachable. A fact about them.
9
+ * result / online -> true
10
+ * error | malformed | timeout | send_failed
11
+ * -> THROW the lookup did not happen. A fact about US.
12
+ *
13
+ * The throw is the point. `isPeerReachable` returning false for a directory fault would record a
14
+ * directory outage — or our own signaling stream being down — as the operator's collaborator being
15
+ * absent, and send them to ask the wrong person why nothing is syncing. The worker already treats
16
+ * a throw as `lookup_failed` and keeps that distinction in the log; this is what feeds it.
17
+ *
18
+ * `unknown_agent` maps to false rather than throwing on purpose. It IS an answer from the
19
+ * directory about the peer — the address does not resolve — and the honest consequence is the same
20
+ * as offline: do not dial, retry later. It is a bad address rather than a transient absence, so it
21
+ * is surfaced distinctly by the caller rather than being collapsed into the same log line.
22
+ */
23
+ /** Why a lookup could not be performed. Carries the upstream reason verbatim. */
24
+ export class DiscoveryUnavailableError extends Error {
25
+ kind;
26
+ constructor(kind, reason) {
27
+ super(`document_discovery_unavailable: ${kind}${reason ? ` (${reason})` : ""}`);
28
+ this.name = "DiscoveryUnavailableError";
29
+ this.kind = kind;
30
+ }
31
+ }
32
+ /**
33
+ * Map a discovery outcome onto the worker's reachability question.
34
+ *
35
+ * Pure, so the mapping is testable without a directory — which matters, because the expensive way
36
+ * to discover this mapping is wrong is in production, where the symptom is an operator chasing a
37
+ * collaborator who was never offline.
38
+ */
39
+ export function reachabilityFromDiscovery(outcome) {
40
+ switch (outcome.kind) {
41
+ case "result":
42
+ if (outcome.state === "online") {
43
+ if (outcome.owningNodeIds.length === 0) {
44
+ // `classifyOnlineResult` calls exactly this shape malformed — "online but no owner named
45
+ // … never dial a fabricated node" — and treats it as retry, not as availability. This
46
+ // module's whole thesis is that only a RESULT is an answer about the peer; a result that
47
+ // names no home answers nothing.
48
+ throw new DiscoveryUnavailableError("online_without_owner", "no owning node named");
49
+ }
50
+ return { reachable: true, unknownAgent: false };
51
+ }
52
+ if (outcome.state === "unknown_agent")
53
+ return { reachable: false, unknownAgent: true };
54
+ return { reachable: false, unknownAgent: false };
55
+ case "error":
56
+ // A directory DB fault. Retryable, and emphatically not the counterparty being offline —
57
+ // the outcome type's own comment says so, and collapsing it here would undo that care.
58
+ throw new DiscoveryUnavailableError("directory_error", outcome.reason);
59
+ case "malformed":
60
+ // A reply that did not parse: a protocol or version anomaly on a directory that DID respond.
61
+ // Distinct from a clean directory error, and never availability.
62
+ throw new DiscoveryUnavailableError("malformed_reply", "");
63
+ case "timeout":
64
+ // No reply in the window — an old directory, or a slow or dropped reply on a new one. Either
65
+ // way we learned nothing about the peer.
66
+ throw new DiscoveryUnavailableError("timeout", "");
67
+ case "send_failed":
68
+ // Our OWN signaling stream is down. The most important one to keep separate: reporting our
69
+ // transport fault as the peer's absence points the operator at the wrong machine entirely.
70
+ throw new DiscoveryUnavailableError("signaling_unavailable", outcome.reason);
71
+ default: {
72
+ // Exhaustiveness, enforced by the compiler. A new outcome kind must be classified
73
+ // deliberately rather than defaulting into "reachable" or "offline", which are the two
74
+ // answers a silent default would have to invent.
75
+ const never = outcome;
76
+ throw new DiscoveryUnavailableError("unrecognized_outcome", `unhandled discovery outcome ${JSON.stringify(never)}`);
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=document-reachability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-reachability.js","sourceRoot":"","sources":["../src/document-reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,iFAAiF;AACjF,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,CAAS;IACtB,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,mCAAmC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAyB;IACjE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvC,yFAAyF;oBACzF,sFAAsF;oBACtF,yFAAyF;oBACzF,iCAAiC;oBACjC,MAAM,IAAI,yBAAyB,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YAClD,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe;gBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YACvF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QAEnD,KAAK,OAAO;YACV,yFAAyF;YACzF,uFAAuF;YACvF,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzE,KAAK,WAAW;YACd,6FAA6F;YAC7F,iEAAiE;YACjE,MAAM,IAAI,yBAAyB,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAE7D,KAAK,SAAS;YACZ,6FAA6F;YAC7F,yCAAyC;YACzC,MAAM,IAAI,yBAAyB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAErD,KAAK,aAAa;YAChB,2FAA2F;YAC3F,2FAA2F;YAC3F,MAAM,IAAI,yBAAyB,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/E,OAAO,CAAC,CAAC,CAAC;YACR,kFAAkF;YAClF,uFAAuF;YACvF,iDAAiD;YACjD,MAAM,KAAK,GAAU,OAAO,CAAC;YAC7B,MAAM,IAAI,yBAAyB,CACjC,sBAAsB,EACtB,+BAA+B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACvD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * SYNC-P3 (R10, R17–R20, R36) — the responder half of the reconcile exchange.
3
+ *
4
+ * Given a peer's position for one document, decide from OUR OWN state alone whether they may be
5
+ * answered at all (the four entitlement classes, R17), and if so compute exactly what they lack:
6
+ * governance entries first, then content envelopes, never anything in their refusal set (R36).
7
+ * The reply carries our own position so the initiator can send step 3 if WE are behind — the
8
+ * exchange is symmetric by construction.
9
+ *
10
+ * Everything here is derived at the moment of the exchange from the entry set and the envelope
11
+ * log. There is no per-peer record consulted and none written (R8/R9): asked twice, we answer
12
+ * twice, identically — idempotence is not bookkeeping, it is the absence of bookkeeping.
13
+ */
14
+ import { type DocumentReconcileBlock, type DocumentStateView } from "@cello-protocol/protocol-types";
15
+ import type { DocumentEnvelopeRow } from "./document-store.js";
16
+ import type { AuthorWatermark } from "./document-amendment-store.js";
17
+ /** The reads the engine needs — a seam so the tests exercise decisions, not plumbing. */
18
+ export interface ReconcileReads {
19
+ deriveState(documentId: string): {
20
+ ok: true;
21
+ state: DocumentStateView;
22
+ } | {
23
+ ok: false;
24
+ reason: string;
25
+ };
26
+ watermarks(documentId: string): Map<string, AuthorWatermark>;
27
+ entriesByAuthorAfter(documentId: string, author: string, afterSeq: number): Uint8Array[];
28
+ envelopeLog(documentId: string): DocumentEnvelopeRow[];
29
+ /** Hashes THIS holder has refused — its own decisions, surfaced into its position (R36). */
30
+ refusedHashes(documentId: string): string[];
31
+ /** SYNC-R35: this holder's own SIGNED refusal records (document_rejection wires). */
32
+ refusalRecords(documentId: string): Uint8Array[];
33
+ /** SYNC-D8 — the fold-derived standing; "removed" is the one verdict consulted here. */
34
+ standingOf(documentId: string, agentId: string): "participant" | "invited" | "removed" | "stranger" | "unknown";
35
+ /** The signed genesis proposal bytes — the anchor a joiner-with-nothing must be handed. */
36
+ genesisBytes(documentId: string): Uint8Array | null;
37
+ /**
38
+ * R32 — the LAST removal entry naming this agent plus its full ancestor closure, as wire
39
+ * bytes in a foldable order, or null when no removal names them. This is what a removed
40
+ * holder is owed: enough to derive their own removal and nothing authored after it.
41
+ */
42
+ removalClosure(documentId: string, agentId: string): Uint8Array[] | null;
43
+ }
44
+ export type ReconcileAnswer = {
45
+ block: DocumentReconcileBlock;
46
+ /** True when the peer's position shows them holding something we lack — step 3 is wanted. */
47
+ peerAhead: boolean;
48
+ /** True when the byte budget cut the payload short — the peer's next exchange gets the rest. */
49
+ truncated: boolean;
50
+ };
51
+ /** A mutable byte allowance shared across the blocks of one reply frame (P3 review F3). */
52
+ export interface ReplyBudget {
53
+ remainingBytes: number;
54
+ }
55
+ /** Our own position for one document — step 1's payload, and the position half of every reply. */
56
+ export declare function buildReconcileBlock(reads: ReconcileReads, documentId: string): DocumentReconcileBlock;
57
+ /**
58
+ * Answer a peer's position for one document. The entitlement ruling comes FIRST and from our
59
+ * own state alone (R18); a refusal rides the BLOCK (never silenced by a batch, review F4), and
60
+ * a refusal-bearing block carries EMPTY positions — a stranger learns nothing about where this
61
+ * holder stands. The removed holder is the one refusal that also DELIVERS: their own removal
62
+ * and its ancestors travel with the terminal ruling (R32), so a holder who was offline at
63
+ * removal time can derive why the document went quiet.
64
+ */
65
+ export declare function respondToReconcile(reads: ReconcileReads, peerAgentId: string, peerBlock: DocumentReconcileBlock, budget?: ReplyBudget): ReconcileAnswer;
66
+ //# sourceMappingURL=document-reconcile-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-reconcile-engine.d.ts","sourceRoot":"","sources":["../src/document-reconcile-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAKL,KAAK,sBAAsB,EAG3B,KAAK,iBAAiB,EACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,yFAAyF;AACzF,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACzF,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACvD,4FAA4F;IAC5F,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5C,qFAAqF;IACrF,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACjD,wFAAwF;IACxF,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAChH,2FAA2F;IAC3F,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACpD;;;;OAIG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;CAC1E;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,6FAA6F;IAC7F,SAAS,EAAE,OAAO,CAAC;IACnB,gGAAgG;IAChG,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAmBxB;AAkBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,sBAAsB,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,eAAe,CA+KjB"}