@origintrail-official/dkg-agent 10.0.13 → 10.0.14
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/chain-reconciler.d.ts +15 -0
- package/dist/chain-reconciler.d.ts.map +1 -1
- package/dist/chain-reconciler.js +98 -13
- package/dist/chain-reconciler.js.map +1 -1
- package/dist/context-graph-binding-state.d.ts +74 -0
- package/dist/context-graph-binding-state.d.ts.map +1 -0
- package/dist/context-graph-binding-state.js +167 -0
- package/dist/context-graph-binding-state.js.map +1 -0
- package/dist/context-graph-chain-discovery-binding.d.ts +23 -0
- package/dist/context-graph-chain-discovery-binding.d.ts.map +1 -0
- package/dist/context-graph-chain-discovery-binding.js +71 -0
- package/dist/context-graph-chain-discovery-binding.js.map +1 -0
- package/dist/curator-meta-refresh.d.ts.map +1 -1
- package/dist/curator-meta-refresh.js +14 -3
- package/dist/curator-meta-refresh.js.map +1 -1
- package/dist/dkg-agent-base.d.ts +34 -5
- package/dist/dkg-agent-base.d.ts.map +1 -1
- package/dist/dkg-agent-base.js +37 -4
- package/dist/dkg-agent-base.js.map +1 -1
- package/dist/dkg-agent-cg-registry.d.ts +12 -0
- package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
- package/dist/dkg-agent-cg-registry.js +18 -13
- package/dist/dkg-agent-cg-registry.js.map +1 -1
- package/dist/dkg-agent-cg-resolve.d.ts +38 -2
- package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
- package/dist/dkg-agent-cg-resolve.js +111 -64
- package/dist/dkg-agent-cg-resolve.js.map +1 -1
- package/dist/dkg-agent-constants.d.ts +14 -1
- package/dist/dkg-agent-constants.d.ts.map +1 -1
- package/dist/dkg-agent-constants.js +14 -1
- package/dist/dkg-agent-constants.js.map +1 -1
- package/dist/dkg-agent-helpers.d.ts.map +1 -1
- package/dist/dkg-agent-helpers.js +1 -1
- package/dist/dkg-agent-helpers.js.map +1 -1
- package/dist/dkg-agent-lifecycle.d.ts +90 -17
- package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
- package/dist/dkg-agent-lifecycle.js +954 -256
- package/dist/dkg-agent-lifecycle.js.map +1 -1
- package/dist/dkg-agent-publish.d.ts +8 -0
- package/dist/dkg-agent-publish.d.ts.map +1 -1
- package/dist/dkg-agent-publish.js +80 -14
- package/dist/dkg-agent-publish.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts +21 -12
- package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-auto-publish.js +30 -34
- package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-bootstrap.d.ts +15 -1
- package/dist/dkg-agent-rfc64-catalog-bootstrap.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog-bootstrap.js +53 -0
- package/dist/dkg-agent-rfc64-catalog-bootstrap.js.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
- package/dist/dkg-agent-rfc64-catalog.js +3 -11
- package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
- package/dist/dkg-agent-swm-host.d.ts +118 -13
- package/dist/dkg-agent-swm-host.d.ts.map +1 -1
- package/dist/dkg-agent-swm-host.js +776 -212
- package/dist/dkg-agent-swm-host.js.map +1 -1
- package/dist/dkg-agent-swm-substrate.d.ts +9 -0
- package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
- package/dist/dkg-agent-swm-substrate.js +11 -0
- package/dist/dkg-agent-swm-substrate.js.map +1 -1
- package/dist/dkg-agent-types.d.ts +116 -9
- package/dist/dkg-agent-types.d.ts.map +1 -1
- package/dist/dkg-agent-types.js.map +1 -1
- package/dist/dkg-agent.d.ts +17 -2
- package/dist/dkg-agent.d.ts.map +1 -1
- package/dist/dkg-agent.js +142 -45
- package/dist/dkg-agent.js.map +1 -1
- package/dist/finalization-handler.d.ts +7 -0
- package/dist/finalization-handler.d.ts.map +1 -1
- package/dist/finalization-handler.js +300 -68
- package/dist/finalization-handler.js.map +1 -1
- package/dist/finalization-recovery.d.ts.map +1 -1
- package/dist/finalization-recovery.js +9 -0
- package/dist/finalization-recovery.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/named-ka-publish-recovery.d.ts +20 -8
- package/dist/named-ka-publish-recovery.d.ts.map +1 -1
- package/dist/named-ka-publish-recovery.js +144 -14
- package/dist/named-ka-publish-recovery.js.map +1 -1
- package/dist/p2p/sync-transport.d.ts.map +1 -1
- package/dist/p2p/sync-transport.js +16 -8
- package/dist/p2p/sync-transport.js.map +1 -1
- package/dist/receipt-backed-graph-scoped-evidence.d.ts +35 -0
- package/dist/receipt-backed-graph-scoped-evidence.d.ts.map +1 -0
- package/dist/receipt-backed-graph-scoped-evidence.js +191 -0
- package/dist/receipt-backed-graph-scoped-evidence.js.map +1 -0
- package/dist/rfc64/catalog-authority-config-v1.d.ts.map +1 -1
- package/dist/rfc64/catalog-authority-config-v1.js +8 -4
- package/dist/rfc64/catalog-authority-config-v1.js.map +1 -1
- package/dist/rfc64/finalized-policy-agent-precommit-v1.d.ts +32 -0
- package/dist/rfc64/finalized-policy-agent-precommit-v1.d.ts.map +1 -0
- package/dist/rfc64/finalized-policy-agent-precommit-v1.js +101 -0
- package/dist/rfc64/finalized-policy-agent-precommit-v1.js.map +1 -0
- package/dist/rfc64/finalized-policy-verifier-v1.d.ts +31 -0
- package/dist/rfc64/finalized-policy-verifier-v1.d.ts.map +1 -0
- package/dist/rfc64/finalized-policy-verifier-v1.js +120 -0
- package/dist/rfc64/finalized-policy-verifier-v1.js.map +1 -0
- package/dist/rfc64/finalized-vm-agent-precommit-v1.d.ts.map +1 -1
- package/dist/rfc64/finalized-vm-agent-precommit-v1.js +11 -30
- package/dist/rfc64/finalized-vm-agent-precommit-v1.js.map +1 -1
- package/dist/rfc64/finalized-vm-runtime-v1.d.ts.map +1 -1
- package/dist/rfc64/finalized-vm-runtime-v1.js +30 -44
- package/dist/rfc64/finalized-vm-runtime-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-activation-config-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-activation-config-v1.js +9 -4
- package/dist/rfc64/public-catalog-activation-config-v1.js.map +1 -1
- package/dist/rfc64/public-catalog-native-receiver-v1.d.ts +1 -0
- package/dist/rfc64/public-catalog-native-receiver-v1.d.ts.map +1 -1
- package/dist/rfc64/public-catalog-native-receiver-v1.js +40 -27
- package/dist/rfc64/public-catalog-native-receiver-v1.js.map +1 -1
- package/dist/sync/attempt-telemetry.d.ts +1 -1
- package/dist/sync/attempt-telemetry.d.ts.map +1 -1
- package/dist/sync/attempt-telemetry.js +1 -0
- package/dist/sync/attempt-telemetry.js.map +1 -1
- package/dist/sync/auth/request-build.d.ts.map +1 -1
- package/dist/sync/auth/request-build.js +5 -2
- package/dist/sync/auth/request-build.js.map +1 -1
- package/dist/sync/backpressure.d.ts +46 -3
- package/dist/sync/backpressure.d.ts.map +1 -1
- package/dist/sync/backpressure.js +355 -21
- package/dist/sync/backpressure.js.map +1 -1
- package/dist/sync/catchup-pass-policy.d.ts +108 -10
- package/dist/sync/catchup-pass-policy.d.ts.map +1 -1
- package/dist/sync/catchup-pass-policy.js +103 -12
- package/dist/sync/catchup-pass-policy.js.map +1 -1
- package/dist/sync/catchup-policy.d.ts +19 -4
- package/dist/sync/catchup-policy.d.ts.map +1 -1
- package/dist/sync/catchup-policy.js +20 -8
- package/dist/sync/catchup-policy.js.map +1 -1
- package/dist/sync/checkpoint/state.d.ts +21 -18
- package/dist/sync/checkpoint/state.d.ts.map +1 -1
- package/dist/sync/checkpoint/state.js +51 -42
- package/dist/sync/checkpoint/state.js.map +1 -1
- package/dist/sync/durable-integrity.d.ts +70 -6
- package/dist/sync/durable-integrity.d.ts.map +1 -1
- package/dist/sync/durable-integrity.js +239 -26
- package/dist/sync/durable-integrity.js.map +1 -1
- package/dist/sync/durable-recovery-coordinator.d.ts +76 -0
- package/dist/sync/durable-recovery-coordinator.d.ts.map +1 -0
- package/dist/sync/durable-recovery-coordinator.js +126 -0
- package/dist/sync/durable-recovery-coordinator.js.map +1 -0
- package/dist/sync/durable-recovery-runner.d.ts +53 -0
- package/dist/sync/durable-recovery-runner.d.ts.map +1 -0
- package/dist/sync/durable-recovery-runner.js +264 -0
- package/dist/sync/durable-recovery-runner.js.map +1 -0
- package/dist/sync/error-tags.d.ts +26 -8
- package/dist/sync/error-tags.d.ts.map +1 -1
- package/dist/sync/error-tags.js +92 -51
- package/dist/sync/error-tags.js.map +1 -1
- package/dist/sync/graph-scoped-swm-recovery.d.ts +52 -0
- package/dist/sync/graph-scoped-swm-recovery.d.ts.map +1 -1
- package/dist/sync/graph-scoped-swm-recovery.js +259 -10
- package/dist/sync/graph-scoped-swm-recovery.js.map +1 -1
- package/dist/sync/on-connect/sync-on-connect.d.ts +36 -3
- package/dist/sync/on-connect/sync-on-connect.d.ts.map +1 -1
- package/dist/sync/on-connect/sync-on-connect.js +107 -9
- package/dist/sync/on-connect/sync-on-connect.js.map +1 -1
- package/dist/sync/policy.d.ts +30 -1
- package/dist/sync/policy.d.ts.map +1 -1
- package/dist/sync/policy.js.map +1 -1
- package/dist/sync/priority-admission-queue.d.ts +6 -1
- package/dist/sync/priority-admission-queue.d.ts.map +1 -1
- package/dist/sync/priority-admission-queue.js +14 -15
- package/dist/sync/priority-admission-queue.js.map +1 -1
- package/dist/sync/reconciler-timing.d.ts +17 -0
- package/dist/sync/reconciler-timing.d.ts.map +1 -0
- package/dist/sync/reconciler-timing.js +25 -0
- package/dist/sync/reconciler-timing.js.map +1 -0
- package/dist/sync/requester/durable-sync-budget.d.ts +16 -0
- package/dist/sync/requester/durable-sync-budget.d.ts.map +1 -1
- package/dist/sync/requester/durable-sync-budget.js +33 -5
- package/dist/sync/requester/durable-sync-budget.js.map +1 -1
- package/dist/sync/requester/durable-sync.d.ts +51 -2
- package/dist/sync/requester/durable-sync.d.ts.map +1 -1
- package/dist/sync/requester/durable-sync.js +410 -41
- package/dist/sync/requester/durable-sync.js.map +1 -1
- package/dist/sync/requester/finalized-swm-twin-reconciliation.d.ts +51 -0
- package/dist/sync/requester/finalized-swm-twin-reconciliation.d.ts.map +1 -0
- package/dist/sync/requester/finalized-swm-twin-reconciliation.js +396 -0
- package/dist/sync/requester/finalized-swm-twin-reconciliation.js.map +1 -0
- package/dist/sync/requester/manifest-resume-policy.d.ts +53 -0
- package/dist/sync/requester/manifest-resume-policy.d.ts.map +1 -0
- package/dist/sync/requester/manifest-resume-policy.js +65 -0
- package/dist/sync/requester/manifest-resume-policy.js.map +1 -0
- package/dist/sync/requester/ordered-sync.d.ts +2 -0
- package/dist/sync/requester/ordered-sync.d.ts.map +1 -1
- package/dist/sync/requester/ordered-sync.js +1 -0
- package/dist/sync/requester/ordered-sync.js.map +1 -1
- package/dist/sync/requester/page-fetch.d.ts +91 -3
- package/dist/sync/requester/page-fetch.d.ts.map +1 -1
- package/dist/sync/requester/page-fetch.js +449 -116
- package/dist/sync/requester/page-fetch.js.map +1 -1
- package/dist/sync/requester/shared-memory-sync.d.ts +106 -4
- package/dist/sync/requester/shared-memory-sync.d.ts.map +1 -1
- package/dist/sync/requester/shared-memory-sync.js +468 -70
- package/dist/sync/requester/shared-memory-sync.js.map +1 -1
- package/dist/sync/requester/swm-recovery.d.ts +12 -2
- package/dist/sync/requester/swm-recovery.d.ts.map +1 -1
- package/dist/sync/requester/swm-recovery.js +65 -8
- package/dist/sync/requester/swm-recovery.js.map +1 -1
- package/dist/sync/requester/swm-snapshot-materializer.d.ts +81 -0
- package/dist/sync/requester/swm-snapshot-materializer.d.ts.map +1 -1
- package/dist/sync/requester/swm-snapshot-materializer.js +344 -48
- package/dist/sync/requester/swm-snapshot-materializer.js.map +1 -1
- package/dist/sync/responder/durable-data-request-policy.d.ts.map +1 -1
- package/dist/sync/responder/durable-data-request-policy.js +2 -1
- package/dist/sync/responder/durable-data-request-policy.js.map +1 -1
- package/dist/sync/responder/graph-plan.d.ts +4 -4
- package/dist/sync/responder/graph-plan.d.ts.map +1 -1
- package/dist/sync/responder/graph-plan.js +74 -54
- package/dist/sync/responder/graph-plan.js.map +1 -1
- package/dist/sync/responder/snapshot-cache.d.ts +2 -0
- package/dist/sync/responder/snapshot-cache.d.ts.map +1 -1
- package/dist/sync/responder/snapshot-cache.js +1 -0
- package/dist/sync/responder/snapshot-cache.js.map +1 -1
- package/dist/sync/responder/sync-handler.d.ts.map +1 -1
- package/dist/sync/responder/sync-handler.js +12 -2
- package/dist/sync/responder/sync-handler.js.map +1 -1
- package/dist/sync/selected-swm-bootstrap-admission.d.ts +45 -0
- package/dist/sync/selected-swm-bootstrap-admission.d.ts.map +1 -0
- package/dist/sync/selected-swm-bootstrap-admission.js +116 -0
- package/dist/sync/selected-swm-bootstrap-admission.js.map +1 -0
- package/dist/sync/selected-swm-continuation.d.ts +61 -0
- package/dist/sync/selected-swm-continuation.d.ts.map +1 -0
- package/dist/sync/selected-swm-continuation.js +272 -0
- package/dist/sync/selected-swm-continuation.js.map +1 -0
- package/dist/sync/selected-swm-graph-sync-status.d.ts +17 -0
- package/dist/sync/selected-swm-graph-sync-status.d.ts.map +1 -0
- package/dist/sync/selected-swm-graph-sync-status.js +18 -0
- package/dist/sync/selected-swm-graph-sync-status.js.map +1 -0
- package/dist/sync/selected-swm-meta-budget.d.ts +39 -0
- package/dist/sync/selected-swm-meta-budget.d.ts.map +1 -0
- package/dist/sync/selected-swm-meta-budget.js +146 -0
- package/dist/sync/selected-swm-meta-budget.js.map +1 -0
- package/dist/sync/selected-swm-meta-fetcher.d.ts +63 -0
- package/dist/sync/selected-swm-meta-fetcher.d.ts.map +1 -0
- package/dist/sync/selected-swm-meta-fetcher.js +465 -0
- package/dist/sync/selected-swm-meta-fetcher.js.map +1 -0
- package/dist/sync/selected-swm-meta-transfer-coordinator.d.ts +11 -0
- package/dist/sync/selected-swm-meta-transfer-coordinator.d.ts.map +1 -0
- package/dist/sync/selected-swm-meta-transfer-coordinator.js +44 -0
- package/dist/sync/selected-swm-meta-transfer-coordinator.js.map +1 -0
- package/dist/sync/shared-memory-freshness.d.ts +60 -0
- package/dist/sync/shared-memory-freshness.d.ts.map +1 -0
- package/dist/sync/shared-memory-freshness.js +124 -0
- package/dist/sync/shared-memory-freshness.js.map +1 -0
- package/dist/sync-verify-worker-impl.d.ts.map +1 -1
- package/dist/sync-verify-worker-impl.js +12 -3
- package/dist/sync-verify-worker-impl.js.map +1 -1
- package/dist/sync-verify-worker.d.ts +2 -0
- package/dist/sync-verify-worker.d.ts.map +1 -1
- package/dist/sync-verify-worker.js.map +1 -1
- package/dist/vm-recovery-footprint.d.ts +37 -0
- package/dist/vm-recovery-footprint.d.ts.map +1 -0
- package/dist/vm-recovery-footprint.js +168 -0
- package/dist/vm-recovery-footprint.js.map +1 -0
- package/dist/vm-recovery-microbatch.d.ts +27 -0
- package/dist/vm-recovery-microbatch.d.ts.map +1 -0
- package/dist/vm-recovery-microbatch.js +77 -0
- package/dist/vm-recovery-microbatch.js.map +1 -0
- package/dist/vm-recovery-provider-policy.d.ts +16 -0
- package/dist/vm-recovery-provider-policy.d.ts.map +1 -0
- package/dist/vm-recovery-provider-policy.js +71 -0
- package/dist/vm-recovery-provider-policy.js.map +1 -0
- package/dist/vm-recovery-types.d.ts +32 -0
- package/dist/vm-recovery-types.d.ts.map +1 -0
- package/dist/vm-recovery-types.js +6 -0
- package/dist/vm-recovery-types.js.map +1 -0
- package/package.json +10 -7
- package/dist/context-graph-binding-generation.d.ts +0 -5
- package/dist/context-graph-binding-generation.d.ts.map +0 -1
- package/dist/context-graph-binding-generation.js +0 -16
- package/dist/context-graph-binding-generation.js.map +0 -1
|
@@ -66,6 +66,12 @@ export interface PendingOrdinalRecoveryResult {
|
|
|
66
66
|
* instead of snapping back to the watermark.
|
|
67
67
|
*/
|
|
68
68
|
continuationOrdinal: number | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Recovery has bounded work that should be scheduled immediately. This is
|
|
71
|
+
* deliberately separate from the ordered scan cursor so implementation-
|
|
72
|
+
* specific retries cannot starve untouched ordinals.
|
|
73
|
+
*/
|
|
74
|
+
hasImmediateRecoveryWork: boolean;
|
|
69
75
|
/**
|
|
70
76
|
* True only when recovery intentionally skipped networking because its
|
|
71
77
|
* per-CG cooldown is active. This preserves the continuation without
|
|
@@ -96,6 +102,15 @@ export interface ChainReconcilerDeps {
|
|
|
96
102
|
maxOrdinalsPerPass?: number;
|
|
97
103
|
/** Maximum ordinal reconciliations allowed to run concurrently in one pass. */
|
|
98
104
|
maxOrdinalConcurrency?: number;
|
|
105
|
+
/**
|
|
106
|
+
* Number of slots in a bounded pass reserved for the newest outstanding
|
|
107
|
+
* ordinals. The remaining slots keep advancing the historical scan cursor.
|
|
108
|
+
*
|
|
109
|
+
* This is intentionally opt-in. Ordinary member/Core reconciliation keeps
|
|
110
|
+
* strict oldest-first behaviour, while an explicitly selected cold Edge can
|
|
111
|
+
* make the current head useful quickly without starving durable history.
|
|
112
|
+
*/
|
|
113
|
+
recentOrdinalsPerPass?: number;
|
|
99
114
|
/**
|
|
100
115
|
* Fetch one exact batch containing only locally-missing KAs, then re-run
|
|
101
116
|
* local verification for those ordinals. Undefined preserves scan-only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-reconciler.d.ts","sourceRoot":"","sources":["../src/chain-reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,8BAA8B,CAAC;CACnD;AAED,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,gFAAgF;IAChF,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD;;;;OAIG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CACvB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzF,iEAAiE;IACjE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,qFAAqF;IACrF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,WAAW,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"chain-reconciler.d.ts","sourceRoot":"","sources":["../src/chain-reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,8BAA8B,CAAC;CACnD;AAED,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,gFAAgF;IAChF,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD;;;;OAIG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CACvB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,SAAS,qBAAqB,EAAE,EACzC,SAAS,EAAE,MAAM,GAAG,SAAS,KAC1B,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzF,iEAAiE;IACjE,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,qFAAqF;IACrF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,8EAA8E;IAC9E,WAAW,EAAE,OAAO,CAAC;CACtB;AAoGD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAgO1B;AAsCD,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD;;;;;;;GAOG;AACH,qBAAa,qBAAqB,CAAC,CAAC;IAehC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAf5B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkD;IACzE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAGzB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EAC3D,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,EACjE,OAAO,GAAE,4BAAiC;IAqB5C,uFAAuF;IACvF,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK9B,iFAAiF;IACjF,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIlC;;;;;OAKG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAMxC,8EAA8E;IAC9E,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAItC,+EAA+E;IAC/E,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKhC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIzD,QAAQ,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;IAI/D,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtB,6EAA6E;IAC7E,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxC,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,KAAK;IAwCb,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,KAAK;CA4Dd;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAEX,OAAO,CAAC,QAAQ,CAAC,GAAG;IADhC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;gBACrB,GAAG,SAAO;IAEvC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAStB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAKtD"}
|
package/dist/chain-reconciler.js
CHANGED
|
@@ -24,6 +24,71 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import { recordCompletion, absorbConfirmed, ordinalsToReconcile, } from './reconcile-cursor.js';
|
|
26
26
|
import { VmReconcileQueueClosedError, VmReconcileQueueFullError, } from './vm-reconcile-service.js';
|
|
27
|
+
/**
|
|
28
|
+
* Build one bounded ordinal pass without mutating cursor state.
|
|
29
|
+
*
|
|
30
|
+
* The recent lane is a latency sample, not a second cursor. Keeping that
|
|
31
|
+
* distinction explicit prevents a continuation from the recent-first exact
|
|
32
|
+
* recovery queue from jumping the durable historical scan over older gaps.
|
|
33
|
+
*/
|
|
34
|
+
function planOrdinalPass(candidates, passLimit, requestedRecent, watermark) {
|
|
35
|
+
const recentCount = Number.isFinite(passLimit) && passLimit >= 2
|
|
36
|
+
? Math.min(requestedRecent, passLimit - 1)
|
|
37
|
+
: 0;
|
|
38
|
+
let historicalOrdinals;
|
|
39
|
+
let recentOrdinals = [];
|
|
40
|
+
if (recentCount > 0 && candidates.length > passLimit) {
|
|
41
|
+
const historicalCount = passLimit - recentCount;
|
|
42
|
+
historicalOrdinals = candidates.slice(0, historicalCount);
|
|
43
|
+
const historicalSet = new Set(historicalOrdinals);
|
|
44
|
+
recentOrdinals = candidates
|
|
45
|
+
.slice(-recentCount)
|
|
46
|
+
.filter((ordinal) => !historicalSet.has(ordinal));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
historicalOrdinals = candidates.slice(0, passLimit);
|
|
50
|
+
}
|
|
51
|
+
const ordinals = [...historicalOrdinals, ...recentOrdinals]
|
|
52
|
+
.sort((a, b) => a - b);
|
|
53
|
+
const recentOrdinalSet = new Set(recentOrdinals);
|
|
54
|
+
const usesRecentLane = recentOrdinals.length > 0;
|
|
55
|
+
const hasUnvisitedCandidates = candidates.length > ordinals.length;
|
|
56
|
+
const historicalContinuationOrdinal = historicalOrdinals.length > 0
|
|
57
|
+
? historicalOrdinals[historicalOrdinals.length - 1] + 1
|
|
58
|
+
: watermark;
|
|
59
|
+
return {
|
|
60
|
+
historicalOrdinals,
|
|
61
|
+
recentOrdinals,
|
|
62
|
+
ordinals,
|
|
63
|
+
usesRecentLane,
|
|
64
|
+
hasUnvisitedCandidates,
|
|
65
|
+
historicalContinuationOrdinal,
|
|
66
|
+
compareRecoveryTargets: (left, right) => {
|
|
67
|
+
const leftRecent = recentOrdinalSet.has(left.ordinal);
|
|
68
|
+
const rightRecent = recentOrdinalSet.has(right.ordinal);
|
|
69
|
+
if (leftRecent !== rightRecent)
|
|
70
|
+
return leftRecent ? -1 : 1;
|
|
71
|
+
return leftRecent ? right.ordinal - left.ordinal : left.ordinal - right.ordinal;
|
|
72
|
+
},
|
|
73
|
+
nextScanOrdinal: ({ watermark: currentWatermark, recoveryContinuationOrdinal, recoveryAttempted, recoveryCooldownOnly, }) => {
|
|
74
|
+
if (usesRecentLane) {
|
|
75
|
+
return hasUnvisitedCandidates
|
|
76
|
+
? Math.max(currentWatermark, historicalContinuationOrdinal)
|
|
77
|
+
: currentWatermark;
|
|
78
|
+
}
|
|
79
|
+
if (recoveryContinuationOrdinal !== undefined
|
|
80
|
+
&& (recoveryAttempted || recoveryCooldownOnly || !hasUnvisitedCandidates)) {
|
|
81
|
+
return Math.max(currentWatermark, recoveryContinuationOrdinal);
|
|
82
|
+
}
|
|
83
|
+
if (!hasUnvisitedCandidates)
|
|
84
|
+
return currentWatermark;
|
|
85
|
+
if (ordinals.length > 0) {
|
|
86
|
+
return Math.max(currentWatermark, historicalContinuationOrdinal);
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
27
92
|
/**
|
|
28
93
|
* One bounded sweep slice for a single CG: reconcile up to
|
|
29
94
|
* `maxOrdinalsPerPass` ordinals in `[watermark, head)` (skipping ones already
|
|
@@ -74,6 +139,7 @@ export async function reconcileContextGraph(deps, state, localCgId, onChainCgId)
|
|
|
74
139
|
let recoveryContinuationOrdinal;
|
|
75
140
|
let recoveryAttempted = false;
|
|
76
141
|
let recoveryCooldownOnly = false;
|
|
142
|
+
let recoveryHasImmediateWork = false;
|
|
77
143
|
const outstandingBefore = ordinalsToReconcile(state, head);
|
|
78
144
|
const configuredLimit = deps.maxOrdinalsPerPass;
|
|
79
145
|
const passLimit = configuredLimit === undefined
|
|
@@ -87,8 +153,11 @@ export async function reconcileContextGraph(deps, state, localCgId, onChainCgId)
|
|
|
87
153
|
state.scanOrdinal = state.watermark;
|
|
88
154
|
candidates = outstandingBefore;
|
|
89
155
|
}
|
|
90
|
-
const
|
|
91
|
-
|
|
156
|
+
const requestedRecent = Number.isFinite(deps.recentOrdinalsPerPass)
|
|
157
|
+
? Math.max(0, Math.floor(deps.recentOrdinalsPerPass ?? 0))
|
|
158
|
+
: 0;
|
|
159
|
+
const passPlan = planOrdinalPass(candidates, passLimit, requestedRecent, state.watermark);
|
|
160
|
+
const { ordinals, hasUnvisitedCandidates, } = passPlan;
|
|
92
161
|
if (headUnavailable) {
|
|
93
162
|
state.scanOrdinal = state.watermark;
|
|
94
163
|
}
|
|
@@ -141,7 +210,13 @@ export async function reconcileContextGraph(deps, state, localCgId, onChainCgId)
|
|
|
141
210
|
const recoveryTargets = ordinals
|
|
142
211
|
.map((ordinal) => outcomes.get(ordinal))
|
|
143
212
|
.filter((outcome) => outcome?.status === 'pending' && outcome.recovery !== undefined)
|
|
144
|
-
.map((outcome) => outcome.recovery)
|
|
213
|
+
.map((outcome) => outcome.recovery)
|
|
214
|
+
// The exact-recovery executor has a tighter physical peer/request budget
|
|
215
|
+
// than the ordinal scanner. Spend that scarce budget on the recent slots
|
|
216
|
+
// this selected pass deliberately reserved, then use any remainder for
|
|
217
|
+
// the historical side. Cursor completion is still merged below in
|
|
218
|
+
// ordinal order, so this changes latency rather than correctness.
|
|
219
|
+
.sort(passPlan.compareRecoveryTargets);
|
|
145
220
|
if (!staleTarget && recoveryTargets.length > 0 && deps.recoverPendingOrdinals) {
|
|
146
221
|
const recovery = await deps.recoverPendingOrdinals(localCgId, onChainCgId, recoveryTargets, headBlock);
|
|
147
222
|
// Recovery is the longest await in the pass; the binding can be repaired
|
|
@@ -157,6 +232,7 @@ export async function reconcileContextGraph(deps, state, localCgId, onChainCgId)
|
|
|
157
232
|
recoveryContinuationOrdinal = recovery.continuationOrdinal;
|
|
158
233
|
recoveryAttempted = recovery.attemptedOrdinals.length > 0;
|
|
159
234
|
recoveryCooldownOnly = recovery.cooldownOnly === true;
|
|
235
|
+
recoveryHasImmediateWork = recovery.hasImmediateRecoveryWork;
|
|
160
236
|
}
|
|
161
237
|
}
|
|
162
238
|
// Cursor state is deliberately updated in ordinal order even though chain
|
|
@@ -180,22 +256,31 @@ export async function reconcileContextGraph(deps, state, localCgId, onChainCgId)
|
|
|
180
256
|
if (staleTarget || headUnavailable) {
|
|
181
257
|
state.scanOrdinal = state.watermark;
|
|
182
258
|
}
|
|
183
|
-
else
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
259
|
+
else {
|
|
260
|
+
// The recovery executor consumes recent targets first and therefore its
|
|
261
|
+
// continuation is ordered by recovery priority, not by chain ordinal. It
|
|
262
|
+
// must never become the durable scan cursor: on a growing graph that would
|
|
263
|
+
// move the cursor near the head and starve the untouched historical gap.
|
|
264
|
+
// Advance only from the oldest-side slice. The recovery continuation still
|
|
265
|
+
// contributes to `hasMore` below, while pending outcomes remain in the
|
|
266
|
+
// inventory and are revisited on a later historical cycle.
|
|
267
|
+
const nextScanOrdinal = passPlan.nextScanOrdinal({
|
|
268
|
+
watermark: state.watermark,
|
|
269
|
+
recoveryContinuationOrdinal,
|
|
270
|
+
recoveryAttempted,
|
|
271
|
+
recoveryCooldownOnly,
|
|
272
|
+
});
|
|
273
|
+
if (nextScanOrdinal !== undefined)
|
|
274
|
+
state.scanOrdinal = nextScanOrdinal;
|
|
192
275
|
}
|
|
193
276
|
const pending = ordinalsToReconcile(state, head).length;
|
|
194
277
|
const hasMore = !headUnavailable
|
|
195
278
|
&& !staleTarget
|
|
196
279
|
&& !recoveryCooldownOnly
|
|
197
280
|
&& (recoveryAttempted
|
|
198
|
-
? recoveryContinuationOrdinal !== undefined
|
|
281
|
+
? recoveryContinuationOrdinal !== undefined
|
|
282
|
+
|| recoveryHasImmediateWork
|
|
283
|
+
|| hasUnvisitedCandidates
|
|
199
284
|
: hasUnvisitedCandidates);
|
|
200
285
|
if (state.watermark !== before) {
|
|
201
286
|
deps.persistWatermark(localCgId, state.watermark);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-reconciler.js","sourceRoot":"","sources":["../src/chain-reconciler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chain-reconciler.js","sourceRoot":"","sources":["../src/chain-reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type AuthoritativeContextGraphBinding = {
|
|
2
|
+
bindingKind: 'authoritative';
|
|
3
|
+
onChainId: string;
|
|
4
|
+
};
|
|
5
|
+
export type ReverseNameHashContextGraphBinding = {
|
|
6
|
+
bindingKind: 'reverse-name-hash';
|
|
7
|
+
onChainId: string;
|
|
8
|
+
nameHash: string;
|
|
9
|
+
};
|
|
10
|
+
export type ContextGraphBinding = AuthoritativeContextGraphBinding | ReverseNameHashContextGraphBinding;
|
|
11
|
+
export type ContextGraphBindingTarget = ContextGraphBinding & {
|
|
12
|
+
bindingGeneration: number;
|
|
13
|
+
};
|
|
14
|
+
export type ContextGraphBindingTransition = {
|
|
15
|
+
previous: ContextGraphBinding | undefined;
|
|
16
|
+
current: ContextGraphBinding;
|
|
17
|
+
changed: boolean;
|
|
18
|
+
onChainIdChanged: boolean;
|
|
19
|
+
};
|
|
20
|
+
/** The durable portion of a subscription that owns an authoritative binding. */
|
|
21
|
+
export type ContextGraphBindingSubscription = {
|
|
22
|
+
onChainId?: string;
|
|
23
|
+
};
|
|
24
|
+
export type ContextGraphBindingSubscriptionState = ContextGraphBindingSubscription & {
|
|
25
|
+
subscribed?: boolean;
|
|
26
|
+
coreHosted?: boolean;
|
|
27
|
+
};
|
|
28
|
+
export type ContextGraphBindingSubscriptionFacts = {
|
|
29
|
+
readonly reverseCandidateCleared: boolean;
|
|
30
|
+
readonly admitted: boolean;
|
|
31
|
+
};
|
|
32
|
+
/** Contract Context Graph ids are positive, canonically formatted decimals. */
|
|
33
|
+
export declare function isCanonicalPositiveContextGraphId(value: unknown): value is string;
|
|
34
|
+
/**
|
|
35
|
+
* Single process-local owner for Context Graph binding provenance and fences.
|
|
36
|
+
*
|
|
37
|
+
* Authoritative ids remain stored on the durable subscription supplied by the
|
|
38
|
+
* caller. Reverse-name-hash candidates live only here, so they cannot leak into
|
|
39
|
+
* subscription persistence. Consumers ask this registry for the current typed
|
|
40
|
+
* binding or whether a captured target is still current; they never inspect a
|
|
41
|
+
* side map or reconstruct the provenance rules themselves.
|
|
42
|
+
*/
|
|
43
|
+
export declare class ContextGraphBindingState {
|
|
44
|
+
private readonly reverseCandidates;
|
|
45
|
+
private readonly generations;
|
|
46
|
+
/** Never reset: a deleted and recreated local id must not reuse an old fence. */
|
|
47
|
+
private nextGeneration;
|
|
48
|
+
currentBindingFor(localCgId: string, subscription: ContextGraphBindingSubscription | undefined): ContextGraphBinding | undefined;
|
|
49
|
+
hasBindingCandidate(localCgId: string, subscription: ContextGraphBindingSubscription | undefined): boolean;
|
|
50
|
+
matchesReverseCandidate(localCgId: string, subscription: ContextGraphBindingSubscription | undefined, onChainId: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Apply the binding-owned portion of one normalized subscription transition.
|
|
53
|
+
* The lifecycle layer supplies the canonical next commitment and consumes
|
|
54
|
+
* binding facts without reconstructing provenance. Consumer-specific cleanup
|
|
55
|
+
* policy remains outside this registry.
|
|
56
|
+
*/
|
|
57
|
+
applySubscriptionTransition(localCgId: string, previous: ContextGraphBindingSubscriptionState | undefined, next: ContextGraphBindingSubscriptionState, nextNameHash: string): ContextGraphBindingSubscriptionFacts;
|
|
58
|
+
bindAuthoritative(localCgId: string, subscription: ContextGraphBindingSubscription, newOnChainId: string): ContextGraphBindingTransition;
|
|
59
|
+
bindReverseCandidate(localCgId: string, subscription: ContextGraphBindingSubscription, newOnChainId: string, nameHash: string): ContextGraphBindingTransition;
|
|
60
|
+
/** Clear a reverse candidate and invalidate work captured against it. */
|
|
61
|
+
clear(localCgId: string): boolean;
|
|
62
|
+
/** Invalidate every captured target even when there is no reverse candidate. */
|
|
63
|
+
invalidate(localCgId: string): number;
|
|
64
|
+
/** Reclaim all process-local state after a subscription record is deleted. */
|
|
65
|
+
delete(localCgId: string): void;
|
|
66
|
+
bump(localCgId: string): number;
|
|
67
|
+
capture(localCgId: string): number;
|
|
68
|
+
isGenerationCurrent(localCgId: string, generation: number): boolean;
|
|
69
|
+
targetStillCurrent(localCgId: string, subscription: ContextGraphBindingSubscription | undefined, target: ContextGraphBindingTarget): boolean;
|
|
70
|
+
/** Test/diagnostic visibility without exposing the backing maps. */
|
|
71
|
+
get size(): number;
|
|
72
|
+
get generationCount(): number;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=context-graph-binding-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-graph-binding-state.d.ts","sourceRoot":"","sources":["../src/context-graph-binding-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/** Contract Context Graph ids are positive, canonically formatted decimals. */
|
|
3
|
+
export function isCanonicalPositiveContextGraphId(value) {
|
|
4
|
+
return typeof value === 'string' && /^[1-9][0-9]*$/.test(value);
|
|
5
|
+
}
|
|
6
|
+
function requireCanonicalPositiveContextGraphId(value) {
|
|
7
|
+
if (!isCanonicalPositiveContextGraphId(value)) {
|
|
8
|
+
throw new TypeError(`Invalid Context Graph on-chain id: ${JSON.stringify(value)}`);
|
|
9
|
+
}
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
function bindingsEqual(left, right) {
|
|
13
|
+
if (!left || left.bindingKind !== right.bindingKind)
|
|
14
|
+
return false;
|
|
15
|
+
if (left.onChainId !== right.onChainId)
|
|
16
|
+
return false;
|
|
17
|
+
return left.bindingKind === 'authoritative'
|
|
18
|
+
|| left.nameHash === right.nameHash;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Single process-local owner for Context Graph binding provenance and fences.
|
|
22
|
+
*
|
|
23
|
+
* Authoritative ids remain stored on the durable subscription supplied by the
|
|
24
|
+
* caller. Reverse-name-hash candidates live only here, so they cannot leak into
|
|
25
|
+
* subscription persistence. Consumers ask this registry for the current typed
|
|
26
|
+
* binding or whether a captured target is still current; they never inspect a
|
|
27
|
+
* side map or reconstruct the provenance rules themselves.
|
|
28
|
+
*/
|
|
29
|
+
export class ContextGraphBindingState {
|
|
30
|
+
reverseCandidates = new Map();
|
|
31
|
+
generations = new Map();
|
|
32
|
+
/** Never reset: a deleted and recreated local id must not reuse an old fence. */
|
|
33
|
+
nextGeneration = 0;
|
|
34
|
+
currentBindingFor(localCgId, subscription) {
|
|
35
|
+
if (subscription?.onChainId !== undefined) {
|
|
36
|
+
if (!isCanonicalPositiveContextGraphId(subscription.onChainId))
|
|
37
|
+
return undefined;
|
|
38
|
+
return {
|
|
39
|
+
bindingKind: 'authoritative',
|
|
40
|
+
onChainId: subscription.onChainId,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return this.reverseCandidates.get(localCgId);
|
|
44
|
+
}
|
|
45
|
+
hasBindingCandidate(localCgId, subscription) {
|
|
46
|
+
return this.currentBindingFor(localCgId, subscription) !== undefined;
|
|
47
|
+
}
|
|
48
|
+
matchesReverseCandidate(localCgId, subscription, onChainId) {
|
|
49
|
+
const binding = this.currentBindingFor(localCgId, subscription);
|
|
50
|
+
return binding?.bindingKind === 'reverse-name-hash'
|
|
51
|
+
&& binding.onChainId === onChainId;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Apply the binding-owned portion of one normalized subscription transition.
|
|
55
|
+
* The lifecycle layer supplies the canonical next commitment and consumes
|
|
56
|
+
* binding facts without reconstructing provenance. Consumer-specific cleanup
|
|
57
|
+
* policy remains outside this registry.
|
|
58
|
+
*/
|
|
59
|
+
applySubscriptionTransition(localCgId, previous, next, nextNameHash) {
|
|
60
|
+
const reverseCandidate = this.reverseCandidates.get(localCgId);
|
|
61
|
+
const admitted = next.subscribed === true || next.coreHosted === true;
|
|
62
|
+
const retainsReverseCandidate = previous !== undefined
|
|
63
|
+
&& previous.onChainId === undefined
|
|
64
|
+
&& next.onChainId === undefined
|
|
65
|
+
&& admitted
|
|
66
|
+
&& reverseCandidate?.nameHash === nextNameHash;
|
|
67
|
+
const reverseCandidateCleared = retainsReverseCandidate
|
|
68
|
+
? false
|
|
69
|
+
: this.clear(localCgId);
|
|
70
|
+
return {
|
|
71
|
+
reverseCandidateCleared,
|
|
72
|
+
admitted,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
bindAuthoritative(localCgId, subscription, newOnChainId) {
|
|
76
|
+
const canonicalOnChainId = requireCanonicalPositiveContextGraphId(newOnChainId);
|
|
77
|
+
const previous = this.currentBindingFor(localCgId, subscription);
|
|
78
|
+
const previousOnChainId = subscription.onChainId ?? previous?.onChainId;
|
|
79
|
+
const current = {
|
|
80
|
+
bindingKind: 'authoritative',
|
|
81
|
+
onChainId: canonicalOnChainId,
|
|
82
|
+
};
|
|
83
|
+
this.reverseCandidates.delete(localCgId);
|
|
84
|
+
const changed = !bindingsEqual(previous, current);
|
|
85
|
+
if (changed)
|
|
86
|
+
this.bump(localCgId);
|
|
87
|
+
subscription.onChainId = canonicalOnChainId;
|
|
88
|
+
return {
|
|
89
|
+
previous,
|
|
90
|
+
current,
|
|
91
|
+
changed,
|
|
92
|
+
onChainIdChanged: previousOnChainId !== undefined
|
|
93
|
+
&& previousOnChainId !== canonicalOnChainId,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
bindReverseCandidate(localCgId, subscription, newOnChainId, nameHash) {
|
|
97
|
+
const canonicalOnChainId = requireCanonicalPositiveContextGraphId(newOnChainId);
|
|
98
|
+
const previous = this.currentBindingFor(localCgId, subscription);
|
|
99
|
+
if (subscription.onChainId !== undefined) {
|
|
100
|
+
requireCanonicalPositiveContextGraphId(subscription.onChainId);
|
|
101
|
+
this.reverseCandidates.delete(localCgId);
|
|
102
|
+
return {
|
|
103
|
+
previous,
|
|
104
|
+
current: previous,
|
|
105
|
+
changed: false,
|
|
106
|
+
onChainIdChanged: false,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
const current = {
|
|
110
|
+
bindingKind: 'reverse-name-hash',
|
|
111
|
+
onChainId: canonicalOnChainId,
|
|
112
|
+
nameHash,
|
|
113
|
+
};
|
|
114
|
+
const changed = !bindingsEqual(previous, current);
|
|
115
|
+
if (changed) {
|
|
116
|
+
this.reverseCandidates.set(localCgId, current);
|
|
117
|
+
this.bump(localCgId);
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
previous,
|
|
121
|
+
current,
|
|
122
|
+
changed,
|
|
123
|
+
onChainIdChanged: previous !== undefined && previous.onChainId !== canonicalOnChainId,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/** Clear a reverse candidate and invalidate work captured against it. */
|
|
127
|
+
clear(localCgId) {
|
|
128
|
+
if (!this.reverseCandidates.delete(localCgId))
|
|
129
|
+
return false;
|
|
130
|
+
this.bump(localCgId);
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
/** Invalidate every captured target even when there is no reverse candidate. */
|
|
134
|
+
invalidate(localCgId) {
|
|
135
|
+
this.reverseCandidates.delete(localCgId);
|
|
136
|
+
return this.bump(localCgId);
|
|
137
|
+
}
|
|
138
|
+
/** Reclaim all process-local state after a subscription record is deleted. */
|
|
139
|
+
delete(localCgId) {
|
|
140
|
+
this.reverseCandidates.delete(localCgId);
|
|
141
|
+
this.generations.delete(localCgId);
|
|
142
|
+
}
|
|
143
|
+
bump(localCgId) {
|
|
144
|
+
const generation = ++this.nextGeneration;
|
|
145
|
+
this.generations.set(localCgId, generation);
|
|
146
|
+
return generation;
|
|
147
|
+
}
|
|
148
|
+
capture(localCgId) {
|
|
149
|
+
return this.generations.get(localCgId) ?? 0;
|
|
150
|
+
}
|
|
151
|
+
isGenerationCurrent(localCgId, generation) {
|
|
152
|
+
return this.capture(localCgId) === generation;
|
|
153
|
+
}
|
|
154
|
+
targetStillCurrent(localCgId, subscription, target) {
|
|
155
|
+
const current = this.currentBindingFor(localCgId, subscription);
|
|
156
|
+
return bindingsEqual(current, target)
|
|
157
|
+
&& this.isGenerationCurrent(localCgId, target.bindingGeneration);
|
|
158
|
+
}
|
|
159
|
+
/** Test/diagnostic visibility without exposing the backing maps. */
|
|
160
|
+
get size() {
|
|
161
|
+
return this.reverseCandidates.size;
|
|
162
|
+
}
|
|
163
|
+
get generationCount() {
|
|
164
|
+
return this.generations.size;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=context-graph-binding-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-graph-binding-state.js","sourceRoot":"","sources":["../src/context-graph-binding-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ChainAdapter, ContextGraphOnChain } from '@origintrail-official/dkg-chain';
|
|
2
|
+
export type DiscoveredContextGraphBinding = {
|
|
3
|
+
kind: 'unrevealed';
|
|
4
|
+
registryNameHash: string | null;
|
|
5
|
+
} | {
|
|
6
|
+
kind: 'skipped';
|
|
7
|
+
registryNameHash: string | null;
|
|
8
|
+
rememberNameHash: boolean;
|
|
9
|
+
warning: string;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'resolved';
|
|
12
|
+
name: string;
|
|
13
|
+
onChainId: string;
|
|
14
|
+
registryNameHash: string | null;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Normalize the legacy ContextGraphOnChain identifier boundary before any
|
|
18
|
+
* agent-local RDF or subscription mutation. Production EVM enumeration
|
|
19
|
+
* returns a NameRegistry bytes32 key; custom adapters may already return the
|
|
20
|
+
* positive decimal ContextGraphStorage id.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveDiscoveredContextGraphBinding(chain: ChainAdapter, entry: ContextGraphOnChain): Promise<DiscoveredContextGraphBinding>;
|
|
23
|
+
//# sourceMappingURL=context-graph-chain-discovery-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-graph-chain-discovery-binding.d.ts","sourceRoot":"","sources":["../src/context-graph-chain-discovery-binding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,MAAM,MAAM,6BAA6B,GACrC;IACA,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GACC;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEJ;;;;;GAKG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,6BAA6B,CAAC,CAyExC"}
|