@cello-protocol/daemon 0.0.227 → 0.0.229
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-admin-handlers.d.ts +56 -0
- package/dist/agent-admin-handlers.d.ts.map +1 -0
- package/dist/agent-admin-handlers.js +73 -0
- package/dist/agent-admin-handlers.js.map +1 -0
- package/dist/agent-handlers.d.ts +72 -0
- package/dist/agent-handlers.d.ts.map +1 -0
- package/dist/agent-handlers.js +604 -0
- package/dist/agent-handlers.js.map +1 -0
- package/dist/agent-id-migration.d.ts +70 -0
- package/dist/agent-id-migration.d.ts.map +1 -0
- package/dist/agent-id-migration.js +468 -0
- package/dist/agent-id-migration.js.map +1 -0
- package/dist/agent-loader.d.ts +37 -0
- package/dist/agent-loader.d.ts.map +1 -0
- package/dist/agent-loader.js +37 -0
- package/dist/agent-loader.js.map +1 -0
- package/dist/agent-selection-root.d.ts +29 -0
- package/dist/agent-selection-root.d.ts.map +1 -0
- package/dist/agent-selection-root.js +126 -0
- package/dist/agent-selection-root.js.map +1 -0
- package/dist/agent-selection.d.ts +73 -0
- package/dist/agent-selection.d.ts.map +1 -0
- package/dist/agent-selection.js +80 -0
- package/dist/agent-selection.js.map +1 -0
- package/dist/agent-settings-keys.d.ts +52 -0
- package/dist/agent-settings-keys.d.ts.map +1 -0
- package/dist/agent-settings-keys.js +114 -0
- package/dist/agent-settings-keys.js.map +1 -0
- package/dist/agent-state.d.ts +67 -0
- package/dist/agent-state.d.ts.map +1 -0
- package/dist/agent-state.js +66 -0
- package/dist/agent-state.js.map +1 -0
- package/dist/assignment-verify.d.ts +90 -0
- package/dist/assignment-verify.d.ts.map +1 -0
- package/dist/assignment-verify.js +301 -0
- package/dist/assignment-verify.js.map +1 -0
- package/dist/attendance-wiring.d.ts +23 -0
- package/dist/attendance-wiring.d.ts.map +1 -0
- package/dist/attendance-wiring.js +248 -0
- package/dist/attendance-wiring.js.map +1 -0
- package/dist/attestation-body.d.ts +47 -0
- package/dist/attestation-body.d.ts.map +1 -0
- package/dist/attestation-body.js +71 -0
- package/dist/attestation-body.js.map +1 -0
- package/dist/authorship-verification.d.ts +91 -0
- package/dist/authorship-verification.d.ts.map +1 -0
- package/dist/authorship-verification.js +532 -0
- package/dist/authorship-verification.js.map +1 -0
- package/dist/away-detection.d.ts +139 -0
- package/dist/away-detection.d.ts.map +1 -0
- package/dist/away-detection.js +186 -0
- package/dist/away-detection.js.map +1 -0
- package/dist/away-inbox-oneshot.d.ts +40 -0
- package/dist/away-inbox-oneshot.d.ts.map +1 -0
- package/dist/away-inbox-oneshot.js +311 -0
- package/dist/away-inbox-oneshot.js.map +1 -0
- package/dist/backup-restore-handlers.d.ts +10 -0
- package/dist/backup-restore-handlers.d.ts.map +1 -0
- package/dist/backup-restore-handlers.js +82 -0
- package/dist/backup-restore-handlers.js.map +1 -0
- package/dist/backup-restore.d.ts +102 -0
- package/dist/backup-restore.d.ts.map +1 -0
- package/dist/backup-restore.js +341 -0
- package/dist/backup-restore.js.map +1 -0
- package/dist/bin/cello-daemon.d.ts +13 -0
- package/dist/bin/cello-daemon.d.ts.map +1 -0
- package/dist/bin/cello-daemon.js.map +1 -0
- package/dist/boot-agents.d.ts +64 -0
- package/dist/boot-agents.d.ts.map +1 -0
- package/dist/boot-agents.js +241 -0
- package/dist/boot-agents.js.map +1 -0
- package/dist/boot-connection-state.d.ts +38 -0
- package/dist/boot-connection-state.d.ts.map +1 -0
- package/dist/boot-connection-state.js +95 -0
- package/dist/boot-connection-state.js.map +1 -0
- package/dist/boot-core.d.ts +36 -0
- package/dist/boot-core.d.ts.map +1 -0
- package/dist/boot-core.js +293 -0
- package/dist/boot-core.js.map +1 -0
- package/dist/boot-parked-content.d.ts +34 -0
- package/dist/boot-parked-content.d.ts.map +1 -0
- package/dist/boot-parked-content.js +528 -0
- package/dist/boot-parked-content.js.map +1 -0
- package/dist/boot-sweeps.d.ts +22 -0
- package/dist/boot-sweeps.d.ts.map +1 -0
- package/dist/boot-sweeps.js +51 -0
- package/dist/boot-sweeps.js.map +1 -0
- package/dist/bundled-consortium-manifest.d.ts +47 -0
- package/dist/bundled-consortium-manifest.d.ts.map +1 -0
- package/dist/bundled-consortium-manifest.js +116 -0
- package/dist/bundled-consortium-manifest.js.map +1 -0
- package/dist/cbor-blob-migration.d.ts +8 -0
- package/dist/cbor-blob-migration.d.ts.map +1 -0
- package/dist/cbor-blob-migration.js +116 -0
- package/dist/cbor-blob-migration.js.map +1 -0
- package/dist/challenge-verifier.d.ts +12 -0
- package/dist/challenge-verifier.d.ts.map +1 -0
- package/dist/challenge-verifier.js +11 -0
- package/dist/challenge-verifier.js.map +1 -0
- package/dist/channel-log-store.d.ts +80 -0
- package/dist/channel-log-store.d.ts.map +1 -0
- package/dist/channel-log-store.js +290 -0
- package/dist/channel-log-store.js.map +1 -0
- package/dist/close-commitment.d.ts +67 -0
- package/dist/close-commitment.d.ts.map +1 -0
- package/dist/close-commitment.js +78 -0
- package/dist/close-commitment.js.map +1 -0
- package/dist/close-session-handler.d.ts +94 -0
- package/dist/close-session-handler.d.ts.map +1 -0
- package/dist/close-session-handler.js +1418 -0
- package/dist/close-session-handler.js.map +1 -0
- package/dist/co-attendance.d.ts +29 -0
- package/dist/co-attendance.d.ts.map +1 -0
- package/dist/co-attendance.js +32 -0
- package/dist/co-attendance.js.map +1 -0
- package/dist/column-birth.d.ts +40 -0
- package/dist/column-birth.d.ts.map +1 -0
- package/dist/column-birth.js +61 -0
- package/dist/column-birth.js.map +1 -0
- package/dist/connect-or-start.d.ts +25 -0
- package/dist/connect-or-start.d.ts.map +1 -0
- package/dist/connect-or-start.js +175 -0
- package/dist/connect-or-start.js.map +1 -0
- package/dist/connection-agents.d.ts +16 -0
- package/dist/connection-agents.d.ts.map +1 -0
- package/dist/connection-agents.js +68 -0
- package/dist/connection-agents.js.map +1 -0
- package/dist/consent-migration.d.ts +49 -0
- package/dist/consent-migration.d.ts.map +1 -0
- package/dist/consent-migration.js +128 -0
- package/dist/consent-migration.js.map +1 -0
- package/dist/consortium-bootstrap.d.ts +138 -0
- package/dist/consortium-bootstrap.d.ts.map +1 -0
- package/dist/consortium-bootstrap.js +339 -0
- package/dist/consortium-bootstrap.js.map +1 -0
- package/dist/consortium-fingerprint.d.ts +115 -0
- package/dist/consortium-fingerprint.d.ts.map +1 -0
- package/dist/consortium-fingerprint.js +175 -0
- package/dist/consortium-fingerprint.js.map +1 -0
- package/dist/contact-handlers.d.ts +59 -0
- package/dist/contact-handlers.d.ts.map +1 -0
- package/dist/contact-handlers.js +343 -0
- package/dist/contact-handlers.js.map +1 -0
- package/dist/contact-pubkey-case.d.ts +65 -0
- package/dist/contact-pubkey-case.d.ts.map +1 -0
- package/dist/contact-pubkey-case.js +136 -0
- package/dist/contact-pubkey-case.js.map +1 -0
- package/dist/contacts-tier-migration.d.ts +90 -0
- package/dist/contacts-tier-migration.d.ts.map +1 -0
- package/dist/contacts-tier-migration.js +150 -0
- package/dist/contacts-tier-migration.js.map +1 -0
- package/dist/content-encryption-status.d.ts +111 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +158 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +90 -0
- package/dist/content-park-client.d.ts.map +1 -0
- package/dist/content-park-client.js +362 -0
- package/dist/content-park-client.js.map +1 -0
- package/dist/content-park.d.ts +52 -0
- package/dist/content-park.d.ts.map +1 -0
- package/dist/content-park.js +1309 -0
- package/dist/content-park.js.map +1 -0
- package/dist/cross-node-negotiation.d.ts +44 -0
- package/dist/cross-node-negotiation.d.ts.map +1 -0
- package/dist/cross-node-negotiation.js +34 -0
- package/dist/cross-node-negotiation.js.map +1 -0
- package/dist/daemon-handle.d.ts +57 -0
- package/dist/daemon-handle.d.ts.map +1 -0
- package/dist/daemon-handle.js +2 -0
- package/dist/daemon-handle.js.map +1 -0
- package/dist/daemon-status-report.d.ts +50 -0
- package/dist/daemon-status-report.d.ts.map +1 -0
- package/dist/daemon-status-report.js +81 -0
- package/dist/daemon-status-report.js.map +1 -0
- package/dist/daemon.d.ts +45 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +1177 -0
- package/dist/daemon.js.map +1 -0
- package/dist/db-identity-store.d.ts +159 -0
- package/dist/db-identity-store.d.ts.map +1 -0
- package/dist/db-identity-store.js +502 -0
- package/dist/db-identity-store.js.map +1 -0
- package/dist/delivery-open-registry.d.ts +92 -0
- package/dist/delivery-open-registry.d.ts.map +1 -0
- package/dist/delivery-open-registry.js +121 -0
- package/dist/delivery-open-registry.js.map +1 -0
- package/dist/delivery-session-suspects.d.ts +56 -0
- package/dist/delivery-session-suspects.d.ts.map +1 -0
- package/dist/delivery-session-suspects.js +94 -0
- package/dist/delivery-session-suspects.js.map +1 -0
- package/dist/directory-auth-posture.d.ts +87 -0
- package/dist/directory-auth-posture.d.ts.map +1 -0
- package/dist/directory-auth-posture.js +134 -0
- package/dist/directory-auth-posture.js.map +1 -0
- package/dist/directory-bootstrap.d.ts +310 -0
- package/dist/directory-bootstrap.d.ts.map +1 -0
- package/dist/directory-bootstrap.js +557 -0
- package/dist/directory-bootstrap.js.map +1 -0
- package/dist/directory-connect.d.ts +27 -0
- package/dist/directory-connect.d.ts.map +1 -0
- package/dist/directory-connect.js +106 -0
- package/dist/directory-connect.js.map +1 -0
- package/dist/disconnect-cleanup.d.ts +51 -0
- package/dist/disconnect-cleanup.d.ts.map +1 -0
- package/dist/disconnect-cleanup.js +72 -0
- package/dist/disconnect-cleanup.js.map +1 -0
- package/dist/document-amendment-store.d.ts +120 -0
- package/dist/document-amendment-store.d.ts.map +1 -0
- package/dist/document-amendment-store.js +266 -0
- package/dist/document-amendment-store.js.map +1 -0
- package/dist/document-delivery-transport.d.ts +168 -0
- package/dist/document-delivery-transport.d.ts.map +1 -0
- package/dist/document-delivery-transport.js +206 -0
- package/dist/document-delivery-transport.js.map +1 -0
- package/dist/document-engine.d.ts +134 -0
- package/dist/document-engine.d.ts.map +1 -0
- package/dist/document-engine.js +282 -0
- package/dist/document-engine.js.map +1 -0
- package/dist/document-flag.d.ts +58 -0
- package/dist/document-flag.d.ts.map +1 -0
- package/dist/document-flag.js +70 -0
- package/dist/document-flag.js.map +1 -0
- package/dist/document-frame-router.d.ts +245 -0
- package/dist/document-frame-router.d.ts.map +1 -0
- package/dist/document-frame-router.js +397 -0
- package/dist/document-frame-router.js.map +1 -0
- package/dist/document-gate-wiring.d.ts +61 -0
- package/dist/document-gate-wiring.d.ts.map +1 -0
- package/dist/document-gate-wiring.js +125 -0
- package/dist/document-gate-wiring.js.map +1 -0
- package/dist/document-gate.d.ts +149 -0
- package/dist/document-gate.d.ts.map +1 -0
- package/dist/document-gate.js +509 -0
- package/dist/document-gate.js.map +1 -0
- package/dist/document-handlers.d.ts +47 -0
- package/dist/document-handlers.d.ts.map +1 -0
- package/dist/document-handlers.js +2203 -0
- package/dist/document-handlers.js.map +1 -0
- package/dist/document-handshake.d.ts +176 -0
- package/dist/document-handshake.d.ts.map +1 -0
- package/dist/document-handshake.js +452 -0
- package/dist/document-handshake.js.map +1 -0
- package/dist/document-inbound.d.ts +162 -0
- package/dist/document-inbound.d.ts.map +1 -0
- package/dist/document-inbound.js +530 -0
- package/dist/document-inbound.js.map +1 -0
- package/dist/document-json.d.ts +120 -0
- package/dist/document-json.d.ts.map +1 -0
- package/dist/document-json.js +191 -0
- package/dist/document-json.js.map +1 -0
- package/dist/document-layer.d.ts +215 -0
- package/dist/document-layer.d.ts.map +1 -0
- package/dist/document-layer.js +1025 -0
- package/dist/document-layer.js.map +1 -0
- package/dist/document-lifecycle.d.ts +52 -0
- package/dist/document-lifecycle.d.ts.map +1 -0
- package/dist/document-lifecycle.js +134 -0
- package/dist/document-lifecycle.js.map +1 -0
- package/dist/document-live-docs.d.ts +58 -0
- package/dist/document-live-docs.d.ts.map +1 -0
- package/dist/document-live-docs.js +126 -0
- package/dist/document-live-docs.js.map +1 -0
- package/dist/document-notify.d.ts +228 -0
- package/dist/document-notify.d.ts.map +1 -0
- package/dist/document-notify.js +580 -0
- package/dist/document-notify.js.map +1 -0
- package/dist/document-profile.d.ts +61 -0
- package/dist/document-profile.d.ts.map +1 -0
- package/dist/document-profile.js +112 -0
- package/dist/document-profile.js.map +1 -0
- package/dist/document-publish.d.ts +87 -0
- package/dist/document-publish.d.ts.map +1 -0
- package/dist/document-publish.js +173 -0
- package/dist/document-publish.js.map +1 -0
- package/dist/document-reachability.d.ts +42 -0
- package/dist/document-reachability.d.ts.map +1 -0
- package/dist/document-reachability.js +80 -0
- package/dist/document-reachability.js.map +1 -0
- package/dist/document-reconcile-engine.d.ts +66 -0
- package/dist/document-reconcile-engine.d.ts.map +1 -0
- package/dist/document-reconcile-engine.js +225 -0
- package/dist/document-reconcile-engine.js.map +1 -0
- package/dist/document-reconcile-scheduler.d.ts +163 -0
- package/dist/document-reconcile-scheduler.d.ts.map +1 -0
- package/dist/document-reconcile-scheduler.js +303 -0
- package/dist/document-reconcile-scheduler.js.map +1 -0
- package/dist/document-rejection.d.ts +251 -0
- package/dist/document-rejection.d.ts.map +1 -0
- package/dist/document-rejection.js +435 -0
- package/dist/document-rejection.js.map +1 -0
- package/dist/document-screen.d.ts +114 -0
- package/dist/document-screen.d.ts.map +1 -0
- package/dist/document-screen.js +223 -0
- package/dist/document-screen.js.map +1 -0
- package/dist/document-store.d.ts +372 -0
- package/dist/document-store.d.ts.map +1 -0
- package/dist/document-store.js +931 -0
- package/dist/document-store.js.map +1 -0
- package/dist/document-surface.d.ts +32 -0
- package/dist/document-surface.d.ts.map +1 -0
- package/dist/document-surface.js +151 -0
- package/dist/document-surface.js.map +1 -0
- package/dist/document-types.d.ts +94 -0
- package/dist/document-types.d.ts.map +1 -0
- package/dist/document-types.js +90 -0
- package/dist/document-types.js.map +1 -0
- package/dist/document-watch.d.ts +69 -0
- package/dist/document-watch.d.ts.map +1 -0
- package/dist/document-watch.js +108 -0
- package/dist/document-watch.js.map +1 -0
- package/dist/document-wiring.d.ts +53 -0
- package/dist/document-wiring.d.ts.map +1 -0
- package/dist/document-wiring.js +323 -0
- package/dist/document-wiring.js.map +1 -0
- package/dist/document-write-guard.d.ts +66 -0
- package/dist/document-write-guard.d.ts.map +1 -0
- package/dist/document-write-guard.js +98 -0
- package/dist/document-write-guard.js.map +1 -0
- package/dist/document-write-path.d.ts +94 -0
- package/dist/document-write-path.d.ts.map +1 -0
- package/dist/document-write-path.js +530 -0
- package/dist/document-write-path.js.map +1 -0
- package/dist/error-message.d.ts +7 -0
- package/dist/error-message.d.ts.map +1 -0
- package/dist/error-message.js +19 -0
- package/dist/error-message.js.map +1 -0
- package/dist/file-manifest-provider.d.ts +37 -0
- package/dist/file-manifest-provider.d.ts.map +1 -0
- package/dist/file-manifest-provider.js +105 -0
- package/dist/file-manifest-provider.js.map +1 -0
- package/dist/frame-values.d.ts +3 -0
- package/dist/frame-values.d.ts.map +1 -0
- package/dist/frame-values.js +84 -0
- package/dist/frame-values.js.map +1 -0
- package/dist/frontier-mismatch.d.ts +73 -0
- package/dist/frontier-mismatch.d.ts.map +1 -0
- package/dist/frontier-mismatch.js +89 -0
- package/dist/frontier-mismatch.js.map +1 -0
- package/dist/gateway-config-handlers.d.ts +26 -0
- package/dist/gateway-config-handlers.d.ts.map +1 -0
- package/dist/gateway-config-handlers.js +454 -0
- package/dist/gateway-config-handlers.js.map +1 -0
- package/dist/held-content.d.ts +145 -0
- package/dist/held-content.d.ts.map +1 -0
- package/dist/held-content.js +389 -0
- package/dist/held-content.js.map +1 -0
- package/dist/http-manifest-poll.d.ts +67 -0
- package/dist/http-manifest-poll.d.ts.map +1 -0
- package/dist/http-manifest-poll.js +150 -0
- package/dist/http-manifest-poll.js.map +1 -0
- package/dist/identity-migration.d.ts +40 -0
- package/dist/identity-migration.d.ts.map +1 -0
- package/dist/identity-migration.js +461 -0
- package/dist/identity-migration.js.map +1 -0
- package/dist/inbound-refusals.d.ts +283 -0
- package/dist/inbound-refusals.d.ts.map +1 -0
- package/dist/inbound-refusals.js +919 -0
- package/dist/inbound-refusals.js.map +1 -0
- package/dist/inbound-seal-request.d.ts +32 -0
- package/dist/inbound-seal-request.d.ts.map +1 -0
- package/dist/inbound-seal-request.js +228 -0
- package/dist/inbound-seal-request.js.map +1 -0
- package/dist/inbound-sessions.d.ts +291 -0
- package/dist/inbound-sessions.d.ts.map +1 -0
- package/dist/inbound-sessions.js +1609 -0
- package/dist/inbound-sessions.js.map +1 -0
- package/dist/inclusion-proof-handlers.d.ts +43 -0
- package/dist/inclusion-proof-handlers.d.ts.map +1 -0
- package/dist/inclusion-proof-handlers.js +565 -0
- package/dist/inclusion-proof-handlers.js.map +1 -0
- package/dist/inclusion-proof.d.ts +151 -0
- package/dist/inclusion-proof.d.ts.map +1 -0
- package/dist/inclusion-proof.js +228 -0
- package/dist/inclusion-proof.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/initiate-session-handler.d.ts +55 -0
- package/dist/initiate-session-handler.d.ts.map +1 -0
- package/dist/initiate-session-handler.js +310 -0
- package/dist/initiate-session-handler.js.map +1 -0
- package/dist/ipc-client.d.ts +31 -0
- package/dist/ipc-client.d.ts.map +1 -0
- package/dist/ipc-client.js +113 -0
- package/dist/ipc-client.js.map +1 -0
- package/dist/ipc-server.d.ts +63 -0
- package/dist/ipc-server.d.ts.map +1 -0
- package/dist/ipc-server.js +429 -0
- package/dist/ipc-server.js.map +1 -0
- package/dist/ipc-surface.d.ts +44 -0
- package/dist/ipc-surface.d.ts.map +1 -0
- package/dist/ipc-surface.js +107 -0
- package/dist/ipc-surface.js.map +1 -0
- package/dist/line-lcs.d.ts +51 -0
- package/dist/line-lcs.d.ts.map +1 -0
- package/dist/line-lcs.js +71 -0
- package/dist/line-lcs.js.map +1 -0
- package/dist/lock-file.d.ts +39 -0
- package/dist/lock-file.d.ts.map +1 -0
- package/dist/lock-file.js +120 -0
- package/dist/lock-file.js.map +1 -0
- package/dist/log-collapse.d.ts +66 -0
- package/dist/log-collapse.d.ts.map +1 -0
- package/dist/log-collapse.js +244 -0
- package/dist/log-collapse.js.map +1 -0
- package/dist/log-rotate.d.ts +67 -0
- package/dist/log-rotate.d.ts.map +1 -0
- package/dist/log-rotate.js +134 -0
- package/dist/log-rotate.js.map +1 -0
- package/dist/manifest-deps.d.ts +25 -0
- package/dist/manifest-deps.d.ts.map +1 -0
- package/dist/manifest-deps.js +151 -0
- package/dist/manifest-deps.js.map +1 -0
- package/dist/manifest-poll-scheduler.d.ts +31 -0
- package/dist/manifest-poll-scheduler.d.ts.map +1 -0
- package/dist/manifest-poll-scheduler.js +59 -0
- package/dist/manifest-poll-scheduler.js.map +1 -0
- package/dist/manifest-validity.d.ts +153 -0
- package/dist/manifest-validity.d.ts.map +1 -0
- package/dist/manifest-validity.js +268 -0
- package/dist/manifest-validity.js.map +1 -0
- package/dist/manifest-version-store-db.d.ts +24 -0
- package/dist/manifest-version-store-db.d.ts.map +1 -0
- package/dist/manifest-version-store-db.js +58 -0
- package/dist/manifest-version-store-db.js.map +1 -0
- package/dist/manifest-version-store.d.ts +16 -0
- package/dist/manifest-version-store.d.ts.map +1 -0
- package/dist/manifest-version-store.js +15 -0
- package/dist/manifest-version-store.js.map +1 -0
- package/dist/network-directory-node.d.ts +136 -0
- package/dist/network-directory-node.d.ts.map +1 -0
- package/dist/network-directory-node.js +810 -0
- package/dist/network-directory-node.js.map +1 -0
- package/dist/nonce-dedup.d.ts +68 -0
- package/dist/nonce-dedup.d.ts.map +1 -0
- package/dist/nonce-dedup.js +205 -0
- package/dist/nonce-dedup.js.map +1 -0
- package/dist/notification-dispatcher.d.ts +92 -0
- package/dist/notification-dispatcher.d.ts.map +1 -0
- package/dist/notification-dispatcher.js +210 -0
- package/dist/notification-dispatcher.js.map +1 -0
- package/dist/notification-handlers.d.ts +53 -0
- package/dist/notification-handlers.d.ts.map +1 -0
- package/dist/notification-handlers.js +461 -0
- package/dist/notification-handlers.js.map +1 -0
- package/dist/onboarding-guidance.d.ts +79 -0
- package/dist/onboarding-guidance.d.ts.map +1 -0
- package/dist/onboarding-guidance.js +95 -0
- package/dist/onboarding-guidance.js.map +1 -0
- package/dist/operator-guidance.d.ts +25 -0
- package/dist/operator-guidance.d.ts.map +1 -0
- package/dist/operator-guidance.js +50 -0
- package/dist/operator-guidance.js.map +1 -0
- package/dist/orphan-triage.d.ts +130 -0
- package/dist/orphan-triage.d.ts.map +1 -0
- package/dist/orphan-triage.js +207 -0
- package/dist/orphan-triage.js.map +1 -0
- package/dist/outbound-sessions.d.ts +126 -0
- package/dist/outbound-sessions.d.ts.map +1 -0
- package/dist/outbound-sessions.js +1052 -0
- package/dist/outbound-sessions.js.map +1 -0
- package/dist/park-envelope.d.ts +329 -0
- package/dist/park-envelope.d.ts.map +1 -0
- package/dist/park-envelope.js +509 -0
- package/dist/park-envelope.js.map +1 -0
- package/dist/park-recovery.d.ts +273 -0
- package/dist/park-recovery.d.ts.map +1 -0
- package/dist/park-recovery.js +717 -0
- package/dist/park-recovery.js.map +1 -0
- package/dist/park-refusals.d.ts +147 -0
- package/dist/park-refusals.d.ts.map +1 -0
- package/dist/park-refusals.js +331 -0
- package/dist/park-refusals.js.map +1 -0
- package/dist/quarantine-framing.d.ts +92 -0
- package/dist/quarantine-framing.d.ts.map +1 -0
- package/dist/quarantine-framing.js +111 -0
- package/dist/quarantine-framing.js.map +1 -0
- package/dist/reconnect-drain.d.ts +22 -0
- package/dist/reconnect-drain.d.ts.map +1 -0
- package/dist/reconnect-drain.js +65 -0
- package/dist/reconnect-drain.js.map +1 -0
- package/dist/recovered-position.d.ts +14 -0
- package/dist/recovered-position.d.ts.map +1 -0
- package/dist/recovered-position.js +59 -0
- package/dist/recovered-position.js.map +1 -0
- package/dist/refusal-notices.d.ts +196 -0
- package/dist/refusal-notices.d.ts.map +1 -0
- package/dist/refusal-notices.js +516 -0
- package/dist/refusal-notices.js.map +1 -0
- package/dist/refusal-reasons.d.ts +245 -0
- package/dist/refusal-reasons.d.ts.map +1 -0
- package/dist/refusal-reasons.js +363 -0
- package/dist/refusal-reasons.js.map +1 -0
- package/dist/register-handler.d.ts +36 -0
- package/dist/register-handler.d.ts.map +1 -0
- package/dist/register-handler.js +285 -0
- package/dist/register-handler.js.map +1 -0
- package/dist/registration-context.d.ts +72 -0
- package/dist/registration-context.d.ts.map +1 -0
- package/dist/registration-context.js +126 -0
- package/dist/registration-context.js.map +1 -0
- package/dist/registration-manager.d.ts +94 -0
- package/dist/registration-manager.d.ts.map +1 -0
- package/dist/registration-manager.js +585 -0
- package/dist/registration-manager.js.map +1 -0
- package/dist/registration-persistence.d.ts +183 -0
- package/dist/registration-persistence.d.ts.map +1 -0
- package/dist/registration-persistence.js +263 -0
- package/dist/registration-persistence.js.map +1 -0
- package/dist/registry-poll.d.ts +52 -0
- package/dist/registry-poll.d.ts.map +1 -0
- package/dist/registry-poll.js +140 -0
- package/dist/registry-poll.js.map +1 -0
- package/dist/registry-version-store-db.d.ts +22 -0
- package/dist/registry-version-store-db.d.ts.map +1 -0
- package/dist/registry-version-store-db.js +50 -0
- package/dist/registry-version-store-db.js.map +1 -0
- package/dist/relay-endpoints.d.ts +18 -0
- package/dist/relay-endpoints.d.ts.map +1 -0
- package/dist/relay-endpoints.js +9 -0
- package/dist/relay-endpoints.js.map +1 -0
- package/dist/relay-only.d.ts +140 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +193 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/relay-receipt-store.d.ts +155 -0
- package/dist/relay-receipt-store.d.ts.map +1 -0
- package/dist/relay-receipt-store.js +284 -0
- package/dist/relay-receipt-store.js.map +1 -0
- package/dist/relay-reconnect.d.ts +32 -0
- package/dist/relay-reconnect.d.ts.map +1 -0
- package/dist/relay-reconnect.js +29 -0
- package/dist/relay-reconnect.js.map +1 -0
- package/dist/reply-lag.d.ts +11 -0
- package/dist/reply-lag.d.ts.map +1 -0
- package/dist/reply-lag.js +46 -0
- package/dist/reply-lag.js.map +1 -0
- package/dist/resolve-named-agent.d.ts +49 -0
- package/dist/resolve-named-agent.d.ts.map +1 -0
- package/dist/resolve-named-agent.js +77 -0
- package/dist/resolve-named-agent.js.map +1 -0
- package/dist/restart-seal-resolver.d.ts +110 -0
- package/dist/restart-seal-resolver.d.ts.map +1 -0
- package/dist/restart-seal-resolver.js +353 -0
- package/dist/restart-seal-resolver.js.map +1 -0
- package/dist/resume-last-seen.d.ts +15 -0
- package/dist/resume-last-seen.d.ts.map +1 -0
- package/dist/resume-last-seen.js +44 -0
- package/dist/resume-last-seen.js.map +1 -0
- package/dist/retry-queue.d.ts +203 -0
- package/dist/retry-queue.d.ts.map +1 -0
- package/dist/retry-queue.js +701 -0
- package/dist/retry-queue.js.map +1 -0
- package/dist/roster-freshness.d.ts +160 -0
- package/dist/roster-freshness.d.ts.map +1 -0
- package/dist/roster-freshness.js +250 -0
- package/dist/roster-freshness.js.map +1 -0
- package/dist/screening-status.d.ts +15 -0
- package/dist/screening-status.d.ts.map +1 -0
- package/dist/screening-status.js +65 -0
- package/dist/screening-status.js.map +1 -0
- package/dist/seal-carried-close.d.ts +37 -0
- package/dist/seal-carried-close.d.ts.map +1 -0
- package/dist/seal-carried-close.js +179 -0
- package/dist/seal-carried-close.js.map +1 -0
- package/dist/seal-certificate-pull.d.ts +79 -0
- package/dist/seal-certificate-pull.d.ts.map +1 -0
- package/dist/seal-certificate-pull.js +186 -0
- package/dist/seal-certificate-pull.js.map +1 -0
- package/dist/seal-certified-root-check.d.ts +37 -0
- package/dist/seal-certified-root-check.d.ts.map +1 -0
- package/dist/seal-certified-root-check.js +127 -0
- package/dist/seal-certified-root-check.js.map +1 -0
- package/dist/seal-coordinator.d.ts +118 -0
- package/dist/seal-coordinator.d.ts.map +1 -0
- package/dist/seal-coordinator.js +927 -0
- package/dist/seal-coordinator.js.map +1 -0
- package/dist/seal-escalation.d.ts +80 -0
- package/dist/seal-escalation.d.ts.map +1 -0
- package/dist/seal-escalation.js +283 -0
- package/dist/seal-escalation.js.map +1 -0
- package/dist/seal-evidence-root-check.d.ts +70 -0
- package/dist/seal-evidence-root-check.d.ts.map +1 -0
- package/dist/seal-evidence-root-check.js +199 -0
- package/dist/seal-evidence-root-check.js.map +1 -0
- package/dist/seal-failure-store.d.ts +139 -0
- package/dist/seal-failure-store.d.ts.map +1 -0
- package/dist/seal-failure-store.js +207 -0
- package/dist/seal-failure-store.js.map +1 -0
- package/dist/seal-flows.d.ts +107 -0
- package/dist/seal-flows.d.ts.map +1 -0
- package/dist/seal-flows.js +638 -0
- package/dist/seal-flows.js.map +1 -0
- package/dist/seal-frontier-verify.d.ts +103 -0
- package/dist/seal-frontier-verify.d.ts.map +1 -0
- package/dist/seal-frontier-verify.js +143 -0
- package/dist/seal-frontier-verify.js.map +1 -0
- package/dist/seal-leaf.d.ts +58 -0
- package/dist/seal-leaf.d.ts.map +1 -0
- package/dist/seal-leaf.js +112 -0
- package/dist/seal-leaf.js.map +1 -0
- package/dist/seal-legibility-tbs.d.ts +25 -0
- package/dist/seal-legibility-tbs.d.ts.map +1 -0
- package/dist/seal-legibility-tbs.js +77 -0
- package/dist/seal-legibility-tbs.js.map +1 -0
- package/dist/seal-local-terminus.d.ts +41 -0
- package/dist/seal-local-terminus.d.ts.map +1 -0
- package/dist/seal-local-terminus.js +170 -0
- package/dist/seal-local-terminus.js.map +1 -0
- package/dist/seal-receipt-upgrade.d.ts +30 -0
- package/dist/seal-receipt-upgrade.d.ts.map +1 -0
- package/dist/seal-receipt-upgrade.js +49 -0
- package/dist/seal-receipt-upgrade.js.map +1 -0
- package/dist/seal-relay-silence.d.ts +51 -0
- package/dist/seal-relay-silence.d.ts.map +1 -0
- package/dist/seal-relay-silence.js +76 -0
- package/dist/seal-relay-silence.js.map +1 -0
- package/dist/seal-settle.d.ts +38 -0
- package/dist/seal-settle.d.ts.map +1 -0
- package/dist/seal-settle.js +33 -0
- package/dist/seal-settle.js.map +1 -0
- package/dist/seal-upgrade.d.ts +107 -0
- package/dist/seal-upgrade.d.ts.map +1 -0
- package/dist/seal-upgrade.js +200 -0
- package/dist/seal-upgrade.js.map +1 -0
- package/dist/sealed-conversation.d.ts +36 -0
- package/dist/sealed-conversation.d.ts.map +1 -0
- package/dist/sealed-conversation.js +171 -0
- package/dist/sealed-conversation.js.map +1 -0
- package/dist/sealed-leaf-set.d.ts +92 -0
- package/dist/sealed-leaf-set.d.ts.map +1 -0
- package/dist/sealed-leaf-set.js +122 -0
- package/dist/sealed-leaf-set.js.map +1 -0
- package/dist/send-claims.d.ts +56 -0
- package/dist/send-claims.d.ts.map +1 -0
- package/dist/send-claims.js +50 -0
- package/dist/send-claims.js.map +1 -0
- package/dist/session-assignment-parser.d.ts +104 -0
- package/dist/session-assignment-parser.d.ts.map +1 -0
- package/dist/session-assignment-parser.js +345 -0
- package/dist/session-assignment-parser.js.map +1 -0
- package/dist/session-category.d.ts +19 -0
- package/dist/session-category.d.ts.map +1 -0
- package/dist/session-category.js +14 -0
- package/dist/session-category.js.map +1 -0
- package/dist/session-ceremony.d.ts +297 -0
- package/dist/session-ceremony.d.ts.map +1 -0
- package/dist/session-ceremony.js +964 -0
- package/dist/session-ceremony.js.map +1 -0
- package/dist/session-closed.d.ts +79 -0
- package/dist/session-closed.d.ts.map +1 -0
- package/dist/session-closed.js +189 -0
- package/dist/session-closed.js.map +1 -0
- package/dist/session-connection-gater.d.ts +148 -0
- package/dist/session-connection-gater.d.ts.map +1 -0
- package/dist/session-connection-gater.js +332 -0
- package/dist/session-connection-gater.js.map +1 -0
- package/dist/session-content-context.d.ts +162 -0
- package/dist/session-content-context.d.ts.map +1 -0
- package/dist/session-content-context.js +2 -0
- package/dist/session-content-context.js.map +1 -0
- package/dist/session-content-handlers.d.ts +82 -0
- package/dist/session-content-handlers.d.ts.map +1 -0
- package/dist/session-content-handlers.js +1382 -0
- package/dist/session-content-handlers.js.map +1 -0
- package/dist/session-content-ingest.d.ts +206 -0
- package/dist/session-content-ingest.d.ts.map +1 -0
- package/dist/session-content-ingest.js +2167 -0
- package/dist/session-content-ingest.js.map +1 -0
- package/dist/session-content-send.d.ts +191 -0
- package/dist/session-content-send.d.ts.map +1 -0
- package/dist/session-content-send.js +1360 -0
- package/dist/session-content-send.js.map +1 -0
- package/dist/session-delivery-acks.d.ts +169 -0
- package/dist/session-delivery-acks.d.ts.map +1 -0
- package/dist/session-delivery-acks.js +569 -0
- package/dist/session-delivery-acks.js.map +1 -0
- package/dist/session-ephemerals.d.ts +279 -0
- package/dist/session-ephemerals.d.ts.map +1 -0
- package/dist/session-ephemerals.js +591 -0
- package/dist/session-ephemerals.js.map +1 -0
- package/dist/session-leaf-records.d.ts +159 -0
- package/dist/session-leaf-records.d.ts.map +1 -0
- package/dist/session-leaf-records.js +408 -0
- package/dist/session-leaf-records.js.map +1 -0
- package/dist/session-lifecycle.d.ts +303 -0
- package/dist/session-lifecycle.d.ts.map +1 -0
- package/dist/session-lifecycle.js +1679 -0
- package/dist/session-lifecycle.js.map +1 -0
- package/dist/session-liveness.d.ts +135 -0
- package/dist/session-liveness.d.ts.map +1 -0
- package/dist/session-liveness.js +347 -0
- package/dist/session-liveness.js.map +1 -0
- package/dist/session-name.d.ts +35 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +60 -0
- package/dist/session-name.js.map +1 -0
- package/dist/session-node-factory.d.ts +18 -0
- package/dist/session-node-factory.d.ts.map +1 -0
- package/dist/session-node-factory.js +182 -0
- package/dist/session-node-factory.js.map +1 -0
- package/dist/session-node-manager.d.ts +877 -0
- package/dist/session-node-manager.d.ts.map +1 -0
- package/dist/session-node-manager.js +2998 -0
- package/dist/session-node-manager.js.map +1 -0
- package/dist/session-node-types.d.ts +1057 -0
- package/dist/session-node-types.d.ts.map +1 -0
- package/dist/session-node-types.js +657 -0
- package/dist/session-node-types.js.map +1 -0
- package/dist/session-notify.d.ts +46 -0
- package/dist/session-notify.d.ts.map +1 -0
- package/dist/session-notify.js +116 -0
- package/dist/session-notify.js.map +1 -0
- package/dist/session-own-chain-store.d.ts +65 -0
- package/dist/session-own-chain-store.d.ts.map +1 -0
- package/dist/session-own-chain-store.js +75 -0
- package/dist/session-own-chain-store.js.map +1 -0
- package/dist/session-queries.d.ts +476 -0
- package/dist/session-queries.d.ts.map +1 -0
- package/dist/session-queries.js +1007 -0
- package/dist/session-queries.js.map +1 -0
- package/dist/session-read-handlers.d.ts +87 -0
- package/dist/session-read-handlers.d.ts.map +1 -0
- package/dist/session-read-handlers.js +689 -0
- package/dist/session-read-handlers.js.map +1 -0
- package/dist/session-records.d.ts +341 -0
- package/dist/session-records.d.ts.map +1 -0
- package/dist/session-records.js +858 -0
- package/dist/session-records.js.map +1 -0
- package/dist/session-relay-client.d.ts +659 -0
- package/dist/session-relay-client.d.ts.map +1 -0
- package/dist/session-relay-client.js +2876 -0
- package/dist/session-relay-client.js.map +1 -0
- package/dist/session-relay.d.ts +397 -0
- package/dist/session-relay.d.ts.map +1 -0
- package/dist/session-relay.js +1636 -0
- package/dist/session-relay.js.map +1 -0
- package/dist/session-salt-agreement.d.ts +331 -0
- package/dist/session-salt-agreement.d.ts.map +1 -0
- package/dist/session-salt-agreement.js +472 -0
- package/dist/session-salt-agreement.js.map +1 -0
- package/dist/session-salts.d.ts +432 -0
- package/dist/session-salts.d.ts.map +1 -0
- package/dist/session-salts.js +1540 -0
- package/dist/session-salts.js.map +1 -0
- package/dist/session-schema.d.ts +30 -0
- package/dist/session-schema.d.ts.map +1 -0
- package/dist/session-schema.js +877 -0
- package/dist/session-schema.js.map +1 -0
- package/dist/session-seal-leaf-store.d.ts +70 -0
- package/dist/session-seal-leaf-store.d.ts.map +1 -0
- package/dist/session-seal-leaf-store.js +105 -0
- package/dist/session-seal-leaf-store.js.map +1 -0
- package/dist/session-seal.d.ts +334 -0
- package/dist/session-seal.d.ts.map +1 -0
- package/dist/session-seal.js +1017 -0
- package/dist/session-seal.js.map +1 -0
- package/dist/session-terminal-refusal.d.ts +65 -0
- package/dist/session-terminal-refusal.d.ts.map +1 -0
- package/dist/session-terminal-refusal.js +87 -0
- package/dist/session-terminal-refusal.js.map +1 -0
- package/dist/session-tree.d.ts +110 -0
- package/dist/session-tree.d.ts.map +1 -0
- package/dist/session-tree.js +144 -0
- package/dist/session-tree.js.map +1 -0
- package/dist/session-views.d.ts +47 -0
- package/dist/session-views.d.ts.map +1 -0
- package/dist/session-views.js +278 -0
- package/dist/session-views.js.map +1 -0
- package/dist/signal-handlers.d.ts +63 -0
- package/dist/signal-handlers.d.ts.map +1 -0
- package/dist/signal-handlers.js +980 -0
- package/dist/signal-handlers.js.map +1 -0
- package/dist/signal-requirement-policy.d.ts +51 -0
- package/dist/signal-requirement-policy.d.ts.map +1 -0
- package/dist/signal-requirement-policy.js +89 -0
- package/dist/signal-requirement-policy.js.map +1 -0
- package/dist/signal-revocability.d.ts +49 -0
- package/dist/signal-revocability.d.ts.map +1 -0
- package/dist/signal-revocability.js +93 -0
- package/dist/signal-revocability.js.map +1 -0
- package/dist/signal-submission.d.ts +181 -0
- package/dist/signal-submission.d.ts.map +1 -0
- package/dist/signal-submission.js +368 -0
- package/dist/signal-submission.js.map +1 -0
- package/dist/signaling-connect.d.ts +118 -0
- package/dist/signaling-connect.d.ts.map +1 -0
- package/dist/signaling-connect.js +538 -0
- package/dist/signaling-connect.js.map +1 -0
- package/dist/signaling-wiring.d.ts +105 -0
- package/dist/signaling-wiring.d.ts.map +1 -0
- package/dist/signaling-wiring.js +393 -0
- package/dist/signaling-wiring.js.map +1 -0
- package/dist/singleton-lock.d.ts +85 -0
- package/dist/singleton-lock.d.ts.map +1 -0
- package/dist/singleton-lock.js +219 -0
- package/dist/singleton-lock.js.map +1 -0
- package/dist/sqlcipher-db.d.ts +139 -0
- package/dist/sqlcipher-db.d.ts.map +1 -0
- package/dist/sqlcipher-db.js +357 -0
- package/dist/sqlcipher-db.js.map +1 -0
- package/dist/standing-receivers.d.ts +319 -0
- package/dist/standing-receivers.d.ts.map +1 -0
- package/dist/standing-receivers.js +1295 -0
- package/dist/standing-receivers.js.map +1 -0
- package/dist/start-agent.d.ts +64 -0
- package/dist/start-agent.d.ts.map +1 -0
- package/dist/start-agent.js +136 -0
- package/dist/start-agent.js.map +1 -0
- package/dist/status-handler.d.ts +54 -0
- package/dist/status-handler.d.ts.map +1 -0
- package/dist/status-handler.js +61 -0
- package/dist/status-handler.js.map +1 -0
- package/dist/submission-retry.d.ts +208 -0
- package/dist/submission-retry.d.ts.map +1 -0
- package/dist/submission-retry.js +506 -0
- package/dist/submission-retry.js.map +1 -0
- package/dist/telegram-bot-client.d.ts +34 -0
- package/dist/telegram-bot-client.d.ts.map +1 -0
- package/dist/telegram-bot-client.js +36 -0
- package/dist/telegram-bot-client.js.map +1 -0
- package/dist/telegram-doorbell.d.ts +38 -0
- package/dist/telegram-doorbell.d.ts.map +1 -0
- package/dist/telegram-doorbell.js +140 -0
- package/dist/telegram-doorbell.js.map +1 -0
- package/dist/test-handlers.d.ts +62 -0
- package/dist/test-handlers.d.ts.map +1 -0
- package/dist/test-handlers.js +240 -0
- package/dist/test-handlers.js.map +1 -0
- package/dist/testing.d.ts +10 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +10 -0
- package/dist/testing.js.map +1 -0
- package/dist/transport-composition.d.ts +31 -0
- package/dist/transport-composition.d.ts.map +1 -0
- package/dist/transport-composition.js +55 -0
- package/dist/transport-composition.js.map +1 -0
- package/dist/transport-selector.d.ts +202 -0
- package/dist/transport-selector.d.ts.map +1 -0
- package/dist/transport-selector.js +196 -0
- package/dist/transport-selector.js.map +1 -0
- package/dist/trust-signal-pickup-listener.d.ts +43 -0
- package/dist/trust-signal-pickup-listener.d.ts.map +1 -0
- package/dist/trust-signal-pickup-listener.js +48 -0
- package/dist/trust-signal-pickup-listener.js.map +1 -0
- package/dist/trust-signal-store.d.ts +406 -0
- package/dist/trust-signal-store.d.ts.map +1 -0
- package/dist/trust-signal-store.js +939 -0
- package/dist/trust-signal-store.js.map +1 -0
- package/dist/trust-signal-sweep-tick.d.ts +60 -0
- package/dist/trust-signal-sweep-tick.d.ts.map +1 -0
- package/dist/trust-signal-sweep-tick.js +101 -0
- package/dist/trust-signal-sweep-tick.js.map +1 -0
- package/dist/trust-signal-sweep.d.ts +94 -0
- package/dist/trust-signal-sweep.d.ts.map +1 -0
- package/dist/trust-signal-sweep.js +147 -0
- package/dist/trust-signal-sweep.js.map +1 -0
- package/dist/type-registry.d.ts +42 -0
- package/dist/type-registry.d.ts.map +1 -0
- package/dist/type-registry.js +37 -0
- package/dist/type-registry.js.map +1 -0
- package/dist/types.d.ts +746 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/dist/unresolved-nodes-report.d.ts +14 -0
- package/dist/unresolved-nodes-report.d.ts.map +1 -0
- package/dist/unresolved-nodes-report.js +96 -0
- package/dist/unresolved-nodes-report.js.map +1 -0
- package/dist/vocabulary.d.ts +150 -0
- package/dist/vocabulary.d.ts.map +1 -0
- package/dist/vocabulary.js +386 -0
- package/dist/vocabulary.js.map +1 -0
- package/dist/who-label.d.ts +28 -0
- package/dist/who-label.d.ts.map +1 -0
- package/dist/who-label.js +31 -0
- package/dist/who-label.js.map +1 -0
- package/dist/who-resolver.d.ts +15 -0
- package/dist/who-resolver.d.ts.map +1 -0
- package/dist/who-resolver.js +47 -0
- package/dist/who-resolver.js.map +1 -0
- package/dist/wire-content-hash.d.ts +93 -0
- package/dist/wire-content-hash.d.ts.map +1 -0
- package/dist/wire-content-hash.js +116 -0
- package/dist/wire-content-hash.js.map +1 -0
- package/dist/withheld-content.d.ts +13 -0
- package/dist/withheld-content.d.ts.map +1 -0
- package/dist/withheld-content.js +46 -0
- package/dist/withheld-content.js.map +1 -0
- package/dist/witness-alerts.d.ts +40 -0
- package/dist/witness-alerts.d.ts.map +1 -0
- package/dist/witness-alerts.js +102 -0
- package/dist/witness-alerts.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-lifecycle.js","sourceRoot":"","sources":["../src/session-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAe,MAAM,YAAY,CAAC;AAc5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,yBAAyB,GAM1B,MAAM,yBAAyB,CAAC;AA+DjC,MAAM,OAAO,gBAAgB;IAClB,IAAI,CAA0B;IAEvC,YAAY,GAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,0FAA0F;IAC1F,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,SAAiB,EAAE,SAAiB;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC;IACzG,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,iBAAiB,CACrB,SAAiB,EACjB,SAAiB,EACjB,kBAA0B,EAC1B,kBAA0B,EAC1B,aAAqB,EACrB,qBAAqB,GAAG,KAAK,EAC7B,KAA0B;QAE1B,2BAA2B;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBAChD,SAAS;gBACT,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;gBACxC,QAAQ,EAAE,iBAAiB;aAC5B,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,sBAAsB;gBAC9B,QAAQ,EACN,qEAAqE;oBACrE,sDAAsD;aACzD,CAAC;QACJ,CAAC;QAED;;;;;;;;;;;;;WAaG;QAEH,wFAAwF;QACxF,2FAA2F;QAC3F,wFAAwF;QACxF,yFAAyF;QACzF,4FAA4F;QAC5F,4FAA4F;QAC5F,yFAAyF;QACzF,mFAAmF;QACnF,IAAI,IAAe,CAAC;QACpB,IAAI,KAA6B,CAAC;QAClC,IAAI,OAA2B,CAAC;QAChC,2FAA2F;QAC3F,yEAAyE;QACzE,IAAI,IAAgB,CAAC;QACrB,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,yFAAyF;gBACzF,yFAAyF;gBACzF,8FAA8F;gBAC9F,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBAC1E,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,+BAA+B;oBACvC,QAAQ,EAAE,qGAAqG;iBAChH,CAAC;YACJ,CAAC;YACD,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;YACpG,2FAA2F;YAC3F,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,sBAAsB,CAAC;gBACjC,SAAS;gBACT,aAAa,EAAE,kBAAkB;gBACjC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnJ,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;oBACnD,SAAS;oBACT,SAAS;oBACT,KAAK,EAAE,YAAY;oBACnB,aAAa;iBACd,CAAC,CAAC;gBACH,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,8BAA8B;oBACtC,QAAQ,EACN,0EAA0E;wBAC1E,8FAA8F;iBACjG,CAAC;YACJ,CAAC;YACD,gFAAgF;YAChF,+EAA+E;YAC/E,4CAA4C;YAC5C,OAAO,GAAG,IAAI,kBAAkB,CAAC;gBAC/B,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;aACpC,CAAC,CAAC;YACH,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAErC,yFAAyF;QACzF,+FAA+F;QAC/F,4FAA4F;QAC5F,+FAA+F;QAC/F,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;oBAChD,SAAS;oBACT,SAAS;oBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBAC/B,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;YACD,iFAAiF;YACjF,IAAI,qBAAqB;gBAAE,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACrG,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EACN,0FAA0F;oBAC1F,wFAAwF;oBACxF,kEAAkE;aACrE,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,EAAE;QACF,8FAA8F;QAC9F,+FAA+F;QAC/F,6FAA6F;QAC7F,+FAA+F;QAC/F,gGAAgG;QAChG,0EAA0E;QAC1E,EAAE;QACF,4FAA4F;QAC5F,kFAAkF;QAClF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC5C,SAAS;YACT,SAAS;YACT,aAAa,EAAE,MAAM;YACrB,yBAAyB,EAAE,kBAAkB;YAC7C,aAAa;SACd,CAAC,CAAC;QAEH,mEAAmE;QACnE,8FAA8F;QAC9F,0FAA0F;QAC1F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;YACpE,IAAI;YACJ,SAAS;YACT,SAAS;YACT,kBAAkB;YAClB,KAAK;YACL,aAAa;YACb,yBAAyB,EAAE,kBAAkB;YAC7C,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAE9F,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACjG,+EAA+E;QAC/E,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAE1H,6EAA6E;QAC7E,2EAA2E;QAC3E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;QAED,+FAA+F;QAC/F,IAAI,qBAAqB,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,SAAiB,EACjB,SAAiB,EACjB,kBAA0B,EAC1B,eAAuB,EACvB,aAAqB,EACrB,KAA0B;QAE1B,iGAAiG;QACjG,iGAAiG;QACjG,8FAA8F;QAC9F,8FAA8F;QAC9F,kFAAkF;QAClF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,8EAA8E;YAC9E,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC1E,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,+BAA+B;gBACvC,QAAQ,EACN,uEAAuE;oBACvE,wCAAwC;aAC3C,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBAChD,SAAS;gBACT,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;gBACxC,QAAQ,EAAE,iBAAiB;aAC5B,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,sBAAsB;gBAC9B,QAAQ,EACN,qEAAqE;oBACrE,sDAAsD;aACzD,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QAEjD,yEAAyE;QACzE,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAEhG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAErC,6FAA6F;QAC7F,yFAAyF;QACzF,wFAAwF;QACxF,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,4FAA4F;YAC5F,4FAA4F;YAC5F,6FAA6F;YAC7F,yBAAyB;YACzB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;oBAChD,SAAS;oBACT,SAAS;oBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBAC/B,aAAa;iBACd,CAAC,CAAC;YACL,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC1E,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EACN,0FAA0F;oBAC1F,iGAAiG;oBACjG,wDAAwD;aAC3D,CAAC;QACJ,CAAC;QAED,4FAA4F;QAC5F,4FAA4F;QAC5F,8FAA8F;QAC9F,8FAA8F;QAC9F,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC5C,SAAS;YACT,SAAS;YACT,aAAa,EAAE,MAAM;YACrB,yBAAyB,EAAE,eAAe;YAC1C,aAAa;SACd,CAAC,CAAC;QAEH,4FAA4F;QAC5F,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,8FAA8F;QAC9F,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;YACpE,IAAI;YACJ,SAAS;YACT,SAAS;YACT,kBAAkB;YAClB,KAAK;YACL,aAAa;YACb,yBAAyB,EAAE,eAAe;YAC1C,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAE3F,2EAA2E;QAC3E,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACjG,4EAA4E;QAC5E;;;;;;;;;;;;;;;;;WAiBG;QACH,MAAM,YAAY,GAAG,IAAI;aACtB,cAAc,EAAE;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC;aAC/E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAoB,CAAC,CAAC;QACtC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACxG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACzD,SAAS;gBACT,SAAS;gBACT,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,MAAM,EAAE,oBAAoB;gBAC5B,MAAM,EAAE,gFAAgF;aACzF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,2FAA2F;YAC3F,2FAA2F;YAC3F,4FAA4F;YAC5F,yEAAyE;YACzE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;gBAC3D,SAAS;gBACT,SAAS;gBACT,eAAe;gBACf,MAAM,EAAE,oFAAoF;aAC7F,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAEvH,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;QAED,kFAAkF;QAClF,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAE1E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,SAAiB,EACjB,MAA0C;QAE1C,iFAAiF;QACjF,wFAAwF;QACxF,sFAAsF;QACtF,0FAA0F;QAC1F,2FAA2F;QAC3F,qFAAqF;QACrF,oDAAoD;QACpD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACxD,oFAAoF;YACpF,0FAA0F;YAC1F,2FAA2F;YAC3F,4FAA4F;YAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,mFAAmF;QACnF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC,CAAC;YACH,4DAA4D;QAC9D,CAAC;QAED,8EAA8E;QAC9E,2EAA2E;QAC3E,wEAAwE;QACxE,kFAAkF;QAClF,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;QAChE,+FAA+F;QAC/F,gGAAgG;QAChG,+EAA+E;QAC/E,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE3G;;;;;;;;;;;WAWG;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;aACvG,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBAC1D,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBACrD,MAAM,EAAE,qFAAqF;aAC9F,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACzE,6EAA6E;QAC7E,gFAAgF;QAChF,gFAAgF;QAChF,uEAAuE;QACvE,gFAAgF;QAChF,2EAA2E;QAC3E,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC9C,SAAS;YACT,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM;SACP,CAAC,CAAC;QAEH,mFAAmF;QACnF,qFAAqF;QACrF,kFAAkF;QAClF,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAiB;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAC5D,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QAC5G,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,SAAiB;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC,CAAC;YACH,+CAA+C;QACjD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC9C,SAAS;YACT,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH;;;;;;;;;WASG;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;aACvG,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE;gBAC1D,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBACrD,MAAM,EAAE,iFAAiF;aAC1F,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,8FAA8F;QAC9F,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH;;;;;;;;OAQG;IACH,KAAK,CAAC,eAAe,CAAC,IAAsB,EAAE,IAAY,EAAE,KAAa;QACvE,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,KAAgD,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;YAClD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,CAAC;YACxE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAe,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBACtD,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAC3C,MAAM,EAAE,0GAA0G;aACnH,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,0BAA0B,CAC9B,SAAiB,EACjB,SAAiB,EACjB,YAAoB;IACpB;;;;;;OAMG;IACH,MAAsD;QAEtD,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAE5B,0EAA0E;QAC1E,uFAAuF;QACvF,2EAA2E;QAC3E,6FAA6F;QAC7F,uFAAuF;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACjD,SAAS;gBACT,MAAM;gBACN,aAAa,EAAE,QAAQ,EAAE,MAAM,IAAI,QAAQ;gBAC3C,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CAAC;YACH,iFAAiF;YACjF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAElD,4EAA4E;QAC5E,kFAAkF;QAClF,iFAAiF;QACjF,iFAAiF;QACjF,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,kBAAkB,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;QAElE,IAAI,CAAC;YACH,4EAA4E;YAC5E,2EAA2E;YAC3E,kDAAkD;YAClD,IAAI,CAAC,GAAG;iBACL,OAAO;YACN,mFAAmF;YACnF,EAAE;YACF,+EAA+E;YAC/E,uEAAuE;YACvE,yFAAyF;YACzF,0FAA0F;YAC1F,sFAAsF;YACtF,yFAAyF;YACzF,4CAA4C;YAC5C,EAAE;YACF,2FAA2F;YAC3F,0FAA0F;YAC1F,2DAA2D;YAC3D,wHAAwH,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,+DAA+D,CACnS;iBACA,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBAC1D,SAAS;gBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAEpF,oDAAoD;QACpD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;oBACjD,SAAS;oBACT,SAAS;oBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC,CAAC;gBACH,8CAA8C;YAChD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACzE;;;;;;;;;;;;;eAaG;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;YAC3F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;gBAC9C,SAAS;gBACT,SAAS;gBACT,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,2FAA2F;YAC3F,0FAA0F;YAC1F,2FAA2F;YAC3F,+EAA+E;YAC/E,+FAA+F;YAC/F,0BAA0B;YAC1B,yFAAyF;YACzF,sFAAsF;YACtF,mFAAmF;YACnF,mFAAmF;YACnF,+DAA+D;YAC/D,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YACpD,SAAS;YACT,SAAS;YACT,MAAM;SACP,CAAC,CAAC;QAEH,8EAA8E;QAC9E,6EAA6E;QAC7E,sDAAsD;QACtD,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAC/B,SAAS,EACT,SAAS,EACT,aAAa,EACb,QAAQ,CAAC,mBAAmB,CAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;gBACpD,SAAS;gBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAiB,EACjB,SAAiB,EACjB,KAAe;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;QAC7G,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,8DAA8D,EAAE,CAAC;QAC/H,CAAC;QACD,wEAAwE;QACxE,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC3D,IAAI,QAAQ;gBAAE,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QACjE,CAAC;QACD,+FAA+F;QAC/F,8FAA8F;QAC9F,kDAAkD;QAClD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9F,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,yFAAyF;gBACzF,oFAAoF;gBACpF,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACxF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;oBACnD,SAAS;oBACT,IAAI;oBACJ,aAAa,EAAE,KAAK,CAAC,aAAa;iBACnC,CAAC,CAAC;gBACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,sEAAsE;gBACtE,yDAAyD;gBACzD,kEAAkE;gBAClE,8BAA8B;gBAC9B,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACxD,SAAS;YACT,MAAM,EAAE,0BAA0B;YAClC,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,yBAAyB,CAAC,SAAiB,EAAE,SAAiB,EAAE,aAAsB;QAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,yFAAyF;YACzF,yFAAyF;YACzF,sFAAsF;YACtF,4FAA4F;YAC5F,0EAA0E;YAC1E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;gBACtD,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa;gBAC5D,MAAM,EAAE,8GAA8G;aACvH,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAClD,CAAC;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,2FAA2F;YAC3F,6FAA6F;YAC7F,wFAAwF;YACxF,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAClG,4FAA4F;YAC5F,qDAAqD;YACrD,MAAM,MAAM,GAA2B;gBACrC,IAAI,EAAE,0BAA0B;gBAChC,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;aAC1E,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAe,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACxC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACzG,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBACrD,SAAS,EAAE,SAAS,EAAE,aAAa;gBACnC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,sEAAsE;aAC/E,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,2BAA2B,CAAC,SAAiB,EAAE,SAAiB,EAAE,aAAsB;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YACzG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBACvD,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa;gBAC1D,MAAM,EAAE,0BAA0B;aACnC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QACD,gDAAgD;QAChD,EAAE;QACF,8FAA8F;QAC9F,2FAA2F;QAC3F,gGAAgG;QAChG,8FAA8F;QAC9F,6FAA6F;QAC7F,2FAA2F;QAC3F,oBAAoB;QACpB,EAAE;QACF,4FAA4F;QAC5F,sFAAsF;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,yFAAyF;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACtD,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa;YAC/D,MAAM,EAAE,yOAAyO;SAClP,CAAC,CAAC;QACH,+FAA+F;QAC/F,+FAA+F;QAC/F,+FAA+F;QAC/F,wDAAwD;QACxD,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,sBAAsB,CAC1B,IAAe,EACf,KAA6B,EAC7B,SAAiB,EACjB,aAAqB,EACrB,OAAe;QAEf,IAAI,WAAsC,CAAC;QAC3C,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBACvD,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aACpD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,WAAW;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF;;;;;;;;;;;;WAYG;QACH,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACjD,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM;gBACpE,MAAM,EAAE,uLAAuL;aAChM,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC5C,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa;oBACxD,MAAM,EAAE,+NAA+N;iBACxO,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,2FAA2F;gBAC3F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBAClD,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;iBAC5D,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH;;;;;;OAMG;IACH,2FAA2F;IAC3F,oBAAoB,CAClB,SAAiB,EACjB,SAAiB,EACjB,IAAgB,EAChB,kBAA0B,EAC1B,kBAA0B;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,2FAA2F;QAC3F,+FAA+F;QAC/F,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,0FAA0F;QAC1F,+FAA+F;QAC/F,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO;QACnC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,iBAAiB,CACrB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QAE7D,4FAA4F;QAC5F,+FAA+F;QAC/F,6FAA6F;QAC7F,gGAAgG;QAChG,8FAA8F;QAC9F,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC/D;;;;;;;;;;;;;;;;;WAiBG;QACH,iGAAiG;QACjG,gGAAgG;QAChG,gGAAgG;QAChG,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG;YAC5B,EAAE,OAAO,CACP,yFAAyF;YACzF,+EAA+E,CAChF;aACA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;gBAC5D,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,wGAAwG;aACjH,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,0BAA0B,EAAE,CAAC;YAChH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,eAAe,MAAM,CAAC,MAAM,iEAAiE;aACxG,CAAC;QACJ,CAAC;QACD;;;;;;;;;;;;;;;;;;;WAmBG;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,8FAA8F;YAC9F,2FAA2F;YAC3F,gGAAgG;YAChG,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EACN,GAAG,MAAM,CAAC,QAAQ,8EAA8E;oBAChG,gEAAgE,SAAS,aAAa;oBACtF,8EAA8E,SAAS,+EAA+E;aACzK,CAAC;QACJ,CAAC;QAED;;;;;;;;;WASG;QACH,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBAClD,SAAS;gBACT,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;gBACvC,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,iFAAiF;aAC1F,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,0BAA0B;gBAClC,QAAQ,EACN,6BAA6B,iBAAiB,yCAAyC;oBACvF,mFAAmF;aACtF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,mFAAmF;YACnF,4FAA4F;YAC5F,4FAA4F;YAC5F,eAAe;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EACN,sFAAsF;oBACtF,uFAAuF;aAC1F,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,sBAAsB,CAAC;YACvC,SAAS;YACT,aAAa,EAAE,QAAQ,CAAC,kBAAkB;YAC1C,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,+FAA+F;QAC/F,8FAA8F;QAC9F,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACxE,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,YAAY;YAAE,KAAK,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE/F,IAAI,IAAe,CAAC;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YACpD,SAAS;YACT,SAAS;YACT,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM;YACvC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAClH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACnD,SAAS;gBACT,SAAS;gBACT,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBACxB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM;gBAC1C,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;aACvF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBACnD,SAAS;gBACT,SAAS;gBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAC/B,MAAM,EAAE,sEAAsE;aAC/E,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC;YACrC,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAE5B,+FAA+F;QAC/F,+FAA+F;QAC/F,yFAAyF;QACzF,IAAI,QAAQ,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;QACnC;;;;;;;;;;;;;;;;;;;WAmBG;QACH,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,8FAA8F;QAC9F,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzF,+FAA+F;QAC/F,6FAA6F;QAC7F,8FAA8F;QAC9F,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChE;;;;;;;;;;;WAWG;QACH,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;YAC7B,IAAI;YACJ,SAAS;YACT,SAAS;YACT,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;YAC/C,KAAK;YACL,aAAa;YACb,yBAAyB,EAAE,QAAQ,CAAC,kBAAkB;YACtD,OAAO;YACP,GAAG,CAAC,cAAc;gBAChB,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE;gBACpF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC1G;;;;;;;;;WASG;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CACpC,SAAS,EACT,SAAS,EACT,IAAI,EACJ,QAAQ,CAAC,kBAAkB,EAC3B,aAAa,EACb,QAAQ,CAAC,kBAAkB,CAC5B,CAAC;QAEF,8FAA8F;QAC9F,4EAA4E;QAC5E,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QAErH,6FAA6F;QAC7F,4FAA4F;QAC5F,yDAAyD;QACzD,EAAE;QACF,8FAA8F;QAC9F,uFAAuF;QACvF,iGAAiG;QACjG,6FAA6F;QAC7F,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9D;;;;;;;;;;;;;;eAcG;YACH;;;;;;;;eAQG;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,YAAY,EAAE,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAClF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,4FAA4F;YAC5F,wFAAwF;YACxF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC,CAAC,+EAA+E,CAAC,CAAC;YAC3F,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,6BAA6B;gBACrC,QAAQ,EACN,wFAAwF;oBACxF,mFAAmF;aACtF,CAAC;QACJ,CAAC;QAED,+FAA+F;QAC/F,0FAA0F;QAC1F,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;oBACzD,SAAS;oBACT,SAAS;oBACT,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;oBAC/B,MAAM,EAAE,8DAA8D;iBACvE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACvC,SAAS;YACT,SAAS;YACT,MAAM;YACN,yFAAyF;YACzF,gFAAgF;YAChF,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC/D,6FAA6F;QAC7F,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAE7H,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC/C,SAAS;gBACT,SAAS;gBACT,cAAc,EAAE,MAAM,CAAC,MAAM;gBAC7B,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACjD,SAAS;YACT,SAAS;YACT,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC7H,+FAA+F;QAC/F,gGAAgG;QAChG,kFAAkF;QAClF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,8FAA8F;YAC9F,6FAA6F;YAC7F,iEAAiE;YACjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC/C,SAAS;gBACT,SAAS;gBACT,cAAc,EAAE,MAAM,CAAC,MAAM;gBAC7B,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACjD,SAAS;YACT,SAAS;YACT,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,8FAA8F;QAC9F,gGAAgG;QAChG,8FAA8F;QAC9F,2FAA2F;QAC3F,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,iBAAiB,CACf,SAAiB,EACjB,SAAiB,EACjB,kBAA0B,EAC1B,MAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH;;;;;;eAMG;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG;iBACL,OAAO,CACN;;2CAEiC,CAClC;iBACA,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EACpF,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,6FAA6F;YAC7F,+FAA+F;YAC/F,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACjD,SAAS;gBACT,SAAS;gBACT,MAAM;gBACN,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;6FAIyF;IACzF,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,SAAiB;QACvD,8FAA8F;QAC9F,oGAAoG;QACpG,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mBAAmB,CACjB,SAAiB,EACjB,SAAiB,EACjB,MAAyD;IACzD,yFAAyF;IACzF,+FAA+F;IAC/F,6FAA6F;IAC7F,8FAA8F;IAC9F,uCAAuC;IACvC,aAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAC5B;;;;;;;;;;;;;;;;WAgBG;QACH,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9C,8FAA8F;YAC9F,8FAA8F;YAC9F,8FAA8F;YAC9F,4FAA4F;YAC5F,2CAA2C;YAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC1D,0FAA0F;YAC1F,0EAA0E;YAC1E,0FAA0F;YAC1F,iDAAiD;YACjD,IAAI,CAAC,GAAG;gBACN,EAAE,OAAO,CAAC,8EAA8E,CAAC;iBACxF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,wFAAwF;QACxF,4FAA4F;QAC5F,8FAA8F;QAC9F,MAAM;QACN,EAAE;QACF,6FAA6F;QAC7F,gGAAgG;QAChG,kFAAkF;QAClF,2FAA2F;QAC3F,wEAAwE;QACxE,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC;YACjF,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;oBACvD,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO;oBAC5C,MAAM,EAAE,OAAO,KAAK,WAAW;wBAC7B,CAAC,CAAC,oIAAoI;wBACtI,CAAC,CAAC,mCAAmC;iBACxC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,yFAAyF;gBACzF,2FAA2F;gBAC3F,8CAA8C;gBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;oBAClD,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,wEAAwE;iBACjF,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;iBACjB,OAAO;YACN,uFAAuF;YACvF,sFAAsF;YACtF,uFAAuF;YACvF,8EAA8E;YAC9E,qFAAqF;YACrF,MAAM,KAAK,aAAa;gBACtB,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS;oBAC5B,CAAC,CAAC,oIAAoI;oBACtI,CAAC,CAAC,8JAA8J,CAAC;gBACnK,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS;oBAC5B,CAAC,CAAC,sFAAsF;oBACxF,CAAC,CAAC,gHAAgH,CAAC,CACxH;iBACA,GAAG,CACF,GAAG,CAAC,MAAM,KAAK,aAAa;gBAC1B,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;gBAC5F,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CACvB,CAAC;YAChD,8FAA8F;YAC9F,8FAA8F;YAC9F,+FAA+F;YAC/F,mCAAmC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;oBACpD,SAAS;oBACT,MAAM;oBACN,SAAS;oBACT,MAAM,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;wBACrD,CAAC,CAAC,sFAAsF;8BACpF,oFAAoF;8BACpF,sDAAsD;wBAC1D,CAAC,CAAC,gFAAgF;iBACrF,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;YACD,yFAAyF;YACzF,6FAA6F;YAC7F,8FAA8F;YAC9F,uFAAuF;YACvF,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClD,iFAAiF;gBACjF,EAAE;gBACF,uFAAuF;gBACvF,wCAAwC;gBACxC,2FAA2F;gBAC3F,wFAAwF;gBACxF,oFAAoF;gBACpF,mEAAmE;gBACnE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,OAAgB,EAAE,CAAC;oBAC1B,gFAAgF;oBAChF,sFAAsF;oBACtF,iDAAiD;oBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE;wBAC5D,SAAS;wBACT,MAAM;wBACN,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC;wBACnC,MAAM,EAAE,wEAAwE;qBACjF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,iGAAiG;YACjG,oFAAoF;YACpF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;gBACpD,SAAS;gBACT,MAAM;gBACN,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CELLO Daemon — IS THIS SESSION STILL ALIVE, AND IF NOT, WHY
|
|
3
|
+
*
|
|
4
|
+
* Split out of `session-node-manager.ts` by 037-SESSIONCORE. The connection-level liveness of a
|
|
5
|
+
* session, and the IMPAIRMENT that explains a degraded one — which matters more than it sounds,
|
|
6
|
+
* because "impaired, and here is the cause" is what an operator gets instead of silence when a
|
|
7
|
+
* session is half-working.
|
|
8
|
+
*
|
|
9
|
+
* Moved verbatim, comments included.
|
|
10
|
+
*/
|
|
11
|
+
import type { Logger } from "./types.js";
|
|
12
|
+
import type { CelloNode } from "@cello-protocol/transport";
|
|
13
|
+
import type { ActiveSessionEntry, SessionImpairment } from "./session-node-types.js";
|
|
14
|
+
import type { SessionQueries } from "./session-queries.js";
|
|
15
|
+
import type { RefusalNotices } from "./refusal-notices.js";
|
|
16
|
+
import type { SessionEphemerals } from "./session-ephemerals.js";
|
|
17
|
+
import type { SaltAgreementFrame } from "./session-salt-agreement.js";
|
|
18
|
+
/** What liveness needs from the manager. */
|
|
19
|
+
export interface SessionLivenessContext {
|
|
20
|
+
readonly logger: Logger;
|
|
21
|
+
readonly queries: SessionQueries;
|
|
22
|
+
readonly notices: RefusalNotices;
|
|
23
|
+
readonly ephemerals: SessionEphemerals;
|
|
24
|
+
readonly counterpartyAddrs: Map<string, string[]>;
|
|
25
|
+
sessionKey(agentName: string, sessionId: string): string;
|
|
26
|
+
activeEntry(key: string): ActiveSessionEntry | undefined;
|
|
27
|
+
sendSaltFrame(agentName: string, sessionId: string, correlationId?: string, override?: SaltAgreementFrame): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
export declare class SessionLiveness {
|
|
30
|
+
#private;
|
|
31
|
+
constructor(ctx: SessionLivenessContext);
|
|
32
|
+
/**
|
|
33
|
+
* M7-SESSION-003 AC-004: wire a session node's peer-connect / peer-disconnect
|
|
34
|
+
* events to per-session direct-path liveness. onPeerConnect → 'alive',
|
|
35
|
+
* onPeerDisconnect → 'gone', emitting session.liveness.changed at WARN. Combined
|
|
36
|
+
* with the transport keepalive (AC-005), a peer that vanished without a clean
|
|
37
|
+
* close still surfaces a disconnect and drives 'gone'.
|
|
38
|
+
*
|
|
39
|
+
* THE EVENT MUST BE FILTERED BY PEER (DOD-RELAY-KEEPALIVE-1 review, F2). The
|
|
40
|
+
* original wiring acted on EVERY peer event this node saw, justified by "the
|
|
41
|
+
* session node's gater restricts connections to the designated counterparty".
|
|
42
|
+
* That stopped being true: the session node also dials the RELAY as its
|
|
43
|
+
* Structure-2 witness (#connectSessionRelay), and the gater allows those peers
|
|
44
|
+
* outbound. So a relay link dropping declared the counterparty dead — at WARN,
|
|
45
|
+
* feeding the unilateral-seal gate — while the counterparty was sitting there
|
|
46
|
+
* perfectly alive. During the 2026-08-04 incident, when the relay link churned
|
|
47
|
+
* every 60-90 seconds, that fired continuously.
|
|
48
|
+
*
|
|
49
|
+
* `counterpartySessionPeerId` is the authority when known. When it is not (the
|
|
50
|
+
* peer id can be absent on a session whose assignment has not landed yet),
|
|
51
|
+
* every peer is honoured EXCEPT ones known to be relays for this session —
|
|
52
|
+
* degrading to the old over-eager behaviour minus its one known false positive,
|
|
53
|
+
* rather than to silence, because a liveness detector that never fires is worse
|
|
54
|
+
* than one that fires too often.
|
|
55
|
+
*/
|
|
56
|
+
wireSessionLiveness(agentName: string, sessionId: string, node: CelloNode, counterpartyPubkey: string, correlationId: string, counterpartySessionPeerId?: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* M7-SESSION-003: read the direct-path counterparty liveness for a session.
|
|
59
|
+
* 'unknown' when no session node observation has occurred yet.
|
|
60
|
+
*
|
|
61
|
+
* DOD-M12B-ACK-1: 'impaired' is DAEMON-LOCAL and deliberately not on the relay's
|
|
62
|
+
* SessionLiveness wire type — the relay answers a different question (does it hold the
|
|
63
|
+
* recipient's standing connection) and its three states are a deployed bilateral contract.
|
|
64
|
+
*/
|
|
65
|
+
getSessionLiveness(agentName: string, sessionId: string): "alive" | "impaired" | "gone" | "unknown";
|
|
66
|
+
/**
|
|
67
|
+
* DOD-M12B-ACK-1 — the connection is up and delivery on it is not working.
|
|
68
|
+
*
|
|
69
|
+
* Liveness is otherwise driven ONLY by libp2p peer-connect/peer-disconnect, so it answers "is
|
|
70
|
+
* there a connection object?" while every surface that prints it is read as "can I talk to them?".
|
|
71
|
+
* Measured 2026-08-17: one session reported `alive` for 70 minutes after every write had started
|
|
72
|
+
* failing, another never stopped.
|
|
73
|
+
*
|
|
74
|
+
* ONLY 'gone' is protected, and 'gone' is NOT protected because a seal gate reads it — nothing in
|
|
75
|
+
* the code does. It is protected because the receive surface turns 'gone' into "call
|
|
76
|
+
* cello_close_session", and a failed write must never be able to produce that instruction.
|
|
77
|
+
*
|
|
78
|
+
* 'unknown' is DOWNGRADED just like 'alive', which is not obvious and is the point. A session
|
|
79
|
+
* whose recorded `counterpartySessionPeerId` has gone stale never sees a matching peer-connect,
|
|
80
|
+
* so it sits at 'unknown' while every send fails forever — the exact case documented at
|
|
81
|
+
* #wireSessionLiveness — and the receive surface renders 'unknown' as healthy-and-quiet, which is
|
|
82
|
+
* the 70-minute lie relocated one lane over. 'unknown' claims nothing; the surface built on it does.
|
|
83
|
+
*/
|
|
84
|
+
markSessionImpaired(agentName: string, sessionId: string, opts: {
|
|
85
|
+
cause: "direct_send" | "delivery_ack" | "content_key";
|
|
86
|
+
error: string;
|
|
87
|
+
correlationId?: string;
|
|
88
|
+
}): void;
|
|
89
|
+
/**
|
|
90
|
+
* DOD-M12B-ACK-1 — what became of the content whose send caused the impairment.
|
|
91
|
+
*
|
|
92
|
+
* The receive surface has no memory of the last send, so without this it can only guess — and the
|
|
93
|
+
* guess it would make ("it was parked, do not resend") is FALSE in the two cases that matter
|
|
94
|
+
* most: a refused park whose durable enqueue was dropped, and one that threw. In both the message
|
|
95
|
+
* is gone and `cello_send` has already told the caller to send it again, so a receive that says
|
|
96
|
+
* "do not resend" contradicts it later, while the agent is sitting there waiting.
|
|
97
|
+
*/
|
|
98
|
+
noteImpairmentRetention(agentName: string, sessionId: string, retained: "parked" | "durable" | "lost"): void;
|
|
99
|
+
/** DOD-M12B-ACK-1: why this session is impaired, for the surface that has to explain it. Null
|
|
100
|
+
* when it is not impaired — a caller must not narrate a failure that is not current. */
|
|
101
|
+
getSessionImpairment(agentName: string, sessionId: string): SessionImpairment | null;
|
|
102
|
+
/**
|
|
103
|
+
* DOD-M12B-ACK-1 — a delivery landed, so the impairment is over.
|
|
104
|
+
*
|
|
105
|
+
* Without this an `impaired` flag is a one-way door: one bad write would make a session report a
|
|
106
|
+
* broken conversation for the rest of its life, which is the same class of lie in the other
|
|
107
|
+
* direction. Called from BOTH send paths — an agent that mostly listens sends content rarely and
|
|
108
|
+
* ACKs constantly, so clearing only on content would leave exactly those sessions impaired
|
|
109
|
+
* forever. Only clears 'impaired': a successful write says nothing about a connection libp2p has
|
|
110
|
+
* already declared 'gone'.
|
|
111
|
+
*/
|
|
112
|
+
clearSessionImpairment(agentName: string, sessionId: string, observedBy: "direct_send" | "delivery_ack", correlationId?: string): void;
|
|
113
|
+
/** Test seam (same spirit as getDb()): seed per-session direct-path liveness, which is otherwise
|
|
114
|
+
* only set by the live node's onPeerConnect/onPeerDisconnect (#wireSessionLiveness). Lets a
|
|
115
|
+
* DB-seeded test exercise the CC-5 reaper's "alive counterparty must survive" gate without standing
|
|
116
|
+
* up a real libp2p peer connection. */
|
|
117
|
+
markSessionLivenessForTest(agentName: string, sessionId: string, state: "alive" | "impaired" | "gone"): void;
|
|
118
|
+
/**
|
|
119
|
+
* Drop the liveness verdict for a torn-down session.
|
|
120
|
+
*
|
|
121
|
+
* The direct-path liveness flag goes because the seal gate has already read its verdict, so a
|
|
122
|
+
* destroyed or retired session must not retain a stale alive/gone state that a later read could
|
|
123
|
+
* mistake for a live one.
|
|
124
|
+
*
|
|
125
|
+
* ⚠️ **`#impairmentCause` IS DELIBERATELY LEFT ALONE — clearing it here loses an operator notice.**
|
|
126
|
+
* It was added for symmetry and reverted. `getSessionImpairment` gates on liveness, so the cause
|
|
127
|
+
* looks unreachable — but `noteImpairmentRetention` reads it UNGATED, and on the path where
|
|
128
|
+
* `markSessionImpaired` declines because liveness is already `gone`, the retained cause is what
|
|
129
|
+
* produces the `outbound_message_lost` notice: *"your message is gone, send it again."* Clearing
|
|
130
|
+
* it here means the operator is told nothing instead. The cause is cleared where it should be,
|
|
131
|
+
* in `clearSessionImpairment`.
|
|
132
|
+
*/
|
|
133
|
+
evictSession(agentName: string, sessionId: string): void;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=session-liveness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-liveness.d.ts","sourceRoot":"","sources":["../src/session-liveness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,4CAA4C;AAC5C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACzD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACzD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3H;AAED,qBAAa,eAAe;;gBAGd,GAAG,EAAE,sBAAsB;IAMvC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,EACf,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,MAAM,EACrB,yBAAyB,CAAC,EAAE,MAAM,GACjC,IAAI;IA+IP;;;;;;;OAOG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS;IAGnG;;;;;;;;;;;;;;;;;OAiBG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QAAE,KAAK,EAAE,aAAa,GAAG,cAAc,GAAG,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACrG,IAAI;IA+BP;;;;;;;;OAQG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAuC5G;6FACyF;IACzF,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAKpF;;;;;;;;;OASG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,cAAc,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAetI;;;4CAGwC;IACxC,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI;IAI5G;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAGzD"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { extractErrorMessage } from "./error-message.js";
|
|
2
|
+
import { REFUSAL_KINDS } from "./refusal-reasons.js";
|
|
3
|
+
export class SessionLiveness {
|
|
4
|
+
#ctx;
|
|
5
|
+
constructor(ctx) {
|
|
6
|
+
this.#ctx = ctx;
|
|
7
|
+
}
|
|
8
|
+
#sessionLiveness = new Map();
|
|
9
|
+
#impairmentCause = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* M7-SESSION-003 AC-004: wire a session node's peer-connect / peer-disconnect
|
|
12
|
+
* events to per-session direct-path liveness. onPeerConnect → 'alive',
|
|
13
|
+
* onPeerDisconnect → 'gone', emitting session.liveness.changed at WARN. Combined
|
|
14
|
+
* with the transport keepalive (AC-005), a peer that vanished without a clean
|
|
15
|
+
* close still surfaces a disconnect and drives 'gone'.
|
|
16
|
+
*
|
|
17
|
+
* THE EVENT MUST BE FILTERED BY PEER (DOD-RELAY-KEEPALIVE-1 review, F2). The
|
|
18
|
+
* original wiring acted on EVERY peer event this node saw, justified by "the
|
|
19
|
+
* session node's gater restricts connections to the designated counterparty".
|
|
20
|
+
* That stopped being true: the session node also dials the RELAY as its
|
|
21
|
+
* Structure-2 witness (#connectSessionRelay), and the gater allows those peers
|
|
22
|
+
* outbound. So a relay link dropping declared the counterparty dead — at WARN,
|
|
23
|
+
* feeding the unilateral-seal gate — while the counterparty was sitting there
|
|
24
|
+
* perfectly alive. During the 2026-08-04 incident, when the relay link churned
|
|
25
|
+
* every 60-90 seconds, that fired continuously.
|
|
26
|
+
*
|
|
27
|
+
* `counterpartySessionPeerId` is the authority when known. When it is not (the
|
|
28
|
+
* peer id can be absent on a session whose assignment has not landed yet),
|
|
29
|
+
* every peer is honoured EXCEPT ones known to be relays for this session —
|
|
30
|
+
* degrading to the old over-eager behaviour minus its one known false positive,
|
|
31
|
+
* rather than to silence, because a liveness detector that never fires is worse
|
|
32
|
+
* than one that fires too often.
|
|
33
|
+
*/
|
|
34
|
+
wireSessionLiveness(agentName, sessionId, node, counterpartyPubkey, correlationId, counterpartySessionPeerId) {
|
|
35
|
+
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
36
|
+
const isCounterparty = (peerId) => {
|
|
37
|
+
if (counterpartySessionPeerId)
|
|
38
|
+
return peerId === counterpartySessionPeerId;
|
|
39
|
+
const entry = this.#ctx.activeEntry(key);
|
|
40
|
+
return entry?.relayPeerId !== peerId;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Named rather than inline so the already-attached sweep below can invoke **this exact function**
|
|
44
|
+
* instead of a second copy of it. A copy is what would drift: the two would have to be kept in
|
|
45
|
+
* step by whoever edits either, and the failure would be silent.
|
|
46
|
+
*/
|
|
47
|
+
const onCounterpartyAttached = (peerId) => {
|
|
48
|
+
/**
|
|
49
|
+
* DOD-M12B-RESPONDER-ADDR-1 (review MEDIUM-4) — LEARN THE ADDRESS HERE, where it cannot race.
|
|
50
|
+
*
|
|
51
|
+
* The accept-time read was a race between two independent async chains: the responder accepts
|
|
52
|
+
* off a signaling frame, while the initiator dials only after its own `createSessionNode`. If
|
|
53
|
+
* accept looked before the dial landed it saw nothing, and the responder was back to holding
|
|
54
|
+
* no address — the state that made every reply after an interruption park forever.
|
|
55
|
+
*
|
|
56
|
+
* This fires exactly when the counterparty connects: on both sides, on the first connection,
|
|
57
|
+
* on every reconnect, and on a revived node too. It also REFRESHES, which the accept-time read
|
|
58
|
+
* never did — a counterparty that rebuilds its receiver would otherwise leave us dialling a
|
|
59
|
+
* dead address for the life of the session.
|
|
60
|
+
*/
|
|
61
|
+
const observed = node
|
|
62
|
+
.getConnections()
|
|
63
|
+
.filter((c) => c.peerId === peerId && typeof c.remoteAddr === "string")
|
|
64
|
+
.map((c) => c.remoteAddr);
|
|
65
|
+
if (observed.length > 0) {
|
|
66
|
+
this.#ctx.counterpartyAddrs.set(key, [...new Set(observed)]);
|
|
67
|
+
}
|
|
68
|
+
const prior = this.#sessionLiveness.get(key);
|
|
69
|
+
this.#sessionLiveness.set(key, "alive");
|
|
70
|
+
if (prior !== "alive") {
|
|
71
|
+
this.#ctx.logger.info("session.liveness.changed", {
|
|
72
|
+
sessionId,
|
|
73
|
+
counterpartyPubkey,
|
|
74
|
+
transportPath: "direct",
|
|
75
|
+
liveness: "alive",
|
|
76
|
+
observedBy: "session_node",
|
|
77
|
+
correlationId,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* DOD-M15-SEALWIRE-1 bullet 6 (part A) — ANNOUNCE OUR SALT STATE, here and nowhere else.
|
|
82
|
+
*
|
|
83
|
+
* This is the only hook that fires on BOTH sides for every way a session's direct path comes
|
|
84
|
+
* up: the initiator's first dial, the responder's inbound connection, every reconnect, and a
|
|
85
|
+
* revived node. `newStream` never dials — it only finds an already-open connection — so a
|
|
86
|
+
* send placed at `createSessionNode` would be an announcement to a peer that is not attached
|
|
87
|
+
* yet, and the responder's half has no dial of its own to hang one on at all.
|
|
88
|
+
*
|
|
89
|
+
* Fire-and-forget: a failed announcement must not turn a peer-connect handler into a rejected
|
|
90
|
+
* promise, and there is nothing to await it. We re-announce on the next connect, and
|
|
91
|
+
* `#handleSaltFrame` answers a peer contribution on a connection that is provably up — so a
|
|
92
|
+
* single lost frame does not strand the agreement.
|
|
93
|
+
*/
|
|
94
|
+
void this.#ctx.sendSaltFrame(agentName, sessionId, correlationId);
|
|
95
|
+
// 007-CRYPTO: the signed ephemeral rides the SAME moment as the salt half — one connect, one
|
|
96
|
+
// round trip, the same peer-to-peer content stream. Fire-and-forget for the same reason: a
|
|
97
|
+
// failed announcement must not reject a peer-connect handler, and the next connect re-announces.
|
|
98
|
+
void this.#ctx.ephemerals.sendEphemeralFrame(agentName, sessionId, correlationId);
|
|
99
|
+
};
|
|
100
|
+
node.onPeerConnect(onCounterpartyAttached);
|
|
101
|
+
/**
|
|
102
|
+
* ⚠️ THE CONNECT THAT ALREADY HAPPENED — `DOD-M15-SALTANNOUNCE-LATE-1`.
|
|
103
|
+
*
|
|
104
|
+
* `onPeerConnect` above is `addEventListener("peer:connect", …)` (`core/transport/src/node.ts`),
|
|
105
|
+
* and **an event listener cannot fire for a connection that predates it.** On the
|
|
106
|
+
* `reuseStandingReceiver` path this session does not build a node — it TAKES the standing
|
|
107
|
+
* receiver's, which has been listening all along. So the ordinary sequence is:
|
|
108
|
+
*
|
|
109
|
+
* 1. `#tryCreateStandingReceiver` starts the node listening. It never calls this method, so
|
|
110
|
+
* there is no handler yet.
|
|
111
|
+
* 2. The counterparty connects. `peer:connect` fires into nothing.
|
|
112
|
+
* 3. The session promotes that same node and registers the handler — one step too late.
|
|
113
|
+
*
|
|
114
|
+
* The handler then never runs, and everything hanging off it is silently skipped: **the salt is
|
|
115
|
+
* never announced** (`no_agreement_started`, the sender salts, the receiver holds none, and every
|
|
116
|
+
* message between them is refused) **and the counterparty's address is never learned or
|
|
117
|
+
* refreshed.** Measured live: `j-documents` 7 of 12 red, every failure a document update that
|
|
118
|
+
* never arrived, with no error shown to either operator.
|
|
119
|
+
*
|
|
120
|
+
* ⚠️ THE COMMENT ON THE HANDLER ABOVE NAMES THE OPPOSITE HAZARD, AND IT IS ALSO RIGHT: *"a send
|
|
121
|
+
* placed at `createSessionNode` would be an announcement to a peer that is not attached yet."*
|
|
122
|
+
* Both are real, which is why this is a SWEEP AFTER REGISTERING rather than a move. Too-early
|
|
123
|
+
* stays impossible — the sweep runs at the same point the handler is armed — and too-late stops
|
|
124
|
+
* being invisible, because an already-open connection is now looked at instead of waited for.
|
|
125
|
+
*
|
|
126
|
+
* Idempotent by construction: it invokes the SAME handler the event would have, so a peer that
|
|
127
|
+
* connects normally is unaffected, and a peer seen twice re-announces — which the announce path
|
|
128
|
+
* already tolerates (*"we re-announce on every reconnect"*).
|
|
129
|
+
*/
|
|
130
|
+
try {
|
|
131
|
+
// `getConnections()` returns CONNECTIONS, and one peer can hold several — dedupe, or a peer
|
|
132
|
+
// with two open connections would run the attach path twice for no reason.
|
|
133
|
+
const attachedPeers = new Set(node.getConnections().map((c) => c.peerId));
|
|
134
|
+
for (const peerId of attachedPeers) {
|
|
135
|
+
if (!isCounterparty(peerId))
|
|
136
|
+
continue;
|
|
137
|
+
this.#ctx.logger.info("session.liveness.peer_already_attached", {
|
|
138
|
+
agentName, sessionId, peerId, correlationId,
|
|
139
|
+
impact: "this counterparty connected BEFORE the session's liveness handler was registered — on the standing-receiver promotion path that is the ordinary case, not a rare one. Running the attach path for it now: without this the salt is never announced (every message from the peer is then refused) and the counterparty's address is never learned.",
|
|
140
|
+
});
|
|
141
|
+
onCounterpartyAttached(peerId);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
// Never let the sweep cost the caller its session: the handler is already armed, so a failure
|
|
146
|
+
// here degrades to exactly the behaviour that shipped before this fix.
|
|
147
|
+
this.#ctx.logger.warn("session.liveness.attached_sweep.failed", {
|
|
148
|
+
agentName, sessionId, correlationId, error: extractErrorMessage(err),
|
|
149
|
+
impact: "could not check for an already-attached counterparty. If one is attached, this session may never announce its salt and will refuse that peer's messages — the pre-fix behaviour.",
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
node.onPeerDisconnect((peerId) => {
|
|
153
|
+
if (!isCounterparty(peerId)) {
|
|
154
|
+
// Not silence: a relay link dropping is a real event, it is simply not a
|
|
155
|
+
// statement about the counterparty. It has its own signal
|
|
156
|
+
// (session.standing_receiver.reservation.lost / session.relay.reader.ended).
|
|
157
|
+
this.#ctx.logger.debug("session.liveness.unrelated_peer_disconnect", {
|
|
158
|
+
sessionId,
|
|
159
|
+
peerId,
|
|
160
|
+
correlationId,
|
|
161
|
+
});
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const prior = this.#sessionLiveness.get(key);
|
|
165
|
+
this.#sessionLiveness.set(key, "gone");
|
|
166
|
+
if (prior !== "gone") {
|
|
167
|
+
this.#ctx.logger.warn("session.liveness.changed", {
|
|
168
|
+
sessionId,
|
|
169
|
+
counterpartyPubkey,
|
|
170
|
+
transportPath: "direct",
|
|
171
|
+
liveness: "gone",
|
|
172
|
+
observedBy: "session_node",
|
|
173
|
+
correlationId,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* M7-SESSION-003: read the direct-path counterparty liveness for a session.
|
|
180
|
+
* 'unknown' when no session node observation has occurred yet.
|
|
181
|
+
*
|
|
182
|
+
* DOD-M12B-ACK-1: 'impaired' is DAEMON-LOCAL and deliberately not on the relay's
|
|
183
|
+
* SessionLiveness wire type — the relay answers a different question (does it hold the
|
|
184
|
+
* recipient's standing connection) and its three states are a deployed bilateral contract.
|
|
185
|
+
*/
|
|
186
|
+
getSessionLiveness(agentName, sessionId) {
|
|
187
|
+
return this.#sessionLiveness.get(this.#ctx.sessionKey(agentName, sessionId)) ?? "unknown";
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* DOD-M12B-ACK-1 — the connection is up and delivery on it is not working.
|
|
191
|
+
*
|
|
192
|
+
* Liveness is otherwise driven ONLY by libp2p peer-connect/peer-disconnect, so it answers "is
|
|
193
|
+
* there a connection object?" while every surface that prints it is read as "can I talk to them?".
|
|
194
|
+
* Measured 2026-08-17: one session reported `alive` for 70 minutes after every write had started
|
|
195
|
+
* failing, another never stopped.
|
|
196
|
+
*
|
|
197
|
+
* ONLY 'gone' is protected, and 'gone' is NOT protected because a seal gate reads it — nothing in
|
|
198
|
+
* the code does. It is protected because the receive surface turns 'gone' into "call
|
|
199
|
+
* cello_close_session", and a failed write must never be able to produce that instruction.
|
|
200
|
+
*
|
|
201
|
+
* 'unknown' is DOWNGRADED just like 'alive', which is not obvious and is the point. A session
|
|
202
|
+
* whose recorded `counterpartySessionPeerId` has gone stale never sees a matching peer-connect,
|
|
203
|
+
* so it sits at 'unknown' while every send fails forever — the exact case documented at
|
|
204
|
+
* #wireSessionLiveness — and the receive surface renders 'unknown' as healthy-and-quiet, which is
|
|
205
|
+
* the 70-minute lie relocated one lane over. 'unknown' claims nothing; the surface built on it does.
|
|
206
|
+
*/
|
|
207
|
+
markSessionImpaired(agentName, sessionId, opts) {
|
|
208
|
+
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
209
|
+
const prior = this.#sessionLiveness.get(key);
|
|
210
|
+
if (prior === "gone") {
|
|
211
|
+
// Declining is a decision, so it is logged. A silent early return here is the shape that let
|
|
212
|
+
// the original defect hide for a day: nothing recorded that writes were failing on a session
|
|
213
|
+
// every surface was still calling healthy.
|
|
214
|
+
this.#ctx.logger.debug("session.liveness.impairment.declined", {
|
|
215
|
+
sessionId, liveness: prior, cause: opts.cause, error: opts.error, correlationId: opts.correlationId,
|
|
216
|
+
});
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// The CAUSE is refreshed even when the state does not move, because the receive surface builds
|
|
220
|
+
// its guidance from it and a stale cause would describe the wrong failure.
|
|
221
|
+
this.#impairmentCause.set(key, { cause: opts.cause, retained: "unknown" });
|
|
222
|
+
if (prior === "impaired")
|
|
223
|
+
return;
|
|
224
|
+
this.#sessionLiveness.set(key, "impaired");
|
|
225
|
+
this.#ctx.logger.warn("session.liveness.changed", {
|
|
226
|
+
sessionId,
|
|
227
|
+
counterpartyPubkey: this.#ctx.queries.getSessionRecord(agentName, sessionId)?.counterparty_pubkey,
|
|
228
|
+
transportPath: "direct",
|
|
229
|
+
liveness: "impaired",
|
|
230
|
+
observedBy: opts.cause,
|
|
231
|
+
priorLiveness: prior ?? "unknown",
|
|
232
|
+
// `reason` is a contract string and `error` is the message — the convention every other
|
|
233
|
+
// failure log in this file follows. Collapsing them makes grouping by `reason` useless.
|
|
234
|
+
reason: "write_failed",
|
|
235
|
+
error: opts.error,
|
|
236
|
+
correlationId: opts.correlationId,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* DOD-M12B-ACK-1 — what became of the content whose send caused the impairment.
|
|
241
|
+
*
|
|
242
|
+
* The receive surface has no memory of the last send, so without this it can only guess — and the
|
|
243
|
+
* guess it would make ("it was parked, do not resend") is FALSE in the two cases that matter
|
|
244
|
+
* most: a refused park whose durable enqueue was dropped, and one that threw. In both the message
|
|
245
|
+
* is gone and `cello_send` has already told the caller to send it again, so a receive that says
|
|
246
|
+
* "do not resend" contradicts it later, while the agent is sitting there waiting.
|
|
247
|
+
*/
|
|
248
|
+
noteImpairmentRetention(agentName, sessionId, retained) {
|
|
249
|
+
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
250
|
+
const current = this.#impairmentCause.get(key);
|
|
251
|
+
if (!current)
|
|
252
|
+
return;
|
|
253
|
+
this.#impairmentCause.set(key, { cause: current.cause, retained });
|
|
254
|
+
/**
|
|
255
|
+
* ─── DOD-M15-NO-SILENT-REFUSAL-1: the notice fires HERE, and ONLY on `lost` ─────────────────
|
|
256
|
+
*
|
|
257
|
+
* ⚠️ **THE FIRST VERSION WROTE IT ON THE IMPAIRMENT TRANSITION, WHICH IS A SUCCESS PATH.**
|
|
258
|
+
*
|
|
259
|
+
* A direct send failing is the ORDINARY case when a counterparty is offline: the message is
|
|
260
|
+
* then parked with the relay and handed over when they come back, which is the leave-a-message
|
|
261
|
+
* feature working exactly as designed. Writing a notice at that moment told the operator "a
|
|
262
|
+
* message this side sent did not reach the counterparty" about a message that was in flight and
|
|
263
|
+
* would arrive — while `cello_send` was simultaneously telling them it was parked. Two surfaces,
|
|
264
|
+
* opposite stories, same message.
|
|
265
|
+
*
|
|
266
|
+
* By this line the outcome is known, and only one of the three is the operator's problem:
|
|
267
|
+
* - `parked` — with the relay, delivered when they come back. Nothing to tell.
|
|
268
|
+
* - `durable` — queued here, re-sent automatically. Nothing to tell.
|
|
269
|
+
* - `lost` — it could not be queued anywhere. It is gone, and only a resend recovers it.
|
|
270
|
+
*
|
|
271
|
+
* A FAILED ACK takes none of these branches (it never reaches this method), and that is correct:
|
|
272
|
+
* an acknowledgement this side owed them going missing costs the counterparty a redelivery, not
|
|
273
|
+
* the operator a message.
|
|
274
|
+
*
|
|
275
|
+
* NOT retracted when the connection recovers, unlike the impairment state it rides on: a
|
|
276
|
+
* recovered connection does not un-lose a message. That is also why the count is meaningful —
|
|
277
|
+
* it is the number of messages lost in this conversation, and it only ever grows.
|
|
278
|
+
*/
|
|
279
|
+
if (retained !== "lost")
|
|
280
|
+
return;
|
|
281
|
+
this.#ctx.notices.noteContentRefusal(agentName, sessionId, "outbound_message_lost", {
|
|
282
|
+
kind: REFUSAL_KINDS.OUTBOUND,
|
|
283
|
+
impact: "a message you sent could not be delivered and could not be saved to send later, so it is gone. Nothing was added to the conversation and the other person never saw it. Everything you sent before it is unaffected.",
|
|
284
|
+
guidance: "Send it again. This is the one case where resending is right — there is no copy of it anywhere, so nothing will deliver it for you. If it keeps happening, the connection to this person is not working: check cello_status for this conversation before sending anything long.",
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/** DOD-M12B-ACK-1: why this session is impaired, for the surface that has to explain it. Null
|
|
288
|
+
* when it is not impaired — a caller must not narrate a failure that is not current. */
|
|
289
|
+
getSessionImpairment(agentName, sessionId) {
|
|
290
|
+
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
291
|
+
if (this.#sessionLiveness.get(key) !== "impaired")
|
|
292
|
+
return null;
|
|
293
|
+
return this.#impairmentCause.get(key) ?? null;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* DOD-M12B-ACK-1 — a delivery landed, so the impairment is over.
|
|
297
|
+
*
|
|
298
|
+
* Without this an `impaired` flag is a one-way door: one bad write would make a session report a
|
|
299
|
+
* broken conversation for the rest of its life, which is the same class of lie in the other
|
|
300
|
+
* direction. Called from BOTH send paths — an agent that mostly listens sends content rarely and
|
|
301
|
+
* ACKs constantly, so clearing only on content would leave exactly those sessions impaired
|
|
302
|
+
* forever. Only clears 'impaired': a successful write says nothing about a connection libp2p has
|
|
303
|
+
* already declared 'gone'.
|
|
304
|
+
*/
|
|
305
|
+
clearSessionImpairment(agentName, sessionId, observedBy, correlationId) {
|
|
306
|
+
const key = this.#ctx.sessionKey(agentName, sessionId);
|
|
307
|
+
if (this.#sessionLiveness.get(key) !== "impaired")
|
|
308
|
+
return;
|
|
309
|
+
this.#sessionLiveness.set(key, "alive");
|
|
310
|
+
this.#impairmentCause.delete(key);
|
|
311
|
+
this.#ctx.logger.info("session.liveness.changed", {
|
|
312
|
+
sessionId,
|
|
313
|
+
counterpartyPubkey: this.#ctx.queries.getSessionRecord(agentName, sessionId)?.counterparty_pubkey,
|
|
314
|
+
transportPath: "direct",
|
|
315
|
+
liveness: "alive",
|
|
316
|
+
observedBy,
|
|
317
|
+
reason: "write_succeeded",
|
|
318
|
+
correlationId,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
/** Test seam (same spirit as getDb()): seed per-session direct-path liveness, which is otherwise
|
|
322
|
+
* only set by the live node's onPeerConnect/onPeerDisconnect (#wireSessionLiveness). Lets a
|
|
323
|
+
* DB-seeded test exercise the CC-5 reaper's "alive counterparty must survive" gate without standing
|
|
324
|
+
* up a real libp2p peer connection. */
|
|
325
|
+
markSessionLivenessForTest(agentName, sessionId, state) {
|
|
326
|
+
this.#sessionLiveness.set(this.#ctx.sessionKey(agentName, sessionId), state);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Drop the liveness verdict for a torn-down session.
|
|
330
|
+
*
|
|
331
|
+
* The direct-path liveness flag goes because the seal gate has already read its verdict, so a
|
|
332
|
+
* destroyed or retired session must not retain a stale alive/gone state that a later read could
|
|
333
|
+
* mistake for a live one.
|
|
334
|
+
*
|
|
335
|
+
* ⚠️ **`#impairmentCause` IS DELIBERATELY LEFT ALONE — clearing it here loses an operator notice.**
|
|
336
|
+
* It was added for symmetry and reverted. `getSessionImpairment` gates on liveness, so the cause
|
|
337
|
+
* looks unreachable — but `noteImpairmentRetention` reads it UNGATED, and on the path where
|
|
338
|
+
* `markSessionImpaired` declines because liveness is already `gone`, the retained cause is what
|
|
339
|
+
* produces the `outbound_message_lost` notice: *"your message is gone, send it again."* Clearing
|
|
340
|
+
* it here means the operator is told nothing instead. The cause is cleared where it should be,
|
|
341
|
+
* in `clearSessionImpairment`.
|
|
342
|
+
*/
|
|
343
|
+
evictSession(agentName, sessionId) {
|
|
344
|
+
this.#sessionLiveness.delete(this.#ctx.sessionKey(agentName, sessionId));
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
//# sourceMappingURL=session-liveness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-liveness.js","sourceRoot":"","sources":["../src/session-liveness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-SESSION-NAME-1 — validation for a session's human-readable name.
|
|
3
|
+
*
|
|
4
|
+
* This lives in the DAEMON, not in protocol-types, and that is deliberate: a session name is local
|
|
5
|
+
* and cosmetic. protocol-types holds the wire encoders and the TBS builders — putting a validator
|
|
6
|
+
* there would say the name is protocol, and the next reader would reasonably wire it into a frame.
|
|
7
|
+
* It is a sticky note on your own copy of the folder.
|
|
8
|
+
*
|
|
9
|
+
* It is NOT handle-shaped. Do not reach for MONIKER_RE: a moniker is a handle a counterparty sees,
|
|
10
|
+
* so it is deliberately narrow; this is a DESCRIPTION ("Q3 budget review with Bob") that only its
|
|
11
|
+
* author reads. Letters, digits, spaces, punctuation, accents, CJK and emoji are all legal.
|
|
12
|
+
*/
|
|
13
|
+
/** Free text, but bounded: long enough for a sentence, short enough to list in a terminal. */
|
|
14
|
+
export declare const SESSION_NAME_MAX_LENGTH = 200;
|
|
15
|
+
export type SessionNameResult = {
|
|
16
|
+
ok: true;
|
|
17
|
+
value: string | null;
|
|
18
|
+
} | {
|
|
19
|
+
ok: false;
|
|
20
|
+
reason: "session_name_not_a_string" | "session_name_control_chars" | "session_name_too_long";
|
|
21
|
+
guidance: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Validate a session name.
|
|
25
|
+
*
|
|
26
|
+
* Returns the trimmed name, or `null` for "no name" — which is a legal, meaningful value, not a
|
|
27
|
+
* failure. `null`, `undefined` and an all-whitespace string all mean CLEAR.
|
|
28
|
+
*
|
|
29
|
+
* Rejects rather than repairs. A 201-character name is refused, not truncated, and a name carrying
|
|
30
|
+
* a newline is refused, not stripped: silently altering what the operator typed and then storing it
|
|
31
|
+
* under their name is worse than telling them it was wrong. Each refusal names its own cause, so
|
|
32
|
+
* "why was my name rejected" never requires reading the daemon log.
|
|
33
|
+
*/
|
|
34
|
+
export declare function validateSessionName(raw: unknown): SessionNameResult;
|
|
35
|
+
//# sourceMappingURL=session-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-name.d.ts","sourceRoot":"","sources":["../src/session-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAK3C,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,2BAA2B,GAAG,4BAA4B,GAAG,uBAAuB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAElI;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAkCnE"}
|