@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,530 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-DOC-INBOUND-1 — the receiving half (§3.2, §14, §16.4).
|
|
3
|
+
*
|
|
4
|
+
* Every P2 unit built a piece of this. ENVELOPE-1 decodes and checks the chain link, GATE-1
|
|
5
|
+
* decides, REJECT-1 records a refusal and quarantines the bytes, ENGINE-1 applies. Nothing owned
|
|
6
|
+
* assembling them, and assembling them is not clerical work — **the order is the security
|
|
7
|
+
* property**. A check performed after admission is a check that did not protect anything.
|
|
8
|
+
*
|
|
9
|
+
* The order, and what each step is protecting:
|
|
10
|
+
*
|
|
11
|
+
* 1. DECODE — refuse malformed input before any of it is interpreted.
|
|
12
|
+
* 2. VERIFY the signature — FIRST, because everything after it is either a judgement about a
|
|
13
|
+
* party or an ANSWER to one. It needs nothing but the envelope: the agent
|
|
14
|
+
* id is the Ed25519 public key (M14-D5). It ran at step 4 until a live
|
|
15
|
+
* defect forced it earlier — see `terminal` on InboundResult. An
|
|
16
|
+
* unverified envelope is also not REJECTED: a rejection is a protocol act
|
|
17
|
+
* that presumes an authenticated counterparty, and writing a 0x05 leaf
|
|
18
|
+
* naming an unauthenticated sender puts their claim in our permanent log.
|
|
19
|
+
* 3. KNOW the document — an envelope for a document we do not hold has no context to judge it in.
|
|
20
|
+
* TERMINAL: we will never hold it, so the sender is told and stops.
|
|
21
|
+
* 4. SENDER is the peer — a document is a pairwise agreement; a third party's envelope does not
|
|
22
|
+
* belong here at all, and is not a rejection case (there is no
|
|
23
|
+
* collaboration to supersede). Refused SILENTLY — see `terminal`.
|
|
24
|
+
* 5. CHAIN link — a redelivery is benign and must still ACK (delivery retries by design, and
|
|
25
|
+
* a redelivery that goes unacked never lets the sender settle it); a gap
|
|
26
|
+
* or a fork refuses.
|
|
27
|
+
* 6. GATE — the §3.2 validation, against a TRIAL copy so a refusal cannot have landed.
|
|
28
|
+
* 7. ADMIT or REJECT — and either way, ANSWER. A rejection is an ack for delivery purposes: the
|
|
29
|
+
* peer has decided, so the sender must stop retrying and supersede.
|
|
30
|
+
*/
|
|
31
|
+
import { decodeDocumentUpdateEnvelope, documentEnvelopeHash, buildDocumentUpdateTbs, verifyDocumentChainLink, } from "@cello-protocol/protocol-types";
|
|
32
|
+
import { SEMANTIC_RULE_ID } from "./document-screen.js";
|
|
33
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
34
|
+
/** The agreed property, read from the row rather than from whoever called us. */
|
|
35
|
+
function appendOnly(doc) {
|
|
36
|
+
return doc.properties.append_only === true;
|
|
37
|
+
}
|
|
38
|
+
export class DocumentInbound {
|
|
39
|
+
#d;
|
|
40
|
+
constructor(deps) {
|
|
41
|
+
this.#d = deps;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The clientIDs this sender has SIGNED for on this document: the one this envelope declares,
|
|
45
|
+
* plus every one previously admitted from them. Both are authenticated — each arrived inside a
|
|
46
|
+
* verified TBS — so the set can only grow through signatures the peer actually made.
|
|
47
|
+
*/
|
|
48
|
+
#boundClientIds(ownerAgentId, env) {
|
|
49
|
+
return [
|
|
50
|
+
...new Set([
|
|
51
|
+
env.sender_client_id,
|
|
52
|
+
...this.#d.store.senderClientIdsFor(ownerAgentId, env.document_id, env.sender_agent_id),
|
|
53
|
+
]),
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* ASYNC because a gate refusal must SIGN a `0x05` leaf, and signing goes through an async key
|
|
58
|
+
* provider. REJECT-1 refuses to fabricate a signature — an all-zero placeholder in an immutable
|
|
59
|
+
* log is indistinguishable from a real one that fails to verify — so the async is real, not
|
|
60
|
+
* incidental.
|
|
61
|
+
*
|
|
62
|
+
* The session content path still decides the LEAF KIND synchronously; `DocumentFrameRouter`
|
|
63
|
+
* splits the two, and serializes the handling per owner so an envelope's predecessor is always
|
|
64
|
+
* stored before its successor is checked.
|
|
65
|
+
*/
|
|
66
|
+
async receive(ownerAgentId, wire, nowMs, correlationId = "inbound") {
|
|
67
|
+
// 1. DECODE.
|
|
68
|
+
let env;
|
|
69
|
+
try {
|
|
70
|
+
env = decodeDocumentUpdateEnvelope(wire);
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
const detail = extractErrorMessage(err);
|
|
74
|
+
this.#d.logger.warn("document.inbound.malformed", { detail, correlationId });
|
|
75
|
+
// ONE reason code, with the upstream message in the detail. Two kinds of failure arrive here:
|
|
76
|
+
// our own decoder's named refusals ("document_envelope_missing_field: …"), and CBOR/lib0
|
|
77
|
+
// errors from bytes that are not a CBOR map at all ("Data read, but end of buffer not
|
|
78
|
+
// reached"). Splitting the message on ":" turned the second kind into a reason code made of
|
|
79
|
+
// English prose, which nothing can match on and which reads as a crash rather than a refusal.
|
|
80
|
+
return { ok: false, reason: "document_inbound_malformed", detail };
|
|
81
|
+
}
|
|
82
|
+
const envelopeHash = documentEnvelopeHash(env);
|
|
83
|
+
// 2. VERIFY the signature — BEFORE the document is even looked up.
|
|
84
|
+
//
|
|
85
|
+
// It used to run at step 4, after the lookup and the peer check, and the header's reasoning for
|
|
86
|
+
// that was sound as far as it went: verify before the GATE, so pluggable rules never process
|
|
87
|
+
// bytes from a party we have not authenticated. Verifying EARLIER satisfies that strictly more.
|
|
88
|
+
//
|
|
89
|
+
// What forced the move is `terminal` below. A terminal refusal is answered with a SIGNED ack
|
|
90
|
+
// addressed to `sender_agent_id`, and producing one for a sender we have not authenticated
|
|
91
|
+
// would answer whoever reached the channel rather than a known peer. Authentication has to
|
|
92
|
+
// precede the first refusal we are willing to answer, and `document_unknown` is now one.
|
|
93
|
+
//
|
|
94
|
+
// It needs nothing from the document: the agent id IS the Ed25519 public key (M14-D5), so this
|
|
95
|
+
// is self-contained on the envelope. The cost is an Ed25519 verify (~50µs) on envelopes for
|
|
96
|
+
// documents we do not hold — paid to avoid a delivery that never settles.
|
|
97
|
+
if (!this.#d.verifySignature(env.sender_agent_id, buildDocumentUpdateTbs(env), env.signature)) {
|
|
98
|
+
this.#d.logger.error("document.inbound.signature_invalid", {
|
|
99
|
+
documentId: env.document_id,
|
|
100
|
+
senderAgentId: env.sender_agent_id,
|
|
101
|
+
envelopeHash,
|
|
102
|
+
correlationId,
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
ok: false,
|
|
106
|
+
reason: "document_signature_invalid",
|
|
107
|
+
detail: `the envelope claims to come from ${env.sender_agent_id} but its signature does not ` +
|
|
108
|
+
`verify against that agent — nothing was recorded`,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// 3. KNOW the document.
|
|
112
|
+
const doc = this.#d.store.getDocument(ownerAgentId, env.document_id);
|
|
113
|
+
if (!doc) {
|
|
114
|
+
// TERMINAL. We hold no such document and never will — this is what the far side of a REFUSED
|
|
115
|
+
// proposal looks like, and it was leaving the sender redelivering forever: the router only
|
|
116
|
+
// acks `ok: true` results, so an `ok: false` refusal settled nothing and the delivery worker
|
|
117
|
+
// re-sent on every tick. Observed live on `662743b1…`, stuck at `pendingSent: 1`.
|
|
118
|
+
//
|
|
119
|
+
// Safe to answer because step 2 authenticated the sender, and it discloses nothing they do
|
|
120
|
+
// not already have: they authored an envelope for this document_id, and the answer is "no".
|
|
121
|
+
return {
|
|
122
|
+
ok: false,
|
|
123
|
+
reason: "document_unknown",
|
|
124
|
+
terminal: true,
|
|
125
|
+
envelopeHash,
|
|
126
|
+
detail: `no document ${env.document_id.slice(0, 16)}… for this agent`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// 4. THE SENDER GATE (DOD-MP-INBOUND-N-1), BEFORE any lifecycle answer — the order is the
|
|
130
|
+
// disclosure boundary: every later branch may answer with a SIGNED ACK, and an ack to a
|
|
131
|
+
// non-party confirms the document exists and what state it is in. When the chain DERIVES,
|
|
132
|
+
// derived membership is
|
|
133
|
+
// the whole gate — a joined third holder's envelope is as admissible as the genesis peer's,
|
|
134
|
+
// and a removed genesis peer's is not admissible at all. Only when the chain cannot answer
|
|
135
|
+
// (bilateral legacy, no genesis record) does the row's peer column stand in.
|
|
136
|
+
// SYNC-G1 (R20): admissibility is ruled AT THE ENVELOPE'S SIGNED FRONTIER — the governance
|
|
137
|
+
// world its author actually held — never at our current state, which refuses a removed
|
|
138
|
+
// author's legitimate earlier work and breaks convergence for every holder who was behind
|
|
139
|
+
// at removal time (the AC14 case; the old epoch-equality gate broke it three documented
|
|
140
|
+
// times). An honest removed daemon names a frontier containing its own removal and refuses
|
|
141
|
+
// HERE, by name (AC13); a backdating daemon admits exactly what an honest holder at that
|
|
142
|
+
// position could have authored — the same bounded concession the governance fold accepted,
|
|
143
|
+
// and the fold's removal dominance keeps such a daemon out of governance regardless.
|
|
144
|
+
const senderHolders = this.#d.currentHolders(ownerAgentId, env.document_id);
|
|
145
|
+
let senderIsParty;
|
|
146
|
+
if (senderHolders === null) {
|
|
147
|
+
// Bilateral legacy — no derivable chain; the row's peer column is the membership. A
|
|
148
|
+
// genesis-less document can hold no validated entries, so `standingOf` answers `unknown`
|
|
149
|
+
// here and the removed branch below is unreachable in practice — kept so the two paths
|
|
150
|
+
// cannot drift about what "removed" means (SYNC-D8: one derivation).
|
|
151
|
+
if (this.#d.standingOf(ownerAgentId, env.document_id, env.sender_agent_id) === "removed") {
|
|
152
|
+
this.#d.logger.warn("document.inbound.sender_removed", {
|
|
153
|
+
documentId: env.document_id,
|
|
154
|
+
senderAgentId: env.sender_agent_id,
|
|
155
|
+
correlationId,
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
ok: false,
|
|
159
|
+
reason: "document_sender_removed",
|
|
160
|
+
terminal: true,
|
|
161
|
+
envelopeHash,
|
|
162
|
+
detail: "this holder was removed from the document — the removal is forward-only (your " +
|
|
163
|
+
"copy is yours), but new edits are no longer accepted",
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
senderIsParty = env.sender_agent_id === doc.peerAgentId;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
const at = this.#d.deriveAtFrontier(ownerAgentId, env.document_id, env.governance_parents);
|
|
170
|
+
if (!at.ok) {
|
|
171
|
+
// Ancestors not held: the governance is IN FLIGHT — non-terminal, the exchange
|
|
172
|
+
// delivers governance before content and this envelope admits on redelivery.
|
|
173
|
+
this.#d.logger.warn("document.inbound.governance_in_flight", {
|
|
174
|
+
documentId: env.document_id,
|
|
175
|
+
senderAgentId: env.sender_agent_id,
|
|
176
|
+
missing: at.missing ?? [],
|
|
177
|
+
correlationId,
|
|
178
|
+
});
|
|
179
|
+
return {
|
|
180
|
+
ok: false,
|
|
181
|
+
reason: "document_governance_in_flight",
|
|
182
|
+
envelopeHash,
|
|
183
|
+
detail: `this update names governance ancestors this holder does not yet hold — ` +
|
|
184
|
+
`reconcile delivers governance first; retry after it lands`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
// R30 / AC16: an ending among the envelope's own named ancestors means its author KNEW
|
|
188
|
+
// the document was over when they wrote — refused everywhere, terminally, including from
|
|
189
|
+
// a modified daemon: the parents are inside the signature.
|
|
190
|
+
if (at.ended !== null) {
|
|
191
|
+
this.#d.logger.warn("document.inbound.authored_after_ending", {
|
|
192
|
+
documentId: env.document_id,
|
|
193
|
+
senderAgentId: env.sender_agent_id,
|
|
194
|
+
ended: at.ended,
|
|
195
|
+
correlationId,
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
ok: false,
|
|
199
|
+
reason: "document_authored_after_ending",
|
|
200
|
+
terminal: true,
|
|
201
|
+
envelopeHash,
|
|
202
|
+
detail: `this update names a governance world in which the document was already ` +
|
|
203
|
+
`${at.ended} - content authored after an ending is refused everywhere (R30)`,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
senderIsParty = at.participants.has(env.sender_agent_id);
|
|
207
|
+
}
|
|
208
|
+
if (!senderIsParty) {
|
|
209
|
+
// A REMOVED former holder is upgraded from the silent stranger-refusal to the TERMINAL
|
|
210
|
+
// named one (REMOVE-1 review F4): they hold the removal fact already — no new disclosure —
|
|
211
|
+
// and the silent path left their delivery worker redelivering forever, which is the exact
|
|
212
|
+
// silent drop the DoD line forbids. A true stranger still gets silence.
|
|
213
|
+
if (this.#d.standingOf(ownerAgentId, env.document_id, env.sender_agent_id) === "removed") {
|
|
214
|
+
this.#d.logger.warn("document.inbound.sender_removed", {
|
|
215
|
+
documentId: env.document_id,
|
|
216
|
+
senderAgentId: env.sender_agent_id,
|
|
217
|
+
correlationId,
|
|
218
|
+
});
|
|
219
|
+
return {
|
|
220
|
+
ok: false,
|
|
221
|
+
reason: "document_sender_removed",
|
|
222
|
+
terminal: true,
|
|
223
|
+
envelopeHash,
|
|
224
|
+
detail: "this holder was removed from the document — the removal is forward-only (your " +
|
|
225
|
+
"copy is yours), but new edits are no longer accepted",
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
// The wire stays silent (the disclosure decision stands); the LOG names the refusal, so
|
|
229
|
+
// the operator debugging "the new collaborator's edits aren't landing" has a line to find.
|
|
230
|
+
// An admission still in flight resolves by the sender's ordinary retry after it lands.
|
|
231
|
+
this.#d.logger.warn("document.inbound.not_peer", {
|
|
232
|
+
documentId: env.document_id,
|
|
233
|
+
senderAgentId: env.sender_agent_id,
|
|
234
|
+
peerAgentId: doc.peerAgentId,
|
|
235
|
+
correlationId,
|
|
236
|
+
});
|
|
237
|
+
return {
|
|
238
|
+
ok: false,
|
|
239
|
+
reason: "document_sender_not_peer",
|
|
240
|
+
// The peer's identity is NOT in the reply, and there is NO ack — silence is the answer. A
|
|
241
|
+
// third party is authenticated as themselves but is not a party to this document, so
|
|
242
|
+
// nothing about it is theirs to learn.
|
|
243
|
+
//
|
|
244
|
+
// A residual one-bit oracle remains and is accepted deliberately: a prober who already
|
|
245
|
+
// holds a valid document_id learns "exists" from the ABSENCE of an ack, since an unknown
|
|
246
|
+
// document answers and a known one does not. Closing that would mean acking non-parties,
|
|
247
|
+
// which discloses strictly more. It is bounded by document_id being a 32-byte hash
|
|
248
|
+
// (`documentIdFromProposal`), unguessable and never published.
|
|
249
|
+
detail: "you are not a party to this document",
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
// 4a. A DAEMON THAT KNOWS ITSELF REMOVED STOPS APPLYING (DOD-MP-REMOVE-1's other half):
|
|
253
|
+
// "new edits stop flowing either way" is a lie if the removed party's own daemon keeps
|
|
254
|
+
// admitting what still arrives from holders whose worker has not yet gated. TERMINAL — the
|
|
255
|
+
// sender's delivery settles instead of retrying at a door that will never open.
|
|
256
|
+
if (this.#d.standingOf(ownerAgentId, env.document_id, ownerAgentId) === "removed") {
|
|
257
|
+
this.#d.logger.warn("document.inbound.recipient_removed", {
|
|
258
|
+
documentId: env.document_id,
|
|
259
|
+
correlationId,
|
|
260
|
+
});
|
|
261
|
+
return {
|
|
262
|
+
ok: false,
|
|
263
|
+
reason: "document_recipient_removed",
|
|
264
|
+
terminal: true,
|
|
265
|
+
envelopeHash,
|
|
266
|
+
detail: "this daemon was removed from the document's arrangement — the local copy remains, " +
|
|
267
|
+
"but new edits are no longer applied",
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
// 4b (SYNC-G1): the epoch-equality ruling and the current-state removed-sender check are
|
|
271
|
+
// GONE — both are the causal sender gate's job now, ruled at the envelope's signed
|
|
272
|
+
// frontier before anything else ran. (D7: the epoch stamp itself dies with this phase.)
|
|
273
|
+
// 5. The document must still ACCEPT — but for a document whose chain DERIVES, the ending
|
|
274
|
+
// ruling already happened at step 4 (R30: an ending in the envelope's own named ancestors
|
|
275
|
+
// refuses terminally; a frontier free of endings MUST be admitted, AC16 — the last edits
|
|
276
|
+
// before an agreed close are precisely the content the exchange still owes every holder,
|
|
277
|
+
// and the status column is a display projection that can lag the fold; review F1). Only a
|
|
278
|
+
// LEGACY document — no derivable chain, so no frontier to rule at — is judged by its stored
|
|
279
|
+
// status here, because for the pre-pivot bilateral record the column IS its ending.
|
|
280
|
+
if (senderHolders === null && (doc.status === "killed" || doc.status === "closed")) {
|
|
281
|
+
// TERMINAL, and for the same reason `document_stalled` below is NOT: these are DECISIONS.
|
|
282
|
+
// Nothing the sender does makes a killed or closed legacy document accept this envelope.
|
|
283
|
+
return {
|
|
284
|
+
ok: false,
|
|
285
|
+
reason: doc.status === "killed" ? "document_killed" : "document_closed",
|
|
286
|
+
terminal: true,
|
|
287
|
+
envelopeHash,
|
|
288
|
+
detail: doc.status === "killed"
|
|
289
|
+
? "this document was ended locally and no longer accepts updates"
|
|
290
|
+
: "this document was closed by agreement and no longer accepts updates",
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
const accepts = this.#d.rejections.acceptsUpdates(ownerAgentId, env.document_id);
|
|
294
|
+
if (!accepts.ok) {
|
|
295
|
+
// The stall reason, composed by the unit that owns the stall. Reporting this envelope's own
|
|
296
|
+
// gate verdict instead would send an operator to the append-only rule for a document that has
|
|
297
|
+
// been frozen for days.
|
|
298
|
+
return { ok: false, reason: accepts.reason, detail: accepts.detail };
|
|
299
|
+
}
|
|
300
|
+
// 5. CHAIN. A redelivery is expected traffic and must still be answered.
|
|
301
|
+
// Hash-only. Reading the whole log meant materializing every payload BLOB on every inbound
|
|
302
|
+
// update, just to build a set for one membership test.
|
|
303
|
+
const known = this.#d.store.knownEnvelopeHashesBySender(ownerAgentId, env.document_id, env.sender_agent_id);
|
|
304
|
+
const head = this.#d.store.lastEnvelopeHashBySender(ownerAgentId, env.document_id, env.sender_agent_id);
|
|
305
|
+
let duplicate;
|
|
306
|
+
try {
|
|
307
|
+
duplicate = verifyDocumentChainLink(env, { head, known }).duplicate;
|
|
308
|
+
}
|
|
309
|
+
catch (err) {
|
|
310
|
+
const detail = extractErrorMessage(err);
|
|
311
|
+
this.#d.logger.warn("document.inbound.chain_refused", {
|
|
312
|
+
documentId: env.document_id,
|
|
313
|
+
correlationId,
|
|
314
|
+
detail,
|
|
315
|
+
// THE COMPARISON ITSELF, not just its verdict.
|
|
316
|
+
//
|
|
317
|
+
// The stall path was chased through three fixes on the strength of "the chain was refused",
|
|
318
|
+
// and each fix was reasoned about rather than measured. What was never printed is the only
|
|
319
|
+
// thing that decides it: the link the sender claimed, the head we were holding, and whether
|
|
320
|
+
// we had seen it before. A refusal that names its verdict and hides its inputs is why that
|
|
321
|
+
// took three rounds — the same shape as reading a log tail for an event that is emitted
|
|
322
|
+
// earlier, twice today.
|
|
323
|
+
claimedPrev: env.doc_prev_hash,
|
|
324
|
+
ourHead: head,
|
|
325
|
+
prevIsKnown: env.doc_prev_hash !== null && known.has(env.doc_prev_hash),
|
|
326
|
+
knownCount: known.size,
|
|
327
|
+
});
|
|
328
|
+
// MATCHED against the known set, not split on ":". This file explains sixty lines earlier why
|
|
329
|
+
// splitting an upstream message produces reason codes made of English prose — and the old
|
|
330
|
+
// `?? "document_chain_broken"` fallback mislabelled a FORK as a gap, which is precisely the
|
|
331
|
+
// distinction the envelope module went out of its way to create.
|
|
332
|
+
const reason = ["document_chain_forked", "document_chain_broken"].find((r) => detail.startsWith(r));
|
|
333
|
+
// A FORK IS TERMINAL; A GAP IS NOT. The distinction the envelope module went out of its way
|
|
334
|
+
// to create decides this too. A gap means the predecessor has not arrived YET, so redelivery
|
|
335
|
+
// is exactly the recovery path and the sender must keep trying. A fork means the sender
|
|
336
|
+
// chained onto something that is not our head and never was — our log is append-only, so
|
|
337
|
+
// there is no repair, and no number of redeliveries changes the answer.
|
|
338
|
+
//
|
|
339
|
+
// Left non-terminal, a fork walked to the unacked ceiling and surfaced as "Their client may
|
|
340
|
+
// not support shared documents yet" — an error naming the wrong subsystem entirely, for a
|
|
341
|
+
// condition the receiver had diagnosed precisely.
|
|
342
|
+
if (reason === "document_chain_forked") {
|
|
343
|
+
return { ok: false, reason, detail, terminal: true, envelopeHash };
|
|
344
|
+
}
|
|
345
|
+
return { ok: false, reason: reason ?? "document_chain_refused", detail };
|
|
346
|
+
}
|
|
347
|
+
if (duplicate) {
|
|
348
|
+
// ACK, and change nothing. Not acking would leave the sender retrying an envelope we already
|
|
349
|
+
// hold, forever; applying it again is unnecessary (Yjs is idempotent) and appending it again
|
|
350
|
+
// is refused by the store anyway.
|
|
351
|
+
this.#d.logger.info("document.inbound.duplicate", {
|
|
352
|
+
documentId: env.document_id,
|
|
353
|
+
senderAgentId: env.sender_agent_id,
|
|
354
|
+
envelopeHash,
|
|
355
|
+
correlationId,
|
|
356
|
+
});
|
|
357
|
+
return { ok: true, admitted: true, envelopeHash, duplicate: true };
|
|
358
|
+
}
|
|
359
|
+
// 5b. ALREADY REJECTED? A rejected envelope's hash is deliberately never written to the log, so
|
|
360
|
+
// it is not in `known` and a redelivery is NOT a duplicate. Without this it re-ran the gate,
|
|
361
|
+
// was rejected again, and `reject()` minted a fresh nonce — advancing the retry round. Since
|
|
362
|
+
// MAX_REJECTED_ROUNDS is 3, a peer whose ACKS ARE BEING LOST — which is delivery's ordinary
|
|
363
|
+
// retry behaviour — permanently stalled the shared document in three attempts, with no
|
|
364
|
+
// hostility required. Hostile, it was a one-line denial of service.
|
|
365
|
+
//
|
|
366
|
+
// Re-answered with the RECORDED reason: the peer needs the same answer it was given before, so
|
|
367
|
+
// it supersedes rather than retries.
|
|
368
|
+
const alreadyRejected = this.#d.store
|
|
369
|
+
.listQuarantined(ownerAgentId, env.document_id)
|
|
370
|
+
.find((q) => q.rejectedEnvelopeHash === envelopeHash);
|
|
371
|
+
if (alreadyRejected) {
|
|
372
|
+
this.#d.logger.info("document.inbound.already_rejected", {
|
|
373
|
+
documentId: env.document_id,
|
|
374
|
+
envelopeHash,
|
|
375
|
+
correlationId,
|
|
376
|
+
});
|
|
377
|
+
return {
|
|
378
|
+
ok: true,
|
|
379
|
+
admitted: false,
|
|
380
|
+
envelopeHash,
|
|
381
|
+
rejectionReason: alreadyRejected.reason,
|
|
382
|
+
duplicate: false,
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
// 6. GATE — against the LIVE doc, which the gate itself trials on a copy.
|
|
386
|
+
const live = this.#d.liveDocFor(ownerAgentId, env.document_id);
|
|
387
|
+
const verdict = this.#d.gate.validate(live, env.update, {
|
|
388
|
+
documentId: env.document_id,
|
|
389
|
+
senderAgentId: env.sender_agent_id,
|
|
390
|
+
// DERIVED from authenticated data, not from a seam nobody produces. ENVELOPE-1 puts
|
|
391
|
+
// `sender_client_id` inside the signed TBS precisely because "this envelope is where it is
|
|
392
|
+
// learned" — and the assembler was decoding it, verifying the signature over it, and then
|
|
393
|
+
// throwing it away, leaving rule (h) wired to a function with no implementation. Left as a
|
|
394
|
+
// seam it would default to wrong in whichever direction its implementer guessed: `[]`
|
|
395
|
+
// refuses every peer update, the union of everything observed admits anything.
|
|
396
|
+
//
|
|
397
|
+
// §14 forbids persisting a clientID for REUSE; recording which ones a peer has SIGNED for
|
|
398
|
+
// is the opposite — it is the binding the gate's rule exists to check.
|
|
399
|
+
senderClientIds: this.#boundClientIds(ownerAgentId, env),
|
|
400
|
+
declaredDocumentId: env.document_id,
|
|
401
|
+
declaredEncoding: env.update_encoding,
|
|
402
|
+
// THE PERSISTED PROPERTY, not a caller option defaulting to off. append_only is agreed at
|
|
403
|
+
// the handshake and stored on the row, and the gate's own header says it "is the only thing
|
|
404
|
+
// standing between a bound peer and erasure" — rule (h) provably cannot see a deletion.
|
|
405
|
+
// Taking it from an option meant a document configured append-only was unprotected unless
|
|
406
|
+
// every future call site remembered to pass the flag.
|
|
407
|
+
appendOnly: appendOnly(doc),
|
|
408
|
+
// The AGREED profile, from the same persisted row and for the same reason.
|
|
409
|
+
...(typeof doc.properties.content_profile === "string"
|
|
410
|
+
? { contentProfile: doc.properties.content_profile }
|
|
411
|
+
: {}),
|
|
412
|
+
}, nowMs);
|
|
413
|
+
if (!verdict.admit) {
|
|
414
|
+
// 7a. REJECT. The bytes are held, a 0x05 leaf references them, and the peer is ANSWERED —
|
|
415
|
+
// a rejection is an ack for delivery purposes, so the sender stops retrying and supersedes.
|
|
416
|
+
const rejection = await this.#d.rejections.reject(ownerAgentId, env.document_id, {
|
|
417
|
+
rejectedEnvelopeHash: envelopeHash,
|
|
418
|
+
quarantined: verdict.quarantined,
|
|
419
|
+
reason: verdict.reason,
|
|
420
|
+
detail: verdict.detail,
|
|
421
|
+
senderAgentId: env.sender_agent_id,
|
|
422
|
+
rejectedDocPrevHash: env.doc_prev_hash,
|
|
423
|
+
rule: verdict.rule,
|
|
424
|
+
limit: verdict.limit,
|
|
425
|
+
// The OWNER signs its own rejection, over the canonical preimage (DOD-DOC-REJECT-2).
|
|
426
|
+
sign: (tbs) => this.#d.sign(ownerAgentId, tbs),
|
|
427
|
+
nowMs,
|
|
428
|
+
});
|
|
429
|
+
return {
|
|
430
|
+
ok: true,
|
|
431
|
+
admitted: false,
|
|
432
|
+
envelopeHash,
|
|
433
|
+
// The signed refusal, for the caller to transmit. Absent on a duplicate — we already told
|
|
434
|
+
// them once, and re-sending would advance their round counter for a retry that never
|
|
435
|
+
// happened, driving the document to `stalled` early.
|
|
436
|
+
...(rejection.wire ? { rejectionWire: rejection.wire } : {}),
|
|
437
|
+
rejectionReason: verdict.reason,
|
|
438
|
+
duplicate: false,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
// 7a-bis. THE SEMANTIC SCREEN, on the text the update WOULD produce.
|
|
442
|
+
//
|
|
443
|
+
// Placed here and nowhere else for two reasons. The shadow is inert — nothing in it can reach
|
|
444
|
+
// the operator or their agent until the admit below — so this is the last moment the content is
|
|
445
|
+
// both READABLE and harmless. And the gate's `validate` is synchronous while the gateway is a
|
|
446
|
+
// separate program, so the call cannot live inside a rule.
|
|
447
|
+
//
|
|
448
|
+
// Only the INSERTED text is screened. A deletion carries no new content, and re-screening the
|
|
449
|
+
// whole document would refuse a peer's edit for prose that was already admitted days ago.
|
|
450
|
+
const semantic = this.#d.screenProjected && verdict.projectedDiff.inserted.length > 0
|
|
451
|
+
? await this.#d.screenProjected(verdict.projectedDiff.inserted, {
|
|
452
|
+
ownerAgentId,
|
|
453
|
+
documentId: env.document_id,
|
|
454
|
+
senderAgentId: env.sender_agent_id,
|
|
455
|
+
...(correlationId !== undefined ? { correlationId } : {}),
|
|
456
|
+
})
|
|
457
|
+
: null;
|
|
458
|
+
if (semantic?.block === true) {
|
|
459
|
+
// REFUSED, NOT REWRITTEN, and the bytes are HELD — the same treatment every other refusal
|
|
460
|
+
// gets, so the peer's chain stays bridgeable and they are told once, by name.
|
|
461
|
+
const rejection = await this.#d.rejections.reject(ownerAgentId, env.document_id, {
|
|
462
|
+
rejectedEnvelopeHash: envelopeHash,
|
|
463
|
+
// COPIED, and copied BEFORE the awaits above. The caller's buffer may be a pooled network
|
|
464
|
+
// read; `reject()` copies too, but by then a gateway round trip and a signing call have
|
|
465
|
+
// both happened, and DOD-DOC-REJECT-1 would hash bytes that are no longer the ones refused
|
|
466
|
+
// — into a 0x05 leaf, silently. The gate's own quarantine copies for this reason.
|
|
467
|
+
quarantined: new Uint8Array(env.update),
|
|
468
|
+
reason: "document_content_injection",
|
|
469
|
+
// WHICH screen refused. Dropping it leaves an operator unable to see what ruled, which is
|
|
470
|
+
// exactly what document-rejection.ts's header says a refusal must never do.
|
|
471
|
+
rule: SEMANTIC_RULE_ID,
|
|
472
|
+
...(semantic.reason !== undefined ? { detail: semantic.reason } : {}),
|
|
473
|
+
senderAgentId: env.sender_agent_id,
|
|
474
|
+
rejectedDocPrevHash: env.doc_prev_hash,
|
|
475
|
+
sign: (tbs) => this.#d.sign(ownerAgentId, tbs),
|
|
476
|
+
nowMs,
|
|
477
|
+
});
|
|
478
|
+
this.#d.logger.warn("document.inbound.injection_refused", {
|
|
479
|
+
documentId: env.document_id,
|
|
480
|
+
senderAgentId: env.sender_agent_id,
|
|
481
|
+
envelopeHash,
|
|
482
|
+
reason: semantic.reason,
|
|
483
|
+
correlationId,
|
|
484
|
+
});
|
|
485
|
+
return {
|
|
486
|
+
ok: true,
|
|
487
|
+
admitted: false,
|
|
488
|
+
envelopeHash,
|
|
489
|
+
...(rejection.wire ? { rejectionWire: rejection.wire } : {}),
|
|
490
|
+
rejectionReason: "document_content_injection",
|
|
491
|
+
duplicate: false,
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
// 7b. ADMIT. The log first, then the live document: an update applied but not logged is one
|
|
495
|
+
// the operator can read and cannot rebuild, and a rebuild is how the document survives a
|
|
496
|
+
// restart. The other order loses content; this order at worst repeats an idempotent apply.
|
|
497
|
+
this.#d.store.appendEnvelope(ownerAgentId, {
|
|
498
|
+
envelopeHash,
|
|
499
|
+
documentId: env.document_id,
|
|
500
|
+
senderAgentId: env.sender_agent_id,
|
|
501
|
+
docPrevHash: env.doc_prev_hash,
|
|
502
|
+
governanceParents: [...env.governance_parents],
|
|
503
|
+
signature: env.signature,
|
|
504
|
+
stateVector: env.state_vector,
|
|
505
|
+
payload: env.update,
|
|
506
|
+
kind: "update",
|
|
507
|
+
referencesEnvelopeHash: null,
|
|
508
|
+
// Recorded so the authorship binding for this peer is derived from what they SIGNED, not
|
|
509
|
+
// from a seam somebody has to remember to implement.
|
|
510
|
+
senderClientId: env.sender_client_id,
|
|
511
|
+
createdAtMs: nowMs,
|
|
512
|
+
});
|
|
513
|
+
this.#d.engine.applyUpdateOrThrow(live, env.update);
|
|
514
|
+
// §3.2 step 4: admit AND CLEAR THE QUARANTINE. This is the supersession closing — the held
|
|
515
|
+
// bytes are released, the chain bridge stub for the superseded envelope goes with them, and
|
|
516
|
+
// `document.supersession.admitted` finally has a producer. Without it the entries stayed held
|
|
517
|
+
// forever and the event was a name with nothing behind it.
|
|
518
|
+
if (env.doc_prev_hash !== null) {
|
|
519
|
+
this.#d.rejections.clearQuarantine(ownerAgentId, env.document_id, env.doc_prev_hash);
|
|
520
|
+
}
|
|
521
|
+
this.#d.logger.info("document.inbound.admitted", {
|
|
522
|
+
documentId: env.document_id,
|
|
523
|
+
senderAgentId: env.sender_agent_id,
|
|
524
|
+
envelopeHash,
|
|
525
|
+
correlationId,
|
|
526
|
+
});
|
|
527
|
+
return { ok: true, admitted: true, envelopeHash, duplicate: false };
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
//# sourceMappingURL=document-inbound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-inbound.js","sourceRoot":"","sources":["../src/document-inbound.ts"],"names":[],"mappings":"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"}
|