@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
|
@@ -1,659 +0,0 @@
|
|
|
1
|
-
import { type SessionAttendance, type SessionLiveness } from "@cello-protocol/protocol-types";
|
|
2
|
-
import type { Stream } from "@libp2p/interface";
|
|
3
|
-
import type { CelloNode } from "@cello-protocol/transport";
|
|
4
|
-
import { type KeyProvider } from "@cello-protocol/crypto";
|
|
5
|
-
import type { Logger } from "./types.js";
|
|
6
|
-
import { type RelayReceiptStore } from "./relay-receipt-store.js";
|
|
7
|
-
import type { SessionSealLeafStore } from "./session-seal-leaf-store.js";
|
|
8
|
-
import type { SessionOwnChainStore } from "./session-own-chain-store.js";
|
|
9
|
-
export interface LivenessAnswer {
|
|
10
|
-
liveness: SessionLiveness;
|
|
11
|
-
/** Unix ms of the relay's most recent observation. 0 when it has none. */
|
|
12
|
-
observedAt: number;
|
|
13
|
-
/** The far daemon's own assertion. Absent unless `liveness` is 'alive'. */
|
|
14
|
-
attendance?: SessionAttendance;
|
|
15
|
-
/**
|
|
16
|
-
* When the far daemon made that assertion — NOT `observedAt`, which is when the relay last saw
|
|
17
|
-
* its connection change. The two are routinely hours apart: the relay sees you connect at 09:00
|
|
18
|
-
* and you step away at 11:30, and labelling the attendance with 09:00 reports a state as of a
|
|
19
|
-
* time before it was true. Absent whenever `attendance` is.
|
|
20
|
-
*/
|
|
21
|
-
attendanceObservedAt?: number;
|
|
22
|
-
/** True when the relay refused to answer rather than answering "I don't know". */
|
|
23
|
-
refused?: true;
|
|
24
|
-
}
|
|
25
|
-
export declare const RELAY_PROTOCOL_ID = "/cello/relay/1.0.0";
|
|
26
|
-
/**
|
|
27
|
-
* How long to wait before re-proving after a transport-class failure.
|
|
28
|
-
*
|
|
29
|
-
* Sized against the measured event, not guessed: libp2p logged
|
|
30
|
-
* `connection-manager closing 1 connections / stopped / started` inside 3ms, and the redial that
|
|
31
|
-
* followed completed ~1s later. A second is comfortably past the restart while still being
|
|
32
|
-
* invisible next to the ~5 minutes the previous behaviour cost (quarantine the relay, wait for the
|
|
33
|
-
* next reachability sweep).
|
|
34
|
-
*/
|
|
35
|
-
export declare const PROOF_RETRY_DELAY_MS = 1000;
|
|
36
|
-
export declare const RELAY_AUTH_DOMAIN = "CELLO-RELAY-AUTH-v1";
|
|
37
|
-
/**
|
|
38
|
-
* DOD-WITNESS-STALL-1 — relay refusals that can NEVER resolve.
|
|
39
|
-
*
|
|
40
|
-
* `sendContent` treats a failed leaf-hash submit as a transient degradation: the content is real,
|
|
41
|
-
* the peer still gets it, and the canonical sequence is recovered later. That is correct for a relay
|
|
42
|
-
* that is briefly unreachable.
|
|
43
|
-
*
|
|
44
|
-
* It is WRONG for these two. They mean the relay has ended the session — there is no later, and
|
|
45
|
-
* nothing sent from here can ever enter the record. Collapsing them into the transient case is what
|
|
46
|
-
* let a conversation run for 68 minutes and 8 messages, every send reporting `delivered: true`,
|
|
47
|
-
* against a chain that had stopped growing.
|
|
48
|
-
*
|
|
49
|
-
* ENUMERATED, never pattern-matched. A substring rule like `reason.includes("sealed")` would absorb
|
|
50
|
-
* a future reason nobody has considered — which is the same collapse in a new coat.
|
|
51
|
-
*/
|
|
52
|
-
export declare const TERMINAL_RELAY_REFUSALS: ReadonlySet<string>;
|
|
53
|
-
/** True when the relay has ended this session and no later submit can succeed. */
|
|
54
|
-
export declare function isTerminalRelayRefusal(reason: string | undefined): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* DOD-M15-RELAYSLOTS-1 — why a relay refused to let this agent hold a reservation slot, in the
|
|
57
|
-
* shape the daemon and the operator both need.
|
|
58
|
-
*
|
|
59
|
-
* `reason` is the relay's own code, unmodified. `advice` is what the person reading it should DO,
|
|
60
|
-
* chosen for that specific cause. `tryAnotherRelay` is the machine half of the same question.
|
|
61
|
-
*/
|
|
62
|
-
export interface RelayAuthRefusal {
|
|
63
|
-
reason: string;
|
|
64
|
-
advice: string;
|
|
65
|
-
tryAnotherRelay: boolean;
|
|
66
|
-
/** Present when the relay said how many slots are held and what its cap is. */
|
|
67
|
-
slotsHeld?: number;
|
|
68
|
-
slotCap?: number;
|
|
69
|
-
/** Present when the relay said when to come back. */
|
|
70
|
-
retryAfterMs?: number;
|
|
71
|
-
}
|
|
72
|
-
export declare function isLocalCredentialRefusal(reason: string): boolean;
|
|
73
|
-
/**
|
|
74
|
-
* Classify a relay's auth refusal: what to tell the operator, and whether another relay would help.
|
|
75
|
-
*
|
|
76
|
-
* Everything not in `RELAY_SIDE_REFUSALS` defaults to "do not try another", and that default is the
|
|
77
|
-
* safe direction. A token problem reproduces identically on every relay in the fleet, so retrying
|
|
78
|
-
* around the fleet spends real time turning a client fault into an apparent outage — and a slot cap
|
|
79
|
-
* IS satisfiable elsewhere, but spreading to another relay papers over sessions that leaked and
|
|
80
|
-
* brings the same wall back on the next one.
|
|
81
|
-
*/
|
|
82
|
-
export declare function classifyRelayAuthRefusal(reason: string, extra?: {
|
|
83
|
-
slotsHeld?: number;
|
|
84
|
-
slotCap?: number;
|
|
85
|
-
retryAfterMs?: number;
|
|
86
|
-
}): RelayAuthRefusal;
|
|
87
|
-
/** Structure 1 leaf kind — these values match the relay's. Message leaf (the `cello_send` default). */
|
|
88
|
-
export declare const LEAF_KIND_MSG = 0;
|
|
89
|
-
/** Control leaf (SEAL etc.) — two distinct-sender ctrl leaves trigger directory notarization. */
|
|
90
|
-
export declare const LEAF_KIND_CTRL = 2;
|
|
91
|
-
/** Document-operation leaf (DOD-DOC-LEAF-1): a CRDT update riding the session tree. */
|
|
92
|
-
export declare const LEAF_KIND_DOC = 4;
|
|
93
|
-
/** Rejection leaf (DOD-DOC-LEAF-1): references the rejected update envelope's hash. */
|
|
94
|
-
export declare const LEAF_KIND_REJECT = 5;
|
|
95
|
-
/**
|
|
96
|
-
* The Ed25519-signed payload that proves K_local ownership to the relay:
|
|
97
|
-
* SHA-256("CELLO-RELAY-AUTH-v1" || nonce || pubkey). The relay verifies the
|
|
98
|
-
* signature against exactly this hash (relay-node #handleRelayStream).
|
|
99
|
-
*/
|
|
100
|
-
export declare function buildRelayAuthPayload(nonce: Uint8Array, pubkey: Uint8Array): Uint8Array;
|
|
101
|
-
export interface LeafDeliverFrame {
|
|
102
|
-
sequence_number: number;
|
|
103
|
-
leaf_kind: number;
|
|
104
|
-
structure1_cbor: Uint8Array;
|
|
105
|
-
structure2_cbor: Uint8Array;
|
|
106
|
-
/**
|
|
107
|
-
* True when the relay echoed back OUR OWN submitted leaf (sender_pubkey ===
|
|
108
|
-
* our K_local), false when it is a genuine COUNTERPARTY leaf. The auto-acknowledge gate uses
|
|
109
|
-
* this to never auto-co-sign in response to its own SEAL ctrl leaf (which would loop). An
|
|
110
|
-
* explicit field — the consumer must not have to re-decode structure1_cbor to learn it.
|
|
111
|
-
*/
|
|
112
|
-
authored_by_us: boolean;
|
|
113
|
-
}
|
|
114
|
-
/** Result of a single relay hash submission. */
|
|
115
|
-
export type SubmitResult = {
|
|
116
|
-
ok: true;
|
|
117
|
-
sequence_number: number;
|
|
118
|
-
structure1_cbor?: Uint8Array;
|
|
119
|
-
structure2_cbor?: Uint8Array;
|
|
120
|
-
/**
|
|
121
|
-
* DOD-M15-SEALWIRE-1 bullet 5, SENT half — OUR signature over `structure1_cbor`.
|
|
122
|
-
*
|
|
123
|
-
* It is already computed on the submit path (`keyProvider.sign(structure1)`) and put on the
|
|
124
|
-
* wire as `sender_signature`; it simply was not handed back, so the transcript row for a
|
|
125
|
-
* message THIS agent sent stored no proof of authorship at all.
|
|
126
|
-
*
|
|
127
|
-
* Why that matters and is not symmetry for its own sake: a RECEIVED row carries the
|
|
128
|
-
* counterparty's pubkey and signature, so a third party can check it. A SENT row carried
|
|
129
|
-
* `attribution: "self_authored"` and nothing else — fine for its owner, who already knows, and
|
|
130
|
-
* **worth nothing to the auditor the bullet exists for.** Half a transcript was provable.
|
|
131
|
-
*
|
|
132
|
-
* Undefined on the relay-degraded path, where no submit happens and there is nothing to sign.
|
|
133
|
-
*/
|
|
134
|
-
sender_signature?: Uint8Array;
|
|
135
|
-
} | {
|
|
136
|
-
ok: false;
|
|
137
|
-
reason: string;
|
|
138
|
-
/**
|
|
139
|
-
* The relay's own words about what went wrong — `relay-types.ts`'s stated invariant is
|
|
140
|
-
* *"`reason` is the class, `detail` is what happened."*
|
|
141
|
-
*
|
|
142
|
-
* ⚠️ THAT INVARIANT HAD NEVER BEEN TRUE END TO END. The relay composed a `detail` on every
|
|
143
|
-
* `hash_submit_error`, and this client read `reason` and **dropped it on the floor** — so the
|
|
144
|
-
* only sentence naming a cause never reached an operator. It defeats two things at once:
|
|
145
|
-
* `DOD-M15-SEALWIRE-1`'s refusal detail (which rule, which leaf kind), and
|
|
146
|
-
* `DOD-M15-TERMINAL-REASON-1`'s F6, where `detail` exists specifically to carry the
|
|
147
|
-
* DIRECTORY's refusal cause out from behind a `seal_refused`.
|
|
148
|
-
*
|
|
149
|
-
* Optional, because an older relay sends none.
|
|
150
|
-
*/
|
|
151
|
-
detail?: string;
|
|
152
|
-
/**
|
|
153
|
-
* DOD-M15-RELAYABUSE-1: milliseconds until the relay's rate-limit window clears, present only
|
|
154
|
-
* with `reason: "rate_limited"`. The relay computes it; nobody guesses it. `#doSubmit` waits
|
|
155
|
-
* this out and resubmits rather than surfacing a throttle — see the retry loop there.
|
|
156
|
-
*/
|
|
157
|
-
retry_after_ms?: number;
|
|
158
|
-
/** On `seal_stale`: the position the relay needs this side to have seen before a close files. */
|
|
159
|
-
awaited_seq?: number;
|
|
160
|
-
};
|
|
161
|
-
export interface AgentRelayClientOpts {
|
|
162
|
-
relayPeerId: string;
|
|
163
|
-
relayAddrs: string[];
|
|
164
|
-
/** The agent's K_local signing key (relay auth + leaf signatures). */
|
|
165
|
-
keyProvider: KeyProvider;
|
|
166
|
-
/** The agent's K_local public key (32 bytes) — relay routes delivery by this. */
|
|
167
|
-
senderPubkey: Uint8Array;
|
|
168
|
-
logger: Logger;
|
|
169
|
-
/**
|
|
170
|
-
* Durable store for the relay's signed ordering-record receipts. When present, each
|
|
171
|
-
* verified `hash_submit_ack` is recorded immutably (the client's evidence of the relay's sequence
|
|
172
|
-
* attestation, carried to the directory at seal time). Optional — when absent, ACKs are not recorded.
|
|
173
|
-
*/
|
|
174
|
-
receiptStore?: RelayReceiptStore;
|
|
175
|
-
/**
|
|
176
|
-
* The per-session leaf log a unilateral seal carries to the directory. When
|
|
177
|
-
* present, every leaf this client sees — its OWN submits (with the relay receipt) and the COUNTERPARTY's
|
|
178
|
-
* delivered leaves (no receipt) — is recorded so a later unilateral seal presents the full chain for the
|
|
179
|
-
* directory's OFFLINE tree rebuild. Optional — when absent, no leaf log is kept.
|
|
180
|
-
*/
|
|
181
|
-
sealLeafStore?: SessionSealLeafStore;
|
|
182
|
-
/**
|
|
183
|
-
* `DOD-M15-SELFCHAIN-1` — what this agent last said in each session, so the next message links to
|
|
184
|
-
* it. Optional on the type because test harnesses construct a client without one; when it is
|
|
185
|
-
* absent this daemon cannot chain to itself and says so rather than signing an unlinked claim.
|
|
186
|
-
*/
|
|
187
|
-
ownChainStore?: SessionOwnChainStore;
|
|
188
|
-
/**
|
|
189
|
-
* DOD-M15-RELAYSLOTS-1: the current directory-issued online token for this agent, or `undefined`
|
|
190
|
-
* when the directory has not issued one (not connected yet, or this key is not a registered
|
|
191
|
-
* agent). A relay refuses an auth without it, and refuses to let the peer hold a reservation slot.
|
|
192
|
-
*
|
|
193
|
-
* ⚠️ A FUNCTION, NOT A VALUE, and that is the whole point. The token is short-lived and reissued
|
|
194
|
-
* on every signaling reconnect — which happens far more often than a relay auth. A client
|
|
195
|
-
* constructed with a snapshot would work for the first hour of an agent's life and then present
|
|
196
|
-
* an expired token forever, losing its slot for a reason nothing on this side reports.
|
|
197
|
-
*
|
|
198
|
-
* Optional so a caller with no directory connection (tests of unrelated paths) compiles; production always supplies it.
|
|
199
|
-
*/
|
|
200
|
-
onlineToken?: () => Uint8Array | undefined;
|
|
201
|
-
/**
|
|
202
|
-
* DOD-M15-CORROBORATE-1: the relay saw a leaf on one of this agent's sessions that verified
|
|
203
|
-
* against neither participant's key, and is telling us directly.
|
|
204
|
-
*
|
|
205
|
-
* Optional so a caller with no notice surface still compiles; production always supplies it. A
|
|
206
|
-
* client that decoded the frame and dropped it would leave the unit's whole point — a record the
|
|
207
|
-
* accused party's client cannot suppress — reaching nobody.
|
|
208
|
-
*/
|
|
209
|
-
onWitnessAlert?: (alert: RelayWitnessAlert) => void;
|
|
210
|
-
/**
|
|
211
|
-
* DOD-M15-CORROBORATE-1 review F7: this relay sent a witness alert this build could not read or
|
|
212
|
-
* could not verify. Neutral by construction — a relay peer id and a machine-readable cause, never
|
|
213
|
-
* a session or a party.
|
|
214
|
-
*/
|
|
215
|
-
onWitnessUnreadable?: (relayPeerId: string, why: string) => void;
|
|
216
|
-
/** First re-dial delay for a lost stream (doubles to a minute). Default `RELAY_RECONNECT_BASE_MS`. */
|
|
217
|
-
reconnectRetryMs?: number;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* What ONE relay observed. Deliberately not a verdict, and the field names say so: this establishes
|
|
221
|
-
* that this relay saw and refused that submission, and nothing about who sent it. Verification is
|
|
222
|
-
* proactive (`DOD-M15-CORROBORATE-1`); BREADTH is not — several relays on one hash sequence is
|
|
223
|
-
* `DOD-M15-MULTIWITNESS-1`.
|
|
224
|
-
*/
|
|
225
|
-
export interface RelayWitnessAlert {
|
|
226
|
-
sessionIdHex: string;
|
|
227
|
-
/**
|
|
228
|
-
* 034-CARRYLEAF — a second reason, and the two are NOT interchangeable to a reader.
|
|
229
|
-
*
|
|
230
|
-
* `leaf_signed_by_neither_participant` is a stranger's leaf reaching the relay.
|
|
231
|
-
* `leaf_witnessed_by_counterparty` is a participant putting a message in the record that its own
|
|
232
|
-
* author did not — which is the observable trace of the withholding attack, and also of an
|
|
233
|
-
* ordinary relay hiccup. Which of those it is depends on how often it happens, so the operator is
|
|
234
|
-
* told rather than the daemon deciding.
|
|
235
|
-
*/
|
|
236
|
-
reason: "leaf_signed_by_neither_participant" | "leaf_witnessed_by_counterparty";
|
|
237
|
-
/** Which witness. Null when the relay runs without a signing identity and could not name itself. */
|
|
238
|
-
relayId: string | null;
|
|
239
|
-
observedAt: number;
|
|
240
|
-
/** True iff the relay says the submitter was our counterparty; false = a third party. */
|
|
241
|
-
submitterIsCounterparty: boolean;
|
|
242
|
-
/**
|
|
243
|
-
* The libp2p peer id of the relay that said it — always known, unlike `relayId`, which is absent
|
|
244
|
-
* for a relay that could not sign. Used to tell two unnamed witnesses apart.
|
|
245
|
-
*/
|
|
246
|
-
witnessPeerId: string;
|
|
247
|
-
/**
|
|
248
|
-
* Whether the relay PROVED it said this — review F3.
|
|
249
|
-
*
|
|
250
|
-
* `true` means the signature verified against the key `relayId` names, so the operator holds
|
|
251
|
-
* something they can show a third party. `false` means the relay named no identity at all, so what
|
|
252
|
-
* they hold is our word that a relay told us — which is worth exactly as much as the accusation
|
|
253
|
-
* this is supposed to corroborate, and the inbox says so.
|
|
254
|
-
*
|
|
255
|
-
* There is no third state: a relay that DECLARES a `relayId` and fails to prove it is refused
|
|
256
|
-
* outright, never reported as an unverifiable alert.
|
|
257
|
-
*/
|
|
258
|
-
verifiable: boolean;
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* The directory-signed relay assignment a client presents to its chosen relay (a
|
|
262
|
-
* `client_record_assignment` frame). The relay
|
|
263
|
-
* reconstructs the relay TBS from these fields and verifies `assignmentSignature` (the directory's
|
|
264
|
-
* per-node relayDirSig) against any consortium directory pubkey. Field order/presence MUST match the
|
|
265
|
-
* directory producer (directory-node.ts) and the relay verifier (relay-node.ts recordAssignment).
|
|
266
|
-
*/
|
|
267
|
-
/**
|
|
268
|
-
* 034-CARRYLEAF — a leaf this agent RECEIVED, carried to the relay on its author's behalf.
|
|
269
|
-
*
|
|
270
|
-
* The author's own signed bytes and their signature over them, verbatim as they arrived on the
|
|
271
|
-
* content frame. **Never re-encoded**: the signature is over the ENCODED BYTES, so a decode-and-
|
|
272
|
-
* re-encode on this path would produce a claim the relay refuses and blame the wrong party for it.
|
|
273
|
-
*/
|
|
274
|
-
export interface CarriedLeafClaim {
|
|
275
|
-
/** The AUTHOR's `structure1_cbor`, exactly as received. */
|
|
276
|
-
structure1Cbor: Uint8Array;
|
|
277
|
-
/** The AUTHOR's signature over those bytes, exactly as received. */
|
|
278
|
-
senderSignature: Uint8Array;
|
|
279
|
-
}
|
|
280
|
-
export interface RelayAssignmentCarry {
|
|
281
|
-
sessionSignature?: Uint8Array;
|
|
282
|
-
participantA: Uint8Array;
|
|
283
|
-
participantB: Uint8Array;
|
|
284
|
-
sessionTimestamp: number;
|
|
285
|
-
initiatorSessionPeerId?: string;
|
|
286
|
-
counterpartySessionPeerId?: string;
|
|
287
|
-
/**
|
|
288
|
-
* 64-byte per-node directory sig over the relay TBS (`relay_directory_signature`), presented to
|
|
289
|
-
* the relay as `client_record_assignment`.
|
|
290
|
-
*
|
|
291
|
-
* ⚠️ OPTIONAL SINCE 069-ORDERPROOF, and the split is real rather than defensive. A session can
|
|
292
|
-
* know WHICH relay may attest to it — `relay_id`, inside the FROST-signed assignment — while the
|
|
293
|
-
* directory issued no per-node relay signature to present. Those are two different facts and they
|
|
294
|
-
* were one field: folding them together would either make a session with nothing to present
|
|
295
|
-
* unable to verify anything, or make one that only knows its relay present an empty frame the
|
|
296
|
-
* relay refuses as forged.
|
|
297
|
-
*/
|
|
298
|
-
assignmentSignature?: Uint8Array;
|
|
299
|
-
/**
|
|
300
|
-
* 069-ORDERPROOF — the assigned relay's ACK-SIGNING pubkey, hex, taken from `relay_id` on an
|
|
301
|
-
* assignment whose FROST signature has already been verified. **This is the only key a relay
|
|
302
|
-
* ordering attestation is checked against.** Absent means the directory named no relay for this
|
|
303
|
-
* session, and every attestation that arrives is then refused for want of an anchor — never
|
|
304
|
-
* accepted on the key the frame itself carries.
|
|
305
|
-
*/
|
|
306
|
-
relayPubkeyHex?: string;
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Per-AGENT relay witness client. Shared across all of an agent's sessions; one
|
|
310
|
-
* authenticated stream at a time (the relay keys by agent pubkey). Submits are FIFO and
|
|
311
|
-
* single-in-flight on the stream; `leaf_deliver` is routed by session_id.
|
|
312
|
-
*/
|
|
313
|
-
export declare class AgentRelayClient {
|
|
314
|
-
#private;
|
|
315
|
-
/** The cause of the most recent reader end, or null if it has not ended. */
|
|
316
|
-
getLastReaderError(): string | null;
|
|
317
|
-
/** The last classified auth refusal from this relay, or null if the last attempt succeeded. */
|
|
318
|
-
getLastAuthRefusal(): RelayAuthRefusal | null;
|
|
319
|
-
constructor(opts: AgentRelayClientOpts);
|
|
320
|
-
/** The agent's K_local public key as hex — the responder identity for auto-acknowledge. */
|
|
321
|
-
get senderPubkeyHex(): string;
|
|
322
|
-
/**
|
|
323
|
-
* Register a session's inbound leaf handler + a live node to (re)dial the relay from
|
|
324
|
-
* (idempotent). Storing the node per session lets a pure-receiver session re-establish
|
|
325
|
-
* the shared stream if the node that originally dialed is torn down.
|
|
326
|
-
*/
|
|
327
|
-
registerSession(sessionIdHex: string, node: CelloNode, onLeafDeliver?: (frame: LeafDeliverFrame) => void, assignment?: RelayAssignmentCarry,
|
|
328
|
-
/**
|
|
329
|
-
* 033-ACKEMIT — the session's genesis prev_root: what the FIRST message of this session
|
|
330
|
-
* acknowledges, before anything has been received.
|
|
331
|
-
*
|
|
332
|
-
* Supplied by the caller because `session-node-manager` is where the session record lives. When
|
|
333
|
-
* it is absent an ASSIGNMENT can still produce it (both participant keys and the session
|
|
334
|
-
* timestamp are on the carry), and that covers re-registration of a session whose row predates
|
|
335
|
-
* the column.
|
|
336
|
-
*
|
|
337
|
-
* ⚠️ WHEN NEITHER IS AVAILABLE THE SESSION CANNOT SUBMIT AT ALL — and this sentence used to say
|
|
338
|
-
* the opposite, that the first submit would claim position 0 with no hash. That shape no longer
|
|
339
|
-
* exists: `DOD-M15-SELFCHAIN-1` made both chain links required, so a session with no starting
|
|
340
|
-
* point has nothing for them to anchor to and every submit on it is refused by name. Registering
|
|
341
|
-
* without a seed is therefore a real fault, not a degraded mode.
|
|
342
|
-
*/
|
|
343
|
-
genesisPrevRoot?: Uint8Array,
|
|
344
|
-
/**
|
|
345
|
-
* 069-ORDERPROOF — the relay key this session's ordering attestations verify under, from
|
|
346
|
-
* `relay_id` on the directory-signed assignment. Supplied by the caller because
|
|
347
|
-
* `session-node-manager` is where the durable copy lives, exactly as with the genesis above.
|
|
348
|
-
*
|
|
349
|
-
* ⚠️ ABSENT IS NOT A DEGRADED MODE. A session with no anchor refuses every attestation that
|
|
350
|
-
* arrives on it, by name, because the only alternative is checking a signature against a key
|
|
351
|
-
* the signer handed us.
|
|
352
|
-
*/
|
|
353
|
-
relayAnchorHex?: string): void;
|
|
354
|
-
/**
|
|
355
|
-
* DOD-M15-RELAYAUTH-1 review H1 — **present the assignment and WAIT for the relay to say it
|
|
356
|
-
* recorded it.**
|
|
357
|
-
*
|
|
358
|
-
* `registerSession` above presents eagerly and forgets: the record is queued onto the submit chain
|
|
359
|
-
* and nobody can observe when it lands. That is correct for the witness relay, where the only
|
|
360
|
-
* requirement is "before the first submit". It is NOT sufficient for the relay that GATES A DIAL,
|
|
361
|
-
* because there the record is a precondition of an action we are about to take on another thread
|
|
362
|
-
* of the protocol — and losing that race denies a legitimate dial (review H1).
|
|
363
|
-
*
|
|
364
|
-
* Chained on `#submitChain` exactly like `#doSubmit`, so it cannot interleave with a submit on the
|
|
365
|
-
* same stream. Idempotent by construction: `#doRecord` returns `true` immediately once the session
|
|
366
|
-
* is recorded, so calling this straight after `registerSession` waits for the record that call
|
|
367
|
-
* already queued rather than sending a second one.
|
|
368
|
-
*
|
|
369
|
-
* Returns whether the relay recorded it. NEVER throws — a caller must be free to proceed on false
|
|
370
|
-
* (a dial that might be denied still beats no dial at all).
|
|
371
|
-
*/
|
|
372
|
-
recordAssignmentAndWait(node: CelloNode, sessionIdHex: string): Promise<boolean>;
|
|
373
|
-
/** Remove a session; caller closes the client when no sessions remain. */
|
|
374
|
-
unregisterSession(sessionIdHex: string): void;
|
|
375
|
-
hasSessions(): boolean;
|
|
376
|
-
/**
|
|
377
|
-
* Is THIS session already registered on this client?
|
|
378
|
-
*
|
|
379
|
-
* DOD-M15-RELAYLEAK-1 (review MEDIUM-5). The detached seal transport releases its registration
|
|
380
|
-
* when the submit finishes, and "did I register it, or did I find it already there?" is the
|
|
381
|
-
* difference between releasing my own and **pulling a live one out from under a concurrent
|
|
382
|
-
* caller** — which closes the client that caller is mid-`submitLeaf` on. `hasSessions()` cannot
|
|
383
|
-
* answer it: it is a count, and by then the id is in the set either way.
|
|
384
|
-
*/
|
|
385
|
-
hasSession(sessionIdHex: string): boolean;
|
|
386
|
-
/**
|
|
387
|
-
* Proactively establish the authenticated stream from `node`. The RECEIVER must connect
|
|
388
|
-
* before the counterparty submits, so the relay has its stream to deliver `leaf_deliver`
|
|
389
|
-
* to (otherwise the relay queues until the recipient connects). Best-effort.
|
|
390
|
-
*/
|
|
391
|
-
connect(node: CelloNode): Promise<boolean>;
|
|
392
|
-
/**
|
|
393
|
-
* DOD-M15-RELAYAUTH-1 review HIGH-1 — prove key possession FROM THIS NODE, on its own stream.
|
|
394
|
-
*
|
|
395
|
-
* ⚠️ **`connect()` CANNOT be used for this, and using it was the defect.** `#ensureConnected`
|
|
396
|
-
* returns `true` the moment `#stream` is non-null, and `#stream` belongs to whichever node
|
|
397
|
-
* connected FIRST. An agent legitimately runs several nodes against one relay — the node promoted
|
|
398
|
-
* into a live session, plus the replacement standing receiver built behind it — and they share
|
|
399
|
-
* one `AgentRelayClient` because the cache is keyed `${agent}::${relay}`. So calling `connect()`
|
|
400
|
-
* from the replacement receiver short-circuited on the session node's stream, sent nothing, and
|
|
401
|
-
* the relay never saw that receiver's transport identity: it revoked the reservation ~15s later,
|
|
402
|
-
* the watchdog rebuilt, and the agent churned on a ~45s loop holding no usable circuit address
|
|
403
|
-
* for as long as the conversation lasted. Any future "reuse the existing connection" optimisation
|
|
404
|
-
* here reintroduces exactly that.
|
|
405
|
-
*
|
|
406
|
-
* So this always opens its own short-lived stream from `node`, and marks it
|
|
407
|
-
* `purpose: "reservation"` so the relay proves possession WITHOUT rebinding the agent's delivery
|
|
408
|
-
* stream (which would steal the live session's inbound leaves — see the relay-side dispatch).
|
|
409
|
-
*/
|
|
410
|
-
/**
|
|
411
|
-
* ⚠️ **THE FIRST ATTEMPT AFTER A COLD START IS EXPECTED TO FAIL, AND THAT IS NOT A FAULT ON
|
|
412
|
-
* EITHER SIDE.** Root-caused 2026-09-07 from libp2p's own debug log:
|
|
413
|
-
*
|
|
414
|
-
* ```
|
|
415
|
-
* circuit-relay listener: making reservation on relay
|
|
416
|
-
* reservation failed with status PERMISSION_DENIED <- the relay's gate, working as designed
|
|
417
|
-
* could not add discovered relay
|
|
418
|
-
* connection-manager closing 1 connections / stopped / started
|
|
419
|
-
* ```
|
|
420
|
-
*
|
|
421
|
-
* libp2p's circuit-relay listener asks the relay for a reservation ON ITS OWN, before any CELLO
|
|
422
|
-
* code has proven anything. The relay's gate refuses an unproven peer — deliberately; its flow is
|
|
423
|
-
* *"asks, is refused, proves itself, and asks again"*. libp2p reacts to that refusal by discarding
|
|
424
|
-
* the relay and RESTARTING ITS CONNECTION MANAGER, which closes every connection — including the
|
|
425
|
-
* healthy one this proof is being opened on. Whichever lands first decides the outcome, so the
|
|
426
|
-
* failure is intermittent (measured 5/5, 2/4, 0/4, 1/6 across cold logins).
|
|
427
|
-
*
|
|
428
|
-
* **Both components are behaving as specified, so the refusal cannot be designed away from here** —
|
|
429
|
-
* removing it means either weakening the gate or reaching into libp2p's internal
|
|
430
|
-
* `transportManager.listen` to defer the circuit listener until after the proof. What the client
|
|
431
|
-
* CAN do is survive it: a transport-class failure is retried on a fresh connection, once.
|
|
432
|
-
*
|
|
433
|
-
* A REFUSAL IS NOT RETRIED. If the relay reached a verdict — no token, slot cap, misconfigured —
|
|
434
|
-
* the answer will be identical a second later, and retrying would spend the operator's reachability
|
|
435
|
-
* on a question already answered. Only a failure that never reached a verdict is retried.
|
|
436
|
-
*/
|
|
437
|
-
proveReservation(node: CelloNode): Promise<boolean>;
|
|
438
|
-
/**
|
|
439
|
-
* 054-SRSPLIT — **TELL THE RELAY WE ARE DONE WITH OUR SLOT.**
|
|
440
|
-
*
|
|
441
|
-
* Resolves whether the relay confirmed it freed one. `false` covers "we held none" and "we could
|
|
442
|
-
* not reach the relay to say so" alike, and the caller must not read it as failure: releasing is
|
|
443
|
-
* tidy-up, and one that could not be delivered costs a slot until its TTL rather than breaking
|
|
444
|
-
* anything the agent is doing. Every path that returns false says why.
|
|
445
|
-
*
|
|
446
|
-
* ⚠️ **IT GOES ON THE LONG-LIVED DELIVERY STREAM, NOT A RESERVATION-PURPOSE ONE, AND THAT IS NOT
|
|
447
|
-
* A STYLE CHOICE.** The first version opened a fresh stream and authenticated with
|
|
448
|
-
* `purpose: "reservation"` — mirroring the proof. The relay's handler treats that purpose as a
|
|
449
|
-
* proof and nothing else: it answers `relay_auth_ok`, **closes the stream and returns without
|
|
450
|
-
* entering the message loop**. So the release frame went into a stream nobody was reading, the
|
|
451
|
-
* reply never came, and the verb was inert while every test passed. Found in review, not by the
|
|
452
|
-
* suite.
|
|
453
|
-
*
|
|
454
|
-
* ⚠️ **THE FRAME CARRIES NO PEER ID, deliberately.** The relay frees the peer this connection
|
|
455
|
-
* authenticated as. A peer id on the wire would let any registered agent free another's.
|
|
456
|
-
*/
|
|
457
|
-
/**
|
|
458
|
-
* DOD-M15-AWAYSCOPE-1 — tell this relay whether anyone is attending this agent, for one session.
|
|
459
|
-
*
|
|
460
|
-
* ── WHY THIS EXISTS AT ALL ──────────────────────────────────────────────────────────────────────
|
|
461
|
-
*
|
|
462
|
-
* An unattended agent used to answer inbound messages with its away greeting. That greeting took a
|
|
463
|
-
* hash-chain leaf inside a live conversation, and on session `e7dd3f43…` it cost two operators a
|
|
464
|
-
* completed conversation's receipt, permanently. The fact itself is worth telling — a counterparty
|
|
465
|
-
* mid-exchange genuinely needs to know whether to wait — but it is a fact ABOUT the session, not a
|
|
466
|
-
* sentence IN it. So it rides here instead, and takes no leaf.
|
|
467
|
-
*
|
|
468
|
-
* ── FIRE AND FORGET, AND THAT IS THE DESIGN ─────────────────────────────────────────────────────
|
|
469
|
-
*
|
|
470
|
-
* Nothing is awaited and the relay sends no ack. The notice may be dropped, duplicated or arrive
|
|
471
|
-
* out of order; `observed_at` settles it, last-write-wins. A failure changes nothing the operator
|
|
472
|
-
* is doing — the counterparty reads "unknown" until the next notice, which is what is true.
|
|
473
|
-
*
|
|
474
|
-
* ⚠️ NO RETRY, NO QUEUE. Anything that made this reliable would want ordering, ordering wants a
|
|
475
|
-
* witness, and a witnessed position is how machine chatter reached the leaf set. A status hint
|
|
476
|
-
* that is allowed to be lost is the safe shape.
|
|
477
|
-
*/
|
|
478
|
-
announceAttendance(node: CelloNode, sessionId: Uint8Array, attendance: SessionAttendance): void;
|
|
479
|
-
/**
|
|
480
|
-
* DOD-M15-AWAYSCOPE-1 — ask the relay about the counterparty: reachable, and attended?
|
|
481
|
-
*
|
|
482
|
-
* Two facts with two producers, which is why they are separate fields. `liveness` is the RELAY's
|
|
483
|
-
* observation — it holds that agent's standing connection or it does not. `attendance` is the far
|
|
484
|
-
* DAEMON's assertion about itself, which the relay was told and repeats; absent whenever
|
|
485
|
-
* `liveness` is not 'alive', because a daemon nobody can reach asserts nothing.
|
|
486
|
-
*
|
|
487
|
-
* ⚠️ EVERY FAILURE ANSWERS 'unknown', never 'gone'. A timeout, a dead stream, a refusal and an
|
|
488
|
-
* unparseable frame all mean "this side learned nothing"; reporting any as `gone` invents an
|
|
489
|
-
* observation nobody made, and `gone` is the value that tells an operator their peer has left.
|
|
490
|
-
*/
|
|
491
|
-
/**
|
|
492
|
-
* Test-only seams for the liveness query path, which cannot be reached any other way.
|
|
493
|
-
*
|
|
494
|
-
* ⚠️ THEY EXIST BECAUSE A ONE-SESSION FAKE HID A REAL DEFECT. Every other test of this feature
|
|
495
|
-
* stubs `queryLiveness` outright, so the code that matches an ANSWER to its QUESTION never ran —
|
|
496
|
-
* and it was wrong: a single resolver slot handed one session's answer to another session's
|
|
497
|
-
* promise the moment an agent held two conversations through one relay, which is ordinary.
|
|
498
|
-
* Reaching that code needs a live stream and a dispatched frame, and both are private.
|
|
499
|
-
*
|
|
500
|
-
* Named `ForTest` like `__setLastActivityAtForTest` and `patchRelayClientForTest`, and doing
|
|
501
|
-
* nothing production does not: one installs the stream a dial would have produced, the other
|
|
502
|
-
* feeds the reader loop a frame the relay would have sent.
|
|
503
|
-
*/
|
|
504
|
-
installStreamForTest(stream: Stream): void;
|
|
505
|
-
dispatchForTest(frame: Record<string, unknown>): void;
|
|
506
|
-
queryLiveness(sessionId: Uint8Array, counterpartyPubkey: Uint8Array): Promise<LivenessAnswer>;
|
|
507
|
-
releaseReservation(node: CelloNode): Promise<boolean>;
|
|
508
|
-
/**
|
|
509
|
-
* Submit a session's CONTENT-leaf hash to the relay. Connects/re-connects from `node` if needed.
|
|
510
|
-
* Globally FIFO across the agent's sessions (the ack has no session_id).
|
|
511
|
-
*
|
|
512
|
-
* `leafKind` defaults to MESSAGE, which is what `cello_send` wants. It is a PARAMETER because
|
|
513
|
-
* the document path needs 0x04/0x05: the seal certificate is computed by the directory from the
|
|
514
|
-
* leaves the RELAY witnessed, and `seal-legibility.ts` excludes doc/reject leaves from
|
|
515
|
-
* `final_message` and from `answered` — guards that could never fire while this method hardcoded
|
|
516
|
-
* MSG for every caller. See `document-leaf-kind-on-the-wire.test.ts` for what that cost.
|
|
517
|
-
*/
|
|
518
|
-
submitMessageHash(node: CelloNode, sessionId: Uint8Array, contentHash: Uint8Array,
|
|
519
|
-
/**
|
|
520
|
-
* REQUIRED — `DOD-M15-SEALWIRE-1` B2b-1 pass-2 F3. This default was the last one on the path,
|
|
521
|
-
* and it is the reason a test passing `undefined` for `leafKind` looked correct: the value was
|
|
522
|
-
* silently rebuilt as MESSAGE one hop below the parameter the fix had just made required. Its
|
|
523
|
-
* one production caller always passes explicitly, so the default was dead and misleading.
|
|
524
|
-
*/
|
|
525
|
-
leafKind: number): Promise<SubmitResult>;
|
|
526
|
-
/**
|
|
527
|
-
* ─── WITNESS A LEAF THIS AGENT RECEIVED BUT DID NOT AUTHOR — 034-CARRYLEAF ────────────────────
|
|
528
|
-
*
|
|
529
|
-
* **This is what closes `DOD-M15-WITHHOLD-SEAL-1`.** Until it existed, `submitMessageHash` had
|
|
530
|
-
* one production caller on the SEND path, so nothing ever witnessed a message that was RECEIVED.
|
|
531
|
-
* A counterparty who delivered a message directly and never submitted its hash left the relay's
|
|
532
|
-
* account of the conversation one message short — permanently — and a unilateral seal then agreed
|
|
533
|
-
* with the witness. Every leaf validly signed, nothing false, the last thing said simply absent.
|
|
534
|
-
*
|
|
535
|
-
* **The teeth are the author's own signature.** It arrived on the content frame beside the bytes
|
|
536
|
-
* it signs, this daemon verified it before ingesting anything, and it cannot be forged here. The
|
|
537
|
-
* relay verifies it again against the session's assignment before sequencing — so what this hands
|
|
538
|
-
* over is a claim the author made and cannot disown.
|
|
539
|
-
*
|
|
540
|
-
* ⚠️ **THE BYTES ARE PASSED THROUGH, NEVER REBUILT.** A signature is over the encoded bytes, and
|
|
541
|
-
* the one measured cost of forgetting that on this exact structure was a daemon-local encoder
|
|
542
|
-
* emitting a timestamp as float64 where the published one promotes to uint64 — same value,
|
|
543
|
-
* different signed bytes, refused by everyone.
|
|
544
|
-
*/
|
|
545
|
-
witnessReceivedLeaf(node: CelloNode, sessionId: Uint8Array, contentHash: Uint8Array, leafKind: number, carried: CarriedLeafClaim): Promise<SubmitResult>;
|
|
546
|
-
/**
|
|
547
|
-
* Submit a leaf hash of a given kind (0x00 message / 0x02 control) to the relay. The SEAL
|
|
548
|
-
* ctrl leaf rides this path: two distinct-sender ctrl leaves in the relay's
|
|
549
|
-
* log trigger the directory's FROST notarization (relay `#maybeProcessSeal`).
|
|
550
|
-
*
|
|
551
|
-
* ─── `contentBytes` — `DOD-M15-SEALWIRE-1` bullets 3+4, THE SENDER LEG ───────────────────────
|
|
552
|
-
*
|
|
553
|
-
* The SEAL leaf's own payload, carried alongside its hash. Without it the directory holds a
|
|
554
|
-
* SHA-256 pre-image and nothing else, so the client's SIGNED `final_root` — the one value in the
|
|
555
|
-
* whole seal that the relay cannot produce — is unrecoverable, and every root check the directory
|
|
556
|
-
* can make compares the relay against itself.
|
|
557
|
-
*
|
|
558
|
-
* ⚠️ THIS PARAMETER PUTS LEAF CONTENT ON THE RELAY, AND THE RELAY IS THE PARTY THIS PROTOCOL
|
|
559
|
-
* EXISTS TO KEEP CONTENT AWAY FROM (INV-3: a forwarding relay sees ciphertext).
|
|
560
|
-
*
|
|
561
|
-
* It is safe for a SEAL ctrl leaf and for nothing else. The payload is `[session_id, final_root,
|
|
562
|
-
* close_timestamp, "PENDING"]` and the relay already knows all four — it assigned the session,
|
|
563
|
-
* built the tree the root comes from, and stamped the leaf. Nothing is disclosed. That reasoning
|
|
564
|
-
* stops dead at the next leaf kind: a `msg` leaf's content is the operator's plaintext and a `doc`
|
|
565
|
-
* leaf's is their document.
|
|
566
|
-
*
|
|
567
|
-
* So both directions are REFUSED rather than tidied, and refused HERE rather than at the relay:
|
|
568
|
-
*
|
|
569
|
-
* - content on a non-ctrl leaf → the relay would refuse the whole frame, but only after the
|
|
570
|
-
* operator's words had already crossed the wire to the party that must not have them, and the
|
|
571
|
-
* refusal would destroy their send rather than protect it.
|
|
572
|
-
* - a ctrl leaf with NO payload → this was the actual defect. `submitSealLeaf` computed the
|
|
573
|
-
* payload, hashed it, and had nowhere to put it, so it was dropped. The seal still succeeded,
|
|
574
|
-
* the relay still acked, and three hops later the directory reported `not_carried` and blamed
|
|
575
|
-
* the relay's build version — for a value the client never sent. Four reviewed legs shipped
|
|
576
|
-
* over that silence. A dropped argument now fails on the machine that dropped it.
|
|
577
|
-
*
|
|
578
|
-
* ⚠️ REQUIRED, AND `| null` RATHER THAN `?` — THE TYPE IS THE GUARD.
|
|
579
|
-
*
|
|
580
|
-
* I first wrote this optional and covered it with tests. Then I ran the revert test that mattered:
|
|
581
|
-
* drop the argument at the one call site that must pass it, exactly reproducing the original
|
|
582
|
-
* defect. **All five new tests stayed green.** An optional parameter makes the defect a silent,
|
|
583
|
-
* type-legal omission — which is precisely how it shipped through four reviews the first time.
|
|
584
|
-
*
|
|
585
|
-
* Required means the omission is a COMPILE ERROR, caught by the gate on the machine that made it,
|
|
586
|
-
* before any test runs. Every caller must now say what this leaf carries, and `submitMessageHash`
|
|
587
|
-
* says `null` in one visible place instead of by saying nothing at all.
|
|
588
|
-
*/
|
|
589
|
-
submitLeaf(node: CelloNode, sessionId: Uint8Array, contentHash: Uint8Array, leafKind: number, contentBytes: Uint8Array | null,
|
|
590
|
-
/**
|
|
591
|
-
* 034-CARRYLEAF — a leaf THIS AGENT DID NOT AUTHOR, carried on its author's behalf.
|
|
592
|
-
*
|
|
593
|
-
* Absent for every ordinary send, where this client builds and signs its own claim. Present
|
|
594
|
-
* only when witnessing something received whose author never submitted it — see
|
|
595
|
-
* `witnessReceivedLeaf`.
|
|
596
|
-
*/
|
|
597
|
-
carried?: CarriedLeafClaim): Promise<SubmitResult>;
|
|
598
|
-
/**
|
|
599
|
-
* Advance this session's acknowledgement from a message that ARRIVED — 033-ACKEMIT review F1.
|
|
600
|
-
*
|
|
601
|
-
* ⚠️ **`#bumpLastSeen` used to have exactly one caller, inside the `leaf_deliver` handler, so the
|
|
602
|
-
* acknowledgement tracked what the RELAY DELIVERED rather than what was RECEIVED.** On a direct
|
|
603
|
-
* session that is a real difference: the content arrives peer-to-peer and the relay's copy of the
|
|
604
|
-
* leaf follows separately, so until it did, this daemon signed an acknowledgement one message
|
|
605
|
-
* behind what it had actually read — and on a session where delivery never came back at all, the
|
|
606
|
-
* acknowledgement never moved.
|
|
607
|
-
*
|
|
608
|
-
* The order's own words are "the content hash of the last message this sender ACTUALLY RECEIVED".
|
|
609
|
-
* This is the caller that makes that true: the receive path calls it as soon as a message has been
|
|
610
|
-
* verified and ingested at a known canonical position.
|
|
611
|
-
*
|
|
612
|
-
* **THE POSITION IS STILL REQUIRED, and that is a real limit rather than an oversight.** The pair
|
|
613
|
-
* is (position, content-at-position), and the relay refuses a `last_seen_seq` that runs ahead of
|
|
614
|
-
* its counter — so a message that arrived with NO ordering record cannot be acknowledged by
|
|
615
|
-
* position at all, whatever we hold of it. That case is the withheld-submit attack itself, and it
|
|
616
|
-
* is closed by carrying the sender's signed leaf into the seal, not from here.
|
|
617
|
-
*/
|
|
618
|
-
noteReceivedLeaf(sessionIdHex: string, relaySeq: number, contentHash: Uint8Array): void;
|
|
619
|
-
/**
|
|
620
|
-
* The POSITION and the CONTENT AT IT together — 033-ACKEMIT.
|
|
621
|
-
*
|
|
622
|
-
* ⚠️ **IT REPLACED `lastSeenSeq()`, WHICH IS DELETED RATHER THAN LEFT WIRED.** That accessor
|
|
623
|
-
* returned the position alone, and `session-node-manager`'s unwitnessed content claim was its
|
|
624
|
-
* only caller. Leaving it in place after this one took over would leave a second way to read half
|
|
625
|
-
* of a pair that must be read whole: a `last_seen_seq` paired with a `last_seen_hash` for a
|
|
626
|
-
* different message is worse than no acknowledgement at all, because it looks checkable and
|
|
627
|
-
* fails.
|
|
628
|
-
*
|
|
629
|
-
* `undefined` means this session has no acknowledgement to make, which the caller must handle
|
|
630
|
-
* rather than fill in.
|
|
631
|
-
*/
|
|
632
|
-
lastSeenAck(sessionIdHex: string): {
|
|
633
|
-
seq: number;
|
|
634
|
-
hash: Uint8Array;
|
|
635
|
-
} | undefined;
|
|
636
|
-
/**
|
|
637
|
-
* This agent's OWN last message on a session — what its next message's self link must name.
|
|
638
|
-
*
|
|
639
|
-
* ⚠️ EXPOSED BECAUSE THERE MUST BE ONE CHAIN, NOT TWO. The unwitnessed send path lives in
|
|
640
|
-
* `session-node-manager` and was reading only the durable store, while the witnessed path reads
|
|
641
|
-
* this in-memory map first. A session that mixed the two — which is every session where the relay
|
|
642
|
-
* comes and goes — was walking two different chains, and the one that lagged produced a link the
|
|
643
|
-
* counterparty refuses.
|
|
644
|
-
*
|
|
645
|
-
* `undefined` means this agent has not spoken on this session yet, which is the session GENESIS
|
|
646
|
-
* and not an absence. The caller supplies it; this class does not guess.
|
|
647
|
-
*/
|
|
648
|
-
lastOwnHash(sessionIdHex: string): Uint8Array | undefined;
|
|
649
|
-
/**
|
|
650
|
-
* Record what this agent just sent on a path this client did not carry — the UNWITNESSED send.
|
|
651
|
-
*
|
|
652
|
-
* The two paths share one chain (see `lastOwnHash`), so a direct send has to advance it here too.
|
|
653
|
-
* Without this, a conversation that ran while the relay was down advanced nothing, and the first
|
|
654
|
-
* witnessed message after it linked to something long superseded.
|
|
655
|
-
*/
|
|
656
|
-
noteOwnLeaf(sessionIdHex: string, contentHash: Uint8Array): void;
|
|
657
|
-
close(): void;
|
|
658
|
-
}
|
|
659
|
-
//# sourceMappingURL=session-relay-client.d.ts.map
|