@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
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { DKGAgentBase } from './dkg-agent-base.js';
|
|
2
2
|
import type { DKGAgent } from './dkg-agent.js';
|
|
3
3
|
export type Rfc64CatalogMetadataBootstrapOutcomeV1 = 'system-graph' | 'local-author' | 'not-subscribed' | 'no-accepted-public-policy' | 'already-confirmed' | 'no-connected-peers' | 'fetched' | 'not-found';
|
|
4
|
+
/** Public registration already authenticated by the explicit subscribe route. */
|
|
5
|
+
export interface RegisteredPublicMetadataBootstrapProofV1 {
|
|
6
|
+
readonly contextGraphId: string;
|
|
7
|
+
readonly onChainId: string;
|
|
8
|
+
}
|
|
4
9
|
export declare class Rfc64MetaBootstrapMethods extends DKGAgentBase {
|
|
5
10
|
/**
|
|
6
11
|
* Pull `<cg>/_meta` for a newly active RFC-64 public replica from peers that
|
|
@@ -9,7 +14,7 @@ export declare class Rfc64MetaBootstrapMethods extends DKGAgentBase {
|
|
|
9
14
|
* error, rejected snapshot) is a miss, and a miss keeps the local state
|
|
10
15
|
* exactly as it was: no metadata is installed, no lane changes.
|
|
11
16
|
*/
|
|
12
|
-
bootstrapRfc64CatalogContextGraphMetadataFromPeersV1(this: DKGAgent, contextGraphId: string, signal?: AbortSignal): Promise<Rfc64CatalogMetadataBootstrapOutcomeV1>;
|
|
17
|
+
bootstrapRfc64CatalogContextGraphMetadataFromPeersV1(this: DKGAgent, contextGraphId: string, signal?: AbortSignal, registeredPublicProof?: Readonly<RegisteredPublicMetadataBootstrapProofV1>): Promise<Rfc64CatalogMetadataBootstrapOutcomeV1>;
|
|
13
18
|
private runRfc64CatalogContextGraphMetadataBootstrapV1;
|
|
14
19
|
}
|
|
15
20
|
//# sourceMappingURL=dkg-agent-rfc64-meta-bootstrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dkg-agent-rfc64-meta-bootstrap.d.ts","sourceRoot":"","sources":["../src/dkg-agent-rfc64-meta-bootstrap.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,MAAM,MAAM,sCAAsC,GAC9C,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,2BAA2B,GAC3B,mBAAmB,GACnB,oBAAoB,GACpB,SAAS,GACT,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dkg-agent-rfc64-meta-bootstrap.d.ts","sourceRoot":"","sources":["../src/dkg-agent-rfc64-meta-bootstrap.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,MAAM,MAAM,sCAAsC,GAC9C,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,2BAA2B,GAC3B,mBAAmB,GACnB,oBAAoB,GACpB,SAAS,GACT,WAAW,CAAC;AAEhB,iFAAiF;AACjF,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAWD,qBAAa,yBAA0B,SAAQ,YAAY;IACzD;;;;;;OAMG;IACH,oDAAoD,CAClD,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,EACpB,qBAAqB,CAAC,EAAE,QAAQ,CAAC,wCAAwC,CAAC,GACzE,OAAO,CAAC,sCAAsC,CAAC;YA8BpC,8CAA8C;CA+E7D"}
|
|
@@ -32,7 +32,7 @@ import { SYSTEM_CONTEXT_GRAPHS, createOperationContext, } from '@origintrail-off
|
|
|
32
32
|
import { DKGAgentBase } from './dkg-agent-base.js';
|
|
33
33
|
import { runCuratorMetaRefreshFromPeer } from './curator-meta-refresh.js';
|
|
34
34
|
import { rfc64UnregisteredAuthorityOwnerV1 } from './rfc64/unregistered-authority-transport-v1.js';
|
|
35
|
-
/** One in-flight bootstrap per (agent, graph);
|
|
35
|
+
/** One in-flight bootstrap per (agent, graph); only equivalent authority shares it. */
|
|
36
36
|
const rfc64MetadataBootstrapsInFlightV1 = new WeakMap();
|
|
37
37
|
export class Rfc64MetaBootstrapMethods extends DKGAgentBase {
|
|
38
38
|
/**
|
|
@@ -42,24 +42,33 @@ export class Rfc64MetaBootstrapMethods extends DKGAgentBase {
|
|
|
42
42
|
* error, rejected snapshot) is a miss, and a miss keeps the local state
|
|
43
43
|
* exactly as it was: no metadata is installed, no lane changes.
|
|
44
44
|
*/
|
|
45
|
-
bootstrapRfc64CatalogContextGraphMetadataFromPeersV1(contextGraphId, signal) {
|
|
45
|
+
bootstrapRfc64CatalogContextGraphMetadataFromPeersV1(contextGraphId, signal, registeredPublicProof) {
|
|
46
46
|
let inFlight = rfc64MetadataBootstrapsInFlightV1.get(this);
|
|
47
47
|
if (inFlight === undefined) {
|
|
48
48
|
inFlight = new Map();
|
|
49
49
|
rfc64MetadataBootstrapsInFlightV1.set(this, inFlight);
|
|
50
50
|
}
|
|
51
|
+
const proofKey = registeredPublicProof === undefined
|
|
52
|
+
? undefined
|
|
53
|
+
: `${registeredPublicProof.contextGraphId}\0${registeredPublicProof.onChainId}`;
|
|
51
54
|
const existing = inFlight.get(contextGraphId);
|
|
52
|
-
if (existing !== undefined)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
if (existing !== undefined) {
|
|
56
|
+
if (existing.proofKey === proofKey)
|
|
57
|
+
return existing.promise;
|
|
58
|
+
// An activation pull without chain admission may be in flight when an
|
|
59
|
+
// explicit subscribe proves public registration. Run that stronger pull
|
|
60
|
+
// after the first generation settles; never reuse its weaker outcome.
|
|
61
|
+
return existing.promise.catch(() => undefined).then(() => this.bootstrapRfc64CatalogContextGraphMetadataFromPeersV1(contextGraphId, signal, registeredPublicProof));
|
|
62
|
+
}
|
|
63
|
+
const run = this.runRfc64CatalogContextGraphMetadataBootstrapV1(contextGraphId, signal, registeredPublicProof)
|
|
55
64
|
.finally(() => {
|
|
56
|
-
if (inFlight.get(contextGraphId) === run)
|
|
65
|
+
if (inFlight.get(contextGraphId)?.promise === run)
|
|
57
66
|
inFlight.delete(contextGraphId);
|
|
58
67
|
});
|
|
59
|
-
inFlight.set(contextGraphId, run);
|
|
68
|
+
inFlight.set(contextGraphId, { proofKey, promise: run });
|
|
60
69
|
return run;
|
|
61
70
|
}
|
|
62
|
-
async runRfc64CatalogContextGraphMetadataBootstrapV1(contextGraphId, signal) {
|
|
71
|
+
async runRfc64CatalogContextGraphMetadataBootstrapV1(contextGraphId, signal, registeredPublicProof) {
|
|
63
72
|
signal?.throwIfAborted();
|
|
64
73
|
if (Object.values(SYSTEM_CONTEXT_GRAPHS).includes(contextGraphId)) {
|
|
65
74
|
return 'system-graph';
|
|
@@ -70,19 +79,26 @@ export class Rfc64MetaBootstrapMethods extends DKGAgentBase {
|
|
|
70
79
|
if (this.subscribedContextGraphs.get(contextGraphId)?.subscribed !== true) {
|
|
71
80
|
return 'not-subscribed';
|
|
72
81
|
}
|
|
73
|
-
// Fail closed: only
|
|
82
|
+
// Fail closed: only authenticated PUBLIC authority may drive this pull. A
|
|
74
83
|
// private graph's metadata arrives through the authenticated join-approval
|
|
75
|
-
// path
|
|
84
|
+
// path. An explicit subscribe may already have proved a registered public
|
|
85
|
+
// graph against current chain authority before the catalog service holds
|
|
86
|
+
// that policy. Carry that exact admission proof into this catch-up job;
|
|
87
|
+
// background activation without one never starts a new chain read here.
|
|
76
88
|
const accepted = this.readAcceptedRfc64CatalogAccessSnapshotV1(contextGraphId);
|
|
77
|
-
if (accepted
|
|
89
|
+
if (accepted?.policy.accessPolicy === 1)
|
|
90
|
+
return 'no-accepted-public-policy';
|
|
91
|
+
if (accepted === null && !(registeredPublicProof?.contextGraphId === contextGraphId
|
|
92
|
+
&& /^[1-9][0-9]*$/.test(registeredPublicProof.onChainId)))
|
|
78
93
|
return 'no-accepted-public-policy';
|
|
79
|
-
}
|
|
80
94
|
// The owner this node already authenticated: the seed signer for an
|
|
81
95
|
// owner-signed policy, otherwise the wallet namespace of the id. A served
|
|
82
96
|
// declaration that names a different curator is not this graph's.
|
|
83
|
-
const expectedCuratorAddress = accepted
|
|
97
|
+
const expectedCuratorAddress = accepted?.policy.source.kind === 'owner-signed-unregistered'
|
|
84
98
|
? accepted.policy.source.ownerAddress
|
|
85
99
|
: rfc64UnregisteredAuthorityOwnerV1(contextGraphId) ?? undefined;
|
|
100
|
+
if (expectedCuratorAddress === undefined)
|
|
101
|
+
return 'no-accepted-public-policy';
|
|
86
102
|
if (await this.hasConfirmedMetaState(contextGraphId).catch(() => false)) {
|
|
87
103
|
return 'already-confirmed';
|
|
88
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dkg-agent-rfc64-meta-bootstrap.js","sourceRoot":"","sources":["../src/dkg-agent-rfc64-meta-bootstrap.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,iCAAiC,EAAE,MAC1C,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"dkg-agent-rfc64-meta-bootstrap.js","sourceRoot":"","sources":["../src/dkg-agent-rfc64-meta-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import type { DKGAgent } from './dkg-agent.js';
|
|
|
5
5
|
import type { Rfc64CatalogBootstrapPartitionV1 } from './dkg-agent-rfc64-catalog-bootstrap.js';
|
|
6
6
|
import type { Rfc64CatalogWorkloadOwnerV1 } from './rfc64/catalog-runtime-v1.js';
|
|
7
7
|
import type { Rfc64FinalizedPrivatePlacementRepairV1 } from './rfc64/finalized-private-placement-repair-store-v1.js';
|
|
8
|
+
import { type CatalogRepairDiagnosticV1 } from './rfc64/catalog-repair-diagnostics-v1.js';
|
|
8
9
|
export type Rfc64PublicCatalogAuthorRepairOutcomeV1 = 'pending' | 'reconciled' | 'no-inventory' | 'failed';
|
|
9
10
|
export interface Rfc64PublicCatalogAuthorRepairStatusV1 {
|
|
10
11
|
readonly contextGraphId: ContextGraphIdV1;
|
|
@@ -16,6 +17,9 @@ export interface Rfc64PublicCatalogAuthorRepairStatusV1 {
|
|
|
16
17
|
readonly inventoryRowCount: string | null;
|
|
17
18
|
readonly lastError: string | null;
|
|
18
19
|
readonly updatedAtMs: number | null;
|
|
20
|
+
readonly diagnostic: Readonly<CatalogRepairDiagnosticV1> | null;
|
|
21
|
+
readonly consecutiveFailures: number;
|
|
22
|
+
readonly nextAttemptAtMs: number | null;
|
|
19
23
|
}
|
|
20
24
|
export interface Rfc64SwmCatalogProjectionSupervisorStatusV1 {
|
|
21
25
|
readonly running: boolean;
|
|
@@ -36,6 +40,7 @@ interface ProjectionOwnerDependenciesV1 {
|
|
|
36
40
|
readonly listLocalAuthorAddresses: () => readonly EvmAddressV1[];
|
|
37
41
|
readonly acceptsPublicRootLane: (contextGraphId: ContextGraphIdV1) => boolean;
|
|
38
42
|
readonly acceptsFinalizedPrivateLane: (contextGraphId: ContextGraphIdV1) => boolean;
|
|
43
|
+
readonly readRepairRevision: (contextGraphId: ContextGraphIdV1, authorAddress: EvmAddressV1) => string | null;
|
|
39
44
|
readonly listFinalizedPrivateRepairs: () => readonly Readonly<Rfc64FinalizedPrivatePlacementRepairV1>[];
|
|
40
45
|
readonly repairFinalizedPrivatePlacement: (repair: Readonly<Rfc64FinalizedPrivatePlacementRepairV1>) => Promise<void>;
|
|
41
46
|
readonly reconcile: (params: Readonly<{
|
|
@@ -49,6 +54,8 @@ interface ProjectionOwnerDependenciesV1 {
|
|
|
49
54
|
export declare class Rfc64SwmCatalogProjectionOwnerV1 implements Rfc64CatalogWorkloadOwnerV1 {
|
|
50
55
|
#private;
|
|
51
56
|
constructor(dependencies: ProjectionOwnerDependenciesV1);
|
|
57
|
+
/** Observe a real inactive edge without reopening admission or starting work. */
|
|
58
|
+
observeLaneAvailability(contextGraphId: string): void;
|
|
52
59
|
start(ctx: OperationContext): void;
|
|
53
60
|
request(params: Readonly<{
|
|
54
61
|
readonly contextGraphId: ContextGraphIdV1;
|
|
@@ -66,6 +73,7 @@ export declare class Rfc64SwmCatalogProjectionOwnerV1 implements Rfc64CatalogWor
|
|
|
66
73
|
}
|
|
67
74
|
export declare function bindRfc64SwmCatalogProjectionOwnerV1(agent: DKGAgent, owner: Rfc64SwmCatalogProjectionOwnerV1): Rfc64SwmCatalogProjectionOwnerV1;
|
|
68
75
|
export declare class Rfc64SwmCatalogProjectionSupervisorMethods extends DKGAgentBase {
|
|
76
|
+
observeRfc64SwmCatalogProjectionLaneAvailabilityV1(this: DKGAgent, contextGraphId: string): void;
|
|
69
77
|
/** Seed bounded local-author projection work from selected catalog scopes. */
|
|
70
78
|
startRfc64SwmCatalogProjectionSupervisorV1(this: DKGAgent, ctx: OperationContext): void;
|
|
71
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts","sourceRoot":"","sources":["../src/dkg-agent-rfc64-swm-catalog-projection-supervisor.ts"],"names":[],"mappings":"AAEA,yEAAyE;AAEzE,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts","sourceRoot":"","sources":["../src/dkg-agent-rfc64-swm-catalog-projection-supervisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
/** Restart-safe local SWM-inventory to catalog projection supervisor. */
|
|
3
3
|
import { assertCanonicalEvmAddress, assertContextGraphIdV1, createOperationContext, } from '@origintrail-official/dkg-core';
|
|
4
|
+
import { withDefaultStoreWorkPriority } from '@origintrail-official/dkg-storage';
|
|
4
5
|
import { DKGAgentBase } from './dkg-agent-base.js';
|
|
5
6
|
import { mapWithConcurrency } from './map-with-concurrency.js';
|
|
6
7
|
import { CoalescingRecurringTask } from './coalescing-recurring-task.js';
|
|
7
|
-
import {
|
|
8
|
+
import { catalogRepairDiagnosticV1, catalogRepairErrorSummaryV1, CatalogRepairLaneInactiveErrorV1, } from './rfc64/catalog-repair-diagnostics-v1.js';
|
|
9
|
+
import { CatalogRepairRetryV1 } from './rfc64/catalog-repair-retry-v1.js';
|
|
8
10
|
const MAX_CONCURRENT_REPAIRS_V1 = 4;
|
|
9
11
|
const DEFAULT_PROJECTION_RETRY_INTERVAL_MS_V1 = 5_000;
|
|
10
12
|
/** Feature-local owner for projection admission, mutable repair state, and its runner. */
|
|
@@ -15,6 +17,31 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
15
17
|
constructor(dependencies) {
|
|
16
18
|
this.#dependencies = dependencies;
|
|
17
19
|
}
|
|
20
|
+
/** Observe a real inactive edge without reopening admission or starting work. */
|
|
21
|
+
observeLaneAvailability(contextGraphId) {
|
|
22
|
+
if (this.#admissionClosed || this.#state === undefined)
|
|
23
|
+
return;
|
|
24
|
+
for (const repair of this.#state.repairs) {
|
|
25
|
+
if (repair.contextGraphId !== contextGraphId)
|
|
26
|
+
continue;
|
|
27
|
+
try {
|
|
28
|
+
if (!this.#dependencies.acceptsPublicRootLane(repair.contextGraphId)) {
|
|
29
|
+
repair.retry.observe(null);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch { /* Scheduling hints must not reject a subscription transition. */ }
|
|
33
|
+
}
|
|
34
|
+
for (const entry of this.#state.finalizedPrivateRetries.values()) {
|
|
35
|
+
if (entry.contextGraphId !== contextGraphId)
|
|
36
|
+
continue;
|
|
37
|
+
try {
|
|
38
|
+
if (!this.#dependencies.acceptsFinalizedPrivateLane(entry.contextGraphId)) {
|
|
39
|
+
entry.retry.observe(null);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch { /* The periodic admission check remains authoritative. */ }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
18
45
|
start(ctx) {
|
|
19
46
|
this.#admissionClosed = false;
|
|
20
47
|
const partition = this.#dependencies.resolvePartition();
|
|
@@ -45,21 +72,10 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
45
72
|
existing.repairs.push(repair);
|
|
46
73
|
publicRepairRequested = true;
|
|
47
74
|
}
|
|
48
|
-
else if (current.outcome === 'failed') {
|
|
49
|
-
// Re-entering start is an authorization/subscription transition, not
|
|
50
|
-
// a new inventory observation. Retry a failed repair, but do not turn
|
|
51
|
-
// a completed no-inventory or reconciled result into duplicate work.
|
|
52
|
-
current.dirty = true;
|
|
53
|
-
publicRepairRequested = true;
|
|
54
|
-
}
|
|
55
75
|
}
|
|
56
|
-
// Release-native/default selection has no bootstrap partition to seed
|
|
57
|
-
// `repairs`. An authority transition must still revive a repair that
|
|
58
|
-
// failed while the lane was temporarily inactive.
|
|
59
76
|
for (const current of existing.repairs) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
&& this.#dependencies.acceptsPublicRootLane(current.contextGraphId)) {
|
|
77
|
+
const changed = this.#observeRevision(current.retry, current.contextGraphId, current.authorAddress);
|
|
78
|
+
if ((changed || current.outcome === 'failed') && current.retry.eligible(Date.now())) {
|
|
63
79
|
current.dirty = true;
|
|
64
80
|
publicRepairRequested = true;
|
|
65
81
|
}
|
|
@@ -83,8 +99,11 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
83
99
|
request(params) {
|
|
84
100
|
if (this.#admissionClosed)
|
|
85
101
|
return false;
|
|
86
|
-
if (!this.#dependencies.acceptsPublicRootLane(params.contextGraphId))
|
|
102
|
+
if (!this.#dependencies.acceptsPublicRootLane(params.contextGraphId)) {
|
|
103
|
+
this.#state?.repairs.find((repair) => repair.contextGraphId === params.contextGraphId
|
|
104
|
+
&& repair.authorAddress === params.authorAddress)?.retry.observe(null);
|
|
87
105
|
return false;
|
|
106
|
+
}
|
|
88
107
|
let state = this.#state;
|
|
89
108
|
if (state === undefined) {
|
|
90
109
|
const retryIntervalMs = this.#dependencies.resolvePartition()?.retryIntervalMs
|
|
@@ -100,9 +119,19 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
100
119
|
repair = newPendingRepairV1(params.contextGraphId, params.authorAddress);
|
|
101
120
|
state.repairs.push(repair);
|
|
102
121
|
}
|
|
103
|
-
|
|
122
|
+
const changed = this.#observeRevision(repair.retry, repair.contextGraphId, repair.authorAddress);
|
|
123
|
+
if (changed === undefined) {
|
|
124
|
+
repair.pendingUnknownRequest = true;
|
|
104
125
|
repair.dirty = true;
|
|
105
126
|
}
|
|
127
|
+
if (!repair.retry.eligible(Date.now())) {
|
|
128
|
+
// A cheap pass arms the pending mutation's deadline without admitting
|
|
129
|
+
// canonical store work before the unchanged failure cooldown expires.
|
|
130
|
+
if (repair.pendingUnknownRequest)
|
|
131
|
+
state.runner.request();
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
repair.dirty = true;
|
|
106
135
|
return state.runner.request();
|
|
107
136
|
}
|
|
108
137
|
/** Enqueue one already-durable chain-confirmed private placement transition. */
|
|
@@ -114,6 +143,8 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
114
143
|
if (this.#admissionClosed)
|
|
115
144
|
return rejected();
|
|
116
145
|
if (!this.#dependencies.acceptsFinalizedPrivateLane(params.repair.contextGraphId)) {
|
|
146
|
+
this.#state?.finalizedPrivateRetries.get(finalizedPrivateRepairKeyV1(params.repair))
|
|
147
|
+
?.retry.observe(null);
|
|
117
148
|
return rejected();
|
|
118
149
|
}
|
|
119
150
|
let state = this.#state;
|
|
@@ -150,7 +181,8 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
150
181
|
retryIntervalMs: state.retryIntervalMs ?? 0,
|
|
151
182
|
lastPassStartedAtMs: state.lastPassStartedAtMs,
|
|
152
183
|
lastPassCompletedAtMs: state.lastPassCompletedAtMs,
|
|
153
|
-
repairs: Object.freeze(state.repairs.map(({ dirty: _dirty, ...repair }) => (Object.freeze(repair
|
|
184
|
+
repairs: Object.freeze(state.repairs.map(({ dirty: _dirty, pendingUnknownRequest: _pendingUnknownRequest, retry, ...repair }) => (Object.freeze({ ...repair, consecutiveFailures: retry.consecutiveFailures,
|
|
185
|
+
nextAttemptAtMs: retry.nextAttemptAtMs })))),
|
|
154
186
|
});
|
|
155
187
|
}
|
|
156
188
|
async whenIdle() {
|
|
@@ -164,28 +196,43 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
164
196
|
const state = this.#state;
|
|
165
197
|
if (state === undefined)
|
|
166
198
|
return;
|
|
199
|
+
clearTimeout(state.publicMutationTimer);
|
|
200
|
+
state.publicMutationTimer = undefined;
|
|
201
|
+
clearTimeout(state.finalizedPrivateWaiterTimer);
|
|
202
|
+
state.finalizedPrivateWaiterTimer = undefined;
|
|
167
203
|
await Promise.all([state.runner.close(), state.finalizedPrivateRunner.close()]);
|
|
168
204
|
for (const waiters of state.finalizedPrivateAttemptWaiters.values()) {
|
|
169
205
|
for (const settle of waiters)
|
|
170
206
|
settle();
|
|
171
207
|
}
|
|
172
208
|
state.finalizedPrivateAttemptWaiters.clear();
|
|
209
|
+
state.finalizedPrivateRetries.clear();
|
|
173
210
|
this.#state = undefined;
|
|
174
211
|
}
|
|
175
212
|
#createState(retryIntervalMs, finalizedPrivateRetryIntervalMs, repairs, ctx) {
|
|
176
213
|
let state;
|
|
177
214
|
const runner = new CoalescingRecurringTask({
|
|
178
215
|
retryIntervalMs,
|
|
179
|
-
runPass: (signal) =>
|
|
216
|
+
runPass: async (signal) => {
|
|
217
|
+
try {
|
|
218
|
+
await this.#runPass(state, signal);
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
this.#schedulePublicMutationWake(state);
|
|
222
|
+
}
|
|
223
|
+
},
|
|
180
224
|
onError: (error) => {
|
|
181
|
-
this.#dependencies.warn(ctx,
|
|
225
|
+
this.#dependencies.warn(ctx, JSON.stringify({ event: 'catalog_repair_pass_failed', diagnostic: catalogRepairDiagnosticV1(error) }));
|
|
182
226
|
},
|
|
183
227
|
beforePeriodicPass: () => {
|
|
184
228
|
// Live inventory mutations already dirty their exact scope. The timer
|
|
185
229
|
// is the bounded liveness path for failures, not a reason to rebuild
|
|
186
230
|
// every healthy catalog from its complete inventory every five seconds.
|
|
187
231
|
for (const repair of state.repairs) {
|
|
188
|
-
if (repair.outcome
|
|
232
|
+
if (repair.outcome !== 'failed')
|
|
233
|
+
continue;
|
|
234
|
+
this.#observeRevision(repair.retry, repair.contextGraphId, repair.authorAddress);
|
|
235
|
+
if (repair.retry.eligible(Date.now()))
|
|
189
236
|
repair.dirty = true;
|
|
190
237
|
}
|
|
191
238
|
},
|
|
@@ -193,9 +240,25 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
193
240
|
});
|
|
194
241
|
const finalizedPrivateRunner = new CoalescingRecurringTask({
|
|
195
242
|
retryIntervalMs: finalizedPrivateRetryIntervalMs,
|
|
196
|
-
runPass: (signal) =>
|
|
243
|
+
runPass: async (signal) => {
|
|
244
|
+
let failed = false;
|
|
245
|
+
try {
|
|
246
|
+
await this.#runFinalizedPrivatePass(state, signal);
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
failed = true;
|
|
250
|
+
throw error;
|
|
251
|
+
}
|
|
252
|
+
finally {
|
|
253
|
+
// A failed durable queue read must not spin on an already-due waiter.
|
|
254
|
+
this.#schedulePrivateWaiterWake(state, failed
|
|
255
|
+
? (finalizedPrivateRetryIntervalMs > 0
|
|
256
|
+
? finalizedPrivateRetryIntervalMs : DEFAULT_PROJECTION_RETRY_INTERVAL_MS_V1)
|
|
257
|
+
: 0);
|
|
258
|
+
}
|
|
259
|
+
},
|
|
197
260
|
onError: (error) => {
|
|
198
|
-
this.#dependencies.warn(ctx,
|
|
261
|
+
this.#dependencies.warn(ctx, JSON.stringify({ event: 'catalog_private_repair_pass_failed', diagnostic: catalogRepairDiagnosticV1(error) }));
|
|
199
262
|
},
|
|
200
263
|
closingMessage: 'RFC-64 finalized-private placement repair closing',
|
|
201
264
|
});
|
|
@@ -203,8 +266,11 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
203
266
|
retryIntervalMs,
|
|
204
267
|
repairs,
|
|
205
268
|
runner,
|
|
269
|
+
publicMutationTimer: undefined,
|
|
206
270
|
finalizedPrivateRunner,
|
|
207
271
|
finalizedPrivateAttemptWaiters: new Map(),
|
|
272
|
+
finalizedPrivateWaiterTimer: undefined,
|
|
273
|
+
finalizedPrivateRetries: new Map(),
|
|
208
274
|
pass: 0,
|
|
209
275
|
lastPassStartedAtMs: null,
|
|
210
276
|
lastPassCompletedAtMs: null,
|
|
@@ -212,7 +278,7 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
212
278
|
return state;
|
|
213
279
|
}
|
|
214
280
|
async #runPass(state, signal) {
|
|
215
|
-
const pending = state.repairs.filter((repair) => repair.dirty);
|
|
281
|
+
const pending = state.repairs.filter((repair) => repair.dirty && repair.retry.eligible(Date.now()));
|
|
216
282
|
if (pending.length === 0)
|
|
217
283
|
return;
|
|
218
284
|
for (const repair of pending)
|
|
@@ -223,7 +289,7 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
223
289
|
await mapWithConcurrency(pending, MAX_CONCURRENT_REPAIRS_V1, async (repair) => {
|
|
224
290
|
if (signal.aborted)
|
|
225
291
|
return;
|
|
226
|
-
await this.#reconcile(repair, signal);
|
|
292
|
+
await this.#reconcile(repair, state.retryIntervalMs, signal);
|
|
227
293
|
});
|
|
228
294
|
}
|
|
229
295
|
finally {
|
|
@@ -232,41 +298,154 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
232
298
|
}
|
|
233
299
|
async #runFinalizedPrivatePass(state, signal) {
|
|
234
300
|
const repairs = this.#dependencies.listFinalizedPrivateRepairs();
|
|
301
|
+
const currentKeys = new Set(repairs.map(finalizedPrivateRepairKeyV1));
|
|
302
|
+
for (const key of state.finalizedPrivateRetries.keys()) {
|
|
303
|
+
if (!currentKeys.has(key))
|
|
304
|
+
state.finalizedPrivateRetries.delete(key);
|
|
305
|
+
}
|
|
306
|
+
for (const key of state.finalizedPrivateAttemptWaiters.keys()) {
|
|
307
|
+
if (!currentKeys.has(key))
|
|
308
|
+
this.#settlePrivateWaiters(state, key);
|
|
309
|
+
}
|
|
235
310
|
await mapWithConcurrency(repairs, MAX_CONCURRENT_REPAIRS_V1, async (repair) => {
|
|
311
|
+
if (signal.aborted)
|
|
312
|
+
return;
|
|
236
313
|
const key = finalizedPrivateRepairKeyV1(repair);
|
|
314
|
+
let entry = state.finalizedPrivateRetries.get(key);
|
|
315
|
+
if (entry === undefined) {
|
|
316
|
+
entry = { contextGraphId: repair.contextGraphId, retry: new CatalogRepairRetryV1(), attempts: 0 };
|
|
317
|
+
state.finalizedPrivateRetries.set(key, entry);
|
|
318
|
+
}
|
|
319
|
+
this.#observePrivateLane(entry.retry, repair.contextGraphId);
|
|
320
|
+
if (!entry.retry.eligible(Date.now()))
|
|
321
|
+
return;
|
|
322
|
+
const attemptGeneration = entry.retry.generation;
|
|
323
|
+
entry.attempts += 1;
|
|
237
324
|
try {
|
|
238
|
-
if (
|
|
239
|
-
|
|
240
|
-
|
|
325
|
+
if (!this.#dependencies.acceptsFinalizedPrivateLane(repair.contextGraphId)) {
|
|
326
|
+
throw new CatalogRepairLaneInactiveErrorV1();
|
|
327
|
+
}
|
|
328
|
+
await withDefaultStoreWorkPriority('background', () => (this.#dependencies.repairFinalizedPrivatePlacement(repair)));
|
|
329
|
+
state.finalizedPrivateRetries.delete(key);
|
|
241
330
|
}
|
|
242
331
|
catch (error) {
|
|
243
332
|
if (!signal.aborted) {
|
|
244
|
-
this.#
|
|
333
|
+
const changed = this.#observePrivateLane(entry.retry, repair.contextGraphId);
|
|
334
|
+
entry.retry.fail(attemptGeneration, Date.now(), state.retryIntervalMs);
|
|
335
|
+
if (changed)
|
|
336
|
+
state.finalizedPrivateRunner.request();
|
|
337
|
+
this.#warnFailure('catalog_private_repair_failed', error, entry.attempts, entry.retry);
|
|
245
338
|
}
|
|
246
339
|
}
|
|
247
340
|
finally {
|
|
248
|
-
|
|
249
|
-
if (waiters !== undefined) {
|
|
250
|
-
state.finalizedPrivateAttemptWaiters.delete(key);
|
|
251
|
-
for (const settle of waiters)
|
|
252
|
-
settle();
|
|
253
|
-
}
|
|
341
|
+
this.#settlePrivateWaiters(state, key);
|
|
254
342
|
}
|
|
255
343
|
});
|
|
256
344
|
}
|
|
257
|
-
|
|
345
|
+
#settlePrivateWaiters(state, key) {
|
|
346
|
+
const waiters = state.finalizedPrivateAttemptWaiters.get(key);
|
|
347
|
+
state.finalizedPrivateAttemptWaiters.delete(key);
|
|
348
|
+
if (waiters !== undefined)
|
|
349
|
+
for (const settle of waiters)
|
|
350
|
+
settle();
|
|
351
|
+
}
|
|
352
|
+
/** Retain explicit mutations whose revision hint was unavailable, even in one-pass mode. */
|
|
353
|
+
#schedulePublicMutationWake(state) {
|
|
354
|
+
clearTimeout(state.publicMutationTimer);
|
|
355
|
+
state.publicMutationTimer = undefined;
|
|
356
|
+
if (this.#state !== state || this.#admissionClosed || state.runner.closed)
|
|
357
|
+
return;
|
|
358
|
+
let earliest = Infinity;
|
|
359
|
+
for (const repair of state.repairs) {
|
|
360
|
+
if (repair.pendingUnknownRequest) {
|
|
361
|
+
earliest = Math.min(earliest, repair.retry.nextAttemptAtMs ?? Date.now());
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (!Number.isFinite(earliest))
|
|
365
|
+
return;
|
|
366
|
+
state.publicMutationTimer = setTimeout(() => {
|
|
367
|
+
state.publicMutationTimer = undefined;
|
|
368
|
+
if (this.#state !== state || this.#admissionClosed || state.runner.closed)
|
|
369
|
+
return;
|
|
370
|
+
for (const repair of state.repairs) {
|
|
371
|
+
if (repair.pendingUnknownRequest)
|
|
372
|
+
repair.dirty = true;
|
|
373
|
+
}
|
|
374
|
+
state.runner.request();
|
|
375
|
+
}, Math.min(2_147_483_647, Math.max(0, earliest - Date.now())));
|
|
376
|
+
state.publicMutationTimer.unref?.();
|
|
377
|
+
}
|
|
378
|
+
/** Accepted cooldown requests need one wake even when periodic retries are disabled. */
|
|
379
|
+
#schedulePrivateWaiterWake(state, minimumDelayMs) {
|
|
380
|
+
clearTimeout(state.finalizedPrivateWaiterTimer);
|
|
381
|
+
state.finalizedPrivateWaiterTimer = undefined;
|
|
382
|
+
if (this.#state !== state || this.#admissionClosed || state.finalizedPrivateRunner.closed)
|
|
383
|
+
return;
|
|
384
|
+
let earliest = Infinity;
|
|
385
|
+
for (const key of state.finalizedPrivateAttemptWaiters.keys()) {
|
|
386
|
+
const deadline = state.finalizedPrivateRetries.get(key)?.retry.nextAttemptAtMs;
|
|
387
|
+
earliest = Math.min(earliest, deadline ?? Date.now());
|
|
388
|
+
}
|
|
389
|
+
if (!Number.isFinite(earliest))
|
|
390
|
+
return;
|
|
391
|
+
state.finalizedPrivateWaiterTimer = setTimeout(() => {
|
|
392
|
+
state.finalizedPrivateWaiterTimer = undefined;
|
|
393
|
+
if (this.#state === state && !this.#admissionClosed && !state.finalizedPrivateRunner.closed) {
|
|
394
|
+
state.finalizedPrivateRunner.request();
|
|
395
|
+
}
|
|
396
|
+
}, Math.min(2_147_483_647, Math.max(minimumDelayMs, earliest - Date.now())));
|
|
397
|
+
state.finalizedPrivateWaiterTimer.unref?.();
|
|
398
|
+
}
|
|
399
|
+
#observePrivateLane(retry, contextGraphId) {
|
|
400
|
+
try {
|
|
401
|
+
// Exact durable identity already partitions private retries. An unrelated
|
|
402
|
+
// mutation of the author's inventory must not reset this repair's backoff.
|
|
403
|
+
return retry.observe(this.#dependencies.acceptsFinalizedPrivateLane(contextGraphId) ? 'active' : null);
|
|
404
|
+
}
|
|
405
|
+
catch {
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
#observeRevision(retry, contextGraphId, authorAddress) {
|
|
410
|
+
try {
|
|
411
|
+
const active = this.#dependencies.acceptsPublicRootLane(contextGraphId);
|
|
412
|
+
return retry.observe(active
|
|
413
|
+
? this.#dependencies.readRepairRevision(contextGraphId, authorAddress) : null);
|
|
414
|
+
}
|
|
415
|
+
catch {
|
|
416
|
+
// A hint failure must not reject the mutation caller or reset its cooldown.
|
|
417
|
+
return undefined;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
#warnFailure(event, error, attempt, retry) {
|
|
421
|
+
try {
|
|
422
|
+
this.#dependencies.warn(createOperationContext('system'), JSON.stringify({
|
|
423
|
+
event, diagnostic: catalogRepairDiagnosticV1(error), attempt,
|
|
424
|
+
consecutiveFailures: retry.consecutiveFailures, nextAttemptAtMs: retry.nextAttemptAtMs,
|
|
425
|
+
}));
|
|
426
|
+
}
|
|
427
|
+
catch { /* Diagnostics must not alter repair state or waiter settlement. */ }
|
|
428
|
+
}
|
|
429
|
+
async #reconcile(repair, retryIntervalMs, signal) {
|
|
430
|
+
// Consume only at actual admission. A newer unknown mutation received
|
|
431
|
+
// during this attempt must survive both its success and failure paths.
|
|
432
|
+
repair.pendingUnknownRequest = false;
|
|
433
|
+
this.#observeRevision(repair.retry, repair.contextGraphId, repair.authorAddress);
|
|
434
|
+
const attemptGeneration = repair.retry.generation;
|
|
258
435
|
repair.attempts += 1;
|
|
259
436
|
try {
|
|
260
437
|
if (!this.#dependencies.acceptsPublicRootLane(repair.contextGraphId)) {
|
|
261
|
-
throw new
|
|
438
|
+
throw new CatalogRepairLaneInactiveErrorV1();
|
|
262
439
|
}
|
|
263
|
-
const reconciliation = await this.#dependencies.reconcile({
|
|
440
|
+
const reconciliation = await withDefaultStoreWorkPriority('background', () => this.#dependencies.reconcile({
|
|
264
441
|
contextGraphId: repair.contextGraphId,
|
|
265
442
|
authorAddress: repair.authorAddress,
|
|
266
443
|
signal,
|
|
267
|
-
});
|
|
444
|
+
}));
|
|
268
445
|
if (signal.aborted)
|
|
269
446
|
return;
|
|
447
|
+
repair.retry.reset();
|
|
448
|
+
repair.diagnostic = null;
|
|
270
449
|
if (reconciliation === null) {
|
|
271
450
|
Object.assign(repair, {
|
|
272
451
|
outcome: 'no-inventory',
|
|
@@ -291,15 +470,28 @@ export class Rfc64SwmCatalogProjectionOwnerV1 {
|
|
|
291
470
|
catch (error) {
|
|
292
471
|
if (signal.aborted)
|
|
293
472
|
return;
|
|
473
|
+
const changed = this.#observeRevision(repair.retry, repair.contextGraphId, repair.authorAddress);
|
|
474
|
+
if (repair.retry.fail(attemptGeneration, Date.now(), retryIntervalMs)) {
|
|
475
|
+
// Duplicate same-head wakes received while this attempt was active do
|
|
476
|
+
// not get to bypass the newly established failure deadline.
|
|
477
|
+
repair.dirty = repair.pendingUnknownRequest;
|
|
478
|
+
}
|
|
479
|
+
else {
|
|
480
|
+
repair.dirty = true;
|
|
481
|
+
// A head may change without an explicit notification while draining.
|
|
482
|
+
if (changed)
|
|
483
|
+
this.#state?.runner.request();
|
|
484
|
+
}
|
|
294
485
|
Object.assign(repair, {
|
|
295
486
|
outcome: 'failed',
|
|
296
487
|
inventoryHeadObjectDigest: null,
|
|
297
488
|
catalogVersion: null,
|
|
298
489
|
inventoryRowCount: null,
|
|
299
|
-
lastError:
|
|
490
|
+
lastError: catalogRepairErrorSummaryV1(error),
|
|
491
|
+
diagnostic: catalogRepairDiagnosticV1(error),
|
|
300
492
|
updatedAtMs: Date.now(),
|
|
301
493
|
});
|
|
302
|
-
this.#
|
|
494
|
+
this.#warnFailure('catalog_repair_failed', error, repair.attempts, repair.retry);
|
|
303
495
|
}
|
|
304
496
|
}
|
|
305
497
|
}
|
|
@@ -329,18 +521,35 @@ function newPendingRepairV1(contextGraphId, authorAddress) {
|
|
|
329
521
|
lastError: null,
|
|
330
522
|
updatedAtMs: null,
|
|
331
523
|
dirty: true,
|
|
524
|
+
pendingUnknownRequest: false,
|
|
525
|
+
diagnostic: null,
|
|
526
|
+
retry: new CatalogRepairRetryV1(),
|
|
332
527
|
};
|
|
333
528
|
}
|
|
334
529
|
function finalizedPrivateRepairKeyV1(repair) {
|
|
335
530
|
return JSON.stringify([
|
|
531
|
+
repair.version,
|
|
336
532
|
repair.contextGraphId,
|
|
337
533
|
repair.authorAddress,
|
|
534
|
+
repair.inventoryScope.networkId,
|
|
535
|
+
repair.inventoryScope.contextGraphId,
|
|
536
|
+
repair.inventoryScope.governanceChainId,
|
|
537
|
+
repair.inventoryScope.governanceContractAddress,
|
|
538
|
+
repair.inventoryScope.ownershipTransitionDigest,
|
|
539
|
+
repair.inventoryScope.authorAddress,
|
|
540
|
+
repair.inventoryScope.subGraphName,
|
|
541
|
+
repair.inventoryScope.era,
|
|
542
|
+
repair.assertionCoordinate,
|
|
338
543
|
repair.kaUal,
|
|
339
544
|
repair.assertionVersion,
|
|
340
545
|
repair.sealDigest,
|
|
341
546
|
]);
|
|
342
547
|
}
|
|
343
548
|
export class Rfc64SwmCatalogProjectionSupervisorMethods extends DKGAgentBase {
|
|
549
|
+
observeRfc64SwmCatalogProjectionLaneAvailabilityV1(contextGraphId) {
|
|
550
|
+
// Subscription selection can be initialized before the workload is bound.
|
|
551
|
+
projectionOwnersV1.get(this)?.observeLaneAvailability(contextGraphId);
|
|
552
|
+
}
|
|
344
553
|
/** Seed bounded local-author projection work from selected catalog scopes. */
|
|
345
554
|
startRfc64SwmCatalogProjectionSupervisorV1(ctx) {
|
|
346
555
|
projectionOwnerV1(this).start(ctx);
|