@cello-protocol/daemon 0.0.227 → 0.0.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-admin-handlers.d.ts +56 -0
- package/dist/agent-admin-handlers.d.ts.map +1 -0
- package/dist/agent-admin-handlers.js +73 -0
- package/dist/agent-admin-handlers.js.map +1 -0
- package/dist/agent-handlers.d.ts +72 -0
- package/dist/agent-handlers.d.ts.map +1 -0
- package/dist/agent-handlers.js +604 -0
- package/dist/agent-handlers.js.map +1 -0
- package/dist/agent-id-migration.d.ts +70 -0
- package/dist/agent-id-migration.d.ts.map +1 -0
- package/dist/agent-id-migration.js +468 -0
- package/dist/agent-id-migration.js.map +1 -0
- package/dist/agent-loader.d.ts +37 -0
- package/dist/agent-loader.d.ts.map +1 -0
- package/dist/agent-loader.js +37 -0
- package/dist/agent-loader.js.map +1 -0
- package/dist/agent-selection-root.d.ts +29 -0
- package/dist/agent-selection-root.d.ts.map +1 -0
- package/dist/agent-selection-root.js +126 -0
- package/dist/agent-selection-root.js.map +1 -0
- package/dist/agent-selection.d.ts +73 -0
- package/dist/agent-selection.d.ts.map +1 -0
- package/dist/agent-selection.js +80 -0
- package/dist/agent-selection.js.map +1 -0
- package/dist/agent-settings-keys.d.ts +52 -0
- package/dist/agent-settings-keys.d.ts.map +1 -0
- package/dist/agent-settings-keys.js +114 -0
- package/dist/agent-settings-keys.js.map +1 -0
- package/dist/agent-state.d.ts +67 -0
- package/dist/agent-state.d.ts.map +1 -0
- package/dist/agent-state.js +66 -0
- package/dist/agent-state.js.map +1 -0
- package/dist/assignment-verify.d.ts +90 -0
- package/dist/assignment-verify.d.ts.map +1 -0
- package/dist/assignment-verify.js +301 -0
- package/dist/assignment-verify.js.map +1 -0
- package/dist/attendance-wiring.d.ts +23 -0
- package/dist/attendance-wiring.d.ts.map +1 -0
- package/dist/attendance-wiring.js +248 -0
- package/dist/attendance-wiring.js.map +1 -0
- package/dist/attestation-body.d.ts +47 -0
- package/dist/attestation-body.d.ts.map +1 -0
- package/dist/attestation-body.js +71 -0
- package/dist/attestation-body.js.map +1 -0
- package/dist/authorship-verification.d.ts +91 -0
- package/dist/authorship-verification.d.ts.map +1 -0
- package/dist/authorship-verification.js +532 -0
- package/dist/authorship-verification.js.map +1 -0
- package/dist/away-detection.d.ts +139 -0
- package/dist/away-detection.d.ts.map +1 -0
- package/dist/away-detection.js +186 -0
- package/dist/away-detection.js.map +1 -0
- package/dist/away-inbox-oneshot.d.ts +40 -0
- package/dist/away-inbox-oneshot.d.ts.map +1 -0
- package/dist/away-inbox-oneshot.js +311 -0
- package/dist/away-inbox-oneshot.js.map +1 -0
- package/dist/backup-restore-handlers.d.ts +10 -0
- package/dist/backup-restore-handlers.d.ts.map +1 -0
- package/dist/backup-restore-handlers.js +82 -0
- package/dist/backup-restore-handlers.js.map +1 -0
- package/dist/backup-restore.d.ts +102 -0
- package/dist/backup-restore.d.ts.map +1 -0
- package/dist/backup-restore.js +341 -0
- package/dist/backup-restore.js.map +1 -0
- package/dist/bin/cello-daemon.d.ts +13 -0
- package/dist/bin/cello-daemon.d.ts.map +1 -0
- package/dist/bin/cello-daemon.js.map +1 -0
- package/dist/boot-agents.d.ts +64 -0
- package/dist/boot-agents.d.ts.map +1 -0
- package/dist/boot-agents.js +241 -0
- package/dist/boot-agents.js.map +1 -0
- package/dist/boot-connection-state.d.ts +38 -0
- package/dist/boot-connection-state.d.ts.map +1 -0
- package/dist/boot-connection-state.js +95 -0
- package/dist/boot-connection-state.js.map +1 -0
- package/dist/boot-core.d.ts +36 -0
- package/dist/boot-core.d.ts.map +1 -0
- package/dist/boot-core.js +293 -0
- package/dist/boot-core.js.map +1 -0
- package/dist/boot-parked-content.d.ts +34 -0
- package/dist/boot-parked-content.d.ts.map +1 -0
- package/dist/boot-parked-content.js +528 -0
- package/dist/boot-parked-content.js.map +1 -0
- package/dist/boot-sweeps.d.ts +22 -0
- package/dist/boot-sweeps.d.ts.map +1 -0
- package/dist/boot-sweeps.js +51 -0
- package/dist/boot-sweeps.js.map +1 -0
- package/dist/bundled-consortium-manifest.d.ts +47 -0
- package/dist/bundled-consortium-manifest.d.ts.map +1 -0
- package/dist/bundled-consortium-manifest.js +116 -0
- package/dist/bundled-consortium-manifest.js.map +1 -0
- package/dist/cbor-blob-migration.d.ts +8 -0
- package/dist/cbor-blob-migration.d.ts.map +1 -0
- package/dist/cbor-blob-migration.js +116 -0
- package/dist/cbor-blob-migration.js.map +1 -0
- package/dist/challenge-verifier.d.ts +12 -0
- package/dist/challenge-verifier.d.ts.map +1 -0
- package/dist/challenge-verifier.js +11 -0
- package/dist/challenge-verifier.js.map +1 -0
- package/dist/channel-log-store.d.ts +80 -0
- package/dist/channel-log-store.d.ts.map +1 -0
- package/dist/channel-log-store.js +290 -0
- package/dist/channel-log-store.js.map +1 -0
- package/dist/close-commitment.d.ts +67 -0
- package/dist/close-commitment.d.ts.map +1 -0
- package/dist/close-commitment.js +78 -0
- package/dist/close-commitment.js.map +1 -0
- package/dist/close-session-handler.d.ts +94 -0
- package/dist/close-session-handler.d.ts.map +1 -0
- package/dist/close-session-handler.js +1418 -0
- package/dist/close-session-handler.js.map +1 -0
- package/dist/co-attendance.d.ts +29 -0
- package/dist/co-attendance.d.ts.map +1 -0
- package/dist/co-attendance.js +32 -0
- package/dist/co-attendance.js.map +1 -0
- package/dist/column-birth.d.ts +40 -0
- package/dist/column-birth.d.ts.map +1 -0
- package/dist/column-birth.js +61 -0
- package/dist/column-birth.js.map +1 -0
- package/dist/connect-or-start.d.ts +25 -0
- package/dist/connect-or-start.d.ts.map +1 -0
- package/dist/connect-or-start.js +175 -0
- package/dist/connect-or-start.js.map +1 -0
- package/dist/connection-agents.d.ts +16 -0
- package/dist/connection-agents.d.ts.map +1 -0
- package/dist/connection-agents.js +68 -0
- package/dist/connection-agents.js.map +1 -0
- package/dist/consent-migration.d.ts +49 -0
- package/dist/consent-migration.d.ts.map +1 -0
- package/dist/consent-migration.js +128 -0
- package/dist/consent-migration.js.map +1 -0
- package/dist/consortium-bootstrap.d.ts +138 -0
- package/dist/consortium-bootstrap.d.ts.map +1 -0
- package/dist/consortium-bootstrap.js +339 -0
- package/dist/consortium-bootstrap.js.map +1 -0
- package/dist/consortium-fingerprint.d.ts +115 -0
- package/dist/consortium-fingerprint.d.ts.map +1 -0
- package/dist/consortium-fingerprint.js +175 -0
- package/dist/consortium-fingerprint.js.map +1 -0
- package/dist/contact-handlers.d.ts +59 -0
- package/dist/contact-handlers.d.ts.map +1 -0
- package/dist/contact-handlers.js +343 -0
- package/dist/contact-handlers.js.map +1 -0
- package/dist/contact-pubkey-case.d.ts +65 -0
- package/dist/contact-pubkey-case.d.ts.map +1 -0
- package/dist/contact-pubkey-case.js +136 -0
- package/dist/contact-pubkey-case.js.map +1 -0
- package/dist/contacts-tier-migration.d.ts +90 -0
- package/dist/contacts-tier-migration.d.ts.map +1 -0
- package/dist/contacts-tier-migration.js +150 -0
- package/dist/contacts-tier-migration.js.map +1 -0
- package/dist/content-encryption-status.d.ts +111 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +158 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +90 -0
- package/dist/content-park-client.d.ts.map +1 -0
- package/dist/content-park-client.js +362 -0
- package/dist/content-park-client.js.map +1 -0
- package/dist/content-park.d.ts +52 -0
- package/dist/content-park.d.ts.map +1 -0
- package/dist/content-park.js +1309 -0
- package/dist/content-park.js.map +1 -0
- package/dist/cross-node-negotiation.d.ts +44 -0
- package/dist/cross-node-negotiation.d.ts.map +1 -0
- package/dist/cross-node-negotiation.js +34 -0
- package/dist/cross-node-negotiation.js.map +1 -0
- package/dist/daemon-handle.d.ts +57 -0
- package/dist/daemon-handle.d.ts.map +1 -0
- package/dist/daemon-handle.js +2 -0
- package/dist/daemon-handle.js.map +1 -0
- package/dist/daemon-status-report.d.ts +50 -0
- package/dist/daemon-status-report.d.ts.map +1 -0
- package/dist/daemon-status-report.js +81 -0
- package/dist/daemon-status-report.js.map +1 -0
- package/dist/daemon.d.ts +45 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +1177 -0
- package/dist/daemon.js.map +1 -0
- package/dist/db-identity-store.d.ts +159 -0
- package/dist/db-identity-store.d.ts.map +1 -0
- package/dist/db-identity-store.js +502 -0
- package/dist/db-identity-store.js.map +1 -0
- package/dist/delivery-open-registry.d.ts +92 -0
- package/dist/delivery-open-registry.d.ts.map +1 -0
- package/dist/delivery-open-registry.js +121 -0
- package/dist/delivery-open-registry.js.map +1 -0
- package/dist/delivery-session-suspects.d.ts +56 -0
- package/dist/delivery-session-suspects.d.ts.map +1 -0
- package/dist/delivery-session-suspects.js +94 -0
- package/dist/delivery-session-suspects.js.map +1 -0
- package/dist/directory-auth-posture.d.ts +87 -0
- package/dist/directory-auth-posture.d.ts.map +1 -0
- package/dist/directory-auth-posture.js +134 -0
- package/dist/directory-auth-posture.js.map +1 -0
- package/dist/directory-bootstrap.d.ts +310 -0
- package/dist/directory-bootstrap.d.ts.map +1 -0
- package/dist/directory-bootstrap.js +557 -0
- package/dist/directory-bootstrap.js.map +1 -0
- package/dist/directory-connect.d.ts +27 -0
- package/dist/directory-connect.d.ts.map +1 -0
- package/dist/directory-connect.js +106 -0
- package/dist/directory-connect.js.map +1 -0
- package/dist/disconnect-cleanup.d.ts +51 -0
- package/dist/disconnect-cleanup.d.ts.map +1 -0
- package/dist/disconnect-cleanup.js +72 -0
- package/dist/disconnect-cleanup.js.map +1 -0
- package/dist/document-amendment-store.d.ts +120 -0
- package/dist/document-amendment-store.d.ts.map +1 -0
- package/dist/document-amendment-store.js +266 -0
- package/dist/document-amendment-store.js.map +1 -0
- package/dist/document-delivery-transport.d.ts +168 -0
- package/dist/document-delivery-transport.d.ts.map +1 -0
- package/dist/document-delivery-transport.js +206 -0
- package/dist/document-delivery-transport.js.map +1 -0
- package/dist/document-engine.d.ts +134 -0
- package/dist/document-engine.d.ts.map +1 -0
- package/dist/document-engine.js +282 -0
- package/dist/document-engine.js.map +1 -0
- package/dist/document-flag.d.ts +58 -0
- package/dist/document-flag.d.ts.map +1 -0
- package/dist/document-flag.js +70 -0
- package/dist/document-flag.js.map +1 -0
- package/dist/document-frame-router.d.ts +245 -0
- package/dist/document-frame-router.d.ts.map +1 -0
- package/dist/document-frame-router.js +397 -0
- package/dist/document-frame-router.js.map +1 -0
- package/dist/document-gate-wiring.d.ts +61 -0
- package/dist/document-gate-wiring.d.ts.map +1 -0
- package/dist/document-gate-wiring.js +125 -0
- package/dist/document-gate-wiring.js.map +1 -0
- package/dist/document-gate.d.ts +149 -0
- package/dist/document-gate.d.ts.map +1 -0
- package/dist/document-gate.js +509 -0
- package/dist/document-gate.js.map +1 -0
- package/dist/document-handlers.d.ts +47 -0
- package/dist/document-handlers.d.ts.map +1 -0
- package/dist/document-handlers.js +2203 -0
- package/dist/document-handlers.js.map +1 -0
- package/dist/document-handshake.d.ts +176 -0
- package/dist/document-handshake.d.ts.map +1 -0
- package/dist/document-handshake.js +452 -0
- package/dist/document-handshake.js.map +1 -0
- package/dist/document-inbound.d.ts +162 -0
- package/dist/document-inbound.d.ts.map +1 -0
- package/dist/document-inbound.js +530 -0
- package/dist/document-inbound.js.map +1 -0
- package/dist/document-json.d.ts +120 -0
- package/dist/document-json.d.ts.map +1 -0
- package/dist/document-json.js +191 -0
- package/dist/document-json.js.map +1 -0
- package/dist/document-layer.d.ts +215 -0
- package/dist/document-layer.d.ts.map +1 -0
- package/dist/document-layer.js +1025 -0
- package/dist/document-layer.js.map +1 -0
- package/dist/document-lifecycle.d.ts +52 -0
- package/dist/document-lifecycle.d.ts.map +1 -0
- package/dist/document-lifecycle.js +134 -0
- package/dist/document-lifecycle.js.map +1 -0
- package/dist/document-live-docs.d.ts +58 -0
- package/dist/document-live-docs.d.ts.map +1 -0
- package/dist/document-live-docs.js +126 -0
- package/dist/document-live-docs.js.map +1 -0
- package/dist/document-notify.d.ts +228 -0
- package/dist/document-notify.d.ts.map +1 -0
- package/dist/document-notify.js +580 -0
- package/dist/document-notify.js.map +1 -0
- package/dist/document-profile.d.ts +61 -0
- package/dist/document-profile.d.ts.map +1 -0
- package/dist/document-profile.js +112 -0
- package/dist/document-profile.js.map +1 -0
- package/dist/document-publish.d.ts +87 -0
- package/dist/document-publish.d.ts.map +1 -0
- package/dist/document-publish.js +173 -0
- package/dist/document-publish.js.map +1 -0
- package/dist/document-reachability.d.ts +42 -0
- package/dist/document-reachability.d.ts.map +1 -0
- package/dist/document-reachability.js +80 -0
- package/dist/document-reachability.js.map +1 -0
- package/dist/document-reconcile-engine.d.ts +66 -0
- package/dist/document-reconcile-engine.d.ts.map +1 -0
- package/dist/document-reconcile-engine.js +225 -0
- package/dist/document-reconcile-engine.js.map +1 -0
- package/dist/document-reconcile-scheduler.d.ts +163 -0
- package/dist/document-reconcile-scheduler.d.ts.map +1 -0
- package/dist/document-reconcile-scheduler.js +303 -0
- package/dist/document-reconcile-scheduler.js.map +1 -0
- package/dist/document-rejection.d.ts +251 -0
- package/dist/document-rejection.d.ts.map +1 -0
- package/dist/document-rejection.js +435 -0
- package/dist/document-rejection.js.map +1 -0
- package/dist/document-screen.d.ts +114 -0
- package/dist/document-screen.d.ts.map +1 -0
- package/dist/document-screen.js +223 -0
- package/dist/document-screen.js.map +1 -0
- package/dist/document-store.d.ts +372 -0
- package/dist/document-store.d.ts.map +1 -0
- package/dist/document-store.js +931 -0
- package/dist/document-store.js.map +1 -0
- package/dist/document-surface.d.ts +32 -0
- package/dist/document-surface.d.ts.map +1 -0
- package/dist/document-surface.js +151 -0
- package/dist/document-surface.js.map +1 -0
- package/dist/document-types.d.ts +94 -0
- package/dist/document-types.d.ts.map +1 -0
- package/dist/document-types.js +90 -0
- package/dist/document-types.js.map +1 -0
- package/dist/document-watch.d.ts +69 -0
- package/dist/document-watch.d.ts.map +1 -0
- package/dist/document-watch.js +108 -0
- package/dist/document-watch.js.map +1 -0
- package/dist/document-wiring.d.ts +53 -0
- package/dist/document-wiring.d.ts.map +1 -0
- package/dist/document-wiring.js +323 -0
- package/dist/document-wiring.js.map +1 -0
- package/dist/document-write-guard.d.ts +66 -0
- package/dist/document-write-guard.d.ts.map +1 -0
- package/dist/document-write-guard.js +98 -0
- package/dist/document-write-guard.js.map +1 -0
- package/dist/document-write-path.d.ts +94 -0
- package/dist/document-write-path.d.ts.map +1 -0
- package/dist/document-write-path.js +530 -0
- package/dist/document-write-path.js.map +1 -0
- package/dist/error-message.d.ts +7 -0
- package/dist/error-message.d.ts.map +1 -0
- package/dist/error-message.js +19 -0
- package/dist/error-message.js.map +1 -0
- package/dist/file-manifest-provider.d.ts +37 -0
- package/dist/file-manifest-provider.d.ts.map +1 -0
- package/dist/file-manifest-provider.js +105 -0
- package/dist/file-manifest-provider.js.map +1 -0
- package/dist/frame-values.d.ts +3 -0
- package/dist/frame-values.d.ts.map +1 -0
- package/dist/frame-values.js +84 -0
- package/dist/frame-values.js.map +1 -0
- package/dist/frontier-mismatch.d.ts +73 -0
- package/dist/frontier-mismatch.d.ts.map +1 -0
- package/dist/frontier-mismatch.js +89 -0
- package/dist/frontier-mismatch.js.map +1 -0
- package/dist/gateway-config-handlers.d.ts +26 -0
- package/dist/gateway-config-handlers.d.ts.map +1 -0
- package/dist/gateway-config-handlers.js +429 -0
- package/dist/gateway-config-handlers.js.map +1 -0
- package/dist/held-content.d.ts +145 -0
- package/dist/held-content.d.ts.map +1 -0
- package/dist/held-content.js +389 -0
- package/dist/held-content.js.map +1 -0
- package/dist/http-manifest-poll.d.ts +67 -0
- package/dist/http-manifest-poll.d.ts.map +1 -0
- package/dist/http-manifest-poll.js +150 -0
- package/dist/http-manifest-poll.js.map +1 -0
- package/dist/identity-migration.d.ts +40 -0
- package/dist/identity-migration.d.ts.map +1 -0
- package/dist/identity-migration.js +461 -0
- package/dist/identity-migration.js.map +1 -0
- package/dist/inbound-refusals.d.ts +283 -0
- package/dist/inbound-refusals.d.ts.map +1 -0
- package/dist/inbound-refusals.js +919 -0
- package/dist/inbound-refusals.js.map +1 -0
- package/dist/inbound-seal-request.d.ts +32 -0
- package/dist/inbound-seal-request.d.ts.map +1 -0
- package/dist/inbound-seal-request.js +228 -0
- package/dist/inbound-seal-request.js.map +1 -0
- package/dist/inbound-sessions.d.ts +291 -0
- package/dist/inbound-sessions.d.ts.map +1 -0
- package/dist/inbound-sessions.js +1609 -0
- package/dist/inbound-sessions.js.map +1 -0
- package/dist/inclusion-proof-handlers.d.ts +43 -0
- package/dist/inclusion-proof-handlers.d.ts.map +1 -0
- package/dist/inclusion-proof-handlers.js +565 -0
- package/dist/inclusion-proof-handlers.js.map +1 -0
- package/dist/inclusion-proof.d.ts +151 -0
- package/dist/inclusion-proof.d.ts.map +1 -0
- package/dist/inclusion-proof.js +228 -0
- package/dist/inclusion-proof.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/initiate-session-handler.d.ts +55 -0
- package/dist/initiate-session-handler.d.ts.map +1 -0
- package/dist/initiate-session-handler.js +310 -0
- package/dist/initiate-session-handler.js.map +1 -0
- package/dist/ipc-client.d.ts +31 -0
- package/dist/ipc-client.d.ts.map +1 -0
- package/dist/ipc-client.js +113 -0
- package/dist/ipc-client.js.map +1 -0
- package/dist/ipc-server.d.ts +63 -0
- package/dist/ipc-server.d.ts.map +1 -0
- package/dist/ipc-server.js +429 -0
- package/dist/ipc-server.js.map +1 -0
- package/dist/ipc-surface.d.ts +44 -0
- package/dist/ipc-surface.d.ts.map +1 -0
- package/dist/ipc-surface.js +107 -0
- package/dist/ipc-surface.js.map +1 -0
- package/dist/line-lcs.d.ts +51 -0
- package/dist/line-lcs.d.ts.map +1 -0
- package/dist/line-lcs.js +71 -0
- package/dist/line-lcs.js.map +1 -0
- package/dist/lock-file.d.ts +39 -0
- package/dist/lock-file.d.ts.map +1 -0
- package/dist/lock-file.js +120 -0
- package/dist/lock-file.js.map +1 -0
- package/dist/log-collapse.d.ts +66 -0
- package/dist/log-collapse.d.ts.map +1 -0
- package/dist/log-collapse.js +244 -0
- package/dist/log-collapse.js.map +1 -0
- package/dist/log-rotate.d.ts +67 -0
- package/dist/log-rotate.d.ts.map +1 -0
- package/dist/log-rotate.js +134 -0
- package/dist/log-rotate.js.map +1 -0
- package/dist/manifest-deps.d.ts +25 -0
- package/dist/manifest-deps.d.ts.map +1 -0
- package/dist/manifest-deps.js +151 -0
- package/dist/manifest-deps.js.map +1 -0
- package/dist/manifest-poll-scheduler.d.ts +31 -0
- package/dist/manifest-poll-scheduler.d.ts.map +1 -0
- package/dist/manifest-poll-scheduler.js +59 -0
- package/dist/manifest-poll-scheduler.js.map +1 -0
- package/dist/manifest-validity.d.ts +153 -0
- package/dist/manifest-validity.d.ts.map +1 -0
- package/dist/manifest-validity.js +268 -0
- package/dist/manifest-validity.js.map +1 -0
- package/dist/manifest-version-store-db.d.ts +24 -0
- package/dist/manifest-version-store-db.d.ts.map +1 -0
- package/dist/manifest-version-store-db.js +58 -0
- package/dist/manifest-version-store-db.js.map +1 -0
- package/dist/manifest-version-store.d.ts +16 -0
- package/dist/manifest-version-store.d.ts.map +1 -0
- package/dist/manifest-version-store.js +15 -0
- package/dist/manifest-version-store.js.map +1 -0
- package/dist/network-directory-node.d.ts +136 -0
- package/dist/network-directory-node.d.ts.map +1 -0
- package/dist/network-directory-node.js +810 -0
- package/dist/network-directory-node.js.map +1 -0
- package/dist/nonce-dedup.d.ts +68 -0
- package/dist/nonce-dedup.d.ts.map +1 -0
- package/dist/nonce-dedup.js +205 -0
- package/dist/nonce-dedup.js.map +1 -0
- package/dist/notification-dispatcher.d.ts +92 -0
- package/dist/notification-dispatcher.d.ts.map +1 -0
- package/dist/notification-dispatcher.js +210 -0
- package/dist/notification-dispatcher.js.map +1 -0
- package/dist/notification-handlers.d.ts +53 -0
- package/dist/notification-handlers.d.ts.map +1 -0
- package/dist/notification-handlers.js +461 -0
- package/dist/notification-handlers.js.map +1 -0
- package/dist/onboarding-guidance.d.ts +79 -0
- package/dist/onboarding-guidance.d.ts.map +1 -0
- package/dist/onboarding-guidance.js +95 -0
- package/dist/onboarding-guidance.js.map +1 -0
- package/dist/operator-guidance.d.ts +25 -0
- package/dist/operator-guidance.d.ts.map +1 -0
- package/dist/operator-guidance.js +50 -0
- package/dist/operator-guidance.js.map +1 -0
- package/dist/orphan-triage.d.ts +130 -0
- package/dist/orphan-triage.d.ts.map +1 -0
- package/dist/orphan-triage.js +207 -0
- package/dist/orphan-triage.js.map +1 -0
- package/dist/outbound-sessions.d.ts +126 -0
- package/dist/outbound-sessions.d.ts.map +1 -0
- package/dist/outbound-sessions.js +1052 -0
- package/dist/outbound-sessions.js.map +1 -0
- package/dist/park-envelope.d.ts +329 -0
- package/dist/park-envelope.d.ts.map +1 -0
- package/dist/park-envelope.js +509 -0
- package/dist/park-envelope.js.map +1 -0
- package/dist/park-recovery.d.ts +273 -0
- package/dist/park-recovery.d.ts.map +1 -0
- package/dist/park-recovery.js +717 -0
- package/dist/park-recovery.js.map +1 -0
- package/dist/park-refusals.d.ts +147 -0
- package/dist/park-refusals.d.ts.map +1 -0
- package/dist/park-refusals.js +331 -0
- package/dist/park-refusals.js.map +1 -0
- package/dist/quarantine-framing.d.ts +92 -0
- package/dist/quarantine-framing.d.ts.map +1 -0
- package/dist/quarantine-framing.js +111 -0
- package/dist/quarantine-framing.js.map +1 -0
- package/dist/reconnect-drain.d.ts +22 -0
- package/dist/reconnect-drain.d.ts.map +1 -0
- package/dist/reconnect-drain.js +65 -0
- package/dist/reconnect-drain.js.map +1 -0
- package/dist/recovered-position.d.ts +14 -0
- package/dist/recovered-position.d.ts.map +1 -0
- package/dist/recovered-position.js +59 -0
- package/dist/recovered-position.js.map +1 -0
- package/dist/refusal-notices.d.ts +196 -0
- package/dist/refusal-notices.d.ts.map +1 -0
- package/dist/refusal-notices.js +516 -0
- package/dist/refusal-notices.js.map +1 -0
- package/dist/refusal-reasons.d.ts +245 -0
- package/dist/refusal-reasons.d.ts.map +1 -0
- package/dist/refusal-reasons.js +363 -0
- package/dist/refusal-reasons.js.map +1 -0
- package/dist/register-handler.d.ts +36 -0
- package/dist/register-handler.d.ts.map +1 -0
- package/dist/register-handler.js +285 -0
- package/dist/register-handler.js.map +1 -0
- package/dist/registration-context.d.ts +72 -0
- package/dist/registration-context.d.ts.map +1 -0
- package/dist/registration-context.js +126 -0
- package/dist/registration-context.js.map +1 -0
- package/dist/registration-manager.d.ts +94 -0
- package/dist/registration-manager.d.ts.map +1 -0
- package/dist/registration-manager.js +585 -0
- package/dist/registration-manager.js.map +1 -0
- package/dist/registration-persistence.d.ts +183 -0
- package/dist/registration-persistence.d.ts.map +1 -0
- package/dist/registration-persistence.js +263 -0
- package/dist/registration-persistence.js.map +1 -0
- package/dist/registry-poll.d.ts +52 -0
- package/dist/registry-poll.d.ts.map +1 -0
- package/dist/registry-poll.js +140 -0
- package/dist/registry-poll.js.map +1 -0
- package/dist/registry-version-store-db.d.ts +22 -0
- package/dist/registry-version-store-db.d.ts.map +1 -0
- package/dist/registry-version-store-db.js +50 -0
- package/dist/registry-version-store-db.js.map +1 -0
- package/dist/relay-endpoints.d.ts +18 -0
- package/dist/relay-endpoints.d.ts.map +1 -0
- package/dist/relay-endpoints.js +9 -0
- package/dist/relay-endpoints.js.map +1 -0
- package/dist/relay-only.d.ts +140 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +193 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/relay-receipt-store.d.ts +155 -0
- package/dist/relay-receipt-store.d.ts.map +1 -0
- package/dist/relay-receipt-store.js +284 -0
- package/dist/relay-receipt-store.js.map +1 -0
- package/dist/relay-reconnect.d.ts +32 -0
- package/dist/relay-reconnect.d.ts.map +1 -0
- package/dist/relay-reconnect.js +29 -0
- package/dist/relay-reconnect.js.map +1 -0
- package/dist/reply-lag.d.ts +11 -0
- package/dist/reply-lag.d.ts.map +1 -0
- package/dist/reply-lag.js +46 -0
- package/dist/reply-lag.js.map +1 -0
- package/dist/resolve-named-agent.d.ts +49 -0
- package/dist/resolve-named-agent.d.ts.map +1 -0
- package/dist/resolve-named-agent.js +77 -0
- package/dist/resolve-named-agent.js.map +1 -0
- package/dist/restart-seal-resolver.d.ts +110 -0
- package/dist/restart-seal-resolver.d.ts.map +1 -0
- package/dist/restart-seal-resolver.js +353 -0
- package/dist/restart-seal-resolver.js.map +1 -0
- package/dist/resume-last-seen.d.ts +15 -0
- package/dist/resume-last-seen.d.ts.map +1 -0
- package/dist/resume-last-seen.js +44 -0
- package/dist/resume-last-seen.js.map +1 -0
- package/dist/retry-queue.d.ts +203 -0
- package/dist/retry-queue.d.ts.map +1 -0
- package/dist/retry-queue.js +701 -0
- package/dist/retry-queue.js.map +1 -0
- package/dist/roster-freshness.d.ts +160 -0
- package/dist/roster-freshness.d.ts.map +1 -0
- package/dist/roster-freshness.js +250 -0
- package/dist/roster-freshness.js.map +1 -0
- package/dist/screening-status.d.ts +15 -0
- package/dist/screening-status.d.ts.map +1 -0
- package/dist/screening-status.js +65 -0
- package/dist/screening-status.js.map +1 -0
- package/dist/seal-carried-close.d.ts +37 -0
- package/dist/seal-carried-close.d.ts.map +1 -0
- package/dist/seal-carried-close.js +179 -0
- package/dist/seal-carried-close.js.map +1 -0
- package/dist/seal-certificate-pull.d.ts +79 -0
- package/dist/seal-certificate-pull.d.ts.map +1 -0
- package/dist/seal-certificate-pull.js +186 -0
- package/dist/seal-certificate-pull.js.map +1 -0
- package/dist/seal-certified-root-check.d.ts +37 -0
- package/dist/seal-certified-root-check.d.ts.map +1 -0
- package/dist/seal-certified-root-check.js +127 -0
- package/dist/seal-certified-root-check.js.map +1 -0
- package/dist/seal-coordinator.d.ts +118 -0
- package/dist/seal-coordinator.d.ts.map +1 -0
- package/dist/seal-coordinator.js +927 -0
- package/dist/seal-coordinator.js.map +1 -0
- package/dist/seal-escalation.d.ts +80 -0
- package/dist/seal-escalation.d.ts.map +1 -0
- package/dist/seal-escalation.js +283 -0
- package/dist/seal-escalation.js.map +1 -0
- package/dist/seal-evidence-root-check.d.ts +70 -0
- package/dist/seal-evidence-root-check.d.ts.map +1 -0
- package/dist/seal-evidence-root-check.js +199 -0
- package/dist/seal-evidence-root-check.js.map +1 -0
- package/dist/seal-failure-store.d.ts +139 -0
- package/dist/seal-failure-store.d.ts.map +1 -0
- package/dist/seal-failure-store.js +207 -0
- package/dist/seal-failure-store.js.map +1 -0
- package/dist/seal-flows.d.ts +107 -0
- package/dist/seal-flows.d.ts.map +1 -0
- package/dist/seal-flows.js +638 -0
- package/dist/seal-flows.js.map +1 -0
- package/dist/seal-frontier-verify.d.ts +103 -0
- package/dist/seal-frontier-verify.d.ts.map +1 -0
- package/dist/seal-frontier-verify.js +143 -0
- package/dist/seal-frontier-verify.js.map +1 -0
- package/dist/seal-leaf.d.ts +58 -0
- package/dist/seal-leaf.d.ts.map +1 -0
- package/dist/seal-leaf.js +112 -0
- package/dist/seal-leaf.js.map +1 -0
- package/dist/seal-legibility-tbs.d.ts +25 -0
- package/dist/seal-legibility-tbs.d.ts.map +1 -0
- package/dist/seal-legibility-tbs.js +77 -0
- package/dist/seal-legibility-tbs.js.map +1 -0
- package/dist/seal-local-terminus.d.ts +41 -0
- package/dist/seal-local-terminus.d.ts.map +1 -0
- package/dist/seal-local-terminus.js +170 -0
- package/dist/seal-local-terminus.js.map +1 -0
- package/dist/seal-receipt-upgrade.d.ts +30 -0
- package/dist/seal-receipt-upgrade.d.ts.map +1 -0
- package/dist/seal-receipt-upgrade.js +49 -0
- package/dist/seal-receipt-upgrade.js.map +1 -0
- package/dist/seal-relay-silence.d.ts +51 -0
- package/dist/seal-relay-silence.d.ts.map +1 -0
- package/dist/seal-relay-silence.js +76 -0
- package/dist/seal-relay-silence.js.map +1 -0
- package/dist/seal-settle.d.ts +38 -0
- package/dist/seal-settle.d.ts.map +1 -0
- package/dist/seal-settle.js +33 -0
- package/dist/seal-settle.js.map +1 -0
- package/dist/seal-upgrade.d.ts +107 -0
- package/dist/seal-upgrade.d.ts.map +1 -0
- package/dist/seal-upgrade.js +200 -0
- package/dist/seal-upgrade.js.map +1 -0
- package/dist/sealed-conversation.d.ts +36 -0
- package/dist/sealed-conversation.d.ts.map +1 -0
- package/dist/sealed-conversation.js +171 -0
- package/dist/sealed-conversation.js.map +1 -0
- package/dist/sealed-leaf-set.d.ts +92 -0
- package/dist/sealed-leaf-set.d.ts.map +1 -0
- package/dist/sealed-leaf-set.js +122 -0
- package/dist/sealed-leaf-set.js.map +1 -0
- package/dist/send-claims.d.ts +56 -0
- package/dist/send-claims.d.ts.map +1 -0
- package/dist/send-claims.js +50 -0
- package/dist/send-claims.js.map +1 -0
- package/dist/session-assignment-parser.d.ts +104 -0
- package/dist/session-assignment-parser.d.ts.map +1 -0
- package/dist/session-assignment-parser.js +345 -0
- package/dist/session-assignment-parser.js.map +1 -0
- package/dist/session-category.d.ts +19 -0
- package/dist/session-category.d.ts.map +1 -0
- package/dist/session-category.js +14 -0
- package/dist/session-category.js.map +1 -0
- package/dist/session-ceremony.d.ts +297 -0
- package/dist/session-ceremony.d.ts.map +1 -0
- package/dist/session-ceremony.js +964 -0
- package/dist/session-ceremony.js.map +1 -0
- package/dist/session-closed.d.ts +79 -0
- package/dist/session-closed.d.ts.map +1 -0
- package/dist/session-closed.js +189 -0
- package/dist/session-closed.js.map +1 -0
- package/dist/session-connection-gater.d.ts +148 -0
- package/dist/session-connection-gater.d.ts.map +1 -0
- package/dist/session-connection-gater.js +332 -0
- package/dist/session-connection-gater.js.map +1 -0
- package/dist/session-content-context.d.ts +162 -0
- package/dist/session-content-context.d.ts.map +1 -0
- package/dist/session-content-context.js +2 -0
- package/dist/session-content-context.js.map +1 -0
- package/dist/session-content-handlers.d.ts +82 -0
- package/dist/session-content-handlers.d.ts.map +1 -0
- package/dist/session-content-handlers.js +1382 -0
- package/dist/session-content-handlers.js.map +1 -0
- package/dist/session-content-ingest.d.ts +206 -0
- package/dist/session-content-ingest.d.ts.map +1 -0
- package/dist/session-content-ingest.js +2167 -0
- package/dist/session-content-ingest.js.map +1 -0
- package/dist/session-content-send.d.ts +191 -0
- package/dist/session-content-send.d.ts.map +1 -0
- package/dist/session-content-send.js +1360 -0
- package/dist/session-content-send.js.map +1 -0
- package/dist/session-delivery-acks.d.ts +169 -0
- package/dist/session-delivery-acks.d.ts.map +1 -0
- package/dist/session-delivery-acks.js +569 -0
- package/dist/session-delivery-acks.js.map +1 -0
- package/dist/session-ephemerals.d.ts +279 -0
- package/dist/session-ephemerals.d.ts.map +1 -0
- package/dist/session-ephemerals.js +591 -0
- package/dist/session-ephemerals.js.map +1 -0
- package/dist/session-leaf-records.d.ts +159 -0
- package/dist/session-leaf-records.d.ts.map +1 -0
- package/dist/session-leaf-records.js +408 -0
- package/dist/session-leaf-records.js.map +1 -0
- package/dist/session-lifecycle.d.ts +303 -0
- package/dist/session-lifecycle.d.ts.map +1 -0
- package/dist/session-lifecycle.js +1679 -0
- package/dist/session-lifecycle.js.map +1 -0
- package/dist/session-liveness.d.ts +135 -0
- package/dist/session-liveness.d.ts.map +1 -0
- package/dist/session-liveness.js +347 -0
- package/dist/session-liveness.js.map +1 -0
- package/dist/session-name.d.ts +35 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +60 -0
- package/dist/session-name.js.map +1 -0
- package/dist/session-node-factory.d.ts +18 -0
- package/dist/session-node-factory.d.ts.map +1 -0
- package/dist/session-node-factory.js +182 -0
- package/dist/session-node-factory.js.map +1 -0
- package/dist/session-node-manager.d.ts +877 -0
- package/dist/session-node-manager.d.ts.map +1 -0
- package/dist/session-node-manager.js +2998 -0
- package/dist/session-node-manager.js.map +1 -0
- package/dist/session-node-types.d.ts +1057 -0
- package/dist/session-node-types.d.ts.map +1 -0
- package/dist/session-node-types.js +657 -0
- package/dist/session-node-types.js.map +1 -0
- package/dist/session-notify.d.ts +46 -0
- package/dist/session-notify.d.ts.map +1 -0
- package/dist/session-notify.js +116 -0
- package/dist/session-notify.js.map +1 -0
- package/dist/session-own-chain-store.d.ts +65 -0
- package/dist/session-own-chain-store.d.ts.map +1 -0
- package/dist/session-own-chain-store.js +75 -0
- package/dist/session-own-chain-store.js.map +1 -0
- package/dist/session-queries.d.ts +476 -0
- package/dist/session-queries.d.ts.map +1 -0
- package/dist/session-queries.js +1007 -0
- package/dist/session-queries.js.map +1 -0
- package/dist/session-read-handlers.d.ts +87 -0
- package/dist/session-read-handlers.d.ts.map +1 -0
- package/dist/session-read-handlers.js +689 -0
- package/dist/session-read-handlers.js.map +1 -0
- package/dist/session-records.d.ts +341 -0
- package/dist/session-records.d.ts.map +1 -0
- package/dist/session-records.js +858 -0
- package/dist/session-records.js.map +1 -0
- package/dist/session-relay-client.d.ts +659 -0
- package/dist/session-relay-client.d.ts.map +1 -0
- package/dist/session-relay-client.js +2876 -0
- package/dist/session-relay-client.js.map +1 -0
- package/dist/session-relay.d.ts +397 -0
- package/dist/session-relay.d.ts.map +1 -0
- package/dist/session-relay.js +1636 -0
- package/dist/session-relay.js.map +1 -0
- package/dist/session-salt-agreement.d.ts +331 -0
- package/dist/session-salt-agreement.d.ts.map +1 -0
- package/dist/session-salt-agreement.js +472 -0
- package/dist/session-salt-agreement.js.map +1 -0
- package/dist/session-salts.d.ts +432 -0
- package/dist/session-salts.d.ts.map +1 -0
- package/dist/session-salts.js +1540 -0
- package/dist/session-salts.js.map +1 -0
- package/dist/session-schema.d.ts +30 -0
- package/dist/session-schema.d.ts.map +1 -0
- package/dist/session-schema.js +877 -0
- package/dist/session-schema.js.map +1 -0
- package/dist/session-seal-leaf-store.d.ts +70 -0
- package/dist/session-seal-leaf-store.d.ts.map +1 -0
- package/dist/session-seal-leaf-store.js +105 -0
- package/dist/session-seal-leaf-store.js.map +1 -0
- package/dist/session-seal.d.ts +334 -0
- package/dist/session-seal.d.ts.map +1 -0
- package/dist/session-seal.js +1017 -0
- package/dist/session-seal.js.map +1 -0
- package/dist/session-terminal-refusal.d.ts +65 -0
- package/dist/session-terminal-refusal.d.ts.map +1 -0
- package/dist/session-terminal-refusal.js +87 -0
- package/dist/session-terminal-refusal.js.map +1 -0
- package/dist/session-tree.d.ts +110 -0
- package/dist/session-tree.d.ts.map +1 -0
- package/dist/session-tree.js +144 -0
- package/dist/session-tree.js.map +1 -0
- package/dist/session-views.d.ts +47 -0
- package/dist/session-views.d.ts.map +1 -0
- package/dist/session-views.js +278 -0
- package/dist/session-views.js.map +1 -0
- package/dist/signal-handlers.d.ts +63 -0
- package/dist/signal-handlers.d.ts.map +1 -0
- package/dist/signal-handlers.js +980 -0
- package/dist/signal-handlers.js.map +1 -0
- package/dist/signal-requirement-policy.d.ts +51 -0
- package/dist/signal-requirement-policy.d.ts.map +1 -0
- package/dist/signal-requirement-policy.js +89 -0
- package/dist/signal-requirement-policy.js.map +1 -0
- package/dist/signal-revocability.d.ts +49 -0
- package/dist/signal-revocability.d.ts.map +1 -0
- package/dist/signal-revocability.js +93 -0
- package/dist/signal-revocability.js.map +1 -0
- package/dist/signal-submission.d.ts +181 -0
- package/dist/signal-submission.d.ts.map +1 -0
- package/dist/signal-submission.js +368 -0
- package/dist/signal-submission.js.map +1 -0
- package/dist/signaling-connect.d.ts +118 -0
- package/dist/signaling-connect.d.ts.map +1 -0
- package/dist/signaling-connect.js +538 -0
- package/dist/signaling-connect.js.map +1 -0
- package/dist/signaling-wiring.d.ts +105 -0
- package/dist/signaling-wiring.d.ts.map +1 -0
- package/dist/signaling-wiring.js +393 -0
- package/dist/signaling-wiring.js.map +1 -0
- package/dist/singleton-lock.d.ts +85 -0
- package/dist/singleton-lock.d.ts.map +1 -0
- package/dist/singleton-lock.js +219 -0
- package/dist/singleton-lock.js.map +1 -0
- package/dist/sqlcipher-db.d.ts +139 -0
- package/dist/sqlcipher-db.d.ts.map +1 -0
- package/dist/sqlcipher-db.js +357 -0
- package/dist/sqlcipher-db.js.map +1 -0
- package/dist/standing-receivers.d.ts +319 -0
- package/dist/standing-receivers.d.ts.map +1 -0
- package/dist/standing-receivers.js +1295 -0
- package/dist/standing-receivers.js.map +1 -0
- package/dist/start-agent.d.ts +64 -0
- package/dist/start-agent.d.ts.map +1 -0
- package/dist/start-agent.js +136 -0
- package/dist/start-agent.js.map +1 -0
- package/dist/status-handler.d.ts +54 -0
- package/dist/status-handler.d.ts.map +1 -0
- package/dist/status-handler.js +61 -0
- package/dist/status-handler.js.map +1 -0
- package/dist/submission-retry.d.ts +208 -0
- package/dist/submission-retry.d.ts.map +1 -0
- package/dist/submission-retry.js +506 -0
- package/dist/submission-retry.js.map +1 -0
- package/dist/telegram-bot-client.d.ts +34 -0
- package/dist/telegram-bot-client.d.ts.map +1 -0
- package/dist/telegram-bot-client.js +36 -0
- package/dist/telegram-bot-client.js.map +1 -0
- package/dist/telegram-doorbell.d.ts +38 -0
- package/dist/telegram-doorbell.d.ts.map +1 -0
- package/dist/telegram-doorbell.js +140 -0
- package/dist/telegram-doorbell.js.map +1 -0
- package/dist/test-handlers.d.ts +62 -0
- package/dist/test-handlers.d.ts.map +1 -0
- package/dist/test-handlers.js +240 -0
- package/dist/test-handlers.js.map +1 -0
- package/dist/testing.d.ts +10 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +10 -0
- package/dist/testing.js.map +1 -0
- package/dist/transport-composition.d.ts +31 -0
- package/dist/transport-composition.d.ts.map +1 -0
- package/dist/transport-composition.js +55 -0
- package/dist/transport-composition.js.map +1 -0
- package/dist/transport-selector.d.ts +202 -0
- package/dist/transport-selector.d.ts.map +1 -0
- package/dist/transport-selector.js +196 -0
- package/dist/transport-selector.js.map +1 -0
- package/dist/trust-signal-pickup-listener.d.ts +43 -0
- package/dist/trust-signal-pickup-listener.d.ts.map +1 -0
- package/dist/trust-signal-pickup-listener.js +48 -0
- package/dist/trust-signal-pickup-listener.js.map +1 -0
- package/dist/trust-signal-store.d.ts +406 -0
- package/dist/trust-signal-store.d.ts.map +1 -0
- package/dist/trust-signal-store.js +939 -0
- package/dist/trust-signal-store.js.map +1 -0
- package/dist/trust-signal-sweep-tick.d.ts +60 -0
- package/dist/trust-signal-sweep-tick.d.ts.map +1 -0
- package/dist/trust-signal-sweep-tick.js +101 -0
- package/dist/trust-signal-sweep-tick.js.map +1 -0
- package/dist/trust-signal-sweep.d.ts +94 -0
- package/dist/trust-signal-sweep.d.ts.map +1 -0
- package/dist/trust-signal-sweep.js +147 -0
- package/dist/trust-signal-sweep.js.map +1 -0
- package/dist/type-registry.d.ts +42 -0
- package/dist/type-registry.d.ts.map +1 -0
- package/dist/type-registry.js +37 -0
- package/dist/type-registry.js.map +1 -0
- package/dist/types.d.ts +746 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/dist/unresolved-nodes-report.d.ts +14 -0
- package/dist/unresolved-nodes-report.d.ts.map +1 -0
- package/dist/unresolved-nodes-report.js +96 -0
- package/dist/unresolved-nodes-report.js.map +1 -0
- package/dist/vocabulary.d.ts +150 -0
- package/dist/vocabulary.d.ts.map +1 -0
- package/dist/vocabulary.js +386 -0
- package/dist/vocabulary.js.map +1 -0
- package/dist/who-label.d.ts +28 -0
- package/dist/who-label.d.ts.map +1 -0
- package/dist/who-label.js +31 -0
- package/dist/who-label.js.map +1 -0
- package/dist/who-resolver.d.ts +15 -0
- package/dist/who-resolver.d.ts.map +1 -0
- package/dist/who-resolver.js +47 -0
- package/dist/who-resolver.js.map +1 -0
- package/dist/wire-content-hash.d.ts +93 -0
- package/dist/wire-content-hash.d.ts.map +1 -0
- package/dist/wire-content-hash.js +116 -0
- package/dist/wire-content-hash.js.map +1 -0
- package/dist/withheld-content.d.ts +13 -0
- package/dist/withheld-content.d.ts.map +1 -0
- package/dist/withheld-content.js +46 -0
- package/dist/withheld-content.js.map +1 -0
- package/dist/witness-alerts.d.ts +40 -0
- package/dist/witness-alerts.d.ts.map +1 -0
- package/dist/witness-alerts.js +102 -0
- package/dist/witness-alerts.js.map +1 -0
- package/package.json +5 -5
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,746 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CELLO Daemon IPC Types
|
|
3
|
+
*
|
|
4
|
+
* IPC framing: JSON-newline-delimited over Unix domain socket.
|
|
5
|
+
* Requests: {id, method, params}
|
|
6
|
+
* Responses: {id, result} or {id, error: {code, message, guidance}}
|
|
7
|
+
*/
|
|
8
|
+
import type { IManifestProvider, IManifestVersionStore, IManifestPollScheduler, IDirectoryChallengeVerifier, ConnectResult, IAutoNatService } from "@cello-protocol/transport";
|
|
9
|
+
import type { TransportDialer, SessionNegotiator } from "./transport-selector.js";
|
|
10
|
+
import type { SecurityGatewayClient } from "@cello-protocol/gateway";
|
|
11
|
+
export type { SecurityGatewayClient };
|
|
12
|
+
export type { IManifestProvider, IManifestVersionStore, IManifestPollScheduler, IDirectoryChallengeVerifier, };
|
|
13
|
+
import type { DirectoryEndpoint } from "./signaling-connect.js";
|
|
14
|
+
import type { TelegramBotClient } from "./telegram-bot-client.js";
|
|
15
|
+
export interface Logger {
|
|
16
|
+
debug(event: string, context: Record<string, unknown>): void;
|
|
17
|
+
info(event: string, context: Record<string, unknown>): void;
|
|
18
|
+
warn(event: string, context: Record<string, unknown>): void;
|
|
19
|
+
error(event: string, context: Record<string, unknown>): void;
|
|
20
|
+
}
|
|
21
|
+
export interface LockFileContent {
|
|
22
|
+
pid: number;
|
|
23
|
+
socketPath: string;
|
|
24
|
+
version: string;
|
|
25
|
+
}
|
|
26
|
+
export interface IpcRequest {
|
|
27
|
+
id: string;
|
|
28
|
+
method: string;
|
|
29
|
+
params?: Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
export interface IpcResponseOk {
|
|
32
|
+
id: string;
|
|
33
|
+
result: unknown;
|
|
34
|
+
}
|
|
35
|
+
export interface IpcResponseError {
|
|
36
|
+
id: string;
|
|
37
|
+
error: {
|
|
38
|
+
code: string;
|
|
39
|
+
message: string;
|
|
40
|
+
guidance: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export type IpcResponse = IpcResponseOk | IpcResponseError;
|
|
44
|
+
export interface IpcNotification {
|
|
45
|
+
notification: string;
|
|
46
|
+
data?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
export type IpcFrame = IpcResponse | IpcNotification;
|
|
49
|
+
/**
|
|
50
|
+
* Sentinel agentName used for the standing receiver node before any agent
|
|
51
|
+
* transitions to Online. The IPC socket opens after initialize() completes,
|
|
52
|
+
* so no agent can call cello_start_agent before the standing receiver exists.
|
|
53
|
+
*/
|
|
54
|
+
export declare const STANDING_RECEIVER_AGENT_NAME: "__standing_receiver__";
|
|
55
|
+
/**
|
|
56
|
+
* What an agent can actually do right now — a strict ladder, worst fact first.
|
|
57
|
+
*
|
|
58
|
+
* Every value is a fact about THIS AGENT. Nothing system-wide is smuggled in: a consortium that is
|
|
59
|
+
* short of threshold affects every agent equally, so it was never a property of an agent and lives
|
|
60
|
+
* on the daemon-level `directory` block instead. (Andre, 2026-08-09 — `isolated` was proposed for
|
|
61
|
+
* this enum and rejected on exactly that ground.)
|
|
62
|
+
*
|
|
63
|
+
* load_failed — the identity would not load. Bad key file or database; nothing else will work.
|
|
64
|
+
* unregistered — created on this machine, never registered with the directory. Nobody can reach
|
|
65
|
+
* it. Determined by whether the DKG left a FROST share, which is registration's
|
|
66
|
+
* durable product — not by a flag anyone could forget to set.
|
|
67
|
+
* stopped — registered, not running in this daemon.
|
|
68
|
+
* paused — deliberately taken offline by the operator. This is the kill switch WORKING;
|
|
69
|
+
* it is not a failure and must never read as one.
|
|
70
|
+
* connecting — started, directory signaling not up yet. Normal for a minute after registering.
|
|
71
|
+
* unattended — fully ready to receive, and NOBODY IS HOME to answer. Callers get the away
|
|
72
|
+
* message. Its own rung because this state was invisible and load-bearing: the
|
|
73
|
+
* witness stall happened precisely because BOTH sides were unattended, both away
|
|
74
|
+
* responders fired, and the away flow ends a session — so two agents sealed a
|
|
75
|
+
* conversation nobody had.
|
|
76
|
+
* online — ready AND at least one connection attending. The final good state.
|
|
77
|
+
*
|
|
78
|
+
* REPLACES `"registered" | "online" | "current" | "load_failed"`, which collapsed five distinct
|
|
79
|
+
* conditions into "online" and carried `current` as a state — selection is a per-connection concept
|
|
80
|
+
* and already has its own `selected` boolean, so a state value for it was two sources of truth.
|
|
81
|
+
*/
|
|
82
|
+
export type AgentState = "load_failed" | "unregistered" | "stopped" | "paused" | "connecting" | "unattended" | "online";
|
|
83
|
+
export interface AgentInfo {
|
|
84
|
+
name: string;
|
|
85
|
+
state: AgentState;
|
|
86
|
+
pubkey?: string;
|
|
87
|
+
error?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Whether THIS agent currently has an armed standing receiver. Populated on the
|
|
90
|
+
* cello_status surface (getStatus) so a deaf agent — online but unable to accept inbound
|
|
91
|
+
* sessions — is visible per-agent, not hidden behind the daemon-level ANY-agent aggregate.
|
|
92
|
+
*/
|
|
93
|
+
standing_receiver_ready?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* DOD-M12B-RESERVATION-RETRY-1: whether a NAT'd peer can actually DIAL this agent.
|
|
96
|
+
* `standing_receiver_ready` only says a receiver EXISTS — it is true for a plain TCP node no relay
|
|
97
|
+
* would give a circuit reservation to, which behind NAT is reachable by nobody. That difference
|
|
98
|
+
* was visible only in the log, where it appeared 481 times and nobody acted.
|
|
99
|
+
*
|
|
100
|
+
* ⚠️ **`ready` IS THE HEALTHY RESTING STATE, AND IT IS THE ONE AN OPERATOR SEES MOST —
|
|
101
|
+
* DOD-M15-IDLE-READY-1.** The five values, and what each one licenses:
|
|
102
|
+
*
|
|
103
|
+
* `reserved` — a relay slot is HELD. Somebody behind a home router can dial this agent right
|
|
104
|
+
* now. True during a live session, and while an offer's slot is in flight.
|
|
105
|
+
* `ready` — a receiver is standing by holding nothing, which is correct: since
|
|
106
|
+
* 055-ONDEMAND a slot is taken when somebody calls and given back at the seal.
|
|
107
|
+
* **Not a degraded `reserved`.** Nothing is wrong and nothing is being retried.
|
|
108
|
+
* `retrying` — this agent WANTS a slot for a live session, cannot get one, and is still
|
|
109
|
+
* trying on a bounded budget. A real fault, in progress.
|
|
110
|
+
* `unreachable` — the retry budget is spent. A NAT'd counterparty cannot reach it at all.
|
|
111
|
+
* `absent` — there is no receiver. The agent cannot accept anything.
|
|
112
|
+
*
|
|
113
|
+
* `ready` exists because without it `retrying` was the fallback for both "healthy and idle" and
|
|
114
|
+
* "genuinely cannot get a slot", so the field could not tell an operator which one they had —
|
|
115
|
+
* and a status that reads the same whether or not anything is wrong is not a status.
|
|
116
|
+
*/
|
|
117
|
+
standing_receiver_reachability?: "reserved" | "ready" | "retrying" | "unreachable" | "absent";
|
|
118
|
+
/**
|
|
119
|
+
* Whether THIS agent is the current (selected) agent for the requesting connection. Kept SEPARATE
|
|
120
|
+
* from `state` — `state` must not overload the value "current", or two equally healthy agents read
|
|
121
|
+
* as different readiness levels. A selected agent reads `state: "online"` + `selected: true`.
|
|
122
|
+
*/
|
|
123
|
+
selected?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* DOD-COATTEND-VISIBLE-1: how many live connections attend this agent right now, including the
|
|
126
|
+
* requesting one. Several sessions on one agent is legitimate (co-attendance, spec §3) but was
|
|
127
|
+
* completely invisible, so an operator whose messages were being taken by another window had no
|
|
128
|
+
* way to see why. Live, not cumulative — it falls when a session disconnects.
|
|
129
|
+
*/
|
|
130
|
+
attendance?: number;
|
|
131
|
+
}
|
|
132
|
+
export type ConnectionStatus = "verified" | "stale" | "gone" | "unverified";
|
|
133
|
+
export interface ConnectionInfo {
|
|
134
|
+
counterpartyPubkey: string;
|
|
135
|
+
status: ConnectionStatus;
|
|
136
|
+
}
|
|
137
|
+
export type DirectorySignalingState = "connected" | "reconnecting" | "lost";
|
|
138
|
+
export interface ScreeningStatusInfo {
|
|
139
|
+
/** `not_installed` | `half_installed` | `broken` | `ready` — the shared four states. */
|
|
140
|
+
classifier: string;
|
|
141
|
+
/** The sentence an operator reads, identical to the CLI's and the daemon startup line's. */
|
|
142
|
+
summary: string;
|
|
143
|
+
/** Present only when something is wrong, naming the file or the missing half. */
|
|
144
|
+
problem?: string;
|
|
145
|
+
}
|
|
146
|
+
export interface DaemonStatusResponse {
|
|
147
|
+
daemon: "running";
|
|
148
|
+
/**
|
|
149
|
+
* DOD-M9C-SCREENINSTALL-1 — which screening layers are actually running.
|
|
150
|
+
*
|
|
151
|
+
* Reported in EVERY state, healthy included, for the reason the directory-auth block above is:
|
|
152
|
+
* "the classifier is on" and "the classifier silently never loaded" otherwise differ only by the
|
|
153
|
+
* absence of a line, and an operator cannot confirm a defence by failing to find evidence
|
|
154
|
+
* against it.
|
|
155
|
+
*/
|
|
156
|
+
screening?: ScreeningStatusInfo;
|
|
157
|
+
directory_signaling: DirectorySignalingState;
|
|
158
|
+
agents: AgentInfo[];
|
|
159
|
+
/**
|
|
160
|
+
* True when the standing receiver node is listening and ready to accept the
|
|
161
|
+
* next inbound session. Set to true by SessionNodeManager.initialize() during
|
|
162
|
+
* daemon startup, before the IPC socket opens.
|
|
163
|
+
*/
|
|
164
|
+
standing_receiver_ready: boolean;
|
|
165
|
+
/**
|
|
166
|
+
* Total count of retry_queue entries across all sessions.
|
|
167
|
+
* Always present as integer >= 0.
|
|
168
|
+
*/
|
|
169
|
+
retryQueueDepth: number;
|
|
170
|
+
/**
|
|
171
|
+
* Interrupted sessions from SQLite.
|
|
172
|
+
* Always present (empty array if none). Never undefined or omitted.
|
|
173
|
+
*/
|
|
174
|
+
interrupted_sessions: InterruptedSessionInfo[];
|
|
175
|
+
/**
|
|
176
|
+
* ACTIVE sessions with their direct-path counterparty liveness, so a
|
|
177
|
+
* counterparty-gone session is visible to the operator instead of looking identical
|
|
178
|
+
* to a quiet-but-healthy one. Always present (empty array if none).
|
|
179
|
+
*/
|
|
180
|
+
active_sessions: ActiveSessionInfo[];
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* DOD-M12B-SEAL-STUCK-1 — whether a session can be sealed, as an operator surface.
|
|
184
|
+
*
|
|
185
|
+
* THREE STATES, because there are three answers and collapsing them is how this milestone's
|
|
186
|
+
* defects keep happening.
|
|
187
|
+
*
|
|
188
|
+
* `blocked` carries the two numbers separately, and they are NOT interchangeable:
|
|
189
|
+
* - `heldBehindGap` — messages this side RECEIVED and verified, waiting for an earlier position.
|
|
190
|
+
* Durable since DOD-M12B-STRAND-1, so this half survives a restart.
|
|
191
|
+
* - `awaitingArrival` — positions the relay witnessed for which nothing has arrived at all.
|
|
192
|
+
* Memory-only, so this half does NOT survive a restart, which is why `unknown` exists.
|
|
193
|
+
* - `oldestHeldMs` separates "stuck since this morning" from "in flight 40 ms ago". Without it a
|
|
194
|
+
* healthy mid-conversation window — the relay witnesses a counterparty leaf a moment before the
|
|
195
|
+
* content arrives — reads exactly like a permanently stranded session, and a warning on
|
|
196
|
+
* everything is a warning on nothing.
|
|
197
|
+
*
|
|
198
|
+
* `unknown` is NOT a soft `ready`. It is returned when this process cannot answer: the witness
|
|
199
|
+
* state that would show a never-arrived position is memory-only, so for a session that carries
|
|
200
|
+
* leaves from before this daemon started, "no gap recorded" means "not recorded", not "no gap".
|
|
201
|
+
* Reporting `ready` there would invite a close, and a short chain gets `leaf_count_mismatch` back —
|
|
202
|
+
* which is terminal, and the notarized receipt is gone for good.
|
|
203
|
+
*
|
|
204
|
+
* A `blocked` answer can still clear on its own: the close path drains parked relay content and
|
|
205
|
+
* re-checks before it refuses, which this read does not do. So this surface answers "right now",
|
|
206
|
+
* and a close may succeed against a session shown here as blocked.
|
|
207
|
+
*/
|
|
208
|
+
export type SealReadinessView = {
|
|
209
|
+
state: "ready";
|
|
210
|
+
} | {
|
|
211
|
+
state: "blocked";
|
|
212
|
+
awaitingArrival: number;
|
|
213
|
+
heldBehindGap: number;
|
|
214
|
+
oldestHeldMs: number | null;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* DOD-M15-SEALPRECOND-1 — a message of this side's own is on its way into the record.
|
|
218
|
+
*
|
|
219
|
+
* ITS OWN STATE, not `unknown`, and not `blocked` (review MEDIUM-4). `unknown` means unknowable
|
|
220
|
+
* or permanently parted; this is the most ordinary thing a live conversation does, and wearing an
|
|
221
|
+
* alarming label for it teaches an operator to discount the label. `blocked` is worse still: its
|
|
222
|
+
* two counters are both zero here, so it describes nothing and points at a counterparty who has
|
|
223
|
+
* done nothing. This clears on its own in milliseconds and needs no action from anyone.
|
|
224
|
+
*/
|
|
225
|
+
| {
|
|
226
|
+
state: "settling";
|
|
227
|
+
ownSendsInFlight: number;
|
|
228
|
+
} | {
|
|
229
|
+
state: "unknown";
|
|
230
|
+
reason: string;
|
|
231
|
+
};
|
|
232
|
+
/** One active session's status row (see DaemonStatusResponse.active_sessions). */
|
|
233
|
+
export interface ActiveSessionInfo {
|
|
234
|
+
sessionId: string;
|
|
235
|
+
agentName: string;
|
|
236
|
+
counterpartyPubkey: string;
|
|
237
|
+
/** Direct-path counterparty liveness; 'unknown' before any session-node observation.
|
|
238
|
+
* DOD-M12B-ACK-1: 'impaired' means the connection is up and our writes on it are failing —
|
|
239
|
+
* distinct from 'gone' (the connection dropped), which is what cello_receive turns into "call
|
|
240
|
+
* cello_close_session". It is daemon-local and is NOT the relay's SessionLiveness wire type. */
|
|
241
|
+
liveness: "alive" | "impaired" | "gone" | "unknown";
|
|
242
|
+
/** DOD-SESSION-NAME-1: this agent's own label for the session; null when unnamed. */
|
|
243
|
+
sessionName: string | null;
|
|
244
|
+
/**
|
|
245
|
+
* DOD-M12B-SEAL-STUCK-1 — whether this session can be sealed. See SealReadinessView.
|
|
246
|
+
*
|
|
247
|
+
* A chain with a gap cannot be co-signed, so the close refuses — correctly. But until this field
|
|
248
|
+
* existed the condition was only discoverable by ATTEMPTING a close on each session and reading
|
|
249
|
+
* the refusal, so 25 unsealable sessions accumulated on one daemon with every surface calling
|
|
250
|
+
* them ordinary active sessions, while each held a slot against the per-sender cap.
|
|
251
|
+
*/
|
|
252
|
+
sealReadiness: SealReadinessView;
|
|
253
|
+
/** DOD-FRONTIER-STRAND-1 AC3 — see SessionListEntry.frontierMismatch. Declared here because
|
|
254
|
+
* buildInterruptedSessions returns THIS type; it typechecked only because TS exempts spread
|
|
255
|
+
* properties from excess-property checking, so a renderer typed as this could not read it. */
|
|
256
|
+
frontierMismatch?: SessionListEntry["frontierMismatch"];
|
|
257
|
+
/**
|
|
258
|
+
* DOD-M15-AWAYSCOPE-1 — what the RELAY observed about the counterparty's standing connection.
|
|
259
|
+
*
|
|
260
|
+
* ⚠️ A DIFFERENT QUESTION FROM `liveness` ABOVE, and the two disagree routinely. `liveness` is
|
|
261
|
+
* daemon-local: does this process hold a libp2p connection for the session. This one is the
|
|
262
|
+
* relay's, and it is visible even when this daemon has no direct link — which on a relay-mediated
|
|
263
|
+
* session is the normal case. Absent when there was no relay to ask or the probe did not answer.
|
|
264
|
+
*/
|
|
265
|
+
relayLiveness?: "alive" | "gone" | "unknown";
|
|
266
|
+
/** Unix ms of that relay observation — when it last saw the CONNECTION change. */
|
|
267
|
+
relayObservedAt?: number;
|
|
268
|
+
/**
|
|
269
|
+
* Unix ms at which the far daemon made its attendance assertion.
|
|
270
|
+
*
|
|
271
|
+
* ⚠️ NOT `relayObservedAt`, and they are routinely hours apart. The relay sees an agent connect at
|
|
272
|
+
* 09:00; its operator steps away at 11:30. Dating the attendance 09:00 reports a state as of a
|
|
273
|
+
* time before it was true, and the number never moves when they step away again — so an operator
|
|
274
|
+
* watching it sees a frozen clock and reads it as stale data rather than as a current absence.
|
|
275
|
+
*/
|
|
276
|
+
attendanceObservedAt?: number;
|
|
277
|
+
/**
|
|
278
|
+
* DOD-M15-AWAYSCOPE-1 — the counterparty daemon's own assertion about itself.
|
|
279
|
+
*
|
|
280
|
+
* 'attended' — a person is watching. 'unattended' — online, nobody reading, the message WILL be
|
|
281
|
+
* read when they return. 'offline' — deliberately not accepting.
|
|
282
|
+
*
|
|
283
|
+
* THE MIDDLE VALUE IS WHY THIS FIELD EXISTS. Before it, an unattended agent announced itself by
|
|
284
|
+
* sending its away greeting into the conversation, which took a hash-chain leaf and destroyed the
|
|
285
|
+
* receipt on both machines. It is status now, never a message: it appears on `cello status` and
|
|
286
|
+
* `cello sessions`, never in a transcript and never in a sealed receipt.
|
|
287
|
+
*
|
|
288
|
+
* Absent unless `relayLiveness` is 'alive' — a daemon nobody can reach is not asserting anything.
|
|
289
|
+
*/
|
|
290
|
+
counterpartyAttendance?: "attended" | "unattended" | "offline";
|
|
291
|
+
}
|
|
292
|
+
export interface DaemonConfig {
|
|
293
|
+
celloDir: string;
|
|
294
|
+
socketPath: string;
|
|
295
|
+
lockFilePath: string;
|
|
296
|
+
maxConnections: number;
|
|
297
|
+
version: string;
|
|
298
|
+
logger: Logger;
|
|
299
|
+
/**
|
|
300
|
+
* Manifest loading and verification.
|
|
301
|
+
* When provided, startDaemon() calls manifestProvider.loadAndVerify() at startup.
|
|
302
|
+
* When absent, manifest loading is skipped.
|
|
303
|
+
*
|
|
304
|
+
* Production: requires manifestRootKeys (non-empty array) and manifestThreshold (>= 1).
|
|
305
|
+
* The bundled consortium-manifest.json is NOT shipped in the npm package — operators
|
|
306
|
+
* must supply their own manifest path via FileManifestProvider(path).
|
|
307
|
+
*/
|
|
308
|
+
manifestProvider?: IManifestProvider;
|
|
309
|
+
/**
|
|
310
|
+
* Officer root keys for manifest signature verification.
|
|
311
|
+
* Required when manifestProvider is provided.
|
|
312
|
+
*/
|
|
313
|
+
manifestRootKeys?: readonly string[];
|
|
314
|
+
/**
|
|
315
|
+
* Officer threshold for manifest signature verification.
|
|
316
|
+
* Required when manifestProvider is provided.
|
|
317
|
+
*/
|
|
318
|
+
manifestThreshold?: number;
|
|
319
|
+
/**
|
|
320
|
+
* Version store for monotonicity enforcement.
|
|
321
|
+
* When absent, monotonicity check is skipped.
|
|
322
|
+
*/
|
|
323
|
+
manifestVersionStore?: IManifestVersionStore;
|
|
324
|
+
/**
|
|
325
|
+
* Poll scheduler for background manifest refresh.
|
|
326
|
+
* When absent, polling is disabled.
|
|
327
|
+
*/
|
|
328
|
+
manifestPollScheduler?: IManifestPollScheduler;
|
|
329
|
+
/**
|
|
330
|
+
* Base URL for the daemon-level HTTP manifest poll (`${directoryHttpUrl}/manifest`). The poll runs
|
|
331
|
+
* over unauthenticated HTTP, NOT the keystone signaling stream, so it keeps running with zero
|
|
332
|
+
* agents. Defaults to resolveDirectoryUrl(process.env). Tests inject an in-process server URL.
|
|
333
|
+
*/
|
|
334
|
+
directoryHttpUrl?: string;
|
|
335
|
+
/**
|
|
336
|
+
* Challenge verifier for directory step-5 identity proof.
|
|
337
|
+
* When absent, directory challenge verification is skipped.
|
|
338
|
+
*/
|
|
339
|
+
challengeVerifier?: IDirectoryChallengeVerifier;
|
|
340
|
+
/**
|
|
341
|
+
* Injectable connect function for the directory signaling stream.
|
|
342
|
+
* When absent, a stub that always rejects (directory_signaling_not_configured) is used.
|
|
343
|
+
* Production: performs the full 7-step directory handshake.
|
|
344
|
+
*
|
|
345
|
+
* Tests inject a fake signalingConnect directly. Production leaves this undefined
|
|
346
|
+
* and supplies directoryEndpointResolver instead (see below), so startDaemon can
|
|
347
|
+
* build the real connect wired to its own loaded-agent identity.
|
|
348
|
+
*/
|
|
349
|
+
signalingConnect?: () => Promise<ConnectResult>;
|
|
350
|
+
/**
|
|
351
|
+
* Resolves the directory endpoint to dial (GET /bootstrap).
|
|
352
|
+
* When signalingConnect is absent and this is present, startDaemon builds the
|
|
353
|
+
* production signalingConnect from this resolver + the daemon's primary agent
|
|
354
|
+
* identity. Ignored when signalingConnect is provided directly.
|
|
355
|
+
*/
|
|
356
|
+
directoryEndpointResolver?: () => Promise<DirectoryEndpoint | null>;
|
|
357
|
+
/**
|
|
358
|
+
* Injectable session-node factory for the composition root.
|
|
359
|
+
* When absent, the production factory (real libp2p via createNode) is used.
|
|
360
|
+
* Tests inject a controllable factory to exercise the send/receive/tree path
|
|
361
|
+
* without the real transport stack.
|
|
362
|
+
*/
|
|
363
|
+
sessionNodeFactory?: import("./session-node-manager.js").ISessionNodeFactory;
|
|
364
|
+
/**
|
|
365
|
+
* Park target for the startup flush of un-acked content. On startup — BEFORE the IPC
|
|
366
|
+
* socket opens — the daemon drains retry_queue entries still awaiting a `persisted`
|
|
367
|
+
* delivery ACK and re-parks each to the relay store-and-forward queue via this function
|
|
368
|
+
* (the crash backstop). The function performs the encrypted relay deposit and is the
|
|
369
|
+
* natural emitter of content.park.deposited (it holds the recipient context).
|
|
370
|
+
*
|
|
371
|
+
* It is supplied by the daemon's OWN send path — the daemon owns the session core, so it
|
|
372
|
+
* constructs the relay-deposit function natively (never a hosted CelloClient /
|
|
373
|
+
* RelayStreamManager). When absent (a daemon started without the content send path, or
|
|
374
|
+
* unit tests), the startup flush is a no-op (content.park.flush.deferred at WARN) and the
|
|
375
|
+
* durable awaiting entries remain queued for the next startup that has a park target.
|
|
376
|
+
*/
|
|
377
|
+
contentParkFn?: import("./retry-queue.js").ParkFn;
|
|
378
|
+
/**
|
|
379
|
+
* DOD-M15-ENDORSE-RETRY-1 — timings for the sealed-submission retry queue. Absent in production,
|
|
380
|
+
* where the module's own defaults apply.
|
|
381
|
+
*
|
|
382
|
+
* Same seam as `contentParkTtfMs` below and for the same reason: without it a test's green
|
|
383
|
+
* depends on the real SignalingManager reconnect ladder racing a real 5-second timer, so a
|
|
384
|
+
* correct implementation goes red whenever the ladder happens to land late.
|
|
385
|
+
*/
|
|
386
|
+
submissionRetryIntervalsMs?: {
|
|
387
|
+
staggerMs?: number;
|
|
388
|
+
localPreconditionRetryMs?: number;
|
|
389
|
+
};
|
|
390
|
+
/**
|
|
391
|
+
* The TTF (time-to-flush) window, in ms, the sender waits for a `persisted` delivery ACK
|
|
392
|
+
* before handing un-acked content to the park backstop. Default 20_000. Tests inject a
|
|
393
|
+
* small value to drive TTF expiry deterministically.
|
|
394
|
+
*/
|
|
395
|
+
contentTtfMs?: number;
|
|
396
|
+
/**
|
|
397
|
+
* DOD-M12B-RESTART-SEAL-1: how long after boot the restart-seal resolver waits before its first
|
|
398
|
+
* attempt, in ms. Default 30_000 — a seal is a directory ceremony and signaling is still being
|
|
399
|
+
* established when boot finishes, so attempting immediately spends an attempt on a connection
|
|
400
|
+
* that does not exist yet. Tests set it small to drive the resolver deterministically.
|
|
401
|
+
*/
|
|
402
|
+
restartSealInitialDelayMs?: number;
|
|
403
|
+
/**
|
|
404
|
+
* DOD-M12B-RESTART-SEAL-1: gap between two restart-seal attempts, in ms. Default 5_000 — a seal
|
|
405
|
+
* is a directory ceremony and a machine holding hundreds of orphans must not answer a restart
|
|
406
|
+
* with hundreds of simultaneous ones. Tests set it small so every queued row lands inside the
|
|
407
|
+
* assertion window; without that a scope test passes because of the stagger, not the guard.
|
|
408
|
+
*/
|
|
409
|
+
restartSealStaggerMs?: number;
|
|
410
|
+
/**
|
|
411
|
+
* Low-level dialer backing the transport selector in
|
|
412
|
+
* production environments (dev/staging/production). Wraps a CelloNode (direct +
|
|
413
|
+
* relay circuit dial) and the daemon relay registry. Required for production
|
|
414
|
+
* CELLO_ENV; for 'local'/'test' the composition root uses an in-process stub.
|
|
415
|
+
*/
|
|
416
|
+
transportDialer?: TransportDialer;
|
|
417
|
+
/**
|
|
418
|
+
* AutoNAT service adapter backing dialability detection
|
|
419
|
+
* in production environments. Wraps the standing-receiver node's libp2p AutoNAT
|
|
420
|
+
* observable. For 'local'/'test' the composition root uses a stub (dialable=false).
|
|
421
|
+
*/
|
|
422
|
+
autoNatService?: IAutoNatService;
|
|
423
|
+
/**
|
|
424
|
+
* Directory session negotiation adapter. cello_initiate_session calls negotiate() to
|
|
425
|
+
* obtain the FROST-signed SessionAssignment, then drives the transport selector to dial
|
|
426
|
+
* the counterparty. When absent, cello_initiate_session reports
|
|
427
|
+
* directory_signaling_not_configured — it does NOT crash.
|
|
428
|
+
*/
|
|
429
|
+
sessionNegotiator?: SessionNegotiator;
|
|
430
|
+
/**
|
|
431
|
+
* Returns this daemon's relay circuit address (from the relay registry populated at
|
|
432
|
+
* directory connection) for the SessionAssignment advertised address when the standing
|
|
433
|
+
* receiver is NOT dialable. When absent, an empty advertised relay address is used (the
|
|
434
|
+
* negotiator supplies the real one in production).
|
|
435
|
+
*/
|
|
436
|
+
getRelayCircuitAddress?: () => string;
|
|
437
|
+
/**
|
|
438
|
+
* Injectable Telegram Bot API client (test override — production uses HttpTelegramBotClient,
|
|
439
|
+
* constructed from telegram_settings once configured via setTelegramSettings). Absent = the
|
|
440
|
+
* Telegram doorbell is inert (no poller starts) until settings exist.
|
|
441
|
+
*/
|
|
442
|
+
telegramBotClient?: TelegramBotClient;
|
|
443
|
+
/**
|
|
444
|
+
* The security gateway client. Every outbound message is screened in cello_send before
|
|
445
|
+
* sessionNodeManager.sendContent; every inbound message is screened in the inbound funnel
|
|
446
|
+
* before it enters the receive buffer. The daemon holds ONLY this narrow interface — all
|
|
447
|
+
* detection lives in the separate gateway program.
|
|
448
|
+
*
|
|
449
|
+
* REQUIRED (INV-9, M9B-D10). It was optional, defaulting to `PassthroughGatewayClient`, and
|
|
450
|
+
* because no production caller ever set it, every shipped daemon screened NOTHING while
|
|
451
|
+
* announcing that the gateway was connected. An optional field with a permissive default made
|
|
452
|
+
* the invariant hold by CONVENTION while the comment claimed it held by construction. Now the
|
|
453
|
+
* compiler asks. A caller that genuinely wants no screening — a test — passes
|
|
454
|
+
* `new PassthroughGatewayClient()` and thereby says so out loud.
|
|
455
|
+
*/
|
|
456
|
+
securityGateway: SecurityGatewayClient;
|
|
457
|
+
/**
|
|
458
|
+
* Restart the screening sidecar so a stored config change actually applies (M9B-D17). The
|
|
459
|
+
* gateway reads its config only at boot, so without this a confirmed loosening would be recorded
|
|
460
|
+
* and have no effect — the operator told `ok`, the running gateway unchanged. Supplied by the
|
|
461
|
+
* composition root, which owns the sidecar's lifecycle; absent in tests that assert storage only.
|
|
462
|
+
*/
|
|
463
|
+
restartSecurityGateway?: (correlationId?: string) => Promise<void>;
|
|
464
|
+
/**
|
|
465
|
+
* Tear down whatever the composition root started alongside the daemon — today the screening
|
|
466
|
+
* sidecar. Called at the END of the daemon's own stop(), so it runs on EVERY exit path, not just
|
|
467
|
+
* the signal handler: `cello logout` goes through the IPC `shutdown` verb, which never reaches
|
|
468
|
+
* the bin's SIGTERM handler.
|
|
469
|
+
*/
|
|
470
|
+
onShutdown?: () => Promise<void>;
|
|
471
|
+
/**
|
|
472
|
+
* DOD-LOGOUT-EXIT-1: the daemon has finished stopping and is ready for the process to end.
|
|
473
|
+
* Fired as the LAST act of stop(), after the singleton lock is released, on every path — the
|
|
474
|
+
* bin's SIGTERM handler AND the IPC `shutdown` verb that `cello logout` uses.
|
|
475
|
+
*
|
|
476
|
+
* Why this exists. The two shutdown paths were not symmetric: the signal handler ran
|
|
477
|
+
* `await handle.stop(); process.exit(0)`, while the IPC path started stop(), acknowledged, and
|
|
478
|
+
* never exited — it relied on the event loop draining by itself. But stop() releases the socket,
|
|
479
|
+
* the lock file and the singleton lock, which are exactly the two facts `logout`'s `daemonGone()`
|
|
480
|
+
* consults, so the daemon went HANDLE-FREE WHILE STILL ALIVE: every local check agreed it was
|
|
481
|
+
* gone while it still held an ESTABLISHED connection to a directory node. A kill switch may not
|
|
482
|
+
* lie, and the handles being correctly released is precisely why this one hid.
|
|
483
|
+
*
|
|
484
|
+
* Why a hook and not a `process.exit()` in stop(). daemon.ts is called IN-PROCESS by vitest and by
|
|
485
|
+
* embedders; exiting there would kill the test runner. Only the binary owns the process, so only
|
|
486
|
+
* the binary may end it.
|
|
487
|
+
*
|
|
488
|
+
* Why chasing the stragglers instead was rejected: the set of things that can hold the loop
|
|
489
|
+
* (unawaited libp2p teardown, an in-flight dial with no timeout, the Telegram long-poll whose
|
|
490
|
+
* stop only bumps a generation counter, in-flight registry/manifest fetches) is open-ended, and
|
|
491
|
+
* the next addition would reintroduce the lie silently. Fix them on their own merits; do not make
|
|
492
|
+
* the kill switch depend on having found all of them.
|
|
493
|
+
*
|
|
494
|
+
* Fired at most ONCE per daemon, even if stop() is called again.
|
|
495
|
+
*
|
|
496
|
+
* CARRIES THE OUTCOME, and the caller must act on it. `ok: false` means the teardown threw
|
|
497
|
+
* partway — sessions possibly not marked interrupted, the database possibly not checkpointed.
|
|
498
|
+
* The process must still end (a half-stopped daemon may not keep talking to a directory), but it
|
|
499
|
+
* must not claim it stopped cleanly: the binary exits NON-ZERO on `ok: false`. Exiting 0 for both
|
|
500
|
+
* would reintroduce, one level up, exactly the lie this hook was added to kill.
|
|
501
|
+
*
|
|
502
|
+
* A throw from this hook is NOT swallowed — it propagates out of stop(). This is the only call
|
|
503
|
+
* that ends the process, so a failure here means the kill switch did not fire, and that must be
|
|
504
|
+
* loud enough for `cello logout` to time out and report failure rather than print "Daemon
|
|
505
|
+
* stopped." over a daemon that is still running.
|
|
506
|
+
*/
|
|
507
|
+
onStopped?: (outcome: {
|
|
508
|
+
ok: boolean;
|
|
509
|
+
error?: Error;
|
|
510
|
+
}) => void | Promise<void>;
|
|
511
|
+
/**
|
|
512
|
+
* DOD-REGISTRY-1: Ed25519 pubkey (hex) for verifying the type registry inner signature.
|
|
513
|
+
* Build-time pinned. When absent, the registry poll is disabled (all types unclassified).
|
|
514
|
+
*/
|
|
515
|
+
registryPubkey?: string;
|
|
516
|
+
/**
|
|
517
|
+
* DOD-REGISTRY-1: poll scheduler for background registry refresh.
|
|
518
|
+
* When absent (or registryPubkey absent), registry polling is disabled.
|
|
519
|
+
*/
|
|
520
|
+
registryPollScheduler?: import("@cello-protocol/transport").IManifestPollScheduler;
|
|
521
|
+
/**
|
|
522
|
+
* DOD-M15-STALEROSTER-1: scheduler for the background directory-reachability sweep.
|
|
523
|
+
*
|
|
524
|
+
* Injectable for the same reason the two above are — without it, "does the daemon actually START
|
|
525
|
+
* the sweep" is unobservable, and the revert test proved that gap was real: disabling the wiring
|
|
526
|
+
* entirely left the whole suite green while the reading went back to freezing on recovery.
|
|
527
|
+
*
|
|
528
|
+
* When absent the daemon builds its own slow randomized scheduler; the sweep is never off while a
|
|
529
|
+
* manifest provider exists.
|
|
530
|
+
*/
|
|
531
|
+
rosterSweepScheduler?: import("@cello-protocol/transport").IManifestPollScheduler;
|
|
532
|
+
/**
|
|
533
|
+
* DOD-M15-STALEROSTER-1: injectable fetch for the directory `/bootstrap` probes.
|
|
534
|
+
*
|
|
535
|
+
* Already threaded through `verifyStartupManifest` and `createConsortiumRouting`; it simply had
|
|
536
|
+
* no way in from the daemon's own config. Without it, "does the background sweep use the PATIENT
|
|
537
|
+
* probe budget" is unobservable at the wiring level — and a wiring-level blind spot is exactly
|
|
538
|
+
* what let the whole sweep be deleted with the suite still green. Defaults to global fetch.
|
|
539
|
+
*/
|
|
540
|
+
fetchFn?: typeof fetch;
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Maximum number of concurrent session nodes per daemon.
|
|
544
|
+
*/
|
|
545
|
+
export declare const MAX_SESSION_NODES = 32;
|
|
546
|
+
/**
|
|
547
|
+
* Status of a session persisted in SQLite.
|
|
548
|
+
*
|
|
549
|
+
* - active: live session with a transport node.
|
|
550
|
+
* - interrupted: relay/daemon detected the session was cut short; eligible for
|
|
551
|
+
* the operator-initiated seal-interrupted bilateral flow.
|
|
552
|
+
* - seal_interrupted_pending: both parties have produced and exchanged signed
|
|
553
|
+
* SEAL-INTERRUPTED leaves (a verified bilateral commitment), but the FROST
|
|
554
|
+
* threshold notarization has NOT been performed. This is a non-terminal state
|
|
555
|
+
* — it is explicitly NOT 'sealed'. See daemon.ts handleSealInterruptedFlow for what
|
|
556
|
+
* blocks the threshold seal.
|
|
557
|
+
* - sealed: a real FROST threshold notarization completed. Only the normal
|
|
558
|
+
* (non-interrupted) close path produces this today.
|
|
559
|
+
*/
|
|
560
|
+
export type SessionStatus = "active" | "sealed" | "interrupted" | "seal_interrupted_pending" | "abandoned";
|
|
561
|
+
import type { ContentEncryptionReason } from "./content-encryption-status.js";
|
|
562
|
+
export interface SessionRecord {
|
|
563
|
+
/**
|
|
564
|
+
* DOD-M15-REFUSED-INBOUND-SILENT-1 — whether this session's content hashes are salted.
|
|
565
|
+
*
|
|
566
|
+
* Deliberately a status field and not an alert: an unsalted session is exactly as verifiable as
|
|
567
|
+
* every session shipped before salting existed, so nothing is wrong and there is nothing to
|
|
568
|
+
* interrupt anyone with. It exists so an operator can tell *unsalted because this build predates
|
|
569
|
+
* the feature* from *unsalted because adoption was refused* — only the second says anything about
|
|
570
|
+
* their setup. Absent on records that did not come from a listing surface.
|
|
571
|
+
*/
|
|
572
|
+
content_hashes_salted?: boolean;
|
|
573
|
+
/**
|
|
574
|
+
* 006-CRYPTO — whether CELLO's OWN encryption is protecting this session's message bodies, and
|
|
575
|
+
* why not when it is not. `false` in every build until `007-CRYPTO` ships the key exchange.
|
|
576
|
+
*
|
|
577
|
+
* Separate from `content_hashes_salted`: the salt stops a relay CONFIRMING a guess at a stored
|
|
578
|
+
* hash, this stops it READING the message. Absent on records that did not come from a listing.
|
|
579
|
+
*/
|
|
580
|
+
content_encrypted?: boolean;
|
|
581
|
+
content_encryption_reason?: ContentEncryptionReason;
|
|
582
|
+
session_id: string;
|
|
583
|
+
/**
|
|
584
|
+
* The STABLE key this row is scoped by. Every `sessions` query joins on this, never on
|
|
585
|
+
* `agent_name`.
|
|
586
|
+
*/
|
|
587
|
+
agent_id: string;
|
|
588
|
+
/**
|
|
589
|
+
* DISPLAY ONLY. Joined in from the `agents` table (its single source of truth) — it is NOT a column
|
|
590
|
+
* of `sessions`, precisely so a rename cannot leave a stale copy behind. Never put it in a
|
|
591
|
+
* PRIMARY KEY, a JOIN predicate, or a WHERE-match: a retire FREES the name for reuse, so it does
|
|
592
|
+
* not identify an agent across the retired boundary.
|
|
593
|
+
*/
|
|
594
|
+
agent_name: string;
|
|
595
|
+
counterparty_pubkey: string;
|
|
596
|
+
status: SessionStatus;
|
|
597
|
+
created_at: number;
|
|
598
|
+
updated_at: number;
|
|
599
|
+
/** Leaf count at interruption. 0 if not yet set. */
|
|
600
|
+
message_count: number;
|
|
601
|
+
/** ISO 8601 timestamp of interruption. Null if not yet set. */
|
|
602
|
+
interrupted_at: string | null;
|
|
603
|
+
/**
|
|
604
|
+
* The counterparty's FROST primary (group) pubkey hex, from the
|
|
605
|
+
* SessionAssignment's signer_pubkey. The responder verifies the bilateral seal signature against
|
|
606
|
+
* it. Null when this party initiated (it verifies against its own primary).
|
|
607
|
+
*/
|
|
608
|
+
counterparty_primary_pubkey?: string | null;
|
|
609
|
+
/**
|
|
610
|
+
* DOD-SESSION-NAME-1: this agent's own human-readable label for the session. Null when unnamed,
|
|
611
|
+
* and unnamed MEANS something (see the column comment in session-node-manager). Local and
|
|
612
|
+
* cosmetic — it reaches no wire structure.
|
|
613
|
+
*/
|
|
614
|
+
session_name?: string | null;
|
|
615
|
+
}
|
|
616
|
+
/** An interrupted session entry in the cello status response. */
|
|
617
|
+
export interface InterruptedSessionInfo {
|
|
618
|
+
sessionId: string;
|
|
619
|
+
agentName: string;
|
|
620
|
+
counterpartyPubkey: string;
|
|
621
|
+
messageCount: number;
|
|
622
|
+
interruptedAt: string;
|
|
623
|
+
/** DOD-SESSION-NAME-1: this agent's own label for the session; null when unnamed. */
|
|
624
|
+
sessionName: string | null;
|
|
625
|
+
/**
|
|
626
|
+
* DOD-M12B-SEAL-STUCK-1 — whether this session can be sealed. See SealReadinessView.
|
|
627
|
+
*
|
|
628
|
+
* An interrupted session can seal (that is what seal-interrupted is for), so it can also be
|
|
629
|
+
* BLOCKED from sealing by a gap. `frontierMismatch` beside this reports a different, later
|
|
630
|
+
* condition: the two sides have already exchanged and disagreed. This one is the gap on OUR side,
|
|
631
|
+
* knowable before any exchange, and it is the more common of the two.
|
|
632
|
+
*
|
|
633
|
+
* A PLAIN PROPERTY, not optional — matching the active list. The optional form was built with a
|
|
634
|
+
* spread, which bypasses excess-property checking, and that is exactly how `frontierMismatch`
|
|
635
|
+
* four lines down came to typecheck while no renderer could read it.
|
|
636
|
+
*/
|
|
637
|
+
sealReadiness: SealReadinessView;
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* cello_sessions: one session in the discovery list for the current agent.
|
|
641
|
+
* Covers every status (active, sealed, interrupted, seal_interrupted_pending) so
|
|
642
|
+
* the by-id reads (cello_transcript / cello_sealed_receipt) have a source for their
|
|
643
|
+
* session ids. Timestamps are ISO 8601; interruptedAt is null unless the session
|
|
644
|
+
* is/was interrupted.
|
|
645
|
+
*/
|
|
646
|
+
export interface SessionListEntry {
|
|
647
|
+
/**
|
|
648
|
+
* DOD-M15-REFUSED-INBOUND-SILENT-1 — present ONLY when this session's content hashes are NOT
|
|
649
|
+
* salted, so it stays readable rather than becoming a field on every row that everyone skips.
|
|
650
|
+
*
|
|
651
|
+
* Its absence is the healthy, ordinary case. Its presence does not mean anything is wrong — an
|
|
652
|
+
* unsalted session is exactly as verifiable as every session shipped before salting existed — it
|
|
653
|
+
* means the operator can tell *unsalted because this build predates the feature* from *unsalted
|
|
654
|
+
* because adoption was refused*, and only the second says anything about their setup.
|
|
655
|
+
*/
|
|
656
|
+
contentHashesSalted?: false;
|
|
657
|
+
/**
|
|
658
|
+
* 006-CRYPTO — present ONLY when CELLO is not encrypting this session's message bodies itself.
|
|
659
|
+
*
|
|
660
|
+
* Its absence will be the healthy case once `007-CRYPTO` lands; today it is present on every
|
|
661
|
+
* session, and that is the truth about this build rather than a fault in the session. It is here
|
|
662
|
+
* so no reader has to infer the state from silence — the failure this whole line exists to end
|
|
663
|
+
* was a key agreement that had tests, a header claiming forward secrecy, and no caller.
|
|
664
|
+
*/
|
|
665
|
+
contentEncrypted?: false;
|
|
666
|
+
/** What that means for the operator. Never a bare code — a bare code is not an affordance. */
|
|
667
|
+
contentEncryptionGuidance?: string;
|
|
668
|
+
sessionId: string;
|
|
669
|
+
agentName: string;
|
|
670
|
+
counterpartyPubkey: string;
|
|
671
|
+
status: SessionStatus;
|
|
672
|
+
/** Operator-facing bucket derived from status + messageCount: open | closed | failed. */
|
|
673
|
+
category: "open" | "closed" | "failed";
|
|
674
|
+
/**
|
|
675
|
+
* DOD-FRONTIER-STRAND-1 AC3: present ONLY when a seal exchange has proved the two sides disagree
|
|
676
|
+
* on how many messages this session holds. Its presence means the session is STRANDED — it cannot
|
|
677
|
+
* co-sign and will never seal — as distinct from an ordinary interrupted session that is merely
|
|
678
|
+
* waiting for both parties to be online. Absent is the healthy case; there is no "false" to read.
|
|
679
|
+
*/
|
|
680
|
+
frontierMismatch?: {
|
|
681
|
+
ours: number;
|
|
682
|
+
theirs: number;
|
|
683
|
+
divergingLeafIndex: number;
|
|
684
|
+
observedAt: string;
|
|
685
|
+
guidance: string;
|
|
686
|
+
};
|
|
687
|
+
/**
|
|
688
|
+
* DOD-M15-AWAYSCOPE-1 — the counterparty daemon's own assertion about itself, for an OPEN session.
|
|
689
|
+
*
|
|
690
|
+
* 'attended' — a person is watching. 'unattended' — online, nobody reading, and the message WILL
|
|
691
|
+
* be read when they return. 'offline' — deliberately not accepting.
|
|
692
|
+
*
|
|
693
|
+
* THE MIDDLE VALUE IS THE REASON THIS FIELD EXISTS. Before it, the only way to learn an agent was
|
|
694
|
+
* unattended was for its daemon to say so INSIDE the conversation — which took a hash-chain leaf
|
|
695
|
+
* and cost session `e7dd3f43…` its receipt on both machines. It is session status now: it is read
|
|
696
|
+
* here and on `cello status`, it never enters a transcript, and it never reaches a sealed receipt.
|
|
697
|
+
*
|
|
698
|
+
* Absent unless the relay currently holds that agent's connection, because a daemon nobody can
|
|
699
|
+
* reach is not asserting anything — and absent for any session with no relay behind it to ask.
|
|
700
|
+
*/
|
|
701
|
+
counterpartyAttendance?: "attended" | "unattended" | "offline";
|
|
702
|
+
/** Unix ms at which that assertion, or the relay's own observation, was made. */
|
|
703
|
+
attendanceObservedAt?: number;
|
|
704
|
+
messageCount: number;
|
|
705
|
+
createdAt: string;
|
|
706
|
+
updatedAt: string;
|
|
707
|
+
interruptedAt: string | null;
|
|
708
|
+
/** The resolved display label (pet name ?? offered ?? fingerprint). */
|
|
709
|
+
who: string;
|
|
710
|
+
whoKnown: boolean;
|
|
711
|
+
/**
|
|
712
|
+
* DOD-SESSION-NAME-1: this agent's own label for the session, or null when unnamed.
|
|
713
|
+
*
|
|
714
|
+
* Returned ALONGSIDE sessionId, never instead of it — the id is what you paste into the next
|
|
715
|
+
* command. Null is a value with meaning: a session that closed cleanly through an agent usually
|
|
716
|
+
* has a name, so an unnamed closed one is a hint it did not.
|
|
717
|
+
*/
|
|
718
|
+
sessionName: string | null;
|
|
719
|
+
/**
|
|
720
|
+
* Whether this session's message hashes are salted — `DOD-M15-SEALWIRE-1` bullet 6.
|
|
721
|
+
*
|
|
722
|
+
* `false` is not a fault. It means this conversation hashes the way every build before the salt
|
|
723
|
+
* existed, which is exactly as verifiable; what it loses is that a relay holding the hashes could
|
|
724
|
+
* confirm a guess at a short message in this conversation. The common cause is a counterparty who
|
|
725
|
+
* was offline or on an older build when the session opened, and it is permanent for the session
|
|
726
|
+
* either way — the agreement runs at open, before anything is hashed.
|
|
727
|
+
*
|
|
728
|
+
* ⚠️ REQUIRED, NOT OPTIONAL. An absent field would be indistinguishable from `false`, so an older
|
|
729
|
+
* daemon and an unprotected session would read the same — the exact collapse Decision #15 spends a
|
|
730
|
+
* whole wire discriminator preventing. A security property must never be inferable from a gap.
|
|
731
|
+
*/
|
|
732
|
+
contentSalted: boolean;
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Result of a session listing (cello_sessions / the daemon-wide `list_sessions`). `sessions`
|
|
736
|
+
* is already filtered + capped at `limit`; `totalMatched` is how many matched the filter before the
|
|
737
|
+
* cap, so the caller can tell the operator "showing 50 of 312".
|
|
738
|
+
*/
|
|
739
|
+
export interface SessionListResponse {
|
|
740
|
+
ok: true;
|
|
741
|
+
filter: "open" | "closed" | "failed" | "all";
|
|
742
|
+
limit: number;
|
|
743
|
+
totalMatched: number;
|
|
744
|
+
sessions: SessionListEntry[];
|
|
745
|
+
}
|
|
746
|
+
//# sourceMappingURL=types.d.ts.map
|