@graphrefly/graphrefly 0.42.0 → 0.44.0

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 (284) hide show
  1. package/dist/{cascading-CH-_VwG9.d.cts → cascading-BglDkMdX.d.cts} +2 -2
  2. package/dist/{cascading-OgKQZjsa.d.ts → cascading-MFgxu7Yo.d.ts} +2 -2
  3. package/dist/chunk-2T7U5EU6.js +1 -0
  4. package/dist/chunk-5M4CCMMD.js +45 -0
  5. package/dist/{chunk-YGL7FPVQ.js → chunk-5XJ6B66J.js} +1 -1
  6. package/dist/{chunk-NWXQIOIB.js → chunk-6X7AFUJV.js} +1 -1
  7. package/dist/chunk-7K6PWTDQ.js +1 -0
  8. package/dist/{chunk-D27JNOLZ.js → chunk-7LIAPXJB.js} +1 -1
  9. package/dist/{chunk-CLD3F4R5.js → chunk-7WPU3UHQ.js} +1 -1
  10. package/dist/{chunk-NNKJUORL.js → chunk-A5WCQ5NO.js} +1 -1
  11. package/dist/chunk-APPIWSGD.js +84 -0
  12. package/dist/{chunk-TZQPPQEQ.js → chunk-BEZWM2SY.js} +1 -1
  13. package/dist/{chunk-5QRRKBUT.js → chunk-CB676TKJ.js} +1 -1
  14. package/dist/{chunk-KT5DTRBP.js → chunk-CE6TI2TL.js} +1 -1
  15. package/dist/{chunk-6YFZMUMR.js → chunk-CLVB32RD.js} +1 -1
  16. package/dist/{chunk-2K5RXLAH.js → chunk-CRVT7D2P.js} +1 -1
  17. package/dist/chunk-D7GPHKFH.js +1 -0
  18. package/dist/{chunk-FUZ6S2DY.js → chunk-DHRX7JX4.js} +1 -1
  19. package/dist/chunk-FZMYDOWV.js +1 -0
  20. package/dist/{chunk-35JTVPOX.js → chunk-GHBWHMRZ.js} +1 -1
  21. package/dist/{chunk-KGKJCHEK.js → chunk-GLERH466.js} +1 -1
  22. package/dist/{chunk-CISGGAIF.js → chunk-HIDYF36O.js} +1 -1
  23. package/dist/chunk-HITNVN6B.js +3 -0
  24. package/dist/{chunk-7ARY3Y3T.js → chunk-HY4DJBA7.js} +1 -1
  25. package/dist/chunk-KZIEYVXN.js +1 -0
  26. package/dist/{chunk-IZM3UEH3.js → chunk-N4MQX6JU.js} +1 -1
  27. package/dist/{chunk-FDZAZNRO.js → chunk-N7FHEL4D.js} +1 -1
  28. package/dist/chunk-NTEURFZH.js +1 -0
  29. package/dist/{chunk-4QH6VJF4.js → chunk-OIVP6KFV.js} +1 -1
  30. package/dist/{chunk-KCACBSJH.js → chunk-OPHBU3LG.js} +1 -1
  31. package/dist/{chunk-Q7QQQA3I.js → chunk-OYQOZP2F.js} +1 -1
  32. package/dist/{chunk-7B7ELAT2.js → chunk-PTZK576G.js} +1 -1
  33. package/dist/{chunk-DEJTNNQC.js → chunk-ST7UXLWR.js} +1 -1
  34. package/dist/chunk-SVY7VUYU.js +1 -0
  35. package/dist/{chunk-WHMUB5QB.js → chunk-TK3NWWD4.js} +1 -1
  36. package/dist/chunk-UNGSTR4X.js +61 -0
  37. package/dist/{chunk-VRALOYRD.js → chunk-VV4N5P64.js} +1 -1
  38. package/dist/chunk-W3I423PS.js +1 -0
  39. package/dist/{chunk-HZKW2AAB.js → chunk-WJR24TAG.js} +1 -1
  40. package/dist/{chunk-F3IGTWCQ.js → chunk-XTGKMHSW.js} +1 -1
  41. package/dist/{chunk-LDQ3IUIP.js → chunk-YBB7ZGTY.js} +1 -1
  42. package/dist/{chunk-G5VBJ5K6.js → chunk-Z4NPUARF.js} +1 -1
  43. package/dist/{chunk-KRH66M4O.js → chunk-ZGNQRPDT.js} +1 -1
  44. package/dist/{chunk-AGNM6RS6.js → chunk-ZKPSFFKU.js} +1 -1
  45. package/dist/{chunk-KY2LMAXU.js → chunk-ZLV5SQSX.js} +1 -1
  46. package/dist/compat/index.cjs +5 -5
  47. package/dist/compat/index.d.cts +16 -16
  48. package/dist/compat/index.d.ts +16 -16
  49. package/dist/compat/index.js +1 -1
  50. package/dist/compat/jotai/index.cjs +1 -1
  51. package/dist/compat/jotai/index.d.cts +2 -2
  52. package/dist/compat/jotai/index.d.ts +2 -2
  53. package/dist/compat/jotai/index.js +1 -1
  54. package/dist/compat/nanostores/index.cjs +1 -1
  55. package/dist/compat/nanostores/index.d.cts +2 -2
  56. package/dist/compat/nanostores/index.d.ts +2 -2
  57. package/dist/compat/nanostores/index.js +1 -1
  58. package/dist/compat/nestjs/index.cjs +5 -5
  59. package/dist/compat/nestjs/index.d.cts +8 -8
  60. package/dist/compat/nestjs/index.d.ts +8 -8
  61. package/dist/compat/nestjs/index.js +1 -1
  62. package/dist/compat/react/index.d.cts +2 -2
  63. package/dist/compat/react/index.d.ts +2 -2
  64. package/dist/compat/solid/index.d.cts +2 -2
  65. package/dist/compat/solid/index.d.ts +2 -2
  66. package/dist/compat/svelte/index.d.cts +2 -2
  67. package/dist/compat/svelte/index.d.ts +2 -2
  68. package/dist/compat/vue/index.d.cts +2 -2
  69. package/dist/compat/vue/index.d.ts +2 -2
  70. package/dist/compat/zustand/index.cjs +3 -3
  71. package/dist/compat/zustand/index.d.cts +4 -4
  72. package/dist/compat/zustand/index.d.ts +4 -4
  73. package/dist/compat/zustand/index.js +1 -1
  74. package/dist/core/index.cjs +1 -1
  75. package/dist/core/index.d.cts +3 -4
  76. package/dist/core/index.d.ts +3 -4
  77. package/dist/core/index.js +1 -1
  78. package/dist/{decay-CdEBmDIs.d.ts → decay-BvOWTZ00.d.ts} +2 -2
  79. package/dist/{decay-2ZukgQ4o.d.cts → decay-CFlLvXUT.d.cts} +2 -2
  80. package/dist/extra/browser.cjs +1 -1
  81. package/dist/extra/browser.d.cts +1 -1
  82. package/dist/extra/browser.d.ts +1 -1
  83. package/dist/extra/browser.js +1 -1
  84. package/dist/extra/index.cjs +15 -15
  85. package/dist/extra/index.d.cts +10 -10
  86. package/dist/extra/index.d.ts +10 -10
  87. package/dist/extra/index.js +1 -1
  88. package/dist/extra/node.cjs +2 -2
  89. package/dist/extra/node.d.cts +1 -1
  90. package/dist/extra/node.d.ts +1 -1
  91. package/dist/extra/node.js +1 -1
  92. package/dist/extra/operators.cjs +1 -1
  93. package/dist/extra/operators.d.cts +9 -1
  94. package/dist/extra/operators.d.ts +9 -1
  95. package/dist/extra/operators.js +1 -1
  96. package/dist/extra/reactive.cjs +1 -1
  97. package/dist/extra/reactive.d.cts +3 -3
  98. package/dist/extra/reactive.d.ts +3 -3
  99. package/dist/extra/reactive.js +1 -1
  100. package/dist/extra/render/index.d.cts +3 -3
  101. package/dist/extra/render/index.d.ts +3 -3
  102. package/dist/extra/sources.cjs +3 -3
  103. package/dist/extra/sources.d.cts +1 -1
  104. package/dist/extra/sources.d.ts +1 -1
  105. package/dist/extra/sources.js +1 -1
  106. package/dist/extra/storage-browser.cjs +1 -1
  107. package/dist/extra/storage-browser.d.cts +1 -1
  108. package/dist/extra/storage-browser.d.ts +1 -1
  109. package/dist/extra/storage-browser.js +1 -1
  110. package/dist/{fallback-Ctlj2tMY.d.cts → fallback-74oxi34l.d.cts} +1 -1
  111. package/dist/{fallback-CqYVLL6X.d.ts → fallback-DUyyBTBK.d.ts} +1 -1
  112. package/dist/graph/index.cjs +7 -7
  113. package/dist/graph/index.d.cts +5 -5
  114. package/dist/graph/index.d.ts +5 -5
  115. package/dist/graph/index.js +1 -1
  116. package/dist/{graph-C4SHb3Ly.d.cts → graph-CWvEUQAq.d.cts} +196 -3
  117. package/dist/{graph-7VguS7a4.d.ts → graph-D9LFnda9.d.ts} +196 -3
  118. package/dist/{index-LIpQQE9f.d.cts → index-5k1T6jl0.d.cts} +9 -9
  119. package/dist/{index-CPNSy-U0.d.cts → index-9770hRuQ.d.cts} +23 -4
  120. package/dist/{index-CEMx8n40.d.cts → index-B-_tFaqV.d.cts} +4 -4
  121. package/dist/{index-2B7u2pVn.d.cts → index-B17QddL1.d.cts} +4 -4
  122. package/dist/{index-B-i4_g3k.d.ts → index-B1F8Enjf.d.ts} +61 -8
  123. package/dist/{index-DBevwHj_.d.ts → index-B5S8ULbU.d.ts} +3 -3
  124. package/dist/{index-Dgs8zcj7.d.ts → index-B8YnZpIR.d.ts} +2 -2
  125. package/dist/{index-B3OTH1dV.d.ts → index-BHskSB8v.d.ts} +28 -17
  126. package/dist/{index-sl4NyzQx.d.cts → index-BIYAkbAi.d.cts} +1 -1
  127. package/dist/{index-C9kSENB4.d.cts → index-BQSKmbuG.d.cts} +1 -1
  128. package/dist/{index-tJoTcnHh.d.cts → index-BaQaY_IQ.d.cts} +2 -2
  129. package/dist/{index-CJK1JkYy.d.ts → index-BmZXHqkE.d.ts} +1 -1
  130. package/dist/{index-pT8sCpOJ.d.ts → index-BoJ5JHxI.d.ts} +12 -3
  131. package/dist/{index-BeT2r7sk.d.ts → index-BocU7pqs.d.ts} +23 -4
  132. package/dist/{index-ChOyVLKm.d.cts → index-BrPrLl4e.d.cts} +1 -1
  133. package/dist/{index-D-Xs74HZ.d.cts → index-BxNs2HB9.d.cts} +33 -9
  134. package/dist/{index-Bf7eqeSF.d.ts → index-Byu-OpX_.d.ts} +2 -2
  135. package/dist/{index-BoLv_OfD.d.cts → index-C1T3d7V-.d.cts} +61 -8
  136. package/dist/{index-BTQtTb_H.d.cts → index-C5ri2Axc.d.cts} +3 -3
  137. package/dist/{index-z96luz5O.d.cts → index-C5stwKcw.d.cts} +1 -1
  138. package/dist/{index-CZmcDtFn.d.ts → index-C9l6OEBL.d.ts} +1 -1
  139. package/dist/{index-CCq87F7t.d.ts → index-CBBLl_rc.d.ts} +1 -1
  140. package/dist/{index-D6egPFAL.d.ts → index-CBGUK09R.d.ts} +4 -4
  141. package/dist/{index-C0-Jv1kP.d.cts → index-CC-AvFTy.d.cts} +12 -3
  142. package/dist/{index-DQo8xBgd.d.ts → index-CJF1URuX.d.ts} +9 -9
  143. package/dist/{index-BJX94aud.d.cts → index-CK29LV56.d.cts} +1 -1
  144. package/dist/{index-BP8a88zx.d.ts → index-CMh5Rz1y.d.ts} +4 -4
  145. package/dist/{index-CvrqGfNS.d.ts → index-CPQlGA29.d.ts} +1 -1
  146. package/dist/{index-Bbkgpt5t.d.ts → index-CR8QpwX8.d.ts} +49 -24
  147. package/dist/{index-Du7u1lSf.d.cts → index-CS0LTlB8.d.cts} +4 -4
  148. package/dist/{index-Bc41FuHp.d.cts → index-CSOmP7xT.d.cts} +2 -2
  149. package/dist/{index-BsT7F2et.d.ts → index-CYq8vAyV.d.ts} +2 -2
  150. package/dist/{index-Bn4zHYLj.d.ts → index-CZ3r5Rxp.d.ts} +4 -4
  151. package/dist/{index-HoU88d5U.d.cts → index-CasX6Pfq.d.cts} +68 -9
  152. package/dist/{index-BG0BN3PB.d.ts → index-CdAlHFEt.d.ts} +1 -1
  153. package/dist/{index-CpyNFqkB.d.ts → index-CdTelp1M.d.ts} +8 -4
  154. package/dist/{index-D8l8hNXn.d.ts → index-CeFiHtAg.d.ts} +4 -4
  155. package/dist/{index-DmAgG5CI.d.cts → index-Cj3WohTd.d.cts} +8 -4
  156. package/dist/{index-BtAsBp8K.d.cts → index-Climxqsu.d.cts} +4 -4
  157. package/dist/{index-CJIuLu2f.d.cts → index-Co7uli2l.d.cts} +28 -17
  158. package/dist/{index-DIOoAZUX.d.ts → index-CviRnE4K.d.ts} +1 -1
  159. package/dist/{index-Dhc7a7Xo.d.cts → index-Cwv0KWcU.d.cts} +2 -2
  160. package/dist/{index-Dn-wI9g4.d.ts → index-CzLVrjxn.d.ts} +2 -2
  161. package/dist/{index-DO9XxMzS.d.ts → index-D0aciIex.d.cts} +3 -18
  162. package/dist/{index-4Uz-e_fL.d.ts → index-DHen9Klo.d.ts} +33 -9
  163. package/dist/{index-3NmAfcH0.d.cts → index-DV_1YuVk.d.cts} +40 -8
  164. package/dist/{index-BdGtBX-X.d.cts → index-Dc4AYqrJ.d.cts} +3 -3
  165. package/dist/{index-Dmqp7KjD.d.ts → index-Dgl1HpPn.d.ts} +1 -1
  166. package/dist/{index-CJQm0g38.d.ts → index-DisjX8a-.d.ts} +40 -8
  167. package/dist/{index-B11anra4.d.cts → index-UPSiS-X7.d.cts} +49 -24
  168. package/dist/{index-DBIqYS43.d.cts → index-Yq60JP3s.d.ts} +3 -18
  169. package/dist/{index-f5IivDUX.d.cts → index-ZVQhLa2i.d.cts} +1 -1
  170. package/dist/{index-hHcaFlJX.d.cts → index-_6ODbuOu.d.cts} +1 -1
  171. package/dist/{index-BVpm6noz.d.cts → index-hcDJ8PSI.d.cts} +1 -1
  172. package/dist/{index-DBHK8O6H.d.ts → index-nozs3fFC.d.ts} +3 -3
  173. package/dist/{index-BUYXac2c.d.ts → index-p09KSrTN.d.ts} +68 -9
  174. package/dist/{index-C7O6r5fV.d.ts → index-sqkqlb1p.d.ts} +1 -1
  175. package/dist/{index-CZjOhcBy.d.cts → index-tRCxuAXF.d.cts} +2 -2
  176. package/dist/index.cjs +48 -48
  177. package/dist/index.d.cts +42 -43
  178. package/dist/index.d.ts +42 -43
  179. package/dist/index.js +1 -1
  180. package/dist/{node-ClS5yC-B.d.cts → node-kK3CvTrR.d.cts} +1 -1
  181. package/dist/{node-ClS5yC-B.d.ts → node-kK3CvTrR.d.ts} +1 -1
  182. package/dist/{observable-BsBzUrcI.d.ts → observable-DWjNfLvC.d.ts} +1 -1
  183. package/dist/{observable-DLGPPtb8.d.cts → observable-e3eiPPFy.d.cts} +1 -1
  184. package/dist/patterns/ai/browser.cjs +5 -5
  185. package/dist/patterns/ai/browser.d.cts +4 -4
  186. package/dist/patterns/ai/browser.d.ts +4 -4
  187. package/dist/patterns/ai/browser.js +1 -1
  188. package/dist/patterns/ai/index.cjs +16 -16
  189. package/dist/patterns/ai/index.d.cts +16 -17
  190. package/dist/patterns/ai/index.d.ts +16 -17
  191. package/dist/patterns/ai/index.js +1 -1
  192. package/dist/patterns/ai/node.cjs +1 -1
  193. package/dist/patterns/ai/node.d.cts +4 -4
  194. package/dist/patterns/ai/node.d.ts +4 -4
  195. package/dist/patterns/ai/node.js +1 -1
  196. package/dist/patterns/cqrs/index.cjs +3 -3
  197. package/dist/patterns/cqrs/index.d.cts +6 -6
  198. package/dist/patterns/cqrs/index.d.ts +6 -6
  199. package/dist/patterns/cqrs/index.js +1 -1
  200. package/dist/patterns/demo-shell/index.cjs +5 -5
  201. package/dist/patterns/demo-shell/index.d.cts +5 -5
  202. package/dist/patterns/demo-shell/index.d.ts +5 -5
  203. package/dist/patterns/demo-shell/index.js +1 -1
  204. package/dist/patterns/domain-templates/index.cjs +3 -3
  205. package/dist/patterns/domain-templates/index.d.cts +4 -4
  206. package/dist/patterns/domain-templates/index.d.ts +4 -4
  207. package/dist/patterns/domain-templates/index.js +1 -1
  208. package/dist/patterns/graphspec/index.cjs +16 -16
  209. package/dist/patterns/graphspec/index.d.cts +5 -5
  210. package/dist/patterns/graphspec/index.d.ts +5 -5
  211. package/dist/patterns/graphspec/index.js +1 -1
  212. package/dist/patterns/harness/index.cjs +9 -9
  213. package/dist/patterns/harness/index.d.cts +10 -11
  214. package/dist/patterns/harness/index.d.ts +10 -11
  215. package/dist/patterns/harness/index.js +1 -1
  216. package/dist/patterns/inspect/index.cjs +3 -3
  217. package/dist/patterns/inspect/index.d.cts +7 -7
  218. package/dist/patterns/inspect/index.d.ts +7 -7
  219. package/dist/patterns/inspect/index.js +1 -1
  220. package/dist/patterns/job-queue/index.cjs +3 -3
  221. package/dist/patterns/job-queue/index.d.cts +6 -6
  222. package/dist/patterns/job-queue/index.d.ts +6 -6
  223. package/dist/patterns/job-queue/index.js +1 -1
  224. package/dist/patterns/memory/index.cjs +3 -3
  225. package/dist/patterns/memory/index.d.cts +6 -6
  226. package/dist/patterns/memory/index.d.ts +6 -6
  227. package/dist/patterns/memory/index.js +1 -1
  228. package/dist/patterns/messaging/index.cjs +3 -3
  229. package/dist/patterns/messaging/index.d.cts +5 -5
  230. package/dist/patterns/messaging/index.d.ts +5 -5
  231. package/dist/patterns/messaging/index.js +1 -1
  232. package/dist/patterns/orchestration/index.cjs +3 -3
  233. package/dist/patterns/orchestration/index.d.cts +6 -7
  234. package/dist/patterns/orchestration/index.d.ts +6 -7
  235. package/dist/patterns/orchestration/index.js +1 -1
  236. package/dist/patterns/process/index.cjs +3 -1
  237. package/dist/patterns/process/index.d.cts +7 -7
  238. package/dist/patterns/process/index.d.ts +7 -7
  239. package/dist/patterns/process/index.js +1 -1
  240. package/dist/patterns/reactive-layout/index.cjs +4 -4
  241. package/dist/patterns/reactive-layout/index.d.cts +5 -5
  242. package/dist/patterns/reactive-layout/index.d.ts +5 -5
  243. package/dist/patterns/reactive-layout/index.js +1 -1
  244. package/dist/patterns/reduction/index.cjs +3 -3
  245. package/dist/patterns/reduction/index.d.cts +4 -4
  246. package/dist/patterns/reduction/index.d.ts +4 -4
  247. package/dist/patterns/reduction/index.js +1 -1
  248. package/dist/patterns/surface/index.cjs +10 -10
  249. package/dist/patterns/surface/index.d.cts +6 -6
  250. package/dist/patterns/surface/index.d.ts +6 -6
  251. package/dist/patterns/surface/index.js +1 -1
  252. package/dist/{pipeline-graph-WBlobVhU.d.cts → pipeline-graph-CIKhynsF.d.cts} +11 -6
  253. package/dist/{pipeline-graph-v8fMvqNk.d.ts → pipeline-graph-Sgj0gCwn.d.ts} +11 -6
  254. package/dist/{reactive-layout-v7KPvxoc.d.ts → reactive-layout-DOTs9P3X.d.ts} +2 -2
  255. package/dist/{reactive-layout-Dsvob4zD.d.cts → reactive-layout-DgctbqZo.d.cts} +2 -2
  256. package/dist/{reactive-log-BezYsbA_.d.ts → reactive-log-BKALbfal.d.ts} +1 -1
  257. package/dist/{reactive-log-B00laMSQ.d.cts → reactive-log-DIGdYqQ6.d.cts} +1 -1
  258. package/dist/{reactive-map-48mnZ-nu.d.cts → reactive-map-CEFGp8TK.d.cts} +1 -1
  259. package/dist/{reactive-map-BVVPdvmi.d.ts → reactive-map-DS_SIAxv.d.ts} +1 -1
  260. package/dist/resilience-6LYQJAC5.js +1 -0
  261. package/dist/sugar-DQjFmVqb.d.cts +399 -0
  262. package/dist/sugar-fhLIE7TT.d.ts +399 -0
  263. package/dist/{topology-tree-BSdfSwMi.d.cts → topology-tree-Bcz27hpF.d.cts} +1 -1
  264. package/dist/{topology-tree-BNGvuG82.d.ts → topology-tree-xvaD0fOX.d.ts} +1 -1
  265. package/dist/{types-B1jDWVsM.d.cts → types-C0_yquda.d.cts} +1 -1
  266. package/dist/{types-DkzUUs0H.d.ts → types-CWFysE9E.d.ts} +1 -1
  267. package/package.json +1 -1
  268. package/dist/chunk-3ERTUW2J.js +0 -45
  269. package/dist/chunk-3K7HA4Y6.js +0 -1
  270. package/dist/chunk-3ZZX7M25.js +0 -1
  271. package/dist/chunk-4I45FVQS.js +0 -1
  272. package/dist/chunk-5ST42ESJ.js +0 -1
  273. package/dist/chunk-7VKFXLZQ.js +0 -84
  274. package/dist/chunk-ACMJ2ZPS.js +0 -3
  275. package/dist/chunk-AS3TV2TV.js +0 -1
  276. package/dist/chunk-LPRWATHB.js +0 -61
  277. package/dist/chunk-LYCLF26R.js +0 -1
  278. package/dist/chunk-VE5SIZEM.js +0 -1
  279. package/dist/chunk-XLQPNNIC.js +0 -1
  280. package/dist/meta-BgVAsg9j.d.ts +0 -102
  281. package/dist/meta-vE8bxW1E.d.cts +0 -102
  282. package/dist/resilience-445VFFXQ.js +0 -1
  283. package/dist/sugar-CH-2ZY90.d.ts +0 -203
  284. package/dist/sugar-DStZfUEK.d.cts +0 -203
@@ -1,4 +1,4 @@
1
- import { N as Node } from './node-ClS5yC-B.js';
1
+ import { N as Node } from './node-kK3CvTrR.js';
2
2
 
3
3
  /** Svelte store contract — implements the minimal `subscribe` method. */
4
4
  interface SvelteReadable<T> {
@@ -1,5 +1,5 @@
1
- import { G as Graph } from './graph-C4SHb3Ly.cjs';
2
- import { M as MeasurementAdapter } from './reactive-layout-Dsvob4zD.cjs';
1
+ import { G as Graph } from './graph-CWvEUQAq.cjs';
2
+ import { M as MeasurementAdapter } from './reactive-layout-DgctbqZo.cjs';
3
3
 
4
4
  /**
5
5
  * Three-pane demo shell (roadmap §7.2).
@@ -1,5 +1,5 @@
1
- import { N as Node } from './node-ClS5yC-B.js';
2
- import { a as GraphOptions, G as Graph } from './graph-7VguS7a4.js';
1
+ import { N as Node } from './node-kK3CvTrR.js';
2
+ import { a as GraphOptions, G as Graph } from './graph-D9LFnda9.js';
3
3
 
4
4
  /**
5
5
  * Domain templates (roadmap §8.2).
@@ -1,6 +1,6 @@
1
- import { b as NodeGuard, N as Node } from './node-ClS5yC-B.js';
2
- import { G as Graph } from './graph-7VguS7a4.js';
3
- import { R as ReactiveLogOptions, a as ReactiveLogBundle } from './reactive-log-BezYsbA_.js';
1
+ import { b as NodeGuard, N as Node } from './node-kK3CvTrR.cjs';
2
+ import { G as Graph } from './graph-CWvEUQAq.cjs';
3
+ import { R as ReactiveLogOptions, a as ReactiveLogBundle } from './reactive-log-DIGdYqQ6.cjs';
4
4
 
5
5
  /**
6
6
  * Audited-mutation framework (Audit 2 — locked 2026-04-24; promoted to
@@ -106,21 +106,6 @@ type MutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAudit
106
106
  };
107
107
  type WrapMutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = MutationOpts<TArgs, TResult, R>;
108
108
  type LightMutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = MutationOpts<TArgs, TResult, R>;
109
- /**
110
- * Advance a cursor node and return the new value. Emits `[DIRTY], [DATA, next]`
111
- * directly on the cursor — atomic outside a batch, rollback-discardable inside.
112
- *
113
- * Resets to `0` if the cursor cache is missing, non-numeric, `NaN`, or
114
- * non-finite (e.g. corrupted by `restore()` from a malformed snapshot, or
115
- * by a misbehaving codec). `??` alone would let `NaN` and `""` pass through
116
- * and silently corrupt audit ordering downstream.
117
- *
118
- * Works whether or not the cursor has any subscribers — `down` updates the
119
- * cache regardless, so primitives that bump before consumers attach (e.g.
120
- * `JobQueueGraph.enqueue`) still see a coherent sequence.
121
- *
122
- * @category internal
123
- */
124
109
  declare function bumpCursor(seq: Node<number>): number;
125
110
  /**
126
111
  * Build a record via the supplied builder, stamp `handlerVersion` if present,
@@ -1,10 +1,10 @@
1
1
  import { NodeInput } from './extra/sources.js';
2
- import { N as Node } from './node-ClS5yC-B.js';
3
- import { L as LLMAdapter } from './types-DkzUUs0H.js';
4
- import { J as JobEnvelope, a as JobFlowGraph, b as JobQueueGraph } from './index-CJQm0g38.js';
5
- import { T as TopicGraph, M as MessagingHubGraph } from './index-DBHK8O6H.js';
6
- import { a as GraphOptions, G as Graph, t as GraphProfileResult, s as GraphProfileOptions } from './graph-7VguS7a4.js';
7
- import { G as GateController } from './pipeline-graph-v8fMvqNk.js';
2
+ import { N as Node } from './node-kK3CvTrR.js';
3
+ import { L as LLMAdapter } from './types-CWFysE9E.js';
4
+ import { J as JobEnvelope, a as JobFlowGraph, b as JobQueueGraph } from './index-DisjX8a-.js';
5
+ import { T as TopicGraph, M as MessagingHubGraph } from './index-nozs3fFC.js';
6
+ import { a as GraphOptions, G as Graph, t as GraphProfileResult, s as GraphProfileOptions } from './graph-D9LFnda9.js';
7
+ import { G as GateController } from './pipeline-graph-Sgj0gCwn.js';
8
8
 
9
9
  /**
10
10
  * Strategy model and priority scoring (roadmap §9.0).
@@ -153,6 +153,16 @@ interface IntakeItem {
153
153
  affectsAreas: string[];
154
154
  affectsEvalTasks?: string[];
155
155
  severity?: Severity;
156
+ /**
157
+ * Stable identity carrier for retry / reingestion paths. Per qa D1
158
+ * (2026-04-29), `relatedTo[0]` MUST be the original tracking key for
159
+ * items derived from a prior publish so the harness's `routeJobIds`
160
+ * map preserves identity across decorated retry summaries. First-time
161
+ * publishes leave this `undefined`; the tracking key falls back to
162
+ * `summary`. Two first-time publishes with identical `summary` collide
163
+ * on key — see `trackingKey` JSDoc in `patterns/_internal/index.ts`
164
+ * for the uniqueness caller contract.
165
+ */
156
166
  relatedTo?: string[];
157
167
  /** Item-carried reingestion count. Incremented on each full-loop reingestion. */
158
168
  $reingestions?: number;
@@ -325,7 +335,9 @@ interface HarnessJobPayload<A = unknown> {
325
335
  * wrapper. `refineExecutor` builds a per-claim `refineLoop`.
326
336
  * `actuatorExecutor` runs a side-effecting `apply(item, signal)`.
327
337
  */
328
- type HarnessExecutor<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) => NodeInput<HarnessJobPayload<A>>;
338
+ type HarnessExecutor<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>, opts?: {
339
+ signal: AbortSignal;
340
+ }) => NodeInput<HarnessJobPayload<A>>;
329
341
  /**
330
342
  * Pluggable VERIFY work fn — receives a {@link JobEnvelope} whose payload
331
343
  * has `item` + `execution` populated, returns a {@link NodeInput} that
@@ -342,7 +354,9 @@ type HarnessExecutor<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) =>
342
354
  * verified: false, findings: [...], errorClass: "structural" }`) so the
343
355
  * dispatch effect can route the item rather than silently drop it.
344
356
  */
345
- type HarnessVerifier<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) => NodeInput<HarnessJobPayload<A>>;
357
+ type HarnessVerifier<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>, opts?: {
358
+ signal: AbortSignal;
359
+ }) => NodeInput<HarnessJobPayload<A>>;
346
360
  /** Triage prompt callable shape — pair of `[intake item, strategy snapshot]`. */
347
361
  type TriagePromptFn = (pair: readonly [IntakeItem, StrategySnapshot]) => string;
348
362
  /** Execute prompt callable shape. */
@@ -1478,7 +1492,17 @@ declare class HarnessGraph<A = unknown> extends Graph {
1478
1492
  * in to priority scoring.
1479
1493
  */
1480
1494
  readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
1481
- constructor(name: string, queues: MessagingHubGraph, executeFlow: JobFlowGraph<HarnessJobPayload<A>>, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1495
+ /**
1496
+ * REFLECT-stage tick marker — emits one DATA per terminal verdict observed
1497
+ * on `executeFlow.completed`. `equals: () => false` so each completion
1498
+ * produces an observable tick (no Object.is collapse on identical
1499
+ * `null` payloads). Inspection tools (`harnessTrace`, dashboards) can
1500
+ * subscribe directly here instead of resolving by string path
1501
+ * (`harness.node("reflect")`) — the field is the lock against rename
1502
+ * drift.
1503
+ */
1504
+ readonly reflect: Node<null>;
1505
+ constructor(name: string, queues: MessagingHubGraph, executeFlow: JobFlowGraph<HarnessJobPayload<A>>, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, reflect: Node<null>, priorityScores?: Map<QueueRoute, Node<number>>);
1482
1506
  /** Intake topic — publish items here to enter the loop. */
1483
1507
  get intake(): TopicGraph<IntakeItem>;
1484
1508
  /** Verify results topic — subscribe to see verification outcomes. */
@@ -1,9 +1,9 @@
1
- import { N as Node } from './node-ClS5yC-B.cjs';
2
- import { B as BaseAuditRecord } from './index-DBIqYS43.cjs';
3
- import { a as ReactiveLogBundle } from './reactive-log-B00laMSQ.cjs';
1
+ import { N as Node } from './node-kK3CvTrR.cjs';
2
+ import { B as BaseAuditRecord } from './index-D0aciIex.cjs';
3
+ import { a as ReactiveLogBundle } from './reactive-log-DIGdYqQ6.cjs';
4
4
  import { NodeInput } from './extra/sources.cjs';
5
5
  import { AppendLogStorageTier } from './extra/storage-tiers.cjs';
6
- import { G as Graph, a as GraphOptions } from './graph-C4SHb3Ly.cjs';
6
+ import { G as Graph, a as GraphOptions } from './graph-CWvEUQAq.cjs';
7
7
 
8
8
  /**
9
9
  * Job queue patterns (roadmap §4.2).
@@ -97,13 +97,30 @@ declare class JobQueueGraph<T> extends Graph {
97
97
  }): () => void;
98
98
  }
99
99
  /**
100
- * Work function for a job flow stage. Receives the full job envelope,
101
- * returns a `NodeInput<T>` raw value (sync), Promise (async), or Node
102
- * (composed pipeline). `fromAny` coerces any of these shapes.
100
+ * Work function for a job flow stage. Receives the full job envelope and
101
+ * an optional per-claim options object carrying an `AbortSignal`; returns
102
+ * a `NodeInput<T>` — raw value (sync), Promise (async), or Node (composed
103
+ * pipeline). `fromAny` coerces any of these shapes.
103
104
  *
104
105
  * On error / rejection: the stage nacks the job (no requeue by default).
106
+ *
107
+ * **Per-claim signal (Tier 6.5 2.5b, 2026-04-29).** The pump mints an
108
+ * `AbortController` per claim and supplies its `signal` via `opts`. The
109
+ * signal aborts when (a) the result node settles (first DATA / first
110
+ * ERROR — auto-cleanup after the pump captures), OR (b) the pump itself
111
+ * tears down (e.g. parent Graph `destroy()`). User-supplied work fns that
112
+ * do long-running async (HTTP, LLM streams, evaluator subgraphs) can
113
+ * forward this signal into `fetch({ signal })`, `adapter.invoke({ signal
114
+ * })`, etc. for cooperative cancellation. Sync work fns ignore `opts` —
115
+ * the second arg is optional, no behavior change for legacy callers.
116
+ *
117
+ * Mirrors the `LLMInvokeOptions.signal` / `apply(item, { signal })` /
118
+ * tool-handler `(args, { signal })` precedents — same shape across the
119
+ * library's user-callback boundaries.
105
120
  */
106
- type WorkFn<T> = (job: JobEnvelope<T>) => NodeInput<T>;
121
+ type WorkFn<T> = (job: JobEnvelope<T>, opts?: {
122
+ signal: AbortSignal;
123
+ }) => NodeInput<T>;
107
124
  /**
108
125
  * Stage definition for {@link JobFlowGraph}. Either a bare name string
109
126
  * (no work hook, pure pass-through) or a full definition object.
@@ -125,6 +142,21 @@ type StageDef<T> = string | {
125
142
  * turn falls back to `DEFAULT_MAX_PER_PUMP` (256).
126
143
  */
127
144
  maxPerPump?: number;
145
+ /**
146
+ * Per-stage cap on TOTAL concurrent inflight claims (Tier 6.5 3.1,
147
+ * 2026-04-29). Distinct from {@link maxPerPump}: `maxPerPump` caps
148
+ * claims per pump tick, while `maxInflight` caps the number of
149
+ * unsettled in-flight claims at any moment across all ticks. Use
150
+ * for rigorous LLM cost ceilings (e.g. "no more than 4 concurrent
151
+ * adapter.invoke calls regardless of pending depth").
152
+ *
153
+ * When set, the stage mounts an internal `state(0)` counter as a
154
+ * pump dep so the pump re-fires on each settle — pending items
155
+ * resume claiming as soon as inflight drops below the cap.
156
+ *
157
+ * Unset (default): unbounded inflight, gated only by `maxPerPump`.
158
+ */
159
+ maxInflight?: number;
128
160
  };
129
161
  type JobFlowOptions<T = unknown> = {
130
162
  graph?: GraphOptions;
@@ -1,6 +1,6 @@
1
- import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-Dsvob4zD.cjs';
2
- import { N as Node } from './node-ClS5yC-B.cjs';
3
- import { G as Graph } from './graph-C4SHb3Ly.cjs';
1
+ import { M as MeasurementAdapter, P as PreparedSegment, L as LineBreaksResult, C as CharPosition, a as LayoutCursor, I as Interval, b as LayoutLine, c as LayoutNextLineContext, d as LayoutNextLineResult, R as ReactiveLayoutBundle, e as ReactiveLayoutOptions, S as SegmentBreakKind, f as SegmentMeasureStats, g as analyzeAndMeasure, h as carveTextLineSlots, i as computeCharPositions, j as computeLineBreaks, l as layoutNextLine, r as reactiveLayout } from './reactive-layout-DgctbqZo.cjs';
2
+ import { N as Node } from './node-kK3CvTrR.cjs';
3
+ import { G as Graph } from './graph-CWvEUQAq.cjs';
4
4
 
5
5
  /**
6
6
  * MeasurementAdapter implementations (roadmap §7.1 — pluggable backends).
@@ -1,4 +1,4 @@
1
- import { N as Node } from './node-ClS5yC-B.js';
1
+ import { N as Node } from './node-kK3CvTrR.js';
2
2
 
3
3
  /**
4
4
  * Options for creating an atom.
@@ -1,9 +1,9 @@
1
- import { N as Node } from './node-ClS5yC-B.js';
2
- import { B as BaseAuditRecord } from './index-DO9XxMzS.js';
3
- import { a as ReactiveLogBundle } from './reactive-log-BezYsbA_.js';
1
+ import { N as Node } from './node-kK3CvTrR.js';
2
+ import { B as BaseAuditRecord } from './index-Yq60JP3s.js';
3
+ import { a as ReactiveLogBundle } from './reactive-log-BKALbfal.js';
4
4
  import { NodeInput } from './extra/sources.js';
5
5
  import { AppendLogStorageTier } from './extra/storage-tiers.js';
6
- import { G as Graph, a as GraphOptions } from './graph-7VguS7a4.js';
6
+ import { G as Graph, a as GraphOptions } from './graph-D9LFnda9.js';
7
7
 
8
8
  /**
9
9
  * Job queue patterns (roadmap §4.2).
@@ -97,13 +97,30 @@ declare class JobQueueGraph<T> extends Graph {
97
97
  }): () => void;
98
98
  }
99
99
  /**
100
- * Work function for a job flow stage. Receives the full job envelope,
101
- * returns a `NodeInput<T>` raw value (sync), Promise (async), or Node
102
- * (composed pipeline). `fromAny` coerces any of these shapes.
100
+ * Work function for a job flow stage. Receives the full job envelope and
101
+ * an optional per-claim options object carrying an `AbortSignal`; returns
102
+ * a `NodeInput<T>` — raw value (sync), Promise (async), or Node (composed
103
+ * pipeline). `fromAny` coerces any of these shapes.
103
104
  *
104
105
  * On error / rejection: the stage nacks the job (no requeue by default).
106
+ *
107
+ * **Per-claim signal (Tier 6.5 2.5b, 2026-04-29).** The pump mints an
108
+ * `AbortController` per claim and supplies its `signal` via `opts`. The
109
+ * signal aborts when (a) the result node settles (first DATA / first
110
+ * ERROR — auto-cleanup after the pump captures), OR (b) the pump itself
111
+ * tears down (e.g. parent Graph `destroy()`). User-supplied work fns that
112
+ * do long-running async (HTTP, LLM streams, evaluator subgraphs) can
113
+ * forward this signal into `fetch({ signal })`, `adapter.invoke({ signal
114
+ * })`, etc. for cooperative cancellation. Sync work fns ignore `opts` —
115
+ * the second arg is optional, no behavior change for legacy callers.
116
+ *
117
+ * Mirrors the `LLMInvokeOptions.signal` / `apply(item, { signal })` /
118
+ * tool-handler `(args, { signal })` precedents — same shape across the
119
+ * library's user-callback boundaries.
105
120
  */
106
- type WorkFn<T> = (job: JobEnvelope<T>) => NodeInput<T>;
121
+ type WorkFn<T> = (job: JobEnvelope<T>, opts?: {
122
+ signal: AbortSignal;
123
+ }) => NodeInput<T>;
107
124
  /**
108
125
  * Stage definition for {@link JobFlowGraph}. Either a bare name string
109
126
  * (no work hook, pure pass-through) or a full definition object.
@@ -125,6 +142,21 @@ type StageDef<T> = string | {
125
142
  * turn falls back to `DEFAULT_MAX_PER_PUMP` (256).
126
143
  */
127
144
  maxPerPump?: number;
145
+ /**
146
+ * Per-stage cap on TOTAL concurrent inflight claims (Tier 6.5 3.1,
147
+ * 2026-04-29). Distinct from {@link maxPerPump}: `maxPerPump` caps
148
+ * claims per pump tick, while `maxInflight` caps the number of
149
+ * unsettled in-flight claims at any moment across all ticks. Use
150
+ * for rigorous LLM cost ceilings (e.g. "no more than 4 concurrent
151
+ * adapter.invoke calls regardless of pending depth").
152
+ *
153
+ * When set, the stage mounts an internal `state(0)` counter as a
154
+ * pump dep so the pump re-fires on each settle — pending items
155
+ * resume claiming as soon as inflight drops below the cap.
156
+ *
157
+ * Unset (default): unbounded inflight, gated only by `maxPerPump`.
158
+ */
159
+ maxInflight?: number;
128
160
  };
129
161
  type JobFlowOptions<T = unknown> = {
130
162
  graph?: GraphOptions;
@@ -1,18 +1,18 @@
1
- import { T as TokenUsage, L as LLMAdapter, P as PricingFn, C as ChatMessage, a as LLMInvokeOptions, d as ToolDefinition, b as LLMResponse, S as StreamDelta, c as ToolCall, e as CapabilitiesRegistry, M as ModelCapabilities, f as ModelFeatures, g as ModelLimits, h as ModelPricing, i as PriceBreakdown, j as PricingRegistry, R as Rate, k as TieredRate, l as composePricing, m as computePrice, n as createCapabilitiesRegistry, o as createPricingRegistry, p as pricingFor, r as registryPricing, z as zeroPrice } from './types-B1jDWVsM.cjs';
2
- import { a as CascadeExhaustionReport, A as AdapterProvider, b as AdapterTier, d as AllTiersExhaustedError, C as CascadingLlmAdapterOptions, e as CreateAdapterOptions, O as OpenAICompatAdapterOptions, f as OpenAICompatPreset, g as OpenAISdkLike, h as cascadingLlmAdapter, c as createAdapter, o as openAICompatAdapter, t as tier } from './cascading-CH-_VwG9.cjs';
3
- import { N as Node, A as Actor } from './node-ClS5yC-B.cjs';
4
- import { a as ReactiveLogBundle } from './reactive-log-B00laMSQ.cjs';
5
- import { b as CircuitBreakerOptions, C as CircuitBreaker, c as CircuitOpenError } from './index-BoLv_OfD.cjs';
1
+ import { T as TokenUsage, L as LLMAdapter, P as PricingFn, C as ChatMessage, a as LLMInvokeOptions, d as ToolDefinition, b as LLMResponse, S as StreamDelta, c as ToolCall, e as CapabilitiesRegistry, M as ModelCapabilities, f as ModelFeatures, g as ModelLimits, h as ModelPricing, i as PriceBreakdown, j as PricingRegistry, R as Rate, k as TieredRate, l as composePricing, m as computePrice, n as createCapabilitiesRegistry, o as createPricingRegistry, p as pricingFor, r as registryPricing, z as zeroPrice } from './types-C0_yquda.cjs';
2
+ import { a as CascadeExhaustionReport, A as AdapterProvider, b as AdapterTier, d as AllTiersExhaustedError, C as CascadingLlmAdapterOptions, e as CreateAdapterOptions, O as OpenAICompatAdapterOptions, f as OpenAICompatPreset, g as OpenAISdkLike, h as cascadingLlmAdapter, c as createAdapter, o as openAICompatAdapter, t as tier } from './cascading-BglDkMdX.cjs';
3
+ import { N as Node, A as Actor } from './node-kK3CvTrR.cjs';
4
+ import { a as ReactiveLogBundle } from './reactive-log-DIGdYqQ6.cjs';
5
+ import { b as CircuitBreakerOptions, C as CircuitBreaker, c as CircuitOpenError } from './index-C1T3d7V-.cjs';
6
6
  import { NodeInput } from './extra/sources.cjs';
7
- import { W as WithReplayCacheOptions, F as FallbackAdapterOptions, a as FallbackFixture, b as FallbackMissError, c as FallbackMissPolicy, R as ReplayCacheKeyContext, d as ReplayCacheMissError, e as ReplayCacheMode, f as canonicalJson, g as fallbackAdapter, w as withReplayCache } from './fallback-Ctlj2tMY.cjs';
8
- import { E as Extraction, D as DistillBundle, f as DEFAULT_DECAY_RATE } from './decay-2ZukgQ4o.cjs';
9
- import { G as Graph, a as GraphOptions, i as GraphCheckpointRecord, h as GraphAttachStorageOptions } from './graph-C4SHb3Ly.cjs';
10
- import { T as TopicGraph } from './index-BTQtTb_H.cjs';
11
- import { G as GateController, c as GateOptions } from './pipeline-graph-WBlobVhU.cjs';
12
- import { V as VectorSearchResult, C as CollectionGraph, a as VectorIndexGraph, K as KnowledgeGraph } from './index-2B7u2pVn.cjs';
7
+ import { W as WithReplayCacheOptions, F as FallbackAdapterOptions, a as FallbackFixture, b as FallbackMissError, c as FallbackMissPolicy, R as ReplayCacheKeyContext, d as ReplayCacheMissError, e as ReplayCacheMode, f as canonicalJson, g as fallbackAdapter, w as withReplayCache } from './fallback-74oxi34l.cjs';
8
+ import { E as Extraction, a as DistillOptions, D as DistillBundle, f as DEFAULT_DECAY_RATE } from './decay-CFlLvXUT.cjs';
9
+ import { G as Graph, a as GraphOptions, i as GraphCheckpointRecord, h as GraphAttachStorageOptions } from './graph-CWvEUQAq.cjs';
10
+ import { T as TopicGraph } from './index-C5ri2Axc.cjs';
11
+ import { G as GateController, c as GateOptions } from './pipeline-graph-CIKhynsF.cjs';
12
+ import { V as VectorSearchResult, C as CollectionGraph, a as VectorIndexGraph, K as KnowledgeGraph } from './index-B17QddL1.cjs';
13
13
  import { StorageHandle } from './extra/storage-core.cjs';
14
14
  import { SnapshotStorageTier } from './extra/storage-tiers.cjs';
15
- import { c as GraphSpecCatalog } from './index-Du7u1lSf.cjs';
15
+ import { c as GraphSpecCatalog } from './index-CS0LTlB8.cjs';
16
16
 
17
17
  /**
18
18
  * Observable adapter wrapper — the "inverted statistics" surface.
@@ -1902,24 +1902,49 @@ declare function memoryWithKG<TMem>(graph: Graph, store: DistillBundle<TMem>, na
1902
1902
  kg: KnowledgeGraph<unknown, string>;
1903
1903
  dispose: () => void;
1904
1904
  };
1905
- type MemoryWithTiersOptions<TMem> = MemoryTiersOptions<TMem> & {
1905
+ /**
1906
+ * Full options for {@link memoryWithTiers} (Tier 4.1 B + 4.3 B refactor,
1907
+ * 2026-04-29). Combines tier-policy options with the distill-side options
1908
+ * needed to construct the underlying store — `memoryWithTiers` is now the
1909
+ * **construction site** for the distill bundle so it can wire
1910
+ * `reactiveMap.retention` into the store at construction (eliminating the
1911
+ * §7 feedback cycle the previous `tierClassifier` effect carried).
1912
+ *
1913
+ * The retention config built internally maps tier policy to the substrate:
1914
+ * - `archiveThreshold` → `retention.archiveThreshold`
1915
+ * - `maxActive` → `retention.maxSize`
1916
+ * - per-entry `decay(score(mem, ctx), age, decayRate)` → `retention.score`
1917
+ * (capturing `latestCtx` + `entryCreatedAtNs` via closure-mirror; permanent
1918
+ * entries score `Infinity` to bypass eviction).
1919
+ */
1920
+ type MemoryWithTiersOptions<TMem> = MemoryTiersOptions<TMem> & Omit<DistillOptions<TMem>, "mapOptions" | "score" | "context"> & {
1906
1921
  /** Score function — same signature as `agentMemory.score`. */
1907
1922
  score: (mem: TMem, context: unknown) => number;
1908
1923
  /** Optional reactive context node (passed to `score`). */
1909
1924
  context?: NodeInput<unknown>;
1910
1925
  };
1911
1926
  /**
1912
- * Attach 3-tier storage (active / archived / permanent) to a `DistillBundle`.
1913
- * Wires a `tierClassifier` effect that:
1914
- * - Promotes entries matching `permanentFilter` into the permanent tier.
1915
- * - Archives entries whose decayed score falls below `archiveThreshold`.
1916
- * - Caps the active tier at `maxActive`, evicting lowest-scored on overflow.
1917
- *
1918
- * **Closure state caveat (Unit 7 Q3 deferred):** `permanentKeys` +
1919
- * `entryCreatedAtNs` are still closure-held for now; promotion to reactive
1920
- * nodes is tracked in `docs/optimizations.md`.
1921
- */
1922
- declare function memoryWithTiers<TMem>(graph: Graph, store: DistillBundle<TMem>, opts: MemoryWithTiersOptions<TMem>): {
1927
+ * Attach 3-tier storage (active / archived / permanent) to a fresh distill
1928
+ * store, wiring `reactiveMap.retention` at construction so archival happens
1929
+ * synchronously inside the substrate's mutation pipeline (no §7 feedback
1930
+ * cycle). Promotes `permanentKeys` and `entryCreatedAtNs` to reactive maps
1931
+ * mounted on the graph (Tier 4.3 B Unit 7 Q3) so `describe()`/`explain()`
1932
+ * can walk to "why was X archived?".
1933
+ *
1934
+ * **API shape** (Tier 4.1 B, 2026-04-29 breaking change vs. pre-refactor):
1935
+ * `memoryWithTiers` constructs the distill bundle internally rather than
1936
+ * accepting a pre-built one. Callers pass `(graph, source, extractFn,
1937
+ * opts)`. The bundle is exposed as `result.store` for downstream composers
1938
+ * (vectors / KG / retrieval).
1939
+ *
1940
+ * - `permanentFilter`-matching entries score `Infinity` in retention →
1941
+ * never archived. Independent permanent-promotion effect upserts them
1942
+ * into the `permanent` collection.
1943
+ * - Below-threshold entries → retention archives synchronously.
1944
+ * - Over-`maxActive` entries → retention's `maxSize` evicts lowest-scored.
1945
+ */
1946
+ declare function memoryWithTiers<TRaw, TMem>(graph: Graph, source: NodeInput<TRaw>, extractFn: (raw: Node<TRaw>, existing: Node<ReadonlyMap<string, TMem>>) => NodeInput<Extraction<TMem>>, opts: MemoryWithTiersOptions<TMem>): {
1947
+ store: DistillBundle<TMem>;
1923
1948
  tiers: MemoryTiersBundle<TMem>;
1924
1949
  dispose: () => void;
1925
1950
  };
@@ -1,6 +1,6 @@
1
- import { b as NodeGuard, N as Node } from './node-ClS5yC-B.cjs';
2
- import { G as Graph } from './graph-C4SHb3Ly.cjs';
3
- import { R as ReactiveLogOptions, a as ReactiveLogBundle } from './reactive-log-B00laMSQ.cjs';
1
+ import { b as NodeGuard, N as Node } from './node-kK3CvTrR.js';
2
+ import { G as Graph } from './graph-D9LFnda9.js';
3
+ import { R as ReactiveLogOptions, a as ReactiveLogBundle } from './reactive-log-BKALbfal.js';
4
4
 
5
5
  /**
6
6
  * Audited-mutation framework (Audit 2 — locked 2026-04-24; promoted to
@@ -106,21 +106,6 @@ type MutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAudit
106
106
  };
107
107
  type WrapMutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = MutationOpts<TArgs, TResult, R>;
108
108
  type LightMutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = MutationOpts<TArgs, TResult, R>;
109
- /**
110
- * Advance a cursor node and return the new value. Emits `[DIRTY], [DATA, next]`
111
- * directly on the cursor — atomic outside a batch, rollback-discardable inside.
112
- *
113
- * Resets to `0` if the cursor cache is missing, non-numeric, `NaN`, or
114
- * non-finite (e.g. corrupted by `restore()` from a malformed snapshot, or
115
- * by a misbehaving codec). `??` alone would let `NaN` and `""` pass through
116
- * and silently corrupt audit ordering downstream.
117
- *
118
- * Works whether or not the cursor has any subscribers — `down` updates the
119
- * cache regardless, so primitives that bump before consumers attach (e.g.
120
- * `JobQueueGraph.enqueue`) still see a coherent sequence.
121
- *
122
- * @category internal
123
- */
124
109
  declare function bumpCursor(seq: Node<number>): number;
125
110
  /**
126
111
  * Build a record via the supplied builder, stamp `handlerVersion` if present,
@@ -1,4 +1,4 @@
1
- import { G as Graph } from './graph-C4SHb3Ly.cjs';
1
+ import { G as Graph } from './graph-CWvEUQAq.cjs';
2
2
 
3
3
  /** Zustand-compatible Store API. */
4
4
  interface StoreApi<T> {
@@ -1,4 +1,4 @@
1
- import { N as Node } from './node-ClS5yC-B.cjs';
1
+ import { N as Node } from './node-kK3CvTrR.cjs';
2
2
 
3
3
  /** Svelte store contract — implements the minimal `subscribe` method. */
4
4
  interface SvelteReadable<T> {
@@ -1,4 +1,4 @@
1
- import { N as Node } from './node-ClS5yC-B.cjs';
1
+ import { N as Node } from './node-kK3CvTrR.cjs';
2
2
 
3
3
  /** Solid accessor function — returns current value when called. */
4
4
  type Accessor<T> = () => T;
@@ -1,6 +1,6 @@
1
- import { N as Node } from './node-ClS5yC-B.js';
2
- import { G as Graph, a as GraphOptions } from './graph-7VguS7a4.js';
3
- import { a as ReactiveLogBundle } from './reactive-log-BezYsbA_.js';
1
+ import { N as Node } from './node-kK3CvTrR.js';
2
+ import { G as Graph, a as GraphOptions } from './graph-D9LFnda9.js';
3
+ import { a as ReactiveLogBundle } from './reactive-log-BKALbfal.js';
4
4
  import { AppendLogStorageTier } from './extra/storage-tiers.js';
5
5
 
6
6
  type TopicOptions = {
@@ -1,8 +1,8 @@
1
- import { B as BaseAuditRecord } from './index-DO9XxMzS.js';
2
- import { a as ReactiveLogBundle } from './reactive-log-BezYsbA_.js';
1
+ import { B as BaseAuditRecord } from './index-Yq60JP3s.js';
2
+ import { a as ReactiveLogBundle } from './reactive-log-BKALbfal.js';
3
3
  import { NodeInput } from './extra/sources.js';
4
- import { AppendLogStorageTier } from './extra/storage-tiers.js';
5
- import { C as CqrsEventMap, a as CqrsEvent, b as CqrsGraph } from './index-D8l8hNXn.js';
4
+ import { AppendLogStorageTier, KvStorageTier } from './extra/storage-tiers.js';
5
+ import { C as CqrsEventMap, a as CqrsEvent, b as CqrsGraph } from './index-CeFiHtAg.js';
6
6
 
7
7
  /**
8
8
  * Process Manager pattern (Phase 7 — roadmap §4.6, Audit 3 — locked 2026-04-24).
@@ -16,9 +16,9 @@ import { C as CqrsEventMap, a as CqrsEvent, b as CqrsGraph } from './index-D8l8h
16
16
  * - Per-instance state lives in a `Map<correlationId, TState>` closure (in-memory).
17
17
  * The `_process_<name>_started` synthetic event is dispatched per `start()`
18
18
  * for an event-sourced audit trail using `correlationId` as `aggregateId`.
19
- * Future state-snapshot persistence (`_process_<name>_state`) is reserved
20
- * under the same `_process_<name>_*` namespace but not yet implemented;
21
- * see `docs/optimizations.md` "Deferred follow-ups".
19
+ * Cross-restart state recovery is opt-in via
20
+ * `opts.persistence.stateStorage` (kv-tier per-correlationId snapshot,
21
+ * Tier 6.5 3.5) plus an explicit `restore()` call after construction.
22
22
  * - Watched-event subscriptions are imperative (coordinator role) — each
23
23
  * watched CQRS event type is subscribed to via `entries.subscribe(...)`.
24
24
  * These are NOT reactive node edges; the process manager is intentionally
@@ -127,6 +127,30 @@ interface ProcessInstance<TState> extends BaseAuditRecord {
127
127
  * Recommended `keyOf` for storage tiers keyed by correlationId (Audit 2).
128
128
  */
129
129
  declare const processInstanceKeyOf: <TState>(i: ProcessInstance<TState>) => string;
130
+ /**
131
+ * Per-correlationId state snapshot persisted via
132
+ * {@link ProcessManagerOpts.persistence.stateStorage} (Tier 6.5 3.5,
133
+ * 2026-04-29). Captures the running instance's current state plus
134
+ * lifecycle metadata so a fresh `processManager` can resume in-flight
135
+ * workflows after restart via {@link ProcessManagerResult.restore}.
136
+ *
137
+ * Terminal records (`status` ∈ `"terminated" | "errored" | "compensated"`)
138
+ * are deleted from the kv tier on transition — only running instances
139
+ * persist between restarts.
140
+ */
141
+ interface ProcessStateSnapshot<TState> {
142
+ readonly correlationId: string;
143
+ readonly state: TState;
144
+ readonly status: "running" | "terminated" | "errored" | "compensated";
145
+ readonly startedAt: number;
146
+ readonly updatedAt: number;
147
+ readonly handlerVersion?: {
148
+ id: string;
149
+ version: string | number;
150
+ };
151
+ }
152
+ /** Recommended `keyOf` for `KvStorageTier<ProcessStateSnapshot<...>>`. */
153
+ declare const processStateKeyOf: <TState>(s: ProcessStateSnapshot<TState>) => string;
130
154
  /**
131
155
  * Options for {@link processManager}.
132
156
  */
@@ -184,6 +208,23 @@ interface ProcessManagerOpts<TState, EM extends CqrsEventMap> {
184
208
  * Reuses `CqrsGraph.attachEventStorage` so events persist across restarts.
185
209
  */
186
210
  eventStorage?: readonly AppendLogStorageTier<CqrsEvent>[];
211
+ /**
212
+ * Wire per-correlationId state snapshots to kv tiers (Tier 6.5 3.5,
213
+ * 2026-04-29). Each `start()` and step transition writes the running
214
+ * instance's state under its `correlationId`; terminal transitions
215
+ * (`terminated` / `errored` / `compensated`) `delete` the key. After
216
+ * restart, callers invoke {@link ProcessManagerResult.restore} to
217
+ * reload running instances from the first tier.
218
+ *
219
+ * Uses {@link KvStorageTier} (not snapshot tier) because per-instance
220
+ * state is N records keyed by correlationId, not a single global
221
+ * snapshot. {@link processStateKeyOf} is the recommended `keyOf`
222
+ * (already aligned with the kv tier's `save(key, value)` shape).
223
+ *
224
+ * Terminal records are NOT preserved — historical lifecycle is the
225
+ * audit log's job. State persistence covers crash-recovery only.
226
+ */
227
+ stateStorage?: readonly KvStorageTier<ProcessStateSnapshot<TState>>[];
187
228
  };
188
229
  }
189
230
  /**
@@ -228,6 +269,22 @@ interface ProcessManagerResult<TState> {
228
269
  * Returns `undefined` if the instance does not exist or has terminated.
229
270
  */
230
271
  getState(correlationId: string): TState | undefined;
272
+ /**
273
+ * Restore running instances from the first {@link
274
+ * ProcessManagerOpts.persistence.stateStorage} tier (Tier 6.5 3.5,
275
+ * 2026-04-29). Loads every record in the tier and re-hydrates
276
+ * `instanceStates` / `activeInstances` / `startedAt` for any record
277
+ * whose `status === "running"`. Terminal records, if any persisted
278
+ * before delete fired, are silently skipped.
279
+ *
280
+ * Idempotent — calling twice doesn't double-restore (existing entries
281
+ * are overwritten). Returns the count of running instances rehydrated.
282
+ *
283
+ * No-op when no `stateStorage` tier is configured OR the first tier
284
+ * lacks a `list?` method (returns 0). Async because kv tier `load` /
285
+ * `list` may be async.
286
+ */
287
+ restore(): Promise<number>;
231
288
  /**
232
289
  * Release all watched-event subscriptions and stop processing new events.
233
290
  *
@@ -288,12 +345,14 @@ type index_ProcessInstance<TState> = ProcessInstance<TState>;
288
345
  type index_ProcessManagerOpts<TState, EM extends CqrsEventMap> = ProcessManagerOpts<TState, EM>;
289
346
  type index_ProcessManagerResult<TState> = ProcessManagerResult<TState>;
290
347
  type index_ProcessSchedule = ProcessSchedule;
348
+ type index_ProcessStateSnapshot<TState> = ProcessStateSnapshot<TState>;
291
349
  type index_ProcessStep<TState, EM extends CqrsEventMap, K extends keyof EM & string> = ProcessStep<TState, EM, K>;
292
350
  type index_ProcessStepResult<TState> = ProcessStepResult<TState>;
293
351
  declare const index_processInstanceKeyOf: typeof processInstanceKeyOf;
294
352
  declare const index_processManager: typeof processManager;
353
+ declare const index_processStateKeyOf: typeof processStateKeyOf;
295
354
  declare namespace index {
296
- export { type index_ProcessCompensate as ProcessCompensate, type index_ProcessInstance as ProcessInstance, type index_ProcessManagerOpts as ProcessManagerOpts, type index_ProcessManagerResult as ProcessManagerResult, type index_ProcessSchedule as ProcessSchedule, type index_ProcessStep as ProcessStep, type index_ProcessStepResult as ProcessStepResult, index_processInstanceKeyOf as processInstanceKeyOf, index_processManager as processManager };
355
+ export { type index_ProcessCompensate as ProcessCompensate, type index_ProcessInstance as ProcessInstance, type index_ProcessManagerOpts as ProcessManagerOpts, type index_ProcessManagerResult as ProcessManagerResult, type index_ProcessSchedule as ProcessSchedule, type index_ProcessStateSnapshot as ProcessStateSnapshot, type index_ProcessStep as ProcessStep, type index_ProcessStepResult as ProcessStepResult, index_processInstanceKeyOf as processInstanceKeyOf, index_processManager as processManager, index_processStateKeyOf as processStateKeyOf };
297
356
  }
298
357
 
299
- export { type ProcessCompensate as P, type ProcessInstance as a, type ProcessManagerOpts as b, type ProcessManagerResult as c, type ProcessSchedule as d, type ProcessStep as e, type ProcessStepResult as f, processManager as g, index as i, processInstanceKeyOf as p };
358
+ export { type ProcessCompensate as P, type ProcessInstance as a, type ProcessManagerOpts as b, type ProcessManagerResult as c, type ProcessSchedule as d, type ProcessStateSnapshot as e, type ProcessStep as f, type ProcessStepResult as g, processManager as h, index as i, processStateKeyOf as j, processInstanceKeyOf as p };
@@ -1,4 +1,4 @@
1
- import { G as Graph } from './graph-7VguS7a4.js';
1
+ import { G as Graph } from './graph-D9LFnda9.js';
2
2
 
3
3
  /** Zustand-compatible Store API. */
4
4
  interface StoreApi<T> {
@@ -1,5 +1,5 @@
1
- import { N as Node, a as NodeOptions } from './node-ClS5yC-B.cjs';
2
- import { a as GraphOptions, G as Graph } from './graph-C4SHb3Ly.cjs';
1
+ import { N as Node, a as NodeOptions } from './node-kK3CvTrR.cjs';
2
+ import { a as GraphOptions, G as Graph } from './graph-CWvEUQAq.cjs';
3
3
 
4
4
  /**
5
5
  * Reduction primitives (roadmap §8.1).