@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
package/dist/dkg-agent-join.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { verifiedDelegationKeyIds, verifyJoinEncryptionKeyBundle } from './internal/join-encryption-key-bundle.js';
|
|
1
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
3
|
/**
|
|
3
4
|
* Join-request subsystem extracted from dkg-agent.ts as a mixin holder:
|
|
@@ -15,6 +16,8 @@ import { ethers } from 'ethers';
|
|
|
15
16
|
import { canonicalAgentDidSubject } from './profile.js';
|
|
16
17
|
import { computeDelegationDigest, computeWorkspaceEncryptionKeysAttestationDigest, signAgentDelegation, verifyAgentDelegation, } from './auth/agent-delegation.js';
|
|
17
18
|
import { activeWorkspaceEncryptionKeys, verifyWorkspaceEncryptionKeyBinding, } from './agent-keystore.js';
|
|
19
|
+
import { requesterHasDirectLoopbackConnection, selectCuratorJoinDialAddress, } from './curator-dial-address.js';
|
|
20
|
+
import { recoverCuratorConnectionBeforeQueueing } from './curator-peer-connection.js';
|
|
18
21
|
import { stripLiteral, } from './dkg-agent-utils.js';
|
|
19
22
|
import { JOIN_DELEGATION_VALIDITY_MS, JOIN_REQUEST_SEND_TIMEOUT_MS, } from './dkg-agent-constants.js';
|
|
20
23
|
import { normalizeAgentDid, joinDelegationScope, inferAdapterPublisherAddress, } from './dkg-agent-helpers.js';
|
|
@@ -45,7 +48,6 @@ const JOIN_ENCRYPTION_KEY_CACHE_GRAPH = 'urn:dkg:local:join-encryption-key-cache
|
|
|
45
48
|
const JOIN_ENCRYPTION_KEY_CACHE_ISSUED_AT = 'urn:dkg:local:join-encryption-key-cache:issued-at-ms';
|
|
46
49
|
const JOIN_ENCRYPTION_KEY_CACHE_KEY_SET_DIGEST = 'urn:dkg:local:join-encryption-key-cache:key-set-digest';
|
|
47
50
|
const JOIN_ENCRYPTION_KEY_CACHE_DIGEST_RE = /^0x[0-9a-f]{64}$/i;
|
|
48
|
-
const JOIN_ENCRYPTION_KEY_LIMIT = 8;
|
|
49
51
|
const requesterJoinStateCache = new WeakMap();
|
|
50
52
|
const requesterJoinStateTails = new WeakMap();
|
|
51
53
|
const requesterJoinForwardTails = new WeakMap();
|
|
@@ -60,9 +62,6 @@ function sameStringSet(left, right) {
|
|
|
60
62
|
}
|
|
61
63
|
return true;
|
|
62
64
|
}
|
|
63
|
-
function verifiedDelegationKeyIds(agentAddress, keys) {
|
|
64
|
-
return new Set(keys.map((key) => workspaceAgentEncryptionKeyId(agentAddress, decodeWorkspaceEncryptionKey(key.publicEncryptionKey)).toLowerCase()));
|
|
65
|
-
}
|
|
66
65
|
function requesterJoinStateKey(contextGraphId, agentAddress) {
|
|
67
66
|
return `${contextGraphId}\u0000${agentAddress.toLowerCase()}`;
|
|
68
67
|
}
|
|
@@ -150,65 +149,25 @@ async function withJoinEncryptionKeyCacheLock(store, agentSubject, task) {
|
|
|
150
149
|
tails.delete(agentSubject);
|
|
151
150
|
}
|
|
152
151
|
}
|
|
153
|
-
function
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
return null;
|
|
157
|
-
if (!Array.isArray(keys) || keys.length === 0 || keys.length > JOIN_ENCRYPTION_KEY_LIMIT) {
|
|
158
|
-
throw new Error(`Join request must carry between 1 and ${JOIN_ENCRYPTION_KEY_LIMIT} workspace encryption keys.`);
|
|
159
|
-
}
|
|
160
|
-
// Preserve the existing admission contract for a signed carrier mismatch:
|
|
161
|
-
// policy evaluation reports a bounded pending decision. Do not accept the
|
|
162
|
-
// bundle because the carrier has not proven it is the signed delegatee.
|
|
163
|
-
if (delegation.delegateePeerId !== carrierPeerId)
|
|
164
|
-
return null;
|
|
165
|
-
// issuedAtMs becomes the durable cross-CG cache high-water, so authenticate
|
|
166
|
-
// the base delegation here as well as at the admission boundary.
|
|
167
|
-
verifyAgentDelegation(delegation);
|
|
168
|
-
if (!Number.isSafeInteger(delegation.issuedAtMs) || delegation.issuedAtMs < 0) {
|
|
169
|
-
throw new Error('Join request carries an invalid encryption-key freshness timestamp.');
|
|
170
|
-
}
|
|
171
|
-
const verified = keys.map((key) => {
|
|
172
|
-
if (key === null
|
|
173
|
-
|| typeof key !== 'object'
|
|
174
|
-
|| key.encryptionKeyAlgorithm !== WORKSPACE_AGENT_ENCRYPTION_KEY_ALGORITHM_X25519
|
|
175
|
-
|| typeof key.publicEncryptionKey !== 'string'
|
|
176
|
-
|| typeof key.encryptionKeyProof !== 'string') {
|
|
177
|
-
throw new Error('Join request carries a malformed workspace encryption key.');
|
|
178
|
-
}
|
|
179
|
-
let valid = false;
|
|
180
|
-
try {
|
|
181
|
-
valid = verifyWorkspaceEncryptionKeyBinding(delegation.agentAddress, key.encryptionKeyAlgorithm, key.publicEncryptionKey, key.encryptionKeyProof);
|
|
182
|
-
}
|
|
183
|
-
catch {
|
|
184
|
-
valid = false;
|
|
185
|
-
}
|
|
186
|
-
if (!valid) {
|
|
187
|
-
throw new Error('Join request carries an invalid workspace encryption key proof.');
|
|
188
|
-
}
|
|
189
|
-
return key;
|
|
152
|
+
function curatorJoinDialAddress(agent, requesterPeerId) {
|
|
153
|
+
return selectCuratorJoinDialAddress(agent.node.multiaddrs, agent.peerId, {
|
|
154
|
+
preferLoopback: requesterHasDirectLoopbackConnection(agent.node.libp2p.getConnections(), requesterPeerId),
|
|
190
155
|
});
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
publicEncryptionKey: key.publicEncryptionKey,
|
|
207
|
-
})))].sort();
|
|
208
|
-
return {
|
|
209
|
-
issuedAtMs: delegation.issuedAtMs,
|
|
210
|
-
keySetDigest: `0x${createHash('sha256').update(JSON.stringify(canonicalKeySet)).digest('hex')}`,
|
|
211
|
-
keys: verified,
|
|
156
|
+
}
|
|
157
|
+
function joinApprovalPayload(agent, contextGraphId, agentAddress, requestGeneration, curatorBinding) {
|
|
158
|
+
return (targetPeerId) => {
|
|
159
|
+
const curatorDialAddress = curatorJoinDialAddress(agent, targetPeerId);
|
|
160
|
+
return JSON.stringify({
|
|
161
|
+
type: 'join-approved',
|
|
162
|
+
contextGraphId,
|
|
163
|
+
agentAddress,
|
|
164
|
+
requestGeneration,
|
|
165
|
+
...(curatorDialAddress === undefined ? {} : { curatorDialAddress }),
|
|
166
|
+
...(curatorBinding === null ? {} : {
|
|
167
|
+
curatorAgentAddress: curatorBinding.agentAddress,
|
|
168
|
+
curatorAuthorityEra: curatorBinding.authorityEra,
|
|
169
|
+
}),
|
|
170
|
+
});
|
|
212
171
|
};
|
|
213
172
|
}
|
|
214
173
|
export class JoinRequestMethods extends DKGAgentBase {
|
|
@@ -362,8 +321,9 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
362
321
|
}
|
|
363
322
|
// This is a total private-recipient cap, not merely an allowlist-row cap:
|
|
364
323
|
// participant agents receive ciphertext keys and private read authority too.
|
|
365
|
-
//
|
|
366
|
-
|
|
324
|
+
// Preserve the finalized chain roster for registered private graphs;
|
|
325
|
+
// unregistered graphs use the effective store-backed metadata union.
|
|
326
|
+
const activeMembers = await withRpcUsageSite(CG_AUTH_RPC_SITES.joinPolicyRoster, () => this.getMemberRecoveryRosterSource(contextGraphId)) ?? [];
|
|
367
327
|
return {
|
|
368
328
|
ownerDid,
|
|
369
329
|
ownerAgentAddress,
|
|
@@ -594,7 +554,7 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
594
554
|
withAdmissionLock: (contextGraphId, operation) => this.withContextGraphJoinAdmissionLock(contextGraphId, operation),
|
|
595
555
|
isPolicyDisableRequested: (contextGraphId) => (this.contextGraphJoinPolicyDisableIntentCounts.get(contextGraphId) ?? 0) > 0,
|
|
596
556
|
getContextGraphMeta: (contextGraphId) => this.getCgMeta(contextGraphId),
|
|
597
|
-
getActiveMembers: (contextGraphId) => withRpcUsageSite(CG_AUTH_RPC_SITES.joinAdmissionRoster, () => this.
|
|
557
|
+
getActiveMembers: (contextGraphId) => withRpcUsageSite(CG_AUTH_RPC_SITES.joinAdmissionRoster, () => this.getMemberRecoveryRosterSource(contextGraphId)),
|
|
598
558
|
getContextGraphOwner: (contextGraphId) => this.getContextGraphOwner(contextGraphId),
|
|
599
559
|
resolveLocalOwnerAddress: (ownerDid) => this.resolveLocalJoinPolicyOwnerAddress(ownerDid),
|
|
600
560
|
assertAlreadyMemberDelegationRefresh: (contextGraphId, delegation, carrierPeerId) => this.assertAlreadyMemberDelegationRefresh(contextGraphId, delegation, carrierPeerId),
|
|
@@ -794,6 +754,20 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
794
754
|
cache.delete(key);
|
|
795
755
|
throw error;
|
|
796
756
|
}
|
|
757
|
+
finally {
|
|
758
|
+
this.fenceRequesterJoinStateChange(contextGraphId);
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* The join proof behind an approved replica's reads, catalog roster and
|
|
763
|
+
* catalog authority is bound to the requester state. That state lives in
|
|
764
|
+
* its own graph, so store-level invalidation does not reach the context
|
|
765
|
+
* graph's facts revision, which is what those paths compare after the reads
|
|
766
|
+
* that follow the proof. Move it here for every attempted change, including
|
|
767
|
+
* one that failed part-way, so an in-flight result is discarded.
|
|
768
|
+
*/
|
|
769
|
+
fenceRequesterJoinStateChange(contextGraphId) {
|
|
770
|
+
this.contextGraphMetaProjection.markDirty(contextGraphId);
|
|
797
771
|
}
|
|
798
772
|
async clearRequesterJoinRequestState(contextGraphId, agentAddress) {
|
|
799
773
|
const key = requesterJoinStateKey(contextGraphId, agentAddress);
|
|
@@ -810,6 +784,9 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
810
784
|
cache.delete(key);
|
|
811
785
|
throw error;
|
|
812
786
|
}
|
|
787
|
+
finally {
|
|
788
|
+
this.fenceRequesterJoinStateChange(contextGraphId);
|
|
789
|
+
}
|
|
813
790
|
}
|
|
814
791
|
/** Start a fresh requester-side generation and reset its local status. */
|
|
815
792
|
async setRequesterJoinRequestPending(contextGraphId, agentAddress, requestGeneration, curatorPeerId) {
|
|
@@ -1653,18 +1630,37 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
1653
1630
|
// The outbox replays these bytes verbatim, so a binding missing here is
|
|
1654
1631
|
// missing for good; this read is admitted even while the circuit is open.
|
|
1655
1632
|
const curatorBinding = await this.readRfc64CurrentCuratorAuthorityBindingV1(contextGraphId, { admitWhileOpen: true }).catch(() => null);
|
|
1656
|
-
const payload =
|
|
1657
|
-
type: 'join-approved',
|
|
1658
|
-
contextGraphId,
|
|
1659
|
-
agentAddress,
|
|
1660
|
-
requestGeneration: resolvedGeneration,
|
|
1661
|
-
...(curatorBinding === null ? {} : {
|
|
1662
|
-
curatorAgentAddress: curatorBinding.agentAddress,
|
|
1663
|
-
curatorAuthorityEra: curatorBinding.authorityEra,
|
|
1664
|
-
}),
|
|
1665
|
-
});
|
|
1633
|
+
const payload = joinApprovalPayload(this, contextGraphId, agentAddress, resolvedGeneration, curatorBinding);
|
|
1666
1634
|
const result = await this.deliverPrivateJoinNotification(contextGraphId, agentAddress, resolvedGeneration, payload, 'join-approval');
|
|
1667
1635
|
if (result.delivered) {
|
|
1636
|
+
// The requester can join over an already-open P2P connection. Its
|
|
1637
|
+
// connect-time catalog replay then predates the private roster update,
|
|
1638
|
+
// and the cold requester cannot pull a head until it knows the new
|
|
1639
|
+
// policy digest. Refresh after the durable approval and push only this
|
|
1640
|
+
// graph's current head to the exact peer that received the approval.
|
|
1641
|
+
// Bounded retries cover an overlapping authority composition that was
|
|
1642
|
+
// revision-fenced during admission; transport still checks the current
|
|
1643
|
+
// policy and roster before sending any private head.
|
|
1644
|
+
if (result.peerId
|
|
1645
|
+
&& result.peerId !== this.peerId
|
|
1646
|
+
&& this.resolveRfc64CatalogServingAuthorityV1(contextGraphId).track2Enabled) {
|
|
1647
|
+
for (const delayMs of [0, 250, 1_000]) {
|
|
1648
|
+
if (delayMs > 0) {
|
|
1649
|
+
await new Promise((resolve) => { setTimeout(resolve, delayMs); });
|
|
1650
|
+
}
|
|
1651
|
+
try {
|
|
1652
|
+
await this.reconcileRfc64CatalogAccessAuthorityV1(contextGraphId);
|
|
1653
|
+
if (await this.reannounceRfc64CatalogAfterJoinApprovalV1(contextGraphId, agentAddress, result.peerId))
|
|
1654
|
+
return;
|
|
1655
|
+
}
|
|
1656
|
+
catch {
|
|
1657
|
+
// The approval remains durable. The next bounded attempt can
|
|
1658
|
+
// observe the current authority generation.
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
this.log.warn(createOperationContext('system'), `RFC-64 catalog replay remains pending after join approval for "${contextGraphId}"`);
|
|
1662
|
+
this.scheduleRfc64CatalogAfterJoinApprovalRetryV1(contextGraphId, agentAddress, result.peerId);
|
|
1663
|
+
}
|
|
1668
1664
|
return;
|
|
1669
1665
|
}
|
|
1670
1666
|
// rc.9 PR-10: the substrate outbox already holds the queued send
|
|
@@ -1716,16 +1712,7 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
1716
1712
|
// The outbox replays these bytes verbatim, so a binding missing here is
|
|
1717
1713
|
// missing for good; this read is admitted even while the circuit is open.
|
|
1718
1714
|
const curatorBinding = await this.readRfc64CurrentCuratorAuthorityBindingV1(contextGraphId, { admitWhileOpen: true }).catch(() => null);
|
|
1719
|
-
const payload =
|
|
1720
|
-
type: 'join-approved',
|
|
1721
|
-
contextGraphId,
|
|
1722
|
-
agentAddress,
|
|
1723
|
-
requestGeneration,
|
|
1724
|
-
...(curatorBinding === null ? {} : {
|
|
1725
|
-
curatorAgentAddress: curatorBinding.agentAddress,
|
|
1726
|
-
curatorAuthorityEra: curatorBinding.authorityEra,
|
|
1727
|
-
}),
|
|
1728
|
-
});
|
|
1715
|
+
const payload = joinApprovalPayload(this, contextGraphId, agentAddress, requestGeneration, curatorBinding);
|
|
1729
1716
|
const result = await this.deliverPrivateJoinNotification(contextGraphId, agentAddress, requestGeneration, payload, 'join-approval');
|
|
1730
1717
|
// rc.9 PR-10: attempts counter is no longer tracked at the agent
|
|
1731
1718
|
// layer (substrate outbox owns retry bookkeeping per messageId).
|
|
@@ -2090,7 +2077,6 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
2090
2077
|
* fire-and-forget)
|
|
2091
2078
|
*/
|
|
2092
2079
|
async deliverPrivateJoinNotification(contextGraphId, agentAddress, requestGeneration, payload, label) {
|
|
2093
|
-
const payloadBytes = new TextEncoder().encode(payload);
|
|
2094
2080
|
const ctx = createOperationContext('system');
|
|
2095
2081
|
const addrLower = agentAddress.toLowerCase();
|
|
2096
2082
|
let targetPeerId = null;
|
|
@@ -2153,6 +2139,9 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
2153
2139
|
return { delivered: true, peerId: targetPeerId, error: null };
|
|
2154
2140
|
}
|
|
2155
2141
|
try {
|
|
2142
|
+
// Resolve the exact recipient before encoding the approval. The outbox
|
|
2143
|
+
// then persists these final bytes unchanged across later retries.
|
|
2144
|
+
const payloadBytes = new TextEncoder().encode(typeof payload === 'function' ? payload(targetPeerId) : payload);
|
|
2156
2145
|
// rc.9 PR-10: send via the Universal Messenger substrate. If
|
|
2157
2146
|
// the substrate can't deliver synchronously it enqueues into
|
|
2158
2147
|
// the SQLite outbox and retries in the background — this
|
|
@@ -2251,18 +2240,17 @@ export class JoinRequestMethods extends DKGAgentBase {
|
|
|
2251
2240
|
if (curatorPeerId !== this.peerId) {
|
|
2252
2241
|
recordAcceptedBy(curatorPeerId);
|
|
2253
2242
|
try {
|
|
2254
|
-
|
|
2255
|
-
// (matches the legacy sendToPeer ergonomics so the existing
|
|
2256
|
-
// catch path with broadcast fallback still kicks in).
|
|
2243
|
+
await recoverCuratorConnectionBeforeQueueing({ node: this.node, peerResolver: this.peerResolver, log: this.log }, curatorPeerId, AbortSignal.timeout(JOIN_REQUEST_SEND_TIMEOUT_MS), ctx);
|
|
2257
2244
|
const sendResult = await this.messenger.sendReliable(curatorPeerId, PROTOCOL_JOIN_REQUEST, payloadBytes, { timeoutMs: JOIN_REQUEST_SEND_TIMEOUT_MS });
|
|
2258
2245
|
if (!sendResult.delivered) {
|
|
2259
2246
|
// `delivered:false` means Messenger durably queued this exact
|
|
2260
2247
|
// request; it is still accepted for eventual delivery. Preserve the
|
|
2261
|
-
// generation
|
|
2262
|
-
//
|
|
2248
|
+
// generation and trusted curator. A durable queue acceptance is
|
|
2249
|
+
// pending success rather than a synchronous delivery failure.
|
|
2263
2250
|
acceptedForDelivery = true;
|
|
2264
2251
|
recordAcceptedBy(curatorPeerId);
|
|
2265
|
-
|
|
2252
|
+
this.log.info(ctx, `Queued join request for "${contextGraphId}" from ${agentAddress} to curator ${curatorPeerId.slice(-8)}`);
|
|
2253
|
+
return { delivered: 0, queued: true, errors };
|
|
2266
2254
|
}
|
|
2267
2255
|
const responseBytes = sendResult.response;
|
|
2268
2256
|
const response = JSON.parse(new TextDecoder().decode(responseBytes));
|