@origintrail-official/dkg-agent 10.0.19 → 10.0.21
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/approved-private-replica.d.ts +54 -0
- package/dist/approved-private-replica.d.ts.map +1 -0
- package/dist/approved-private-replica.js +148 -0
- package/dist/approved-private-replica.js.map +1 -0
- package/dist/bounded-operation.d.ts +2 -0
- package/dist/bounded-operation.d.ts.map +1 -1
- package/dist/bounded-operation.js +5 -0
- package/dist/bounded-operation.js.map +1 -1
- package/dist/chain-finality-confirmations-v1.d.ts +7 -0
- package/dist/chain-finality-confirmations-v1.d.ts.map +1 -0
- package/dist/chain-finality-confirmations-v1.js +9 -0
- package/dist/chain-finality-confirmations-v1.js.map +1 -0
- package/dist/chain-reconciler.d.ts +23 -0
- package/dist/chain-reconciler.d.ts.map +1 -1
- package/dist/chain-reconciler.js +35 -0
- package/dist/chain-reconciler.js.map +1 -1
- package/dist/confirmed-graph-scoped-vm-resolver.d.ts +7 -1
- package/dist/confirmed-graph-scoped-vm-resolver.d.ts.map +1 -1
- package/dist/confirmed-graph-scoped-vm-resolver.js +5 -3
- package/dist/confirmed-graph-scoped-vm-resolver.js.map +1 -1
- package/dist/context-graph-authority-dependency.d.ts +11 -0
- package/dist/context-graph-authority-dependency.d.ts.map +1 -0
- package/dist/context-graph-authority-dependency.js +50 -0
- package/dist/context-graph-authority-dependency.js.map +1 -0
- package/dist/context-graph-binding-state.d.ts +6 -0
- package/dist/context-graph-binding-state.d.ts.map +1 -1
- package/dist/context-graph-binding-state.js +17 -10
- package/dist/context-graph-binding-state.js.map +1 -1
- package/dist/context-graph-claim-proof.d.ts +74 -0
- package/dist/context-graph-claim-proof.d.ts.map +1 -0
- package/dist/context-graph-claim-proof.js +137 -0
- package/dist/context-graph-claim-proof.js.map +1 -0
- package/dist/context-graph-member-proof.d.ts +33 -0
- package/dist/context-graph-member-proof.d.ts.map +1 -0
- package/dist/context-graph-member-proof.js +142 -0
- package/dist/context-graph-member-proof.js.map +1 -0
- package/dist/context-graph-membership-persist-scheduler.d.ts +7 -23
- package/dist/context-graph-membership-persist-scheduler.d.ts.map +1 -1
- package/dist/context-graph-membership-persist-scheduler.js +12 -88
- package/dist/context-graph-membership-persist-scheduler.js.map +1 -1
- package/dist/context-graph-meta-confirmation.d.ts +22 -2
- package/dist/context-graph-meta-confirmation.d.ts.map +1 -1
- package/dist/context-graph-meta-confirmation.js +54 -23
- package/dist/context-graph-meta-confirmation.js.map +1 -1
- package/dist/context-graph-meta-projection.d.ts +13 -2
- package/dist/context-graph-meta-projection.d.ts.map +1 -1
- package/dist/context-graph-meta-projection.js +61 -24
- package/dist/context-graph-meta-projection.js.map +1 -1
- package/dist/context-graph-metadata-relocation.d.ts +18 -30
- package/dist/context-graph-metadata-relocation.d.ts.map +1 -1
- package/dist/context-graph-metadata-relocation.js +32 -2
- package/dist/context-graph-metadata-relocation.js.map +1 -1
- package/dist/context-graph-private-meta-proof.d.ts +8 -9
- package/dist/context-graph-private-meta-proof.d.ts.map +1 -1
- package/dist/context-graph-private-meta-proof.js +25 -89
- package/dist/context-graph-private-meta-proof.js.map +1 -1
- package/dist/context-graph-public-meta-proof.d.ts +11 -1
- package/dist/context-graph-public-meta-proof.d.ts.map +1 -1
- package/dist/context-graph-public-meta-proof.js +23 -3
- package/dist/context-graph-public-meta-proof.js.map +1 -1
- package/dist/context-graph-read-authority.d.ts +30 -3
- package/dist/context-graph-read-authority.d.ts.map +1 -1
- package/dist/context-graph-read-authority.js +62 -18
- package/dist/context-graph-read-authority.js.map +1 -1
- package/dist/context-graph-storage-discovery.d.ts +14 -4
- package/dist/context-graph-storage-discovery.d.ts.map +1 -1
- package/dist/context-graph-storage-discovery.js +27 -7
- package/dist/context-graph-storage-discovery.js.map +1 -1
- package/dist/context-graph-subscription-authority-recovery.d.ts +7 -0
- package/dist/context-graph-subscription-authority-recovery.d.ts.map +1 -1
- package/dist/context-graph-subscription-authority-recovery.js +1 -0
- package/dist/context-graph-subscription-authority-recovery.js.map +1 -1
- package/dist/context-graph-subscription-persist-scheduler.d.ts +52 -0
- package/dist/context-graph-subscription-persist-scheduler.d.ts.map +1 -0
- package/dist/context-graph-subscription-persist-scheduler.js +78 -0
- package/dist/context-graph-subscription-persist-scheduler.js.map +1 -0
- package/dist/curator-dial-address.d.ts +16 -0
- package/dist/curator-dial-address.d.ts.map +1 -0
- package/dist/curator-dial-address.js +58 -0
- package/dist/curator-dial-address.js.map +1 -0
- package/dist/curator-meta-refresh.d.ts +18 -4
- package/dist/curator-meta-refresh.d.ts.map +1 -1
- package/dist/curator-meta-refresh.js +61 -58
- package/dist/curator-meta-refresh.js.map +1 -1
- package/dist/curator-peer-connection.d.ts +21 -0
- package/dist/curator-peer-connection.d.ts.map +1 -0
- package/dist/curator-peer-connection.js +41 -0
- package/dist/curator-peer-connection.js.map +1 -0
- package/dist/dkg-agent-agents-phonebook.d.ts +41 -0
- package/dist/dkg-agent-agents-phonebook.d.ts.map +1 -0
- package/dist/dkg-agent-agents-phonebook.js +155 -0
- package/dist/dkg-agent-agents-phonebook.js.map +1 -0
- package/dist/dkg-agent-base.d.ts +162 -24
- package/dist/dkg-agent-base.d.ts.map +1 -1
- package/dist/dkg-agent-base.js +175 -147
- package/dist/dkg-agent-base.js.map +1 -1
- package/dist/dkg-agent-cg-chain-observation.d.ts +6 -1
- package/dist/dkg-agent-cg-chain-observation.d.ts.map +1 -1
- package/dist/dkg-agent-cg-chain-observation.js +20 -5
- package/dist/dkg-agent-cg-chain-observation.js.map +1 -1
- package/dist/dkg-agent-cg-name-resolution.d.ts +38 -2
- package/dist/dkg-agent-cg-name-resolution.d.ts.map +1 -1
- package/dist/dkg-agent-cg-name-resolution.js +100 -8
- package/dist/dkg-agent-cg-name-resolution.js.map +1 -1
- package/dist/dkg-agent-cg-registry.d.ts +43 -3
- package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
- package/dist/dkg-agent-cg-registry.js +267 -129
- package/dist/dkg-agent-cg-registry.js.map +1 -1
- package/dist/dkg-agent-cg-resolve.d.ts +6 -4
- package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
- package/dist/dkg-agent-cg-resolve.js +40 -18
- package/dist/dkg-agent-cg-resolve.js.map +1 -1
- package/dist/dkg-agent-constants.d.ts +10 -2
- package/dist/dkg-agent-constants.d.ts.map +1 -1
- package/dist/dkg-agent-constants.js +10 -2
- package/dist/dkg-agent-constants.js.map +1 -1
- package/dist/dkg-agent-context-graph.d.ts.map +1 -1
- package/dist/dkg-agent-context-graph.js +1 -5
- package/dist/dkg-agent-context-graph.js.map +1 -1
- package/dist/dkg-agent-crypto.d.ts +128 -21
- package/dist/dkg-agent-crypto.d.ts.map +1 -1
- package/dist/dkg-agent-crypto.js +824 -176
- package/dist/dkg-agent-crypto.js.map +1 -1
- package/dist/dkg-agent-diagnostics.d.ts.map +1 -1
- package/dist/dkg-agent-diagnostics.js +4 -3
- package/dist/dkg-agent-diagnostics.js.map +1 -1
- package/dist/dkg-agent-helpers.d.ts +2 -2
- package/dist/dkg-agent-helpers.d.ts.map +1 -1
- package/dist/dkg-agent-helpers.js +3 -3
- package/dist/dkg-agent-helpers.js.map +1 -1
- package/dist/dkg-agent-join.d.ts +12 -1
- package/dist/dkg-agent-join.d.ts.map +1 -1
- package/dist/dkg-agent-join.js +80 -92
- package/dist/dkg-agent-join.js.map +1 -1
- package/dist/dkg-agent-lifecycle.d.ts +129 -22
- package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
- package/dist/dkg-agent-lifecycle.js +690 -211
- package/dist/dkg-agent-lifecycle.js.map +1 -1
- package/dist/dkg-agent-publish.d.ts +33 -40
- package/dist/dkg-agent-publish.d.ts.map +1 -1
- package/dist/dkg-agent-publish.js +194 -281
- package/dist/dkg-agent-publish.js.map +1 -1
- package/dist/dkg-agent-query.d.ts +7 -0
- package/dist/dkg-agent-query.d.ts.map +1 -1
- package/dist/dkg-agent-query.js +102 -86
- package/dist/dkg-agent-query.js.map +1 -1
- package/dist/dkg-agent-registered-private-empty-vm.d.ts +70 -0
- package/dist/dkg-agent-registered-private-empty-vm.d.ts.map +1 -0
- package/dist/dkg-agent-registered-private-empty-vm.js +133 -0
- package/dist/dkg-agent-registered-private-empty-vm.js.map +1 -0
- package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts +8 -3
- package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-auto-publish.js +45 -51
- package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.d.ts +87 -80
- package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.js +726 -476
- package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
- package/dist/dkg-agent-rfc64-meta-bootstrap.d.ts +6 -1
- package/dist/dkg-agent-rfc64-meta-bootstrap.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-meta-bootstrap.js +29 -13
- package/dist/dkg-agent-rfc64-meta-bootstrap.js.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts +8 -0
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js +249 -40
- package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-swm-catalog-projection.js +3 -2
- package/dist/dkg-agent-rfc64-swm-catalog-projection.js.map +1 -1
- package/dist/dkg-agent-swm-host.d.ts +217 -52
- package/dist/dkg-agent-swm-host.d.ts.map +1 -1
- package/dist/dkg-agent-swm-host.js +1305 -858
- package/dist/dkg-agent-swm-host.js.map +1 -1
- package/dist/dkg-agent-swm-state.d.ts +15 -0
- package/dist/dkg-agent-swm-state.d.ts.map +1 -1
- package/dist/dkg-agent-swm-state.js +43 -0
- package/dist/dkg-agent-swm-state.js.map +1 -1
- package/dist/dkg-agent-swm-substrate.d.ts +49 -8
- package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
- package/dist/dkg-agent-swm-substrate.js +219 -46
- package/dist/dkg-agent-swm-substrate.js.map +1 -1
- package/dist/dkg-agent-types.d.ts +86 -27
- package/dist/dkg-agent-types.d.ts.map +1 -1
- package/dist/dkg-agent-types.js.map +1 -1
- package/dist/dkg-agent-vm-promotion.d.ts +4 -0
- package/dist/dkg-agent-vm-promotion.d.ts.map +1 -1
- package/dist/dkg-agent-vm-promotion.js +40 -5
- package/dist/dkg-agent-vm-promotion.js.map +1 -1
- package/dist/dkg-agent-vm-reconcile-scheduling.d.ts +7 -0
- package/dist/dkg-agent-vm-reconcile-scheduling.d.ts.map +1 -1
- package/dist/dkg-agent-vm-reconcile-scheduling.js +18 -0
- package/dist/dkg-agent-vm-reconcile-scheduling.js.map +1 -1
- package/dist/dkg-agent.d.ts +31 -2
- package/dist/dkg-agent.d.ts.map +1 -1
- package/dist/dkg-agent.js +188 -72
- package/dist/dkg-agent.js.map +1 -1
- package/dist/exact-graph-content-verifier.d.ts.map +1 -1
- package/dist/exact-graph-content-verifier.js +3 -2
- package/dist/exact-graph-content-verifier.js.map +1 -1
- package/dist/finalization-handler.d.ts +26 -211
- package/dist/finalization-handler.d.ts.map +1 -1
- package/dist/finalization-handler.js +94 -1652
- package/dist/finalization-handler.js.map +1 -1
- package/dist/finalization-recovery-sqlite-displacement.d.ts +37 -0
- package/dist/finalization-recovery-sqlite-displacement.d.ts.map +1 -0
- package/dist/finalization-recovery-sqlite-displacement.js +102 -0
- package/dist/finalization-recovery-sqlite-displacement.js.map +1 -0
- package/dist/finalization-recovery-sqlite-policy.d.ts +20 -4
- package/dist/finalization-recovery-sqlite-policy.d.ts.map +1 -1
- package/dist/finalization-recovery-sqlite-policy.js +21 -5
- package/dist/finalization-recovery-sqlite-policy.js.map +1 -1
- package/dist/finalization-recovery-sqlite-rows.d.ts +53 -0
- package/dist/finalization-recovery-sqlite-rows.d.ts.map +1 -0
- package/dist/finalization-recovery-sqlite-rows.js +77 -0
- package/dist/finalization-recovery-sqlite-rows.js.map +1 -0
- package/dist/finalization-recovery-sqlite-store.d.ts +10 -4
- package/dist/finalization-recovery-sqlite-store.d.ts.map +1 -1
- package/dist/finalization-recovery-sqlite-store.js +49 -50
- package/dist/finalization-recovery-sqlite-store.js.map +1 -1
- package/dist/finalization-recovery-store.d.ts +18 -0
- package/dist/finalization-recovery-store.d.ts.map +1 -1
- package/dist/finalization-recovery-store.js +24 -0
- package/dist/finalization-recovery-store.js.map +1 -1
- package/dist/finalization-recovery-worker.js +1 -1
- package/dist/finalization-recovery-worker.js.map +1 -1
- package/dist/finalization-recovery.d.ts +2 -3
- package/dist/finalization-recovery.d.ts.map +1 -1
- package/dist/finalization-recovery.js +12 -9
- package/dist/finalization-recovery.js.map +1 -1
- package/dist/finalized-authority-cold-resolution.d.ts +6 -1
- package/dist/finalized-authority-cold-resolution.d.ts.map +1 -1
- package/dist/finalized-authority-cold-resolution.js +22 -3
- package/dist/finalized-authority-cold-resolution.js.map +1 -1
- package/dist/gossip-publish-handler.d.ts.map +1 -1
- package/dist/gossip-publish-handler.js +4 -2
- package/dist/gossip-publish-handler.js.map +1 -1
- package/dist/gossip-session.d.ts +29 -0
- package/dist/gossip-session.d.ts.map +1 -0
- package/dist/gossip-session.js +48 -0
- package/dist/gossip-session.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/context-graph-authority/approved-member-acceptance.d.ts +61 -0
- package/dist/internal/context-graph-authority/approved-member-acceptance.d.ts.map +1 -0
- package/dist/internal/context-graph-authority/approved-member-acceptance.js +75 -0
- package/dist/internal/context-graph-authority/approved-member-acceptance.js.map +1 -0
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts +5 -5
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js +59 -49
- package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-authority.d.ts +1 -0
- package/dist/internal/context-graph-authority/context-graph-authority.d.ts.map +1 -1
- package/dist/internal/context-graph-authority/context-graph-authority.js +25 -0
- package/dist/internal/context-graph-authority/context-graph-authority.js.map +1 -1
- package/dist/internal/context-graph-authority/finalized-target-projection.d.ts +17 -0
- package/dist/internal/context-graph-authority/finalized-target-projection.d.ts.map +1 -0
- package/dist/internal/context-graph-authority/finalized-target-projection.js +36 -0
- package/dist/internal/context-graph-authority/finalized-target-projection.js.map +1 -0
- package/dist/internal/context-graph-authority/swm-transport-authority.d.ts +84 -0
- package/dist/internal/context-graph-authority/swm-transport-authority.d.ts.map +1 -0
- package/dist/internal/context-graph-authority/swm-transport-authority.js +175 -0
- package/dist/internal/context-graph-authority/swm-transport-authority.js.map +1 -0
- package/dist/internal/context-graph-binding-abort.d.ts +3 -0
- package/dist/internal/context-graph-binding-abort.d.ts.map +1 -0
- package/dist/internal/context-graph-binding-abort.js +32 -0
- package/dist/internal/context-graph-binding-abort.js.map +1 -0
- package/dist/internal/context-graph-cache-invalidating-store.d.ts +3 -0
- package/dist/internal/context-graph-cache-invalidating-store.d.ts.map +1 -0
- package/dist/internal/context-graph-cache-invalidating-store.js +167 -0
- package/dist/internal/context-graph-cache-invalidating-store.js.map +1 -0
- package/dist/internal/context-graph-meta-record-copy.d.ts +3 -0
- package/dist/internal/context-graph-meta-record-copy.d.ts.map +1 -0
- package/dist/internal/context-graph-meta-record-copy.js +21 -0
- package/dist/internal/context-graph-meta-record-copy.js.map +1 -0
- package/dist/internal/gossip/host-mode-handler.d.ts +11 -0
- package/dist/internal/gossip/host-mode-handler.d.ts.map +1 -0
- package/dist/internal/gossip/host-mode-handler.js +41 -0
- package/dist/internal/gossip/host-mode-handler.js.map +1 -0
- package/dist/internal/join-encryption-key-bundle.d.ts +10 -0
- package/dist/internal/join-encryption-key-bundle.d.ts.map +1 -0
- package/dist/internal/join-encryption-key-bundle.js +72 -0
- package/dist/internal/join-encryption-key-bundle.js.map +1 -0
- package/dist/internal/knowledge-asset-vm-publish-request.d.ts +31 -0
- package/dist/internal/knowledge-asset-vm-publish-request.d.ts.map +1 -0
- package/dist/internal/knowledge-asset-vm-publish-request.js +91 -0
- package/dist/internal/knowledge-asset-vm-publish-request.js.map +1 -0
- package/dist/internal/lifecycle-sync-policy.d.ts +5 -0
- package/dist/internal/lifecycle-sync-policy.d.ts.map +1 -0
- package/dist/internal/lifecycle-sync-policy.js +12 -0
- package/dist/internal/lifecycle-sync-policy.js.map +1 -0
- package/dist/internal/local-private-member.d.ts +14 -0
- package/dist/internal/local-private-member.d.ts.map +1 -0
- package/dist/internal/local-private-member.js +21 -0
- package/dist/internal/local-private-member.js.map +1 -0
- package/dist/internal/promote/assertion-promote-precommit.d.ts +41 -1
- package/dist/internal/promote/assertion-promote-precommit.d.ts.map +1 -1
- package/dist/internal/promote/assertion-promote-precommit.js +79 -22
- package/dist/internal/promote/assertion-promote-precommit.js.map +1 -1
- package/dist/internal/storage-ack-owned-request.d.ts +16 -0
- package/dist/internal/storage-ack-owned-request.d.ts.map +1 -0
- package/dist/internal/storage-ack-owned-request.js +16 -0
- package/dist/internal/storage-ack-owned-request.js.map +1 -0
- package/dist/internal/vm-reconcile-local-admission-wait.d.ts +96 -0
- package/dist/internal/vm-reconcile-local-admission-wait.d.ts.map +1 -0
- package/dist/internal/vm-reconcile-local-admission-wait.js +226 -0
- package/dist/internal/vm-reconcile-local-admission-wait.js.map +1 -0
- package/dist/internal/vm-reconcile-read-authority.d.ts +27 -0
- package/dist/internal/vm-reconcile-read-authority.d.ts.map +1 -0
- package/dist/internal/vm-reconcile-read-authority.js +33 -0
- package/dist/internal/vm-reconcile-read-authority.js.map +1 -0
- package/dist/internal/vm-reconcile-sweep-admission.d.ts +2 -0
- package/dist/internal/vm-reconcile-sweep-admission.d.ts.map +1 -1
- package/dist/internal/vm-reconcile-sweep.d.ts +16 -4
- package/dist/internal/vm-reconcile-sweep.d.ts.map +1 -1
- package/dist/internal/vm-reconcile-sweep.js +91 -50
- package/dist/internal/vm-reconcile-sweep.js.map +1 -1
- package/dist/internal/workspace-projected-delegatees.d.ts +3 -0
- package/dist/internal/workspace-projected-delegatees.d.ts.map +1 -0
- package/dist/internal/workspace-projected-delegatees.js +34 -0
- package/dist/internal/workspace-projected-delegatees.js.map +1 -0
- package/dist/join-approval-restart-projection.d.ts +14 -0
- package/dist/join-approval-restart-projection.d.ts.map +1 -0
- package/dist/join-approval-restart-projection.js +32 -0
- package/dist/join-approval-restart-projection.js.map +1 -0
- package/dist/keyed-persist-scheduler.d.ts +72 -0
- package/dist/keyed-persist-scheduler.d.ts.map +1 -0
- package/dist/keyed-persist-scheduler.js +140 -0
- package/dist/keyed-persist-scheduler.js.map +1 -0
- package/dist/map-with-concurrency.d.ts +7 -0
- package/dist/map-with-concurrency.d.ts.map +1 -1
- package/dist/map-with-concurrency.js +36 -0
- package/dist/map-with-concurrency.js.map +1 -1
- package/dist/p2p/network-admission-coordinator.d.ts +15 -0
- package/dist/p2p/network-admission-coordinator.d.ts.map +1 -1
- package/dist/p2p/network-admission-coordinator.js +20 -2
- package/dist/p2p/network-admission-coordinator.js.map +1 -1
- package/dist/p2p/peer-connect.d.ts +10 -1
- package/dist/p2p/peer-connect.d.ts.map +1 -1
- package/dist/p2p/peer-connect.js +11 -2
- package/dist/p2p/peer-connect.js.map +1 -1
- package/dist/p2p/peer-selection.d.ts +8 -0
- package/dist/p2p/peer-selection.d.ts.map +1 -1
- package/dist/p2p/peer-selection.js +21 -12
- package/dist/p2p/peer-selection.js.map +1 -1
- package/dist/p2p/protocol-readiness.d.ts +3 -3
- package/dist/p2p/protocol-readiness.d.ts.map +1 -1
- package/dist/p2p/protocol-readiness.js +4 -3
- package/dist/p2p/protocol-readiness.js.map +1 -1
- package/dist/prepare-unscoped-context-graph-read-checks.d.ts.map +1 -1
- package/dist/prepare-unscoped-context-graph-read-checks.js +12 -0
- package/dist/prepare-unscoped-context-graph-read-checks.js.map +1 -1
- package/dist/registered-context-graph-authority.d.ts +19 -0
- package/dist/registered-context-graph-authority.d.ts.map +1 -1
- package/dist/registered-private-empty-vm-attempt-v1.d.ts +34 -0
- package/dist/registered-private-empty-vm-attempt-v1.d.ts.map +1 -0
- package/dist/registered-private-empty-vm-attempt-v1.js +120 -0
- package/dist/registered-private-empty-vm-attempt-v1.js.map +1 -0
- package/dist/reserved-ka-id-allocation.d.ts +12 -0
- package/dist/reserved-ka-id-allocation.d.ts.map +1 -0
- package/dist/reserved-ka-id-allocation.js +25 -0
- package/dist/reserved-ka-id-allocation.js.map +1 -0
- package/dist/rfc64/applied-catalog-authority-transition-v1.d.ts.map +1 -1
- package/dist/rfc64/applied-catalog-authority-transition-v1.js +15 -17
- package/dist/rfc64/applied-catalog-authority-transition-v1.js.map +1 -1
- package/dist/rfc64/authority-rpc-circuit-breaker-v1.d.ts +5 -3
- package/dist/rfc64/authority-rpc-circuit-breaker-v1.d.ts.map +1 -1
- package/dist/rfc64/authority-rpc-circuit-breaker-v1.js +9 -0
- package/dist/rfc64/authority-rpc-circuit-breaker-v1.js.map +1 -1
- package/dist/rfc64/catalog-completion-evidence-v1.d.ts +38 -0
- package/dist/rfc64/catalog-completion-evidence-v1.d.ts.map +1 -0
- package/dist/rfc64/catalog-completion-evidence-v1.js +49 -0
- package/dist/rfc64/catalog-completion-evidence-v1.js.map +1 -0
- package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts +12 -13
- package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-operational-applied-heads-v1.js +17 -52
- package/dist/rfc64/catalog-operational-applied-heads-v1.js.map +1 -1
- package/dist/rfc64/catalog-operational-reads-v1.d.ts +13 -0
- package/dist/rfc64/catalog-operational-reads-v1.d.ts.map +1 -0
- package/dist/rfc64/catalog-operational-reads-v1.js +56 -0
- package/dist/rfc64/catalog-operational-reads-v1.js.map +1 -0
- package/dist/rfc64/catalog-operational-targets-v1.d.ts +55 -0
- package/dist/rfc64/catalog-operational-targets-v1.d.ts.map +1 -0
- package/dist/rfc64/catalog-operational-targets-v1.js +379 -0
- package/dist/rfc64/catalog-operational-targets-v1.js.map +1 -0
- package/dist/rfc64/catalog-repair-diagnostics-v1.d.ts +28 -0
- package/dist/rfc64/catalog-repair-diagnostics-v1.d.ts.map +1 -0
- package/dist/rfc64/catalog-repair-diagnostics-v1.js +93 -0
- package/dist/rfc64/catalog-repair-diagnostics-v1.js.map +1 -0
- package/dist/rfc64/catalog-repair-retry-v1.d.ts +13 -0
- package/dist/rfc64/catalog-repair-retry-v1.d.ts.map +1 -0
- package/dist/rfc64/catalog-repair-retry-v1.js +39 -0
- package/dist/rfc64/catalog-repair-retry-v1.js.map +1 -0
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts +52 -0
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.js +188 -32
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.js.map +1 -1
- package/dist/rfc64/catalog-replay-snapshot-runtime-v1.d.ts +2 -8
- package/dist/rfc64/catalog-replay-snapshot-runtime-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-replay-snapshot-runtime-v1.js +10 -37
- package/dist/rfc64/catalog-replay-snapshot-runtime-v1.js.map +1 -1
- package/dist/rfc64/catalog-rollout-authority-v1.d.ts +13 -0
- package/dist/rfc64/catalog-rollout-authority-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-rollout-authority-v1.js +11 -0
- package/dist/rfc64/catalog-rollout-authority-v1.js.map +1 -1
- package/dist/rfc64/catalog-row-authorship.d.ts +12 -0
- package/dist/rfc64/catalog-row-authorship.d.ts.map +1 -1
- package/dist/rfc64/catalog-row-authorship.js +110 -57
- package/dist/rfc64/catalog-row-authorship.js.map +1 -1
- package/dist/rfc64/inventory-v1/candidate.d.ts +31 -10
- package/dist/rfc64/inventory-v1/candidate.d.ts.map +1 -1
- package/dist/rfc64/inventory-v1/candidate.js +51 -16
- package/dist/rfc64/inventory-v1/candidate.js.map +1 -1
- package/dist/rfc64/inventory-v1/index.d.ts +1 -1
- package/dist/rfc64/inventory-v1/index.d.ts.map +1 -1
- package/dist/rfc64/inventory-v1/index.js +1 -1
- package/dist/rfc64/inventory-v1/index.js.map +1 -1
- package/dist/rfc64/inventory-v1/open.d.ts.map +1 -1
- package/dist/rfc64/inventory-v1/open.js +7 -4
- package/dist/rfc64/inventory-v1/open.js.map +1 -1
- package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.d.ts +3 -1
- package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.d.ts.map +1 -1
- package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.js +15 -0
- package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.js.map +1 -1
- package/dist/rfc64/legacy-swm-boundary-codec-v1.d.ts +25 -0
- package/dist/rfc64/legacy-swm-boundary-codec-v1.d.ts.map +1 -0
- package/dist/rfc64/legacy-swm-boundary-codec-v1.js +127 -0
- package/dist/rfc64/legacy-swm-boundary-codec-v1.js.map +1 -0
- package/dist/rfc64/legacy-swm-boundary-v1.d.ts +12 -0
- package/dist/rfc64/legacy-swm-boundary-v1.d.ts.map +1 -1
- package/dist/rfc64/legacy-swm-boundary-v1.js +83 -144
- package/dist/rfc64/legacy-swm-boundary-v1.js.map +1 -1
- package/dist/rfc64/private-catalog-subscription-readiness-v1.d.ts +33 -0
- package/dist/rfc64/private-catalog-subscription-readiness-v1.d.ts.map +1 -0
- package/dist/rfc64/private-catalog-subscription-readiness-v1.js +97 -0
- package/dist/rfc64/private-catalog-subscription-readiness-v1.js.map +1 -0
- package/dist/rfc64/private-read-roster-v1.d.ts +14 -0
- package/dist/rfc64/private-read-roster-v1.d.ts.map +1 -0
- package/dist/rfc64/private-read-roster-v1.js +57 -0
- package/dist/rfc64/private-read-roster-v1.js.map +1 -0
- package/dist/rfc64/public-catalog-native-receiver-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-native-receiver-v1.js +26 -21
- package/dist/rfc64/public-catalog-native-receiver-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-native-reconciler-v1.d.ts +17 -11
- package/dist/rfc64/public-catalog-native-reconciler-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-native-reconciler-v1.js +10 -8
- package/dist/rfc64/public-catalog-native-reconciler-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-receiver-v1.d.ts +9 -0
- package/dist/rfc64/public-catalog-receiver-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-receiver-v1.js +11 -2
- package/dist/rfc64/public-catalog-receiver-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-service-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-service-v1.js +21 -22
- package/dist/rfc64/public-catalog-service-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-successor-producer-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-successor-producer-v1.js +5 -4
- package/dist/rfc64/public-catalog-successor-producer-v1.js.map +1 -1
- package/dist/rfc64/registered-private-empty-vm-proof-v1.d.ts +20 -0
- package/dist/rfc64/registered-private-empty-vm-proof-v1.d.ts.map +1 -0
- package/dist/rfc64/registered-private-empty-vm-proof-v1.js +26 -0
- package/dist/rfc64/registered-private-empty-vm-proof-v1.js.map +1 -0
- package/dist/rfc64/swm-catalog-durable-asset-resolver-v1.d.ts.map +1 -1
- package/dist/rfc64/swm-catalog-durable-asset-resolver-v1.js +60 -53
- package/dist/rfc64/swm-catalog-durable-asset-resolver-v1.js.map +1 -1
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts +2 -1
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts.map +1 -1
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js +44 -4
- package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js.map +1 -1
- package/dist/rfc64/swm-inventory-shadow-runtime-v1.d.ts +3 -1
- package/dist/rfc64/swm-inventory-shadow-runtime-v1.d.ts.map +1 -1
- package/dist/rfc64/swm-inventory-shadow-runtime-v1.js +34 -0
- package/dist/rfc64/swm-inventory-shadow-runtime-v1.js.map +1 -1
- package/dist/sync/auth/pipe-request-tail.d.ts +5 -1
- package/dist/sync/auth/pipe-request-tail.d.ts.map +1 -1
- package/dist/sync/auth/pipe-request-tail.js +13 -3
- package/dist/sync/auth/pipe-request-tail.js.map +1 -1
- package/dist/sync/auth/request-build.d.ts +3 -0
- package/dist/sync/auth/request-build.d.ts.map +1 -1
- package/dist/sync/auth/request-build.js +11 -2
- package/dist/sync/auth/request-build.js.map +1 -1
- package/dist/sync/backpressure.d.ts +27 -16
- package/dist/sync/backpressure.d.ts.map +1 -1
- package/dist/sync/backpressure.js +66 -40
- package/dist/sync/backpressure.js.map +1 -1
- package/dist/sync/catchup-policy.d.ts +2 -0
- package/dist/sync/catchup-policy.d.ts.map +1 -1
- package/dist/sync/catchup-policy.js +2 -0
- package/dist/sync/catchup-policy.js.map +1 -1
- package/dist/sync/exact-asset-fetch.d.ts +22 -0
- package/dist/sync/exact-asset-fetch.d.ts.map +1 -1
- package/dist/sync/exact-asset-fetch.js +30 -3
- package/dist/sync/exact-asset-fetch.js.map +1 -1
- package/dist/sync/exact-assets.d.ts +7 -5
- package/dist/sync/exact-assets.d.ts.map +1 -1
- package/dist/sync/exact-assets.js +13 -8
- package/dist/sync/exact-assets.js.map +1 -1
- package/dist/sync/exact-batch-observation.d.ts +3 -0
- package/dist/sync/exact-batch-observation.d.ts.map +1 -0
- package/dist/sync/exact-batch-observation.js +13 -0
- package/dist/sync/exact-batch-observation.js.map +1 -0
- package/dist/sync/exact-batch-stream-capability.d.ts +24 -0
- package/dist/sync/exact-batch-stream-capability.d.ts.map +1 -0
- package/dist/sync/exact-batch-stream-capability.js +88 -0
- package/dist/sync/exact-batch-stream-capability.js.map +1 -0
- package/dist/sync/exact-batch-stream-contract.d.ts +78 -0
- package/dist/sync/exact-batch-stream-contract.d.ts.map +1 -0
- package/dist/sync/exact-batch-stream-contract.js +206 -0
- package/dist/sync/exact-batch-stream-contract.js.map +1 -0
- package/dist/sync/on-connect/sync-on-connect.d.ts +1 -1
- package/dist/sync/on-connect/sync-on-connect.d.ts.map +1 -1
- package/dist/sync/on-connect/sync-on-connect.js +3 -3
- package/dist/sync/on-connect/sync-on-connect.js.map +1 -1
- package/dist/sync/on-demand-agents-phonebook.d.ts +162 -0
- package/dist/sync/on-demand-agents-phonebook.d.ts.map +1 -0
- package/dist/sync/on-demand-agents-phonebook.js +571 -0
- package/dist/sync/on-demand-agents-phonebook.js.map +1 -0
- package/dist/sync/peer-connection.d.ts.map +1 -1
- package/dist/sync/peer-connection.js +11 -2
- package/dist/sync/peer-connection.js.map +1 -1
- package/dist/sync/priority-admission-queue.d.ts +17 -0
- package/dist/sync/priority-admission-queue.d.ts.map +1 -1
- package/dist/sync/priority-admission-queue.js +58 -37
- package/dist/sync/priority-admission-queue.js.map +1 -1
- package/dist/sync/requester/admission-boundary.d.ts +12 -0
- package/dist/sync/requester/admission-boundary.d.ts.map +1 -0
- package/dist/sync/requester/admission-boundary.js +22 -0
- package/dist/sync/requester/admission-boundary.js.map +1 -0
- package/dist/sync/requester/durable-sync.d.ts +2 -1
- package/dist/sync/requester/durable-sync.d.ts.map +1 -1
- package/dist/sync/requester/durable-sync.js +3 -188
- package/dist/sync/requester/durable-sync.js.map +1 -1
- package/dist/sync/requester/exact-batch-stream-driver.d.ts +83 -0
- package/dist/sync/requester/exact-batch-stream-driver.d.ts.map +1 -0
- package/dist/sync/requester/exact-batch-stream-driver.js +299 -0
- package/dist/sync/requester/exact-batch-stream-driver.js.map +1 -0
- package/dist/sync/requester/exact-batch-stream.d.ts +72 -0
- package/dist/sync/requester/exact-batch-stream.d.ts.map +1 -0
- package/dist/sync/requester/exact-batch-stream.js +267 -0
- package/dist/sync/requester/exact-batch-stream.js.map +1 -0
- package/dist/sync/requester/exact-recovery-transport.d.ts +19 -0
- package/dist/sync/requester/exact-recovery-transport.d.ts.map +1 -0
- package/dist/sync/requester/exact-recovery-transport.js +3 -0
- package/dist/sync/requester/exact-recovery-transport.js.map +1 -0
- package/dist/sync/requester/finalized-swm-twin-reconciliation.js +12 -3
- package/dist/sync/requester/finalized-swm-twin-reconciliation.js.map +1 -1
- package/dist/sync/requester/graph-scoped-materialization.d.ts.map +1 -1
- package/dist/sync/requester/graph-scoped-materialization.js +61 -27
- package/dist/sync/requester/graph-scoped-materialization.js.map +1 -1
- package/dist/sync/requester/page-fetch.d.ts +7 -0
- package/dist/sync/requester/page-fetch.d.ts.map +1 -1
- package/dist/sync/requester/page-fetch.js +103 -49
- package/dist/sync/requester/page-fetch.js.map +1 -1
- package/dist/sync/requester/shared-memory-sync.d.ts +10 -5
- package/dist/sync/requester/shared-memory-sync.d.ts.map +1 -1
- package/dist/sync/requester/shared-memory-sync.js +149 -150
- package/dist/sync/requester/shared-memory-sync.js.map +1 -1
- package/dist/sync/requester/swm-materialization-memo.d.ts +12 -0
- package/dist/sync/requester/swm-materialization-memo.d.ts.map +1 -0
- package/dist/sync/requester/swm-materialization-memo.js +54 -0
- package/dist/sync/requester/swm-materialization-memo.js.map +1 -0
- package/dist/sync/requester/swm-recovery.d.ts +3 -29
- package/dist/sync/requester/swm-recovery.d.ts.map +1 -1
- package/dist/sync/requester/swm-recovery.js +11 -10
- package/dist/sync/requester/swm-recovery.js.map +1 -1
- package/dist/sync/requester/swm-snapshot-materializer.d.ts.map +1 -1
- package/dist/sync/requester/swm-snapshot-materializer.js +18 -0
- package/dist/sync/requester/swm-snapshot-materializer.js.map +1 -1
- package/dist/sync/requester/swm-target-executor.d.ts +6 -0
- package/dist/sync/requester/swm-target-executor.d.ts.map +1 -1
- package/dist/sync/requester/swm-target-executor.js +24 -3
- package/dist/sync/requester/swm-target-executor.js.map +1 -1
- package/dist/sync/requester/verified-asset-preparation.d.ts +9 -0
- package/dist/sync/requester/verified-asset-preparation.d.ts.map +1 -0
- package/dist/sync/requester/verified-asset-preparation.js +190 -0
- package/dist/sync/requester/verified-asset-preparation.js.map +1 -0
- package/dist/sync/responder/asset-metadata.d.ts +18 -0
- package/dist/sync/responder/asset-metadata.d.ts.map +1 -0
- package/dist/sync/responder/asset-metadata.js +27 -0
- package/dist/sync/responder/asset-metadata.js.map +1 -0
- package/dist/sync/responder/durable-data-request-policy.d.ts +2 -16
- package/dist/sync/responder/durable-data-request-policy.d.ts.map +1 -1
- package/dist/sync/responder/durable-data-request-policy.js +1 -31
- package/dist/sync/responder/durable-data-request-policy.js.map +1 -1
- package/dist/sync/responder/exact-asset-export-cache.d.ts +89 -0
- package/dist/sync/responder/exact-asset-export-cache.d.ts.map +1 -0
- package/dist/sync/responder/exact-asset-export-cache.js +550 -0
- package/dist/sync/responder/exact-asset-export-cache.js.map +1 -0
- package/dist/sync/responder/exact-batch-stream.d.ts +47 -0
- package/dist/sync/responder/exact-batch-stream.d.ts.map +1 -0
- package/dist/sync/responder/exact-batch-stream.js +151 -0
- package/dist/sync/responder/exact-batch-stream.js.map +1 -0
- package/dist/sync/responder/exact-data-session.d.ts +67 -0
- package/dist/sync/responder/exact-data-session.d.ts.map +1 -0
- package/dist/sync/responder/exact-data-session.js +130 -0
- package/dist/sync/responder/exact-data-session.js.map +1 -0
- package/dist/sync/responder/exact-graph-cursor-filter.d.ts +9 -0
- package/dist/sync/responder/exact-graph-cursor-filter.d.ts.map +1 -0
- package/dist/sync/responder/exact-graph-cursor-filter.js +101 -0
- package/dist/sync/responder/exact-graph-cursor-filter.js.map +1 -0
- package/dist/sync/responder/exact-graph-reader.d.ts +95 -0
- package/dist/sync/responder/exact-graph-reader.d.ts.map +1 -0
- package/dist/sync/responder/exact-graph-reader.js +623 -0
- package/dist/sync/responder/exact-graph-reader.js.map +1 -0
- package/dist/sync/responder/exact-page-reader.d.ts +37 -0
- package/dist/sync/responder/exact-page-reader.d.ts.map +1 -0
- package/dist/sync/responder/exact-page-reader.js +130 -0
- package/dist/sync/responder/exact-page-reader.js.map +1 -0
- package/dist/sync/responder/graph-plan.d.ts +19 -85
- package/dist/sync/responder/graph-plan.d.ts.map +1 -1
- package/dist/sync/responder/graph-plan.js +51 -988
- package/dist/sync/responder/graph-plan.js.map +1 -1
- package/dist/sync/responder/page-framing-policy.d.ts +31 -0
- package/dist/sync/responder/page-framing-policy.d.ts.map +1 -0
- package/dist/sync/responder/page-framing-policy.js +41 -0
- package/dist/sync/responder/page-framing-policy.js.map +1 -0
- package/dist/sync/responder/responder-row-page.d.ts +85 -0
- package/dist/sync/responder/responder-row-page.d.ts.map +1 -0
- package/dist/sync/responder/responder-row-page.js +181 -0
- package/dist/sync/responder/responder-row-page.js.map +1 -0
- package/dist/sync/responder/row-serialization.d.ts +34 -0
- package/dist/sync/responder/row-serialization.d.ts.map +1 -0
- package/dist/sync/responder/row-serialization.js +69 -0
- package/dist/sync/responder/row-serialization.js.map +1 -0
- package/dist/sync/responder/session-plan-memo.d.ts +20 -0
- package/dist/sync/responder/session-plan-memo.d.ts.map +1 -0
- package/dist/sync/responder/session-plan-memo.js +135 -0
- package/dist/sync/responder/session-plan-memo.js.map +1 -0
- package/dist/sync/responder/sync-handler.d.ts +26 -1
- package/dist/sync/responder/sync-handler.d.ts.map +1 -1
- package/dist/sync/responder/sync-handler.js +107 -58
- package/dist/sync/responder/sync-handler.js.map +1 -1
- package/dist/sync/shared-memory-completion.d.ts +30 -0
- package/dist/sync/shared-memory-completion.d.ts.map +1 -1
- package/dist/sync/shared-memory-completion.js +13 -0
- package/dist/sync/shared-memory-completion.js.map +1 -1
- package/dist/sync/system-context-graph-policy.d.ts +10 -0
- package/dist/sync/system-context-graph-policy.d.ts.map +1 -1
- package/dist/sync/system-context-graph-policy.js +11 -0
- package/dist/sync/system-context-graph-policy.js.map +1 -1
- package/dist/sync/wire-compression.d.ts +47 -0
- package/dist/sync/wire-compression.d.ts.map +1 -0
- package/dist/sync/wire-compression.js +111 -0
- package/dist/sync/wire-compression.js.map +1 -0
- package/dist/unscoped-query-consistency.d.ts +12 -0
- package/dist/unscoped-query-consistency.d.ts.map +1 -1
- package/dist/unscoped-query-consistency.js +17 -1
- package/dist/unscoped-query-consistency.js.map +1 -1
- package/dist/vm-promotion-audit.d.ts +2 -2
- package/dist/vm-promotion-audit.d.ts.map +1 -1
- package/dist/vm-promotion-audit.js +26 -9
- package/dist/vm-promotion-audit.js.map +1 -1
- package/dist/vm-publish-snapshot-preflight.d.ts +13 -0
- package/dist/vm-publish-snapshot-preflight.d.ts.map +1 -0
- package/dist/vm-publish-snapshot-preflight.js +94 -0
- package/dist/vm-publish-snapshot-preflight.js.map +1 -0
- package/dist/vm-reconcile-dispatcher.d.ts +42 -1
- package/dist/vm-reconcile-dispatcher.d.ts.map +1 -1
- package/dist/vm-reconcile-dispatcher.js +103 -4
- package/dist/vm-reconcile-dispatcher.js.map +1 -1
- package/dist/vm-reconcile-peer-topology.d.ts +7 -9
- package/dist/vm-reconcile-peer-topology.d.ts.map +1 -1
- package/dist/vm-reconcile-peer-topology.js +1 -37
- package/dist/vm-reconcile-peer-topology.js.map +1 -1
- package/dist/vm-recovery-candidate-order.d.ts +16 -0
- package/dist/vm-recovery-candidate-order.d.ts.map +1 -0
- package/dist/vm-recovery-candidate-order.js +24 -0
- package/dist/vm-recovery-candidate-order.js.map +1 -0
- package/dist/vm-recovery-core-transport-preference.d.ts +69 -0
- package/dist/vm-recovery-core-transport-preference.d.ts.map +1 -0
- package/dist/vm-recovery-core-transport-preference.js +131 -0
- package/dist/vm-recovery-core-transport-preference.js.map +1 -0
- package/dist/vm-recovery-experiment-policy.d.ts +24 -0
- package/dist/vm-recovery-experiment-policy.d.ts.map +1 -0
- package/dist/vm-recovery-experiment-policy.js +18 -0
- package/dist/vm-recovery-experiment-policy.js.map +1 -0
- package/dist/vm-recovery-footprint.d.ts +54 -0
- package/dist/vm-recovery-footprint.d.ts.map +1 -1
- package/dist/vm-recovery-footprint.js +88 -24
- package/dist/vm-recovery-footprint.js.map +1 -1
- package/dist/vm-recovery-microbatch.d.ts +2 -0
- package/dist/vm-recovery-microbatch.d.ts.map +1 -1
- package/dist/vm-recovery-microbatch.js +7 -3
- package/dist/vm-recovery-microbatch.js.map +1 -1
- package/dist/vm-recovery-pass-authority.d.ts +84 -0
- package/dist/vm-recovery-pass-authority.d.ts.map +1 -0
- package/dist/vm-recovery-pass-authority.js +126 -0
- package/dist/vm-recovery-pass-authority.js.map +1 -0
- package/dist/vm-recovery-phase-timing.d.ts +75 -0
- package/dist/vm-recovery-phase-timing.d.ts.map +1 -0
- package/dist/vm-recovery-phase-timing.js +236 -0
- package/dist/vm-recovery-phase-timing.js.map +1 -0
- package/dist/vm-recovery-preparation.d.ts +143 -0
- package/dist/vm-recovery-preparation.d.ts.map +1 -0
- package/dist/vm-recovery-preparation.js +433 -0
- package/dist/vm-recovery-preparation.js.map +1 -0
- package/dist/vm-recovery-provider-policy.d.ts +13 -1
- package/dist/vm-recovery-provider-policy.d.ts.map +1 -1
- package/dist/vm-recovery-provider-policy.js +37 -5
- package/dist/vm-recovery-provider-policy.js.map +1 -1
- package/dist/vm-recovery-stream-profile.d.ts +15 -0
- package/dist/vm-recovery-stream-profile.d.ts.map +1 -0
- package/dist/vm-recovery-stream-profile.js +53 -0
- package/dist/vm-recovery-stream-profile.js.map +1 -0
- package/dist/vm-recovery-stream-setback-policy.d.ts +54 -0
- package/dist/vm-recovery-stream-setback-policy.d.ts.map +1 -0
- package/dist/vm-recovery-stream-setback-policy.js +85 -0
- package/dist/vm-recovery-stream-setback-policy.js.map +1 -0
- package/dist/vm-recovery-timing-observer.d.ts +27 -0
- package/dist/vm-recovery-timing-observer.d.ts.map +1 -0
- package/dist/vm-recovery-timing-observer.js +49 -0
- package/dist/vm-recovery-timing-observer.js.map +1 -0
- package/dist/vm-recovery-transport-budget-policy.d.ts +32 -0
- package/dist/vm-recovery-transport-budget-policy.d.ts.map +1 -0
- package/dist/vm-recovery-transport-budget-policy.js +55 -0
- package/dist/vm-recovery-transport-budget-policy.js.map +1 -0
- package/dist/vm-recovery-transport-plan.d.ts +83 -0
- package/dist/vm-recovery-transport-plan.d.ts.map +1 -0
- package/dist/vm-recovery-transport-plan.js +117 -0
- package/dist/vm-recovery-transport-plan.js.map +1 -0
- package/dist/vm-refresh.d.ts +138 -0
- package/dist/vm-refresh.d.ts.map +1 -0
- package/dist/vm-refresh.js +201 -0
- package/dist/vm-refresh.js.map +1 -0
- package/package.json +19 -9
- package/dist/finalization-annotations.d.ts +0 -5
- package/dist/finalization-annotations.d.ts.map +0 -1
- package/dist/finalization-annotations.js +0 -6
- package/dist/finalization-annotations.js.map +0 -1
- package/dist/swm-ka-bound.d.ts +0 -21
- package/dist/swm-ka-bound.d.ts.map +0 -1
- package/dist/swm-ka-bound.js +0 -36
- package/dist/swm-ka-bound.js.map +0 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_BYTES_ESTIMATE, SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_ROWS, SYNC_RESPONDER_SNAPSHOT_BUILD_PAGE_ROWS, isSyncRowSnapshotPagingRequiredError, } from './snapshot-cache.js';
|
|
2
|
+
import { SyncRowSnapshotBudgetError } from './snapshot-budget.js';
|
|
3
|
+
import { estimateStringRowHeapBytes } from '../memory-telemetry.js';
|
|
4
|
+
import { metaSubjectKey } from './row-serialization.js';
|
|
5
|
+
const COMPLETED_SYNC_RESPONDER_SESSION_GRACE_MS = 30_000;
|
|
6
|
+
/**
|
|
7
|
+
* Session-plan getter shared by the plan-backed lanes (exact-graph and TTL SWM
|
|
8
|
+
* meta), owning the one lifecycle both must agree on:
|
|
9
|
+
*
|
|
10
|
+
* - the explicit session refresh is consumed exactly ONCE, so when a snapshot
|
|
11
|
+
* build crosses its budget, the immediate page-zero fallback reuses the
|
|
12
|
+
* just-built plan instead of rebuilding (and re-counting) it against a
|
|
13
|
+
* moving store;
|
|
14
|
+
* - offset>0 REQUIRES the existing plan — silently rebuilding against moved
|
|
15
|
+
* data would make the numeric offset skip or duplicate rows;
|
|
16
|
+
* - memo expiry becomes the lane's session-expired error.
|
|
17
|
+
*
|
|
18
|
+
* The SWM data lane intentionally does not use this helper: it has no snapshot
|
|
19
|
+
* lane, so a single plan access per page means per-call refresh semantics are
|
|
20
|
+
* equivalent and simpler there.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Sessionless callers (no `syncSessionId` => no memo cache key) rebuild the
|
|
24
|
+
* plan on EVERY page: per-page discovery + chunked GROUP BY cost (bounded, and
|
|
25
|
+
* still far cheaper than the deleted global-sort query), no `requireExisting`
|
|
26
|
+
* protection, and a fresh digest sidecar per plan object. Offset>0 pages
|
|
27
|
+
* against a mutating store can therefore skip or duplicate rows for such
|
|
28
|
+
* requesters — sessionless TTL paging is BEST-EFFORT, and the per-subject
|
|
29
|
+
* digest guard does NOT cover it. This matches the exposure of the old OFFSET
|
|
30
|
+
* lane (not a regression); requester-side verification still gates admission.
|
|
31
|
+
*/
|
|
32
|
+
export function createSessionPlanGetter(memo, cacheKey, initialRefreshPending, loadPlan, expiredMessage) {
|
|
33
|
+
let planRefreshPending = initialRefreshPending;
|
|
34
|
+
return async (pageOffset, pageSignal) => {
|
|
35
|
+
const refreshPlan = pageOffset === 0 && planRefreshPending;
|
|
36
|
+
if (refreshPlan)
|
|
37
|
+
planRefreshPending = false;
|
|
38
|
+
const plan = memo && cacheKey
|
|
39
|
+
? await memo.get(cacheKey, () => loadPlan(pageSignal), {
|
|
40
|
+
refresh: refreshPlan,
|
|
41
|
+
requireExisting: pageOffset > 0,
|
|
42
|
+
signal: pageSignal,
|
|
43
|
+
})
|
|
44
|
+
: await loadPlan(pageSignal);
|
|
45
|
+
if (!plan)
|
|
46
|
+
throw new Error(expiredMessage);
|
|
47
|
+
return plan;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async function loadStorePagedSnapshot(cache, loadPage) {
|
|
51
|
+
const limits = cache.memo.snapshotLoadLimits ?? {
|
|
52
|
+
maxRows: SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_ROWS,
|
|
53
|
+
maxBytesEstimate: SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_BYTES_ESTIMATE,
|
|
54
|
+
pageRows: SYNC_RESPONDER_SNAPSHOT_BUILD_PAGE_ROWS,
|
|
55
|
+
};
|
|
56
|
+
const rows = [];
|
|
57
|
+
let bytesEstimate = 0;
|
|
58
|
+
let offset = 0;
|
|
59
|
+
// Read at most one row beyond the configured row cap. Tiny-budget tests and
|
|
60
|
+
// operators therefore never receive a 500-row temporary page merely to learn
|
|
61
|
+
// that a one-row snapshot is oversized.
|
|
62
|
+
const pageRows = Math.max(1, Math.min(Math.floor(limits.pageRows), Math.floor(limits.maxRows) + 1));
|
|
63
|
+
while (true) {
|
|
64
|
+
// The shared snapshot load is owner-independent: an individual request
|
|
65
|
+
// abort must not cancel a load used by coalesced waiters.
|
|
66
|
+
const page = await loadPage(offset, pageRows, undefined);
|
|
67
|
+
for (const row of page) {
|
|
68
|
+
const nextRows = rows.length + 1;
|
|
69
|
+
const nextBytes = bytesEstimate + estimateStringRowHeapBytes(row.s, row.p, row.o, row.g);
|
|
70
|
+
if (nextRows > limits.maxRows) {
|
|
71
|
+
throw new SyncRowSnapshotBudgetError({
|
|
72
|
+
key: cache.key,
|
|
73
|
+
reason: 'snapshot_rows',
|
|
74
|
+
rows: nextRows,
|
|
75
|
+
bytesEstimate: nextBytes,
|
|
76
|
+
limit: limits.maxRows,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (nextBytes > limits.maxBytesEstimate) {
|
|
80
|
+
throw new SyncRowSnapshotBudgetError({
|
|
81
|
+
key: cache.key,
|
|
82
|
+
reason: 'snapshot_bytes',
|
|
83
|
+
rows: nextRows,
|
|
84
|
+
bytesEstimate: nextBytes,
|
|
85
|
+
limit: limits.maxBytesEstimate,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
rows.push(row);
|
|
89
|
+
bytesEstimate = nextBytes;
|
|
90
|
+
}
|
|
91
|
+
if (page.length < pageRows)
|
|
92
|
+
return rows;
|
|
93
|
+
offset += page.length;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export async function readResponderRowsPage(cache, loadStoreBoundedPage, offset, limit, signal, options) {
|
|
97
|
+
const loadSnapshot = options?.loadSnapshot;
|
|
98
|
+
const subjectAtomic = options?.subjectAtomic ?? false;
|
|
99
|
+
const safeOffset = Math.max(0, Math.floor(offset));
|
|
100
|
+
const safeLimit = Math.max(0, Math.floor(limit));
|
|
101
|
+
if (safeLimit === 0)
|
|
102
|
+
return [];
|
|
103
|
+
// No session snapshot: the store-paged loader itself enforces subject
|
|
104
|
+
// atomicity where required (durable meta passes a subject-atomic loader), so
|
|
105
|
+
// this path needs no extra handling.
|
|
106
|
+
if (!cache)
|
|
107
|
+
return loadStoreBoundedPage(safeOffset, safeLimit, signal);
|
|
108
|
+
try {
|
|
109
|
+
return await readCachedRowsPage(cache, loadSnapshot ?? (() => loadStorePagedSnapshot(cache, loadStoreBoundedPage)), safeOffset, safeLimit, signal, subjectAtomic);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
if (!isSyncRowSnapshotPagingRequiredError(error))
|
|
113
|
+
throw error;
|
|
114
|
+
return loadStoreBoundedPage(safeOffset, safeLimit, signal);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
async function readCachedRowsPage(cache, loadRows, offset, limit, signal, subjectAtomic = false) {
|
|
118
|
+
const safeOffset = Math.max(0, Math.floor(offset));
|
|
119
|
+
const safeLimit = Math.max(0, Math.floor(limit));
|
|
120
|
+
if (safeLimit === 0)
|
|
121
|
+
return [];
|
|
122
|
+
const rows = await cache.memo.get(cache.key, loadRows, {
|
|
123
|
+
refresh: cache.refresh,
|
|
124
|
+
refreshGeneration: cache.refreshGeneration,
|
|
125
|
+
// No prefix has been consumed at offset zero, so an entry evicted under
|
|
126
|
+
// responder memory pressure can be rebuilt without mixing snapshots.
|
|
127
|
+
refreshExpired: safeOffset === 0,
|
|
128
|
+
requireExisting: safeOffset > 0,
|
|
129
|
+
signal,
|
|
130
|
+
});
|
|
131
|
+
if (rows == null) {
|
|
132
|
+
throw new Error(cache.expiredMessage ?? 'Sync session snapshot expired before page completion');
|
|
133
|
+
}
|
|
134
|
+
// `rows` is an immutable snapshot. Slice it directly so serving a 500-row
|
|
135
|
+
// page allocates only that page's backing array, never a shallow copy of the
|
|
136
|
+
// complete snapshot first.
|
|
137
|
+
let pageEnd = Math.min(safeOffset + safeLimit, rows.length);
|
|
138
|
+
// Subject-atomic durable-meta lane (#1788): if the requested window ends
|
|
139
|
+
// mid-subject, EXTEND it forward until the subject changes (or the snapshot
|
|
140
|
+
// ends) so a graph-scoped seal is never split across a page — and therefore
|
|
141
|
+
// never across a sync round. Extending (never trimming) keeps a non-final
|
|
142
|
+
// page `>= safeLimit`, so it never trips the requester's empty-page EOF nor
|
|
143
|
+
// the release-on-short-page path below. Reads only in-page indices plus a
|
|
144
|
+
// bounded one-subject lookahead — never the whole snapshot. `_meta` subjects
|
|
145
|
+
// are small (a seal is 14 quads; KA descriptors ~10; membership/activity rows
|
|
146
|
+
// bounded), so the extension is O(one subject) and negligible against the
|
|
147
|
+
// #1868 64k-row meta snapshot ceiling; a pathologically large subject is
|
|
148
|
+
// still emitted whole rather than truncated, with the transport frame limit
|
|
149
|
+
// as the final guard.
|
|
150
|
+
if (subjectAtomic && pageEnd > safeOffset && pageEnd < rows.length) {
|
|
151
|
+
const trailingKey = metaSubjectKey(rows[pageEnd - 1]);
|
|
152
|
+
while (pageEnd < rows.length && metaSubjectKey(rows[pageEnd]) === trailingKey) {
|
|
153
|
+
pageEnd += 1;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const page = rows.slice(safeOffset, pageEnd);
|
|
157
|
+
if (page.length === 0 || (cache.releaseOnShortPage !== false && page.length < safeLimit)) {
|
|
158
|
+
cache.memo.release(cache.key, { graceMs: COMPLETED_SYNC_RESPONDER_SESSION_GRACE_MS });
|
|
159
|
+
}
|
|
160
|
+
return page;
|
|
161
|
+
}
|
|
162
|
+
function asAbortError(reason) {
|
|
163
|
+
return reason instanceof Error ? reason : new Error(String(reason ?? 'aborted'));
|
|
164
|
+
}
|
|
165
|
+
export function throwIfAborted(signal) {
|
|
166
|
+
if (signal?.aborted)
|
|
167
|
+
throw asAbortError(signal.reason);
|
|
168
|
+
}
|
|
169
|
+
export function raceAgainstAbort(work, signal) {
|
|
170
|
+
if (!signal)
|
|
171
|
+
return work;
|
|
172
|
+
throwIfAborted(signal);
|
|
173
|
+
return new Promise((resolve, reject) => {
|
|
174
|
+
const onAbort = () => reject(asAbortError(signal.reason));
|
|
175
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
176
|
+
work.then(resolve, reject).finally(() => {
|
|
177
|
+
signal.removeEventListener('abort', onAbort);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=responder-row-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responder-row-page.js","sourceRoot":"","sources":["../../../src/sync/responder/responder-row-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SyncRow } from './snapshot-cache.js';
|
|
2
|
+
export declare function serializeResponderRow(row: SyncRow): string;
|
|
3
|
+
export declare function serializeResponderRows(rows: readonly SyncRow[]): string;
|
|
4
|
+
/**
|
|
5
|
+
* Serialized (N-Quads, UTF-8) wire byte length of one responder row — the ONE
|
|
6
|
+
* byte model for response-frame budgets, shared by the byte-budget serializer
|
|
7
|
+
* and the subject-atomic extend so both reason about `maxResponseBytes` the same
|
|
8
|
+
* way (#1916). This is distinct from `estimateStringRowHeapBytes`, which
|
|
9
|
+
* estimates retained HEAP size for snapshot memory budgets only.
|
|
10
|
+
*/
|
|
11
|
+
export declare function serializedResponderRowByteLength(row: SyncRow): number;
|
|
12
|
+
export declare function formatTerm(term: string): string;
|
|
13
|
+
export declare function compareRows(a: SyncRow, b: SyncRow): number;
|
|
14
|
+
/**
|
|
15
|
+
* The `(g, s)` identity a durable `_meta` row belongs to. Durable meta is
|
|
16
|
+
* ordered by `(g, s, p, o)`; a graph-scoped assertion seal is ONE `(g, s)`
|
|
17
|
+
* subject whose rows — including the batch-local control field
|
|
18
|
+
* `dkg:assertionVersion` — MUST cross the wire together in a single round, else
|
|
19
|
+
* the receiver's per-round completeness check drops the control fields
|
|
20
|
+
* permanently (#1788). Used to snap durable-meta page boundaries to subject
|
|
21
|
+
* boundaries. The `\n` separator cannot occur inside an IRI, so distinct
|
|
22
|
+
* subjects never collide.
|
|
23
|
+
*/
|
|
24
|
+
export declare function metaSubjectKey(row: SyncRow): string;
|
|
25
|
+
/**
|
|
26
|
+
* Serialize the largest prefix that fits the negotiated response target.
|
|
27
|
+
* Pagination advances by the number of N-Quads actually parsed by the
|
|
28
|
+
* requester, so returning a prefix is cursor-safe. Always emit one row when a
|
|
29
|
+
* non-empty input contains an unexpectedly oversized row; that guarantees
|
|
30
|
+
* forward progress and leaves the transport's existing hard frame limit as the
|
|
31
|
+
* final safety boundary for that pathological single row.
|
|
32
|
+
*/
|
|
33
|
+
export declare function serializeResponderRowsWithinByteBudget(rows: readonly SyncRow[], maxBytes: number): string;
|
|
34
|
+
//# sourceMappingURL=row-serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-serialization.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/row-serialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAEvE;AAID;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAO1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { assertSafeIri, compareCodePoint } from '@origintrail-official/dkg-core';
|
|
2
|
+
export function serializeResponderRow(row) {
|
|
3
|
+
return `${formatTerm(row.s)} <${assertSafeIri(row.p)}> ${formatTerm(row.o)} <${assertSafeIri(row.g)}> .`;
|
|
4
|
+
}
|
|
5
|
+
export function serializeResponderRows(rows) {
|
|
6
|
+
return rows.map(serializeResponderRow).join('\n');
|
|
7
|
+
}
|
|
8
|
+
const RESPONDER_ROW_ENCODER = new TextEncoder();
|
|
9
|
+
/**
|
|
10
|
+
* Serialized (N-Quads, UTF-8) wire byte length of one responder row — the ONE
|
|
11
|
+
* byte model for response-frame budgets, shared by the byte-budget serializer
|
|
12
|
+
* and the subject-atomic extend so both reason about `maxResponseBytes` the same
|
|
13
|
+
* way (#1916). This is distinct from `estimateStringRowHeapBytes`, which
|
|
14
|
+
* estimates retained HEAP size for snapshot memory budgets only.
|
|
15
|
+
*/
|
|
16
|
+
export function serializedResponderRowByteLength(row) {
|
|
17
|
+
return RESPONDER_ROW_ENCODER.encode(serializeResponderRow(row)).byteLength;
|
|
18
|
+
}
|
|
19
|
+
export function formatTerm(term) {
|
|
20
|
+
if (term.startsWith('"') || term.startsWith('_:'))
|
|
21
|
+
return term;
|
|
22
|
+
if (term.startsWith('<') && term.endsWith('>'))
|
|
23
|
+
return term;
|
|
24
|
+
return `<${assertSafeIri(term)}>`;
|
|
25
|
+
}
|
|
26
|
+
export function compareRows(a, b) {
|
|
27
|
+
return (compareCodePoint(a.g, b.g) ||
|
|
28
|
+
compareCodePoint(a.s, b.s) ||
|
|
29
|
+
compareCodePoint(a.p, b.p) ||
|
|
30
|
+
compareCodePoint(a.o, b.o));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The `(g, s)` identity a durable `_meta` row belongs to. Durable meta is
|
|
34
|
+
* ordered by `(g, s, p, o)`; a graph-scoped assertion seal is ONE `(g, s)`
|
|
35
|
+
* subject whose rows — including the batch-local control field
|
|
36
|
+
* `dkg:assertionVersion` — MUST cross the wire together in a single round, else
|
|
37
|
+
* the receiver's per-round completeness check drops the control fields
|
|
38
|
+
* permanently (#1788). Used to snap durable-meta page boundaries to subject
|
|
39
|
+
* boundaries. The `\n` separator cannot occur inside an IRI, so distinct
|
|
40
|
+
* subjects never collide.
|
|
41
|
+
*/
|
|
42
|
+
export function metaSubjectKey(row) {
|
|
43
|
+
return `${row.g}\n${row.s}`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Serialize the largest prefix that fits the negotiated response target.
|
|
47
|
+
* Pagination advances by the number of N-Quads actually parsed by the
|
|
48
|
+
* requester, so returning a prefix is cursor-safe. Always emit one row when a
|
|
49
|
+
* non-empty input contains an unexpectedly oversized row; that guarantees
|
|
50
|
+
* forward progress and leaves the transport's existing hard frame limit as the
|
|
51
|
+
* final safety boundary for that pathological single row.
|
|
52
|
+
*/
|
|
53
|
+
export function serializeResponderRowsWithinByteBudget(rows, maxBytes) {
|
|
54
|
+
const safeMaxBytes = Math.max(1, Math.floor(maxBytes));
|
|
55
|
+
const page = [];
|
|
56
|
+
let bytes = 0;
|
|
57
|
+
for (const row of rows) {
|
|
58
|
+
const serialized = serializeResponderRow(row);
|
|
59
|
+
const rowBytes = serializedResponderRowByteLength(row) + (page.length > 0 ? 1 : 0);
|
|
60
|
+
if (page.length > 0 && bytes + rowBytes > safeMaxBytes)
|
|
61
|
+
break;
|
|
62
|
+
page.push(serialized);
|
|
63
|
+
bytes += rowBytes;
|
|
64
|
+
if (bytes >= safeMaxBytes)
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
return page.join('\n');
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=row-serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-serialization.js","sourceRoot":"","sources":["../../../src/sync/responder/row-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGjF,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAwB;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,WAAW,EAAE,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAY;IAC3D,OAAO,qBAAqB,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,CAAU;IAChD,OAAO,CACL,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sCAAsC,CACpD,IAAwB,EACxB,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,GAAG,YAAY;YAAE,MAAM;QAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,IAAI,QAAQ,CAAC;QAClB,IAAI,KAAK,IAAI,YAAY;YAAE,MAAM;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SyncResponderSnapshotBudget } from './snapshot-budget.js';
|
|
2
|
+
import { type ExactGraphPagePlan } from './exact-graph-reader.js';
|
|
3
|
+
export interface SessionPlanMemo<T> {
|
|
4
|
+
get(key: string, load: () => Promise<T>, options?: {
|
|
5
|
+
refresh?: boolean;
|
|
6
|
+
requireExisting?: boolean;
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
}): Promise<T | null>;
|
|
9
|
+
}
|
|
10
|
+
interface SessionPlanBudgetAccounting<T> {
|
|
11
|
+
budget: SyncResponderSnapshotBudget;
|
|
12
|
+
phase: 'shared_memory' | 'durable_meta' | 'durable_data';
|
|
13
|
+
bytesEstimate: (value: T) => number;
|
|
14
|
+
/** Keep responder admission until an aborted store load physically settles. */
|
|
15
|
+
drainOnAbort?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function createSessionPlanMemo<T>(ttlMs: number, maxEntries: number, accounting?: SessionPlanBudgetAccounting<T>): SessionPlanMemo<T>;
|
|
18
|
+
export declare function createPageOnlySessionPlanMemo<T>(ttlMs: number, maxEntries: number, budget: SyncResponderSnapshotBudget, graphPlan: (value: T) => ExactGraphPagePlan): SessionPlanMemo<T>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=session-plan-memo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-plan-memo.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/session-plan-memo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC/E,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACtB;AAED,UAAU,2BAA2B,CAAC,CAAC;IACrC,MAAM,EAAE,2BAA2B,CAAC;IACpC,KAAK,EAAE,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;IACzD,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAC1C,eAAe,CAAC,CAAC,CAAC,CAyFpB;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,2BAA2B,EACnC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,kBAAkB,GAC1C,eAAe,CAAC,CAAC,CAAC,CAyBpB"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { bytesToHex } from '@noble/hashes/utils.js';
|
|
2
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
3
|
+
import { raceAgainstAbort, throwIfAborted } from './responder-row-page.js';
|
|
4
|
+
import { exactGraphPlanScalarBytes, snapshotBudgetError, EXACT_GRAPH_CURSOR_CACHE_MAX_BYTES_ESTIMATE, EXACT_GRAPH_PLAN_MAX_BYTES_ESTIMATE, } from './exact-graph-reader.js';
|
|
5
|
+
export function createSessionPlanMemo(ttlMs, maxEntries, accounting) {
|
|
6
|
+
const cached = new Map();
|
|
7
|
+
const inflight = new Map();
|
|
8
|
+
const deleteEntry = (key, reason) => {
|
|
9
|
+
const entry = cached.get(key);
|
|
10
|
+
if (!entry)
|
|
11
|
+
return;
|
|
12
|
+
cached.delete(key);
|
|
13
|
+
if (entry.budgetEntryId)
|
|
14
|
+
accounting?.budget.remove(entry.budgetEntryId, reason);
|
|
15
|
+
};
|
|
16
|
+
const prune = (now = Date.now()) => {
|
|
17
|
+
for (const [key, entry] of cached) {
|
|
18
|
+
if (now - entry.cachedAt >= ttlMs)
|
|
19
|
+
deleteEntry(key, 'expired');
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
async get(key, load, options) {
|
|
24
|
+
throwIfAborted(options?.signal);
|
|
25
|
+
const now = Date.now();
|
|
26
|
+
prune(now);
|
|
27
|
+
const pending = inflight.get(key);
|
|
28
|
+
if (pending) {
|
|
29
|
+
if (!accounting?.drainOnAbort)
|
|
30
|
+
return raceAgainstAbort(pending, options?.signal);
|
|
31
|
+
if (!options?.refresh) {
|
|
32
|
+
const value = await pending;
|
|
33
|
+
throwIfAborted(options?.signal);
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
// An explicit replacement waits for the prior physical load, then
|
|
37
|
+
// builds its own plan rather than inheriting the older generation.
|
|
38
|
+
try {
|
|
39
|
+
await pending;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
throwIfAborted(options?.signal);
|
|
43
|
+
}
|
|
44
|
+
throwIfAborted(options?.signal);
|
|
45
|
+
}
|
|
46
|
+
const existing = cached.get(key);
|
|
47
|
+
if (!options?.refresh && existing) {
|
|
48
|
+
cached.delete(key);
|
|
49
|
+
cached.set(key, { ...existing, cachedAt: now });
|
|
50
|
+
if (existing.budgetEntryId) {
|
|
51
|
+
// Refresh the global-budget LRU position, then stay evictable: an
|
|
52
|
+
// entry pinned forever would let idle plans exempt themselves from
|
|
53
|
+
// memory-pressure eviction.
|
|
54
|
+
accounting?.budget.touch(existing.budgetEntryId);
|
|
55
|
+
accounting?.budget.release(existing.budgetEntryId);
|
|
56
|
+
}
|
|
57
|
+
return existing.value;
|
|
58
|
+
}
|
|
59
|
+
if (options?.requireExisting)
|
|
60
|
+
return null;
|
|
61
|
+
if (!existing && cached.size >= maxEntries) {
|
|
62
|
+
deleteEntry(cached.keys().next().value, 'released');
|
|
63
|
+
}
|
|
64
|
+
const pendingLoad = load()
|
|
65
|
+
.then((value) => {
|
|
66
|
+
if (accounting?.drainOnAbort)
|
|
67
|
+
throwIfAborted(options?.signal);
|
|
68
|
+
const replaced = cached.get(key);
|
|
69
|
+
let budgetEntryId;
|
|
70
|
+
if (accounting) {
|
|
71
|
+
budgetEntryId = Symbol(key);
|
|
72
|
+
// Throws the typed global budget error when the process-wide
|
|
73
|
+
// responder budget cannot admit the plan; the failed refresh leaves
|
|
74
|
+
// any previously-admitted plan in place (memo entry untouched).
|
|
75
|
+
accounting.budget.admit({
|
|
76
|
+
id: budgetEntryId,
|
|
77
|
+
key,
|
|
78
|
+
phase: accounting.phase,
|
|
79
|
+
rows: 0,
|
|
80
|
+
bytesEstimate: accounting.bytesEstimate(value),
|
|
81
|
+
controlPlane: true,
|
|
82
|
+
replaceId: replaced?.budgetEntryId,
|
|
83
|
+
onEvict: () => {
|
|
84
|
+
if (cached.get(key)?.budgetEntryId === budgetEntryId)
|
|
85
|
+
cached.delete(key);
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
accounting.budget.release(budgetEntryId);
|
|
89
|
+
}
|
|
90
|
+
// Concurrent loads for different keys can pass the entry check
|
|
91
|
+
// before either settles. Keep the cap true at settlement as well.
|
|
92
|
+
if (!cached.has(key)) {
|
|
93
|
+
while (cached.size >= maxEntries)
|
|
94
|
+
deleteEntry(cached.keys().next().value, 'released');
|
|
95
|
+
}
|
|
96
|
+
cached.set(key, { value, cachedAt: Date.now(), budgetEntryId });
|
|
97
|
+
return value;
|
|
98
|
+
})
|
|
99
|
+
.finally(() => inflight.delete(key));
|
|
100
|
+
inflight.set(key, pendingLoad);
|
|
101
|
+
if (!accounting?.drainOnAbort)
|
|
102
|
+
return raceAgainstAbort(pendingLoad, options?.signal);
|
|
103
|
+
const value = await pendingLoad;
|
|
104
|
+
throwIfAborted(options?.signal);
|
|
105
|
+
return value;
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function createPageOnlySessionPlanMemo(ttlMs, maxEntries, budget, graphPlan) {
|
|
110
|
+
const memo = createSessionPlanMemo(ttlMs, maxEntries, {
|
|
111
|
+
budget,
|
|
112
|
+
phase: 'durable_data',
|
|
113
|
+
drainOnAbort: true,
|
|
114
|
+
bytesEstimate: (value) => {
|
|
115
|
+
const plan = graphPlan(value);
|
|
116
|
+
const bytes = exactGraphPlanScalarBytes(plan);
|
|
117
|
+
if (bytes > EXACT_GRAPH_PLAN_MAX_BYTES_ESTIMATE) {
|
|
118
|
+
throw snapshotBudgetError({
|
|
119
|
+
key: 'exact-data-plan', reason: 'snapshot_bytes', rows: plan.entries.length,
|
|
120
|
+
bytesEstimate: bytes, limit: EXACT_GRAPH_PLAN_MAX_BYTES_ESTIMATE,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return bytes + EXACT_GRAPH_CURSOR_CACHE_MAX_BYTES_ESTIMATE;
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
get(key, load, options) {
|
|
128
|
+
// Opaque request tokens need not have a small wire spelling. Retain a
|
|
129
|
+
// fixed-size digest of the complete server-derived scope/generation.
|
|
130
|
+
const boundedKey = bytesToHex(sha256(new TextEncoder().encode(key)));
|
|
131
|
+
return memo.get(boundedKey, load, options);
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=session-plan-memo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-plan-memo.js","sourceRoot":"","sources":["../../../src/sync/responder/session-plan-memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,2CAA2C,EAC3C,mCAAmC,GAEpC,MAAM,yBAAyB,CAAC;AAkBjC,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,UAAkB,EAClB,UAA2C;IAE3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkE,CAAC;IACzF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,MAA2C,EAAE,EAAE;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,CAAC,aAAa;YAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK;gBAAE,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO;YAC1B,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,EAAE,YAAY;oBAAE,OAAO,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;oBAC5B,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAChC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,CAAC;oBAAC,MAAM,OAAO,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;gBACjE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC3B,kEAAkE;oBAClE,mEAAmE;oBACnE,4BAA4B;oBAC5B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBACjD,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,IAAI,OAAO,EAAE,eAAe;gBAAE,OAAO,IAAI,CAAC;YAC1C,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC3C,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,EAAE,UAAU,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,EAAE;iBACvB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,UAAU,EAAE,YAAY;oBAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,aAAiC,CAAC;gBACtC,IAAI,UAAU,EAAE,CAAC;oBACf,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,6DAA6D;oBAC7D,oEAAoE;oBACpE,gEAAgE;oBAChE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;wBACtB,EAAE,EAAE,aAAa;wBACjB,GAAG;wBACH,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,IAAI,EAAE,CAAC;wBACP,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;wBAC9C,YAAY,EAAE,IAAI;wBAClB,SAAS,EAAE,QAAQ,EAAE,aAAa;wBAClC,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,aAAa;gCAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3E,CAAC;qBACF,CAAC,CAAC;oBACH,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC3C,CAAC;gBACD,+DAA+D;gBAC/D,kEAAkE;gBAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,MAAM,CAAC,IAAI,IAAI,UAAU;wBAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,EAAE,UAAU,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,EAAE,YAAY;gBAAE,OAAO,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;YAChC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAa,EACb,UAAkB,EAClB,MAAmC,EACnC,SAA2C;IAE3C,MAAM,IAAI,GAAG,qBAAqB,CAAI,KAAK,EAAE,UAAU,EAAE;QACvD,MAAM;QACN,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,mCAAmC,EAAE,CAAC;gBAChD,MAAM,mBAAmB,CAAC;oBACxB,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC3E,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC;iBACjE,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,GAAG,2CAA2C,CAAC;QAC7D,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO;YACpB,sEAAsE;YACtE,qEAAqE;YACrE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { type OperationContext } from '@origintrail-official/dkg-core';
|
|
2
|
-
import type
|
|
2
|
+
import { type TripleStore } from '@origintrail-official/dkg-storage';
|
|
3
3
|
import { type WorkspacePublicSnapshotStore } from '@origintrail-official/dkg-publisher';
|
|
4
4
|
import type { SyncRequestEnvelope } from '../auth/request-build.js';
|
|
5
5
|
import { type SyncResponderSnapshotBudgetOptions } from './snapshot-budget.js';
|
|
6
6
|
import { type SyncContextGraphPriorityConfig, type SyncResponderSnapshotLimitsConfig } from '../policy.js';
|
|
7
|
+
import { type ExactAssetExportCache } from './exact-asset-export-cache.js';
|
|
8
|
+
export interface ExperimentalExactBatchResponderResources {
|
|
9
|
+
readonly exportCache: ExactAssetExportCache;
|
|
10
|
+
readonly snapshotBudget: import('./snapshot-budget.js').SyncResponderSnapshotBudget;
|
|
11
|
+
/**
|
|
12
|
+
* Both admissions share the limiter of every other sync response. When it
|
|
13
|
+
* does not admit the stage (queue wait exceeded, queue full, displaced) they
|
|
14
|
+
* reject with Core's `ExactBatchResponderRefusal('BUSY')`, which Core answers
|
|
15
|
+
* with a refusal frame.
|
|
16
|
+
*/
|
|
17
|
+
withPreAuthorizationAdmission<T>(peerId: string, signal: AbortSignal, work: () => Promise<T>): Promise<T>;
|
|
18
|
+
withAuthorizedResponseAdmission<T>(peerId: string, contextGraphId: string, signal: AbortSignal, work: () => Promise<T>): Promise<T>;
|
|
19
|
+
}
|
|
7
20
|
interface RegisterSyncHandlerParams {
|
|
8
21
|
/**
|
|
9
22
|
* `register` callable. In production this is bound to the RAW
|
|
@@ -28,6 +41,8 @@ interface RegisterSyncHandlerParams {
|
|
|
28
41
|
authorizeSyncRequest: (request: SyncRequestEnvelope, remotePeerId: string, options?: {
|
|
29
42
|
signal?: AbortSignal;
|
|
30
43
|
}) => Promise<boolean>;
|
|
44
|
+
/** Default absent. Experimental registrations reuse these exact owned resources. */
|
|
45
|
+
onExperimentalExactBatchResources?: (resources: ExperimentalExactBatchResponderResources) => void;
|
|
31
46
|
/**
|
|
32
47
|
* Injected policy predicate (#1233): return `true` to WITHHOLD the durable
|
|
33
48
|
* `_meta` snapshot for `contextGraphId` — the responder then replies with an
|
|
@@ -39,7 +54,17 @@ interface RegisterSyncHandlerParams {
|
|
|
39
54
|
* caller reads `process.env` fresh per call, keeping the switch runtime-hot.
|
|
40
55
|
*/
|
|
41
56
|
shouldWithholdDurableMeta?: (contextGraphId: string) => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Return `true` while `contextGraphId` must not be served in any phase yet
|
|
59
|
+
* (production: `ontology` until the startup metadata relocation finishes).
|
|
60
|
+
* The request is then refused like a busy responder, which requesters retry
|
|
61
|
+
* later, rather than answered with an empty page they would read as the
|
|
62
|
+
* graph's end.
|
|
63
|
+
*/
|
|
64
|
+
servingWithheld?: (contextGraphId: string) => boolean;
|
|
42
65
|
logWarn: (ctx: OperationContext, message: string) => void;
|
|
66
|
+
/** One line per exact-batch stream request refused as busy. Omitted ⇒ `logDebug`. */
|
|
67
|
+
logInfo?: (ctx: OperationContext, message: string) => void;
|
|
43
68
|
logDebug: (ctx: OperationContext, message: string) => void;
|
|
44
69
|
/** Primarily injectable for deterministic tests; production uses the bounded defaults below. */
|
|
45
70
|
snapshotBudget?: SyncResponderSnapshotBudgetOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-handler.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/sync-handler.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sync-handler.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/sync-handler.ts"],"names":[],"mappings":"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"}
|