@origintrail-official/dkg-agent 10.0.19 → 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 (733) 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/confirmed-graph-scoped-vm-resolver.d.ts +7 -1
  18. package/dist/confirmed-graph-scoped-vm-resolver.d.ts.map +1 -1
  19. package/dist/confirmed-graph-scoped-vm-resolver.js +5 -3
  20. package/dist/confirmed-graph-scoped-vm-resolver.js.map +1 -1
  21. package/dist/context-graph-authority-dependency.d.ts +11 -0
  22. package/dist/context-graph-authority-dependency.d.ts.map +1 -0
  23. package/dist/context-graph-authority-dependency.js +50 -0
  24. package/dist/context-graph-authority-dependency.js.map +1 -0
  25. package/dist/context-graph-binding-state.d.ts +6 -0
  26. package/dist/context-graph-binding-state.d.ts.map +1 -1
  27. package/dist/context-graph-binding-state.js +17 -10
  28. package/dist/context-graph-binding-state.js.map +1 -1
  29. package/dist/context-graph-claim-proof.d.ts +74 -0
  30. package/dist/context-graph-claim-proof.d.ts.map +1 -0
  31. package/dist/context-graph-claim-proof.js +137 -0
  32. package/dist/context-graph-claim-proof.js.map +1 -0
  33. package/dist/context-graph-member-proof.d.ts +33 -0
  34. package/dist/context-graph-member-proof.d.ts.map +1 -0
  35. package/dist/context-graph-member-proof.js +142 -0
  36. package/dist/context-graph-member-proof.js.map +1 -0
  37. package/dist/context-graph-membership-persist-scheduler.d.ts +7 -23
  38. package/dist/context-graph-membership-persist-scheduler.d.ts.map +1 -1
  39. package/dist/context-graph-membership-persist-scheduler.js +12 -88
  40. package/dist/context-graph-membership-persist-scheduler.js.map +1 -1
  41. package/dist/context-graph-meta-confirmation.d.ts +22 -2
  42. package/dist/context-graph-meta-confirmation.d.ts.map +1 -1
  43. package/dist/context-graph-meta-confirmation.js +54 -23
  44. package/dist/context-graph-meta-confirmation.js.map +1 -1
  45. package/dist/context-graph-meta-projection.d.ts +13 -2
  46. package/dist/context-graph-meta-projection.d.ts.map +1 -1
  47. package/dist/context-graph-meta-projection.js +61 -24
  48. package/dist/context-graph-meta-projection.js.map +1 -1
  49. package/dist/context-graph-metadata-relocation.d.ts +18 -30
  50. package/dist/context-graph-metadata-relocation.d.ts.map +1 -1
  51. package/dist/context-graph-metadata-relocation.js +32 -2
  52. package/dist/context-graph-metadata-relocation.js.map +1 -1
  53. package/dist/context-graph-private-meta-proof.d.ts +8 -9
  54. package/dist/context-graph-private-meta-proof.d.ts.map +1 -1
  55. package/dist/context-graph-private-meta-proof.js +25 -89
  56. package/dist/context-graph-private-meta-proof.js.map +1 -1
  57. package/dist/context-graph-public-meta-proof.d.ts +11 -1
  58. package/dist/context-graph-public-meta-proof.d.ts.map +1 -1
  59. package/dist/context-graph-public-meta-proof.js +23 -3
  60. package/dist/context-graph-public-meta-proof.js.map +1 -1
  61. package/dist/context-graph-read-authority.d.ts +30 -3
  62. package/dist/context-graph-read-authority.d.ts.map +1 -1
  63. package/dist/context-graph-read-authority.js +62 -18
  64. package/dist/context-graph-read-authority.js.map +1 -1
  65. package/dist/context-graph-storage-discovery.d.ts +14 -4
  66. package/dist/context-graph-storage-discovery.d.ts.map +1 -1
  67. package/dist/context-graph-storage-discovery.js +27 -7
  68. package/dist/context-graph-storage-discovery.js.map +1 -1
  69. package/dist/context-graph-subscription-authority-recovery.d.ts +7 -0
  70. package/dist/context-graph-subscription-authority-recovery.d.ts.map +1 -1
  71. package/dist/context-graph-subscription-authority-recovery.js +1 -0
  72. package/dist/context-graph-subscription-authority-recovery.js.map +1 -1
  73. package/dist/context-graph-subscription-persist-scheduler.d.ts +52 -0
  74. package/dist/context-graph-subscription-persist-scheduler.d.ts.map +1 -0
  75. package/dist/context-graph-subscription-persist-scheduler.js +78 -0
  76. package/dist/context-graph-subscription-persist-scheduler.js.map +1 -0
  77. package/dist/curator-dial-address.d.ts +16 -0
  78. package/dist/curator-dial-address.d.ts.map +1 -0
  79. package/dist/curator-dial-address.js +58 -0
  80. package/dist/curator-dial-address.js.map +1 -0
  81. package/dist/curator-meta-refresh.d.ts +18 -4
  82. package/dist/curator-meta-refresh.d.ts.map +1 -1
  83. package/dist/curator-meta-refresh.js +61 -58
  84. package/dist/curator-meta-refresh.js.map +1 -1
  85. package/dist/curator-peer-connection.d.ts +21 -0
  86. package/dist/curator-peer-connection.d.ts.map +1 -0
  87. package/dist/curator-peer-connection.js +41 -0
  88. package/dist/curator-peer-connection.js.map +1 -0
  89. package/dist/dkg-agent-agents-phonebook.d.ts +41 -0
  90. package/dist/dkg-agent-agents-phonebook.d.ts.map +1 -0
  91. package/dist/dkg-agent-agents-phonebook.js +155 -0
  92. package/dist/dkg-agent-agents-phonebook.js.map +1 -0
  93. package/dist/dkg-agent-base.d.ts +162 -24
  94. package/dist/dkg-agent-base.d.ts.map +1 -1
  95. package/dist/dkg-agent-base.js +175 -147
  96. package/dist/dkg-agent-base.js.map +1 -1
  97. package/dist/dkg-agent-cg-chain-observation.d.ts +6 -1
  98. package/dist/dkg-agent-cg-chain-observation.d.ts.map +1 -1
  99. package/dist/dkg-agent-cg-chain-observation.js +20 -5
  100. package/dist/dkg-agent-cg-chain-observation.js.map +1 -1
  101. package/dist/dkg-agent-cg-name-resolution.d.ts +38 -2
  102. package/dist/dkg-agent-cg-name-resolution.d.ts.map +1 -1
  103. package/dist/dkg-agent-cg-name-resolution.js +100 -8
  104. package/dist/dkg-agent-cg-name-resolution.js.map +1 -1
  105. package/dist/dkg-agent-cg-registry.d.ts +43 -3
  106. package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
  107. package/dist/dkg-agent-cg-registry.js +267 -129
  108. package/dist/dkg-agent-cg-registry.js.map +1 -1
  109. package/dist/dkg-agent-cg-resolve.d.ts +6 -4
  110. package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
  111. package/dist/dkg-agent-cg-resolve.js +40 -18
  112. package/dist/dkg-agent-cg-resolve.js.map +1 -1
  113. package/dist/dkg-agent-constants.d.ts +10 -2
  114. package/dist/dkg-agent-constants.d.ts.map +1 -1
  115. package/dist/dkg-agent-constants.js +10 -2
  116. package/dist/dkg-agent-constants.js.map +1 -1
  117. package/dist/dkg-agent-context-graph.d.ts.map +1 -1
  118. package/dist/dkg-agent-context-graph.js +1 -5
  119. package/dist/dkg-agent-context-graph.js.map +1 -1
  120. package/dist/dkg-agent-crypto.d.ts +128 -21
  121. package/dist/dkg-agent-crypto.d.ts.map +1 -1
  122. package/dist/dkg-agent-crypto.js +824 -176
  123. package/dist/dkg-agent-crypto.js.map +1 -1
  124. package/dist/dkg-agent-diagnostics.d.ts.map +1 -1
  125. package/dist/dkg-agent-diagnostics.js +4 -3
  126. package/dist/dkg-agent-diagnostics.js.map +1 -1
  127. package/dist/dkg-agent-helpers.d.ts +2 -2
  128. package/dist/dkg-agent-helpers.d.ts.map +1 -1
  129. package/dist/dkg-agent-helpers.js +3 -3
  130. package/dist/dkg-agent-helpers.js.map +1 -1
  131. package/dist/dkg-agent-join.d.ts +12 -1
  132. package/dist/dkg-agent-join.d.ts.map +1 -1
  133. package/dist/dkg-agent-join.js +80 -92
  134. package/dist/dkg-agent-join.js.map +1 -1
  135. package/dist/dkg-agent-lifecycle.d.ts +129 -22
  136. package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
  137. package/dist/dkg-agent-lifecycle.js +690 -211
  138. package/dist/dkg-agent-lifecycle.js.map +1 -1
  139. package/dist/dkg-agent-publish.d.ts +33 -40
  140. package/dist/dkg-agent-publish.d.ts.map +1 -1
  141. package/dist/dkg-agent-publish.js +194 -281
  142. package/dist/dkg-agent-publish.js.map +1 -1
  143. package/dist/dkg-agent-query.d.ts +7 -0
  144. package/dist/dkg-agent-query.d.ts.map +1 -1
  145. package/dist/dkg-agent-query.js +102 -86
  146. package/dist/dkg-agent-query.js.map +1 -1
  147. package/dist/dkg-agent-registered-private-empty-vm.d.ts +70 -0
  148. package/dist/dkg-agent-registered-private-empty-vm.d.ts.map +1 -0
  149. package/dist/dkg-agent-registered-private-empty-vm.js +133 -0
  150. package/dist/dkg-agent-registered-private-empty-vm.js.map +1 -0
  151. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts +8 -3
  152. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
  153. package/dist/dkg-agent-rfc64-catalog-auto-publish.js +45 -51
  154. package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
  155. package/dist/dkg-agent-rfc64-catalog.d.ts +87 -80
  156. package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
  157. package/dist/dkg-agent-rfc64-catalog.js +726 -476
  158. package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
  159. package/dist/dkg-agent-rfc64-meta-bootstrap.d.ts +6 -1
  160. package/dist/dkg-agent-rfc64-meta-bootstrap.d.ts.map +1 -1
  161. package/dist/dkg-agent-rfc64-meta-bootstrap.js +29 -13
  162. package/dist/dkg-agent-rfc64-meta-bootstrap.js.map +1 -1
  163. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts +8 -0
  164. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts.map +1 -1
  165. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js +249 -40
  166. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js.map +1 -1
  167. package/dist/dkg-agent-rfc64-swm-catalog-projection.d.ts.map +1 -1
  168. package/dist/dkg-agent-rfc64-swm-catalog-projection.js +3 -2
  169. package/dist/dkg-agent-rfc64-swm-catalog-projection.js.map +1 -1
  170. package/dist/dkg-agent-swm-host.d.ts +217 -52
  171. package/dist/dkg-agent-swm-host.d.ts.map +1 -1
  172. package/dist/dkg-agent-swm-host.js +1305 -858
  173. package/dist/dkg-agent-swm-host.js.map +1 -1
  174. package/dist/dkg-agent-swm-state.d.ts +15 -0
  175. package/dist/dkg-agent-swm-state.d.ts.map +1 -1
  176. package/dist/dkg-agent-swm-state.js +43 -0
  177. package/dist/dkg-agent-swm-state.js.map +1 -1
  178. package/dist/dkg-agent-swm-substrate.d.ts +49 -8
  179. package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
  180. package/dist/dkg-agent-swm-substrate.js +219 -46
  181. package/dist/dkg-agent-swm-substrate.js.map +1 -1
  182. package/dist/dkg-agent-types.d.ts +86 -27
  183. package/dist/dkg-agent-types.d.ts.map +1 -1
  184. package/dist/dkg-agent-types.js.map +1 -1
  185. package/dist/dkg-agent-vm-promotion.d.ts +4 -0
  186. package/dist/dkg-agent-vm-promotion.d.ts.map +1 -1
  187. package/dist/dkg-agent-vm-promotion.js +40 -5
  188. package/dist/dkg-agent-vm-promotion.js.map +1 -1
  189. package/dist/dkg-agent-vm-reconcile-scheduling.d.ts +7 -0
  190. package/dist/dkg-agent-vm-reconcile-scheduling.d.ts.map +1 -1
  191. package/dist/dkg-agent-vm-reconcile-scheduling.js +18 -0
  192. package/dist/dkg-agent-vm-reconcile-scheduling.js.map +1 -1
  193. package/dist/dkg-agent.d.ts +31 -2
  194. package/dist/dkg-agent.d.ts.map +1 -1
  195. package/dist/dkg-agent.js +188 -72
  196. package/dist/dkg-agent.js.map +1 -1
  197. package/dist/exact-graph-content-verifier.d.ts.map +1 -1
  198. package/dist/exact-graph-content-verifier.js +3 -2
  199. package/dist/exact-graph-content-verifier.js.map +1 -1
  200. package/dist/finalization-handler.d.ts +26 -211
  201. package/dist/finalization-handler.d.ts.map +1 -1
  202. package/dist/finalization-handler.js +94 -1652
  203. package/dist/finalization-handler.js.map +1 -1
  204. package/dist/finalization-recovery-sqlite-displacement.d.ts +37 -0
  205. package/dist/finalization-recovery-sqlite-displacement.d.ts.map +1 -0
  206. package/dist/finalization-recovery-sqlite-displacement.js +102 -0
  207. package/dist/finalization-recovery-sqlite-displacement.js.map +1 -0
  208. package/dist/finalization-recovery-sqlite-policy.d.ts +20 -4
  209. package/dist/finalization-recovery-sqlite-policy.d.ts.map +1 -1
  210. package/dist/finalization-recovery-sqlite-policy.js +21 -5
  211. package/dist/finalization-recovery-sqlite-policy.js.map +1 -1
  212. package/dist/finalization-recovery-sqlite-rows.d.ts +53 -0
  213. package/dist/finalization-recovery-sqlite-rows.d.ts.map +1 -0
  214. package/dist/finalization-recovery-sqlite-rows.js +77 -0
  215. package/dist/finalization-recovery-sqlite-rows.js.map +1 -0
  216. package/dist/finalization-recovery-sqlite-store.d.ts +10 -4
  217. package/dist/finalization-recovery-sqlite-store.d.ts.map +1 -1
  218. package/dist/finalization-recovery-sqlite-store.js +49 -50
  219. package/dist/finalization-recovery-sqlite-store.js.map +1 -1
  220. package/dist/finalization-recovery-store.d.ts +18 -0
  221. package/dist/finalization-recovery-store.d.ts.map +1 -1
  222. package/dist/finalization-recovery-store.js +24 -0
  223. package/dist/finalization-recovery-store.js.map +1 -1
  224. package/dist/finalization-recovery-worker.js +1 -1
  225. package/dist/finalization-recovery-worker.js.map +1 -1
  226. package/dist/finalization-recovery.d.ts +2 -3
  227. package/dist/finalization-recovery.d.ts.map +1 -1
  228. package/dist/finalization-recovery.js +12 -9
  229. package/dist/finalization-recovery.js.map +1 -1
  230. package/dist/finalized-authority-cold-resolution.d.ts +6 -1
  231. package/dist/finalized-authority-cold-resolution.d.ts.map +1 -1
  232. package/dist/finalized-authority-cold-resolution.js +22 -3
  233. package/dist/finalized-authority-cold-resolution.js.map +1 -1
  234. package/dist/gossip-publish-handler.d.ts.map +1 -1
  235. package/dist/gossip-publish-handler.js +4 -2
  236. package/dist/gossip-publish-handler.js.map +1 -1
  237. package/dist/gossip-session.d.ts +29 -0
  238. package/dist/gossip-session.d.ts.map +1 -0
  239. package/dist/gossip-session.js +48 -0
  240. package/dist/gossip-session.js.map +1 -0
  241. package/dist/index.d.ts +4 -1
  242. package/dist/index.d.ts.map +1 -1
  243. package/dist/index.js +4 -0
  244. package/dist/index.js.map +1 -1
  245. package/dist/internal/context-graph-authority/approved-member-acceptance.d.ts +61 -0
  246. package/dist/internal/context-graph-authority/approved-member-acceptance.d.ts.map +1 -0
  247. package/dist/internal/context-graph-authority/approved-member-acceptance.js +75 -0
  248. package/dist/internal/context-graph-authority/approved-member-acceptance.js.map +1 -0
  249. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts +5 -5
  250. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts.map +1 -1
  251. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js +59 -49
  252. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js.map +1 -1
  253. package/dist/internal/context-graph-authority/context-graph-authority.d.ts +1 -0
  254. package/dist/internal/context-graph-authority/context-graph-authority.d.ts.map +1 -1
  255. package/dist/internal/context-graph-authority/context-graph-authority.js +25 -0
  256. package/dist/internal/context-graph-authority/context-graph-authority.js.map +1 -1
  257. package/dist/internal/context-graph-authority/finalized-target-projection.d.ts +17 -0
  258. package/dist/internal/context-graph-authority/finalized-target-projection.d.ts.map +1 -0
  259. package/dist/internal/context-graph-authority/finalized-target-projection.js +36 -0
  260. package/dist/internal/context-graph-authority/finalized-target-projection.js.map +1 -0
  261. package/dist/internal/context-graph-authority/swm-transport-authority.d.ts +84 -0
  262. package/dist/internal/context-graph-authority/swm-transport-authority.d.ts.map +1 -0
  263. package/dist/internal/context-graph-authority/swm-transport-authority.js +175 -0
  264. package/dist/internal/context-graph-authority/swm-transport-authority.js.map +1 -0
  265. package/dist/internal/context-graph-binding-abort.d.ts +3 -0
  266. package/dist/internal/context-graph-binding-abort.d.ts.map +1 -0
  267. package/dist/internal/context-graph-binding-abort.js +32 -0
  268. package/dist/internal/context-graph-binding-abort.js.map +1 -0
  269. package/dist/internal/context-graph-cache-invalidating-store.d.ts +3 -0
  270. package/dist/internal/context-graph-cache-invalidating-store.d.ts.map +1 -0
  271. package/dist/internal/context-graph-cache-invalidating-store.js +167 -0
  272. package/dist/internal/context-graph-cache-invalidating-store.js.map +1 -0
  273. package/dist/internal/context-graph-meta-record-copy.d.ts +3 -0
  274. package/dist/internal/context-graph-meta-record-copy.d.ts.map +1 -0
  275. package/dist/internal/context-graph-meta-record-copy.js +21 -0
  276. package/dist/internal/context-graph-meta-record-copy.js.map +1 -0
  277. package/dist/internal/gossip/host-mode-handler.d.ts +11 -0
  278. package/dist/internal/gossip/host-mode-handler.d.ts.map +1 -0
  279. package/dist/internal/gossip/host-mode-handler.js +41 -0
  280. package/dist/internal/gossip/host-mode-handler.js.map +1 -0
  281. package/dist/internal/join-encryption-key-bundle.d.ts +10 -0
  282. package/dist/internal/join-encryption-key-bundle.d.ts.map +1 -0
  283. package/dist/internal/join-encryption-key-bundle.js +72 -0
  284. package/dist/internal/join-encryption-key-bundle.js.map +1 -0
  285. package/dist/internal/knowledge-asset-vm-publish-request.d.ts +31 -0
  286. package/dist/internal/knowledge-asset-vm-publish-request.d.ts.map +1 -0
  287. package/dist/internal/knowledge-asset-vm-publish-request.js +91 -0
  288. package/dist/internal/knowledge-asset-vm-publish-request.js.map +1 -0
  289. package/dist/internal/lifecycle-sync-policy.d.ts +5 -0
  290. package/dist/internal/lifecycle-sync-policy.d.ts.map +1 -0
  291. package/dist/internal/lifecycle-sync-policy.js +12 -0
  292. package/dist/internal/lifecycle-sync-policy.js.map +1 -0
  293. package/dist/internal/local-private-member.d.ts +14 -0
  294. package/dist/internal/local-private-member.d.ts.map +1 -0
  295. package/dist/internal/local-private-member.js +21 -0
  296. package/dist/internal/local-private-member.js.map +1 -0
  297. package/dist/internal/promote/assertion-promote-precommit.d.ts +41 -1
  298. package/dist/internal/promote/assertion-promote-precommit.d.ts.map +1 -1
  299. package/dist/internal/promote/assertion-promote-precommit.js +79 -22
  300. package/dist/internal/promote/assertion-promote-precommit.js.map +1 -1
  301. package/dist/internal/storage-ack-owned-request.d.ts +16 -0
  302. package/dist/internal/storage-ack-owned-request.d.ts.map +1 -0
  303. package/dist/internal/storage-ack-owned-request.js +16 -0
  304. package/dist/internal/storage-ack-owned-request.js.map +1 -0
  305. package/dist/internal/vm-reconcile-local-admission-wait.d.ts +96 -0
  306. package/dist/internal/vm-reconcile-local-admission-wait.d.ts.map +1 -0
  307. package/dist/internal/vm-reconcile-local-admission-wait.js +226 -0
  308. package/dist/internal/vm-reconcile-local-admission-wait.js.map +1 -0
  309. package/dist/internal/vm-reconcile-read-authority.d.ts +27 -0
  310. package/dist/internal/vm-reconcile-read-authority.d.ts.map +1 -0
  311. package/dist/internal/vm-reconcile-read-authority.js +33 -0
  312. package/dist/internal/vm-reconcile-read-authority.js.map +1 -0
  313. package/dist/internal/vm-reconcile-sweep-admission.d.ts +2 -0
  314. package/dist/internal/vm-reconcile-sweep-admission.d.ts.map +1 -1
  315. package/dist/internal/vm-reconcile-sweep.d.ts +16 -4
  316. package/dist/internal/vm-reconcile-sweep.d.ts.map +1 -1
  317. package/dist/internal/vm-reconcile-sweep.js +91 -50
  318. package/dist/internal/vm-reconcile-sweep.js.map +1 -1
  319. package/dist/internal/workspace-projected-delegatees.d.ts +3 -0
  320. package/dist/internal/workspace-projected-delegatees.d.ts.map +1 -0
  321. package/dist/internal/workspace-projected-delegatees.js +34 -0
  322. package/dist/internal/workspace-projected-delegatees.js.map +1 -0
  323. package/dist/join-approval-restart-projection.d.ts +14 -0
  324. package/dist/join-approval-restart-projection.d.ts.map +1 -0
  325. package/dist/join-approval-restart-projection.js +32 -0
  326. package/dist/join-approval-restart-projection.js.map +1 -0
  327. package/dist/keyed-persist-scheduler.d.ts +72 -0
  328. package/dist/keyed-persist-scheduler.d.ts.map +1 -0
  329. package/dist/keyed-persist-scheduler.js +140 -0
  330. package/dist/keyed-persist-scheduler.js.map +1 -0
  331. package/dist/map-with-concurrency.d.ts +7 -0
  332. package/dist/map-with-concurrency.d.ts.map +1 -1
  333. package/dist/map-with-concurrency.js +36 -0
  334. package/dist/map-with-concurrency.js.map +1 -1
  335. package/dist/p2p/network-admission-coordinator.d.ts +15 -0
  336. package/dist/p2p/network-admission-coordinator.d.ts.map +1 -1
  337. package/dist/p2p/network-admission-coordinator.js +20 -2
  338. package/dist/p2p/network-admission-coordinator.js.map +1 -1
  339. package/dist/p2p/peer-connect.d.ts +10 -1
  340. package/dist/p2p/peer-connect.d.ts.map +1 -1
  341. package/dist/p2p/peer-connect.js +11 -2
  342. package/dist/p2p/peer-connect.js.map +1 -1
  343. package/dist/p2p/peer-selection.d.ts +8 -0
  344. package/dist/p2p/peer-selection.d.ts.map +1 -1
  345. package/dist/p2p/peer-selection.js +21 -12
  346. package/dist/p2p/peer-selection.js.map +1 -1
  347. package/dist/p2p/protocol-readiness.d.ts +3 -3
  348. package/dist/p2p/protocol-readiness.d.ts.map +1 -1
  349. package/dist/p2p/protocol-readiness.js +4 -3
  350. package/dist/p2p/protocol-readiness.js.map +1 -1
  351. package/dist/prepare-unscoped-context-graph-read-checks.d.ts.map +1 -1
  352. package/dist/prepare-unscoped-context-graph-read-checks.js +12 -0
  353. package/dist/prepare-unscoped-context-graph-read-checks.js.map +1 -1
  354. package/dist/registered-context-graph-authority.d.ts +19 -0
  355. package/dist/registered-context-graph-authority.d.ts.map +1 -1
  356. package/dist/registered-private-empty-vm-attempt-v1.d.ts +34 -0
  357. package/dist/registered-private-empty-vm-attempt-v1.d.ts.map +1 -0
  358. package/dist/registered-private-empty-vm-attempt-v1.js +120 -0
  359. package/dist/registered-private-empty-vm-attempt-v1.js.map +1 -0
  360. package/dist/reserved-ka-id-allocation.d.ts +12 -0
  361. package/dist/reserved-ka-id-allocation.d.ts.map +1 -0
  362. package/dist/reserved-ka-id-allocation.js +25 -0
  363. package/dist/reserved-ka-id-allocation.js.map +1 -0
  364. package/dist/rfc64/applied-catalog-authority-transition-v1.d.ts.map +1 -1
  365. package/dist/rfc64/applied-catalog-authority-transition-v1.js +15 -17
  366. package/dist/rfc64/applied-catalog-authority-transition-v1.js.map +1 -1
  367. package/dist/rfc64/authority-rpc-circuit-breaker-v1.d.ts +5 -3
  368. package/dist/rfc64/authority-rpc-circuit-breaker-v1.d.ts.map +1 -1
  369. package/dist/rfc64/authority-rpc-circuit-breaker-v1.js +9 -0
  370. package/dist/rfc64/authority-rpc-circuit-breaker-v1.js.map +1 -1
  371. package/dist/rfc64/catalog-completion-evidence-v1.d.ts +38 -0
  372. package/dist/rfc64/catalog-completion-evidence-v1.d.ts.map +1 -0
  373. package/dist/rfc64/catalog-completion-evidence-v1.js +49 -0
  374. package/dist/rfc64/catalog-completion-evidence-v1.js.map +1 -0
  375. package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts +12 -13
  376. package/dist/rfc64/catalog-operational-applied-heads-v1.d.ts.map +1 -1
  377. package/dist/rfc64/catalog-operational-applied-heads-v1.js +17 -52
  378. package/dist/rfc64/catalog-operational-applied-heads-v1.js.map +1 -1
  379. package/dist/rfc64/catalog-operational-reads-v1.d.ts +13 -0
  380. package/dist/rfc64/catalog-operational-reads-v1.d.ts.map +1 -0
  381. package/dist/rfc64/catalog-operational-reads-v1.js +56 -0
  382. package/dist/rfc64/catalog-operational-reads-v1.js.map +1 -0
  383. package/dist/rfc64/catalog-operational-targets-v1.d.ts +55 -0
  384. package/dist/rfc64/catalog-operational-targets-v1.d.ts.map +1 -0
  385. package/dist/rfc64/catalog-operational-targets-v1.js +379 -0
  386. package/dist/rfc64/catalog-operational-targets-v1.js.map +1 -0
  387. package/dist/rfc64/catalog-repair-diagnostics-v1.d.ts +28 -0
  388. package/dist/rfc64/catalog-repair-diagnostics-v1.d.ts.map +1 -0
  389. package/dist/rfc64/catalog-repair-diagnostics-v1.js +93 -0
  390. package/dist/rfc64/catalog-repair-diagnostics-v1.js.map +1 -0
  391. package/dist/rfc64/catalog-repair-retry-v1.d.ts +13 -0
  392. package/dist/rfc64/catalog-repair-retry-v1.d.ts.map +1 -0
  393. package/dist/rfc64/catalog-repair-retry-v1.js +39 -0
  394. package/dist/rfc64/catalog-repair-retry-v1.js.map +1 -0
  395. package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts +52 -0
  396. package/dist/rfc64/catalog-replay-recovery-runtime-v1.d.ts.map +1 -1
  397. package/dist/rfc64/catalog-replay-recovery-runtime-v1.js +188 -32
  398. package/dist/rfc64/catalog-replay-recovery-runtime-v1.js.map +1 -1
  399. package/dist/rfc64/catalog-replay-snapshot-runtime-v1.d.ts +2 -8
  400. package/dist/rfc64/catalog-replay-snapshot-runtime-v1.d.ts.map +1 -1
  401. package/dist/rfc64/catalog-replay-snapshot-runtime-v1.js +10 -37
  402. package/dist/rfc64/catalog-replay-snapshot-runtime-v1.js.map +1 -1
  403. package/dist/rfc64/catalog-rollout-authority-v1.d.ts +13 -0
  404. package/dist/rfc64/catalog-rollout-authority-v1.d.ts.map +1 -1
  405. package/dist/rfc64/catalog-rollout-authority-v1.js +11 -0
  406. package/dist/rfc64/catalog-rollout-authority-v1.js.map +1 -1
  407. package/dist/rfc64/catalog-row-authorship.d.ts +12 -0
  408. package/dist/rfc64/catalog-row-authorship.d.ts.map +1 -1
  409. package/dist/rfc64/catalog-row-authorship.js +110 -57
  410. package/dist/rfc64/catalog-row-authorship.js.map +1 -1
  411. package/dist/rfc64/inventory-v1/candidate.d.ts +31 -10
  412. package/dist/rfc64/inventory-v1/candidate.d.ts.map +1 -1
  413. package/dist/rfc64/inventory-v1/candidate.js +51 -16
  414. package/dist/rfc64/inventory-v1/candidate.js.map +1 -1
  415. package/dist/rfc64/inventory-v1/index.d.ts +1 -1
  416. package/dist/rfc64/inventory-v1/index.d.ts.map +1 -1
  417. package/dist/rfc64/inventory-v1/index.js +1 -1
  418. package/dist/rfc64/inventory-v1/index.js.map +1 -1
  419. package/dist/rfc64/inventory-v1/open.d.ts.map +1 -1
  420. package/dist/rfc64/inventory-v1/open.js +7 -4
  421. package/dist/rfc64/inventory-v1/open.js.map +1 -1
  422. package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.d.ts +3 -1
  423. package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.d.ts.map +1 -1
  424. package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.js +15 -0
  425. package/dist/rfc64/inventory-v1/swm-author-inventory-persistence.js.map +1 -1
  426. package/dist/rfc64/legacy-swm-boundary-codec-v1.d.ts +25 -0
  427. package/dist/rfc64/legacy-swm-boundary-codec-v1.d.ts.map +1 -0
  428. package/dist/rfc64/legacy-swm-boundary-codec-v1.js +127 -0
  429. package/dist/rfc64/legacy-swm-boundary-codec-v1.js.map +1 -0
  430. package/dist/rfc64/legacy-swm-boundary-v1.d.ts +12 -0
  431. package/dist/rfc64/legacy-swm-boundary-v1.d.ts.map +1 -1
  432. package/dist/rfc64/legacy-swm-boundary-v1.js +83 -144
  433. package/dist/rfc64/legacy-swm-boundary-v1.js.map +1 -1
  434. package/dist/rfc64/private-catalog-subscription-readiness-v1.d.ts +33 -0
  435. package/dist/rfc64/private-catalog-subscription-readiness-v1.d.ts.map +1 -0
  436. package/dist/rfc64/private-catalog-subscription-readiness-v1.js +97 -0
  437. package/dist/rfc64/private-catalog-subscription-readiness-v1.js.map +1 -0
  438. package/dist/rfc64/private-read-roster-v1.d.ts +14 -0
  439. package/dist/rfc64/private-read-roster-v1.d.ts.map +1 -0
  440. package/dist/rfc64/private-read-roster-v1.js +57 -0
  441. package/dist/rfc64/private-read-roster-v1.js.map +1 -0
  442. package/dist/rfc64/public-catalog-native-receiver-v1.d.ts.map +1 -1
  443. package/dist/rfc64/public-catalog-native-receiver-v1.js +26 -21
  444. package/dist/rfc64/public-catalog-native-receiver-v1.js.map +1 -1
  445. package/dist/rfc64/public-catalog-native-reconciler-v1.d.ts +17 -11
  446. package/dist/rfc64/public-catalog-native-reconciler-v1.d.ts.map +1 -1
  447. package/dist/rfc64/public-catalog-native-reconciler-v1.js +10 -8
  448. package/dist/rfc64/public-catalog-native-reconciler-v1.js.map +1 -1
  449. package/dist/rfc64/public-catalog-receiver-v1.d.ts +9 -0
  450. package/dist/rfc64/public-catalog-receiver-v1.d.ts.map +1 -1
  451. package/dist/rfc64/public-catalog-receiver-v1.js +11 -2
  452. package/dist/rfc64/public-catalog-receiver-v1.js.map +1 -1
  453. package/dist/rfc64/public-catalog-service-v1.d.ts.map +1 -1
  454. package/dist/rfc64/public-catalog-service-v1.js +21 -22
  455. package/dist/rfc64/public-catalog-service-v1.js.map +1 -1
  456. package/dist/rfc64/public-catalog-successor-producer-v1.d.ts.map +1 -1
  457. package/dist/rfc64/public-catalog-successor-producer-v1.js +5 -4
  458. package/dist/rfc64/public-catalog-successor-producer-v1.js.map +1 -1
  459. package/dist/rfc64/registered-private-empty-vm-proof-v1.d.ts +20 -0
  460. package/dist/rfc64/registered-private-empty-vm-proof-v1.d.ts.map +1 -0
  461. package/dist/rfc64/registered-private-empty-vm-proof-v1.js +26 -0
  462. package/dist/rfc64/registered-private-empty-vm-proof-v1.js.map +1 -0
  463. package/dist/rfc64/swm-catalog-durable-asset-resolver-v1.d.ts.map +1 -1
  464. package/dist/rfc64/swm-catalog-durable-asset-resolver-v1.js +60 -53
  465. package/dist/rfc64/swm-catalog-durable-asset-resolver-v1.js.map +1 -1
  466. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts +2 -1
  467. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts.map +1 -1
  468. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js +44 -4
  469. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js.map +1 -1
  470. package/dist/rfc64/swm-inventory-shadow-runtime-v1.d.ts +3 -1
  471. package/dist/rfc64/swm-inventory-shadow-runtime-v1.d.ts.map +1 -1
  472. package/dist/rfc64/swm-inventory-shadow-runtime-v1.js +34 -0
  473. package/dist/rfc64/swm-inventory-shadow-runtime-v1.js.map +1 -1
  474. package/dist/sync/auth/pipe-request-tail.d.ts +5 -1
  475. package/dist/sync/auth/pipe-request-tail.d.ts.map +1 -1
  476. package/dist/sync/auth/pipe-request-tail.js +13 -3
  477. package/dist/sync/auth/pipe-request-tail.js.map +1 -1
  478. package/dist/sync/auth/request-build.d.ts +3 -0
  479. package/dist/sync/auth/request-build.d.ts.map +1 -1
  480. package/dist/sync/auth/request-build.js +11 -2
  481. package/dist/sync/auth/request-build.js.map +1 -1
  482. package/dist/sync/backpressure.d.ts +27 -16
  483. package/dist/sync/backpressure.d.ts.map +1 -1
  484. package/dist/sync/backpressure.js +66 -40
  485. package/dist/sync/backpressure.js.map +1 -1
  486. package/dist/sync/catchup-policy.d.ts +2 -0
  487. package/dist/sync/catchup-policy.d.ts.map +1 -1
  488. package/dist/sync/catchup-policy.js +2 -0
  489. package/dist/sync/catchup-policy.js.map +1 -1
  490. package/dist/sync/exact-asset-fetch.d.ts +22 -0
  491. package/dist/sync/exact-asset-fetch.d.ts.map +1 -1
  492. package/dist/sync/exact-asset-fetch.js +30 -3
  493. package/dist/sync/exact-asset-fetch.js.map +1 -1
  494. package/dist/sync/exact-assets.d.ts +7 -5
  495. package/dist/sync/exact-assets.d.ts.map +1 -1
  496. package/dist/sync/exact-assets.js +13 -8
  497. package/dist/sync/exact-assets.js.map +1 -1
  498. package/dist/sync/exact-batch-observation.d.ts +3 -0
  499. package/dist/sync/exact-batch-observation.d.ts.map +1 -0
  500. package/dist/sync/exact-batch-observation.js +13 -0
  501. package/dist/sync/exact-batch-observation.js.map +1 -0
  502. package/dist/sync/exact-batch-stream-capability.d.ts +24 -0
  503. package/dist/sync/exact-batch-stream-capability.d.ts.map +1 -0
  504. package/dist/sync/exact-batch-stream-capability.js +88 -0
  505. package/dist/sync/exact-batch-stream-capability.js.map +1 -0
  506. package/dist/sync/exact-batch-stream-contract.d.ts +78 -0
  507. package/dist/sync/exact-batch-stream-contract.d.ts.map +1 -0
  508. package/dist/sync/exact-batch-stream-contract.js +206 -0
  509. package/dist/sync/exact-batch-stream-contract.js.map +1 -0
  510. package/dist/sync/on-connect/sync-on-connect.d.ts +1 -1
  511. package/dist/sync/on-connect/sync-on-connect.d.ts.map +1 -1
  512. package/dist/sync/on-connect/sync-on-connect.js +3 -3
  513. package/dist/sync/on-connect/sync-on-connect.js.map +1 -1
  514. package/dist/sync/on-demand-agents-phonebook.d.ts +162 -0
  515. package/dist/sync/on-demand-agents-phonebook.d.ts.map +1 -0
  516. package/dist/sync/on-demand-agents-phonebook.js +571 -0
  517. package/dist/sync/on-demand-agents-phonebook.js.map +1 -0
  518. package/dist/sync/peer-connection.d.ts.map +1 -1
  519. package/dist/sync/peer-connection.js +11 -2
  520. package/dist/sync/peer-connection.js.map +1 -1
  521. package/dist/sync/priority-admission-queue.d.ts +17 -0
  522. package/dist/sync/priority-admission-queue.d.ts.map +1 -1
  523. package/dist/sync/priority-admission-queue.js +58 -37
  524. package/dist/sync/priority-admission-queue.js.map +1 -1
  525. package/dist/sync/requester/admission-boundary.d.ts +12 -0
  526. package/dist/sync/requester/admission-boundary.d.ts.map +1 -0
  527. package/dist/sync/requester/admission-boundary.js +22 -0
  528. package/dist/sync/requester/admission-boundary.js.map +1 -0
  529. package/dist/sync/requester/durable-sync.d.ts +2 -1
  530. package/dist/sync/requester/durable-sync.d.ts.map +1 -1
  531. package/dist/sync/requester/durable-sync.js +3 -188
  532. package/dist/sync/requester/durable-sync.js.map +1 -1
  533. package/dist/sync/requester/exact-batch-stream-driver.d.ts +83 -0
  534. package/dist/sync/requester/exact-batch-stream-driver.d.ts.map +1 -0
  535. package/dist/sync/requester/exact-batch-stream-driver.js +299 -0
  536. package/dist/sync/requester/exact-batch-stream-driver.js.map +1 -0
  537. package/dist/sync/requester/exact-batch-stream.d.ts +72 -0
  538. package/dist/sync/requester/exact-batch-stream.d.ts.map +1 -0
  539. package/dist/sync/requester/exact-batch-stream.js +267 -0
  540. package/dist/sync/requester/exact-batch-stream.js.map +1 -0
  541. package/dist/sync/requester/exact-recovery-transport.d.ts +19 -0
  542. package/dist/sync/requester/exact-recovery-transport.d.ts.map +1 -0
  543. package/dist/sync/requester/exact-recovery-transport.js +3 -0
  544. package/dist/sync/requester/exact-recovery-transport.js.map +1 -0
  545. package/dist/sync/requester/finalized-swm-twin-reconciliation.js +12 -3
  546. package/dist/sync/requester/finalized-swm-twin-reconciliation.js.map +1 -1
  547. package/dist/sync/requester/graph-scoped-materialization.d.ts.map +1 -1
  548. package/dist/sync/requester/graph-scoped-materialization.js +61 -27
  549. package/dist/sync/requester/graph-scoped-materialization.js.map +1 -1
  550. package/dist/sync/requester/page-fetch.d.ts +7 -0
  551. package/dist/sync/requester/page-fetch.d.ts.map +1 -1
  552. package/dist/sync/requester/page-fetch.js +103 -49
  553. package/dist/sync/requester/page-fetch.js.map +1 -1
  554. package/dist/sync/requester/shared-memory-sync.d.ts +10 -5
  555. package/dist/sync/requester/shared-memory-sync.d.ts.map +1 -1
  556. package/dist/sync/requester/shared-memory-sync.js +149 -150
  557. package/dist/sync/requester/shared-memory-sync.js.map +1 -1
  558. package/dist/sync/requester/swm-materialization-memo.d.ts +12 -0
  559. package/dist/sync/requester/swm-materialization-memo.d.ts.map +1 -0
  560. package/dist/sync/requester/swm-materialization-memo.js +54 -0
  561. package/dist/sync/requester/swm-materialization-memo.js.map +1 -0
  562. package/dist/sync/requester/swm-recovery.d.ts +3 -29
  563. package/dist/sync/requester/swm-recovery.d.ts.map +1 -1
  564. package/dist/sync/requester/swm-recovery.js +11 -10
  565. package/dist/sync/requester/swm-recovery.js.map +1 -1
  566. package/dist/sync/requester/swm-snapshot-materializer.d.ts.map +1 -1
  567. package/dist/sync/requester/swm-snapshot-materializer.js +18 -0
  568. package/dist/sync/requester/swm-snapshot-materializer.js.map +1 -1
  569. package/dist/sync/requester/swm-target-executor.d.ts +6 -0
  570. package/dist/sync/requester/swm-target-executor.d.ts.map +1 -1
  571. package/dist/sync/requester/swm-target-executor.js +24 -3
  572. package/dist/sync/requester/swm-target-executor.js.map +1 -1
  573. package/dist/sync/requester/verified-asset-preparation.d.ts +9 -0
  574. package/dist/sync/requester/verified-asset-preparation.d.ts.map +1 -0
  575. package/dist/sync/requester/verified-asset-preparation.js +190 -0
  576. package/dist/sync/requester/verified-asset-preparation.js.map +1 -0
  577. package/dist/sync/responder/asset-metadata.d.ts +18 -0
  578. package/dist/sync/responder/asset-metadata.d.ts.map +1 -0
  579. package/dist/sync/responder/asset-metadata.js +27 -0
  580. package/dist/sync/responder/asset-metadata.js.map +1 -0
  581. package/dist/sync/responder/durable-data-request-policy.d.ts +2 -16
  582. package/dist/sync/responder/durable-data-request-policy.d.ts.map +1 -1
  583. package/dist/sync/responder/durable-data-request-policy.js +1 -31
  584. package/dist/sync/responder/durable-data-request-policy.js.map +1 -1
  585. package/dist/sync/responder/exact-asset-export-cache.d.ts +89 -0
  586. package/dist/sync/responder/exact-asset-export-cache.d.ts.map +1 -0
  587. package/dist/sync/responder/exact-asset-export-cache.js +550 -0
  588. package/dist/sync/responder/exact-asset-export-cache.js.map +1 -0
  589. package/dist/sync/responder/exact-batch-stream.d.ts +47 -0
  590. package/dist/sync/responder/exact-batch-stream.d.ts.map +1 -0
  591. package/dist/sync/responder/exact-batch-stream.js +151 -0
  592. package/dist/sync/responder/exact-batch-stream.js.map +1 -0
  593. package/dist/sync/responder/exact-data-session.d.ts +67 -0
  594. package/dist/sync/responder/exact-data-session.d.ts.map +1 -0
  595. package/dist/sync/responder/exact-data-session.js +130 -0
  596. package/dist/sync/responder/exact-data-session.js.map +1 -0
  597. package/dist/sync/responder/exact-graph-cursor-filter.d.ts +9 -0
  598. package/dist/sync/responder/exact-graph-cursor-filter.d.ts.map +1 -0
  599. package/dist/sync/responder/exact-graph-cursor-filter.js +101 -0
  600. package/dist/sync/responder/exact-graph-cursor-filter.js.map +1 -0
  601. package/dist/sync/responder/exact-graph-reader.d.ts +95 -0
  602. package/dist/sync/responder/exact-graph-reader.d.ts.map +1 -0
  603. package/dist/sync/responder/exact-graph-reader.js +623 -0
  604. package/dist/sync/responder/exact-graph-reader.js.map +1 -0
  605. package/dist/sync/responder/exact-page-reader.d.ts +37 -0
  606. package/dist/sync/responder/exact-page-reader.d.ts.map +1 -0
  607. package/dist/sync/responder/exact-page-reader.js +130 -0
  608. package/dist/sync/responder/exact-page-reader.js.map +1 -0
  609. package/dist/sync/responder/graph-plan.d.ts +19 -85
  610. package/dist/sync/responder/graph-plan.d.ts.map +1 -1
  611. package/dist/sync/responder/graph-plan.js +51 -988
  612. package/dist/sync/responder/graph-plan.js.map +1 -1
  613. package/dist/sync/responder/page-framing-policy.d.ts +31 -0
  614. package/dist/sync/responder/page-framing-policy.d.ts.map +1 -0
  615. package/dist/sync/responder/page-framing-policy.js +41 -0
  616. package/dist/sync/responder/page-framing-policy.js.map +1 -0
  617. package/dist/sync/responder/responder-row-page.d.ts +85 -0
  618. package/dist/sync/responder/responder-row-page.d.ts.map +1 -0
  619. package/dist/sync/responder/responder-row-page.js +181 -0
  620. package/dist/sync/responder/responder-row-page.js.map +1 -0
  621. package/dist/sync/responder/row-serialization.d.ts +34 -0
  622. package/dist/sync/responder/row-serialization.d.ts.map +1 -0
  623. package/dist/sync/responder/row-serialization.js +69 -0
  624. package/dist/sync/responder/row-serialization.js.map +1 -0
  625. package/dist/sync/responder/session-plan-memo.d.ts +20 -0
  626. package/dist/sync/responder/session-plan-memo.d.ts.map +1 -0
  627. package/dist/sync/responder/session-plan-memo.js +135 -0
  628. package/dist/sync/responder/session-plan-memo.js.map +1 -0
  629. package/dist/sync/responder/sync-handler.d.ts +26 -1
  630. package/dist/sync/responder/sync-handler.d.ts.map +1 -1
  631. package/dist/sync/responder/sync-handler.js +107 -58
  632. package/dist/sync/responder/sync-handler.js.map +1 -1
  633. package/dist/sync/shared-memory-completion.d.ts +30 -0
  634. package/dist/sync/shared-memory-completion.d.ts.map +1 -1
  635. package/dist/sync/shared-memory-completion.js +13 -0
  636. package/dist/sync/shared-memory-completion.js.map +1 -1
  637. package/dist/sync/system-context-graph-policy.d.ts +10 -0
  638. package/dist/sync/system-context-graph-policy.d.ts.map +1 -1
  639. package/dist/sync/system-context-graph-policy.js +11 -0
  640. package/dist/sync/system-context-graph-policy.js.map +1 -1
  641. package/dist/sync/wire-compression.d.ts +47 -0
  642. package/dist/sync/wire-compression.d.ts.map +1 -0
  643. package/dist/sync/wire-compression.js +111 -0
  644. package/dist/sync/wire-compression.js.map +1 -0
  645. package/dist/unscoped-query-consistency.d.ts +12 -0
  646. package/dist/unscoped-query-consistency.d.ts.map +1 -1
  647. package/dist/unscoped-query-consistency.js +17 -1
  648. package/dist/unscoped-query-consistency.js.map +1 -1
  649. package/dist/vm-promotion-audit.d.ts +2 -2
  650. package/dist/vm-promotion-audit.d.ts.map +1 -1
  651. package/dist/vm-promotion-audit.js +26 -9
  652. package/dist/vm-promotion-audit.js.map +1 -1
  653. package/dist/vm-publish-snapshot-preflight.d.ts +13 -0
  654. package/dist/vm-publish-snapshot-preflight.d.ts.map +1 -0
  655. package/dist/vm-publish-snapshot-preflight.js +94 -0
  656. package/dist/vm-publish-snapshot-preflight.js.map +1 -0
  657. package/dist/vm-reconcile-dispatcher.d.ts +42 -1
  658. package/dist/vm-reconcile-dispatcher.d.ts.map +1 -1
  659. package/dist/vm-reconcile-dispatcher.js +103 -4
  660. package/dist/vm-reconcile-dispatcher.js.map +1 -1
  661. package/dist/vm-reconcile-peer-topology.d.ts +7 -9
  662. package/dist/vm-reconcile-peer-topology.d.ts.map +1 -1
  663. package/dist/vm-reconcile-peer-topology.js +1 -37
  664. package/dist/vm-reconcile-peer-topology.js.map +1 -1
  665. package/dist/vm-recovery-candidate-order.d.ts +16 -0
  666. package/dist/vm-recovery-candidate-order.d.ts.map +1 -0
  667. package/dist/vm-recovery-candidate-order.js +24 -0
  668. package/dist/vm-recovery-candidate-order.js.map +1 -0
  669. package/dist/vm-recovery-core-transport-preference.d.ts +69 -0
  670. package/dist/vm-recovery-core-transport-preference.d.ts.map +1 -0
  671. package/dist/vm-recovery-core-transport-preference.js +131 -0
  672. package/dist/vm-recovery-core-transport-preference.js.map +1 -0
  673. package/dist/vm-recovery-experiment-policy.d.ts +24 -0
  674. package/dist/vm-recovery-experiment-policy.d.ts.map +1 -0
  675. package/dist/vm-recovery-experiment-policy.js +18 -0
  676. package/dist/vm-recovery-experiment-policy.js.map +1 -0
  677. package/dist/vm-recovery-footprint.d.ts +54 -0
  678. package/dist/vm-recovery-footprint.d.ts.map +1 -1
  679. package/dist/vm-recovery-footprint.js +88 -24
  680. package/dist/vm-recovery-footprint.js.map +1 -1
  681. package/dist/vm-recovery-microbatch.d.ts +2 -0
  682. package/dist/vm-recovery-microbatch.d.ts.map +1 -1
  683. package/dist/vm-recovery-microbatch.js +7 -3
  684. package/dist/vm-recovery-microbatch.js.map +1 -1
  685. package/dist/vm-recovery-pass-authority.d.ts +84 -0
  686. package/dist/vm-recovery-pass-authority.d.ts.map +1 -0
  687. package/dist/vm-recovery-pass-authority.js +126 -0
  688. package/dist/vm-recovery-pass-authority.js.map +1 -0
  689. package/dist/vm-recovery-phase-timing.d.ts +75 -0
  690. package/dist/vm-recovery-phase-timing.d.ts.map +1 -0
  691. package/dist/vm-recovery-phase-timing.js +236 -0
  692. package/dist/vm-recovery-phase-timing.js.map +1 -0
  693. package/dist/vm-recovery-preparation.d.ts +143 -0
  694. package/dist/vm-recovery-preparation.d.ts.map +1 -0
  695. package/dist/vm-recovery-preparation.js +433 -0
  696. package/dist/vm-recovery-preparation.js.map +1 -0
  697. package/dist/vm-recovery-provider-policy.d.ts +13 -1
  698. package/dist/vm-recovery-provider-policy.d.ts.map +1 -1
  699. package/dist/vm-recovery-provider-policy.js +37 -5
  700. package/dist/vm-recovery-provider-policy.js.map +1 -1
  701. package/dist/vm-recovery-stream-profile.d.ts +15 -0
  702. package/dist/vm-recovery-stream-profile.d.ts.map +1 -0
  703. package/dist/vm-recovery-stream-profile.js +53 -0
  704. package/dist/vm-recovery-stream-profile.js.map +1 -0
  705. package/dist/vm-recovery-stream-setback-policy.d.ts +54 -0
  706. package/dist/vm-recovery-stream-setback-policy.d.ts.map +1 -0
  707. package/dist/vm-recovery-stream-setback-policy.js +85 -0
  708. package/dist/vm-recovery-stream-setback-policy.js.map +1 -0
  709. package/dist/vm-recovery-timing-observer.d.ts +27 -0
  710. package/dist/vm-recovery-timing-observer.d.ts.map +1 -0
  711. package/dist/vm-recovery-timing-observer.js +49 -0
  712. package/dist/vm-recovery-timing-observer.js.map +1 -0
  713. package/dist/vm-recovery-transport-budget-policy.d.ts +32 -0
  714. package/dist/vm-recovery-transport-budget-policy.d.ts.map +1 -0
  715. package/dist/vm-recovery-transport-budget-policy.js +55 -0
  716. package/dist/vm-recovery-transport-budget-policy.js.map +1 -0
  717. package/dist/vm-recovery-transport-plan.d.ts +83 -0
  718. package/dist/vm-recovery-transport-plan.d.ts.map +1 -0
  719. package/dist/vm-recovery-transport-plan.js +117 -0
  720. package/dist/vm-recovery-transport-plan.js.map +1 -0
  721. package/dist/vm-refresh.d.ts +138 -0
  722. package/dist/vm-refresh.d.ts.map +1 -0
  723. package/dist/vm-refresh.js +201 -0
  724. package/dist/vm-refresh.js.map +1 -0
  725. package/package.json +19 -9
  726. package/dist/finalization-annotations.d.ts +0 -5
  727. package/dist/finalization-annotations.d.ts.map +0 -1
  728. package/dist/finalization-annotations.js +0 -6
  729. package/dist/finalization-annotations.js.map +0 -1
  730. package/dist/swm-ka-bound.d.ts +0 -21
  731. package/dist/swm-ka-bound.d.ts.map +0 -1
  732. package/dist/swm-ka-bound.js +0 -36
  733. package/dist/swm-ka-bound.js.map +0 -1
@@ -0,0 +1,181 @@
1
+ import { SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_BYTES_ESTIMATE, SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_ROWS, SYNC_RESPONDER_SNAPSHOT_BUILD_PAGE_ROWS, isSyncRowSnapshotPagingRequiredError, } from './snapshot-cache.js';
2
+ import { SyncRowSnapshotBudgetError } from './snapshot-budget.js';
3
+ import { estimateStringRowHeapBytes } from '../memory-telemetry.js';
4
+ import { metaSubjectKey } from './row-serialization.js';
5
+ const COMPLETED_SYNC_RESPONDER_SESSION_GRACE_MS = 30_000;
6
+ /**
7
+ * Session-plan getter shared by the plan-backed lanes (exact-graph and TTL SWM
8
+ * meta), owning the one lifecycle both must agree on:
9
+ *
10
+ * - the explicit session refresh is consumed exactly ONCE, so when a snapshot
11
+ * build crosses its budget, the immediate page-zero fallback reuses the
12
+ * just-built plan instead of rebuilding (and re-counting) it against a
13
+ * moving store;
14
+ * - offset>0 REQUIRES the existing plan — silently rebuilding against moved
15
+ * data would make the numeric offset skip or duplicate rows;
16
+ * - memo expiry becomes the lane's session-expired error.
17
+ *
18
+ * The SWM data lane intentionally does not use this helper: it has no snapshot
19
+ * lane, so a single plan access per page means per-call refresh semantics are
20
+ * equivalent and simpler there.
21
+ */
22
+ /**
23
+ * Sessionless callers (no `syncSessionId` => no memo cache key) rebuild the
24
+ * plan on EVERY page: per-page discovery + chunked GROUP BY cost (bounded, and
25
+ * still far cheaper than the deleted global-sort query), no `requireExisting`
26
+ * protection, and a fresh digest sidecar per plan object. Offset>0 pages
27
+ * against a mutating store can therefore skip or duplicate rows for such
28
+ * requesters — sessionless TTL paging is BEST-EFFORT, and the per-subject
29
+ * digest guard does NOT cover it. This matches the exposure of the old OFFSET
30
+ * lane (not a regression); requester-side verification still gates admission.
31
+ */
32
+ export function createSessionPlanGetter(memo, cacheKey, initialRefreshPending, loadPlan, expiredMessage) {
33
+ let planRefreshPending = initialRefreshPending;
34
+ return async (pageOffset, pageSignal) => {
35
+ const refreshPlan = pageOffset === 0 && planRefreshPending;
36
+ if (refreshPlan)
37
+ planRefreshPending = false;
38
+ const plan = memo && cacheKey
39
+ ? await memo.get(cacheKey, () => loadPlan(pageSignal), {
40
+ refresh: refreshPlan,
41
+ requireExisting: pageOffset > 0,
42
+ signal: pageSignal,
43
+ })
44
+ : await loadPlan(pageSignal);
45
+ if (!plan)
46
+ throw new Error(expiredMessage);
47
+ return plan;
48
+ };
49
+ }
50
+ async function loadStorePagedSnapshot(cache, loadPage) {
51
+ const limits = cache.memo.snapshotLoadLimits ?? {
52
+ maxRows: SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_ROWS,
53
+ maxBytesEstimate: SYNC_RESPONDER_SNAPSHOT_BUILD_MAX_BYTES_ESTIMATE,
54
+ pageRows: SYNC_RESPONDER_SNAPSHOT_BUILD_PAGE_ROWS,
55
+ };
56
+ const rows = [];
57
+ let bytesEstimate = 0;
58
+ let offset = 0;
59
+ // Read at most one row beyond the configured row cap. Tiny-budget tests and
60
+ // operators therefore never receive a 500-row temporary page merely to learn
61
+ // that a one-row snapshot is oversized.
62
+ const pageRows = Math.max(1, Math.min(Math.floor(limits.pageRows), Math.floor(limits.maxRows) + 1));
63
+ while (true) {
64
+ // The shared snapshot load is owner-independent: an individual request
65
+ // abort must not cancel a load used by coalesced waiters.
66
+ const page = await loadPage(offset, pageRows, undefined);
67
+ for (const row of page) {
68
+ const nextRows = rows.length + 1;
69
+ const nextBytes = bytesEstimate + estimateStringRowHeapBytes(row.s, row.p, row.o, row.g);
70
+ if (nextRows > limits.maxRows) {
71
+ throw new SyncRowSnapshotBudgetError({
72
+ key: cache.key,
73
+ reason: 'snapshot_rows',
74
+ rows: nextRows,
75
+ bytesEstimate: nextBytes,
76
+ limit: limits.maxRows,
77
+ });
78
+ }
79
+ if (nextBytes > limits.maxBytesEstimate) {
80
+ throw new SyncRowSnapshotBudgetError({
81
+ key: cache.key,
82
+ reason: 'snapshot_bytes',
83
+ rows: nextRows,
84
+ bytesEstimate: nextBytes,
85
+ limit: limits.maxBytesEstimate,
86
+ });
87
+ }
88
+ rows.push(row);
89
+ bytesEstimate = nextBytes;
90
+ }
91
+ if (page.length < pageRows)
92
+ return rows;
93
+ offset += page.length;
94
+ }
95
+ }
96
+ export async function readResponderRowsPage(cache, loadStoreBoundedPage, offset, limit, signal, options) {
97
+ const loadSnapshot = options?.loadSnapshot;
98
+ const subjectAtomic = options?.subjectAtomic ?? false;
99
+ const safeOffset = Math.max(0, Math.floor(offset));
100
+ const safeLimit = Math.max(0, Math.floor(limit));
101
+ if (safeLimit === 0)
102
+ return [];
103
+ // No session snapshot: the store-paged loader itself enforces subject
104
+ // atomicity where required (durable meta passes a subject-atomic loader), so
105
+ // this path needs no extra handling.
106
+ if (!cache)
107
+ return loadStoreBoundedPage(safeOffset, safeLimit, signal);
108
+ try {
109
+ return await readCachedRowsPage(cache, loadSnapshot ?? (() => loadStorePagedSnapshot(cache, loadStoreBoundedPage)), safeOffset, safeLimit, signal, subjectAtomic);
110
+ }
111
+ catch (error) {
112
+ if (!isSyncRowSnapshotPagingRequiredError(error))
113
+ throw error;
114
+ return loadStoreBoundedPage(safeOffset, safeLimit, signal);
115
+ }
116
+ }
117
+ async function readCachedRowsPage(cache, loadRows, offset, limit, signal, subjectAtomic = false) {
118
+ const safeOffset = Math.max(0, Math.floor(offset));
119
+ const safeLimit = Math.max(0, Math.floor(limit));
120
+ if (safeLimit === 0)
121
+ return [];
122
+ const rows = await cache.memo.get(cache.key, loadRows, {
123
+ refresh: cache.refresh,
124
+ refreshGeneration: cache.refreshGeneration,
125
+ // No prefix has been consumed at offset zero, so an entry evicted under
126
+ // responder memory pressure can be rebuilt without mixing snapshots.
127
+ refreshExpired: safeOffset === 0,
128
+ requireExisting: safeOffset > 0,
129
+ signal,
130
+ });
131
+ if (rows == null) {
132
+ throw new Error(cache.expiredMessage ?? 'Sync session snapshot expired before page completion');
133
+ }
134
+ // `rows` is an immutable snapshot. Slice it directly so serving a 500-row
135
+ // page allocates only that page's backing array, never a shallow copy of the
136
+ // complete snapshot first.
137
+ let pageEnd = Math.min(safeOffset + safeLimit, rows.length);
138
+ // Subject-atomic durable-meta lane (#1788): if the requested window ends
139
+ // mid-subject, EXTEND it forward until the subject changes (or the snapshot
140
+ // ends) so a graph-scoped seal is never split across a page — and therefore
141
+ // never across a sync round. Extending (never trimming) keeps a non-final
142
+ // page `>= safeLimit`, so it never trips the requester's empty-page EOF nor
143
+ // the release-on-short-page path below. Reads only in-page indices plus a
144
+ // bounded one-subject lookahead — never the whole snapshot. `_meta` subjects
145
+ // are small (a seal is 14 quads; KA descriptors ~10; membership/activity rows
146
+ // bounded), so the extension is O(one subject) and negligible against the
147
+ // #1868 64k-row meta snapshot ceiling; a pathologically large subject is
148
+ // still emitted whole rather than truncated, with the transport frame limit
149
+ // as the final guard.
150
+ if (subjectAtomic && pageEnd > safeOffset && pageEnd < rows.length) {
151
+ const trailingKey = metaSubjectKey(rows[pageEnd - 1]);
152
+ while (pageEnd < rows.length && metaSubjectKey(rows[pageEnd]) === trailingKey) {
153
+ pageEnd += 1;
154
+ }
155
+ }
156
+ const page = rows.slice(safeOffset, pageEnd);
157
+ if (page.length === 0 || (cache.releaseOnShortPage !== false && page.length < safeLimit)) {
158
+ cache.memo.release(cache.key, { graceMs: COMPLETED_SYNC_RESPONDER_SESSION_GRACE_MS });
159
+ }
160
+ return page;
161
+ }
162
+ function asAbortError(reason) {
163
+ return reason instanceof Error ? reason : new Error(String(reason ?? 'aborted'));
164
+ }
165
+ export function throwIfAborted(signal) {
166
+ if (signal?.aborted)
167
+ throw asAbortError(signal.reason);
168
+ }
169
+ export function raceAgainstAbort(work, signal) {
170
+ if (!signal)
171
+ return work;
172
+ throwIfAborted(signal);
173
+ return new Promise((resolve, reject) => {
174
+ const onAbort = () => reject(asAbortError(signal.reason));
175
+ signal.addEventListener('abort', onAbort, { once: true });
176
+ work.then(resolve, reject).finally(() => {
177
+ signal.removeEventListener('abort', onAbort);
178
+ });
179
+ });
180
+ }
181
+ //# sourceMappingURL=responder-row-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder-row-page.js","sourceRoot":"","sources":["../../../src/sync/responder/responder-row-page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { SyncRow } from './snapshot-cache.js';
2
+ export declare function serializeResponderRow(row: SyncRow): string;
3
+ export declare function serializeResponderRows(rows: readonly SyncRow[]): string;
4
+ /**
5
+ * Serialized (N-Quads, UTF-8) wire byte length of one responder row — the ONE
6
+ * byte model for response-frame budgets, shared by the byte-budget serializer
7
+ * and the subject-atomic extend so both reason about `maxResponseBytes` the same
8
+ * way (#1916). This is distinct from `estimateStringRowHeapBytes`, which
9
+ * estimates retained HEAP size for snapshot memory budgets only.
10
+ */
11
+ export declare function serializedResponderRowByteLength(row: SyncRow): number;
12
+ export declare function formatTerm(term: string): string;
13
+ export declare function compareRows(a: SyncRow, b: SyncRow): number;
14
+ /**
15
+ * The `(g, s)` identity a durable `_meta` row belongs to. Durable meta is
16
+ * ordered by `(g, s, p, o)`; a graph-scoped assertion seal is ONE `(g, s)`
17
+ * subject whose rows — including the batch-local control field
18
+ * `dkg:assertionVersion` — MUST cross the wire together in a single round, else
19
+ * the receiver's per-round completeness check drops the control fields
20
+ * permanently (#1788). Used to snap durable-meta page boundaries to subject
21
+ * boundaries. The `\n` separator cannot occur inside an IRI, so distinct
22
+ * subjects never collide.
23
+ */
24
+ export declare function metaSubjectKey(row: SyncRow): string;
25
+ /**
26
+ * Serialize the largest prefix that fits the negotiated response target.
27
+ * Pagination advances by the number of N-Quads actually parsed by the
28
+ * requester, so returning a prefix is cursor-safe. Always emit one row when a
29
+ * non-empty input contains an unexpectedly oversized row; that guarantees
30
+ * forward progress and leaves the transport's existing hard frame limit as the
31
+ * final safety boundary for that pathological single row.
32
+ */
33
+ export declare function serializeResponderRowsWithinByteBudget(rows: readonly SyncRow[], maxBytes: number): string;
34
+ //# sourceMappingURL=row-serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-serialization.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/row-serialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAEvE;AAID;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAO1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR"}
@@ -0,0 +1,69 @@
1
+ import { assertSafeIri, compareCodePoint } from '@origintrail-official/dkg-core';
2
+ export function serializeResponderRow(row) {
3
+ return `${formatTerm(row.s)} <${assertSafeIri(row.p)}> ${formatTerm(row.o)} <${assertSafeIri(row.g)}> .`;
4
+ }
5
+ export function serializeResponderRows(rows) {
6
+ return rows.map(serializeResponderRow).join('\n');
7
+ }
8
+ const RESPONDER_ROW_ENCODER = new TextEncoder();
9
+ /**
10
+ * Serialized (N-Quads, UTF-8) wire byte length of one responder row — the ONE
11
+ * byte model for response-frame budgets, shared by the byte-budget serializer
12
+ * and the subject-atomic extend so both reason about `maxResponseBytes` the same
13
+ * way (#1916). This is distinct from `estimateStringRowHeapBytes`, which
14
+ * estimates retained HEAP size for snapshot memory budgets only.
15
+ */
16
+ export function serializedResponderRowByteLength(row) {
17
+ return RESPONDER_ROW_ENCODER.encode(serializeResponderRow(row)).byteLength;
18
+ }
19
+ export function formatTerm(term) {
20
+ if (term.startsWith('"') || term.startsWith('_:'))
21
+ return term;
22
+ if (term.startsWith('<') && term.endsWith('>'))
23
+ return term;
24
+ return `<${assertSafeIri(term)}>`;
25
+ }
26
+ export function compareRows(a, b) {
27
+ return (compareCodePoint(a.g, b.g) ||
28
+ compareCodePoint(a.s, b.s) ||
29
+ compareCodePoint(a.p, b.p) ||
30
+ compareCodePoint(a.o, b.o));
31
+ }
32
+ /**
33
+ * The `(g, s)` identity a durable `_meta` row belongs to. Durable meta is
34
+ * ordered by `(g, s, p, o)`; a graph-scoped assertion seal is ONE `(g, s)`
35
+ * subject whose rows — including the batch-local control field
36
+ * `dkg:assertionVersion` — MUST cross the wire together in a single round, else
37
+ * the receiver's per-round completeness check drops the control fields
38
+ * permanently (#1788). Used to snap durable-meta page boundaries to subject
39
+ * boundaries. The `\n` separator cannot occur inside an IRI, so distinct
40
+ * subjects never collide.
41
+ */
42
+ export function metaSubjectKey(row) {
43
+ return `${row.g}\n${row.s}`;
44
+ }
45
+ /**
46
+ * Serialize the largest prefix that fits the negotiated response target.
47
+ * Pagination advances by the number of N-Quads actually parsed by the
48
+ * requester, so returning a prefix is cursor-safe. Always emit one row when a
49
+ * non-empty input contains an unexpectedly oversized row; that guarantees
50
+ * forward progress and leaves the transport's existing hard frame limit as the
51
+ * final safety boundary for that pathological single row.
52
+ */
53
+ export function serializeResponderRowsWithinByteBudget(rows, maxBytes) {
54
+ const safeMaxBytes = Math.max(1, Math.floor(maxBytes));
55
+ const page = [];
56
+ let bytes = 0;
57
+ for (const row of rows) {
58
+ const serialized = serializeResponderRow(row);
59
+ const rowBytes = serializedResponderRowByteLength(row) + (page.length > 0 ? 1 : 0);
60
+ if (page.length > 0 && bytes + rowBytes > safeMaxBytes)
61
+ break;
62
+ page.push(serialized);
63
+ bytes += rowBytes;
64
+ if (bytes >= safeMaxBytes)
65
+ break;
66
+ }
67
+ return page.join('\n');
68
+ }
69
+ //# sourceMappingURL=row-serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-serialization.js","sourceRoot":"","sources":["../../../src/sync/responder/row-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGjF,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAwB;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,WAAW,EAAE,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAY;IAC3D,OAAO,qBAAqB,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,CAAU;IAChD,OAAO,CACL,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sCAAsC,CACpD,IAAwB,EACxB,QAAgB;IAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,GAAG,YAAY;YAAE,MAAM;QAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,KAAK,IAAI,QAAQ,CAAC;QAClB,IAAI,KAAK,IAAI,YAAY;YAAE,MAAM;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { SyncResponderSnapshotBudget } from './snapshot-budget.js';
2
+ import { type ExactGraphPagePlan } from './exact-graph-reader.js';
3
+ export interface SessionPlanMemo<T> {
4
+ get(key: string, load: () => Promise<T>, options?: {
5
+ refresh?: boolean;
6
+ requireExisting?: boolean;
7
+ signal?: AbortSignal;
8
+ }): Promise<T | null>;
9
+ }
10
+ interface SessionPlanBudgetAccounting<T> {
11
+ budget: SyncResponderSnapshotBudget;
12
+ phase: 'shared_memory' | 'durable_meta' | 'durable_data';
13
+ bytesEstimate: (value: T) => number;
14
+ /** Keep responder admission until an aborted store load physically settles. */
15
+ drainOnAbort?: boolean;
16
+ }
17
+ export declare function createSessionPlanMemo<T>(ttlMs: number, maxEntries: number, accounting?: SessionPlanBudgetAccounting<T>): SessionPlanMemo<T>;
18
+ export declare function createPageOnlySessionPlanMemo<T>(ttlMs: number, maxEntries: number, budget: SyncResponderSnapshotBudget, graphPlan: (value: T) => ExactGraphPagePlan): SessionPlanMemo<T>;
19
+ export {};
20
+ //# sourceMappingURL=session-plan-memo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-plan-memo.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/session-plan-memo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,GAAG,CACD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC/E,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CACtB;AAED,UAAU,2BAA2B,CAAC,CAAC;IACrC,MAAM,EAAE,2BAA2B,CAAC;IACpC,KAAK,EAAE,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;IACzD,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IACpC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAC1C,eAAe,CAAC,CAAC,CAAC,CAyFpB;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAC7C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,2BAA2B,EACnC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,kBAAkB,GAC1C,eAAe,CAAC,CAAC,CAAC,CAyBpB"}
@@ -0,0 +1,135 @@
1
+ import { bytesToHex } from '@noble/hashes/utils.js';
2
+ import { sha256 } from '@noble/hashes/sha2.js';
3
+ import { raceAgainstAbort, throwIfAborted } from './responder-row-page.js';
4
+ import { exactGraphPlanScalarBytes, snapshotBudgetError, EXACT_GRAPH_CURSOR_CACHE_MAX_BYTES_ESTIMATE, EXACT_GRAPH_PLAN_MAX_BYTES_ESTIMATE, } from './exact-graph-reader.js';
5
+ export function createSessionPlanMemo(ttlMs, maxEntries, accounting) {
6
+ const cached = new Map();
7
+ const inflight = new Map();
8
+ const deleteEntry = (key, reason) => {
9
+ const entry = cached.get(key);
10
+ if (!entry)
11
+ return;
12
+ cached.delete(key);
13
+ if (entry.budgetEntryId)
14
+ accounting?.budget.remove(entry.budgetEntryId, reason);
15
+ };
16
+ const prune = (now = Date.now()) => {
17
+ for (const [key, entry] of cached) {
18
+ if (now - entry.cachedAt >= ttlMs)
19
+ deleteEntry(key, 'expired');
20
+ }
21
+ };
22
+ return {
23
+ async get(key, load, options) {
24
+ throwIfAborted(options?.signal);
25
+ const now = Date.now();
26
+ prune(now);
27
+ const pending = inflight.get(key);
28
+ if (pending) {
29
+ if (!accounting?.drainOnAbort)
30
+ return raceAgainstAbort(pending, options?.signal);
31
+ if (!options?.refresh) {
32
+ const value = await pending;
33
+ throwIfAborted(options?.signal);
34
+ return value;
35
+ }
36
+ // An explicit replacement waits for the prior physical load, then
37
+ // builds its own plan rather than inheriting the older generation.
38
+ try {
39
+ await pending;
40
+ }
41
+ catch {
42
+ throwIfAborted(options?.signal);
43
+ }
44
+ throwIfAborted(options?.signal);
45
+ }
46
+ const existing = cached.get(key);
47
+ if (!options?.refresh && existing) {
48
+ cached.delete(key);
49
+ cached.set(key, { ...existing, cachedAt: now });
50
+ if (existing.budgetEntryId) {
51
+ // Refresh the global-budget LRU position, then stay evictable: an
52
+ // entry pinned forever would let idle plans exempt themselves from
53
+ // memory-pressure eviction.
54
+ accounting?.budget.touch(existing.budgetEntryId);
55
+ accounting?.budget.release(existing.budgetEntryId);
56
+ }
57
+ return existing.value;
58
+ }
59
+ if (options?.requireExisting)
60
+ return null;
61
+ if (!existing && cached.size >= maxEntries) {
62
+ deleteEntry(cached.keys().next().value, 'released');
63
+ }
64
+ const pendingLoad = load()
65
+ .then((value) => {
66
+ if (accounting?.drainOnAbort)
67
+ throwIfAborted(options?.signal);
68
+ const replaced = cached.get(key);
69
+ let budgetEntryId;
70
+ if (accounting) {
71
+ budgetEntryId = Symbol(key);
72
+ // Throws the typed global budget error when the process-wide
73
+ // responder budget cannot admit the plan; the failed refresh leaves
74
+ // any previously-admitted plan in place (memo entry untouched).
75
+ accounting.budget.admit({
76
+ id: budgetEntryId,
77
+ key,
78
+ phase: accounting.phase,
79
+ rows: 0,
80
+ bytesEstimate: accounting.bytesEstimate(value),
81
+ controlPlane: true,
82
+ replaceId: replaced?.budgetEntryId,
83
+ onEvict: () => {
84
+ if (cached.get(key)?.budgetEntryId === budgetEntryId)
85
+ cached.delete(key);
86
+ },
87
+ });
88
+ accounting.budget.release(budgetEntryId);
89
+ }
90
+ // Concurrent loads for different keys can pass the entry check
91
+ // before either settles. Keep the cap true at settlement as well.
92
+ if (!cached.has(key)) {
93
+ while (cached.size >= maxEntries)
94
+ deleteEntry(cached.keys().next().value, 'released');
95
+ }
96
+ cached.set(key, { value, cachedAt: Date.now(), budgetEntryId });
97
+ return value;
98
+ })
99
+ .finally(() => inflight.delete(key));
100
+ inflight.set(key, pendingLoad);
101
+ if (!accounting?.drainOnAbort)
102
+ return raceAgainstAbort(pendingLoad, options?.signal);
103
+ const value = await pendingLoad;
104
+ throwIfAborted(options?.signal);
105
+ return value;
106
+ },
107
+ };
108
+ }
109
+ export function createPageOnlySessionPlanMemo(ttlMs, maxEntries, budget, graphPlan) {
110
+ const memo = createSessionPlanMemo(ttlMs, maxEntries, {
111
+ budget,
112
+ phase: 'durable_data',
113
+ drainOnAbort: true,
114
+ bytesEstimate: (value) => {
115
+ const plan = graphPlan(value);
116
+ const bytes = exactGraphPlanScalarBytes(plan);
117
+ if (bytes > EXACT_GRAPH_PLAN_MAX_BYTES_ESTIMATE) {
118
+ throw snapshotBudgetError({
119
+ key: 'exact-data-plan', reason: 'snapshot_bytes', rows: plan.entries.length,
120
+ bytesEstimate: bytes, limit: EXACT_GRAPH_PLAN_MAX_BYTES_ESTIMATE,
121
+ });
122
+ }
123
+ return bytes + EXACT_GRAPH_CURSOR_CACHE_MAX_BYTES_ESTIMATE;
124
+ },
125
+ });
126
+ return {
127
+ get(key, load, options) {
128
+ // Opaque request tokens need not have a small wire spelling. Retain a
129
+ // fixed-size digest of the complete server-derived scope/generation.
130
+ const boundedKey = bytesToHex(sha256(new TextEncoder().encode(key)));
131
+ return memo.get(boundedKey, load, options);
132
+ },
133
+ };
134
+ }
135
+ //# sourceMappingURL=session-plan-memo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-plan-memo.js","sourceRoot":"","sources":["../../../src/sync/responder/session-plan-memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,2CAA2C,EAC3C,mCAAmC,GAEpC,MAAM,yBAAyB,CAAC;AAkBjC,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,UAAkB,EAClB,UAA2C;IAE3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkE,CAAC;IACzF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,MAA2C,EAAE,EAAE;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,CAAC,aAAa;YAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK;gBAAE,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO;YAC1B,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,EAAE,YAAY;oBAAE,OAAO,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjF,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;oBAC5B,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAChC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,CAAC;oBAAC,MAAM,OAAO,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;gBACjE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC3B,kEAAkE;oBAClE,mEAAmE;oBACnE,4BAA4B;oBAC5B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBACjD,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,IAAI,OAAO,EAAE,eAAe;gBAAE,OAAO,IAAI,CAAC;YAC1C,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC3C,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,EAAE,UAAU,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,EAAE;iBACvB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,UAAU,EAAE,YAAY;oBAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,aAAiC,CAAC;gBACtC,IAAI,UAAU,EAAE,CAAC;oBACf,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,6DAA6D;oBAC7D,oEAAoE;oBACpE,gEAAgE;oBAChE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;wBACtB,EAAE,EAAE,aAAa;wBACjB,GAAG;wBACH,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,IAAI,EAAE,CAAC;wBACP,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;wBAC9C,YAAY,EAAE,IAAI;wBAClB,SAAS,EAAE,QAAQ,EAAE,aAAa;wBAClC,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,aAAa;gCAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3E,CAAC;qBACF,CAAC,CAAC;oBACH,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC3C,CAAC;gBACD,+DAA+D;gBAC/D,kEAAkE;gBAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,MAAM,CAAC,IAAI,IAAI,UAAU;wBAAE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,EAAE,UAAU,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,EAAE,YAAY;gBAAE,OAAO,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;YAChC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAa,EACb,UAAkB,EAClB,MAAmC,EACnC,SAA2C;IAE3C,MAAM,IAAI,GAAG,qBAAqB,CAAI,KAAK,EAAE,UAAU,EAAE;QACvD,MAAM;QACN,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAG,mCAAmC,EAAE,CAAC;gBAChD,MAAM,mBAAmB,CAAC;oBACxB,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC3E,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC;iBACjE,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,GAAG,2CAA2C,CAAC;QAC7D,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO;YACpB,sEAAsE;YACtE,qEAAqE;YACrE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,9 +1,22 @@
1
1
  import { type OperationContext } from '@origintrail-official/dkg-core';
2
- import type { TripleStore } from '@origintrail-official/dkg-storage';
2
+ import { type TripleStore } from '@origintrail-official/dkg-storage';
3
3
  import { type WorkspacePublicSnapshotStore } from '@origintrail-official/dkg-publisher';
4
4
  import type { SyncRequestEnvelope } from '../auth/request-build.js';
5
5
  import { type SyncResponderSnapshotBudgetOptions } from './snapshot-budget.js';
6
6
  import { type SyncContextGraphPriorityConfig, type SyncResponderSnapshotLimitsConfig } from '../policy.js';
7
+ import { type ExactAssetExportCache } from './exact-asset-export-cache.js';
8
+ export interface ExperimentalExactBatchResponderResources {
9
+ readonly exportCache: ExactAssetExportCache;
10
+ readonly snapshotBudget: import('./snapshot-budget.js').SyncResponderSnapshotBudget;
11
+ /**
12
+ * Both admissions share the limiter of every other sync response. When it
13
+ * does not admit the stage (queue wait exceeded, queue full, displaced) they
14
+ * reject with Core's `ExactBatchResponderRefusal('BUSY')`, which Core answers
15
+ * with a refusal frame.
16
+ */
17
+ withPreAuthorizationAdmission<T>(peerId: string, signal: AbortSignal, work: () => Promise<T>): Promise<T>;
18
+ withAuthorizedResponseAdmission<T>(peerId: string, contextGraphId: string, signal: AbortSignal, work: () => Promise<T>): Promise<T>;
19
+ }
7
20
  interface RegisterSyncHandlerParams {
8
21
  /**
9
22
  * `register` callable. In production this is bound to the RAW
@@ -28,6 +41,8 @@ interface RegisterSyncHandlerParams {
28
41
  authorizeSyncRequest: (request: SyncRequestEnvelope, remotePeerId: string, options?: {
29
42
  signal?: AbortSignal;
30
43
  }) => Promise<boolean>;
44
+ /** Default absent. Experimental registrations reuse these exact owned resources. */
45
+ onExperimentalExactBatchResources?: (resources: ExperimentalExactBatchResponderResources) => void;
31
46
  /**
32
47
  * Injected policy predicate (#1233): return `true` to WITHHOLD the durable
33
48
  * `_meta` snapshot for `contextGraphId` — the responder then replies with an
@@ -39,7 +54,17 @@ interface RegisterSyncHandlerParams {
39
54
  * caller reads `process.env` fresh per call, keeping the switch runtime-hot.
40
55
  */
41
56
  shouldWithholdDurableMeta?: (contextGraphId: string) => boolean;
57
+ /**
58
+ * Return `true` while `contextGraphId` must not be served in any phase yet
59
+ * (production: `ontology` until the startup metadata relocation finishes).
60
+ * The request is then refused like a busy responder, which requesters retry
61
+ * later, rather than answered with an empty page they would read as the
62
+ * graph's end.
63
+ */
64
+ servingWithheld?: (contextGraphId: string) => boolean;
42
65
  logWarn: (ctx: OperationContext, message: string) => void;
66
+ /** One line per exact-batch stream request refused as busy. Omitted ⇒ `logDebug`. */
67
+ logInfo?: (ctx: OperationContext, message: string) => void;
43
68
  logDebug: (ctx: OperationContext, message: string) => void;
44
69
  /** Primarily injectable for deterministic tests; production uses the bounded defaults below. */
45
70
  snapshotBudget?: SyncResponderSnapshotBudgetOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-handler.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/sync-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-handler.d.ts","sourceRoot":"","sources":["../../../src/sync/responder/sync-handler.ts"],"names":[],"mappings":"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"}