@cello-protocol/daemon 0.0.227 → 0.0.229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +454 -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,429 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC server for the CELLO daemon.
|
|
3
|
+
*
|
|
4
|
+
* Pseudocode:
|
|
5
|
+
* 1. createIpcServer(config, handlers):
|
|
6
|
+
* a. Create net.Server bound to Unix domain socket
|
|
7
|
+
* b. Set socket permissions to 0o600 (SI-001: owner-only access)
|
|
8
|
+
* c. On connection:
|
|
9
|
+
* - Check connectionCount < maxConnections (16)
|
|
10
|
+
* - If limit reached, send error frame and close
|
|
11
|
+
* - Otherwise, increment counter, assign connectionId
|
|
12
|
+
* - Log daemon.ipc.connected
|
|
13
|
+
* - Set up newline-delimited JSON parser on the socket
|
|
14
|
+
* - For each parsed request, dispatch to handler map
|
|
15
|
+
* - On close, decrement counter, log daemon.ipc.disconnected
|
|
16
|
+
* d. Return server handle with start() and stop() methods
|
|
17
|
+
*
|
|
18
|
+
* 2. IPC framing: JSON-newline-delimited
|
|
19
|
+
* - Each message is a single JSON object followed by \n
|
|
20
|
+
* - Requests: {id: string, method: string, params?: object}
|
|
21
|
+
* - Responses: {id: string, result: any} or {id: string, error: {code, message, guidance}}
|
|
22
|
+
*
|
|
23
|
+
* 3. Graceful shutdown:
|
|
24
|
+
* a. Stop accepting new connections
|
|
25
|
+
* b. Wait for in-flight requests to complete (with timeout)
|
|
26
|
+
* c. Send shutdown frame to all connected clients
|
|
27
|
+
* d. Close all connections
|
|
28
|
+
* e. Unlink socket file
|
|
29
|
+
*/
|
|
30
|
+
import { createServer } from "node:net";
|
|
31
|
+
import { chmod, stat, unlink } from "node:fs/promises";
|
|
32
|
+
import { randomUUID } from "node:crypto";
|
|
33
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
34
|
+
import { DOCUMENTS_FLAG_ENV } from "./document-flag.js";
|
|
35
|
+
import { isDocumentVerbName } from "./vocabulary.js";
|
|
36
|
+
export function createIpcServer(config,
|
|
37
|
+
/**
|
|
38
|
+
* Looked up per request, never enumerated. Typed as the lookup alone so the daemon can pass a
|
|
39
|
+
* LATE-BINDING view over its handler map rather than a snapshot — a snapshot made registration
|
|
40
|
+
* order load-bearing, and anything registered after the copy answered `method_not_found`.
|
|
41
|
+
*/
|
|
42
|
+
handlers) {
|
|
43
|
+
const { socketPath, maxConnections, logger } = config;
|
|
44
|
+
let server = null;
|
|
45
|
+
const connections = new Map();
|
|
46
|
+
let stopping = false;
|
|
47
|
+
// DOD-DAEMON-CLEANUP-1 (AC2): the identity — not the path — of the socket THIS server created.
|
|
48
|
+
// dev+ino is the only thing that survives another daemon rebinding the same path.
|
|
49
|
+
let createdSocket = null;
|
|
50
|
+
/**
|
|
51
|
+
* What is sitting at socketPath right now?
|
|
52
|
+
* "ours" — the socket this server created; we may remove it.
|
|
53
|
+
* "gone" — nothing there; nothing to do.
|
|
54
|
+
* "foreign" — a DIFFERENT socket. Another daemon rebound the path. Hands off.
|
|
55
|
+
*
|
|
56
|
+
* The distinction is by inode, not by path. A path tells you a file exists; only the inode tells
|
|
57
|
+
* you it is the same file you made.
|
|
58
|
+
*/
|
|
59
|
+
async function socketOwnership() {
|
|
60
|
+
let current;
|
|
61
|
+
try {
|
|
62
|
+
current = await stat(socketPath);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Nothing at the path (ENOENT is the only realistic case) — there is nothing to own.
|
|
66
|
+
return "gone";
|
|
67
|
+
}
|
|
68
|
+
if (createdSocket === null) {
|
|
69
|
+
// Unreachable: stop() returns early unless the server is listening, and a listening server has
|
|
70
|
+
// been through start(), which sets this or throws. Say so rather than inventing an answer —
|
|
71
|
+
// guessing here is what the whole unit is about.
|
|
72
|
+
throw new Error("ipc server: socket identity unknown — stop() ran without a completed start()");
|
|
73
|
+
}
|
|
74
|
+
return current.dev === createdSocket.dev && current.ino === createdSocket.ino ? "ours" : "foreign";
|
|
75
|
+
}
|
|
76
|
+
let disconnectHandler = null;
|
|
77
|
+
function handleConnection(socket) {
|
|
78
|
+
if (stopping) {
|
|
79
|
+
socket.destroy();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (connections.size >= maxConnections) {
|
|
83
|
+
logger.warn("daemon.ipc.connection.limit.reached", {
|
|
84
|
+
currentCount: connections.size,
|
|
85
|
+
maxCount: maxConnections,
|
|
86
|
+
});
|
|
87
|
+
// Destroy immediately — the client has no pending requests to correlate
|
|
88
|
+
// an error response against. Client's connectToDaemon() will reject with
|
|
89
|
+
// a socket error, which is the correct signal.
|
|
90
|
+
socket.destroy();
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const connectionId = randomUUID();
|
|
94
|
+
const conn = { id: connectionId, socket, inFlightCount: 0, shutdownReason: null };
|
|
95
|
+
connections.set(connectionId, conn);
|
|
96
|
+
logger.info("daemon.ipc.accepted", { connectionId });
|
|
97
|
+
// CELLO-M7-MSG-001: the IPC buffer cap MUST exceed the application content cap
|
|
98
|
+
// (MAX_CONTENT_BYTES = 1 MB) plus the JSON request envelope, or a max-size
|
|
99
|
+
// cello_send message would trip this overflow and the connection would be killed
|
|
100
|
+
// BEFORE cello_send's content_too_large check could run — turning a clean,
|
|
101
|
+
// recoverable "content_too_large" into a fatal connection drop, and making even a
|
|
102
|
+
// VALID 1 MB message unsendable. 4 MB matches the it-length-prefixed transport
|
|
103
|
+
// default (IT_LENGTH_PREFIX_DEFAULT_MAX) so the IPC, app-cap, and transport layers
|
|
104
|
+
// are coherent: content up to the 1 MB cap always traverses IPC, oversize content
|
|
105
|
+
// reaches cello_send and is rejected with content_too_large, and only a payload
|
|
106
|
+
// beyond the transport frame is a hard stop. Must stay in sync with the matching
|
|
107
|
+
// constant in adapter-claude-code/src/ipc-proxy.ts.
|
|
108
|
+
const MAX_BUFFER_SIZE = 4 * 1024 * 1024; // 4MB per connection (> 1MB content cap + envelope)
|
|
109
|
+
let buffer = "";
|
|
110
|
+
socket.on("data", (chunk) => {
|
|
111
|
+
buffer += chunk.toString("utf-8");
|
|
112
|
+
if (buffer.length > MAX_BUFFER_SIZE) {
|
|
113
|
+
logger.warn("daemon.ipc.buffer.overflow", { connectionId, bufferSize: buffer.length });
|
|
114
|
+
buffer = "";
|
|
115
|
+
socket.removeAllListeners("data");
|
|
116
|
+
socket.destroy();
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
let newlineIdx;
|
|
120
|
+
while ((newlineIdx = buffer.indexOf("\n")) !== -1) {
|
|
121
|
+
const line = buffer.slice(0, newlineIdx);
|
|
122
|
+
buffer = buffer.slice(newlineIdx + 1);
|
|
123
|
+
if (line.trim().length === 0)
|
|
124
|
+
continue;
|
|
125
|
+
handleMessage(conn, line);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
socket.on("close", () => {
|
|
129
|
+
connections.delete(connectionId);
|
|
130
|
+
const reason = conn.shutdownReason || "client_closed";
|
|
131
|
+
/**
|
|
132
|
+
* ONE LINE, and the handler contributes to it — review F8.
|
|
133
|
+
*
|
|
134
|
+
* `DOD-M15-IPCVISIBLE-1` added a SECOND `daemon.ipc.disconnected` from the daemon's own
|
|
135
|
+
* handler, carrying clientType and the attended agent. Two lines under one event name, with
|
|
136
|
+
* disjoint fields and neither carrying the whole picture — and a naive count doubled, so a
|
|
137
|
+
* shutdown with five clients emitted ten. For a unit whose entire subject is that the log is
|
|
138
|
+
* readable, that is the wrong shape.
|
|
139
|
+
*
|
|
140
|
+
* The handler now RETURNS its context and it is merged here. `reason` lives on this side
|
|
141
|
+
* because only the socket knows it.
|
|
142
|
+
*/
|
|
143
|
+
const extra = disconnectHandler ? disconnectHandler(connectionId) : undefined;
|
|
144
|
+
logger.info("daemon.ipc.disconnected", { connectionId, reason, ...(extra ?? {}) });
|
|
145
|
+
});
|
|
146
|
+
// Set shutdownReason so the 'close' handler (which always fires after 'error') logs it.
|
|
147
|
+
// Do NOT call disconnectHandler or log here — 'close' fires immediately after 'error'.
|
|
148
|
+
socket.on("error", (err) => {
|
|
149
|
+
conn.shutdownReason = err.message;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function handleMessage(conn, line) {
|
|
153
|
+
let request;
|
|
154
|
+
try {
|
|
155
|
+
request = JSON.parse(line);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
// Cannot recover the request ID from unparseable input.
|
|
159
|
+
// Close the connection — client's pending promises will all reject
|
|
160
|
+
// with "Connection closed", which correctly propagates the failure.
|
|
161
|
+
logger.warn("daemon.ipc.parse.error", { connectionId: conn.id });
|
|
162
|
+
conn.socket.destroy();
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (!request.id || !request.method) {
|
|
166
|
+
// If id is missing/falsy, we can't correlate an error response.
|
|
167
|
+
// Close the connection rather than sending an unmatchable frame.
|
|
168
|
+
logger.warn("daemon.ipc.invalid.request", { connectionId: conn.id, hasId: !!request.id, hasMethod: !!request.method });
|
|
169
|
+
conn.socket.destroy();
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const handler = handlers.get(request.method);
|
|
173
|
+
if (!handler) {
|
|
174
|
+
/**
|
|
175
|
+
* ⚠️ A GATED DOCUMENT VERB IS NOT A VERSION SKEW, AND THE DEFAULT GUIDANCE SAYS IT IS.
|
|
176
|
+
*
|
|
177
|
+
* 074-DOCSFLAG gates the document layer off by default, so the fourteen `cello_doc_*` verbs are
|
|
178
|
+
* genuinely absent from this map — which is the point. But the guidance below names the wrong
|
|
179
|
+
* subsystem: it sends the operator to check that the shim and the daemon are the same version,
|
|
180
|
+
* for a flag that is off by design.
|
|
181
|
+
*
|
|
182
|
+
* **This is reachable in ordinary operation, not a corner.** The shim and the daemon are
|
|
183
|
+
* separate processes with separate environments — the MCP client spawns one, `cello login`
|
|
184
|
+
* starts the other — so a shim whose environment HAS the flag advertises fourteen tools against
|
|
185
|
+
* a daemon whose environment does not. An operator running an older `@cello-protocol/connect`
|
|
186
|
+
* reaches the same place. Either way the only statement of the truth is a
|
|
187
|
+
* `document.layer.gated` line written at boot, minutes or days earlier.
|
|
188
|
+
*
|
|
189
|
+
* So the cause is named where it surfaces, and nothing is registered to do it: this is the same
|
|
190
|
+
* `method_not_found` refusal with the right reason attached, so the enumerated verb count is
|
|
191
|
+
* unchanged and no gated verb becomes answerable.
|
|
192
|
+
*/
|
|
193
|
+
// Asked of the vocabulary rather than matched against a prefix here: a bare `cello_doc_`
|
|
194
|
+
// literal in this file is a dead tool name to the source audit, and it is right to say so.
|
|
195
|
+
//
|
|
196
|
+
// ⚠️ NO `!documentsEnabled()` HERE, AND IT USED TO BE — review found it adds nothing and can only
|
|
197
|
+
// be wrong. Reaching this branch means the handler map has no entry for the method; when documents
|
|
198
|
+
// are ON all fourteen are registered, so a MISS on a document verb can only mean the gate was
|
|
199
|
+
// closed when that map was built. Worse, the map is built once at boot while an env read is live,
|
|
200
|
+
// so a process whose environment gains the flag afterwards would answer a genuinely gated verb
|
|
201
|
+
// with the version-skew guidance again — the exact defect this branch exists to remove.
|
|
202
|
+
const gatedDocumentVerb = isDocumentVerbName(request.method);
|
|
203
|
+
const errorResp = {
|
|
204
|
+
id: request.id,
|
|
205
|
+
error: {
|
|
206
|
+
code: "method_not_found",
|
|
207
|
+
message: gatedDocumentVerb
|
|
208
|
+
? `Unknown method: ${request.method} — collaborative documents are disabled on this daemon`
|
|
209
|
+
: `Unknown method: ${request.method}`,
|
|
210
|
+
guidance: gatedDocumentVerb
|
|
211
|
+
? `Collaborative documents are turned OFF on this daemon, so '${request.method}' is not ` +
|
|
212
|
+
`registered. This is deliberate: the layer is paused while the base protocol is ` +
|
|
213
|
+
`finished. To turn it on, set ${DOCUMENTS_FLAG_ENV}=1 in the environment that starts ` +
|
|
214
|
+
`the daemon AND in the environment that starts cello-mcp, then restart both — the two ` +
|
|
215
|
+
`are separate processes and setting it in only one leaves the tool advertised and ` +
|
|
216
|
+
`unanswerable. Otherwise, stop using the document tools and say documents are disabled.`
|
|
217
|
+
: `Unknown IPC method '${request.method}'. Check that cello-mcp and the daemon are the same version. Run 'cello status' to verify the daemon is running.`,
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
if (gatedDocumentVerb) {
|
|
221
|
+
// The log keeps the forensic half: the response is the control, and both are required.
|
|
222
|
+
logger.warn("document.verb.refused", {
|
|
223
|
+
connectionId: conn.id,
|
|
224
|
+
method: request.method,
|
|
225
|
+
reason: "documents_disabled",
|
|
226
|
+
consequence: "a document tool was called against a daemon that does not register one",
|
|
227
|
+
remedy: `set ${DOCUMENTS_FLAG_ENV}=1 for BOTH the daemon and cello-mcp, or stop calling document verbs`,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
conn.socket.write(JSON.stringify(errorResp) + "\n");
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
conn.inFlightCount++;
|
|
234
|
+
Promise.resolve(handler(request.params, conn.id))
|
|
235
|
+
.then((result) => {
|
|
236
|
+
try {
|
|
237
|
+
// `DOD-M15-SELECTION-1`'s fallback notice used to be spread in HERE. It moved up into the
|
|
238
|
+
// daemon's `renderedHandlers` wrapper: this point is downstream of `renderForSurface`, so
|
|
239
|
+
// the notice's own guidance never got translated and a CLI operator was told to run
|
|
240
|
+
// `cello_use_agent`, which is not a command. It also sits outside the request's async
|
|
241
|
+
// context, which is what let a notice ride a concurrent call's response.
|
|
242
|
+
const resp = { id: request.id, result };
|
|
243
|
+
conn.socket.write(JSON.stringify(resp) + "\n");
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// Socket closed before response could be written
|
|
247
|
+
}
|
|
248
|
+
})
|
|
249
|
+
.catch((err) => {
|
|
250
|
+
// extractErrorMessage, NOT String(err): handlers reject with structured plain objects as
|
|
251
|
+
// well as Errors, and String() on a plain object yields the literal "[object Object]" —
|
|
252
|
+
// the cause is destroyed at the point of reporting. The SAME extracted text goes to the
|
|
253
|
+
// log, so a failure is diagnosable from the daemon log alone; the response's guidance
|
|
254
|
+
// sends the reader there and is only true because of this log line.
|
|
255
|
+
const message = extractErrorMessage(err);
|
|
256
|
+
// `reason` alongside the message, because extractErrorMessage returns only the prose and
|
|
257
|
+
// the transport's structured throws carry the discriminator separately — `no_connection`
|
|
258
|
+
// vs `connection_lost` is what decides whether re-dialling can help (transport node.ts).
|
|
259
|
+
// Dropping it here would leave the log the guidance points at unable to answer the first
|
|
260
|
+
// question its reader has.
|
|
261
|
+
const reason = err && typeof err === "object" && !(err instanceof Error)
|
|
262
|
+
&& typeof err.reason === "string"
|
|
263
|
+
? err.reason
|
|
264
|
+
: undefined;
|
|
265
|
+
logger.error("daemon.ipc.request.failed", {
|
|
266
|
+
connectionId: conn.id,
|
|
267
|
+
method: request.method,
|
|
268
|
+
requestId: request.id,
|
|
269
|
+
error: message,
|
|
270
|
+
...(reason !== undefined ? { reason } : {}),
|
|
271
|
+
});
|
|
272
|
+
try {
|
|
273
|
+
const resp = {
|
|
274
|
+
id: request.id,
|
|
275
|
+
error: {
|
|
276
|
+
code: "internal_error",
|
|
277
|
+
message,
|
|
278
|
+
guidance: "An unexpected error occurred. Check daemon logs for details.",
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
conn.socket.write(JSON.stringify(resp) + "\n");
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
// Socket closed before error could be written
|
|
285
|
+
}
|
|
286
|
+
})
|
|
287
|
+
.finally(() => {
|
|
288
|
+
conn.inFlightCount--;
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
async start() {
|
|
293
|
+
// Remove stale socket file if it exists
|
|
294
|
+
try {
|
|
295
|
+
await unlink(socketPath);
|
|
296
|
+
}
|
|
297
|
+
catch (err) {
|
|
298
|
+
if (err.code !== "ENOENT") {
|
|
299
|
+
throw err;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
server = createServer(handleConnection);
|
|
303
|
+
await new Promise((resolve, reject) => {
|
|
304
|
+
server.on("error", (err) => {
|
|
305
|
+
reject(err);
|
|
306
|
+
});
|
|
307
|
+
server.listen(socketPath, () => {
|
|
308
|
+
resolve();
|
|
309
|
+
});
|
|
310
|
+
});
|
|
311
|
+
// SI-001: Set socket permissions to owner-only
|
|
312
|
+
await chmod(socketPath, 0o600);
|
|
313
|
+
// DOD-DAEMON-CLEANUP-1 (AC2): remember WHICH socket we created, by identity — not merely that
|
|
314
|
+
// a file exists at this path. If another daemon later rebinds the path, its listen() replaces
|
|
315
|
+
// the file with a different inode, and stop() must be able to tell the two apart so it does not
|
|
316
|
+
// unlink a socket it does not own.
|
|
317
|
+
//
|
|
318
|
+
// No fallback here, deliberately. Swallowing this stat and leaving the identity unknown would
|
|
319
|
+
// make stop() treat our OWN socket as foreign: it would then never close the server, so the
|
|
320
|
+
// daemon would go on accepting IPC connections into a torn-down handler stack after stop()
|
|
321
|
+
// returned, and would leave its socket behind. A daemon that cannot identify the socket it just
|
|
322
|
+
// bound has no business coming up — and startup failure is already handled cleanly.
|
|
323
|
+
const created = await stat(socketPath);
|
|
324
|
+
createdSocket = { dev: created.dev, ino: created.ino };
|
|
325
|
+
},
|
|
326
|
+
async stop() {
|
|
327
|
+
stopping = true;
|
|
328
|
+
if (!server)
|
|
329
|
+
return;
|
|
330
|
+
// Wait for in-flight requests to complete (max 5 seconds)
|
|
331
|
+
const deadline = Date.now() + 5000;
|
|
332
|
+
let totalInFlight = 0;
|
|
333
|
+
while (Date.now() < deadline) {
|
|
334
|
+
totalInFlight = 0;
|
|
335
|
+
for (const conn of connections.values()) {
|
|
336
|
+
totalInFlight += conn.inFlightCount;
|
|
337
|
+
}
|
|
338
|
+
if (totalInFlight === 0)
|
|
339
|
+
break;
|
|
340
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
341
|
+
}
|
|
342
|
+
if (totalInFlight > 0) {
|
|
343
|
+
logger.warn("daemon.ipc.shutdown.timeout", { abandonedRequests: totalInFlight });
|
|
344
|
+
}
|
|
345
|
+
// Send shutdown notification to all connected clients.
|
|
346
|
+
// Uses IpcNotification shape — distinct from IpcResponse so clients
|
|
347
|
+
// never confuse it with a response to their request.
|
|
348
|
+
const shutdownNotification = { notification: "shutdown" };
|
|
349
|
+
const shutdownFrame = JSON.stringify(shutdownNotification) + "\n";
|
|
350
|
+
for (const conn of connections.values()) {
|
|
351
|
+
try {
|
|
352
|
+
conn.shutdownReason = "daemon_shutdown";
|
|
353
|
+
conn.socket.write(shutdownFrame);
|
|
354
|
+
conn.socket.end();
|
|
355
|
+
}
|
|
356
|
+
catch {
|
|
357
|
+
// Connection may already be closed
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// DOD-DAEMON-CLEANUP-1 (AC2): decide ownership BEFORE closing, because close() is itself a
|
|
361
|
+
// blind unlink.
|
|
362
|
+
//
|
|
363
|
+
// Node's server.close() removes the unix socket path it bound — by PATH, with no check on what
|
|
364
|
+
// is actually there now. If another daemon has since rebound this path, closing our server
|
|
365
|
+
// deletes THEIR socket, and they are left alive, serving, and unreachable. Guarding our own
|
|
366
|
+
// explicit unlink is not enough; the close would already have done the damage.
|
|
367
|
+
const ownership = await socketOwnership();
|
|
368
|
+
if (ownership === "foreign") {
|
|
369
|
+
// We must not close: that would unlink the healthy daemon's socket out from under it. Drop
|
|
370
|
+
// the handle from the event loop instead and let process exit reclaim the fd. The listening
|
|
371
|
+
// socket is already inert — its path was taken from it, so nothing can reach it. Leaking an
|
|
372
|
+
// unreachable fd for the last moments of a dying process is a trade we make happily against
|
|
373
|
+
// disarming a live peer.
|
|
374
|
+
logger.info("daemon.ipc.socket.not_ours", { socketPath, ourIno: createdSocket?.ino ?? null });
|
|
375
|
+
server.unref();
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
await new Promise((resolve) => {
|
|
379
|
+
server.close(() => resolve());
|
|
380
|
+
});
|
|
381
|
+
// close() normally unlinks the path for us. Re-check rather than assume: only remove the file
|
|
382
|
+
// if it is STILL the socket we created. Between the close and here, the singleton lock is
|
|
383
|
+
// still held (the daemon releases it after this returns), so no successor can have bound the
|
|
384
|
+
// path — but the cost of re-checking is one stat, and the cost of being wrong is the bug this
|
|
385
|
+
// whole unit exists to kill.
|
|
386
|
+
if (await socketOwnership() === "ours") {
|
|
387
|
+
try {
|
|
388
|
+
await unlink(socketPath);
|
|
389
|
+
}
|
|
390
|
+
catch (err) {
|
|
391
|
+
if (err.code !== "ENOENT") {
|
|
392
|
+
logger.warn("daemon.ipc.socket.unlink.failed", {
|
|
393
|
+
socketPath,
|
|
394
|
+
error: extractErrorMessage(err),
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
server = null;
|
|
401
|
+
},
|
|
402
|
+
getConnectionCount() {
|
|
403
|
+
return connections.size;
|
|
404
|
+
},
|
|
405
|
+
onDisconnect(handler) {
|
|
406
|
+
disconnectHandler = handler;
|
|
407
|
+
},
|
|
408
|
+
sendNotification(connectionId, notification) {
|
|
409
|
+
const conn = connections.get(connectionId);
|
|
410
|
+
if (!conn)
|
|
411
|
+
return false;
|
|
412
|
+
try {
|
|
413
|
+
const frame = JSON.stringify(notification) + "\n";
|
|
414
|
+
return conn.socket.write(frame);
|
|
415
|
+
}
|
|
416
|
+
catch (err) {
|
|
417
|
+
logger.debug("daemon.ipc.notification.write.failed", {
|
|
418
|
+
connectionId,
|
|
419
|
+
error: extractErrorMessage(err),
|
|
420
|
+
});
|
|
421
|
+
return false;
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
getConnectionIds() {
|
|
425
|
+
return Array.from(connections.keys());
|
|
426
|
+
},
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=ipc-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-server.js","sourceRoot":"","sources":["../src/ipc-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handler map as the IPC server sees it — every response rendered for the surface that asked.
|
|
3
|
+
*
|
|
4
|
+
* The daemon is where an operator actually MEETS the tool names. A refused send says "call
|
|
5
|
+
* cello_receive first", and those strings are written with the MCP names, so an MCP caller gets them
|
|
6
|
+
* verbatim while a CLI caller must be told `cello receive` — the thing they can type. Wrapping the
|
|
7
|
+
* map is the ONE choke point that has both the response and the connection's client type; doing it
|
|
8
|
+
* per-handler would mean sixty call sites and the sixty-first would forget.
|
|
9
|
+
*
|
|
10
|
+
* ⚠️ RESOLVED AT DISPATCH, NEVER SNAPSHOTTED. This was once a `for…of` that copied `handlers` into a
|
|
11
|
+
* second map, which made the ORDER of registration load-bearing in a file thousands of lines long:
|
|
12
|
+
* anything registered after that line went into a map nothing dispatched from. The document surface
|
|
13
|
+
* landed below it and every `cello_doc_*` verb answered `method_not_found` — whose guidance blames
|
|
14
|
+
* version skew, so an operator would re-pin, reinstall and restart, and find both sides matching.
|
|
15
|
+
* Late binding makes that unrepresentable rather than forbidden by a comment.
|
|
16
|
+
*/
|
|
17
|
+
import { type IpcHandler, type IpcServer } from "./ipc-server.js";
|
|
18
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
19
|
+
import type { Logger } from "./types.js";
|
|
20
|
+
export interface IpcSurfaceDeps {
|
|
21
|
+
logger: Logger;
|
|
22
|
+
socketPath: string;
|
|
23
|
+
maxConnections: number;
|
|
24
|
+
/** Read at DISPATCH — see the header. Never copied. */
|
|
25
|
+
handlers: Map<string, IpcHandler>;
|
|
26
|
+
perConnectionState: ReadonlyMap<string, {
|
|
27
|
+
clientType?: string;
|
|
28
|
+
}>;
|
|
29
|
+
fallbackNoticeStore: AsyncLocalStorage<{
|
|
30
|
+
notice?: Record<string, unknown>;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* ⚠️ A GETTER, AND THE HONEST REASON IS NOT THE OBVIOUS ONE. `stop` is a hoisted `function`
|
|
34
|
+
* declaration, so passing it by value would work TODAY. The getter is there so that turning it
|
|
35
|
+
* into a `const` — which is what every other extraction in this order did to its neighbours —
|
|
36
|
+
* cannot silently break the `shutdown` verb. An earlier version of this comment claimed a crash
|
|
37
|
+
* that cannot happen, which is the wrong lesson: the silent shape is a `let` assigned below.
|
|
38
|
+
*/
|
|
39
|
+
getStop: () => (reason: string) => Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export declare function createIpcSurface(deps: IpcSurfaceDeps): {
|
|
42
|
+
ipcServer: IpcServer;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=ipc-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-surface.d.ts","sourceRoot":"","sources":["../src/ipc-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAmB,KAAK,UAAU,EAAE,KAAK,SAAS,EAAsB,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,mBAAmB,EAAE,iBAAiB,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC7E;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc;;EA6FpD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The handler map as the IPC server sees it — every response rendered for the surface that asked.
|
|
3
|
+
*
|
|
4
|
+
* The daemon is where an operator actually MEETS the tool names. A refused send says "call
|
|
5
|
+
* cello_receive first", and those strings are written with the MCP names, so an MCP caller gets them
|
|
6
|
+
* verbatim while a CLI caller must be told `cello receive` — the thing they can type. Wrapping the
|
|
7
|
+
* map is the ONE choke point that has both the response and the connection's client type; doing it
|
|
8
|
+
* per-handler would mean sixty call sites and the sixty-first would forget.
|
|
9
|
+
*
|
|
10
|
+
* ⚠️ RESOLVED AT DISPATCH, NEVER SNAPSHOTTED. This was once a `for…of` that copied `handlers` into a
|
|
11
|
+
* second map, which made the ORDER of registration load-bearing in a file thousands of lines long:
|
|
12
|
+
* anything registered after that line went into a map nothing dispatched from. The document surface
|
|
13
|
+
* landed below it and every `cello_doc_*` verb answered `method_not_found` — whose guidance blames
|
|
14
|
+
* version skew, so an operator would re-pin, reinstall and restart, and find both sides matching.
|
|
15
|
+
* Late binding makes that unrepresentable rather than forbidden by a comment.
|
|
16
|
+
*/
|
|
17
|
+
import { createIpcServer } from "./ipc-server.js";
|
|
18
|
+
import { renderForSurface } from "./vocabulary.js";
|
|
19
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
20
|
+
export function createIpcSurface(deps) {
|
|
21
|
+
const { logger, socketPath, maxConnections, handlers, perConnectionState, fallbackNoticeStore, getStop } = deps;
|
|
22
|
+
let shutdownPromise = null;
|
|
23
|
+
handlers.set("shutdown", async (_params, _connectionId) => {
|
|
24
|
+
if (!shutdownPromise) {
|
|
25
|
+
shutdownPromise = getStop()("logout_requested").catch((err) => {
|
|
26
|
+
logger.error("daemon.shutdown.failed", {
|
|
27
|
+
signal: "logout",
|
|
28
|
+
error: extractErrorMessage(err),
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return { acknowledged: true };
|
|
33
|
+
});
|
|
34
|
+
// DOD-ONBOARD-HELP-1 §5 — render every response for the surface that asked.
|
|
35
|
+
//
|
|
36
|
+
// The daemon is where an operator actually MEETS the tool names: a refused send says "call
|
|
37
|
+
// cello_receive first". Those strings are written with the canonical MCP names, so an MCP caller
|
|
38
|
+
// gets them verbatim — but a CLI caller must be told `cello receive`, the thing they can type.
|
|
39
|
+
// (P2-7 was the one-off report of this; it is a whole CLASS, and this closes the class.)
|
|
40
|
+
//
|
|
41
|
+
// Wrapping the handler map is the ONE choke point that has both the response and the connection's
|
|
42
|
+
// clientType. Doing it per-handler would mean 60+ call sites, and the 61st would forget.
|
|
43
|
+
//
|
|
44
|
+
// RESOLVED AT DISPATCH, not copied at construction. This was a `for…of` that snapshotted
|
|
45
|
+
// `handlers` into a second map, which made the ORDER of registration load-bearing in a file
|
|
46
|
+
// 3,500 lines long: anything registered after this line was written into a map nothing
|
|
47
|
+
// dispatched from. The document surface landed 245 lines below it and every `cello_doc_*` verb
|
|
48
|
+
// answered `method_not_found` — whose guidance blames version skew between the shim and the
|
|
49
|
+
// daemon, so an operator would re-pin, reinstall and restart, and find both sides matching.
|
|
50
|
+
//
|
|
51
|
+
// A comment saying "register above this line" would have been one more rule to remember. Late
|
|
52
|
+
// binding makes the ordering unrepresentable instead: the map below reads `handlers` when a
|
|
53
|
+
// request arrives, so a handler registered at any point before the first request is dispatchable.
|
|
54
|
+
const renderedHandlers = {
|
|
55
|
+
get(method) {
|
|
56
|
+
const handler = handlers.get(method);
|
|
57
|
+
if (!handler)
|
|
58
|
+
return undefined;
|
|
59
|
+
return async (params, connectionId) => {
|
|
60
|
+
/**
|
|
61
|
+
* ONE request, ONE store — and the fallback notice is spread in BEFORE `renderForSurface`.
|
|
62
|
+
*
|
|
63
|
+
* `DOD-M15-SELECTION-1` clause 2 first annotated the response out in `ipc-server.ts`, which
|
|
64
|
+
* is downstream of this wrapper and therefore downstream of surface rendering. The notice
|
|
65
|
+
* says *"Run cello_use_agent"*; `isInstructionKey` in `vocabulary.ts` rewrites any key
|
|
66
|
+
* ending in `guidance`, so that WOULD have become `cello use-agent` for a terminal — but it
|
|
67
|
+
* arrived after the rewrite had already run. An operator running `cello inbox` was handed a
|
|
68
|
+
* verb that does not exist in a shell, which is the exact failure the vocabulary layer was
|
|
69
|
+
* built to prevent. Annotating here puts it back in front of the renderer.
|
|
70
|
+
*/
|
|
71
|
+
const store = {};
|
|
72
|
+
const result = await fallbackNoticeStore.run(store, () => handler(params, connectionId));
|
|
73
|
+
/**
|
|
74
|
+
* ⚠️ **THE NOTICE GOES FIRST, AND THAT ORDERING IS A SECURITY PROPERTY — review F2.**
|
|
75
|
+
*
|
|
76
|
+
* It used to be spread LAST, which reads as harmless because these keys are additive. It is
|
|
77
|
+
* not: `cello_get_quarantined` returns a REFUSED MESSAGE as its final key, and the framing
|
|
78
|
+
* that makes hostile content safe to read has NO CLOSING DELIMITER — the reader's one
|
|
79
|
+
* structural guarantee is that nothing follows the payload. Three keys of genuine
|
|
80
|
+
* CELLO-authored prose landing after it is exactly the shape a forged ending imitates, and
|
|
81
|
+
* once a reader has seen real framing follow the payload, a forged one is credible.
|
|
82
|
+
*
|
|
83
|
+
* Not a corner case: `withIpc` in the CLI never sends `ipc.connect`, so a single-agent
|
|
84
|
+
* daemon takes the sole-online fallback on EVERY plain `cello quarantined` invocation.
|
|
85
|
+
*
|
|
86
|
+
* Spreading first is safe in general and needs no per-handler knowledge: these keys cannot
|
|
87
|
+
* collide with a handler's own (a collision would mean a handler already answered the
|
|
88
|
+
* question the notice exists to answer), and every response then keeps its own key order at
|
|
89
|
+
* the tail — which is where a payload-terminal key has to stay.
|
|
90
|
+
*/
|
|
91
|
+
const annotated = store.notice && result !== null && typeof result === "object" && !Array.isArray(result)
|
|
92
|
+
? { ...store.notice, ...result }
|
|
93
|
+
: result;
|
|
94
|
+
// Default to "cli": a connection that never sent ipc.connect has no recorded surface, and
|
|
95
|
+
// the CLI verb is the safe answer — it is at least a real command an operator can run,
|
|
96
|
+
// whereas an MCP tool name is useless in a terminal.
|
|
97
|
+
const surface = perConnectionState.get(connectionId)?.clientType === "mcp" ? "mcp" : "cli";
|
|
98
|
+
return renderForSurface(annotated, surface);
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
// Create and start IPC server
|
|
103
|
+
const ipcServer = createIpcServer({ socketPath, maxConnections, logger }, renderedHandlers);
|
|
104
|
+
// `renderedHandlers` is not returned: its only consumer is the server constructed here.
|
|
105
|
+
return { ipcServer };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=ipc-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-surface.js","sourceRoot":"","sources":["../src/ipc-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,eAAe,EAAuD,MAAM,iBAAiB,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAoBzD,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEhH,IAAI,eAAe,GAAyB,IAAI,CAAC;IACjD,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;QACxD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACrE,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;oBACrC,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE;IACF,2FAA2F;IAC3F,iGAAiG;IACjG,+FAA+F;IAC/F,yFAAyF;IACzF,EAAE;IACF,kGAAkG;IAClG,yFAAyF;IACzF,EAAE;IACF,yFAAyF;IACzF,4FAA4F;IAC5F,uFAAuF;IACvF,+FAA+F;IAC/F,4FAA4F;IAC5F,4FAA4F;IAC5F,EAAE;IACF,8FAA8F;IAC9F,4FAA4F;IAC5F,kGAAkG;IAClG,MAAM,gBAAgB,GAAkB;QACtC,GAAG,CAAC,MAAc;YAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;gBACpC;;;;;;;;;;mBAUG;gBACH,MAAM,KAAK,GAAyC,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;gBACzF;;;;;;;;;;;;;;;;;mBAiBG;gBACH,MAAM,SAAS,GACb,KAAK,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBACrF,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAI,MAAkC,EAAE;oBAC7D,CAAC,CAAC,MAAM,CAAC;gBACb,0FAA0F;gBAC1F,uFAAuF;gBACvF,qDAAqD;gBACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC3F,OAAO,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,SAAS,GAAc,eAAe,CAC1C,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,EACtC,gBAAgB,CACjB,CAAC;IAEF,wFAAwF;IACxF,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
|