@graphrefly/graphrefly 0.38.0 → 0.40.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 (321) hide show
  1. package/dist/budget-gate-CmmVtasH.d.ts +115 -0
  2. package/dist/budget-gate-DiP_nK0n.d.cts +115 -0
  3. package/dist/{cascading-BsJ4GbnS.d.ts → cascading-BNfxffgc.d.ts} +2 -2
  4. package/dist/{cascading-B25wxpRa.d.cts → cascading-Cxs1eztH.d.cts} +2 -2
  5. package/dist/chunk-2BX4NB34.js +3 -0
  6. package/dist/{chunk-6VFC334U.js → chunk-2DMKW2AD.js} +1 -1
  7. package/dist/{chunk-4BDQXBXE.js → chunk-2QXRYP7Q.js} +1 -1
  8. package/dist/chunk-32N3JALT.js +1 -0
  9. package/dist/chunk-35JTVPOX.js +1 -0
  10. package/dist/chunk-3G5U5QNE.js +5 -0
  11. package/dist/{chunk-PHXZRR6C.js → chunk-4I45FVQS.js} +1 -1
  12. package/dist/{chunk-B5S7KTGP.js → chunk-6I726LZU.js} +1 -1
  13. package/dist/{chunk-NV63VQHI.js → chunk-6VWBPSSY.js} +1 -1
  14. package/dist/chunk-6XVD5TZV.js +1 -0
  15. package/dist/chunk-756D5TFD.js +1 -0
  16. package/dist/{chunk-DSOVKKTI.js → chunk-7Q4ZD3YW.js} +1 -1
  17. package/dist/{chunk-TMVY7OWG.js → chunk-B7LCDQEV.js} +1 -1
  18. package/dist/chunk-C72GO4IZ.js +1 -0
  19. package/dist/{chunk-RZ5HKPGI.js → chunk-CKFQS2CJ.js} +1 -1
  20. package/dist/chunk-D27JNOLZ.js +1 -0
  21. package/dist/chunk-ECQRP2UT.js +1 -0
  22. package/dist/{chunk-6773HURD.js → chunk-FHRBBHJN.js} +1 -1
  23. package/dist/{chunk-UVLZX2OU.js → chunk-I2DEVPMU.js} +1 -1
  24. package/dist/chunk-INQFTVZA.js +61 -0
  25. package/dist/{chunk-6KZZ6XQE.js → chunk-J63M5U46.js} +1 -1
  26. package/dist/{chunk-POCWFIJ7.js → chunk-JKBOIJ22.js} +1 -1
  27. package/dist/chunk-K2Z7UENB.js +1 -0
  28. package/dist/chunk-L6NSJVJZ.js +1 -0
  29. package/dist/{chunk-K5C67OGE.js → chunk-LCGAVGGV.js} +2 -2
  30. package/dist/chunk-LYM4PBMV.js +1 -0
  31. package/dist/{chunk-O2BLVQU4.js → chunk-MNZIKXK4.js} +1 -1
  32. package/dist/chunk-N43XM7BM.js +1 -0
  33. package/dist/{chunk-FWGIZP3W.js → chunk-OSZ22J7O.js} +1 -1
  34. package/dist/{chunk-FAYEMS5M.js → chunk-PPUYQ66A.js} +1 -1
  35. package/dist/{chunk-SP5O2MIX.js → chunk-QSK3RRII.js} +1 -1
  36. package/dist/chunk-RZJDIV2G.js +1 -0
  37. package/dist/chunk-SSCGRYJ2.js +1 -0
  38. package/dist/chunk-SVFKHUCW.js +1 -0
  39. package/dist/chunk-TSOYJ743.js +1 -0
  40. package/dist/{chunk-O245YLM5.js → chunk-UWA6D7UF.js} +1 -1
  41. package/dist/chunk-VMF23LGB.js +1 -0
  42. package/dist/chunk-WL6LFPJB.js +1 -0
  43. package/dist/chunk-WUT362QV.js +1 -0
  44. package/dist/chunk-XJLYLLIJ.js +1 -0
  45. package/dist/{chunk-IBGE62GZ.js → chunk-XW4YDF6G.js} +1 -1
  46. package/dist/chunk-YKD7WUYJ.js +43 -0
  47. package/dist/{chunk-7KZZLWZ6.js → chunk-YXDRGKXP.js} +1 -1
  48. package/dist/chunk-Z4F3DOWS.js +84 -0
  49. package/dist/compat/index.cjs +9 -13
  50. package/dist/compat/index.d.cts +16 -16
  51. package/dist/compat/index.d.ts +16 -16
  52. package/dist/compat/index.js +1 -1
  53. package/dist/compat/jotai/index.d.cts +2 -2
  54. package/dist/compat/jotai/index.d.ts +2 -2
  55. package/dist/compat/nanostores/index.d.cts +2 -2
  56. package/dist/compat/nanostores/index.d.ts +2 -2
  57. package/dist/compat/nestjs/index.cjs +7 -11
  58. package/dist/compat/nestjs/index.d.cts +8 -8
  59. package/dist/compat/nestjs/index.d.ts +8 -8
  60. package/dist/compat/nestjs/index.js +1 -1
  61. package/dist/compat/react/index.d.cts +2 -2
  62. package/dist/compat/react/index.d.ts +2 -2
  63. package/dist/compat/solid/index.d.cts +2 -2
  64. package/dist/compat/solid/index.d.ts +2 -2
  65. package/dist/compat/svelte/index.d.cts +2 -2
  66. package/dist/compat/svelte/index.d.ts +2 -2
  67. package/dist/compat/vue/index.d.cts +2 -2
  68. package/dist/compat/vue/index.d.ts +2 -2
  69. package/dist/compat/zustand/index.cjs +3 -7
  70. package/dist/compat/zustand/index.d.cts +4 -4
  71. package/dist/compat/zustand/index.d.ts +4 -4
  72. package/dist/compat/zustand/index.js +1 -1
  73. package/dist/core/index.cjs +1 -1
  74. package/dist/core/index.d.cts +4 -4
  75. package/dist/core/index.d.ts +4 -4
  76. package/dist/core/index.js +1 -1
  77. package/dist/{composite-DTOlDuch.d.ts → decay-BnrlbxSv.d.ts} +39 -3
  78. package/dist/{composite-CgG0MqHm.d.cts → decay-C25AyNAj.d.cts} +39 -3
  79. package/dist/extra/browser.d.cts +1 -1
  80. package/dist/extra/browser.d.ts +1 -1
  81. package/dist/extra/index.cjs +16 -20
  82. package/dist/extra/index.d.cts +11 -9
  83. package/dist/extra/index.d.ts +11 -9
  84. package/dist/extra/index.js +1 -1
  85. package/dist/extra/node.cjs +2 -2
  86. package/dist/extra/node.d.cts +1 -1
  87. package/dist/extra/node.d.ts +1 -1
  88. package/dist/extra/node.js +1 -1
  89. package/dist/extra/operators.cjs +1 -1
  90. package/dist/extra/operators.d.cts +1 -1
  91. package/dist/extra/operators.d.ts +1 -1
  92. package/dist/extra/operators.js +1 -1
  93. package/dist/extra/reactive.cjs +1 -1
  94. package/dist/extra/reactive.d.cts +3 -3
  95. package/dist/extra/reactive.d.ts +3 -3
  96. package/dist/extra/reactive.js +1 -1
  97. package/dist/extra/render/index.cjs +5 -0
  98. package/dist/extra/render/index.d.cts +183 -0
  99. package/dist/extra/render/index.d.ts +183 -0
  100. package/dist/extra/render/index.js +1 -0
  101. package/dist/extra/sources.cjs +1 -1
  102. package/dist/extra/sources.d.cts +1 -1
  103. package/dist/extra/sources.d.ts +1 -1
  104. package/dist/extra/sources.js +1 -1
  105. package/dist/extra/storage-browser.d.cts +1 -1
  106. package/dist/extra/storage-browser.d.ts +1 -1
  107. package/dist/{fallback-axI2cXwt.d.cts → fallback-8JYU8tlT.d.cts} +1 -1
  108. package/dist/{fallback-DuEXfA4F.d.ts → fallback-CMZl39L5.d.ts} +1 -1
  109. package/dist/graph/index.cjs +7 -7
  110. package/dist/graph/index.d.cts +5 -5
  111. package/dist/graph/index.d.ts +5 -5
  112. package/dist/graph/index.js +1 -1
  113. package/dist/{graph-BjW1taJl.d.ts → graph-BkIkog4h.d.ts} +76 -100
  114. package/dist/{graph-CHsVwf9S.d.cts → graph-E6likq7w.d.cts} +76 -100
  115. package/dist/{index-CIcu6fIR.d.ts → index-2n8Eai6M.d.ts} +1 -1
  116. package/dist/{index-BwOsJfLJ.d.ts → index-3k4Gg6-n.d.ts} +3 -3
  117. package/dist/{index-BUFCHvOR.d.ts → index-40ZT4MHj.d.ts} +3 -3
  118. package/dist/index-8s-Qm-gz.d.ts +218 -0
  119. package/dist/index-A3U3CSve.d.cts +113 -0
  120. package/dist/{index-CDvC1m5p.d.ts → index-B2RUoIUz.d.ts} +1 -1
  121. package/dist/{index-Byp771zP.d.ts → index-B6iTqKtJ.d.ts} +2 -2
  122. package/dist/{index-D-B7U42V.d.cts → index-B72TQQHd.d.cts} +2 -2
  123. package/dist/{resilience-Bys63Cpd.d.ts → index-BAQrjuZF.d.ts} +202 -26
  124. package/dist/{index-BiomL7AW.d.ts → index-BJSZxSFX.d.ts} +1 -1
  125. package/dist/index-BQ1fR4li.d.ts +210 -0
  126. package/dist/{index-D7-RSD93.d.cts → index-BTHOTC0Q.d.cts} +4 -4
  127. package/dist/{index-CEVzBWeB.d.ts → index-BaA-xpSw.d.ts} +26 -19
  128. package/dist/{index-CAV-3RpJ.d.cts → index-Bd91Nmf4.d.cts} +4 -4
  129. package/dist/{index-BI1wMfyc.d.ts → index-BgjS2b8N.d.ts} +3 -3
  130. package/dist/{index-Bpr0Pwgl.d.cts → index-BiHUBEKq.d.cts} +3 -3
  131. package/dist/{index-UsU9ptzs.d.cts → index-BilOa6AE.d.cts} +55 -9
  132. package/dist/{index-DJVQ-t07.d.ts → index-BmSQLAZo.d.cts} +41 -48
  133. package/dist/{index-DTDVDzhA.d.ts → index-C-dkXOpB.d.cts} +56 -54
  134. package/dist/{index-B-ORMr3k.d.ts → index-C5cQ7Gfx.d.ts} +4 -4
  135. package/dist/{index-ML6vHKXK.d.ts → index-C6ZUaos7.d.ts} +1 -1
  136. package/dist/{index-Vz7KPfgz.d.ts → index-CAP3UGsq.d.ts} +1 -1
  137. package/dist/{index-BFaALJxR.d.ts → index-CD2dBMet.d.ts} +10 -8
  138. package/dist/index-CGhMJNHb.d.cts +128 -0
  139. package/dist/{index-B3D_z0Z6.d.cts → index-CL7oilfm.d.cts} +1 -1
  140. package/dist/{index-Bn0uZEL4.d.ts → index-CQtWm7jS.d.ts} +9 -9
  141. package/dist/{index-CM-i58FY.d.cts → index-CRm0YIzC.d.cts} +9 -9
  142. package/dist/index-CUIkE1l9.d.cts +230 -0
  143. package/dist/{index-CijfwEWx.d.ts → index-Cczxgd2D.d.ts} +2 -2
  144. package/dist/{index-CAbHN_rP.d.cts → index-CgnCFhr2.d.cts} +1 -1
  145. package/dist/{index-B2IUcH13.d.cts → index-Ck35nA-T.d.ts} +41 -48
  146. package/dist/{index-BpMZzX9P.d.cts → index-Cnr1WrlX.d.cts} +3 -3
  147. package/dist/{index-JYtN9uqM.d.ts → index-CoM4rzyB.d.ts} +1 -1
  148. package/dist/{index-Ckil6miL.d.cts → index-CtFNGe-m.d.cts} +2 -2
  149. package/dist/{index-BjWZARLy.d.ts → index-Ctb7_2sG.d.ts} +1 -1
  150. package/dist/index-CuPUehFa.d.cts +218 -0
  151. package/dist/index-D1Gc7wV5.d.ts +230 -0
  152. package/dist/{index-DqICM_I7.d.ts → index-D1IEZUsj.d.ts} +67 -9
  153. package/dist/{index-BFuVcqL8.d.cts → index-D3ayz3hy.d.cts} +1 -1
  154. package/dist/{index-CQsqqEVz.d.cts → index-D4uimgee.d.cts} +1 -1
  155. package/dist/{resilience-BWP2c7Af.d.cts → index-DGTo1yka.d.cts} +202 -26
  156. package/dist/{index-BmWuVdER.d.ts → index-DH4fm2Ck.d.ts} +2 -2
  157. package/dist/{index-BkQqf1EF.d.cts → index-DJ_MPOJ5.d.cts} +67 -9
  158. package/dist/{index-9xhIaM-w.d.cts → index-DOBLxOti.d.cts} +1 -1
  159. package/dist/{index-BqcgiSQg.d.cts → index-DQQCOIt8.d.cts} +10 -8
  160. package/dist/{index-DJNAWzcH.d.cts → index-DVAlsmEU.d.cts} +26 -19
  161. package/dist/index-DVDapw2k.d.cts +210 -0
  162. package/dist/{index-D_QQ_dTD.d.cts → index-DYTBbF8T.d.cts} +1 -1
  163. package/dist/{index-BgzPO43H.d.cts → index-DgJc8Zgc.d.cts} +6 -6
  164. package/dist/{index-Czk3r0yA.d.cts → index-DhLyOHYZ.d.ts} +56 -54
  165. package/dist/{index-CrlHFsiT.d.ts → index-DhnsQfa3.d.ts} +100 -118
  166. package/dist/{index-Bub6x_D4.d.cts → index-DktLSZOc.d.cts} +37 -90
  167. package/dist/{index-BaSy4L6w.d.cts → index-DpiGqtrs.d.cts} +100 -118
  168. package/dist/{index-D-HZ7sP4.d.ts → index-I1cCY3ZI.d.ts} +6 -6
  169. package/dist/{index-D9vBTuzo.d.ts → index-IUCY0OFN.d.ts} +4 -4
  170. package/dist/{index-DeSsvHDD.d.cts → index-MxYuWOrf.d.cts} +3 -3
  171. package/dist/index-N2MAxt7_.d.ts +128 -0
  172. package/dist/{index-CpZKtdMw.d.cts → index-PgwvGWa1.d.cts} +1 -1
  173. package/dist/{index-AUqWe_fX.d.ts → index-WSlcjhQF.d.ts} +55 -9
  174. package/dist/{index-Di7OdwlO.d.ts → index-bXXLSvor.d.ts} +37 -90
  175. package/dist/index-da2V5vPy.d.ts +113 -0
  176. package/dist/{index-DY2f2b9z.d.ts → index-eaQuGJnv.d.ts} +3 -3
  177. package/dist/{index-BsgxnHN8.d.cts → index-t6L2qpHh.d.cts} +3 -3
  178. package/dist/{index-C-3UXnHT.d.cts → index-tV3AA9hI.d.cts} +2 -2
  179. package/dist/{index-8OxXae3g.d.ts → index-yLt-aPMp.d.ts} +1 -1
  180. package/dist/{index-CqSJ25A9.d.cts → index-z8WFPVI8.d.cts} +1 -1
  181. package/dist/index.cjs +63 -59
  182. package/dist/index.d.cts +48 -47
  183. package/dist/index.d.ts +48 -47
  184. package/dist/index.js +1 -1
  185. package/dist/{meta-DreaEM_a.d.cts → meta-Ct9nqQS5.d.cts} +11 -7
  186. package/dist/{meta-BYqlATmg.d.ts → meta-D8OyedKp.d.ts} +11 -7
  187. package/dist/{node-fSc-hCv8.d.cts → node-BYInONRr.d.cts} +3 -3
  188. package/dist/{node-fSc-hCv8.d.ts → node-BYInONRr.d.ts} +3 -3
  189. package/dist/{observable-Cqty11jG.d.cts → observable-DMIlYJV1.d.cts} +1 -1
  190. package/dist/{observable-EAV_rNfM.d.ts → observable-DO8DDEzv.d.ts} +1 -1
  191. package/dist/patterns/ai/browser.cjs +5 -5
  192. package/dist/patterns/ai/browser.d.cts +4 -4
  193. package/dist/patterns/ai/browser.d.ts +4 -4
  194. package/dist/patterns/ai/browser.js +1 -1
  195. package/dist/patterns/ai/index.cjs +16 -20
  196. package/dist/patterns/ai/index.d.cts +17 -17
  197. package/dist/patterns/ai/index.d.ts +17 -17
  198. package/dist/patterns/ai/index.js +1 -1
  199. package/dist/patterns/ai/node.cjs +1 -1
  200. package/dist/patterns/ai/node.d.cts +4 -4
  201. package/dist/patterns/ai/node.d.ts +4 -4
  202. package/dist/patterns/ai/node.js +1 -1
  203. package/dist/patterns/audit/index.cjs +3 -7
  204. package/dist/patterns/audit/index.d.cts +6 -6
  205. package/dist/patterns/audit/index.d.ts +6 -6
  206. package/dist/patterns/audit/index.js +1 -1
  207. package/dist/patterns/cqrs/index.cjs +3 -7
  208. package/dist/patterns/cqrs/index.d.cts +6 -6
  209. package/dist/patterns/cqrs/index.d.ts +6 -6
  210. package/dist/patterns/cqrs/index.js +1 -1
  211. package/dist/patterns/demo-shell/index.cjs +5 -8
  212. package/dist/patterns/demo-shell/index.d.cts +5 -5
  213. package/dist/patterns/demo-shell/index.d.ts +5 -5
  214. package/dist/patterns/demo-shell/index.js +1 -1
  215. package/dist/patterns/domain-templates/index.cjs +3 -7
  216. package/dist/patterns/domain-templates/index.d.cts +4 -4
  217. package/dist/patterns/domain-templates/index.d.ts +4 -4
  218. package/dist/patterns/domain-templates/index.js +1 -1
  219. package/dist/patterns/graphspec/index.cjs +37 -37
  220. package/dist/patterns/graphspec/index.d.cts +5 -5
  221. package/dist/patterns/graphspec/index.d.ts +5 -5
  222. package/dist/patterns/graphspec/index.js +1 -1
  223. package/dist/patterns/guarded-execution/index.cjs +3 -7
  224. package/dist/patterns/guarded-execution/index.d.cts +7 -7
  225. package/dist/patterns/guarded-execution/index.d.ts +7 -7
  226. package/dist/patterns/guarded-execution/index.js +1 -1
  227. package/dist/patterns/harness/index.cjs +8 -12
  228. package/dist/patterns/harness/index.d.cts +12 -12
  229. package/dist/patterns/harness/index.d.ts +12 -12
  230. package/dist/patterns/harness/index.js +1 -1
  231. package/dist/patterns/job-queue/index.cjs +3 -7
  232. package/dist/patterns/job-queue/index.d.cts +6 -6
  233. package/dist/patterns/job-queue/index.d.ts +6 -6
  234. package/dist/patterns/job-queue/index.js +1 -1
  235. package/dist/patterns/lens/index.cjs +3 -7
  236. package/dist/patterns/lens/index.d.cts +5 -6
  237. package/dist/patterns/lens/index.d.ts +5 -6
  238. package/dist/patterns/lens/index.js +1 -1
  239. package/dist/patterns/memory/index.cjs +3 -7
  240. package/dist/patterns/memory/index.d.cts +6 -6
  241. package/dist/patterns/memory/index.d.ts +6 -6
  242. package/dist/patterns/memory/index.js +1 -1
  243. package/dist/patterns/messaging/index.cjs +3 -7
  244. package/dist/patterns/messaging/index.d.cts +5 -5
  245. package/dist/patterns/messaging/index.d.ts +5 -5
  246. package/dist/patterns/messaging/index.js +1 -1
  247. package/dist/patterns/orchestration/index.cjs +3 -7
  248. package/dist/patterns/orchestration/index.d.cts +8 -8
  249. package/dist/patterns/orchestration/index.d.ts +8 -8
  250. package/dist/patterns/orchestration/index.js +1 -1
  251. package/dist/patterns/process/index.cjs +1 -1
  252. package/dist/patterns/process/index.d.cts +7 -7
  253. package/dist/patterns/process/index.d.ts +7 -7
  254. package/dist/patterns/process/index.js +1 -1
  255. package/dist/patterns/reactive-layout/index.cjs +4 -8
  256. package/dist/patterns/reactive-layout/index.d.cts +5 -5
  257. package/dist/patterns/reactive-layout/index.d.ts +5 -5
  258. package/dist/patterns/reactive-layout/index.js +1 -1
  259. package/dist/patterns/reduction/index.cjs +3 -7
  260. package/dist/patterns/reduction/index.d.cts +4 -4
  261. package/dist/patterns/reduction/index.d.ts +4 -4
  262. package/dist/patterns/reduction/index.js +1 -1
  263. package/dist/patterns/refine-loop/index.cjs +5 -9
  264. package/dist/patterns/refine-loop/index.d.cts +6 -6
  265. package/dist/patterns/refine-loop/index.d.ts +6 -6
  266. package/dist/patterns/refine-loop/index.js +1 -1
  267. package/dist/patterns/resilient-pipeline/index.cjs +3 -1
  268. package/dist/patterns/resilient-pipeline/index.d.cts +6 -6
  269. package/dist/patterns/resilient-pipeline/index.d.ts +6 -6
  270. package/dist/patterns/resilient-pipeline/index.js +1 -1
  271. package/dist/patterns/surface/index.cjs +12 -16
  272. package/dist/patterns/surface/index.d.cts +6 -6
  273. package/dist/patterns/surface/index.d.ts +6 -6
  274. package/dist/patterns/surface/index.js +1 -1
  275. package/dist/{pipeline-graph-9JBbmRxA.d.ts → pipeline-graph-CB4La-UW.d.ts} +34 -17
  276. package/dist/{pipeline-graph-DuHpXSOn.d.cts → pipeline-graph-MWrQZXCq.d.cts} +34 -17
  277. package/dist/{reactive-layout-BMLDB4Vd.d.cts → reactive-layout-BtZfUKuL.d.cts} +2 -2
  278. package/dist/{reactive-layout-D-tRiNhg.d.ts → reactive-layout-KJj4E2dT.d.ts} +2 -2
  279. package/dist/{reactive-log-BgWSA1fg.d.ts → reactive-log-BlAsPLl2.d.ts} +2 -2
  280. package/dist/{reactive-log-C3IMAGpT.d.cts → reactive-log-_zeEnB9H.d.cts} +2 -2
  281. package/dist/{reactive-map-DmgeADH8.d.cts → reactive-map-6P_k3AQM.d.cts} +2 -2
  282. package/dist/{reactive-map-CHyeCf4D.d.ts → reactive-map-CjXByDV-.d.ts} +2 -2
  283. package/dist/resilience-S33JV6XC.js +1 -0
  284. package/dist/{sugar-D13E2M_z.d.ts → sugar-BhfjgetH.d.ts} +1 -1
  285. package/dist/{sugar-DgaGJcI6.d.cts → sugar-DzePN5-g.d.cts} +1 -1
  286. package/dist/{topology-tree-jrZue3ao.d.cts → topology-tree-3LBKFsUo.d.cts} +1 -1
  287. package/dist/{topology-tree-D47-nI6Z.d.ts → topology-tree-mF7Emqzm.d.ts} +1 -1
  288. package/dist/{types-BMSGPlpO.d.cts → types-1Dhoi7HM.d.cts} +1 -1
  289. package/dist/{types-CidcBDuk.d.ts → types-39jk0kaV.d.ts} +1 -1
  290. package/package.json +11 -1
  291. package/dist/chunk-2YFDSYEF.js +0 -1
  292. package/dist/chunk-5BGFS2XH.js +0 -1
  293. package/dist/chunk-CMTN3KPT.js +0 -80
  294. package/dist/chunk-DQJLC6YY.js +0 -1
  295. package/dist/chunk-G7JN6LCB.js +0 -1
  296. package/dist/chunk-KJEAIIIY.js +0 -43
  297. package/dist/chunk-LV3ACS5J.js +0 -1
  298. package/dist/chunk-NBGPXQSP.js +0 -1
  299. package/dist/chunk-NN3QPJ6U.js +0 -1
  300. package/dist/chunk-NSAZ6PR6.js +0 -1
  301. package/dist/chunk-O32GJOUJ.js +0 -1
  302. package/dist/chunk-QEVSIVSF.js +0 -1
  303. package/dist/chunk-QMC2PLNM.js +0 -7
  304. package/dist/chunk-QOJFR6GS.js +0 -1
  305. package/dist/chunk-SFK7MN7S.js +0 -1
  306. package/dist/chunk-TB7JKSVS.js +0 -61
  307. package/dist/chunk-UAXFKMAG.js +0 -1
  308. package/dist/chunk-XIMFHEKV.js +0 -1
  309. package/dist/chunk-XLMYQB6F.js +0 -1
  310. package/dist/chunk-XLYF4LBH.js +0 -1
  311. package/dist/imperative-audit-ahAE65a9.d.cts +0 -28
  312. package/dist/imperative-audit-ahAE65a9.d.ts +0 -28
  313. package/dist/index-5dNRlW7J.d.ts +0 -135
  314. package/dist/index-BWUMIt7J.d.cts +0 -135
  315. package/dist/index-BhzwpIJc.d.cts +0 -105
  316. package/dist/index-BsZk9T8y.d.ts +0 -105
  317. package/dist/index-C56XZiDe.d.cts +0 -163
  318. package/dist/index-CpdnP-0y.d.cts +0 -186
  319. package/dist/index-DKrIuF-r.d.ts +0 -163
  320. package/dist/index-DOU1Ee_k.d.ts +0 -186
  321. package/dist/resilience-LGBK236C.js +0 -1
@@ -1,11 +1,11 @@
1
1
  import { NodeInput } from './extra/sources.js';
2
- import { a as Node } from './node-fSc-hCv8.js';
3
- import { L as LLMAdapter } from './types-CidcBDuk.js';
4
- import { T as TopicGraph, M as MessagingHubGraph } from './index-BUFCHvOR.js';
5
- import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-BI1wMfyc.js';
6
- import { G as Graph, u as GraphProfileResult, t as GraphProfileOptions } from './graph-BjW1taJl.js';
7
- import { G as GateController } from './pipeline-graph-9JBbmRxA.js';
8
- import { J as JobQueueGraph } from './index-D9vBTuzo.js';
2
+ import { N as Node } from './node-BYInONRr.js';
3
+ import { L as LLMAdapter } from './types-39jk0kaV.js';
4
+ import { T as TopicGraph, M as MessagingHubGraph } from './index-40ZT4MHj.js';
5
+ import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-BgjS2b8N.js';
6
+ import { G as Graph, t as GraphProfileResult, s as GraphProfileOptions } from './graph-BkIkog4h.js';
7
+ import { G as GateController } from './pipeline-graph-CB4La-UW.js';
8
+ import { J as JobQueueGraph } from './index-IUCY0OFN.js';
9
9
 
10
10
  /**
11
11
  * Strategy model and priority scoring (roadmap §9.0).
@@ -843,6 +843,59 @@ interface NotifyEffectOptions {
843
843
  */
844
844
  declare function notifyEffect<T>(topic: TopicGraph<T>, transport: NotifyTransport<T>, opts?: NotifyEffectOptions): Node<unknown>;
845
845
 
846
+ /**
847
+ * `effectivenessTracker` — action×context → success rate tracker.
848
+ *
849
+ * Demoted from `patterns/reduction` to `patterns/harness/` per Tier 2.3
850
+ * (consolidation plan §1 Rule 6). The only in-tree consumer is the harness
851
+ * strategy model, so the primitive moves alongside it. Building-block status
852
+ * is dropped: this is a harness-shaped preset (a small composition over
853
+ * `reactiveMap` with attempt-counting semantics) rather than an orthogonal
854
+ * primitive.
855
+ *
856
+ * @module
857
+ */
858
+
859
+ /** A single effectiveness record for an action×context pair. */
860
+ type EffectivenessEntry = {
861
+ readonly key: string;
862
+ readonly attempts: number;
863
+ readonly successes: number;
864
+ readonly successRate: number;
865
+ };
866
+ /** Snapshot shape for the effectiveness tracker node. */
867
+ type EffectivenessSnapshot = ReadonlyMap<string, EffectivenessEntry>;
868
+ /** Bundle returned by {@link effectivenessTracker}. */
869
+ interface EffectivenessTrackerBundle {
870
+ /** Reactive node — current effectiveness map snapshot. */
871
+ readonly node: Node<EffectivenessSnapshot>;
872
+ /** Record a completed action (success or failure). */
873
+ record(key: string, success: boolean): void;
874
+ /** Look up effectiveness for a specific key. */
875
+ lookup(key: string): EffectivenessEntry | undefined;
876
+ /** Tear down internal keepalive subscriptions. */
877
+ dispose(): void;
878
+ }
879
+ /** Options for {@link effectivenessTracker}. */
880
+ type EffectivenessTrackerOptions = {
881
+ /** Name for the reactive map (default "effectiveness-entries"). */
882
+ name?: string;
883
+ };
884
+ /**
885
+ * Generic action×context → success rate tracker.
886
+ *
887
+ * Generalized from the harness `strategyModel` pattern. Tracks attempts and
888
+ * successes per string key, exposes a reactive snapshot node, and provides
889
+ * `record()` / `lookup()` methods.
890
+ *
891
+ * Use cases: A/B testing, routing optimization, cache policy tuning, retry
892
+ * strategy selection — any domain that tracks effectiveness per action.
893
+ *
894
+ * @param opts - Optional configuration.
895
+ * @returns Bundle with reactive node, record(), lookup(), dispose().
896
+ */
897
+ declare function effectivenessTracker(opts?: EffectivenessTrackerOptions): EffectivenessTrackerBundle;
898
+
846
899
  /**
847
900
  * evalVerifier — re-run the affected eval tasks against the execute-stage
848
901
  * artifact instead of asking an LLM to opine on the fix.
@@ -1335,6 +1388,10 @@ declare const index_DEFAULT_SEVERITY_WEIGHTS: typeof DEFAULT_SEVERITY_WEIGHTS;
1335
1388
  declare const index_DEFAULT_TRIAGE_PROMPT: typeof DEFAULT_TRIAGE_PROMPT;
1336
1389
  declare const index_DEFAULT_VERIFY_PROMPT: typeof DEFAULT_VERIFY_PROMPT;
1337
1390
  type index_DispatchActuatorConfig<R> = DispatchActuatorConfig<R>;
1391
+ type index_EffectivenessEntry = EffectivenessEntry;
1392
+ type index_EffectivenessSnapshot = EffectivenessSnapshot;
1393
+ type index_EffectivenessTrackerBundle = EffectivenessTrackerBundle;
1394
+ type index_EffectivenessTrackerOptions = EffectivenessTrackerOptions;
1338
1395
  type index_ErrorClass = ErrorClass;
1339
1396
  type index_ErrorClassifier = ErrorClassifier;
1340
1397
  type index_EvalDelta = EvalDelta;
@@ -1396,6 +1453,7 @@ declare const index_defaultErrorClassifier: typeof defaultErrorClassifier;
1396
1453
  declare const index_defaultLlmExecutor: typeof defaultLlmExecutor;
1397
1454
  declare const index_defaultLlmVerifier: typeof defaultLlmVerifier;
1398
1455
  declare const index_dispatchActuator: typeof dispatchActuator;
1456
+ declare const index_effectivenessTracker: typeof effectivenessTracker;
1399
1457
  declare const index_evalIntakeBridge: typeof evalIntakeBridge;
1400
1458
  declare const index_evalSource: typeof evalSource;
1401
1459
  declare const index_evalVerifier: typeof evalVerifier;
@@ -1410,7 +1468,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
1410
1468
  declare const index_strategyKey: typeof strategyKey;
1411
1469
  declare const index_strategyModel: typeof strategyModel;
1412
1470
  declare namespace index {
1413
- export { type index_ActuatorApplyFn as ActuatorApplyFn, type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_DispatchActuatorConfig as DispatchActuatorConfig, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_dispatchActuator as dispatchActuator, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
1471
+ export { type index_ActuatorApplyFn as ActuatorApplyFn, type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_DispatchActuatorConfig as DispatchActuatorConfig, type index_EffectivenessEntry as EffectivenessEntry, type index_EffectivenessSnapshot as EffectivenessSnapshot, type index_EffectivenessTrackerBundle as EffectivenessTrackerBundle, type index_EffectivenessTrackerOptions as EffectivenessTrackerOptions, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_dispatchActuator as dispatchActuator, index_effectivenessTracker as effectivenessTracker, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
1414
1472
  }
1415
1473
 
1416
- export { type StrategyModelBundle as $, type ActuatorApplyFn as A, type HarnessProfileResult as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessTraceHandle as F, type HarnessTraceOptions as G, type HarnessEvalPairConfig as H, type HarnessVerifier as I, type IntakeBridgeOptions as J, type IntakeItem as K, type IntakeSource as L, type Intervention as M, type KnownIntakeSource as N, type LintError as O, type NotifyEffectOptions as P, type NotifyTransport as Q, type PrioritySignals as R, QUEUE_NAMES as S, type QueueConfig as T, type QueueRoute as U, type RefineExecutorConfig as V, type RefineExecutorResult as W, type RootCause as X, type Severity as Y, type StrategyEntry as Z, type StrategyKey as _, type ActuatorExecutorConfig as a, type StrategySnapshot as a0, type TestFailure as a1, type TraceDetail as a2, type TraceEvent as a3, type TraceEventType as a4, type TriagePromptFn as a5, type TriagedItem as a6, type VerifyOutput as a7, type VerifyPromptFn as a8, type VerifyResult as a9, actuatorExecutor as aa, affectedTaskFilter as ab, autoSolidify as ac, beforeAfterCompare as ad, codeChangeBridge as ae, createIntakeBridge as af, defaultErrorClassifier as ag, defaultLlmExecutor as ah, defaultLlmVerifier as ai, dispatchActuator as aj, evalIntakeBridge as ak, evalSource as al, evalVerifier as am, harnessEvalPair as an, harnessLoop as ao, harnessProfile as ap, harnessTrace as aq, notifyEffect as ar, priorityScore as as, refineExecutor as at, resolvePromptFn as au, strategyKey as av, strategyModel as aw, type ActuatorResult as b, type AutoSolidifyConfig as c, type CodeChangeBridgeOptions as d, DEFAULT_EXECUTE_PROMPT as e, DEFAULT_QUEUE_CONFIGS as f, DEFAULT_SEVERITY_WEIGHTS as g, DEFAULT_TRIAGE_PROMPT as h, index as i, DEFAULT_VERIFY_PROMPT as j, type DispatchActuatorConfig as k, type ErrorClassifier as l, type EvalDelta as m, type EvalIntakeBridgeOptions as n, type EvalJudgeScore as o, type EvalResult as p, type EvalTaskDelta as q, type EvalTaskResult as r, type EvalVerifierConfig as s, type EvalVerifierSummary as t, type ExecuteOutput as u, type ExecutePromptFn as v, type ExecutionResult as w, type HarnessExecutor as x, HarnessGraph as y, type HarnessLoopOptions as z };
1474
+ export { type RootCause as $, type ActuatorApplyFn as A, type ExecutionResult as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type EffectivenessEntry as E, type HarnessExecutor as F, HarnessGraph as G, type HarnessEvalPairConfig as H, type HarnessLoopOptions as I, type HarnessProfileResult as J, type HarnessTraceHandle as K, type HarnessTraceOptions as L, type HarnessVerifier as M, type IntakeBridgeOptions as N, type IntakeItem as O, type IntakeSource as P, type Intervention as Q, type KnownIntakeSource as R, type LintError as S, type NotifyEffectOptions as T, type NotifyTransport as U, type PrioritySignals as V, QUEUE_NAMES as W, type QueueConfig as X, type QueueRoute as Y, type RefineExecutorConfig as Z, type RefineExecutorResult as _, type ActuatorExecutorConfig as a, type Severity as a0, type StrategyEntry as a1, type StrategyKey as a2, type StrategyModelBundle as a3, type StrategySnapshot as a4, type TestFailure as a5, type TraceDetail as a6, type TraceEvent as a7, type TraceEventType as a8, type TriagePromptFn as a9, strategyKey as aA, strategyModel as aB, type TriagedItem as aa, type VerifyOutput as ab, type VerifyPromptFn as ac, type VerifyResult as ad, actuatorExecutor as ae, affectedTaskFilter as af, autoSolidify as ag, beforeAfterCompare as ah, codeChangeBridge as ai, createIntakeBridge as aj, defaultErrorClassifier as ak, defaultLlmExecutor as al, defaultLlmVerifier as am, dispatchActuator as an, effectivenessTracker as ao, evalIntakeBridge as ap, evalSource as aq, evalVerifier as ar, harnessEvalPair as as, harnessLoop as at, harnessProfile as au, harnessTrace as av, notifyEffect as aw, priorityScore as ax, refineExecutor as ay, resolvePromptFn as az, type ActuatorResult as b, type AutoSolidifyConfig as c, type CodeChangeBridgeOptions as d, DEFAULT_EXECUTE_PROMPT as e, DEFAULT_QUEUE_CONFIGS as f, DEFAULT_SEVERITY_WEIGHTS as g, DEFAULT_TRIAGE_PROMPT as h, index as i, DEFAULT_VERIFY_PROMPT as j, type DispatchActuatorConfig as k, type EffectivenessSnapshot as l, type EffectivenessTrackerBundle as m, type EffectivenessTrackerOptions as n, type ErrorClass as o, type ErrorClassifier as p, type EvalDelta as q, type EvalIntakeBridgeOptions as r, type EvalJudgeScore as s, type EvalResult as t, type EvalTaskDelta as u, type EvalTaskResult as v, type EvalVerifierConfig as w, type EvalVerifierSummary as x, type ExecuteOutput as y, type ExecutePromptFn as z };
@@ -1,4 +1,4 @@
1
- import { a as Node } from './node-fSc-hCv8.cjs';
1
+ import { N as Node } from './node-BYInONRr.cjs';
2
2
 
3
3
  /**
4
4
  * Subscribe to a read-only `Node<T>` as a React value. Re-renders on node value settlement.
@@ -1,4 +1,4 @@
1
- import { C as CatchOptions, a as ClassifyResult, D as Decision, b as DecisionAction, G as GateController, c as GateOptions, P as PipelineGraph, S as StepRef, T as TerminalCause, d as decisionKeyOf, p as pipelineGraph } from './pipeline-graph-DuHpXSOn.cjs';
1
+ import { C as CatchOptions, a as ClassifyResult, D as Decision, b as DecisionAction, G as GateController, c as GateOptions, P as PipelineGraph, S as StepRef, T as TerminalCause, d as decisionKeyOf, p as pipelineGraph } from './pipeline-graph-MWrQZXCq.cjs';
2
2
 
3
3
  /**
4
4
  * Orchestration patterns (roadmap §4.1).
@@ -1,4 +1,4 @@
1
- import { a as Node } from './node-fSc-hCv8.cjs';
1
+ import { N as Node } from './node-BYInONRr.cjs';
2
2
 
3
3
  /**
4
4
  * Backoff strategies for {@link retry} (roadmap §3.1). Delays are in **nanoseconds**.
@@ -153,11 +153,29 @@ declare function withMaxAttempts(strategy: BackoffStrategy, maxAttempts: number)
153
153
  */
154
154
  declare function resolveBackoffPreset(name: BackoffPreset): BackoffStrategy;
155
155
 
156
+ /**
157
+ * Resilience utilities — roadmap §3.1 + §3.1c (retry, breaker, rate limit, status,
158
+ * fallback, cache, timeout, budgetGate).
159
+ */
160
+
156
161
  type RetryOptions = {
157
- /** Max retry attempts after each terminal `ERROR` (not counting the first failure). */
162
+ /**
163
+ * Max retry attempts after each terminal `ERROR` (not counting the first failure).
164
+ *
165
+ * **Required when `backoff` is set.** Pass `Infinity` to opt in to unbounded retries
166
+ * — the explicit value rules out the silent-infinite-budget footgun (a flaky provider
167
+ * + exponential backoff + omitted `count` would previously default to ~2.1B retries).
168
+ */
158
169
  count?: number;
159
170
  /** Delay between attempts; strategies use **nanoseconds**. */
160
171
  backoff?: BackoffStrategy | BackoffPreset;
172
+ /**
173
+ * Caller-supplied metadata merged into the produced node's `meta` (Tier 5.2
174
+ * D8 widening). Use {@link domainMeta} to tag the layer for `describe()`
175
+ * grouping. The primitive's `factoryTag("retry", …)` always wins against
176
+ * caller keys.
177
+ */
178
+ meta?: Record<string, unknown>;
161
179
  };
162
180
  /** Factory-mode-only options. `initial` seeds the outer node's cache before the first attempt. */
163
181
  type RetryFactoryOptions<T> = RetryOptions & {
@@ -177,12 +195,16 @@ type RetryFactoryOptions<T> = RetryOptions & {
177
195
  * same retry pipeline as inner-node ERROR.
178
196
  *
179
197
  * @param input - Upstream node or factory that returns a fresh node per attempt.
180
- * @param opts - `count` caps attempts; `backoff` supplies delay in **nanoseconds** (or a preset name); `initial` seeds the outer node cache (factory mode only).
198
+ * @param opts - `count` caps attempts (**required when `backoff` is set**; pass `Infinity` to opt in to unbounded); `backoff` supplies delay in **nanoseconds** (or a preset name); `initial` seeds the outer node cache (factory mode only).
181
199
  * @returns Node that retries on error.
182
200
  *
201
+ * @throws {RangeError} when `backoff` is provided without an explicit `count` (unbounded-retry footgun guard) or when `count < 0`.
202
+ *
183
203
  * @remarks
184
204
  * **Protocol:** Forwards unknown message tuples unchanged; handles `DIRTY`, `DATA`, `RESOLVED`, `COMPLETE`, `ERROR`.
185
205
  *
206
+ * **Backoff floor:** every scheduled delay is floored at 1ms via `Math.max(1, delayNs / NS_PER_MS)` even when the strategy returns 0ns. This avoids 0-delay re-entrancy on the active stack frame on a tight ERROR loop. Strategies that return `null`/`undefined` stop retrying immediately and forward the original error.
207
+ *
186
208
  * @example
187
209
  * ```ts
188
210
  * // Source mode — resubscribe the same node:
@@ -226,7 +248,12 @@ interface CircuitBreakerOptions {
226
248
  cooldown?: BackoffStrategy;
227
249
  /** Max trial requests allowed in half-open state. Default: 1. */
228
250
  halfOpenMax?: number;
229
- /** Clock function returning nanoseconds (for testability). Default: `monotonicNs`. */
251
+ /**
252
+ * Clock function returning **nanoseconds** with `monotonicNs()` semantics
253
+ * (monotonically non-decreasing; suitable for elapsed-time arithmetic — never
254
+ * use `Date.now()` because wall-clock skew can flip elapsed math negative).
255
+ * Default: `monotonicNs` from `core/clock`. Override for deterministic tests.
256
+ */
230
257
  now?: () => number;
231
258
  }
232
259
  interface CircuitBreaker {
@@ -236,7 +263,13 @@ interface CircuitBreaker {
236
263
  recordSuccess(): void;
237
264
  /** Record a failed execution. May transition to open. */
238
265
  recordFailure(error?: unknown): void;
239
- /** Current circuit state (read-only, does not trigger transitions). */
266
+ /**
267
+ * Current circuit state (read-only, does not trigger transitions).
268
+ *
269
+ * **Telemetry:** wrap with {@link withBreaker} to surface this as a reactive
270
+ * `Node<CircuitState>` companion (`bundle.breakerState`) — every state
271
+ * transition (`closed`/`open`/`half-open`) emits to subscribers.
272
+ */
240
273
  readonly state: CircuitState;
241
274
  /** Number of consecutive failures in the current closed period. */
242
275
  readonly failureCount: number;
@@ -282,6 +315,8 @@ type WithBreakerBundle<T> = {
282
315
  * @remarks
283
316
  * **Success path:** `COMPLETE` calls {@link CircuitBreaker.recordSuccess}. **Failure path:** upstream `ERROR` calls {@link CircuitBreaker.recordFailure} and is forwarded.
284
317
  *
318
+ * **State telemetry:** `breakerState: Node<CircuitState>` is a reactive companion that mirrors `breaker.state` — every transition (`closed`/`open`/`half-open`) emits a `DATA`. Also accessible via `node.meta.breakerState` for `describe()` traversal.
319
+ *
285
320
  * @example
286
321
  * ```ts
287
322
  * import { state, withBreaker, circuitBreaker } from "@graphrefly/graphrefly-ts";
@@ -295,9 +330,17 @@ type WithBreakerBundle<T> = {
295
330
  */
296
331
  declare function withBreaker<T>(breaker: CircuitBreaker, options?: {
297
332
  onOpen?: "skip" | "error";
333
+ meta?: Record<string, unknown>;
298
334
  }): (source: Node<T>) => WithBreakerBundle<T>;
299
335
  interface TokenBucket {
300
- /** Number of tokens currently available (after refill). */
336
+ /**
337
+ * Number of tokens currently available (after refill).
338
+ *
339
+ * **Float-valued.** When `refillPerSecond` is fractional (or `capacity` × elapsed-fraction
340
+ * yields a non-integer), the bucket accumulates fractional refill credit between
341
+ * `tryConsume`s. Consumers should not assume integer tokens — e.g. with
342
+ * `tokenBucket(10, 2.5)` after 100ms of elapsed time `available()` may report `0.25`.
343
+ */
301
344
  available(): number;
302
345
  /** Try to consume `cost` tokens. Returns `true` if successful. */
303
346
  tryConsume(cost?: number): boolean;
@@ -310,35 +353,79 @@ interface TokenBucket {
310
353
  */
311
354
  putBack(cost?: number): void;
312
355
  }
356
+ /** Optional configuration for {@link tokenBucket}. */
357
+ interface TokenBucketOptions {
358
+ /**
359
+ * Clock function returning **nanoseconds** with `monotonicNs()` semantics
360
+ * (monotonically non-decreasing). Default: `monotonicNs` from `core/clock`.
361
+ * Override for deterministic tests — eliminates the need for `vi.useFakeTimers`
362
+ * to drive token-refill scheduling.
363
+ */
364
+ clock?: () => number;
365
+ }
313
366
  /**
314
367
  * Token-bucket meter (capacity + refill rate per second). Use with {@link rateLimiter} or custom gates.
315
368
  *
316
369
  * @param capacity - Maximum tokens (must be positive).
317
- * @param refillPerSecond - Tokens added per elapsed second (non-negative).
370
+ * @param refillPerSecond - Tokens added per elapsed second (non-negative; may be fractional).
371
+ * @param opts - Optional `clock` override for deterministic testing.
318
372
  * @returns {@link TokenBucket} instance.
319
373
  *
374
+ * @remarks
375
+ * **Float behavior:** the internal token counter is float-valued — fractional refill
376
+ * accumulates between `tryConsume` calls. See {@link TokenBucket.available} for caveats.
377
+ *
378
+ * **Clock injection:** pass `opts.clock` to drive refill scheduling deterministically
379
+ * in tests. The contract matches {@link circuitBreaker}'s `now` option: must return
380
+ * `monotonicNs()`-style nanoseconds, never `Date.now()` (wall-clock skew breaks
381
+ * elapsed math).
382
+ *
320
383
  * @example
321
384
  * ```ts
322
385
  * import { tokenBucket } from "@graphrefly/graphrefly-ts";
323
386
  *
324
387
  * const bucket = tokenBucket(10, 2); // capacity 10, refill 2 tokens/sec
325
388
  * bucket.tryConsume(3); // true — 7 tokens remaining
326
- * bucket.available(); // ~7 (plus any elapsed refill)
389
+ * bucket.available(); // ~7 (plus any elapsed refill — float-valued)
390
+ *
391
+ * // Deterministic test:
392
+ * let t = 0;
393
+ * const tb = tokenBucket(5, 1, { clock: () => t });
394
+ * tb.tryConsume(5); // exhausts
395
+ * t = 1_000_000_000; // advance 1s → +1 refill
396
+ * tb.tryConsume(1); // true
327
397
  * ```
328
398
  *
329
399
  * @category extra
330
400
  */
331
- declare function tokenBucket(capacity: number, refillPerSecond: number): TokenBucket;
401
+ declare function tokenBucket(capacity: number, refillPerSecond: number, opts?: TokenBucketOptions): TokenBucket;
332
402
  type RateLimiterOverflowPolicy = "drop-oldest" | "drop-newest" | "error";
333
403
  type RateLimiterOptions = {
334
404
  /** Maximum `DATA` emissions per window (must be > 0). */
335
405
  maxEvents: number;
336
406
  /** Window length in nanoseconds (must be > 0). */
337
407
  windowNs: number;
338
- /** Cap on items queued while waiting for token refill (must be >= 1). Unbounded if omitted. */
339
- maxBuffer?: number;
408
+ /**
409
+ * Cap on items queued while waiting for token refill.
410
+ *
411
+ * **Required.** Pass a finite positive integer (>= 1) for a bounded queue, OR
412
+ * the literal `Infinity` to opt in to an unbounded queue (caller acknowledges
413
+ * the unbounded-memory-growth risk on a high-rate source). Omitting this
414
+ * throws at construction time — the silent-unbounded-buffer footgun is the
415
+ * most common rateLimiter mis-configuration.
416
+ */
417
+ maxBuffer: number;
340
418
  /** Overflow policy when `maxBuffer` is exceeded. Default: `"drop-newest"`. */
341
419
  onOverflow?: RateLimiterOverflowPolicy;
420
+ /**
421
+ * Caller-supplied metadata merged into the produced node's `meta` (Tier 5.2
422
+ * D8 widening). Use {@link domainMeta} to tag the layer for `describe()` /
423
+ * mermaid grouping (e.g. `domainMeta("resilient", "rate-limit")`). The
424
+ * primitive's own `factoryTag("rateLimiter", opts)` and the `droppedCount`
425
+ * / `rateLimitState` companion seeds always win against caller-supplied
426
+ * keys so the audit trail can't be silently overwritten.
427
+ */
428
+ meta?: Record<string, unknown>;
342
429
  };
343
430
  /**
344
431
  * Thrown by {@link rateLimiter} when `onOverflow: "error"` and the pending buffer is full.
@@ -349,19 +436,78 @@ declare class RateLimiterOverflowError extends Error {
349
436
  name: string;
350
437
  constructor(maxBuffer: number);
351
438
  }
439
+ /**
440
+ * Combined runtime state surfaced by {@link rateLimiter} alongside `droppedCount`.
441
+ * Tier 5.2 D7 widening — exposes pending-buffer occupancy and a `paused`
442
+ * flag so consumers can render backpressure (UI), feed `lens.health`, or
443
+ * gate downstream effects.
444
+ */
445
+ type RateLimiterState = {
446
+ /** Cumulative `DATA` items dropped due to overflow since this subscription cycle started. */
447
+ droppedCount: number;
448
+ /** Items currently buffered awaiting a token refill. `0` when the limiter is passing through. */
449
+ pendingCount: number;
450
+ /** `true` when at least one item is queued (the limiter is actively throttling). */
451
+ paused: boolean;
452
+ };
453
+ /** Bundle returned by {@link rateLimiter}. */
454
+ type RateLimiterBundle<T> = {
455
+ /** The throttled stream — at most `maxEvents` `DATA` per `windowNs`. */
456
+ node: Node<T>;
457
+ /**
458
+ * Reactive companion: count of `DATA` items dropped since the producer
459
+ * activated.
460
+ *
461
+ * - Increments on every drop under any overflow policy (`drop-newest`,
462
+ * `drop-oldest`). The `error` policy terminates the stream after a single
463
+ * overflow, so `droppedCount` increments at most once in that path.
464
+ * - **Lifecycle scoping (qa A1 + EC7):** the counter retains its final
465
+ * value through terminal (`COMPLETE` / `ERROR` / `TEARDOWN`) so consumers
466
+ * see the final drop count, not zero. The closure-held counter resets to
467
+ * `0` only when the producer fn re-runs — which only happens on a new
468
+ * subscription cycle, and only if the producer was constructed with
469
+ * `resubscribable: true`. The default `rateLimiter` producer is NOT
470
+ * resubscribable, so a single producer-fn run is the typical lifetime.
471
+ * - Producer-pattern note: this companion is invisible to `describe()`
472
+ * traversal from `node` (effect-mirror limitation; same shape as
473
+ * `withBreaker.breakerState` and `withStatus.status`). Surface it via
474
+ * `node.meta.droppedCount` if you need it in topology snapshots.
475
+ */
476
+ droppedCount: Node<number>;
477
+ /**
478
+ * Reactive companion: combined `{droppedCount, pendingCount, paused}` view.
479
+ *
480
+ * - `pendingCount` reflects the live buffer occupancy and updates on every
481
+ * push / shift / overflow drop; `paused` is shorthand for
482
+ * `pendingCount > 0`.
483
+ * - Equality-deduped — re-emits only when one of the three fields actually
484
+ * changes (so a busy steady-state where every DATA passes immediately
485
+ * produces one `paused: false` emission, not one per DATA).
486
+ * - **Lifecycle scoping (qa EC7):** same contract as `droppedCount` —
487
+ * retains its final value through terminal; resets to the initial
488
+ * `{droppedCount: 0, pendingCount: 0, paused: false}` only on a new
489
+ * producer-fn run (resubscribable upstream required).
490
+ * - Same producer-pattern caveat as `droppedCount` re: `describe()` visibility.
491
+ */
492
+ rateLimitState: Node<RateLimiterState>;
493
+ };
352
494
  /**
353
495
  * Token-bucket rate limiter: at most `maxEvents` `DATA` values per `windowNs`.
354
496
  *
355
497
  * Uses {@link tokenBucket} internally (capacity = `maxEvents`, refill = `maxEvents / windowSeconds`).
356
- * Excess items are queued FIFO until a token is available. The queue may be bounded via
357
- * `maxBuffer` with a configurable overflow policy.
498
+ * Excess items are queued FIFO (in a fixed-capacity {@link RingBuffer} for O(1) push/shift)
499
+ * until a token is available. The queue is bounded by the **required** `maxBuffer` option
500
+ * with a configurable overflow policy.
358
501
  *
359
502
  * @param source - Upstream node.
360
- * @param opts - Rate + optional bounded-buffer configuration.
361
- * @returns Node that emits DATA at most `maxEvents` per `windowNs`.
503
+ * @param opts - Rate + bounded-buffer configuration. `maxBuffer` is required (use `Infinity` to opt in to unbounded).
504
+ * @returns `{ node, droppedCount }` bundle. Subscribe to `node` for the throttled stream and to `droppedCount` for backpressure pressure.
505
+ *
506
+ * @throws {RangeError} when `maxEvents` / `windowNs` is non-positive, when `maxBuffer` is omitted, or when `maxBuffer` is a finite value < 1.
362
507
  *
363
508
  * @remarks
364
- * **Terminal:** `COMPLETE` / `ERROR` cancel the refill timer, drop the pending queue, and propagate.
509
+ * **Terminal:** `COMPLETE` / `ERROR` cancel the refill timer, drop the pending queue,
510
+ * reset `droppedCount` to `0`, and propagate.
365
511
  *
366
512
  * @example
367
513
  * ```ts
@@ -369,13 +515,18 @@ declare class RateLimiterOverflowError extends Error {
369
515
  *
370
516
  * const src = state(0);
371
517
  * // Allow at most 5 DATA values per second; queue up to 100 excess items, drop newest beyond.
372
- * const limited = rateLimiter(src, { maxEvents: 5, windowNs: NS_PER_SEC, maxBuffer: 100 });
518
+ * const { node: limited, droppedCount } = rateLimiter(src, {
519
+ * maxEvents: 5,
520
+ * windowNs: NS_PER_SEC,
521
+ * maxBuffer: 100,
522
+ * });
523
+ * droppedCount.subscribe(([m]) => console.log("dropped so far:", m[1]));
373
524
  * ```
374
525
  *
375
526
  * @category extra
376
527
  */
377
- declare function rateLimiter<T>(source: Node<T>, opts: RateLimiterOptions): Node<T>;
378
- type StatusValue = "pending" | "active" | "completed" | "errored";
528
+ declare function rateLimiter<T>(source: Node<T>, opts: RateLimiterOptions): RateLimiterBundle<T>;
529
+ type StatusValue = "pending" | "running" | "completed" | "errored";
379
530
  type WithStatusBundle<T> = {
380
531
  node: Node<T>;
381
532
  status: Node<StatusValue>;
@@ -386,10 +537,25 @@ type WithStatusBundle<T> = {
386
537
  *
387
538
  * @param src - Upstream node to mirror.
388
539
  * @param options - `initialStatus` defaults to `"pending"`.
389
- * @returns `{ node, status, error }` where `error` holds the last `ERROR` payload.
540
+ * @returns `{ node, status, error }` where `out` is the mirrored stream, `status` is a
541
+ * reactive `Node<StatusValue>` (`"pending" | "running" | "completed" | "errored"`),
542
+ * and `error` holds the last `ERROR` payload (cleared to `null` on the next `DATA`
543
+ * after `errored`).
390
544
  *
391
545
  * @remarks
392
- * **Recovery:** After `errored`, the next `DATA` clears `error` and sets `active` inside {@link batch} (matches graphrefly-py).
546
+ * **Lifecycle:** `pending` (no DATA yet) `running` (on first DATA) `completed`
547
+ * (on COMPLETE) or `errored` (on ERROR). After `errored`, the next `DATA` clears
548
+ * `error` and re-enters `running` inside a {@link batch} so subscribers see one
549
+ * consistent transition (matches graphrefly-py).
550
+ *
551
+ * **Producer-pattern visibility:** `out` is built via `node([], fn, …)`, so `src`
552
+ * appears as the source dependency in `describe()` traversal but the `status` /
553
+ * `error` companions are mirrored via subscribe-callback effects — they appear
554
+ * under `out.meta.status` / `out.meta.error` (and as `<name>::__meta__::status`
555
+ * paths in `describe()`) rather than as separate top-level edges. Subscribers
556
+ * to `out` see the throttled DATA stream; `status` / `error` companions may not
557
+ * appear as edges in `describe()` if no consumer subscribes to them (per
558
+ * COMPOSITION-GUIDE §1, push-on-subscribe semantics).
393
559
  *
394
560
  * @example
395
561
  * ```ts
@@ -399,13 +565,14 @@ type WithStatusBundle<T> = {
399
565
  * const { node, status, error } = withStatus(src);
400
566
  *
401
567
  * status.subscribe((msgs) => console.log("status:", msgs));
402
- * src.down([[DATA, 42]]); // status → "active"
568
+ * src.down([[DATA, 42]]); // status → "running"
403
569
  * ```
404
570
  *
405
571
  * @category extra
406
572
  */
407
573
  declare function withStatus<T>(src: Node<T>, options?: {
408
574
  initialStatus?: StatusValue;
575
+ meta?: Record<string, unknown>;
409
576
  }): WithStatusBundle<T>;
410
577
  /**
411
578
  * Thrown by {@link timeout} when no `DATA` arrives within the deadline.
@@ -449,7 +616,9 @@ type FallbackInput<T> = T | Node<T> | PromiseLike<T> | AsyncIterable<T>;
449
616
  *
450
617
  * @category extra
451
618
  */
452
- declare function fallback<T>(source: Node<T>, fb: FallbackInput<T>): Node<T>;
619
+ declare function fallback<T>(source: Node<T>, fb: FallbackInput<T>, options?: {
620
+ meta?: Record<string, unknown>;
621
+ }): Node<T>;
453
622
  /**
454
623
  * Emits `ERROR` with {@link TimeoutError} if no `DATA` arrives within the deadline.
455
624
  *
@@ -457,9 +626,14 @@ declare function fallback<T>(source: Node<T>, fb: FallbackInput<T>): Node<T>;
457
626
  * the timer. Terminal messages (`COMPLETE`/`ERROR`) cancel the timer.
458
627
  *
459
628
  * @param source - Upstream node.
460
- * @param timeoutNs - Deadline in nanoseconds.
629
+ * @param timeoutNs - Deadline in **nanoseconds** (must be > 0). Internally converted to milliseconds for `setTimeout` scheduling.
461
630
  * @returns Node that errors on timeout.
462
631
  *
632
+ * @throws {RangeError} when `timeoutNs <= 0`.
633
+ *
634
+ * @remarks
635
+ * **Scheduling:** internally uses {@link ResettableTimer} (raw `setTimeout`) per spec §5.10's resilience-operator carve-out. The deadline is `timeoutNs / NS_PER_MS` ms; sub-millisecond `timeoutNs` values get the same minimum-1ms host-scheduler granularity that `setTimeout` provides.
636
+ *
463
637
  * @example
464
638
  * ```ts
465
639
  * import { timeout, never, NS_PER_SEC } from "@graphrefly/graphrefly-ts";
@@ -470,6 +644,8 @@ declare function fallback<T>(source: Node<T>, fb: FallbackInput<T>): Node<T>;
470
644
  *
471
645
  * @category extra
472
646
  */
473
- declare function timeout<T>(source: Node<T>, timeoutNs: number): Node<T>;
647
+ declare function timeout<T>(source: Node<T>, timeoutNs: number, options?: {
648
+ meta?: Record<string, unknown>;
649
+ }): Node<T>;
474
650
 
475
- export { type BackoffPreset as B, type CircuitState as C, type ExponentialBackoffOptions as E, type FallbackInput as F, type JitterMode as J, NS_PER_MS as N, type RateLimiterOptions as R, type StatusValue as S, TimeoutError as T, type WithBreakerBundle as W, type CircuitBreakerOptions as a, type RetryOptions as b, NS_PER_SEC as c, type BackoffStrategy as d, type CircuitBreaker as e, CircuitOpenError as f, RateLimiterOverflowError as g, type RateLimiterOverflowPolicy as h, type TokenBucket as i, type WithStatusBundle as j, circuitBreaker as k, constant as l, decorrelatedJitter as m, exponential as n, fallback as o, fibonacci as p, linear as q, rateLimiter as r, resolveBackoffPreset as s, retry as t, timeout as u, tokenBucket as v, withBreaker as w, withMaxAttempts as x, withStatus as y };
651
+ export { type BackoffPreset as B, type CircuitState as C, type ExponentialBackoffOptions as E, type FallbackInput as F, type JitterMode as J, NS_PER_MS as N, type RateLimiterState as R, type StatusValue as S, TimeoutError as T, type WithBreakerBundle as W, type RateLimiterOptions as a, type CircuitBreakerOptions as b, type RetryOptions as c, NS_PER_SEC as d, type BackoffStrategy as e, type CircuitBreaker as f, CircuitOpenError as g, RateLimiterOverflowError as h, type RateLimiterOverflowPolicy as i, type TokenBucket as j, type WithStatusBundle as k, circuitBreaker as l, constant as m, decorrelatedJitter as n, exponential as o, fallback as p, fibonacci as q, linear as r, rateLimiter as s, resolveBackoffPreset as t, retry as u, timeout as v, tokenBucket as w, withBreaker as x, withMaxAttempts as y, withStatus as z };
@@ -1,5 +1,5 @@
1
- import { G as Graph } from './graph-BjW1taJl.js';
2
- import { M as MeasurementAdapter } from './reactive-layout-D-tRiNhg.js';
1
+ import { G as Graph } from './graph-BkIkog4h.js';
2
+ import { M as MeasurementAdapter } from './reactive-layout-KJj4E2dT.js';
3
3
 
4
4
  /**
5
5
  * Three-pane demo shell (roadmap §7.2).