@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,5 +1,5 @@
1
- import { A as Actor, n as GraphReFlyConfig, V as VersioningLevel, N as Node, M as Messages, K as NodeSink } from './node-ClS5yC-B.cjs';
2
- import { D as DescribeNodeOutput, a as DescribeDetail, b as DescribeField } from './meta-vE8bxW1E.cjs';
1
+ import { A as Actor, l as GraphReFlyConfig, V as VersioningLevel, N as Node, M as Messages, K as NodeSink } from './node-kK3CvTrR.cjs';
2
+ import { D as DescribeNodeOutput, a as DerivedFn, E as EffectFn, c as DescribeDetail, d as DescribeField } from './sugar-DQjFmVqb.cjs';
3
3
  import { StorageHandle } from './extra/storage-core.cjs';
4
4
  import { SnapshotStorageTier } from './extra/storage-tiers.cjs';
5
5
 
@@ -334,6 +334,73 @@ interface GraphOptions {
334
334
  factoryArgs?: unknown;
335
335
  [key: string]: unknown;
336
336
  }
337
+ /**
338
+ * Options for {@link Graph.derived}. Forwarded to the underlying
339
+ * {@link derived} primitive plus graph-level extras.
340
+ *
341
+ * - `keepAlive: true` — installs an internal subscription so the node
342
+ * stays activated and `.cache` stays current for **external consumers**
343
+ * (UI render, debug snapshot, audit log) with no real subscriber. The
344
+ * subscription self-prunes on the node's terminal (`COMPLETE` / `ERROR`
345
+ * / `TEARDOWN`) and is also drained by {@link Graph.destroy}, so
346
+ * repeated `graph.remove(name)` cycles do not accumulate stale
347
+ * disposers.
348
+ *
349
+ * **Do not read `node.cache` from inside another reactive fn** (spec
350
+ * §5.12) — declare the node as a real dep instead. `keepAlive` is a
351
+ * convenience for *external* read patterns, not a shortcut around the
352
+ * message protocol.
353
+ * - `signal` — when aborted, removes this node from the graph via
354
+ * {@link Graph.remove}, which sends `[[TEARDOWN]]` and drains cleanup
355
+ * hooks. Already-aborted signals trigger removal synchronously.
356
+ * - `equals`, `initial`, `meta` — pass-through to {@link NodeOptions}.
357
+ * - `annotation` — forwarded to {@link Graph.add} (see `graph.trace`).
358
+ */
359
+ interface GraphDerivedOptions<T> {
360
+ equals?: (a: T, b: T) => boolean;
361
+ initial?: T | null;
362
+ keepAlive?: boolean;
363
+ signal?: AbortSignal;
364
+ meta?: Record<string, unknown>;
365
+ annotation?: string;
366
+ }
367
+ /**
368
+ * Options for {@link Graph.effect}.
369
+ *
370
+ * - `signal` — when aborted, removes this node from the graph via
371
+ * {@link Graph.remove} (fires the effect's `deactivate` cleanup).
372
+ * - `meta` / `annotation` — same forwarding shape as
373
+ * {@link GraphDerivedOptions}.
374
+ */
375
+ interface GraphEffectOptions {
376
+ signal?: AbortSignal;
377
+ meta?: Record<string, unknown>;
378
+ annotation?: string;
379
+ }
380
+ /**
381
+ * Options for {@link Graph.produce}.
382
+ *
383
+ * - `signal` — forwarded to the underlying {@link fromAny} for in-flight
384
+ * cancellation of `Promise` / `AsyncIterable` sources, AND triggers
385
+ * {@link Graph.remove} when aborted so the graph topology reflects the
386
+ * cancellation.
387
+ * - `equals` / `meta` / `annotation` — same forwarding shape as
388
+ * {@link GraphDerivedOptions}.
389
+ */
390
+ interface GraphProduceOptions<T> {
391
+ equals?: (a: T, b: T) => boolean;
392
+ signal?: AbortSignal;
393
+ meta?: Record<string, unknown>;
394
+ annotation?: string;
395
+ }
396
+ /**
397
+ * Source shapes accepted by {@link Graph.produce}. Excludes `Node<T>` —
398
+ * Node→Node passthrough is rejected at the boundary because `fromAny`
399
+ * passes Nodes through verbatim, which would silently drop `meta`/`equals`
400
+ * options and bypass the `add()` registration's name semantics. For
401
+ * Node→Node, use {@link Graph.derived} with `keepAlive: true` instead.
402
+ */
403
+ type GraphProduceInput<T> = PromiseLike<T> | AsyncIterable<T> | Iterable<T> | T;
337
404
  /** Filter for {@link Graph.describe} — object-style partial match or predicate. */
338
405
  type DescribeFilter = Partial<Pick<DescribeNodeOutput, "type" | "status">> | {
339
406
  type?: DescribeNodeOutput["type"];
@@ -1035,6 +1102,115 @@ declare class Graph {
1035
1102
  * TEARDOWN and unregisters the node).
1036
1103
  */
1037
1104
  complete(name: string, options?: GraphActorOptions): void;
1105
+ /**
1106
+ * Internal: register a self-pruning keepalive subscription. The sink
1107
+ * watches for terminal messages (`COMPLETE`/`ERROR`/`TEARDOWN`) on `n`
1108
+ * and removes the disposer from `_disposers` when one arrives, so
1109
+ * repeated `graph.remove(name)` cycles do not accumulate stale
1110
+ * disposers (qa B3).
1111
+ */
1112
+ private _registerSelfPruningKeepalive;
1113
+ /**
1114
+ * Internal: wire an `AbortSignal` so its abort triggers
1115
+ * `graph.remove(name)`. Already-aborted signals trigger removal
1116
+ * synchronously. The abort listener is itself registered as a graph
1117
+ * disposer so it gets cleaned up if `destroy()` runs first (qa B4).
1118
+ */
1119
+ private _wireSignalToRemove;
1120
+ /**
1121
+ * Path-based reactive derivation. Resolves each entry in `depPaths` via
1122
+ * {@link Graph.resolve}, builds a {@link derived} node, registers it via
1123
+ * {@link Graph.add}, and returns the registered Node.
1124
+ *
1125
+ * **First-run gate inherited.** fn does not fire until every dep has
1126
+ * delivered at least one real DATA — same gate as `derived()` (spec §2.7,
1127
+ * `partial: false`). A SENTINEL dep holds activation; `null` is a real
1128
+ * DATA value and releases the gate. **Empty `depPaths` is a vacuous
1129
+ * gate** — fn fires once synchronously on first activation. Use this
1130
+ * for one-shot constants only; for async sources prefer
1131
+ * {@link Graph.produce}.
1132
+ *
1133
+ * **`keepAlive: true`** — installs an internal subscription so the node
1134
+ * stays activated and `.cache` stays current for **external consumers**
1135
+ * (UI render, debug snapshot, audit log). The subscription self-prunes
1136
+ * on the node's terminal and is also drained by {@link Graph.destroy}.
1137
+ *
1138
+ * **Do not read `node.cache` from inside another reactive fn** — that
1139
+ * is a §5.12 boundary violation regardless of `keepAlive`. Declare the
1140
+ * node as a real dep instead so the edge appears in `describe()` and
1141
+ * the message protocol carries the value.
1142
+ *
1143
+ * **`signal`** — when aborted, removes this node from the graph.
1144
+ *
1145
+ * @param name - Local registration name (must be unique on this graph).
1146
+ * @param depPaths - `::`-qualified paths resolved at construction time.
1147
+ * @param fn - Pure compute receiving sugar-unwrapped scalar dep values.
1148
+ * @param opts - {@link GraphDerivedOptions}.
1149
+ * @returns The registered `Node<T>`.
1150
+ */
1151
+ derived<T>(name: string, depPaths: readonly string[], fn: DerivedFn<T>, opts?: GraphDerivedOptions<T>): Node<T>;
1152
+ /**
1153
+ * Path-based managed side effect. Resolves each entry in `depPaths`,
1154
+ * builds an {@link effect} node, registers it, and returns the
1155
+ * registered Node. fn does not auto-emit — call `actions.emit(v)` /
1156
+ * `actions.down(msgs)` explicitly to produce downstream messages.
1157
+ *
1158
+ * **Cleanup.** Return a cleanup function (`() => void`) or granular
1159
+ * hooks (`{ beforeRun?, deactivate?, invalidate? }`) — fired on the
1160
+ * matching transition by the underlying primitive (see
1161
+ * {@link NodeFnCleanup}). Graph teardown propagates `[[TEARDOWN]]`
1162
+ * which triggers `deactivate`.
1163
+ *
1164
+ * **`signal`** — when aborted, removes this node from the graph (fires
1165
+ * the effect's `deactivate` cleanup).
1166
+ *
1167
+ * @param name - Local registration name (must be unique on this graph).
1168
+ * @param depPaths - `::`-qualified paths resolved at construction time.
1169
+ * @param fn - Side-effect receiving sugar-unwrapped scalar dep values.
1170
+ * @param opts - {@link GraphEffectOptions}.
1171
+ * @returns The registered `Node<unknown>`.
1172
+ */
1173
+ effect(name: string, depPaths: readonly string[], fn: EffectFn, opts?: GraphEffectOptions): Node<unknown>;
1174
+ /**
1175
+ * Wraps an external/async source as a named graph node via
1176
+ * {@link fromAny}. Accepts {@link GraphProduceInput} shapes:
1177
+ * `Promise`, `AsyncIterable`, `Iterable`, or scalar.
1178
+ *
1179
+ * **Node sources are rejected.** For `Node → Node`, use
1180
+ * {@link Graph.derived} with `keepAlive: true` — `fromAny` would
1181
+ * passthrough a Node verbatim and silently drop `meta`/`equals`
1182
+ * options. The type signature excludes `Node<T>`; a runtime guard
1183
+ * catches casts.
1184
+ *
1185
+ * **`undefined` is rejected.** `undefined` is the global SENTINEL;
1186
+ * emitting it as DATA would corrupt downstream first-run gates.
1187
+ * `null` (a valid DATA value) is accepted.
1188
+ *
1189
+ * **`signal`** — forwarded to {@link fromAny} for in-flight cancel of
1190
+ * Promise/AsyncIterable sources, AND triggers {@link Graph.remove}
1191
+ * when aborted so the topology reflects the cancellation.
1192
+ *
1193
+ * @param name - Local registration name (must be unique on this graph).
1194
+ * @param source - Any {@link GraphProduceInput} shape.
1195
+ * @param opts - {@link GraphProduceOptions}.
1196
+ * @returns The registered `Node<T>`.
1197
+ */
1198
+ produce<T>(name: string, source: GraphProduceInput<T>, opts?: GraphProduceOptions<T>): Node<T>;
1199
+ /**
1200
+ * Atomic multi-mutation. Same semantics as core {@link batch}: DATA and
1201
+ * RESOLVED emissions inside `fn` defer, DIRTY propagates immediately, and
1202
+ * downstream consumers see one coalesced wave (spec §1.3 invariant 7).
1203
+ * Exposed on `Graph` for discoverability and import hygiene — pattern
1204
+ * authors can reach for `graph.batch(...)` without importing `batch` from
1205
+ * the core entry. Shares one global frame with the core import; nesting
1206
+ * either way is supported.
1207
+ *
1208
+ * **Caveat:** if `fn` throws, deferred DATA is discarded but DIRTY
1209
+ * messages already propagated synchronously, leaving downstream nodes
1210
+ * in `dirty` status with stale `.cache`. Catch and emit compensating
1211
+ * INVALIDATE/RESET if you need to recover.
1212
+ */
1213
+ batch(fn: () => void): void;
1038
1214
  /**
1039
1215
  * Returns the full edge list for this graph tree, derived on demand from
1040
1216
  * each registered node's `_deps` (no stored registry). Local-only
@@ -1221,6 +1397,13 @@ declare class Graph {
1221
1397
  * When `reactive: true`, also accepts `name?`.
1222
1398
  */
1223
1399
  explain(from: string | Node<string>, to: string | Node<string>, opts?: {
1400
+ /**
1401
+ * DF13 (2026-04-29) — narrow the static overload to forbid
1402
+ * `reactive: true`. A caller passing `{ reactive: true, ... }`
1403
+ * is steered into the reactive overload instead of falling
1404
+ * through to the implementation signature's union return.
1405
+ */
1406
+ reactive?: false;
1224
1407
  maxDepth?: number | Node<number>;
1225
1408
  findCycle?: boolean | Node<boolean>;
1226
1409
  }): CausalChain;
@@ -1333,7 +1516,17 @@ declare class Graph {
1333
1516
  * stays `true` even if the instance is later reused via {@link add}.
1334
1517
  */
1335
1518
  get destroyed(): boolean;
1336
- /** Clear structure after parent already signaled TEARDOWN through this subtree. */
1519
+ /**
1520
+ * Clear structure after parent already signaled TEARDOWN through this subtree.
1521
+ *
1522
+ * Drains both `_disposers` and `_storageDisposers` to mirror the full
1523
+ * {@link destroy} path — child mounts that registered disposers via
1524
+ * {@link addDisposer} (audit trails, log dispose hooks, off-event
1525
+ * callbacks, attached storage) would otherwise leak when destruction
1526
+ * reaches the subtree via the parent's TEARDOWN cascade rather than a
1527
+ * direct `destroy()` call (EH-2). Disposers run BEFORE structure clear
1528
+ * so cleanups can still resolve node paths if needed.
1529
+ */
1337
1530
  private _destroyClearOnly;
1338
1531
  /**
1339
1532
  * Serializes structure and current values to JSON-shaped data (§3.8). Same
@@ -1,5 +1,5 @@
1
- import { A as Actor, n as GraphReFlyConfig, V as VersioningLevel, N as Node, M as Messages, K as NodeSink } from './node-ClS5yC-B.js';
2
- import { D as DescribeNodeOutput, a as DescribeDetail, b as DescribeField } from './meta-BgVAsg9j.js';
1
+ import { A as Actor, l as GraphReFlyConfig, V as VersioningLevel, N as Node, M as Messages, K as NodeSink } from './node-kK3CvTrR.js';
2
+ import { D as DescribeNodeOutput, a as DerivedFn, E as EffectFn, c as DescribeDetail, d as DescribeField } from './sugar-fhLIE7TT.js';
3
3
  import { StorageHandle } from './extra/storage-core.js';
4
4
  import { SnapshotStorageTier } from './extra/storage-tiers.js';
5
5
 
@@ -334,6 +334,73 @@ interface GraphOptions {
334
334
  factoryArgs?: unknown;
335
335
  [key: string]: unknown;
336
336
  }
337
+ /**
338
+ * Options for {@link Graph.derived}. Forwarded to the underlying
339
+ * {@link derived} primitive plus graph-level extras.
340
+ *
341
+ * - `keepAlive: true` — installs an internal subscription so the node
342
+ * stays activated and `.cache` stays current for **external consumers**
343
+ * (UI render, debug snapshot, audit log) with no real subscriber. The
344
+ * subscription self-prunes on the node's terminal (`COMPLETE` / `ERROR`
345
+ * / `TEARDOWN`) and is also drained by {@link Graph.destroy}, so
346
+ * repeated `graph.remove(name)` cycles do not accumulate stale
347
+ * disposers.
348
+ *
349
+ * **Do not read `node.cache` from inside another reactive fn** (spec
350
+ * §5.12) — declare the node as a real dep instead. `keepAlive` is a
351
+ * convenience for *external* read patterns, not a shortcut around the
352
+ * message protocol.
353
+ * - `signal` — when aborted, removes this node from the graph via
354
+ * {@link Graph.remove}, which sends `[[TEARDOWN]]` and drains cleanup
355
+ * hooks. Already-aborted signals trigger removal synchronously.
356
+ * - `equals`, `initial`, `meta` — pass-through to {@link NodeOptions}.
357
+ * - `annotation` — forwarded to {@link Graph.add} (see `graph.trace`).
358
+ */
359
+ interface GraphDerivedOptions<T> {
360
+ equals?: (a: T, b: T) => boolean;
361
+ initial?: T | null;
362
+ keepAlive?: boolean;
363
+ signal?: AbortSignal;
364
+ meta?: Record<string, unknown>;
365
+ annotation?: string;
366
+ }
367
+ /**
368
+ * Options for {@link Graph.effect}.
369
+ *
370
+ * - `signal` — when aborted, removes this node from the graph via
371
+ * {@link Graph.remove} (fires the effect's `deactivate` cleanup).
372
+ * - `meta` / `annotation` — same forwarding shape as
373
+ * {@link GraphDerivedOptions}.
374
+ */
375
+ interface GraphEffectOptions {
376
+ signal?: AbortSignal;
377
+ meta?: Record<string, unknown>;
378
+ annotation?: string;
379
+ }
380
+ /**
381
+ * Options for {@link Graph.produce}.
382
+ *
383
+ * - `signal` — forwarded to the underlying {@link fromAny} for in-flight
384
+ * cancellation of `Promise` / `AsyncIterable` sources, AND triggers
385
+ * {@link Graph.remove} when aborted so the graph topology reflects the
386
+ * cancellation.
387
+ * - `equals` / `meta` / `annotation` — same forwarding shape as
388
+ * {@link GraphDerivedOptions}.
389
+ */
390
+ interface GraphProduceOptions<T> {
391
+ equals?: (a: T, b: T) => boolean;
392
+ signal?: AbortSignal;
393
+ meta?: Record<string, unknown>;
394
+ annotation?: string;
395
+ }
396
+ /**
397
+ * Source shapes accepted by {@link Graph.produce}. Excludes `Node<T>` —
398
+ * Node→Node passthrough is rejected at the boundary because `fromAny`
399
+ * passes Nodes through verbatim, which would silently drop `meta`/`equals`
400
+ * options and bypass the `add()` registration's name semantics. For
401
+ * Node→Node, use {@link Graph.derived} with `keepAlive: true` instead.
402
+ */
403
+ type GraphProduceInput<T> = PromiseLike<T> | AsyncIterable<T> | Iterable<T> | T;
337
404
  /** Filter for {@link Graph.describe} — object-style partial match or predicate. */
338
405
  type DescribeFilter = Partial<Pick<DescribeNodeOutput, "type" | "status">> | {
339
406
  type?: DescribeNodeOutput["type"];
@@ -1035,6 +1102,115 @@ declare class Graph {
1035
1102
  * TEARDOWN and unregisters the node).
1036
1103
  */
1037
1104
  complete(name: string, options?: GraphActorOptions): void;
1105
+ /**
1106
+ * Internal: register a self-pruning keepalive subscription. The sink
1107
+ * watches for terminal messages (`COMPLETE`/`ERROR`/`TEARDOWN`) on `n`
1108
+ * and removes the disposer from `_disposers` when one arrives, so
1109
+ * repeated `graph.remove(name)` cycles do not accumulate stale
1110
+ * disposers (qa B3).
1111
+ */
1112
+ private _registerSelfPruningKeepalive;
1113
+ /**
1114
+ * Internal: wire an `AbortSignal` so its abort triggers
1115
+ * `graph.remove(name)`. Already-aborted signals trigger removal
1116
+ * synchronously. The abort listener is itself registered as a graph
1117
+ * disposer so it gets cleaned up if `destroy()` runs first (qa B4).
1118
+ */
1119
+ private _wireSignalToRemove;
1120
+ /**
1121
+ * Path-based reactive derivation. Resolves each entry in `depPaths` via
1122
+ * {@link Graph.resolve}, builds a {@link derived} node, registers it via
1123
+ * {@link Graph.add}, and returns the registered Node.
1124
+ *
1125
+ * **First-run gate inherited.** fn does not fire until every dep has
1126
+ * delivered at least one real DATA — same gate as `derived()` (spec §2.7,
1127
+ * `partial: false`). A SENTINEL dep holds activation; `null` is a real
1128
+ * DATA value and releases the gate. **Empty `depPaths` is a vacuous
1129
+ * gate** — fn fires once synchronously on first activation. Use this
1130
+ * for one-shot constants only; for async sources prefer
1131
+ * {@link Graph.produce}.
1132
+ *
1133
+ * **`keepAlive: true`** — installs an internal subscription so the node
1134
+ * stays activated and `.cache` stays current for **external consumers**
1135
+ * (UI render, debug snapshot, audit log). The subscription self-prunes
1136
+ * on the node's terminal and is also drained by {@link Graph.destroy}.
1137
+ *
1138
+ * **Do not read `node.cache` from inside another reactive fn** — that
1139
+ * is a §5.12 boundary violation regardless of `keepAlive`. Declare the
1140
+ * node as a real dep instead so the edge appears in `describe()` and
1141
+ * the message protocol carries the value.
1142
+ *
1143
+ * **`signal`** — when aborted, removes this node from the graph.
1144
+ *
1145
+ * @param name - Local registration name (must be unique on this graph).
1146
+ * @param depPaths - `::`-qualified paths resolved at construction time.
1147
+ * @param fn - Pure compute receiving sugar-unwrapped scalar dep values.
1148
+ * @param opts - {@link GraphDerivedOptions}.
1149
+ * @returns The registered `Node<T>`.
1150
+ */
1151
+ derived<T>(name: string, depPaths: readonly string[], fn: DerivedFn<T>, opts?: GraphDerivedOptions<T>): Node<T>;
1152
+ /**
1153
+ * Path-based managed side effect. Resolves each entry in `depPaths`,
1154
+ * builds an {@link effect} node, registers it, and returns the
1155
+ * registered Node. fn does not auto-emit — call `actions.emit(v)` /
1156
+ * `actions.down(msgs)` explicitly to produce downstream messages.
1157
+ *
1158
+ * **Cleanup.** Return a cleanup function (`() => void`) or granular
1159
+ * hooks (`{ beforeRun?, deactivate?, invalidate? }`) — fired on the
1160
+ * matching transition by the underlying primitive (see
1161
+ * {@link NodeFnCleanup}). Graph teardown propagates `[[TEARDOWN]]`
1162
+ * which triggers `deactivate`.
1163
+ *
1164
+ * **`signal`** — when aborted, removes this node from the graph (fires
1165
+ * the effect's `deactivate` cleanup).
1166
+ *
1167
+ * @param name - Local registration name (must be unique on this graph).
1168
+ * @param depPaths - `::`-qualified paths resolved at construction time.
1169
+ * @param fn - Side-effect receiving sugar-unwrapped scalar dep values.
1170
+ * @param opts - {@link GraphEffectOptions}.
1171
+ * @returns The registered `Node<unknown>`.
1172
+ */
1173
+ effect(name: string, depPaths: readonly string[], fn: EffectFn, opts?: GraphEffectOptions): Node<unknown>;
1174
+ /**
1175
+ * Wraps an external/async source as a named graph node via
1176
+ * {@link fromAny}. Accepts {@link GraphProduceInput} shapes:
1177
+ * `Promise`, `AsyncIterable`, `Iterable`, or scalar.
1178
+ *
1179
+ * **Node sources are rejected.** For `Node → Node`, use
1180
+ * {@link Graph.derived} with `keepAlive: true` — `fromAny` would
1181
+ * passthrough a Node verbatim and silently drop `meta`/`equals`
1182
+ * options. The type signature excludes `Node<T>`; a runtime guard
1183
+ * catches casts.
1184
+ *
1185
+ * **`undefined` is rejected.** `undefined` is the global SENTINEL;
1186
+ * emitting it as DATA would corrupt downstream first-run gates.
1187
+ * `null` (a valid DATA value) is accepted.
1188
+ *
1189
+ * **`signal`** — forwarded to {@link fromAny} for in-flight cancel of
1190
+ * Promise/AsyncIterable sources, AND triggers {@link Graph.remove}
1191
+ * when aborted so the topology reflects the cancellation.
1192
+ *
1193
+ * @param name - Local registration name (must be unique on this graph).
1194
+ * @param source - Any {@link GraphProduceInput} shape.
1195
+ * @param opts - {@link GraphProduceOptions}.
1196
+ * @returns The registered `Node<T>`.
1197
+ */
1198
+ produce<T>(name: string, source: GraphProduceInput<T>, opts?: GraphProduceOptions<T>): Node<T>;
1199
+ /**
1200
+ * Atomic multi-mutation. Same semantics as core {@link batch}: DATA and
1201
+ * RESOLVED emissions inside `fn` defer, DIRTY propagates immediately, and
1202
+ * downstream consumers see one coalesced wave (spec §1.3 invariant 7).
1203
+ * Exposed on `Graph` for discoverability and import hygiene — pattern
1204
+ * authors can reach for `graph.batch(...)` without importing `batch` from
1205
+ * the core entry. Shares one global frame with the core import; nesting
1206
+ * either way is supported.
1207
+ *
1208
+ * **Caveat:** if `fn` throws, deferred DATA is discarded but DIRTY
1209
+ * messages already propagated synchronously, leaving downstream nodes
1210
+ * in `dirty` status with stale `.cache`. Catch and emit compensating
1211
+ * INVALIDATE/RESET if you need to recover.
1212
+ */
1213
+ batch(fn: () => void): void;
1038
1214
  /**
1039
1215
  * Returns the full edge list for this graph tree, derived on demand from
1040
1216
  * each registered node's `_deps` (no stored registry). Local-only
@@ -1221,6 +1397,13 @@ declare class Graph {
1221
1397
  * When `reactive: true`, also accepts `name?`.
1222
1398
  */
1223
1399
  explain(from: string | Node<string>, to: string | Node<string>, opts?: {
1400
+ /**
1401
+ * DF13 (2026-04-29) — narrow the static overload to forbid
1402
+ * `reactive: true`. A caller passing `{ reactive: true, ... }`
1403
+ * is steered into the reactive overload instead of falling
1404
+ * through to the implementation signature's union return.
1405
+ */
1406
+ reactive?: false;
1224
1407
  maxDepth?: number | Node<number>;
1225
1408
  findCycle?: boolean | Node<boolean>;
1226
1409
  }): CausalChain;
@@ -1333,7 +1516,17 @@ declare class Graph {
1333
1516
  * stays `true` even if the instance is later reused via {@link add}.
1334
1517
  */
1335
1518
  get destroyed(): boolean;
1336
- /** Clear structure after parent already signaled TEARDOWN through this subtree. */
1519
+ /**
1520
+ * Clear structure after parent already signaled TEARDOWN through this subtree.
1521
+ *
1522
+ * Drains both `_disposers` and `_storageDisposers` to mirror the full
1523
+ * {@link destroy} path — child mounts that registered disposers via
1524
+ * {@link addDisposer} (audit trails, log dispose hooks, off-event
1525
+ * callbacks, attached storage) would otherwise leak when destruction
1526
+ * reaches the subtree via the parent's TEARDOWN cascade rather than a
1527
+ * direct `destroy()` call (EH-2). Disposers run BEFORE structure clear
1528
+ * so cleanups can still resolve node paths if needed.
1529
+ */
1337
1530
  private _destroyClearOnly;
1338
1531
  /**
1339
1532
  * Serializes structure and current values to JSON-shaped data (§3.8). Same
@@ -1,12 +1,12 @@
1
- import { i as index$2 } from './index-ChOyVLKm.cjs';
2
- import { i as index$3 } from './index-C9kSENB4.cjs';
3
- import { i as index$4 } from './index-BtAsBp8K.cjs';
4
- import { i as index$5 } from './index-z96luz5O.cjs';
5
- import { N as Node } from './node-ClS5yC-B.cjs';
6
- import { i as index$6 } from './index-BVpm6noz.cjs';
7
- import { i as index$7 } from './index-hHcaFlJX.cjs';
8
- import { i as index$8 } from './index-BJX94aud.cjs';
9
- import { i as index$9 } from './index-f5IivDUX.cjs';
1
+ import { i as index$2 } from './index-BrPrLl4e.cjs';
2
+ import { i as index$3 } from './index-BQSKmbuG.cjs';
3
+ import { i as index$4 } from './index-Climxqsu.cjs';
4
+ import { i as index$5 } from './index-C5stwKcw.cjs';
5
+ import { N as Node } from './node-kK3CvTrR.cjs';
6
+ import { i as index$6 } from './index-hcDJ8PSI.cjs';
7
+ import { i as index$7 } from './index-_6ODbuOu.cjs';
8
+ import { i as index$8 } from './index-CK29LV56.cjs';
9
+ import { i as index$9 } from './index-ZVQhLa2i.cjs';
10
10
 
11
11
  /**
12
12
  * Options for creating signals.
@@ -1,7 +1,7 @@
1
- import { A as Actor, N as Node, W as PolicyRuleData, o as GuardAction } from './node-ClS5yC-B.cjs';
2
- import { G as Graph, a as GraphOptions, r as GraphPersistSnapshot, b as GraphDescribeOutput, j as GraphDescribeOptions, C as CausalChain, e as DescribeFilter } from './graph-C4SHb3Ly.cjs';
3
- import { T as TopicGraph } from './index-BTQtTb_H.cjs';
4
- import { w as watchTopologyTree } from './topology-tree-BSdfSwMi.cjs';
1
+ import { A as Actor, N as Node, W as PolicyRuleData, m as GuardAction } from './node-kK3CvTrR.cjs';
2
+ import { G as Graph, a as GraphOptions, r as GraphPersistSnapshot, b as GraphDescribeOutput, j as GraphDescribeOptions, C as CausalChain, e as DescribeFilter } from './graph-CWvEUQAq.cjs';
3
+ import { T as TopicGraph } from './index-C5ri2Axc.cjs';
4
+ import { w as watchTopologyTree } from './topology-tree-Bcz27hpF.cjs';
5
5
 
6
6
  /**
7
7
  * Audit, policy enforcement, and compliance export (roadmap §9.2).
@@ -58,6 +58,25 @@ interface AuditTrailOptions {
58
58
  declare class AuditTrailGraph extends Graph {
59
59
  readonly entries: Node<readonly AuditEntry[]>;
60
60
  readonly count: Node<number>;
61
+ /**
62
+ * Effective set of event types this trail records (EH-18). Reflects
63
+ * either the caller-supplied `opts.includeTypes` or the default set
64
+ * (`["data", "error", "complete", "teardown"]`). Captured at construction
65
+ * — each instance owns its own clone, so a default-using trail can never
66
+ * leak mutations into the module-level default set.
67
+ *
68
+ * **Mutation contract.** Type-system read-only via `ReadonlySet`. Runtime
69
+ * mutation through an unsafe cast (`(audit.includeTypes as Set<...>)
70
+ * .add(...)`) is unsupported — it would desync the field from the
71
+ * recording closure, which captured the original `Set` reference at
72
+ * construction. The runtime does NOT enforce immutability beyond the
73
+ * type contract; consumers must respect it.
74
+ *
75
+ * Use this to validate that a `complianceSnapshot.fingerprint` was
76
+ * computed against the same recording surface — fingerprints are stable
77
+ * only when the recording set is identical across snapshots.
78
+ */
79
+ readonly includeTypes: ReadonlySet<AuditEntry["type"]>;
61
80
  private readonly _log;
62
81
  private readonly _target;
63
82
  constructor(target: Graph, opts: AuditTrailOptions);
@@ -1,8 +1,8 @@
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 { AppendLogStorageTier } from './extra/storage-tiers.cjs';
5
- import { a as GraphOptions, G as Graph } from './graph-C4SHb3Ly.cjs';
5
+ import { a as GraphOptions, G as Graph } from './graph-CWvEUQAq.cjs';
6
6
 
7
7
  /**
8
8
  * CQRS patterns (roadmap §4.5).
@@ -1,7 +1,7 @@
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';
4
- import { G as Graph } from './graph-C4SHb3Ly.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
+ import { G as Graph } from './graph-CWvEUQAq.cjs';
5
5
 
6
6
  /**
7
7
  * Memory patterns (roadmap §4.3) — public-face Phase-4 primitives audited under