@graphrefly/graphrefly 0.40.0 → 0.42.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 (296) hide show
  1. package/dist/{cascading-Cxs1eztH.d.cts → cascading-CH-_VwG9.d.cts} +2 -2
  2. package/dist/{cascading-BNfxffgc.d.ts → cascading-OgKQZjsa.d.ts} +2 -2
  3. package/dist/{chunk-CKFQS2CJ.js → chunk-2K5RXLAH.js} +1 -1
  4. package/dist/chunk-3ERTUW2J.js +45 -0
  5. package/dist/chunk-3K7HA4Y6.js +1 -0
  6. package/dist/chunk-3ZZX7M25.js +1 -0
  7. package/dist/chunk-4QH6VJF4.js +1 -0
  8. package/dist/{chunk-I2DEVPMU.js → chunk-5QRRKBUT.js} +1 -1
  9. package/dist/chunk-5ST42ESJ.js +1 -0
  10. package/dist/{chunk-FHRBBHJN.js → chunk-6YFZMUMR.js} +1 -1
  11. package/dist/{chunk-MNZIKXK4.js → chunk-7ARY3Y3T.js} +1 -1
  12. package/dist/chunk-7B7ELAT2.js +1 -0
  13. package/dist/{chunk-Z4F3DOWS.js → chunk-7VKFXLZQ.js} +1 -1
  14. package/dist/chunk-ACMJ2ZPS.js +3 -0
  15. package/dist/{chunk-32N3JALT.js → chunk-AGNM6RS6.js} +1 -1
  16. package/dist/chunk-AS3TV2TV.js +1 -0
  17. package/dist/{chunk-B7LCDQEV.js → chunk-CISGGAIF.js} +1 -1
  18. package/dist/{chunk-N43XM7BM.js → chunk-DEJTNNQC.js} +1 -1
  19. package/dist/{chunk-2QXRYP7Q.js → chunk-FDZAZNRO.js} +1 -1
  20. package/dist/{chunk-QSK3RRII.js → chunk-FUZ6S2DY.js} +1 -1
  21. package/dist/{chunk-LYM4PBMV.js → chunk-G5VBJ5K6.js} +1 -1
  22. package/dist/{chunk-6I726LZU.js → chunk-HZKW2AAB.js} +1 -1
  23. package/dist/{chunk-LCGAVGGV.js → chunk-IZM3UEH3.js} +3 -3
  24. package/dist/{chunk-2DMKW2AD.js → chunk-KCACBSJH.js} +1 -1
  25. package/dist/{chunk-SSCGRYJ2.js → chunk-KT5DTRBP.js} +1 -1
  26. package/dist/{chunk-WL6LFPJB.js → chunk-KY2LMAXU.js} +1 -1
  27. package/dist/{chunk-YXDRGKXP.js → chunk-LDQ3IUIP.js} +1 -1
  28. package/dist/chunk-LPRWATHB.js +61 -0
  29. package/dist/{chunk-6VWBPSSY.js → chunk-NWXQIOIB.js} +3 -3
  30. package/dist/{chunk-XW4YDF6G.js → chunk-Q7QQQA3I.js} +1 -1
  31. package/dist/chunk-VE5SIZEM.js +1 -0
  32. package/dist/chunk-VRALOYRD.js +1 -0
  33. package/dist/{chunk-XJLYLLIJ.js → chunk-WHMUB5QB.js} +1 -1
  34. package/dist/chunk-XLQPNNIC.js +1 -0
  35. package/dist/{chunk-JKBOIJ22.js → chunk-YGL7FPVQ.js} +1 -1
  36. package/dist/compat/index.cjs +5 -5
  37. package/dist/compat/index.d.cts +16 -16
  38. package/dist/compat/index.d.ts +16 -16
  39. package/dist/compat/index.js +1 -1
  40. package/dist/compat/jotai/index.d.cts +2 -2
  41. package/dist/compat/jotai/index.d.ts +2 -2
  42. package/dist/compat/nanostores/index.d.cts +2 -2
  43. package/dist/compat/nanostores/index.d.ts +2 -2
  44. package/dist/compat/nestjs/index.cjs +5 -5
  45. package/dist/compat/nestjs/index.d.cts +8 -8
  46. package/dist/compat/nestjs/index.d.ts +8 -8
  47. package/dist/compat/nestjs/index.js +1 -1
  48. package/dist/compat/react/index.d.cts +2 -2
  49. package/dist/compat/react/index.d.ts +2 -2
  50. package/dist/compat/solid/index.d.cts +2 -2
  51. package/dist/compat/solid/index.d.ts +2 -2
  52. package/dist/compat/svelte/index.d.cts +2 -2
  53. package/dist/compat/svelte/index.d.ts +2 -2
  54. package/dist/compat/vue/index.d.cts +2 -2
  55. package/dist/compat/vue/index.d.ts +2 -2
  56. package/dist/compat/zustand/index.cjs +3 -3
  57. package/dist/compat/zustand/index.d.cts +4 -4
  58. package/dist/compat/zustand/index.d.ts +4 -4
  59. package/dist/compat/zustand/index.js +1 -1
  60. package/dist/core/index.d.cts +4 -4
  61. package/dist/core/index.d.ts +4 -4
  62. package/dist/{decay-C25AyNAj.d.cts → decay-2ZukgQ4o.d.cts} +2 -2
  63. package/dist/{decay-BnrlbxSv.d.ts → decay-CdEBmDIs.d.ts} +2 -2
  64. package/dist/extra/browser.d.cts +1 -1
  65. package/dist/extra/browser.d.ts +1 -1
  66. package/dist/extra/index.cjs +14 -14
  67. package/dist/extra/index.d.cts +10 -11
  68. package/dist/extra/index.d.ts +10 -11
  69. package/dist/extra/index.js +1 -1
  70. package/dist/extra/node.cjs +2 -2
  71. package/dist/extra/node.d.cts +1 -1
  72. package/dist/extra/node.d.ts +1 -1
  73. package/dist/extra/node.js +1 -1
  74. package/dist/extra/operators.cjs +1 -1
  75. package/dist/extra/operators.d.cts +1 -1
  76. package/dist/extra/operators.d.ts +1 -1
  77. package/dist/extra/operators.js +1 -1
  78. package/dist/extra/reactive.d.cts +3 -3
  79. package/dist/extra/reactive.d.ts +3 -3
  80. package/dist/extra/reactive.js +1 -1
  81. package/dist/extra/render/index.d.cts +3 -3
  82. package/dist/extra/render/index.d.ts +3 -3
  83. package/dist/extra/sources.cjs +3 -1
  84. package/dist/extra/sources.d.cts +1 -1
  85. package/dist/extra/sources.d.ts +1 -1
  86. package/dist/extra/sources.js +1 -1
  87. package/dist/extra/storage-browser.d.cts +1 -1
  88. package/dist/extra/storage-browser.d.ts +1 -1
  89. package/dist/{fallback-CMZl39L5.d.ts → fallback-CqYVLL6X.d.ts} +1 -1
  90. package/dist/{fallback-8JYU8tlT.d.cts → fallback-Ctlj2tMY.d.cts} +1 -1
  91. package/dist/graph/index.cjs +7 -7
  92. package/dist/graph/index.d.cts +5 -5
  93. package/dist/graph/index.d.ts +5 -5
  94. package/dist/graph/index.js +1 -1
  95. package/dist/{graph-BkIkog4h.d.ts → graph-7VguS7a4.d.ts} +3 -3
  96. package/dist/{graph-E6likq7w.d.cts → graph-C4SHb3Ly.d.cts} +3 -3
  97. package/dist/{index-DktLSZOc.d.cts → index-2B7u2pVn.d.cts} +4 -4
  98. package/dist/{index-BTHOTC0Q.d.cts → index-3NmAfcH0.d.cts} +25 -7
  99. package/dist/{index-D1IEZUsj.d.ts → index-4Uz-e_fL.d.ts} +573 -213
  100. package/dist/{index-BAQrjuZF.d.ts → index-B-i4_g3k.d.ts} +2 -2
  101. package/dist/{index-DpiGqtrs.d.cts → index-B11anra4.d.cts} +441 -381
  102. package/dist/{index-WSlcjhQF.d.ts → index-B3OTH1dV.d.ts} +124 -13
  103. package/dist/{index-2n8Eai6M.d.ts → index-BG0BN3PB.d.ts} +1 -1
  104. package/dist/{index-z8WFPVI8.d.cts → index-BJX94aud.d.cts} +1 -1
  105. package/dist/{index-DhLyOHYZ.d.ts → index-BP8a88zx.d.ts} +11 -4
  106. package/dist/{index-Cnr1WrlX.d.cts → index-BTQtTb_H.d.cts} +14 -3
  107. package/dist/{index-BaA-xpSw.d.ts → index-BUYXac2c.d.ts} +3 -3
  108. package/dist/{index-DOBLxOti.d.cts → index-BVpm6noz.d.cts} +1 -1
  109. package/dist/{index-DhnsQfa3.d.ts → index-Bbkgpt5t.d.ts} +441 -381
  110. package/dist/{index-Cczxgd2D.d.ts → index-Bc41FuHp.d.cts} +3 -3
  111. package/dist/{index-BiHUBEKq.d.cts → index-BdGtBX-X.d.cts} +3 -3
  112. package/dist/index-BeT2r7sk.d.ts +760 -0
  113. package/dist/{index-da2V5vPy.d.ts → index-Bf7eqeSF.d.ts} +2 -2
  114. package/dist/{index-bXXLSvor.d.ts → index-Bn4zHYLj.d.ts} +4 -4
  115. package/dist/{index-DGTo1yka.d.cts → index-BoLv_OfD.d.cts} +2 -2
  116. package/dist/{index-B72TQQHd.d.cts → index-BsT7F2et.d.ts} +3 -3
  117. package/dist/{index-Bd91Nmf4.d.cts → index-BtAsBp8K.d.cts} +4 -4
  118. package/dist/{index-DgJc8Zgc.d.cts → index-C0-Jv1kP.d.cts} +81 -5
  119. package/dist/{index-C6ZUaos7.d.ts → index-C7O6r5fV.d.ts} +1 -1
  120. package/dist/{index-CL7oilfm.d.cts → index-C9kSENB4.d.cts} +1 -1
  121. package/dist/{index-yLt-aPMp.d.ts → index-CCq87F7t.d.ts} +1 -1
  122. package/dist/{index-DQQCOIt8.d.cts → index-CEMx8n40.d.cts} +10 -5
  123. package/dist/{index-BilOa6AE.d.cts → index-CJIuLu2f.d.cts} +124 -13
  124. package/dist/{index-B2RUoIUz.d.ts → index-CJK1JkYy.d.ts} +1 -1
  125. package/dist/{index-IUCY0OFN.d.ts → index-CJQm0g38.d.ts} +25 -7
  126. package/dist/index-CPNSy-U0.d.cts +760 -0
  127. package/dist/{index-A3U3CSve.d.cts → index-CZjOhcBy.d.cts} +2 -2
  128. package/dist/{index-CAP3UGsq.d.ts → index-CZmcDtFn.d.ts} +1 -1
  129. package/dist/{index-DYTBbF8T.d.cts → index-ChOyVLKm.d.cts} +1 -1
  130. package/dist/{index-eaQuGJnv.d.ts → index-CpyNFqkB.d.ts} +3 -3
  131. package/dist/{index-BJSZxSFX.d.ts → index-CvrqGfNS.d.ts} +1 -1
  132. package/dist/{index-DJ_MPOJ5.d.cts → index-D-Xs74HZ.d.cts} +573 -213
  133. package/dist/{index-C5cQ7Gfx.d.ts → index-D6egPFAL.d.ts} +4 -4
  134. package/dist/{index-CD2dBMet.d.ts → index-D8l8hNXn.d.ts} +10 -5
  135. package/dist/{index-40ZT4MHj.d.ts → index-DBHK8O6H.d.ts} +14 -3
  136. package/dist/{index-DVDapw2k.d.cts → index-DBIqYS43.d.cts} +35 -21
  137. package/dist/{index-3k4Gg6-n.d.ts → index-DBevwHj_.d.ts} +3 -3
  138. package/dist/{index-Ctb7_2sG.d.ts → index-DIOoAZUX.d.ts} +1 -1
  139. package/dist/{index-BQ1fR4li.d.ts → index-DO9XxMzS.d.ts} +35 -21
  140. package/dist/{index-CQtWm7jS.d.ts → index-DQo8xBgd.d.ts} +9 -9
  141. package/dist/{index-DH4fm2Ck.d.ts → index-Dgs8zcj7.d.ts} +2 -2
  142. package/dist/{index-CtFNGe-m.d.cts → index-Dhc7a7Xo.d.cts} +2 -2
  143. package/dist/{index-MxYuWOrf.d.cts → index-DmAgG5CI.d.cts} +3 -3
  144. package/dist/{index-CoM4rzyB.d.ts → index-Dmqp7KjD.d.ts} +1 -1
  145. package/dist/{index-B6iTqKtJ.d.ts → index-Dn-wI9g4.d.ts} +2 -2
  146. package/dist/{index-C-dkXOpB.d.cts → index-Du7u1lSf.d.cts} +11 -4
  147. package/dist/{index-DVAlsmEU.d.cts → index-HoU88d5U.d.cts} +3 -3
  148. package/dist/{index-CRm0YIzC.d.cts → index-LIpQQE9f.d.cts} +9 -9
  149. package/dist/{index-CgnCFhr2.d.cts → index-f5IivDUX.d.cts} +1 -1
  150. package/dist/{index-PgwvGWa1.d.cts → index-hHcaFlJX.d.cts} +1 -1
  151. package/dist/{index-I1cCY3ZI.d.ts → index-pT8sCpOJ.d.ts} +81 -5
  152. package/dist/{index-D4uimgee.d.cts → index-sl4NyzQx.d.cts} +1 -1
  153. package/dist/{index-tV3AA9hI.d.cts → index-tJoTcnHh.d.cts} +2 -2
  154. package/dist/{index-D3ayz3hy.d.cts → index-z96luz5O.d.cts} +1 -1
  155. package/dist/index.cjs +48 -48
  156. package/dist/index.d.cts +45 -50
  157. package/dist/index.d.ts +45 -50
  158. package/dist/index.js +1 -1
  159. package/dist/{meta-D8OyedKp.d.ts → meta-BgVAsg9j.d.ts} +1 -1
  160. package/dist/{meta-Ct9nqQS5.d.cts → meta-vE8bxW1E.d.cts} +1 -1
  161. package/dist/{node-BYInONRr.d.cts → node-ClS5yC-B.d.cts} +1 -1
  162. package/dist/{node-BYInONRr.d.ts → node-ClS5yC-B.d.ts} +1 -1
  163. package/dist/{observable-DO8DDEzv.d.ts → observable-BsBzUrcI.d.ts} +1 -1
  164. package/dist/{observable-DMIlYJV1.d.cts → observable-DLGPPtb8.d.cts} +1 -1
  165. package/dist/patterns/ai/browser.d.cts +4 -4
  166. package/dist/patterns/ai/browser.d.ts +4 -4
  167. package/dist/patterns/ai/browser.js +1 -1
  168. package/dist/patterns/ai/index.cjs +17 -17
  169. package/dist/patterns/ai/index.d.cts +17 -17
  170. package/dist/patterns/ai/index.d.ts +17 -17
  171. package/dist/patterns/ai/index.js +1 -1
  172. package/dist/patterns/ai/node.d.cts +4 -4
  173. package/dist/patterns/ai/node.d.ts +4 -4
  174. package/dist/patterns/ai/node.js +1 -1
  175. package/dist/patterns/cqrs/index.cjs +3 -3
  176. package/dist/patterns/cqrs/index.d.cts +6 -6
  177. package/dist/patterns/cqrs/index.d.ts +6 -6
  178. package/dist/patterns/cqrs/index.js +1 -1
  179. package/dist/patterns/demo-shell/index.cjs +5 -5
  180. package/dist/patterns/demo-shell/index.d.cts +5 -5
  181. package/dist/patterns/demo-shell/index.d.ts +5 -5
  182. package/dist/patterns/demo-shell/index.js +1 -1
  183. package/dist/patterns/domain-templates/index.cjs +3 -3
  184. package/dist/patterns/domain-templates/index.d.cts +4 -4
  185. package/dist/patterns/domain-templates/index.d.ts +4 -4
  186. package/dist/patterns/domain-templates/index.js +1 -1
  187. package/dist/patterns/graphspec/index.cjs +12 -12
  188. package/dist/patterns/graphspec/index.d.cts +5 -5
  189. package/dist/patterns/graphspec/index.d.ts +5 -5
  190. package/dist/patterns/graphspec/index.js +1 -1
  191. package/dist/patterns/harness/index.cjs +10 -8
  192. package/dist/patterns/harness/index.d.cts +11 -12
  193. package/dist/patterns/harness/index.d.ts +11 -12
  194. package/dist/patterns/harness/index.js +1 -1
  195. package/dist/patterns/inspect/index.cjs +3 -0
  196. package/dist/patterns/inspect/index.d.cts +9 -0
  197. package/dist/patterns/inspect/index.d.ts +9 -0
  198. package/dist/patterns/inspect/index.js +1 -0
  199. package/dist/patterns/job-queue/index.cjs +3 -3
  200. package/dist/patterns/job-queue/index.d.cts +6 -6
  201. package/dist/patterns/job-queue/index.d.ts +6 -6
  202. package/dist/patterns/job-queue/index.js +1 -1
  203. package/dist/patterns/memory/index.cjs +3 -3
  204. package/dist/patterns/memory/index.d.cts +6 -6
  205. package/dist/patterns/memory/index.d.ts +6 -6
  206. package/dist/patterns/memory/index.js +1 -1
  207. package/dist/patterns/messaging/index.cjs +3 -3
  208. package/dist/patterns/messaging/index.d.cts +5 -5
  209. package/dist/patterns/messaging/index.d.ts +5 -5
  210. package/dist/patterns/messaging/index.js +1 -1
  211. package/dist/patterns/orchestration/index.cjs +3 -3
  212. package/dist/patterns/orchestration/index.d.cts +7 -7
  213. package/dist/patterns/orchestration/index.d.ts +7 -7
  214. package/dist/patterns/orchestration/index.js +1 -1
  215. package/dist/patterns/process/index.cjs +1 -1
  216. package/dist/patterns/process/index.d.cts +7 -7
  217. package/dist/patterns/process/index.d.ts +7 -7
  218. package/dist/patterns/process/index.js +1 -1
  219. package/dist/patterns/reactive-layout/index.cjs +4 -4
  220. package/dist/patterns/reactive-layout/index.d.cts +5 -5
  221. package/dist/patterns/reactive-layout/index.d.ts +5 -5
  222. package/dist/patterns/reactive-layout/index.js +1 -1
  223. package/dist/patterns/reduction/index.cjs +3 -3
  224. package/dist/patterns/reduction/index.d.cts +4 -4
  225. package/dist/patterns/reduction/index.d.ts +4 -4
  226. package/dist/patterns/reduction/index.js +1 -1
  227. package/dist/patterns/surface/index.cjs +8 -8
  228. package/dist/patterns/surface/index.d.cts +6 -6
  229. package/dist/patterns/surface/index.d.ts +6 -6
  230. package/dist/patterns/surface/index.js +1 -1
  231. package/dist/{pipeline-graph-MWrQZXCq.d.cts → pipeline-graph-WBlobVhU.d.cts} +5 -5
  232. package/dist/{pipeline-graph-CB4La-UW.d.ts → pipeline-graph-v8fMvqNk.d.ts} +5 -5
  233. package/dist/{reactive-layout-BtZfUKuL.d.cts → reactive-layout-Dsvob4zD.d.cts} +2 -2
  234. package/dist/{reactive-layout-KJj4E2dT.d.ts → reactive-layout-v7KPvxoc.d.ts} +2 -2
  235. package/dist/{reactive-log-_zeEnB9H.d.cts → reactive-log-B00laMSQ.d.cts} +1 -1
  236. package/dist/{reactive-log-BlAsPLl2.d.ts → reactive-log-BezYsbA_.d.ts} +1 -1
  237. package/dist/{reactive-map-6P_k3AQM.d.cts → reactive-map-48mnZ-nu.d.cts} +1 -1
  238. package/dist/{reactive-map-CjXByDV-.d.ts → reactive-map-BVVPdvmi.d.ts} +1 -1
  239. package/dist/resilience-445VFFXQ.js +1 -0
  240. package/dist/{sugar-BhfjgetH.d.ts → sugar-CH-2ZY90.d.ts} +1 -1
  241. package/dist/{sugar-DzePN5-g.d.cts → sugar-DStZfUEK.d.cts} +1 -1
  242. package/dist/{topology-tree-mF7Emqzm.d.ts → topology-tree-BNGvuG82.d.ts} +1 -1
  243. package/dist/{topology-tree-3LBKFsUo.d.cts → topology-tree-BSdfSwMi.d.cts} +1 -1
  244. package/dist/{types-1Dhoi7HM.d.cts → types-B1jDWVsM.d.cts} +1 -1
  245. package/dist/{types-39jk0kaV.d.ts → types-DkzUUs0H.d.ts} +1 -1
  246. package/package.json +11 -51
  247. package/dist/budget-gate-CmmVtasH.d.ts +0 -115
  248. package/dist/budget-gate-DiP_nK0n.d.cts +0 -115
  249. package/dist/chunk-2BX4NB34.js +0 -3
  250. package/dist/chunk-6XVD5TZV.js +0 -1
  251. package/dist/chunk-756D5TFD.js +0 -1
  252. package/dist/chunk-7Q4ZD3YW.js +0 -1
  253. package/dist/chunk-ECQRP2UT.js +0 -1
  254. package/dist/chunk-INQFTVZA.js +0 -61
  255. package/dist/chunk-J63M5U46.js +0 -1
  256. package/dist/chunk-K2Z7UENB.js +0 -1
  257. package/dist/chunk-OSZ22J7O.js +0 -1
  258. package/dist/chunk-PPUYQ66A.js +0 -1
  259. package/dist/chunk-RZJDIV2G.js +0 -1
  260. package/dist/chunk-SGS4OJGS.js +0 -1
  261. package/dist/chunk-SVFKHUCW.js +0 -1
  262. package/dist/chunk-UWA6D7UF.js +0 -3
  263. package/dist/chunk-VMF23LGB.js +0 -1
  264. package/dist/chunk-WUT362QV.js +0 -1
  265. package/dist/chunk-YKD7WUYJ.js +0 -43
  266. package/dist/index-8s-Qm-gz.d.ts +0 -218
  267. package/dist/index-BgjS2b8N.d.ts +0 -366
  268. package/dist/index-BmSQLAZo.d.cts +0 -244
  269. package/dist/index-CGhMJNHb.d.cts +0 -128
  270. package/dist/index-CUIkE1l9.d.cts +0 -230
  271. package/dist/index-Ck35nA-T.d.ts +0 -244
  272. package/dist/index-CuPUehFa.d.cts +0 -218
  273. package/dist/index-D1Gc7wV5.d.ts +0 -230
  274. package/dist/index-N2MAxt7_.d.ts +0 -128
  275. package/dist/index-t6L2qpHh.d.cts +0 -366
  276. package/dist/patterns/audit/index.cjs +0 -3
  277. package/dist/patterns/audit/index.d.cts +0 -8
  278. package/dist/patterns/audit/index.d.ts +0 -8
  279. package/dist/patterns/audit/index.js +0 -1
  280. package/dist/patterns/guarded-execution/index.cjs +0 -3
  281. package/dist/patterns/guarded-execution/index.d.cts +0 -9
  282. package/dist/patterns/guarded-execution/index.d.ts +0 -9
  283. package/dist/patterns/guarded-execution/index.js +0 -1
  284. package/dist/patterns/lens/index.cjs +0 -3
  285. package/dist/patterns/lens/index.d.cts +0 -7
  286. package/dist/patterns/lens/index.d.ts +0 -7
  287. package/dist/patterns/lens/index.js +0 -1
  288. package/dist/patterns/refine-loop/index.cjs +0 -5
  289. package/dist/patterns/refine-loop/index.d.cts +0 -9
  290. package/dist/patterns/refine-loop/index.d.ts +0 -9
  291. package/dist/patterns/refine-loop/index.js +0 -1
  292. package/dist/patterns/resilient-pipeline/index.cjs +0 -3
  293. package/dist/patterns/resilient-pipeline/index.d.cts +0 -8
  294. package/dist/patterns/resilient-pipeline/index.d.ts +0 -8
  295. package/dist/patterns/resilient-pipeline/index.js +0 -1
  296. package/dist/resilience-S33JV6XC.js +0 -1
@@ -1,11 +1,10 @@
1
1
  import { NodeInput } from './extra/sources.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';
2
+ import { N as Node } from './node-ClS5yC-B.js';
3
+ import { L as LLMAdapter } from './types-DkzUUs0H.js';
4
+ import { J as JobEnvelope, a as JobFlowGraph, b as JobQueueGraph } from './index-CJQm0g38.js';
5
+ import { T as TopicGraph, M as MessagingHubGraph } from './index-DBHK8O6H.js';
6
+ import { a as GraphOptions, G as Graph, t as GraphProfileResult, s as GraphProfileOptions } from './graph-7VguS7a4.js';
7
+ import { G as GateController } from './pipeline-graph-v8fMvqNk.js';
9
8
 
10
9
  /**
11
10
  * Strategy model and priority scoring (roadmap §9.0).
@@ -278,37 +277,72 @@ interface QueueConfig {
278
277
  startOpen?: boolean;
279
278
  }
280
279
  /**
281
- * Pluggable EXECUTE slot. Given the reactive `executeInput` stream of
282
- * triaged items, produce a stream of `ExecuteOutput<A>` decisions.
283
- *
284
- * **Contract** (see design note in `docs/optimizations.md` / session log):
285
- * 1. Emit DATA exactly once per completed execution — not on input arrival.
286
- * 2. Cancel in-flight work when a new item supersedes the current one
287
- * (`switchMap` is the idiomatic pattern).
288
- * 3. Do not bypass `input.cache` the harness pairs output with item via
289
- * `withLatestFrom(output, input)`. A side-state mirror of the item can
290
- * desync under nested-drain ordering.
291
- * 4. The returned node IS the primary of a subsequent `withLatestFrom`;
292
- * firing on input arrival (rather than result completion) causes verify
293
- * to pair with a stale/null ExecuteOutput.
294
- *
295
- * `refineExecutor` makes all four rules structurally unreachable.
280
+ * Accumulating per-job payload threaded through the harness's
281
+ * `executeFlow` ({@link harnessLoop} Tier 6.5 C2 lock). Each stage's work fn
282
+ * receives the prior payload and returns a new one with its own field
283
+ * filled in:
284
+ *
285
+ * - The `enqueueEffect` seeds with `{ item }` only.
286
+ * - The execute work fn fills `execution`.
287
+ * - The verify work fn fills `verify`.
288
+ *
289
+ * The post-completed dispatch effect reads `verify.verified` /
290
+ * `verify.errorClass` to route the item to `verifyResults` /
291
+ * `retryTopic.publish(...)` / `intake.publish(...)` (3-way verdict).
292
+ *
293
+ * Carrying `item` through stage payloads (rather than re-pairing via a
294
+ * separate `withLatestFrom` node) is the C2 deviation from today's
295
+ * `executeContextNode` design: each `JobEnvelope` is self-contained, so the
296
+ * verify pump can run multiple in-flight jobs in parallel without an
297
+ * external pairing node.
296
298
  */
297
- type HarnessExecutor<A = unknown> = (input: Node<TriagedItem | null>) => Node<ExecuteOutput<A> | null>;
299
+ interface HarnessJobPayload<A = unknown> {
300
+ /** The triaged item flowing through execute → verify → dispatch. */
301
+ item: TriagedItem;
302
+ /** Filled by the execute work fn. Verify reads this; dispatch routes. */
303
+ execution?: ExecutionResult<A>;
304
+ /** Filled by the verify work fn. Dispatch reads `verified` / `errorClass`. */
305
+ verify?: VerifyOutput;
306
+ }
298
307
  /**
299
- * Pluggable VERIFY slot. Receives a pre-paired `[executeOutput, triagedItem]`
300
- * context node the harness creates this via `withLatestFrom(executeNode,
301
- * executeInput)` once and shares it with both the verifier and the internal
302
- * fast-retry dispatcher, so verifier implementations do NOT need to build
303
- * their own pairing node (and doubling the `withLatestFrom` would pay the
304
- * subscription cost twice).
305
- *
306
- * Same contract rules 1–3 as {@link HarnessExecutor}. Rule 4 does not
307
- * apply (verify output isn't a primary to a further withLatestFrom).
308
- *
309
- * `evalVerifier` handles the re-evaluation case against affected eval tasks.
308
+ * Pluggable EXECUTE work fn — receives a {@link JobEnvelope} carrying a
309
+ * {@link HarnessJobPayload} (with `item` set, `execution` / `verify`
310
+ * unset), returns a {@link NodeInput} that emits the same payload with
311
+ * `execution` filled.
312
+ *
313
+ * **C2 contract (Tier 6.5 lock, 2026-04-28):**
314
+ * 1. Emit DATA exactly once per claimed job. The JobFlow pump subscribes
315
+ * once, takes the first DATA, then unsubscribes. Subsequent emissions
316
+ * are ignored.
317
+ * 2. Errors must be caught and surfaced as a `failure` outcome inside the
318
+ * payload never throw / return ERROR. A pump nack would drop the
319
+ * item from JobFlow before the dispatch effect could route it.
320
+ * 3. The work fn runs once per claim — no internal `switchMap` needed.
321
+ * Per-item subgraphs (e.g. a fresh `refineLoop` per claim) are
322
+ * instantiated inside the work fn body.
323
+ *
324
+ * `defaultLlmExecutor` (in `defaults.ts`) is a thin `adapter.invoke()`
325
+ * wrapper. `refineExecutor` builds a per-claim `refineLoop`.
326
+ * `actuatorExecutor` runs a side-effecting `apply(item, signal)`.
310
327
  */
311
- type HarnessVerifier<A = unknown> = (context: Node<readonly [ExecuteOutput<A> | null, TriagedItem | null] | null>) => Node<VerifyOutput | null>;
328
+ type HarnessExecutor<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) => NodeInput<HarnessJobPayload<A>>;
329
+ /**
330
+ * Pluggable VERIFY work fn — receives a {@link JobEnvelope} whose payload
331
+ * has `item` + `execution` populated, returns a {@link NodeInput} that
332
+ * emits the same payload with `verify` filled.
333
+ *
334
+ * Same C2 contract rules 1–3 as {@link HarnessExecutor}. The dispatch
335
+ * effect downstream reads `verify.verified` (success → ack +
336
+ * verifyResults publish), `verify.errorClass === "self-correctable"`
337
+ * (retry → republish to retry topic with `$retries` bumped), or anything
338
+ * else (structural → reingest to intake if budget remains).
339
+ *
340
+ * Verify-LLM-call failures (parse error, adapter throw, timeout) MUST be
341
+ * caught and surfaced as a structural-failure `verify` payload (`{
342
+ * verified: false, findings: [...], errorClass: "structural" }`) so the
343
+ * dispatch effect can route the item rather than silently drop it.
344
+ */
345
+ type HarnessVerifier<A = unknown> = (job: JobEnvelope<HarnessJobPayload<A>>) => NodeInput<HarnessJobPayload<A>>;
312
346
  /** Triage prompt callable shape — pair of `[intake item, strategy snapshot]`. */
313
347
  type TriagePromptFn = (pair: readonly [IntakeItem, StrategySnapshot]) => string;
314
348
  /** Execute prompt callable shape. */
@@ -372,55 +406,63 @@ interface HarnessLoopOptions<A = unknown> {
372
406
  maxTotalReingestions?: number;
373
407
  /** Retained limit for topic logs (default 1000). */
374
408
  retainedLimit?: number;
409
+ /**
410
+ * Per-pump-tick claim cap on the internal `executeFlow` JobFlow's `execute`
411
+ * stage (Tier 6.5 C2). Default `Number.MAX_SAFE_INTEGER` — every pending
412
+ * claim is processed in one tick (matches today's unbounded `merge()`
413
+ * parallelism). Lower this to bound LLM cost spikes on bursty intake.
414
+ *
415
+ * **Caveat.** This caps **claims per pump tick**, not total concurrent
416
+ * inflight. Bounded-inflight is a separate primitive concern — see
417
+ * `docs/optimizations.md` "Tier 6.5 follow-up — bounded concurrent inflight
418
+ * on JobFlow stages".
419
+ */
420
+ executeMaxPerPump?: number;
421
+ /**
422
+ * Per-pump-tick claim cap on the internal `executeFlow` JobFlow's
423
+ * `verify` stage. Default `Number.MAX_SAFE_INTEGER`. Same caveat as
424
+ * {@link HarnessLoopOptions.executeMaxPerPump}. Honored independently
425
+ * of the execute cap via `StageDef.maxPerPump` (Tier 6.5 D1).
426
+ */
427
+ verifyMaxPerPump?: number;
375
428
  }
376
429
 
377
430
  /**
378
- * actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
431
+ * actuatorExecutor — bridge a side-effecting actuator into the harness
432
+ * EXECUTE work fn.
379
433
  *
380
434
  * `refineExecutor` covers the artifact-typed case (refine a candidate
381
435
  * `T` against an evaluator); `actuatorExecutor` covers the side-effecting
382
436
  * case (write a catalog entry, mutate a template registry, edit a doc on
383
437
  * disk). The user's `apply` callback owns the side effect; the executor
384
- * wraps it in the per-item lifecycle that makes the four
385
- * {@link HarnessExecutor} contract rules structurally unreachable:
386
- *
387
- * 1. **One DATA per actuation.** The inner producer captures the first
388
- * DATA from the bridged `apply` result, emits a single
389
- * `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
390
- * completes. Subsequent inner DATAs are ignored.
391
- * 2. **Cancel-on-supersede.** A new triaged item supersedes via
392
- * `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
393
- * propagates into `apply`'s `signal` (and through `fromAny`'s
394
- * internal cancellation hooks) so signal-aware actuators stop
395
- * in-flight work instead of double-writing.
396
- * 3. **Item via deps, not closure mirror.** The triaged item is captured
397
- * in the `switchMap` callback's lexical scope, not mirrored to a
398
- * side-state node same shape as `refineExecutor`.
399
- * 4. **Fires on result, not input.** The producer emits exactly when
400
- * `apply`'s bridged node settles (or fails). Input-arrival waves
401
- * never produce an `ExecuteOutput`.
402
- *
403
- * **What `apply` may return.** Anything `fromAny` accepts: a
404
- * `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
405
- * or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
406
- * `fetch`, `db.execute`); reactive composition through `Node<R>` is the
407
- * escape hatch when the actuator itself wants to surface intermediate
408
- * progress before settling.
438
+ * wraps it in the per-claim lifecycle:
439
+ *
440
+ * 1. **One DATA per claim.** The producer captures the first DATA from
441
+ * the bridged `apply` result, emits a {@link HarnessJobPayload} with
442
+ * `execution` filled in, and completes. Subsequent inner DATAs are
443
+ * ignored.
444
+ * 2. **Cancel-on-teardown.** When the JobFlow pump unsubscribes (after
445
+ * capturing first DATA, or on graph teardown), the producer's cleanup
446
+ * fires `ac.abort()` which propagates into `apply`'s `signal`.
447
+ * 3. **Errors surfaced as failure payload.** A thrown / ERROR result is
448
+ * mapped via `onError` into a `failure`-outcome `ExecuteOutput` so the
449
+ * dispatch effect can route the item rather than silently dropping it.
450
+ *
451
+ * **What `apply` may return.** Anything `fromAny` accepts: `Promise<R>`,
452
+ * `Node<R>`, `AsyncIterable<R>`, `Iterable<R>`, or a synchronous `R`.
453
+ * `Promise<R>` is the typical shape (`writeFile`, `fetch`, `db.execute`).
409
454
  *
410
455
  * **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
411
456
  * the actuation record; an `evalVerifier<R>` whose `extractArtifact`
412
- * returns the record (or a transform of it typically the post-apply
413
- * world state needed by the evaluator) closes the EXECUTE → VERIFY loop
414
- * with consistent typing end-to-end.
457
+ * returns the record (or the post-apply world state) closes EXECUTE
458
+ * VERIFY with consistent typing end-to-end.
415
459
  *
416
460
  * @module
417
461
  */
418
462
 
419
463
  /**
420
464
  * What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
421
- * raw `R` for synchronous side effects, so callers can write the most
422
- * direct shape for their case (Promise for async I/O, raw record for
423
- * pure in-memory mutation).
465
+ * raw `R` for synchronous side effects.
424
466
  */
425
467
  type ActuatorResult<R> = NodeInput<R>;
426
468
  /** Configuration for {@link actuatorExecutor}. */
@@ -428,8 +470,8 @@ interface ActuatorExecutorConfig<R> {
428
470
  /**
429
471
  * Apply the side effect for this triaged item. Receives the abort
430
472
  * signal — actuators that own real I/O should thread `signal` into
431
- * `fetch`, `fs.writeFile`, child-process kills, etc. so that
432
- * `switchMap` supersede actually cancels in-flight work.
473
+ * `fetch`, `fs.writeFile`, child-process kills, etc. so that the
474
+ * pump's teardown actually cancels in-flight work.
433
475
  *
434
476
  * The first DATA emitted by the bridged result wins; later DATAs are
435
477
  * discarded. ERROR (or a synchronous throw) is mapped via `onError`.
@@ -440,28 +482,21 @@ interface ActuatorExecutorConfig<R> {
440
482
  /**
441
483
  * Optional gate — when provided and returning `false`, the actuator
442
484
  * is skipped and the executor emits an `ExecuteOutput` with
443
- * `outcome: "failure"` and detail from `skipDetail` (default
444
- * `"actuator skipped (shouldApply returned false)"`). Use this to
445
- * route interventions the actuator can't handle (e.g. `intervention:
446
- * "investigate"` items) into the failure path so the verifier sees
447
- * them.
485
+ * `outcome: "failure"`. Use to route interventions the actuator can't
486
+ * handle into the failure path.
448
487
  */
449
488
  shouldApply?: (item: TriagedItem) => boolean;
450
489
  /** Detail string for the skip path. Default: includes intervention name. */
451
490
  skipDetail?: (item: TriagedItem) => string;
452
491
  /**
453
492
  * Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
454
- * Default: `outcome: "success"`, `detail` references the intervention
455
- * + summary, `artifact: record`.
456
493
  */
457
494
  toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
458
495
  /**
459
- * Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
460
- * `outcome: "failure"`, `detail` carries the error message,
461
- * `artifact: undefined`.
496
+ * Map a thrown / ERROR result into an `ExecuteOutput<R>`.
462
497
  */
463
498
  onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
464
- /** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
499
+ /** Node name prefix for `describe()` introspection. */
465
500
  name?: string;
466
501
  }
467
502
  /**
@@ -479,11 +514,7 @@ interface ActuatorExecutorConfig<R> {
479
514
  * },
480
515
  * shouldApply: (item) => item.intervention === "catalog-fn",
481
516
  * }),
482
- * verifier: evalVerifier<CatalogPatch>({
483
- * evaluator,
484
- * datasetFor,
485
- * extractArtifact: (exec) => exec.artifact ?? null,
486
- * }),
517
+ * verifier: evalVerifier<CatalogPatch>({ ... }),
487
518
  * });
488
519
  * ```
489
520
  */
@@ -505,7 +536,7 @@ interface DispatchActuatorConfig<R> {
505
536
  routes: Readonly<Partial<Record<TriagedItem["intervention"], ActuatorApplyFn<R>>>>;
506
537
  /** Fallback apply callback for items whose intervention is not in `routes`. */
507
538
  default?: ActuatorApplyFn<R>;
508
- /** Node name prefix for `describe()` introspection. Default `"dispatch-actuator"`. */
539
+ /** Node name prefix for `describe()` introspection. */
509
540
  name?: string;
510
541
  }
511
542
  /**
@@ -516,22 +547,6 @@ interface DispatchActuatorConfig<R> {
516
547
  * intervention → callback at call-time. Items with no matching route and no
517
548
  * `default` emit a skip-failure with detail
518
549
  * `"no route for intervention 'X'"`.
519
- *
520
- * @example Multi-intervention dogfood loop.
521
- * ```ts
522
- * const harness = harnessLoop("repair", {
523
- * adapter,
524
- * executor: dispatchActuator<CatalogPatch>({
525
- * routes: {
526
- * "catalog-fn": catalogFnActuator,
527
- * "template": templateActuator,
528
- * "docs": docEditActuator,
529
- * },
530
- * default: investigateActuator,
531
- * }),
532
- * verifier: evalVerifier<CatalogPatch>({ ... }),
533
- * });
534
- * ```
535
550
  */
536
551
  declare function dispatchActuator<R>(config: DispatchActuatorConfig<R>): HarnessExecutor<R>;
537
552
 
@@ -679,7 +694,7 @@ declare function createIntakeBridge<T>(source: Node<T>, intakeTopic: TopicGraph<
679
694
  * TS eval runner uses `EvalRun` from `evals/lib/types.ts` which is a superset
680
695
  * of this shape. The bridge only reads what it needs.
681
696
  */
682
- interface EvalResult {
697
+ interface EvalRunResult {
683
698
  run_id: string;
684
699
  model: string;
685
700
  tasks: EvalTaskResult[];
@@ -707,12 +722,12 @@ interface EvalIntakeBridgeOptions {
707
722
  * Each failing judge criterion produces a separate IntakeItem — not one
708
723
  * item per task. This gives the triage stage granular findings to classify.
709
724
  *
710
- * @param evalSource - Node emitting EvalResult (or EvalResult[]).
725
+ * @param evalSource - Node emitting EvalRunResult (or EvalRunResult[]).
711
726
  * @param intakeTopic - TopicGraph to publish IntakeItem entries to.
712
727
  * @param opts - Optional configuration.
713
728
  * @returns The effect node (for lifecycle management).
714
729
  */
715
- declare function evalIntakeBridge(evalSource: Node<EvalResult | EvalResult[]>, intakeTopic: TopicGraph<IntakeItem>, opts?: EvalIntakeBridgeOptions): Node<unknown>;
730
+ declare function evalIntakeBridge(evalSource: Node<EvalRunResult | EvalRunResult[]>, intakeTopic: TopicGraph<IntakeItem>, opts?: EvalIntakeBridgeOptions): Node<unknown>;
716
731
  /**
717
732
  * Wrap any eval runner as a reactive producer node.
718
733
  *
@@ -728,9 +743,9 @@ declare function evalIntakeBridge(evalSource: Node<EvalResult | EvalResult[]>, i
728
743
  * ```
729
744
  *
730
745
  * @param trigger - Any node; each new DATA emission fires the runner.
731
- * @param runner - Returns an EvalResult (or promise of one).
746
+ * @param runner - Returns an EvalRunResult (or promise of one).
732
747
  */
733
- declare function evalSource<T extends EvalResult>(trigger: Node<unknown>, runner: () => T | Promise<T>): Node<T>;
748
+ declare function evalSource<T extends EvalRunResult>(trigger: Node<unknown>, runner: () => T | Promise<T>): Node<T>;
734
749
  /** Per-task delta produced by {@link beforeAfterCompare}. */
735
750
  interface EvalTaskDelta {
736
751
  taskId: string;
@@ -754,12 +769,12 @@ interface EvalDelta {
754
769
  * Derived node that computes before/after eval deltas.
755
770
  *
756
771
  * Pure computation: no LLM, no async. Compares per-task validity and
757
- * pass counts between two `EvalResult` snapshots.
772
+ * pass counts between two `EvalRunResult` snapshots.
758
773
  *
759
774
  * @param before - Node holding the baseline eval result.
760
775
  * @param after - Node holding the new eval result.
761
776
  */
762
- declare function beforeAfterCompare(before: Node<EvalResult>, after: Node<EvalResult>): Node<EvalDelta>;
777
+ declare function beforeAfterCompare(before: Node<EvalRunResult>, after: Node<EvalRunResult>): Node<EvalDelta>;
763
778
  /**
764
779
  * Derived node that selects which eval task IDs to re-run.
765
780
  *
@@ -896,6 +911,341 @@ type EffectivenessTrackerOptions = {
896
911
  */
897
912
  declare function effectivenessTracker(opts?: EffectivenessTrackerOptions): EffectivenessTrackerBundle;
898
913
 
914
+ /**
915
+ * refineLoop — universal prompt/artifact optimization loop as a reactive Graph.
916
+ *
917
+ * Roadmap §9.8 (Wave 2.5). The loop is a 4-topic reactive pipeline:
918
+ *
919
+ * iterationTrigger ──▶ GENERATE ──▶ EVALUATE ──▶ ANALYZE ──▶ DECIDE
920
+ * │ │
921
+ * └─────── feedback + trigger ◀─────┘
922
+ *
923
+ * Each stage is a `TopicGraph` so dispatches stay O(1) per subscriber (cursor-
924
+ * based) and every iteration is observable, replayable, and checkpointable.
925
+ *
926
+ * Composition invariants (from COMPOSITION-GUIDE):
927
+ * - §7 feedback cycle: only `iterationTrigger` drives re-generation. Strategy
928
+ * + feedback + dataset are read via closure updaters (§28 factory-time seed)
929
+ * so mid-run swaps apply to the NEXT iteration, never retrigger the current.
930
+ * - §28 factory-time seed: strategy, lastFeedback, prevCandidates, dataset
931
+ * closures captured at wiring time + updated via subscribe handlers so the
932
+ * first activation doesn't drop the initial pair.
933
+ * - §32 nested-drain state-mirror: the decide-effect writes `lastFeedback`
934
+ * BEFORE bumping `iterationTrigger` inside its `batch()`, guaranteeing the
935
+ * mirror is current when the next-iteration wave reaches the generate fn.
936
+ * - §19 terminal-emission: history / best emit once per iteration (settled),
937
+ * not on every intermediate wave.
938
+ * - §27 attachSnapshotStorage: the whole graph is checkpointable — pause overnight,
939
+ * resume tomorrow from the exact iteration count, candidate set, strategy.
940
+ *
941
+ * Scope clamp (v1): core factory + `RefineStrategy<T>` + `blindVariation` and
942
+ * `errorCritique` built-ins + budget gating + checkpoint/resume.
943
+ * `mutateAndRefine` / registry / `autoSelectStrategy` / `optimizeCatalog` /
944
+ * `refineExecutor` are deferred.
945
+ *
946
+ * @module
947
+ */
948
+
949
+ /** A single task row — the unit the evaluator scores one candidate against. */
950
+ interface DatasetItem {
951
+ readonly id: string;
952
+ readonly [k: string]: unknown;
953
+ }
954
+ /**
955
+ * One candidate's score on one task. Higher is better by convention.
956
+ *
957
+ * Set `candidateIndex` when the evaluator fans out scores across multiple
958
+ * candidates (e.g. `candidates × tasks`). `pickBest` aggregates mean scores
959
+ * per `candidateIndex` when present; when absent, falls back to positional
960
+ * alignment (`scores[i]` ↔ `candidates[i]`).
961
+ */
962
+ interface EvalResult {
963
+ readonly taskId: string;
964
+ readonly score: number;
965
+ readonly error?: string;
966
+ readonly detail?: unknown;
967
+ /** 0-based index into the `candidates` batch this score belongs to. */
968
+ readonly candidateIndex?: number;
969
+ }
970
+ /** Aggregated feedback the strategy produces from a scores batch. */
971
+ interface Feedback {
972
+ readonly summary: string;
973
+ readonly critique?: unknown;
974
+ readonly weakTasks?: readonly string[];
975
+ readonly score: number;
976
+ }
977
+ /**
978
+ * Strategy interface — plain object, no base class. Strategies implement three
979
+ * pure hooks; the loop infrastructure wraps them in reactive nodes so every
980
+ * decision is visible in `describe()`.
981
+ *
982
+ * `generate` may be sync or async. Async generates yield a microtask per
983
+ * iteration — that's what gives `pause()` / `setStrategy()` a window to
984
+ * interleave. **A fully synchronous `generate` will drain the entire loop
985
+ * during factory activation** (all iterations run before `refineLoop()`
986
+ * returns), which is usually not what you want for observable, steerable
987
+ * loops. Real strategies that call LLMs / evals are async and Just Work;
988
+ * custom sync strategies for tests are fine but should be marked `async`
989
+ * to match real cadence.
990
+ */
991
+ interface RefineStrategy<T> {
992
+ readonly name: string;
993
+ /** Produce initial candidates from the seed. Called at iteration 0. */
994
+ seed(seed: T): readonly T[];
995
+ /** Reduce scores to feedback. Pure function. */
996
+ analyze(scores: readonly EvalResult[], candidates: readonly T[]): Feedback;
997
+ /**
998
+ * Generate next-iteration candidates from feedback + prior candidates.
999
+ * Async allowed — the loop awaits via `fromAny`.
1000
+ */
1001
+ generate(feedback: Feedback, candidates: readonly T[]): Promise<readonly T[]> | readonly T[];
1002
+ }
1003
+ /**
1004
+ * Evaluator shape — Shape 4 (2026-04-22): both `candidates` and `dataset` are
1005
+ * reactive nodes; the evaluator's returned node IS the EVALUATE topic's source
1006
+ * (no glue). Implementers can batch-eval (e.g. `funnel` with concurrency) or
1007
+ * map per-candidate — user's code.
1008
+ *
1009
+ * **`EvalResult.candidateIndex` semantics.** Optional per-result field.
1010
+ * When present, multi-candidate aggregators ({@link errorCritique}'s
1011
+ * `pickBest`) score per index, picking the candidate with the highest
1012
+ * mean score. When absent across all results, those aggregators fall back
1013
+ * to positional matching against `candidates[0]` — meaning a strategy that
1014
+ * generates >1 candidate but emits unindexed scores effectively only ever
1015
+ * critiques the first candidate. Set `candidateIndex` whenever the
1016
+ * evaluator's score corresponds to a specific candidate in the batch.
1017
+ */
1018
+ type Evaluator<T> = (candidates: Node<readonly T[]>, dataset: Node<readonly DatasetItem[]>) => Node<readonly EvalResult[]>;
1019
+ /**
1020
+ * Early-stop controls. Each field fans into its own derived node; the four
1021
+ * combine via `||` into `converged: Node<boolean>`. Callers see exactly
1022
+ * which rule tripped via `status` / the DECIDE topic's `reason`.
1023
+ */
1024
+ interface ConvergenceOptions {
1025
+ /** Stop when aggregate score has not improved for N iterations. */
1026
+ patience?: number;
1027
+ /** Stop when aggregate score reaches or exceeds this. */
1028
+ minScore?: number;
1029
+ /** Stop when absolute delta between consecutive scores falls below this. */
1030
+ minDelta?: number;
1031
+ /** Stop after N total evaluations (iteration count × per-iter candidates). */
1032
+ maxEvaluations?: number;
1033
+ /** Stop after N iterations. Always set a finite bound in production. */
1034
+ maxIterations?: number;
1035
+ }
1036
+ /** Emitted to the GENERATE topic each time the strategy produces a batch. */
1037
+ interface GenerateEvent<T> {
1038
+ readonly iteration: number;
1039
+ readonly candidates: readonly T[];
1040
+ readonly timestamp_ns: number;
1041
+ }
1042
+ /** Emitted to the EVALUATE topic when scores settle for an iteration. */
1043
+ interface EvaluateEvent<T> {
1044
+ readonly iteration: number;
1045
+ readonly candidates: readonly T[];
1046
+ readonly scores: readonly EvalResult[];
1047
+ readonly timestamp_ns: number;
1048
+ }
1049
+ /** Emitted to the ANALYZE topic — strategy's reduction over scores. */
1050
+ interface AnalyzeEvent<T> {
1051
+ readonly iteration: number;
1052
+ readonly candidates: readonly T[];
1053
+ readonly feedback: Feedback;
1054
+ readonly timestamp_ns: number;
1055
+ }
1056
+ /** Emitted to the DECIDE topic — branch taken this iteration. */
1057
+ interface DecideEvent {
1058
+ readonly iteration: number;
1059
+ readonly decision: "continue" | "converged" | "budget" | "paused";
1060
+ readonly reason?: string;
1061
+ readonly timestamp_ns: number;
1062
+ }
1063
+ type RefineStatus = "running" | "converged" | "budget" | "paused" | "errored";
1064
+ interface Iteration<T> {
1065
+ readonly n: number;
1066
+ readonly candidates: readonly T[];
1067
+ readonly scores: readonly EvalResult[];
1068
+ readonly feedback: Feedback;
1069
+ /** `null` iff the candidate batch for this iteration was empty. */
1070
+ readonly best: T | null;
1071
+ readonly bestScore: number;
1072
+ readonly timestamp_ns: number;
1073
+ }
1074
+ interface RefineLoopOptions extends ConvergenceOptions {
1075
+ /** Reactive dataset OR a plain array (auto-wrapped into `state`). */
1076
+ dataset: NodeInput<readonly DatasetItem[]> | readonly DatasetItem[];
1077
+ /** Total teacher calls cap across iterations. Default: unlimited. */
1078
+ budget?: number;
1079
+ /** Graph name. Default: `"refine-loop"`. */
1080
+ name?: string;
1081
+ /** Extra graph options forwarded to the underlying `Graph`. */
1082
+ graph?: GraphOptions;
1083
+ }
1084
+ /**
1085
+ * Return type — extends Graph so all observability tools (`describe`,
1086
+ * `explain`, `observe`, `attachSnapshotStorage`, `snapshot`) Just Work.
1087
+ */
1088
+ interface RefineLoopGraph<T> extends Graph {
1089
+ readonly best: Node<T | null>;
1090
+ readonly score: Node<number>;
1091
+ readonly status: Node<RefineStatus>;
1092
+ readonly history: Node<readonly Iteration<T>[]>;
1093
+ readonly strategy: Node<RefineStrategy<T>>;
1094
+ readonly iteration: Node<number>;
1095
+ /** Stage topics — subscribe for per-stage streaming / cursor consumers. */
1096
+ readonly generate: TopicGraph<GenerateEvent<T>>;
1097
+ readonly evaluate: TopicGraph<EvaluateEvent<T>>;
1098
+ readonly analyze: TopicGraph<AnalyzeEvent<T>>;
1099
+ readonly decide: TopicGraph<DecideEvent>;
1100
+ /** Swap the active strategy mid-run (human-in-the-loop handoff). */
1101
+ setStrategy(next: RefineStrategy<T>): void;
1102
+ /** Pause after the current iteration completes. */
1103
+ pause(): void;
1104
+ /** Resume a paused loop. */
1105
+ resume(): void;
1106
+ }
1107
+ declare function refineLoop<T>(seed: T, evaluator: Evaluator<T>, initialStrategy: RefineStrategy<T>, opts: RefineLoopOptions): RefineLoopGraph<T>;
1108
+ /**
1109
+ * Context passed to a `blindVariation` teacher per call. `reportCost` is a
1110
+ * per-call hook — see `BlindVariationOptions.tokens`.
1111
+ */
1112
+ interface BlindVariationContext<T> {
1113
+ readonly prior: T;
1114
+ /**
1115
+ * Report tokens consumed by this teacher call. Aggregated per iteration
1116
+ * and flushed to `opts.tokens` in the strategy's `finally` block so
1117
+ * partial spend is preserved when the teacher throws mid-batch.
1118
+ */
1119
+ readonly reportCost: (tokens: number) => void;
1120
+ }
1121
+ interface BlindVariationOptions<T> {
1122
+ /** Name — default: `"blindVariation"`. */
1123
+ name?: string;
1124
+ /** Number of candidates generated per iteration. Default: 4. */
1125
+ width?: number;
1126
+ /**
1127
+ * Run teacher calls in parallel via `Promise.all`. Default `true` — the
1128
+ * common case (independent LLM calls). Set `false` to run sequentially
1129
+ * via `for/await` when teachers share stateful resources (rate limiters,
1130
+ * rolling context, serial API ordering) that don't tolerate concurrency.
1131
+ */
1132
+ parallel?: boolean;
1133
+ /**
1134
+ * Optional cost counter node. Running total tokens reported via
1135
+ * `ctx.reportCost` during each iteration is added to this node in the
1136
+ * strategy's `finally` block — fires on success AND on teacher throw so
1137
+ * partial spend is never lost. User owns the node; wire to `budgetGate`,
1138
+ * `attachSnapshotStorage`, telemetry, etc.
1139
+ */
1140
+ tokens?: Node<number>;
1141
+ /**
1142
+ * Teacher — given `{prior, reportCost}`, produce one variant. Async
1143
+ * allowed. Called `width` times per iteration. Call `ctx.reportCost(n)`
1144
+ * to track tokens consumed per call (optional, no-op if `opts.tokens`
1145
+ * is not set).
1146
+ */
1147
+ teacher: (ctx: BlindVariationContext<T>) => Promise<T> | T;
1148
+ }
1149
+ /**
1150
+ * Simplest built-in strategy: generate N variants per iteration via the
1151
+ * supplied `teacher`; no feedback-informed steering (equivalent to Random
1152
+ * Search). Validates the loop infrastructure end-to-end and is the baseline
1153
+ * every other strategy should outperform.
1154
+ *
1155
+ * `analyze` records the mean score and flags the worst task — strategies that
1156
+ * care about per-task critique layer on top.
1157
+ */
1158
+ declare function blindVariation<T>(opts: BlindVariationOptions<T>): RefineStrategy<T>;
1159
+ /**
1160
+ * Context passed to an `errorCritique` teacher. `critique` is the pre-formatted
1161
+ * summary a prompt template can drop in verbatim; `failures` carries the
1162
+ * structured evidence (per-task error / score / detail) for richer prompts.
1163
+ */
1164
+ interface ErrorCritiqueContext<T> {
1165
+ readonly prior: T;
1166
+ readonly critique: string;
1167
+ readonly failures: readonly EvalResult[];
1168
+ /**
1169
+ * Report tokens consumed by this teacher call. Aggregated per iteration
1170
+ * and flushed to `opts.tokens` in the strategy's `finally` block so
1171
+ * partial spend is preserved when the teacher throws mid-batch.
1172
+ */
1173
+ readonly reportCost: (tokens: number) => void;
1174
+ }
1175
+ interface ErrorCritiqueOptions<T> {
1176
+ /** Name — default: `"errorCritique"`. */
1177
+ name?: string;
1178
+ /** Number of candidates generated per iteration. Default: 4. */
1179
+ width?: number;
1180
+ /**
1181
+ * Cut-off below which a task is classified as a failure and fed into the
1182
+ * critique. Default: the batch mean — any task scoring below the batch
1183
+ * mean is a failure. Pass a number for an absolute cut-off, or a function
1184
+ * for per-batch computation (e.g. a percentile). When the default mean
1185
+ * is non-finite (NaN / ±Infinity from a degenerate evaluator), ALL scores
1186
+ * are treated as failures so the critique loop continues to steer.
1187
+ */
1188
+ failureThreshold?: number | ((scores: readonly EvalResult[]) => number);
1189
+ /** Cap on failure samples packed into the critique. Default: 5. */
1190
+ maxFailureSamples?: number;
1191
+ /**
1192
+ * Format failures into the `critique` string passed to the teacher. Default
1193
+ * joins `- taskId (score=N) | error: …` lines. Override to shape LLM prompts.
1194
+ *
1195
+ * **Note:** the `feedback` argument is a shell with `{score, weakTasks}`
1196
+ * populated; `summary` is empty because `analyze` computes the final summary
1197
+ * AFTER `formatCritique` runs (the summary embeds the formatted count).
1198
+ * Rely on `failures` and `feedback.score` — do not read `feedback.summary`
1199
+ * here.
1200
+ */
1201
+ formatCritique?: (failures: readonly EvalResult[], feedback: Feedback) => string;
1202
+ /**
1203
+ * Run teacher calls in parallel via `Promise.all`. Default `true` — the
1204
+ * common case (independent LLM calls). Set `false` to run sequentially
1205
+ * via `for/await` when teachers share stateful resources (rate limiters,
1206
+ * rolling context, serial API ordering) that don't tolerate concurrency.
1207
+ */
1208
+ parallel?: boolean;
1209
+ /**
1210
+ * Optional cost counter node. Running total tokens reported via
1211
+ * `ctx.reportCost` during each iteration is added to this node in the
1212
+ * strategy's `finally` block — fires on success AND on teacher throw so
1213
+ * partial spend is never lost. User owns the node; wire to `budgetGate`,
1214
+ * `attachSnapshotStorage`, telemetry, etc.
1215
+ */
1216
+ tokens?: Node<number>;
1217
+ /**
1218
+ * Teacher — given `{prior, critique, failures, reportCost}`, produce one
1219
+ * refined variant. Called `width` times per iteration. Async allowed.
1220
+ * Call `ctx.reportCost(n)` to track tokens consumed per call (optional,
1221
+ * no-op if `opts.tokens` is not set).
1222
+ */
1223
+ teacher: (ctx: ErrorCritiqueContext<T>) => Promise<T> | T;
1224
+ }
1225
+ /**
1226
+ * Critique-driven strategy (ProTeGi-style "textual gradient"). Each iteration:
1227
+ * 1. `analyze` classifies tasks scoring below a threshold as failures, picks
1228
+ * the best candidate from the batch, and packs both plus a formatted
1229
+ * critique string into `feedback.critique` as a private payload.
1230
+ * 2. `generate` unpacks that payload and calls the teacher with
1231
+ * `{prior, critique, failures, reportCost}` `width` times, returning the
1232
+ * refined batch.
1233
+ *
1234
+ * The teacher receives a pre-formatted string (drop into an LLM prompt) AND
1235
+ * the structured failure list (for richer prompts that want per-task detail).
1236
+ * Throws on empty candidate batches — matches `blindVariation`'s contract
1237
+ * (no silent zero-candidate cycles).
1238
+ *
1239
+ * When `setStrategy()` swaps this strategy in mid-run, the first `generate`
1240
+ * may receive a `Feedback` produced by the prior strategy (no private payload);
1241
+ * the fallback path uses `candidates[last]` as the prior and the feedback
1242
+ * summary as the critique, so the loop keeps running without a stall. When a
1243
+ * private payload IS present, `priv.critiqueText` takes precedence over any
1244
+ * edits a caller made to `feedback.summary` — treat `critique` as the
1245
+ * strategy-owned channel.
1246
+ */
1247
+ declare function errorCritique<T>(opts: ErrorCritiqueOptions<T>): RefineStrategy<T>;
1248
+
899
1249
  /**
900
1250
  * evalVerifier — re-run the affected eval tasks against the execute-stage
901
1251
  * artifact instead of asking an LLM to opine on the fix.
@@ -906,16 +1256,16 @@ declare function effectivenessTracker(opts?: EffectivenessTrackerOptions): Effec
906
1256
  * into the same `Evaluator<T>` shape that `refineLoop` used. Consistent
907
1257
  * scoring between EXECUTE and VERIFY — no "LLM said it looks fine" gap.
908
1258
  *
909
- * Per-item lifecycle mirrors `refineExecutor`: each new execute-context
910
- * pair mounts a fresh eval subgraph inside `switchMap`, so a superseding
911
- * item cancels the prior run.
1259
+ * **C2 lifecycle (Tier 6.5).** The work fn is invoked once per claimed
1260
+ * verify-stage job. A fresh single-candidate eval subgraph is mounted
1261
+ * inside the work fn and tears down when the JobFlow pump ack/unsubs.
912
1262
  *
913
1263
  * @module
914
1264
  */
915
1265
 
916
1266
  /** Summary of the re-eval wave passed to a custom `toOutput` mapper. */
917
1267
  interface EvalVerifierSummary {
918
- readonly scores: readonly EvalResult$1[];
1268
+ readonly scores: readonly EvalResult[];
919
1269
  readonly meanScore: number;
920
1270
  readonly passCount: number;
921
1271
  readonly total: number;
@@ -924,8 +1274,6 @@ interface EvalVerifierSummary {
924
1274
  * True when the EXECUTE stage did not produce an artifact (i.e.
925
1275
  * `extractArtifact` returned `null` / `undefined`). Downstream mappers
926
1276
  * can distinguish this from "evaluator ran but everything scored zero".
927
- * When `true`, `scores` / `total` / `passCount` are all zero and
928
- * `meanScore` is `-Infinity`.
929
1277
  */
930
1278
  readonly missingArtifact?: boolean;
931
1279
  }
@@ -935,41 +1283,30 @@ interface EvalVerifierConfig<T> {
935
1283
  * Pull the artifact that should be re-evaluated out of the execute-stage
936
1284
  * output. Default: `(exec) => exec.artifact as T` — works out-of-the-box
937
1285
  * with `refineExecutor` (which populates `artifact` by default).
938
- *
939
- * **Type trust:** the default cast assumes the caller's executor wrote
940
- * a `T`-shaped value to `ExecuteOutput.artifact`. A wrong-typed artifact
941
- * surfaces as a runtime error inside `evaluator`, not here — supply a
942
- * narrowing `extractArtifact` if you need stricter validation.
943
1286
  */
944
1287
  extractArtifact?: (exec: ExecuteOutput<T>, item: TriagedItem) => T | null | undefined;
945
1288
  /**
946
1289
  * Reactive evaluator — same contract as `refineLoop`'s `Evaluator<T>`.
947
- * Typically this is the SAME evaluator configured inside `refineExecutor`
948
- * so EXECUTE and VERIFY scoring stay consistent.
949
1290
  */
950
1291
  evaluator: Evaluator<T>;
951
1292
  /**
952
- * Resolve which dataset rows to score this verification against. Use
953
- * `affectedTaskFilter` or hand-roll per-item subset logic. Default:
954
- * empty array (verifier emits a findings entry explaining this).
1293
+ * Resolve which dataset rows to score this verification against.
955
1294
  */
956
1295
  datasetFor: (item: TriagedItem) => readonly DatasetItem[];
957
1296
  /** Mean score required to pass verification. Default `0.5`. */
958
1297
  threshold?: number;
959
1298
  /** Optional output mapper — override the default findings / errorClass shape. */
960
1299
  toOutput?: (summary: EvalVerifierSummary) => VerifyOutput;
961
- /** Node name prefix for introspection. Default `"eval-verifier"`. */
1300
+ /** Node name prefix for introspection. */
962
1301
  name?: string;
963
1302
  }
964
1303
  /**
965
1304
  * Build a {@link HarnessVerifier} that re-runs the eval suite against the
966
1305
  * artifact produced by EXECUTE.
967
1306
  *
968
- * Consumes the shared `[executeOutput, item]` context node that the
969
- * harness pre-pairs via `withLatestFrom` no internal re-wrap here (QA
970
- * round: "defaultLlmVerifier double-wraps withLatestFrom"). The harness's
971
- * single `executeContextNode` is reused by both the verifier and the
972
- * fast-retry dispatcher, so exec + item are subscribed once per wave.
1307
+ * Reads `job.payload.execution` (filled by the upstream execute work fn)
1308
+ * and runs the evaluator against `extractArtifact(execution, item)`.
1309
+ * Returns the same payload with `verify` filled in.
973
1310
  *
974
1311
  * @example Pair with refineExecutor for end-to-end eval consistency.
975
1312
  * ```ts
@@ -1015,18 +1352,6 @@ interface HarnessEvalPairConfig<T> {
1015
1352
  * configuration is a compile error instead of a silent `as T` in
1016
1353
  * `extractArtifact`. Shares the evaluator so EXECUTE and VERIFY score with
1017
1354
  * identical semantics (the whole point of `evalVerifier`).
1018
- *
1019
- * @example
1020
- * ```ts
1021
- * const { executor, verifier } = harnessEvalPair<CatalogEntry>({
1022
- * seedFrom: (item) => initialCatalogEntry(item),
1023
- * evaluator: (cands, ds) => runEvalBatch(cands, ds),
1024
- * strategy: errorCritique({ teacher, width: 3 }),
1025
- * datasetFor: affectedTasksFor,
1026
- * threshold: 0.8,
1027
- * });
1028
- * const harness = harnessLoop<CatalogEntry>("repair", { adapter, executor, verifier });
1029
- * ```
1030
1355
  */
1031
1356
  declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
1032
1357
  executor: HarnessExecutor<T>;
@@ -1049,18 +1374,33 @@ declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
1049
1374
  * (topic name), not code — every routing decision is a visible edge in
1050
1375
  * `describe()` / `explain()`.
1051
1376
  *
1377
+ * **EXECUTE/VERIFY via JobFlow (Tier 6.5 C2 lock, 2026-04-28).** The
1378
+ * stages 5–6 EXECUTE → VERIFY pair runs through an internal `executeFlow`
1379
+ * JobFlow with two stages (`execute`, `verify`). Each stage's pump owns
1380
+ * `claim → work → ack` for one claim; the verify stage's payload contains
1381
+ * `{ item, execution, verify }` so the post-completed dispatch effect can
1382
+ * route the 3-way verdict (verified / self-correctable retry / structural
1383
+ * + reingest) without any cross-wave `withLatestFrom` pairing. Items
1384
+ * arriving from per-route topics + retry feedback enter via a single
1385
+ * `enqueueEffect` that pushes to `executeFlow.queue("execute")`.
1386
+ *
1052
1387
  * @module
1053
1388
  */
1054
1389
 
1055
1390
  /**
1056
- * Build the default EXECUTE slota `promptNode` driven by the given
1057
- * adapter and prompt template. This is the factory behind the harness's
1058
- * zero-config execute stage.
1391
+ * Build the default EXECUTE work fn calls `adapter.invoke()` once per
1392
+ * claimed job, parses the JSON response into an `ExecuteOutput<A>`, and
1393
+ * returns a {@link HarnessJobPayload} with `execution` filled in.
1394
+ *
1395
+ * Errors (parse failure, adapter throw, malformed JSON) are caught and
1396
+ * surfaced as a `failure`-outcome payload — the dispatch effect routes
1397
+ * the item rather than dropping it via pump nack (see C2 contract on
1398
+ * {@link HarnessExecutor}).
1059
1399
  *
1060
- * Obeys all four rules of the {@link HarnessExecutor} contract: `promptNode`
1061
- * internally uses `switchMap` + `fromAny` for cancellation (rule 2), emits
1062
- * once per resolved LLM invocation (rules 1 + 4), and reads the triaged
1063
- * item exclusively through its `deps` argument (rule 3).
1400
+ * Subsumes the pre-Tier-6.5 `promptNode`-based default: per-claim LLM
1401
+ * calls don't benefit from `promptNode`'s cross-wave switchMap, and a
1402
+ * fresh per-claim subgraph would be wasteful. Direct `adapter.invoke`
1403
+ * is the right shape inside JobFlow pumps.
1064
1404
  *
1065
1405
  * @param adapter - LLMAdapter for the execute call.
1066
1406
  * @param prompt - Prompt template (string or `(item) => string`). Defaults
@@ -1068,37 +1408,45 @@ declare function harnessEvalPair<T>(config: HarnessEvalPairConfig<T>): {
1068
1408
  */
1069
1409
  declare function defaultLlmExecutor<A = unknown>(adapter: LLMAdapter, prompt?: string | ExecutePromptFn): HarnessExecutor<A>;
1070
1410
  /**
1071
- * Build the default VERIFY slota `promptNode` that reviews a
1072
- * pre-paired `[executeOutput, item]` context node. The harness creates
1073
- * the pairing (via `withLatestFrom(executeNode, executeInput)`) once and
1074
- * shares it with both the verifier and the internal fast-retry
1075
- * dispatcher, so the default verifier can consume the context directly
1076
- * without building its own withLatestFrom.
1077
- *
1078
- * @param adapter - LLMAdapter for the verify call.
1079
- * @param prompt - Prompt template. Defaults to the harness's built-in
1080
- * verify prompt (receives the full pair, extracts both).
1411
+ * Build the default VERIFY work fn calls `adapter.invoke()` once per
1412
+ * claimed job to review the prior-stage execution, parses the JSON
1413
+ * response into a `VerifyOutput`, and returns a {@link HarnessJobPayload}
1414
+ * with `verify` filled in.
1415
+ *
1416
+ * Same C2 error semantics as {@link defaultLlmExecutor}: parse / adapter
1417
+ * failures are surfaced as a structural-failure verify payload so the
1418
+ * dispatch effect routes the item.
1081
1419
  */
1082
1420
  declare function defaultLlmVerifier<A = unknown>(adapter: LLMAdapter, prompt?: string | VerifyPromptFn<A>): HarnessVerifier<A>;
1083
1421
  /**
1084
1422
  * The graph returned by {@link harnessLoop}. Wraps a single
1085
1423
  * {@link MessagingHubGraph} that owns all reactive-wire-crossing topics
1086
1424
  * (intake, per-route queues, `__unrouted`, retry, verify-results,
1087
- * triage-output). Sugar getters expose the canonical topics so the
1088
- * surface stays ergonomic.
1425
+ * triage-output), plus an `executeFlow` JobFlow that owns the
1426
+ * EXECUTE VERIFY pipeline (Tier 6.5 C2). Sugar getters expose the
1427
+ * canonical topics so the surface stays ergonomic.
1089
1428
  */
1090
1429
  declare class HarnessGraph<A = unknown> extends Graph {
1091
1430
  /** Messaging hub — the routing-data plane. Queue topics live here. */
1092
1431
  readonly queues: MessagingHubGraph;
1093
1432
  /**
1094
- * Per-route JobQueueGraph mirrors (Unit 20 D). Each triaged item that
1095
- * reaches a queue is also enqueued here, giving reactive `depth` +
1096
- * `pending` + `jobs` observables. `fastRetry` terminal decisions
1097
- * {@link JobQueueGraph.ack ack} / {@link JobQueueGraph.nack nack} the
1098
- * matching job. The executor dataflow is unchanged — claim/ack/nack
1099
- * runs as an audit-side layer (per Unit 21's "interface unchanged"
1100
- * decision). Inspect via `harness.jobs.get(route).depth.cache` for
1101
- * backpressure metrics.
1433
+ * EXECUTE VERIFY JobFlow (Tier 6.5 C2). Pumps own claim/ack/nack
1434
+ * lifecycle for each stage. Inspect via:
1435
+ * - `harness.executeFlow.queue("execute").pending` pending depth.
1436
+ * - `harness.executeFlow.queue("verify").pending` items mid-execute.
1437
+ * - `harness.executeFlow.completed` verified items waiting for the
1438
+ * dispatch effect's 3-way routing.
1439
+ * - `harness.executeFlow.completedCount` — total terminal completions.
1440
+ */
1441
+ readonly executeFlow: JobFlowGraph<HarnessJobPayload<A>>;
1442
+ /**
1443
+ * Per-route JobQueueGraph audit mirrors. Each triaged item that reaches
1444
+ * a queue is also enqueued here, giving reactive `depth` + `pending` +
1445
+ * `jobs` observables per route. The dispatch effect ack/removeBy-id's
1446
+ * the matching job on terminal verdict. The executeFlow JobFlow handles
1447
+ * the EXECUTE → VERIFY data flow; this is a parallel audit-side ledger
1448
+ * for per-route depth metrics. Inspect via
1449
+ * `harness.jobs.get(route).depth.cache` for backpressure metrics.
1102
1450
  */
1103
1451
  readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
1104
1452
  /** Per-route gate controllers (only for gated queues). */
@@ -1114,13 +1462,6 @@ declare class HarnessGraph<A = unknown> extends Graph {
1114
1462
  * `intake` (use {@link intake}), `verify-results` (use
1115
1463
  * {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
1116
1464
  * (use {@link unrouted}), and the internal `triage-output` fan-in.
1117
- *
1118
- * **Why this exists.** `for (const [, topic] of harness.queues)`
1119
- * appears to iterate via `Graph[Symbol.iterator]`, but that yields
1120
- * locally-registered nodes only — and `MessagingHubGraph` mounts
1121
- * topics as child graphs rather than registering them locally, so
1122
- * the loop yields nothing. This map gives a typed, working
1123
- * iteration path.
1124
1465
  */
1125
1466
  readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
1126
1467
  /** Strategy model bundle — record outcomes, lookup effectiveness. */
@@ -1137,7 +1478,7 @@ declare class HarnessGraph<A = unknown> extends Graph {
1137
1478
  * in to priority scoring.
1138
1479
  */
1139
1480
  readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
1140
- constructor(name: string, queues: MessagingHubGraph, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1481
+ constructor(name: string, queues: MessagingHubGraph, executeFlow: JobFlowGraph<HarnessJobPayload<A>>, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
1141
1482
  /** Intake topic — publish items here to enter the loop. */
1142
1483
  get intake(): TopicGraph<IntakeItem>;
1143
1484
  /** Verify results topic — subscribe to see verification outcomes. */
@@ -1147,17 +1488,17 @@ declare class HarnessGraph<A = unknown> extends Graph {
1147
1488
  /** Dead-letter topic for items whose LLM-chosen route is unknown. */
1148
1489
  get unrouted(): TopicGraph<TriagedItem>;
1149
1490
  /**
1150
- * Stage-label → observe-path map for the 7 pipeline stages (Unit 22 C).
1491
+ * Stage-label → observe-path map for the 7 pipeline stages.
1151
1492
  *
1152
1493
  * Decouples inspection tools (`harnessTrace`, `harnessProfile`, custom
1153
1494
  * dashboards) from mount-structure churn: hub migration, future stage
1154
- * splits, or gate remounting won't require edits to `trace.ts` as long
1155
- * as this method stays accurate. Returned paths are resolvable via
1156
- * `harness.observe(path)` / `harness.resolve(path)`.
1495
+ * splits, gate remounting, or the Tier 6.5 C2 JobFlow rewire shouldn't
1496
+ * require edits to `trace.ts` as long as this method stays accurate.
1157
1497
  *
1158
- * Each stage yields `{ label, paths }` because QUEUE and GATE legitimately
1159
- * have multiple paths (one per route). Consumers iterate paths per stage
1160
- * and attach observers as needed.
1498
+ * Each stage yields `{ label, paths }`; consumers iterate paths per
1499
+ * stage and attach observers. Tier 6.5: EXECUTE / VERIFY paths now
1500
+ * resolve to the `executeFlow` stage queues + the `verify-dispatch`
1501
+ * effect node.
1161
1502
  */
1162
1503
  stageNodes(): ReadonlyArray<{
1163
1504
  label: string;
@@ -1172,9 +1513,9 @@ declare class HarnessGraph<A = unknown> extends Graph {
1172
1513
  * 2. **TRIAGE** — promptNode classifies, routes, and prioritizes
1173
1514
  * 3. **QUEUE** — 4 priority-ordered TopicGraphs (auto-fix, needs-decision, investigation, backlog)
1174
1515
  * 4. **GATE** — human approval on configurable queues
1175
- * 5. **EXECUTE** — promptNode or human implements the fix
1176
- * 6. **VERIFY** — promptNode reviews + optional fast-retry
1177
- * 7. **REFLECT** — strategy model records outcomes
1516
+ * 5. **EXECUTE** — JobFlow `execute` stage; user-supplied or default work fn
1517
+ * 6. **VERIFY** — JobFlow `verify` stage; verifies the executed artifact
1518
+ * 7. **REFLECT** — strategy model records outcomes; dispatch effect routes 3-way
1178
1519
  *
1179
1520
  * @param name - Graph name.
1180
1521
  * @param opts - Configuration.
@@ -1219,28 +1560,24 @@ interface HarnessProfileResult extends GraphProfileResult {
1219
1560
  declare function harnessProfile(harness: HarnessGraph, opts?: GraphProfileOptions): HarnessProfileResult;
1220
1561
 
1221
1562
  /**
1222
- * refineExecutor — bridge a `refineLoop` into the harness EXECUTE slot.
1223
- *
1224
- * Per-item lifecycle (Option A from the design note): on each new triaged
1225
- * item, a fresh `refineLoop` is mounted via `switchMap`; when the loop
1226
- * reaches a terminal status (`converged` / `budget` / `errored`), the
1227
- * executor emits a single `ExecuteOutput`. The switchMap cancels any
1228
- * in-flight loop when a newer item supersedes it.
1229
- *
1230
- * This shape makes all four {@link HarnessExecutor} contract rules
1231
- * structurally unreachable:
1232
- * 1. Terminal-status filter guarantees exactly one `ExecuteOutput` per
1233
- * completed refinement run.
1234
- * 2. `switchMap` cancels the prior inner loop when the next item arrives.
1235
- * 3. The item is captured in the switchMap closure, not mirrored to a
1236
- * side-state.
1237
- * 4. The wrapped `derived([status, best, score], ...)` only returns
1238
- * non-null on terminal transitions it never emits on input arrival.
1239
- *
1240
- * **Cross-item learning:** Option A creates a fresh refineLoop per item,
1241
- * so `errorCritique`-style failure sampling does NOT accumulate across
1242
- * items sharing a `rootCause`. A persistent-loop + re-seed surface is
1243
- * tracked in `docs/optimizations.md` as the long-term follow-up.
1563
+ * refineExecutor — bridge a `refineLoop` into the harness EXECUTE work fn.
1564
+ *
1565
+ * Each claimed job mounts a fresh `refineLoop`; when the loop reaches a
1566
+ * terminal status (`converged` / `budget` / `errored`), the work fn emits a
1567
+ * single {@link HarnessJobPayload} with `execution` filled in. The JobFlow
1568
+ * pump subscribes once, takes the first DATA, then unsubscribes — so the
1569
+ * inner loop tears down cleanly when the harness acks the job.
1570
+ *
1571
+ * **C2 lifecycle (Tier 6.5).** The work fn is invoked once per claim, so
1572
+ * no internal `switchMap` is needed (the prior pre-C2 shape used switchMap
1573
+ * to handle a stream of items). The pump owns the per-claim lifecycle:
1574
+ * activation when the work fn returns, teardown when the result Node is
1575
+ * unsubscribed.
1576
+ *
1577
+ * **Cross-item learning:** a fresh refineLoop per item means
1578
+ * `errorCritique`-style failure sampling does NOT accumulate across items
1579
+ * sharing a `rootCause`. A persistent-loop + re-seed surface is filed in
1580
+ * `docs/optimizations.md` as a long-term follow-up.
1244
1581
  *
1245
1582
  * @module
1246
1583
  */
@@ -1276,7 +1613,8 @@ interface RefineExecutorConfig<T> {
1276
1613
  name?: string;
1277
1614
  }
1278
1615
  /**
1279
- * Build a {@link HarnessExecutor} backed by a `refineLoop` per triaged item.
1616
+ * Build a {@link HarnessExecutor} backed by a `refineLoop` per claimed
1617
+ * job.
1280
1618
  *
1281
1619
  * @example Eval-driven repair loop in the harness EXECUTE slot.
1282
1620
  * ```ts
@@ -1378,15 +1716,21 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
1378
1716
  type index_ActuatorApplyFn<R> = ActuatorApplyFn<R>;
1379
1717
  type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
1380
1718
  type index_ActuatorResult<R> = ActuatorResult<R>;
1719
+ type index_AnalyzeEvent<T> = AnalyzeEvent<T>;
1381
1720
  type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
1721
+ type index_BlindVariationContext<T> = BlindVariationContext<T>;
1722
+ type index_BlindVariationOptions<T> = BlindVariationOptions<T>;
1382
1723
  type index_CodeChange = CodeChange;
1383
1724
  type index_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
1725
+ type index_ConvergenceOptions = ConvergenceOptions;
1384
1726
  declare const index_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
1385
1727
  declare const index_DEFAULT_EXECUTE_PROMPT: typeof DEFAULT_EXECUTE_PROMPT;
1386
1728
  declare const index_DEFAULT_QUEUE_CONFIGS: typeof DEFAULT_QUEUE_CONFIGS;
1387
1729
  declare const index_DEFAULT_SEVERITY_WEIGHTS: typeof DEFAULT_SEVERITY_WEIGHTS;
1388
1730
  declare const index_DEFAULT_TRIAGE_PROMPT: typeof DEFAULT_TRIAGE_PROMPT;
1389
1731
  declare const index_DEFAULT_VERIFY_PROMPT: typeof DEFAULT_VERIFY_PROMPT;
1732
+ type index_DatasetItem = DatasetItem;
1733
+ type index_DecideEvent = DecideEvent;
1390
1734
  type index_DispatchActuatorConfig<R> = DispatchActuatorConfig<R>;
1391
1735
  type index_EffectivenessEntry = EffectivenessEntry;
1392
1736
  type index_EffectivenessSnapshot = EffectivenessSnapshot;
@@ -1394,21 +1738,29 @@ type index_EffectivenessTrackerBundle = EffectivenessTrackerBundle;
1394
1738
  type index_EffectivenessTrackerOptions = EffectivenessTrackerOptions;
1395
1739
  type index_ErrorClass = ErrorClass;
1396
1740
  type index_ErrorClassifier = ErrorClassifier;
1741
+ type index_ErrorCritiqueContext<T> = ErrorCritiqueContext<T>;
1742
+ type index_ErrorCritiqueOptions<T> = ErrorCritiqueOptions<T>;
1397
1743
  type index_EvalDelta = EvalDelta;
1398
1744
  type index_EvalIntakeBridgeOptions = EvalIntakeBridgeOptions;
1399
1745
  type index_EvalJudgeScore = EvalJudgeScore;
1400
1746
  type index_EvalResult = EvalResult;
1747
+ type index_EvalRunResult = EvalRunResult;
1401
1748
  type index_EvalTaskDelta = EvalTaskDelta;
1402
1749
  type index_EvalTaskResult = EvalTaskResult;
1403
1750
  type index_EvalVerifierConfig<T> = EvalVerifierConfig<T>;
1404
1751
  type index_EvalVerifierSummary = EvalVerifierSummary;
1752
+ type index_EvaluateEvent<T> = EvaluateEvent<T>;
1753
+ type index_Evaluator<T> = Evaluator<T>;
1405
1754
  type index_ExecuteOutput<A = unknown> = ExecuteOutput<A>;
1406
1755
  type index_ExecutePromptFn = ExecutePromptFn;
1407
1756
  type index_ExecutionResult<A = unknown> = ExecutionResult<A>;
1757
+ type index_Feedback = Feedback;
1758
+ type index_GenerateEvent<T> = GenerateEvent<T>;
1408
1759
  type index_HarnessEvalPairConfig<T> = HarnessEvalPairConfig<T>;
1409
1760
  type index_HarnessExecutor<A = unknown> = HarnessExecutor<A>;
1410
1761
  type index_HarnessGraph<A = unknown> = HarnessGraph<A>;
1411
1762
  declare const index_HarnessGraph: typeof HarnessGraph;
1763
+ type index_HarnessJobPayload<A = unknown> = HarnessJobPayload<A>;
1412
1764
  type index_HarnessLoopOptions<A = unknown> = HarnessLoopOptions<A>;
1413
1765
  type index_HarnessProfileResult = HarnessProfileResult;
1414
1766
  type index_HarnessTraceHandle = HarnessTraceHandle;
@@ -1418,6 +1770,7 @@ type index_IntakeBridgeOptions = IntakeBridgeOptions;
1418
1770
  type index_IntakeItem = IntakeItem;
1419
1771
  type index_IntakeSource = IntakeSource;
1420
1772
  type index_Intervention = Intervention;
1773
+ type index_Iteration<T> = Iteration<T>;
1421
1774
  type index_KnownIntakeSource = KnownIntakeSource;
1422
1775
  type index_LintError = LintError;
1423
1776
  type index_NotifyEffectOptions = NotifyEffectOptions;
@@ -1428,6 +1781,10 @@ type index_QueueConfig = QueueConfig;
1428
1781
  type index_QueueRoute = QueueRoute;
1429
1782
  type index_RefineExecutorConfig<T> = RefineExecutorConfig<T>;
1430
1783
  type index_RefineExecutorResult<T> = RefineExecutorResult<T>;
1784
+ type index_RefineLoopGraph<T> = RefineLoopGraph<T>;
1785
+ type index_RefineLoopOptions = RefineLoopOptions;
1786
+ type index_RefineStatus = RefineStatus;
1787
+ type index_RefineStrategy<T> = RefineStrategy<T>;
1431
1788
  type index_RootCause = RootCause;
1432
1789
  type index_Severity = Severity;
1433
1790
  type index_StrategyEntry = StrategyEntry;
@@ -1447,6 +1804,7 @@ declare const index_actuatorExecutor: typeof actuatorExecutor;
1447
1804
  declare const index_affectedTaskFilter: typeof affectedTaskFilter;
1448
1805
  declare const index_autoSolidify: typeof autoSolidify;
1449
1806
  declare const index_beforeAfterCompare: typeof beforeAfterCompare;
1807
+ declare const index_blindVariation: typeof blindVariation;
1450
1808
  declare const index_codeChangeBridge: typeof codeChangeBridge;
1451
1809
  declare const index_createIntakeBridge: typeof createIntakeBridge;
1452
1810
  declare const index_defaultErrorClassifier: typeof defaultErrorClassifier;
@@ -1454,6 +1812,7 @@ declare const index_defaultLlmExecutor: typeof defaultLlmExecutor;
1454
1812
  declare const index_defaultLlmVerifier: typeof defaultLlmVerifier;
1455
1813
  declare const index_dispatchActuator: typeof dispatchActuator;
1456
1814
  declare const index_effectivenessTracker: typeof effectivenessTracker;
1815
+ declare const index_errorCritique: typeof errorCritique;
1457
1816
  declare const index_evalIntakeBridge: typeof evalIntakeBridge;
1458
1817
  declare const index_evalSource: typeof evalSource;
1459
1818
  declare const index_evalVerifier: typeof evalVerifier;
@@ -1464,11 +1823,12 @@ declare const index_harnessTrace: typeof harnessTrace;
1464
1823
  declare const index_notifyEffect: typeof notifyEffect;
1465
1824
  declare const index_priorityScore: typeof priorityScore;
1466
1825
  declare const index_refineExecutor: typeof refineExecutor;
1826
+ declare const index_refineLoop: typeof refineLoop;
1467
1827
  declare const index_resolvePromptFn: typeof resolvePromptFn;
1468
1828
  declare const index_strategyKey: typeof strategyKey;
1469
1829
  declare const index_strategyModel: typeof strategyModel;
1470
1830
  declare namespace index {
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 };
1831
+ export { type index_ActuatorApplyFn as ActuatorApplyFn, type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AnalyzeEvent as AnalyzeEvent, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_BlindVariationContext as BlindVariationContext, type index_BlindVariationOptions as BlindVariationOptions, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, type index_ConvergenceOptions as ConvergenceOptions, 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_DatasetItem as DatasetItem, type index_DecideEvent as DecideEvent, 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_ErrorCritiqueContext as ErrorCritiqueContext, type index_ErrorCritiqueOptions as ErrorCritiqueOptions, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalRunResult as EvalRunResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_EvaluateEvent as EvaluateEvent, type index_Evaluator as Evaluator, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_Feedback as Feedback, type index_GenerateEvent as GenerateEvent, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessJobPayload as HarnessJobPayload, 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_Iteration as Iteration, 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_RefineLoopGraph as RefineLoopGraph, type index_RefineLoopOptions as RefineLoopOptions, type index_RefineStatus as RefineStatus, type index_RefineStrategy as RefineStrategy, 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_blindVariation as blindVariation, 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_errorCritique as errorCritique, 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_refineLoop as refineLoop, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
1472
1832
  }
1473
1833
 
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 };
1834
+ export { type IntakeBridgeOptions as $, type ActuatorApplyFn as A, type BlindVariationContext as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type EffectivenessEntry as E, type EvalResult as F, type EvalRunResult as G, type EvalTaskDelta as H, type EvalTaskResult as I, type EvalVerifierConfig as J, type EvalVerifierSummary as K, type EvaluateEvent as L, type Evaluator as M, type ExecuteOutput as N, type ExecutePromptFn as O, type ExecutionResult as P, type Feedback as Q, type GenerateEvent as R, type HarnessEvalPairConfig as S, type HarnessExecutor as T, HarnessGraph as U, type HarnessJobPayload as V, type HarnessLoopOptions as W, type HarnessProfileResult as X, type HarnessTraceHandle as Y, type HarnessTraceOptions as Z, type HarnessVerifier as _, type ActuatorExecutorConfig as a, type IntakeItem as a0, type IntakeSource as a1, type Intervention as a2, type Iteration as a3, type KnownIntakeSource as a4, type LintError as a5, type NotifyEffectOptions as a6, type NotifyTransport as a7, type PrioritySignals as a8, QUEUE_NAMES as a9, beforeAfterCompare as aA, blindVariation as aB, codeChangeBridge as aC, createIntakeBridge as aD, defaultErrorClassifier as aE, defaultLlmExecutor as aF, defaultLlmVerifier as aG, dispatchActuator as aH, effectivenessTracker as aI, errorCritique 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, refineLoop as aU, resolvePromptFn as aV, strategyKey as aW, strategyModel as aX, type QueueConfig as aa, type QueueRoute as ab, type RefineExecutorConfig as ac, type RefineExecutorResult as ad, type RefineLoopGraph as ae, type RefineLoopOptions as af, type RefineStatus as ag, type RefineStrategy as ah, type RootCause as ai, type Severity as aj, type StrategyEntry as ak, type StrategyKey as al, type StrategyModelBundle as am, type StrategySnapshot as an, type TestFailure as ao, type TraceDetail as ap, type TraceEvent as aq, type TraceEventType as ar, type TriagePromptFn as as, type TriagedItem as at, type VerifyOutput as au, type VerifyPromptFn as av, type VerifyResult as aw, actuatorExecutor as ax, affectedTaskFilter as ay, autoSolidify as az, type ActuatorResult as b, type AnalyzeEvent as c, type AutoSolidifyConfig as d, type BlindVariationOptions as e, type CodeChangeBridgeOptions as f, type ConvergenceOptions as g, DEFAULT_EXECUTE_PROMPT as h, index as i, DEFAULT_QUEUE_CONFIGS as j, DEFAULT_SEVERITY_WEIGHTS as k, DEFAULT_TRIAGE_PROMPT as l, DEFAULT_VERIFY_PROMPT as m, type DatasetItem as n, type DecideEvent as o, type DispatchActuatorConfig as p, type EffectivenessSnapshot as q, type EffectivenessTrackerBundle as r, type EffectivenessTrackerOptions as s, type ErrorClass as t, type ErrorClassifier as u, type ErrorCritiqueContext as v, type ErrorCritiqueOptions as w, type EvalDelta as x, type EvalIntakeBridgeOptions as y, type EvalJudgeScore as z };