@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,37 @@
1
+ /**
2
+ * Agent identity loader for the CELLO daemon.
3
+ *
4
+ * Agents are enumerated from the encrypted `agents` table — ONE loading path. There is no flat-file
5
+ * fallback: on-disk key files are imported into the `agents` table by the one-time migration
6
+ * (identity-migration.ts) before this loader runs.
7
+ *
8
+ * Each agent's K_local Ed25519 seed is stored as a BLOB column; the loader builds a sign-only
9
+ * InMemoryKeyProvider from it (the private scalar never leaves the provider — only signatures and
10
+ * content-seal opens are emitted).
11
+ */
12
+ import { InMemoryKeyProvider } from "@cello-protocol/crypto";
13
+ import { DbIdentityStore } from "./db-identity-store.js";
14
+ import { extractErrorMessage } from "./error-message.js";
15
+ /**
16
+ * Load every agent from the encrypted `agents` table. A row whose seed is unusable (corrupt/wrong
17
+ * length) is reported as a failed agent and skipped — never silently dropped.
18
+ */
19
+ export async function loadAgents(db, logger) {
20
+ const store = new DbIdentityStore(db, logger);
21
+ const loaded = [];
22
+ const failed = [];
23
+ for (const row of store.listAgents()) {
24
+ try {
25
+ const keyProvider = new InMemoryKeyProvider(row.kLocalSeed);
26
+ const pubkey = Buffer.from(await keyProvider.getPublicKey()).toString("hex");
27
+ loaded.push({ name: row.agentName, pubkey, keyProvider });
28
+ }
29
+ catch (err) {
30
+ const error = extractErrorMessage(err);
31
+ logger.error("agent.load.failed", { agentName: row.agentName, error });
32
+ failed.push({ name: row.agentName, error });
33
+ }
34
+ }
35
+ return { loaded, failed };
36
+ }
37
+ //# sourceMappingURL=agent-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAsBzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAkB,EAAE,MAAc;IACjE,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Which agent a call is FOR, and how a caller learns it fell back.
3
+ *
4
+ * One rule, in one place, because the alternative has already happened: several handlers each
5
+ * deciding what "the current agent" means is how a call lands on an agent the operator did not
6
+ * choose. The fallback notice rides an AsyncLocalStorage so an answer can carry WHY it fell back
7
+ * without every caller having to thread it through.
8
+ *
9
+ * The registration guidance stayed in the root: it is written between this block and the agent
10
+ * lifecycle handlers, and moving it would have meant moving the handler registration with it.
11
+ */
12
+ import { AsyncLocalStorage } from "node:async_hooks";
13
+ import type { Logger } from "./types.js";
14
+ export interface AgentSelectionDeps {
15
+ logger: Logger;
16
+ /** The live set — a copy would freeze at boot and the single-online-agent fallback would never fire. */
17
+ onlineAgents: ReadonlySet<string>;
18
+ }
19
+ export declare function createAgentSelection(deps: AgentSelectionDeps): {
20
+ fallbackNoticeStore: AsyncLocalStorage<{
21
+ notice?: Record<string, unknown>;
22
+ }>;
23
+ resolveCurrentAgent: (connState: {
24
+ currentAgent: string | null;
25
+ clearedAgent?: string;
26
+ clientType?: string;
27
+ } | undefined, explicitAgent?: string) => string | null;
28
+ };
29
+ //# sourceMappingURL=agent-selection-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection-root.d.ts","sourceRoot":"","sources":["../src/agent-selection-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,wGAAwG;IACxG,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB;;iBAwDE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;qCAGvE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,kBAClF,MAAM,KACrB,MAAM,GAAG,IAAI;EA0DjB"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Which agent a call is FOR, and how a caller learns it fell back.
3
+ *
4
+ * One rule, in one place, because the alternative has already happened: several handlers each
5
+ * deciding what "the current agent" means is how a call lands on an agent the operator did not
6
+ * choose. The fallback notice rides an AsyncLocalStorage so an answer can carry WHY it fell back
7
+ * without every caller having to thread it through.
8
+ *
9
+ * The registration guidance stayed in the root: it is written between this block and the agent
10
+ * lifecycle handlers, and moving it would have meant moving the handler registration with it.
11
+ */
12
+ import { AsyncLocalStorage } from "node:async_hooks";
13
+ import { resolveCurrentAgentFor } from "./agent-selection.js";
14
+ export function createAgentSelection(deps) {
15
+ const { logger, onlineAgents } = deps;
16
+ // M8C-AUTOSTART-1 (F18): resolve which agent an agent-defaulting tool should act on for this
17
+ // connection: an explicit { agent } wins; else the connection's current agent; else — when EXACTLY one
18
+ // agent is online daemon-wide — that sole agent (removes the "why did it forget my agent" moment
19
+ // after a /mcp reconnect). Two-or-more online with none selected stays ambiguous → null (the
20
+ // caller returns no_current_agent), because guessing between peers would misroute.
21
+ /**
22
+ * Which agent does this call act as?
23
+ *
24
+ * An explicit { agent } wins, then this connection's selection. Only with NEITHER does the daemon fall back
25
+ * to the sole online agent — a convenience for a caller that never chose, where "the online one"
26
+ * cannot mean anyone else.
27
+ *
28
+ * The fallback is REFUSED for a connection whose selection was taken away (`clearedAgent`): it
29
+ * chose an agent, that agent was stopped or retired, and the choice is gone. Falling back there
30
+ * silently re-targets the next call at whoever else happens to be online — the caller asked for
31
+ * alice, alice was stopped, and the work lands on bob reporting success. A lost intent is not the
32
+ * same as no intent, and it must fail loud (no_current_agent) rather than be guessed at.
33
+ */
34
+ /**
35
+ * Which agent this call acts as — `DOD-M15-SELECTION-1`, logic in `agent-selection.ts`.
36
+ *
37
+ * It used to end with `if (onlineAgents.size === 1) return [...onlineAgents][0]`, so a connection
38
+ * that had selected nothing acted as whichever agent happened to be the only one online. On a
39
+ * shared daemon that can be a DIFFERENT operator's agent, and a live MCP session was being bound
40
+ * to an identity it never asked for.
41
+ *
42
+ * The resolution is now attributable: every path reports how it was reached, and `fallback` — the
43
+ * one that was invisible — is logged at INFO. `DOD-M15-IPCVISIBLE-1`.
44
+ */
45
+ /**
46
+ * The fallback notice owed to THIS REQUEST's response — `DOD-M15-SELECTION-1` clause 2.
47
+ *
48
+ * ─── Why an AsyncLocalStorage and not a per-connection map ─────────────────────────────────────
49
+ *
50
+ * The first cut keyed a `WeakMap` on the per-connection state object, so the notice belonged to
51
+ * the CONNECTION and was read back at the response boundary. Review found that hands the notice to
52
+ * whichever response finishes first, and Claude Code issues tool calls in parallel:
53
+ *
54
+ * 1. the agent calls `cello_receive` — nothing selected, so the fallback resolves and records
55
+ * the notice, then the handler BLOCKS for up to 30 s waiting for content;
56
+ * 2. in the same turn it calls `cello_sessions {agent: "bob"}`, which names an agent explicitly
57
+ * and never falls back;
58
+ * 3. `cello_sessions` returns first and takes the notice on its way out.
59
+ *
60
+ * Bob's response now says *"no agent was selected, so 'solo' was used"* — false, on the one call
61
+ * that did name an agent — and `cello_receive`, the call that actually fell back, says nothing.
62
+ * Exactly inverted.
63
+ *
64
+ * A notice is a fact about ONE CALL, so it is stored in that call's async context. The store is
65
+ * created per request in `renderedHandlers` and dies with it, which also means a handler that
66
+ * THROWS cannot leave a notice behind to attach itself to some later, unrelated response — the
67
+ * other half of the same review finding.
68
+ */
69
+ const fallbackNoticeStore = new AsyncLocalStorage();
70
+ function resolveCurrentAgent(connState, explicitAgent) {
71
+ return resolveCurrentAgentFor({
72
+ connState,
73
+ onlineAgents,
74
+ ...(explicitAgent !== undefined ? { explicitAgent } : {}),
75
+ onResolved: (agent, trigger) => {
76
+ // Only the FALLBACK is announced. `explicit` and `selected` are the ordinary cases and
77
+ // logging them would bury the one that matters — a signal that fires on the normal case is
78
+ // not a signal.
79
+ if (trigger !== "fallback")
80
+ return;
81
+ /**
82
+ * RECORDED FOR THE RESPONSE, not just the log — `DOD-M15-SELECTION-1` clause 2.
83
+ *
84
+ * The log tells whoever reads the daemon log. The RESPONSE tells the agent that just acted
85
+ * as an identity it never selected, which is the one that stops the half-attended state
86
+ * being read as the protocol dropping messages.
87
+ */
88
+ /**
89
+ * No `connState` guard. The first cut wrote the notice only `if (agent && connState)`, and
90
+ * `perConnectionState` is populated at `ipc.connect` — which `withIpc` in the CLI
91
+ * (`core/cli/src/commands.ts`) does not send. So every plain `cello` invocation fell back
92
+ * and got a response that said nothing, while the log line below fired regardless: the
93
+ * clause asks for explicit IN THE RESPONSE, and those callers had it explicit in the log
94
+ * only. The store is per-REQUEST, so it exists whether or not the connection ever
95
+ * handshook.
96
+ */
97
+ const store = fallbackNoticeStore.getStore();
98
+ if (agent && store) {
99
+ store.notice = {
100
+ acting_as: agent,
101
+ agent_selection: "fallback",
102
+ agent_selection_guidance: `No agent was selected on this connection, so '${agent}' was used because it is the ` +
103
+ `only one online. This is a per-call subject, NOT an attendance: doorbells route by ` +
104
+ `the connection's registered agent and this does not set it. Two things follow — ` +
105
+ `this session will not WAKE on an incoming message even though sending and reading ` +
106
+ `work, and anyone who opens a session with you is sent an AWAY auto-reply while you ` +
107
+ `sit here able to answer. Run cello_use_agent to fix both. Naming the agent on each ` +
108
+ `call is NOT a remedy for either: it settles which agent a call is about and leaves ` +
109
+ `the connection just as unattended.`,
110
+ };
111
+ }
112
+ logger.info("agent.current.fallback", {
113
+ agentName: agent,
114
+ clientType: connState?.clientType ?? "cli",
115
+ impact: "this call had no selected agent and exactly one was online, so that one was used. It " +
116
+ "is a per-call subject, NOT an attendance: doorbells route by the connection's " +
117
+ "registered agent, which this does not set.",
118
+ guidance: "If this was not the intended agent, name it explicitly, or run cello_use_agent to " +
119
+ "select one for the connection.",
120
+ });
121
+ },
122
+ });
123
+ }
124
+ return { fallbackNoticeStore, resolveCurrentAgent };
125
+ }
126
+ //# sourceMappingURL=agent-selection-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection-root.js","sourceRoot":"","sources":["../src/agent-selection-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEtC,6FAA6F;IAC7F,uGAAuG;IACvG,iGAAiG;IACjG,6FAA6F;IAC7F,mFAAmF;IACnF;;;;;;;;;;;;OAYG;IACH;;;;;;;;;;OAUG;IACH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAwC,CAAC;IAE1F,SAAS,mBAAmB,CAC1B,SAAkG,EAClG,aAAsB;QAEtB,OAAO,sBAAsB,CAAC;YAC5B,SAAS;YACT,YAAY;YACZ,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC7B,uFAAuF;gBACvF,2FAA2F;gBAC3F,gBAAgB;gBAChB,IAAI,OAAO,KAAK,UAAU;oBAAE,OAAO;gBACnC;;;;;;mBAMG;gBACH;;;;;;;;mBAQG;gBACH,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;oBACnB,KAAK,CAAC,MAAM,GAAG;wBACb,SAAS,EAAE,KAAK;wBAChB,eAAe,EAAE,UAAU;wBAC3B,wBAAwB,EACtB,iDAAiD,KAAK,+BAA+B;4BACrF,qFAAqF;4BACrF,kFAAkF;4BAClF,oFAAoF;4BACpF,qFAAqF;4BACrF,qFAAqF;4BACrF,qFAAqF;4BACrF,oCAAoC;qBACvC,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBACpC,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,KAAK;oBAC1C,MAAM,EACJ,uFAAuF;wBACvF,gFAAgF;wBAChF,4CAA4C;oBAC9C,QAAQ,EACN,oFAAoF;wBACpF,gCAAgC;iBACnC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Which agent a call acts as, and HOW that was decided — `DOD-M15-SELECTION-1`,
3
+ * `DOD-M15-IPCVISIBLE-1`.
4
+ *
5
+ * ─── The defect this is extracted from ─────────────────────────────────────────────────────────
6
+ *
7
+ * This logic was four lines inside `daemon.ts`, ending in:
8
+ *
9
+ * if (onlineAgents.size === 1) return [...onlineAgents][0];
10
+ *
11
+ * A connection that had selected nothing therefore acted as whichever agent happened to be the only
12
+ * one online. On a shared daemon that can be a DIFFERENT operator's agent, which is how it was
13
+ * found: after a restart a released agent was silently reinstated under someone else's name.
14
+ *
15
+ * ─── Why the fallback is worse than it looks even when it picks the "right" agent ──────────────
16
+ *
17
+ * It produces a HALF-ATTENDED state. Tools resolve a subject and work; the notification dispatcher
18
+ * routes doorbells by the connection's REGISTERED current agent, which this never sets. So the
19
+ * session sends and receives on request but never wakes — and an operator reads that as the
20
+ * protocol dropping messages, not as a selection that was never made.
21
+ *
22
+ * ─── AND WHY IT IS STILL HERE ──────────────────────────────────────────────────────────────────
23
+ *
24
+ * My first version switched the fallback OFF for MCP on that reasoning, and four tests said no. CC-3
25
+ * added it deliberately, to fix "the post-/mcp-reconnect papercut": a reconnected session with
26
+ * exactly one agent online used to hard-fail `no_current_agent`.
27
+ *
28
+ * `DOD-M15-SELECTION-1`'s answer is narrower than removal — *"if a fallback is wanted it is EXPLICIT
29
+ * in the response, not announced as an accomplished fact"* — and it sequences the work: *"diagnosis
30
+ * first… with the trigger field from DOD-M15-IPCVISIBLE-1 distinguishing replay from fallback in one
31
+ * run."* So this module makes the decision ATTRIBUTABLE, which is the precondition, and changing
32
+ * what the fallback DOES waits for the diagnosis that attribution makes possible.
33
+ *
34
+ * ─── Every path reports how it got there ───────────────────────────────────────────────────────
35
+ *
36
+ * Two agent switches fired one second after a reconnect on 2026-08-09 and neither could be
37
+ * attributed, because an operator's explicit selection and the shim's reconnect replay arrive
38
+ * identically. `fallback` is the third value `DOD-M15-IPCVISIBLE-1` asks for, and the one that was
39
+ * invisible.
40
+ */
41
+ /** How a call's acting agent was arrived at. Every branch reports one. */
42
+ export type SelectionTrigger =
43
+ /** The caller named an agent on this call. */
44
+ "explicit"
45
+ /** The connection had selected one earlier with `cello_use_agent`. */
46
+ | "selected"
47
+ /** Nothing was selected and one agent was online — a CLI convenience, never for a live session. */
48
+ | "fallback"
49
+ /**
50
+ * The connection's choice was TAKEN AWAY — the agent was shut down or removed underneath it.
51
+ *
52
+ * NOT a voluntary release. `cello_stop_using_agent` deliberately does not set this: the operator
53
+ * choosing to hold nothing stays eligible for the sole-online fallback, whereas a connection whose
54
+ * agent vanished must not have a replacement guessed for it.
55
+ */
56
+ | "cleared"
57
+ /** No agent could be determined. */
58
+ | "none";
59
+ export interface SelectionConnState {
60
+ currentAgent: string | null;
61
+ /** Set by `cello_stop_using_agent`: this connection HAD an intent and gave it up. */
62
+ clearedAgent?: string;
63
+ /** `"mcp"` is a live session; anything else is treated as an ephemeral CLI invocation. */
64
+ clientType?: string;
65
+ }
66
+ export declare function resolveCurrentAgentFor(opts: {
67
+ connState: SelectionConnState | undefined;
68
+ onlineAgents: ReadonlySet<string>;
69
+ explicitAgent?: string;
70
+ /** Called exactly once with the outcome, so the decision is attributable in the log. */
71
+ onResolved?: (agent: string | null, trigger: SelectionTrigger) => void;
72
+ }): string | null;
73
+ //# sourceMappingURL=agent-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection.d.ts","sourceRoot":"","sources":["../src/agent-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB;AAC1B,8CAA8C;AAC5C,UAAU;AACZ,sEAAsE;GACpE,UAAU;AACZ,mGAAmG;GACjG,UAAU;AACZ;;;;;;GAMG;GACD,SAAS;AACX,oCAAoC;GAClC,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,SAAS,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC1C,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACxE,GAAG,MAAM,GAAG,IAAI,CAsChB"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Which agent a call acts as, and HOW that was decided — `DOD-M15-SELECTION-1`,
3
+ * `DOD-M15-IPCVISIBLE-1`.
4
+ *
5
+ * ─── The defect this is extracted from ─────────────────────────────────────────────────────────
6
+ *
7
+ * This logic was four lines inside `daemon.ts`, ending in:
8
+ *
9
+ * if (onlineAgents.size === 1) return [...onlineAgents][0];
10
+ *
11
+ * A connection that had selected nothing therefore acted as whichever agent happened to be the only
12
+ * one online. On a shared daemon that can be a DIFFERENT operator's agent, which is how it was
13
+ * found: after a restart a released agent was silently reinstated under someone else's name.
14
+ *
15
+ * ─── Why the fallback is worse than it looks even when it picks the "right" agent ──────────────
16
+ *
17
+ * It produces a HALF-ATTENDED state. Tools resolve a subject and work; the notification dispatcher
18
+ * routes doorbells by the connection's REGISTERED current agent, which this never sets. So the
19
+ * session sends and receives on request but never wakes — and an operator reads that as the
20
+ * protocol dropping messages, not as a selection that was never made.
21
+ *
22
+ * ─── AND WHY IT IS STILL HERE ──────────────────────────────────────────────────────────────────
23
+ *
24
+ * My first version switched the fallback OFF for MCP on that reasoning, and four tests said no. CC-3
25
+ * added it deliberately, to fix "the post-/mcp-reconnect papercut": a reconnected session with
26
+ * exactly one agent online used to hard-fail `no_current_agent`.
27
+ *
28
+ * `DOD-M15-SELECTION-1`'s answer is narrower than removal — *"if a fallback is wanted it is EXPLICIT
29
+ * in the response, not announced as an accomplished fact"* — and it sequences the work: *"diagnosis
30
+ * first… with the trigger field from DOD-M15-IPCVISIBLE-1 distinguishing replay from fallback in one
31
+ * run."* So this module makes the decision ATTRIBUTABLE, which is the precondition, and changing
32
+ * what the fallback DOES waits for the diagnosis that attribution makes possible.
33
+ *
34
+ * ─── Every path reports how it got there ───────────────────────────────────────────────────────
35
+ *
36
+ * Two agent switches fired one second after a reconnect on 2026-08-09 and neither could be
37
+ * attributed, because an operator's explicit selection and the shim's reconnect replay arrive
38
+ * identically. `fallback` is the third value `DOD-M15-IPCVISIBLE-1` asks for, and the one that was
39
+ * invisible.
40
+ */
41
+ export function resolveCurrentAgentFor(opts) {
42
+ const report = (agent, trigger) => {
43
+ opts.onResolved?.(agent, trigger);
44
+ return agent;
45
+ };
46
+ if (opts.explicitAgent)
47
+ return report(opts.explicitAgent, "explicit");
48
+ if (opts.connState?.currentAgent)
49
+ return report(opts.connState.currentAgent, "selected");
50
+ /**
51
+ * AN INVOLUNTARY CLEAR BLOCKS THE FALLBACK. Pre-existing behaviour, preserved.
52
+ *
53
+ * `clearedAgent` means the connection's agent was shut down or removed underneath it — do not
54
+ * guess a replacement. A VOLUNTARY release (`cello_stop_using_agent`) deliberately does not set
55
+ * it, because the operator choosing to hold nothing is not the same as having the choice taken,
56
+ * and they stay eligible for the fallback.
57
+ */
58
+ if (opts.connState?.clearedAgent)
59
+ return report(null, "cleared");
60
+ /**
61
+ * THE SOLE-ONLINE FALLBACK — behaviour UNCHANGED, visibility added.
62
+ *
63
+ * `DOD-M15-SELECTION-1` names this as the place a live MCP session gets bound to an identity it
64
+ * never asked for, and the instinct is to switch it off for MCP. That is wrong, and the tests say
65
+ * why: CC-3 introduced it deliberately to fix "the post-/mcp-reconnect papercut", where a
66
+ * reconnected session hard-failed `no_current_agent` with exactly one agent online.
67
+ *
68
+ * The line's own answer is narrower than removal: *"if a fallback is wanted it is EXPLICIT in the
69
+ * response, not announced as an accomplished fact."* And it sequences the work — *"diagnosis
70
+ * first… with the trigger field from DOD-M15-IPCVISIBLE-1 distinguishing replay from fallback in
71
+ * one run."* So this reports itself, and changing what it DOES waits for that diagnosis.
72
+ *
73
+ * Exactly one, never a guess between two: choosing between identities is a coin flip with the
74
+ * operator's name on it, not a convenience.
75
+ */
76
+ if (opts.onlineAgents.size === 1)
77
+ return report([...opts.onlineAgents][0], "fallback");
78
+ return report(null, "none");
79
+ }
80
+ //# sourceMappingURL=agent-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection.js","sourceRoot":"","sources":["../src/agent-selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AA6BH,MAAM,UAAU,sBAAsB,CAAC,IAMtC;IACC,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,OAAyB,EAAiB,EAAE;QAChF,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAEzF;;;;;;;OAOG;IACH,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY;QAAE,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEjE;;;;;;;;;;;;;;;OAeG;IACH,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,CAAC;IAExF,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * CELLO Daemon — the agent_settings key namespace (DOD-SETTINGS-1).
3
+ *
4
+ * A single source for every valid per-agent reachability-policy setting key, so the handler (which
5
+ * REFUSES an unknown key) and the consumers (TIER-BOUNDS-SETTINGS reads the bound overrides,
6
+ * AWAY-TIER-1 reads the away texts) can never drift. Keys are lower-snake, dotted namespaces:
7
+ *
8
+ * bounds.<tier>.max_sessions bounds.<tier>.max_bytes — per-tier bound overrides
9
+ * away.default — the agent's default away text
10
+ * away.tier.<tier> — a per-tier away text
11
+ *
12
+ * `<tier>` is a tier NAME (not the integer), for legibility in the store. BLOCKED is deliberately NOT
13
+ * settable — 0/0 is fixed (you cannot "raise" a block), and it has no away text (a blocked sender is
14
+ * refused before any reply). So the settable tiers are unknown / known / whitelisted / vip.
15
+ */
16
+ /** The tiers whose bounds and away texts are settable (BLOCKED is fixed, never overridable). */
17
+ export declare const SETTABLE_TIER_NAMES: readonly ["unknown", "known", "whitelisted", "vip"];
18
+ export type SettableTierName = (typeof SETTABLE_TIER_NAMES)[number];
19
+ /** The tier NAME for a tier integer, or null for an unknown/unsettable value (e.g. BLOCKED=0).
20
+ * Keyed off the TIER constants (review F3) so a renumbering in contacts-tier-migration can never
21
+ * silently desync the settings namespace from the grid. */
22
+ export declare function settableTierName(tier: number): SettableTierName | null;
23
+ export type BoundField = "max_sessions" | "max_bytes";
24
+ /** The setting key for a per-tier bound override. */
25
+ export declare function boundSettingKey(tier: SettableTierName, field: BoundField): string;
26
+ /** The setting key for a per-tier away text. */
27
+ export declare function awayTierSettingKey(tier: SettableTierName): string;
28
+ /** The setting key for the agent's default away text (the fallback below any per-tier text). */
29
+ export declare const AWAY_DEFAULT_KEY = "away.default";
30
+ /** True iff `key` is a known, settable reachability-policy key. An unknown key is REFUSED by the
31
+ * handler (never silently stored — a typo'd key that persisted would be a setting that never takes
32
+ * effect, invisible to the operator). */
33
+ export declare function isValidSettingKey(key: string): boolean;
34
+ /** The full list of valid keys (for surfacing in a settings-list / help). */
35
+ export declare function allSettingKeys(): string[];
36
+ /** True iff the key is a per-tier BOUND override (its value must be a positive integer). */
37
+ export declare function isBoundKey(key: string): boolean;
38
+ /**
39
+ * Validate a setting's VALUE for its key (DOD-TIER-BOUNDS-SETTINGS AC2). A bound override may only be
40
+ * a FINITE POSITIVE INTEGER — INV-TIER-BOUND: a setting can RAISE or lower a bound within finite
41
+ * limits, never REMOVE one. So `Infinity`, negatives, zero, non-integers, and non-numeric strings are
42
+ * refused (an unbounded tier is exactly what the grid forbids). Away-text values are free-form strings.
43
+ */
44
+ export declare function validateSettingValue(key: string, value: string): {
45
+ ok: true;
46
+ } | {
47
+ ok: false;
48
+ reason: string;
49
+ };
50
+ /** Max length of an away message (per-contact or per-tier/agent-default) — an answering-machine line. */
51
+ export declare const AWAY_MESSAGE_MAX_LEN = 2048;
52
+ //# sourceMappingURL=agent-settings-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-settings-keys.d.ts","sourceRoot":"","sources":["../src/agent-settings-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,qDAAqE,CAAC;AACtG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE;;4DAE4D;AAC5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAQtE;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,WAAW,CAAC;AAEtD,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAEjF;AAED,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAgB/C;;0CAE0C;AAC1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED,4FAA4F;AAC5F,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqC7G;AAED,yGAAyG;AACzG,eAAO,MAAM,oBAAoB,OAAO,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * CELLO Daemon — the agent_settings key namespace (DOD-SETTINGS-1).
3
+ *
4
+ * A single source for every valid per-agent reachability-policy setting key, so the handler (which
5
+ * REFUSES an unknown key) and the consumers (TIER-BOUNDS-SETTINGS reads the bound overrides,
6
+ * AWAY-TIER-1 reads the away texts) can never drift. Keys are lower-snake, dotted namespaces:
7
+ *
8
+ * bounds.<tier>.max_sessions bounds.<tier>.max_bytes — per-tier bound overrides
9
+ * away.default — the agent's default away text
10
+ * away.tier.<tier> — a per-tier away text
11
+ *
12
+ * `<tier>` is a tier NAME (not the integer), for legibility in the store. BLOCKED is deliberately NOT
13
+ * settable — 0/0 is fixed (you cannot "raise" a block), and it has no away text (a blocked sender is
14
+ * refused before any reply). So the settable tiers are unknown / known / whitelisted / vip.
15
+ */
16
+ import { TIER } from "./contacts-tier-migration.js";
17
+ import { RELAY_ONLY_KEY } from "./relay-only.js";
18
+ /** The tiers whose bounds and away texts are settable (BLOCKED is fixed, never overridable). */
19
+ export const SETTABLE_TIER_NAMES = Object.freeze(["unknown", "known", "whitelisted", "vip"]);
20
+ /** The tier NAME for a tier integer, or null for an unknown/unsettable value (e.g. BLOCKED=0).
21
+ * Keyed off the TIER constants (review F3) so a renumbering in contacts-tier-migration can never
22
+ * silently desync the settings namespace from the grid. */
23
+ export function settableTierName(tier) {
24
+ switch (tier) {
25
+ case TIER.UNKNOWN: return "unknown";
26
+ case TIER.KNOWN: return "known";
27
+ case TIER.WHITELISTED: return "whitelisted";
28
+ case TIER.VIP: return "vip";
29
+ default: return null; // BLOCKED or out-of-range — not settable
30
+ }
31
+ }
32
+ /** The setting key for a per-tier bound override. */
33
+ export function boundSettingKey(tier, field) {
34
+ return `bounds.${tier}.${field}`;
35
+ }
36
+ /** The setting key for a per-tier away text. */
37
+ export function awayTierSettingKey(tier) {
38
+ return `away.tier.${tier}`;
39
+ }
40
+ /** The setting key for the agent's default away text (the fallback below any per-tier text). */
41
+ export const AWAY_DEFAULT_KEY = "away.default";
42
+ const BOUND_FIELDS = Object.freeze(["max_sessions", "max_bytes"]);
43
+ /** Every valid setting key, precomputed. The handler validates a `set` against this exact set. */
44
+ const VALID_KEYS = new Set([
45
+ AWAY_DEFAULT_KEY,
46
+ // DOD-M15-RELAYONLY-1: relay-only routing. A BOOLEAN key, and the first one here — see
47
+ // `validateSettingValue`, where it needs its own branch or the away-text fallback swallows it.
48
+ RELAY_ONLY_KEY,
49
+ ...SETTABLE_TIER_NAMES.flatMap((t) => [
50
+ ...BOUND_FIELDS.map((f) => boundSettingKey(t, f)),
51
+ awayTierSettingKey(t),
52
+ ]),
53
+ ]);
54
+ /** True iff `key` is a known, settable reachability-policy key. An unknown key is REFUSED by the
55
+ * handler (never silently stored — a typo'd key that persisted would be a setting that never takes
56
+ * effect, invisible to the operator). */
57
+ export function isValidSettingKey(key) {
58
+ return VALID_KEYS.has(key);
59
+ }
60
+ /** The full list of valid keys (for surfacing in a settings-list / help). */
61
+ export function allSettingKeys() {
62
+ return [...VALID_KEYS];
63
+ }
64
+ /** True iff the key is a per-tier BOUND override (its value must be a positive integer). */
65
+ export function isBoundKey(key) {
66
+ return key.startsWith("bounds.");
67
+ }
68
+ /**
69
+ * Validate a setting's VALUE for its key (DOD-TIER-BOUNDS-SETTINGS AC2). A bound override may only be
70
+ * a FINITE POSITIVE INTEGER — INV-TIER-BOUND: a setting can RAISE or lower a bound within finite
71
+ * limits, never REMOVE one. So `Infinity`, negatives, zero, non-integers, and non-numeric strings are
72
+ * refused (an unbounded tier is exactly what the grid forbids). Away-text values are free-form strings.
73
+ */
74
+ export function validateSettingValue(key, value) {
75
+ if (isBoundKey(key)) {
76
+ // `^[1-9][0-9]*$` — a positive integer with no sign, decimal, or `Infinity`/`NaN` spelling.
77
+ if (!/^[1-9][0-9]*$/.test(value)) {
78
+ return { ok: false, reason: "a bound must be a finite positive integer (no 0, negative, decimal, or Infinity)" };
79
+ }
80
+ // Number.MAX_SAFE_INTEGER guard — a value past it loses precision and is meaningless as a cap.
81
+ if (Number(value) > Number.MAX_SAFE_INTEGER) {
82
+ return { ok: false, reason: "a bound must be <= Number.MAX_SAFE_INTEGER" };
83
+ }
84
+ return { ok: true };
85
+ }
86
+ // DOD-M15-RELAYONLY-1: a BOOLEAN key, and it must be caught BEFORE the away-text fallback below.
87
+ //
88
+ // ⚠️ THE FALLBACK IS THE HAZARD, not an edge case. Everything that is not a bound key falls
89
+ // through to away-text validation, which accepts any non-empty string under 2048 characters. So
90
+ // without this branch `transport.relay_only = "yes"` — or `"flase"` — would STORE successfully and
91
+ // then read as not-"true" forever: the operator sets the privacy control, is told it was saved,
92
+ // and has no protection. `isRelayOnly` deliberately treats anything but "true" as OFF, which is
93
+ // only safe because a bad value cannot get past here to be misread later.
94
+ if (key === RELAY_ONLY_KEY) {
95
+ if (value !== "true" && value !== "false") {
96
+ return { ok: false, reason: `${RELAY_ONLY_KEY} must be exactly "true" or "false"` };
97
+ }
98
+ return { ok: true };
99
+ }
100
+ // Away-text (review F2/F3): an EMPTY / whitespace-only away text is refused — to CLEAR, use null
101
+ // (cello_contact_set_away) or omit the key; storing "" would silently blank every away reply,
102
+ // including the minimal stranger disclosure. Bounded to a sane length (an answering-machine line,
103
+ // not a document).
104
+ if (value.trim().length === 0) {
105
+ return { ok: false, reason: "an away message cannot be empty or whitespace-only (omit the key or pass null to clear)" };
106
+ }
107
+ if (value.length > AWAY_MESSAGE_MAX_LEN) {
108
+ return { ok: false, reason: `an away message must be <= ${AWAY_MESSAGE_MAX_LEN} characters` };
109
+ }
110
+ return { ok: true };
111
+ }
112
+ /** Max length of an away message (per-contact or per-tier/agent-default) — an answering-machine line. */
113
+ export const AWAY_MESSAGE_MAX_LEN = 2048;
114
+ //# sourceMappingURL=agent-settings-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-settings-keys.js","sourceRoot":"","sources":["../src/agent-settings-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,CAAU,CAAC,CAAC;AAGtG;;4DAE4D;AAC5D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QACpC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC;QAChC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,aAAa,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC;QAC5B,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,yCAAyC;IACjE,CAAC;AACH,CAAC;AAID,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAAC,IAAsB,EAAE,KAAiB;IACvE,OAAO,UAAU,IAAI,IAAI,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,OAAO,aAAa,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,MAAM,YAAY,GAA0B,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AAEzF,kGAAkG;AAClG,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAS;IACtD,gBAAgB;IAChB,uFAAuF;IACvF,+FAA+F;IAC/F,cAAc;IACd,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,kBAAkB,CAAC,CAAC,CAAC;KACtB,CAAC;CACH,CAAC,CAAC;AAEH;;0CAE0C;AAC1C,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;AACzB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,KAAa;IAC7D,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,4FAA4F;QAC5F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kFAAkF,EAAE,CAAC;QACnH,CAAC;QACD,+FAA+F;QAC/F,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC;QAC7E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,iGAAiG;IACjG,EAAE;IACF,4FAA4F;IAC5F,gGAAgG;IAChG,mGAAmG;IACnG,gGAAgG;IAChG,gGAAgG;IAChG,0EAA0E;IAC1E,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,oCAAoC,EAAE,CAAC;QACtF,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,iGAAiG;IACjG,8FAA8F;IAC9F,kGAAkG;IAClG,mBAAmB;IACnB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yFAAyF,EAAE,CAAC;IAC1H,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,oBAAoB,aAAa,EAAE,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The one place an agent's state is decided.
3
+ *
4
+ * There are two status surfaces — the daemon-wide `getStatus()` the CLI prints, and the
5
+ * per-connection `cello_status` the MCP tools call — and they had two separate copies of this
6
+ * calculation. They already drifted once this week on a different field: the directory-health block
7
+ * existed on one surface and not the other, which is why an operator whose sessions were all failing
8
+ * could run `cello status` and be told nothing. Two copies of a truth claim is how that happens, so
9
+ * this exists as a single function both surfaces call.
10
+ *
11
+ * The ladder is documented on `AgentState` in types.ts. Order here IS the semantics: the first
12
+ * matching rung wins, worst fact first. An attended agent whose signaling is down reads
13
+ * `connecting`, not `online` — the severe fact is the one stopping it doing its job, and it is the
14
+ * one the operator needs. Reversing that would let attendance mask a dead connection, which is the
15
+ * exact class of lie this enum replaces.
16
+ */
17
+ import type { AgentState } from "./types.js";
18
+ /**
19
+ * Is this agent RUNNING — started, and not switched off?
20
+ *
21
+ * Use this wherever the old code asked `state === "online"` and MEANT "started". Narrowing `online`
22
+ * to also require an attendee changed the meaning of every such check silently: the string stayed
23
+ * valid, so the compiler caught none of them, and the symptom was `cello settings set` refusing a
24
+ * perfectly healthy agent with `selected_agent_offline`.
25
+ *
26
+ * The callers' actual question is the kill switch one — "may I claim this agent, or did the operator
27
+ * deliberately stop it?" So the excluded states are the ones where claiming it would be wrong:
28
+ * `stopped` and `paused` (resurrecting either would silently undo an operator's decision),
29
+ * `unregistered` (nobody can reach it), and `load_failed`.
30
+ *
31
+ * `unattended` counts: nobody is at the desk, so a caller gets the away message rather than a live
32
+ * reply, but the agent is up, reachable, and will record the session.
33
+ *
34
+ * `connecting` counts too, and that is deliberate. It is started; its directory stream is merely
35
+ * still coming up, which is NORMAL for a minute after registering. Excluding it made local commands
36
+ * — settings, moniker — refuse for want of a directory they never needed, which is the same
37
+ * over-reach in the opposite direction.
38
+ */
39
+ export declare function isAgentRunning(state: AgentState | string | undefined): boolean;
40
+ /** Everything the decision needs. Each field is a fact the daemon already tracks. */
41
+ export interface AgentStateInputs {
42
+ /** The identity failed to load — a bad key file or database. Terminal. */
43
+ loadFailed: boolean;
44
+ /**
45
+ * Registration left a FROST share for this agent.
46
+ *
47
+ * Deliberately NOT a stored "registered" flag. Registration IS the distributed key ceremony, and
48
+ * the share is its durable product — so asking whether the share exists asks whether the thing
49
+ * actually happened, rather than whether someone remembered to record that it had. Before this,
50
+ * every agent on disk was labelled "registered" at load whether or not it ever was, so an agent
51
+ * created and not yet registered was indistinguishable from a working one.
52
+ */
53
+ hasFrostShare: boolean;
54
+ /** The operator deliberately took this agent offline — the kill switch. */
55
+ deliberatelyOffline: boolean;
56
+ /** The agent has been started in this daemon (it is in `onlineAgents`). */
57
+ started: boolean;
58
+ /** This agent's own directory signaling stream is connected. */
59
+ signalingConnected: boolean;
60
+ /** How many live connections are attending this agent right now. */
61
+ attendance: number;
62
+ }
63
+ /**
64
+ * Decide an agent's state. Pure — no clock, no I/O — so every rung is directly testable.
65
+ */
66
+ export declare function resolveAgentState(i: AgentStateInputs): AgentState;
67
+ //# sourceMappingURL=agent-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-state.d.ts","sourceRoot":"","sources":["../src/agent-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;;;OAQG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAqBjE"}