@cello-protocol/daemon 0.0.225 → 0.0.227
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/package.json +5 -5
- package/dist/agent-admin-handlers.d.ts +0 -56
- package/dist/agent-admin-handlers.d.ts.map +0 -1
- package/dist/agent-admin-handlers.js +0 -73
- package/dist/agent-admin-handlers.js.map +0 -1
- package/dist/agent-handlers.d.ts +0 -72
- package/dist/agent-handlers.d.ts.map +0 -1
- package/dist/agent-handlers.js +0 -604
- package/dist/agent-handlers.js.map +0 -1
- package/dist/agent-id-migration.d.ts +0 -70
- package/dist/agent-id-migration.d.ts.map +0 -1
- package/dist/agent-id-migration.js +0 -468
- package/dist/agent-id-migration.js.map +0 -1
- package/dist/agent-loader.d.ts +0 -37
- package/dist/agent-loader.d.ts.map +0 -1
- package/dist/agent-loader.js +0 -37
- package/dist/agent-loader.js.map +0 -1
- package/dist/agent-selection-root.d.ts +0 -29
- package/dist/agent-selection-root.d.ts.map +0 -1
- package/dist/agent-selection-root.js +0 -126
- package/dist/agent-selection-root.js.map +0 -1
- package/dist/agent-selection.d.ts +0 -73
- package/dist/agent-selection.d.ts.map +0 -1
- package/dist/agent-selection.js +0 -80
- package/dist/agent-selection.js.map +0 -1
- package/dist/agent-settings-keys.d.ts +0 -52
- package/dist/agent-settings-keys.d.ts.map +0 -1
- package/dist/agent-settings-keys.js +0 -114
- package/dist/agent-settings-keys.js.map +0 -1
- package/dist/agent-state.d.ts +0 -67
- package/dist/agent-state.d.ts.map +0 -1
- package/dist/agent-state.js +0 -66
- package/dist/agent-state.js.map +0 -1
- package/dist/assignment-verify.d.ts +0 -90
- package/dist/assignment-verify.d.ts.map +0 -1
- package/dist/assignment-verify.js +0 -301
- package/dist/assignment-verify.js.map +0 -1
- package/dist/attendance-wiring.d.ts +0 -23
- package/dist/attendance-wiring.d.ts.map +0 -1
- package/dist/attendance-wiring.js +0 -248
- package/dist/attendance-wiring.js.map +0 -1
- package/dist/attestation-body.d.ts +0 -47
- package/dist/attestation-body.d.ts.map +0 -1
- package/dist/attestation-body.js +0 -71
- package/dist/attestation-body.js.map +0 -1
- package/dist/authorship-verification.d.ts +0 -91
- package/dist/authorship-verification.d.ts.map +0 -1
- package/dist/authorship-verification.js +0 -532
- package/dist/authorship-verification.js.map +0 -1
- package/dist/away-detection.d.ts +0 -139
- package/dist/away-detection.d.ts.map +0 -1
- package/dist/away-detection.js +0 -186
- package/dist/away-detection.js.map +0 -1
- package/dist/away-inbox-oneshot.d.ts +0 -40
- package/dist/away-inbox-oneshot.d.ts.map +0 -1
- package/dist/away-inbox-oneshot.js +0 -311
- package/dist/away-inbox-oneshot.js.map +0 -1
- package/dist/backup-restore-handlers.d.ts +0 -10
- package/dist/backup-restore-handlers.d.ts.map +0 -1
- package/dist/backup-restore-handlers.js +0 -82
- package/dist/backup-restore-handlers.js.map +0 -1
- package/dist/backup-restore.d.ts +0 -102
- package/dist/backup-restore.d.ts.map +0 -1
- package/dist/backup-restore.js +0 -341
- package/dist/backup-restore.js.map +0 -1
- package/dist/bin/cello-daemon.d.ts +0 -13
- package/dist/bin/cello-daemon.d.ts.map +0 -1
- package/dist/bin/cello-daemon.js.map +0 -1
- package/dist/boot-agents.d.ts +0 -64
- package/dist/boot-agents.d.ts.map +0 -1
- package/dist/boot-agents.js +0 -241
- package/dist/boot-agents.js.map +0 -1
- package/dist/boot-connection-state.d.ts +0 -38
- package/dist/boot-connection-state.d.ts.map +0 -1
- package/dist/boot-connection-state.js +0 -95
- package/dist/boot-connection-state.js.map +0 -1
- package/dist/boot-core.d.ts +0 -36
- package/dist/boot-core.d.ts.map +0 -1
- package/dist/boot-core.js +0 -293
- package/dist/boot-core.js.map +0 -1
- package/dist/boot-parked-content.d.ts +0 -34
- package/dist/boot-parked-content.d.ts.map +0 -1
- package/dist/boot-parked-content.js +0 -528
- package/dist/boot-parked-content.js.map +0 -1
- package/dist/boot-sweeps.d.ts +0 -22
- package/dist/boot-sweeps.d.ts.map +0 -1
- package/dist/boot-sweeps.js +0 -51
- package/dist/boot-sweeps.js.map +0 -1
- package/dist/bundled-consortium-manifest.d.ts +0 -47
- package/dist/bundled-consortium-manifest.d.ts.map +0 -1
- package/dist/bundled-consortium-manifest.js +0 -116
- package/dist/bundled-consortium-manifest.js.map +0 -1
- package/dist/cbor-blob-migration.d.ts +0 -8
- package/dist/cbor-blob-migration.d.ts.map +0 -1
- package/dist/cbor-blob-migration.js +0 -116
- package/dist/cbor-blob-migration.js.map +0 -1
- package/dist/challenge-verifier.d.ts +0 -12
- package/dist/challenge-verifier.d.ts.map +0 -1
- package/dist/challenge-verifier.js +0 -11
- package/dist/challenge-verifier.js.map +0 -1
- package/dist/close-commitment.d.ts +0 -67
- package/dist/close-commitment.d.ts.map +0 -1
- package/dist/close-commitment.js +0 -78
- package/dist/close-commitment.js.map +0 -1
- package/dist/close-session-handler.d.ts +0 -94
- package/dist/close-session-handler.d.ts.map +0 -1
- package/dist/close-session-handler.js +0 -1418
- package/dist/close-session-handler.js.map +0 -1
- package/dist/co-attendance.d.ts +0 -29
- package/dist/co-attendance.d.ts.map +0 -1
- package/dist/co-attendance.js +0 -32
- package/dist/co-attendance.js.map +0 -1
- package/dist/column-birth.d.ts +0 -40
- package/dist/column-birth.d.ts.map +0 -1
- package/dist/column-birth.js +0 -61
- package/dist/column-birth.js.map +0 -1
- package/dist/connect-or-start.d.ts +0 -25
- package/dist/connect-or-start.d.ts.map +0 -1
- package/dist/connect-or-start.js +0 -175
- package/dist/connect-or-start.js.map +0 -1
- package/dist/connection-agents.d.ts +0 -16
- package/dist/connection-agents.d.ts.map +0 -1
- package/dist/connection-agents.js +0 -68
- package/dist/connection-agents.js.map +0 -1
- package/dist/consent-migration.d.ts +0 -49
- package/dist/consent-migration.d.ts.map +0 -1
- package/dist/consent-migration.js +0 -128
- package/dist/consent-migration.js.map +0 -1
- package/dist/consortium-bootstrap.d.ts +0 -138
- package/dist/consortium-bootstrap.d.ts.map +0 -1
- package/dist/consortium-bootstrap.js +0 -339
- package/dist/consortium-bootstrap.js.map +0 -1
- package/dist/consortium-fingerprint.d.ts +0 -115
- package/dist/consortium-fingerprint.d.ts.map +0 -1
- package/dist/consortium-fingerprint.js +0 -175
- package/dist/consortium-fingerprint.js.map +0 -1
- package/dist/contact-handlers.d.ts +0 -59
- package/dist/contact-handlers.d.ts.map +0 -1
- package/dist/contact-handlers.js +0 -343
- package/dist/contact-handlers.js.map +0 -1
- package/dist/contact-pubkey-case.d.ts +0 -65
- package/dist/contact-pubkey-case.d.ts.map +0 -1
- package/dist/contact-pubkey-case.js +0 -136
- package/dist/contact-pubkey-case.js.map +0 -1
- package/dist/contacts-tier-migration.d.ts +0 -90
- package/dist/contacts-tier-migration.d.ts.map +0 -1
- package/dist/contacts-tier-migration.js +0 -150
- package/dist/contacts-tier-migration.js.map +0 -1
- package/dist/content-encryption-status.d.ts +0 -111
- package/dist/content-encryption-status.d.ts.map +0 -1
- package/dist/content-encryption-status.js +0 -158
- package/dist/content-encryption-status.js.map +0 -1
- package/dist/content-park-client.d.ts +0 -90
- package/dist/content-park-client.d.ts.map +0 -1
- package/dist/content-park-client.js +0 -362
- package/dist/content-park-client.js.map +0 -1
- package/dist/content-park.d.ts +0 -52
- package/dist/content-park.d.ts.map +0 -1
- package/dist/content-park.js +0 -1309
- package/dist/content-park.js.map +0 -1
- package/dist/cross-node-negotiation.d.ts +0 -44
- package/dist/cross-node-negotiation.d.ts.map +0 -1
- package/dist/cross-node-negotiation.js +0 -34
- package/dist/cross-node-negotiation.js.map +0 -1
- package/dist/daemon-handle.d.ts +0 -57
- package/dist/daemon-handle.d.ts.map +0 -1
- package/dist/daemon-handle.js +0 -2
- package/dist/daemon-handle.js.map +0 -1
- package/dist/daemon-status-report.d.ts +0 -50
- package/dist/daemon-status-report.d.ts.map +0 -1
- package/dist/daemon-status-report.js +0 -81
- package/dist/daemon-status-report.js.map +0 -1
- package/dist/daemon.d.ts +0 -45
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js +0 -1177
- package/dist/daemon.js.map +0 -1
- package/dist/db-identity-store.d.ts +0 -159
- package/dist/db-identity-store.d.ts.map +0 -1
- package/dist/db-identity-store.js +0 -502
- package/dist/db-identity-store.js.map +0 -1
- package/dist/delivery-open-registry.d.ts +0 -92
- package/dist/delivery-open-registry.d.ts.map +0 -1
- package/dist/delivery-open-registry.js +0 -121
- package/dist/delivery-open-registry.js.map +0 -1
- package/dist/delivery-session-suspects.d.ts +0 -56
- package/dist/delivery-session-suspects.d.ts.map +0 -1
- package/dist/delivery-session-suspects.js +0 -94
- package/dist/delivery-session-suspects.js.map +0 -1
- package/dist/directory-auth-posture.d.ts +0 -87
- package/dist/directory-auth-posture.d.ts.map +0 -1
- package/dist/directory-auth-posture.js +0 -134
- package/dist/directory-auth-posture.js.map +0 -1
- package/dist/directory-bootstrap.d.ts +0 -310
- package/dist/directory-bootstrap.d.ts.map +0 -1
- package/dist/directory-bootstrap.js +0 -557
- package/dist/directory-bootstrap.js.map +0 -1
- package/dist/directory-connect.d.ts +0 -27
- package/dist/directory-connect.d.ts.map +0 -1
- package/dist/directory-connect.js +0 -106
- package/dist/directory-connect.js.map +0 -1
- package/dist/disconnect-cleanup.d.ts +0 -51
- package/dist/disconnect-cleanup.d.ts.map +0 -1
- package/dist/disconnect-cleanup.js +0 -72
- package/dist/disconnect-cleanup.js.map +0 -1
- package/dist/document-amendment-store.d.ts +0 -120
- package/dist/document-amendment-store.d.ts.map +0 -1
- package/dist/document-amendment-store.js +0 -266
- package/dist/document-amendment-store.js.map +0 -1
- package/dist/document-delivery-transport.d.ts +0 -168
- package/dist/document-delivery-transport.d.ts.map +0 -1
- package/dist/document-delivery-transport.js +0 -206
- package/dist/document-delivery-transport.js.map +0 -1
- package/dist/document-engine.d.ts +0 -134
- package/dist/document-engine.d.ts.map +0 -1
- package/dist/document-engine.js +0 -282
- package/dist/document-engine.js.map +0 -1
- package/dist/document-flag.d.ts +0 -58
- package/dist/document-flag.d.ts.map +0 -1
- package/dist/document-flag.js +0 -70
- package/dist/document-flag.js.map +0 -1
- package/dist/document-frame-router.d.ts +0 -245
- package/dist/document-frame-router.d.ts.map +0 -1
- package/dist/document-frame-router.js +0 -397
- package/dist/document-frame-router.js.map +0 -1
- package/dist/document-gate-wiring.d.ts +0 -61
- package/dist/document-gate-wiring.d.ts.map +0 -1
- package/dist/document-gate-wiring.js +0 -125
- package/dist/document-gate-wiring.js.map +0 -1
- package/dist/document-gate.d.ts +0 -149
- package/dist/document-gate.d.ts.map +0 -1
- package/dist/document-gate.js +0 -509
- package/dist/document-gate.js.map +0 -1
- package/dist/document-handlers.d.ts +0 -47
- package/dist/document-handlers.d.ts.map +0 -1
- package/dist/document-handlers.js +0 -2203
- package/dist/document-handlers.js.map +0 -1
- package/dist/document-handshake.d.ts +0 -176
- package/dist/document-handshake.d.ts.map +0 -1
- package/dist/document-handshake.js +0 -452
- package/dist/document-handshake.js.map +0 -1
- package/dist/document-inbound.d.ts +0 -162
- package/dist/document-inbound.d.ts.map +0 -1
- package/dist/document-inbound.js +0 -530
- package/dist/document-inbound.js.map +0 -1
- package/dist/document-json.d.ts +0 -120
- package/dist/document-json.d.ts.map +0 -1
- package/dist/document-json.js +0 -191
- package/dist/document-json.js.map +0 -1
- package/dist/document-layer.d.ts +0 -215
- package/dist/document-layer.d.ts.map +0 -1
- package/dist/document-layer.js +0 -1025
- package/dist/document-layer.js.map +0 -1
- package/dist/document-lifecycle.d.ts +0 -52
- package/dist/document-lifecycle.d.ts.map +0 -1
- package/dist/document-lifecycle.js +0 -134
- package/dist/document-lifecycle.js.map +0 -1
- package/dist/document-live-docs.d.ts +0 -58
- package/dist/document-live-docs.d.ts.map +0 -1
- package/dist/document-live-docs.js +0 -126
- package/dist/document-live-docs.js.map +0 -1
- package/dist/document-notify.d.ts +0 -228
- package/dist/document-notify.d.ts.map +0 -1
- package/dist/document-notify.js +0 -580
- package/dist/document-notify.js.map +0 -1
- package/dist/document-profile.d.ts +0 -61
- package/dist/document-profile.d.ts.map +0 -1
- package/dist/document-profile.js +0 -112
- package/dist/document-profile.js.map +0 -1
- package/dist/document-publish.d.ts +0 -87
- package/dist/document-publish.d.ts.map +0 -1
- package/dist/document-publish.js +0 -173
- package/dist/document-publish.js.map +0 -1
- package/dist/document-reachability.d.ts +0 -42
- package/dist/document-reachability.d.ts.map +0 -1
- package/dist/document-reachability.js +0 -80
- package/dist/document-reachability.js.map +0 -1
- package/dist/document-reconcile-engine.d.ts +0 -66
- package/dist/document-reconcile-engine.d.ts.map +0 -1
- package/dist/document-reconcile-engine.js +0 -225
- package/dist/document-reconcile-engine.js.map +0 -1
- package/dist/document-reconcile-scheduler.d.ts +0 -163
- package/dist/document-reconcile-scheduler.d.ts.map +0 -1
- package/dist/document-reconcile-scheduler.js +0 -303
- package/dist/document-reconcile-scheduler.js.map +0 -1
- package/dist/document-rejection.d.ts +0 -251
- package/dist/document-rejection.d.ts.map +0 -1
- package/dist/document-rejection.js +0 -435
- package/dist/document-rejection.js.map +0 -1
- package/dist/document-screen.d.ts +0 -114
- package/dist/document-screen.d.ts.map +0 -1
- package/dist/document-screen.js +0 -223
- package/dist/document-screen.js.map +0 -1
- package/dist/document-store.d.ts +0 -372
- package/dist/document-store.d.ts.map +0 -1
- package/dist/document-store.js +0 -931
- package/dist/document-store.js.map +0 -1
- package/dist/document-surface.d.ts +0 -32
- package/dist/document-surface.d.ts.map +0 -1
- package/dist/document-surface.js +0 -151
- package/dist/document-surface.js.map +0 -1
- package/dist/document-types.d.ts +0 -94
- package/dist/document-types.d.ts.map +0 -1
- package/dist/document-types.js +0 -90
- package/dist/document-types.js.map +0 -1
- package/dist/document-watch.d.ts +0 -69
- package/dist/document-watch.d.ts.map +0 -1
- package/dist/document-watch.js +0 -108
- package/dist/document-watch.js.map +0 -1
- package/dist/document-wiring.d.ts +0 -53
- package/dist/document-wiring.d.ts.map +0 -1
- package/dist/document-wiring.js +0 -323
- package/dist/document-wiring.js.map +0 -1
- package/dist/document-write-guard.d.ts +0 -66
- package/dist/document-write-guard.d.ts.map +0 -1
- package/dist/document-write-guard.js +0 -98
- package/dist/document-write-guard.js.map +0 -1
- package/dist/document-write-path.d.ts +0 -94
- package/dist/document-write-path.d.ts.map +0 -1
- package/dist/document-write-path.js +0 -530
- package/dist/document-write-path.js.map +0 -1
- package/dist/error-message.d.ts +0 -7
- package/dist/error-message.d.ts.map +0 -1
- package/dist/error-message.js +0 -19
- package/dist/error-message.js.map +0 -1
- package/dist/file-manifest-provider.d.ts +0 -37
- package/dist/file-manifest-provider.d.ts.map +0 -1
- package/dist/file-manifest-provider.js +0 -105
- package/dist/file-manifest-provider.js.map +0 -1
- package/dist/frame-values.d.ts +0 -3
- package/dist/frame-values.d.ts.map +0 -1
- package/dist/frame-values.js +0 -84
- package/dist/frame-values.js.map +0 -1
- package/dist/frontier-mismatch.d.ts +0 -73
- package/dist/frontier-mismatch.d.ts.map +0 -1
- package/dist/frontier-mismatch.js +0 -89
- package/dist/frontier-mismatch.js.map +0 -1
- package/dist/gateway-config-handlers.d.ts +0 -26
- package/dist/gateway-config-handlers.d.ts.map +0 -1
- package/dist/gateway-config-handlers.js +0 -429
- package/dist/gateway-config-handlers.js.map +0 -1
- package/dist/held-content.d.ts +0 -145
- package/dist/held-content.d.ts.map +0 -1
- package/dist/held-content.js +0 -389
- package/dist/held-content.js.map +0 -1
- package/dist/http-manifest-poll.d.ts +0 -67
- package/dist/http-manifest-poll.d.ts.map +0 -1
- package/dist/http-manifest-poll.js +0 -150
- package/dist/http-manifest-poll.js.map +0 -1
- package/dist/identity-migration.d.ts +0 -40
- package/dist/identity-migration.d.ts.map +0 -1
- package/dist/identity-migration.js +0 -461
- package/dist/identity-migration.js.map +0 -1
- package/dist/inbound-refusals.d.ts +0 -283
- package/dist/inbound-refusals.d.ts.map +0 -1
- package/dist/inbound-refusals.js +0 -919
- package/dist/inbound-refusals.js.map +0 -1
- package/dist/inbound-seal-request.d.ts +0 -32
- package/dist/inbound-seal-request.d.ts.map +0 -1
- package/dist/inbound-seal-request.js +0 -228
- package/dist/inbound-seal-request.js.map +0 -1
- package/dist/inbound-sessions.d.ts +0 -291
- package/dist/inbound-sessions.d.ts.map +0 -1
- package/dist/inbound-sessions.js +0 -1609
- package/dist/inbound-sessions.js.map +0 -1
- package/dist/inclusion-proof-handlers.d.ts +0 -43
- package/dist/inclusion-proof-handlers.d.ts.map +0 -1
- package/dist/inclusion-proof-handlers.js +0 -565
- package/dist/inclusion-proof-handlers.js.map +0 -1
- package/dist/inclusion-proof.d.ts +0 -151
- package/dist/inclusion-proof.d.ts.map +0 -1
- package/dist/inclusion-proof.js +0 -228
- package/dist/inclusion-proof.js.map +0 -1
- package/dist/index.d.ts +0 -32
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/initiate-session-handler.d.ts +0 -55
- package/dist/initiate-session-handler.d.ts.map +0 -1
- package/dist/initiate-session-handler.js +0 -310
- package/dist/initiate-session-handler.js.map +0 -1
- package/dist/ipc-client.d.ts +0 -31
- package/dist/ipc-client.d.ts.map +0 -1
- package/dist/ipc-client.js +0 -113
- package/dist/ipc-client.js.map +0 -1
- package/dist/ipc-server.d.ts +0 -63
- package/dist/ipc-server.d.ts.map +0 -1
- package/dist/ipc-server.js +0 -429
- package/dist/ipc-server.js.map +0 -1
- package/dist/ipc-surface.d.ts +0 -44
- package/dist/ipc-surface.d.ts.map +0 -1
- package/dist/ipc-surface.js +0 -107
- package/dist/ipc-surface.js.map +0 -1
- package/dist/line-lcs.d.ts +0 -51
- package/dist/line-lcs.d.ts.map +0 -1
- package/dist/line-lcs.js +0 -71
- package/dist/line-lcs.js.map +0 -1
- package/dist/lock-file.d.ts +0 -39
- package/dist/lock-file.d.ts.map +0 -1
- package/dist/lock-file.js +0 -120
- package/dist/lock-file.js.map +0 -1
- package/dist/log-collapse.d.ts +0 -66
- package/dist/log-collapse.d.ts.map +0 -1
- package/dist/log-collapse.js +0 -244
- package/dist/log-collapse.js.map +0 -1
- package/dist/log-rotate.d.ts +0 -67
- package/dist/log-rotate.d.ts.map +0 -1
- package/dist/log-rotate.js +0 -134
- package/dist/log-rotate.js.map +0 -1
- package/dist/manifest-deps.d.ts +0 -25
- package/dist/manifest-deps.d.ts.map +0 -1
- package/dist/manifest-deps.js +0 -151
- package/dist/manifest-deps.js.map +0 -1
- package/dist/manifest-poll-scheduler.d.ts +0 -31
- package/dist/manifest-poll-scheduler.d.ts.map +0 -1
- package/dist/manifest-poll-scheduler.js +0 -59
- package/dist/manifest-poll-scheduler.js.map +0 -1
- package/dist/manifest-validity.d.ts +0 -153
- package/dist/manifest-validity.d.ts.map +0 -1
- package/dist/manifest-validity.js +0 -268
- package/dist/manifest-validity.js.map +0 -1
- package/dist/manifest-version-store-db.d.ts +0 -24
- package/dist/manifest-version-store-db.d.ts.map +0 -1
- package/dist/manifest-version-store-db.js +0 -58
- package/dist/manifest-version-store-db.js.map +0 -1
- package/dist/manifest-version-store.d.ts +0 -16
- package/dist/manifest-version-store.d.ts.map +0 -1
- package/dist/manifest-version-store.js +0 -15
- package/dist/manifest-version-store.js.map +0 -1
- package/dist/network-directory-node.d.ts +0 -136
- package/dist/network-directory-node.d.ts.map +0 -1
- package/dist/network-directory-node.js +0 -810
- package/dist/network-directory-node.js.map +0 -1
- package/dist/nonce-dedup.d.ts +0 -68
- package/dist/nonce-dedup.d.ts.map +0 -1
- package/dist/nonce-dedup.js +0 -205
- package/dist/nonce-dedup.js.map +0 -1
- package/dist/notification-dispatcher.d.ts +0 -92
- package/dist/notification-dispatcher.d.ts.map +0 -1
- package/dist/notification-dispatcher.js +0 -210
- package/dist/notification-dispatcher.js.map +0 -1
- package/dist/notification-handlers.d.ts +0 -53
- package/dist/notification-handlers.d.ts.map +0 -1
- package/dist/notification-handlers.js +0 -461
- package/dist/notification-handlers.js.map +0 -1
- package/dist/onboarding-guidance.d.ts +0 -79
- package/dist/onboarding-guidance.d.ts.map +0 -1
- package/dist/onboarding-guidance.js +0 -95
- package/dist/onboarding-guidance.js.map +0 -1
- package/dist/operator-guidance.d.ts +0 -25
- package/dist/operator-guidance.d.ts.map +0 -1
- package/dist/operator-guidance.js +0 -50
- package/dist/operator-guidance.js.map +0 -1
- package/dist/orphan-triage.d.ts +0 -130
- package/dist/orphan-triage.d.ts.map +0 -1
- package/dist/orphan-triage.js +0 -207
- package/dist/orphan-triage.js.map +0 -1
- package/dist/outbound-sessions.d.ts +0 -126
- package/dist/outbound-sessions.d.ts.map +0 -1
- package/dist/outbound-sessions.js +0 -1052
- package/dist/outbound-sessions.js.map +0 -1
- package/dist/park-envelope.d.ts +0 -329
- package/dist/park-envelope.d.ts.map +0 -1
- package/dist/park-envelope.js +0 -509
- package/dist/park-envelope.js.map +0 -1
- package/dist/park-recovery.d.ts +0 -273
- package/dist/park-recovery.d.ts.map +0 -1
- package/dist/park-recovery.js +0 -717
- package/dist/park-recovery.js.map +0 -1
- package/dist/park-refusals.d.ts +0 -147
- package/dist/park-refusals.d.ts.map +0 -1
- package/dist/park-refusals.js +0 -331
- package/dist/park-refusals.js.map +0 -1
- package/dist/quarantine-framing.d.ts +0 -92
- package/dist/quarantine-framing.d.ts.map +0 -1
- package/dist/quarantine-framing.js +0 -111
- package/dist/quarantine-framing.js.map +0 -1
- package/dist/reconnect-drain.d.ts +0 -22
- package/dist/reconnect-drain.d.ts.map +0 -1
- package/dist/reconnect-drain.js +0 -65
- package/dist/reconnect-drain.js.map +0 -1
- package/dist/recovered-position.d.ts +0 -14
- package/dist/recovered-position.d.ts.map +0 -1
- package/dist/recovered-position.js +0 -59
- package/dist/recovered-position.js.map +0 -1
- package/dist/refusal-notices.d.ts +0 -196
- package/dist/refusal-notices.d.ts.map +0 -1
- package/dist/refusal-notices.js +0 -516
- package/dist/refusal-notices.js.map +0 -1
- package/dist/refusal-reasons.d.ts +0 -245
- package/dist/refusal-reasons.d.ts.map +0 -1
- package/dist/refusal-reasons.js +0 -363
- package/dist/refusal-reasons.js.map +0 -1
- package/dist/register-handler.d.ts +0 -36
- package/dist/register-handler.d.ts.map +0 -1
- package/dist/register-handler.js +0 -285
- package/dist/register-handler.js.map +0 -1
- package/dist/registration-context.d.ts +0 -72
- package/dist/registration-context.d.ts.map +0 -1
- package/dist/registration-context.js +0 -126
- package/dist/registration-context.js.map +0 -1
- package/dist/registration-manager.d.ts +0 -94
- package/dist/registration-manager.d.ts.map +0 -1
- package/dist/registration-manager.js +0 -585
- package/dist/registration-manager.js.map +0 -1
- package/dist/registration-persistence.d.ts +0 -183
- package/dist/registration-persistence.d.ts.map +0 -1
- package/dist/registration-persistence.js +0 -263
- package/dist/registration-persistence.js.map +0 -1
- package/dist/registry-poll.d.ts +0 -52
- package/dist/registry-poll.d.ts.map +0 -1
- package/dist/registry-poll.js +0 -140
- package/dist/registry-poll.js.map +0 -1
- package/dist/registry-version-store-db.d.ts +0 -22
- package/dist/registry-version-store-db.d.ts.map +0 -1
- package/dist/registry-version-store-db.js +0 -50
- package/dist/registry-version-store-db.js.map +0 -1
- package/dist/relay-endpoints.d.ts +0 -18
- package/dist/relay-endpoints.d.ts.map +0 -1
- package/dist/relay-endpoints.js +0 -9
- package/dist/relay-endpoints.js.map +0 -1
- package/dist/relay-only.d.ts +0 -140
- package/dist/relay-only.d.ts.map +0 -1
- package/dist/relay-only.js +0 -193
- package/dist/relay-only.js.map +0 -1
- package/dist/relay-receipt-store.d.ts +0 -155
- package/dist/relay-receipt-store.d.ts.map +0 -1
- package/dist/relay-receipt-store.js +0 -284
- package/dist/relay-receipt-store.js.map +0 -1
- package/dist/relay-reconnect.d.ts +0 -32
- package/dist/relay-reconnect.d.ts.map +0 -1
- package/dist/relay-reconnect.js +0 -29
- package/dist/relay-reconnect.js.map +0 -1
- package/dist/reply-lag.d.ts +0 -11
- package/dist/reply-lag.d.ts.map +0 -1
- package/dist/reply-lag.js +0 -46
- package/dist/reply-lag.js.map +0 -1
- package/dist/resolve-named-agent.d.ts +0 -49
- package/dist/resolve-named-agent.d.ts.map +0 -1
- package/dist/resolve-named-agent.js +0 -77
- package/dist/resolve-named-agent.js.map +0 -1
- package/dist/restart-seal-resolver.d.ts +0 -110
- package/dist/restart-seal-resolver.d.ts.map +0 -1
- package/dist/restart-seal-resolver.js +0 -353
- package/dist/restart-seal-resolver.js.map +0 -1
- package/dist/resume-last-seen.d.ts +0 -15
- package/dist/resume-last-seen.d.ts.map +0 -1
- package/dist/resume-last-seen.js +0 -44
- package/dist/resume-last-seen.js.map +0 -1
- package/dist/retry-queue.d.ts +0 -203
- package/dist/retry-queue.d.ts.map +0 -1
- package/dist/retry-queue.js +0 -701
- package/dist/retry-queue.js.map +0 -1
- package/dist/roster-freshness.d.ts +0 -160
- package/dist/roster-freshness.d.ts.map +0 -1
- package/dist/roster-freshness.js +0 -250
- package/dist/roster-freshness.js.map +0 -1
- package/dist/screening-status.d.ts +0 -15
- package/dist/screening-status.d.ts.map +0 -1
- package/dist/screening-status.js +0 -65
- package/dist/screening-status.js.map +0 -1
- package/dist/seal-carried-close.d.ts +0 -37
- package/dist/seal-carried-close.d.ts.map +0 -1
- package/dist/seal-carried-close.js +0 -179
- package/dist/seal-carried-close.js.map +0 -1
- package/dist/seal-certificate-pull.d.ts +0 -79
- package/dist/seal-certificate-pull.d.ts.map +0 -1
- package/dist/seal-certificate-pull.js +0 -186
- package/dist/seal-certificate-pull.js.map +0 -1
- package/dist/seal-certified-root-check.d.ts +0 -37
- package/dist/seal-certified-root-check.d.ts.map +0 -1
- package/dist/seal-certified-root-check.js +0 -127
- package/dist/seal-certified-root-check.js.map +0 -1
- package/dist/seal-coordinator.d.ts +0 -118
- package/dist/seal-coordinator.d.ts.map +0 -1
- package/dist/seal-coordinator.js +0 -927
- package/dist/seal-coordinator.js.map +0 -1
- package/dist/seal-escalation.d.ts +0 -80
- package/dist/seal-escalation.d.ts.map +0 -1
- package/dist/seal-escalation.js +0 -283
- package/dist/seal-escalation.js.map +0 -1
- package/dist/seal-evidence-root-check.d.ts +0 -70
- package/dist/seal-evidence-root-check.d.ts.map +0 -1
- package/dist/seal-evidence-root-check.js +0 -199
- package/dist/seal-evidence-root-check.js.map +0 -1
- package/dist/seal-failure-store.d.ts +0 -129
- package/dist/seal-failure-store.d.ts.map +0 -1
- package/dist/seal-failure-store.js +0 -173
- package/dist/seal-failure-store.js.map +0 -1
- package/dist/seal-flows.d.ts +0 -107
- package/dist/seal-flows.d.ts.map +0 -1
- package/dist/seal-flows.js +0 -638
- package/dist/seal-flows.js.map +0 -1
- package/dist/seal-frontier-verify.d.ts +0 -103
- package/dist/seal-frontier-verify.d.ts.map +0 -1
- package/dist/seal-frontier-verify.js +0 -143
- package/dist/seal-frontier-verify.js.map +0 -1
- package/dist/seal-leaf.d.ts +0 -58
- package/dist/seal-leaf.d.ts.map +0 -1
- package/dist/seal-leaf.js +0 -112
- package/dist/seal-leaf.js.map +0 -1
- package/dist/seal-legibility-tbs.d.ts +0 -25
- package/dist/seal-legibility-tbs.d.ts.map +0 -1
- package/dist/seal-legibility-tbs.js +0 -77
- package/dist/seal-legibility-tbs.js.map +0 -1
- package/dist/seal-local-terminus.d.ts +0 -41
- package/dist/seal-local-terminus.d.ts.map +0 -1
- package/dist/seal-local-terminus.js +0 -170
- package/dist/seal-local-terminus.js.map +0 -1
- package/dist/seal-receipt-upgrade.d.ts +0 -30
- package/dist/seal-receipt-upgrade.d.ts.map +0 -1
- package/dist/seal-receipt-upgrade.js +0 -49
- package/dist/seal-receipt-upgrade.js.map +0 -1
- package/dist/seal-relay-silence.d.ts +0 -51
- package/dist/seal-relay-silence.d.ts.map +0 -1
- package/dist/seal-relay-silence.js +0 -76
- package/dist/seal-relay-silence.js.map +0 -1
- package/dist/seal-settle.d.ts +0 -38
- package/dist/seal-settle.d.ts.map +0 -1
- package/dist/seal-settle.js +0 -33
- package/dist/seal-settle.js.map +0 -1
- package/dist/seal-upgrade.d.ts +0 -107
- package/dist/seal-upgrade.d.ts.map +0 -1
- package/dist/seal-upgrade.js +0 -200
- package/dist/seal-upgrade.js.map +0 -1
- package/dist/sealed-conversation.d.ts +0 -36
- package/dist/sealed-conversation.d.ts.map +0 -1
- package/dist/sealed-conversation.js +0 -171
- package/dist/sealed-conversation.js.map +0 -1
- package/dist/sealed-leaf-set.d.ts +0 -92
- package/dist/sealed-leaf-set.d.ts.map +0 -1
- package/dist/sealed-leaf-set.js +0 -122
- package/dist/sealed-leaf-set.js.map +0 -1
- package/dist/send-claims.d.ts +0 -56
- package/dist/send-claims.d.ts.map +0 -1
- package/dist/send-claims.js +0 -50
- package/dist/send-claims.js.map +0 -1
- package/dist/session-assignment-parser.d.ts +0 -98
- package/dist/session-assignment-parser.d.ts.map +0 -1
- package/dist/session-assignment-parser.js +0 -325
- package/dist/session-assignment-parser.js.map +0 -1
- package/dist/session-category.d.ts +0 -19
- package/dist/session-category.d.ts.map +0 -1
- package/dist/session-category.js +0 -14
- package/dist/session-category.js.map +0 -1
- package/dist/session-ceremony.d.ts +0 -297
- package/dist/session-ceremony.d.ts.map +0 -1
- package/dist/session-ceremony.js +0 -964
- package/dist/session-ceremony.js.map +0 -1
- package/dist/session-closed.d.ts +0 -79
- package/dist/session-closed.d.ts.map +0 -1
- package/dist/session-closed.js +0 -189
- package/dist/session-closed.js.map +0 -1
- package/dist/session-connection-gater.d.ts +0 -148
- package/dist/session-connection-gater.d.ts.map +0 -1
- package/dist/session-connection-gater.js +0 -332
- package/dist/session-connection-gater.js.map +0 -1
- package/dist/session-content-context.d.ts +0 -162
- package/dist/session-content-context.d.ts.map +0 -1
- package/dist/session-content-context.js +0 -2
- package/dist/session-content-context.js.map +0 -1
- package/dist/session-content-handlers.d.ts +0 -82
- package/dist/session-content-handlers.d.ts.map +0 -1
- package/dist/session-content-handlers.js +0 -1382
- package/dist/session-content-handlers.js.map +0 -1
- package/dist/session-content-ingest.d.ts +0 -206
- package/dist/session-content-ingest.d.ts.map +0 -1
- package/dist/session-content-ingest.js +0 -2167
- package/dist/session-content-ingest.js.map +0 -1
- package/dist/session-content-send.d.ts +0 -191
- package/dist/session-content-send.d.ts.map +0 -1
- package/dist/session-content-send.js +0 -1360
- package/dist/session-content-send.js.map +0 -1
- package/dist/session-delivery-acks.d.ts +0 -169
- package/dist/session-delivery-acks.d.ts.map +0 -1
- package/dist/session-delivery-acks.js +0 -569
- package/dist/session-delivery-acks.js.map +0 -1
- package/dist/session-ephemerals.d.ts +0 -279
- package/dist/session-ephemerals.d.ts.map +0 -1
- package/dist/session-ephemerals.js +0 -591
- package/dist/session-ephemerals.js.map +0 -1
- package/dist/session-leaf-records.d.ts +0 -159
- package/dist/session-leaf-records.d.ts.map +0 -1
- package/dist/session-leaf-records.js +0 -408
- package/dist/session-leaf-records.js.map +0 -1
- package/dist/session-lifecycle.d.ts +0 -303
- package/dist/session-lifecycle.d.ts.map +0 -1
- package/dist/session-lifecycle.js +0 -1679
- package/dist/session-lifecycle.js.map +0 -1
- package/dist/session-liveness.d.ts +0 -135
- package/dist/session-liveness.d.ts.map +0 -1
- package/dist/session-liveness.js +0 -347
- package/dist/session-liveness.js.map +0 -1
- package/dist/session-name.d.ts +0 -35
- package/dist/session-name.d.ts.map +0 -1
- package/dist/session-name.js +0 -60
- package/dist/session-name.js.map +0 -1
- package/dist/session-node-factory.d.ts +0 -18
- package/dist/session-node-factory.d.ts.map +0 -1
- package/dist/session-node-factory.js +0 -182
- package/dist/session-node-factory.js.map +0 -1
- package/dist/session-node-manager.d.ts +0 -875
- package/dist/session-node-manager.d.ts.map +0 -1
- package/dist/session-node-manager.js +0 -2995
- package/dist/session-node-manager.js.map +0 -1
- package/dist/session-node-types.d.ts +0 -1057
- package/dist/session-node-types.d.ts.map +0 -1
- package/dist/session-node-types.js +0 -657
- package/dist/session-node-types.js.map +0 -1
- package/dist/session-notify.d.ts +0 -46
- package/dist/session-notify.d.ts.map +0 -1
- package/dist/session-notify.js +0 -116
- package/dist/session-notify.js.map +0 -1
- package/dist/session-own-chain-store.d.ts +0 -65
- package/dist/session-own-chain-store.d.ts.map +0 -1
- package/dist/session-own-chain-store.js +0 -75
- package/dist/session-own-chain-store.js.map +0 -1
- package/dist/session-queries.d.ts +0 -476
- package/dist/session-queries.d.ts.map +0 -1
- package/dist/session-queries.js +0 -1007
- package/dist/session-queries.js.map +0 -1
- package/dist/session-read-handlers.d.ts +0 -87
- package/dist/session-read-handlers.d.ts.map +0 -1
- package/dist/session-read-handlers.js +0 -682
- package/dist/session-read-handlers.js.map +0 -1
- package/dist/session-records.d.ts +0 -341
- package/dist/session-records.d.ts.map +0 -1
- package/dist/session-records.js +0 -858
- package/dist/session-records.js.map +0 -1
- package/dist/session-relay-client.d.ts +0 -659
- package/dist/session-relay-client.d.ts.map +0 -1
- package/dist/session-relay-client.js +0 -2876
- package/dist/session-relay-client.js.map +0 -1
- package/dist/session-relay.d.ts +0 -397
- package/dist/session-relay.d.ts.map +0 -1
- package/dist/session-relay.js +0 -1636
- package/dist/session-relay.js.map +0 -1
- package/dist/session-salt-agreement.d.ts +0 -331
- package/dist/session-salt-agreement.d.ts.map +0 -1
- package/dist/session-salt-agreement.js +0 -472
- package/dist/session-salt-agreement.js.map +0 -1
- package/dist/session-salts.d.ts +0 -432
- package/dist/session-salts.d.ts.map +0 -1
- package/dist/session-salts.js +0 -1540
- package/dist/session-salts.js.map +0 -1
- package/dist/session-schema.d.ts +0 -30
- package/dist/session-schema.d.ts.map +0 -1
- package/dist/session-schema.js +0 -877
- package/dist/session-schema.js.map +0 -1
- package/dist/session-seal-leaf-store.d.ts +0 -70
- package/dist/session-seal-leaf-store.d.ts.map +0 -1
- package/dist/session-seal-leaf-store.js +0 -105
- package/dist/session-seal-leaf-store.js.map +0 -1
- package/dist/session-seal.d.ts +0 -334
- package/dist/session-seal.d.ts.map +0 -1
- package/dist/session-seal.js +0 -1017
- package/dist/session-seal.js.map +0 -1
- package/dist/session-terminal-refusal.d.ts +0 -65
- package/dist/session-terminal-refusal.d.ts.map +0 -1
- package/dist/session-terminal-refusal.js +0 -87
- package/dist/session-terminal-refusal.js.map +0 -1
- package/dist/session-tree.d.ts +0 -110
- package/dist/session-tree.d.ts.map +0 -1
- package/dist/session-tree.js +0 -144
- package/dist/session-tree.js.map +0 -1
- package/dist/session-views.d.ts +0 -47
- package/dist/session-views.d.ts.map +0 -1
- package/dist/session-views.js +0 -278
- package/dist/session-views.js.map +0 -1
- package/dist/signal-handlers.d.ts +0 -63
- package/dist/signal-handlers.d.ts.map +0 -1
- package/dist/signal-handlers.js +0 -980
- package/dist/signal-handlers.js.map +0 -1
- package/dist/signal-requirement-policy.d.ts +0 -51
- package/dist/signal-requirement-policy.d.ts.map +0 -1
- package/dist/signal-requirement-policy.js +0 -89
- package/dist/signal-requirement-policy.js.map +0 -1
- package/dist/signal-revocability.d.ts +0 -49
- package/dist/signal-revocability.d.ts.map +0 -1
- package/dist/signal-revocability.js +0 -93
- package/dist/signal-revocability.js.map +0 -1
- package/dist/signal-submission.d.ts +0 -181
- package/dist/signal-submission.d.ts.map +0 -1
- package/dist/signal-submission.js +0 -368
- package/dist/signal-submission.js.map +0 -1
- package/dist/signaling-connect.d.ts +0 -118
- package/dist/signaling-connect.d.ts.map +0 -1
- package/dist/signaling-connect.js +0 -538
- package/dist/signaling-connect.js.map +0 -1
- package/dist/signaling-wiring.d.ts +0 -105
- package/dist/signaling-wiring.d.ts.map +0 -1
- package/dist/signaling-wiring.js +0 -393
- package/dist/signaling-wiring.js.map +0 -1
- package/dist/singleton-lock.d.ts +0 -85
- package/dist/singleton-lock.d.ts.map +0 -1
- package/dist/singleton-lock.js +0 -219
- package/dist/singleton-lock.js.map +0 -1
- package/dist/sqlcipher-db.d.ts +0 -139
- package/dist/sqlcipher-db.d.ts.map +0 -1
- package/dist/sqlcipher-db.js +0 -357
- package/dist/sqlcipher-db.js.map +0 -1
- package/dist/standing-receivers.d.ts +0 -319
- package/dist/standing-receivers.d.ts.map +0 -1
- package/dist/standing-receivers.js +0 -1295
- package/dist/standing-receivers.js.map +0 -1
- package/dist/start-agent.d.ts +0 -64
- package/dist/start-agent.d.ts.map +0 -1
- package/dist/start-agent.js +0 -136
- package/dist/start-agent.js.map +0 -1
- package/dist/status-handler.d.ts +0 -54
- package/dist/status-handler.d.ts.map +0 -1
- package/dist/status-handler.js +0 -61
- package/dist/status-handler.js.map +0 -1
- package/dist/submission-retry.d.ts +0 -208
- package/dist/submission-retry.d.ts.map +0 -1
- package/dist/submission-retry.js +0 -506
- package/dist/submission-retry.js.map +0 -1
- package/dist/telegram-bot-client.d.ts +0 -34
- package/dist/telegram-bot-client.d.ts.map +0 -1
- package/dist/telegram-bot-client.js +0 -36
- package/dist/telegram-bot-client.js.map +0 -1
- package/dist/telegram-doorbell.d.ts +0 -38
- package/dist/telegram-doorbell.d.ts.map +0 -1
- package/dist/telegram-doorbell.js +0 -140
- package/dist/telegram-doorbell.js.map +0 -1
- package/dist/test-handlers.d.ts +0 -62
- package/dist/test-handlers.d.ts.map +0 -1
- package/dist/test-handlers.js +0 -240
- package/dist/test-handlers.js.map +0 -1
- package/dist/testing.d.ts +0 -10
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -10
- package/dist/testing.js.map +0 -1
- package/dist/transport-composition.d.ts +0 -31
- package/dist/transport-composition.d.ts.map +0 -1
- package/dist/transport-composition.js +0 -55
- package/dist/transport-composition.js.map +0 -1
- package/dist/transport-selector.d.ts +0 -202
- package/dist/transport-selector.d.ts.map +0 -1
- package/dist/transport-selector.js +0 -196
- package/dist/transport-selector.js.map +0 -1
- package/dist/trust-signal-pickup-listener.d.ts +0 -43
- package/dist/trust-signal-pickup-listener.d.ts.map +0 -1
- package/dist/trust-signal-pickup-listener.js +0 -48
- package/dist/trust-signal-pickup-listener.js.map +0 -1
- package/dist/trust-signal-store.d.ts +0 -406
- package/dist/trust-signal-store.d.ts.map +0 -1
- package/dist/trust-signal-store.js +0 -939
- package/dist/trust-signal-store.js.map +0 -1
- package/dist/trust-signal-sweep-tick.d.ts +0 -60
- package/dist/trust-signal-sweep-tick.d.ts.map +0 -1
- package/dist/trust-signal-sweep-tick.js +0 -101
- package/dist/trust-signal-sweep-tick.js.map +0 -1
- package/dist/trust-signal-sweep.d.ts +0 -94
- package/dist/trust-signal-sweep.d.ts.map +0 -1
- package/dist/trust-signal-sweep.js +0 -147
- package/dist/trust-signal-sweep.js.map +0 -1
- package/dist/type-registry.d.ts +0 -42
- package/dist/type-registry.d.ts.map +0 -1
- package/dist/type-registry.js +0 -37
- package/dist/type-registry.js.map +0 -1
- package/dist/types.d.ts +0 -746
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -20
- package/dist/types.js.map +0 -1
- package/dist/unresolved-nodes-report.d.ts +0 -14
- package/dist/unresolved-nodes-report.d.ts.map +0 -1
- package/dist/unresolved-nodes-report.js +0 -96
- package/dist/unresolved-nodes-report.js.map +0 -1
- package/dist/vocabulary.d.ts +0 -150
- package/dist/vocabulary.d.ts.map +0 -1
- package/dist/vocabulary.js +0 -386
- package/dist/vocabulary.js.map +0 -1
- package/dist/who-label.d.ts +0 -28
- package/dist/who-label.d.ts.map +0 -1
- package/dist/who-label.js +0 -31
- package/dist/who-label.js.map +0 -1
- package/dist/who-resolver.d.ts +0 -15
- package/dist/who-resolver.d.ts.map +0 -1
- package/dist/who-resolver.js +0 -47
- package/dist/who-resolver.js.map +0 -1
- package/dist/wire-content-hash.d.ts +0 -93
- package/dist/wire-content-hash.d.ts.map +0 -1
- package/dist/wire-content-hash.js +0 -116
- package/dist/wire-content-hash.js.map +0 -1
- package/dist/withheld-content.d.ts +0 -13
- package/dist/withheld-content.d.ts.map +0 -1
- package/dist/withheld-content.js +0 -46
- package/dist/withheld-content.js.map +0 -1
- package/dist/witness-alerts.d.ts +0 -40
- package/dist/witness-alerts.d.ts.map +0 -1
- package/dist/witness-alerts.js +0 -102
- package/dist/witness-alerts.js.map +0 -1
package/dist/held-content.js
DELETED
|
@@ -1,389 +0,0 @@
|
|
|
1
|
-
import { extractErrorMessage } from "./error-message.js";
|
|
2
|
-
export class HeldContent {
|
|
3
|
-
#ctx;
|
|
4
|
-
constructor(ctx) {
|
|
5
|
-
this.#ctx = ctx;
|
|
6
|
-
}
|
|
7
|
-
/** A getter so the moved queries still read `this.#db` and narrow exactly as they did. */
|
|
8
|
-
get #db() {
|
|
9
|
-
return this.#ctx.db();
|
|
10
|
-
}
|
|
11
|
-
#heldRestored = new Set();
|
|
12
|
-
#heldReleased = new Set();
|
|
13
|
-
/** M8C-ABUSE-1 (reviewer HIGH fix, D18): bytes currently sitting in the out-of-order hold
|
|
14
|
-
* buffer for this session — NOT yet committed leaves, but real bytes in memory that would
|
|
15
|
-
* otherwise let multiple held chunks each individually pass the size gate while cumulatively
|
|
16
|
-
* exceeding it once #releaseHeld drains them. */
|
|
17
|
-
getHeldBytesTotal(agentName, sessionId) {
|
|
18
|
-
// DOD-M12B-STRAND-1: hydrate first. Reading the Map before the durable holds are back
|
|
19
|
-
// under-counts, and this gate exists to stop several held chunks each passing the size cap
|
|
20
|
-
// individually while cumulatively exceeding it — an under-count is the bypass.
|
|
21
|
-
this.ensureHeldRestored(agentName, sessionId);
|
|
22
|
-
const held = this.#ctx.heldContent.get(this.#ctx.sessionKey(agentName, sessionId));
|
|
23
|
-
if (!held)
|
|
24
|
-
return 0;
|
|
25
|
-
let total = 0;
|
|
26
|
-
for (const entry of held.values())
|
|
27
|
-
total += entry.content.length;
|
|
28
|
-
return total;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* DOD-M12B-STRAND-1 — restore this session's held frames into memory.
|
|
32
|
-
*
|
|
33
|
-
* Called when a session node is (re)created, which is the moment the session becomes able to
|
|
34
|
-
* append again. Loading at daemon boot instead would be wrong for the same reason the old code
|
|
35
|
-
* was wrong: a frame is only releasable against a tree, and the tree is loaded per session.
|
|
36
|
-
*
|
|
37
|
-
* A frame whose content the tree ALREADY HOLDS at that position is dropped — re-appending it
|
|
38
|
-
* would change the root a seal signs over. That test is `hashAt`, not `canonical_seq < frontier`:
|
|
39
|
-
* the two counters are different spaces and this file documents them drifting, so the index
|
|
40
|
-
* comparison alone would destroy a frame the tree never held. See the drift branch below.
|
|
41
|
-
*/
|
|
42
|
-
ensureHeldRestored(agentName, sessionId, opts) {
|
|
43
|
-
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
44
|
-
if (!this.#heldRestored.has(key)) {
|
|
45
|
-
// Set BEFORE restoring, so the #ensureHeldRestored inside #releaseHeld below returns straight
|
|
46
|
-
// away instead of recursing.
|
|
47
|
-
this.#heldRestored.add(key);
|
|
48
|
-
this.restoreHeldContent(agentName, sessionId);
|
|
49
|
-
}
|
|
50
|
-
// A RESTORED FRAME MAY ALREADY BE IN ORDER, and nothing else would ever notice.
|
|
51
|
-
//
|
|
52
|
-
// #releaseHeld has one caller: the tail of a successful inbound ingest. Every other way the tree
|
|
53
|
-
// grows — an outbound send leaf, a queued or rejected leaf — advances the frontier without
|
|
54
|
-
// draining. While holds died with the session node that cost seconds; now the hold is durable,
|
|
55
|
-
// so the stall is durable too: the counterparty's message sits on disk at exactly the next slot,
|
|
56
|
-
// is never delivered, and `sealReadiness` counts it, so the session cannot close either.
|
|
57
|
-
// Undeliverable AND unsealable, forever, from one restart.
|
|
58
|
-
//
|
|
59
|
-
// TRACKED SEPARATELY FROM THE HYDRATION. A read-only caller (the status surface) hydrates and
|
|
60
|
-
// must NOT release — otherwise `cello status` appends leaves, advances the session root, writes
|
|
61
|
-
// transcript rows and rings the doorbell, which makes a diagnostic command the thing that
|
|
62
|
-
// delivers messages. One shared flag would also let that read CONSUME the release the next real
|
|
63
|
-
// ingest was going to perform, which is the stall above, reintroduced.
|
|
64
|
-
if (opts?.release === false)
|
|
65
|
-
return;
|
|
66
|
-
if (this.#heldReleased.has(key))
|
|
67
|
-
return;
|
|
68
|
-
this.#heldReleased.add(key);
|
|
69
|
-
if (this.#ctx.heldContent.get(key)?.size) {
|
|
70
|
-
const counterparty = this.#ctx.queries.getSessionRecord(agentName, sessionId)?.counterparty_pubkey;
|
|
71
|
-
if (counterparty)
|
|
72
|
-
this.releaseHeld(agentName, sessionId, counterparty);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
restoreHeldContent(agentName, sessionId) {
|
|
76
|
-
if (!this.#db)
|
|
77
|
-
return;
|
|
78
|
-
let rows;
|
|
79
|
-
try {
|
|
80
|
-
rows = this.#db.prepare(`SELECT canonical_seq, content_blob, original_blob, content_hash_hex, screened_out, correlation_id, origin, leaf_kind
|
|
81
|
-
FROM held_content WHERE agent_id = ? AND session_id = ? ORDER BY canonical_seq ASC`).all(this.#ctx.requireAgentId(agentName), sessionId);
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
this.#ctx.logger.error("session.content.held.restore.failed", {
|
|
85
|
-
agentName, sessionId,
|
|
86
|
-
impact: "verified content held before the restart is not in memory and cannot be released",
|
|
87
|
-
error: extractErrorMessage(err),
|
|
88
|
-
});
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (rows.length === 0)
|
|
92
|
-
return;
|
|
93
|
-
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
94
|
-
let held = this.#ctx.heldContent.get(key);
|
|
95
|
-
if (!held) {
|
|
96
|
-
held = new Map();
|
|
97
|
-
this.#ctx.heldContent.set(key, held);
|
|
98
|
-
}
|
|
99
|
-
const tree = this.#ctx.getSessionTree(agentName, sessionId);
|
|
100
|
-
const frontier = tree.size();
|
|
101
|
-
let restored = 0;
|
|
102
|
-
let superseded = 0;
|
|
103
|
-
let drifted = 0;
|
|
104
|
-
for (const row of rows) {
|
|
105
|
-
// ASK THE TREE WHAT IS AT THAT POSITION — do not infer it from the index.
|
|
106
|
-
//
|
|
107
|
-
// `canonical_seq` is the RELAY's sequence space; `frontier` is this tree's msg-leaf count.
|
|
108
|
-
// The two drift, on purpose and by documented cases: the relay counts CTRL leaves the tree
|
|
109
|
-
// never appends, and a first message whose relay submit failed leaves the tree one ahead.
|
|
110
|
-
// Under drift `canonical_seq < frontier` is TRUE for a frame the tree has never held, and
|
|
111
|
-
// deleting on that comparison destroys verified content while reporting it as tidy-up —
|
|
112
|
-
// the exact failure this unit exists to end, reintroduced on the recovery path.
|
|
113
|
-
const occupant = tree.hashAt(row.canonical_seq);
|
|
114
|
-
if (occupant === row.content_hash_hex) {
|
|
115
|
-
this.#ctx.queries.deleteHeldContent(agentName, sessionId, row.canonical_seq);
|
|
116
|
-
superseded++;
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
if (row.canonical_seq < frontier) {
|
|
120
|
-
// The position is taken by DIFFERENT content. The frame cannot be appended (that would
|
|
121
|
-
// rewrite a committed leaf) and must not be deleted (it is verified content nobody else
|
|
122
|
-
// holds), so it goes to the annex that exists for exactly this — content that arrived for
|
|
123
|
-
// a chain that can no longer carry it — and only then does the row go.
|
|
124
|
-
const annexed = this.#ctx.queries.recordSealedAnnex(agentName, sessionId, row.content_hash_hex, new Uint8Array(row.content_blob),
|
|
125
|
-
// DOD-M12B-INDEX-1: our own held send is attributed to US, never to the counterparty.
|
|
126
|
-
row.origin === "sent"
|
|
127
|
-
? this.#ctx.queries.ownPubkeyHex(agentName)
|
|
128
|
-
: this.#ctx.queries.getSessionRecord(agentName, sessionId)?.counterparty_pubkey ?? null);
|
|
129
|
-
this.#ctx.logger.error("session.content.held.position_drifted", {
|
|
130
|
-
agentName, sessionId, canonicalSeq: row.canonical_seq, frontier,
|
|
131
|
-
contentHash: row.content_hash_hex, occupant, annexed,
|
|
132
|
-
correlationId: row.correlation_id ?? undefined,
|
|
133
|
-
impact: annexed
|
|
134
|
-
? "the relay's position for this frame is occupied by different content — it cannot join the chain and is readable only from the annex"
|
|
135
|
-
: "the relay's position for this frame is occupied by different content AND the annex write failed — the durable row is kept rather than destroyed",
|
|
136
|
-
});
|
|
137
|
-
if (annexed)
|
|
138
|
-
this.#ctx.queries.deleteHeldContent(agentName, sessionId, row.canonical_seq);
|
|
139
|
-
drifted++;
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
held.set(row.canonical_seq, {
|
|
143
|
-
content: new Uint8Array(row.content_blob),
|
|
144
|
-
...(row.original_blob ? { originalContent: new Uint8Array(row.original_blob) } : {}),
|
|
145
|
-
contentHashHex: row.content_hash_hex,
|
|
146
|
-
...(row.correlation_id ? { correlationId: row.correlation_id } : {}),
|
|
147
|
-
...(row.screened_out ? { screenedOut: true } : {}),
|
|
148
|
-
...(row.origin === "sent" ? { origin: "sent" } : {}),
|
|
149
|
-
...(row.leaf_kind === "doc" ? { kind: "doc" } : {}),
|
|
150
|
-
/**
|
|
151
|
-
* ⚠️ `restoredAcrossRestart` EXISTS TO NAME A LOSS, NOT TO CHANGE BEHAVIOUR — review pass 2, H1.
|
|
152
|
-
*
|
|
153
|
-
* `held_content` has no authorship columns, so a SENT message held behind a gap and released
|
|
154
|
-
* after a daemon restart comes back with **no signature** — its transcript row records
|
|
155
|
-
* `self_authored` with no proof, indistinguishable from an unwitnessed send. That is the
|
|
156
|
-
* defect bullet 5 exists to end, reappearing on the recovery path, and it was silent.
|
|
157
|
-
*
|
|
158
|
-
* The proof cannot be reconstructed here: it was made over Structure-1 bytes this process no
|
|
159
|
-
* longer holds. **So the honest move is to say so, not to fabricate one** — a proof that
|
|
160
|
-
* cannot be checked, presented as one that can, is worse than the absence.
|
|
161
|
-
*
|
|
162
|
-
* Two BLOB columns would close it properly (this table already carries two `ALTER TABLE …
|
|
163
|
-
* ADD COLUMN` migrations, so the pattern exists). Under a frozen gate a log is additive and
|
|
164
|
-
* tightenable where a schema change is neither, so this announces the loss now and
|
|
165
|
-
* `DOD-M15-HELD-AUTHORSHIP-1` carries the column.
|
|
166
|
-
*/
|
|
167
|
-
restoredAcrossRestart: true,
|
|
168
|
-
});
|
|
169
|
-
restored++;
|
|
170
|
-
}
|
|
171
|
-
if (held.size === 0)
|
|
172
|
-
this.#ctx.heldContent.delete(key);
|
|
173
|
-
this.#ctx.logger.info("session.content.held.restored", {
|
|
174
|
-
agentName, sessionId, restored, superseded, drifted, frontier,
|
|
175
|
-
canonicalSeqs: [...held.keys()].sort((a, b) => a - b),
|
|
176
|
-
// The flow ids of the frames that came back, so a restored message ties to the
|
|
177
|
-
// `session.content.held` that opened its flow before the restart.
|
|
178
|
-
correlationIds: rows.map((r) => r.correlation_id).filter((c) => c !== null),
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* DOD-MSG-4: drain held out-of-order content in canonical order. After a leaf is appended, any
|
|
183
|
-
* held entry whose canonical sequence equals the new next-expected index is now in order — append
|
|
184
|
-
* it, then check again (a single fill can release a run of consecutive held messages).
|
|
185
|
-
*/
|
|
186
|
-
releaseHeld(agentName, sessionId, senderPubkey) {
|
|
187
|
-
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
188
|
-
// DOD-M12B-STRAND-1: hydrate before scanning. Restoring eagerly at session-node creation put
|
|
189
|
-
// it behind writes that can fail — one failed `sessions` row upsert and the frames stayed on
|
|
190
|
-
// disk, invisible, which is the same outcome as losing them.
|
|
191
|
-
this.ensureHeldRestored(agentName, sessionId);
|
|
192
|
-
const held = this.#ctx.heldContent.get(key);
|
|
193
|
-
if (!held)
|
|
194
|
-
return 0;
|
|
195
|
-
let released = 0;
|
|
196
|
-
for (;;) {
|
|
197
|
-
const nextExpected = this.#ctx.getSessionTree(agentName, sessionId).size();
|
|
198
|
-
const entry = held.get(nextExpected);
|
|
199
|
-
if (!entry)
|
|
200
|
-
break;
|
|
201
|
-
held.delete(nextExpected);
|
|
202
|
-
// DOD-M12B-STRAND-1: released content leaves the durable store in the same breath. A row
|
|
203
|
-
// that outlives its release would re-append the same content on the next boot — growing the
|
|
204
|
-
// tree and changing a root that has already been signed.
|
|
205
|
-
this.#ctx.queries.deleteHeldContent(agentName, sessionId, nextExpected);
|
|
206
|
-
// DOD-M12B-INDEX-1: OUR OWN held message. It leafs at its canonical index and is transcribed
|
|
207
|
-
// as SENT — never routed down the received path, which would attribute our words to the
|
|
208
|
-
// counterparty in the sealed record and hand them back to our own agent as inbound.
|
|
209
|
-
if (entry.origin === "sent") {
|
|
210
|
-
// The KIND the leaf was placed with, not a hardcoded "msg" — a document leaf that had to
|
|
211
|
-
// wait for its position must come back as a document leaf, or the two sides disagree about
|
|
212
|
-
// what the chain contains.
|
|
213
|
-
this.#ctx.appendSessionLeaf(agentName, sessionId, entry.kind ?? "msg", entry.contentHashHex, entry.correlationId);
|
|
214
|
-
// A DOCUMENT frame takes a leaf and NO transcript row — matching what the immediate-append
|
|
215
|
-
// path does for one. Writing one would put raw CBOR into the operator's transcript as
|
|
216
|
-
// something they said, which is the same attribution failure as releasing it inbound.
|
|
217
|
-
if (entry.kind === "doc") {
|
|
218
|
-
released++;
|
|
219
|
-
this.#ctx.logger.info("session.content.released", {
|
|
220
|
-
sessionId, sequenceNumber: nextExpected, leafKind: "doc", correlationId: entry.correlationId,
|
|
221
|
-
});
|
|
222
|
-
if (held.size === 0) {
|
|
223
|
-
this.#ctx.heldContent.delete(key);
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
continue;
|
|
227
|
-
}
|
|
228
|
-
// OBSERVED, not assumed — the received path already does this. The leaf commits either way,
|
|
229
|
-
// so a dropped transcript write means the operator's OWN message is missing from their own
|
|
230
|
-
// transcript with the chain saying it is there, and nothing anywhere said so.
|
|
231
|
-
// bullet 5: the proof was captured at submit time and rides the held entry — see #heldContent.
|
|
232
|
-
/**
|
|
233
|
-
* THE RESTART LOSS, ANNOUNCED — review pass 2, H1. Only for an entry that actually crossed a
|
|
234
|
-
* restart: an in-memory held entry carries its proof, and an unwitnessed send legitimately
|
|
235
|
-
* has none, so warning on every absent proof would fire on a designed benign state and bury
|
|
236
|
-
* the one occurrence that means something.
|
|
237
|
-
*/
|
|
238
|
-
if (entry.restoredAcrossRestart === true && entry.authorship === undefined) {
|
|
239
|
-
this.#ctx.logger.warn("session.content.released.authorship.lost", {
|
|
240
|
-
agentName, sessionId, sequenceNumber: nextExpected, correlationId: entry.correlationId,
|
|
241
|
-
impact: "this message was held behind a gap, survived a daemon restart, and is now committed with " +
|
|
242
|
-
"attribution 'self_authored' and NO signature. Its transcript row asserts its author rather " +
|
|
243
|
-
"than proving one, and is indistinguishable from a send the relay never witnessed.",
|
|
244
|
-
guidance: "Not recoverable after the fact — the signature covered Structure-1 bytes this process no longer " +
|
|
245
|
-
"holds, and fabricating one would be worse than the absence. Tracked as DOD-M15-HELD-AUTHORSHIP-1: " +
|
|
246
|
-
"held_content needs the two proof columns so a restart carries them.",
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
if (!this.#ctx.records.recordTranscriptMessage(agentName, sessionId, nextExpected, "sent", entry.content, entry.correlationId, entry.authorship)) {
|
|
250
|
-
this.#ctx.logger.error("session.content.released.transcript.failed", {
|
|
251
|
-
agentName, sessionId, sequenceNumber: nextExpected, correlationId: entry.correlationId,
|
|
252
|
-
impact: "this side's own message is committed to the chain but missing from its transcript",
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
else if (entry.screenedOut) {
|
|
257
|
-
this.#ctx.appendSessionLeaf(agentName, sessionId, "msg", entry.contentHashHex, entry.correlationId);
|
|
258
|
-
// The SAME witness leak as the immediate-append terminal-block branch (see the block comment
|
|
259
|
-
// at the `if (terminalBlock)` append in `ingestReceivedContent`), on the held path. This
|
|
260
|
-
// branch also bypasses `#appendVerifiedContent`, where the drop lives — so a blocked message
|
|
261
|
-
// that arrived out of order left `missingLeaves` stuck at 1 and the session unsealable.
|
|
262
|
-
this.#ctx.witnessedSeq.get(key)?.delete(entry.contentHashHex);
|
|
263
|
-
}
|
|
264
|
-
else {
|
|
265
|
-
this.#ctx.appendVerifiedContent(agentName, sessionId, entry.content, entry.contentHashHex, senderPubkey, entry.correlationId, entry.originalContent);
|
|
266
|
-
}
|
|
267
|
-
released++;
|
|
268
|
-
this.#ctx.logger.info("session.content.released", {
|
|
269
|
-
sessionId,
|
|
270
|
-
sequenceNumber: nextExpected,
|
|
271
|
-
screenedOut: entry.screenedOut === true,
|
|
272
|
-
correlationId: entry.correlationId,
|
|
273
|
-
});
|
|
274
|
-
if (held.size === 0) {
|
|
275
|
-
this.#ctx.heldContent.delete(key);
|
|
276
|
-
break;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
return released;
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Test seam: put an own leaf in the HELD state instead of the tree — 033-ACKEMIT.
|
|
283
|
-
*
|
|
284
|
-
* The state `placeOwnLeaf` produces when the relay assigns a position ahead of our tail: the leaf
|
|
285
|
-
* exists on this side and is not in the tree, while the counterparty already has it from the relay
|
|
286
|
-
* and can acknowledge it. Reproducing it through the real hold map rather than by asserting the
|
|
287
|
-
* tree is short is what makes the acknowledgement test measure the case instead of a neighbour of
|
|
288
|
-
* it.
|
|
289
|
-
*/
|
|
290
|
-
holdOwnLeafForTest(agentName, sessionId, canonicalSeq, contentHashHex) {
|
|
291
|
-
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
292
|
-
let held = this.#ctx.heldContent.get(key);
|
|
293
|
-
if (!held) {
|
|
294
|
-
held = new Map();
|
|
295
|
-
this.#ctx.heldContent.set(key, held);
|
|
296
|
-
}
|
|
297
|
-
held.set(canonicalSeq, { content: new Uint8Array(), contentHashHex, origin: "sent", kind: "msg" });
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* ⚠️ **ORPHANED COMMENT, OWNER UNKNOWN — do not attach it to the method below.** It reads
|
|
301
|
-
* *"@returns true iff the UPDATE was executed without error (a failed write is logged, never
|
|
302
|
-
* thrown)"*, and `annexHeldContentOnTerminal` returns `void` and runs no such UPDATE. It was
|
|
303
|
-
* already stranded in `session-node-manager.ts` before 037 moved this code, and Rule C carried it
|
|
304
|
-
* verbatim rather than dropping a sentence that is true of SOMETHING.
|
|
305
|
-
*
|
|
306
|
-
* Kept, marked, and NOT reattached: the nearest candidate by behaviour is
|
|
307
|
-
* `SessionQueries.markCounterpartyAbandoned`, which already has its own doc — so attaching it
|
|
308
|
-
* there on a guess is the same defect this marker exists to stop. Delete it only once its owner is
|
|
309
|
-
* identified, or reattach it then.
|
|
310
|
-
*/
|
|
311
|
-
/**
|
|
312
|
-
* DOD-M12B-STRAND-1 — move a terminal session's held frames to the annex.
|
|
313
|
-
*
|
|
314
|
-
* A held frame is content this agent RECEIVED and VERIFIED. When its session ends it can never
|
|
315
|
-
* join that chain (appending behind a committed root is not an option, and ingest refuses a
|
|
316
|
-
* terminal session outright), but it is still the operator's mail and no other copy exists —
|
|
317
|
-
* the sender was never acknowledged for it. `sealed_session_annex` is where M12-P17 already puts
|
|
318
|
-
* content that arrives for an ended session; this is the same content arriving slightly earlier.
|
|
319
|
-
*
|
|
320
|
-
* ANNEX FIRST, DELETE SECOND, per row. A crash between them costs a duplicate the annex's
|
|
321
|
-
* INSERT OR IGNORE absorbs; the other order costs the message. A row whose annex write fails is
|
|
322
|
-
* KEPT — the retention sweep will find it again, and a leftover row is cheaper than a lost one.
|
|
323
|
-
*/
|
|
324
|
-
annexHeldContentOnTerminal(agentName, sessionId, status) {
|
|
325
|
-
if (!this.#db)
|
|
326
|
-
return;
|
|
327
|
-
let rows;
|
|
328
|
-
try {
|
|
329
|
-
rows = this.#db.prepare(`SELECT canonical_seq, content_blob, content_hash_hex, held_at, origin
|
|
330
|
-
FROM held_content WHERE agent_id = ? AND session_id = ? ORDER BY canonical_seq ASC`).all(this.#ctx.requireAgentId(agentName), sessionId);
|
|
331
|
-
}
|
|
332
|
-
catch (err) {
|
|
333
|
-
this.#ctx.logger.error("session.content.held.annex.scan.failed", {
|
|
334
|
-
agentName, sessionId, status,
|
|
335
|
-
impact: "held frames for a terminal session were not moved to the annex and remain unreadable",
|
|
336
|
-
error: extractErrorMessage(err),
|
|
337
|
-
});
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
if (rows.length === 0)
|
|
341
|
-
return;
|
|
342
|
-
const counterparty = this.#ctx.queries.getSessionRecord(agentName, sessionId)?.counterparty_pubkey ?? null;
|
|
343
|
-
let annexed = 0;
|
|
344
|
-
let kept = 0;
|
|
345
|
-
for (const row of rows) {
|
|
346
|
-
// DOD-M12B-INDEX-1: ATTRIBUTION. A `sent` row is our own message. Stamping the counterparty's
|
|
347
|
-
// pubkey on it would put our words in their mouth in the one record that survives the
|
|
348
|
-
// session — the same failure the release path was changed to avoid, on the drain it did not
|
|
349
|
-
// touch. `#ownPubkeyHex` is null only when the identity cannot be resolved, and a null sender
|
|
350
|
-
// reads as "unattributed", which is true, rather than as a false attribution.
|
|
351
|
-
const sender = row.origin === "sent" ? this.#ctx.queries.ownPubkeyHex(agentName) : counterparty;
|
|
352
|
-
if (this.#ctx.queries.recordSealedAnnex(agentName, sessionId, row.content_hash_hex, new Uint8Array(row.content_blob), sender)) {
|
|
353
|
-
this.#ctx.queries.deleteHeldContent(agentName, sessionId, row.canonical_seq);
|
|
354
|
-
// AND OUT OF THE IN-MEMORY MAP. Measured live 2026-08-17 on daemon 0.0.170: this frame is
|
|
355
|
-
// now safe in the annex and its durable row is gone — but teardown still found it in the
|
|
356
|
-
// map, counted `held_content` for the session, got 0, and fired
|
|
357
|
-
// `session.content.held.lost`: "verified content was destroyed". Ten frames were annexed
|
|
358
|
-
// and the same ten were reported destroyed, in the same second. A false alarm on the most
|
|
359
|
-
// serious event in the system is worse than no alarm, because the next investigation goes
|
|
360
|
-
// looking for content that was never lost.
|
|
361
|
-
this.#ctx.heldContent.get(this.#ctx.sessionKey(agentName, sessionId))?.delete(row.canonical_seq);
|
|
362
|
-
annexed++;
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
kept++;
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
this.#ctx.logger.warn("session.content.held.annexed", {
|
|
369
|
-
agentName, sessionId, status, annexed, kept,
|
|
370
|
-
// The consumer of `held_at`: how long the oldest frame waited before its session ended.
|
|
371
|
-
oldestHeldMs: Date.now() - Math.min(...rows.map((r) => r.held_at)),
|
|
372
|
-
impact: "these messages arrived and verified but never joined the chain — they are readable from the annex, not the transcript",
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Forget the restore/release bookkeeping for a torn-down session.
|
|
377
|
-
*
|
|
378
|
-
* The held CONTENT itself is not dropped here — the map is shared and the manager's eviction still
|
|
379
|
-
* owns that line. What goes is this module's memory of whether a session was already hydrated from
|
|
380
|
-
* disk and already released, which must not survive a teardown: a revived session has to re-read
|
|
381
|
-
* from durable state rather than trust a flag about a process that is gone.
|
|
382
|
-
*/
|
|
383
|
-
evictSession(agentName, sessionId) {
|
|
384
|
-
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
385
|
-
this.#heldRestored.delete(key);
|
|
386
|
-
this.#heldReleased.delete(key);
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
//# sourceMappingURL=held-content.js.map
|
package/dist/held-content.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"held-content.js","sourceRoot":"","sources":["../src/held-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CELLO-M7-CONN-001 (DOD-CONN-3) — HTTP consortium-manifest poll.
|
|
3
|
-
*
|
|
4
|
-
* The manifest poll is the ONE daemon-level directory operation. With the keystone
|
|
5
|
-
* deleted there is no shared authenticated signaling stream to carry it, so it moves
|
|
6
|
-
* to unauthenticated HTTP: GET ${directoryUrl}/manifest. The manifest is PUBLIC,
|
|
7
|
-
* self-authenticating data — threshold-signed by officer root keys that the daemon has
|
|
8
|
-
* pinned LOCALLY (CELLO_CONSORTIUM_ROOT_KEYS). The directory is ONLY a transport, never
|
|
9
|
-
* a trust anchor: a rogue/compromised directory cannot make us adopt a forged, expired,
|
|
10
|
-
* not-yet-valid, or rolled-back manifest. The verify-before-adopt policy here is the
|
|
11
|
-
* SAME TUF policy the deleted keystone signaling path enforced (SignalingManager
|
|
12
|
-
* .handleManifestPollResponse), preserved unchanged across the transport move.
|
|
13
|
-
*
|
|
14
|
-
* Runs daemon-level — even with ZERO agents (the property the keystone, which borrowed
|
|
15
|
-
* the primary agent's identity to authenticate, could never provide).
|
|
16
|
-
*
|
|
17
|
-
* Crypto reference: RFC 8032 (Ed25519 threshold verification via verifyManifest).
|
|
18
|
-
*/
|
|
19
|
-
import type { IManifestProvider, IManifestVersionStore, IManifestPollScheduler } from "@cello-protocol/transport";
|
|
20
|
-
/** Minimal structural logger — events use the `domain.noun.verb` taxonomy. */
|
|
21
|
-
export interface ManifestPollLogger {
|
|
22
|
-
info(event: string, ctx?: Record<string, unknown>): void;
|
|
23
|
-
warn(event: string, ctx?: Record<string, unknown>): void;
|
|
24
|
-
error(event: string, ctx?: Record<string, unknown>): void;
|
|
25
|
-
}
|
|
26
|
-
export interface ManifestAdoptDeps {
|
|
27
|
-
manifestProvider: IManifestProvider;
|
|
28
|
-
manifestVersionStore: IManifestVersionStore;
|
|
29
|
-
/** Locally-pinned officer root keys (CELLO_CONSORTIUM_ROOT_KEYS). */
|
|
30
|
-
rootKeys: readonly string[];
|
|
31
|
-
threshold: number;
|
|
32
|
-
logger: ManifestPollLogger;
|
|
33
|
-
}
|
|
34
|
-
export type ManifestPollFailureReason = "manifest_http_unreachable" | "manifest_malformed" | "manifest_threshold_invalid" | "manifest_signature_invalid" | "manifest_not_yet_valid" | "manifest_expired" | "manifest_version_rollback" | "manifest_store_error";
|
|
35
|
-
export type ManifestPollOutcome = {
|
|
36
|
-
ok: true;
|
|
37
|
-
adopted: boolean;
|
|
38
|
-
oldVersion: number | null;
|
|
39
|
-
newVersion: number;
|
|
40
|
-
} | {
|
|
41
|
-
ok: false;
|
|
42
|
-
reason: ManifestPollFailureReason;
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Fetch the consortium manifest over HTTP, verify it (TUF), and adopt it if it is a
|
|
46
|
-
* newer, validly-signed, unexpired manifest. Never throws — a poll failure returns a
|
|
47
|
-
* distinct reason and leaves the cached manifest + trusted version untouched (DB-001).
|
|
48
|
-
*/
|
|
49
|
-
export declare function pollManifestOverHttp(opts: {
|
|
50
|
-
directoryUrl: string;
|
|
51
|
-
fetchFn?: typeof fetch;
|
|
52
|
-
now?: Date;
|
|
53
|
-
correlationId?: string;
|
|
54
|
-
} & ManifestAdoptDeps): Promise<ManifestPollOutcome>;
|
|
55
|
-
/**
|
|
56
|
-
* Wire the daemon-level HTTP manifest poll onto a scheduler. Self-rearming: each tick
|
|
57
|
-
* polls then schedules the next. Returns a stop function. The poll runs regardless of
|
|
58
|
-
* how many agents exist (including zero) — it has no agent identity and opens no
|
|
59
|
-
* signaling connection.
|
|
60
|
-
*/
|
|
61
|
-
export declare function startHttpManifestPoll(opts: {
|
|
62
|
-
scheduler: IManifestPollScheduler;
|
|
63
|
-
directoryUrl: string;
|
|
64
|
-
fetchFn?: typeof fetch;
|
|
65
|
-
mintCorrelationId?: () => string;
|
|
66
|
-
} & ManifestAdoptDeps): () => void;
|
|
67
|
-
//# sourceMappingURL=http-manifest-poll.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-manifest-poll.d.ts","sourceRoot":"","sources":["../src/http-manifest-poll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGlH,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,oBAAoB,EAAE,qBAAqB,CAAC;IAC5C,qEAAqE;IACrE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GACjC,2BAA2B,GAC3B,oBAAoB,GACpB,4BAA4B,GAC5B,4BAA4B,GAC5B,wBAAwB,GACxB,kBAAkB,GAClB,2BAA2B,GAC3B,sBAAsB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAIrD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,iBAAiB,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAsG9B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE;IACJ,SAAS,EAAE,sBAAsB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC,GAAG,iBAAiB,GACpB,MAAM,IAAI,CA6BZ"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CELLO-M7-CONN-001 (DOD-CONN-3) — HTTP consortium-manifest poll.
|
|
3
|
-
*
|
|
4
|
-
* The manifest poll is the ONE daemon-level directory operation. With the keystone
|
|
5
|
-
* deleted there is no shared authenticated signaling stream to carry it, so it moves
|
|
6
|
-
* to unauthenticated HTTP: GET ${directoryUrl}/manifest. The manifest is PUBLIC,
|
|
7
|
-
* self-authenticating data — threshold-signed by officer root keys that the daemon has
|
|
8
|
-
* pinned LOCALLY (CELLO_CONSORTIUM_ROOT_KEYS). The directory is ONLY a transport, never
|
|
9
|
-
* a trust anchor: a rogue/compromised directory cannot make us adopt a forged, expired,
|
|
10
|
-
* not-yet-valid, or rolled-back manifest. The verify-before-adopt policy here is the
|
|
11
|
-
* SAME TUF policy the deleted keystone signaling path enforced (SignalingManager
|
|
12
|
-
* .handleManifestPollResponse), preserved unchanged across the transport move.
|
|
13
|
-
*
|
|
14
|
-
* Runs daemon-level — even with ZERO agents (the property the keystone, which borrowed
|
|
15
|
-
* the primary agent's identity to authenticate, could never provide).
|
|
16
|
-
*
|
|
17
|
-
* Crypto reference: RFC 8032 (Ed25519 threshold verification via verifyManifest).
|
|
18
|
-
*/
|
|
19
|
-
import { verifyManifest } from "@cello-protocol/crypto";
|
|
20
|
-
import { extractErrorMessage } from "./error-message.js";
|
|
21
|
-
const FETCH_TIMEOUT_MS = 10_000;
|
|
22
|
-
/**
|
|
23
|
-
* Fetch the consortium manifest over HTTP, verify it (TUF), and adopt it if it is a
|
|
24
|
-
* newer, validly-signed, unexpired manifest. Never throws — a poll failure returns a
|
|
25
|
-
* distinct reason and leaves the cached manifest + trusted version untouched (DB-001).
|
|
26
|
-
*/
|
|
27
|
-
export async function pollManifestOverHttp(opts) {
|
|
28
|
-
const { directoryUrl, fetchFn = fetch, now = new Date(), correlationId, manifestProvider, manifestVersionStore, rootKeys, threshold, logger, } = opts;
|
|
29
|
-
const manifestUrl = `${directoryUrl.replace(/\/$/, "")}/manifest`;
|
|
30
|
-
// DOD-AUTH-2 observability: announce each poll dispatch (domain.noun.verb taxonomy, matching the
|
|
31
|
-
// manifest LOAD events `directory.auth.manifest.*`). Lets an operator/alarm see the daemon is
|
|
32
|
-
// actively polling even when every poll is a no-op (already-current) or a transient failure.
|
|
33
|
-
logger.info("directory.auth.manifest.poll.dispatched", { directoryUrl, correlationId });
|
|
34
|
-
// 1. Fetch. Any network error / non-200 / timeout → unreachable. DB-001: the caller
|
|
35
|
-
// keeps the cached manifest; a poll failure never disturbs agent connections.
|
|
36
|
-
let raw;
|
|
37
|
-
try {
|
|
38
|
-
const ac = new AbortController();
|
|
39
|
-
const timer = setTimeout(() => ac.abort(), FETCH_TIMEOUT_MS);
|
|
40
|
-
let resp;
|
|
41
|
-
try {
|
|
42
|
-
resp = await fetchFn(manifestUrl, { signal: ac.signal });
|
|
43
|
-
}
|
|
44
|
-
finally {
|
|
45
|
-
clearTimeout(timer);
|
|
46
|
-
}
|
|
47
|
-
if (!resp.ok) {
|
|
48
|
-
logger.warn("directory.auth.manifest.poll.failed", { reason: "manifest_http_unreachable", status: resp.status, directoryUrl, correlationId });
|
|
49
|
-
return { ok: false, reason: "manifest_http_unreachable" };
|
|
50
|
-
}
|
|
51
|
-
raw = await resp.json();
|
|
52
|
-
}
|
|
53
|
-
catch (err) {
|
|
54
|
-
logger.warn("directory.auth.manifest.poll.failed", { reason: "manifest_http_unreachable", directoryUrl, correlationId, error: extractErrorMessage(err) });
|
|
55
|
-
return { ok: false, reason: "manifest_http_unreachable" };
|
|
56
|
-
}
|
|
57
|
-
// 2. Structural check before verify — a junk body must fail loudly, not be cached.
|
|
58
|
-
const manifest = raw;
|
|
59
|
-
if (typeof manifest?.version !== "number" ||
|
|
60
|
-
!Array.isArray(manifest?.nodes) ||
|
|
61
|
-
!Array.isArray(manifest?.signatures)) {
|
|
62
|
-
logger.warn("directory.auth.manifest.poll.failed", { reason: "manifest_malformed", directoryUrl, correlationId });
|
|
63
|
-
return { ok: false, reason: "manifest_malformed" };
|
|
64
|
-
}
|
|
65
|
-
// 3. Defense-in-depth: never adopt against a 0/missing threshold (verifyManifest would
|
|
66
|
-
// accept an unsigned manifest at threshold 0). The composition root rejects
|
|
67
|
-
// threshold < 1 before wiring, but guard the policy directly too.
|
|
68
|
-
if (threshold < 1) {
|
|
69
|
-
logger.error("directory.auth.manifest.poll.failed", { reason: "manifest_threshold_invalid", threshold, correlationId });
|
|
70
|
-
return { ok: false, reason: "manifest_threshold_invalid" };
|
|
71
|
-
}
|
|
72
|
-
// 4. Threshold signature (RFC 8032) against locally-pinned root keys.
|
|
73
|
-
const verifyResult = verifyManifest(manifest, rootKeys, threshold);
|
|
74
|
-
if (!verifyResult.ok) {
|
|
75
|
-
// Distinct security event (a rogue/compromised directory served a forged manifest) — kept as its
|
|
76
|
-
// own name so alarms can key on it separately from ordinary poll failures. DOD-AUTH-2.
|
|
77
|
-
logger.warn("directory.auth.manifest.signature.invalid", { reason: "manifest_signature_invalid", manifestVersion: manifest.version, detail: verifyResult.reason, correlationId });
|
|
78
|
-
return { ok: false, reason: "manifest_signature_invalid" };
|
|
79
|
-
}
|
|
80
|
-
// 5. Validity window.
|
|
81
|
-
if (now < new Date(manifest.not_before)) {
|
|
82
|
-
logger.warn("directory.auth.manifest.poll.failed", { reason: "manifest_not_yet_valid", manifestVersion: manifest.version, notBefore: manifest.not_before, correlationId });
|
|
83
|
-
return { ok: false, reason: "manifest_not_yet_valid" };
|
|
84
|
-
}
|
|
85
|
-
if (new Date(manifest.expires) <= now) {
|
|
86
|
-
logger.error("directory.auth.manifest.poll.failed", { reason: "manifest_expired", manifestVersion: manifest.version, expiresAt: manifest.expires, correlationId });
|
|
87
|
-
return { ok: false, reason: "manifest_expired" };
|
|
88
|
-
}
|
|
89
|
-
// 6-7. Anti-rollback + adopt. The version store / provider are I/O (the version store is
|
|
90
|
-
// DB-backed in production), so they can THROW — wrap them so a store error becomes a distinct,
|
|
91
|
-
// LOGGED failure (manifest_store_error) instead of an invisible throw that silently disables
|
|
92
|
-
// manifest adoption forever (fallback-finder MED).
|
|
93
|
-
try {
|
|
94
|
-
const lastSeen = await manifestVersionStore.getLastSeenVersion();
|
|
95
|
-
if (lastSeen !== null && manifest.version < lastSeen) {
|
|
96
|
-
logger.warn("directory.auth.manifest.poll.failed", { reason: "manifest_version_rollback", manifestVersion: manifest.version, lastSeenVersion: lastSeen, correlationId });
|
|
97
|
-
return { ok: false, reason: "manifest_version_rollback" };
|
|
98
|
-
}
|
|
99
|
-
if (lastSeen !== null && manifest.version === lastSeen) {
|
|
100
|
-
// Already current — nothing to adopt.
|
|
101
|
-
return { ok: true, adopted: false, oldVersion: lastSeen, newVersion: manifest.version };
|
|
102
|
-
}
|
|
103
|
-
const oldVersion = manifestProvider.getCurrentManifest()?.version ?? null;
|
|
104
|
-
manifestProvider.updateManifest(manifest);
|
|
105
|
-
await manifestVersionStore.persistVersion(manifest.version);
|
|
106
|
-
logger.info("directory.auth.manifest.poll.success", { oldVersion, newVersion: manifest.version, directoryUrl, correlationId });
|
|
107
|
-
return { ok: true, adopted: true, oldVersion, newVersion: manifest.version };
|
|
108
|
-
}
|
|
109
|
-
catch (err) {
|
|
110
|
-
logger.error("directory.auth.manifest.poll.failed", { reason: "manifest_store_error", manifestVersion: manifest.version, directoryUrl, correlationId, error: extractErrorMessage(err) });
|
|
111
|
-
return { ok: false, reason: "manifest_store_error" };
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Wire the daemon-level HTTP manifest poll onto a scheduler. Self-rearming: each tick
|
|
116
|
-
* polls then schedules the next. Returns a stop function. The poll runs regardless of
|
|
117
|
-
* how many agents exist (including zero) — it has no agent identity and opens no
|
|
118
|
-
* signaling connection.
|
|
119
|
-
*/
|
|
120
|
-
export function startHttpManifestPoll(opts) {
|
|
121
|
-
const { scheduler, directoryUrl, fetchFn, mintCorrelationId, manifestProvider, manifestVersionStore, rootKeys, threshold, logger } = opts;
|
|
122
|
-
let stopped = false;
|
|
123
|
-
const tick = async () => {
|
|
124
|
-
if (stopped)
|
|
125
|
-
return;
|
|
126
|
-
await pollManifestOverHttp({
|
|
127
|
-
directoryUrl,
|
|
128
|
-
fetchFn,
|
|
129
|
-
correlationId: mintCorrelationId?.(),
|
|
130
|
-
manifestProvider,
|
|
131
|
-
manifestVersionStore,
|
|
132
|
-
rootKeys,
|
|
133
|
-
threshold,
|
|
134
|
-
logger,
|
|
135
|
-
}).catch((err) => {
|
|
136
|
-
// pollManifestOverHttp is designed never to throw (all failures return a reason). If it ever
|
|
137
|
-
// does, LOG it (never swallow silently — that would hide a permanently-disabled poll) and let
|
|
138
|
-
// the loop self-heal by re-arming below.
|
|
139
|
-
logger.error("directory.auth.manifest.poll.failed", { reason: "manifest_poll_unexpected_error", directoryUrl, error: extractErrorMessage(err) });
|
|
140
|
-
});
|
|
141
|
-
if (!stopped)
|
|
142
|
-
scheduler.scheduleNext(tick);
|
|
143
|
-
};
|
|
144
|
-
scheduler.scheduleNext(tick);
|
|
145
|
-
return () => {
|
|
146
|
-
stopped = true;
|
|
147
|
-
scheduler.cancel();
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=http-manifest-poll.js.map
|