@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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FINDING-4 — the bundled consortium roster (sovereign-node REDUNDANCY invariant).
|
|
3
|
+
*
|
|
4
|
+
* This is the signed list of the sovereign directory nodes that make up the CELLO consortium,
|
|
5
|
+
* COMPILED INTO the client. It is loaded by default (when the operator does not override it via
|
|
6
|
+
* CELLO_CONSORTIUM_MANIFEST) so that a cold-boot daemon already knows every directory — and can
|
|
7
|
+
* fail over to a reachable one — even when its configured/primary directory is unreachable. Without
|
|
8
|
+
* a bundled roster the failover resolver has nothing to route to (the exact FINDING-4 gap: the
|
|
9
|
+
* roster-aware dialer was correct but the roster was empty), so a single directory being down
|
|
10
|
+
* stranded the client at startup, violating the redundancy invariant.
|
|
11
|
+
*
|
|
12
|
+
* Trust model:
|
|
13
|
+
* - The manifest is threshold-signed by the consortium officer key(s). At load the client
|
|
14
|
+
* RE-VERIFIES it against BUNDLED_CONSORTIUM_ROOT_KEYS (a self-consistency / anti-corruption
|
|
15
|
+
* gate — the manifest and root keys ship together, so this catches a bad regeneration, not a
|
|
16
|
+
* network adversary).
|
|
17
|
+
* - The node `pubkey`s are the directories' Ed25519 node keys. They are the trust anchor for
|
|
18
|
+
* step-6 directory identity auth (M7-MANIFEST-002): when the client connects to (or fails over
|
|
19
|
+
* to) a directory, the directory must sign the client's challenge with the matching node key,
|
|
20
|
+
* proving it is the real consortium node for that nodeId — defeating a MITM on the plaintext
|
|
21
|
+
* /bootstrap that would otherwise redirect the client to a rogue directory. THIS is the
|
|
22
|
+
* adversarial defense; it is enabled by default alongside the roster.
|
|
23
|
+
*
|
|
24
|
+
* nodeId MUST equal the directory's reported NODE_ID (`<cloud>-<region>`, e.g. `gcp-use1`); the step-6 verifier
|
|
25
|
+
* looks the node up by nodeId. pubkey MUST equal the node's own Ed25519 signing key, which the
|
|
26
|
+
* regeneration script below reads from GCP Secret Manager (`cello-<nodeId>-node-key`) rather than
|
|
27
|
+
* being transcribed. endpoint is the HTTP /bootstrap base, and MUST be the node's ADDRESS — see
|
|
28
|
+
* PRODUCTION_DIRECTORY_URL in directory-bootstrap.ts for why a hostname here disables step-6.
|
|
29
|
+
*
|
|
30
|
+
* Regeneration: on directory node-key or officer-key rotation, re-sign with
|
|
31
|
+
* `infra/scripts/sign-gcp-consortium-manifest.mjs` (in the trustless-cello repo) and update this
|
|
32
|
+
* constant + BUNDLED_CONSORTIUM_ROOT_KEYS. The officer signing key lives in GCP Secret Manager as
|
|
33
|
+
* `cello-consortium-officer-key-0`; only its PUBLIC key is embedded here.
|
|
34
|
+
*
|
|
35
|
+
* Crypto reference: RFC 8032 (Ed25519 threshold signatures, verified by verifyManifest).
|
|
36
|
+
*/
|
|
37
|
+
import type { ConsortiumManifestInput } from "@cello-protocol/crypto";
|
|
38
|
+
/** The signed consortium manifest (roster of sovereign directory nodes). */
|
|
39
|
+
export declare const BUNDLED_CONSORTIUM_MANIFEST: ConsortiumManifestInput;
|
|
40
|
+
/**
|
|
41
|
+
* Pinned consortium officer root public key(s). Officer 0's Ed25519 public key (hex). The client
|
|
42
|
+
* verifies BUNDLED_CONSORTIUM_MANIFEST's threshold signatures against this set. Public data.
|
|
43
|
+
*/
|
|
44
|
+
export declare const BUNDLED_CONSORTIUM_ROOT_KEYS: readonly string[];
|
|
45
|
+
/** Minimum number of distinct valid officer signatures required (dev: single officer, threshold 1). */
|
|
46
|
+
export declare const BUNDLED_CONSORTIUM_THRESHOLD = 1;
|
|
47
|
+
//# sourceMappingURL=bundled-consortium-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-consortium-manifest.d.ts","sourceRoot":"","sources":["../src/bundled-consortium-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,EAAE,uBAqEzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAEzD,CAAC;AAEF,uGAAuG;AACvG,eAAO,MAAM,4BAA4B,IAAI,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FINDING-4 — the bundled consortium roster (sovereign-node REDUNDANCY invariant).
|
|
3
|
+
*
|
|
4
|
+
* This is the signed list of the sovereign directory nodes that make up the CELLO consortium,
|
|
5
|
+
* COMPILED INTO the client. It is loaded by default (when the operator does not override it via
|
|
6
|
+
* CELLO_CONSORTIUM_MANIFEST) so that a cold-boot daemon already knows every directory — and can
|
|
7
|
+
* fail over to a reachable one — even when its configured/primary directory is unreachable. Without
|
|
8
|
+
* a bundled roster the failover resolver has nothing to route to (the exact FINDING-4 gap: the
|
|
9
|
+
* roster-aware dialer was correct but the roster was empty), so a single directory being down
|
|
10
|
+
* stranded the client at startup, violating the redundancy invariant.
|
|
11
|
+
*
|
|
12
|
+
* Trust model:
|
|
13
|
+
* - The manifest is threshold-signed by the consortium officer key(s). At load the client
|
|
14
|
+
* RE-VERIFIES it against BUNDLED_CONSORTIUM_ROOT_KEYS (a self-consistency / anti-corruption
|
|
15
|
+
* gate — the manifest and root keys ship together, so this catches a bad regeneration, not a
|
|
16
|
+
* network adversary).
|
|
17
|
+
* - The node `pubkey`s are the directories' Ed25519 node keys. They are the trust anchor for
|
|
18
|
+
* step-6 directory identity auth (M7-MANIFEST-002): when the client connects to (or fails over
|
|
19
|
+
* to) a directory, the directory must sign the client's challenge with the matching node key,
|
|
20
|
+
* proving it is the real consortium node for that nodeId — defeating a MITM on the plaintext
|
|
21
|
+
* /bootstrap that would otherwise redirect the client to a rogue directory. THIS is the
|
|
22
|
+
* adversarial defense; it is enabled by default alongside the roster.
|
|
23
|
+
*
|
|
24
|
+
* nodeId MUST equal the directory's reported NODE_ID (`<cloud>-<region>`, e.g. `gcp-use1`); the step-6 verifier
|
|
25
|
+
* looks the node up by nodeId. pubkey MUST equal the node's own Ed25519 signing key, which the
|
|
26
|
+
* regeneration script below reads from GCP Secret Manager (`cello-<nodeId>-node-key`) rather than
|
|
27
|
+
* being transcribed. endpoint is the HTTP /bootstrap base, and MUST be the node's ADDRESS — see
|
|
28
|
+
* PRODUCTION_DIRECTORY_URL in directory-bootstrap.ts for why a hostname here disables step-6.
|
|
29
|
+
*
|
|
30
|
+
* Regeneration: on directory node-key or officer-key rotation, re-sign with
|
|
31
|
+
* `infra/scripts/sign-gcp-consortium-manifest.mjs` (in the trustless-cello repo) and update this
|
|
32
|
+
* constant + BUNDLED_CONSORTIUM_ROOT_KEYS. The officer signing key lives in GCP Secret Manager as
|
|
33
|
+
* `cello-consortium-officer-key-0`; only its PUBLIC key is embedded here.
|
|
34
|
+
*
|
|
35
|
+
* Crypto reference: RFC 8032 (Ed25519 threshold signatures, verified by verifyManifest).
|
|
36
|
+
*/
|
|
37
|
+
/** The signed consortium manifest (roster of sovereign directory nodes). */
|
|
38
|
+
export const BUNDLED_CONSORTIUM_MANIFEST = {
|
|
39
|
+
// ── v3, the TLS cutover (2026-09-10) ────────────────────────────────────────────────────────
|
|
40
|
+
// Every endpoint moved from `http://<raw ip>:9090` to `https://directory-<region>.cello.mygentic.ai`,
|
|
41
|
+
// terminated by that region's own load balancer, and every multiaddr from `/ip4/…/tcp/8080/ws` to
|
|
42
|
+
// `/dns4/…/tcp/443/tls/ws`. Proven against the running fleet before shipping: a real libp2p node
|
|
43
|
+
// dialled all three balancers over WSS and got Noise + yamux with the expected peer id.
|
|
44
|
+
//
|
|
45
|
+
// 🔴 THIS ROSTER AND THE ONE THE NODES SERVE MUST CARRY THE SAME ENDPOINTS. The daemon builds its
|
|
46
|
+
// directory-identity challenge verifier ONLY when the resolved directory URL matches one of the
|
|
47
|
+
// endpoints BELOW. If the fleet serves a name this file does not list, step 6 does not fail — it
|
|
48
|
+
// is skipped, silently, on every connect and reconnect, and step 6 is what turns a /bootstrap
|
|
49
|
+
// MITM into a refused connection rather than a successful impersonation.
|
|
50
|
+
//
|
|
51
|
+
// `version` is a MONOTONICITY GATE, not a schema number: the daemon persists the highest version
|
|
52
|
+
// it has seen and rejects anything lower as a rollback. So a daemon carrying this v3 will refuse
|
|
53
|
+
// a fleet still serving v2 — which is why the two move together, and why this must only ever
|
|
54
|
+
// increase.
|
|
55
|
+
//
|
|
56
|
+
// Generated by trustless-cello/infra/scripts/sign-gcp-consortium-manifest.mjs. Do NOT hand-edit
|
|
57
|
+
// a field: the signature covers every one of them and an edited copy verifies against nothing.
|
|
58
|
+
version: 3,
|
|
59
|
+
not_before: "2026-01-01T00:00:00Z",
|
|
60
|
+
expires: "2030-01-01T00:00:00Z",
|
|
61
|
+
nodes: [
|
|
62
|
+
{
|
|
63
|
+
nodeId: "gcp-use1",
|
|
64
|
+
pubkey: "7969e22a7d95293ae343cb2667c2a4d7127aa8748478582fa637674c30e0113c",
|
|
65
|
+
region: "use1",
|
|
66
|
+
provider: "gcp",
|
|
67
|
+
endpoint: "https://directory-use1.cello.mygentic.ai",
|
|
68
|
+
peerId: "12D3KooWMH58hm8xpuwgwaNSvnvXBuc126jfuUMVbrGNcU2MeEAX",
|
|
69
|
+
multiaddr: "/dns4/directory-use1.cello.mygentic.ai/tcp/443/tls/ws",
|
|
70
|
+
role: "validator",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
nodeId: "gcp-usc1",
|
|
74
|
+
pubkey: "ef961384100bb087f36b68e3a270acb8f22fdf62c4cd5e517e423afb7f399002",
|
|
75
|
+
region: "usc1",
|
|
76
|
+
provider: "gcp",
|
|
77
|
+
endpoint: "https://directory-usc1.cello.mygentic.ai",
|
|
78
|
+
peerId: "12D3KooWExQLMbvaioVqQCPkc1ZZgJ5kdoePymtMrg46ugMBs5zi",
|
|
79
|
+
multiaddr: "/dns4/directory-usc1.cello.mygentic.ai/tcp/443/tls/ws",
|
|
80
|
+
role: "validator",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
nodeId: "gcp-euw1",
|
|
84
|
+
pubkey: "9cb77b68a98f49056fef232f4d56eeb9b66b1a6646fe06b966ff570a82ca6c14",
|
|
85
|
+
region: "euw1",
|
|
86
|
+
provider: "gcp",
|
|
87
|
+
endpoint: "https://directory-euw1.cello.mygentic.ai",
|
|
88
|
+
peerId: "12D3KooWP52VSVrakyRdPyt23kAuhgp3FV6tiVRByfdyVvHAaEeJ",
|
|
89
|
+
multiaddr: "/dns4/directory-euw1.cello.mygentic.ai/tcp/443/tls/ws",
|
|
90
|
+
role: "validator",
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
// M10B / DOD-END-INGRESS-1 — the PORTAL INTAKE KEY. A submitting daemon seals its trust-signal
|
|
94
|
+
// submission to this key so the DIRECTORY cannot read it; without it `cello_attestations_issue`
|
|
95
|
+
// refuses with `intake_key_absent` rather than sending in the clear. It has to be in the BUNDLED
|
|
96
|
+
// manifest and not only in the served one, because a cold-boot daemon that cannot yet reach a
|
|
97
|
+
// directory falls back to this constant — and "your first submission fails until you have polled"
|
|
98
|
+
// is indistinguishable from the feature being broken.
|
|
99
|
+
intake_key: { key_id: "intake-dev-1", pubkey: "87da56bf2ca5ef75d62d88dfed1f667f9fa565ee0a5306aeeef50f5d7053b3d1" },
|
|
100
|
+
signatures: [
|
|
101
|
+
{
|
|
102
|
+
officerIndex: 0,
|
|
103
|
+
signature: "537de3ac39d6a5f261d576c8938e788b46d587b282be5e0166c5d7fad6dac55efed003277c5625d1b5930c328d0eb41044e8e7de7ea31a1021b22e7133317f09",
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Pinned consortium officer root public key(s). Officer 0's Ed25519 public key (hex). The client
|
|
109
|
+
* verifies BUNDLED_CONSORTIUM_MANIFEST's threshold signatures against this set. Public data.
|
|
110
|
+
*/
|
|
111
|
+
export const BUNDLED_CONSORTIUM_ROOT_KEYS = [
|
|
112
|
+
"e8300a2b9de7be6f6d629f778dc319715ad0010c0639f3a1564181d56d3eb104",
|
|
113
|
+
];
|
|
114
|
+
/** Minimum number of distinct valid officer signatures required (dev: single officer, threshold 1). */
|
|
115
|
+
export const BUNDLED_CONSORTIUM_THRESHOLD = 1;
|
|
116
|
+
//# sourceMappingURL=bundled-consortium-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundled-consortium-manifest.js","sourceRoot":"","sources":["../src/bundled-consortium-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAIH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,2BAA2B,GAA4B;IAClE,+FAA+F;IAC/F,sGAAsG;IACtG,kGAAkG;IAClG,iGAAiG;IACjG,wFAAwF;IACxF,EAAE;IACF,kGAAkG;IAClG,gGAAgG;IAChG,iGAAiG;IACjG,8FAA8F;IAC9F,yEAAyE;IACzE,EAAE;IACF,iGAAiG;IACjG,iGAAiG;IACjG,6FAA6F;IAC7F,YAAY;IACZ,EAAE;IACF,gGAAgG;IAChG,+FAA+F;IAC/F,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,sBAAsB;IAClC,OAAO,EAAE,sBAAsB;IAC/B,KAAK,EAAE;QACL;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,kEAAkE;YAC1E,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,0CAA0C;YACpD,MAAM,EAAE,sDAAsD;YAC9D,SAAS,EAAE,uDAAuD;YAClE,IAAI,EAAE,WAAW;SAClB;QACD;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,kEAAkE;YAC1E,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,0CAA0C;YACpD,MAAM,EAAE,sDAAsD;YAC9D,SAAS,EAAE,uDAAuD;YAClE,IAAI,EAAE,WAAW;SAClB;QACD;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,kEAAkE;YAC1E,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,0CAA0C;YACpD,MAAM,EAAE,sDAAsD;YAC9D,SAAS,EAAE,uDAAuD;YAClE,IAAI,EAAE,WAAW;SAClB;KACF;IACD,+FAA+F;IAC/F,gGAAgG;IAChG,iGAAiG;IACjG,8FAA8F;IAC9F,kGAAkG;IAClG,sDAAsD;IACtD,UAAU,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,kEAAkE,EAAE;IAClH,UAAU,EAAE;QACV;YACE,YAAY,EAAE,CAAC;YACf,SAAS,EACP,kIAAkI;SACrI;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,kEAAkE;CACnE,CAAC;AAEF,uGAAuG;AACvG,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DaemonDatabase } from "./sqlcipher-db.js";
|
|
2
|
+
import type { Logger } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Rewrite any non-canonically-encoded FROST blob in `agents` to the canonical encoding.
|
|
5
|
+
* Idempotent. Safe to run on every daemon start.
|
|
6
|
+
*/
|
|
7
|
+
export declare function migrateCborBlobsToCanonical(db: DaemonDatabase, logger: Logger): void;
|
|
8
|
+
//# sourceMappingURL=cbor-blob-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cbor-blob-migration.d.ts","sourceRoot":"","sources":["../src/cbor-blob-migration.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAwCzC;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA+DpF"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize the persisted FROST blobs to the canonical CBOR encoding.
|
|
3
|
+
*
|
|
4
|
+
* `frost_commitments` and `frost_verifying_shares` may hold an older encoding (cbor-x tag-64 or its
|
|
5
|
+
* record extension) alongside the canonical one; cbor-x decodes all three, which is why a mixed
|
|
6
|
+
* column reads correctly and can go unnoticed. This makes the column hold ONE encoding, so a reader
|
|
7
|
+
* that is not cbor-x can parse it.
|
|
8
|
+
*
|
|
9
|
+
* Decode, re-encode canonically, rewrite only if the bytes differ. Self-checking and idempotent: a
|
|
10
|
+
* canonical blob re-encodes to itself and is skipped, so there is no "have I run yet?" flag to get
|
|
11
|
+
* wrong and a second run is a no-op.
|
|
12
|
+
*
|
|
13
|
+
* FAILS SAFE, PER ROW. These blobs are FROST key material. A row that cannot be decoded is LEFT
|
|
14
|
+
* EXACTLY AS IT WAS and reported — never dropped, never half-written, never guessed at. Destroying a
|
|
15
|
+
* share makes the agent permanently unable to sign or seal, which is strictly worse than leaving it
|
|
16
|
+
* in an old encoding that still decodes. Nobody may lose a key to this migration.
|
|
17
|
+
*/
|
|
18
|
+
import { encodeCbor, decodeCbor } from "@cello-protocol/protocol-types";
|
|
19
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
20
|
+
/** The columns written by both producers. Both hold CBOR; both must hold the canonical encoding. */
|
|
21
|
+
const CBOR_BLOB_COLUMNS = ["frost_commitments", "frost_verifying_shares"];
|
|
22
|
+
function toBytes(v) {
|
|
23
|
+
if (v instanceof Uint8Array)
|
|
24
|
+
return v;
|
|
25
|
+
if (Buffer.isBuffer(v))
|
|
26
|
+
return new Uint8Array(v);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Do two decoded CBOR values carry the same DATA?
|
|
31
|
+
*
|
|
32
|
+
* Compares byte CONTENT, never container class. cbor-x decodes a byte string to a Node Buffer and a
|
|
33
|
+
* tag-64 to a Uint8Array — identical bytes, different wrapper. A class-sensitive compare
|
|
34
|
+
* (`JSON.stringify`, `toEqual`) calls those unequal and refuses every genuine migration.
|
|
35
|
+
*/
|
|
36
|
+
function sameDecodedValue(a, b) {
|
|
37
|
+
const ab = toBytes(a);
|
|
38
|
+
const bb = toBytes(b);
|
|
39
|
+
if (ab || bb) {
|
|
40
|
+
return ab !== null && bb !== null && Buffer.from(ab).equals(Buffer.from(bb));
|
|
41
|
+
}
|
|
42
|
+
if (Array.isArray(a) || Array.isArray(b)) {
|
|
43
|
+
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length)
|
|
44
|
+
return false;
|
|
45
|
+
return a.every((v, i) => sameDecodedValue(v, b[i]));
|
|
46
|
+
}
|
|
47
|
+
if (a && b && typeof a === "object" && typeof b === "object") {
|
|
48
|
+
const ao = a;
|
|
49
|
+
const bo = b;
|
|
50
|
+
const ak = Object.keys(ao).sort();
|
|
51
|
+
const bk = Object.keys(bo).sort();
|
|
52
|
+
if (ak.length !== bk.length || ak.some((k, i) => k !== bk[i]))
|
|
53
|
+
return false;
|
|
54
|
+
return ak.every((k) => sameDecodedValue(ao[k], bo[k]));
|
|
55
|
+
}
|
|
56
|
+
return Object.is(a, b);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Rewrite any non-canonically-encoded FROST blob in `agents` to the canonical encoding.
|
|
60
|
+
* Idempotent. Safe to run on every daemon start.
|
|
61
|
+
*/
|
|
62
|
+
export function migrateCborBlobsToCanonical(db, logger) {
|
|
63
|
+
// The table may predate these columns (fresh DB, or an install that never registered).
|
|
64
|
+
const columns = new Set(db.prepare("PRAGMA table_info(agents)").all().map((c) => c.name));
|
|
65
|
+
const present = CBOR_BLOB_COLUMNS.filter((c) => columns.has(c));
|
|
66
|
+
if (present.length === 0)
|
|
67
|
+
return;
|
|
68
|
+
const rows = db
|
|
69
|
+
.prepare(`SELECT agent_id, ${present.join(", ")} FROM agents`)
|
|
70
|
+
.all();
|
|
71
|
+
let rewritten = 0;
|
|
72
|
+
let skipped = 0;
|
|
73
|
+
for (const row of rows) {
|
|
74
|
+
const agentId = String(row["agent_id"]);
|
|
75
|
+
for (const column of present) {
|
|
76
|
+
const stored = toBytes(row[column]);
|
|
77
|
+
if (!stored || stored.length === 0)
|
|
78
|
+
continue; // never registered / no share — nothing to do
|
|
79
|
+
let canonical;
|
|
80
|
+
try {
|
|
81
|
+
canonical = encodeCbor(decodeCbor(stored));
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
// Undecodable key material — leave it alone.
|
|
85
|
+
skipped++;
|
|
86
|
+
logger.warn("daemon.cbor.migration.undecodable", {
|
|
87
|
+
agentId,
|
|
88
|
+
column,
|
|
89
|
+
bytes: stored.length,
|
|
90
|
+
error: extractErrorMessage(err),
|
|
91
|
+
});
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (Buffer.from(canonical).equals(Buffer.from(stored)))
|
|
95
|
+
continue; // already canonical
|
|
96
|
+
// Verify BEFORE writing: re-encoding must preserve the VALUE, not merely produce bytes. If it
|
|
97
|
+
// ever altered the decoded content, refuse rather than persist a corrupted share.
|
|
98
|
+
if (!sameDecodedValue(decodeCbor(canonical), decodeCbor(stored))) {
|
|
99
|
+
skipped++;
|
|
100
|
+
logger.error("daemon.cbor.migration.value_changed", {
|
|
101
|
+
agentId,
|
|
102
|
+
column,
|
|
103
|
+
guidance: "re-encoding altered the decoded value; the blob was NOT rewritten",
|
|
104
|
+
});
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
db.prepare(`UPDATE agents SET ${column} = ? WHERE agent_id = ?`).run(Buffer.from(canonical), agentId);
|
|
108
|
+
rewritten++;
|
|
109
|
+
logger.info("daemon.cbor.migration.rewritten", { agentId, column, bytes: canonical.length });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (rewritten > 0 || skipped > 0) {
|
|
113
|
+
logger.info("daemon.cbor.migration.complete", { rewritten, skipped, rows: rows.length });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=cbor-blob-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cbor-blob-migration.js","sourceRoot":"","sources":["../src/cbor-blob-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M7-MANIFEST-002 — Challenge verifier re-exports.
|
|
3
|
+
*
|
|
4
|
+
* The production verifier (ManifestDirectoryChallengeVerifier) and test stub
|
|
5
|
+
* (TestDirectoryChallengeVerifier) are both defined in @cello-protocol/transport
|
|
6
|
+
* to avoid creating a circular dependency between daemon and transport.
|
|
7
|
+
*
|
|
8
|
+
* This module re-exports them for consumers that import from the daemon package.
|
|
9
|
+
*/
|
|
10
|
+
export { ManifestDirectoryChallengeVerifier, TestDirectoryChallengeVerifier, } from "@cello-protocol/transport";
|
|
11
|
+
export type { IDirectoryChallengeVerifier } from "@cello-protocol/transport";
|
|
12
|
+
//# sourceMappingURL=challenge-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challenge-verifier.d.ts","sourceRoot":"","sources":["../src/challenge-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M7-MANIFEST-002 — Challenge verifier re-exports.
|
|
3
|
+
*
|
|
4
|
+
* The production verifier (ManifestDirectoryChallengeVerifier) and test stub
|
|
5
|
+
* (TestDirectoryChallengeVerifier) are both defined in @cello-protocol/transport
|
|
6
|
+
* to avoid creating a circular dependency between daemon and transport.
|
|
7
|
+
*
|
|
8
|
+
* This module re-exports them for consumers that import from the daemon package.
|
|
9
|
+
*/
|
|
10
|
+
export { ManifestDirectoryChallengeVerifier, TestDirectoryChallengeVerifier, } from "@cello-protocol/transport";
|
|
11
|
+
//# sourceMappingURL=challenge-verifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challenge-verifier.js","sourceRoot":"","sources":["../src/challenge-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChannelLogStore — M16 016-CLIENTREWORK.
|
|
3
|
+
*
|
|
4
|
+
* A broadcast channel publishes a signed post once and it is delivered many times. The publisher
|
|
5
|
+
* keeps ONE append-only log of everything it published, not one per subscriber, and that log is the
|
|
6
|
+
* durable copy: when a relay loses content, it is refilled from here. Beside each post sit the
|
|
7
|
+
* relays' signed receipts — the publisher's proof of what it sent and when each relay took it. So:
|
|
8
|
+
*
|
|
9
|
+
* - ROWS ARE IMMUTABLE. Nothing rewrites a published post. The only deletion is `pruneThrough`,
|
|
10
|
+
* and it only ever removes from the OLDEST end, because a hole in the middle is indistinguishable
|
|
11
|
+
* to a subscriber from a post it has not received yet.
|
|
12
|
+
* - THE STORE NEVER DECIDES A POSITION. The number is inside both signatures, so `nextPosition`
|
|
13
|
+
* reports what the next append must carry, the publisher signs that, and `append` checks it. A
|
|
14
|
+
* wrong position throws its own code; nothing is auto-corrected.
|
|
15
|
+
* - A RECEIPT IS VERIFIED BEFORE IT IS STORED, against the post it names as this log holds it. An
|
|
16
|
+
* unverified receipt is worthless as proof, and storing one would only be discovered at the
|
|
17
|
+
* moment it was needed.
|
|
18
|
+
*
|
|
19
|
+
* Keyed on the channel's pubkey — the daemon's own channel identity — never on an agent name.
|
|
20
|
+
*/
|
|
21
|
+
import type { DaemonDatabase } from "./sqlcipher-db.js";
|
|
22
|
+
import type { Logger } from "./types.js";
|
|
23
|
+
import type { BroadcastArtifact, RelayPostReceipt } from "@cello-protocol/protocol-types";
|
|
24
|
+
export declare const CHANNEL_LOG_CREATE_SQL = "\n -- `post_cbor` is AUTHORITATIVE: every read path decodes it. `published_at` and `title` are lifted\n -- out of the signed bytes so a digest or an index query does not have to decode every row, and a\n -- reader that needs certainty must still go through `post_cbor`.\n CREATE TABLE IF NOT EXISTS channel_log (\n channel_pubkey TEXT NOT NULL,\n seq INTEGER NOT NULL,\n published_at INTEGER NOT NULL,\n title TEXT NOT NULL,\n post_cbor BLOB NOT NULL,\n PRIMARY KEY (channel_pubkey, seq)\n );\n CREATE TABLE IF NOT EXISTS channel_log_receipts (\n channel_pubkey TEXT NOT NULL,\n seq INTEGER NOT NULL,\n relay_pubkey TEXT NOT NULL,\n received_at INTEGER NOT NULL,\n receipt_cbor BLOB NOT NULL,\n PRIMARY KEY (channel_pubkey, seq, relay_pubkey)\n );\n CREATE TABLE IF NOT EXISTS channel_state (\n channel_pubkey TEXT NOT NULL PRIMARY KEY,\n next_seq INTEGER NOT NULL,\n pruned_through INTEGER NOT NULL DEFAULT 0\n );\n";
|
|
25
|
+
export type ChannelLogErrorCode = "channel_unknown" | "seq_not_next" | "position_taken" | "post_invalid" | "receipt_invalid" | "post_pruned" | "prune_regression" | "log_row_corrupt";
|
|
26
|
+
export declare class ChannelLogError extends Error {
|
|
27
|
+
readonly code: ChannelLogErrorCode;
|
|
28
|
+
constructor(code: ChannelLogErrorCode, message: string);
|
|
29
|
+
}
|
|
30
|
+
export interface ChannelHead {
|
|
31
|
+
/** Oldest post still held, or null when the log holds none. */
|
|
32
|
+
first_seq: number | null;
|
|
33
|
+
/** Newest post held, or null when the log holds none. */
|
|
34
|
+
last_seq: number | null;
|
|
35
|
+
/** Everything at or below this number was pruned. NOT the same as `first_seq`. */
|
|
36
|
+
pruned_through: number;
|
|
37
|
+
}
|
|
38
|
+
export declare class ChannelLogStore {
|
|
39
|
+
#private;
|
|
40
|
+
constructor(db: DaemonDatabase, logger: Logger);
|
|
41
|
+
/** Idempotent: creates the state row {next_seq 1, pruned_through 0}. */
|
|
42
|
+
ensureChannel(channelPubkeyHex: string): void;
|
|
43
|
+
/** What the NEXT append will be assigned — the publisher signs with this before appending. */
|
|
44
|
+
nextPosition(channelPubkeyHex: string): {
|
|
45
|
+
seq: number;
|
|
46
|
+
};
|
|
47
|
+
/** Append an already-signed post. Throws ChannelLogError — never silently skips. */
|
|
48
|
+
append(channelPubkeyHex: string, post: BroadcastArtifact, correlationId?: string): {
|
|
49
|
+
seq: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Store one relay's receipt for a post this log holds. VERIFIES FIRST, against the stored post —
|
|
53
|
+
* not against whatever the caller passed alongside it — so a receipt for a different post at the
|
|
54
|
+
* same number is refused rather than filed as proof.
|
|
55
|
+
*
|
|
56
|
+
* WHAT THIS DOES NOT CHECK: that `relay_pubkey` is one of the relays this channel actually
|
|
57
|
+
* publishes to. Any keypair can sign a well-formed receipt for a post it has seen. The relay set
|
|
58
|
+
* lives with the channel's info record, so that check belongs to the publisher — order 018 —
|
|
59
|
+
* which knows which two relays it deposited on; here it would have nothing to compare against.
|
|
60
|
+
*/
|
|
61
|
+
recordReceipt(channelPubkeyHex: string, receipt: RelayPostReceipt, correlationId?: string): void;
|
|
62
|
+
/** Every relay's receipt for one post, in relay order. Empty when none were stored. */
|
|
63
|
+
receiptsFor(channelPubkeyHex: string, seq: number): RelayPostReceipt[];
|
|
64
|
+
/** Range read, for refilling a relay and for verification. Inclusive, seq order. */
|
|
65
|
+
readRange(channelPubkeyHex: string, fromSeq: number, toSeq: number): BroadcastArtifact[];
|
|
66
|
+
/**
|
|
67
|
+
* Delete every post at or below `throughSeq`, with its receipts. The OLDEST END ONLY: a prune
|
|
68
|
+
* below what is already pruned is refused rather than silently ignored, because a caller that
|
|
69
|
+
* believes it pruned something it did not would keep re-sending it.
|
|
70
|
+
*/
|
|
71
|
+
pruneThrough(channelPubkeyHex: string, throughSeq: number): {
|
|
72
|
+
pruned: number;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* What this log holds. `pruned_through` is NOT `first_seq`: posts can also be absent because the
|
|
76
|
+
* log is empty, and a caller that conflated them would report gaps that are not gaps.
|
|
77
|
+
*/
|
|
78
|
+
head(channelPubkeyHex: string): ChannelHead;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=channel-log-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-log-store.d.ts","sourceRoot":"","sources":["../src/channel-log-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAUzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE1F,eAAO,MAAM,sBAAsB,ijCAyBlC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAGtE,iBAAiB,GAGjB,aAAa,GAEb,kBAAkB,GAElB,iBAAiB,CAAC;AAEtB,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;gBACvB,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM;CAKvD;AAOD,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,qBAAa,eAAe;;gBAId,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM;IAM9C,wEAAwE;IACxE,aAAa,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAM7C,8FAA8F;IAC9F,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IAIvD,oFAAoF;IACpF,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;IA8DlG;;;;;;;;;OASG;IACH,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IA6DhG,uFAAuF;IACvF,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE;IActE,oFAAoF;IACpF,SAAS,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAQxF;;;;OAIG;IACH,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAoC9E;;;OAGG;IACH,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,WAAW;CAyD5C"}
|