@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.
Files changed (535) hide show
  1. package/dist/approved-private-replica.d.ts +54 -0
  2. package/dist/approved-private-replica.d.ts.map +1 -0
  3. package/dist/approved-private-replica.js +148 -0
  4. package/dist/approved-private-replica.js.map +1 -0
  5. package/dist/bounded-operation.d.ts +2 -0
  6. package/dist/bounded-operation.d.ts.map +1 -1
  7. package/dist/bounded-operation.js +5 -0
  8. package/dist/bounded-operation.js.map +1 -1
  9. package/dist/chain-finality-confirmations-v1.d.ts +7 -0
  10. package/dist/chain-finality-confirmations-v1.d.ts.map +1 -0
  11. package/dist/chain-finality-confirmations-v1.js +9 -0
  12. package/dist/chain-finality-confirmations-v1.js.map +1 -0
  13. package/dist/chain-reconciler.d.ts +23 -0
  14. package/dist/chain-reconciler.d.ts.map +1 -1
  15. package/dist/chain-reconciler.js +35 -0
  16. package/dist/chain-reconciler.js.map +1 -1
  17. package/dist/context-graph-member-proof.d.ts +13 -0
  18. package/dist/context-graph-member-proof.d.ts.map +1 -1
  19. package/dist/context-graph-member-proof.js +36 -0
  20. package/dist/context-graph-member-proof.js.map +1 -1
  21. package/dist/context-graph-membership-persist-scheduler.d.ts +7 -23
  22. package/dist/context-graph-membership-persist-scheduler.d.ts.map +1 -1
  23. package/dist/context-graph-membership-persist-scheduler.js +12 -88
  24. package/dist/context-graph-membership-persist-scheduler.js.map +1 -1
  25. package/dist/context-graph-meta-projection.d.ts +13 -2
  26. package/dist/context-graph-meta-projection.d.ts.map +1 -1
  27. package/dist/context-graph-meta-projection.js +61 -24
  28. package/dist/context-graph-meta-projection.js.map +1 -1
  29. package/dist/context-graph-private-meta-proof.d.ts +5 -0
  30. package/dist/context-graph-private-meta-proof.d.ts.map +1 -1
  31. package/dist/context-graph-private-meta-proof.js +23 -0
  32. package/dist/context-graph-private-meta-proof.js.map +1 -1
  33. package/dist/context-graph-read-authority.d.ts +13 -0
  34. package/dist/context-graph-read-authority.d.ts.map +1 -1
  35. package/dist/context-graph-read-authority.js +23 -3
  36. package/dist/context-graph-read-authority.js.map +1 -1
  37. package/dist/context-graph-storage-discovery.d.ts +11 -2
  38. package/dist/context-graph-storage-discovery.d.ts.map +1 -1
  39. package/dist/context-graph-storage-discovery.js +11 -2
  40. package/dist/context-graph-storage-discovery.js.map +1 -1
  41. package/dist/context-graph-subscription-persist-scheduler.d.ts +52 -0
  42. package/dist/context-graph-subscription-persist-scheduler.d.ts.map +1 -0
  43. package/dist/context-graph-subscription-persist-scheduler.js +78 -0
  44. package/dist/context-graph-subscription-persist-scheduler.js.map +1 -0
  45. package/dist/curator-dial-address.d.ts +16 -0
  46. package/dist/curator-dial-address.d.ts.map +1 -0
  47. package/dist/curator-dial-address.js +58 -0
  48. package/dist/curator-dial-address.js.map +1 -0
  49. package/dist/curator-meta-refresh.d.ts +2 -0
  50. package/dist/curator-meta-refresh.d.ts.map +1 -1
  51. package/dist/curator-meta-refresh.js +2 -44
  52. package/dist/curator-meta-refresh.js.map +1 -1
  53. package/dist/curator-peer-connection.d.ts +21 -0
  54. package/dist/curator-peer-connection.d.ts.map +1 -0
  55. package/dist/curator-peer-connection.js +41 -0
  56. package/dist/curator-peer-connection.js.map +1 -0
  57. package/dist/dkg-agent-base.d.ts +94 -22
  58. package/dist/dkg-agent-base.d.ts.map +1 -1
  59. package/dist/dkg-agent-base.js +97 -144
  60. package/dist/dkg-agent-base.js.map +1 -1
  61. package/dist/dkg-agent-cg-registry.d.ts +10 -0
  62. package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
  63. package/dist/dkg-agent-cg-registry.js +176 -115
  64. package/dist/dkg-agent-cg-registry.js.map +1 -1
  65. package/dist/dkg-agent-cg-resolve.d.ts +6 -4
  66. package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
  67. package/dist/dkg-agent-cg-resolve.js +22 -16
  68. package/dist/dkg-agent-cg-resolve.js.map +1 -1
  69. package/dist/dkg-agent-constants.d.ts +4 -2
  70. package/dist/dkg-agent-constants.d.ts.map +1 -1
  71. package/dist/dkg-agent-constants.js +4 -2
  72. package/dist/dkg-agent-constants.js.map +1 -1
  73. package/dist/dkg-agent-crypto.d.ts +101 -21
  74. package/dist/dkg-agent-crypto.d.ts.map +1 -1
  75. package/dist/dkg-agent-crypto.js +670 -152
  76. package/dist/dkg-agent-crypto.js.map +1 -1
  77. package/dist/dkg-agent-helpers.d.ts +2 -2
  78. package/dist/dkg-agent-helpers.d.ts.map +1 -1
  79. package/dist/dkg-agent-helpers.js +3 -3
  80. package/dist/dkg-agent-helpers.js.map +1 -1
  81. package/dist/dkg-agent-join.d.ts +12 -1
  82. package/dist/dkg-agent-join.d.ts.map +1 -1
  83. package/dist/dkg-agent-join.js +80 -92
  84. package/dist/dkg-agent-join.js.map +1 -1
  85. package/dist/dkg-agent-lifecycle.d.ts +58 -15
  86. package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
  87. package/dist/dkg-agent-lifecycle.js +295 -114
  88. package/dist/dkg-agent-lifecycle.js.map +1 -1
  89. package/dist/dkg-agent-publish.d.ts +33 -40
  90. package/dist/dkg-agent-publish.d.ts.map +1 -1
  91. package/dist/dkg-agent-publish.js +190 -256
  92. package/dist/dkg-agent-publish.js.map +1 -1
  93. package/dist/dkg-agent-query.d.ts +7 -0
  94. package/dist/dkg-agent-query.d.ts.map +1 -1
  95. package/dist/dkg-agent-query.js +75 -63
  96. package/dist/dkg-agent-query.js.map +1 -1
  97. package/dist/dkg-agent-registered-private-empty-vm.d.ts +70 -0
  98. package/dist/dkg-agent-registered-private-empty-vm.d.ts.map +1 -0
  99. package/dist/dkg-agent-registered-private-empty-vm.js +133 -0
  100. package/dist/dkg-agent-registered-private-empty-vm.js.map +1 -0
  101. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts +8 -3
  102. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
  103. package/dist/dkg-agent-rfc64-catalog-auto-publish.js +45 -51
  104. package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
  105. package/dist/dkg-agent-rfc64-catalog.d.ts +63 -87
  106. package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
  107. package/dist/dkg-agent-rfc64-catalog.js +595 -551
  108. package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
  109. package/dist/dkg-agent-swm-host.d.ts +43 -52
  110. package/dist/dkg-agent-swm-host.d.ts.map +1 -1
  111. package/dist/dkg-agent-swm-host.js +629 -812
  112. package/dist/dkg-agent-swm-host.js.map +1 -1
  113. package/dist/dkg-agent-swm-state.d.ts +15 -0
  114. package/dist/dkg-agent-swm-state.d.ts.map +1 -1
  115. package/dist/dkg-agent-swm-state.js +43 -0
  116. package/dist/dkg-agent-swm-state.js.map +1 -1
  117. package/dist/dkg-agent-swm-substrate.d.ts +2 -0
  118. package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
  119. package/dist/dkg-agent-swm-substrate.js +110 -53
  120. package/dist/dkg-agent-swm-substrate.js.map +1 -1
  121. package/dist/dkg-agent-types.d.ts +62 -26
  122. package/dist/dkg-agent-types.d.ts.map +1 -1
  123. package/dist/dkg-agent-types.js.map +1 -1
  124. package/dist/dkg-agent-vm-promotion.d.ts +2 -0
  125. package/dist/dkg-agent-vm-promotion.d.ts.map +1 -1
  126. package/dist/dkg-agent-vm-promotion.js +39 -5
  127. package/dist/dkg-agent-vm-promotion.js.map +1 -1
  128. package/dist/dkg-agent.d.ts +8 -1
  129. package/dist/dkg-agent.d.ts.map +1 -1
  130. package/dist/dkg-agent.js +75 -45
  131. package/dist/dkg-agent.js.map +1 -1
  132. package/dist/exact-graph-content-verifier.d.ts.map +1 -1
  133. package/dist/exact-graph-content-verifier.js +3 -2
  134. package/dist/exact-graph-content-verifier.js.map +1 -1
  135. package/dist/finalization-handler.d.ts +19 -207
  136. package/dist/finalization-handler.d.ts.map +1 -1
  137. package/dist/finalization-handler.js +79 -1646
  138. package/dist/finalization-handler.js.map +1 -1
  139. package/dist/finalization-recovery-worker.js +1 -1
  140. package/dist/finalization-recovery-worker.js.map +1 -1
  141. package/dist/finalized-authority-cold-resolution.d.ts +6 -1
  142. package/dist/finalized-authority-cold-resolution.d.ts.map +1 -1
  143. package/dist/finalized-authority-cold-resolution.js +22 -3
  144. package/dist/finalized-authority-cold-resolution.js.map +1 -1
  145. package/dist/gossip-session.d.ts +29 -0
  146. package/dist/gossip-session.d.ts.map +1 -0
  147. package/dist/gossip-session.js +48 -0
  148. package/dist/gossip-session.js.map +1 -0
  149. package/dist/index.d.ts +3 -0
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +4 -0
  152. package/dist/index.js.map +1 -1
  153. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts +5 -5
  154. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts.map +1 -1
  155. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js +59 -49
  156. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js.map +1 -1
  157. package/dist/internal/context-graph-authority/finalized-target-projection.d.ts +17 -0
  158. package/dist/internal/context-graph-authority/finalized-target-projection.d.ts.map +1 -0
  159. package/dist/internal/context-graph-authority/finalized-target-projection.js +36 -0
  160. package/dist/internal/context-graph-authority/finalized-target-projection.js.map +1 -0
  161. package/dist/internal/context-graph-authority/swm-transport-authority.d.ts +43 -7
  162. package/dist/internal/context-graph-authority/swm-transport-authority.d.ts.map +1 -1
  163. package/dist/internal/context-graph-authority/swm-transport-authority.js +135 -18
  164. package/dist/internal/context-graph-authority/swm-transport-authority.js.map +1 -1
  165. package/dist/internal/context-graph-binding-abort.d.ts +3 -0
  166. package/dist/internal/context-graph-binding-abort.d.ts.map +1 -0
  167. package/dist/internal/context-graph-binding-abort.js +32 -0
  168. package/dist/internal/context-graph-binding-abort.js.map +1 -0
  169. package/dist/internal/context-graph-cache-invalidating-store.d.ts +3 -0
  170. package/dist/internal/context-graph-cache-invalidating-store.d.ts.map +1 -0
  171. package/dist/internal/context-graph-cache-invalidating-store.js +167 -0
  172. package/dist/internal/context-graph-cache-invalidating-store.js.map +1 -0
  173. package/dist/internal/context-graph-meta-record-copy.d.ts +3 -0
  174. package/dist/internal/context-graph-meta-record-copy.d.ts.map +1 -0
  175. package/dist/internal/context-graph-meta-record-copy.js +21 -0
  176. package/dist/internal/context-graph-meta-record-copy.js.map +1 -0
  177. package/dist/internal/gossip/host-mode-handler.d.ts +11 -0
  178. package/dist/internal/gossip/host-mode-handler.d.ts.map +1 -0
  179. package/dist/internal/gossip/host-mode-handler.js +41 -0
  180. package/dist/internal/gossip/host-mode-handler.js.map +1 -0
  181. package/dist/internal/join-encryption-key-bundle.d.ts +10 -0
  182. package/dist/internal/join-encryption-key-bundle.d.ts.map +1 -0
  183. package/dist/internal/join-encryption-key-bundle.js +72 -0
  184. package/dist/internal/join-encryption-key-bundle.js.map +1 -0
  185. package/dist/internal/knowledge-asset-vm-publish-request.d.ts +31 -0
  186. package/dist/internal/knowledge-asset-vm-publish-request.d.ts.map +1 -0
  187. package/dist/internal/knowledge-asset-vm-publish-request.js +91 -0
  188. package/dist/internal/knowledge-asset-vm-publish-request.js.map +1 -0
  189. package/dist/internal/lifecycle-sync-policy.d.ts +5 -0
  190. package/dist/internal/lifecycle-sync-policy.d.ts.map +1 -0
  191. package/dist/internal/lifecycle-sync-policy.js +12 -0
  192. package/dist/internal/lifecycle-sync-policy.js.map +1 -0
  193. package/dist/internal/local-private-member.d.ts +14 -0
  194. package/dist/internal/local-private-member.d.ts.map +1 -0
  195. package/dist/internal/local-private-member.js +21 -0
  196. package/dist/internal/local-private-member.js.map +1 -0
  197. package/dist/internal/promote/assertion-promote-precommit.d.ts +41 -1
  198. package/dist/internal/promote/assertion-promote-precommit.d.ts.map +1 -1
  199. package/dist/internal/promote/assertion-promote-precommit.js +74 -5
  200. package/dist/internal/promote/assertion-promote-precommit.js.map +1 -1
  201. package/dist/internal/storage-ack-owned-request.d.ts +16 -0
  202. package/dist/internal/storage-ack-owned-request.d.ts.map +1 -0
  203. package/dist/internal/storage-ack-owned-request.js +16 -0
  204. package/dist/internal/storage-ack-owned-request.js.map +1 -0
  205. package/dist/internal/vm-reconcile-local-admission-wait.d.ts +96 -0
  206. package/dist/internal/vm-reconcile-local-admission-wait.d.ts.map +1 -0
  207. package/dist/internal/vm-reconcile-local-admission-wait.js +226 -0
  208. package/dist/internal/vm-reconcile-local-admission-wait.js.map +1 -0
  209. package/dist/internal/vm-reconcile-read-authority.d.ts +27 -0
  210. package/dist/internal/vm-reconcile-read-authority.d.ts.map +1 -0
  211. package/dist/internal/vm-reconcile-read-authority.js +33 -0
  212. package/dist/internal/vm-reconcile-read-authority.js.map +1 -0
  213. package/dist/internal/vm-reconcile-sweep-admission.d.ts +2 -0
  214. package/dist/internal/vm-reconcile-sweep-admission.d.ts.map +1 -1
  215. package/dist/internal/vm-reconcile-sweep.d.ts +16 -4
  216. package/dist/internal/vm-reconcile-sweep.d.ts.map +1 -1
  217. package/dist/internal/vm-reconcile-sweep.js +91 -50
  218. package/dist/internal/vm-reconcile-sweep.js.map +1 -1
  219. package/dist/internal/workspace-projected-delegatees.d.ts +3 -0
  220. package/dist/internal/workspace-projected-delegatees.d.ts.map +1 -0
  221. package/dist/internal/workspace-projected-delegatees.js +34 -0
  222. package/dist/internal/workspace-projected-delegatees.js.map +1 -0
  223. package/dist/join-approval-restart-projection.d.ts +14 -0
  224. package/dist/join-approval-restart-projection.d.ts.map +1 -0
  225. package/dist/join-approval-restart-projection.js +32 -0
  226. package/dist/join-approval-restart-projection.js.map +1 -0
  227. package/dist/keyed-persist-scheduler.d.ts +72 -0
  228. package/dist/keyed-persist-scheduler.d.ts.map +1 -0
  229. package/dist/keyed-persist-scheduler.js +140 -0
  230. package/dist/keyed-persist-scheduler.js.map +1 -0
  231. package/dist/map-with-concurrency.d.ts +7 -0
  232. package/dist/map-with-concurrency.d.ts.map +1 -1
  233. package/dist/map-with-concurrency.js +36 -0
  234. package/dist/map-with-concurrency.js.map +1 -1
  235. package/dist/p2p/network-admission-coordinator.d.ts +15 -0
  236. package/dist/p2p/network-admission-coordinator.d.ts.map +1 -1
  237. package/dist/p2p/network-admission-coordinator.js +20 -2
  238. package/dist/p2p/network-admission-coordinator.js.map +1 -1
  239. package/dist/prepare-unscoped-context-graph-read-checks.d.ts.map +1 -1
  240. package/dist/prepare-unscoped-context-graph-read-checks.js +12 -0
  241. package/dist/prepare-unscoped-context-graph-read-checks.js.map +1 -1
  242. package/dist/registered-context-graph-authority.d.ts +7 -0
  243. package/dist/registered-context-graph-authority.d.ts.map +1 -1
  244. package/dist/registered-private-empty-vm-attempt-v1.d.ts +34 -0
  245. package/dist/registered-private-empty-vm-attempt-v1.d.ts.map +1 -0
  246. package/dist/registered-private-empty-vm-attempt-v1.js +120 -0
  247. package/dist/registered-private-empty-vm-attempt-v1.js.map +1 -0
  248. package/dist/reserved-ka-id-allocation.d.ts +12 -0
  249. package/dist/reserved-ka-id-allocation.d.ts.map +1 -0
  250. package/dist/reserved-ka-id-allocation.js +25 -0
  251. package/dist/reserved-ka-id-allocation.js.map +1 -0
  252. package/dist/rfc64/authority-rpc-circuit-breaker-v1.d.ts +5 -3
  253. package/dist/rfc64/authority-rpc-circuit-breaker-v1.d.ts.map +1 -1
  254. package/dist/rfc64/authority-rpc-circuit-breaker-v1.js +9 -0
  255. package/dist/rfc64/authority-rpc-circuit-breaker-v1.js.map +1 -1
  256. package/dist/rfc64/catalog-completion-evidence-v1.d.ts +38 -0
  257. package/dist/rfc64/catalog-completion-evidence-v1.d.ts.map +1 -0
  258. package/dist/rfc64/catalog-completion-evidence-v1.js +49 -0
  259. package/dist/rfc64/catalog-completion-evidence-v1.js.map +1 -0
  260. package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts +6 -3
  261. package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts.map +1 -1
  262. package/dist/rfc64/catalog-operational-applied-heads-v1.js +6 -3
  263. package/dist/rfc64/catalog-operational-applied-heads-v1.js.map +1 -1
  264. package/dist/rfc64/catalog-operational-reads-v1.d.ts +13 -0
  265. package/dist/rfc64/catalog-operational-reads-v1.d.ts.map +1 -0
  266. package/dist/rfc64/catalog-operational-reads-v1.js +56 -0
  267. package/dist/rfc64/catalog-operational-reads-v1.js.map +1 -0
  268. package/dist/rfc64/catalog-operational-targets-v1.d.ts +55 -0
  269. package/dist/rfc64/catalog-operational-targets-v1.d.ts.map +1 -0
  270. package/dist/rfc64/catalog-operational-targets-v1.js +379 -0
  271. package/dist/rfc64/catalog-operational-targets-v1.js.map +1 -0
  272. package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts +2 -0
  273. package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts.map +1 -1
  274. package/dist/rfc64/catalog-replay-recovery-runtime-v1.js +18 -25
  275. package/dist/rfc64/catalog-replay-recovery-runtime-v1.js.map +1 -1
  276. package/dist/rfc64/legacy-swm-boundary-codec-v1.d.ts +25 -0
  277. package/dist/rfc64/legacy-swm-boundary-codec-v1.d.ts.map +1 -0
  278. package/dist/rfc64/legacy-swm-boundary-codec-v1.js +127 -0
  279. package/dist/rfc64/legacy-swm-boundary-codec-v1.js.map +1 -0
  280. package/dist/rfc64/legacy-swm-boundary-v1.d.ts +12 -0
  281. package/dist/rfc64/legacy-swm-boundary-v1.d.ts.map +1 -1
  282. package/dist/rfc64/legacy-swm-boundary-v1.js +83 -144
  283. package/dist/rfc64/legacy-swm-boundary-v1.js.map +1 -1
  284. package/dist/rfc64/private-catalog-subscription-readiness-v1.d.ts +33 -0
  285. package/dist/rfc64/private-catalog-subscription-readiness-v1.d.ts.map +1 -0
  286. package/dist/rfc64/private-catalog-subscription-readiness-v1.js +97 -0
  287. package/dist/rfc64/private-catalog-subscription-readiness-v1.js.map +1 -0
  288. package/dist/rfc64/private-read-roster-v1.d.ts +14 -0
  289. package/dist/rfc64/private-read-roster-v1.d.ts.map +1 -0
  290. package/dist/rfc64/private-read-roster-v1.js +57 -0
  291. package/dist/rfc64/private-read-roster-v1.js.map +1 -0
  292. package/dist/rfc64/registered-private-empty-vm-proof-v1.d.ts +20 -0
  293. package/dist/rfc64/registered-private-empty-vm-proof-v1.d.ts.map +1 -0
  294. package/dist/rfc64/registered-private-empty-vm-proof-v1.js +26 -0
  295. package/dist/rfc64/registered-private-empty-vm-proof-v1.js.map +1 -0
  296. package/dist/rfc64/swm-inventory-shadow-runtime-v1.d.ts +3 -1
  297. package/dist/rfc64/swm-inventory-shadow-runtime-v1.d.ts.map +1 -1
  298. package/dist/rfc64/swm-inventory-shadow-runtime-v1.js +34 -0
  299. package/dist/rfc64/swm-inventory-shadow-runtime-v1.js.map +1 -1
  300. package/dist/sync/auth/pipe-request-tail.d.ts +5 -1
  301. package/dist/sync/auth/pipe-request-tail.d.ts.map +1 -1
  302. package/dist/sync/auth/pipe-request-tail.js +13 -3
  303. package/dist/sync/auth/pipe-request-tail.js.map +1 -1
  304. package/dist/sync/auth/request-build.d.ts +3 -0
  305. package/dist/sync/auth/request-build.d.ts.map +1 -1
  306. package/dist/sync/auth/request-build.js +11 -2
  307. package/dist/sync/auth/request-build.js.map +1 -1
  308. package/dist/sync/backpressure.d.ts +27 -16
  309. package/dist/sync/backpressure.d.ts.map +1 -1
  310. package/dist/sync/backpressure.js +66 -40
  311. package/dist/sync/backpressure.js.map +1 -1
  312. package/dist/sync/catchup-policy.d.ts +2 -0
  313. package/dist/sync/catchup-policy.d.ts.map +1 -1
  314. package/dist/sync/catchup-policy.js +2 -0
  315. package/dist/sync/catchup-policy.js.map +1 -1
  316. package/dist/sync/exact-assets.d.ts +7 -5
  317. package/dist/sync/exact-assets.d.ts.map +1 -1
  318. package/dist/sync/exact-assets.js +13 -8
  319. package/dist/sync/exact-assets.js.map +1 -1
  320. package/dist/sync/exact-batch-observation.d.ts +3 -0
  321. package/dist/sync/exact-batch-observation.d.ts.map +1 -0
  322. package/dist/sync/exact-batch-observation.js +13 -0
  323. package/dist/sync/exact-batch-observation.js.map +1 -0
  324. package/dist/sync/exact-batch-stream-capability.d.ts +24 -0
  325. package/dist/sync/exact-batch-stream-capability.d.ts.map +1 -0
  326. package/dist/sync/exact-batch-stream-capability.js +88 -0
  327. package/dist/sync/exact-batch-stream-capability.js.map +1 -0
  328. package/dist/sync/exact-batch-stream-contract.d.ts +78 -0
  329. package/dist/sync/exact-batch-stream-contract.d.ts.map +1 -0
  330. package/dist/sync/exact-batch-stream-contract.js +206 -0
  331. package/dist/sync/exact-batch-stream-contract.js.map +1 -0
  332. package/dist/sync/peer-connection.d.ts.map +1 -1
  333. package/dist/sync/peer-connection.js +11 -2
  334. package/dist/sync/peer-connection.js.map +1 -1
  335. package/dist/sync/priority-admission-queue.d.ts +17 -0
  336. package/dist/sync/priority-admission-queue.d.ts.map +1 -1
  337. package/dist/sync/priority-admission-queue.js +58 -37
  338. package/dist/sync/priority-admission-queue.js.map +1 -1
  339. package/dist/sync/requester/admission-boundary.d.ts +12 -0
  340. package/dist/sync/requester/admission-boundary.d.ts.map +1 -0
  341. package/dist/sync/requester/admission-boundary.js +22 -0
  342. package/dist/sync/requester/admission-boundary.js.map +1 -0
  343. package/dist/sync/requester/durable-sync.d.ts +2 -1
  344. package/dist/sync/requester/durable-sync.d.ts.map +1 -1
  345. package/dist/sync/requester/durable-sync.js +3 -188
  346. package/dist/sync/requester/durable-sync.js.map +1 -1
  347. package/dist/sync/requester/exact-batch-stream-driver.d.ts +83 -0
  348. package/dist/sync/requester/exact-batch-stream-driver.d.ts.map +1 -0
  349. package/dist/sync/requester/exact-batch-stream-driver.js +299 -0
  350. package/dist/sync/requester/exact-batch-stream-driver.js.map +1 -0
  351. package/dist/sync/requester/exact-batch-stream.d.ts +72 -0
  352. package/dist/sync/requester/exact-batch-stream.d.ts.map +1 -0
  353. package/dist/sync/requester/exact-batch-stream.js +267 -0
  354. package/dist/sync/requester/exact-batch-stream.js.map +1 -0
  355. package/dist/sync/requester/exact-recovery-transport.d.ts +19 -0
  356. package/dist/sync/requester/exact-recovery-transport.d.ts.map +1 -0
  357. package/dist/sync/requester/exact-recovery-transport.js +3 -0
  358. package/dist/sync/requester/exact-recovery-transport.js.map +1 -0
  359. package/dist/sync/requester/finalized-swm-twin-reconciliation.js +12 -3
  360. package/dist/sync/requester/finalized-swm-twin-reconciliation.js.map +1 -1
  361. package/dist/sync/requester/graph-scoped-materialization.d.ts.map +1 -1
  362. package/dist/sync/requester/graph-scoped-materialization.js +58 -24
  363. package/dist/sync/requester/graph-scoped-materialization.js.map +1 -1
  364. package/dist/sync/requester/page-fetch.d.ts +7 -0
  365. package/dist/sync/requester/page-fetch.d.ts.map +1 -1
  366. package/dist/sync/requester/page-fetch.js +103 -49
  367. package/dist/sync/requester/page-fetch.js.map +1 -1
  368. package/dist/sync/requester/shared-memory-sync.d.ts +10 -5
  369. package/dist/sync/requester/shared-memory-sync.d.ts.map +1 -1
  370. package/dist/sync/requester/shared-memory-sync.js +149 -150
  371. package/dist/sync/requester/shared-memory-sync.js.map +1 -1
  372. package/dist/sync/requester/swm-materialization-memo.d.ts +12 -0
  373. package/dist/sync/requester/swm-materialization-memo.d.ts.map +1 -0
  374. package/dist/sync/requester/swm-materialization-memo.js +54 -0
  375. package/dist/sync/requester/swm-materialization-memo.js.map +1 -0
  376. package/dist/sync/requester/swm-recovery.d.ts +3 -29
  377. package/dist/sync/requester/swm-recovery.d.ts.map +1 -1
  378. package/dist/sync/requester/swm-recovery.js +11 -10
  379. package/dist/sync/requester/swm-recovery.js.map +1 -1
  380. package/dist/sync/requester/swm-snapshot-materializer.d.ts.map +1 -1
  381. package/dist/sync/requester/swm-snapshot-materializer.js +18 -0
  382. package/dist/sync/requester/swm-snapshot-materializer.js.map +1 -1
  383. package/dist/sync/requester/swm-target-executor.d.ts +6 -0
  384. package/dist/sync/requester/swm-target-executor.d.ts.map +1 -1
  385. package/dist/sync/requester/swm-target-executor.js +24 -3
  386. package/dist/sync/requester/swm-target-executor.js.map +1 -1
  387. package/dist/sync/requester/verified-asset-preparation.d.ts +9 -0
  388. package/dist/sync/requester/verified-asset-preparation.d.ts.map +1 -0
  389. package/dist/sync/requester/verified-asset-preparation.js +190 -0
  390. package/dist/sync/requester/verified-asset-preparation.js.map +1 -0
  391. package/dist/sync/responder/asset-metadata.d.ts +18 -0
  392. package/dist/sync/responder/asset-metadata.d.ts.map +1 -0
  393. package/dist/sync/responder/asset-metadata.js +27 -0
  394. package/dist/sync/responder/asset-metadata.js.map +1 -0
  395. package/dist/sync/responder/durable-data-request-policy.d.ts +2 -16
  396. package/dist/sync/responder/durable-data-request-policy.d.ts.map +1 -1
  397. package/dist/sync/responder/durable-data-request-policy.js +1 -31
  398. package/dist/sync/responder/durable-data-request-policy.js.map +1 -1
  399. package/dist/sync/responder/exact-asset-export-cache.d.ts +89 -0
  400. package/dist/sync/responder/exact-asset-export-cache.d.ts.map +1 -0
  401. package/dist/sync/responder/exact-asset-export-cache.js +550 -0
  402. package/dist/sync/responder/exact-asset-export-cache.js.map +1 -0
  403. package/dist/sync/responder/exact-batch-stream.d.ts +47 -0
  404. package/dist/sync/responder/exact-batch-stream.d.ts.map +1 -0
  405. package/dist/sync/responder/exact-batch-stream.js +151 -0
  406. package/dist/sync/responder/exact-batch-stream.js.map +1 -0
  407. package/dist/sync/responder/exact-data-session.d.ts +67 -0
  408. package/dist/sync/responder/exact-data-session.d.ts.map +1 -0
  409. package/dist/sync/responder/exact-data-session.js +130 -0
  410. package/dist/sync/responder/exact-data-session.js.map +1 -0
  411. package/dist/sync/responder/exact-graph-cursor-filter.d.ts +9 -0
  412. package/dist/sync/responder/exact-graph-cursor-filter.d.ts.map +1 -0
  413. package/dist/sync/responder/exact-graph-cursor-filter.js +101 -0
  414. package/dist/sync/responder/exact-graph-cursor-filter.js.map +1 -0
  415. package/dist/sync/responder/exact-graph-reader.d.ts +95 -0
  416. package/dist/sync/responder/exact-graph-reader.d.ts.map +1 -0
  417. package/dist/sync/responder/exact-graph-reader.js +623 -0
  418. package/dist/sync/responder/exact-graph-reader.js.map +1 -0
  419. package/dist/sync/responder/exact-page-reader.d.ts +37 -0
  420. package/dist/sync/responder/exact-page-reader.d.ts.map +1 -0
  421. package/dist/sync/responder/exact-page-reader.js +130 -0
  422. package/dist/sync/responder/exact-page-reader.js.map +1 -0
  423. package/dist/sync/responder/graph-plan.d.ts +19 -85
  424. package/dist/sync/responder/graph-plan.d.ts.map +1 -1
  425. package/dist/sync/responder/graph-plan.js +51 -988
  426. package/dist/sync/responder/graph-plan.js.map +1 -1
  427. package/dist/sync/responder/page-framing-policy.d.ts +31 -0
  428. package/dist/sync/responder/page-framing-policy.d.ts.map +1 -0
  429. package/dist/sync/responder/page-framing-policy.js +41 -0
  430. package/dist/sync/responder/page-framing-policy.js.map +1 -0
  431. package/dist/sync/responder/responder-row-page.d.ts +85 -0
  432. package/dist/sync/responder/responder-row-page.d.ts.map +1 -0
  433. package/dist/sync/responder/responder-row-page.js +181 -0
  434. package/dist/sync/responder/responder-row-page.js.map +1 -0
  435. package/dist/sync/responder/row-serialization.d.ts +34 -0
  436. package/dist/sync/responder/row-serialization.d.ts.map +1 -0
  437. package/dist/sync/responder/row-serialization.js +69 -0
  438. package/dist/sync/responder/row-serialization.js.map +1 -0
  439. package/dist/sync/responder/session-plan-memo.d.ts +20 -0
  440. package/dist/sync/responder/session-plan-memo.d.ts.map +1 -0
  441. package/dist/sync/responder/session-plan-memo.js +135 -0
  442. package/dist/sync/responder/session-plan-memo.js.map +1 -0
  443. package/dist/sync/responder/sync-handler.d.ts +18 -1
  444. package/dist/sync/responder/sync-handler.d.ts.map +1 -1
  445. package/dist/sync/responder/sync-handler.js +101 -57
  446. package/dist/sync/responder/sync-handler.js.map +1 -1
  447. package/dist/sync/shared-memory-completion.d.ts +30 -0
  448. package/dist/sync/shared-memory-completion.d.ts.map +1 -1
  449. package/dist/sync/shared-memory-completion.js +13 -0
  450. package/dist/sync/shared-memory-completion.js.map +1 -1
  451. package/dist/sync/wire-compression.d.ts +47 -0
  452. package/dist/sync/wire-compression.d.ts.map +1 -0
  453. package/dist/sync/wire-compression.js +111 -0
  454. package/dist/sync/wire-compression.js.map +1 -0
  455. package/dist/unscoped-query-consistency.d.ts +12 -0
  456. package/dist/unscoped-query-consistency.d.ts.map +1 -1
  457. package/dist/unscoped-query-consistency.js +17 -1
  458. package/dist/unscoped-query-consistency.js.map +1 -1
  459. package/dist/vm-promotion-audit.d.ts +2 -2
  460. package/dist/vm-promotion-audit.d.ts.map +1 -1
  461. package/dist/vm-promotion-audit.js +26 -9
  462. package/dist/vm-promotion-audit.js.map +1 -1
  463. package/dist/vm-reconcile-dispatcher.d.ts +42 -1
  464. package/dist/vm-reconcile-dispatcher.d.ts.map +1 -1
  465. package/dist/vm-reconcile-dispatcher.js +103 -4
  466. package/dist/vm-reconcile-dispatcher.js.map +1 -1
  467. package/dist/vm-reconcile-peer-topology.d.ts +7 -9
  468. package/dist/vm-reconcile-peer-topology.d.ts.map +1 -1
  469. package/dist/vm-reconcile-peer-topology.js +1 -37
  470. package/dist/vm-reconcile-peer-topology.js.map +1 -1
  471. package/dist/vm-recovery-candidate-order.d.ts +16 -0
  472. package/dist/vm-recovery-candidate-order.d.ts.map +1 -0
  473. package/dist/vm-recovery-candidate-order.js +24 -0
  474. package/dist/vm-recovery-candidate-order.js.map +1 -0
  475. package/dist/vm-recovery-core-transport-preference.d.ts +69 -0
  476. package/dist/vm-recovery-core-transport-preference.d.ts.map +1 -0
  477. package/dist/vm-recovery-core-transport-preference.js +131 -0
  478. package/dist/vm-recovery-core-transport-preference.js.map +1 -0
  479. package/dist/vm-recovery-experiment-policy.d.ts +24 -0
  480. package/dist/vm-recovery-experiment-policy.d.ts.map +1 -0
  481. package/dist/vm-recovery-experiment-policy.js +18 -0
  482. package/dist/vm-recovery-experiment-policy.js.map +1 -0
  483. package/dist/vm-recovery-footprint.d.ts +54 -0
  484. package/dist/vm-recovery-footprint.d.ts.map +1 -1
  485. package/dist/vm-recovery-footprint.js +88 -24
  486. package/dist/vm-recovery-footprint.js.map +1 -1
  487. package/dist/vm-recovery-microbatch.d.ts +2 -0
  488. package/dist/vm-recovery-microbatch.d.ts.map +1 -1
  489. package/dist/vm-recovery-microbatch.js +7 -3
  490. package/dist/vm-recovery-microbatch.js.map +1 -1
  491. package/dist/vm-recovery-pass-authority.d.ts +84 -0
  492. package/dist/vm-recovery-pass-authority.d.ts.map +1 -0
  493. package/dist/vm-recovery-pass-authority.js +126 -0
  494. package/dist/vm-recovery-pass-authority.js.map +1 -0
  495. package/dist/vm-recovery-phase-timing.d.ts +75 -0
  496. package/dist/vm-recovery-phase-timing.d.ts.map +1 -0
  497. package/dist/vm-recovery-phase-timing.js +236 -0
  498. package/dist/vm-recovery-phase-timing.js.map +1 -0
  499. package/dist/vm-recovery-preparation.d.ts +143 -0
  500. package/dist/vm-recovery-preparation.d.ts.map +1 -0
  501. package/dist/vm-recovery-preparation.js +433 -0
  502. package/dist/vm-recovery-preparation.js.map +1 -0
  503. package/dist/vm-recovery-provider-policy.d.ts +13 -1
  504. package/dist/vm-recovery-provider-policy.d.ts.map +1 -1
  505. package/dist/vm-recovery-provider-policy.js +37 -5
  506. package/dist/vm-recovery-provider-policy.js.map +1 -1
  507. package/dist/vm-recovery-stream-profile.d.ts +15 -0
  508. package/dist/vm-recovery-stream-profile.d.ts.map +1 -0
  509. package/dist/vm-recovery-stream-profile.js +53 -0
  510. package/dist/vm-recovery-stream-profile.js.map +1 -0
  511. package/dist/vm-recovery-stream-setback-policy.d.ts +54 -0
  512. package/dist/vm-recovery-stream-setback-policy.d.ts.map +1 -0
  513. package/dist/vm-recovery-stream-setback-policy.js +85 -0
  514. package/dist/vm-recovery-stream-setback-policy.js.map +1 -0
  515. package/dist/vm-recovery-timing-observer.d.ts +27 -0
  516. package/dist/vm-recovery-timing-observer.d.ts.map +1 -0
  517. package/dist/vm-recovery-timing-observer.js +49 -0
  518. package/dist/vm-recovery-timing-observer.js.map +1 -0
  519. package/dist/vm-recovery-transport-budget-policy.d.ts +32 -0
  520. package/dist/vm-recovery-transport-budget-policy.d.ts.map +1 -0
  521. package/dist/vm-recovery-transport-budget-policy.js +55 -0
  522. package/dist/vm-recovery-transport-budget-policy.js.map +1 -0
  523. package/dist/vm-recovery-transport-plan.d.ts +83 -0
  524. package/dist/vm-recovery-transport-plan.d.ts.map +1 -0
  525. package/dist/vm-recovery-transport-plan.js +117 -0
  526. package/dist/vm-recovery-transport-plan.js.map +1 -0
  527. package/package.json +17 -9
  528. package/dist/finalization-annotations.d.ts +0 -5
  529. package/dist/finalization-annotations.d.ts.map +0 -1
  530. package/dist/finalization-annotations.js +0 -6
  531. package/dist/finalization-annotations.js.map +0 -1
  532. package/dist/swm-ka-bound.d.ts +0 -21
  533. package/dist/swm-ka-bound.d.ts.map +0 -1
  534. package/dist/swm-ka-bound.js +0 -36
  535. package/dist/swm-ka-bound.js.map +0 -1
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Graphs waiting for node-local sync admission, served in turn.
3
+ *
4
+ * A reconcile pass that the node's own sync admission refused has nothing to
5
+ * gain from running again while that capacity is still in use: every repeat
6
+ * costs the pass's chain reads and is refused the same way, and every waiting
7
+ * graph pays them at once. This component owns the wait instead. A refused
8
+ * graph is kept in arrival order and nudged once the admission can take its
9
+ * fetch, one graph at a time.
10
+ *
11
+ * A pass that could not start its work at all, because the source it had to
12
+ * ask did not answer, waits here too (see {@link VmReconcileLocalAdmissionWait.defer}).
13
+ *
14
+ * It owns no sync lease and no VM worker. A nudge re-enters the ordinary
15
+ * bounded dispatcher, and the periodic sweep still visits a waiting graph.
16
+ */
17
+ /** A refused nudge's hold, and how often the queue re-reads capacity. */
18
+ const RETRY_MS = 2_500;
19
+ /**
20
+ * How long a nudged pass holds the next waiter back when it has not settled:
21
+ * long enough to reach its own admission, after which the capacity read
22
+ * accounts for it. Without the bound a long fetch on a node with several sync
23
+ * slots would keep its free ones idle.
24
+ */
25
+ const TURN_MAX_MS = 15_000;
26
+ /** A capacity read that cannot answer falls back to the plain bounded retry. */
27
+ function admissionAvailable(waiter) {
28
+ try {
29
+ return waiter.canAdmit();
30
+ }
31
+ catch {
32
+ return true;
33
+ }
34
+ }
35
+ export class VmReconcileLocalAdmissionWait {
36
+ deps;
37
+ /** Waiting graphs, in the order they are served. */
38
+ waiters = new Map();
39
+ /** The waiter nudged last, until its pass settles. */
40
+ turn;
41
+ /** No waiter is nudged before this time: a nudged pass was refused all the same. */
42
+ holdUntil = 0;
43
+ timer;
44
+ closed = false;
45
+ constructor(deps) {
46
+ this.deps = deps;
47
+ }
48
+ /**
49
+ * The node's sync admission refused this graph's fetch. `canAdmit` reads the
50
+ * admission the fetch will ask. Every waiter uses this readiness contract.
51
+ */
52
+ retry(key, options) {
53
+ if (this.closed || options.signal?.aborted || !options.isCurrent())
54
+ return;
55
+ const refusedTurn = this.turn?.key === key;
56
+ // The nudged graph was refused all the same, so the capacity read was
57
+ // wrong or capacity went elsewhere first. It keeps its place at the head,
58
+ // and nothing is nudged for one delay so a wrong read cannot spin passes.
59
+ if (this.park(key, options, refusedTurn ? 'front' : 'keep') && refusedTurn) {
60
+ this.holdUntil = Date.now() + RETRY_MS;
61
+ }
62
+ this.armTimer();
63
+ }
64
+ /**
65
+ * A graph that just used the node's sync admission and has more to fetch
66
+ * goes behind the graphs already waiting for it. Returns false, and parks
67
+ * nothing, when no other graph is waiting.
68
+ */
69
+ yieldTurn(key, options) {
70
+ if (this.closed || options.signal?.aborted || !options.isCurrent())
71
+ return false;
72
+ let othersWaiting = false;
73
+ for (const waiting of this.waiters.keys()) {
74
+ if (waiting !== key) {
75
+ othersWaiting = true;
76
+ break;
77
+ }
78
+ }
79
+ if (!othersWaiting)
80
+ return false;
81
+ const parked = this.park(key, options, 'back');
82
+ this.armTimer();
83
+ return parked;
84
+ }
85
+ /**
86
+ * A pass ended before its work started: the source it had to ask gave no
87
+ * answer. Nothing here can read when it will, so the graph goes behind the
88
+ * others and no waiter is nudged for one delay. A graph that keeps getting
89
+ * no answer then costs one short pass per delay, in turn with the rest.
90
+ * `canAdmit` is the same readiness contract as for a refused fetch: the
91
+ * graph is not asked again while its fetch could not start anyway.
92
+ *
93
+ * Returns `again` when the pass was this wait's own nudge, `parked` when it
94
+ * came from elsewhere, and undefined when the graph was not taken.
95
+ */
96
+ defer(key, options) {
97
+ if (this.closed || options.signal?.aborted || !options.isCurrent())
98
+ return undefined;
99
+ const nudged = this.turn?.key === key;
100
+ if (!this.park(key, options, 'back', true))
101
+ return undefined;
102
+ this.holdUntil = Date.now() + RETRY_MS;
103
+ this.armTimer();
104
+ return nudged ? 'again' : 'parked';
105
+ }
106
+ /** A pass of this graph is starting. Hand the result to {@link passEnded}. */
107
+ passStarted(key) {
108
+ return { key, waiting: this.waiters.get(key) };
109
+ }
110
+ /**
111
+ * The pass ended. A graph whose place in the wait is still the one it had
112
+ * when the pass started was not refused again, so it is no longer waiting.
113
+ * Whatever the pass used is free now, so this is also when the next waiter
114
+ * can go.
115
+ */
116
+ passEnded(pass) {
117
+ if (pass.waiting !== undefined && this.waiters.get(pass.key) === pass.waiting) {
118
+ this.remove(pass.key);
119
+ }
120
+ this.wake();
121
+ }
122
+ close() {
123
+ this.closed = true;
124
+ for (const key of this.waiters.keys())
125
+ this.remove(key);
126
+ this.armTimer();
127
+ this.turn = undefined;
128
+ }
129
+ park(key, options, position, deferred = false) {
130
+ const existing = this.waiters.get(key);
131
+ if (!existing && this.waiters.size >= this.deps.maxWaiters)
132
+ return false;
133
+ const waiter = {
134
+ deferred,
135
+ canAdmit: options.canAdmit,
136
+ isCurrent: options.isCurrent,
137
+ ...(options.signal ? { signal: options.signal } : {}),
138
+ onAbort: () => {
139
+ if (this.waiters.get(key) !== waiter)
140
+ return;
141
+ this.remove(key);
142
+ this.armTimer();
143
+ },
144
+ };
145
+ existing?.signal?.removeEventListener('abort', existing.onAbort);
146
+ if (position === 'front') {
147
+ const behind = [...this.waiters].filter(([waiting]) => waiting !== key);
148
+ this.waiters.clear();
149
+ this.waiters.set(key, waiter);
150
+ for (const [waiting, entry] of behind)
151
+ this.waiters.set(waiting, entry);
152
+ }
153
+ else {
154
+ // Setting an existing key keeps its place; `back` gives it up first.
155
+ if (position === 'back')
156
+ this.waiters.delete(key);
157
+ this.waiters.set(key, waiter);
158
+ }
159
+ options.signal?.addEventListener('abort', waiter.onAbort, { once: true });
160
+ return true;
161
+ }
162
+ remove(key) {
163
+ const waiter = this.waiters.get(key);
164
+ if (!waiter)
165
+ return;
166
+ waiter.signal?.removeEventListener('abort', waiter.onAbort);
167
+ this.waiters.delete(key);
168
+ }
169
+ /**
170
+ * Nudge the longest waiter the node's sync admission can take, unless a
171
+ * nudged pass is still out. Waiters are read in arrival order and one that
172
+ * cannot be admitted yet is passed over, so a graph with capacity of its own
173
+ * is not held behind one without.
174
+ */
175
+ wake() {
176
+ if (this.closed)
177
+ return;
178
+ const now = Date.now();
179
+ const turnIsOut = this.turn !== undefined && now - this.turn.startedAt < TURN_MAX_MS;
180
+ if (!turnIsOut && now >= this.holdUntil) {
181
+ // Removing the entry being visited is safe on a Map.
182
+ for (const [key, waiter] of this.waiters) {
183
+ if (waiter.signal?.aborted || !waiter.isCurrent()) {
184
+ this.remove(key);
185
+ continue;
186
+ }
187
+ if (!admissionAvailable(waiter))
188
+ continue;
189
+ this.remove(key);
190
+ const completion = this.deps.nudge(key, waiter.deferred);
191
+ // Not admitted: the periodic sweep owns the graph.
192
+ if (!completion)
193
+ continue;
194
+ const started = { key, startedAt: now };
195
+ this.turn = started;
196
+ const settle = () => {
197
+ if (this.turn === started)
198
+ this.turn = undefined;
199
+ this.wake();
200
+ };
201
+ completion.then(settle, settle);
202
+ break;
203
+ }
204
+ }
205
+ this.armTimer();
206
+ }
207
+ /** One timer for the whole wait: the next delay to run out, else a capacity re-read per interval. */
208
+ armTimer() {
209
+ if (this.timer !== undefined)
210
+ clearTimeout(this.timer);
211
+ this.timer = undefined;
212
+ if (this.closed || this.waiters.size === 0)
213
+ return;
214
+ const now = Date.now();
215
+ let delay = RETRY_MS;
216
+ if (this.holdUntil > now) {
217
+ delay = this.holdUntil - now;
218
+ }
219
+ this.timer = setTimeout(() => {
220
+ this.timer = undefined;
221
+ this.wake();
222
+ }, delay);
223
+ this.timer.unref?.();
224
+ }
225
+ }
226
+ //# sourceMappingURL=vm-reconcile-local-admission-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-reconcile-local-admission-wait.js","sourceRoot":"","sources":["../../src/internal/vm-reconcile-local-admission-wait.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * What a VM reconcile pass makes of a read-authority check that was not
3
+ * allowed.
4
+ *
5
+ * A denial closes the pass, and so does an authority source that answered
6
+ * "unknown". A chain read that was never answered is different: the node's own
7
+ * RPC budget did not admit it, or the endpoint did not reply in time. That
8
+ * says nothing about the graph, and the same question may be answered a
9
+ * moment later, so the pass is told apart and its graph can be asked again
10
+ * without waiting for the periodic sweep.
11
+ */
12
+ import type { ContextGraphReadAuthorityDecision, UnavailableContextGraphReadAuthorityDecision } from '../context-graph-read-authority.js';
13
+ import { ContextGraphNotFoundError } from '../dkg-agent-types.js';
14
+ /** Whether the decision is "no answer from the chain" rather than a refusal. */
15
+ export declare function isUnansweredVmReconcileReadAuthority(decision: ContextGraphReadAuthorityDecision | undefined): decision is UnavailableContextGraphReadAuthorityDecision;
16
+ /**
17
+ * The pass could not confirm read authority because the chain read behind the
18
+ * check got no answer. To a caller it is the refusal it always was, a
19
+ * {@link ContextGraphNotFoundError} with the same message; reconcile
20
+ * scheduling tells it apart by class.
21
+ */
22
+ export declare class VmReconcileReadAuthorityUnansweredError extends ContextGraphNotFoundError {
23
+ /** `source/reason/dependency` of the unanswered decision, for the node's log. */
24
+ readonly readAuthority: string;
25
+ constructor(contextGraphId: string, decision: Pick<UnavailableContextGraphReadAuthorityDecision, 'source' | 'reason' | 'dependency'>);
26
+ }
27
+ //# sourceMappingURL=vm-reconcile-read-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-reconcile-read-authority.d.ts","sourceRoot":"","sources":["../../src/internal/vm-reconcile-read-authority.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iCAAiC,EACjC,4CAA4C,EAC7C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAalE,gFAAgF;AAChF,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,iCAAiC,GAAG,SAAS,GACtD,QAAQ,IAAI,4CAA4C,CAI1D;AAED;;;;;GAKG;AACH,qBAAa,uCAAwC,SAAQ,yBAAyB;IACpF,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAG7B,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,IAAI,CAAC,4CAA4C,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;CAKnG"}
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { ContextGraphNotFoundError } from '../dkg-agent-types.js';
3
+ /**
4
+ * On a current-state read these reasons only come from a chain read that
5
+ * timed out or that the transport rejected. `chain-access-policy-unknown` is
6
+ * absent on purpose: there the chain answered, and the answer is final.
7
+ */
8
+ const UNANSWERED_CHAIN_READ_REASONS = new Set([
9
+ 'chain-access-policy-timeout',
10
+ 'chain-access-policy-unavailable',
11
+ 'chain-participant-authority-unavailable',
12
+ ]);
13
+ /** Whether the decision is "no answer from the chain" rather than a refusal. */
14
+ export function isUnansweredVmReconcileReadAuthority(decision) {
15
+ return decision?.outcome === 'unavailable'
16
+ && decision.dependency === 'chain'
17
+ && UNANSWERED_CHAIN_READ_REASONS.has(decision.reason);
18
+ }
19
+ /**
20
+ * The pass could not confirm read authority because the chain read behind the
21
+ * check got no answer. To a caller it is the refusal it always was, a
22
+ * {@link ContextGraphNotFoundError} with the same message; reconcile
23
+ * scheduling tells it apart by class.
24
+ */
25
+ export class VmReconcileReadAuthorityUnansweredError extends ContextGraphNotFoundError {
26
+ /** `source/reason/dependency` of the unanswered decision, for the node's log. */
27
+ readAuthority;
28
+ constructor(contextGraphId, decision) {
29
+ super(contextGraphId);
30
+ this.readAuthority = `${decision.source}/${decision.reason}/${decision.dependency}`;
31
+ }
32
+ }
33
+ //# sourceMappingURL=vm-reconcile-read-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-reconcile-read-authority.js","sourceRoot":"","sources":["../../src/internal/vm-reconcile-read-authority.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAkBtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE;;;;GAIG;AACH,MAAM,6BAA6B,GAAwB,IAAI,GAAG,CAAC;IACjE,6BAA6B;IAC7B,iCAAiC;IACjC,yCAAyC;CAC1C,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,UAAU,oCAAoC,CAClD,QAAuD;IAEvD,OAAO,QAAQ,EAAE,OAAO,KAAK,aAAa;WACrC,QAAQ,CAAC,UAAU,KAAK,OAAO;WAC/B,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,uCAAwC,SAAQ,yBAAyB;IACpF,iFAAiF;IACxE,aAAa,CAAS;IAE/B,YACE,cAAsB,EACtB,QAAgG;QAEhG,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;IACtF,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
1
  /** Internal sweep capability; deliberately absent from the package-root API. */
2
2
  export interface VmReconcileSweepAdmission<T = unknown> {
3
3
  readonly tryAdmit: (key: string) => Promise<T> | undefined;
4
+ /** Dispatcher-owned timer cap; coalesced work does not consume another slot. */
5
+ readonly tryAdmitBoundTimer: (key: string) => Promise<T> | undefined;
4
6
  readonly waitForChange: (signal?: AbortSignal) => Promise<void>;
5
7
  readonly isClosed: () => boolean;
6
8
  /** Keep waiting periodic admission visible until its owner retires. */
@@ -1 +1 @@
1
- {"version":3,"file":"vm-reconcile-sweep-admission.d.ts","sourceRoot":"","sources":["../../src/internal/vm-reconcile-sweep-admission.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,IAAI,CAAC;CAC9D"}
1
+ {"version":3,"file":"vm-reconcile-sweep-admission.d.ts","sourceRoot":"","sources":["../../src/internal/vm-reconcile-sweep-admission.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3D,gFAAgF;IAChF,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,IAAI,CAAC;CAC9D"}
@@ -7,17 +7,22 @@ export declare class VmReconcileSweepSelector {
7
7
  /** Return successful admissions; keep a rejected candidate for the next call. */
8
8
  admit(keys: readonly string[], maximum: number, tryAdmit: (key: string) => boolean): number;
9
9
  }
10
+ export interface VmReconcileSweepPlannerOptions {
11
+ discoveryBatchSize: number;
12
+ periodicBoundBatchSize?: number;
13
+ }
10
14
  /** Own real admissions and their completion handles throughout a discovery turn. */
11
15
  export declare class VmReconcileSweepPlanner {
12
- private readonly discoveryBatchSize;
13
16
  private readonly retainCapacity;
14
17
  private readonly bound;
15
18
  private readonly unbound;
19
+ private readonly discoveryBatchSize;
20
+ private readonly periodicBoundBatchSize;
16
21
  private turn;
17
- constructor(discoveryBatchSize: number, retainCapacity: VmReconcileSweepAdmission['retainCapacity']);
22
+ constructor(options: VmReconcileSweepPlannerOptions, retainCapacity: VmReconcileSweepAdmission['retainCapacity']);
18
23
  reset(): void;
19
24
  /** Timer admission is synchronous; retain a capacity-limited discovery turn. */
20
- admit(boundKeys: readonly string[], unboundKeys: readonly string[], tryAdmit: (key: string) => Promise<unknown> | undefined): void;
25
+ admit(boundKeys: readonly string[], unboundKeys: readonly string[], admission: Pick<VmReconcileSweepAdmission, 'tryAdmit' | 'tryAdmitBoundTimer'>): void;
21
26
  /**
22
27
  * Join retained admissions, then finish this turn's selected rotation.
23
28
  * Calls overlapping a partial admission turn join it; once admission is
@@ -28,6 +33,13 @@ export declare class VmReconcileSweepPlanner {
28
33
  private claimForCompletion;
29
34
  private releaseTimerCapacity;
30
35
  private finish;
31
- private advance;
36
+ private record;
37
+ private admitLeadingBound;
38
+ private spendDiscovery;
39
+ private admitBoundTail;
40
+ /** A timer tick spends discovery independently, then fills only its bound allowance. */
41
+ private advanceTimerTurn;
42
+ /** An explicit completion owns one full finite bound rotation and retries. */
43
+ private advanceCompletionTurn;
32
44
  }
33
45
  //# sourceMappingURL=vm-reconcile-sweep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vm-reconcile-sweep.d.ts","sourceRoot":"","sources":["../../src/internal/vm-reconcile-sweep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,kFAAkF;AAClF,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAAK;IAEtB,KAAK,IAAI,IAAI;IAEb,iFAAiF;IACjF,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM;CAiB5F;AA4BD,oFAAoF;AACpF,qBAAa,uBAAuB;IAMhC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,IAAI,CAAwB;gBAGjB,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,yBAAyB,CAAC,gBAAgB,CAAC;IAG9E,KAAK,IAAI,IAAI;IAMb,gFAAgF;IAChF,KAAK,CACH,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,GACtD,IAAI;IASP;;;;OAIG;IACG,QAAQ,CACZ,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,SAAS,EAAE,yBAAyB,EACpC,SAAS,EAAE,MAAM,OAAO,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAsBhB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;CAwDhB"}
1
+ {"version":3,"file":"vm-reconcile-sweep.d.ts","sourceRoot":"","sources":["../../src/internal/vm-reconcile-sweep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,kFAAkF;AAClF,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,SAAS,CAAK;IAEtB,KAAK,IAAI,IAAI;IAEb,iFAAiF;IACjF,KAAK,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM;CAiB5F;AAgCD,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,oFAAoF;AACpF,qBAAa,uBAAuB;IAShC,OAAO,CAAC,QAAQ,CAAC,cAAc;IARjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,IAAI,CAAwB;gBAGlC,OAAO,EAAE,8BAA8B,EACtB,cAAc,EAAE,yBAAyB,CAAC,gBAAgB,CAAC;IAM9E,KAAK,IAAI,IAAI;IAMb,gFAAgF;IAChF,KAAK,CACH,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE,UAAU,GAAG,oBAAoB,CAAC,GAC5E,IAAI;IAUP;;;;OAIG;IACG,QAAQ,CACZ,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,SAAS,EAAE,yBAAyB,EACpC,SAAS,EAAE,MAAM,OAAO,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IA0BhB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,MAAM;IAed,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,cAAc;IAYtB,wFAAwF;IACxF,OAAO,CAAC,gBAAgB;IA0CxB,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB;CA4B9B"}
@@ -28,14 +28,16 @@ export class VmReconcileSweepSelector {
28
28
  }
29
29
  /** Own real admissions and their completion handles throughout a discovery turn. */
30
30
  export class VmReconcileSweepPlanner {
31
- discoveryBatchSize;
32
31
  retainCapacity;
33
32
  bound = new VmReconcileSweepSelector();
34
33
  unbound = new VmReconcileSweepSelector();
34
+ discoveryBatchSize;
35
+ periodicBoundBatchSize;
35
36
  turn;
36
- constructor(discoveryBatchSize, retainCapacity) {
37
- this.discoveryBatchSize = discoveryBatchSize;
37
+ constructor(options, retainCapacity) {
38
38
  this.retainCapacity = retainCapacity;
39
+ this.discoveryBatchSize = options.discoveryBatchSize;
40
+ this.periodicBoundBatchSize = options.periodicBoundBatchSize ?? 8;
39
41
  }
40
42
  reset() {
41
43
  if (this.turn)
@@ -44,10 +46,12 @@ export class VmReconcileSweepPlanner {
44
46
  this.unbound.reset();
45
47
  }
46
48
  /** Timer admission is synchronous; retain a capacity-limited discovery turn. */
47
- admit(boundKeys, unboundKeys, tryAdmit) {
49
+ admit(boundKeys, unboundKeys, admission) {
48
50
  const turn = this.currentTurn();
51
+ if (turn.owner === 'completion')
52
+ return;
49
53
  this.releaseTimerCapacity(turn);
50
- this.advance(turn, boundKeys, unboundKeys, tryAdmit);
54
+ this.advanceTimerTurn(turn, boundKeys, unboundKeys, admission);
51
55
  if (!turn.finished.signal.aborted) {
52
56
  turn.releaseTimerCapacity = this.retainCapacity(turn.finished.signal);
53
57
  }
@@ -67,7 +71,7 @@ export class VmReconcileSweepPlanner {
67
71
  const releaseCapacity = this.retainCapacity(waitingSignal);
68
72
  try {
69
73
  while (!turn.finished.signal.aborted && isActive() && !admission.isClosed()) {
70
- this.advance(turn, boundKeys, unboundKeys, key => isActive() ? admission.tryAdmit(key) : undefined);
74
+ this.advanceCompletionTurn(turn, unboundKeys, key => isActive() ? admission.tryAdmit(key) : undefined);
71
75
  if (turn.finished.signal.aborted || !isActive() || admission.isClosed())
72
76
  break;
73
77
  // Successful admissions may wake another caller finishing this turn.
@@ -77,6 +81,11 @@ export class VmReconcileSweepPlanner {
77
81
  }
78
82
  finally {
79
83
  releaseCapacity();
84
+ turn.completionClaimants--;
85
+ // A cancelled or obsolete final caller must not leave the planner in
86
+ // completion mode, which would suppress every later timer sweep.
87
+ if (turn.completionClaimants === 0 && !turn.finished.signal.aborted)
88
+ this.finish(turn);
80
89
  }
81
90
  await Promise.all(turn.completions);
82
91
  }
@@ -84,18 +93,22 @@ export class VmReconcileSweepPlanner {
84
93
  return this.turn ??= {
85
94
  owner: 'timer',
86
95
  state: { phase: 'leading', remainingDiscovery: this.discoveryBatchSize },
87
- admittedKeys: new Set(), completions: [], finished: new AbortController(),
96
+ admittedKeys: new Set(), boundAdmissions: 0, completionClaimants: 0,
97
+ completions: [], finished: new AbortController(),
88
98
  };
89
99
  }
90
100
  claimForCompletion(boundKeys) {
91
101
  const current = this.currentTurn();
92
102
  this.releaseTimerCapacity(current);
93
- if (current.owner === 'completion')
103
+ if (current.owner === 'completion') {
104
+ current.completionClaimants++;
94
105
  return current;
106
+ }
95
107
  const claimed = {
96
108
  ...current,
97
109
  owner: 'completion',
98
110
  fullBoundKeys: [...boundKeys],
111
+ completionClaimants: 1,
99
112
  };
100
113
  this.turn = claimed;
101
114
  return claimed;
@@ -109,59 +122,87 @@ export class VmReconcileSweepPlanner {
109
122
  if (this.turn === turn)
110
123
  this.turn = undefined;
111
124
  }
112
- advance(turn, boundKeys, unboundKeys, tryAdmit) {
113
- if (turn.finished.signal.aborted)
114
- return;
115
- const boundRotation = turn.owner === 'completion' ? turn.fullBoundKeys : boundKeys;
116
- const accept = (key) => {
117
- const completion = tryAdmit(key);
118
- if (completion === undefined)
125
+ record(turn, key, tryAdmit, bound) {
126
+ const completion = tryAdmit(key);
127
+ if (completion === undefined)
128
+ return false;
129
+ // Preserve the exact handle, including work coalesced with an earlier tick.
130
+ turn.completions.push(completion.catch(() => undefined));
131
+ turn.admittedKeys.add(key);
132
+ if (bound)
133
+ turn.boundAdmissions++;
134
+ return true;
135
+ }
136
+ admitLeadingBound(turn, keys, tryAdmit) {
137
+ return keys.length === 0 || this.bound.admit(keys, 1, key => this.record(turn, key, tryAdmit, true)) === 1;
138
+ }
139
+ spendDiscovery(turn, keys, remaining, tryAdmit) {
140
+ let budget = Math.min(remaining, keys.length);
141
+ this.unbound.admit(keys, budget, key => {
142
+ if (!this.record(turn, key, tryAdmit, false))
119
143
  return false;
120
- // Automatic failures are reported by the dispatcher. Retain each exact
121
- // handle immediately, including work admitted by an earlier timer tick.
122
- turn.completions.push(completion.catch(() => undefined));
144
+ budget--;
123
145
  return true;
124
- };
146
+ });
147
+ return budget;
148
+ }
149
+ admitBoundTail(turn, keys, limit, tryAdmit) {
150
+ const tail = keys.filter(key => !turn.admittedKeys.has(key));
151
+ const admitted = limit === 0 ? 0 : this.bound.admit(tail, Math.min(tail.length, limit), key => this.record(turn, key, tryAdmit, true));
152
+ return { admitted, available: tail.length };
153
+ }
154
+ /** A timer tick spends discovery independently, then fills only its bound allowance. */
155
+ advanceTimerTurn(turn, boundKeys, unboundKeys, admission) {
156
+ if (turn.owner !== 'timer' || turn.finished.signal.aborted)
157
+ return;
158
+ const timerBound = admission.tryAdmitBoundTimer;
125
159
  if (turn.state.phase === 'leading') {
126
- const count = this.bound.admit(boundRotation, 1, key => {
127
- if (!accept(key))
128
- return false;
129
- turn.admittedKeys.add(key);
130
- return true;
131
- });
132
- if (boundRotation.length > 0 && count === 0)
160
+ const remaining = turn.state.remainingDiscovery;
161
+ if (!this.admitLeadingBound(turn, boundKeys, timerBound)) {
162
+ // Keep the periodic capacity claim for dispatcher fairness. Discovery
163
+ // can still run, but the rejected bound key waits for the next tick.
164
+ turn.state = {
165
+ phase: 'leading',
166
+ remainingDiscovery: this.spendDiscovery(turn, unboundKeys, remaining, admission.tryAdmit),
167
+ };
133
168
  return;
134
- turn.state = {
135
- phase: 'discovery',
136
- remainingDiscovery: turn.state.remainingDiscovery,
137
- };
169
+ }
170
+ turn.state = { phase: 'discovery', remainingDiscovery: remaining };
138
171
  }
139
172
  if (turn.state.phase === 'discovery') {
140
- let remainingDiscovery = Math.min(turn.state.remainingDiscovery, unboundKeys.length);
141
- this.unbound.admit(unboundKeys, remainingDiscovery, key => {
142
- if (!accept(key))
143
- return false;
144
- turn.admittedKeys.add(key);
145
- remainingDiscovery--;
146
- return true;
147
- });
148
- if (remainingDiscovery > 0) {
149
- turn.state = { phase: 'discovery', remainingDiscovery };
173
+ const remaining = this.spendDiscovery(turn, unboundKeys, turn.state.remainingDiscovery, admission.tryAdmit);
174
+ if (remaining > 0) {
175
+ turn.state = { phase: 'discovery', remainingDiscovery: remaining };
150
176
  return;
151
177
  }
152
178
  turn.state = { phase: 'tail' };
153
179
  }
154
- const tail = boundRotation.filter(key => !turn.admittedKeys.has(key));
155
- const count = this.bound.admit(tail, tail.length, key => {
156
- if (!accept(key))
157
- return false;
158
- turn.admittedKeys.add(key);
159
- return true;
160
- });
161
- if (turn.owner === 'completion' && count < tail.length)
180
+ this.admitBoundTail(turn, boundKeys, Math.max(0, this.periodicBoundBatchSize - turn.boundAdmissions), timerBound);
181
+ // A rejected tail retains the selector's round-robin cursor for the next
182
+ // tick. Timer turns never own an unbounded completion drain.
183
+ this.finish(turn);
184
+ }
185
+ /** An explicit completion owns one full finite bound rotation and retries. */
186
+ advanceCompletionTurn(turn, unboundKeys, tryAdmit) {
187
+ if (turn.owner !== 'completion' || turn.finished.signal.aborted)
188
+ return;
189
+ const boundKeys = turn.fullBoundKeys;
190
+ if (turn.state.phase === 'leading') {
191
+ if (!this.admitLeadingBound(turn, boundKeys, tryAdmit))
192
+ return;
193
+ turn.state = { phase: 'discovery', remainingDiscovery: turn.state.remainingDiscovery };
194
+ }
195
+ if (turn.state.phase === 'discovery') {
196
+ const remaining = this.spendDiscovery(turn, unboundKeys, turn.state.remainingDiscovery, tryAdmit);
197
+ if (remaining > 0) {
198
+ turn.state = { phase: 'discovery', remainingDiscovery: remaining };
199
+ return;
200
+ }
201
+ turn.state = { phase: 'tail' };
202
+ }
203
+ const { admitted, available } = this.admitBoundTail(turn, boundKeys, boundKeys.length, tryAdmit);
204
+ if (admitted < available)
162
205
  return;
163
- // A timer's rejected tail leads its next discovery turn. Public callers
164
- // retain the tail until admitted, so their finite selected rotation drains.
165
206
  this.finish(turn);
166
207
  }
167
208
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vm-reconcile-sweep.js","sourceRoot":"","sources":["../../src/internal/vm-reconcile-sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm-reconcile-sweep.js","sourceRoot":"","sources":["../../src/internal/vm-reconcile-sweep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ContextGraphMetaRecord } from '../context-graph-meta-projection.js';
2
+ export declare function collectProjectedDelegatees(meta: ContextGraphMetaRecord, field: 'allowedPeers' | 'allowedKeys', normalizeValue: (value: string) => string): Map<string, string[]>;
3
+ //# sourceMappingURL=workspace-projected-delegatees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-projected-delegatees.d.ts","sourceRoot":"","sources":["../../src/internal/workspace-projected-delegatees.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAUlF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,sBAAsB,EAC5B,KAAK,EAAE,cAAc,GAAG,aAAa,EACrC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GACxC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBvB"}