@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,236 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { diffRpcRequestTiming, snapshotProcessRpcUsage, snapshotRpcRequestTiming, } from '@origintrail-official/dkg-chain';
3
+ /**
4
+ * Observation-only attribution of where one exact VM recovery pass spends wall
5
+ * clock and background RPC capacity. Nothing here is consulted by a recovery
6
+ * decision: measuring or formatting must never change an outcome, so every
7
+ * entry point is total and swallows its own errors.
8
+ *
9
+ * Background-class attempt counts are process-wide. They attribute reliably
10
+ * only while recovery is the node's main background RPC consumer, and they also
11
+ * include any speculative preparation that runs inside the same interval.
12
+ */
13
+ export const VM_RECOVERY_PHASES = [
14
+ /** Curator roster and preferred-peer resolution. */
15
+ 'roster',
16
+ /** Advertised-protocol checks of the connected providers for the stream wire. */
17
+ 'transport',
18
+ /** Registered-public authority read that gates the stream wire. */
19
+ 'authority',
20
+ /** Connect, sync-protocol readiness and network admission of the provider. */
21
+ 'peer-ready',
22
+ /** Chain sizing hints for packing (live reads or consumed preparations). */
23
+ 'sizing',
24
+ /** Network exchange plus verified materialization of the requested assets. */
25
+ 'exchange',
26
+ /** Per-ordinal chain revalidation that follows the exchange. */
27
+ 'post-fetch',
28
+ ];
29
+ const EMPTY_USAGE = Object.freeze({
30
+ ms: 0,
31
+ backgroundAttempts: 0,
32
+ backgroundAdmissionWaitMs: 0,
33
+ backgroundEndpointMs: 0,
34
+ });
35
+ function emptyTotals() {
36
+ return Object.fromEntries(VM_RECOVERY_PHASES.map((phase) => [phase, EMPTY_USAGE]));
37
+ }
38
+ const DEFAULT_SOURCES = {
39
+ clock: () => performance.now(),
40
+ timing: () => snapshotRpcRequestTiming(),
41
+ usage: () => snapshotProcessRpcUsage(),
42
+ };
43
+ function safeTiming(sources) {
44
+ try {
45
+ return sources.timing();
46
+ }
47
+ catch {
48
+ return undefined;
49
+ }
50
+ }
51
+ /**
52
+ * Accumulates monotonic wall clock and background RPC usage per phase, twice over: per batch
53
+ * (drained by {@link VmRecoveryPhaseRecorder.take}) and for the whole pass (never drained).
54
+ */
55
+ export class VmRecoveryPhaseRecorder {
56
+ sources;
57
+ /** Since the last `take()`: one batch. */
58
+ #totals = emptyTotals();
59
+ /** Since this recorder was created: the whole pass. */
60
+ #cumulative = emptyTotals();
61
+ constructor(sources = DEFAULT_SOURCES) {
62
+ this.sources = sources;
63
+ }
64
+ /** Time `run`, charging the elapsed time and background usage to `phase`. */
65
+ async measure(phase, run) {
66
+ const startedAt = this.sources.clock();
67
+ const before = safeTiming(this.sources);
68
+ try {
69
+ return await run();
70
+ }
71
+ finally {
72
+ this.#charge(phase, startedAt, before);
73
+ }
74
+ }
75
+ /** Charge the interval since `startedAt` for code that cannot be wrapped as a closure. */
76
+ chargeSince(phase, startedAt, before) {
77
+ this.#charge(phase, startedAt, before);
78
+ }
79
+ /** Capture the start of a manually bracketed interval. */
80
+ begin() {
81
+ return { startedAt: this.sources.clock(), before: safeTiming(this.sources) };
82
+ }
83
+ /** Read and reset the totals accumulated since the previous call (one batch). */
84
+ take() {
85
+ const taken = this.#totals;
86
+ this.#totals = emptyTotals();
87
+ return Object.freeze(taken);
88
+ }
89
+ /** The totals accumulated since this recorder was created (the whole pass); never reset. */
90
+ cumulative() {
91
+ return Object.freeze({ ...this.#cumulative });
92
+ }
93
+ #charge(phase, startedAt, before) {
94
+ try {
95
+ const elapsed = this.sources.clock() - startedAt;
96
+ let attempts = 0;
97
+ let waitMs = 0;
98
+ let endpointMs = 0;
99
+ const after = before === undefined ? undefined : safeTiming(this.sources);
100
+ if (before !== undefined && after !== undefined) {
101
+ const delta = diffRpcRequestTiming(before, after).background;
102
+ attempts = delta.admissionWait.count;
103
+ waitMs = delta.admissionWait.totalMs;
104
+ endpointMs = delta.endpointLatency.totalMs;
105
+ }
106
+ const ms = Number.isFinite(elapsed) && elapsed > 0 ? elapsed : 0;
107
+ for (const totals of [this.#totals, this.#cumulative]) {
108
+ const previous = totals[phase];
109
+ totals[phase] = Object.freeze({
110
+ ms: previous.ms + ms,
111
+ backgroundAttempts: previous.backgroundAttempts + attempts,
112
+ backgroundAdmissionWaitMs: previous.backgroundAdmissionWaitMs + waitMs,
113
+ backgroundEndpointMs: previous.backgroundEndpointMs + endpointMs,
114
+ });
115
+ }
116
+ }
117
+ catch { /* observation only */ }
118
+ }
119
+ }
120
+ /** Run an observation callback; a failure to observe never changes recovery. */
121
+ export function observeVmRecoveryTiming(callback) {
122
+ try {
123
+ callback();
124
+ }
125
+ catch { /* observation only */ }
126
+ }
127
+ /** Capture the cumulative counters; `undefined` when they cannot be read. */
128
+ export function markVmRecoveryRpc(sources = DEFAULT_SOURCES) {
129
+ try {
130
+ const usage = sources.usage();
131
+ return {
132
+ methods: usage.cumulative.methods,
133
+ consumers: usage.cumulative.consumers,
134
+ timing: sources.timing(),
135
+ };
136
+ }
137
+ catch {
138
+ return undefined;
139
+ }
140
+ }
141
+ const TOP_CONSUMERS = 8;
142
+ function distributionSummary(prefix, distribution) {
143
+ if (distribution.count <= 0)
144
+ return `${prefix}Count=0`;
145
+ const meanMs = distribution.totalMs / distribution.count;
146
+ const slow = distribution.buckets.slice(3).reduce((sum, value) => sum + value, 0);
147
+ return `${prefix}Count=${distribution.count} ${prefix}TotalMs=${Math.round(distribution.totalMs)} `
148
+ + `${prefix}MeanMs=${Math.round(meanMs)} ${prefix}Over1sCount=${slow}`;
149
+ }
150
+ /**
151
+ * One logfmt-style fragment describing the physical RPC work between `mark`
152
+ * and now: totals by method, the most used bounded consumer labels, and the
153
+ * split between local admission wait and endpoint latency for background
154
+ * attempts. Secret-free by construction.
155
+ */
156
+ export function describeVmRecoveryRpcSince(mark, sources = DEFAULT_SOURCES) {
157
+ if (mark === undefined)
158
+ return 'rpcTotal=unknown';
159
+ try {
160
+ const now = markVmRecoveryRpc(sources);
161
+ if (now === undefined)
162
+ return 'rpcTotal=unknown';
163
+ let total = 0;
164
+ const byMethod = [];
165
+ for (const [method, count] of Object.entries(now.methods)) {
166
+ const delta = count - (mark.methods[method] ?? 0);
167
+ if (delta > 0) {
168
+ total += delta;
169
+ byMethod.push(`${method}:${delta}`);
170
+ }
171
+ }
172
+ const consumers = [];
173
+ for (const [method, byConsumer] of Object.entries(now.consumers)) {
174
+ for (const [consumer, count] of Object.entries(byConsumer)) {
175
+ const delta = count - (mark.consumers[method]?.[consumer] ?? 0);
176
+ if (delta > 0)
177
+ consumers.push([`${method}/${consumer}`, delta]);
178
+ }
179
+ }
180
+ consumers.sort((left, right) => right[1] - left[1] || left[0].localeCompare(right[0]));
181
+ const timing = diffRpcRequestTiming(mark.timing, now.timing);
182
+ return [
183
+ `rpcTotal=${total}`,
184
+ `rpcByMethod=${byMethod.sort().join(',') || '-'}`,
185
+ `rpcTop=${consumers.slice(0, TOP_CONSUMERS).map(([name, count]) => `${name}:${count}`).join(',') || '-'}`,
186
+ distributionSummary('bgAdmission', timing.background.admissionWait),
187
+ distributionSummary('bgEndpoint', timing.background.endpointLatency),
188
+ `bgEndpointFailures=${timing.background.endpointFailures}`,
189
+ distributionSummary('fgEndpoint', timing.foreground.endpointLatency),
190
+ ].join(' ');
191
+ }
192
+ catch {
193
+ return 'rpcTotal=unknown';
194
+ }
195
+ }
196
+ /** Render phase totals as `phase{Ms,BgReq,BgWaitMs,BgEndpointMs}` pairs in a stable order. */
197
+ export function formatVmRecoveryPhases(totals) {
198
+ return VM_RECOVERY_PHASES.map((phase) => {
199
+ const usage = totals[phase];
200
+ const label = phase.replace(/-([a-z])/g, (_match, letter) => letter.toUpperCase());
201
+ return `${label}Ms=${Math.round(usage.ms)} ${label}BgReq=${usage.backgroundAttempts} `
202
+ + `${label}BgWaitMs=${Math.round(usage.backgroundAdmissionWaitMs)}`;
203
+ }).join(' ');
204
+ }
205
+ const MAX_TRACKED_GRAPHS = 256;
206
+ const passEndedAt = new WeakMap();
207
+ /** Milliseconds since this owner's previous reconcile pass for the graph ended. */
208
+ export function vmReconcilePassGapMs(owner, localCgId, startedAt) {
209
+ try {
210
+ const endedAt = passEndedAt.get(owner)?.get(localCgId);
211
+ return endedAt === undefined ? undefined : Math.max(0, startedAt - endedAt);
212
+ }
213
+ catch {
214
+ return undefined;
215
+ }
216
+ }
217
+ /** Remember when a reconcile pass for the graph ended (bounded, observation only). */
218
+ export function noteVmReconcilePassEnd(owner, localCgId, endedAt) {
219
+ try {
220
+ let byGraph = passEndedAt.get(owner);
221
+ if (!byGraph) {
222
+ byGraph = new Map();
223
+ passEndedAt.set(owner, byGraph);
224
+ }
225
+ byGraph.delete(localCgId);
226
+ byGraph.set(localCgId, endedAt);
227
+ while (byGraph.size > MAX_TRACKED_GRAPHS) {
228
+ const oldest = byGraph.keys().next().value;
229
+ if (oldest === undefined)
230
+ break;
231
+ byGraph.delete(oldest);
232
+ }
233
+ }
234
+ catch { /* observation only */ }
235
+ }
236
+ //# sourceMappingURL=vm-recovery-phase-timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-recovery-phase-timing.js","sourceRoot":"","sources":["../src/vm-recovery-phase-timing.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,GAGzB,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oDAAoD;IACpD,QAAQ;IACR,iFAAiF;IACjF,WAAW;IACX,mEAAmE;IACnE,WAAW;IACX,8EAA8E;IAC9E,YAAY;IACZ,4EAA4E;IAC5E,QAAQ;IACR,8EAA8E;IAC9E,UAAU;IACV,gEAAgE;IAChE,YAAY;CACJ,CAAC;AAiBX,MAAM,WAAW,GAAyB,MAAM,CAAC,MAAM,CAAC;IACtD,EAAE,EAAE,CAAC;IACL,kBAAkB,EAAE,CAAC;IACrB,yBAAyB,EAAE,CAAC;IAC5B,oBAAoB,EAAE,CAAC;CACxB,CAAC,CAAC;AAEH,SAAS,WAAW;IAClB,OAAO,MAAM,CAAC,WAAW,CACvB,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CACP,CAAC;AACrD,CAAC;AAQD,MAAM,eAAe,GAA4B;IAC/C,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;IAC9B,MAAM,EAAE,GAAG,EAAE,CAAC,wBAAwB,EAAE;IACxC,KAAK,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE;CACvC,CAAC;AAEF,SAAS,UAAU,CAAC,OAAgC;IAClD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAML;IAL7B,0CAA0C;IAC1C,OAAO,GAAG,WAAW,EAAE,CAAC;IACxB,uDAAuD;IACvD,WAAW,GAAG,WAAW,EAAE,CAAC;IAE5B,YAA6B,UAAmC,eAAe;QAAlD,YAAO,GAAP,OAAO,CAA2C;IAAG,CAAC;IAEnF,6EAA6E;IAC7E,KAAK,CAAC,OAAO,CAAI,KAAsB,EAAE,GAAqB;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,0FAA0F;IAC1F,WAAW,CAAC,KAAsB,EAAE,SAAiB,EAAE,MAAiC;QACtF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,0DAA0D;IAC1D,KAAK;QACH,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,iFAAiF;IACjF,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,4FAA4F;IAC5F,UAAU;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CACL,KAAsB,EACtB,SAAiB,EACjB,MAA4C;QAE5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC;YACjD,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;gBAC7D,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;gBACrC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;gBACrC,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC;YAC7C,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC5B,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE;oBACpB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,GAAG,QAAQ;oBAC1D,yBAAyB,EAAE,QAAQ,CAAC,yBAAyB,GAAG,MAAM;oBACtE,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,GAAG,UAAU;iBACjE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC;CACF;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,QAAoB;IAC1D,IAAI,CAAC;QACH,QAAQ,EAAE,CAAC;IACb,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;AACpC,CAAC;AASD,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAC/B,UAAmC,eAAe;IAElD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;YACjC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACzB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,SAAS,mBAAmB,CAAC,MAAc,EAAE,YAAmC;IAC9E,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,GAAG,MAAM,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;IACzD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;IAClG,OAAO,GAAG,MAAM,SAAS,YAAY,CAAC,KAAK,IAAI,MAAM,WAAW,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG;UAC/F,GAAG,MAAM,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,eAAe,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAmC,EACnC,UAAmC,eAAe;IAElD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,kBAAkB,CAAC;QACjD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,IAAI,KAAK,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,IAAI,KAAK,GAAG,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO;YACL,YAAY,KAAK,EAAE;YACnB,eAAe,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE;YACjD,UAAU,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE;YACzG,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;YACnE,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC;YACpE,sBAAsB,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAC1D,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC;SACrE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,sBAAsB,CAAC,MAA6B;IAClE,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3F,OAAO,GAAG,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,KAAK,CAAC,kBAAkB,GAAG;cAClF,GAAG,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,WAAW,GAAG,IAAI,OAAO,EAA+B,CAAC;AAE/D,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,SAAiB,EAAE,OAAe;IACtF,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC,IAAI,GAAG,kBAAkB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC3C,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,143 @@
1
+ import { type VmRecoveryFootprintSizingReader, type VmRecoveryPreparedHints } from './vm-recovery-footprint.js';
2
+ import type { VmRecoveryChainFootprint } from './vm-recovery-types.js';
3
+ /**
4
+ * Advisory preparation of the NEXT recovery batch's sizing metadata.
5
+ *
6
+ * While one exact batch transfers and commits, this owner reads the update
7
+ * context of a bounded stable prefix of the still-pending candidates, so the
8
+ * next planning pass finds those hints ready instead of re-reading them (or
9
+ * losing them to the local RPC governor's queue and truncating the batch).
10
+ *
11
+ * What it is NOT. A hint is planning evidence of exactly the kind a live
12
+ * `latest-bounded` read yields: it can change how work is packed and nothing
13
+ * else. It earns no holder credit, consumes no peer attempt, records no
14
+ * admission, touches no negative cache and marks no ordinal handled, attempted,
15
+ * reconciled or materialized. The chain root count/version/binding and the
16
+ * guarded atomic write that follow authenticate every asset independently.
17
+ *
18
+ * Bounds. One prepared batch (at most {@link MAX_EXACT_SYNC_ASSETS} KAs) is
19
+ * retained at a time; at most `maxSpeculativeReads` speculative reads are in
20
+ * flight, each a single RPC in the BACKGROUND class bound to the owner's
21
+ * signal; descriptors hold a handful of scalars (no quads or payloads) and are
22
+ * byte-accounted. Hints are single-use and expire; a stale generation, a lost
23
+ * recovery ownership or an abort turns every hint into a miss, and the caller's
24
+ * live path runs unchanged.
25
+ */
26
+ export declare const VM_RECOVERY_PREPARATION_LIMITS: Readonly<{
27
+ /** One future batch, never more than the exact-asset hard selector limit. */
28
+ maxPreparedAssets: 10;
29
+ /** Speculative KA-read tasks in flight at once (each is one RPC). */
30
+ maxSpeculativeReads: 2;
31
+ /**
32
+ * Per-read deadline of a speculative read. It runs off the critical path, so
33
+ * it may wait out a busy local RPC governor longer than a planning read could.
34
+ */
35
+ readTimeoutMs: number;
36
+ /** A hint older than this at consumption is a miss. */
37
+ maxHintAgeMs: 60000;
38
+ /** Explicit ceiling for retained descriptor memory. */
39
+ maxRetainedBytes: number;
40
+ /** Live planning reads in flight at once when preparation is enabled. */
41
+ planningReadConcurrency: 3;
42
+ /**
43
+ * Deadline of a live planning read when preparation is enabled. Admission
44
+ * wait in the local RPC governor counts inside it, and one unresolved first
45
+ * candidate truncates the whole batch to a single asset, so a busy lane is
46
+ * given longer than the unprepared path's limit before a read is abandoned.
47
+ */
48
+ planningReadTimeoutMs: number;
49
+ /**
50
+ * Minimum spacing between reads of the registered-public observation that gates the
51
+ * stream wire when an earlier read in the same pass was unavailable.
52
+ */
53
+ authorityRetryMinIntervalMs: 5000;
54
+ }>;
55
+ export type VmRecoveryPreparationLimits = {
56
+ -readonly [K in keyof typeof VM_RECOVERY_PREPARATION_LIMITS]: number;
57
+ };
58
+ /** The recovery operation a hint belongs to. */
59
+ export interface VmRecoveryPreparationScope {
60
+ readonly localCgId: string;
61
+ readonly onChainCgId: bigint;
62
+ /** `vmReconcileLifecycleGeneration` at the time the owning pass started. */
63
+ readonly generation: number;
64
+ /** The recovery operation's cancellation signal. */
65
+ readonly signal?: AbortSignal;
66
+ /** Recovery ownership at call time (lifecycle, binding, target). */
67
+ readonly isCurrent: () => boolean;
68
+ }
69
+ export interface VmRecoveryPreparationCandidate {
70
+ readonly kaId: string;
71
+ /** A footprint the caller already holds is retained as-is instead of re-read. */
72
+ readonly footprint?: VmRecoveryChainFootprint;
73
+ }
74
+ export type VmRecoveryPrepareRefusal = 'disabled' | 'closed' | 'stale-scope' | 'busy' | 'no-reader' | 'no-candidates';
75
+ export interface VmRecoveryPrepareResult {
76
+ readonly accepted: number;
77
+ readonly refused?: VmRecoveryPrepareRefusal;
78
+ }
79
+ /** Cumulative, bounded, secret-free counters. */
80
+ export interface VmRecoveryPreparationStats {
81
+ readonly prepareCalls: number;
82
+ readonly refused: number;
83
+ /** Candidates accepted into a prepared batch. */
84
+ readonly accepted: number;
85
+ /** Speculative reads started / finished with a usable hint / ended without one. */
86
+ readonly readsStarted: number;
87
+ readonly readsReady: number;
88
+ readonly readsUnusable: number;
89
+ /** Hints handed to a consumer (single use). */
90
+ readonly hits: number;
91
+ /** Consumer lookups that found nothing usable. */
92
+ readonly misses: number;
93
+ readonly staleMisses: number;
94
+ /** Prepared entries dropped without being consumed. */
95
+ readonly discardedUnused: number;
96
+ /** Speculative results that completed after their batch was gone. */
97
+ readonly lateDropped: number;
98
+ readonly maxActiveReads: number;
99
+ readonly maxRetainedBytes: number;
100
+ readonly retainedBytes: number;
101
+ readonly activeReads: number;
102
+ }
103
+ /** Typed opt-in switch: env `DKG_VM_RECOVERY_PREFETCH_ENABLED`, then config, default off. */
104
+ export declare function resolveVmRecoveryPrefetchEnabled(configValue?: boolean): boolean;
105
+ export declare class VmRecoveryPreparation {
106
+ #private;
107
+ constructor(sizing: VmRecoveryFootprintSizingReader | null, limits?: Partial<VmRecoveryPreparationLimits>, now?: () => number);
108
+ get limits(): Readonly<VmRecoveryPreparationLimits>;
109
+ /**
110
+ * Begin preparing hints for a stable prefix of future candidates. Never
111
+ * throws and never blocks; a refusal leaves the caller's live path intact.
112
+ * No second batch is accepted until the first is consumed or discarded.
113
+ */
114
+ prepare(scope: VmRecoveryPreparationScope, candidates: readonly VmRecoveryPreparationCandidate[]): VmRecoveryPrepareResult;
115
+ /** Hints bound to `scope`, for the planner. Hints are single-use; see {@link release}. */
116
+ hintsFor(scope: VmRecoveryPreparationScope): VmRecoveryPreparedHints;
117
+ /**
118
+ * The consumer is done with its prepared hints: whatever it did not take is
119
+ * discarded (and any read still in flight is cancelled), freeing the single
120
+ * batch slot for the next preparation.
121
+ */
122
+ release(scope: VmRecoveryPreparationScope): void;
123
+ /**
124
+ * Drop the prepared batch (generation change, unsubscribe, binding change,
125
+ * shutdown). With a `localCgId` only that graph's batch is dropped.
126
+ */
127
+ discard(localCgId?: string): void;
128
+ get closed(): boolean;
129
+ /**
130
+ * Stop for good: cancel speculative reads, drop hints and wait for every
131
+ * physical read this owner started to settle. Late results are never applied.
132
+ */
133
+ close(): Promise<void>;
134
+ stats(): VmRecoveryPreparationStats;
135
+ }
136
+ export { vmRecoveryRetryDelay } from './vm-recovery-pass-authority.js';
137
+ /** The host's preparation owner, created on first use and replaced after a close. */
138
+ export declare function vmRecoveryPreparationFor(host: object, sizing: VmRecoveryFootprintSizingReader | null, limits?: Partial<VmRecoveryPreparationLimits>, now?: () => number): VmRecoveryPreparation;
139
+ /** The host's owner if one was ever created; never creates one. */
140
+ export declare function existingVmRecoveryPreparation(host: object): VmRecoveryPreparation | undefined;
141
+ /** Cumulative preparation counters as one logfmt-style fragment (secret-free). */
142
+ export declare function formatVmRecoveryPreparationStats(stats: VmRecoveryPreparationStats): string;
143
+ //# sourceMappingURL=vm-recovery-preparation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-recovery-preparation.d.ts","sourceRoot":"","sources":["../src/vm-recovery-preparation.ts"],"names":[],"mappings":"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"}