@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
@@ -1,5 +1,6 @@
1
- const VM_RECOVERY_BRIDGE_ABORTED = Symbol('vm-recovery-bridge-aborted');
2
- const VM_RECOVERY_BRIDGE_TIMED_OUT = Symbol('vm-recovery-bridge-timed-out');
1
+ import { mapWithConcurrency } from './map-with-concurrency.js';
2
+ export const VM_RECOVERY_BRIDGE_ABORTED = Symbol('vm-recovery-bridge-aborted');
3
+ export const VM_RECOVERY_BRIDGE_TIMED_OUT = Symbol('vm-recovery-bridge-timed-out');
3
4
  export const VM_RECOVERY_FOOTPRINT_READ_TIMEOUT_MS = 2_500;
4
5
  function vmRecoveryBridgeSignalAborted(signal) {
5
6
  return signal?.aborted === true;
@@ -22,7 +23,7 @@ async function raceVmRecoveryBridgeAbort(promise, signal) {
22
23
  signal.removeEventListener('abort', abortListener);
23
24
  }
24
25
  }
25
- async function readVmRecoveryFootprintWithDeadline(start, callerSignal, timeoutMs) {
26
+ export async function readVmRecoveryFootprintWithDeadline(start, callerSignal, timeoutMs) {
26
27
  if (callerSignal?.aborted)
27
28
  return VM_RECOVERY_BRIDGE_ABORTED;
28
29
  const controller = new AbortController();
@@ -96,6 +97,32 @@ async function resolveVmRecoveryPublicAuthority(onChainCgId, resolvePublicAccess
96
97
  return false;
97
98
  }
98
99
  }
100
+ /**
101
+ * The one rule that turns an observed update context into a planning hint.
102
+ * Zero, negative or unsafe values are not hints: they stay unknown/singleton.
103
+ */
104
+ export function vmRecoveryFootprintFromUpdateContext(context) {
105
+ if (context.merkleRootsCount <= 0n
106
+ || context.byteSize <= 0n
107
+ || !Number.isSafeInteger(context.merkleLeafCount)
108
+ || context.merkleLeafCount <= 0)
109
+ return undefined;
110
+ return {
111
+ kind: 'public-v10',
112
+ byteSize: context.byteSize,
113
+ merkleLeafCount: BigInt(context.merkleLeafCount),
114
+ assertionVersion: context.merkleRootsCount.toString(),
115
+ anchor: { kind: 'latest-bounded' },
116
+ };
117
+ }
118
+ function isUsablePreparedFootprint(footprint) {
119
+ return footprint?.kind === 'public-v10'
120
+ && typeof footprint.byteSize === 'bigint'
121
+ && footprint.byteSize > 0n
122
+ && typeof footprint.merkleLeafCount === 'bigint'
123
+ && footprint.merkleLeafCount > 0n
124
+ && footprint.anchor.kind === 'latest-bounded';
125
+ }
99
126
  /**
100
127
  * Enrich a bounded prefix with public-chain sizing hints. Latest-state reads
101
128
  * influence soft packing only; unavailable, stale, private, aborted, or
@@ -126,36 +153,73 @@ export async function enrichVmRecoveryFootprints(targets, onChainCgId, bridge, o
126
153
  || bridge.sizing === null)
127
154
  return original;
128
155
  const sizing = bridge.sizing;
129
- const observed = await Promise.all(unknownEntries.map(async ({ target, index }) => {
130
- if (options.signal?.aborted || !options.isCurrent())
156
+ const counts = { resolved: 0, prepared: 0, timedOut: 0, aborted: 0, invalid: 0, failed: 0 };
157
+ const startedAt = performance.now();
158
+ const configuredConcurrency = options.readConcurrency;
159
+ const readConcurrency = configuredConcurrency !== undefined
160
+ && Number.isSafeInteger(configuredConcurrency)
161
+ && configuredConcurrency > 0
162
+ ? configuredConcurrency
163
+ : unknownEntries.length;
164
+ const sizeEntry = async ({ target, index }) => {
165
+ if (options.signal?.aborted || !options.isCurrent()) {
166
+ counts.aborted += 1;
131
167
  return { index };
168
+ }
132
169
  try {
170
+ if (bridge.prepared) {
171
+ // A prepared hint is the same advisory evidence a live read yields. Any
172
+ // problem with it (absent, stale, failed, late, malformed) is a plain
173
+ // miss: the live read below runs exactly as it would without hints.
174
+ const hinted = await bridge.prepared
175
+ .take(target.kaId, { maxWaitMs: sizingReadTimeoutMs, signal: options.signal })
176
+ .catch(() => undefined);
177
+ if (options.signal?.aborted || !options.isCurrent()) {
178
+ counts.aborted += 1;
179
+ return { index };
180
+ }
181
+ if (isUsablePreparedFootprint(hinted)) {
182
+ counts.prepared += 1;
183
+ return { index, footprint: hinted };
184
+ }
185
+ }
133
186
  const observedContext = await readVmRecoveryFootprintWithDeadline((readSignal) => sizing.readUpdateContext(BigInt(target.kaId), { signal: readSignal }), options.signal, sizingReadTimeoutMs);
134
- if (observedContext === VM_RECOVERY_BRIDGE_ABORTED
135
- || observedContext === VM_RECOVERY_BRIDGE_TIMED_OUT)
187
+ if (observedContext === VM_RECOVERY_BRIDGE_ABORTED) {
188
+ counts.aborted += 1;
136
189
  return { index };
137
- if (options.signal?.aborted
138
- || !options.isCurrent()
139
- || observedContext.merkleRootsCount <= 0n
140
- || observedContext.byteSize <= 0n
141
- || !Number.isSafeInteger(observedContext.merkleLeafCount)
142
- || observedContext.merkleLeafCount <= 0)
190
+ }
191
+ if (observedContext === VM_RECOVERY_BRIDGE_TIMED_OUT) {
192
+ counts.timedOut += 1;
143
193
  return { index };
144
- return {
145
- index,
146
- footprint: {
147
- kind: 'public-v10',
148
- byteSize: observedContext.byteSize,
149
- merkleLeafCount: BigInt(observedContext.merkleLeafCount),
150
- assertionVersion: observedContext.merkleRootsCount.toString(),
151
- anchor: { kind: 'latest-bounded' },
152
- },
153
- };
194
+ }
195
+ if (options.signal?.aborted || !options.isCurrent()) {
196
+ counts.aborted += 1;
197
+ return { index };
198
+ }
199
+ const footprint = vmRecoveryFootprintFromUpdateContext(observedContext);
200
+ if (!footprint) {
201
+ counts.invalid += 1;
202
+ return { index };
203
+ }
204
+ counts.resolved += 1;
205
+ return { index, footprint };
154
206
  }
155
207
  catch {
208
+ counts.failed += 1;
156
209
  return { index };
157
210
  }
158
- }));
211
+ };
212
+ const observed = await mapWithConcurrency(unknownEntries, readConcurrency, sizeEntry);
213
+ if (options.observe) {
214
+ try {
215
+ options.observe({
216
+ requested: unknownEntries.length,
217
+ ...counts,
218
+ elapsedMs: performance.now() - startedAt,
219
+ });
220
+ }
221
+ catch { /* observation only */ }
222
+ }
159
223
  if (options.signal?.aborted || !options.isCurrent())
160
224
  return unverified;
161
225
  const enriched = [...original];
@@ -1 +1 @@
1
- {"version":3,"file":"vm-recovery-footprint.js","sourceRoot":"","sources":["../src/vm-recovery-footprint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm-recovery-footprint.js","sourceRoot":"","sources":["../src/vm-recovery-footprint.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export interface VmRecoveryMicrobatchPlan<T> {
18
18
  readonly selectorBytes: number;
19
19
  readonly completeFootprints: boolean;
20
20
  }
21
+ /** Conservative byte estimate for an already-validated public asset footprint. */
22
+ export declare function estimateVmRecoveryAssetBytes(byteSize: bigint, merkleLeafCount: bigint, limits: Readonly<Pick<VmRecoveryMicrobatchLimits, 'fixedBytesPerAsset' | 'bytesPerLeafOverhead' | 'byteSizeMultiplierBps'>>): bigint;
21
23
  /**
22
24
  * Pack one stable exact-recovery prefix. Unknown footprints remain singleton;
23
25
  * soft byte/leaf targets never reject an individually large KA, while executor
@@ -1 +1 @@
1
- {"version":3,"file":"vm-recovery-microbatch.d.ts","sourceRoot":"","sources":["../src/vm-recovery-microbatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAYD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,yBAAyB,EAC1E,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,MAAM,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EAC5C,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM,GAClD,wBAAwB,CAAC,CAAC,CAAC,CAqE7B"}
1
+ {"version":3,"file":"vm-recovery-microbatch.d.ts","sourceRoot":"","sources":["../src/vm-recovery-microbatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC;AAYD,kFAAkF;AAClF,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,QAAQ,CAAC,IAAI,CACnB,0BAA0B,EAC1B,oBAAoB,GAAG,sBAAsB,GAAG,uBAAuB,CACxE,CAAC,GACD,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,yBAAyB,EAC1E,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,MAAM,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EAC5C,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,MAAM,GAClD,wBAAwB,CAAC,CAAC,CAAC,CAiE7B"}
@@ -6,6 +6,12 @@ function nonNegativeFiniteInteger(value) {
6
6
  function nonNegativeBigint(value) {
7
7
  return typeof value === 'bigint' && value >= 0n ? value : undefined;
8
8
  }
9
+ /** Conservative byte estimate for an already-validated public asset footprint. */
10
+ export function estimateVmRecoveryAssetBytes(byteSize, merkleLeafCount, limits) {
11
+ const scaledByteFloor = (byteSize * limits.byteSizeMultiplierBps + 9999n) / 10000n;
12
+ const graphAndLeafFloor = byteSize + merkleLeafCount * limits.bytesPerLeafOverhead;
13
+ return (scaledByteFloor > graphAndLeafFloor ? scaledByteFloor : graphAndLeafFloor) + limits.fixedBytesPerAsset;
14
+ }
9
15
  /**
10
16
  * Pack one stable exact-recovery prefix. Unknown footprints remain singleton;
11
17
  * soft byte/leaf targets never reject an individually large KA, while executor
@@ -53,9 +59,7 @@ export function planVmRecoveryMicrobatch(candidates, limits, selectorBytesFor) {
53
59
  }
54
60
  break;
55
61
  }
56
- const scaledByteFloor = (byteSize * limits.byteSizeMultiplierBps + 9999n) / 10000n;
57
- const graphAndLeafFloor = byteSize + merkleLeafCount * limits.bytesPerLeafOverhead;
58
- const candidateEstimatedBytes = (scaledByteFloor > graphAndLeafFloor ? scaledByteFloor : graphAndLeafFloor) + limits.fixedBytesPerAsset;
62
+ const candidateEstimatedBytes = estimateVmRecoveryAssetBytes(byteSize, merkleLeafCount, limits);
59
63
  const nextBytes = estimatedBytes + candidateEstimatedBytes;
60
64
  const nextLeaves = estimatedLeaves + merkleLeafCount;
61
65
  if (targets.length > 0 && (nextBytes > limits.targetBytes || nextLeaves > limits.targetLeaves))
@@ -1 +1 @@
1
- {"version":3,"file":"vm-recovery-microbatch.js","sourceRoot":"","sources":["../src/vm-recovery-microbatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm-recovery-microbatch.js","sourceRoot":"","sources":["../src/vm-recovery-microbatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import type { VmRecoveryAuthorityRetryPolicy } from './vm-recovery-experiment-policy.js';
2
+ import type { RegisteredContextGraphAuthority } from './registered-context-graph-authority.js';
3
+ /**
4
+ * How long a pass's positive registered-public answer may stand in for the identical read its
5
+ * own exchange would otherwise repeat.
6
+ */
7
+ export declare const VM_RECOVERY_REGISTERED_PUBLIC_MAX_AGE_MS = 90000;
8
+ /**
9
+ * What one exact-recovery pass knows about the graph's registered authority: the repository's
10
+ * own discriminated answer, plus the two states a pass can be in without one.
11
+ */
12
+ export type VmRecoveryPassAuthorityObservation = RegisteredContextGraphAuthority | {
13
+ readonly kind: 'not-read';
14
+ } | {
15
+ readonly kind: 'read-failed';
16
+ };
17
+ /** The recovery operation a handed-over answer belongs to. */
18
+ export interface VmRecoveryPassAuthorityOwner {
19
+ readonly contextGraphId: string;
20
+ /** The recovery operation's cancellation signal. */
21
+ readonly signal?: AbortSignal;
22
+ /** Recovery ownership at call time (lifecycle, binding, target). */
23
+ readonly isCurrent: () => boolean;
24
+ }
25
+ /**
26
+ * A positive registered-public answer, handed explicitly to the exchange of the pass that
27
+ * obtained it. Only that exchange holds it, it is revoked when the exchange returns, and it
28
+ * stays tied to the pass's latest observation, so a later miss withdraws it. Any doubt is
29
+ * `false`, and the exchange then reads the authority itself.
30
+ */
31
+ export interface VmRecoveryRegisteredPublicEvidence {
32
+ /**
33
+ * True only while the pass's latest observation is public, no older than
34
+ * {@link VM_RECOVERY_REGISTERED_PUBLIC_MAX_AGE_MS}, for this graph, with the owning operation
35
+ * still current and neither it nor the asker cancelled.
36
+ */
37
+ usableFor(contextGraphId: string, askerSignal?: AbortSignal): boolean;
38
+ /** The exchange it was handed to is over: it can no longer be relied on. */
39
+ revoke(): void;
40
+ }
41
+ /**
42
+ * The pass-local owner of the registered-authority observation that gates the stream wire.
43
+ * Retry eligibility, the stream decision, the diagnostic label and the answer handed to the
44
+ * pass's own exchange are all derived from the one typed observation, so none of them can
45
+ * drift from the others and no decision branches on a log string. Nothing is carried from
46
+ * one pass to the next: a pass creates its own.
47
+ */
48
+ export declare class VmRecoveryPassAuthority {
49
+ #private;
50
+ private readonly clock;
51
+ private readonly maxEvidenceAgeMs;
52
+ private readonly retryPolicy;
53
+ constructor(clock?: () => number, maxEvidenceAgeMs?: number, retryPolicy?: VmRecoveryAuthorityRetryPolicy);
54
+ /**
55
+ * Read once more. Whatever an earlier read of this pass said is superseded by this one, and
56
+ * a read that throws is recorded as `read-failed` rather than propagated.
57
+ */
58
+ read(resolve: () => Promise<RegisteredContextGraphAuthority>): Promise<VmRecoveryPassAuthorityObservation>;
59
+ get observation(): VmRecoveryPassAuthorityObservation;
60
+ /** A positive answer: the only state that authorizes the stream wire. */
61
+ get isPublic(): boolean;
62
+ /**
63
+ * The read did not answer. Unlike `private` and `unregistered`, which are answers, this is the
64
+ * transient case worth asking again.
65
+ */
66
+ get missed(): boolean;
67
+ /** A miss may be read again only under the pass's configured retry spacing. */
68
+ retryDue(): boolean;
69
+ /** A single bounded miss retry at pass entry; cancellation releases the wait. */
70
+ waitForMissRetry(signal?: AbortSignal): Promise<boolean>;
71
+ /** The observation as a log label. Observation only: nothing branches on it. */
72
+ get label(): string;
73
+ /**
74
+ * A handle for the owning pass to give its own exchange. It reads this observation when it is
75
+ * asked, so it always reflects the pass's latest answer, and it dies when revoked.
76
+ */
77
+ evidence(owner: VmRecoveryPassAuthorityOwner): VmRecoveryRegisteredPublicEvidence;
78
+ }
79
+ /**
80
+ * Resolve after `ms`, or sooner when `signal` aborts. Never rejects and leaves neither
81
+ * a timer nor a listener behind, so a cancelled pass is not held by its own wait.
82
+ */
83
+ export declare function vmRecoveryRetryDelay(ms: number, signal?: AbortSignal): Promise<void>;
84
+ //# sourceMappingURL=vm-recovery-pass-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-recovery-pass-authority.d.ts","sourceRoot":"","sources":["../src/vm-recovery-pass-authority.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,wCAAwC,QAAS,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,kCAAkC,GAC1C,+BAA+B,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAErC,8DAA8D;AAC9D,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD;;;;OAIG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IACtE,4EAA4E;IAC5E,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;;;;;GAMG;AACH,qBAAa,uBAAuB;;IAMhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,KAAK,GAAE,MAAM,MAAgC,EAC7C,gBAAgB,GAAE,MAAiD,EACnE,WAAW,GAAE,8BAAqD;IAGrF;;;OAGG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,OAAO,CAAC,+BAA+B,CAAC,GACtD,OAAO,CAAC,kCAAkC,CAAC;IAW9C,IAAI,WAAW,IAAI,kCAAkC,CAEpD;IAED,yEAAyE;IACzE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,OAAO,CAGpB;IAED,+EAA+E;IAC/E,QAAQ,IAAI,OAAO;IAKnB,iFAAiF;IAC3E,gBAAgB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAM9D,gFAAgF;IAChF,IAAI,KAAK,IAAI,MAAM,CAIlB;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,4BAA4B,GAAG,kCAAkC;CAiBlF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpF"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * How long a pass's positive registered-public answer may stand in for the identical read its
3
+ * own exchange would otherwise repeat.
4
+ */
5
+ export const VM_RECOVERY_REGISTERED_PUBLIC_MAX_AGE_MS = 90_000;
6
+ /**
7
+ * The pass-local owner of the registered-authority observation that gates the stream wire.
8
+ * Retry eligibility, the stream decision, the diagnostic label and the answer handed to the
9
+ * pass's own exchange are all derived from the one typed observation, so none of them can
10
+ * drift from the others and no decision branches on a log string. Nothing is carried from
11
+ * one pass to the next: a pass creates its own.
12
+ */
13
+ export class VmRecoveryPassAuthority {
14
+ clock;
15
+ maxEvidenceAgeMs;
16
+ retryPolicy;
17
+ #observation = { kind: 'not-read' };
18
+ #lastReadStartedAt = Number.NEGATIVE_INFINITY;
19
+ #publicObservedAt = Number.NEGATIVE_INFINITY;
20
+ constructor(clock = () => performance.now(), maxEvidenceAgeMs = VM_RECOVERY_REGISTERED_PUBLIC_MAX_AGE_MS, retryPolicy = { kind: 'disabled' }) {
21
+ this.clock = clock;
22
+ this.maxEvidenceAgeMs = maxEvidenceAgeMs;
23
+ this.retryPolicy = retryPolicy;
24
+ }
25
+ /**
26
+ * Read once more. Whatever an earlier read of this pass said is superseded by this one, and
27
+ * a read that throws is recorded as `read-failed` rather than propagated.
28
+ */
29
+ async read(resolve) {
30
+ this.#lastReadStartedAt = this.clock();
31
+ try {
32
+ this.#observation = await resolve();
33
+ }
34
+ catch {
35
+ this.#observation = { kind: 'read-failed' };
36
+ }
37
+ if (this.#observation.kind === 'public')
38
+ this.#publicObservedAt = this.clock();
39
+ return this.#observation;
40
+ }
41
+ get observation() {
42
+ return this.#observation;
43
+ }
44
+ /** A positive answer: the only state that authorizes the stream wire. */
45
+ get isPublic() {
46
+ return this.#observation.kind === 'public';
47
+ }
48
+ /**
49
+ * The read did not answer. Unlike `private` and `unregistered`, which are answers, this is the
50
+ * transient case worth asking again.
51
+ */
52
+ get missed() {
53
+ const { kind } = this.#observation;
54
+ return kind === 'unavailable' || kind === 'read-failed';
55
+ }
56
+ /** A miss may be read again only under the pass's configured retry spacing. */
57
+ retryDue() {
58
+ return this.retryPolicy.kind === 'spaced' && this.missed
59
+ && this.clock() - this.#lastReadStartedAt >= this.retryPolicy.minIntervalMs;
60
+ }
61
+ /** A single bounded miss retry at pass entry; cancellation releases the wait. */
62
+ async waitForMissRetry(signal) {
63
+ if (!this.missed || this.retryPolicy.kind !== 'spaced')
64
+ return false;
65
+ await vmRecoveryRetryDelay(this.retryPolicy.minIntervalMs, signal);
66
+ return !signal?.aborted;
67
+ }
68
+ /** The observation as a log label. Observation only: nothing branches on it. */
69
+ get label() {
70
+ const observation = this.#observation;
71
+ if (observation.kind === 'unavailable')
72
+ return `unavailable:${observation.reason}`;
73
+ return observation.kind === 'read-failed' ? 'error' : observation.kind;
74
+ }
75
+ /**
76
+ * A handle for the owning pass to give its own exchange. It reads this observation when it is
77
+ * asked, so it always reflects the pass's latest answer, and it dies when revoked.
78
+ */
79
+ evidence(owner) {
80
+ let revoked = false;
81
+ return {
82
+ usableFor: (contextGraphId, askerSignal) => {
83
+ if (revoked || this.#observation.kind !== 'public')
84
+ return false;
85
+ if (contextGraphId !== owner.contextGraphId)
86
+ return false;
87
+ if (askerSignal?.aborted || owner.signal?.aborted)
88
+ return false;
89
+ if (this.clock() - this.#publicObservedAt > this.maxEvidenceAgeMs)
90
+ return false;
91
+ try {
92
+ return owner.isCurrent();
93
+ }
94
+ catch {
95
+ return false;
96
+ }
97
+ },
98
+ revoke: () => { revoked = true; },
99
+ };
100
+ }
101
+ }
102
+ /**
103
+ * Resolve after `ms`, or sooner when `signal` aborts. Never rejects and leaves neither
104
+ * a timer nor a listener behind, so a cancelled pass is not held by its own wait.
105
+ */
106
+ export function vmRecoveryRetryDelay(ms, signal) {
107
+ if (ms <= 0 || signal?.aborted)
108
+ return Promise.resolve();
109
+ return new Promise((resolve) => {
110
+ let onAbort;
111
+ const timer = setTimeout(() => {
112
+ if (onAbort)
113
+ signal?.removeEventListener('abort', onAbort);
114
+ resolve();
115
+ }, ms);
116
+ timer.unref?.();
117
+ if (signal) {
118
+ onAbort = () => {
119
+ clearTimeout(timer);
120
+ resolve();
121
+ };
122
+ signal.addEventListener('abort', onAbort, { once: true });
123
+ }
124
+ });
125
+ }
126
+ //# sourceMappingURL=vm-recovery-pass-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-recovery-pass-authority.js","sourceRoot":"","sources":["../src/vm-recovery-pass-authority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { snapshotProcessRpcUsage, type RpcRequestTimingSnapshot } from '@origintrail-official/dkg-chain';
2
+ /**
3
+ * Observation-only attribution of where one exact VM recovery pass spends wall
4
+ * clock and background RPC capacity. Nothing here is consulted by a recovery
5
+ * decision: measuring or formatting must never change an outcome, so every
6
+ * entry point is total and swallows its own errors.
7
+ *
8
+ * Background-class attempt counts are process-wide. They attribute reliably
9
+ * only while recovery is the node's main background RPC consumer, and they also
10
+ * include any speculative preparation that runs inside the same interval.
11
+ */
12
+ export declare const VM_RECOVERY_PHASES: readonly ["roster", "transport", "authority", "peer-ready", "sizing", "exchange", "post-fetch"];
13
+ export type VmRecoveryPhase = typeof VM_RECOVERY_PHASES[number];
14
+ /** What one phase consumed since the recorder was last drained. */
15
+ export interface VmRecoveryPhaseUsage {
16
+ readonly ms: number;
17
+ /** Background-class physical attempts admitted during the phase. */
18
+ readonly backgroundAttempts: number;
19
+ /** Local governor wait those attempts accumulated. */
20
+ readonly backgroundAdmissionWaitMs: number;
21
+ /** Endpoint round-trip time those attempts accumulated. */
22
+ readonly backgroundEndpointMs: number;
23
+ }
24
+ export type VmRecoveryPhaseTotals = Readonly<Record<VmRecoveryPhase, VmRecoveryPhaseUsage>>;
25
+ export interface VmRecoveryTimingSources {
26
+ readonly clock: () => number;
27
+ readonly timing: () => RpcRequestTimingSnapshot;
28
+ readonly usage: () => ReturnType<typeof snapshotProcessRpcUsage>;
29
+ }
30
+ /**
31
+ * Accumulates monotonic wall clock and background RPC usage per phase, twice over: per batch
32
+ * (drained by {@link VmRecoveryPhaseRecorder.take}) and for the whole pass (never drained).
33
+ */
34
+ export declare class VmRecoveryPhaseRecorder {
35
+ #private;
36
+ private readonly sources;
37
+ constructor(sources?: VmRecoveryTimingSources);
38
+ /** Time `run`, charging the elapsed time and background usage to `phase`. */
39
+ measure<T>(phase: VmRecoveryPhase, run: () => Promise<T>): Promise<T>;
40
+ /** Charge the interval since `startedAt` for code that cannot be wrapped as a closure. */
41
+ chargeSince(phase: VmRecoveryPhase, startedAt: number, before?: RpcRequestTimingSnapshot): void;
42
+ /** Capture the start of a manually bracketed interval. */
43
+ begin(): {
44
+ readonly startedAt: number;
45
+ readonly before: RpcRequestTimingSnapshot | undefined;
46
+ };
47
+ /** Read and reset the totals accumulated since the previous call (one batch). */
48
+ take(): VmRecoveryPhaseTotals;
49
+ /** The totals accumulated since this recorder was created (the whole pass); never reset. */
50
+ cumulative(): VmRecoveryPhaseTotals;
51
+ }
52
+ /** Run an observation callback; a failure to observe never changes recovery. */
53
+ export declare function observeVmRecoveryTiming(callback: () => void): void;
54
+ /** A point in the process-cumulative physical RPC counters. */
55
+ export interface VmRecoveryRpcMark {
56
+ readonly methods: Readonly<Record<string, number>>;
57
+ readonly consumers: Readonly<Record<string, Readonly<Record<string, number>>>>;
58
+ readonly timing: RpcRequestTimingSnapshot;
59
+ }
60
+ /** Capture the cumulative counters; `undefined` when they cannot be read. */
61
+ export declare function markVmRecoveryRpc(sources?: VmRecoveryTimingSources): VmRecoveryRpcMark | undefined;
62
+ /**
63
+ * One logfmt-style fragment describing the physical RPC work between `mark`
64
+ * and now: totals by method, the most used bounded consumer labels, and the
65
+ * split between local admission wait and endpoint latency for background
66
+ * attempts. Secret-free by construction.
67
+ */
68
+ export declare function describeVmRecoveryRpcSince(mark: VmRecoveryRpcMark | undefined, sources?: VmRecoveryTimingSources): string;
69
+ /** Render phase totals as `phase{Ms,BgReq,BgWaitMs,BgEndpointMs}` pairs in a stable order. */
70
+ export declare function formatVmRecoveryPhases(totals: VmRecoveryPhaseTotals): string;
71
+ /** Milliseconds since this owner's previous reconcile pass for the graph ended. */
72
+ export declare function vmReconcilePassGapMs(owner: object, localCgId: string, startedAt: number): number | undefined;
73
+ /** Remember when a reconcile pass for the graph ended (bounded, observation only). */
74
+ export declare function noteVmReconcilePassEnd(owner: object, localCgId: string, endedAt: number): void;
75
+ //# sourceMappingURL=vm-recovery-phase-timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vm-recovery-phase-timing.d.ts","sourceRoot":"","sources":["../src/vm-recovery-phase-timing.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,KAAK,wBAAwB,EAE9B,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,iGAerB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEhE,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,sDAAsD;IACtD,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAC;IAC3C,2DAA2D;IAC3D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAe5F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,wBAAwB,CAAC;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CAClE;AAgBD;;;GAGG;AACH,qBAAa,uBAAuB;;IAMtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,uBAAyC;IAE/E,6EAA6E;IACvE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAU3E,0FAA0F;IAC1F,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI;IAI/F,0DAA0D;IAC1D,KAAK,IAAI;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAA;KAAE;IAI9F,iFAAiF;IACjF,IAAI,IAAI,qBAAqB;IAM7B,4FAA4F;IAC5F,UAAU,IAAI,qBAAqB;CAiCpC;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAIlE;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;CAC3C;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,uBAAyC,GACjD,iBAAiB,GAAG,SAAS,CAW/B;AAYD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,OAAO,GAAE,uBAAyC,GACjD,MAAM,CAmCR;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAO5E;AAKD,mFAAmF;AACnF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAOpB;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAe9F"}