@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,516 @@
|
|
|
1
|
+
import { REFUSAL_KINDS } from "./refusal-reasons.js";
|
|
2
|
+
import { refusalRecurrence } from "./park-refusals.js";
|
|
3
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
4
|
+
import { TIER } from "./contacts-tier-migration.js";
|
|
5
|
+
import { MAX_REFUSALS_PER_READ, MAX_REFUSAL_READERS, } from "./session-node-types.js";
|
|
6
|
+
export class RefusalNotices {
|
|
7
|
+
#ctx;
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
this.#ctx = ctx;
|
|
10
|
+
}
|
|
11
|
+
/** A getter so the moved queries still read `this.#db` and narrow exactly as they did. */
|
|
12
|
+
get #db() {
|
|
13
|
+
return this.#ctx.db();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* DOD-M15-NO-SILENT-REFUSAL-1 review F6 — refusal notices that could NOT be persisted.
|
|
17
|
+
*
|
|
18
|
+
* Empty in every healthy daemon. It exists so that a database failure costs the restart property
|
|
19
|
+
* and nothing else: without it, the operator-facing surface for a refusal disappears entirely the
|
|
20
|
+
* moment the write fails, which is strictly worse than the in-memory Map this store replaced.
|
|
21
|
+
* `session.refusal.persist.failed` fires at ERROR on every entry that lands here.
|
|
22
|
+
*/
|
|
23
|
+
#refusalFallback = new Map();
|
|
24
|
+
/**
|
|
25
|
+
* The one read path behind both doors. `sessionId` narrows it; omitted, it spans the agent.
|
|
26
|
+
*
|
|
27
|
+
* A single implementation on purpose: the per-consumer rule and the order-of-magnitude rule are
|
|
28
|
+
* the two properties this unit must not lose, and two copies of them is two things to keep true.
|
|
29
|
+
*/
|
|
30
|
+
drainRefusals(agentName, consumerId, sessionId) {
|
|
31
|
+
const out = [];
|
|
32
|
+
let truncated = false;
|
|
33
|
+
const now = Date.now();
|
|
34
|
+
let agentId = null;
|
|
35
|
+
if (this.#db) {
|
|
36
|
+
try {
|
|
37
|
+
agentId = this.#ctx.requireAgentId(agentName);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// A name that resolves to no active agent has no notices by construction. Already logged by
|
|
41
|
+
// #requireAgentId; re-throwing would fail a read that has nothing to report.
|
|
42
|
+
agentId = null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (agentId !== null && this.#db) {
|
|
46
|
+
/**
|
|
47
|
+
* ⚠️ NEWEST FIRST, AND CAPPED — review F3, and the ordering is the load-bearing half.
|
|
48
|
+
*
|
|
49
|
+
* Read state is keyed on IPC connection id, so every new window and every restart is a
|
|
50
|
+
* consumer that has been told nothing, and the drain returns every notice ever recorded for
|
|
51
|
+
* that agent. Oldest-first and uncapped, the first thing an operator saw after a restart was a
|
|
52
|
+
* chronological archive whose top entry was the oldest refusal on record and whose newest —
|
|
53
|
+
* the one explaining the conversation that just went quiet — was at the bottom. That is a
|
|
54
|
+
* section people learn to scroll past, which is the failure this whole line exists to end.
|
|
55
|
+
*
|
|
56
|
+
* `LIMIT` is `+ 1` so the cap can be DETECTED rather than assumed; the extra row is dropped
|
|
57
|
+
* and `truncated` is reported to the caller, which says so on the list itself.
|
|
58
|
+
*
|
|
59
|
+
* ⚠️ `rowid DESC` is the TIEBREAK and it is load-bearing, not tidiness. `last_at` is
|
|
60
|
+
* `Date.now()`, so notices recorded in the same millisecond have no defined order and "newest
|
|
61
|
+
* first" was true only on average — measured by a test that recorded 30 notices in one tick
|
|
62
|
+
* and got them back in an order SQLite was free to choose. rowid is monotonic per insert, so
|
|
63
|
+
* the tiebreak is insertion order, which for a same-millisecond batch is exactly recency.
|
|
64
|
+
*/
|
|
65
|
+
const rows = (sessionId === undefined
|
|
66
|
+
? this.#db
|
|
67
|
+
.prepare(`SELECT n.session_id, n.reason, n.kind, n.impact, n.guidance, n.count, r.seen_count,
|
|
68
|
+
t.total AS lifetime_total, t.seeded AS lifetime_seeded,
|
|
69
|
+
t.first_at AS lifetime_first_at, t.last_at AS lifetime_last_at
|
|
70
|
+
FROM content_refusal_notices n
|
|
71
|
+
LEFT JOIN content_refusal_reads r
|
|
72
|
+
ON r.agent_id = n.agent_id AND r.session_id = n.session_id
|
|
73
|
+
AND r.reason = n.reason AND r.consumer_id = ?
|
|
74
|
+
LEFT JOIN content_refusal_totals t
|
|
75
|
+
ON t.agent_id = n.agent_id AND t.session_id = n.session_id
|
|
76
|
+
AND t.reason = n.reason
|
|
77
|
+
WHERE n.agent_id = ?
|
|
78
|
+
AND (r.seen_count IS NULL OR n.count >= r.seen_count * 10)
|
|
79
|
+
ORDER BY n.last_at DESC, n.rowid DESC LIMIT ?`)
|
|
80
|
+
.all(consumerId, agentId, MAX_REFUSALS_PER_READ + 1)
|
|
81
|
+
: this.#db
|
|
82
|
+
.prepare(`SELECT n.session_id, n.reason, n.kind, n.impact, n.guidance, n.count, r.seen_count,
|
|
83
|
+
t.total AS lifetime_total, t.seeded AS lifetime_seeded,
|
|
84
|
+
t.first_at AS lifetime_first_at, t.last_at AS lifetime_last_at
|
|
85
|
+
FROM content_refusal_notices n
|
|
86
|
+
LEFT JOIN content_refusal_reads r
|
|
87
|
+
ON r.agent_id = n.agent_id AND r.session_id = n.session_id
|
|
88
|
+
AND r.reason = n.reason AND r.consumer_id = ?
|
|
89
|
+
LEFT JOIN content_refusal_totals t
|
|
90
|
+
ON t.agent_id = n.agent_id AND t.session_id = n.session_id
|
|
91
|
+
AND t.reason = n.reason
|
|
92
|
+
WHERE n.agent_id = ? AND n.session_id = ?
|
|
93
|
+
AND (r.seen_count IS NULL OR n.count >= r.seen_count * 10)
|
|
94
|
+
ORDER BY n.last_at DESC, n.rowid DESC LIMIT ?`)
|
|
95
|
+
.all(consumerId, agentId, sessionId, MAX_REFUSALS_PER_READ + 1));
|
|
96
|
+
if (rows.length > MAX_REFUSALS_PER_READ) {
|
|
97
|
+
truncated = true;
|
|
98
|
+
rows.length = MAX_REFUSALS_PER_READ;
|
|
99
|
+
}
|
|
100
|
+
for (const row of rows) {
|
|
101
|
+
const firstTime = row.seen_count === null;
|
|
102
|
+
/**
|
|
103
|
+
* ⚠️ The unseen test is IN THE QUERY (review N4), and this line is a belt, not the gate.
|
|
104
|
+
*
|
|
105
|
+
* Applied only here, the `LIMIT` cut the newest 25 notices and THEN discarded the ones this
|
|
106
|
+
* consumer had already seen — so a consumer holding read rows for the newest 25 got an empty
|
|
107
|
+
* answer forever and a genuinely unseen notice at position 26 could never be reached. The
|
|
108
|
+
* cap has to cut UNSHOWN notices, which means the filter has to run before it.
|
|
109
|
+
*
|
|
110
|
+
* `seen_count` is at least 1 whenever it is set, so this cannot loop on zero.
|
|
111
|
+
*/
|
|
112
|
+
if (!firstTime && row.count < row.seen_count * 10)
|
|
113
|
+
continue;
|
|
114
|
+
this.#db
|
|
115
|
+
.prepare(`INSERT INTO content_refusal_reads
|
|
116
|
+
(agent_id, session_id, reason, consumer_id, seen_count, seen_at)
|
|
117
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
118
|
+
ON CONFLICT(agent_id, session_id, reason, consumer_id) DO UPDATE SET
|
|
119
|
+
seen_count = excluded.seen_count, seen_at = excluded.seen_at`)
|
|
120
|
+
.run(agentId, row.session_id, row.reason, consumerId, row.count, now);
|
|
121
|
+
this.#ctx.queries.evictOldestReads(agentId, row.session_id, row.reason);
|
|
122
|
+
out.push({
|
|
123
|
+
sessionId: row.session_id,
|
|
124
|
+
reason: row.reason,
|
|
125
|
+
kind: row.kind,
|
|
126
|
+
impact: row.impact,
|
|
127
|
+
guidance: row.guidance,
|
|
128
|
+
timesSinceDismissed: row.count,
|
|
129
|
+
/**
|
|
130
|
+
* DOD-M15-REFUSALTERMINAL-1 — three states, and they are three different claims.
|
|
131
|
+
*
|
|
132
|
+
* A counted total is a FIGURE. A seeded row is a FLOOR, and says so by using a different
|
|
133
|
+
* field name (review F1c). `null` means no totals row at all, which after the upgrade
|
|
134
|
+
* backfill can only happen when the notice write itself failed — reported as ABSENT
|
|
135
|
+
* rather than as the smaller number, because substituting it is the defect this unit
|
|
136
|
+
* exists to remove.
|
|
137
|
+
*/
|
|
138
|
+
...(row.lifetime_total === null
|
|
139
|
+
? {}
|
|
140
|
+
: row.lifetime_seeded === 1
|
|
141
|
+
? { timesTotalAtLeast: row.lifetime_total }
|
|
142
|
+
: { timesTotal: row.lifetime_total }),
|
|
143
|
+
/**
|
|
144
|
+
* `041-PARKSTUCK` Unit 2, property 2 — A LOOP SAYS THAT IT IS ONE.
|
|
145
|
+
*
|
|
146
|
+
* `times_total_at_least: 731` with nothing beside it reads as 731 things going wrong.
|
|
147
|
+
* The row knows better: it holds the first and last time this reason fired, so the
|
|
148
|
+
* cadence is a division rather than a guess. Absent when the row cannot support the
|
|
149
|
+
* claim — see `refusalRecurrence`.
|
|
150
|
+
*/
|
|
151
|
+
...(() => {
|
|
152
|
+
const r = row.lifetime_total === null || row.lifetime_first_at === null || row.lifetime_last_at === null
|
|
153
|
+
? null
|
|
154
|
+
: refusalRecurrence(row.lifetime_total, row.lifetime_first_at, row.lifetime_last_at,
|
|
155
|
+
// Review M5: the SAME flag the two fields above branch on. Reading it here is
|
|
156
|
+
// what stops the sentence asserting a figure the row records as a floor.
|
|
157
|
+
row.lifetime_seeded === 1);
|
|
158
|
+
return r === null ? {} : { recurrence: r };
|
|
159
|
+
})(),
|
|
160
|
+
...(firstTime ? {} : { repeat: true }),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* The unpersisted notices (review F6), under the SAME per-consumer and order-of-magnitude rules.
|
|
166
|
+
* Reading them differently would make a database failure change WHAT the operator is told rather
|
|
167
|
+
* than only how long it survives — and that difference is the thing hardest to notice.
|
|
168
|
+
*
|
|
169
|
+
* Collected separately and REVERSED before joining, not appended in place — review N2. A Map
|
|
170
|
+
* yields insertion order, which is oldest-first, so appending them straight after the DB half
|
|
171
|
+
* (which is newest-first) put the newest notices at the bottom on exactly the daemon where the
|
|
172
|
+
* fallback is the only half there is.
|
|
173
|
+
*/
|
|
174
|
+
const fromFallback = [];
|
|
175
|
+
for (const [key, perSession] of this.#refusalFallback) {
|
|
176
|
+
const sid = this.#ctx.unkey(key, agentName);
|
|
177
|
+
if (sid === null)
|
|
178
|
+
continue;
|
|
179
|
+
if (sessionId !== undefined && sid !== sessionId)
|
|
180
|
+
continue;
|
|
181
|
+
for (const [reason, notice] of perSession) {
|
|
182
|
+
const shownAt = notice.surfacedTo.get(consumerId);
|
|
183
|
+
const firstTime = shownAt === undefined;
|
|
184
|
+
if (!firstTime && notice.count < shownAt * 10)
|
|
185
|
+
continue;
|
|
186
|
+
notice.surfacedTo.set(consumerId, notice.count);
|
|
187
|
+
// Bounded like the table's read rows are (review N2): a consumer id is an IPC connection id,
|
|
188
|
+
// so without this a long-running daemon grows one entry per reconnect, in memory, on the
|
|
189
|
+
// very path that exists because the disk is already failing.
|
|
190
|
+
if (notice.surfacedTo.size > MAX_REFUSAL_READERS) {
|
|
191
|
+
const oldest = notice.surfacedTo.keys().next();
|
|
192
|
+
if (!oldest.done)
|
|
193
|
+
notice.surfacedTo.delete(oldest.value);
|
|
194
|
+
}
|
|
195
|
+
// `timesTotal` is deliberately absent: this notice exists because the durable write failed,
|
|
196
|
+
// so there is no lifetime record to report and inventing one from `notice.count` would
|
|
197
|
+
// restore the exact misreading this unit removes.
|
|
198
|
+
fromFallback.push({
|
|
199
|
+
sessionId: sid, reason, kind: notice.kind, impact: notice.impact,
|
|
200
|
+
guidance: notice.guidance, timesSinceDismissed: notice.count,
|
|
201
|
+
...(firstTime ? {} : { repeat: true }),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
out.push(...fromFallback.reverse());
|
|
206
|
+
/**
|
|
207
|
+
* ONE cap over BOTH halves — review N2.
|
|
208
|
+
*
|
|
209
|
+
* `LIMIT` governs the table only. A persistent database fault (a full disk, which is also the
|
|
210
|
+
* likeliest cause of `transcript_write_failed`) routes EVERY refusal to the fallback, so the cap
|
|
211
|
+
* this unit added was undone for exactly the daemon already in trouble.
|
|
212
|
+
*
|
|
213
|
+
* The truncation keeps the DB half preferentially, and that is the right bias: those rows are
|
|
214
|
+
* the ones that survive a restart, and they are already ordered newest-first.
|
|
215
|
+
*/
|
|
216
|
+
if (out.length > MAX_REFUSALS_PER_READ) {
|
|
217
|
+
truncated = true;
|
|
218
|
+
out.length = MAX_REFUSALS_PER_READ;
|
|
219
|
+
}
|
|
220
|
+
return { notices: out, truncated };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* ─── DOD-M15-NO-SILENT-REFUSAL-1: refusals the RECEIVING operator can actually see ────────────
|
|
224
|
+
*
|
|
225
|
+
* Every inbound refusal already logs a `reason`, an `impact` and a `guidance` — and they are
|
|
226
|
+
* good. They had no reader. From the receiving operator's chair a refused message simply never
|
|
227
|
+
* arrives: the conversation goes quiet with a full explanation sitting in a file they have no
|
|
228
|
+
* reason to open, and they conclude the other person stopped replying.
|
|
229
|
+
*
|
|
230
|
+
* **DURABLE, and that is the half that makes this useful.** The predecessor kept notices in a
|
|
231
|
+
* `Map` on this instance and drained them on the receive path for one session. So a restart lost
|
|
232
|
+
* them, and an agent NOBODY IS ATTENDING lost them too — the connection is live, the daemon is
|
|
233
|
+
* up, and the notice only ever reaches whoever happens to call `cello_receive` on that exact
|
|
234
|
+
* session. `cello_check_notifications` now reads them as its own inbox category.
|
|
235
|
+
*
|
|
236
|
+
* **DEDUPLICATED PER SESSION PER REASON, and that is the design, not an optimisation.** A skewed
|
|
237
|
+
* peer turns one problem into a flood: the first refusal of a kind is the signal, the ninetieth is
|
|
238
|
+
* noise that trains the operator to ignore the surface. `count` keeps the scale visible without
|
|
239
|
+
* repeating the alert.
|
|
240
|
+
*
|
|
241
|
+
* **NEVER carries the content.** It failed verification; surfacing it is the injection path the
|
|
242
|
+
* cross-check exists to close. The operator learns that a message was refused and why — never
|
|
243
|
+
* what it said.
|
|
244
|
+
*/
|
|
245
|
+
/**
|
|
246
|
+
* Record an inbound refusal for the operator. First of its kind per session is the signal.
|
|
247
|
+
*
|
|
248
|
+
* ⚠️ **DOES NOT THROW, and that is a decision with a cost — stated so it is not mistaken for an
|
|
249
|
+
* oversight.** Every call site here has already decided to refuse and is about to return a reason
|
|
250
|
+
* to its caller; a throw would replace that clean refusal with an exception on the ingest path,
|
|
251
|
+
* changing what the SENDER observes because this daemon could not file a note. So a persistence
|
|
252
|
+
* failure is logged at ERROR under `session.refusal.persist.failed`, carrying the reason, the
|
|
253
|
+
* impact and the guidance verbatim — the forensic record survives even when the operator-facing
|
|
254
|
+
* one does not. It is not silent; it is one surface short, and the log says which notice was lost.
|
|
255
|
+
*/
|
|
256
|
+
noteContentRefusal(agentName, sessionId, reason,
|
|
257
|
+
/**
|
|
258
|
+
* ALL THREE REQUIRED, and that is the enforcement rather than the convention.
|
|
259
|
+
*
|
|
260
|
+
* The DoD clause is "every reason calls this with an impact and a guidance", and an optional
|
|
261
|
+
* field makes that a thing a reviewer checks by reading thirteen call sites. `kind` is required
|
|
262
|
+
* for the same reason one level up: the header over a list of refusals is composed from it, and
|
|
263
|
+
* a notice that could omit it would silently inherit whichever header happened to be first.
|
|
264
|
+
*/
|
|
265
|
+
detail) {
|
|
266
|
+
try {
|
|
267
|
+
if (!this.#db)
|
|
268
|
+
throw new Error("database is not open");
|
|
269
|
+
const agentId = this.#ctx.requireAgentId(agentName);
|
|
270
|
+
const now = Date.now();
|
|
271
|
+
/**
|
|
272
|
+
* ⚠️ **BOTH WRITES OR NEITHER — review F6, and the comment this replaces was wrong.**
|
|
273
|
+
*
|
|
274
|
+
* It argued that putting the totals insert in the same `try` made the two "fail together".
|
|
275
|
+
* It does not: each `.run()` autocommits, so the notice could persist and the total throw —
|
|
276
|
+
* and the `catch` then ALSO writes an in-memory fallback entry for a notice that is already
|
|
277
|
+
* in the table. The drain unions the two halves without deduplicating on (session, reason),
|
|
278
|
+
* so the operator would see the same refusal TWICE, once with a lifetime figure and once
|
|
279
|
+
* without, one of them blaming a disk fault. Before this unit a single statement made that
|
|
280
|
+
* state impossible; the second statement is what created it.
|
|
281
|
+
*
|
|
282
|
+
* `ROLLBACK` is best-effort because SQLite may have aborted the transaction already — the
|
|
283
|
+
* same shape `agent-id-migration.ts` uses — and it must never mask the original error.
|
|
284
|
+
*/
|
|
285
|
+
this.#db.exec("BEGIN");
|
|
286
|
+
try {
|
|
287
|
+
// `count` grows on conflict; impact and guidance are refreshed, because a later refusal of the
|
|
288
|
+
// same reason may know more than the first (the salt branch has four causes and names them).
|
|
289
|
+
this.#db
|
|
290
|
+
.prepare(`INSERT INTO content_refusal_notices
|
|
291
|
+
(agent_id, session_id, reason, kind, impact, guidance, count, first_at, last_at)
|
|
292
|
+
VALUES (?, ?, ?, ?, ?, ?, 1, ?, ?)
|
|
293
|
+
ON CONFLICT(agent_id, session_id, reason) DO UPDATE SET
|
|
294
|
+
count = count + 1, kind = excluded.kind, impact = excluded.impact,
|
|
295
|
+
guidance = excluded.guidance, last_at = excluded.last_at`)
|
|
296
|
+
.run(agentId, sessionId, reason, detail.kind, detail.impact, detail.guidance, now, now);
|
|
297
|
+
/**
|
|
298
|
+
* DOD-M15-REFUSALTERMINAL-1 — the lifetime tally, in the SAME `try` on purpose.
|
|
299
|
+
*
|
|
300
|
+
* If the notice write failed there is no notice to hang a total off, and the fallback below
|
|
301
|
+
* has no durable counterpart to read — so the two must fail together. A total that survived a
|
|
302
|
+
* failed notice would be a number nobody could see, and one that was written twice for a
|
|
303
|
+
* retried notice would be worse than absent.
|
|
304
|
+
*/
|
|
305
|
+
this.#db
|
|
306
|
+
.prepare(
|
|
307
|
+
// `seeded` stays whatever the row already has. A row seeded at upgrade remains a LOWER
|
|
308
|
+
// BOUND for the life of that (session, reason) — counting forward from an incomplete
|
|
309
|
+
// figure does not recover the refusals dismissal already erased, and clearing the flag
|
|
310
|
+
// would turn "at least 58" into a claimed total of 59.
|
|
311
|
+
`INSERT INTO content_refusal_totals
|
|
312
|
+
(agent_id, session_id, reason, total, first_at, last_at, seeded)
|
|
313
|
+
VALUES (?, ?, ?, 1, ?, ?, 0)
|
|
314
|
+
ON CONFLICT(agent_id, session_id, reason) DO UPDATE SET
|
|
315
|
+
total = total + 1, last_at = excluded.last_at`)
|
|
316
|
+
.run(agentId, sessionId, reason, now, now);
|
|
317
|
+
this.#db.exec("COMMIT");
|
|
318
|
+
}
|
|
319
|
+
catch (inner) {
|
|
320
|
+
try {
|
|
321
|
+
this.#db.exec("ROLLBACK");
|
|
322
|
+
}
|
|
323
|
+
catch { /* already aborted by SQLite */ }
|
|
324
|
+
throw inner;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
catch (err) {
|
|
328
|
+
this.#ctx.logger.error("session.refusal.persist.failed", {
|
|
329
|
+
agentName, sessionId, reason,
|
|
330
|
+
impact: detail.impact,
|
|
331
|
+
guidance: detail.guidance,
|
|
332
|
+
error: extractErrorMessage(err),
|
|
333
|
+
consequence: "this refusal could not be written to the notice store, so it will not survive a restart. It is held in memory for this process instead, so the operator is still told while this daemon runs. The reason, impact and guidance above are the whole notice.",
|
|
334
|
+
});
|
|
335
|
+
/**
|
|
336
|
+
* DOD-M15-NO-SILENT-REFUSAL-1 review F6 — the fallback, and why it is not the silent kind.
|
|
337
|
+
*
|
|
338
|
+
* The store this replaced was an in-memory Map, which could not fail: recording a refusal was
|
|
339
|
+
* a `set`, so the receive door always had the notice for the life of the process. Making the
|
|
340
|
+
* store durable made it, in the failure case, LESS available than before — a DB write failure
|
|
341
|
+
* left no operator-facing surface at all, only a log line.
|
|
342
|
+
*
|
|
343
|
+
* So a failed write falls back to exactly what the Map did. This is not a fallback that hides
|
|
344
|
+
* a fault: the ERROR above fires every time, naming the notice and the cause, and what is lost
|
|
345
|
+
* is only the restart property — which is the property the database was unavailable for
|
|
346
|
+
* anyway. A silent fallback is one that makes a broken system look healthy; this one is
|
|
347
|
+
* announced, and it preserves the surface rather than substituting for it.
|
|
348
|
+
*/
|
|
349
|
+
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
350
|
+
let perSession = this.#refusalFallback.get(key);
|
|
351
|
+
if (!perSession) {
|
|
352
|
+
perSession = new Map();
|
|
353
|
+
this.#refusalFallback.set(key, perSession);
|
|
354
|
+
}
|
|
355
|
+
const existing = perSession.get(reason);
|
|
356
|
+
if (existing) {
|
|
357
|
+
existing.count += 1;
|
|
358
|
+
existing.kind = detail.kind;
|
|
359
|
+
existing.impact = detail.impact;
|
|
360
|
+
existing.guidance = detail.guidance;
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
perSession.set(reason, { ...detail, count: 1, surfacedTo: new Map() });
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* DOD-M15-NO-SILENT-REFUSAL-1 — the per-session byte cap, from the operator's chair.
|
|
368
|
+
*
|
|
369
|
+
* This is the harshest refusal on the inbound path and the one that reads least like a fault:
|
|
370
|
+
* once the cap is crossed, EVERY later message from that sender on that session is refused, for
|
|
371
|
+
* the life of the session. The counterparty is told nothing either, so from both chairs the other
|
|
372
|
+
* person simply stopped replying.
|
|
373
|
+
*
|
|
374
|
+
* One method rather than two copies because the cap is checked twice — once before the screening
|
|
375
|
+
* await and once after, against freshly-read totals — and a notice that differs between the two
|
|
376
|
+
* would describe a different refusal depending on timing.
|
|
377
|
+
*/
|
|
378
|
+
/**
|
|
379
|
+
* DOD-M15-REFUSEDEVIDENCE-1 — **THE BYTE CAP RETAINS NOTHING, and that is a ruling, not an
|
|
380
|
+
* oversight.**
|
|
381
|
+
*
|
|
382
|
+
* Retention is universal everywhere else in this method. Here it is not, because retaining would
|
|
383
|
+
* defeat the very bound it enforces: a session already over its storage budget cannot be given
|
|
384
|
+
* more storage as a reward for exceeding it, and `#getReceivedBytesTotal` counts quarantined bytes
|
|
385
|
+
* precisely so that budget is honest.
|
|
386
|
+
*
|
|
387
|
+
* Andre, 2026-09-03: *"The message limit is the message limit, already handled by the cap. If
|
|
388
|
+
* you're unknown and you have 25 MB and you just tried to send me one gig, well that's it."*
|
|
389
|
+
*
|
|
390
|
+
* The ABUSE is still evidenced — this notice records the reason, the cap and the tier, and every
|
|
391
|
+
* message the session did retain is still there. What is not kept is the oversized payload.
|
|
392
|
+
*/
|
|
393
|
+
noteSizeCapRefusal(agentName, sessionId, cap, tier) {
|
|
394
|
+
/**
|
|
395
|
+
* ⚠️ **IN MEGABYTES, WITH THE BYTES BESIDE THEM.** "26214400 bytes" is not a number anyone reads
|
|
396
|
+
* as 25 MB, and the operator being told a conversation just ended deserves to understand the
|
|
397
|
+
* limit that ended it at a glance. The raw figure stays because it is the exact bound.
|
|
398
|
+
*/
|
|
399
|
+
const mb = Math.round((cap / 1_048_576) * 10) / 10;
|
|
400
|
+
/**
|
|
401
|
+
* The access level as a QUOTED LOWERCASE LABEL, never a bare word.
|
|
402
|
+
*
|
|
403
|
+
* `their tier is UNKNOWN` reads as "we could not determine their tier" — the opposite of what it
|
|
404
|
+
* says. UNKNOWN is the NAME of the level a sender has before the operator adds them as a
|
|
405
|
+
* contact. Quoting it and lowercasing it makes it a label rather than a failure.
|
|
406
|
+
*/
|
|
407
|
+
const level = (Object.entries(TIER).find(([, v]) => v === tier)?.[0] ?? String(tier)).toLowerCase();
|
|
408
|
+
this.noteContentRefusal(agentName, sessionId, "session_size_limit_exceeded", {
|
|
409
|
+
kind: REFUSAL_KINDS.REFUSED,
|
|
410
|
+
impact: `This conversation has hit its size limit for this sender: ${mb} MB (${cap} bytes), which is the limit at their access level ("${level}"). The message was not delivered, and neither will anything else they send in this conversation. They were not told — from their side it sent normally.`,
|
|
411
|
+
guidance: `The limit is per conversation and does not reset, so waiting will not clear it. Start a NEW conversation with them to keep talking. If you trust them, raising their access level with cello_contact_set_tier gives them a larger limit next time — it does not revive this one. Tell them what happened: they have no way to know.`,
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Drain the refusals a GIVEN CONSUMER has not been shown yet, and remember what it was shown.
|
|
416
|
+
*
|
|
417
|
+
* ─── Why this is keyed by consumer, and not by a single flag ──────────────────────────────────
|
|
418
|
+
*
|
|
419
|
+
* It used to set one `surfaced: boolean` on the notice. Two MCP windows attending the same agent
|
|
420
|
+
* is the ordinary case, and under that flag whoever read FIRST consumed the notice — the second
|
|
421
|
+
* window was told nothing, permanently. **That is the same defect `takeReceivedContent` had**, and
|
|
422
|
+
* the comment above the delivery loop in `session-content-handlers.ts` spells out why it was
|
|
423
|
+
* removed: *"reading is non-destructive by construction. Nothing one consumer does mutates state
|
|
424
|
+
* another consumer reads."*
|
|
425
|
+
*
|
|
426
|
+
* ─── Why the count has a reader ───────────────────────────────────────────────────────────────
|
|
427
|
+
*
|
|
428
|
+
* A reason RE-ANNOUNCES to a consumer when its count has grown by an order of magnitude since that
|
|
429
|
+
* consumer last saw it (1 → 10 → 100 → …), marked `repeat: true`. That keeps the first refusal the
|
|
430
|
+
* signal and the ninetieth silent, which is the dedup's point, while still making a skew that has
|
|
431
|
+
* swallowed hundreds of messages visible — at a handful of announcements per session, not one per
|
|
432
|
+
* message.
|
|
433
|
+
*
|
|
434
|
+
* ─── What a restart does, deliberately ────────────────────────────────────────────────────────
|
|
435
|
+
*
|
|
436
|
+
* The notices survive; the read state is keyed by IPC connection id, which does not. So after a
|
|
437
|
+
* restart every notice is unseen again and the next reader is told. That is the correct direction:
|
|
438
|
+
* a fresh window has not been told anything, and re-announcing costs one line where staying silent
|
|
439
|
+
* costs the whole point of storing it.
|
|
440
|
+
*/
|
|
441
|
+
takeContentRefusals(agentName, sessionId,
|
|
442
|
+
/**
|
|
443
|
+
* REQUIRED, deliberately — no default.
|
|
444
|
+
*
|
|
445
|
+
* It had one (`"default"`), and a default is the defect this method was rewritten to remove,
|
|
446
|
+
* lying in wait: any future call site that omits the argument silently shares ONE bucket across
|
|
447
|
+
* every window, the first reader consumes the notice for all the others, and nothing fails to
|
|
448
|
+
* compile and no test goes red. The parameter existing is not the protection; being unable to
|
|
449
|
+
* forget it is.
|
|
450
|
+
*/
|
|
451
|
+
consumerId) {
|
|
452
|
+
// `sessionId` is dropped from each entry: the caller passed it in and every entry carries the
|
|
453
|
+
// same one, so repeating it back would be a field that can never say anything. The agent-wide
|
|
454
|
+
// door below keeps it, because there it is the only thing that says WHICH conversation.
|
|
455
|
+
//
|
|
456
|
+
// `truncated` is dropped too, and only here: one session's notices cannot reach the cap (the
|
|
457
|
+
// reasons are a bounded set), so a flag that can never be true is a field readers learn to skip.
|
|
458
|
+
return this.drainRefusals(agentName, consumerId, sessionId).notices.map(({ sessionId: _drop, ...rest }) => rest);
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* DOD-M15-NO-SILENT-REFUSAL-1: the operator has seen these and does not want to see them again.
|
|
462
|
+
*
|
|
463
|
+
* ⚠️ **WITHOUT THIS THE NOTICES ARE PERMANENT, and that is what makes people stop reading the
|
|
464
|
+
* inbox.** "Already shown you" is tracked per WINDOW — a new MCP connection has been told nothing,
|
|
465
|
+
* so it is told everything. Someone on an older build messages you, you sort it out with them,
|
|
466
|
+
* they upgrade, and every new session you ever open still opens with that refusal.
|
|
467
|
+
*
|
|
468
|
+
* Dismissing does NOT turn anything off. If the cause fires again the notice comes back, because
|
|
469
|
+
* a fresh refusal writes a fresh row. The operator is saying "I know", not "stop telling me".
|
|
470
|
+
*
|
|
471
|
+
* Returns how many were cleared, so the caller can say so rather than claiming a silent success.
|
|
472
|
+
*/
|
|
473
|
+
dismissContentRefusals(agentName, sessionId) {
|
|
474
|
+
if (!this.#db)
|
|
475
|
+
return 0;
|
|
476
|
+
let agentId;
|
|
477
|
+
try {
|
|
478
|
+
agentId = this.#ctx.requireAgentId(agentName);
|
|
479
|
+
}
|
|
480
|
+
catch {
|
|
481
|
+
return 0;
|
|
482
|
+
}
|
|
483
|
+
this.#refusalFallback.delete(this.#ctx.sessionKey(agentName, sessionId));
|
|
484
|
+
const res = this.#db
|
|
485
|
+
.prepare("DELETE FROM content_refusal_notices WHERE agent_id = ? AND session_id = ?")
|
|
486
|
+
.run(agentId, sessionId);
|
|
487
|
+
this.#db
|
|
488
|
+
.prepare("DELETE FROM content_refusal_reads WHERE agent_id = ? AND session_id = ?")
|
|
489
|
+
.run(agentId, sessionId);
|
|
490
|
+
return Number(res.changes);
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* DOD-M15-NO-SILENT-REFUSAL-1: every unshown refusal for an agent, ACROSS its sessions.
|
|
494
|
+
*
|
|
495
|
+
* The inbox's door. `takeContentRefusals` answers for one session because its caller already holds
|
|
496
|
+
* one; `cello_check_notifications` holds an agent and nothing else, and the case this whole line
|
|
497
|
+
* exists for is that nobody is attending any of that agent's sessions — so a per-session read
|
|
498
|
+
* cannot reach it. Same store, same per-consumer rule, same re-announce.
|
|
499
|
+
*/
|
|
500
|
+
takeAgentContentRefusals(agentName, consumerId) {
|
|
501
|
+
return this.drainRefusals(agentName, consumerId);
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Drop the IN-MEMORY fallback notices for one session.
|
|
505
|
+
*
|
|
506
|
+
* ⚠️ THE DURABLE ROWS ARE NOT TOUCHED, and the omission is deliberate rather than forgotten. They
|
|
507
|
+
* live in `content_refusal_notices` keyed on agent_id + session_id, and the question they answer —
|
|
508
|
+
* "why did my counterparty go quiet?" — outlives the session that produced it. Only the in-memory
|
|
509
|
+
* fallback, which exists for the case where the write to disk failed, is dropped here; leaving it
|
|
510
|
+
* would let a store that is already in trouble grow without bound in memory as well.
|
|
511
|
+
*/
|
|
512
|
+
evictSession(agentName, sessionId) {
|
|
513
|
+
this.#refusalFallback.delete(this.#ctx.sessionKey(agentName, sessionId));
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
//# sourceMappingURL=refusal-notices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusal-notices.js","sourceRoot":"","sources":["../src/refusal-notices.ts"],"names":[],"mappings":"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"}
|