@origintrail-official/dkg-agent 10.0.20 → 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/context-graph-member-proof.d.ts +13 -0
- package/dist/context-graph-member-proof.d.ts.map +1 -1
- package/dist/context-graph-member-proof.js +36 -0
- package/dist/context-graph-member-proof.js.map +1 -1
- 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-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-private-meta-proof.d.ts +5 -0
- package/dist/context-graph-private-meta-proof.d.ts.map +1 -1
- package/dist/context-graph-private-meta-proof.js +23 -0
- package/dist/context-graph-private-meta-proof.js.map +1 -1
- package/dist/context-graph-read-authority.d.ts +13 -0
- package/dist/context-graph-read-authority.d.ts.map +1 -1
- package/dist/context-graph-read-authority.js +23 -3
- package/dist/context-graph-read-authority.js.map +1 -1
- package/dist/context-graph-storage-discovery.d.ts +11 -2
- package/dist/context-graph-storage-discovery.d.ts.map +1 -1
- package/dist/context-graph-storage-discovery.js +11 -2
- package/dist/context-graph-storage-discovery.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 +2 -0
- package/dist/curator-meta-refresh.d.ts.map +1 -1
- package/dist/curator-meta-refresh.js +2 -44
- 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-base.d.ts +94 -22
- package/dist/dkg-agent-base.d.ts.map +1 -1
- package/dist/dkg-agent-base.js +97 -144
- package/dist/dkg-agent-base.js.map +1 -1
- package/dist/dkg-agent-cg-registry.d.ts +10 -0
- package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
- package/dist/dkg-agent-cg-registry.js +176 -115
- 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 +22 -16
- package/dist/dkg-agent-cg-resolve.js.map +1 -1
- package/dist/dkg-agent-constants.d.ts +4 -2
- package/dist/dkg-agent-constants.d.ts.map +1 -1
- package/dist/dkg-agent-constants.js +4 -2
- package/dist/dkg-agent-constants.js.map +1 -1
- package/dist/dkg-agent-crypto.d.ts +101 -21
- package/dist/dkg-agent-crypto.d.ts.map +1 -1
- package/dist/dkg-agent-crypto.js +670 -152
- package/dist/dkg-agent-crypto.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 +58 -15
- package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
- package/dist/dkg-agent-lifecycle.js +295 -114
- 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 +190 -256
- 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 +75 -63
- 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 +63 -87
- package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.js +595 -551
- package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
- package/dist/dkg-agent-swm-host.d.ts +43 -52
- package/dist/dkg-agent-swm-host.d.ts.map +1 -1
- package/dist/dkg-agent-swm-host.js +629 -812
- 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 +2 -0
- package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
- package/dist/dkg-agent-swm-substrate.js +110 -53
- package/dist/dkg-agent-swm-substrate.js.map +1 -1
- package/dist/dkg-agent-types.d.ts +62 -26
- 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 +2 -0
- package/dist/dkg-agent-vm-promotion.d.ts.map +1 -1
- package/dist/dkg-agent-vm-promotion.js +39 -5
- package/dist/dkg-agent-vm-promotion.js.map +1 -1
- package/dist/dkg-agent.d.ts +8 -1
- package/dist/dkg-agent.d.ts.map +1 -1
- package/dist/dkg-agent.js +75 -45
- 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 +19 -207
- package/dist/finalization-handler.d.ts.map +1 -1
- package/dist/finalization-handler.js +79 -1646
- package/dist/finalization-handler.js.map +1 -1
- package/dist/finalization-recovery-worker.js +1 -1
- package/dist/finalization-recovery-worker.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-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 +3 -0
- 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/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/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 +43 -7
- package/dist/internal/context-graph-authority/swm-transport-authority.d.ts.map +1 -1
- package/dist/internal/context-graph-authority/swm-transport-authority.js +135 -18
- package/dist/internal/context-graph-authority/swm-transport-authority.js.map +1 -1
- 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 +74 -5
- 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/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 +7 -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/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 +6 -3
- package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-operational-applied-heads-v1.js +6 -3
- 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-replay-recovery-runtime-v1.d.ts +2 -0
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.js +18 -25
- package/dist/rfc64/catalog-replay-recovery-runtime-v1.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/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-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-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/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 +58 -24
- 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 +18 -1
- package/dist/sync/responder/sync-handler.d.ts.map +1 -1
- package/dist/sync/responder/sync-handler.js +101 -57
- 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/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-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/package.json +17 -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,3 +1,4 @@
|
|
|
1
|
+
import type { ApprovedPrivateReplicaAuthority } from './approved-private-replica.js';
|
|
1
2
|
/**
|
|
2
3
|
* What could not answer when Context Graph authority is unavailable, for
|
|
3
4
|
* server-side diagnostics only (#2834): `store` is the local triple store or
|
|
@@ -26,9 +27,15 @@ export type RegisteredContextGraphAuthorityUnavailable = (LiveOnChainAccessPolic
|
|
|
26
27
|
/** Set where the failed read's own error says which dependency could not answer. */
|
|
27
28
|
dependency?: ContextGraphReadAuthorityDependency;
|
|
28
29
|
};
|
|
30
|
+
/** Explicit non-applicability proof, separate from legacy read fallbacks. */
|
|
31
|
+
export type ContextGraphUnregisteredEvidence = 'local-create' | 'accepted-rfc64-finalized-absence' | 'approved-private-replica-finalized-absence';
|
|
29
32
|
/** Stable public contract for registered Context Graph authority state. */
|
|
30
33
|
export type RegisteredContextGraphAuthority = {
|
|
31
34
|
kind: 'unregistered';
|
|
35
|
+
/** Missing on compatibility fallbacks: those do not exempt VM catch-up. */
|
|
36
|
+
unregisteredEvidence?: ContextGraphUnregisteredEvidence;
|
|
37
|
+
/** Current participant-only authority for an approved private replica. */
|
|
38
|
+
approvedPrivateReplicaAuthority?: ApprovedPrivateReplicaAuthority;
|
|
32
39
|
} | {
|
|
33
40
|
kind: 'public';
|
|
34
41
|
onChainId: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registered-context-graph-authority.d.ts","sourceRoot":"","sources":["../src/registered-context-graph-authority.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registered-context-graph-authority.d.ts","sourceRoot":"","sources":["../src/registered-context-graph-authority.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAErF;;;;;;GAMG;AACH,MAAM,MAAM,mCAAmC,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,wCAAwC,GAChD,6BAA6B,GAC7B,6BAA6B,CAAC;AAElC,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,wCAAwC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,UAAU,CAAC,EAAE,mCAAmC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,gDAAgD,GACxD,wCAAwC,GACxC,mCAAmC,GACnC,gCAAgC,GAIhC,wBAAwB,GACxB,iCAAiC,GACjC,6BAA6B,GAC7B,iCAAiC,GACjC,yCAAyC,GACzC,yCAAyC,GACzC,qCAAqC,CAAC;AAE1C,KAAK,yDAAyD,GAAG,OAAO,CACtE,gDAAgD,EAChD,wCAAwC,CACzC,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAClD,CAAC,kCAAkC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAC5D;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,yDAAyD,CAAC;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,UAAU,CAAC,EAAE,mCAAmC,CAAC;CAClD,CAAC;AAEN,6EAA6E;AAC7E,MAAM,MAAM,gCAAgC,GACxC,cAAc,GACd,kCAAkC,GAClC,4CAA4C,CAAC;AAEjD,2EAA2E;AAC3E,MAAM,MAAM,+BAA+B,GACvC;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;IACxD,0EAA0E;IAC1E,+BAA+B,CAAC,EAAE,+BAA+B,CAAC;CACnE,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACnE,0CAA0C,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,6BAA6B,GACrC,cAAc,GACd,iBAAiB,GACjB,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DKGAgent } from './dkg-agent.js';
|
|
2
|
+
export type RegisteredPrivateEmptyVmAttemptV1 = {
|
|
3
|
+
readonly proven: false;
|
|
4
|
+
readonly retryable?: boolean;
|
|
5
|
+
} | {
|
|
6
|
+
readonly proven: true;
|
|
7
|
+
readonly metadataRevision: string;
|
|
8
|
+
readonly onChainId: bigint;
|
|
9
|
+
};
|
|
10
|
+
export declare const UNPROVEN_PRIVATE_EMPTY_VM: {
|
|
11
|
+
readonly proven: false;
|
|
12
|
+
};
|
|
13
|
+
export declare const RETRYABLE_PRIVATE_EMPTY_VM: {
|
|
14
|
+
readonly proven: false;
|
|
15
|
+
readonly retryable: true;
|
|
16
|
+
};
|
|
17
|
+
/** Read only the agent's protected bindings through its owning mixin method. */
|
|
18
|
+
export interface PrivateEmptyVmAgentBindingsV1 {
|
|
19
|
+
isSubscribed(): boolean;
|
|
20
|
+
readMetadataRevision(): string;
|
|
21
|
+
readChainConfig(): {
|
|
22
|
+
rpcUrl?: string;
|
|
23
|
+
rpcUrls?: string[];
|
|
24
|
+
chainId?: string;
|
|
25
|
+
hubAddress: string;
|
|
26
|
+
} | undefined;
|
|
27
|
+
hasAuthorityReader(): boolean;
|
|
28
|
+
readAdapterEvmChainId(): Promise<bigint>;
|
|
29
|
+
readResolvedFinalityConfirmations(): number | undefined;
|
|
30
|
+
}
|
|
31
|
+
export declare function tracePrivateEmptyVm(stage: string): void;
|
|
32
|
+
/** Collect optional finalized evidence. It never grants readiness by itself. */
|
|
33
|
+
export declare function attemptRegisteredPrivateEmptyVmV1(agent: DKGAgent, bindings: PrivateEmptyVmAgentBindingsV1, contextGraphId: string, callerAgentAddress: string, signal?: AbortSignal): Promise<RegisteredPrivateEmptyVmAttemptV1>;
|
|
34
|
+
//# sourceMappingURL=registered-private-empty-vm-attempt-v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registered-private-empty-vm-attempt-v1.d.ts","sourceRoot":"","sources":["../src/registered-private-empty-vm-attempt-v1.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,MAAM,MAAM,iCAAiC,GACzC;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F,eAAO,MAAM,yBAAyB;;CAA6B,CAAC;AACpE,eAAO,MAAM,0BAA0B;;;CAA8C,CAAC;AAEtF,gFAAgF;AAChF,MAAM,WAAW,6BAA6B;IAC5C,YAAY,IAAI,OAAO,CAAC;IACxB,oBAAoB,IAAI,MAAM,CAAC;IAC/B,eAAe,IAAI;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,SAAS,CAAC;IACd,kBAAkB,IAAI,OAAO,CAAC;IAC9B,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,iCAAiC,IAAI,MAAM,GAAG,SAAS,CAAC;CACzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIvD;AAED,gFAAgF;AAChF,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,6BAA6B,EACvC,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,iCAAiC,CAAC,CAmF5C"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { ethers } from 'ethers';
|
|
3
|
+
import { createStrictCurrentFinalizedEvmSnapshotScopeV1, isFinalizedChainAdmissionContention, resolveRpcUrls, } from '@origintrail-official/dkg-chain';
|
|
4
|
+
import { assertCanonicalChainId, assertCanonicalEvmAddress, } from '@origintrail-official/dkg-core';
|
|
5
|
+
import { finalizedContextGraphSnapshotMismatchV1 } from './internal/context-graph-authority/finalized-context-graph-binding.js';
|
|
6
|
+
import { proveRegisteredPrivateEmptyVmV1 } from './rfc64/registered-private-empty-vm-proof-v1.js';
|
|
7
|
+
export const UNPROVEN_PRIVATE_EMPTY_VM = { proven: false };
|
|
8
|
+
export const RETRYABLE_PRIVATE_EMPTY_VM = { proven: false, retryable: true };
|
|
9
|
+
export function tracePrivateEmptyVm(stage) {
|
|
10
|
+
if (process.env.DKG_DEBUG_PRIVATE_EMPTY_VM === '1') {
|
|
11
|
+
console.info(`[private-empty-vm] ${stage}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Collect optional finalized evidence. It never grants readiness by itself. */
|
|
15
|
+
export async function attemptRegisteredPrivateEmptyVmV1(agent, bindings, contextGraphId, callerAgentAddress, signal) {
|
|
16
|
+
try {
|
|
17
|
+
if (signal?.aborted)
|
|
18
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
19
|
+
const caller = callerAgentAddress.toLowerCase();
|
|
20
|
+
if (!ethers.isAddress(caller) || !bindings.isSubscribed()) {
|
|
21
|
+
tracePrivateEmptyVm('not-subscribed');
|
|
22
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
23
|
+
}
|
|
24
|
+
const metadataRevision = bindings.readMetadataRevision();
|
|
25
|
+
const confirmedBefore = await agent.hasConfirmedMetaState(contextGraphId, { signal }).catch(() => false);
|
|
26
|
+
if (!confirmedBefore) {
|
|
27
|
+
tracePrivateEmptyVm('metadata-not-yet-confirmed');
|
|
28
|
+
return RETRYABLE_PRIVATE_EMPTY_VM;
|
|
29
|
+
}
|
|
30
|
+
const privateBefore = await agent.isPrivateContextGraph(contextGraphId).catch(() => false);
|
|
31
|
+
if (!privateBefore) {
|
|
32
|
+
tracePrivateEmptyVm('not-private');
|
|
33
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
34
|
+
}
|
|
35
|
+
if (bindings.readMetadataRevision() !== metadataRevision) {
|
|
36
|
+
tracePrivateEmptyVm('metadata-not-stable-before-proof');
|
|
37
|
+
return RETRYABLE_PRIVATE_EMPTY_VM;
|
|
38
|
+
}
|
|
39
|
+
const before = await agent.resolveContextGraphSubscriptionBootstrapAuthority(contextGraphId, {
|
|
40
|
+
callerAgentAddress: caller, allowSubscriptionFallback: false, signal,
|
|
41
|
+
});
|
|
42
|
+
if (before.outcome === 'unavailable') {
|
|
43
|
+
tracePrivateEmptyVm('authority-unavailable-before-proof');
|
|
44
|
+
return RETRYABLE_PRIVATE_EMPTY_VM;
|
|
45
|
+
}
|
|
46
|
+
if (before.outcome !== 'allowed' || before.source !== 'registered-chain'
|
|
47
|
+
|| before.onChainId === undefined || before.registration === 'unregistered') {
|
|
48
|
+
tracePrivateEmptyVm('authority-not-registered-allowed');
|
|
49
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
50
|
+
}
|
|
51
|
+
const chainConfig = bindings.readChainConfig();
|
|
52
|
+
if (chainConfig === undefined || !bindings.hasAuthorityReader()) {
|
|
53
|
+
tracePrivateEmptyVm('chain-capability-absent');
|
|
54
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
55
|
+
}
|
|
56
|
+
const endpoints = resolveRpcUrls(chainConfig.rpcUrl ?? '', chainConfig.rpcUrls);
|
|
57
|
+
if (endpoints.length === 0) {
|
|
58
|
+
tracePrivateEmptyVm('rpc-endpoints-absent');
|
|
59
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
60
|
+
}
|
|
61
|
+
const configuredChainId = chainConfig.chainId?.match(/^evm:(0|[1-9][0-9]*)$/u)?.[1];
|
|
62
|
+
if ((chainConfig.chainId !== undefined && configuredChainId === undefined)
|
|
63
|
+
|| !ethers.isAddress(chainConfig.hubAddress)) {
|
|
64
|
+
tracePrivateEmptyVm('chain-binding-absent');
|
|
65
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
66
|
+
}
|
|
67
|
+
const chainId = (await bindings.readAdapterEvmChainId()).toString();
|
|
68
|
+
if (configuredChainId !== undefined && configuredChainId !== chainId) {
|
|
69
|
+
tracePrivateEmptyVm('chain-binding-mismatch');
|
|
70
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
71
|
+
}
|
|
72
|
+
// Normalize external bindings once. The registry supplies the graph name;
|
|
73
|
+
// it is not restricted to the RFC-64 author-lane grammar.
|
|
74
|
+
const hubAddress = chainConfig.hubAddress.toLowerCase();
|
|
75
|
+
assertCanonicalChainId(chainId);
|
|
76
|
+
assertCanonicalEvmAddress(caller);
|
|
77
|
+
assertCanonicalEvmAddress(hubAddress);
|
|
78
|
+
const registered = await agent.readRfc64RegisteredAuthoritySnapshotV1(contextGraphId, signal);
|
|
79
|
+
if (registered === null || registered.expectedOnChainId !== before.onChainId) {
|
|
80
|
+
tracePrivateEmptyVm('indexed-private-authority-absent');
|
|
81
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
82
|
+
}
|
|
83
|
+
const indexed = registered.snapshot;
|
|
84
|
+
if (indexed.chainId !== chainId
|
|
85
|
+
|| indexed.accessPolicy !== 1
|
|
86
|
+
|| finalizedContextGraphSnapshotMismatchV1(indexed, {
|
|
87
|
+
onChainId: registered.expectedOnChainId,
|
|
88
|
+
nameHash: registered.expectedNameHash,
|
|
89
|
+
}) !== undefined) {
|
|
90
|
+
tracePrivateEmptyVm('indexed-private-authority-absent');
|
|
91
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
92
|
+
}
|
|
93
|
+
const depth = bindings.readResolvedFinalityConfirmations();
|
|
94
|
+
const proven = await proveRegisteredPrivateEmptyVmV1({
|
|
95
|
+
contextGraphId,
|
|
96
|
+
onChainContextGraphId: indexed.contextGraphId,
|
|
97
|
+
callerAgentAddress: caller,
|
|
98
|
+
chainId,
|
|
99
|
+
hubAddress,
|
|
100
|
+
governanceContractAddress: indexed.governanceContract,
|
|
101
|
+
snapshot: createStrictCurrentFinalizedEvmSnapshotScopeV1({
|
|
102
|
+
chainId, endpoints,
|
|
103
|
+
...(depth === undefined ? {} : { finalityConfirmations: depth }),
|
|
104
|
+
owner: 'rfc64',
|
|
105
|
+
}),
|
|
106
|
+
signal: signal ? AbortSignal.any([signal, AbortSignal.timeout(45_000)]) : AbortSignal.timeout(45_000),
|
|
107
|
+
});
|
|
108
|
+
if (!proven) {
|
|
109
|
+
tracePrivateEmptyVm('finalized-zero-proof-false');
|
|
110
|
+
return UNPROVEN_PRIVATE_EMPTY_VM;
|
|
111
|
+
}
|
|
112
|
+
return { proven: true, metadataRevision, onChainId: before.onChainId };
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
tracePrivateEmptyVm(`proof-error:${error instanceof Error ? error.name : 'unknown'}`);
|
|
116
|
+
return signal?.aborted || !isFinalizedChainAdmissionContention(error)
|
|
117
|
+
? UNPROVEN_PRIVATE_EMPTY_VM : RETRYABLE_PRIVATE_EMPTY_VM;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=registered-private-empty-vm-attempt-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registered-private-empty-vm-attempt-v1.js","sourceRoot":"","sources":["../src/registered-private-empty-vm-attempt-v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Bind an externally signed KA id to its author lane and exact low-96 slot. */
|
|
2
|
+
export declare function resolveReservedKaIdAllocationV1(author: string, reservedKaId: bigint, chainId: string, allocator?: Readonly<{
|
|
3
|
+
reconcile(authorAddress: string, observedNumber: bigint): void;
|
|
4
|
+
}>): Readonly<{
|
|
5
|
+
author: string;
|
|
6
|
+
expectedKaNumber: bigint;
|
|
7
|
+
allocateKaNumber: () => Promise<{
|
|
8
|
+
number: bigint;
|
|
9
|
+
reservedUal: string;
|
|
10
|
+
}>;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=reserved-ka-id-allocation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reserved-ka-id-allocation.d.ts","sourceRoot":"","sources":["../src/reserved-ka-id-allocation.ts"],"names":[],"mappings":"AAKA,gFAAgF;AAChF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAE,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACvF,QAAQ,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E,CAAC,CAqBD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { ethers } from 'ethers';
|
|
3
|
+
import { KaNumberAllocator } from './allocator.js';
|
|
4
|
+
/** Bind an externally signed KA id to its author lane and exact low-96 slot. */
|
|
5
|
+
export function resolveReservedKaIdAllocationV1(author, reservedKaId, chainId, allocator) {
|
|
6
|
+
const canonicalAuthor = ethers.getAddress(author);
|
|
7
|
+
const { author: reservedAuthor, number } = KaNumberAllocator.unpack(reservedKaId);
|
|
8
|
+
if (reservedAuthor !== canonicalAuthor.toLowerCase()) {
|
|
9
|
+
throw new Error(`Reserved KA id ${reservedKaId} is outside author ${canonicalAuthor}'s namespace`);
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
// Lifecycle subjects preserve the caller spelling across create/write/finalize.
|
|
13
|
+
author,
|
|
14
|
+
expectedKaNumber: number,
|
|
15
|
+
allocateKaNumber: async () => {
|
|
16
|
+
// The signed slot is already consumed. Keep local allocation above it.
|
|
17
|
+
allocator?.reconcile(canonicalAuthor, number);
|
|
18
|
+
return {
|
|
19
|
+
number,
|
|
20
|
+
reservedUal: `did:dkg:${chainId}/${canonicalAuthor.toLowerCase()}/${number}`,
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=reserved-ka-id-allocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reserved-ka-id-allocation.js","sourceRoot":"","sources":["../src/reserved-ka-id-allocation.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,gFAAgF;AAChF,MAAM,UAAU,+BAA+B,CAC7C,MAAc,EACd,YAAoB,EACpB,OAAe,EACf,SAAwF;IAMxF,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClF,IAAI,cAAc,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,kBAAkB,YAAY,sBAAsB,eAAe,cAAc,CAClF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,gFAAgF;QAChF,MAAM;QACN,gBAAgB,EAAE,MAAM;QACxB,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,uEAAuE;YACvE,SAAS,EAAE,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO;gBACL,MAAM;gBACN,WAAW,EAAE,WAAW,OAAO,IAAI,eAAe,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;aAC7E,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -55,7 +55,9 @@ export interface Rfc64AuthorityRpcProbeEvidenceV1 {
|
|
|
55
55
|
*/
|
|
56
56
|
chainReadOptions(signal?: AbortSignal, onProjectionServed?: (served: ContextGraphAuthorityProjectionServedEvidence) => void): ContextGraphAuthorityReadOptions;
|
|
57
57
|
}
|
|
58
|
-
export interface Rfc64AuthorityReadRunOptionsV1 {
|
|
58
|
+
export interface Rfc64AuthorityReadRunOptionsV1<T = never> {
|
|
59
|
+
/** Local evidence only, chosen under the permit during cooldown. Undefined defers. */
|
|
60
|
+
readonly retainedFallback?: (signal: AbortSignal) => Promise<T | undefined>;
|
|
59
61
|
/**
|
|
60
62
|
* Admit this read even while the circuit is open.
|
|
61
63
|
*
|
|
@@ -130,7 +132,7 @@ export declare class Rfc64AuthorityReadCoordinatorV1 {
|
|
|
130
132
|
* mechanism: after one full-pool exhaustion the next admitted read observes
|
|
131
133
|
* the open circuit instead of walking the same endpoints.
|
|
132
134
|
*/
|
|
133
|
-
run<T>(signal: AbortSignal | undefined, operation: (signal: AbortSignal, evidence: Rfc64AuthorityRpcProbeEvidenceV1) => Promise<T>, options?: Rfc64AuthorityReadRunOptionsV1): Promise<T>;
|
|
135
|
+
run<T>(signal: AbortSignal | undefined, operation: (signal: AbortSignal, evidence: Rfc64AuthorityRpcProbeEvidenceV1) => Promise<T>, options?: Rfc64AuthorityReadRunOptionsV1<T>): Promise<T>;
|
|
134
136
|
/**
|
|
135
137
|
* Run a governed read on the latency-bounded foreground lane.
|
|
136
138
|
*
|
|
@@ -153,7 +155,7 @@ export declare class Rfc64AuthorityReadCoordinatorV1 {
|
|
|
153
155
|
* was admitted, and the failures of one outage round coalesce into a single
|
|
154
156
|
* backoff step.
|
|
155
157
|
*/
|
|
156
|
-
runForeground<T>(signal: AbortSignal | undefined, operation: (signal: AbortSignal, evidence: Rfc64AuthorityRpcProbeEvidenceV1) => Promise<T>, options?: Rfc64AuthorityReadRunOptionsV1): Promise<T>;
|
|
158
|
+
runForeground<T>(signal: AbortSignal | undefined, operation: (signal: AbortSignal, evidence: Rfc64AuthorityRpcProbeEvidenceV1) => Promise<T>, options?: Rfc64AuthorityReadRunOptionsV1<T>): Promise<T>;
|
|
157
159
|
whenIdle(): Promise<void>;
|
|
158
160
|
close(): Promise<void>;
|
|
159
161
|
reopen(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority-rpc-circuit-breaker-v1.d.ts","sourceRoot":"","sources":["../../src/rfc64/authority-rpc-circuit-breaker-v1.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gCAAgC,EACrC,KAAK,6CAA6C,EAEnD,MAAM,iCAAiC,CAAC;AAKzC,eAAO,MAAM,wCAAwC,EACnD,kCAA2C,CAAC;AAE9C,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uCAAuC;IACtD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAChD,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,kFAAkF;AAClF,MAAM,MAAM,wCAAwC,GAAG,gCAAgC,GAAG,QAAQ,CAAC;IACjG,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC,CAAC;AAEH,MAAM,WAAW,gCAAgC;IAC/C;;;;;;;;;;;;;;;;;;OAkBG;IACH,wBAAwB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,wCAAwC,CAAC;IACzF;;;;;;OAMG;IACH,gBAAgB,CACd,MAAM,CAAC,EAAE,WAAW,EACpB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,6CAA6C,KAAK,IAAI,GACnF,gCAAgC,CAAC;CACrC;AAED,MAAM,WAAW,8BAA8B;
|
|
1
|
+
{"version":3,"file":"authority-rpc-circuit-breaker-v1.d.ts","sourceRoot":"","sources":["../../src/rfc64/authority-rpc-circuit-breaker-v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -195,6 +195,15 @@ export class Rfc64AuthorityReadCoordinatorV1 {
|
|
|
195
195
|
async #attempt(runSignal, operation, options) {
|
|
196
196
|
throwIfAborted(runSignal);
|
|
197
197
|
const now = this.#now();
|
|
198
|
+
if (this.#roundInProgress(now) && options.retainedFallback !== undefined) {
|
|
199
|
+
const retained = await options.retainedFallback(runSignal);
|
|
200
|
+
throwIfAborted(runSignal);
|
|
201
|
+
// Local evidence cannot close or extend a provider outage round.
|
|
202
|
+
if (retained !== undefined)
|
|
203
|
+
return retained;
|
|
204
|
+
const retryAfterMs = Math.max(0, this.#retryAtMs - this.#now());
|
|
205
|
+
throw new Rfc64AuthorityRpcCircuitOpenErrorV1(this.#retryAtMs, retryAfterMs);
|
|
206
|
+
}
|
|
198
207
|
if (options.admitWhileOpen !== true && this.#roundInProgress(now)) {
|
|
199
208
|
throw new Rfc64AuthorityRpcCircuitOpenErrorV1(this.#retryAtMs, this.#retryAtMs - now);
|
|
200
209
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authority-rpc-circuit-breaker-v1.js","sourceRoot":"","sources":["../../src/rfc64/authority-rpc-circuit-breaker-v1.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,4BAA4B,GAI7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,yCAAyC,EAAE,MAClD,kCAAkC,CAAC;AAErC,MAAM,CAAC,MAAM,wCAAwC,GACnD,kCAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"authority-rpc-circuit-breaker-v1.js","sourceRoot":"","sources":["../../src/rfc64/authority-rpc-circuit-breaker-v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Digest32V1 } from '@origintrail-official/dkg-core';
|
|
2
|
+
import type { Rfc64OperationalAppliedHeadV1 } from './catalog-operational-applied-heads-v1.js';
|
|
3
|
+
import type { Rfc64CatalogReplayRecoveryStatusV1 } from './catalog-replay-recovery-runtime-v1.js';
|
|
4
|
+
import type { Rfc64PublicCatalogHeadAnnouncementV1 } from './public-catalog-transport-v1.js';
|
|
5
|
+
/** Per-graph facts shared by operator projection and strict readiness. */
|
|
6
|
+
export interface Rfc64CatalogCompletionFactsV1 {
|
|
7
|
+
readonly heads: readonly Readonly<Rfc64OperationalAppliedHeadV1>[];
|
|
8
|
+
readonly targets: readonly Rfc64PublicCatalogHeadAnnouncementV1[];
|
|
9
|
+
readonly promisedTargets: readonly Rfc64PublicCatalogHeadAnnouncementV1[] | null;
|
|
10
|
+
readonly promisedRowCounts: ReadonlyMap<string, string | null>;
|
|
11
|
+
readonly replay: Readonly<Rfc64CatalogReplayRecoveryStatusV1> | null;
|
|
12
|
+
readonly replaySnapshotUnstable?: boolean;
|
|
13
|
+
readonly targetCapacityExceeded: boolean;
|
|
14
|
+
readonly localCuratedOwnerHeads?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface Rfc64CatalogCompletionEvidenceV1 {
|
|
17
|
+
readonly replayActive: boolean;
|
|
18
|
+
readonly replayFailed: boolean;
|
|
19
|
+
readonly replayUnverified: boolean;
|
|
20
|
+
readonly replayUnsettled: boolean;
|
|
21
|
+
readonly pendingTargets: readonly Rfc64PublicCatalogHeadAnnouncementV1[];
|
|
22
|
+
readonly catalogHeadDigest: Digest32V1 | null;
|
|
23
|
+
readonly expectedCatalogHeadDigest: Digest32V1 | null;
|
|
24
|
+
readonly inventoryDigest: Digest32V1 | null;
|
|
25
|
+
readonly rowCount: string | null;
|
|
26
|
+
readonly rowProjection: Readonly<{
|
|
27
|
+
expectedRowCount: string | null;
|
|
28
|
+
missingRowCount: string | null;
|
|
29
|
+
}>;
|
|
30
|
+
readonly corroborated: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A diagnostic can describe retained heads without proving that recovery
|
|
34
|
+
* finished. `corroborated` additionally requires a provider's settled promise
|
|
35
|
+
* set. Restart, an empty peer walk and local authority acceptance cannot supply it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function evaluateRfc64CatalogCompletionV1(input: Rfc64CatalogCompletionFactsV1): Rfc64CatalogCompletionEvidenceV1;
|
|
38
|
+
//# sourceMappingURL=catalog-completion-evidence-v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-completion-evidence-v1.d.ts","sourceRoot":"","sources":["../../src/rfc64/catalog-completion-evidence-v1.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAG/F,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AAE7F,0EAA0E;AAC1E,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,SAAS,oCAAoC,EAAE,CAAC;IAClE,QAAQ,CAAC,eAAe,EAAE,SAAS,oCAAoC,EAAE,GAAG,IAAI,CAAC;IACjF,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,kCAAkC,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,SAAS,oCAAoC,EAAE,CAAC;IACzE,QAAQ,CAAC,iBAAiB,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,yBAAyB,EAAE,UAAU,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;QAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACtG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,6BAA6B,GAAG,gCAAgC,CAsCvH"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { rfc64CatalogTargetScopeKeyV1 } from './catalog-operational-applied-heads-v1.js';
|
|
3
|
+
import { aggregateRfc64DigestV1, projectRfc64OperationalRowCountsV1, rfc64CatalogTargetExactIdentityKeyV1, sumDecimalCountsV1 } from './catalog-operational-targets-v1.js';
|
|
4
|
+
/**
|
|
5
|
+
* A diagnostic can describe retained heads without proving that recovery
|
|
6
|
+
* finished. `corroborated` additionally requires a provider's settled promise
|
|
7
|
+
* set. Restart, an empty peer walk and local authority acceptance cannot supply it.
|
|
8
|
+
*/
|
|
9
|
+
export function evaluateRfc64CatalogCompletionV1(input) {
|
|
10
|
+
const { heads, targets, promisedTargets, promisedRowCounts, replay, targetCapacityExceeded } = input;
|
|
11
|
+
const replayActive = input.replaySnapshotUnstable === true || replay?.active === true;
|
|
12
|
+
const replayFailed = replay?.failed === true;
|
|
13
|
+
const replayUnverified = replay?.unverified === true && heads.length > 0
|
|
14
|
+
&& input.localCuratedOwnerHeads !== true;
|
|
15
|
+
const replayUnsettled = replayActive || replayFailed || replayUnverified;
|
|
16
|
+
const authoritativeTargets = [...new Map([
|
|
17
|
+
...targets, ...promisedTargets ?? [],
|
|
18
|
+
].map((target) => [rfc64CatalogTargetExactIdentityKeyV1(target), target])).values()];
|
|
19
|
+
const appliedByScope = new Map(heads.map((head) => [head.scopeKey, head]));
|
|
20
|
+
const isPending = (target) => {
|
|
21
|
+
const applied = appliedByScope.get(rfc64CatalogTargetScopeKeyV1(target));
|
|
22
|
+
return applied === undefined || BigInt(target.catalogVersion) > BigInt(applied.snapshot.catalogVersion)
|
|
23
|
+
|| (target.catalogVersion === applied.snapshot.catalogVersion
|
|
24
|
+
&& target.catalogHeadObjectDigest !== applied.snapshot.currentCatalogHeadDigest);
|
|
25
|
+
};
|
|
26
|
+
const pendingTargets = targets.filter(isPending);
|
|
27
|
+
const catalogHeadDigest = aggregateRfc64DigestV1(heads.map(({ snapshot }) => snapshot.currentCatalogHeadDigest));
|
|
28
|
+
const expectedHeadDigests = new Map(heads.map(({ scopeKey, snapshot }) => [scopeKey, snapshot.currentCatalogHeadDigest]));
|
|
29
|
+
for (const target of pendingTargets)
|
|
30
|
+
expectedHeadDigests.set(rfc64CatalogTargetScopeKeyV1(target), target.catalogHeadObjectDigest);
|
|
31
|
+
const expectedCatalogHeadDigest = aggregateRfc64DigestV1([...expectedHeadDigests.values()]);
|
|
32
|
+
const inventoryDigest = aggregateRfc64DigestV1(heads.map(({ snapshot }) => snapshot.appliedInventoryDigest));
|
|
33
|
+
const rowCount = heads.length === 0 ? null : sumDecimalCountsV1(heads.map(({ snapshot }) => snapshot.inventoryRowCount));
|
|
34
|
+
const rowProjectionUnavailable = targetCapacityExceeded || replayActive || replayUnverified
|
|
35
|
+
|| (replayFailed && promisedTargets === null);
|
|
36
|
+
const rowProjection = rowProjectionUnavailable
|
|
37
|
+
? Object.freeze({ expectedRowCount: null, missingRowCount: null })
|
|
38
|
+
: projectRfc64OperationalRowCountsV1(heads, authoritativeTargets, promisedRowCounts);
|
|
39
|
+
const corroborated = replay !== null && !replayUnsettled && !targetCapacityExceeded
|
|
40
|
+
&& promisedTargets !== null && promisedTargets.length > 0
|
|
41
|
+
&& !authoritativeTargets.some(isPending)
|
|
42
|
+
&& rowCount !== null && BigInt(rowCount) > 0n
|
|
43
|
+
&& rowProjection.missingRowCount === '0' && rowProjection.expectedRowCount === rowCount;
|
|
44
|
+
return Object.freeze({
|
|
45
|
+
replayActive, replayFailed, replayUnverified, replayUnsettled, pendingTargets,
|
|
46
|
+
catalogHeadDigest, expectedCatalogHeadDigest, inventoryDigest, rowCount, rowProjection, corroborated,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=catalog-completion-evidence-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-completion-evidence-v1.js","sourceRoot":"","sources":["../../src/rfc64/catalog-completion-evidence-v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { type TimestampMsV1 } from '@origintrail-official/dkg-core';
|
|
1
|
+
import { type AuthorCatalogScopeV1, type TimestampMsV1 } from '@origintrail-official/dkg-core';
|
|
2
2
|
import type { Rfc64ControlObjectOperationsV1 } from './control-object-store-v1.js';
|
|
3
|
-
import type { AppliedCatalogHeadSnapshotV1, Rfc64InventoryV1OperationsV1 } from './inventory-v1/index.js';
|
|
3
|
+
import type { AppliedCatalogHeadSnapshotV1, AppliedCatalogHeadsSnapshotV1, Rfc64InventoryV1OperationsV1 } from './inventory-v1/index.js';
|
|
4
4
|
export declare const RFC64_OPERATIONAL_STATUS_HEAD_READ_CONCURRENCY_V1 = 8;
|
|
5
5
|
export interface Rfc64OperationalAppliedHeadV1 {
|
|
6
6
|
readonly snapshot: AppliedCatalogHeadSnapshotV1;
|
|
7
7
|
readonly issuedAt: TimestampMsV1;
|
|
8
8
|
readonly contextGraphId: string;
|
|
9
9
|
readonly scopeKey: string;
|
|
10
|
+
readonly scope: Readonly<AuthorCatalogScopeV1>;
|
|
10
11
|
}
|
|
11
12
|
/** The persistence surface the operational applied-head view reads. */
|
|
12
13
|
export interface Rfc64OperationalAppliedHeadsStorageV1 {
|
|
@@ -33,6 +34,8 @@ export declare function rfc64CatalogTargetScopeKeyV1(input: Readonly<{
|
|
|
33
34
|
* instead of being re-read and re-verified per call. Only a load in which
|
|
34
35
|
* every head verified is reused as a whole; heads that failed are retried.
|
|
35
36
|
* Concurrent callers that read the same inventory share one load.
|
|
37
|
+
* A caller may supply a captured, scoped snapshot without replacing the
|
|
38
|
+
* stable storage identity that owns the verification cache.
|
|
36
39
|
*/
|
|
37
|
-
export declare function loadRfc64OperationalAppliedHeadsV1(storage: Rfc64OperationalAppliedHeadsStorageV1): Promise<readonly Readonly<Rfc64OperationalAppliedHeadV1>[]>;
|
|
40
|
+
export declare function loadRfc64OperationalAppliedHeadsV1(storage: Rfc64OperationalAppliedHeadsStorageV1, snapshot?: AppliedCatalogHeadsSnapshotV1): Promise<readonly Readonly<Rfc64OperationalAppliedHeadV1>[]>;
|
|
38
41
|
//# sourceMappingURL=catalog-operational-applied-heads-v1.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-operational-applied-heads-v1.d.ts","sourceRoot":"","sources":["../../src/rfc64/catalog-operational-applied-heads-v1.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EACV,4BAA4B,
|
|
1
|
+
{"version":3,"file":"catalog-operational-applied-heads-v1.d.ts","sourceRoot":"","sources":["../../src/rfc64/catalog-operational-applied-heads-v1.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,oBAAoB,EAEzB,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EACV,4BAA4B,EAC5B,6BAA6B,EAE7B,4BAA4B,EAC7B,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,iDAAiD,IAAI,CAAC;AAEnE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;CAChD;AAED,uEAAuE;AACvE,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,4BAA4B,EAAE,mCAAmC,CAAC,CAAC;IAC5F,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,8BAA8B,EAAE,2BAA2B,CAAC,CAAC;CAC5F;AA4BD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,GAAG,MAAM,CAQV;AAwED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kCAAkC,CACtD,OAAO,EAAE,qCAAqC,EAC9C,QAAQ,GAAE,6BAAqF,GAC9F,OAAO,CAAC,SAAS,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC,CA+B7D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
import { assertSignedAuthorCatalogHeadEnvelopeV1, } from '@origintrail-official/dkg-core';
|
|
2
|
+
import { assertSignedAuthorCatalogHeadEnvelopeV1, deriveAuthorCatalogScopeFromHeadV1, } from '@origintrail-official/dkg-core';
|
|
3
3
|
import { verifyControlEnvelopeIssuerSignatureV1 } from '@origintrail-official/dkg-chain';
|
|
4
4
|
import { mapWithConcurrency } from '../map-with-concurrency.js';
|
|
5
5
|
export const RFC64_OPERATIONAL_STATUS_HEAD_READ_CONCURRENCY_V1 = 8;
|
|
@@ -32,6 +32,7 @@ async function readRfc64OperationalAppliedHeadProjectionV1(storage, objectDigest
|
|
|
32
32
|
return Object.freeze({
|
|
33
33
|
issuedAt: payload.issuedAt,
|
|
34
34
|
contextGraphId: payload.contextGraphId,
|
|
35
|
+
scope: Object.freeze(deriveAuthorCatalogScopeFromHeadV1(payload)),
|
|
35
36
|
scopeKey: rfc64CatalogTargetScopeKeyV1({
|
|
36
37
|
networkId: payload.networkId,
|
|
37
38
|
contextGraphId: payload.contextGraphId,
|
|
@@ -78,8 +79,10 @@ async function readRfc64OperationalAppliedHeadsV1(storage, cache, snapshots, tok
|
|
|
78
79
|
* instead of being re-read and re-verified per call. Only a load in which
|
|
79
80
|
* every head verified is reused as a whole; heads that failed are retried.
|
|
80
81
|
* Concurrent callers that read the same inventory share one load.
|
|
82
|
+
* A caller may supply a captured, scoped snapshot without replacing the
|
|
83
|
+
* stable storage identity that owns the verification cache.
|
|
81
84
|
*/
|
|
82
|
-
export async function loadRfc64OperationalAppliedHeadsV1(storage) {
|
|
85
|
+
export async function loadRfc64OperationalAppliedHeadsV1(storage, snapshot = storage.inventory.readAppliedCatalogHeadsSnapshotV1()) {
|
|
83
86
|
let cache = rfc64OperationalAppliedHeadsCachesV1.get(storage);
|
|
84
87
|
if (cache === undefined) {
|
|
85
88
|
cache = {
|
|
@@ -90,7 +93,7 @@ export async function loadRfc64OperationalAppliedHeadsV1(storage) {
|
|
|
90
93
|
};
|
|
91
94
|
rfc64OperationalAppliedHeadsCachesV1.set(storage, cache);
|
|
92
95
|
}
|
|
93
|
-
const { token, heads: snapshots } =
|
|
96
|
+
const { token, heads: snapshots } = snapshot;
|
|
94
97
|
if (cache.complete?.token === token)
|
|
95
98
|
return cache.complete.heads;
|
|
96
99
|
if (cache.inFlight?.token === token)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-operational-applied-heads-v1.js","sourceRoot":"","sources":["../../src/rfc64/catalog-operational-applied-heads-v1.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,uCAAuC,
|
|
1
|
+
{"version":3,"file":"catalog-operational-applied-heads-v1.js","sourceRoot":"","sources":["../../src/rfc64/catalog-operational-applied-heads-v1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AuthorCatalogScopeV1 } from '@origintrail-official/dkg-core';
|
|
2
|
+
import { type Rfc64OperationalAppliedHeadV1 } from './catalog-operational-applied-heads-v1.js';
|
|
3
|
+
import type { Rfc64PersistenceV1 } from './persistence-v1.js';
|
|
4
|
+
import type { Rfc64PublicCatalogHeadAnnouncementV1 } from './public-catalog-transport-v1.js';
|
|
5
|
+
export declare function groupRfc64OperationalAppliedHeadsV1(heads: readonly Readonly<Rfc64OperationalAppliedHeadV1>[]): ReadonlyMap<string, readonly Readonly<Rfc64OperationalAppliedHeadV1>[]>;
|
|
6
|
+
export declare function loadRfc64OperationalPromisedRowCountsV1(persistence: Rfc64PersistenceV1, targets: readonly Rfc64PublicCatalogHeadAnnouncementV1[]): Promise<ReadonlyMap<string, string | null>>;
|
|
7
|
+
export interface Rfc64VerifiedPromisedHeadV1 {
|
|
8
|
+
readonly scope: Readonly<AuthorCatalogScopeV1>;
|
|
9
|
+
readonly totalRows: string;
|
|
10
|
+
}
|
|
11
|
+
/** Keep the authenticated scope with the row promise; lookup keys are not domain facts. */
|
|
12
|
+
export declare function loadRfc64OperationalPromisedHeadsV1(persistence: Rfc64PersistenceV1, targets: readonly Rfc64PublicCatalogHeadAnnouncementV1[]): Promise<ReadonlyMap<string, Readonly<Rfc64VerifiedPromisedHeadV1> | null>>;
|
|
13
|
+
//# sourceMappingURL=catalog-operational-reads-v1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-operational-reads-v1.d.ts","sourceRoot":"","sources":["../../src/rfc64/catalog-operational-reads-v1.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+E,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGxJ,OAAO,EAAqD,KAAK,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAElJ,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,kCAAkC,CAAC;AAE7F,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,SAAS,QAAQ,CAAC,6BAA6B,CAAC,EAAE,GACxD,WAAW,CAAC,MAAM,EAAE,SAAS,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAQzE;AAED,wBAAsB,uCAAuC,CAC3D,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,SAAS,oCAAoC,EAAE,GACvD,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAG7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,2FAA2F;AAC3F,wBAAsB,mCAAmC,CACvD,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,SAAS,oCAAoC,EAAE,GACvD,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC,CAAC,CAqC5E"}
|