@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.
Files changed (277) hide show
  1. package/dist/chain-reconciler.d.ts +15 -0
  2. package/dist/chain-reconciler.d.ts.map +1 -1
  3. package/dist/chain-reconciler.js +98 -13
  4. package/dist/chain-reconciler.js.map +1 -1
  5. package/dist/context-graph-binding-state.d.ts +74 -0
  6. package/dist/context-graph-binding-state.d.ts.map +1 -0
  7. package/dist/context-graph-binding-state.js +167 -0
  8. package/dist/context-graph-binding-state.js.map +1 -0
  9. package/dist/context-graph-chain-discovery-binding.d.ts +23 -0
  10. package/dist/context-graph-chain-discovery-binding.d.ts.map +1 -0
  11. package/dist/context-graph-chain-discovery-binding.js +71 -0
  12. package/dist/context-graph-chain-discovery-binding.js.map +1 -0
  13. package/dist/curator-meta-refresh.d.ts.map +1 -1
  14. package/dist/curator-meta-refresh.js +14 -3
  15. package/dist/curator-meta-refresh.js.map +1 -1
  16. package/dist/dkg-agent-base.d.ts +34 -5
  17. package/dist/dkg-agent-base.d.ts.map +1 -1
  18. package/dist/dkg-agent-base.js +37 -4
  19. package/dist/dkg-agent-base.js.map +1 -1
  20. package/dist/dkg-agent-cg-registry.d.ts +12 -0
  21. package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
  22. package/dist/dkg-agent-cg-registry.js +18 -13
  23. package/dist/dkg-agent-cg-registry.js.map +1 -1
  24. package/dist/dkg-agent-cg-resolve.d.ts +38 -2
  25. package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
  26. package/dist/dkg-agent-cg-resolve.js +111 -64
  27. package/dist/dkg-agent-cg-resolve.js.map +1 -1
  28. package/dist/dkg-agent-constants.d.ts +14 -1
  29. package/dist/dkg-agent-constants.d.ts.map +1 -1
  30. package/dist/dkg-agent-constants.js +14 -1
  31. package/dist/dkg-agent-constants.js.map +1 -1
  32. package/dist/dkg-agent-helpers.d.ts.map +1 -1
  33. package/dist/dkg-agent-helpers.js +1 -1
  34. package/dist/dkg-agent-helpers.js.map +1 -1
  35. package/dist/dkg-agent-lifecycle.d.ts +90 -17
  36. package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
  37. package/dist/dkg-agent-lifecycle.js +954 -256
  38. package/dist/dkg-agent-lifecycle.js.map +1 -1
  39. package/dist/dkg-agent-publish.d.ts +8 -0
  40. package/dist/dkg-agent-publish.d.ts.map +1 -1
  41. package/dist/dkg-agent-publish.js +80 -14
  42. package/dist/dkg-agent-publish.js.map +1 -1
  43. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts +21 -12
  44. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
  45. package/dist/dkg-agent-rfc64-catalog-auto-publish.js +30 -34
  46. package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
  47. package/dist/dkg-agent-rfc64-catalog-bootstrap.d.ts +15 -1
  48. package/dist/dkg-agent-rfc64-catalog-bootstrap.d.ts.map +1 -1
  49. package/dist/dkg-agent-rfc64-catalog-bootstrap.js +53 -0
  50. package/dist/dkg-agent-rfc64-catalog-bootstrap.js.map +1 -1
  51. package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
  52. package/dist/dkg-agent-rfc64-catalog.js +3 -11
  53. package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
  54. package/dist/dkg-agent-swm-host.d.ts +118 -13
  55. package/dist/dkg-agent-swm-host.d.ts.map +1 -1
  56. package/dist/dkg-agent-swm-host.js +776 -212
  57. package/dist/dkg-agent-swm-host.js.map +1 -1
  58. package/dist/dkg-agent-swm-substrate.d.ts +9 -0
  59. package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
  60. package/dist/dkg-agent-swm-substrate.js +11 -0
  61. package/dist/dkg-agent-swm-substrate.js.map +1 -1
  62. package/dist/dkg-agent-types.d.ts +116 -9
  63. package/dist/dkg-agent-types.d.ts.map +1 -1
  64. package/dist/dkg-agent-types.js.map +1 -1
  65. package/dist/dkg-agent.d.ts +17 -2
  66. package/dist/dkg-agent.d.ts.map +1 -1
  67. package/dist/dkg-agent.js +142 -45
  68. package/dist/dkg-agent.js.map +1 -1
  69. package/dist/finalization-handler.d.ts +7 -0
  70. package/dist/finalization-handler.d.ts.map +1 -1
  71. package/dist/finalization-handler.js +300 -68
  72. package/dist/finalization-handler.js.map +1 -1
  73. package/dist/finalization-recovery.d.ts.map +1 -1
  74. package/dist/finalization-recovery.js +9 -0
  75. package/dist/finalization-recovery.js.map +1 -1
  76. package/dist/index.d.ts +6 -2
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +3 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/named-ka-publish-recovery.d.ts +20 -8
  81. package/dist/named-ka-publish-recovery.d.ts.map +1 -1
  82. package/dist/named-ka-publish-recovery.js +144 -14
  83. package/dist/named-ka-publish-recovery.js.map +1 -1
  84. package/dist/p2p/sync-transport.d.ts.map +1 -1
  85. package/dist/p2p/sync-transport.js +16 -8
  86. package/dist/p2p/sync-transport.js.map +1 -1
  87. package/dist/receipt-backed-graph-scoped-evidence.d.ts +35 -0
  88. package/dist/receipt-backed-graph-scoped-evidence.d.ts.map +1 -0
  89. package/dist/receipt-backed-graph-scoped-evidence.js +191 -0
  90. package/dist/receipt-backed-graph-scoped-evidence.js.map +1 -0
  91. package/dist/rfc64/catalog-authority-config-v1.d.ts.map +1 -1
  92. package/dist/rfc64/catalog-authority-config-v1.js +8 -4
  93. package/dist/rfc64/catalog-authority-config-v1.js.map +1 -1
  94. package/dist/rfc64/finalized-policy-agent-precommit-v1.d.ts +32 -0
  95. package/dist/rfc64/finalized-policy-agent-precommit-v1.d.ts.map +1 -0
  96. package/dist/rfc64/finalized-policy-agent-precommit-v1.js +101 -0
  97. package/dist/rfc64/finalized-policy-agent-precommit-v1.js.map +1 -0
  98. package/dist/rfc64/finalized-policy-verifier-v1.d.ts +31 -0
  99. package/dist/rfc64/finalized-policy-verifier-v1.d.ts.map +1 -0
  100. package/dist/rfc64/finalized-policy-verifier-v1.js +120 -0
  101. package/dist/rfc64/finalized-policy-verifier-v1.js.map +1 -0
  102. package/dist/rfc64/finalized-vm-agent-precommit-v1.d.ts.map +1 -1
  103. package/dist/rfc64/finalized-vm-agent-precommit-v1.js +11 -30
  104. package/dist/rfc64/finalized-vm-agent-precommit-v1.js.map +1 -1
  105. package/dist/rfc64/finalized-vm-runtime-v1.d.ts.map +1 -1
  106. package/dist/rfc64/finalized-vm-runtime-v1.js +30 -44
  107. package/dist/rfc64/finalized-vm-runtime-v1.js.map +1 -1
  108. package/dist/rfc64/public-catalog-activation-config-v1.d.ts.map +1 -1
  109. package/dist/rfc64/public-catalog-activation-config-v1.js +9 -4
  110. package/dist/rfc64/public-catalog-activation-config-v1.js.map +1 -1
  111. package/dist/rfc64/public-catalog-native-receiver-v1.d.ts +1 -0
  112. package/dist/rfc64/public-catalog-native-receiver-v1.d.ts.map +1 -1
  113. package/dist/rfc64/public-catalog-native-receiver-v1.js +40 -27
  114. package/dist/rfc64/public-catalog-native-receiver-v1.js.map +1 -1
  115. package/dist/sync/attempt-telemetry.d.ts +1 -1
  116. package/dist/sync/attempt-telemetry.d.ts.map +1 -1
  117. package/dist/sync/attempt-telemetry.js +1 -0
  118. package/dist/sync/attempt-telemetry.js.map +1 -1
  119. package/dist/sync/auth/request-build.d.ts.map +1 -1
  120. package/dist/sync/auth/request-build.js +5 -2
  121. package/dist/sync/auth/request-build.js.map +1 -1
  122. package/dist/sync/backpressure.d.ts +46 -3
  123. package/dist/sync/backpressure.d.ts.map +1 -1
  124. package/dist/sync/backpressure.js +355 -21
  125. package/dist/sync/backpressure.js.map +1 -1
  126. package/dist/sync/catchup-pass-policy.d.ts +108 -10
  127. package/dist/sync/catchup-pass-policy.d.ts.map +1 -1
  128. package/dist/sync/catchup-pass-policy.js +103 -12
  129. package/dist/sync/catchup-pass-policy.js.map +1 -1
  130. package/dist/sync/catchup-policy.d.ts +19 -4
  131. package/dist/sync/catchup-policy.d.ts.map +1 -1
  132. package/dist/sync/catchup-policy.js +20 -8
  133. package/dist/sync/catchup-policy.js.map +1 -1
  134. package/dist/sync/checkpoint/state.d.ts +21 -18
  135. package/dist/sync/checkpoint/state.d.ts.map +1 -1
  136. package/dist/sync/checkpoint/state.js +51 -42
  137. package/dist/sync/checkpoint/state.js.map +1 -1
  138. package/dist/sync/durable-integrity.d.ts +70 -6
  139. package/dist/sync/durable-integrity.d.ts.map +1 -1
  140. package/dist/sync/durable-integrity.js +239 -26
  141. package/dist/sync/durable-integrity.js.map +1 -1
  142. package/dist/sync/durable-recovery-coordinator.d.ts +76 -0
  143. package/dist/sync/durable-recovery-coordinator.d.ts.map +1 -0
  144. package/dist/sync/durable-recovery-coordinator.js +126 -0
  145. package/dist/sync/durable-recovery-coordinator.js.map +1 -0
  146. package/dist/sync/durable-recovery-runner.d.ts +53 -0
  147. package/dist/sync/durable-recovery-runner.d.ts.map +1 -0
  148. package/dist/sync/durable-recovery-runner.js +264 -0
  149. package/dist/sync/durable-recovery-runner.js.map +1 -0
  150. package/dist/sync/error-tags.d.ts +26 -8
  151. package/dist/sync/error-tags.d.ts.map +1 -1
  152. package/dist/sync/error-tags.js +92 -51
  153. package/dist/sync/error-tags.js.map +1 -1
  154. package/dist/sync/graph-scoped-swm-recovery.d.ts +52 -0
  155. package/dist/sync/graph-scoped-swm-recovery.d.ts.map +1 -1
  156. package/dist/sync/graph-scoped-swm-recovery.js +259 -10
  157. package/dist/sync/graph-scoped-swm-recovery.js.map +1 -1
  158. package/dist/sync/on-connect/sync-on-connect.d.ts +36 -3
  159. package/dist/sync/on-connect/sync-on-connect.d.ts.map +1 -1
  160. package/dist/sync/on-connect/sync-on-connect.js +107 -9
  161. package/dist/sync/on-connect/sync-on-connect.js.map +1 -1
  162. package/dist/sync/policy.d.ts +30 -1
  163. package/dist/sync/policy.d.ts.map +1 -1
  164. package/dist/sync/policy.js.map +1 -1
  165. package/dist/sync/priority-admission-queue.d.ts +6 -1
  166. package/dist/sync/priority-admission-queue.d.ts.map +1 -1
  167. package/dist/sync/priority-admission-queue.js +14 -15
  168. package/dist/sync/priority-admission-queue.js.map +1 -1
  169. package/dist/sync/reconciler-timing.d.ts +17 -0
  170. package/dist/sync/reconciler-timing.d.ts.map +1 -0
  171. package/dist/sync/reconciler-timing.js +25 -0
  172. package/dist/sync/reconciler-timing.js.map +1 -0
  173. package/dist/sync/requester/durable-sync-budget.d.ts +16 -0
  174. package/dist/sync/requester/durable-sync-budget.d.ts.map +1 -1
  175. package/dist/sync/requester/durable-sync-budget.js +33 -5
  176. package/dist/sync/requester/durable-sync-budget.js.map +1 -1
  177. package/dist/sync/requester/durable-sync.d.ts +51 -2
  178. package/dist/sync/requester/durable-sync.d.ts.map +1 -1
  179. package/dist/sync/requester/durable-sync.js +410 -41
  180. package/dist/sync/requester/durable-sync.js.map +1 -1
  181. package/dist/sync/requester/finalized-swm-twin-reconciliation.d.ts +51 -0
  182. package/dist/sync/requester/finalized-swm-twin-reconciliation.d.ts.map +1 -0
  183. package/dist/sync/requester/finalized-swm-twin-reconciliation.js +396 -0
  184. package/dist/sync/requester/finalized-swm-twin-reconciliation.js.map +1 -0
  185. package/dist/sync/requester/manifest-resume-policy.d.ts +53 -0
  186. package/dist/sync/requester/manifest-resume-policy.d.ts.map +1 -0
  187. package/dist/sync/requester/manifest-resume-policy.js +65 -0
  188. package/dist/sync/requester/manifest-resume-policy.js.map +1 -0
  189. package/dist/sync/requester/ordered-sync.d.ts +2 -0
  190. package/dist/sync/requester/ordered-sync.d.ts.map +1 -1
  191. package/dist/sync/requester/ordered-sync.js +1 -0
  192. package/dist/sync/requester/ordered-sync.js.map +1 -1
  193. package/dist/sync/requester/page-fetch.d.ts +91 -3
  194. package/dist/sync/requester/page-fetch.d.ts.map +1 -1
  195. package/dist/sync/requester/page-fetch.js +449 -116
  196. package/dist/sync/requester/page-fetch.js.map +1 -1
  197. package/dist/sync/requester/shared-memory-sync.d.ts +106 -4
  198. package/dist/sync/requester/shared-memory-sync.d.ts.map +1 -1
  199. package/dist/sync/requester/shared-memory-sync.js +468 -70
  200. package/dist/sync/requester/shared-memory-sync.js.map +1 -1
  201. package/dist/sync/requester/swm-recovery.d.ts +12 -2
  202. package/dist/sync/requester/swm-recovery.d.ts.map +1 -1
  203. package/dist/sync/requester/swm-recovery.js +65 -8
  204. package/dist/sync/requester/swm-recovery.js.map +1 -1
  205. package/dist/sync/requester/swm-snapshot-materializer.d.ts +81 -0
  206. package/dist/sync/requester/swm-snapshot-materializer.d.ts.map +1 -1
  207. package/dist/sync/requester/swm-snapshot-materializer.js +344 -48
  208. package/dist/sync/requester/swm-snapshot-materializer.js.map +1 -1
  209. package/dist/sync/responder/durable-data-request-policy.d.ts.map +1 -1
  210. package/dist/sync/responder/durable-data-request-policy.js +2 -1
  211. package/dist/sync/responder/durable-data-request-policy.js.map +1 -1
  212. package/dist/sync/responder/graph-plan.d.ts +4 -4
  213. package/dist/sync/responder/graph-plan.d.ts.map +1 -1
  214. package/dist/sync/responder/graph-plan.js +74 -54
  215. package/dist/sync/responder/graph-plan.js.map +1 -1
  216. package/dist/sync/responder/snapshot-cache.d.ts +2 -0
  217. package/dist/sync/responder/snapshot-cache.d.ts.map +1 -1
  218. package/dist/sync/responder/snapshot-cache.js +1 -0
  219. package/dist/sync/responder/snapshot-cache.js.map +1 -1
  220. package/dist/sync/responder/sync-handler.d.ts.map +1 -1
  221. package/dist/sync/responder/sync-handler.js +12 -2
  222. package/dist/sync/responder/sync-handler.js.map +1 -1
  223. package/dist/sync/selected-swm-bootstrap-admission.d.ts +45 -0
  224. package/dist/sync/selected-swm-bootstrap-admission.d.ts.map +1 -0
  225. package/dist/sync/selected-swm-bootstrap-admission.js +116 -0
  226. package/dist/sync/selected-swm-bootstrap-admission.js.map +1 -0
  227. package/dist/sync/selected-swm-continuation.d.ts +61 -0
  228. package/dist/sync/selected-swm-continuation.d.ts.map +1 -0
  229. package/dist/sync/selected-swm-continuation.js +272 -0
  230. package/dist/sync/selected-swm-continuation.js.map +1 -0
  231. package/dist/sync/selected-swm-graph-sync-status.d.ts +17 -0
  232. package/dist/sync/selected-swm-graph-sync-status.d.ts.map +1 -0
  233. package/dist/sync/selected-swm-graph-sync-status.js +18 -0
  234. package/dist/sync/selected-swm-graph-sync-status.js.map +1 -0
  235. package/dist/sync/selected-swm-meta-budget.d.ts +39 -0
  236. package/dist/sync/selected-swm-meta-budget.d.ts.map +1 -0
  237. package/dist/sync/selected-swm-meta-budget.js +146 -0
  238. package/dist/sync/selected-swm-meta-budget.js.map +1 -0
  239. package/dist/sync/selected-swm-meta-fetcher.d.ts +63 -0
  240. package/dist/sync/selected-swm-meta-fetcher.d.ts.map +1 -0
  241. package/dist/sync/selected-swm-meta-fetcher.js +465 -0
  242. package/dist/sync/selected-swm-meta-fetcher.js.map +1 -0
  243. package/dist/sync/selected-swm-meta-transfer-coordinator.d.ts +11 -0
  244. package/dist/sync/selected-swm-meta-transfer-coordinator.d.ts.map +1 -0
  245. package/dist/sync/selected-swm-meta-transfer-coordinator.js +44 -0
  246. package/dist/sync/selected-swm-meta-transfer-coordinator.js.map +1 -0
  247. package/dist/sync/shared-memory-freshness.d.ts +60 -0
  248. package/dist/sync/shared-memory-freshness.d.ts.map +1 -0
  249. package/dist/sync/shared-memory-freshness.js +124 -0
  250. package/dist/sync/shared-memory-freshness.js.map +1 -0
  251. package/dist/sync-verify-worker-impl.d.ts.map +1 -1
  252. package/dist/sync-verify-worker-impl.js +12 -3
  253. package/dist/sync-verify-worker-impl.js.map +1 -1
  254. package/dist/sync-verify-worker.d.ts +2 -0
  255. package/dist/sync-verify-worker.d.ts.map +1 -1
  256. package/dist/sync-verify-worker.js.map +1 -1
  257. package/dist/vm-recovery-footprint.d.ts +37 -0
  258. package/dist/vm-recovery-footprint.d.ts.map +1 -0
  259. package/dist/vm-recovery-footprint.js +168 -0
  260. package/dist/vm-recovery-footprint.js.map +1 -0
  261. package/dist/vm-recovery-microbatch.d.ts +27 -0
  262. package/dist/vm-recovery-microbatch.d.ts.map +1 -0
  263. package/dist/vm-recovery-microbatch.js +77 -0
  264. package/dist/vm-recovery-microbatch.js.map +1 -0
  265. package/dist/vm-recovery-provider-policy.d.ts +16 -0
  266. package/dist/vm-recovery-provider-policy.d.ts.map +1 -0
  267. package/dist/vm-recovery-provider-policy.js +71 -0
  268. package/dist/vm-recovery-provider-policy.js.map +1 -0
  269. package/dist/vm-recovery-types.d.ts +32 -0
  270. package/dist/vm-recovery-types.d.ts.map +1 -0
  271. package/dist/vm-recovery-types.js +6 -0
  272. package/dist/vm-recovery-types.js.map +1 -0
  273. package/package.json +10 -7
  274. package/dist/context-graph-binding-generation.d.ts +0 -5
  275. package/dist/context-graph-binding-generation.d.ts.map +0 -1
  276. package/dist/context-graph-binding-generation.js +0 -16
  277. 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":"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"}
1
+ {"version":3,"file":"chain-reconciler.d.ts","sourceRoot":"","sources":["../src/chain-reconciler.ts"],"names":[],"mappings":"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"}
@@ -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 ordinals = candidates.slice(0, passLimit);
91
- const hasUnvisitedCandidates = candidates.length > ordinals.length;
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 if (recoveryContinuationOrdinal !== undefined
184
- && (recoveryAttempted || recoveryCooldownOnly || !hasUnvisitedCandidates)) {
185
- state.scanOrdinal = Math.max(state.watermark, recoveryContinuationOrdinal);
186
- }
187
- else if (!hasUnvisitedCandidates) {
188
- state.scanOrdinal = state.watermark;
189
- }
190
- else if (ordinals.length > 0) {
191
- state.scanOrdinal = ordinals[ordinals.length - 1] + 1;
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 || hasUnvisitedCandidates
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"}