@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.
- package/CHANGELOG.md +57 -1
- package/dist/adapters/http.d.ts +3 -3
- package/dist/adapters/http.d.ts.map +1 -1
- package/dist/adapters/http.js +1 -0
- package/dist/adapters/http.js.map +1 -1
- package/dist/{agent-profile-DTt8uGP9.d.ts → agent-profile-D01Io2Xw.d.ts} +4 -4
- package/dist/{agent-profile-DTt8uGP9.d.ts.map → agent-profile-D01Io2Xw.d.ts.map} +1 -1
- package/dist/analyst/index.d.ts +13 -13
- package/dist/analyst/index.d.ts.map +1 -1
- package/dist/analyst/index.js +10 -10
- package/dist/analyst/index.js.map +1 -1
- package/dist/{analyze-runs-DyeNcenW.d.ts → analyze-runs-BWAHBDAw.d.ts} +4 -4
- package/dist/{analyze-runs-DyeNcenW.d.ts.map → analyze-runs-BWAHBDAw.d.ts.map} +1 -1
- package/dist/{benchmark-command-xQK8nOI6.js → benchmark-command-BzmMTnvC.js} +664 -565
- package/dist/benchmark-command-BzmMTnvC.js.map +1 -0
- package/dist/benchmarks/index.d.ts +5 -5
- package/dist/benchmarks/index.js +3 -3
- package/dist/benchmarks/index.js.map +1 -1
- package/dist/campaign/index.d.ts +8 -8
- package/dist/campaign/index.js +11 -11
- package/dist/{campaign-CJGkxAQ6.js → campaign-BVPC6ODQ.js} +452 -282
- package/dist/campaign-BVPC6ODQ.js.map +1 -0
- package/dist/{campaign-evidence-CQYw8_0H.js → campaign-evidence-DunzcJGv.js} +2 -2
- package/dist/campaign-evidence-DunzcJGv.js.map +1 -0
- package/dist/{chat-client-ldqxYYTN.js → chat-client-CMQ8_h4J.js} +2 -2
- package/dist/{chat-client-ldqxYYTN.js.map → chat-client-CMQ8_h4J.js.map} +1 -1
- package/dist/{chat-json-call-DavzexSp.js → chat-json-call-BrZKn0L3.js} +2 -2
- package/dist/{chat-json-call-DavzexSp.js.map → chat-json-call-BrZKn0L3.js.map} +1 -1
- package/dist/cli.js +10 -10
- package/dist/{completion-verifier-B_jw6C9p.js → completion-verifier-Cigap8CG.js} +5 -5
- package/dist/{completion-verifier-B_jw6C9p.js.map → completion-verifier-Cigap8CG.js.map} +1 -1
- package/dist/contract/index.d.ts +11 -11
- package/dist/contract/index.js +91 -11
- package/dist/contract/index.js.map +1 -1
- package/dist/{cost-ledger-D0352Z4d.js → cost-ledger-BGZB6yY2.js} +75 -2
- package/dist/cost-ledger-BGZB6yY2.js.map +1 -0
- package/dist/{cost-ledger-Jk62OBfF.d.ts → cost-ledger-C1W3ICmP.d.ts} +26 -2
- package/dist/cost-ledger-C1W3ICmP.d.ts.map +1 -0
- package/dist/{default-registry-ClYjq3QE.js → default-registry-BrKmT01n.js} +310 -278
- package/dist/{default-registry-ClYjq3QE.js.map → default-registry-BrKmT01n.js.map} +1 -1
- package/dist/{default-registry-DXgLmoDI.d.ts → default-registry-Cwg_QN3d.d.ts} +6 -6
- package/dist/{default-registry-DXgLmoDI.d.ts.map → default-registry-Cwg_QN3d.d.ts.map} +1 -1
- package/dist/{define-agent-eval-BIkH_gAR.d.ts → define-agent-eval-C2nFhHPu.d.ts} +8 -8
- package/dist/{define-agent-eval-BIkH_gAR.d.ts.map → define-agent-eval-C2nFhHPu.d.ts.map} +1 -1
- package/dist/{define-agent-eval-BDxNlP3D.js → define-agent-eval-UQY3VbJ2.js} +165 -105
- package/dist/define-agent-eval-UQY3VbJ2.js.map +1 -0
- package/dist/diagnosis/index.d.ts +2 -2
- package/dist/{dspy-rlm-engine-DhdCr1Dc.js → dspy-rlm-engine-Bn_Mt_LW.js} +3 -3
- package/dist/{dspy-rlm-engine-DhdCr1Dc.js.map → dspy-rlm-engine-Bn_Mt_LW.js.map} +1 -1
- package/dist/{engine-BvZ0R-36.d.ts → engine-BpGGw6cd.d.ts} +3 -3
- package/dist/{engine-BvZ0R-36.d.ts.map → engine-BpGGw6cd.d.ts.map} +1 -1
- package/dist/eval-campaign-BUMIxKTE.js +393 -0
- package/dist/eval-campaign-BUMIxKTE.js.map +1 -0
- package/dist/{evaluation-jTjC_QQD.d.ts → evaluation-CBdQt_kr.d.ts} +4 -4
- package/dist/{evaluation-jTjC_QQD.d.ts.map → evaluation-CBdQt_kr.d.ts.map} +1 -1
- package/dist/evaluation.d.ts +1 -1
- package/dist/evaluation.js +1 -1
- package/dist/{exact-types-CflbJ9f3.d.ts → exact-types-BYFmYq44.d.ts} +2 -2
- package/dist/{exact-types-CflbJ9f3.d.ts.map → exact-types-BYFmYq44.d.ts.map} +1 -1
- package/dist/experiment/index.d.ts +24 -1
- package/dist/experiment/index.d.ts.map +1 -1
- package/dist/experiment/index.js +110 -71
- package/dist/experiment/index.js.map +1 -1
- package/dist/{exporters-Cl6IeNAu.js → exporters-DWvM16LE.js} +2 -2
- package/dist/{exporters-Cl6IeNAu.js.map → exporters-DWvM16LE.js.map} +1 -1
- package/dist/{external-optimizer-process-KVFGvYX1.js → external-optimizer-process-wOLfzsCC.js} +2 -2
- package/dist/{external-optimizer-process-KVFGvYX1.js.map → external-optimizer-process-wOLfzsCC.js.map} +1 -1
- package/dist/{external-optimizer-subprocess-XIHBOSKt.js → external-optimizer-subprocess-D670Oxf2.js} +4 -4
- package/dist/{external-optimizer-subprocess-XIHBOSKt.js.map → external-optimizer-subprocess-D670Oxf2.js.map} +1 -1
- package/dist/{feedback-trajectory-BWmhRBGu.d.ts → feedback-trajectory-DhB9WzYg.d.ts} +3 -3
- package/dist/{feedback-trajectory-BWmhRBGu.d.ts.map → feedback-trajectory-DhB9WzYg.d.ts.map} +1 -1
- package/dist/{findings-store-BMVQtEsm.js → findings-store-CvNo712L.js} +6 -6
- package/dist/{findings-store-BMVQtEsm.js.map → findings-store-CvNo712L.js.map} +1 -1
- package/dist/fuzz.d.ts +1 -1
- package/dist/fuzz.js +1 -1
- package/dist/{hf-dataset-D9f7-oX7.js → hf-dataset-CKxIJQba.js} +3 -3
- package/dist/{hf-dataset-D9f7-oX7.js.map → hf-dataset-CKxIJQba.js.map} +1 -1
- package/dist/hosted/index.js +1 -1
- package/dist/{index-CX-GAUpw.d.ts → index-CHxwfW5g.d.ts} +2 -2
- package/dist/{index-CX-GAUpw.d.ts.map → index-CHxwfW5g.d.ts.map} +1 -1
- package/dist/{index-BLGqZ81N.d.ts → index-CVFStrQD.d.ts} +8 -8
- package/dist/{index-BLGqZ81N.d.ts.map → index-CVFStrQD.d.ts.map} +1 -1
- package/dist/{index-9jJ2fKSX.d.ts → index-CalAsXMR.d.ts} +7 -5
- package/dist/index-CalAsXMR.d.ts.map +1 -0
- package/dist/{index-CiRwLv2R.d.ts → index-D7fmC-1K.d.ts} +3 -4
- package/dist/index-D7fmC-1K.d.ts.map +1 -0
- package/dist/{index-BiT6RtNH.d.ts → index-DAXfpVf7.d.ts} +10 -10
- package/dist/{index-BiT6RtNH.d.ts.map → index-DAXfpVf7.d.ts.map} +1 -1
- package/dist/{index-ZuWx52WG.d.ts → index-Q6DvdcwI.d.ts} +67 -24
- package/dist/index-Q6DvdcwI.d.ts.map +1 -0
- package/dist/index.d.ts +26 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +615 -692
- package/dist/index.js.map +1 -1
- package/dist/{integrity-DOd9Q86O.js → integrity-C8oUeB0g.js} +322 -197
- package/dist/integrity-C8oUeB0g.js.map +1 -0
- package/dist/{integrity-_qgZLA5p.d.ts → integrity-CCwvezWS.d.ts} +2 -2
- package/dist/{integrity-_qgZLA5p.d.ts.map → integrity-CCwvezWS.d.ts.map} +1 -1
- package/dist/{journal-CR4QikYp.js → journal-C7om8Gum.js} +48 -38
- package/dist/journal-C7om8Gum.js.map +1 -0
- package/dist/judge-gate-Co5tuh57.js.map +1 -1
- package/dist/{judge-gate-DsL0yFcb.d.ts → judge-gate-Dc_mXQsL.d.ts} +2 -2
- package/dist/judge-gate-Dc_mXQsL.d.ts.map +1 -0
- package/dist/{kind-factory-Gy4fXixd.js → kind-factory-BhxbtUsQ.js} +2 -2
- package/dist/{kind-factory-Gy4fXixd.js.map → kind-factory-BhxbtUsQ.js.map} +1 -1
- package/dist/ledger-core/index.d.ts +1 -1
- package/dist/ledger-core/index.js +2 -2
- package/dist/ledger-core/lock-holder.d.ts +2 -0
- package/dist/ledger-core/lock-holder.js +181 -0
- package/dist/ledger-core/lock-holder.js.map +1 -0
- package/dist/{ledger-core-DrJhbms9.js → ledger-core-CAxUdDk0.js} +2 -2
- package/dist/{ledger-core-DrJhbms9.js.map → ledger-core-CAxUdDk0.js.map} +1 -1
- package/dist/{llm-client-BshCREn6.js → llm-client-DXuOTseU.js} +239 -249
- package/dist/llm-client-DXuOTseU.js.map +1 -0
- package/dist/{llm-judge-C8jMTNNG.js → llm-judge-Cc8vDJh_.js} +648 -459
- package/dist/llm-judge-Cc8vDJh_.js.map +1 -0
- package/dist/lock-holder-DaJbfpci.d.ts +86 -0
- package/dist/lock-holder-DaJbfpci.d.ts.map +1 -0
- package/dist/matrix/index.d.ts +2 -2
- package/dist/{matrix-DHe-dwVJ.d.ts → matrix-Cf-AGxGh.d.ts} +4 -4
- package/dist/{matrix-DHe-dwVJ.d.ts.map → matrix-Cf-AGxGh.d.ts.map} +1 -1
- package/dist/meta-eval/index.d.ts +2 -2
- package/dist/{mint-zszyYlpA.js → mint-CbdwjTPW.js} +2 -2
- package/dist/{mint-zszyYlpA.js.map → mint-CbdwjTPW.js.map} +1 -1
- package/dist/{mint-BRZXuwRi.d.ts → mint-CkzpVPdz.d.ts} +3 -3
- package/dist/{mint-BRZXuwRi.d.ts.map → mint-CkzpVPdz.d.ts.map} +1 -1
- package/dist/multishot/golden/index.d.ts +1 -1
- package/dist/multishot/index.d.ts +2 -2
- package/dist/multishot/index.js.map +1 -1
- package/dist/openapi.json +1 -1
- package/dist/{pareto-BzsxidFD.js → pareto-BiBnQXAE.js} +306 -212
- package/dist/pareto-BiBnQXAE.js.map +1 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js.map +1 -1
- package/dist/{prime-protocol-BWG2DQIk.d.ts → prime-protocol-CckHBxGu.d.ts} +3 -3
- package/dist/{prime-protocol-BWG2DQIk.d.ts.map → prime-protocol-CckHBxGu.d.ts.map} +1 -1
- package/dist/{promotion-gate-DaY95yU6.d.ts → promotion-gate-CkVZHagC.d.ts} +3 -3
- package/dist/{promotion-gate-DaY95yU6.d.ts.map → promotion-gate-CkVZHagC.d.ts.map} +1 -1
- package/dist/{proposal-findings-BbWidvUk.js → proposal-findings-E1aSC_cU.js} +2 -2
- package/dist/{proposal-findings-BbWidvUk.js.map → proposal-findings-E1aSC_cU.js.map} +1 -1
- package/dist/{registry-ssNoHzwD.d.ts → registry-B_yG-1jh.d.ts} +5 -5
- package/dist/{registry-ssNoHzwD.d.ts.map → registry-B_yG-1jh.d.ts.map} +1 -1
- package/dist/{render-C-w2EZ6p.js → render-Cs34y0iX.js} +404 -208
- package/dist/render-Cs34y0iX.js.map +1 -0
- package/dist/reporting.d.ts +3 -3
- package/dist/{researcher-0ABVIdGa.d.ts → researcher-H0p44OYC.d.ts} +5 -5
- package/dist/{researcher-0ABVIdGa.d.ts.map → researcher-H0p44OYC.d.ts.map} +1 -1
- package/dist/{reward-DrZ71vnf.d.ts → reward-BeUgVVC_.d.ts} +2 -2
- package/dist/{reward-DrZ71vnf.d.ts.map → reward-BeUgVVC_.d.ts.map} +1 -1
- package/dist/{reward-hacking-E52wq86n.d.ts → reward-hacking-WTxUbtbb.d.ts} +2 -2
- package/dist/{reward-hacking-E52wq86n.d.ts.map → reward-hacking-WTxUbtbb.d.ts.map} +1 -1
- package/dist/rl.d.ts +8 -8
- package/dist/rl.js +4 -4
- package/dist/rollout/index.d.ts +3 -3
- package/dist/rollout/index.js +5 -5
- package/dist/{rollout-D6C50mfA.js → rollout-Dd1ucT_M.js} +5 -5
- package/dist/{rollout-D6C50mfA.js.map → rollout-Dd1ucT_M.js.map} +1 -1
- package/dist/{rubric-predictive-validity-DiwT8PbL.d.ts → rubric-predictive-validity-noY7uE03.d.ts} +2 -2
- package/dist/{rubric-predictive-validity-DiwT8PbL.d.ts.map → rubric-predictive-validity-noY7uE03.d.ts.map} +1 -1
- package/dist/{run-record-CaxbLq6Y.d.ts → run-record-C3awiXPf.d.ts} +2 -2
- package/dist/{run-record-CaxbLq6Y.d.ts.map → run-record-C3awiXPf.d.ts.map} +1 -1
- package/dist/schema-C-ziyJD7.d.ts.map +1 -1
- package/dist/{schema-DxcKTzbi.js → schema-CvhfLjtZ.js} +77 -47
- package/dist/schema-CvhfLjtZ.js.map +1 -0
- package/dist/search/index.d.ts +2 -2
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +2 -2
- package/dist/{search-kernel-DxqjBxA-.d.ts → search-kernel-Dloxd6gs.d.ts} +5 -5
- package/dist/{search-kernel-DxqjBxA-.d.ts.map → search-kernel-Dloxd6gs.d.ts.map} +1 -1
- package/dist/{search-ledger-TUvB5gWH.js → search-ledger-CZRqtFbW.js} +252 -245
- package/dist/search-ledger-CZRqtFbW.js.map +1 -0
- package/dist/{search-ledger-file-UKCO2r8a.js → search-ledger-file-Bd5Tioq6.js} +3 -3
- package/dist/{search-ledger-file-UKCO2r8a.js.map → search-ledger-file-Bd5Tioq6.js.map} +1 -1
- package/dist/{search-shipper-Cw2z3-td.js → search-shipper-Dn3NLsuH.js} +3 -3
- package/dist/{search-shipper-Cw2z3-td.js.map → search-shipper-Dn3NLsuH.js.map} +1 -1
- package/dist/{search-summary-DQIvJsSB.js → search-summary-D4bwYnAE.js} +3 -3
- package/dist/{search-summary-DQIvJsSB.js.map → search-summary-D4bwYnAE.js.map} +1 -1
- package/dist/{server-DoVbqqtJ.js → server-8TS8XCvg.js} +3 -3
- package/dist/{server-DoVbqqtJ.js.map → server-8TS8XCvg.js.map} +1 -1
- package/dist/{single-run-lock-U58yf8N6.js → single-run-lock-Dekd8_Wv.js} +7 -7
- package/dist/single-run-lock-Dekd8_Wv.js.map +1 -0
- package/dist/{skillopt-optimization-method-kyL94-ri.js → skillopt-optimization-method-DLKqdhcR.js} +1384 -1059
- package/dist/skillopt-optimization-method-DLKqdhcR.js.map +1 -0
- package/dist/{statistical-heldout-C9AbgREN.d.ts → statistical-heldout-3z3I-kJN.d.ts} +3 -3
- package/dist/{statistical-heldout-C9AbgREN.d.ts.map → statistical-heldout-3z3I-kJN.d.ts.map} +1 -1
- package/dist/{store-otlp-BteDAbHK.js → store-otlp-dyWE3wAG.js} +2 -2
- package/dist/{store-otlp-BteDAbHK.js.map → store-otlp-dyWE3wAG.js.map} +1 -1
- package/dist/{store-tool-spans-D5l_OfTJ.js → store-tool-spans-DIUgZbzu.js} +3 -3
- package/dist/{store-tool-spans-D5l_OfTJ.js.map → store-tool-spans-DIUgZbzu.js.map} +1 -1
- package/dist/{store-tool-spans-DZS0HWVf.d.ts → store-tool-spans-DPwXHQkH.d.ts} +7 -7
- package/dist/{store-tool-spans-DZS0HWVf.d.ts.map → store-tool-spans-DPwXHQkH.d.ts.map} +1 -1
- package/dist/{summary-report-DM7tlml1.d.ts → summary-report-C8V49Jt3.d.ts} +18 -3
- package/dist/summary-report-C8V49Jt3.d.ts.map +1 -0
- package/dist/supervisor-run/index.d.ts.map +1 -1
- package/dist/supervisor-run/index.js +3 -3
- package/dist/{systemone-Bp_Ac0p1.d.ts → systemone-DVA7t76V.d.ts} +6 -6
- package/dist/{systemone-Bp_Ac0p1.d.ts.map → systemone-DVA7t76V.d.ts.map} +1 -1
- package/dist/{systemone-review-CwE6JGIp.d.ts → systemone-review-CUBMuTLi.d.ts} +2 -2
- package/dist/{systemone-review-CwE6JGIp.d.ts.map → systemone-review-CUBMuTLi.d.ts.map} +1 -1
- package/dist/systemone.d.ts +3 -3
- package/dist/{terminal-record-78g6E4vh.js → terminal-record-D4Rv-j1W.js} +241 -193
- package/dist/{terminal-record-78g6E4vh.js.map → terminal-record-D4Rv-j1W.js.map} +1 -1
- package/dist/{tool-groups-DyNz2JZ_.d.ts → tool-groups-LISbBWCg.d.ts} +3 -3
- package/dist/tool-groups-LISbBWCg.d.ts.map +1 -0
- package/dist/{trace-questions-xxwgsuMi.d.ts → trace-questions-C42fYEE4.d.ts} +4 -4
- package/dist/{trace-questions-xxwgsuMi.d.ts.map → trace-questions-C42fYEE4.d.ts.map} +1 -1
- package/dist/trace-repair/index.d.ts +3 -3
- package/dist/traces.d.ts +6 -6
- package/dist/traces.js +3 -3
- package/dist/trajectory-replay/index.d.ts +4 -1
- package/dist/trajectory-replay/index.d.ts.map +1 -1
- package/dist/trajectory-replay/index.js +854 -823
- package/dist/trajectory-replay/index.js.map +1 -1
- package/dist/{tree-BGRglkKd.js → tree-DSqwJpL9.js} +122 -14
- package/dist/tree-DSqwJpL9.js.map +1 -0
- package/dist/{types-CW8ewATZ.d.ts → types-8yQzNm8u.d.ts} +4 -4
- package/dist/{types-CW8ewATZ.d.ts.map → types-8yQzNm8u.d.ts.map} +1 -1
- package/dist/{types-D8GhJoHk.d.ts → types-CHfn1zg5.d.ts} +70 -72
- package/dist/types-CHfn1zg5.d.ts.map +1 -0
- package/dist/{types-DtMbFw6U.d.ts → types-D8GXK9Z5.d.ts} +3 -3
- package/dist/{types-DtMbFw6U.d.ts.map → types-D8GXK9Z5.d.ts.map} +1 -1
- package/dist/{types-D-mgRzlh.d.ts → types-eMhdacVp.d.ts} +2 -2
- package/dist/{types-D-mgRzlh.d.ts.map → types-eMhdacVp.d.ts.map} +1 -1
- package/dist/wire/index.d.ts +3 -3
- package/dist/wire/index.js +1 -1
- package/docs/campaign-proposers.md +16 -0
- package/docs/concepts.md +31 -0
- package/docs/design/statistics-decisions.md +1 -1
- package/docs/eval-surface-map.md +1 -0
- package/docs/profile-json-identity.md +1 -2
- package/docs/public-api.md +100 -88
- package/package.json +8 -6
- package/dist/benchmark-command-xQK8nOI6.js.map +0 -1
- package/dist/campaign-CJGkxAQ6.js.map +0 -1
- package/dist/campaign-evidence-CQYw8_0H.js.map +0 -1
- package/dist/cost-ledger-D0352Z4d.js.map +0 -1
- package/dist/cost-ledger-Jk62OBfF.d.ts.map +0 -1
- package/dist/define-agent-eval-BDxNlP3D.js.map +0 -1
- package/dist/eval-campaign-BLEfBGbA.js +0 -343
- package/dist/eval-campaign-BLEfBGbA.js.map +0 -1
- package/dist/index-9jJ2fKSX.d.ts.map +0 -1
- package/dist/index-CiRwLv2R.d.ts.map +0 -1
- package/dist/index-ZuWx52WG.d.ts.map +0 -1
- package/dist/integrity-DOd9Q86O.js.map +0 -1
- package/dist/journal-CR4QikYp.js.map +0 -1
- package/dist/judge-gate-DsL0yFcb.d.ts.map +0 -1
- package/dist/llm-client-BshCREn6.js.map +0 -1
- package/dist/llm-judge-C8jMTNNG.js.map +0 -1
- package/dist/pareto-BzsxidFD.js.map +0 -1
- package/dist/render-C-w2EZ6p.js.map +0 -1
- package/dist/schema-DxcKTzbi.js.map +0 -1
- package/dist/search-ledger-TUvB5gWH.js.map +0 -1
- package/dist/single-run-lock-U58yf8N6.js.map +0 -1
- package/dist/skillopt-optimization-method-kyL94-ri.js.map +0 -1
- package/dist/summary-report-DM7tlml1.d.ts.map +0 -1
- package/dist/tool-groups-DyNz2JZ_.d.ts.map +0 -1
- package/dist/tree-BGRglkKd.js.map +0 -1
- 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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
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
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
}) :
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
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
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
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
|
-
|
|
1988
|
-
|
|
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
|
-
|
|
2023
|
+
error: cause,
|
|
1991
2024
|
runId: plan.runId
|
|
1992
|
-
}) : void 0,
|
|
2025
|
+
}) : void 0, executionSignal) ?? [], exact, `AnalystRegistry.runExact analyst "${analyst.id}" onError findings`);
|
|
1993
2026
|
} catch (error) {
|
|
1994
|
-
|
|
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
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
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
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
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
|
-
|
|
2107
|
-
});
|
|
2108
|
-
const execution = {
|
|
2109
|
-
summary,
|
|
2110
|
-
findings,
|
|
2111
|
-
budgetDebitUsd: budgetDebit(summary.usage, effectiveBudget)
|
|
2048
|
+
...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {}
|
|
2112
2049
|
};
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
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-
|
|
2383
|
+
//# sourceMappingURL=default-registry-BrKmT01n.js.map
|