@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
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-membership-persist-scheduler.d.ts","sourceRoot":"","sources":["../src/context-graph-membership-persist-scheduler.ts"],"names":[],"mappings":"AAEA,qBAAa,2CAA4C,SAAQ,KAAK;IACpE,QAAQ,CAAC,IAAI,sCAAsC;gBAEvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,6CAA8C,SAAQ,KAAK;IACtE,QAAQ,CAAC,IAAI,wCAAwC;;CAMtD;AAED,eAAO,MAAM,4DAA4D,2CAC/B,CAAC;AAE3C,qBAAa,iDAAkD,SAAQ,KAAK;IAC1E,QAAQ,CAAC,IAAI,4CAAgE;gBAEjE,SAAS,EAAE,MAAM;CAI9B;AAgBD,MAAM,WAAW,4CAA4C;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,qBAAa,sCAAsC;IAK/C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IALpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,MAAM,CAAS;gBAGJ,QAAQ,SAAQ,EAChB,iBAAiB,SAAK;IAUzC,OAAO,CACL,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC1B,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GACjC,OAAO,CAAC,IAAI,CAAC;IAyChB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,MAAM,IAAI,IAAI;IAOd,MAAM,IAAI,4CAA4C;YAUxC,OAAO;CActB"}
1
+ {"version":3,"file":"context-graph-membership-persist-scheduler.d.ts","sourceRoot":"","sources":["../src/context-graph-membership-persist-scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,KAAK,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEvG,qBAAa,2CAA4C,SAAQ,KAAK;IACpE,QAAQ,CAAC,IAAI,sCAAsC;gBAEvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,6CAA8C,SAAQ,KAAK;IACtE,QAAQ,CAAC,IAAI,wCAAwC;;CAMtD;AAED,eAAO,MAAM,4DAA4D,2CAC/B,CAAC;AAE3C,qBAAa,iDAAkD,SAAQ,KAAK;IAC1E,QAAQ,CAAC,IAAI,4CAAgE;gBAEjE,SAAS,EAAE,MAAM;CAI9B;AAED,MAAM,MAAM,4CAA4C,GAAG,2BAA2B,CAAC;AAEvF;;;;;;GAMG;AACH,qBAAa,sCAAuC,SAAQ,qBAAqB;gBACnE,QAAQ,SAAQ,EAAE,iBAAiB,SAAK;CASrD"}
@@ -1,4 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
+ import { KeyedPersistScheduler } from './keyed-persist-scheduler.js';
2
3
  export class ContextGraphMembershipPersistQueueFullError extends Error {
3
4
  code = 'CG_MEMBERSHIP_PERSIST_QUEUE_FULL';
4
5
  constructor(message) {
@@ -22,98 +23,21 @@ export class ContextGraphMembershipPersistShutdownTimeoutError extends Error {
22
23
  }
23
24
  }
24
25
  /**
25
- * Bounded keyed serialization for membership-store mutations.
26
+ * Bounded keyed serialization for membership-store mutations: a
27
+ * {@link KeyedPersistScheduler} with membership's bounds and typed errors.
26
28
  *
27
- * Strict operations preserve FIFO order and receive explicit backpressure.
28
- * Adjacent background mutations coalesce to their latest write while the
29
- * displaced caller settles successfully: those callers are deliberately
30
- * best-effort, and only the final persisted state is meaningful.
29
+ * Background membership writes omit `strict` and coalesce to the latest write
30
+ * per key; callers that need every write, in order, pass `{ strict: true }`.
31
31
  */
32
- export class ContextGraphMembershipPersistScheduler {
33
- maxLanes;
34
- maxPendingPerLane;
35
- lanes = new Map();
36
- closed = false;
32
+ export class ContextGraphMembershipPersistScheduler extends KeyedPersistScheduler {
37
33
  constructor(maxLanes = 1_000, maxPendingPerLane = 16) {
38
- this.maxLanes = maxLanes;
39
- this.maxPendingPerLane = maxPendingPerLane;
40
- if (!Number.isSafeInteger(maxLanes) || maxLanes < 1) {
41
- throw new Error('Membership persistence maxLanes must be a positive safe integer');
42
- }
43
- if (!Number.isSafeInteger(maxPendingPerLane) || maxPendingPerLane < 1) {
44
- throw new Error('Membership persistence maxPendingPerLane must be a positive safe integer');
45
- }
46
- }
47
- enqueue(key, write, options = {}) {
48
- if (this.closed) {
49
- return Promise.reject(new ContextGraphMembershipPersistQueueClosedError());
50
- }
51
- let lane = this.lanes.get(key);
52
- if (!lane) {
53
- if (this.lanes.size >= this.maxLanes) {
54
- return Promise.reject(new ContextGraphMembershipPersistQueueFullError(`Context-graph membership persistence reached its ${this.maxLanes}-lane limit`));
55
- }
56
- let resolveDrained;
57
- const drained = new Promise((resolve) => { resolveDrained = resolve; });
58
- lane = { active: false, pending: [], drained, resolveDrained };
59
- this.lanes.set(key, lane);
60
- }
61
- const strict = options.strict === true;
62
- return new Promise((resolve, reject) => {
63
- const tail = lane.pending.at(-1);
64
- if (!strict && tail && !tail.strict) {
65
- tail.resolve();
66
- lane.pending[lane.pending.length - 1] = { strict, write, resolve, reject };
67
- }
68
- else {
69
- if (lane.pending.length >= this.maxPendingPerLane) {
70
- reject(new ContextGraphMembershipPersistQueueFullError(`Context-graph membership persistence key "${key}" reached its `
71
- + `${this.maxPendingPerLane}-write pending limit`));
72
- return;
73
- }
74
- lane.pending.push({ strict, write, resolve, reject });
75
- }
76
- if (!lane.active) {
77
- lane.active = true;
78
- void this.runLane(key, lane);
79
- }
34
+ super({
35
+ label: 'context-graph membership persistence',
36
+ maxLanes,
37
+ maxPendingPerLane,
38
+ queueFullError: (message) => new ContextGraphMembershipPersistQueueFullError(message),
39
+ queueClosedError: () => new ContextGraphMembershipPersistQueueClosedError(),
80
40
  });
81
41
  }
82
- closeAndDrain() {
83
- this.closed = true;
84
- return Promise.all([...this.lanes.values()].map((lane) => lane.drained)).then(() => undefined);
85
- }
86
- reopen() {
87
- if (this.lanes.size > 0) {
88
- throw new Error('Cannot reopen context-graph membership persistence before it drains');
89
- }
90
- this.closed = false;
91
- }
92
- status() {
93
- let active = 0;
94
- let pending = 0;
95
- for (const lane of this.lanes.values()) {
96
- if (lane.active)
97
- active += 1;
98
- pending += lane.pending.length;
99
- }
100
- return { closed: this.closed, lanes: this.lanes.size, active, pending };
101
- }
102
- async runLane(key, lane) {
103
- while (lane.pending.length > 0) {
104
- const operation = lane.pending.shift();
105
- try {
106
- await operation.write();
107
- operation.resolve();
108
- }
109
- catch (error) {
110
- operation.reject(error);
111
- }
112
- }
113
- lane.active = false;
114
- if (this.lanes.get(key) === lane)
115
- this.lanes.delete(key);
116
- lane.resolveDrained();
117
- }
118
42
  }
119
43
  //# sourceMappingURL=context-graph-membership-persist-scheduler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-membership-persist-scheduler.js","sourceRoot":"","sources":["../src/context-graph-membership-persist-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-graph-membership-persist-scheduler.js","sourceRoot":"","sources":["../src/context-graph-membership-persist-scheduler.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EAAE,qBAAqB,EAAoC,MAAM,8BAA8B,CAAC;AAEvG,MAAM,OAAO,2CAA4C,SAAQ,KAAK;IAC3D,IAAI,GAAG,kCAAkC,CAAC;IAEnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6CAA6C,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,OAAO,6CAA8C,SAAQ,KAAK;IAC7D,IAAI,GAAG,oCAAoC,CAAC;IAErD;QACE,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,+CAA+C,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,4DAA4D,GACvE,wCAAwC,CAAC;AAE3C,MAAM,OAAO,iDAAkD,SAAQ,KAAK;IACjE,IAAI,GAAG,4DAA4D,CAAC;IAE7E,YAAY,SAAiB;QAC3B,KAAK,CAAC,6DAA6D,SAAS,IAAI,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,mDAAmD,CAAC;IAClE,CAAC;CACF;AAID;;;;;;GAMG;AACH,MAAM,OAAO,sCAAuC,SAAQ,qBAAqB;IAC/E,YAAY,QAAQ,GAAG,KAAK,EAAE,iBAAiB,GAAG,EAAE;QAClD,KAAK,CAAC;YACJ,KAAK,EAAE,sCAAsC;YAC7C,QAAQ;YACR,iBAAiB;YACjB,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,2CAA2C,CAAC,OAAO,CAAC;YACrF,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,6CAA6C,EAAE;SAC5E,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,9 +1,29 @@
1
1
  import type { ChainAdapter } from '@origintrail-official/dkg-chain';
2
2
  import type { TripleStore } from '@origintrail-official/dkg-storage';
3
3
  import type { ActivePublicContextGraphChainProof } from './active-public-context-graph-chain-proof.js';
4
- export interface ConfirmContextGraphMetadataInput {
4
+ import type { ApprovedMemberAcceptance } from './internal/context-graph-authority/approved-member-acceptance.js';
5
+ /**
6
+ * What a confirmation is for.
7
+ *
8
+ * - `read` (the default): the local metadata is authoritative for reads. A
9
+ * public definition confirms on its own, because public reads never depend
10
+ * on membership; `rejectUnregisteredPlaceholder` additionally demands a
11
+ * chain proof before a public definition next to a local placeholder counts.
12
+ * - `approved-member`: join bootstrap completion (#2831 review), judged with
13
+ * the same `acceptance` the snapshot refresh used. Only the one definition
14
+ * that acceptance admits confirms, carrying its member proof: the public
15
+ * definition for a public acceptance, whose authority must still hold now,
16
+ * and the complete private definition otherwise. Stored triples never
17
+ * authenticate the policy themselves. Unless this node still holds the
18
+ * approval the acceptance names, nothing confirms.
19
+ */
20
+ export type ConfirmContextGraphMetadataInput = {
21
+ readonly purpose?: 'read';
5
22
  readonly rejectUnregisteredPlaceholder?: boolean;
6
- }
23
+ } | {
24
+ readonly purpose: 'approved-member';
25
+ readonly acceptance: ApprovedMemberAcceptance;
26
+ };
7
27
  export interface ContextGraphMetadataConfirmationDependencies {
8
28
  readonly chain: ChainAdapter;
9
29
  readonly resolveActivePublicChainProof: () => Promise<ActivePublicContextGraphChainProof>;
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-meta-confirmation.d.ts","sourceRoot":"","sources":["../src/context-graph-meta-confirmation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAOrE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAChD,8CAA8C,CAAC;AAIjD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,4CAA4C;IAC3D,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,6BAA6B,EAAE,MAAM,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC1F,QAAQ,CAAC,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,QAAQ,CAAC,gCAAgC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;CAClF;AAED,2FAA2F;AAC3F,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,4CAA4C,EAC1D,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,gCAAqC,GAC3C,OAAO,CAAC,OAAO,CAAC,CA+GlB"}
1
+ {"version":3,"file":"context-graph-meta-confirmation.d.ts","sourceRoot":"","sources":["../src/context-graph-meta-confirmation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAOrE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAChD,8CAA8C,CAAC;AAIjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MACtC,kEAAkE,CAAC;AAErE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gCAAgC,GACxC;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CAClD,GACD;IACE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;CAC/C,CAAC;AAEN,MAAM,WAAW,4CAA4C;IAC3D,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,6BAA6B,EAAE,MAAM,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC1F,QAAQ,CAAC,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,QAAQ,CAAC,gCAAgC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;CAClF;AAED,2FAA2F;AAC3F,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,4CAA4C,EAC1D,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,gCAAqC,GAC3C,OAAO,CAAC,OAAO,CAAC,CA2GlB"}
@@ -12,6 +12,21 @@ export async function confirmContextGraphMetadataV1(dependencies, contextGraphId
12
12
  if (isPublicMetaDurabilityPending(dependencies.store, contextGraphId)) {
13
13
  return false;
14
14
  }
15
+ if (input.purpose === 'approved-member') {
16
+ const { proof } = input.acceptance;
17
+ // A lifecycle race or partial rehydration can drop or change the binding;
18
+ // the pre-join definition must not then stand in for the member.
19
+ const stillApproved = () => (dependencies.localApprovedAgentByContextGraph.get(contextGraphId)?.toLowerCase()
20
+ === proof.approvedAgentAddress.toLowerCase());
21
+ if (!stillApproved())
22
+ return false;
23
+ const confirmed = await findAuthoritativeDefinition(dependencies, contextGraphId, [{ definition: input.acceptance.admittedDefinition, memberProof: proof }], 'agent.contextGraph.confirmedMeta.approvedMember') !== null;
24
+ // Readiness is declared now, so the authority behind the acceptance and
25
+ // this node's approval must both still hold now, after the awaits: a
26
+ // rejection or a new join request can change the binding while they run.
27
+ return confirmed && await input.acceptance.stillHolds() && stillApproved();
28
+ }
29
+ const memberProof = await resolveApprovedMemberProof(dependencies, contextGraphId);
15
30
  const metaGraph = contextGraphMetaGraphUri(contextGraphId);
16
31
  const contextGraphUri = contextGraphDataGraphUri(contextGraphId);
17
32
  const unregisteredPlaceholderResult = await dependencies.store.query(`ASK WHERE {
@@ -29,30 +44,10 @@ export async function confirmContextGraphMetadataV1(dependencies, contextGraphId
29
44
  .then((proof) => proof.state === 'public')
30
45
  .catch(() => false);
31
46
  }
32
- const approvedAgentAddress = dependencies.localApprovedAgentByContextGraph.get(contextGraphId);
33
- let expectedDelegateeOpKey;
34
- if (approvedAgentAddress) {
35
- try {
36
- expectedDelegateeOpKey = await inferAdapterPublisherAddress(dependencies.chain);
37
- }
38
- catch {
39
- // The libp2p peer binding remains sufficient when no op-key is exposed.
40
- }
41
- }
42
- const authoritativeDefinitionResult = await dependencies.store.query(buildAuthoritativePrivateMetaAskQuery(contextGraphId, approvedAgentAddress
43
- ? {
44
- approvedAgentAddress,
45
- expectedDelegateePeerId: dependencies.peerId,
46
- expectedDelegateeOpKey,
47
- }
48
- : undefined), { source: 'agent.contextGraph.confirmedMeta.privateDefinition' });
49
- if (authoritativeDefinitionResult.type === 'boolean'
50
- && authoritativeDefinitionResult.value === true) {
47
+ const authoritativeDefinition = await findAuthoritativeDefinition(dependencies, contextGraphId, [{ definition: 'private', memberProof }, { definition: 'public' }], 'agent.contextGraph.confirmedMeta');
48
+ if (authoritativeDefinition === 'private')
51
49
  return true;
52
- }
53
- const authoritativePublicDefinitionResult = await dependencies.store.query(buildAuthoritativePublicMetaAskQuery(contextGraphId), { source: 'agent.contextGraph.confirmedMeta.publicDefinition' });
54
- if (authoritativePublicDefinitionResult.type === 'boolean'
55
- && authoritativePublicDefinitionResult.value === true
50
+ if (authoritativeDefinition === 'public'
56
51
  && (!hasUnregisteredPlaceholder
57
52
  || input.rejectUnregisteredPlaceholder !== true
58
53
  || hasActivePublicOnChainProof === true)) {
@@ -82,4 +77,40 @@ export async function confirmContextGraphMetadataV1(dependencies, contextGraphId
82
77
  }`, { source: 'agent.contextGraph.confirmedMeta.ontologyDeclaration' });
83
78
  return ontologyResult.type === 'boolean' && ontologyResult.value === true;
84
79
  }
80
+ /** This node's approved-member proof for the graph, when it holds an approval. */
81
+ async function resolveApprovedMemberProof(dependencies, contextGraphId) {
82
+ const approvedAgentAddress = dependencies.localApprovedAgentByContextGraph.get(contextGraphId);
83
+ if (!approvedAgentAddress)
84
+ return undefined;
85
+ let expectedDelegateeOpKey;
86
+ try {
87
+ expectedDelegateeOpKey = await inferAdapterPublisherAddress(dependencies.chain);
88
+ }
89
+ catch {
90
+ // The libp2p peer binding remains sufficient when no op-key is exposed.
91
+ }
92
+ return {
93
+ approvedAgentAddress,
94
+ expectedDelegateePeerId: dependencies.peerId,
95
+ expectedDelegateeOpKey,
96
+ };
97
+ }
98
+ /**
99
+ * The canonical stored-definition proofs, shared by every confirmation
100
+ * purpose. Each purpose lists the definitions it admits, in order, with the
101
+ * member proof each must carry. Returns the first definition that matched.
102
+ */
103
+ async function findAuthoritativeDefinition(dependencies, contextGraphId, candidates, sourcePrefix) {
104
+ for (const { definition, memberProof } of candidates) {
105
+ const query = definition === 'private'
106
+ ? buildAuthoritativePrivateMetaAskQuery(contextGraphId, memberProof)
107
+ : buildAuthoritativePublicMetaAskQuery(contextGraphId, memberProof);
108
+ const result = await dependencies.store.query(query, {
109
+ source: `${sourcePrefix}.${definition}Definition`,
110
+ });
111
+ if (result.type === 'boolean' && result.value === true)
112
+ return definition;
113
+ }
114
+ return null;
115
+ }
85
116
  //# sourceMappingURL=context-graph-meta-confirmation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-meta-confirmation.js","sourceRoot":"","sources":["../src/context-graph-meta-confirmation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-graph-meta-confirmation.js","sourceRoot":"","sources":["../src/context-graph-meta-confirmation.ts"],"names":[],"mappings":"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"}
@@ -48,9 +48,13 @@ export declare class ContextGraphMetaProjection {
48
48
  private readonly store;
49
49
  private readonly entries;
50
50
  private authorityFactsRevision;
51
+ private allFactsRevision;
51
52
  constructor(store: TripleStore);
52
53
  /** Invalidate request-local absence proofs when projection sources change. */
53
54
  get readAuthorityFactsRevision(): number;
55
+ /** Fence a source-qualified proof over one CG's metadata without rejecting
56
+ * it when an unrelated graph or agent profile changes during the read. */
57
+ readContextGraphAuthorityFactsRevision(contextGraphId: string): string;
54
58
  /**
55
59
  * A conservative presence projection for batched read admission. Every fact
56
60
  * about the exact CG subject in a normal projection source requires full
@@ -65,6 +69,12 @@ export declare class ContextGraphMetaProjection {
65
69
  prepareReadAuthorityFactsSnapshot(contextGraphIds: readonly string[], options?: QueryOptions): Promise<ContextGraphReadAuthorityFactsSnapshot>;
66
70
  get(contextGraphId: string, options?: QueryOptions): Promise<ContextGraphMetaRecord>;
67
71
  markDirty(contextGraphId: string): void;
72
+ /**
73
+ * Rebuild this graph's cached record on its next read without reporting a
74
+ * change of authority facts, for a caller that wrote nothing itself: no
75
+ * authority-facts revision advances. Supersedes a rebuild in flight.
76
+ */
77
+ requireFreshRead(contextGraphId: string): void;
68
78
  /**
69
79
  * #1863 — dirty the projection for the context graph a single-graph destructive
70
80
  * mutation (e.g. `replaceSubject`) targets, derived from the GRAPH itself, not
@@ -73,8 +83,9 @@ export declare class ContextGraphMetaProjection {
73
83
  * keying off the inserted quads alone (`markDirtyFromQuads`) misses the delete.
74
84
  * Keying off an own meta/catalog graph covers both insert and delete. Shared
75
85
  * AGENTS/ONTOLOGY sources invalidate every record because the callback does
76
- * not supply the affected subject. Other graphs (e.g. publisher control-plane
77
- * jobs) do not dirty the projection.
86
+ * not supply the affected subject. Other graphs do not dirty projection cache
87
+ * entries, but still advance the recipient-authority fence because key lookup
88
+ * scans all named graphs.
78
89
  */
79
90
  markDirtyForGraph(graphUri: string): void;
80
91
  markAllDirty(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-meta-projection.d.ts","sourceRoot":"","sources":["../src/context-graph-meta-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-graph-meta-projection.d.ts","sourceRoot":"","sources":["../src/context-graph-meta-projection.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  import { DKG_ONTOLOGY, SYSTEM_CONTEXT_GRAPHS, assertSafeIri, contextGraphCatalogUri, contextGraphDataGraphUri, contextGraphDataUri, contextGraphMetaGraphUri, } from '@origintrail-official/dkg-core';
3
3
  import { strip, stripLiteral } from './dkg-agent-utils.js';
4
4
  import { mapWithConcurrency } from './map-with-concurrency.js';
5
+ import { cloneMetaRecord } from './internal/context-graph-meta-record-copy.js';
5
6
  const DKG_NS = 'https://dkg.network/ontology#';
6
7
  const LEGACY_DKG_NS = 'http://dkg.io/ontology/';
7
8
  const LEGACY_SCHEMA_NS = 'http://schema.org/';
@@ -32,6 +33,24 @@ const DIRECT_META_PREDICATES = new Set([
32
33
  `${DKG_ONTOLOGY.DKG_CONTEXT_GRAPH}OnChainId`,
33
34
  `${DKG_ONTOLOGY.DKG_CONTEXT_GRAPH}OnChainHash`,
34
35
  ]);
36
+ // Recipient resolution scans these facts across every named graph. They do
37
+ // not populate ContextGraphMetaRecord, but a concurrent insert can still
38
+ // change the exact (agent, key, peer) transport set while a private roster is
39
+ // being rechecked. Share the authority revision with the metadata projection
40
+ // so callers can fence both halves of that decision across awaited reads.
41
+ const WORKSPACE_RECIPIENT_AUTHORITY_PREDICATES = new Set([
42
+ DKG_ONTOLOGY.DKG_ACCESS_POLICY,
43
+ DKG_ONTOLOGY.DKG_ALLOWED_AGENT,
44
+ DKG_ONTOLOGY.DKG_PARTICIPANT_AGENT,
45
+ DKG_ONTOLOGY.DKG_REVOKED_AGENT,
46
+ DKG_ONTOLOGY.DKG_PUBLIC_ENCRYPTION_KEY,
47
+ DKG_ONTOLOGY.DKG_ENCRYPTION_KEY_ALGORITHM,
48
+ DKG_ONTOLOGY.DKG_ENCRYPTION_KEY_PROOF,
49
+ DKG_ONTOLOGY.DKG_PEER_ID,
50
+ DKG_ONTOLOGY.DKG_REVOKED_AT,
51
+ DKG_ONTOLOGY.DKG_REVOKED_BY,
52
+ DKG_ONTOLOGY.DKG_ENCRYPTION_KEY_REVOCATION_PROOF,
53
+ ]);
35
54
  const SUB_GRAPH_META_PREDICATES = new Set([
36
55
  DKG_ONTOLOGY.RDF_TYPE,
37
56
  DKG_ONTOLOGY.SCHEMA_NAME,
@@ -49,6 +68,7 @@ const SUB_GRAPH_META_PREDICATES = new Set([
49
68
  ]);
50
69
  const DELEGATION_META_PREDICATES = new Set([
51
70
  DKG_ONTOLOGY.DKG_DELEGATION_AGENT,
71
+ DKG_ONTOLOGY.DKG_DELEGATION_ISSUED_AT,
52
72
  DKG_ONTOLOGY.DKG_ALLOWED_DELEGATEE_PEER,
53
73
  DKG_ONTOLOGY.DKG_ALLOWED_DELEGATEE_KEY,
54
74
  DKG_ONTOLOGY.DKG_DELEGATION_EXPIRES_AT,
@@ -95,6 +115,7 @@ export class ContextGraphMetaProjection {
95
115
  store;
96
116
  entries = new Map();
97
117
  authorityFactsRevision = 0;
118
+ allFactsRevision = 0;
98
119
  constructor(store) {
99
120
  this.store = store;
100
121
  }
@@ -102,6 +123,11 @@ export class ContextGraphMetaProjection {
102
123
  get readAuthorityFactsRevision() {
103
124
  return this.authorityFactsRevision;
104
125
  }
126
+ /** Fence a source-qualified proof over one CG's metadata without rejecting
127
+ * it when an unrelated graph or agent profile changes during the read. */
128
+ readContextGraphAuthorityFactsRevision(contextGraphId) {
129
+ return `${this.allFactsRevision}:${this.entries.get(contextGraphId)?.invalidationVersion ?? 0}`;
130
+ }
105
131
  /**
106
132
  * A conservative presence projection for batched read admission. Every fact
107
133
  * about the exact CG subject in a normal projection source requires full
@@ -186,7 +212,8 @@ export class ContextGraphMetaProjection {
186
212
  .then((record) => {
187
213
  entry.value = record;
188
214
  entry.inflight = undefined;
189
- entry.dirty = entry.invalidationVersion !== rebuildVersion;
215
+ // A fresh-read request during the rebuild leaves the version as it is.
216
+ entry.dirty ||= entry.invalidationVersion !== rebuildVersion;
190
217
  this.entries.set(contextGraphId, entry);
191
218
  return record;
192
219
  })
@@ -210,6 +237,16 @@ export class ContextGraphMetaProjection {
210
237
  }
211
238
  this.entries.set(contextGraphId, { dirty: true, invalidationVersion: 1 });
212
239
  }
240
+ /**
241
+ * Rebuild this graph's cached record on its next read without reporting a
242
+ * change of authority facts, for a caller that wrote nothing itself: no
243
+ * authority-facts revision advances. Supersedes a rebuild in flight.
244
+ */
245
+ requireFreshRead(contextGraphId) {
246
+ const existing = this.entries.get(contextGraphId);
247
+ if (existing)
248
+ existing.dirty = true;
249
+ }
213
250
  /**
214
251
  * #1863 — dirty the projection for the context graph a single-graph destructive
215
252
  * mutation (e.g. `replaceSubject`) targets, derived from the GRAPH itself, not
@@ -218,8 +255,9 @@ export class ContextGraphMetaProjection {
218
255
  * keying off the inserted quads alone (`markDirtyFromQuads`) misses the delete.
219
256
  * Keying off an own meta/catalog graph covers both insert and delete. Shared
220
257
  * AGENTS/ONTOLOGY sources invalidate every record because the callback does
221
- * not supply the affected subject. Other graphs (e.g. publisher control-plane
222
- * jobs) do not dirty the projection.
258
+ * not supply the affected subject. Other graphs do not dirty projection cache
259
+ * entries, but still advance the recipient-authority fence because key lookup
260
+ * scans all named graphs.
223
261
  */
224
262
  markDirtyForGraph(graphUri) {
225
263
  const graph = stripTerm(graphUri);
@@ -232,11 +270,20 @@ export class ContextGraphMetaProjection {
232
270
  return;
233
271
  }
234
272
  const contextGraphId = contextGraphIdFromMetaGraphUri(graphUri) ?? contextGraphIdFromCatalogGraphUri(graphUri);
235
- if (contextGraphId)
273
+ if (contextGraphId) {
236
274
  this.markDirty(contextGraphId);
275
+ return;
276
+ }
277
+ // Recipient-key resolution deliberately scans every named graph, including
278
+ // the durable join-key cache. An atomic subject replacement can delete an
279
+ // old key/peer route while inserting no authority predicate, so even an
280
+ // otherwise non-CG target graph must advance the request-local fence. It
281
+ // does not dirty projection cache entries.
282
+ this.authorityFactsRevision += 1;
237
283
  }
238
284
  markAllDirty() {
239
285
  this.authorityFactsRevision += 1;
286
+ this.allFactsRevision += 1;
240
287
  for (const entry of this.entries.values()) {
241
288
  entry.dirty = true;
242
289
  entry.invalidationVersion += 1;
@@ -244,13 +291,23 @@ export class ContextGraphMetaProjection {
244
291
  }
245
292
  markDirtyFromQuads(quads) {
246
293
  const touched = new Set();
294
+ let recipientAuthorityTouched = false;
247
295
  for (const quad of quads) {
296
+ if (WORKSPACE_RECIPIENT_AUTHORITY_PREDICATES.has(strip(quad.predicate))) {
297
+ recipientAuthorityTouched = true;
298
+ }
248
299
  const contextGraphId = this.contextGraphIdTouchedByQuad(quad);
249
300
  if (!contextGraphId)
250
301
  continue;
251
302
  touched.add(contextGraphId);
252
303
  this.markDirty(contextGraphId);
253
304
  }
305
+ // Inserts are the generic store mutation for which the decorator can
306
+ // classify exact quads. Generic delete/update and complete-graph replace
307
+ // paths already call markAllDirty(), so one conservative bump here closes
308
+ // the recipient-key/profile insertion race without dirtying every CG cache.
309
+ if (recipientAuthorityTouched)
310
+ this.authorityFactsRevision += 1;
254
311
  return [...touched];
255
312
  }
256
313
  async listDeclaredContextGraphIds(options = {}) {
@@ -716,26 +773,6 @@ function contextGraphIdFromCatalogGraphUri(uri) {
716
773
  return null;
717
774
  return tail;
718
775
  }
719
- function cloneMetaRecord(record) {
720
- return {
721
- ...record,
722
- creators: [...record.creators],
723
- curators: [...record.curators],
724
- allowedPeers: [...record.allowedPeers],
725
- allowedAgents: [...record.allowedAgents],
726
- participantAgents: [...record.participantAgents],
727
- participantIdentityIds: [...record.participantIdentityIds],
728
- revokedAgents: [...record.revokedAgents],
729
- delegations: record.delegations.map((delegation) => ({
730
- ...delegation,
731
- agents: [...delegation.agents],
732
- allowedPeers: [...delegation.allowedPeers],
733
- allowedKeys: [...delegation.allowedKeys],
734
- expiresAtValues: [...delegation.expiresAtValues],
735
- })),
736
- subGraphs: record.subGraphs.map((subGraph) => ({ ...subGraph })),
737
- };
738
- }
739
776
  function raceAgainstAbort(work, signal) {
740
777
  if (!signal)
741
778
  return work;