@cello-protocol/daemon 0.0.227 → 0.0.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-admin-handlers.d.ts +56 -0
- package/dist/agent-admin-handlers.d.ts.map +1 -0
- package/dist/agent-admin-handlers.js +73 -0
- package/dist/agent-admin-handlers.js.map +1 -0
- package/dist/agent-handlers.d.ts +72 -0
- package/dist/agent-handlers.d.ts.map +1 -0
- package/dist/agent-handlers.js +604 -0
- package/dist/agent-handlers.js.map +1 -0
- package/dist/agent-id-migration.d.ts +70 -0
- package/dist/agent-id-migration.d.ts.map +1 -0
- package/dist/agent-id-migration.js +468 -0
- package/dist/agent-id-migration.js.map +1 -0
- package/dist/agent-loader.d.ts +37 -0
- package/dist/agent-loader.d.ts.map +1 -0
- package/dist/agent-loader.js +37 -0
- package/dist/agent-loader.js.map +1 -0
- package/dist/agent-selection-root.d.ts +29 -0
- package/dist/agent-selection-root.d.ts.map +1 -0
- package/dist/agent-selection-root.js +126 -0
- package/dist/agent-selection-root.js.map +1 -0
- package/dist/agent-selection.d.ts +73 -0
- package/dist/agent-selection.d.ts.map +1 -0
- package/dist/agent-selection.js +80 -0
- package/dist/agent-selection.js.map +1 -0
- package/dist/agent-settings-keys.d.ts +52 -0
- package/dist/agent-settings-keys.d.ts.map +1 -0
- package/dist/agent-settings-keys.js +114 -0
- package/dist/agent-settings-keys.js.map +1 -0
- package/dist/agent-state.d.ts +67 -0
- package/dist/agent-state.d.ts.map +1 -0
- package/dist/agent-state.js +66 -0
- package/dist/agent-state.js.map +1 -0
- package/dist/assignment-verify.d.ts +90 -0
- package/dist/assignment-verify.d.ts.map +1 -0
- package/dist/assignment-verify.js +301 -0
- package/dist/assignment-verify.js.map +1 -0
- package/dist/attendance-wiring.d.ts +23 -0
- package/dist/attendance-wiring.d.ts.map +1 -0
- package/dist/attendance-wiring.js +248 -0
- package/dist/attendance-wiring.js.map +1 -0
- package/dist/attestation-body.d.ts +47 -0
- package/dist/attestation-body.d.ts.map +1 -0
- package/dist/attestation-body.js +71 -0
- package/dist/attestation-body.js.map +1 -0
- package/dist/authorship-verification.d.ts +91 -0
- package/dist/authorship-verification.d.ts.map +1 -0
- package/dist/authorship-verification.js +532 -0
- package/dist/authorship-verification.js.map +1 -0
- package/dist/away-detection.d.ts +139 -0
- package/dist/away-detection.d.ts.map +1 -0
- package/dist/away-detection.js +186 -0
- package/dist/away-detection.js.map +1 -0
- package/dist/away-inbox-oneshot.d.ts +40 -0
- package/dist/away-inbox-oneshot.d.ts.map +1 -0
- package/dist/away-inbox-oneshot.js +311 -0
- package/dist/away-inbox-oneshot.js.map +1 -0
- package/dist/backup-restore-handlers.d.ts +10 -0
- package/dist/backup-restore-handlers.d.ts.map +1 -0
- package/dist/backup-restore-handlers.js +82 -0
- package/dist/backup-restore-handlers.js.map +1 -0
- package/dist/backup-restore.d.ts +102 -0
- package/dist/backup-restore.d.ts.map +1 -0
- package/dist/backup-restore.js +341 -0
- package/dist/backup-restore.js.map +1 -0
- package/dist/bin/cello-daemon.d.ts +13 -0
- package/dist/bin/cello-daemon.d.ts.map +1 -0
- package/dist/bin/cello-daemon.js.map +1 -0
- package/dist/boot-agents.d.ts +64 -0
- package/dist/boot-agents.d.ts.map +1 -0
- package/dist/boot-agents.js +241 -0
- package/dist/boot-agents.js.map +1 -0
- package/dist/boot-connection-state.d.ts +38 -0
- package/dist/boot-connection-state.d.ts.map +1 -0
- package/dist/boot-connection-state.js +95 -0
- package/dist/boot-connection-state.js.map +1 -0
- package/dist/boot-core.d.ts +36 -0
- package/dist/boot-core.d.ts.map +1 -0
- package/dist/boot-core.js +293 -0
- package/dist/boot-core.js.map +1 -0
- package/dist/boot-parked-content.d.ts +34 -0
- package/dist/boot-parked-content.d.ts.map +1 -0
- package/dist/boot-parked-content.js +528 -0
- package/dist/boot-parked-content.js.map +1 -0
- package/dist/boot-sweeps.d.ts +22 -0
- package/dist/boot-sweeps.d.ts.map +1 -0
- package/dist/boot-sweeps.js +51 -0
- package/dist/boot-sweeps.js.map +1 -0
- package/dist/bundled-consortium-manifest.d.ts +47 -0
- package/dist/bundled-consortium-manifest.d.ts.map +1 -0
- package/dist/bundled-consortium-manifest.js +116 -0
- package/dist/bundled-consortium-manifest.js.map +1 -0
- package/dist/cbor-blob-migration.d.ts +8 -0
- package/dist/cbor-blob-migration.d.ts.map +1 -0
- package/dist/cbor-blob-migration.js +116 -0
- package/dist/cbor-blob-migration.js.map +1 -0
- package/dist/challenge-verifier.d.ts +12 -0
- package/dist/challenge-verifier.d.ts.map +1 -0
- package/dist/challenge-verifier.js +11 -0
- package/dist/challenge-verifier.js.map +1 -0
- package/dist/channel-log-store.d.ts +80 -0
- package/dist/channel-log-store.d.ts.map +1 -0
- package/dist/channel-log-store.js +290 -0
- package/dist/channel-log-store.js.map +1 -0
- package/dist/close-commitment.d.ts +67 -0
- package/dist/close-commitment.d.ts.map +1 -0
- package/dist/close-commitment.js +78 -0
- package/dist/close-commitment.js.map +1 -0
- package/dist/close-session-handler.d.ts +94 -0
- package/dist/close-session-handler.d.ts.map +1 -0
- package/dist/close-session-handler.js +1418 -0
- package/dist/close-session-handler.js.map +1 -0
- package/dist/co-attendance.d.ts +29 -0
- package/dist/co-attendance.d.ts.map +1 -0
- package/dist/co-attendance.js +32 -0
- package/dist/co-attendance.js.map +1 -0
- package/dist/column-birth.d.ts +40 -0
- package/dist/column-birth.d.ts.map +1 -0
- package/dist/column-birth.js +61 -0
- package/dist/column-birth.js.map +1 -0
- package/dist/connect-or-start.d.ts +25 -0
- package/dist/connect-or-start.d.ts.map +1 -0
- package/dist/connect-or-start.js +175 -0
- package/dist/connect-or-start.js.map +1 -0
- package/dist/connection-agents.d.ts +16 -0
- package/dist/connection-agents.d.ts.map +1 -0
- package/dist/connection-agents.js +68 -0
- package/dist/connection-agents.js.map +1 -0
- package/dist/consent-migration.d.ts +49 -0
- package/dist/consent-migration.d.ts.map +1 -0
- package/dist/consent-migration.js +128 -0
- package/dist/consent-migration.js.map +1 -0
- package/dist/consortium-bootstrap.d.ts +138 -0
- package/dist/consortium-bootstrap.d.ts.map +1 -0
- package/dist/consortium-bootstrap.js +339 -0
- package/dist/consortium-bootstrap.js.map +1 -0
- package/dist/consortium-fingerprint.d.ts +115 -0
- package/dist/consortium-fingerprint.d.ts.map +1 -0
- package/dist/consortium-fingerprint.js +175 -0
- package/dist/consortium-fingerprint.js.map +1 -0
- package/dist/contact-handlers.d.ts +59 -0
- package/dist/contact-handlers.d.ts.map +1 -0
- package/dist/contact-handlers.js +343 -0
- package/dist/contact-handlers.js.map +1 -0
- package/dist/contact-pubkey-case.d.ts +65 -0
- package/dist/contact-pubkey-case.d.ts.map +1 -0
- package/dist/contact-pubkey-case.js +136 -0
- package/dist/contact-pubkey-case.js.map +1 -0
- package/dist/contacts-tier-migration.d.ts +90 -0
- package/dist/contacts-tier-migration.d.ts.map +1 -0
- package/dist/contacts-tier-migration.js +150 -0
- package/dist/contacts-tier-migration.js.map +1 -0
- package/dist/content-encryption-status.d.ts +111 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +158 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +90 -0
- package/dist/content-park-client.d.ts.map +1 -0
- package/dist/content-park-client.js +362 -0
- package/dist/content-park-client.js.map +1 -0
- package/dist/content-park.d.ts +52 -0
- package/dist/content-park.d.ts.map +1 -0
- package/dist/content-park.js +1309 -0
- package/dist/content-park.js.map +1 -0
- package/dist/cross-node-negotiation.d.ts +44 -0
- package/dist/cross-node-negotiation.d.ts.map +1 -0
- package/dist/cross-node-negotiation.js +34 -0
- package/dist/cross-node-negotiation.js.map +1 -0
- package/dist/daemon-handle.d.ts +57 -0
- package/dist/daemon-handle.d.ts.map +1 -0
- package/dist/daemon-handle.js +2 -0
- package/dist/daemon-handle.js.map +1 -0
- package/dist/daemon-status-report.d.ts +50 -0
- package/dist/daemon-status-report.d.ts.map +1 -0
- package/dist/daemon-status-report.js +81 -0
- package/dist/daemon-status-report.js.map +1 -0
- package/dist/daemon.d.ts +45 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +1177 -0
- package/dist/daemon.js.map +1 -0
- package/dist/db-identity-store.d.ts +159 -0
- package/dist/db-identity-store.d.ts.map +1 -0
- package/dist/db-identity-store.js +502 -0
- package/dist/db-identity-store.js.map +1 -0
- package/dist/delivery-open-registry.d.ts +92 -0
- package/dist/delivery-open-registry.d.ts.map +1 -0
- package/dist/delivery-open-registry.js +121 -0
- package/dist/delivery-open-registry.js.map +1 -0
- package/dist/delivery-session-suspects.d.ts +56 -0
- package/dist/delivery-session-suspects.d.ts.map +1 -0
- package/dist/delivery-session-suspects.js +94 -0
- package/dist/delivery-session-suspects.js.map +1 -0
- package/dist/directory-auth-posture.d.ts +87 -0
- package/dist/directory-auth-posture.d.ts.map +1 -0
- package/dist/directory-auth-posture.js +134 -0
- package/dist/directory-auth-posture.js.map +1 -0
- package/dist/directory-bootstrap.d.ts +310 -0
- package/dist/directory-bootstrap.d.ts.map +1 -0
- package/dist/directory-bootstrap.js +557 -0
- package/dist/directory-bootstrap.js.map +1 -0
- package/dist/directory-connect.d.ts +27 -0
- package/dist/directory-connect.d.ts.map +1 -0
- package/dist/directory-connect.js +106 -0
- package/dist/directory-connect.js.map +1 -0
- package/dist/disconnect-cleanup.d.ts +51 -0
- package/dist/disconnect-cleanup.d.ts.map +1 -0
- package/dist/disconnect-cleanup.js +72 -0
- package/dist/disconnect-cleanup.js.map +1 -0
- package/dist/document-amendment-store.d.ts +120 -0
- package/dist/document-amendment-store.d.ts.map +1 -0
- package/dist/document-amendment-store.js +266 -0
- package/dist/document-amendment-store.js.map +1 -0
- package/dist/document-delivery-transport.d.ts +168 -0
- package/dist/document-delivery-transport.d.ts.map +1 -0
- package/dist/document-delivery-transport.js +206 -0
- package/dist/document-delivery-transport.js.map +1 -0
- package/dist/document-engine.d.ts +134 -0
- package/dist/document-engine.d.ts.map +1 -0
- package/dist/document-engine.js +282 -0
- package/dist/document-engine.js.map +1 -0
- package/dist/document-flag.d.ts +58 -0
- package/dist/document-flag.d.ts.map +1 -0
- package/dist/document-flag.js +70 -0
- package/dist/document-flag.js.map +1 -0
- package/dist/document-frame-router.d.ts +245 -0
- package/dist/document-frame-router.d.ts.map +1 -0
- package/dist/document-frame-router.js +397 -0
- package/dist/document-frame-router.js.map +1 -0
- package/dist/document-gate-wiring.d.ts +61 -0
- package/dist/document-gate-wiring.d.ts.map +1 -0
- package/dist/document-gate-wiring.js +125 -0
- package/dist/document-gate-wiring.js.map +1 -0
- package/dist/document-gate.d.ts +149 -0
- package/dist/document-gate.d.ts.map +1 -0
- package/dist/document-gate.js +509 -0
- package/dist/document-gate.js.map +1 -0
- package/dist/document-handlers.d.ts +47 -0
- package/dist/document-handlers.d.ts.map +1 -0
- package/dist/document-handlers.js +2203 -0
- package/dist/document-handlers.js.map +1 -0
- package/dist/document-handshake.d.ts +176 -0
- package/dist/document-handshake.d.ts.map +1 -0
- package/dist/document-handshake.js +452 -0
- package/dist/document-handshake.js.map +1 -0
- package/dist/document-inbound.d.ts +162 -0
- package/dist/document-inbound.d.ts.map +1 -0
- package/dist/document-inbound.js +530 -0
- package/dist/document-inbound.js.map +1 -0
- package/dist/document-json.d.ts +120 -0
- package/dist/document-json.d.ts.map +1 -0
- package/dist/document-json.js +191 -0
- package/dist/document-json.js.map +1 -0
- package/dist/document-layer.d.ts +215 -0
- package/dist/document-layer.d.ts.map +1 -0
- package/dist/document-layer.js +1025 -0
- package/dist/document-layer.js.map +1 -0
- package/dist/document-lifecycle.d.ts +52 -0
- package/dist/document-lifecycle.d.ts.map +1 -0
- package/dist/document-lifecycle.js +134 -0
- package/dist/document-lifecycle.js.map +1 -0
- package/dist/document-live-docs.d.ts +58 -0
- package/dist/document-live-docs.d.ts.map +1 -0
- package/dist/document-live-docs.js +126 -0
- package/dist/document-live-docs.js.map +1 -0
- package/dist/document-notify.d.ts +228 -0
- package/dist/document-notify.d.ts.map +1 -0
- package/dist/document-notify.js +580 -0
- package/dist/document-notify.js.map +1 -0
- package/dist/document-profile.d.ts +61 -0
- package/dist/document-profile.d.ts.map +1 -0
- package/dist/document-profile.js +112 -0
- package/dist/document-profile.js.map +1 -0
- package/dist/document-publish.d.ts +87 -0
- package/dist/document-publish.d.ts.map +1 -0
- package/dist/document-publish.js +173 -0
- package/dist/document-publish.js.map +1 -0
- package/dist/document-reachability.d.ts +42 -0
- package/dist/document-reachability.d.ts.map +1 -0
- package/dist/document-reachability.js +80 -0
- package/dist/document-reachability.js.map +1 -0
- package/dist/document-reconcile-engine.d.ts +66 -0
- package/dist/document-reconcile-engine.d.ts.map +1 -0
- package/dist/document-reconcile-engine.js +225 -0
- package/dist/document-reconcile-engine.js.map +1 -0
- package/dist/document-reconcile-scheduler.d.ts +163 -0
- package/dist/document-reconcile-scheduler.d.ts.map +1 -0
- package/dist/document-reconcile-scheduler.js +303 -0
- package/dist/document-reconcile-scheduler.js.map +1 -0
- package/dist/document-rejection.d.ts +251 -0
- package/dist/document-rejection.d.ts.map +1 -0
- package/dist/document-rejection.js +435 -0
- package/dist/document-rejection.js.map +1 -0
- package/dist/document-screen.d.ts +114 -0
- package/dist/document-screen.d.ts.map +1 -0
- package/dist/document-screen.js +223 -0
- package/dist/document-screen.js.map +1 -0
- package/dist/document-store.d.ts +372 -0
- package/dist/document-store.d.ts.map +1 -0
- package/dist/document-store.js +931 -0
- package/dist/document-store.js.map +1 -0
- package/dist/document-surface.d.ts +32 -0
- package/dist/document-surface.d.ts.map +1 -0
- package/dist/document-surface.js +151 -0
- package/dist/document-surface.js.map +1 -0
- package/dist/document-types.d.ts +94 -0
- package/dist/document-types.d.ts.map +1 -0
- package/dist/document-types.js +90 -0
- package/dist/document-types.js.map +1 -0
- package/dist/document-watch.d.ts +69 -0
- package/dist/document-watch.d.ts.map +1 -0
- package/dist/document-watch.js +108 -0
- package/dist/document-watch.js.map +1 -0
- package/dist/document-wiring.d.ts +53 -0
- package/dist/document-wiring.d.ts.map +1 -0
- package/dist/document-wiring.js +323 -0
- package/dist/document-wiring.js.map +1 -0
- package/dist/document-write-guard.d.ts +66 -0
- package/dist/document-write-guard.d.ts.map +1 -0
- package/dist/document-write-guard.js +98 -0
- package/dist/document-write-guard.js.map +1 -0
- package/dist/document-write-path.d.ts +94 -0
- package/dist/document-write-path.d.ts.map +1 -0
- package/dist/document-write-path.js +530 -0
- package/dist/document-write-path.js.map +1 -0
- package/dist/error-message.d.ts +7 -0
- package/dist/error-message.d.ts.map +1 -0
- package/dist/error-message.js +19 -0
- package/dist/error-message.js.map +1 -0
- package/dist/file-manifest-provider.d.ts +37 -0
- package/dist/file-manifest-provider.d.ts.map +1 -0
- package/dist/file-manifest-provider.js +105 -0
- package/dist/file-manifest-provider.js.map +1 -0
- package/dist/frame-values.d.ts +3 -0
- package/dist/frame-values.d.ts.map +1 -0
- package/dist/frame-values.js +84 -0
- package/dist/frame-values.js.map +1 -0
- package/dist/frontier-mismatch.d.ts +73 -0
- package/dist/frontier-mismatch.d.ts.map +1 -0
- package/dist/frontier-mismatch.js +89 -0
- package/dist/frontier-mismatch.js.map +1 -0
- package/dist/gateway-config-handlers.d.ts +26 -0
- package/dist/gateway-config-handlers.d.ts.map +1 -0
- package/dist/gateway-config-handlers.js +429 -0
- package/dist/gateway-config-handlers.js.map +1 -0
- package/dist/held-content.d.ts +145 -0
- package/dist/held-content.d.ts.map +1 -0
- package/dist/held-content.js +389 -0
- package/dist/held-content.js.map +1 -0
- package/dist/http-manifest-poll.d.ts +67 -0
- package/dist/http-manifest-poll.d.ts.map +1 -0
- package/dist/http-manifest-poll.js +150 -0
- package/dist/http-manifest-poll.js.map +1 -0
- package/dist/identity-migration.d.ts +40 -0
- package/dist/identity-migration.d.ts.map +1 -0
- package/dist/identity-migration.js +461 -0
- package/dist/identity-migration.js.map +1 -0
- package/dist/inbound-refusals.d.ts +283 -0
- package/dist/inbound-refusals.d.ts.map +1 -0
- package/dist/inbound-refusals.js +919 -0
- package/dist/inbound-refusals.js.map +1 -0
- package/dist/inbound-seal-request.d.ts +32 -0
- package/dist/inbound-seal-request.d.ts.map +1 -0
- package/dist/inbound-seal-request.js +228 -0
- package/dist/inbound-seal-request.js.map +1 -0
- package/dist/inbound-sessions.d.ts +291 -0
- package/dist/inbound-sessions.d.ts.map +1 -0
- package/dist/inbound-sessions.js +1609 -0
- package/dist/inbound-sessions.js.map +1 -0
- package/dist/inclusion-proof-handlers.d.ts +43 -0
- package/dist/inclusion-proof-handlers.d.ts.map +1 -0
- package/dist/inclusion-proof-handlers.js +565 -0
- package/dist/inclusion-proof-handlers.js.map +1 -0
- package/dist/inclusion-proof.d.ts +151 -0
- package/dist/inclusion-proof.d.ts.map +1 -0
- package/dist/inclusion-proof.js +228 -0
- package/dist/inclusion-proof.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/initiate-session-handler.d.ts +55 -0
- package/dist/initiate-session-handler.d.ts.map +1 -0
- package/dist/initiate-session-handler.js +310 -0
- package/dist/initiate-session-handler.js.map +1 -0
- package/dist/ipc-client.d.ts +31 -0
- package/dist/ipc-client.d.ts.map +1 -0
- package/dist/ipc-client.js +113 -0
- package/dist/ipc-client.js.map +1 -0
- package/dist/ipc-server.d.ts +63 -0
- package/dist/ipc-server.d.ts.map +1 -0
- package/dist/ipc-server.js +429 -0
- package/dist/ipc-server.js.map +1 -0
- package/dist/ipc-surface.d.ts +44 -0
- package/dist/ipc-surface.d.ts.map +1 -0
- package/dist/ipc-surface.js +107 -0
- package/dist/ipc-surface.js.map +1 -0
- package/dist/line-lcs.d.ts +51 -0
- package/dist/line-lcs.d.ts.map +1 -0
- package/dist/line-lcs.js +71 -0
- package/dist/line-lcs.js.map +1 -0
- package/dist/lock-file.d.ts +39 -0
- package/dist/lock-file.d.ts.map +1 -0
- package/dist/lock-file.js +120 -0
- package/dist/lock-file.js.map +1 -0
- package/dist/log-collapse.d.ts +66 -0
- package/dist/log-collapse.d.ts.map +1 -0
- package/dist/log-collapse.js +244 -0
- package/dist/log-collapse.js.map +1 -0
- package/dist/log-rotate.d.ts +67 -0
- package/dist/log-rotate.d.ts.map +1 -0
- package/dist/log-rotate.js +134 -0
- package/dist/log-rotate.js.map +1 -0
- package/dist/manifest-deps.d.ts +25 -0
- package/dist/manifest-deps.d.ts.map +1 -0
- package/dist/manifest-deps.js +151 -0
- package/dist/manifest-deps.js.map +1 -0
- package/dist/manifest-poll-scheduler.d.ts +31 -0
- package/dist/manifest-poll-scheduler.d.ts.map +1 -0
- package/dist/manifest-poll-scheduler.js +59 -0
- package/dist/manifest-poll-scheduler.js.map +1 -0
- package/dist/manifest-validity.d.ts +153 -0
- package/dist/manifest-validity.d.ts.map +1 -0
- package/dist/manifest-validity.js +268 -0
- package/dist/manifest-validity.js.map +1 -0
- package/dist/manifest-version-store-db.d.ts +24 -0
- package/dist/manifest-version-store-db.d.ts.map +1 -0
- package/dist/manifest-version-store-db.js +58 -0
- package/dist/manifest-version-store-db.js.map +1 -0
- package/dist/manifest-version-store.d.ts +16 -0
- package/dist/manifest-version-store.d.ts.map +1 -0
- package/dist/manifest-version-store.js +15 -0
- package/dist/manifest-version-store.js.map +1 -0
- package/dist/network-directory-node.d.ts +136 -0
- package/dist/network-directory-node.d.ts.map +1 -0
- package/dist/network-directory-node.js +810 -0
- package/dist/network-directory-node.js.map +1 -0
- package/dist/nonce-dedup.d.ts +68 -0
- package/dist/nonce-dedup.d.ts.map +1 -0
- package/dist/nonce-dedup.js +205 -0
- package/dist/nonce-dedup.js.map +1 -0
- package/dist/notification-dispatcher.d.ts +92 -0
- package/dist/notification-dispatcher.d.ts.map +1 -0
- package/dist/notification-dispatcher.js +210 -0
- package/dist/notification-dispatcher.js.map +1 -0
- package/dist/notification-handlers.d.ts +53 -0
- package/dist/notification-handlers.d.ts.map +1 -0
- package/dist/notification-handlers.js +461 -0
- package/dist/notification-handlers.js.map +1 -0
- package/dist/onboarding-guidance.d.ts +79 -0
- package/dist/onboarding-guidance.d.ts.map +1 -0
- package/dist/onboarding-guidance.js +95 -0
- package/dist/onboarding-guidance.js.map +1 -0
- package/dist/operator-guidance.d.ts +25 -0
- package/dist/operator-guidance.d.ts.map +1 -0
- package/dist/operator-guidance.js +50 -0
- package/dist/operator-guidance.js.map +1 -0
- package/dist/orphan-triage.d.ts +130 -0
- package/dist/orphan-triage.d.ts.map +1 -0
- package/dist/orphan-triage.js +207 -0
- package/dist/orphan-triage.js.map +1 -0
- package/dist/outbound-sessions.d.ts +126 -0
- package/dist/outbound-sessions.d.ts.map +1 -0
- package/dist/outbound-sessions.js +1052 -0
- package/dist/outbound-sessions.js.map +1 -0
- package/dist/park-envelope.d.ts +329 -0
- package/dist/park-envelope.d.ts.map +1 -0
- package/dist/park-envelope.js +509 -0
- package/dist/park-envelope.js.map +1 -0
- package/dist/park-recovery.d.ts +273 -0
- package/dist/park-recovery.d.ts.map +1 -0
- package/dist/park-recovery.js +717 -0
- package/dist/park-recovery.js.map +1 -0
- package/dist/park-refusals.d.ts +147 -0
- package/dist/park-refusals.d.ts.map +1 -0
- package/dist/park-refusals.js +331 -0
- package/dist/park-refusals.js.map +1 -0
- package/dist/quarantine-framing.d.ts +92 -0
- package/dist/quarantine-framing.d.ts.map +1 -0
- package/dist/quarantine-framing.js +111 -0
- package/dist/quarantine-framing.js.map +1 -0
- package/dist/reconnect-drain.d.ts +22 -0
- package/dist/reconnect-drain.d.ts.map +1 -0
- package/dist/reconnect-drain.js +65 -0
- package/dist/reconnect-drain.js.map +1 -0
- package/dist/recovered-position.d.ts +14 -0
- package/dist/recovered-position.d.ts.map +1 -0
- package/dist/recovered-position.js +59 -0
- package/dist/recovered-position.js.map +1 -0
- package/dist/refusal-notices.d.ts +196 -0
- package/dist/refusal-notices.d.ts.map +1 -0
- package/dist/refusal-notices.js +516 -0
- package/dist/refusal-notices.js.map +1 -0
- package/dist/refusal-reasons.d.ts +245 -0
- package/dist/refusal-reasons.d.ts.map +1 -0
- package/dist/refusal-reasons.js +363 -0
- package/dist/refusal-reasons.js.map +1 -0
- package/dist/register-handler.d.ts +36 -0
- package/dist/register-handler.d.ts.map +1 -0
- package/dist/register-handler.js +285 -0
- package/dist/register-handler.js.map +1 -0
- package/dist/registration-context.d.ts +72 -0
- package/dist/registration-context.d.ts.map +1 -0
- package/dist/registration-context.js +126 -0
- package/dist/registration-context.js.map +1 -0
- package/dist/registration-manager.d.ts +94 -0
- package/dist/registration-manager.d.ts.map +1 -0
- package/dist/registration-manager.js +585 -0
- package/dist/registration-manager.js.map +1 -0
- package/dist/registration-persistence.d.ts +183 -0
- package/dist/registration-persistence.d.ts.map +1 -0
- package/dist/registration-persistence.js +263 -0
- package/dist/registration-persistence.js.map +1 -0
- package/dist/registry-poll.d.ts +52 -0
- package/dist/registry-poll.d.ts.map +1 -0
- package/dist/registry-poll.js +140 -0
- package/dist/registry-poll.js.map +1 -0
- package/dist/registry-version-store-db.d.ts +22 -0
- package/dist/registry-version-store-db.d.ts.map +1 -0
- package/dist/registry-version-store-db.js +50 -0
- package/dist/registry-version-store-db.js.map +1 -0
- package/dist/relay-endpoints.d.ts +18 -0
- package/dist/relay-endpoints.d.ts.map +1 -0
- package/dist/relay-endpoints.js +9 -0
- package/dist/relay-endpoints.js.map +1 -0
- package/dist/relay-only.d.ts +140 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +193 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/relay-receipt-store.d.ts +155 -0
- package/dist/relay-receipt-store.d.ts.map +1 -0
- package/dist/relay-receipt-store.js +284 -0
- package/dist/relay-receipt-store.js.map +1 -0
- package/dist/relay-reconnect.d.ts +32 -0
- package/dist/relay-reconnect.d.ts.map +1 -0
- package/dist/relay-reconnect.js +29 -0
- package/dist/relay-reconnect.js.map +1 -0
- package/dist/reply-lag.d.ts +11 -0
- package/dist/reply-lag.d.ts.map +1 -0
- package/dist/reply-lag.js +46 -0
- package/dist/reply-lag.js.map +1 -0
- package/dist/resolve-named-agent.d.ts +49 -0
- package/dist/resolve-named-agent.d.ts.map +1 -0
- package/dist/resolve-named-agent.js +77 -0
- package/dist/resolve-named-agent.js.map +1 -0
- package/dist/restart-seal-resolver.d.ts +110 -0
- package/dist/restart-seal-resolver.d.ts.map +1 -0
- package/dist/restart-seal-resolver.js +353 -0
- package/dist/restart-seal-resolver.js.map +1 -0
- package/dist/resume-last-seen.d.ts +15 -0
- package/dist/resume-last-seen.d.ts.map +1 -0
- package/dist/resume-last-seen.js +44 -0
- package/dist/resume-last-seen.js.map +1 -0
- package/dist/retry-queue.d.ts +203 -0
- package/dist/retry-queue.d.ts.map +1 -0
- package/dist/retry-queue.js +701 -0
- package/dist/retry-queue.js.map +1 -0
- package/dist/roster-freshness.d.ts +160 -0
- package/dist/roster-freshness.d.ts.map +1 -0
- package/dist/roster-freshness.js +250 -0
- package/dist/roster-freshness.js.map +1 -0
- package/dist/screening-status.d.ts +15 -0
- package/dist/screening-status.d.ts.map +1 -0
- package/dist/screening-status.js +65 -0
- package/dist/screening-status.js.map +1 -0
- package/dist/seal-carried-close.d.ts +37 -0
- package/dist/seal-carried-close.d.ts.map +1 -0
- package/dist/seal-carried-close.js +179 -0
- package/dist/seal-carried-close.js.map +1 -0
- package/dist/seal-certificate-pull.d.ts +79 -0
- package/dist/seal-certificate-pull.d.ts.map +1 -0
- package/dist/seal-certificate-pull.js +186 -0
- package/dist/seal-certificate-pull.js.map +1 -0
- package/dist/seal-certified-root-check.d.ts +37 -0
- package/dist/seal-certified-root-check.d.ts.map +1 -0
- package/dist/seal-certified-root-check.js +127 -0
- package/dist/seal-certified-root-check.js.map +1 -0
- package/dist/seal-coordinator.d.ts +118 -0
- package/dist/seal-coordinator.d.ts.map +1 -0
- package/dist/seal-coordinator.js +927 -0
- package/dist/seal-coordinator.js.map +1 -0
- package/dist/seal-escalation.d.ts +80 -0
- package/dist/seal-escalation.d.ts.map +1 -0
- package/dist/seal-escalation.js +283 -0
- package/dist/seal-escalation.js.map +1 -0
- package/dist/seal-evidence-root-check.d.ts +70 -0
- package/dist/seal-evidence-root-check.d.ts.map +1 -0
- package/dist/seal-evidence-root-check.js +199 -0
- package/dist/seal-evidence-root-check.js.map +1 -0
- package/dist/seal-failure-store.d.ts +139 -0
- package/dist/seal-failure-store.d.ts.map +1 -0
- package/dist/seal-failure-store.js +207 -0
- package/dist/seal-failure-store.js.map +1 -0
- package/dist/seal-flows.d.ts +107 -0
- package/dist/seal-flows.d.ts.map +1 -0
- package/dist/seal-flows.js +638 -0
- package/dist/seal-flows.js.map +1 -0
- package/dist/seal-frontier-verify.d.ts +103 -0
- package/dist/seal-frontier-verify.d.ts.map +1 -0
- package/dist/seal-frontier-verify.js +143 -0
- package/dist/seal-frontier-verify.js.map +1 -0
- package/dist/seal-leaf.d.ts +58 -0
- package/dist/seal-leaf.d.ts.map +1 -0
- package/dist/seal-leaf.js +112 -0
- package/dist/seal-leaf.js.map +1 -0
- package/dist/seal-legibility-tbs.d.ts +25 -0
- package/dist/seal-legibility-tbs.d.ts.map +1 -0
- package/dist/seal-legibility-tbs.js +77 -0
- package/dist/seal-legibility-tbs.js.map +1 -0
- package/dist/seal-local-terminus.d.ts +41 -0
- package/dist/seal-local-terminus.d.ts.map +1 -0
- package/dist/seal-local-terminus.js +170 -0
- package/dist/seal-local-terminus.js.map +1 -0
- package/dist/seal-receipt-upgrade.d.ts +30 -0
- package/dist/seal-receipt-upgrade.d.ts.map +1 -0
- package/dist/seal-receipt-upgrade.js +49 -0
- package/dist/seal-receipt-upgrade.js.map +1 -0
- package/dist/seal-relay-silence.d.ts +51 -0
- package/dist/seal-relay-silence.d.ts.map +1 -0
- package/dist/seal-relay-silence.js +76 -0
- package/dist/seal-relay-silence.js.map +1 -0
- package/dist/seal-settle.d.ts +38 -0
- package/dist/seal-settle.d.ts.map +1 -0
- package/dist/seal-settle.js +33 -0
- package/dist/seal-settle.js.map +1 -0
- package/dist/seal-upgrade.d.ts +107 -0
- package/dist/seal-upgrade.d.ts.map +1 -0
- package/dist/seal-upgrade.js +200 -0
- package/dist/seal-upgrade.js.map +1 -0
- package/dist/sealed-conversation.d.ts +36 -0
- package/dist/sealed-conversation.d.ts.map +1 -0
- package/dist/sealed-conversation.js +171 -0
- package/dist/sealed-conversation.js.map +1 -0
- package/dist/sealed-leaf-set.d.ts +92 -0
- package/dist/sealed-leaf-set.d.ts.map +1 -0
- package/dist/sealed-leaf-set.js +122 -0
- package/dist/sealed-leaf-set.js.map +1 -0
- package/dist/send-claims.d.ts +56 -0
- package/dist/send-claims.d.ts.map +1 -0
- package/dist/send-claims.js +50 -0
- package/dist/send-claims.js.map +1 -0
- package/dist/session-assignment-parser.d.ts +104 -0
- package/dist/session-assignment-parser.d.ts.map +1 -0
- package/dist/session-assignment-parser.js +345 -0
- package/dist/session-assignment-parser.js.map +1 -0
- package/dist/session-category.d.ts +19 -0
- package/dist/session-category.d.ts.map +1 -0
- package/dist/session-category.js +14 -0
- package/dist/session-category.js.map +1 -0
- package/dist/session-ceremony.d.ts +297 -0
- package/dist/session-ceremony.d.ts.map +1 -0
- package/dist/session-ceremony.js +964 -0
- package/dist/session-ceremony.js.map +1 -0
- package/dist/session-closed.d.ts +79 -0
- package/dist/session-closed.d.ts.map +1 -0
- package/dist/session-closed.js +189 -0
- package/dist/session-closed.js.map +1 -0
- package/dist/session-connection-gater.d.ts +148 -0
- package/dist/session-connection-gater.d.ts.map +1 -0
- package/dist/session-connection-gater.js +332 -0
- package/dist/session-connection-gater.js.map +1 -0
- package/dist/session-content-context.d.ts +162 -0
- package/dist/session-content-context.d.ts.map +1 -0
- package/dist/session-content-context.js +2 -0
- package/dist/session-content-context.js.map +1 -0
- package/dist/session-content-handlers.d.ts +82 -0
- package/dist/session-content-handlers.d.ts.map +1 -0
- package/dist/session-content-handlers.js +1382 -0
- package/dist/session-content-handlers.js.map +1 -0
- package/dist/session-content-ingest.d.ts +206 -0
- package/dist/session-content-ingest.d.ts.map +1 -0
- package/dist/session-content-ingest.js +2167 -0
- package/dist/session-content-ingest.js.map +1 -0
- package/dist/session-content-send.d.ts +191 -0
- package/dist/session-content-send.d.ts.map +1 -0
- package/dist/session-content-send.js +1360 -0
- package/dist/session-content-send.js.map +1 -0
- package/dist/session-delivery-acks.d.ts +169 -0
- package/dist/session-delivery-acks.d.ts.map +1 -0
- package/dist/session-delivery-acks.js +569 -0
- package/dist/session-delivery-acks.js.map +1 -0
- package/dist/session-ephemerals.d.ts +279 -0
- package/dist/session-ephemerals.d.ts.map +1 -0
- package/dist/session-ephemerals.js +591 -0
- package/dist/session-ephemerals.js.map +1 -0
- package/dist/session-leaf-records.d.ts +159 -0
- package/dist/session-leaf-records.d.ts.map +1 -0
- package/dist/session-leaf-records.js +408 -0
- package/dist/session-leaf-records.js.map +1 -0
- package/dist/session-lifecycle.d.ts +303 -0
- package/dist/session-lifecycle.d.ts.map +1 -0
- package/dist/session-lifecycle.js +1679 -0
- package/dist/session-lifecycle.js.map +1 -0
- package/dist/session-liveness.d.ts +135 -0
- package/dist/session-liveness.d.ts.map +1 -0
- package/dist/session-liveness.js +347 -0
- package/dist/session-liveness.js.map +1 -0
- package/dist/session-name.d.ts +35 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +60 -0
- package/dist/session-name.js.map +1 -0
- package/dist/session-node-factory.d.ts +18 -0
- package/dist/session-node-factory.d.ts.map +1 -0
- package/dist/session-node-factory.js +182 -0
- package/dist/session-node-factory.js.map +1 -0
- package/dist/session-node-manager.d.ts +877 -0
- package/dist/session-node-manager.d.ts.map +1 -0
- package/dist/session-node-manager.js +2998 -0
- package/dist/session-node-manager.js.map +1 -0
- package/dist/session-node-types.d.ts +1057 -0
- package/dist/session-node-types.d.ts.map +1 -0
- package/dist/session-node-types.js +657 -0
- package/dist/session-node-types.js.map +1 -0
- package/dist/session-notify.d.ts +46 -0
- package/dist/session-notify.d.ts.map +1 -0
- package/dist/session-notify.js +116 -0
- package/dist/session-notify.js.map +1 -0
- package/dist/session-own-chain-store.d.ts +65 -0
- package/dist/session-own-chain-store.d.ts.map +1 -0
- package/dist/session-own-chain-store.js +75 -0
- package/dist/session-own-chain-store.js.map +1 -0
- package/dist/session-queries.d.ts +476 -0
- package/dist/session-queries.d.ts.map +1 -0
- package/dist/session-queries.js +1007 -0
- package/dist/session-queries.js.map +1 -0
- package/dist/session-read-handlers.d.ts +87 -0
- package/dist/session-read-handlers.d.ts.map +1 -0
- package/dist/session-read-handlers.js +689 -0
- package/dist/session-read-handlers.js.map +1 -0
- package/dist/session-records.d.ts +341 -0
- package/dist/session-records.d.ts.map +1 -0
- package/dist/session-records.js +858 -0
- package/dist/session-records.js.map +1 -0
- package/dist/session-relay-client.d.ts +659 -0
- package/dist/session-relay-client.d.ts.map +1 -0
- package/dist/session-relay-client.js +2876 -0
- package/dist/session-relay-client.js.map +1 -0
- package/dist/session-relay.d.ts +397 -0
- package/dist/session-relay.d.ts.map +1 -0
- package/dist/session-relay.js +1636 -0
- package/dist/session-relay.js.map +1 -0
- package/dist/session-salt-agreement.d.ts +331 -0
- package/dist/session-salt-agreement.d.ts.map +1 -0
- package/dist/session-salt-agreement.js +472 -0
- package/dist/session-salt-agreement.js.map +1 -0
- package/dist/session-salts.d.ts +432 -0
- package/dist/session-salts.d.ts.map +1 -0
- package/dist/session-salts.js +1540 -0
- package/dist/session-salts.js.map +1 -0
- package/dist/session-schema.d.ts +30 -0
- package/dist/session-schema.d.ts.map +1 -0
- package/dist/session-schema.js +877 -0
- package/dist/session-schema.js.map +1 -0
- package/dist/session-seal-leaf-store.d.ts +70 -0
- package/dist/session-seal-leaf-store.d.ts.map +1 -0
- package/dist/session-seal-leaf-store.js +105 -0
- package/dist/session-seal-leaf-store.js.map +1 -0
- package/dist/session-seal.d.ts +334 -0
- package/dist/session-seal.d.ts.map +1 -0
- package/dist/session-seal.js +1017 -0
- package/dist/session-seal.js.map +1 -0
- package/dist/session-terminal-refusal.d.ts +65 -0
- package/dist/session-terminal-refusal.d.ts.map +1 -0
- package/dist/session-terminal-refusal.js +87 -0
- package/dist/session-terminal-refusal.js.map +1 -0
- package/dist/session-tree.d.ts +110 -0
- package/dist/session-tree.d.ts.map +1 -0
- package/dist/session-tree.js +144 -0
- package/dist/session-tree.js.map +1 -0
- package/dist/session-views.d.ts +47 -0
- package/dist/session-views.d.ts.map +1 -0
- package/dist/session-views.js +278 -0
- package/dist/session-views.js.map +1 -0
- package/dist/signal-handlers.d.ts +63 -0
- package/dist/signal-handlers.d.ts.map +1 -0
- package/dist/signal-handlers.js +980 -0
- package/dist/signal-handlers.js.map +1 -0
- package/dist/signal-requirement-policy.d.ts +51 -0
- package/dist/signal-requirement-policy.d.ts.map +1 -0
- package/dist/signal-requirement-policy.js +89 -0
- package/dist/signal-requirement-policy.js.map +1 -0
- package/dist/signal-revocability.d.ts +49 -0
- package/dist/signal-revocability.d.ts.map +1 -0
- package/dist/signal-revocability.js +93 -0
- package/dist/signal-revocability.js.map +1 -0
- package/dist/signal-submission.d.ts +181 -0
- package/dist/signal-submission.d.ts.map +1 -0
- package/dist/signal-submission.js +368 -0
- package/dist/signal-submission.js.map +1 -0
- package/dist/signaling-connect.d.ts +118 -0
- package/dist/signaling-connect.d.ts.map +1 -0
- package/dist/signaling-connect.js +538 -0
- package/dist/signaling-connect.js.map +1 -0
- package/dist/signaling-wiring.d.ts +105 -0
- package/dist/signaling-wiring.d.ts.map +1 -0
- package/dist/signaling-wiring.js +393 -0
- package/dist/signaling-wiring.js.map +1 -0
- package/dist/singleton-lock.d.ts +85 -0
- package/dist/singleton-lock.d.ts.map +1 -0
- package/dist/singleton-lock.js +219 -0
- package/dist/singleton-lock.js.map +1 -0
- package/dist/sqlcipher-db.d.ts +139 -0
- package/dist/sqlcipher-db.d.ts.map +1 -0
- package/dist/sqlcipher-db.js +357 -0
- package/dist/sqlcipher-db.js.map +1 -0
- package/dist/standing-receivers.d.ts +319 -0
- package/dist/standing-receivers.d.ts.map +1 -0
- package/dist/standing-receivers.js +1295 -0
- package/dist/standing-receivers.js.map +1 -0
- package/dist/start-agent.d.ts +64 -0
- package/dist/start-agent.d.ts.map +1 -0
- package/dist/start-agent.js +136 -0
- package/dist/start-agent.js.map +1 -0
- package/dist/status-handler.d.ts +54 -0
- package/dist/status-handler.d.ts.map +1 -0
- package/dist/status-handler.js +61 -0
- package/dist/status-handler.js.map +1 -0
- package/dist/submission-retry.d.ts +208 -0
- package/dist/submission-retry.d.ts.map +1 -0
- package/dist/submission-retry.js +506 -0
- package/dist/submission-retry.js.map +1 -0
- package/dist/telegram-bot-client.d.ts +34 -0
- package/dist/telegram-bot-client.d.ts.map +1 -0
- package/dist/telegram-bot-client.js +36 -0
- package/dist/telegram-bot-client.js.map +1 -0
- package/dist/telegram-doorbell.d.ts +38 -0
- package/dist/telegram-doorbell.d.ts.map +1 -0
- package/dist/telegram-doorbell.js +140 -0
- package/dist/telegram-doorbell.js.map +1 -0
- package/dist/test-handlers.d.ts +62 -0
- package/dist/test-handlers.d.ts.map +1 -0
- package/dist/test-handlers.js +240 -0
- package/dist/test-handlers.js.map +1 -0
- package/dist/testing.d.ts +10 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +10 -0
- package/dist/testing.js.map +1 -0
- package/dist/transport-composition.d.ts +31 -0
- package/dist/transport-composition.d.ts.map +1 -0
- package/dist/transport-composition.js +55 -0
- package/dist/transport-composition.js.map +1 -0
- package/dist/transport-selector.d.ts +202 -0
- package/dist/transport-selector.d.ts.map +1 -0
- package/dist/transport-selector.js +196 -0
- package/dist/transport-selector.js.map +1 -0
- package/dist/trust-signal-pickup-listener.d.ts +43 -0
- package/dist/trust-signal-pickup-listener.d.ts.map +1 -0
- package/dist/trust-signal-pickup-listener.js +48 -0
- package/dist/trust-signal-pickup-listener.js.map +1 -0
- package/dist/trust-signal-store.d.ts +406 -0
- package/dist/trust-signal-store.d.ts.map +1 -0
- package/dist/trust-signal-store.js +939 -0
- package/dist/trust-signal-store.js.map +1 -0
- package/dist/trust-signal-sweep-tick.d.ts +60 -0
- package/dist/trust-signal-sweep-tick.d.ts.map +1 -0
- package/dist/trust-signal-sweep-tick.js +101 -0
- package/dist/trust-signal-sweep-tick.js.map +1 -0
- package/dist/trust-signal-sweep.d.ts +94 -0
- package/dist/trust-signal-sweep.d.ts.map +1 -0
- package/dist/trust-signal-sweep.js +147 -0
- package/dist/trust-signal-sweep.js.map +1 -0
- package/dist/type-registry.d.ts +42 -0
- package/dist/type-registry.d.ts.map +1 -0
- package/dist/type-registry.js +37 -0
- package/dist/type-registry.js.map +1 -0
- package/dist/types.d.ts +746 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/dist/unresolved-nodes-report.d.ts +14 -0
- package/dist/unresolved-nodes-report.d.ts.map +1 -0
- package/dist/unresolved-nodes-report.js +96 -0
- package/dist/unresolved-nodes-report.js.map +1 -0
- package/dist/vocabulary.d.ts +150 -0
- package/dist/vocabulary.d.ts.map +1 -0
- package/dist/vocabulary.js +386 -0
- package/dist/vocabulary.js.map +1 -0
- package/dist/who-label.d.ts +28 -0
- package/dist/who-label.d.ts.map +1 -0
- package/dist/who-label.js +31 -0
- package/dist/who-label.js.map +1 -0
- package/dist/who-resolver.d.ts +15 -0
- package/dist/who-resolver.d.ts.map +1 -0
- package/dist/who-resolver.js +47 -0
- package/dist/who-resolver.js.map +1 -0
- package/dist/wire-content-hash.d.ts +93 -0
- package/dist/wire-content-hash.d.ts.map +1 -0
- package/dist/wire-content-hash.js +116 -0
- package/dist/wire-content-hash.js.map +1 -0
- package/dist/withheld-content.d.ts +13 -0
- package/dist/withheld-content.d.ts.map +1 -0
- package/dist/withheld-content.js +46 -0
- package/dist/withheld-content.js.map +1 -0
- package/dist/witness-alerts.d.ts +40 -0
- package/dist/witness-alerts.d.ts.map +1 -0
- package/dist/witness-alerts.js +102 -0
- package/dist/witness-alerts.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refusal reason codes shared between the site that RECORDS a refusal and the site that EXPLAINS it.
|
|
3
|
+
*
|
|
4
|
+
* DOD-M15-OFFER-SIGNED-1 review N8. These strings were duplicated literals across
|
|
5
|
+
* `inbound-sessions.ts` (which calls `recordRefusal`) and `notification-handlers.ts` (which looks
|
|
6
|
+
* the reason up to attach guidance), with nothing binding them. Rename or mistype either side and
|
|
7
|
+
* the lookup silently misses: the operator gets a bare reason code again, which is exactly the
|
|
8
|
+
* defect the guidance was added to fix — reintroduced by a typo, with every test still green.
|
|
9
|
+
*
|
|
10
|
+
* A shared constant makes that a compile error instead. `REFUSAL_REASONS` is the single source; the
|
|
11
|
+
* guidance table below is keyed by its values, so a reason without guidance cannot be added silently.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* DOD-M15-NO-SILENT-REFUSAL-1 — WHAT KIND of thing happened to the message.
|
|
15
|
+
*
|
|
16
|
+
* ⚠️ **THE HEADER OVER A LIST OF REFUSALS CANNOT BE ONE SENTENCE, and review F4 measured why.**
|
|
17
|
+
* The `refused` sentence below was written for three hash-verification reasons and every clause
|
|
18
|
+
* of it was true of them: received, not verified, not ingested, not shown, sender never told. Carry
|
|
19
|
+
* that sentence verbatim onto the nine other reasons and each clause breaks somewhere —
|
|
20
|
+
*
|
|
21
|
+
* - a SCREENER block was verified and IS in the hash chain, and the sender WAS acknowledged;
|
|
22
|
+
* - a transcript write failure was verified and committed, and the sender IS told;
|
|
23
|
+
* - `delivery_impaired` is not an inbound message at all — it is this side's own send failing, so
|
|
24
|
+
* the sentence names the wrong direction of travel and sends the operator to the counterparty
|
|
25
|
+
* about a fault on their own machine.
|
|
26
|
+
*
|
|
27
|
+
* So the notice carries its kind and the door composes the header from the kinds actually present.
|
|
28
|
+
* The `refused` sentence is unchanged, for the set it was written for.
|
|
29
|
+
*/
|
|
30
|
+
export declare const REFUSAL_KINDS: {
|
|
31
|
+
/** Received, could not be accepted. Not ingested, not shown, and the sender was not told. */
|
|
32
|
+
readonly REFUSED: "refused";
|
|
33
|
+
/** Received, verified, RECORDED in the chain and ACKNOWLEDGED — deliberately not shown. */
|
|
34
|
+
readonly BLOCKED: "blocked";
|
|
35
|
+
/** Received; nothing recorded, nothing acknowledged. The sender's daemon redelivers on its own. */
|
|
36
|
+
readonly DEFERRED: "deferred";
|
|
37
|
+
/** Received and committed to the chain, then LOST to a local storage failure. Unrecoverable. */
|
|
38
|
+
readonly LOST: "lost";
|
|
39
|
+
/** Nothing was received. This side's own send or acknowledgement failed to reach them. */
|
|
40
|
+
readonly OUTBOUND: "outbound";
|
|
41
|
+
/**
|
|
42
|
+
* Screened out and WITHHELD: checked, refused, kept as evidence — and NOTHING was recorded and
|
|
43
|
+
* nobody was acknowledged.
|
|
44
|
+
*
|
|
45
|
+
* ⚠️ **NOT `BLOCKED`, AND THE DIFFERENCE IS TWO FALSE CLAIMS — `041-PARKSTUCK` verification
|
|
46
|
+
* NEW-3.** `BLOCKED`'s header says the messages *"ARE recorded in the conversation's hash chain"*
|
|
47
|
+
* and *"the sender WAS acknowledged"*. Both are true of the LIVE inbound screener, which leafs at
|
|
48
|
+
* a canonical position and acks. Both are false on the park route: the conversation is already
|
|
49
|
+
* closed, so appending is precisely what that branch exists to avoid, and deleting a mailbox blob
|
|
50
|
+
* is not an acknowledgement to the sender. Reusing the kind imported a header that contradicted
|
|
51
|
+
* the notice printed underneath it.
|
|
52
|
+
*/
|
|
53
|
+
readonly WITHHELD: "withheld";
|
|
54
|
+
};
|
|
55
|
+
export type RefusalKind = (typeof REFUSAL_KINDS)[keyof typeof REFUSAL_KINDS];
|
|
56
|
+
/**
|
|
57
|
+
* The header for each kind — total over `RefusalKind`, so a new kind cannot be added without one.
|
|
58
|
+
*
|
|
59
|
+
* ⚠️ IT TRAVELS WITH THE NOTICES, NEVER SEPARATELY. When only one exit carried a header, a catch-up
|
|
60
|
+
* read drained the refusals into a payload with no advice at all, and the operator's next blocking
|
|
61
|
+
* read then said "call again and keep waiting" — the notice was already gone. Every door returns the
|
|
62
|
+
* two together for that reason.
|
|
63
|
+
*/
|
|
64
|
+
/**
|
|
65
|
+
* DOD-M15-REFUSALTERMINAL-1 — what the counts on a refusal notice mean, for EVERY door that shows
|
|
66
|
+
* one.
|
|
67
|
+
*
|
|
68
|
+
* ⚠️ **ONE constant because there are TWO doors.** `cello_inbox` and `cello_receive` both surface
|
|
69
|
+
* refusals, and review F4 caught the receive door shipping the new field names with no sentence
|
|
70
|
+
* explaining them — the misreading this line exists to end, moved rather than fixed. A second copy
|
|
71
|
+
* is a second thing to keep true.
|
|
72
|
+
*
|
|
73
|
+
* The defect being described: on 2026-09-04 an operator read `times: 58` for a refusal that had
|
|
74
|
+
* fired tens of thousands of times over two and a half days, and concluded it was minor. The
|
|
75
|
+
* counter was accurate; the word `times` was the lie.
|
|
76
|
+
*/
|
|
77
|
+
export declare const REFUSAL_COUNT_GUIDANCE: string;
|
|
78
|
+
export declare const REFUSAL_KIND_GUIDANCE: Record<RefusalKind, string>;
|
|
79
|
+
export declare const REFUSAL_REASONS: {
|
|
80
|
+
/** The session_offer and the session_assignment named different dialers for one session. */
|
|
81
|
+
readonly OFFER_ASSIGNMENT_DIALER_MISMATCH: "offer_assignment_dialer_mismatch";
|
|
82
|
+
/** The directory named a different threshold group key for an already-known counterparty. */
|
|
83
|
+
readonly COUNTERPARTY_PRIMARY_KEY_CHANGED: "counterparty_primary_key_changed";
|
|
84
|
+
/** The inbound assignment failed verification (signature, signer, or shape). */
|
|
85
|
+
readonly INBOUND_ASSIGNMENT_INVALID: "inbound_assignment_invalid";
|
|
86
|
+
/**
|
|
87
|
+
* 038-KEYBIND — the caller's assignment carried no proof that its threshold key is theirs, or
|
|
88
|
+
* carried one that does not hold.
|
|
89
|
+
*
|
|
90
|
+
* ⚠️ ITS OWN REASON, not folded into INBOUND_ASSIGNMENT_INVALID, because the remedy is different
|
|
91
|
+
* and the other one's remedy is actively wrong here. "The assignment did not verify" tells the
|
|
92
|
+
* caller their frame was damaged and to start a new session; a retry cannot produce a binding
|
|
93
|
+
* that was never minted. What this actually means is that the caller registered against a
|
|
94
|
+
* directory that predates the proof, and the fix is on their side and is a re-registration.
|
|
95
|
+
*/
|
|
96
|
+
readonly INBOUND_ASSIGNMENT_KEY_BINDING: "inbound_assignment_key_binding";
|
|
97
|
+
/**
|
|
98
|
+
* `DOD-M15-SELFCHAIN-1` — a session was offered with NO directory assignment to anchor it.
|
|
99
|
+
*
|
|
100
|
+
* ⚠️ TREATED AS SUSPICIOUS, NOT AS A MISSING OPTIONAL. Every real session is brokered: the
|
|
101
|
+
* directory FROST-signs an establishment record and each side verifies it before the session
|
|
102
|
+
* begins. That record carries the conversation's STARTING POINT — the value every first message
|
|
103
|
+
* chains to — so a session without one is a conversation whose order could never be proven.
|
|
104
|
+
*
|
|
105
|
+
* Nothing legitimate produces it. A counterparty that offers one is either running software that
|
|
106
|
+
* cannot participate in the record, or trying to open a conversation that leaves none.
|
|
107
|
+
*/
|
|
108
|
+
readonly SESSION_WITHOUT_ASSIGNMENT: "session_without_assignment";
|
|
109
|
+
/**
|
|
110
|
+
* A session offer whose directory assignment IS there and cannot be read — its session id or one
|
|
111
|
+
* of its two participants is missing or malformed.
|
|
112
|
+
*
|
|
113
|
+
* ⚠️ SEPARATE FROM `SESSION_WITHOUT_ASSIGNMENT`, AND THE SPLIT IS THE POINT. Both came out of the
|
|
114
|
+
* same `null` return, so a wire or version fault was reaching the operator under a notice reading
|
|
115
|
+
* "NOTHING LEGITIMATE PRODUCES THIS. TREAT IT AS SUSPICIOUS." One exit point standing in for two
|
|
116
|
+
* causes, and the wrong one of the two was the loud one — which teaches an operator to scroll
|
|
117
|
+
* past the notice that matters.
|
|
118
|
+
*/
|
|
119
|
+
readonly ASSIGNMENT_UNREADABLE: "assignment_unreadable";
|
|
120
|
+
/**
|
|
121
|
+
* M16 — a verified session assignment addressed TO one of this daemon's broadcast channels. A
|
|
122
|
+
* channel publishes and never converses; the directory refuses to broker these, and this is the
|
|
123
|
+
* line that holds on the channel's own daemon even if a directory does not.
|
|
124
|
+
*/
|
|
125
|
+
readonly SESSION_TO_CHANNEL_IDENTITY: "session_to_channel_identity";
|
|
126
|
+
};
|
|
127
|
+
export type RefusalReason = (typeof REFUSAL_REASONS)[keyof typeof REFUSAL_REASONS];
|
|
128
|
+
/**
|
|
129
|
+
* The CAPACITY refusals — bounds, not security findings.
|
|
130
|
+
*
|
|
131
|
+
* These deliberately carry no guidance: their codes say what happened, and the cap path already
|
|
132
|
+
* sends the sender their own numbers over the wire. They are declared here anyway so that
|
|
133
|
+
* `recordRefusal` can take a CLOSED union.
|
|
134
|
+
*
|
|
135
|
+
* ⚠️ BYTE-IDENTICAL BY DESIGN. A BLOCKED sender and an over-cap UNKNOWN one must be
|
|
136
|
+
* indistinguishable, or the refusal tells someone they are blocked. Do not add a reason that
|
|
137
|
+
* separates them.
|
|
138
|
+
*/
|
|
139
|
+
export declare const CAPACITY_REASONS: {
|
|
140
|
+
readonly ABUSE_BOUND_SESSIONS_PER_SENDER: "abuse_bound_sessions_per_sender";
|
|
141
|
+
readonly ABUSE_BOUND_UNKNOWN_SESSIONS_GLOBAL: "abuse_bound_unknown_sessions_global";
|
|
142
|
+
};
|
|
143
|
+
export type CapacityReason = (typeof CAPACITY_REASONS)[keyof typeof CAPACITY_REASONS];
|
|
144
|
+
/**
|
|
145
|
+
* Every reason a session may be refused with — the CLOSED set.
|
|
146
|
+
*
|
|
147
|
+
* ─── Why this is a union and not `string` ──────────────────────────────────────────────────────
|
|
148
|
+
*
|
|
149
|
+
* `recordRefusal` used to take `reason: string`, because capacity bounds legitimately pass their own
|
|
150
|
+
* codes. A review measured what that permitted: **add a new security refusal recording a free-form
|
|
151
|
+
* `"assignment_epoch_replayed"` and the entire gate stays green** — the guard fires, the operator
|
|
152
|
+
* gets a bare code with no guidance, and nothing notices, because every test enumerates
|
|
153
|
+
* `REFUSAL_REASONS` and the new code was never in it.
|
|
154
|
+
*
|
|
155
|
+
* That is the guard-nobody-hears pattern in its FORWARD direction: not the four occurrences already
|
|
156
|
+
* fixed, but the next one. A test cannot see a code that does not exist yet. A type can.
|
|
157
|
+
*
|
|
158
|
+
* So the set is closed. Adding a refusal now means adding a member here, and a security member
|
|
159
|
+
* without guidance fails to compile against `REFUSAL_GUIDANCE`'s total map. `DOD-M15-GUARD-HEARD-1`.
|
|
160
|
+
*/
|
|
161
|
+
export type AnyRefusalReason = RefusalReason | CapacityReason;
|
|
162
|
+
/**
|
|
163
|
+
* What the operator should DO, per reason.
|
|
164
|
+
*
|
|
165
|
+
* A bare reason code is not an affordance. These are the SECURITY refusals from the inbound
|
|
166
|
+
* assignment path — the ones where the operator needs to know something was refused on purpose,
|
|
167
|
+
* what it means, and (for the identity change) that the next step happens OUTSIDE CELLO.
|
|
168
|
+
*
|
|
169
|
+
* Typed as a total map over `RefusalReason`, so adding a reason without guidance fails to compile.
|
|
170
|
+
*
|
|
171
|
+
* ⚠️ THE READER IS THE RESPONDER'S OPERATOR, and every verb here must be one THEY can perform.
|
|
172
|
+
* Two of these said "Retry" — which is the INITIATOR's move. The person reading this did not start
|
|
173
|
+
* the session and has nothing to retry; telling them to is an affordance that resolves to nothing,
|
|
174
|
+
* which is worse than no advice because they will try to follow it. The retry advice belongs in the
|
|
175
|
+
* `session_refused` frame, which goes to the side that can act on it.
|
|
176
|
+
*/
|
|
177
|
+
export declare const REFUSAL_GUIDANCE: Record<RefusalReason, string>;
|
|
178
|
+
/**
|
|
179
|
+
* 033-ACKEMIT — what the operator is told when the RELAY refuses to witness a message because the
|
|
180
|
+
* acknowledgement this daemon signed contradicts the relay's own record.
|
|
181
|
+
*
|
|
182
|
+
* ⚠️ **A PURE FUNCTION, AND THAT IS THE POINT.** The two sentences it returns lived inline at the
|
|
183
|
+
* one call site, which sits behind a real relay answering a real `hash_submit_error` — so nothing in
|
|
184
|
+
* the suite could reach them, and the guard's own comment invoked the "a refusal nobody hears"
|
|
185
|
+
* pattern while being, itself, untestable. Review F6 then found the `relay_fault` remedy naming a
|
|
186
|
+
* move that does not exist ("sending again usually picks a healthy one" — a session keeps the relay
|
|
187
|
+
* its assignment names, and there is no handover anywhere). Pulling the text out is what lets a test
|
|
188
|
+
* hold it.
|
|
189
|
+
*
|
|
190
|
+
* `relayFault` is `ack_hash_unverifiable`: the relay's counter reached a position its own leaf log
|
|
191
|
+
* did not, which is a fault on the relay and NOT something either participant did. It is separate
|
|
192
|
+
* from a mismatch for that reason — sending an operator to ask their counterparty about a problem
|
|
193
|
+
* the witness caused spends their attention on the wrong party.
|
|
194
|
+
*/
|
|
195
|
+
/**
|
|
196
|
+
* ─── THE OPERATOR IS TOLD THEIR OWN PASS HAS EXPIRED — `DOD-M15-TOKENSTALE-1`, item C ──────────
|
|
197
|
+
*
|
|
198
|
+
* `cello status` has always known this: it prints `standing_receiver_refusal: online_token_expired`.
|
|
199
|
+
* Nothing PUSHED it, so it was reachable only by someone who already suspected something — and the
|
|
200
|
+
* whole defect is that nothing looks wrong. On the box this was found on, every send answered
|
|
201
|
+
* `ok:true, delivered:true` for two days.
|
|
202
|
+
*
|
|
203
|
+
* The sentences live here rather than at the call site for the reason the neighbouring helper gives:
|
|
204
|
+
* inline, behind a real relay giving a real refusal, nothing could test them, and the one that was
|
|
205
|
+
* wrong stayed wrong for as long as that lasted.
|
|
206
|
+
*
|
|
207
|
+
* ⚠️ IT IS ABOUT THE AGENT, NOT THIS MESSAGE, and that is why it rides the same
|
|
208
|
+
* `noteContentRefusal` surface as the per-message refusals beside it in `session-content-send.ts`
|
|
209
|
+
* rather than getting a channel of its own. Its neighbours there say "this message was not
|
|
210
|
+
* witnessed"; this one says "nothing this agent sends will be, and no conversation it holds can
|
|
211
|
+
* produce a receipt". The operator already looks at that surface for "something was rejected and
|
|
212
|
+
* here is why" — and a second channel for one more condition is how a surface stops being the place
|
|
213
|
+
* people look.
|
|
214
|
+
*
|
|
215
|
+
* ⚠️ IMPACT LEADS WITH WHAT IS LOST, NOT WITH THE TOKEN. A reader who has just been told their
|
|
216
|
+
* message was delivered does not care that a credential expired; they care that nothing they say is
|
|
217
|
+
* being recorded as proof. Naming the mechanism first would read as housekeeping and be skipped.
|
|
218
|
+
*/
|
|
219
|
+
/**
|
|
220
|
+
* Emit it — the log line AND the operator notice, together, because they are one event.
|
|
221
|
+
*
|
|
222
|
+
* A caller that had to remember both would eventually do one: the neighbouring ack-hash case exists
|
|
223
|
+
* precisely because a `logger.warn` and a bare assignment were once considered "handled".
|
|
224
|
+
*/
|
|
225
|
+
export declare function noteLocalCredentialRefusal(ctx: {
|
|
226
|
+
logger: {
|
|
227
|
+
error: (event: string, fields: Record<string, unknown>) => void;
|
|
228
|
+
};
|
|
229
|
+
notices: {
|
|
230
|
+
noteContentRefusal: (a: string, s: string, r: string, d: {
|
|
231
|
+
kind: RefusalKind;
|
|
232
|
+
impact: string;
|
|
233
|
+
guidance: string;
|
|
234
|
+
}) => void;
|
|
235
|
+
};
|
|
236
|
+
}, agentName: string, sessionId: string, correlationId: string | undefined, reason: string, advice: string): void;
|
|
237
|
+
export declare function localCredentialRefusalNotice(reason: string, advice: string): {
|
|
238
|
+
impact: string;
|
|
239
|
+
guidance: string;
|
|
240
|
+
};
|
|
241
|
+
export declare function relayAckHashRefusalNotice(relayFault: boolean, mailboxRouteAvailable: boolean): {
|
|
242
|
+
impact: string;
|
|
243
|
+
guidance: string;
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=refusal-reasons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusal-reasons.d.ts","sourceRoot":"","sources":["../src/refusal-reasons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa;IACxB,6FAA6F;;IAE7F,2FAA2F;;IAE3F,mGAAmG;;IAEnG,gGAAgG;;IAEhG,0FAA0F;;IAE1F;;;;;;;;;;;OAWG;;CAEK,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE7E;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,QAQoC,CAAC;AAExE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CA6D7D,CAAC;AAEF,eAAO,MAAM,eAAe;IAC1B,4FAA4F;;IAE5F,6FAA6F;;IAE7F,gFAAgF;;IAEhF;;;;;;;;;OASG;;IAEH;;;;;;;;;;OAUG;;IAEH;;;;;;;;;OASG;;IAEH;;;;OAIG;;CAEK,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CA8E1D,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE;IACH,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;KAAE,CAAC;IAC5E,OAAO,EAAE;QAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CACxI,EACD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAIN;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CASA;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,GAAG;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CASA"}
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refusal reason codes shared between the site that RECORDS a refusal and the site that EXPLAINS it.
|
|
3
|
+
*
|
|
4
|
+
* DOD-M15-OFFER-SIGNED-1 review N8. These strings were duplicated literals across
|
|
5
|
+
* `inbound-sessions.ts` (which calls `recordRefusal`) and `notification-handlers.ts` (which looks
|
|
6
|
+
* the reason up to attach guidance), with nothing binding them. Rename or mistype either side and
|
|
7
|
+
* the lookup silently misses: the operator gets a bare reason code again, which is exactly the
|
|
8
|
+
* defect the guidance was added to fix — reintroduced by a typo, with every test still green.
|
|
9
|
+
*
|
|
10
|
+
* A shared constant makes that a compile error instead. `REFUSAL_REASONS` is the single source; the
|
|
11
|
+
* guidance table below is keyed by its values, so a reason without guidance cannot be added silently.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* DOD-M15-NO-SILENT-REFUSAL-1 — WHAT KIND of thing happened to the message.
|
|
15
|
+
*
|
|
16
|
+
* ⚠️ **THE HEADER OVER A LIST OF REFUSALS CANNOT BE ONE SENTENCE, and review F4 measured why.**
|
|
17
|
+
* The `refused` sentence below was written for three hash-verification reasons and every clause
|
|
18
|
+
* of it was true of them: received, not verified, not ingested, not shown, sender never told. Carry
|
|
19
|
+
* that sentence verbatim onto the nine other reasons and each clause breaks somewhere —
|
|
20
|
+
*
|
|
21
|
+
* - a SCREENER block was verified and IS in the hash chain, and the sender WAS acknowledged;
|
|
22
|
+
* - a transcript write failure was verified and committed, and the sender IS told;
|
|
23
|
+
* - `delivery_impaired` is not an inbound message at all — it is this side's own send failing, so
|
|
24
|
+
* the sentence names the wrong direction of travel and sends the operator to the counterparty
|
|
25
|
+
* about a fault on their own machine.
|
|
26
|
+
*
|
|
27
|
+
* So the notice carries its kind and the door composes the header from the kinds actually present.
|
|
28
|
+
* The `refused` sentence is unchanged, for the set it was written for.
|
|
29
|
+
*/
|
|
30
|
+
export const REFUSAL_KINDS = {
|
|
31
|
+
/** Received, could not be accepted. Not ingested, not shown, and the sender was not told. */
|
|
32
|
+
REFUSED: "refused",
|
|
33
|
+
/** Received, verified, RECORDED in the chain and ACKNOWLEDGED — deliberately not shown. */
|
|
34
|
+
BLOCKED: "blocked",
|
|
35
|
+
/** Received; nothing recorded, nothing acknowledged. The sender's daemon redelivers on its own. */
|
|
36
|
+
DEFERRED: "deferred",
|
|
37
|
+
/** Received and committed to the chain, then LOST to a local storage failure. Unrecoverable. */
|
|
38
|
+
LOST: "lost",
|
|
39
|
+
/** Nothing was received. This side's own send or acknowledgement failed to reach them. */
|
|
40
|
+
OUTBOUND: "outbound",
|
|
41
|
+
/**
|
|
42
|
+
* Screened out and WITHHELD: checked, refused, kept as evidence — and NOTHING was recorded and
|
|
43
|
+
* nobody was acknowledged.
|
|
44
|
+
*
|
|
45
|
+
* ⚠️ **NOT `BLOCKED`, AND THE DIFFERENCE IS TWO FALSE CLAIMS — `041-PARKSTUCK` verification
|
|
46
|
+
* NEW-3.** `BLOCKED`'s header says the messages *"ARE recorded in the conversation's hash chain"*
|
|
47
|
+
* and *"the sender WAS acknowledged"*. Both are true of the LIVE inbound screener, which leafs at
|
|
48
|
+
* a canonical position and acks. Both are false on the park route: the conversation is already
|
|
49
|
+
* closed, so appending is precisely what that branch exists to avoid, and deleting a mailbox blob
|
|
50
|
+
* is not an acknowledgement to the sender. Reusing the kind imported a header that contradicted
|
|
51
|
+
* the notice printed underneath it.
|
|
52
|
+
*/
|
|
53
|
+
WITHHELD: "withheld",
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* The header for each kind — total over `RefusalKind`, so a new kind cannot be added without one.
|
|
57
|
+
*
|
|
58
|
+
* ⚠️ IT TRAVELS WITH THE NOTICES, NEVER SEPARATELY. When only one exit carried a header, a catch-up
|
|
59
|
+
* read drained the refusals into a payload with no advice at all, and the operator's next blocking
|
|
60
|
+
* read then said "call again and keep waiting" — the notice was already gone. Every door returns the
|
|
61
|
+
* two together for that reason.
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* DOD-M15-REFUSALTERMINAL-1 — what the counts on a refusal notice mean, for EVERY door that shows
|
|
65
|
+
* one.
|
|
66
|
+
*
|
|
67
|
+
* ⚠️ **ONE constant because there are TWO doors.** `cello_inbox` and `cello_receive` both surface
|
|
68
|
+
* refusals, and review F4 caught the receive door shipping the new field names with no sentence
|
|
69
|
+
* explaining them — the misreading this line exists to end, moved rather than fixed. A second copy
|
|
70
|
+
* is a second thing to keep true.
|
|
71
|
+
*
|
|
72
|
+
* The defect being described: on 2026-09-04 an operator read `times: 58` for a refusal that had
|
|
73
|
+
* fired tens of thousands of times over two and a half days, and concluded it was minor. The
|
|
74
|
+
* counter was accurate; the word `times` was the lie.
|
|
75
|
+
*/
|
|
76
|
+
export const REFUSAL_COUNT_GUIDANCE = "THE TWO COUNTS MEAN DIFFERENT THINGS. `times_since_dismissed` counts only the refusals since " +
|
|
77
|
+
"the operator last ran cello_dismiss on that conversation — dismissing clears the notice, never " +
|
|
78
|
+
"the cause — so it can be small while the real figure is enormous. Judge severity by the " +
|
|
79
|
+
"lifetime one instead, which arrives as ONE of these two: `times_total` is an exact count from " +
|
|
80
|
+
"the first refusal; `times_total_at_least` is a FLOOR, for a conversation whose tally began when " +
|
|
81
|
+
"this daemon was upgraded, and the true figure may be far higher. If NEITHER is present, this " +
|
|
82
|
+
"notice could not be written to disk (see session.refusal.persist.failed) and its scale is " +
|
|
83
|
+
"unknown — in that case do not read the smaller number as the total.";
|
|
84
|
+
export const REFUSAL_KIND_GUIDANCE = {
|
|
85
|
+
/**
|
|
86
|
+
* VERBATIM, and deliberately so: this is the sentence the previous unit wrote for exactly this
|
|
87
|
+
* set, it is the one that makes the notice actionable, and a note in the tree records that a
|
|
88
|
+
* catch-up door destroyed it once already.
|
|
89
|
+
*/
|
|
90
|
+
[REFUSAL_KINDS.REFUSED]:
|
|
91
|
+
/**
|
|
92
|
+
* ⚠️ **"THEY WERE NOT VERIFIED" WAS DROPPED, and it is the F4 defect one level further down.**
|
|
93
|
+
*
|
|
94
|
+
* That clause was true of the three hash failures this header was written for, and of an
|
|
95
|
+
* unattributable sender. It is FALSE of a message refused because the conversation had already
|
|
96
|
+
* closed, and false of one that hit the sender's size limit — those messages may be perfectly
|
|
97
|
+
* valid and fully verified, and were refused for arriving too late or being too large. A header
|
|
98
|
+
* that tells the operator their counterparty sent something unverifiable, when the counterparty
|
|
99
|
+
* did nothing wrong, is an accusation.
|
|
100
|
+
*/
|
|
101
|
+
"Message(s) from this counterparty were received and refused, so they were not delivered. " +
|
|
102
|
+
/**
|
|
103
|
+
* ⚠️ "WAITING HERE WILL NOT HELP" IS LOAD-BEARING and an existing test guards it: the exit this
|
|
104
|
+
* header rides on is a receive that timed out, and without this sentence the operator is handed
|
|
105
|
+
* a reason next to an instruction to keep waiting.
|
|
106
|
+
*
|
|
107
|
+
* Worded "waiting HERE", not the original "waiting will not help" — which is false for one of
|
|
108
|
+
* these. The salt branch has a cause that repairs itself on the next reconnect, and its own
|
|
109
|
+
* guidance says to wait for exactly that. What is universally true is that sitting on this call
|
|
110
|
+
* fixes nothing; the reason below is where the fix is.
|
|
111
|
+
*/
|
|
112
|
+
"Waiting here will not help — the reason below says what will. See " +
|
|
113
|
+
"`refusals` for it. The counterparty has no way to know: from their " +
|
|
114
|
+
"side the message was sent. DO NOT REACH FOR A RESEND BY DEFAULT — the reason below says what to " +
|
|
115
|
+
"do, and two of them are already being redelivered on a loop while one cannot be fixed for this " +
|
|
116
|
+
"conversation at all.",
|
|
117
|
+
[REFUSAL_KINDS.BLOCKED]: "Message(s) aimed at this agent were BLOCKED by its screener. They were verified and they ARE " +
|
|
118
|
+
"recorded in the conversation's hash chain, and the sender WAS acknowledged — so they do not " +
|
|
119
|
+
"know, they will not resend, and nothing is waiting on you. They were never shown to the agent, " +
|
|
120
|
+
"and that is the protection working. Do not go looking for the blocked text and do not turn " +
|
|
121
|
+
"screening off to read it.",
|
|
122
|
+
[REFUSAL_KINDS.DEFERRED]: "Message(s) from this counterparty could not be checked and were not accepted. Nothing was " +
|
|
123
|
+
"recorded and nothing was acknowledged, so the message is still on their side and their agent " +
|
|
124
|
+
"will send it again by itself once the cause clears. DO NOT READ THE SILENCE AS DELIVERY, and do " +
|
|
125
|
+
"not ask them to resend — a resend would take a second place in the record. Fix the cause named " +
|
|
126
|
+
"below.",
|
|
127
|
+
[REFUSAL_KINDS.LOST]: "Message(s) reached this agent and were committed to the conversation's record, and then could " +
|
|
128
|
+
"not be written to local storage, so they can never be delivered. THIS IS A FAULT ON THIS " +
|
|
129
|
+
"MACHINE, not a quiet counterparty. Waiting cannot recover them; the text is gone and only its " +
|
|
130
|
+
"hash remains. Fix the local fault named below, then ask them to resend.",
|
|
131
|
+
[REFUSAL_KINDS.WITHHELD]: "Message(s) aimed at this agent were refused by its screener and are being WITHHELD from you. " +
|
|
132
|
+
"Unlike a blocked message on a live conversation, NOTHING was recorded and the sender was NOT " +
|
|
133
|
+
"acknowledged — these arrived for a conversation that had already closed, so there was nothing " +
|
|
134
|
+
"to add them to. They were never shown to the agent, and that is the protection working. The " +
|
|
135
|
+
"bytes are kept so you can produce them; do not turn screening off to read them, and do not " +
|
|
136
|
+
"tell the sender what was caught.",
|
|
137
|
+
[REFUSAL_KINDS.OUTBOUND]: "NOTHING WAS REFUSED BY THIS AGENT — this is the other direction. A message YOU sent did not get " +
|
|
138
|
+
"through, and could not be saved to send later, so it is gone. Do not go to the counterparty " +
|
|
139
|
+
"about it: they never saw it and there is nothing for them to do. Send it again.",
|
|
140
|
+
};
|
|
141
|
+
export const REFUSAL_REASONS = {
|
|
142
|
+
/** The session_offer and the session_assignment named different dialers for one session. */
|
|
143
|
+
OFFER_ASSIGNMENT_DIALER_MISMATCH: "offer_assignment_dialer_mismatch",
|
|
144
|
+
/** The directory named a different threshold group key for an already-known counterparty. */
|
|
145
|
+
COUNTERPARTY_PRIMARY_KEY_CHANGED: "counterparty_primary_key_changed",
|
|
146
|
+
/** The inbound assignment failed verification (signature, signer, or shape). */
|
|
147
|
+
INBOUND_ASSIGNMENT_INVALID: "inbound_assignment_invalid",
|
|
148
|
+
/**
|
|
149
|
+
* 038-KEYBIND — the caller's assignment carried no proof that its threshold key is theirs, or
|
|
150
|
+
* carried one that does not hold.
|
|
151
|
+
*
|
|
152
|
+
* ⚠️ ITS OWN REASON, not folded into INBOUND_ASSIGNMENT_INVALID, because the remedy is different
|
|
153
|
+
* and the other one's remedy is actively wrong here. "The assignment did not verify" tells the
|
|
154
|
+
* caller their frame was damaged and to start a new session; a retry cannot produce a binding
|
|
155
|
+
* that was never minted. What this actually means is that the caller registered against a
|
|
156
|
+
* directory that predates the proof, and the fix is on their side and is a re-registration.
|
|
157
|
+
*/
|
|
158
|
+
INBOUND_ASSIGNMENT_KEY_BINDING: "inbound_assignment_key_binding",
|
|
159
|
+
/**
|
|
160
|
+
* `DOD-M15-SELFCHAIN-1` — a session was offered with NO directory assignment to anchor it.
|
|
161
|
+
*
|
|
162
|
+
* ⚠️ TREATED AS SUSPICIOUS, NOT AS A MISSING OPTIONAL. Every real session is brokered: the
|
|
163
|
+
* directory FROST-signs an establishment record and each side verifies it before the session
|
|
164
|
+
* begins. That record carries the conversation's STARTING POINT — the value every first message
|
|
165
|
+
* chains to — so a session without one is a conversation whose order could never be proven.
|
|
166
|
+
*
|
|
167
|
+
* Nothing legitimate produces it. A counterparty that offers one is either running software that
|
|
168
|
+
* cannot participate in the record, or trying to open a conversation that leaves none.
|
|
169
|
+
*/
|
|
170
|
+
SESSION_WITHOUT_ASSIGNMENT: "session_without_assignment",
|
|
171
|
+
/**
|
|
172
|
+
* A session offer whose directory assignment IS there and cannot be read — its session id or one
|
|
173
|
+
* of its two participants is missing or malformed.
|
|
174
|
+
*
|
|
175
|
+
* ⚠️ SEPARATE FROM `SESSION_WITHOUT_ASSIGNMENT`, AND THE SPLIT IS THE POINT. Both came out of the
|
|
176
|
+
* same `null` return, so a wire or version fault was reaching the operator under a notice reading
|
|
177
|
+
* "NOTHING LEGITIMATE PRODUCES THIS. TREAT IT AS SUSPICIOUS." One exit point standing in for two
|
|
178
|
+
* causes, and the wrong one of the two was the loud one — which teaches an operator to scroll
|
|
179
|
+
* past the notice that matters.
|
|
180
|
+
*/
|
|
181
|
+
ASSIGNMENT_UNREADABLE: "assignment_unreadable",
|
|
182
|
+
/**
|
|
183
|
+
* M16 — a verified session assignment addressed TO one of this daemon's broadcast channels. A
|
|
184
|
+
* channel publishes and never converses; the directory refuses to broker these, and this is the
|
|
185
|
+
* line that holds on the channel's own daemon even if a directory does not.
|
|
186
|
+
*/
|
|
187
|
+
SESSION_TO_CHANNEL_IDENTITY: "session_to_channel_identity",
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* The CAPACITY refusals — bounds, not security findings.
|
|
191
|
+
*
|
|
192
|
+
* These deliberately carry no guidance: their codes say what happened, and the cap path already
|
|
193
|
+
* sends the sender their own numbers over the wire. They are declared here anyway so that
|
|
194
|
+
* `recordRefusal` can take a CLOSED union.
|
|
195
|
+
*
|
|
196
|
+
* ⚠️ BYTE-IDENTICAL BY DESIGN. A BLOCKED sender and an over-cap UNKNOWN one must be
|
|
197
|
+
* indistinguishable, or the refusal tells someone they are blocked. Do not add a reason that
|
|
198
|
+
* separates them.
|
|
199
|
+
*/
|
|
200
|
+
export const CAPACITY_REASONS = {
|
|
201
|
+
ABUSE_BOUND_SESSIONS_PER_SENDER: "abuse_bound_sessions_per_sender",
|
|
202
|
+
ABUSE_BOUND_UNKNOWN_SESSIONS_GLOBAL: "abuse_bound_unknown_sessions_global",
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* What the operator should DO, per reason.
|
|
206
|
+
*
|
|
207
|
+
* A bare reason code is not an affordance. These are the SECURITY refusals from the inbound
|
|
208
|
+
* assignment path — the ones where the operator needs to know something was refused on purpose,
|
|
209
|
+
* what it means, and (for the identity change) that the next step happens OUTSIDE CELLO.
|
|
210
|
+
*
|
|
211
|
+
* Typed as a total map over `RefusalReason`, so adding a reason without guidance fails to compile.
|
|
212
|
+
*
|
|
213
|
+
* ⚠️ THE READER IS THE RESPONDER'S OPERATOR, and every verb here must be one THEY can perform.
|
|
214
|
+
* Two of these said "Retry" — which is the INITIATOR's move. The person reading this did not start
|
|
215
|
+
* the session and has nothing to retry; telling them to is an affordance that resolves to nothing,
|
|
216
|
+
* which is worse than no advice because they will try to follow it. The retry advice belongs in the
|
|
217
|
+
* `session_refused` frame, which goes to the side that can act on it.
|
|
218
|
+
*/
|
|
219
|
+
export const REFUSAL_GUIDANCE = {
|
|
220
|
+
/**
|
|
221
|
+
* ⛔ THE REPORTING LINE IS OWED AND IS DELIBERATELY ABSENT — `CELLO_Reporting` DOES NOT EXIST YET.
|
|
222
|
+
*
|
|
223
|
+
* Andre asked (2026-09-06) for this notice to tell the operator to report the attempt to
|
|
224
|
+
* `CELLO_Reporting`, which he expected to be in every address book. It is designed and not
|
|
225
|
+
* provisioned — `orphan-triage.ts` carries the same standing trigger, and
|
|
226
|
+
* `dod-m15-no-silent-refusal-1.test.ts` asserts that no guidance names it.
|
|
227
|
+
*
|
|
228
|
+
* Naming it now would be an affordance that resolves to nothing: the reader would go looking for
|
|
229
|
+
* a contact they do not have, which is worse than no advice because they will try to follow it.
|
|
230
|
+
*
|
|
231
|
+
* ⚠️ AND IT IS THE ADVICE A STRANGER ACTUALLY NEEDS. The notice below gives ONE instruction, for
|
|
232
|
+
* a counterparty the operator recognises: reach them out of band. You cannot do that with an
|
|
233
|
+
* unknown agent — there is no channel and no one to ask.
|
|
234
|
+
*
|
|
235
|
+
* ⚠️ AND THE STRANGER CASE IS SAID BY SAYING NOTHING, deliberately. A draft ended with "if you do
|
|
236
|
+
* not know them, do not accept a session from them" — which restates the header: it was ALREADY
|
|
237
|
+
* refused, and the reader is not being offered a choice. Advice that repeats the outcome spends
|
|
238
|
+
* the reader's attention and gives them nothing to do with it.
|
|
239
|
+
*
|
|
240
|
+
* Reporting is the only action that would work for the stranger, and it is precisely the one that
|
|
241
|
+
* does not exist yet. That is what makes provisioning it worth doing rather than a nicety: today
|
|
242
|
+
* the notice has nothing at all to offer that reader.
|
|
243
|
+
*
|
|
244
|
+
* ⛔ TRIGGER: when `CELLO_Reporting` is provisioned and its pubkey published, add a sentence here
|
|
245
|
+
* telling the operator to report the attempt to it, and drop the assertion in that test.
|
|
246
|
+
*/
|
|
247
|
+
[REFUSAL_REASONS.SESSION_WITHOUT_ASSIGNMENT]: "REFUSED ON PURPOSE, AND TREAT IT AS SUSPICIOUS. Somebody tried to open a conversation with " +
|
|
248
|
+
"you without the directory record that every real session carries. That record is what fixes " +
|
|
249
|
+
"the conversation's starting point, and every message chains to it — so a session without one " +
|
|
250
|
+
"is a conversation whose order could never be proven afterwards, by you or by anyone. NOTHING " +
|
|
251
|
+
"LEGITIMATE PRODUCES THIS. IF THEY LOOK LIKE SOMEONE YOU KNOW, reach them OUT OF BAND — send " +
|
|
252
|
+
"an email or a direct message, some channel that is not this one — and tell them their agent " +
|
|
253
|
+
"cannot hold a provable conversation with anyone while it is in this state.",
|
|
254
|
+
[REFUSAL_REASONS.ASSIGNMENT_UNREADABLE]:
|
|
255
|
+
// "REFUSED ON PURPOSE" is a cross-cutting invariant (`DOD-M15-GUARD-HEARD-1`): every refusal
|
|
256
|
+
// guidance says the refusal was deliberate, so an operator never reads one as a malfunction.
|
|
257
|
+
"REFUSED ON PURPOSE, AND PROBABLY NOT AN ATTACK. Somebody tried to open a conversation with " +
|
|
258
|
+
"you and the directory record they brought could not be read — a field it must carry is " +
|
|
259
|
+
"missing or the wrong shape. That is what a version difference between their agent and yours " +
|
|
260
|
+
"looks like, and it is by far the likeliest explanation. Ask them OUT OF BAND — a channel that " +
|
|
261
|
+
"is not this one — which version they are running; if you are both current, ask them to try " +
|
|
262
|
+
"again, because a record damaged in transit produces exactly this too.",
|
|
263
|
+
[REFUSAL_REASONS.COUNTERPARTY_PRIMARY_KEY_CHANGED]: "REFUSED ON PURPOSE. The directory named a different signing identity for a contact you have " +
|
|
264
|
+
"completed sessions with before. Either they genuinely re-registered — confirm that with them " +
|
|
265
|
+
"OUT OF BAND (a channel that is not this one), then run cello_contact_remove for them, which " +
|
|
266
|
+
"clears the pinned identity so the next session re-pins — or a directory is substituting an " +
|
|
267
|
+
"identity. Do not accept a session from them until you know which.",
|
|
268
|
+
[REFUSAL_REASONS.OFFER_ASSIGNMENT_DIALER_MISMATCH]: "REFUSED ON PURPOSE. The directory's session offer named one dialer and the session assignment " +
|
|
269
|
+
"named another, so the two frames for one session disagree. A stale or replayed offer produces " +
|
|
270
|
+
"this too, so one occurrence is not proof of a hostile directory. Nothing was accepted, and " +
|
|
271
|
+
"nothing is wrong on your side — the other party has been told to start a new session. If the " +
|
|
272
|
+
"SAME counterparty keeps failing this way, stop treating it as noise: confirm out of band that " +
|
|
273
|
+
"they are the one dialling you, and until they answer, do not accept a session from them.",
|
|
274
|
+
[REFUSAL_REASONS.SESSION_TO_CHANNEL_IDENTITY]: "REFUSED ON PURPOSE. This identity is a broadcast channel. Channels publish; they do not hold " +
|
|
275
|
+
"sessions, so someone trying to open one with it was turned away and nothing was accepted. There " +
|
|
276
|
+
"is nothing wrong and nothing for you to retry. To reach the operator behind it, a caller opens a " +
|
|
277
|
+
"session with the channel's admin agent instead; they have been told so if you know them. To " +
|
|
278
|
+
"talk to them yourself, use cello_initiate_session from a non-channel agent.",
|
|
279
|
+
[REFUSAL_REASONS.INBOUND_ASSIGNMENT_INVALID]: "REFUSED ON PURPOSE. The session assignment did not verify, so this agent would have been " +
|
|
280
|
+
"opening its receiver to a peer named by a document it could not check. Nothing was accepted. " +
|
|
281
|
+
"There is nothing for you to retry — the other party holds the session and has been told to " +
|
|
282
|
+
"start a new one. If it repeats for the SAME counterparty, do not accept anything from them " +
|
|
283
|
+
"until you have confirmed out of band that they still control the identity you know them by.",
|
|
284
|
+
[REFUSAL_REASONS.INBOUND_ASSIGNMENT_KEY_BINDING]: "REFUSED ON PURPOSE. Your session record did not carry the proof that the threshold signing key " +
|
|
285
|
+
"on it is yours — the signature your own identity key makes over it at registration. Without " +
|
|
286
|
+
"that, they would be taking a directory's word for which key is yours, and recording it as your " +
|
|
287
|
+
"identity for every future conversation. Retrying will not produce it. Run cello_status: if your " +
|
|
288
|
+
"agent registered before this proof existed, re-register it and the proof is minted and " +
|
|
289
|
+
"published; if it is current, the directory node that brokered this is dropping the field, and " +
|
|
290
|
+
"another node will serve it.",
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* 033-ACKEMIT — what the operator is told when the RELAY refuses to witness a message because the
|
|
294
|
+
* acknowledgement this daemon signed contradicts the relay's own record.
|
|
295
|
+
*
|
|
296
|
+
* ⚠️ **A PURE FUNCTION, AND THAT IS THE POINT.** The two sentences it returns lived inline at the
|
|
297
|
+
* one call site, which sits behind a real relay answering a real `hash_submit_error` — so nothing in
|
|
298
|
+
* the suite could reach them, and the guard's own comment invoked the "a refusal nobody hears"
|
|
299
|
+
* pattern while being, itself, untestable. Review F6 then found the `relay_fault` remedy naming a
|
|
300
|
+
* move that does not exist ("sending again usually picks a healthy one" — a session keeps the relay
|
|
301
|
+
* its assignment names, and there is no handover anywhere). Pulling the text out is what lets a test
|
|
302
|
+
* hold it.
|
|
303
|
+
*
|
|
304
|
+
* `relayFault` is `ack_hash_unverifiable`: the relay's counter reached a position its own leaf log
|
|
305
|
+
* did not, which is a fault on the relay and NOT something either participant did. It is separate
|
|
306
|
+
* from a mismatch for that reason — sending an operator to ask their counterparty about a problem
|
|
307
|
+
* the witness caused spends their attention on the wrong party.
|
|
308
|
+
*/
|
|
309
|
+
/**
|
|
310
|
+
* ─── THE OPERATOR IS TOLD THEIR OWN PASS HAS EXPIRED — `DOD-M15-TOKENSTALE-1`, item C ──────────
|
|
311
|
+
*
|
|
312
|
+
* `cello status` has always known this: it prints `standing_receiver_refusal: online_token_expired`.
|
|
313
|
+
* Nothing PUSHED it, so it was reachable only by someone who already suspected something — and the
|
|
314
|
+
* whole defect is that nothing looks wrong. On the box this was found on, every send answered
|
|
315
|
+
* `ok:true, delivered:true` for two days.
|
|
316
|
+
*
|
|
317
|
+
* The sentences live here rather than at the call site for the reason the neighbouring helper gives:
|
|
318
|
+
* inline, behind a real relay giving a real refusal, nothing could test them, and the one that was
|
|
319
|
+
* wrong stayed wrong for as long as that lasted.
|
|
320
|
+
*
|
|
321
|
+
* ⚠️ IT IS ABOUT THE AGENT, NOT THIS MESSAGE, and that is why it rides the same
|
|
322
|
+
* `noteContentRefusal` surface as the per-message refusals beside it in `session-content-send.ts`
|
|
323
|
+
* rather than getting a channel of its own. Its neighbours there say "this message was not
|
|
324
|
+
* witnessed"; this one says "nothing this agent sends will be, and no conversation it holds can
|
|
325
|
+
* produce a receipt". The operator already looks at that surface for "something was rejected and
|
|
326
|
+
* here is why" — and a second channel for one more condition is how a surface stops being the place
|
|
327
|
+
* people look.
|
|
328
|
+
*
|
|
329
|
+
* ⚠️ IMPACT LEADS WITH WHAT IS LOST, NOT WITH THE TOKEN. A reader who has just been told their
|
|
330
|
+
* message was delivered does not care that a credential expired; they care that nothing they say is
|
|
331
|
+
* being recorded as proof. Naming the mechanism first would read as housekeeping and be skipped.
|
|
332
|
+
*/
|
|
333
|
+
/**
|
|
334
|
+
* Emit it — the log line AND the operator notice, together, because they are one event.
|
|
335
|
+
*
|
|
336
|
+
* A caller that had to remember both would eventually do one: the neighbouring ack-hash case exists
|
|
337
|
+
* precisely because a `logger.warn` and a bare assignment were once considered "handled".
|
|
338
|
+
*/
|
|
339
|
+
export function noteLocalCredentialRefusal(ctx, agentName, sessionId, correlationId, reason, advice) {
|
|
340
|
+
const { impact, guidance } = localCredentialRefusalNotice(reason, advice);
|
|
341
|
+
ctx.logger.error("session.relay.credential.refused", { agentName, sessionId, correlationId, reason, impact, guidance });
|
|
342
|
+
ctx.notices.noteContentRefusal(agentName, sessionId, reason, { kind: REFUSAL_KINDS.REFUSED, impact, guidance });
|
|
343
|
+
}
|
|
344
|
+
export function localCredentialRefusalNotice(reason, advice) {
|
|
345
|
+
const impact = "your messages are still arriving, but NONE of them is being witnessed, so this conversation " +
|
|
346
|
+
"cannot produce a receipt and neither can any other one this agent holds. The relay refused " +
|
|
347
|
+
`this agent's own pass from the directory (${reason}) — this is a fault on this machine, not ` +
|
|
348
|
+
"the relay being unreachable, and it does not clear on its own.";
|
|
349
|
+
// The advice comes from `classifyRelayAuthRefusal`, so the inbox and `cello status` cannot give
|
|
350
|
+
// two different remedies for one condition.
|
|
351
|
+
return { impact, guidance: advice };
|
|
352
|
+
}
|
|
353
|
+
export function relayAckHashRefusalNotice(relayFault, mailboxRouteAvailable) {
|
|
354
|
+
const impact = relayFault
|
|
355
|
+
? "the relay could not check what this agent said it had received, so it did not witness this message. The message was still sent; it has no place in the notarized record."
|
|
356
|
+
: "the relay REFUSED to witness this message: what this agent signed as the last thing it received from your counterparty does not match what the relay recorded at that position. The message was still sent, and it has no place in the notarized record. Your copy of this conversation and the witness's copy have stopped agreeing.";
|
|
357
|
+
const guidance = relayFault
|
|
358
|
+
? "Nothing to change on your machine — the fault is on the relay this session is bound to, and it cannot be moved: a session keeps the relay its assignment names. Your messages still reach your counterparty; what stops is the notarized record growing. Close the session (cello_close_session) while its record is still worth notarizing, and open a new one, which will be assigned a relay afresh."
|
|
359
|
+
: "Do NOT rely on a receipt for this conversation until this stops. Send one more message: if it is witnessed, this was a one-off. If it repeats, the two records genuinely disagree — confirm what your counterparty actually sent you OUT OF BAND, then close this session and open a new one." +
|
|
360
|
+
(mailboxRouteAvailable ? "" : "");
|
|
361
|
+
return { impact, guidance };
|
|
362
|
+
}
|
|
363
|
+
//# sourceMappingURL=refusal-reasons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusal-reasons.js","sourceRoot":"","sources":["../src/refusal-reasons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,6FAA6F;IAC7F,OAAO,EAAE,SAAS;IAClB,2FAA2F;IAC3F,OAAO,EAAE,SAAS;IAClB,mGAAmG;IACnG,QAAQ,EAAE,UAAU;IACpB,gGAAgG;IAChG,IAAI,EAAE,MAAM;IACZ,0FAA0F;IAC1F,QAAQ,EAAE,UAAU;IACpB;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,+FAA+F;IAC/F,iGAAiG;IACjG,0FAA0F;IAC1F,gGAAgG;IAChG,kGAAkG;IAClG,+FAA+F;IAC/F,4FAA4F;IAC5F,qEAAqE,CAAC;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IAChE;;;;OAIG;IACH,CAAC,aAAa,CAAC,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,2FAA2F;QAC3F;;;;;;;;;WASG;QACH,oEAAoE;QACpE,qEAAqE;QACrE,kGAAkG;QAClG,iGAAiG;QACjG,sBAAsB;IACxB,CAAC,aAAa,CAAC,OAAO,CAAC,EACrB,+FAA+F;QAC/F,8FAA8F;QAC9F,iGAAiG;QACjG,6FAA6F;QAC7F,2BAA2B;IAC7B,CAAC,aAAa,CAAC,QAAQ,CAAC,EACtB,4FAA4F;QAC5F,+FAA+F;QAC/F,kGAAkG;QAClG,iGAAiG;QACjG,QAAQ;IACV,CAAC,aAAa,CAAC,IAAI,CAAC,EAClB,gGAAgG;QAChG,2FAA2F;QAC3F,gGAAgG;QAChG,yEAAyE;IAC3E,CAAC,aAAa,CAAC,QAAQ,CAAC,EACtB,+FAA+F;QAC/F,+FAA+F;QAC/F,gGAAgG;QAChG,8FAA8F;QAC9F,6FAA6F;QAC7F,kCAAkC;IACpC,CAAC,aAAa,CAAC,QAAQ,CAAC,EACtB,kGAAkG;QAClG,8FAA8F;QAC9F,iFAAiF;CACpF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,4FAA4F;IAC5F,gCAAgC,EAAE,kCAAkC;IACpE,6FAA6F;IAC7F,gCAAgC,EAAE,kCAAkC;IACpE,gFAAgF;IAChF,0BAA0B,EAAE,4BAA4B;IACxD;;;;;;;;;OASG;IACH,8BAA8B,EAAE,gCAAgC;IAChE;;;;;;;;;;OAUG;IACH,0BAA0B,EAAE,4BAA4B;IACxD;;;;;;;;;OASG;IACH,qBAAqB,EAAE,uBAAuB;IAC9C;;;;OAIG;IACH,2BAA2B,EAAE,6BAA6B;CAClD,CAAC;AAIX;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,+BAA+B,EAAE,iCAAiC;IAClE,mCAAmC,EAAE,qCAAqC;CAClE,CAAC;AAuBX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkC;IAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,CAAC,eAAe,CAAC,0BAA0B,CAAC,EAC1C,6FAA6F;QAC7F,8FAA8F;QAC9F,+FAA+F;QAC/F,+FAA+F;QAC/F,8FAA8F;QAC9F,8FAA8F;QAC9F,4EAA4E;IAC9E,CAAC,eAAe,CAAC,qBAAqB,CAAC;IACrC,6FAA6F;IAC7F,6FAA6F;IAC7F,6FAA6F;QAC7F,yFAAyF;QACzF,8FAA8F;QAC9F,gGAAgG;QAChG,6FAA6F;QAC7F,uEAAuE;IACzE,CAAC,eAAe,CAAC,gCAAgC,CAAC,EAChD,8FAA8F;QAC9F,+FAA+F;QAC/F,8FAA8F;QAC9F,6FAA6F;QAC7F,mEAAmE;IACrE,CAAC,eAAe,CAAC,gCAAgC,CAAC,EAChD,gGAAgG;QAChG,gGAAgG;QAChG,6FAA6F;QAC7F,+FAA+F;QAC/F,gGAAgG;QAChG,0FAA0F;IAC5F,CAAC,eAAe,CAAC,2BAA2B,CAAC,EAC3C,+FAA+F;QAC/F,kGAAkG;QAClG,mGAAmG;QACnG,8FAA8F;QAC9F,6EAA6E;IAC/E,CAAC,eAAe,CAAC,0BAA0B,CAAC,EAC1C,2FAA2F;QAC3F,+FAA+F;QAC/F,6FAA6F;QAC7F,6FAA6F;QAC7F,6FAA6F;IAC/F,CAAC,eAAe,CAAC,8BAA8B,CAAC,EAC9C,iGAAiG;QACjG,8FAA8F;QAC9F,iGAAiG;QACjG,kGAAkG;QAClG,yFAAyF;QACzF,gGAAgG;QAChG,6BAA6B;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,GAGC,EACD,SAAiB,EACjB,SAAiB,EACjB,aAAiC,EACjC,MAAc,EACd,MAAc;IAEd,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1E,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxH,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAc,EAAE,MAAc;IAIzE,MAAM,MAAM,GACV,8FAA8F;QAC9F,6FAA6F;QAC7F,6CAA6C,MAAM,2CAA2C;QAC9F,gEAAgE,CAAC;IACnE,gGAAgG;IAChG,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAAmB,EAAE,qBAA8B;IAI3F,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC,0KAA0K;QAC5K,CAAC,CAAC,uUAAuU,CAAC;IAC5U,MAAM,QAAQ,GAAG,UAAU;QACzB,CAAC,CAAC,yYAAyY;QAC3Y,CAAC,CAAC,+RAA+R;YAC/R,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
|