@tangle-network/agent-eval 0.216.1 → 0.218.1
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 +137 -57
- package/README.md +2 -2
- package/dist/adapters/http.d.ts +2 -2
- package/dist/{agent-profile-VFcQncbW.d.ts → agent-profile-DTt8uGP9.d.ts} +4 -17
- package/dist/agent-profile-DTt8uGP9.d.ts.map +1 -0
- package/dist/{agent-profile-cell-BK8mlqlq.js → agent-profile-cell-B1V1gUZs.js} +4 -53
- package/dist/agent-profile-cell-B1V1gUZs.js.map +1 -0
- package/dist/{agent-profile-cell-BNp-Js9F.d.ts → agent-profile-cell-BcpFbNd5.d.ts} +2 -22
- package/dist/agent-profile-cell-BcpFbNd5.d.ts.map +1 -0
- package/dist/{agreement-irr-BEWLIF3_.js → agreement-irr-BhAqjluA.js} +5 -5
- package/dist/agreement-irr-BhAqjluA.js.map +1 -0
- package/dist/analyst/index.d.ts +36 -169
- package/dist/analyst/index.d.ts.map +1 -1
- package/dist/analyst/index.js +17 -192
- package/dist/analyst/index.js.map +1 -1
- package/dist/{analyze-runs-D68fd-su.d.ts → analyze-runs-DjlZOVXx.d.ts} +5 -5
- package/dist/{analyze-runs-D68fd-su.d.ts.map → analyze-runs-DjlZOVXx.d.ts.map} +1 -1
- package/dist/{analyze-runs-C84irm4i.js → analyze-runs-DqPJaJ4X.js} +225 -21
- package/dist/analyze-runs-DqPJaJ4X.js.map +1 -0
- package/dist/authenticity/index.d.ts +0 -23
- package/dist/authenticity/index.d.ts.map +1 -1
- package/dist/authenticity/index.js +1 -34
- package/dist/authenticity/index.js.map +1 -1
- package/dist/{benchmark-command-By0vh8q7.js → benchmark-command-BupdHRyf.js} +1225 -661
- package/dist/benchmark-command-BupdHRyf.js.map +1 -0
- package/dist/benchmarks/index.d.ts +5 -6
- package/dist/benchmarks/index.d.ts.map +1 -1
- package/dist/benchmarks/index.js +4 -4
- package/dist/benchmarks/index.js.map +1 -1
- package/dist/builder-eval/index.d.ts +3 -3
- package/dist/builder-eval/index.js +2 -2
- package/dist/builder-eval/index.js.map +1 -1
- package/dist/campaign/index.d.ts +7 -7
- package/dist/campaign/index.js +15 -15
- package/dist/{campaign-BudZ70zo.js → campaign-CGvUTnmc.js} +324 -800
- package/dist/campaign-CGvUTnmc.js.map +1 -0
- package/dist/{campaign-evidence-Clrn4hBV.js → campaign-evidence-DunzcJGv.js} +10 -18
- package/dist/{campaign-evidence-Clrn4hBV.js.map → campaign-evidence-DunzcJGv.js.map} +1 -1
- package/dist/{canonical-B2RqLofv.js → canonical-Dq2hOQ8L.js} +2 -2
- package/dist/{canonical-B2RqLofv.js.map → canonical-Dq2hOQ8L.js.map} +1 -1
- package/dist/cell-spend-DEWR3nj-.js +90 -0
- package/dist/cell-spend-DEWR3nj-.js.map +1 -0
- package/dist/{chat-client-l-MVDlDk.js → chat-client-B2pXlPdx.js} +2 -2
- package/dist/{chat-client-l-MVDlDk.js.map → chat-client-B2pXlPdx.js.map} +1 -1
- package/dist/{chat-json-call-puMArmtW.js → chat-json-call-Dm9c-b41.js} +3 -2
- package/dist/chat-json-call-Dm9c-b41.js.map +1 -0
- package/dist/{claim-q4HQhK1G.js → claim-BPVuyHuy.js} +3 -3
- package/dist/{claim-q4HQhK1G.js.map → claim-BPVuyHuy.js.map} +1 -1
- package/dist/cli.js +113 -12
- package/dist/cli.js.map +1 -1
- package/dist/{client-BzL9niqi.d.ts → client-hwo3cJjR.d.ts} +3 -16
- package/dist/client-hwo3cJjR.d.ts.map +1 -0
- package/dist/{cluster-bootstrap-qcUWYFl-.js → cluster-bootstrap-DEwwhl0C.js} +3 -3
- package/dist/{cluster-bootstrap-qcUWYFl-.js.map → cluster-bootstrap-DEwwhl0C.js.map} +1 -1
- package/dist/{produced-state-BsDmnwxc.js → completion-verifier-DbLVf3i8.js} +9 -64
- package/dist/completion-verifier-DbLVf3i8.js.map +1 -0
- package/dist/contract/index.d.ts +12 -12
- package/dist/contract/index.js +107 -403
- package/dist/contract/index.js.map +1 -1
- package/dist/{cost-ledger-BP8V4kUQ.js → cost-ledger-D0352Z4d.js} +4 -8
- package/dist/cost-ledger-D0352Z4d.js.map +1 -0
- package/dist/dataset-DQqhOCPt.d.ts.map +1 -1
- package/dist/{default-registry-COhk9g36.js → default-registry-BJ-Pq6yL.js} +314 -285
- package/dist/default-registry-BJ-Pq6yL.js.map +1 -0
- package/dist/{default-registry-DzHiGruW.d.ts → default-registry-DXgLmoDI.d.ts} +7 -50
- package/dist/default-registry-DXgLmoDI.d.ts.map +1 -0
- package/dist/{define-agent-eval-CNTPzIkp.js → define-agent-eval-BGdFKlrc.js} +170 -110
- package/dist/define-agent-eval-BGdFKlrc.js.map +1 -0
- package/dist/{define-agent-eval-WSck0CZJ.d.ts → define-agent-eval-BlH10zEw.d.ts} +8 -8
- package/dist/define-agent-eval-BlH10zEw.d.ts.map +1 -0
- package/dist/{descriptive-DboxPZrG.js → descriptive-CVNy48rR.js} +2 -2
- package/dist/{descriptive-DboxPZrG.js.map → descriptive-CVNy48rR.js.map} +1 -1
- package/dist/diagnosis/index.d.ts +4 -14
- package/dist/diagnosis/index.d.ts.map +1 -1
- package/dist/diagnosis/index.js +67 -28
- package/dist/diagnosis/index.js.map +1 -1
- package/dist/{dspy-rlm-engine-LRCu61m5.js → dspy-rlm-engine-CSMwudLO.js} +5 -10
- package/dist/dspy-rlm-engine-CSMwudLO.js.map +1 -0
- package/dist/{emitter-HcCmFQl_.d.ts → emitter-DABYYTcH.d.ts} +5 -5
- package/dist/emitter-DABYYTcH.d.ts.map +1 -0
- package/dist/emitter-DbMXUIVP.js.map +1 -1
- package/dist/{engine-3A_4jOlI.d.ts → engine-BvZ0R-36.d.ts} +17 -21
- package/dist/engine-BvZ0R-36.d.ts.map +1 -0
- package/dist/{equal-terms-BtdXayCJ.js → equal-terms-DbPGcVtI.js} +2 -2
- package/dist/equal-terms-DbPGcVtI.js.map +1 -0
- package/dist/{errors-DVZiqS7K.js → errors-BcOs5MKW.js} +2 -8
- package/dist/{errors-DVZiqS7K.js.map → errors-BcOs5MKW.js.map} +1 -1
- package/dist/eval-campaign-BUMIxKTE.js +393 -0
- package/dist/eval-campaign-BUMIxKTE.js.map +1 -0
- package/dist/{evaluation-6Yoi74gM.d.ts → evaluation-BOZ38vOH.d.ts} +7 -7
- package/dist/evaluation-BOZ38vOH.d.ts.map +1 -0
- package/dist/evaluation.d.ts +2 -2
- package/dist/evaluation.js +1 -1
- package/dist/evaluation.js.map +1 -1
- package/dist/{exact-types-ClugMJfI.d.ts → exact-types-CflbJ9f3.d.ts} +2 -2
- package/dist/{exact-types-ClugMJfI.d.ts.map → exact-types-CflbJ9f3.d.ts.map} +1 -1
- package/dist/{exec-ChJ6d5if.js → exec-CpbtOXVt.js} +2 -24
- package/dist/{exec-ChJ6d5if.js.map → exec-CpbtOXVt.js.map} +1 -1
- package/dist/execution-tracks-CpgFPpS5.js.map +1 -1
- package/dist/experiment/index.d.ts +9 -112
- package/dist/experiment/index.d.ts.map +1 -1
- package/dist/experiment/index.js +258 -311
- package/dist/experiment/index.js.map +1 -1
- package/dist/{exporters-X4xwla8A.js → exporters-DWvM16LE.js} +3 -3
- package/dist/exporters-DWvM16LE.js.map +1 -0
- package/dist/{exporters-ChTnR90l.d.ts → exporters-Dk3oEbK_.d.ts} +2 -4
- package/dist/{exporters-ChTnR90l.d.ts.map → exporters-Dk3oEbK_.d.ts.map} +1 -1
- package/dist/{external-optimizer-process-BjMGUuds.js → external-optimizer-process-C3Wm7Vhn.js} +4 -3
- package/dist/external-optimizer-process-C3Wm7Vhn.js.map +1 -0
- package/dist/{external-optimizer-subprocess-BqW0hHcI.js → external-optimizer-subprocess-B5gdLRZv.js} +9 -11
- package/dist/external-optimizer-subprocess-B5gdLRZv.js.map +1 -0
- package/dist/{extract-usage-BrnzRJ6H.js → extract-usage-BZLU01kR.js} +2 -23
- package/dist/{extract-usage-BrnzRJ6H.js.map → extract-usage-BZLU01kR.js.map} +1 -1
- package/dist/{failure-cluster-CbgEDcFJ.d.ts → failure-cluster-DN0t63Z0.d.ts} +4 -43
- package/dist/failure-cluster-DN0t63Z0.d.ts.map +1 -0
- package/dist/{failure-taxonomy-CjabTATj.js → failure-taxonomy-Bx5oWqaW.js} +2 -19
- package/dist/{failure-taxonomy-CjabTATj.js.map → failure-taxonomy-Bx5oWqaW.js.map} +1 -1
- package/dist/{feedback-trajectory-C4EG0nNH.d.ts → feedback-trajectory-BWmhRBGu.d.ts} +7 -9
- package/dist/feedback-trajectory-BWmhRBGu.d.ts.map +1 -0
- package/dist/{semantic-concept-judge-BQF8te0T.js → findings-store-BtTzPL0d.js} +9 -249
- package/dist/findings-store-BtTzPL0d.js.map +1 -0
- package/dist/fuzz.d.ts +19 -62
- package/dist/fuzz.d.ts.map +1 -1
- package/dist/fuzz.js +62 -108
- package/dist/fuzz.js.map +1 -1
- package/dist/{hf-dataset-BR2yhuNn.js → hf-dataset-CKxIJQba.js} +4 -24
- package/dist/hf-dataset-CKxIJQba.js.map +1 -0
- package/dist/hosted/index.d.ts +2 -2
- package/dist/hosted/index.js +2 -2
- package/dist/{index-CyszSg4O.d.ts → index-B16FNdW5.d.ts} +145 -360
- package/dist/index-B16FNdW5.d.ts.map +1 -0
- package/dist/{index-DV-jSzxF.d.ts → index-BLGqZ81N.d.ts} +10 -15
- package/dist/{index-DV-jSzxF.d.ts.map → index-BLGqZ81N.d.ts.map} +1 -1
- package/dist/{index-BO41eGj5.d.ts → index-CX-GAUpw.d.ts} +3 -7
- package/dist/index-CX-GAUpw.d.ts.map +1 -0
- package/dist/{index-DHKEAv3s.d.ts → index-CalAsXMR.d.ts} +8 -68
- package/dist/index-CalAsXMR.d.ts.map +1 -0
- package/dist/{index-BFRO6chs.d.ts → index-CiRwLv2R.d.ts} +5 -69
- package/dist/index-CiRwLv2R.d.ts.map +1 -0
- package/dist/{index-DPcngtwt.d.ts → index-DbMOXYnP.d.ts} +11 -36
- package/dist/index-DbMOXYnP.d.ts.map +1 -0
- package/dist/index.d.ts +211 -218
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +999 -1714
- package/dist/index.js.map +1 -1
- package/dist/{integrity-dLiDe2kD.js → integrity-C8oUeB0g.js} +326 -203
- package/dist/integrity-C8oUeB0g.js.map +1 -0
- package/dist/{integrity-BXOsAb3i.js → integrity-W4CADcFc.js} +3 -7
- package/dist/{integrity-BXOsAb3i.js.map → integrity-W4CADcFc.js.map} +1 -1
- package/dist/{integrity-DAMEDFaC.d.ts → integrity-_qgZLA5p.d.ts} +4 -6
- package/dist/{integrity-DAMEDFaC.d.ts.map → integrity-_qgZLA5p.d.ts.map} +1 -1
- package/dist/{internal-Epl-YBZW.js → internal-BTK91Bqt.js} +3 -3
- package/dist/{internal-Epl-YBZW.js.map → internal-BTK91Bqt.js.map} +1 -1
- package/dist/{interval-CELpye1n.js → interval-Dq9gt7jx.js} +3 -3
- package/dist/{interval-CELpye1n.js.map → interval-Dq9gt7jx.js.map} +1 -1
- package/dist/{journal-DfRz9kps.js → journal-C7om8Gum.js} +157 -147
- package/dist/journal-C7om8Gum.js.map +1 -0
- package/dist/json-BhdsJaOQ.js +111 -0
- package/dist/json-BhdsJaOQ.js.map +1 -0
- package/dist/{judge-calibration-BpCy5XQl.js → judge-calibration-BkXMIWA4.js} +3 -3
- package/dist/{judge-calibration-BpCy5XQl.js.map → judge-calibration-BkXMIWA4.js.map} +1 -1
- package/dist/{judge-gate-iY9s4L44.js → judge-gate-Co5tuh57.js} +4 -27
- package/dist/{judge-gate-iY9s4L44.js.map → judge-gate-Co5tuh57.js.map} +1 -1
- package/dist/{judge-gate-CE7CQAgt.d.ts → judge-gate-DsL0yFcb.d.ts} +8 -9
- package/dist/judge-gate-DsL0yFcb.d.ts.map +1 -0
- package/dist/{kind-factory-BobI5Jy3.js → kind-factory-Gy4fXixd.js} +88 -17
- package/dist/kind-factory-Gy4fXixd.js.map +1 -0
- package/dist/ledger-core/index.d.ts +2 -2
- package/dist/ledger-core/index.js +4 -4
- 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-Gq7yp8lP.js → ledger-core-CAxUdDk0.js} +5 -84
- package/dist/ledger-core-CAxUdDk0.js.map +1 -0
- package/dist/{llm-client-CyBAoYiX.js → llm-client-_Y6ic-tf.js} +243 -355
- package/dist/llm-client-_Y6ic-tf.js.map +1 -0
- package/dist/{llm-judge-CG12SQJq.js → llm-judge-Djxh-Uhs.js} +662 -482
- package/dist/llm-judge-Djxh-Uhs.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 +3 -3
- package/dist/matrix/index.js +3 -2
- package/dist/{matrix-Dm0BQW7U.js → matrix-B8l-Nsxd.js} +3 -88
- package/dist/matrix-B8l-Nsxd.js.map +1 -0
- package/dist/{matrix-DSrSxjjy.d.ts → matrix-CCSBna4q.d.ts} +9 -18
- package/dist/matrix-CCSBna4q.d.ts.map +1 -0
- package/dist/{mean-DHoMiudD.js → mean-BbA_JCzW.js} +39 -5
- package/dist/mean-BbA_JCzW.js.map +1 -0
- package/dist/meta-eval/index.d.ts +5 -5
- package/dist/meta-eval/index.js +10 -10
- package/dist/metrics-BKaPBtIG.js.map +1 -1
- package/dist/{mint-DNU8QPG4.d.ts → mint-BRZXuwRi.d.ts} +4 -4
- package/dist/{mint-DNU8QPG4.d.ts.map → mint-BRZXuwRi.d.ts.map} +1 -1
- package/dist/{mint-QaD5cA0u.js → mint-CbdwjTPW.js} +4 -4
- package/dist/{mint-QaD5cA0u.js.map → mint-CbdwjTPW.js.map} +1 -1
- package/dist/{multi-layer-verifier-BUaQ4C17.d.ts → multi-layer-verifier-DEgMUk6v.d.ts} +2 -2
- package/dist/{multi-layer-verifier-BUaQ4C17.d.ts.map → multi-layer-verifier-DEgMUk6v.d.ts.map} +1 -1
- package/dist/{multiplicity-DQUFcbW4.js → multiplicity-Sg0U7h8j.js} +2 -2
- package/dist/{multiplicity-DQUFcbW4.js.map → multiplicity-Sg0U7h8j.js.map} +1 -1
- package/dist/multishot/golden/index.d.ts +1 -23
- package/dist/multishot/golden/index.d.ts.map +1 -1
- package/dist/multishot/golden/index.js +3 -3
- package/dist/multishot/golden/index.js.map +1 -1
- package/dist/multishot/index.d.ts +3 -12
- package/dist/multishot/index.d.ts.map +1 -1
- package/dist/multishot/index.js +4 -3
- package/dist/multishot/index.js.map +1 -1
- package/dist/openapi.json +114 -10
- package/dist/{otel-spans-B9tUXRHF.js → otel-spans-CdN909k1.js} +3 -3
- package/dist/{otel-spans-B9tUXRHF.js.map → otel-spans-CdN909k1.js.map} +1 -1
- package/dist/{paired-arms-CwMGJsrS.js → paired-arms-Ct4LTKc1.js} +32 -9
- package/dist/paired-arms-Ct4LTKc1.js.map +1 -0
- package/dist/{paired-binary-CvpFHfKZ.js → paired-binary-B_nejA44.js} +3 -36
- package/dist/paired-binary-B_nejA44.js.map +1 -0
- package/dist/{paired-promotion-decision-DPKz8ZnF.d.ts → paired-promotion-decision-CQMJ5xGN.d.ts} +2 -34
- package/dist/paired-promotion-decision-CQMJ5xGN.d.ts.map +1 -0
- package/dist/{paired-promotion-decision-DsAPYGCm.js → paired-promotion-decision-D0SHb-ZL.js} +3 -3
- package/dist/{paired-promotion-decision-DsAPYGCm.js.map → paired-promotion-decision-D0SHb-ZL.js.map} +1 -1
- package/dist/{pareto-Cm6ndrWN.js → pareto-CTv8vozZ.js} +11 -11
- package/dist/pareto-CTv8vozZ.js.map +1 -0
- package/dist/pipelines/index.d.ts +16 -19
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +4 -68
- package/dist/pipelines/index.js.map +1 -1
- package/dist/{power-and-mde-Hj2ubb4B.js → power-and-mde-N5nU4_Ly.js} +3 -3
- package/dist/{power-and-mde-Hj2ubb4B.js.map → power-and-mde-N5nU4_Ly.js.map} +1 -1
- package/dist/{prime-protocol-CHKgA3a6.js → prime-protocol-BFgGrEMP.js} +3 -3
- package/dist/prime-protocol-BFgGrEMP.js.map +1 -0
- package/dist/{prime-protocol-HiB9HX7E.d.ts → prime-protocol-BWG2DQIk.d.ts} +3 -21
- package/dist/prime-protocol-BWG2DQIk.d.ts.map +1 -0
- package/dist/profile-cell.d.ts +2 -2
- package/dist/profile-cell.js +2 -2
- package/dist/{promotion-gate-BawrdPYr.d.ts → promotion-gate-CxEHRsZW.d.ts} +7 -8
- package/dist/{promotion-gate-BawrdPYr.d.ts.map → promotion-gate-CxEHRsZW.d.ts.map} +1 -1
- package/dist/{promotion-policy-KO57gbyV.js → promotion-policy-6A8osGr_.js} +4 -4
- package/dist/{promotion-policy-KO57gbyV.js.map → promotion-policy-6A8osGr_.js.map} +1 -1
- package/dist/{proposal-findings-CY1xKn_a.js → proposal-findings-n-5WBbEx.js} +3 -3
- package/dist/proposal-findings-n-5WBbEx.js.map +1 -0
- package/dist/{query-BUCZCK7F.js → query-B_RZ36an.js} +5 -5
- package/dist/query-B_RZ36an.js.map +1 -0
- package/dist/{query-DK1nWcmp.d.ts → query-Cmv_U8vf.d.ts} +4 -24
- package/dist/{query-DK1nWcmp.d.ts.map → query-Cmv_U8vf.d.ts.map} +1 -1
- package/dist/{random-ByUSnV9w.js → random-DDDcC7YU.js} +2 -2
- package/dist/{random-ByUSnV9w.js.map → random-DDDcC7YU.js.map} +1 -1
- package/dist/{raw-provider-sink-DoHz4JNG.js → raw-provider-sink-75w4FWBj.js} +2 -2
- package/dist/{raw-provider-sink-DoHz4JNG.js.map → raw-provider-sink-75w4FWBj.js.map} +1 -1
- package/dist/{redact-mtCCcT8z.d.ts → redact-DXdlFb_U.d.ts} +2 -3
- package/dist/redact-DXdlFb_U.d.ts.map +1 -0
- package/dist/{redact-B5xXKqQ3.js → redact-mtkTiJVk.js} +2 -7
- package/dist/{redact-B5xXKqQ3.js.map → redact-mtkTiJVk.js.map} +1 -1
- package/dist/{registry-D7_hm2fK.d.ts → registry-ssNoHzwD.d.ts} +4 -4
- package/dist/{registry-D7_hm2fK.d.ts.map → registry-ssNoHzwD.d.ts.map} +1 -1
- package/dist/{release-confidence-CpuP65S5.js → release-confidence-CYIFH-fp.js} +6 -11
- package/dist/release-confidence-CYIFH-fp.js.map +1 -0
- package/dist/{report-command-SC9nqb4M.js → render-Cs34y0iX.js} +625 -587
- package/dist/render-Cs34y0iX.js.map +1 -0
- package/dist/reporting.d.ts +6 -6
- package/dist/reporting.js +8 -8
- package/dist/{researcher-CEcfku-T.d.ts → researcher-GU1tV4dn.d.ts} +9 -9
- package/dist/{researcher-CEcfku-T.d.ts.map → researcher-GU1tV4dn.d.ts.map} +1 -1
- package/dist/{reward-CpCmAM8L.d.ts → reward-DrZ71vnf.d.ts} +3 -26
- package/dist/reward-DrZ71vnf.d.ts.map +1 -0
- package/dist/{reward-hacking-E0d-WVcP.js → reward-hacking-ByuETaIb.js} +3 -3
- package/dist/{reward-hacking-E0d-WVcP.js.map → reward-hacking-ByuETaIb.js.map} +1 -1
- package/dist/{reward-hacking-RVdZ6Kkt.d.ts → reward-hacking-E52wq86n.d.ts} +5 -18
- package/dist/reward-hacking-E52wq86n.d.ts.map +1 -0
- package/dist/reward-nw2xZGZG.js.map +1 -1
- package/dist/rl.d.ts +117 -295
- package/dist/rl.d.ts.map +1 -1
- package/dist/rl.js +27 -747
- package/dist/rl.js.map +1 -1
- package/dist/rollout/index.d.ts +5 -5
- package/dist/rollout/index.js +7 -8
- package/dist/{rollout-DZV1t2Wg.js → rollout-Dd1ucT_M.js} +88 -13
- package/dist/rollout-Dd1ucT_M.js.map +1 -0
- package/dist/{rubric-predictive-validity-DaFW70y9.js → rubric-predictive-validity-D3_oI72N.js} +3 -3
- package/dist/{rubric-predictive-validity-DaFW70y9.js.map → rubric-predictive-validity-D3_oI72N.js.map} +1 -1
- package/dist/{rubric-predictive-validity-C03EC7ZE.d.ts → rubric-predictive-validity-DiwT8PbL.d.ts} +2 -2
- package/dist/{rubric-predictive-validity-C03EC7ZE.d.ts.map → rubric-predictive-validity-DiwT8PbL.d.ts.map} +1 -1
- package/dist/{run-record-C1E24G2A.d.ts → run-record-CaxbLq6Y.d.ts} +4 -10
- package/dist/run-record-CaxbLq6Y.d.ts.map +1 -0
- package/dist/{run-record-C5e7FjhJ.js → run-record-CysKLB93.js} +3 -3
- package/dist/run-record-CysKLB93.js.map +1 -0
- package/dist/{run-record-Boc5IUTp.js → run-record-DhEJgoPz.js} +4 -4
- package/dist/{run-record-Boc5IUTp.js.map → run-record-DhEJgoPz.js.map} +1 -1
- package/dist/sandbox-harness-BlSOu4LX.d.ts.map +1 -1
- package/dist/{schema-CSf6qWgZ.js → schema-Bt2vLFm3.js} +2 -14
- package/dist/schema-Bt2vLFm3.js.map +1 -0
- package/dist/schema-C-ziyJD7.d.ts.map +1 -1
- package/dist/{schema-BuiujZ-g.js → schema-CvhfLjtZ.js} +78 -48
- package/dist/schema-CvhfLjtZ.js.map +1 -0
- package/dist/{schema-2g7trUwH.d.ts → schema-D6EVKzTB.d.ts} +4 -5
- package/dist/schema-D6EVKzTB.d.ts.map +1 -0
- package/dist/search/index.d.ts +3 -31
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +4 -4
- package/dist/{search-kernel-DyNEa6IU.d.ts → search-kernel-p9JB3SmL.d.ts} +10 -27
- package/dist/search-kernel-p9JB3SmL.d.ts.map +1 -0
- package/dist/{search-ledger-CVUGLDZp.js → search-ledger-ClpN4I3e.js} +7 -7
- package/dist/{search-ledger-CVUGLDZp.js.map → search-ledger-ClpN4I3e.js.map} +1 -1
- package/dist/{search-ledger-file-DDQUgvCg.js → search-ledger-file-Bd5Tioq6.js} +4 -4
- package/dist/search-ledger-file-Bd5Tioq6.js.map +1 -0
- package/dist/{search-shipper-BOSD46qv.js → search-shipper-Bg2HW3Uv.js} +4 -4
- package/dist/search-shipper-Bg2HW3Uv.js.map +1 -0
- package/dist/{search-summary-BQCSWf1g.js → search-summary-CrBuvVnf.js} +5 -5
- package/dist/{search-summary-BQCSWf1g.js.map → search-summary-CrBuvVnf.js.map} +1 -1
- package/dist/{sequential-CzK5DarL.js → sequential-BVv1sjsw.js} +2 -32
- package/dist/{sequential-CzK5DarL.js.map → sequential-BVv1sjsw.js.map} +1 -1
- package/dist/{sequential-Bf_pbE50.js → sequential-CimQrbjv.js} +5 -5
- package/dist/sequential-CimQrbjv.js.map +1 -0
- package/dist/{sequential-BhsrMupG.d.ts → sequential-KwGspfeR.d.ts} +2 -9
- package/dist/{sequential-BhsrMupG.d.ts.map → sequential-KwGspfeR.d.ts.map} +1 -1
- package/dist/{sequential-eprocess-DM_qENCl.js → sequential-eprocess-DodI6RoF.js} +2 -2
- package/dist/{sequential-eprocess-DM_qENCl.js.map → sequential-eprocess-DodI6RoF.js.map} +1 -1
- package/dist/{server-e9oWO_bN.js → server-C6M0qR8h.js} +101 -101
- package/dist/server-C6M0qR8h.js.map +1 -0
- package/dist/{single-run-lock-CV9Eyd_q.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-BiwA8nfX.js → skillopt-optimization-method-5dlex7MJ.js} +1386 -1184
- package/dist/skillopt-optimization-method-5dlex7MJ.js.map +1 -0
- package/dist/{spans-BHAUXMGN.d.ts → spans-CVngGij3.d.ts} +2 -2
- package/dist/{spans-BHAUXMGN.d.ts.map → spans-CVngGij3.d.ts.map} +1 -1
- package/dist/{statistical-heldout-CYpGaoDH.d.ts → statistical-heldout-BHfLZHrm.d.ts} +8 -67
- package/dist/statistical-heldout-BHfLZHrm.d.ts.map +1 -0
- package/dist/{statistical-heldout-42NlCNDe.js → statistical-heldout-Bksv92Th.js} +3 -3
- package/dist/statistical-heldout-Bksv92Th.js.map +1 -0
- package/dist/{steps-Bg5-KVx1.d.ts → steps-DlepJPwD.d.ts} +2 -56
- package/dist/steps-DlepJPwD.d.ts.map +1 -0
- package/dist/{store-C4avFjIi.d.ts → store-B3nWRy3B.d.ts} +2 -2
- package/dist/{store-C4avFjIi.d.ts.map → store-B3nWRy3B.d.ts.map} +1 -1
- package/dist/{store-otlp-DJ9dtA5x.js → store-otlp-BteDAbHK.js} +3 -3
- package/dist/{store-otlp-DJ9dtA5x.js.map → store-otlp-BteDAbHK.js.map} +1 -1
- package/dist/{store-tool-spans-CIX5arAG.js → store-tool-spans-D5l_OfTJ.js} +8 -8
- package/dist/store-tool-spans-D5l_OfTJ.js.map +1 -0
- package/dist/{store-tool-spans-DdCSPa7C.d.ts → store-tool-spans-DZS0HWVf.d.ts} +9 -18
- package/dist/store-tool-spans-DZS0HWVf.d.ts.map +1 -0
- package/dist/storyboard/index.d.ts +4 -11
- package/dist/storyboard/index.d.ts.map +1 -1
- package/dist/storyboard/index.js +1 -16
- package/dist/storyboard/index.js.map +1 -1
- package/dist/{summary-report-V_JACR4Y.js → summary-report-BsXJoYX5.js} +88 -10
- package/dist/summary-report-BsXJoYX5.js.map +1 -0
- package/dist/{summary-report-bdFDXq0b.d.ts → summary-report-CkbRcSuu.d.ts} +25 -19
- package/dist/summary-report-CkbRcSuu.d.ts.map +1 -0
- package/dist/supervisor-run/index.d.ts +60 -28
- package/dist/supervisor-run/index.d.ts.map +1 -1
- package/dist/supervisor-run/index.js +4 -458
- package/dist/supervisor-run/index.js.map +1 -1
- package/dist/{systemone-BomhHr2c.d.ts → systemone-BMzDJb1i.d.ts} +5 -5
- package/dist/{systemone-BomhHr2c.d.ts.map → systemone-BMzDJb1i.d.ts.map} +1 -1
- package/dist/systemone-protocol.js +1 -1
- package/dist/{systemone-review-CUVcQJu6.d.ts → systemone-review-CwE6JGIp.d.ts} +2 -2
- package/dist/{systemone-review-CUVcQJu6.d.ts.map → systemone-review-CwE6JGIp.d.ts.map} +1 -1
- package/dist/{systemone-review-D7sXwsqq.js → systemone-review-DzdOJ8I6.js} +3 -3
- package/dist/{systemone-review-D7sXwsqq.js.map → systemone-review-DzdOJ8I6.js.map} +1 -1
- package/dist/systemone.d.ts +5 -5
- package/dist/systemone.js +5 -5
- package/dist/systemone.js.map +1 -1
- package/dist/{task-failure-attributes-hEmASjix.js → task-failure-attributes-BMsblaDh.js} +3 -3
- package/dist/task-failure-attributes-BMsblaDh.js.map +1 -0
- package/dist/{terminal-record-DZyQZ3pz.js → terminal-record-D4Rv-j1W.js} +244 -196
- package/dist/terminal-record-D4Rv-j1W.js.map +1 -0
- package/dist/{tool-groups-C3NEcdCM.d.ts → tool-groups-DyNz2JZ_.d.ts} +3 -3
- package/dist/tool-groups-DyNz2JZ_.d.ts.map +1 -0
- package/dist/{tool-waste-BKgvd-TP.d.ts → tool-waste-CkjzWmeY.d.ts} +25 -28
- package/dist/tool-waste-CkjzWmeY.d.ts.map +1 -0
- package/dist/{tool-waste-BlesqTqW.js → tool-waste-DLsjS_p-.js} +5 -5
- package/dist/{tool-waste-BlesqTqW.js.map → tool-waste-DLsjS_p-.js.map} +1 -1
- package/dist/{trace-questions-CM2CAocU.d.ts → trace-questions-xxwgsuMi.d.ts} +4 -9
- package/dist/{trace-questions-CM2CAocU.d.ts.map → trace-questions-xxwgsuMi.d.ts.map} +1 -1
- package/dist/trace-repair/index.d.ts +14 -211
- package/dist/trace-repair/index.d.ts.map +1 -1
- package/dist/trace-repair/index.js +865 -981
- package/dist/trace-repair/index.js.map +1 -1
- package/dist/traces.d.ts +18 -46
- package/dist/traces.d.ts.map +1 -1
- package/dist/traces.js +13 -13
- package/dist/traces.js.map +1 -1
- package/dist/trajectory-replay/index.d.ts +7 -118
- package/dist/trajectory-replay/index.d.ts.map +1 -1
- package/dist/trajectory-replay/index.js +921 -869
- package/dist/trajectory-replay/index.js.map +1 -1
- package/dist/{tree-C1XYeXvy.js → tree-B5e1uAeL.js} +132 -21
- package/dist/tree-B5e1uAeL.js.map +1 -0
- package/dist/{types-Cbe2fWBa.d.ts → types-BKCzzmit.d.ts} +3 -3
- package/dist/{types-Cbe2fWBa.d.ts.map → types-BKCzzmit.d.ts.map} +1 -1
- package/dist/{types-B3jzCp0p.js → types-BXgASBCL.js} +2 -2
- package/dist/{types-B3jzCp0p.js.map → types-BXgASBCL.js.map} +1 -1
- package/dist/{types-C1tnkEgM.d.ts → types-CW8ewATZ.d.ts} +4 -113
- package/dist/types-CW8ewATZ.d.ts.map +1 -0
- package/dist/{types-BqkVmHfv.d.ts → types-CmXY0PQf.d.ts} +2 -4
- package/dist/types-CmXY0PQf.d.ts.map +1 -0
- package/dist/{types-C02qtnG8.d.ts → types-D-mgRzlh.d.ts} +7 -28
- package/dist/types-D-mgRzlh.d.ts.map +1 -0
- package/dist/{types-IXD2HJzu.js → types-DqFMNTgK.js} +2 -4
- package/dist/types-DqFMNTgK.js.map +1 -0
- package/dist/{types-Cq8mSbq8.d.ts → types-DtkO1G9L.d.ts} +7 -9
- package/dist/{types-Cq8mSbq8.d.ts.map → types-DtkO1G9L.d.ts.map} +1 -1
- package/dist/{verdict-Dl0tiT1X.js → verdict-BGQmxQ8A.js} +3 -3
- package/dist/verdict-BGQmxQ8A.js.map +1 -0
- package/dist/{verdict-E4eRNf7-.d.ts → verdict-C24NELtN.d.ts} +2 -15
- package/dist/{verdict-E4eRNf7-.d.ts.map → verdict-C24NELtN.d.ts.map} +1 -1
- package/dist/{verdict-cache-Bm8EKL2s.js → verdict-cache-CL_7tePD.js} +2 -2
- package/dist/verdict-cache-CL_7tePD.js.map +1 -0
- package/dist/wire/index.d.ts +31 -410
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +2 -2
- package/docs/changes/jev-evidence-review.md +1 -1
- package/docs/changes/jev-product-adoption.md +1 -1
- package/docs/changes/jev-recorded-evidence.md +1 -1
- package/docs/design/statistics-decisions.md +18 -18
- package/docs/design.md +1 -1
- package/docs/eval-surface-map.md +1 -0
- package/docs/evaluation-integrity.md +1 -1
- package/docs/profile-json-identity.md +1 -2
- package/docs/proofs/campaign-attempt-retention-20261001/README.md +2 -2
- package/docs/public-api.md +158 -538
- package/docs/rollout.md +1 -1
- package/docs/trace-repair-admission.md +1 -1
- package/docs/wire-protocol.md +1 -1
- package/package.json +7 -2
- package/dist/active-curriculum-B_Lc9kfO.js +0 -61
- package/dist/active-curriculum-B_Lc9kfO.js.map +0 -1
- package/dist/agent-profile-VFcQncbW.d.ts.map +0 -1
- package/dist/agent-profile-cell-BK8mlqlq.js.map +0 -1
- package/dist/agent-profile-cell-BNp-Js9F.d.ts.map +0 -1
- package/dist/agreement-irr-BEWLIF3_.js.map +0 -1
- package/dist/analyze-runs-C84irm4i.js.map +0 -1
- package/dist/baseline-Udi_PLuT.js +0 -259
- package/dist/baseline-Udi_PLuT.js.map +0 -1
- package/dist/benchmark-CXmVVHH2.js +0 -562
- package/dist/benchmark-CXmVVHH2.js.map +0 -1
- package/dist/benchmark-command-By0vh8q7.js.map +0 -1
- package/dist/campaign-BudZ70zo.js.map +0 -1
- package/dist/chat-json-call-puMArmtW.js.map +0 -1
- package/dist/claude-jsonl-dZir12m6.js +0 -86
- package/dist/claude-jsonl-dZir12m6.js.map +0 -1
- package/dist/client-BzL9niqi.d.ts.map +0 -1
- package/dist/cost-ledger-BP8V4kUQ.js.map +0 -1
- package/dist/counterfactual-CPaWN99-.d.ts +0 -60
- package/dist/counterfactual-CPaWN99-.d.ts.map +0 -1
- package/dist/counterfactual-Dn3veueY.js +0 -98
- package/dist/counterfactual-Dn3veueY.js.map +0 -1
- package/dist/default-registry-COhk9g36.js.map +0 -1
- package/dist/default-registry-DzHiGruW.d.ts.map +0 -1
- package/dist/define-agent-eval-CNTPzIkp.js.map +0 -1
- package/dist/define-agent-eval-WSck0CZJ.d.ts.map +0 -1
- package/dist/dspy-rlm-engine-LRCu61m5.js.map +0 -1
- package/dist/effect-sizes-BhzEpXMc.js +0 -82
- package/dist/effect-sizes-BhzEpXMc.js.map +0 -1
- package/dist/emitter-HcCmFQl_.d.ts.map +0 -1
- package/dist/engine-3A_4jOlI.d.ts.map +0 -1
- package/dist/equal-terms-BtdXayCJ.js.map +0 -1
- package/dist/eval-campaign-90jeaCAI.js +0 -343
- package/dist/eval-campaign-90jeaCAI.js.map +0 -1
- package/dist/evaluation-6Yoi74gM.d.ts.map +0 -1
- package/dist/exporters-X4xwla8A.js.map +0 -1
- package/dist/external-optimizer-process-BjMGUuds.js.map +0 -1
- package/dist/external-optimizer-subprocess-BqW0hHcI.js.map +0 -1
- package/dist/failure-cluster-CbgEDcFJ.d.ts.map +0 -1
- package/dist/feedback-trajectory-C4EG0nNH.d.ts.map +0 -1
- package/dist/hf-dataset-BR2yhuNn.js.map +0 -1
- package/dist/index-BFRO6chs.d.ts.map +0 -1
- package/dist/index-BO41eGj5.d.ts.map +0 -1
- package/dist/index-CyszSg4O.d.ts.map +0 -1
- package/dist/index-DHKEAv3s.d.ts.map +0 -1
- package/dist/index-DPcngtwt.d.ts.map +0 -1
- package/dist/integrity-dLiDe2kD.js.map +0 -1
- package/dist/journal-DfRz9kps.js.map +0 -1
- package/dist/judge-gate-CE7CQAgt.d.ts.map +0 -1
- package/dist/kind-factory-BobI5Jy3.js.map +0 -1
- package/dist/ledger-core-Gq7yp8lP.js.map +0 -1
- package/dist/llm-client-CyBAoYiX.js.map +0 -1
- package/dist/llm-judge-CG12SQJq.js.map +0 -1
- package/dist/matrix-DSrSxjjy.d.ts.map +0 -1
- package/dist/matrix-Dm0BQW7U.js.map +0 -1
- package/dist/mean-DHoMiudD.js.map +0 -1
- package/dist/normal-DsJZtrJc.js +0 -25
- package/dist/normal-DsJZtrJc.js.map +0 -1
- package/dist/paired-arms-CwMGJsrS.js.map +0 -1
- package/dist/paired-binary-CvpFHfKZ.js.map +0 -1
- package/dist/paired-promotion-decision-DPKz8ZnF.d.ts.map +0 -1
- package/dist/pareto-Cm6ndrWN.js.map +0 -1
- package/dist/prime-protocol-CHKgA3a6.js.map +0 -1
- package/dist/prime-protocol-HiB9HX7E.d.ts.map +0 -1
- package/dist/produced-state-BsDmnwxc.js.map +0 -1
- package/dist/proposal-findings-CY1xKn_a.js.map +0 -1
- package/dist/query-BUCZCK7F.js.map +0 -1
- package/dist/redact-mtCCcT8z.d.ts.map +0 -1
- package/dist/release-confidence-CpuP65S5.js.map +0 -1
- package/dist/report-command-SC9nqb4M.js.map +0 -1
- package/dist/reward-CpCmAM8L.d.ts.map +0 -1
- package/dist/reward-hacking-RVdZ6Kkt.d.ts.map +0 -1
- package/dist/rollout-DZV1t2Wg.js.map +0 -1
- package/dist/run-record-C1E24G2A.d.ts.map +0 -1
- package/dist/run-record-C5e7FjhJ.js.map +0 -1
- package/dist/schema-2g7trUwH.d.ts.map +0 -1
- package/dist/schema-BuiujZ-g.js.map +0 -1
- package/dist/schema-CSf6qWgZ.js.map +0 -1
- package/dist/search-kernel-DyNEa6IU.d.ts.map +0 -1
- package/dist/search-ledger-file-DDQUgvCg.js.map +0 -1
- package/dist/search-shipper-BOSD46qv.js.map +0 -1
- package/dist/semantic-concept-judge-BQF8te0T.js.map +0 -1
- package/dist/sequential-Bf_pbE50.js.map +0 -1
- package/dist/server-e9oWO_bN.js.map +0 -1
- package/dist/single-run-lock-CV9Eyd_q.js.map +0 -1
- package/dist/skillopt-optimization-method-BiwA8nfX.js.map +0 -1
- package/dist/statistical-heldout-42NlCNDe.js.map +0 -1
- package/dist/statistical-heldout-CYpGaoDH.d.ts.map +0 -1
- package/dist/steps-Bg5-KVx1.d.ts.map +0 -1
- package/dist/store-tool-spans-CIX5arAG.js.map +0 -1
- package/dist/store-tool-spans-DdCSPa7C.d.ts.map +0 -1
- package/dist/student-t-DVPW7CdL.js +0 -39
- package/dist/student-t-DVPW7CdL.js.map +0 -1
- package/dist/summary-report-V_JACR4Y.js.map +0 -1
- package/dist/summary-report-bdFDXq0b.d.ts.map +0 -1
- package/dist/task-failure-attributes-hEmASjix.js.map +0 -1
- package/dist/terminal-record-DZyQZ3pz.js.map +0 -1
- package/dist/tool-groups-C3NEcdCM.d.ts.map +0 -1
- package/dist/tool-waste-BKgvd-TP.d.ts.map +0 -1
- package/dist/trajectory-Y1fmdlw7.d.ts +0 -24
- package/dist/trajectory-Y1fmdlw7.d.ts.map +0 -1
- package/dist/tree-C1XYeXvy.js.map +0 -1
- package/dist/types-BqkVmHfv.d.ts.map +0 -1
- package/dist/types-C02qtnG8.d.ts.map +0 -1
- package/dist/types-C1tnkEgM.d.ts.map +0 -1
- package/dist/types-IXD2HJzu.js.map +0 -1
- package/dist/usage-receipt-Cx3xNeyB.js +0 -76
- package/dist/usage-receipt-Cx3xNeyB.js.map +0 -1
- package/dist/verdict-Dl0tiT1X.js.map +0 -1
- package/dist/verdict-cache-Bm8EKL2s.js.map +0 -1
- package/docs/design/self-improvement-evidence-audit.md +0 -263
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { a as hashCanonical, r as canonicalString } from "./canonical-
|
|
1
|
+
import { a as hashCanonical, r as canonicalString } from "./canonical-Dq2hOQ8L.js";
|
|
2
2
|
import { t as deepFreezeCanonicalJson } from "./deep-freeze-CurcOQg3.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { i as makeFinding } from "./types-DqFMNTgK.js";
|
|
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";
|
|
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 {
|
|
8
|
+
import { _ as combineAbortSignals } from "./llm-client-_Y6ic-tf.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
|
|
@@ -483,9 +483,6 @@ function canonicalTimestamp(value, name) {
|
|
|
483
483
|
function isAnalystReviewSource(value) {
|
|
484
484
|
return value === "user" || value === "judge" || value === "environment" || value === "metric" || value === "policy";
|
|
485
485
|
}
|
|
486
|
-
function isRecord(value) {
|
|
487
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
488
|
-
}
|
|
489
486
|
//#endregion
|
|
490
487
|
//#region src/trace-analyst/behavioral-metrics.ts
|
|
491
488
|
/**
|
|
@@ -1857,306 +1854,338 @@ var ExactAnalystRunExecutionError = class extends Error {
|
|
|
1857
1854
|
this.result = snapshot;
|
|
1858
1855
|
}
|
|
1859
1856
|
};
|
|
1860
|
-
|
|
1857
|
+
function startPlanRun(plan) {
|
|
1861
1858
|
const exact = plan.executionSnapshot !== void 0;
|
|
1862
1859
|
if (exact && plan.signal?.aborted) throw abortReason(plan.signal);
|
|
1863
|
-
const correlationId = `ar_${randomUUID().slice(0, 12)}`;
|
|
1864
|
-
const log = plan.log;
|
|
1865
|
-
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1866
1860
|
const started = Date.now();
|
|
1867
1861
|
const timeoutSignal = plan.totalTimeoutMs === null ? void 0 : AbortSignal.timeout(plan.totalTimeoutMs);
|
|
1868
|
-
const runSignal = combineAbortSignals(plan.signal ?? void 0, timeoutSignal);
|
|
1869
|
-
const deadlineMs = plan.totalTimeoutMs === null ? void 0 : started + plan.totalTimeoutMs;
|
|
1870
1862
|
const runnable = plan.prepared.filter((candidate) => candidate.input.kind === "present").map((candidate) => candidate.analyst);
|
|
1871
|
-
let remainingUsd = plan.budget.kind === "dynamic" ? plan.budget.policy.totalUsd : void 0;
|
|
1872
1863
|
const weights = plan.budget.kind === "dynamic" ? plan.budget.policy.weights : void 0;
|
|
1873
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;
|
|
1874
1865
|
if (totalWeight === 0) throw new Error("BudgetPolicy.weights must allocate positive weight to a runnable analyst");
|
|
1875
|
-
|
|
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);
|
|
1876
1883
|
yield snapshotExecutionEvent({
|
|
1877
1884
|
type: "run-started",
|
|
1878
1885
|
run_id: plan.runId,
|
|
1879
|
-
correlation_id: correlationId,
|
|
1880
|
-
started_at: startedAt,
|
|
1886
|
+
correlation_id: st.correlationId,
|
|
1887
|
+
started_at: st.startedAt,
|
|
1881
1888
|
analyst_ids: plan.prepared.map(({ analyst }) => analyst.id),
|
|
1882
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
|
|
1883
1910
|
}, exact);
|
|
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
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
reason: `missing input of kind '${analyst.inputKind}'`,
|
|
1914
|
-
findings_count: 0,
|
|
1915
|
-
latency_ms: 0,
|
|
1916
|
-
usage: zeroUsage()
|
|
1917
|
-
};
|
|
1918
|
-
const execution = {
|
|
1919
|
-
summary,
|
|
1920
|
-
findings: [],
|
|
1921
|
-
budgetDebitUsd: 0
|
|
1922
|
-
};
|
|
1923
|
-
executions.push(execution);
|
|
1924
|
-
log(`[analyst] skip ${analyst.id} — missing input`, {
|
|
1925
|
-
runId: plan.runId,
|
|
1926
|
-
kind: analyst.inputKind
|
|
1927
|
-
});
|
|
1928
|
-
const hookValues = snapshotAfterHookValues(summary, [], exact);
|
|
1929
|
-
try {
|
|
1930
|
-
await waitForHook(plan.hooks.onAfterAnalyze ? () => plan.hooks.onAfterAnalyze?.({
|
|
1931
|
-
analyst,
|
|
1932
|
-
summary: hookValues.summary,
|
|
1933
|
-
findings: hookValues.findings,
|
|
1934
|
-
runId: plan.runId
|
|
1935
|
-
}) : void 0, runSignal);
|
|
1936
|
-
} catch (error) {
|
|
1937
|
-
if (!exact) throw error;
|
|
1938
|
-
executionFailure = error;
|
|
1939
|
-
}
|
|
1940
|
-
yield snapshotExecutionEvent({
|
|
1941
|
-
type: "analyst-skipped",
|
|
1942
|
-
summary
|
|
1943
|
-
}, exact);
|
|
1944
|
-
if (executionFailure !== void 0) break;
|
|
1945
|
-
continue;
|
|
1946
|
-
}
|
|
1947
|
-
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?.({
|
|
1948
1940
|
analyst,
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
}) :
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
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}`, {
|
|
1959
1979
|
runId: plan.runId,
|
|
1960
|
-
correlationId,
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
}),
|
|
1972
|
-
signal: runSignal,
|
|
1973
|
-
priorFindings,
|
|
1974
|
-
upstreamFindings: chainedFindings,
|
|
1975
|
-
recordUsage: (receipt) => {
|
|
1976
|
-
if (!exact) {
|
|
1977
|
-
assertValidAnalystUsageReceipt(receipt);
|
|
1978
|
-
usageReceipts.push(receipt);
|
|
1979
|
-
return;
|
|
1980
|
-
}
|
|
1981
|
-
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;
|
|
1982
1991
|
}
|
|
1983
|
-
|
|
1984
|
-
if (exact) {
|
|
1985
|
-
if (contextTags) deepFreezeCanonicalJson(contextTags);
|
|
1986
|
-
if (priorFindings) deepFreezeCanonicalJson(priorFindings);
|
|
1987
|
-
if (chainedFindings) deepFreezeCanonicalJson(chainedFindings);
|
|
1988
|
-
Object.freeze(ctx);
|
|
1992
|
+
usageReceipts.push(snapshotUsageReceiptOnce(receipt, `AnalystRegistry.runExact analyst "${analyst.id}" usage`));
|
|
1989
1993
|
}
|
|
1990
|
-
|
|
1991
|
-
|
|
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?.({
|
|
1992
2022
|
analyst,
|
|
1993
|
-
|
|
2023
|
+
error: cause,
|
|
1994
2024
|
runId: plan.runId
|
|
1995
|
-
}) : void 0,
|
|
2025
|
+
}) : void 0, executionSignal) ?? [], exact, `AnalystRegistry.runExact analyst "${analyst.id}" onError findings`);
|
|
1996
2026
|
} catch (error) {
|
|
1997
|
-
|
|
1998
|
-
executionFailure = error;
|
|
1999
|
-
break;
|
|
2000
|
-
}
|
|
2001
|
-
if (runSignal?.aborted) {
|
|
2002
|
-
const summary = abortedBeforeStartSummary(analyst, runSignal, Date.now() - t0);
|
|
2003
|
-
executions.push({
|
|
2004
|
-
summary,
|
|
2005
|
-
findings: [],
|
|
2006
|
-
budgetDebitUsd: 0
|
|
2007
|
-
});
|
|
2008
|
-
yield snapshotExecutionEvent({
|
|
2009
|
-
type: "analyst-skipped",
|
|
2010
|
-
summary
|
|
2011
|
-
}, exact);
|
|
2012
|
-
if (exact) {
|
|
2013
|
-
executionFailure = abortReason(runSignal);
|
|
2014
|
-
break;
|
|
2015
|
-
}
|
|
2016
|
-
continue;
|
|
2017
|
-
}
|
|
2018
|
-
let effectiveBudget;
|
|
2019
|
-
try {
|
|
2020
|
-
effectiveBudget = validateEffectiveBudget(ctx.budgetUsd, budgetCeilingUsd, analyst.id);
|
|
2021
|
-
} catch (error) {
|
|
2022
|
-
if (!exact) throw error;
|
|
2023
|
-
executionFailure = error;
|
|
2024
|
-
break;
|
|
2027
|
+
lifecycleFailure = error;
|
|
2025
2028
|
}
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
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 = {
|
|
2030
2043
|
analyst_id: analyst.id,
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
let summary;
|
|
2035
|
-
let lifecycleFailure;
|
|
2036
|
-
let analysisFailure;
|
|
2037
|
-
try {
|
|
2038
|
-
if (runSignal?.aborted) throw abortReason(runSignal);
|
|
2039
|
-
findings = snapshotExecutionFindings(await waitForOperation(analyst.analyze(input.value, analystContext), executionSignal, analystAbortGraceMs(analyst)), exact, `AnalystRegistry.runExact analyst "${analyst.id}" findings`);
|
|
2040
|
-
} catch (error) {
|
|
2041
|
-
const cause = error instanceof Error ? error : new Error(String(error));
|
|
2042
|
-
analysisFailure = cause;
|
|
2043
|
-
let hookFindings = [];
|
|
2044
|
-
if (!executionSignal?.aborted) try {
|
|
2045
|
-
hookFindings = snapshotExecutionFindings(await waitForHook(plan.hooks.onError ? () => plan.hooks.onError?.({
|
|
2046
|
-
analyst,
|
|
2047
|
-
error: cause,
|
|
2048
|
-
runId: plan.runId
|
|
2049
|
-
}) : void 0, executionSignal) ?? [], exact, `AnalystRegistry.runExact analyst "${analyst.id}" onError findings`);
|
|
2050
|
-
} catch (error) {
|
|
2051
|
-
lifecycleFailure = error;
|
|
2052
|
-
}
|
|
2053
|
-
findings = hookFindings;
|
|
2054
|
-
}
|
|
2055
|
-
let usage;
|
|
2056
|
-
try {
|
|
2057
|
-
usage = resolveUsage(analyst, usageReceipts, exact);
|
|
2058
|
-
} catch (error) {
|
|
2059
|
-
if (!exact) throw error;
|
|
2060
|
-
executionFailure = error;
|
|
2061
|
-
break;
|
|
2062
|
-
}
|
|
2063
|
-
if (analysisFailure === void 0) {
|
|
2064
|
-
summary = {
|
|
2065
|
-
analyst_id: analyst.id,
|
|
2066
|
-
status: "ok",
|
|
2067
|
-
findings_count: findings.length,
|
|
2068
|
-
latency_ms: Date.now() - t0,
|
|
2069
|
-
usage,
|
|
2070
|
-
...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {}
|
|
2071
|
-
};
|
|
2072
|
-
log(`[analyst] ok ${analyst.id}`, {
|
|
2073
|
-
runId: plan.runId,
|
|
2074
|
-
findings: findings.length,
|
|
2075
|
-
latency_ms: summary.latency_ms,
|
|
2076
|
-
cost_usd: knownCostUsd(usage),
|
|
2077
|
-
cost_kind: usage.cost.kind,
|
|
2078
|
-
input_tokens: usage.tokens?.input ?? null,
|
|
2079
|
-
output_tokens: usage.tokens?.output ?? null
|
|
2080
|
-
});
|
|
2081
|
-
} else {
|
|
2082
|
-
const errorClass = analysisFailure.constructor.name || "Error";
|
|
2083
|
-
const errorMessage = exact && analysisFailure.message.length === 0 ? "Analyst failed without an error message" : analysisFailure.message;
|
|
2084
|
-
summary = {
|
|
2085
|
-
analyst_id: analyst.id,
|
|
2086
|
-
status: "failed",
|
|
2087
|
-
findings_count: findings.length,
|
|
2088
|
-
latency_ms: Date.now() - t0,
|
|
2089
|
-
usage,
|
|
2090
|
-
...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {},
|
|
2091
|
-
error: {
|
|
2092
|
-
class: errorClass,
|
|
2093
|
-
message: errorMessage
|
|
2094
|
-
}
|
|
2095
|
-
};
|
|
2096
|
-
log(`[analyst] FAIL ${analyst.id}`, {
|
|
2097
|
-
runId: plan.runId,
|
|
2098
|
-
error_class: errorClass,
|
|
2099
|
-
error: errorMessage,
|
|
2100
|
-
cost_usd: knownCostUsd(usage),
|
|
2101
|
-
cost_kind: usage.cost.kind
|
|
2102
|
-
});
|
|
2103
|
-
}
|
|
2104
|
-
logUncapturedBudgetWarning({
|
|
2105
|
-
analyst,
|
|
2106
|
-
runId: plan.runId,
|
|
2107
|
-
budgetUsd: effectiveBudget,
|
|
2044
|
+
status: "ok",
|
|
2045
|
+
findings_count: findings.length,
|
|
2046
|
+
latency_ms: Date.now() - t0,
|
|
2108
2047
|
usage,
|
|
2109
|
-
|
|
2110
|
-
});
|
|
2111
|
-
const execution = {
|
|
2112
|
-
summary,
|
|
2113
|
-
findings,
|
|
2114
|
-
budgetDebitUsd: budgetDebit(summary.usage, effectiveBudget)
|
|
2048
|
+
...exact ? { allocated_budget_usd: effectiveBudget ?? null } : {}
|
|
2115
2049
|
};
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
if (!exact) throw error;
|
|
2140
|
-
executionFailure = error;
|
|
2141
|
-
break;
|
|
2142
|
-
}
|
|
2143
|
-
yield snapshotExecutionEvent({
|
|
2144
|
-
type: "analyst-completed",
|
|
2145
|
-
summary,
|
|
2146
|
-
findings
|
|
2147
|
-
}, exact);
|
|
2148
|
-
if (exact && runSignal?.aborted) {
|
|
2149
|
-
executionFailure = abortReason(runSignal);
|
|
2150
|
-
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
|
|
2151
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";
|
|
2152
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;
|
|
2153
2182
|
const summaries = executions.map(({ summary }) => summary);
|
|
2154
2183
|
const findings = executions.flatMap((execution) => execution.findings);
|
|
2155
|
-
const cost = executionCost(executions, exact);
|
|
2184
|
+
const cost = executionCost(executions, st.exact);
|
|
2156
2185
|
const baseResult = {
|
|
2157
2186
|
run_id: plan.runId,
|
|
2158
|
-
correlation_id: correlationId,
|
|
2159
|
-
started_at: startedAt,
|
|
2187
|
+
correlation_id: st.correlationId,
|
|
2188
|
+
started_at: st.startedAt,
|
|
2160
2189
|
ended_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2161
2190
|
findings,
|
|
2162
2191
|
per_analyst: summaries,
|
|
@@ -2172,7 +2201,7 @@ async function* executePlanStream(plan) {
|
|
|
2172
2201
|
return;
|
|
2173
2202
|
}
|
|
2174
2203
|
let completeResult;
|
|
2175
|
-
if (executionFailure === void 0) try {
|
|
2204
|
+
if (st.executionFailure === void 0) try {
|
|
2176
2205
|
completeResult = snapshotExactAnalystRunReceipt({
|
|
2177
2206
|
...baseResult,
|
|
2178
2207
|
execution_plan: plan.executionSnapshot,
|
|
@@ -2180,17 +2209,17 @@ async function* executePlanStream(plan) {
|
|
|
2180
2209
|
}, "AnalystRegistry.runExact result");
|
|
2181
2210
|
await waitForHook(plan.hooks.onComplete ? () => plan.hooks.onComplete?.({ result: completeResult }) : void 0, runSignal);
|
|
2182
2211
|
} catch (error) {
|
|
2183
|
-
executionFailure = error;
|
|
2212
|
+
st.executionFailure = error;
|
|
2184
2213
|
}
|
|
2185
|
-
if (runSignal?.aborted) executionFailure ??= abortReason(runSignal);
|
|
2186
|
-
if (executionFailure === void 0 && completeResult) {
|
|
2214
|
+
if (runSignal?.aborted) st.executionFailure ??= abortReason(runSignal);
|
|
2215
|
+
if (st.executionFailure === void 0 && completeResult) {
|
|
2187
2216
|
yield snapshotExecutionEvent({
|
|
2188
2217
|
type: "run-completed",
|
|
2189
2218
|
result: completeResult
|
|
2190
2219
|
}, true);
|
|
2191
2220
|
return;
|
|
2192
2221
|
}
|
|
2193
|
-
const cause = executionFailure instanceof Error ? executionFailure : new Error(String(executionFailure));
|
|
2222
|
+
const cause = st.executionFailure instanceof Error ? st.executionFailure : new Error(String(st.executionFailure));
|
|
2194
2223
|
const errorClass = cause.constructor.name || "Error";
|
|
2195
2224
|
const errorMessage = cause.message.trim().length === 0 ? "Exact analyst run failed without a message" : cause.message;
|
|
2196
2225
|
throw new ExactAnalystRunExecutionError(`exact analyst run failed after starting: ${errorMessage}; partial result is attached`, {
|
|
@@ -2349,6 +2378,6 @@ function buildDefaultAnalystRegistry(options = {}) {
|
|
|
2349
2378
|
return registry;
|
|
2350
2379
|
}
|
|
2351
2380
|
//#endregion
|
|
2352
|
-
export {
|
|
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 };
|
|
2353
2382
|
|
|
2354
|
-
//# sourceMappingURL=default-registry-
|
|
2383
|
+
//# sourceMappingURL=default-registry-BJ-Pq6yL.js.map
|