@tangle-network/agent-eval 0.217.1 → 0.219.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 (258) hide show
  1. package/CHANGELOG.md +57 -1
  2. package/dist/adapters/http.d.ts +3 -3
  3. package/dist/adapters/http.d.ts.map +1 -1
  4. package/dist/adapters/http.js +1 -0
  5. package/dist/adapters/http.js.map +1 -1
  6. package/dist/{agent-profile-DTt8uGP9.d.ts → agent-profile-D01Io2Xw.d.ts} +4 -4
  7. package/dist/{agent-profile-DTt8uGP9.d.ts.map → agent-profile-D01Io2Xw.d.ts.map} +1 -1
  8. package/dist/analyst/index.d.ts +13 -13
  9. package/dist/analyst/index.d.ts.map +1 -1
  10. package/dist/analyst/index.js +10 -10
  11. package/dist/analyst/index.js.map +1 -1
  12. package/dist/{analyze-runs-DyeNcenW.d.ts → analyze-runs-BWAHBDAw.d.ts} +4 -4
  13. package/dist/{analyze-runs-DyeNcenW.d.ts.map → analyze-runs-BWAHBDAw.d.ts.map} +1 -1
  14. package/dist/{benchmark-command-xQK8nOI6.js → benchmark-command-BzmMTnvC.js} +664 -565
  15. package/dist/benchmark-command-BzmMTnvC.js.map +1 -0
  16. package/dist/benchmarks/index.d.ts +5 -5
  17. package/dist/benchmarks/index.js +3 -3
  18. package/dist/benchmarks/index.js.map +1 -1
  19. package/dist/campaign/index.d.ts +8 -8
  20. package/dist/campaign/index.js +11 -11
  21. package/dist/{campaign-CJGkxAQ6.js → campaign-BVPC6ODQ.js} +452 -282
  22. package/dist/campaign-BVPC6ODQ.js.map +1 -0
  23. package/dist/{campaign-evidence-CQYw8_0H.js → campaign-evidence-DunzcJGv.js} +2 -2
  24. package/dist/campaign-evidence-DunzcJGv.js.map +1 -0
  25. package/dist/{chat-client-ldqxYYTN.js → chat-client-CMQ8_h4J.js} +2 -2
  26. package/dist/{chat-client-ldqxYYTN.js.map → chat-client-CMQ8_h4J.js.map} +1 -1
  27. package/dist/{chat-json-call-DavzexSp.js → chat-json-call-BrZKn0L3.js} +2 -2
  28. package/dist/{chat-json-call-DavzexSp.js.map → chat-json-call-BrZKn0L3.js.map} +1 -1
  29. package/dist/cli.js +10 -10
  30. package/dist/{completion-verifier-B_jw6C9p.js → completion-verifier-Cigap8CG.js} +5 -5
  31. package/dist/{completion-verifier-B_jw6C9p.js.map → completion-verifier-Cigap8CG.js.map} +1 -1
  32. package/dist/contract/index.d.ts +11 -11
  33. package/dist/contract/index.js +91 -11
  34. package/dist/contract/index.js.map +1 -1
  35. package/dist/{cost-ledger-D0352Z4d.js → cost-ledger-BGZB6yY2.js} +75 -2
  36. package/dist/cost-ledger-BGZB6yY2.js.map +1 -0
  37. package/dist/{cost-ledger-Jk62OBfF.d.ts → cost-ledger-C1W3ICmP.d.ts} +26 -2
  38. package/dist/cost-ledger-C1W3ICmP.d.ts.map +1 -0
  39. package/dist/{default-registry-ClYjq3QE.js → default-registry-BrKmT01n.js} +310 -278
  40. package/dist/{default-registry-ClYjq3QE.js.map → default-registry-BrKmT01n.js.map} +1 -1
  41. package/dist/{default-registry-DXgLmoDI.d.ts → default-registry-Cwg_QN3d.d.ts} +6 -6
  42. package/dist/{default-registry-DXgLmoDI.d.ts.map → default-registry-Cwg_QN3d.d.ts.map} +1 -1
  43. package/dist/{define-agent-eval-BIkH_gAR.d.ts → define-agent-eval-C2nFhHPu.d.ts} +8 -8
  44. package/dist/{define-agent-eval-BIkH_gAR.d.ts.map → define-agent-eval-C2nFhHPu.d.ts.map} +1 -1
  45. package/dist/{define-agent-eval-BDxNlP3D.js → define-agent-eval-UQY3VbJ2.js} +165 -105
  46. package/dist/define-agent-eval-UQY3VbJ2.js.map +1 -0
  47. package/dist/diagnosis/index.d.ts +2 -2
  48. package/dist/{dspy-rlm-engine-DhdCr1Dc.js → dspy-rlm-engine-Bn_Mt_LW.js} +3 -3
  49. package/dist/{dspy-rlm-engine-DhdCr1Dc.js.map → dspy-rlm-engine-Bn_Mt_LW.js.map} +1 -1
  50. package/dist/{engine-BvZ0R-36.d.ts → engine-BpGGw6cd.d.ts} +3 -3
  51. package/dist/{engine-BvZ0R-36.d.ts.map → engine-BpGGw6cd.d.ts.map} +1 -1
  52. package/dist/eval-campaign-BUMIxKTE.js +393 -0
  53. package/dist/eval-campaign-BUMIxKTE.js.map +1 -0
  54. package/dist/{evaluation-jTjC_QQD.d.ts → evaluation-CBdQt_kr.d.ts} +4 -4
  55. package/dist/{evaluation-jTjC_QQD.d.ts.map → evaluation-CBdQt_kr.d.ts.map} +1 -1
  56. package/dist/evaluation.d.ts +1 -1
  57. package/dist/evaluation.js +1 -1
  58. package/dist/{exact-types-CflbJ9f3.d.ts → exact-types-BYFmYq44.d.ts} +2 -2
  59. package/dist/{exact-types-CflbJ9f3.d.ts.map → exact-types-BYFmYq44.d.ts.map} +1 -1
  60. package/dist/experiment/index.d.ts +24 -1
  61. package/dist/experiment/index.d.ts.map +1 -1
  62. package/dist/experiment/index.js +110 -71
  63. package/dist/experiment/index.js.map +1 -1
  64. package/dist/{exporters-Cl6IeNAu.js → exporters-DWvM16LE.js} +2 -2
  65. package/dist/{exporters-Cl6IeNAu.js.map → exporters-DWvM16LE.js.map} +1 -1
  66. package/dist/{external-optimizer-process-KVFGvYX1.js → external-optimizer-process-wOLfzsCC.js} +2 -2
  67. package/dist/{external-optimizer-process-KVFGvYX1.js.map → external-optimizer-process-wOLfzsCC.js.map} +1 -1
  68. package/dist/{external-optimizer-subprocess-XIHBOSKt.js → external-optimizer-subprocess-D670Oxf2.js} +4 -4
  69. package/dist/{external-optimizer-subprocess-XIHBOSKt.js.map → external-optimizer-subprocess-D670Oxf2.js.map} +1 -1
  70. package/dist/{feedback-trajectory-BWmhRBGu.d.ts → feedback-trajectory-DhB9WzYg.d.ts} +3 -3
  71. package/dist/{feedback-trajectory-BWmhRBGu.d.ts.map → feedback-trajectory-DhB9WzYg.d.ts.map} +1 -1
  72. package/dist/{findings-store-BMVQtEsm.js → findings-store-CvNo712L.js} +6 -6
  73. package/dist/{findings-store-BMVQtEsm.js.map → findings-store-CvNo712L.js.map} +1 -1
  74. package/dist/fuzz.d.ts +1 -1
  75. package/dist/fuzz.js +1 -1
  76. package/dist/{hf-dataset-D9f7-oX7.js → hf-dataset-CKxIJQba.js} +3 -3
  77. package/dist/{hf-dataset-D9f7-oX7.js.map → hf-dataset-CKxIJQba.js.map} +1 -1
  78. package/dist/hosted/index.js +1 -1
  79. package/dist/{index-CX-GAUpw.d.ts → index-CHxwfW5g.d.ts} +2 -2
  80. package/dist/{index-CX-GAUpw.d.ts.map → index-CHxwfW5g.d.ts.map} +1 -1
  81. package/dist/{index-BLGqZ81N.d.ts → index-CVFStrQD.d.ts} +8 -8
  82. package/dist/{index-BLGqZ81N.d.ts.map → index-CVFStrQD.d.ts.map} +1 -1
  83. package/dist/{index-9jJ2fKSX.d.ts → index-CalAsXMR.d.ts} +7 -5
  84. package/dist/index-CalAsXMR.d.ts.map +1 -0
  85. package/dist/{index-CiRwLv2R.d.ts → index-D7fmC-1K.d.ts} +3 -4
  86. package/dist/index-D7fmC-1K.d.ts.map +1 -0
  87. package/dist/{index-BiT6RtNH.d.ts → index-DAXfpVf7.d.ts} +10 -10
  88. package/dist/{index-BiT6RtNH.d.ts.map → index-DAXfpVf7.d.ts.map} +1 -1
  89. package/dist/{index-ZuWx52WG.d.ts → index-Q6DvdcwI.d.ts} +67 -24
  90. package/dist/index-Q6DvdcwI.d.ts.map +1 -0
  91. package/dist/index.d.ts +26 -26
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +615 -692
  94. package/dist/index.js.map +1 -1
  95. package/dist/{integrity-DOd9Q86O.js → integrity-C8oUeB0g.js} +322 -197
  96. package/dist/integrity-C8oUeB0g.js.map +1 -0
  97. package/dist/{integrity-_qgZLA5p.d.ts → integrity-CCwvezWS.d.ts} +2 -2
  98. package/dist/{integrity-_qgZLA5p.d.ts.map → integrity-CCwvezWS.d.ts.map} +1 -1
  99. package/dist/{journal-CR4QikYp.js → journal-C7om8Gum.js} +48 -38
  100. package/dist/journal-C7om8Gum.js.map +1 -0
  101. package/dist/judge-gate-Co5tuh57.js.map +1 -1
  102. package/dist/{judge-gate-DsL0yFcb.d.ts → judge-gate-Dc_mXQsL.d.ts} +2 -2
  103. package/dist/judge-gate-Dc_mXQsL.d.ts.map +1 -0
  104. package/dist/{kind-factory-Gy4fXixd.js → kind-factory-BhxbtUsQ.js} +2 -2
  105. package/dist/{kind-factory-Gy4fXixd.js.map → kind-factory-BhxbtUsQ.js.map} +1 -1
  106. package/dist/ledger-core/index.d.ts +1 -1
  107. package/dist/ledger-core/index.js +2 -2
  108. package/dist/ledger-core/lock-holder.d.ts +2 -0
  109. package/dist/ledger-core/lock-holder.js +181 -0
  110. package/dist/ledger-core/lock-holder.js.map +1 -0
  111. package/dist/{ledger-core-DrJhbms9.js → ledger-core-CAxUdDk0.js} +2 -2
  112. package/dist/{ledger-core-DrJhbms9.js.map → ledger-core-CAxUdDk0.js.map} +1 -1
  113. package/dist/{llm-client-BshCREn6.js → llm-client-DXuOTseU.js} +239 -249
  114. package/dist/llm-client-DXuOTseU.js.map +1 -0
  115. package/dist/{llm-judge-C8jMTNNG.js → llm-judge-Cc8vDJh_.js} +648 -459
  116. package/dist/llm-judge-Cc8vDJh_.js.map +1 -0
  117. package/dist/lock-holder-DaJbfpci.d.ts +86 -0
  118. package/dist/lock-holder-DaJbfpci.d.ts.map +1 -0
  119. package/dist/matrix/index.d.ts +2 -2
  120. package/dist/{matrix-DHe-dwVJ.d.ts → matrix-Cf-AGxGh.d.ts} +4 -4
  121. package/dist/{matrix-DHe-dwVJ.d.ts.map → matrix-Cf-AGxGh.d.ts.map} +1 -1
  122. package/dist/meta-eval/index.d.ts +2 -2
  123. package/dist/{mint-zszyYlpA.js → mint-CbdwjTPW.js} +2 -2
  124. package/dist/{mint-zszyYlpA.js.map → mint-CbdwjTPW.js.map} +1 -1
  125. package/dist/{mint-BRZXuwRi.d.ts → mint-CkzpVPdz.d.ts} +3 -3
  126. package/dist/{mint-BRZXuwRi.d.ts.map → mint-CkzpVPdz.d.ts.map} +1 -1
  127. package/dist/multishot/golden/index.d.ts +1 -1
  128. package/dist/multishot/index.d.ts +2 -2
  129. package/dist/multishot/index.js.map +1 -1
  130. package/dist/openapi.json +1 -1
  131. package/dist/{pareto-BzsxidFD.js → pareto-BiBnQXAE.js} +306 -212
  132. package/dist/pareto-BiBnQXAE.js.map +1 -0
  133. package/dist/pipelines/index.d.ts.map +1 -1
  134. package/dist/pipelines/index.js.map +1 -1
  135. package/dist/{prime-protocol-BWG2DQIk.d.ts → prime-protocol-CckHBxGu.d.ts} +3 -3
  136. package/dist/{prime-protocol-BWG2DQIk.d.ts.map → prime-protocol-CckHBxGu.d.ts.map} +1 -1
  137. package/dist/{promotion-gate-DaY95yU6.d.ts → promotion-gate-CkVZHagC.d.ts} +3 -3
  138. package/dist/{promotion-gate-DaY95yU6.d.ts.map → promotion-gate-CkVZHagC.d.ts.map} +1 -1
  139. package/dist/{proposal-findings-BbWidvUk.js → proposal-findings-E1aSC_cU.js} +2 -2
  140. package/dist/{proposal-findings-BbWidvUk.js.map → proposal-findings-E1aSC_cU.js.map} +1 -1
  141. package/dist/{registry-ssNoHzwD.d.ts → registry-B_yG-1jh.d.ts} +5 -5
  142. package/dist/{registry-ssNoHzwD.d.ts.map → registry-B_yG-1jh.d.ts.map} +1 -1
  143. package/dist/{render-C-w2EZ6p.js → render-Cs34y0iX.js} +404 -208
  144. package/dist/render-Cs34y0iX.js.map +1 -0
  145. package/dist/reporting.d.ts +3 -3
  146. package/dist/{researcher-0ABVIdGa.d.ts → researcher-H0p44OYC.d.ts} +5 -5
  147. package/dist/{researcher-0ABVIdGa.d.ts.map → researcher-H0p44OYC.d.ts.map} +1 -1
  148. package/dist/{reward-DrZ71vnf.d.ts → reward-BeUgVVC_.d.ts} +2 -2
  149. package/dist/{reward-DrZ71vnf.d.ts.map → reward-BeUgVVC_.d.ts.map} +1 -1
  150. package/dist/{reward-hacking-E52wq86n.d.ts → reward-hacking-WTxUbtbb.d.ts} +2 -2
  151. package/dist/{reward-hacking-E52wq86n.d.ts.map → reward-hacking-WTxUbtbb.d.ts.map} +1 -1
  152. package/dist/rl.d.ts +8 -8
  153. package/dist/rl.js +4 -4
  154. package/dist/rollout/index.d.ts +3 -3
  155. package/dist/rollout/index.js +5 -5
  156. package/dist/{rollout-D6C50mfA.js → rollout-Dd1ucT_M.js} +5 -5
  157. package/dist/{rollout-D6C50mfA.js.map → rollout-Dd1ucT_M.js.map} +1 -1
  158. package/dist/{rubric-predictive-validity-DiwT8PbL.d.ts → rubric-predictive-validity-noY7uE03.d.ts} +2 -2
  159. package/dist/{rubric-predictive-validity-DiwT8PbL.d.ts.map → rubric-predictive-validity-noY7uE03.d.ts.map} +1 -1
  160. package/dist/{run-record-CaxbLq6Y.d.ts → run-record-C3awiXPf.d.ts} +2 -2
  161. package/dist/{run-record-CaxbLq6Y.d.ts.map → run-record-C3awiXPf.d.ts.map} +1 -1
  162. package/dist/schema-C-ziyJD7.d.ts.map +1 -1
  163. package/dist/{schema-DxcKTzbi.js → schema-CvhfLjtZ.js} +77 -47
  164. package/dist/schema-CvhfLjtZ.js.map +1 -0
  165. package/dist/search/index.d.ts +2 -2
  166. package/dist/search/index.d.ts.map +1 -1
  167. package/dist/search/index.js +2 -2
  168. package/dist/{search-kernel-DxqjBxA-.d.ts → search-kernel-Dloxd6gs.d.ts} +5 -5
  169. package/dist/{search-kernel-DxqjBxA-.d.ts.map → search-kernel-Dloxd6gs.d.ts.map} +1 -1
  170. package/dist/{search-ledger-TUvB5gWH.js → search-ledger-CZRqtFbW.js} +252 -245
  171. package/dist/search-ledger-CZRqtFbW.js.map +1 -0
  172. package/dist/{search-ledger-file-UKCO2r8a.js → search-ledger-file-Bd5Tioq6.js} +3 -3
  173. package/dist/{search-ledger-file-UKCO2r8a.js.map → search-ledger-file-Bd5Tioq6.js.map} +1 -1
  174. package/dist/{search-shipper-Cw2z3-td.js → search-shipper-Dn3NLsuH.js} +3 -3
  175. package/dist/{search-shipper-Cw2z3-td.js.map → search-shipper-Dn3NLsuH.js.map} +1 -1
  176. package/dist/{search-summary-DQIvJsSB.js → search-summary-D4bwYnAE.js} +3 -3
  177. package/dist/{search-summary-DQIvJsSB.js.map → search-summary-D4bwYnAE.js.map} +1 -1
  178. package/dist/{server-DoVbqqtJ.js → server-8TS8XCvg.js} +3 -3
  179. package/dist/{server-DoVbqqtJ.js.map → server-8TS8XCvg.js.map} +1 -1
  180. package/dist/{single-run-lock-U58yf8N6.js → single-run-lock-Dekd8_Wv.js} +7 -7
  181. package/dist/single-run-lock-Dekd8_Wv.js.map +1 -0
  182. package/dist/{skillopt-optimization-method-kyL94-ri.js → skillopt-optimization-method-DLKqdhcR.js} +1384 -1059
  183. package/dist/skillopt-optimization-method-DLKqdhcR.js.map +1 -0
  184. package/dist/{statistical-heldout-C9AbgREN.d.ts → statistical-heldout-3z3I-kJN.d.ts} +3 -3
  185. package/dist/{statistical-heldout-C9AbgREN.d.ts.map → statistical-heldout-3z3I-kJN.d.ts.map} +1 -1
  186. package/dist/{store-otlp-BteDAbHK.js → store-otlp-dyWE3wAG.js} +2 -2
  187. package/dist/{store-otlp-BteDAbHK.js.map → store-otlp-dyWE3wAG.js.map} +1 -1
  188. package/dist/{store-tool-spans-D5l_OfTJ.js → store-tool-spans-DIUgZbzu.js} +3 -3
  189. package/dist/{store-tool-spans-D5l_OfTJ.js.map → store-tool-spans-DIUgZbzu.js.map} +1 -1
  190. package/dist/{store-tool-spans-DZS0HWVf.d.ts → store-tool-spans-DPwXHQkH.d.ts} +7 -7
  191. package/dist/{store-tool-spans-DZS0HWVf.d.ts.map → store-tool-spans-DPwXHQkH.d.ts.map} +1 -1
  192. package/dist/{summary-report-DM7tlml1.d.ts → summary-report-C8V49Jt3.d.ts} +18 -3
  193. package/dist/summary-report-C8V49Jt3.d.ts.map +1 -0
  194. package/dist/supervisor-run/index.d.ts.map +1 -1
  195. package/dist/supervisor-run/index.js +3 -3
  196. package/dist/{systemone-Bp_Ac0p1.d.ts → systemone-DVA7t76V.d.ts} +6 -6
  197. package/dist/{systemone-Bp_Ac0p1.d.ts.map → systemone-DVA7t76V.d.ts.map} +1 -1
  198. package/dist/{systemone-review-CwE6JGIp.d.ts → systemone-review-CUBMuTLi.d.ts} +2 -2
  199. package/dist/{systemone-review-CwE6JGIp.d.ts.map → systemone-review-CUBMuTLi.d.ts.map} +1 -1
  200. package/dist/systemone.d.ts +3 -3
  201. package/dist/{terminal-record-78g6E4vh.js → terminal-record-D4Rv-j1W.js} +241 -193
  202. package/dist/{terminal-record-78g6E4vh.js.map → terminal-record-D4Rv-j1W.js.map} +1 -1
  203. package/dist/{tool-groups-DyNz2JZ_.d.ts → tool-groups-LISbBWCg.d.ts} +3 -3
  204. package/dist/tool-groups-LISbBWCg.d.ts.map +1 -0
  205. package/dist/{trace-questions-xxwgsuMi.d.ts → trace-questions-C42fYEE4.d.ts} +4 -4
  206. package/dist/{trace-questions-xxwgsuMi.d.ts.map → trace-questions-C42fYEE4.d.ts.map} +1 -1
  207. package/dist/trace-repair/index.d.ts +3 -3
  208. package/dist/traces.d.ts +6 -6
  209. package/dist/traces.js +3 -3
  210. package/dist/trajectory-replay/index.d.ts +4 -1
  211. package/dist/trajectory-replay/index.d.ts.map +1 -1
  212. package/dist/trajectory-replay/index.js +854 -823
  213. package/dist/trajectory-replay/index.js.map +1 -1
  214. package/dist/{tree-BGRglkKd.js → tree-DSqwJpL9.js} +122 -14
  215. package/dist/tree-DSqwJpL9.js.map +1 -0
  216. package/dist/{types-CW8ewATZ.d.ts → types-8yQzNm8u.d.ts} +4 -4
  217. package/dist/{types-CW8ewATZ.d.ts.map → types-8yQzNm8u.d.ts.map} +1 -1
  218. package/dist/{types-D8GhJoHk.d.ts → types-CHfn1zg5.d.ts} +70 -72
  219. package/dist/types-CHfn1zg5.d.ts.map +1 -0
  220. package/dist/{types-DtMbFw6U.d.ts → types-D8GXK9Z5.d.ts} +3 -3
  221. package/dist/{types-DtMbFw6U.d.ts.map → types-D8GXK9Z5.d.ts.map} +1 -1
  222. package/dist/{types-D-mgRzlh.d.ts → types-eMhdacVp.d.ts} +2 -2
  223. package/dist/{types-D-mgRzlh.d.ts.map → types-eMhdacVp.d.ts.map} +1 -1
  224. package/dist/wire/index.d.ts +3 -3
  225. package/dist/wire/index.js +1 -1
  226. package/docs/campaign-proposers.md +16 -0
  227. package/docs/concepts.md +31 -0
  228. package/docs/design/statistics-decisions.md +1 -1
  229. package/docs/eval-surface-map.md +1 -0
  230. package/docs/profile-json-identity.md +1 -2
  231. package/docs/public-api.md +100 -88
  232. package/package.json +8 -6
  233. package/dist/benchmark-command-xQK8nOI6.js.map +0 -1
  234. package/dist/campaign-CJGkxAQ6.js.map +0 -1
  235. package/dist/campaign-evidence-CQYw8_0H.js.map +0 -1
  236. package/dist/cost-ledger-D0352Z4d.js.map +0 -1
  237. package/dist/cost-ledger-Jk62OBfF.d.ts.map +0 -1
  238. package/dist/define-agent-eval-BDxNlP3D.js.map +0 -1
  239. package/dist/eval-campaign-BLEfBGbA.js +0 -343
  240. package/dist/eval-campaign-BLEfBGbA.js.map +0 -1
  241. package/dist/index-9jJ2fKSX.d.ts.map +0 -1
  242. package/dist/index-CiRwLv2R.d.ts.map +0 -1
  243. package/dist/index-ZuWx52WG.d.ts.map +0 -1
  244. package/dist/integrity-DOd9Q86O.js.map +0 -1
  245. package/dist/journal-CR4QikYp.js.map +0 -1
  246. package/dist/judge-gate-DsL0yFcb.d.ts.map +0 -1
  247. package/dist/llm-client-BshCREn6.js.map +0 -1
  248. package/dist/llm-judge-C8jMTNNG.js.map +0 -1
  249. package/dist/pareto-BzsxidFD.js.map +0 -1
  250. package/dist/render-C-w2EZ6p.js.map +0 -1
  251. package/dist/schema-DxcKTzbi.js.map +0 -1
  252. package/dist/search-ledger-TUvB5gWH.js.map +0 -1
  253. package/dist/single-run-lock-U58yf8N6.js.map +0 -1
  254. package/dist/skillopt-optimization-method-kyL94-ri.js.map +0 -1
  255. package/dist/summary-report-DM7tlml1.d.ts.map +0 -1
  256. package/dist/tool-groups-DyNz2JZ_.d.ts.map +0 -1
  257. package/dist/tree-BGRglkKd.js.map +0 -1
  258. package/dist/types-D8GhJoHk.d.ts.map +0 -1
@@ -2,12 +2,12 @@ import { a as hashCanonical, r as canonicalString } from "./canonical-Dq2hOQ8L.j
2
2
  import { t as deepFreezeCanonicalJson } from "./deep-freeze-CurcOQg3.js";
3
3
  import { i as makeFinding } from "./types-DqFMNTgK.js";
4
4
  import { n as isRecord } from "./json-BhdsJaOQ.js";
5
- import { G as validateUsageSettlementTimeout, K as snapshotExactExecutionComponentIdentity, O as spanEpochMillis, U as assertValidAnalystUsageReceipt, q as snapshotExactExecutionPlan, t as createTraceAnalyst, z as findingSubjectGrammarPromptFor } from "./kind-factory-Gy4fXixd.js";
5
+ import { G as validateUsageSettlementTimeout, K as snapshotExactExecutionComponentIdentity, O as spanEpochMillis, U as assertValidAnalystUsageReceipt, q as snapshotExactExecutionPlan, t as createTraceAnalyst, z as findingSubjectGrammarPromptFor } from "./kind-factory-BhxbtUsQ.js";
6
6
  import { LLM_CONTEXT_TOKENS, LLM_INPUT_TOKEN_ATTR_KEYS, LLM_OUTPUT_TOKEN_ATTR_KEYS, TOOL_NAME_ATTR_KEYS } from "./trace-attributes.js";
7
7
  import "./otlp-attributes-D9ptWaIJ.js";
8
- import { _ as combineAbortSignals } from "./llm-client-BshCREn6.js";
8
+ import { _ as combineAbortSignals } from "./llm-client-DXuOTseU.js";
9
9
  import { t as executionTrackByLane } from "./execution-tracks-CpgFPpS5.js";
10
- import { t as analyzeSupervisorRunIntegrity } from "./integrity-DOd9Q86O.js";
10
+ import { t as analyzeSupervisorRunIntegrity } from "./integrity-C8oUeB0g.js";
11
11
  import { randomUUID } from "node:crypto";
12
12
  import { z } from "zod";
13
13
  //#region src/feedback-trajectory-review.ts
@@ -1854,306 +1854,338 @@ var ExactAnalystRunExecutionError = class extends Error {
1854
1854
  this.result = snapshot;
1855
1855
  }
1856
1856
  };
1857
- async function* executePlanStream(plan) {
1857
+ function startPlanRun(plan) {
1858
1858
  const exact = plan.executionSnapshot !== void 0;
1859
1859
  if (exact && plan.signal?.aborted) throw abortReason(plan.signal);
1860
- const correlationId = `ar_${randomUUID().slice(0, 12)}`;
1861
- const log = plan.log;
1862
- const startedAt = (/* @__PURE__ */ new Date()).toISOString();
1863
1860
  const started = Date.now();
1864
1861
  const timeoutSignal = plan.totalTimeoutMs === null ? void 0 : AbortSignal.timeout(plan.totalTimeoutMs);
1865
- const runSignal = combineAbortSignals(plan.signal ?? void 0, timeoutSignal);
1866
- const deadlineMs = plan.totalTimeoutMs === null ? void 0 : started + plan.totalTimeoutMs;
1867
1862
  const runnable = plan.prepared.filter((candidate) => candidate.input.kind === "present").map((candidate) => candidate.analyst);
1868
- let remainingUsd = plan.budget.kind === "dynamic" ? plan.budget.policy.totalUsd : void 0;
1869
1863
  const weights = plan.budget.kind === "dynamic" ? plan.budget.policy.weights : void 0;
1870
1864
  const totalWeight = weights && plan.budget.kind === "dynamic" && plan.budget.policy.totalUsd != null && !plan.budget.policy.allocate && runnable.length > 0 ? runnable.reduce((sum, analyst) => sum + analystWeight(weights, analyst.id), 0) : void 0;
1871
1865
  if (totalWeight === 0) throw new Error("BudgetPolicy.weights must allocate positive weight to a runnable analyst");
1872
- const upstreamFindings = [];
1866
+ return {
1867
+ plan,
1868
+ exact,
1869
+ correlationId: `ar_${randomUUID().slice(0, 12)}`,
1870
+ startedAt: new Date(started).toISOString(),
1871
+ deadlineMs: plan.totalTimeoutMs === null ? void 0 : started + plan.totalTimeoutMs,
1872
+ runSignal: combineAbortSignals(plan.signal ?? void 0, timeoutSignal),
1873
+ runnableCount: runnable.length,
1874
+ totalWeight,
1875
+ remainingUsd: plan.budget.kind === "dynamic" ? plan.budget.policy.totalUsd : void 0,
1876
+ upstreamFindings: [],
1877
+ executions: [],
1878
+ executionFailure: void 0
1879
+ };
1880
+ }
1881
+ async function* executePlanStream(plan) {
1882
+ const st = startPlanRun(plan);
1873
1883
  yield snapshotExecutionEvent({
1874
1884
  type: "run-started",
1875
1885
  run_id: plan.runId,
1876
- correlation_id: correlationId,
1877
- started_at: startedAt,
1886
+ correlation_id: st.correlationId,
1887
+ started_at: st.startedAt,
1878
1888
  analyst_ids: plan.prepared.map(({ analyst }) => analyst.id),
1879
1889
  ...plan.executionSnapshot === void 0 ? {} : { execution_plan: plan.executionSnapshot }
1890
+ }, st.exact);
1891
+ for (const { analyst, input } of plan.prepared) if ((yield* runAnalyst(st, analyst, input)) === "stop") break;
1892
+ yield* finishRun(st);
1893
+ }
1894
+ /** Record an analyst skipped because the run was aborted; an exact run fails on it. */
1895
+ async function* skipAborted(st, analyst, runSignal, latencyMs) {
1896
+ const { plan, exact } = st;
1897
+ const summary = abortedBeforeStartSummary(analyst, runSignal, latencyMs);
1898
+ st.executions.push({
1899
+ summary,
1900
+ findings: [],
1901
+ budgetDebitUsd: 0
1902
+ });
1903
+ if (latencyMs === void 0) plan.log(`[analyst] skip ${analyst.id} — run aborted`, {
1904
+ runId: plan.runId,
1905
+ reason: summary.reason
1906
+ });
1907
+ yield snapshotExecutionEvent({
1908
+ type: "analyst-skipped",
1909
+ summary
1880
1910
  }, exact);
1881
- const executions = [];
1882
- let executionFailure;
1883
- for (const { analyst, input } of plan.prepared) {
1884
- const t0 = Date.now();
1885
- if (runSignal?.aborted) {
1886
- const summary = abortedBeforeStartSummary(analyst, runSignal);
1887
- executions.push({
1888
- summary,
1889
- findings: [],
1890
- budgetDebitUsd: 0
1891
- });
1892
- log(`[analyst] skip ${analyst.id} — run aborted`, {
1893
- runId: plan.runId,
1894
- reason: summary.reason
1895
- });
1896
- yield snapshotExecutionEvent({
1897
- type: "analyst-skipped",
1898
- summary
1899
- }, exact);
1900
- if (exact) {
1901
- executionFailure = abortReason(runSignal);
1902
- break;
1903
- }
1904
- continue;
1905
- }
1906
- if (input.kind === "missing") {
1907
- const summary = {
1908
- analyst_id: analyst.id,
1909
- status: "skipped",
1910
- reason: `missing input of kind '${analyst.inputKind}'`,
1911
- findings_count: 0,
1912
- latency_ms: 0,
1913
- usage: zeroUsage()
1914
- };
1915
- const execution = {
1916
- summary,
1917
- findings: [],
1918
- budgetDebitUsd: 0
1919
- };
1920
- executions.push(execution);
1921
- log(`[analyst] skip ${analyst.id} — missing input`, {
1922
- runId: plan.runId,
1923
- kind: analyst.inputKind
1924
- });
1925
- const hookValues = snapshotAfterHookValues(summary, [], exact);
1926
- try {
1927
- await waitForHook(plan.hooks.onAfterAnalyze ? () => plan.hooks.onAfterAnalyze?.({
1928
- analyst,
1929
- summary: hookValues.summary,
1930
- findings: hookValues.findings,
1931
- runId: plan.runId
1932
- }) : void 0, runSignal);
1933
- } catch (error) {
1934
- if (!exact) throw error;
1935
- executionFailure = error;
1936
- }
1937
- yield snapshotExecutionEvent({
1938
- type: "analyst-skipped",
1939
- summary
1940
- }, exact);
1941
- if (executionFailure !== void 0) break;
1942
- continue;
1943
- }
1944
- const allocatedUsd = plan.executionSnapshot === void 0 ? allocateBudget(plan.budget.kind === "dynamic" ? plan.budget.policy : void 0, {
1911
+ if (exact) {
1912
+ st.executionFailure = abortReason(runSignal);
1913
+ return "stop";
1914
+ }
1915
+ return "next";
1916
+ }
1917
+ /** An analyst whose input never arrived is skipped; its after-hook still runs. */
1918
+ async function* skipMissingInput(st, analyst) {
1919
+ const { plan, exact, runSignal } = st;
1920
+ const summary = {
1921
+ analyst_id: analyst.id,
1922
+ status: "skipped",
1923
+ reason: `missing input of kind '${analyst.inputKind}'`,
1924
+ findings_count: 0,
1925
+ latency_ms: 0,
1926
+ usage: zeroUsage()
1927
+ };
1928
+ st.executions.push({
1929
+ summary,
1930
+ findings: [],
1931
+ budgetDebitUsd: 0
1932
+ });
1933
+ plan.log(`[analyst] skip ${analyst.id} — missing input`, {
1934
+ runId: plan.runId,
1935
+ kind: analyst.inputKind
1936
+ });
1937
+ const hookValues = snapshotAfterHookValues(summary, [], exact);
1938
+ try {
1939
+ await waitForHook(plan.hooks.onAfterAnalyze ? () => plan.hooks.onAfterAnalyze?.({
1945
1940
  analyst,
1946
- remainingUsd,
1947
- runningCount: runnable.length,
1948
- totalWeight
1949
- }) : exactPlannedAllocation(plan.executionSnapshot, analyst.id);
1950
- const budgetCeilingUsd = plan.executionSnapshot === void 0 ? remainingUsd : allocatedUsd;
1951
- const usageReceipts = [];
1952
- const contextTags = plan.tags === null ? void 0 : { ...plan.tags };
1953
- const priorFindings = selectPriorFindings(plan.priorFindings ?? void 0, analyst.id);
1954
- const chainedFindings = plan.chainFindings && upstreamFindings.length > 0 ? [...upstreamFindings] : void 0;
1955
- const ctx = {
1941
+ summary: hookValues.summary,
1942
+ findings: hookValues.findings,
1943
+ runId: plan.runId
1944
+ }) : void 0, runSignal);
1945
+ } catch (error) {
1946
+ if (!exact) throw error;
1947
+ st.executionFailure = error;
1948
+ }
1949
+ yield snapshotExecutionEvent({
1950
+ type: "analyst-skipped",
1951
+ summary
1952
+ }, exact);
1953
+ return st.executionFailure !== void 0 ? "stop" : "next";
1954
+ }
1955
+ /** The context handed to one analyst, with the usage receipts it will record into. */
1956
+ function buildAnalystContext(st, analyst) {
1957
+ const { plan, exact } = st;
1958
+ const allocatedUsd = plan.executionSnapshot === void 0 ? allocateBudget(plan.budget.kind === "dynamic" ? plan.budget.policy : void 0, {
1959
+ analyst,
1960
+ remainingUsd: st.remainingUsd,
1961
+ runningCount: st.runnableCount,
1962
+ totalWeight: st.totalWeight
1963
+ }) : exactPlannedAllocation(plan.executionSnapshot, analyst.id);
1964
+ const budgetCeilingUsd = plan.executionSnapshot === void 0 ? st.remainingUsd : allocatedUsd;
1965
+ const usageReceipts = [];
1966
+ const contextTags = plan.tags === null ? void 0 : { ...plan.tags };
1967
+ const priorFindings = selectPriorFindings(plan.priorFindings ?? void 0, analyst.id);
1968
+ const chainedFindings = plan.chainFindings && st.upstreamFindings.length > 0 ? [...st.upstreamFindings] : void 0;
1969
+ const ctx = {
1970
+ runId: plan.runId,
1971
+ correlationId: st.correlationId,
1972
+ deadlineMs: st.deadlineMs,
1973
+ budgetUsd: allocatedUsd,
1974
+ costLedger: plan.costLedger ?? void 0,
1975
+ costPhase: plan.costPhase ?? void 0,
1976
+ chat: plan.chat,
1977
+ tags: contextTags,
1978
+ log: (message, fields) => plan.log(`[${analyst.id}] ${message}`, {
1956
1979
  runId: plan.runId,
1957
- correlationId,
1958
- deadlineMs,
1959
- budgetUsd: allocatedUsd,
1960
- costLedger: plan.costLedger ?? void 0,
1961
- costPhase: plan.costPhase ?? void 0,
1962
- chat: plan.chat,
1963
- tags: contextTags,
1964
- log: (message, fields) => log(`[${analyst.id}] ${message}`, {
1965
- runId: plan.runId,
1966
- correlationId,
1967
- ...fields
1968
- }),
1969
- signal: runSignal,
1970
- priorFindings,
1971
- upstreamFindings: chainedFindings,
1972
- recordUsage: (receipt) => {
1973
- if (!exact) {
1974
- assertValidAnalystUsageReceipt(receipt);
1975
- usageReceipts.push(receipt);
1976
- return;
1977
- }
1978
- usageReceipts.push(snapshotUsageReceiptOnce(receipt, `AnalystRegistry.runExact analyst "${analyst.id}" usage`));
1980
+ correlationId: st.correlationId,
1981
+ ...fields
1982
+ }),
1983
+ signal: st.runSignal,
1984
+ priorFindings,
1985
+ upstreamFindings: chainedFindings,
1986
+ recordUsage: (receipt) => {
1987
+ if (!exact) {
1988
+ assertValidAnalystUsageReceipt(receipt);
1989
+ usageReceipts.push(receipt);
1990
+ return;
1979
1991
  }
1980
- };
1981
- if (exact) {
1982
- if (contextTags) deepFreezeCanonicalJson(contextTags);
1983
- if (priorFindings) deepFreezeCanonicalJson(priorFindings);
1984
- if (chainedFindings) deepFreezeCanonicalJson(chainedFindings);
1985
- Object.freeze(ctx);
1992
+ usageReceipts.push(snapshotUsageReceiptOnce(receipt, `AnalystRegistry.runExact analyst "${analyst.id}" usage`));
1986
1993
  }
1987
- try {
1988
- await waitForHook(plan.hooks.onBeforeAnalyze ? () => plan.hooks.onBeforeAnalyze?.({
1994
+ };
1995
+ if (exact) {
1996
+ if (contextTags) deepFreezeCanonicalJson(contextTags);
1997
+ if (priorFindings) deepFreezeCanonicalJson(priorFindings);
1998
+ if (chainedFindings) deepFreezeCanonicalJson(chainedFindings);
1999
+ Object.freeze(ctx);
2000
+ }
2001
+ return {
2002
+ ctx,
2003
+ usageReceipts,
2004
+ budgetCeilingUsd
2005
+ };
2006
+ }
2007
+ /** Run the analyst's own analysis. A failure is recorded; the on-error hook may still contribute findings. */
2008
+ async function analyzeOne(st, analyst, value, analystContext, executionSignal) {
2009
+ const { plan, exact, runSignal } = st;
2010
+ let findings;
2011
+ let lifecycleFailure;
2012
+ let analysisFailure;
2013
+ try {
2014
+ if (runSignal?.aborted) throw abortReason(runSignal);
2015
+ findings = snapshotExecutionFindings(await waitForOperation(analyst.analyze(value, analystContext), executionSignal, analystAbortGraceMs(analyst)), exact, `AnalystRegistry.runExact analyst "${analyst.id}" findings`);
2016
+ } catch (error) {
2017
+ const cause = error instanceof Error ? error : new Error(String(error));
2018
+ analysisFailure = cause;
2019
+ let hookFindings = [];
2020
+ if (!executionSignal?.aborted) try {
2021
+ hookFindings = snapshotExecutionFindings(await waitForHook(plan.hooks.onError ? () => plan.hooks.onError?.({
1989
2022
  analyst,
1990
- ctx,
2023
+ error: cause,
1991
2024
  runId: plan.runId
1992
- }) : void 0, runSignal);
2025
+ }) : void 0, executionSignal) ?? [], exact, `AnalystRegistry.runExact analyst "${analyst.id}" onError findings`);
1993
2026
  } catch (error) {
1994
- if (!exact) throw error;
1995
- executionFailure = error;
1996
- break;
1997
- }
1998
- if (runSignal?.aborted) {
1999
- const summary = abortedBeforeStartSummary(analyst, runSignal, Date.now() - t0);
2000
- executions.push({
2001
- summary,
2002
- findings: [],
2003
- budgetDebitUsd: 0
2004
- });
2005
- yield snapshotExecutionEvent({
2006
- type: "analyst-skipped",
2007
- summary
2008
- }, exact);
2009
- if (exact) {
2010
- executionFailure = abortReason(runSignal);
2011
- break;
2012
- }
2013
- continue;
2014
- }
2015
- let effectiveBudget;
2016
- try {
2017
- effectiveBudget = validateEffectiveBudget(ctx.budgetUsd, budgetCeilingUsd, analyst.id);
2018
- } catch (error) {
2019
- if (!exact) throw error;
2020
- executionFailure = error;
2021
- break;
2027
+ lifecycleFailure = error;
2022
2028
  }
2023
- const analystContext = exact ? ctx : { ...ctx };
2024
- const executionSignal = exact ? ctx.signal : runSignal;
2025
- yield snapshotExecutionEvent({
2026
- type: "analyst-started",
2029
+ findings = hookFindings;
2030
+ }
2031
+ return {
2032
+ findings,
2033
+ analysisFailure,
2034
+ lifecycleFailure
2035
+ };
2036
+ }
2037
+ /** The summary of one finished analyst, logged as ok or failed. */
2038
+ function summarizeAnalyst(st, analyst, analysis, usage, t0, effectiveBudget) {
2039
+ const { plan, exact } = st;
2040
+ const { findings, analysisFailure } = analysis;
2041
+ if (analysisFailure === void 0) {
2042
+ const summary = {
2027
2043
  analyst_id: analyst.id,
2028
- started_at: new Date(t0).toISOString()
2029
- }, exact);
2030
- let findings;
2031
- let summary;
2032
- let lifecycleFailure;
2033
- let analysisFailure;
2034
- try {
2035
- if (runSignal?.aborted) throw abortReason(runSignal);
2036
- findings = snapshotExecutionFindings(await waitForOperation(analyst.analyze(input.value, analystContext), executionSignal, analystAbortGraceMs(analyst)), exact, `AnalystRegistry.runExact analyst "${analyst.id}" findings`);
2037
- } catch (error) {
2038
- const cause = error instanceof Error ? error : new Error(String(error));
2039
- analysisFailure = cause;
2040
- let hookFindings = [];
2041
- if (!executionSignal?.aborted) try {
2042
- hookFindings = snapshotExecutionFindings(await waitForHook(plan.hooks.onError ? () => plan.hooks.onError?.({
2043
- analyst,
2044
- error: cause,
2045
- runId: plan.runId
2046
- }) : void 0, executionSignal) ?? [], exact, `AnalystRegistry.runExact analyst "${analyst.id}" onError findings`);
2047
- } catch (error) {
2048
- lifecycleFailure = error;
2049
- }
2050
- findings = hookFindings;
2051
- }
2052
- let usage;
2053
- try {
2054
- usage = resolveUsage(analyst, usageReceipts, exact);
2055
- } catch (error) {
2056
- if (!exact) throw error;
2057
- executionFailure = error;
2058
- break;
2059
- }
2060
- if (analysisFailure === void 0) {
2061
- summary = {
2062
- analyst_id: analyst.id,
2063
- status: "ok",
2064
- findings_count: findings.length,
2065
- latency_ms: Date.now() - t0,
2066
- usage,
2067
- ...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {}
2068
- };
2069
- log(`[analyst] ok ${analyst.id}`, {
2070
- runId: plan.runId,
2071
- findings: findings.length,
2072
- latency_ms: summary.latency_ms,
2073
- cost_usd: knownCostUsd(usage),
2074
- cost_kind: usage.cost.kind,
2075
- input_tokens: usage.tokens?.input ?? null,
2076
- output_tokens: usage.tokens?.output ?? null
2077
- });
2078
- } else {
2079
- const errorClass = analysisFailure.constructor.name || "Error";
2080
- const errorMessage = exact && analysisFailure.message.length === 0 ? "Analyst failed without an error message" : analysisFailure.message;
2081
- summary = {
2082
- analyst_id: analyst.id,
2083
- status: "failed",
2084
- findings_count: findings.length,
2085
- latency_ms: Date.now() - t0,
2086
- usage,
2087
- ...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {},
2088
- error: {
2089
- class: errorClass,
2090
- message: errorMessage
2091
- }
2092
- };
2093
- log(`[analyst] FAIL ${analyst.id}`, {
2094
- runId: plan.runId,
2095
- error_class: errorClass,
2096
- error: errorMessage,
2097
- cost_usd: knownCostUsd(usage),
2098
- cost_kind: usage.cost.kind
2099
- });
2100
- }
2101
- logUncapturedBudgetWarning({
2102
- analyst,
2103
- runId: plan.runId,
2104
- budgetUsd: effectiveBudget,
2044
+ status: "ok",
2045
+ findings_count: findings.length,
2046
+ latency_ms: Date.now() - t0,
2105
2047
  usage,
2106
- log
2107
- });
2108
- const execution = {
2109
- summary,
2110
- findings,
2111
- budgetDebitUsd: budgetDebit(summary.usage, effectiveBudget)
2048
+ ...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {}
2112
2049
  };
2113
- if (exact) try {
2114
- executionCost([...executions, execution], true);
2115
- } catch (error) {
2116
- executionFailure = error;
2117
- break;
2118
- }
2119
- executions.push(execution);
2120
- if (plan.budget.kind === "dynamic" && remainingUsd !== void 0) remainingUsd = Math.max(0, remainingUsd - execution.budgetDebitUsd);
2121
- if (plan.chainFindings) upstreamFindings.push(...findings);
2122
- if (lifecycleFailure !== void 0) {
2123
- if (!exact) throw lifecycleFailure;
2124
- executionFailure = lifecycleFailure;
2125
- break;
2126
- }
2127
- const hookValues = snapshotAfterHookValues(summary, findings, exact);
2128
- try {
2129
- await waitForHook(plan.hooks.onAfterAnalyze ? () => plan.hooks.onAfterAnalyze?.({
2130
- analyst,
2131
- summary: hookValues.summary,
2132
- findings: hookValues.findings,
2133
- runId: plan.runId
2134
- }) : void 0, executionSignal);
2135
- } catch (error) {
2136
- if (!exact) throw error;
2137
- executionFailure = error;
2138
- break;
2139
- }
2140
- yield snapshotExecutionEvent({
2141
- type: "analyst-completed",
2142
- summary,
2143
- findings
2144
- }, exact);
2145
- if (exact && runSignal?.aborted) {
2146
- executionFailure = abortReason(runSignal);
2147
- break;
2050
+ plan.log(`[analyst] ok ${analyst.id}`, {
2051
+ runId: plan.runId,
2052
+ findings: findings.length,
2053
+ latency_ms: summary.latency_ms,
2054
+ cost_usd: knownCostUsd(usage),
2055
+ cost_kind: usage.cost.kind,
2056
+ input_tokens: usage.tokens?.input ?? null,
2057
+ output_tokens: usage.tokens?.output ?? null
2058
+ });
2059
+ return summary;
2060
+ }
2061
+ const errorClass = analysisFailure.constructor.name || "Error";
2062
+ const errorMessage = exact && analysisFailure.message.length === 0 ? "Analyst failed without an error message" : analysisFailure.message;
2063
+ const summary = {
2064
+ analyst_id: analyst.id,
2065
+ status: "failed",
2066
+ findings_count: findings.length,
2067
+ latency_ms: Date.now() - t0,
2068
+ usage,
2069
+ ...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {},
2070
+ error: {
2071
+ class: errorClass,
2072
+ message: errorMessage
2148
2073
  }
2074
+ };
2075
+ plan.log(`[analyst] FAIL ${analyst.id}`, {
2076
+ runId: plan.runId,
2077
+ error_class: errorClass,
2078
+ error: errorMessage,
2079
+ cost_usd: knownCostUsd(usage),
2080
+ cost_kind: usage.cost.kind
2081
+ });
2082
+ return summary;
2083
+ }
2084
+ /** One analyst: allocate, run, summarize, and record it on the run. */
2085
+ async function* runAnalyst(st, analyst, input) {
2086
+ const { plan, exact, runSignal } = st;
2087
+ const t0 = Date.now();
2088
+ if (runSignal?.aborted) return yield* skipAborted(st, analyst, runSignal);
2089
+ if (input.kind === "missing") return yield* skipMissingInput(st, analyst);
2090
+ const { ctx, usageReceipts, budgetCeilingUsd } = buildAnalystContext(st, analyst);
2091
+ try {
2092
+ await waitForHook(plan.hooks.onBeforeAnalyze ? () => plan.hooks.onBeforeAnalyze?.({
2093
+ analyst,
2094
+ ctx,
2095
+ runId: plan.runId
2096
+ }) : void 0, runSignal);
2097
+ } catch (error) {
2098
+ if (!exact) throw error;
2099
+ st.executionFailure = error;
2100
+ return "stop";
2101
+ }
2102
+ if (runSignal?.aborted) return yield* skipAborted(st, analyst, runSignal, Date.now() - t0);
2103
+ let effectiveBudget;
2104
+ try {
2105
+ effectiveBudget = validateEffectiveBudget(ctx.budgetUsd, budgetCeilingUsd, analyst.id);
2106
+ } catch (error) {
2107
+ if (!exact) throw error;
2108
+ st.executionFailure = error;
2109
+ return "stop";
2110
+ }
2111
+ const analystContext = exact ? ctx : { ...ctx };
2112
+ const executionSignal = exact ? ctx.signal : runSignal;
2113
+ yield snapshotExecutionEvent({
2114
+ type: "analyst-started",
2115
+ analyst_id: analyst.id,
2116
+ started_at: new Date(t0).toISOString()
2117
+ }, exact);
2118
+ const analysis = await analyzeOne(st, analyst, input.value, analystContext, executionSignal);
2119
+ const { findings, lifecycleFailure } = analysis;
2120
+ let usage;
2121
+ try {
2122
+ usage = resolveUsage(analyst, usageReceipts, exact);
2123
+ } catch (error) {
2124
+ if (!exact) throw error;
2125
+ st.executionFailure = error;
2126
+ return "stop";
2149
2127
  }
2128
+ const summary = summarizeAnalyst(st, analyst, analysis, usage, t0, effectiveBudget);
2129
+ logUncapturedBudgetWarning({
2130
+ analyst,
2131
+ runId: plan.runId,
2132
+ budgetUsd: effectiveBudget,
2133
+ usage,
2134
+ log: plan.log
2135
+ });
2136
+ const execution = {
2137
+ summary,
2138
+ findings,
2139
+ budgetDebitUsd: budgetDebit(summary.usage, effectiveBudget)
2140
+ };
2141
+ if (exact) try {
2142
+ executionCost([...st.executions, execution], true);
2143
+ } catch (error) {
2144
+ st.executionFailure = error;
2145
+ return "stop";
2146
+ }
2147
+ st.executions.push(execution);
2148
+ if (plan.budget.kind === "dynamic" && st.remainingUsd !== void 0) st.remainingUsd = Math.max(0, st.remainingUsd - execution.budgetDebitUsd);
2149
+ if (plan.chainFindings) st.upstreamFindings.push(...findings);
2150
+ if (lifecycleFailure !== void 0) {
2151
+ if (!exact) throw lifecycleFailure;
2152
+ st.executionFailure = lifecycleFailure;
2153
+ return "stop";
2154
+ }
2155
+ const hookValues = snapshotAfterHookValues(summary, findings, exact);
2156
+ try {
2157
+ await waitForHook(plan.hooks.onAfterAnalyze ? () => plan.hooks.onAfterAnalyze?.({
2158
+ analyst,
2159
+ summary: hookValues.summary,
2160
+ findings: hookValues.findings,
2161
+ runId: plan.runId
2162
+ }) : void 0, executionSignal);
2163
+ } catch (error) {
2164
+ if (!exact) throw error;
2165
+ st.executionFailure = error;
2166
+ return "stop";
2167
+ }
2168
+ yield snapshotExecutionEvent({
2169
+ type: "analyst-completed",
2170
+ summary,
2171
+ findings
2172
+ }, exact);
2173
+ if (exact && runSignal?.aborted) {
2174
+ st.executionFailure = abortReason(runSignal);
2175
+ return "stop";
2176
+ }
2177
+ return "next";
2178
+ }
2179
+ /** Assemble the result, run the completion hook, and yield it. A failed exact run throws with its partial receipt. */
2180
+ async function* finishRun(st) {
2181
+ const { plan, runSignal, executions } = st;
2150
2182
  const summaries = executions.map(({ summary }) => summary);
2151
2183
  const findings = executions.flatMap((execution) => execution.findings);
2152
- const cost = executionCost(executions, exact);
2184
+ const cost = executionCost(executions, st.exact);
2153
2185
  const baseResult = {
2154
2186
  run_id: plan.runId,
2155
- correlation_id: correlationId,
2156
- started_at: startedAt,
2187
+ correlation_id: st.correlationId,
2188
+ started_at: st.startedAt,
2157
2189
  ended_at: (/* @__PURE__ */ new Date()).toISOString(),
2158
2190
  findings,
2159
2191
  per_analyst: summaries,
@@ -2169,7 +2201,7 @@ async function* executePlanStream(plan) {
2169
2201
  return;
2170
2202
  }
2171
2203
  let completeResult;
2172
- if (executionFailure === void 0) try {
2204
+ if (st.executionFailure === void 0) try {
2173
2205
  completeResult = snapshotExactAnalystRunReceipt({
2174
2206
  ...baseResult,
2175
2207
  execution_plan: plan.executionSnapshot,
@@ -2177,17 +2209,17 @@ async function* executePlanStream(plan) {
2177
2209
  }, "AnalystRegistry.runExact result");
2178
2210
  await waitForHook(plan.hooks.onComplete ? () => plan.hooks.onComplete?.({ result: completeResult }) : void 0, runSignal);
2179
2211
  } catch (error) {
2180
- executionFailure = error;
2212
+ st.executionFailure = error;
2181
2213
  }
2182
- if (runSignal?.aborted) executionFailure ??= abortReason(runSignal);
2183
- if (executionFailure === void 0 && completeResult) {
2214
+ if (runSignal?.aborted) st.executionFailure ??= abortReason(runSignal);
2215
+ if (st.executionFailure === void 0 && completeResult) {
2184
2216
  yield snapshotExecutionEvent({
2185
2217
  type: "run-completed",
2186
2218
  result: completeResult
2187
2219
  }, true);
2188
2220
  return;
2189
2221
  }
2190
- const cause = executionFailure instanceof Error ? executionFailure : new Error(String(executionFailure));
2222
+ const cause = st.executionFailure instanceof Error ? st.executionFailure : new Error(String(st.executionFailure));
2191
2223
  const errorClass = cause.constructor.name || "Error";
2192
2224
  const errorMessage = cause.message.trim().length === 0 ? "Exact analyst run failed without a message" : cause.message;
2193
2225
  throw new ExactAnalystRunExecutionError(`exact analyst run failed after starting: ${errorMessage}; partial result is attached`, {
@@ -2348,4 +2380,4 @@ function buildDefaultAnalystRegistry(options = {}) {
2348
2380
  //#endregion
2349
2381
  export { readAnalystReview as _, KNOWLEDGE_POISONING_KIND_SPEC as a, FAILURE_MODE_KIND_SPEC as c, emitControlIntegrityFindings as d, behavioralAnalyst as f, completedAnalystReviewQuality as g, assertUniqueFindingIds as h, DEFAULT_TRACE_ANALYST_KINDS as i, CONTROL_INTEGRITY_ANALYST as l, analystRunDigest as m, AnalystRegistry as n, KNOWLEDGE_GAP_KIND_SPEC as o, analystFindingDigest as p, ExactAnalystRunExecutionError as r, IMPROVEMENT_KIND_SPEC as s, buildDefaultAnalystRegistry as t, ControlIntegrityAnalyst as u, snapshotAnalystRun as v, validateAnalystReviewDecisions as y };
2350
2382
 
2351
- //# sourceMappingURL=default-registry-ClYjq3QE.js.map
2383
+ //# sourceMappingURL=default-registry-BrKmT01n.js.map