@tangle-network/agent-eval 0.215.1 → 0.216.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 +51 -0
- package/dist/adapters/http.d.ts +3 -3
- package/dist/{agent-profile-DmzL8KaJ.d.ts → agent-profile-VFcQncbW.d.ts} +5 -5
- package/dist/{agent-profile-DmzL8KaJ.d.ts.map → agent-profile-VFcQncbW.d.ts.map} +1 -1
- package/dist/{agent-profile-cell-BYc0bxsL.js → agent-profile-cell-BK8mlqlq.js} +3 -3
- package/dist/{agent-profile-cell-BYc0bxsL.js.map → agent-profile-cell-BK8mlqlq.js.map} +1 -1
- package/dist/agreement-irr-BEWLIF3_.js +186 -0
- package/dist/agreement-irr-BEWLIF3_.js.map +1 -0
- package/dist/analyst/index.d.ts +487 -14
- package/dist/analyst/index.d.ts.map +1 -1
- package/dist/analyst/index.js +1547 -12
- package/dist/analyst/index.js.map +1 -1
- package/dist/{analyze-runs-3xpby3p2.js → analyze-runs-C84irm4i.js} +608 -604
- package/dist/analyze-runs-C84irm4i.js.map +1 -0
- package/dist/{analyze-runs-BhFLOztS.d.ts → analyze-runs-D68fd-su.d.ts} +17 -15
- package/dist/analyze-runs-D68fd-su.d.ts.map +1 -0
- package/dist/{baseline-Dm8966du.js → baseline-Udi_PLuT.js} +5 -5
- package/dist/{baseline-Dm8966du.js.map → baseline-Udi_PLuT.js.map} +1 -1
- package/dist/{benchmark-BywPeAUo.js → benchmark-CXmVVHH2.js} +2 -2
- package/dist/{benchmark-BywPeAUo.js.map → benchmark-CXmVVHH2.js.map} +1 -1
- package/dist/{benchmark-command-CgpGi7vY.js → benchmark-command-By0vh8q7.js} +71 -70
- package/dist/benchmark-command-By0vh8q7.js.map +1 -0
- package/dist/benchmarks/index.d.ts +5 -5
- package/dist/benchmarks/index.js +3 -3
- package/dist/builder-eval/index.js +2 -2
- package/dist/campaign/index.d.ts +7 -7
- package/dist/campaign/index.js +14 -14
- package/dist/{campaign-CpnsCgfz.js → campaign-BudZ70zo.js} +245 -247
- package/dist/campaign-BudZ70zo.js.map +1 -0
- package/dist/{campaign-evidence-OcUciD-N.js → campaign-evidence-Clrn4hBV.js} +8 -8
- package/dist/campaign-evidence-Clrn4hBV.js.map +1 -0
- package/dist/{canonical-BsZVgBhW.js → canonical-B2RqLofv.js} +2 -2
- package/dist/{canonical-BsZVgBhW.js.map → canonical-B2RqLofv.js.map} +1 -1
- package/dist/{chat-client-DthPOYGd.js → chat-client-l-MVDlDk.js} +2 -2
- package/dist/{chat-client-DthPOYGd.js.map → chat-client-l-MVDlDk.js.map} +1 -1
- package/dist/{chat-json-call-BrKsyspg.js → chat-json-call-puMArmtW.js} +2 -2
- package/dist/{chat-json-call-BrKsyspg.js.map → chat-json-call-puMArmtW.js.map} +1 -1
- package/dist/{claim-BXcZw-jo.js → claim-q4HQhK1G.js} +4 -4
- package/dist/claim-q4HQhK1G.js.map +1 -0
- package/dist/cli.js +9 -9
- package/dist/cli.js.map +1 -1
- package/dist/cluster-bootstrap-qcUWYFl-.js +66 -0
- package/dist/cluster-bootstrap-qcUWYFl-.js.map +1 -0
- package/dist/contract/index.d.ts +11 -11
- package/dist/contract/index.js +1023 -1079
- package/dist/contract/index.js.map +1 -1
- package/dist/{cost-ledger-D2FnJPBF.js → cost-ledger-BP8V4kUQ.js} +835 -816
- package/dist/cost-ledger-BP8V4kUQ.js.map +1 -0
- package/dist/{cost-ledger-CO7UyEcQ.d.ts → cost-ledger-Jk62OBfF.d.ts} +12 -47
- package/dist/cost-ledger-Jk62OBfF.d.ts.map +1 -0
- package/dist/{counterfactual-DtMWvn7D.js → counterfactual-Dn3veueY.js} +2 -2
- package/dist/{counterfactual-DtMWvn7D.js.map → counterfactual-Dn3veueY.js.map} +1 -1
- package/dist/{default-registry-KP4-Tolz.js → default-registry-COhk9g36.js} +744 -759
- package/dist/default-registry-COhk9g36.js.map +1 -0
- package/dist/{default-registry-B4B7GMvI.d.ts → default-registry-DzHiGruW.d.ts} +6 -6
- package/dist/{default-registry-B4B7GMvI.d.ts.map → default-registry-DzHiGruW.d.ts.map} +1 -1
- package/dist/{define-agent-eval-BdfnqXeP.js → define-agent-eval-CNTPzIkp.js} +10 -10
- package/dist/define-agent-eval-CNTPzIkp.js.map +1 -0
- package/dist/{define-agent-eval-DfXvNho5.d.ts → define-agent-eval-WSck0CZJ.d.ts} +8 -8
- package/dist/{define-agent-eval-DfXvNho5.d.ts.map → define-agent-eval-WSck0CZJ.d.ts.map} +1 -1
- package/dist/{descriptive-CnU8Yq29.js → descriptive-DboxPZrG.js} +2 -2
- package/dist/{descriptive-CnU8Yq29.js.map → descriptive-DboxPZrG.js.map} +1 -1
- package/dist/diagnosis/index.d.ts +3 -3
- package/dist/diagnosis/index.js +4 -4
- package/dist/{dspy-rlm-engine-DZfHM7kT.js → dspy-rlm-engine-LRCu61m5.js} +3 -3
- package/dist/{dspy-rlm-engine-DZfHM7kT.js.map → dspy-rlm-engine-LRCu61m5.js.map} +1 -1
- package/dist/{effect-sizes-DiH8MGOH.js → effect-sizes-BhzEpXMc.js} +2 -2
- package/dist/{effect-sizes-DiH8MGOH.js.map → effect-sizes-BhzEpXMc.js.map} +1 -1
- package/dist/{engine-C37HS2kr.d.ts → engine-3A_4jOlI.d.ts} +5 -5
- package/dist/{engine-C37HS2kr.d.ts.map → engine-3A_4jOlI.d.ts.map} +1 -1
- package/dist/{equal-terms-Blx9Zk5I.js → equal-terms-BtdXayCJ.js} +2 -2
- package/dist/{equal-terms-Blx9Zk5I.js.map → equal-terms-BtdXayCJ.js.map} +1 -1
- package/dist/{errors-Dngq5h35.js → errors-DVZiqS7K.js} +6 -2
- package/dist/{errors-Dngq5h35.js.map → errors-DVZiqS7K.js.map} +1 -1
- package/dist/{eval-campaign-4byTtqrf.js → eval-campaign-90jeaCAI.js} +6 -6
- package/dist/{eval-campaign-4byTtqrf.js.map → eval-campaign-90jeaCAI.js.map} +1 -1
- package/dist/evaluation-6Yoi74gM.d.ts +75 -0
- package/dist/evaluation-6Yoi74gM.d.ts.map +1 -0
- package/dist/evaluation.d.ts +2 -74
- package/dist/evaluation.js +1 -1
- package/dist/{exact-types-Dlb73wN4.d.ts → exact-types-ClugMJfI.d.ts} +2 -2
- package/dist/{exact-types-Dlb73wN4.d.ts.map → exact-types-ClugMJfI.d.ts.map} +1 -1
- package/dist/experiment/index.d.ts +404 -3
- package/dist/experiment/index.d.ts.map +1 -1
- package/dist/experiment/index.js +313 -19
- package/dist/experiment/index.js.map +1 -1
- package/dist/{external-optimizer-process-GngofQML.js → external-optimizer-process-BjMGUuds.js} +3 -3
- package/dist/{external-optimizer-process-GngofQML.js.map → external-optimizer-process-BjMGUuds.js.map} +1 -1
- package/dist/{external-optimizer-subprocess-BUxifb8g.js → external-optimizer-subprocess-BqW0hHcI.js} +791 -532
- package/dist/external-optimizer-subprocess-BqW0hHcI.js.map +1 -0
- package/dist/{feedback-trajectory-BLN_6fEs.d.ts → feedback-trajectory-C4EG0nNH.d.ts} +5 -8
- package/dist/feedback-trajectory-C4EG0nNH.d.ts.map +1 -0
- package/dist/fuzz.d.ts +1 -1
- package/dist/fuzz.js +3 -3
- package/dist/hosted/index.js +1 -1
- package/dist/{index-CPJJr98o.d.ts → index-BFRO6chs.d.ts} +3 -2
- package/dist/index-BFRO6chs.d.ts.map +1 -0
- package/dist/{index-Ch9VxCpK.d.ts → index-BO41eGj5.d.ts} +2 -2
- package/dist/{index-Ch9VxCpK.d.ts.map → index-BO41eGj5.d.ts.map} +1 -1
- package/dist/{index-B3WBm953.d.ts → index-CyszSg4O.d.ts} +165 -162
- package/dist/index-CyszSg4O.d.ts.map +1 -0
- package/dist/{index-B7m2uzJL.d.ts → index-DPcngtwt.d.ts} +30 -17
- package/dist/index-DPcngtwt.d.ts.map +1 -0
- package/dist/{index-tYLUvk_w.d.ts → index-DV-jSzxF.d.ts} +9 -9
- package/dist/{index-tYLUvk_w.d.ts.map → index-DV-jSzxF.d.ts.map} +1 -1
- package/dist/index.d.ts +1969 -1871
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +162 -201
- package/dist/index.js.map +1 -1
- package/dist/{integrity-BvnVARVl.js → integrity-BXOsAb3i.js} +2 -2
- package/dist/{integrity-BvnVARVl.js.map → integrity-BXOsAb3i.js.map} +1 -1
- package/dist/{integrity-CCAxGVK6.d.ts → integrity-DAMEDFaC.d.ts} +2 -2
- package/dist/{integrity-CCAxGVK6.d.ts.map → integrity-DAMEDFaC.d.ts.map} +1 -1
- package/dist/{integrity-BV1ZDf42.js → integrity-dLiDe2kD.js} +2 -5
- package/dist/integrity-dLiDe2kD.js.map +1 -0
- package/dist/{internal-CRHwS9iz.js → internal-Epl-YBZW.js} +3 -3
- package/dist/{internal-CRHwS9iz.js.map → internal-Epl-YBZW.js.map} +1 -1
- package/dist/interval-CELpye1n.js +219 -0
- package/dist/interval-CELpye1n.js.map +1 -0
- package/dist/interval-ohuOJurX.d.ts +47 -0
- package/dist/interval-ohuOJurX.d.ts.map +1 -0
- package/dist/{journal-DvKCvjty.js → journal-DfRz9kps.js} +2 -2
- package/dist/{journal-DvKCvjty.js.map → journal-DfRz9kps.js.map} +1 -1
- package/dist/{judge-calibration-N44V04Se.js → judge-calibration-BpCy5XQl.js} +3 -3
- package/dist/{judge-calibration-N44V04Se.js.map → judge-calibration-BpCy5XQl.js.map} +1 -1
- package/dist/{judge-gate-DNcUrRFA.d.ts → judge-gate-CE7CQAgt.d.ts} +3 -3
- package/dist/{judge-gate-DNcUrRFA.d.ts.map → judge-gate-CE7CQAgt.d.ts.map} +1 -1
- package/dist/{judge-gate-B1qYnkpi.js → judge-gate-iY9s4L44.js} +3 -3
- package/dist/judge-gate-iY9s4L44.js.map +1 -0
- package/dist/{kind-factory-AaEhUADH.js → kind-factory-BobI5Jy3.js} +5 -5
- package/dist/{kind-factory-AaEhUADH.js.map → kind-factory-BobI5Jy3.js.map} +1 -1
- package/dist/ledger-core/index.js +3 -3
- package/dist/{ledger-core-B2hahzrt.js → ledger-core-Gq7yp8lP.js} +4 -4
- package/dist/{ledger-core-B2hahzrt.js.map → ledger-core-Gq7yp8lP.js.map} +1 -1
- package/dist/{llm-client-DQveoxSM.js → llm-client-CyBAoYiX.js} +192 -219
- package/dist/llm-client-CyBAoYiX.js.map +1 -0
- package/dist/{llm-judge-Cd5s5Ei6.js → llm-judge-CG12SQJq.js} +499 -921
- package/dist/llm-judge-CG12SQJq.js.map +1 -0
- package/dist/matrix/index.d.ts +2 -2
- package/dist/matrix/index.js +1 -1
- package/dist/{matrix-DXVAJMLD.d.ts → matrix-DSrSxjjy.d.ts} +4 -4
- package/dist/{matrix-DXVAJMLD.d.ts.map → matrix-DSrSxjjy.d.ts.map} +1 -1
- package/dist/{matrix-_BV9-Lk5.js → matrix-Dm0BQW7U.js} +7 -11
- package/dist/matrix-Dm0BQW7U.js.map +1 -0
- package/dist/{paired-tests-jbwPdSz5.js → mean-DHoMiudD.js} +11 -5
- package/dist/mean-DHoMiudD.js.map +1 -0
- package/dist/meta-eval/index.d.ts +3 -3
- package/dist/meta-eval/index.js +9 -70
- package/dist/meta-eval/index.js.map +1 -1
- package/dist/mint-DNU8QPG4.d.ts +81 -0
- package/dist/mint-DNU8QPG4.d.ts.map +1 -0
- package/dist/{mint-Csor1BLJ.js → mint-QaD5cA0u.js} +3 -3
- package/dist/{mint-Csor1BLJ.js.map → mint-QaD5cA0u.js.map} +1 -1
- package/dist/{multiplicity-D9cjmStq.js → multiplicity-DQUFcbW4.js} +2 -2
- package/dist/{multiplicity-D9cjmStq.js.map → multiplicity-DQUFcbW4.js.map} +1 -1
- package/dist/multishot/golden/index.d.ts +1 -1
- package/dist/multishot/golden/index.d.ts.map +1 -1
- package/dist/multishot/golden/index.js +3 -6
- package/dist/multishot/golden/index.js.map +1 -1
- package/dist/multishot/index.d.ts +2 -2
- package/dist/multishot/index.js +1 -1
- package/dist/nonnegative-number-DvdMxg_f.js +9 -0
- package/dist/nonnegative-number-DvdMxg_f.js.map +1 -0
- package/dist/openapi.json +1 -1
- package/dist/{otel-spans-C8YIJWy1.js → otel-spans-B9tUXRHF.js} +3 -3
- package/dist/{otel-spans-C8YIJWy1.js.map → otel-spans-B9tUXRHF.js.map} +1 -1
- package/dist/{paired-arms-DzKn0TfY.js → paired-arms-CwMGJsrS.js} +5 -5
- package/dist/{paired-arms-DzKn0TfY.js.map → paired-arms-CwMGJsrS.js.map} +1 -1
- package/dist/{paired-binary-Q36bhn2R.js → paired-binary-CvpFHfKZ.js} +2 -2
- package/dist/{paired-binary-Q36bhn2R.js.map → paired-binary-CvpFHfKZ.js.map} +1 -1
- package/dist/{paired-promotion-decision-BN6IQTiu.js → paired-promotion-decision-DsAPYGCm.js} +3 -3
- package/dist/{paired-promotion-decision-BN6IQTiu.js.map → paired-promotion-decision-DsAPYGCm.js.map} +1 -1
- package/dist/{search-kernel-BztlERLv.js → pareto-Cm6ndrWN.js} +883 -861
- package/dist/pareto-Cm6ndrWN.js.map +1 -0
- package/dist/pipelines/index.d.ts +2 -2
- package/dist/pipelines/index.js +3 -3
- package/dist/{power-and-mde-fK5Qocwo.js → power-and-mde-Hj2ubb4B.js} +2 -2
- package/dist/{power-and-mde-fK5Qocwo.js.map → power-and-mde-Hj2ubb4B.js.map} +1 -1
- package/dist/predicate-FdKmElA_.js +38 -0
- package/dist/predicate-FdKmElA_.js.map +1 -0
- package/dist/{prime-protocol-DcAK9pC8.js → prime-protocol-CHKgA3a6.js} +2 -2
- package/dist/{prime-protocol-DcAK9pC8.js.map → prime-protocol-CHKgA3a6.js.map} +1 -1
- package/dist/{prime-protocol-BHia9vDz.d.ts → prime-protocol-HiB9HX7E.d.ts} +3 -3
- package/dist/{prime-protocol-BHia9vDz.d.ts.map → prime-protocol-HiB9HX7E.d.ts.map} +1 -1
- package/dist/{produced-state-BGp4BX8t.js → produced-state-BsDmnwxc.js} +8 -8
- package/dist/{produced-state-BGp4BX8t.js.map → produced-state-BsDmnwxc.js.map} +1 -1
- package/dist/profile-cell.js +1 -1
- package/dist/{release-confidence-BK2QCB5M.d.ts → promotion-gate-BawrdPYr.d.ts} +102 -102
- package/dist/promotion-gate-BawrdPYr.d.ts.map +1 -0
- package/dist/{promotion-policy-CWW35UWq.js → promotion-policy-KO57gbyV.js} +4 -4
- package/dist/{promotion-policy-CWW35UWq.js.map → promotion-policy-KO57gbyV.js.map} +1 -1
- package/dist/{proposal-findings-CXblsskH.js → proposal-findings-CY1xKn_a.js} +2 -36
- package/dist/proposal-findings-CY1xKn_a.js.map +1 -0
- package/dist/{query-B1D1qp2Z.js → query-BUCZCK7F.js} +3 -3
- package/dist/{query-B1D1qp2Z.js.map → query-BUCZCK7F.js.map} +1 -1
- package/dist/{random-Dn5fPWkt.js → random-ByUSnV9w.js} +2 -2
- package/dist/{random-Dn5fPWkt.js.map → random-ByUSnV9w.js.map} +1 -1
- package/dist/{raw-provider-sink-rB2DYxr6.js → raw-provider-sink-DoHz4JNG.js} +2 -2
- package/dist/{raw-provider-sink-rB2DYxr6.js.map → raw-provider-sink-DoHz4JNG.js.map} +1 -1
- package/dist/{redact-Dk1ZdJEm.js → redact-B5xXKqQ3.js} +97 -98
- package/dist/redact-B5xXKqQ3.js.map +1 -0
- package/dist/{redact-Cveoq6fJ.d.ts → redact-mtCCcT8z.d.ts} +4 -20
- package/dist/redact-mtCCcT8z.d.ts.map +1 -0
- package/dist/{registry-CMYIaDgS.d.ts → registry-D7_hm2fK.d.ts} +11 -13
- package/dist/registry-D7_hm2fK.d.ts.map +1 -0
- package/dist/{release-confidence-Dbe9AS_X.js → release-confidence-CpuP65S5.js} +5 -5
- package/dist/{release-confidence-Dbe9AS_X.js.map → release-confidence-CpuP65S5.js.map} +1 -1
- package/dist/{report-command-CtIIsQKP.js → report-command-SC9nqb4M.js} +128 -177
- package/dist/report-command-SC9nqb4M.js.map +1 -0
- package/dist/reporting-html-Kvlc8oMt.js +100 -0
- package/dist/reporting-html-Kvlc8oMt.js.map +1 -0
- package/dist/reporting.d.ts +3 -3
- package/dist/reporting.js +6 -6
- package/dist/{researcher-f6mZhh58.d.ts → researcher-CEcfku-T.d.ts} +5 -5
- package/dist/{researcher-f6mZhh58.d.ts.map → researcher-CEcfku-T.d.ts.map} +1 -1
- package/dist/reward-CpCmAM8L.d.ts +78 -0
- package/dist/reward-CpCmAM8L.d.ts.map +1 -0
- package/dist/{reward-hacking-BFcQgkux.js → reward-hacking-E0d-WVcP.js} +2 -2
- package/dist/{reward-hacking-BFcQgkux.js.map → reward-hacking-E0d-WVcP.js.map} +1 -1
- package/dist/{reward-hacking-DHA7c1l8.d.ts → reward-hacking-RVdZ6Kkt.d.ts} +2 -2
- package/dist/{reward-hacking-DHA7c1l8.d.ts.map → reward-hacking-RVdZ6Kkt.d.ts.map} +1 -1
- package/dist/rl.d.ts +8 -8
- package/dist/rl.js +14 -14
- package/dist/rollout/index.d.ts +3 -2
- package/dist/rollout/index.js +2 -2
- package/dist/{rollout-D9bKKBnZ.js → rollout-DZV1t2Wg.js} +2 -2
- package/dist/{rollout-D9bKKBnZ.js.map → rollout-DZV1t2Wg.js.map} +1 -1
- package/dist/round-decimal-COrKglMh.js +10 -0
- package/dist/round-decimal-COrKglMh.js.map +1 -0
- package/dist/{rubric-predictive-validity-2SgHxoa5.d.ts → rubric-predictive-validity-C03EC7ZE.d.ts} +2 -2
- package/dist/{rubric-predictive-validity-2SgHxoa5.d.ts.map → rubric-predictive-validity-C03EC7ZE.d.ts.map} +1 -1
- package/dist/{rubric-predictive-validity-BsgkBfT0.js → rubric-predictive-validity-DaFW70y9.js} +3 -3
- package/dist/{rubric-predictive-validity-BsgkBfT0.js.map → rubric-predictive-validity-DaFW70y9.js.map} +1 -1
- package/dist/{run-record-DlTZ_lqe.js → run-record-Boc5IUTp.js} +4 -4
- package/dist/{run-record-DlTZ_lqe.js.map → run-record-Boc5IUTp.js.map} +1 -1
- package/dist/{run-record-D1Hw-Jml.d.ts → run-record-C1E24G2A.d.ts} +2 -2
- package/dist/{run-record-D1Hw-Jml.d.ts.map → run-record-C1E24G2A.d.ts.map} +1 -1
- package/dist/{run-record-ES07wfz9.js → run-record-C5e7FjhJ.js} +3 -5
- package/dist/run-record-C5e7FjhJ.js.map +1 -0
- package/dist/search/index.d.ts +46 -32
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +3 -3
- package/dist/{search-kernel-BqyBZ9Wm.d.ts → search-kernel-DyNEa6IU.d.ts} +14 -10
- package/dist/search-kernel-DyNEa6IU.d.ts.map +1 -0
- package/dist/{search-ledger-d7V8o9Lk.js → search-ledger-CVUGLDZp.js} +189 -199
- package/dist/search-ledger-CVUGLDZp.js.map +1 -0
- package/dist/{search-ledger-file-BqOo-bVo.js → search-ledger-file-DDQUgvCg.js} +4 -4
- package/dist/{search-ledger-file-BqOo-bVo.js.map → search-ledger-file-DDQUgvCg.js.map} +1 -1
- package/dist/search-ledger-types-p2xKfiDJ.d.ts.map +1 -1
- package/dist/{search-shipper-er4pK5_Y.js → search-shipper-BOSD46qv.js} +3 -3
- package/dist/{search-shipper-er4pK5_Y.js.map → search-shipper-BOSD46qv.js.map} +1 -1
- package/dist/{search-summary-CBvz3u_S.js → search-summary-BQCSWf1g.js} +5 -5
- package/dist/{search-summary-CBvz3u_S.js.map → search-summary-BQCSWf1g.js.map} +1 -1
- package/dist/{semantic-concept-judge-BPqbwIVs.js → semantic-concept-judge-BQF8te0T.js} +12 -14
- package/dist/semantic-concept-judge-BQF8te0T.js.map +1 -0
- package/dist/{sequential-D-1PPCmM.js → sequential-Bf_pbE50.js} +5 -5
- package/dist/{sequential-D-1PPCmM.js.map → sequential-Bf_pbE50.js.map} +1 -1
- package/dist/{sequential-eprocess-D1jKoihe.js → sequential-eprocess-DM_qENCl.js} +2 -2
- package/dist/{sequential-eprocess-D1jKoihe.js.map → sequential-eprocess-DM_qENCl.js.map} +1 -1
- package/dist/{server-DbcC7xMl.js → server-e9oWO_bN.js} +4 -4
- package/dist/{server-DbcC7xMl.js.map → server-e9oWO_bN.js.map} +1 -1
- package/dist/{single-run-lock-fVu3MZWH.js → single-run-lock-CV9Eyd_q.js} +2 -2
- package/dist/{single-run-lock-fVu3MZWH.js.map → single-run-lock-CV9Eyd_q.js.map} +1 -1
- package/dist/{skillopt-optimization-method-Dcepr6QL.js → skillopt-optimization-method-BiwA8nfX.js} +427 -12
- package/dist/skillopt-optimization-method-BiwA8nfX.js.map +1 -0
- package/dist/{spans-D9_ehFuk.d.ts → spans-BHAUXMGN.d.ts} +2 -2
- package/dist/{spans-D9_ehFuk.d.ts.map → spans-BHAUXMGN.d.ts.map} +1 -1
- package/dist/{statistical-heldout-1Gbmex7v.js → statistical-heldout-42NlCNDe.js} +3 -3
- package/dist/{statistical-heldout-1Gbmex7v.js.map → statistical-heldout-42NlCNDe.js.map} +1 -1
- package/dist/{statistical-heldout-CJTj2EoS.d.ts → statistical-heldout-CYpGaoDH.d.ts} +3 -3
- package/dist/{statistical-heldout-CJTj2EoS.d.ts.map → statistical-heldout-CYpGaoDH.d.ts.map} +1 -1
- package/dist/{store-otlp-DWVhUgEj.js → store-otlp-DJ9dtA5x.js} +135 -132
- package/dist/store-otlp-DJ9dtA5x.js.map +1 -0
- package/dist/{store-tool-spans-BNICrhsb.js → store-tool-spans-CIX5arAG.js} +7 -7
- package/dist/{store-tool-spans-BNICrhsb.js.map → store-tool-spans-CIX5arAG.js.map} +1 -1
- package/dist/{store-tool-spans-BNzls3OD.d.ts → store-tool-spans-DdCSPa7C.d.ts} +162 -161
- package/dist/store-tool-spans-DdCSPa7C.d.ts.map +1 -0
- package/dist/storyboard/index.d.ts.map +1 -1
- package/dist/storyboard/index.js +20 -3
- package/dist/storyboard/index.js.map +1 -1
- package/dist/{student-t-BQeKJx2N.js → student-t-DVPW7CdL.js} +2 -2
- package/dist/{student-t-BQeKJx2N.js.map → student-t-DVPW7CdL.js.map} +1 -1
- package/dist/{summary-report-DtdRucM0.js → summary-report-V_JACR4Y.js} +526 -614
- package/dist/summary-report-V_JACR4Y.js.map +1 -0
- package/dist/{summary-report-C-CtItCN.d.ts → summary-report-bdFDXq0b.d.ts} +10 -5
- package/dist/summary-report-bdFDXq0b.d.ts.map +1 -0
- package/dist/supervisor-run/index.d.ts +154 -150
- package/dist/supervisor-run/index.d.ts.map +1 -1
- package/dist/supervisor-run/index.js +65 -3
- package/dist/supervisor-run/index.js.map +1 -1
- package/dist/systemone-BomhHr2c.d.ts +135 -0
- package/dist/systemone-BomhHr2c.d.ts.map +1 -0
- package/dist/systemone-protocol.js +1 -1
- package/dist/{systemone-review-C4dZgrgN.d.ts → systemone-review-CUVcQJu6.d.ts} +2 -2
- package/dist/{systemone-review-C4dZgrgN.d.ts.map → systemone-review-CUVcQJu6.d.ts.map} +1 -1
- package/dist/{systemone-review-DTClwgmE.js → systemone-review-D7sXwsqq.js} +3 -3
- package/dist/{systemone-review-DTClwgmE.js.map → systemone-review-D7sXwsqq.js.map} +1 -1
- package/dist/systemone.d.ts +4 -134
- package/dist/systemone.js +4 -4
- package/dist/{task-failure-attributes-DngaLdE4.js → task-failure-attributes-hEmASjix.js} +2 -2
- package/dist/{task-failure-attributes-DngaLdE4.js.map → task-failure-attributes-hEmASjix.js.map} +1 -1
- package/dist/{terminal-record-BHocwFw1.js → terminal-record-DZyQZ3pz.js} +14 -10
- package/dist/terminal-record-DZyQZ3pz.js.map +1 -0
- package/dist/{tool-groups-BKRrtqy4.d.ts → tool-groups-C3NEcdCM.d.ts} +3 -3
- package/dist/tool-groups-C3NEcdCM.d.ts.map +1 -0
- package/dist/{tool-waste-Wi4g6Ekb.d.ts → tool-waste-BKgvd-TP.d.ts} +30 -30
- package/dist/tool-waste-BKgvd-TP.d.ts.map +1 -0
- package/dist/{tool-waste-BYt5rdt8.js → tool-waste-BlesqTqW.js} +5 -158
- package/dist/tool-waste-BlesqTqW.js.map +1 -0
- package/dist/{trace-questions-CLx8vt6t.d.ts → trace-questions-CM2CAocU.d.ts} +4 -4
- package/dist/{trace-questions-CLx8vt6t.d.ts.map → trace-questions-CM2CAocU.d.ts.map} +1 -1
- package/dist/trace-repair/index.d.ts +3 -3
- package/dist/trace-repair/index.d.ts.map +1 -1
- package/dist/trace-repair/index.js +7 -13
- package/dist/trace-repair/index.js.map +1 -1
- package/dist/traces.d.ts +76 -58
- package/dist/traces.d.ts.map +1 -1
- package/dist/traces.js +9 -9
- package/dist/trajectory-replay/index.js +3 -3
- package/dist/{tree-rXLW3M_4.js → tree-C1XYeXvy.js} +2277 -2339
- package/dist/tree-C1XYeXvy.js.map +1 -0
- package/dist/{types-DjOMwGY_.d.ts → types-BqkVmHfv.d.ts} +7 -1
- package/dist/types-BqkVmHfv.d.ts.map +1 -0
- package/dist/{types-DBZ7keha.d.ts → types-C02qtnG8.d.ts} +4 -46
- package/dist/types-C02qtnG8.d.ts.map +1 -0
- package/dist/{types-DHb5TI36.d.ts → types-C1tnkEgM.d.ts} +347 -6
- package/dist/types-C1tnkEgM.d.ts.map +1 -0
- package/dist/{types-DinHtRJp.d.ts → types-Cbe2fWBa.d.ts} +3 -3
- package/dist/{types-DinHtRJp.d.ts.map → types-Cbe2fWBa.d.ts.map} +1 -1
- package/dist/{types-CGEmVYOk.d.ts → types-Cq8mSbq8.d.ts} +78 -72
- package/dist/types-Cq8mSbq8.d.ts.map +1 -0
- package/dist/{types-CW5b90JH.js → types-IXD2HJzu.js} +16 -3
- package/dist/types-IXD2HJzu.js.map +1 -0
- package/dist/{verdict-DhPoXApk.js → verdict-Dl0tiT1X.js} +2 -2
- package/dist/{verdict-DhPoXApk.js.map → verdict-Dl0tiT1X.js.map} +1 -1
- package/dist/{verdict-cache-BQEsVy9n.js → verdict-cache-Bm8EKL2s.js} +2 -2
- package/dist/{verdict-cache-BQEsVy9n.js.map → verdict-cache-Bm8EKL2s.js.map} +1 -1
- package/dist/wire/index.d.ts +3 -3
- package/dist/wire/index.js +1 -1
- package/docs/concepts.md +1 -0
- package/docs/design/mlbenchmarks-book-review.md +1 -1
- package/docs/design/mlbenchmarks-review/probes.mts +23 -31
- package/docs/experiment.md +1 -1
- package/docs/finding-layers.md +69 -0
- package/package.json +1 -1
- package/dist/analyze-runs-3xpby3p2.js.map +0 -1
- package/dist/analyze-runs-BhFLOztS.d.ts.map +0 -1
- package/dist/ast-DJ6Bc7ab.js +0 -558
- package/dist/ast-DJ6Bc7ab.js.map +0 -1
- package/dist/ast-hI-vjW6J.d.ts +0 -457
- package/dist/ast-hI-vjW6J.d.ts.map +0 -1
- package/dist/benchmark-command-CgpGi7vY.js.map +0 -1
- package/dist/campaign-CpnsCgfz.js.map +0 -1
- package/dist/campaign-evidence-OcUciD-N.js.map +0 -1
- package/dist/claim-BXcZw-jo.js.map +0 -1
- package/dist/cost-ledger-CO7UyEcQ.d.ts.map +0 -1
- package/dist/cost-ledger-D2FnJPBF.js.map +0 -1
- package/dist/default-registry-KP4-Tolz.js.map +0 -1
- package/dist/define-agent-eval-BdfnqXeP.js.map +0 -1
- package/dist/evaluation.d.ts.map +0 -1
- package/dist/external-optimizer-subprocess-BUxifb8g.js.map +0 -1
- package/dist/feedback-trajectory-BLN_6fEs.d.ts.map +0 -1
- package/dist/index-B3WBm953.d.ts.map +0 -1
- package/dist/index-B7m2uzJL.d.ts.map +0 -1
- package/dist/index-CPJJr98o.d.ts.map +0 -1
- package/dist/integrity-BV1ZDf42.js.map +0 -1
- package/dist/judge-gate-B1qYnkpi.js.map +0 -1
- package/dist/llm-client-DQveoxSM.js.map +0 -1
- package/dist/llm-judge-Cd5s5Ei6.js.map +0 -1
- package/dist/matrix-_BV9-Lk5.js.map +0 -1
- package/dist/mint-DCGoBYhB.d.ts +0 -155
- package/dist/mint-DCGoBYhB.d.ts.map +0 -1
- package/dist/paired-tests-jbwPdSz5.js.map +0 -1
- package/dist/proposal-findings-CXblsskH.js.map +0 -1
- package/dist/redact-Cveoq6fJ.d.ts.map +0 -1
- package/dist/redact-Dk1ZdJEm.js.map +0 -1
- package/dist/registry-CMYIaDgS.d.ts.map +0 -1
- package/dist/release-confidence-BK2QCB5M.d.ts.map +0 -1
- package/dist/report-command-CtIIsQKP.js.map +0 -1
- package/dist/run-record-ES07wfz9.js.map +0 -1
- package/dist/search-kernel-BqyBZ9Wm.d.ts.map +0 -1
- package/dist/search-kernel-BztlERLv.js.map +0 -1
- package/dist/search-ledger-d7V8o9Lk.js.map +0 -1
- package/dist/semantic-concept-judge-BPqbwIVs.js.map +0 -1
- package/dist/skillopt-optimization-method-Dcepr6QL.js.map +0 -1
- package/dist/store-otlp-DWVhUgEj.js.map +0 -1
- package/dist/store-tool-spans-BNzls3OD.d.ts.map +0 -1
- package/dist/summary-report-C-CtItCN.d.ts.map +0 -1
- package/dist/summary-report-DtdRucM0.js.map +0 -1
- package/dist/systemone.d.ts.map +0 -1
- package/dist/terminal-record-BHocwFw1.js.map +0 -1
- package/dist/tool-groups-BKRrtqy4.d.ts.map +0 -1
- package/dist/tool-waste-BYt5rdt8.js.map +0 -1
- package/dist/tool-waste-Wi4g6Ekb.d.ts.map +0 -1
- package/dist/tree-rXLW3M_4.js.map +0 -1
- package/dist/types-CGEmVYOk.d.ts.map +0 -1
- package/dist/types-CW5b90JH.js.map +0 -1
- package/dist/types-DBZ7keha.d.ts.map +0 -1
- package/dist/types-DHb5TI36.d.ts.map +0 -1
- package/dist/types-DjOMwGY_.d.ts.map +0 -1
|
@@ -1,8 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { l as errorMessage } from "./errors-DVZiqS7K.js";
|
|
2
|
+
import { a as hashCanonical } from "./canonical-B2RqLofv.js";
|
|
3
|
+
import { o as summarizeNumberSeries } from "./descriptive-DboxPZrG.js";
|
|
4
|
+
import { t as roundDecimal } from "./round-decimal-COrKglMh.js";
|
|
5
|
+
import { a as nonEmptyString, c as parseSupervisorTree, d as NO_SOURCE_LIMITS, g as unavailable, h as showMeasured, i as asRecord, l as recordOrNull, m as isUnavailable, o as parseJson, p as SUPERVISOR_RUN_SCHEMA, r as readTerminalRecord, s as parseJsonl, u as workerSourceKey } from "./terminal-record-DZyQZ3pz.js";
|
|
4
6
|
import { join, resolve } from "node:path";
|
|
5
7
|
import { appendFile, mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
|
|
8
|
+
//#region src/supervisor-run/patch-stats.ts
|
|
9
|
+
/** Unified-diff stats. Counts `+++ b/<path>` targets, body +/- lines, and test-file touches. */
|
|
10
|
+
function parsePatch(text) {
|
|
11
|
+
const files = /* @__PURE__ */ new Set();
|
|
12
|
+
const testFiles = /* @__PURE__ */ new Set();
|
|
13
|
+
let added = 0;
|
|
14
|
+
let removed = 0;
|
|
15
|
+
for (const line of text.split("\n")) {
|
|
16
|
+
if (line.startsWith("+++ ")) {
|
|
17
|
+
const p = line.slice(4).trim().replace(/^b\//, "");
|
|
18
|
+
if (p !== "/dev/null") {
|
|
19
|
+
files.add(p);
|
|
20
|
+
if (isTestPath(p)) testFiles.add(p);
|
|
21
|
+
}
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (line.startsWith("--- ") || line.startsWith("diff --git") || line.startsWith("index ")) continue;
|
|
25
|
+
if (line.startsWith("+")) added += 1;
|
|
26
|
+
else if (line.startsWith("-")) removed += 1;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
files: files.size,
|
|
30
|
+
linesAdded: added,
|
|
31
|
+
linesRemoved: removed,
|
|
32
|
+
testFilesTouched: [...testFiles].sort()
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function isTestPath(p) {
|
|
36
|
+
const base = p.split("/").pop() ?? p;
|
|
37
|
+
return /(^|\/)(tests?|__tests__|testing|spec)(\/|$)/.test(p) || /\.(test|spec)\.[cm]?[jt]sx?$/.test(base) || /^test_.*\.py$/.test(base) || /_test\.py$/.test(base);
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
6
40
|
//#region src/supervisor-run/analyze.ts
|
|
7
41
|
/**
|
|
8
42
|
* The pure analyzer. Takes already-read bytes (`SupervisorRunSources`) and
|
|
@@ -203,8 +237,8 @@ function analyzeSupervisorRunSources(src, now = Date.now) {
|
|
|
203
237
|
supervisorWallMs,
|
|
204
238
|
supervisorWallSource,
|
|
205
239
|
idleMs: isUnavailable(supervisorWallMs) ? unavailable(supervisorWallMs.unavailable) : idleMs,
|
|
206
|
-
idlePct: isUnavailable(supervisorWallMs) || supervisorWallMs === 0 ? isUnavailable(supervisorWallMs) ? unavailable(supervisorWallMs.unavailable) : unavailable("supervisor wall is 0ms") :
|
|
207
|
-
workerUtilization: isUnavailable(supervisorWallMs) || supervisorWallMs === 0 ? isUnavailable(supervisorWallMs) ? unavailable(supervisorWallMs.unavailable) : unavailable("supervisor wall is 0ms") :
|
|
240
|
+
idlePct: isUnavailable(supervisorWallMs) || supervisorWallMs === 0 ? isUnavailable(supervisorWallMs) ? unavailable(supervisorWallMs.unavailable) : unavailable("supervisor wall is 0ms") : roundDecimal(idleMs / supervisorWallMs * 100, 1),
|
|
241
|
+
workerUtilization: isUnavailable(supervisorWallMs) || supervisorWallMs === 0 ? isUnavailable(supervisorWallMs) ? unavailable(supervisorWallMs.unavailable) : unavailable("supervisor wall is 0ms") : roundDecimal(sumWorkerWallMs / supervisorWallMs, 3)
|
|
208
242
|
};
|
|
209
243
|
const settledByStatus = {};
|
|
210
244
|
const settledVerdicts = {};
|
|
@@ -303,20 +337,20 @@ function analyzeSupervisorRunSources(src, now = Date.now) {
|
|
|
303
337
|
const usdLimit = src.limits.spendUsd;
|
|
304
338
|
const closeUsdUnreported = stateUsd === null && resultCloseUsd !== null && resultSpentTotal.usdKnown === false;
|
|
305
339
|
const usdUnreportedReason = unpriced(usdUnknownRecords, usdKnownRecords + usdUnknownRecords, usdUnknownNodes);
|
|
306
|
-
const totalUsd = usdLimit !== null ? gap("totalUsd", usdLimit) : stateUsd !== null ?
|
|
340
|
+
const totalUsd = usdLimit !== null ? gap("totalUsd", usdLimit) : stateUsd !== null ? roundDecimal(stateUsd, 6) : !haveJournal ? gap("totalUsd", journalMissing) : usdUnknownRecords > 0 ? gap("totalUsd", usdUnreportedReason) : roundDecimal(tree.brain.usd + journalWorkerUsd, 6);
|
|
307
341
|
const journalSpendRecords = usdKnownRecords;
|
|
308
342
|
const journalDerivedAvailable = usdLimit === null && haveJournal && !usdAllUnknown;
|
|
309
343
|
const closeRecordAvailable = usdLimit === null && closeUsd !== null && !closeUsdUnreported;
|
|
310
344
|
const spend = {
|
|
311
345
|
journalDerived: {
|
|
312
|
-
usd: journalDerivedAvailable ?
|
|
346
|
+
usd: journalDerivedAvailable ? roundDecimal(tree.brain.usd + journalWorkerUsd, 6) : unavailable(usdLimit ?? (haveJournal ? usdUnreportedReason : journalMissing)),
|
|
313
347
|
records: journalDerivedAvailable ? journalSpendRecords : 0,
|
|
314
348
|
unknownRecords: usdLimit === null && haveJournal ? usdUnknownRecords : 0,
|
|
315
349
|
partial: journalDerivedAvailable && usdPartial,
|
|
316
350
|
unknownNodes: usdLimit === null && haveJournal ? usdUnknownNodes : []
|
|
317
351
|
},
|
|
318
352
|
closeRecord: {
|
|
319
|
-
usd: closeRecordAvailable ?
|
|
353
|
+
usd: closeRecordAvailable ? roundDecimal(closeUsd, 6) : unavailable(usdLimit ?? (closeUsdUnreported ? "close record incomplete: result.json spentTotal.usdKnown is false" : "no close record: neither state.json result.spentUsd nor result.json spentTotal.usd is present")),
|
|
320
354
|
records: closeRecordAvailable ? 1 : 0,
|
|
321
355
|
unknownRecords: closeUsdUnreported ? 1 : 0,
|
|
322
356
|
partial: false,
|
|
@@ -371,7 +405,7 @@ function analyzeSupervisorRunSources(src, now = Date.now) {
|
|
|
371
405
|
brain: {
|
|
372
406
|
tokensIn: managerTokenLimit !== null ? gap("brain.tokensIn", managerTokenLimit) : !haveJournal ? gap("brain.tokensIn", journalMissing) : brainTokensUnreported !== null ? gap("brain.tokensIn", brainTokensUnreported) : tree.brain.tokensIn,
|
|
373
407
|
tokensOut: managerTokenLimit !== null ? unavailable(managerTokenLimit) : !haveJournal ? unavailable(journalMissing) : brainTokensUnreported !== null ? unavailable(brainTokensUnreported) : tree.brain.tokensOut,
|
|
374
|
-
usd: usdLimit !== null ? unavailable(usdLimit) : !haveJournal ? unavailable(journalMissing) : brainUsdUnreported !== null ? unavailable(brainUsdUnreported) :
|
|
408
|
+
usd: usdLimit !== null ? unavailable(usdLimit) : !haveJournal ? unavailable(journalMissing) : brainUsdUnreported !== null ? unavailable(brainUsdUnreported) : roundDecimal(tree.brain.usd, 6),
|
|
375
409
|
cacheRead: managerTokenLimit !== null ? unavailable(managerTokenLimit) : !haveJournal ? unavailable(journalMissing) : brainTokensUnreported !== null ? unavailable(brainTokensUnreported) : !tree.brain.hasCache ? unavailable(NO_CACHE_COUNTERS) : tree.brain.cacheBreakdownKnown ? tree.brain.cacheRead : unavailable(NO_CACHE_BREAKDOWN),
|
|
376
410
|
cacheWrite: managerTokenLimit !== null ? unavailable(managerTokenLimit) : !haveJournal ? unavailable(journalMissing) : brainTokensUnreported !== null ? unavailable(brainTokensUnreported) : !tree.brain.hasCache ? unavailable(NO_CACHE_COUNTERS) : tree.brain.cacheBreakdownKnown ? tree.brain.cacheWrite : unavailable(NO_CACHE_BREAKDOWN),
|
|
377
411
|
source: managerTokenLimit ?? (haveJournal ? `journal metered events (n=${tree.brain.meteredCount})${tree.brain.usdKnownCount > 0 && tree.brain.usdUnknownCount > 0 ? ` — ${tree.brain.usdUnknownCount} unpriced` : ""}` : journalMissing)
|
|
@@ -382,13 +416,13 @@ function analyzeSupervisorRunSources(src, now = Date.now) {
|
|
|
382
416
|
tokensOut: workerOut,
|
|
383
417
|
cacheRead: workerTokenLimit !== null ? unavailable(workerTokenLimit) : sq?.cacheRead !== void 0 ? sq.cacheRead : unavailable(NO_CACHE_COUNTERS),
|
|
384
418
|
cacheWrite: workerTokenLimit !== null ? unavailable(workerTokenLimit) : sq?.cacheWrite !== void 0 ? sq.cacheWrite : unavailable(NO_CACHE_COUNTERS),
|
|
385
|
-
usd: usdLimit !== null ? unavailable(usdLimit) : !haveJournal ? unavailable(journalMissing) : workerUsdUnreported !== null ? unavailable(workerUsdUnreported) :
|
|
419
|
+
usd: usdLimit !== null ? unavailable(usdLimit) : !haveJournal ? unavailable(journalMissing) : workerUsdUnreported !== null ? unavailable(workerUsdUnreported) : roundDecimal(journalWorkerUsd, 6),
|
|
386
420
|
source: `${workerTokenLimit !== null ? workerTokenLimit : sq !== null ? `journal settled spend + ${sq.store} sessions (n=${sq.sessions})` : `journal settled spend only — ${src.harnessMissingReason ?? "harness session store unavailable"}`}${workerUsdUnknownNodes.length > 0 && workerUsdUnknownNodes.length < rootChildSpends.length ? ` — ${workerUsdUnknownNodes.length} unpriced` : ""}`
|
|
387
421
|
},
|
|
388
422
|
spend,
|
|
389
423
|
totalUsd,
|
|
390
424
|
totalUsdSource: usdLimit !== null ? usdLimit : stateUsd !== null ? `state.json result.spentUsd${rootChildCloses.length > 0 && journalWorkerUsd === 0 ? " — brain-priced only; worker CLI inference is unpriced (see worker token counts)" : ""}` : !haveJournal ? journalMissing : usdUnknownRecords > 0 ? usdUnreportedReason : "journal metered + settled usd",
|
|
391
|
-
costPerAcceptedPatchUsd: isUnavailable(totalUsd) ? unavailable(totalUsd.unavailable) : isUnavailable(decision.accepted) ? unavailable(decision.accepted.unavailable) : decision.accepted === 0 ? unavailable("no accepted worker patch (cost has no denominator)") :
|
|
425
|
+
costPerAcceptedPatchUsd: isUnavailable(totalUsd) ? unavailable(totalUsd.unavailable) : isUnavailable(decision.accepted) ? unavailable(decision.accepted.unavailable) : decision.accepted === 0 ? unavailable("no accepted worker patch (cost has no denominator)") : roundDecimal(totalUsd / decision.accepted, 6),
|
|
392
426
|
workerWallMsDistribution: wallDistribution === null ? unavailable(src.workers === null ? workersGapReason : "no worker start/finish pairs captured") : wallDistribution,
|
|
393
427
|
perWorker: src.workers === null ? unavailable(workersGapReason) : perWorker
|
|
394
428
|
};
|
|
@@ -447,98 +481,6 @@ function pickString(rec, key) {
|
|
|
447
481
|
const v = rec?.[key];
|
|
448
482
|
return typeof v === "string" ? v : null;
|
|
449
483
|
}
|
|
450
|
-
function round(v, digits) {
|
|
451
|
-
const f = 10 ** digits;
|
|
452
|
-
return Math.round(v * f) / f;
|
|
453
|
-
}
|
|
454
|
-
/** Unified-diff stats. Counts `+++ b/<path>` targets, body +/- lines, and test-file touches. */
|
|
455
|
-
function parsePatch(text) {
|
|
456
|
-
const files = /* @__PURE__ */ new Set();
|
|
457
|
-
const testFiles = /* @__PURE__ */ new Set();
|
|
458
|
-
let added = 0;
|
|
459
|
-
let removed = 0;
|
|
460
|
-
for (const line of text.split("\n")) {
|
|
461
|
-
if (line.startsWith("+++ ")) {
|
|
462
|
-
const p = line.slice(4).trim().replace(/^b\//, "");
|
|
463
|
-
if (p !== "/dev/null") {
|
|
464
|
-
files.add(p);
|
|
465
|
-
if (isTestPath(p)) testFiles.add(p);
|
|
466
|
-
}
|
|
467
|
-
continue;
|
|
468
|
-
}
|
|
469
|
-
if (line.startsWith("--- ") || line.startsWith("diff --git") || line.startsWith("index ")) continue;
|
|
470
|
-
if (line.startsWith("+")) added += 1;
|
|
471
|
-
else if (line.startsWith("-")) removed += 1;
|
|
472
|
-
}
|
|
473
|
-
return {
|
|
474
|
-
files: files.size,
|
|
475
|
-
linesAdded: added,
|
|
476
|
-
linesRemoved: removed,
|
|
477
|
-
testFilesTouched: [...testFiles].sort()
|
|
478
|
-
};
|
|
479
|
-
}
|
|
480
|
-
function isTestPath(p) {
|
|
481
|
-
const base = p.split("/").pop() ?? p;
|
|
482
|
-
return /(^|\/)(tests?|__tests__|testing|spec)(\/|$)/.test(p) || /\.(test|spec)\.[cm]?[jt]sx?$/.test(base) || /^test_.*\.py$/.test(base) || /_test\.py$/.test(base);
|
|
483
|
-
}
|
|
484
|
-
/**
|
|
485
|
-
* Aggregate many supervisor-run reports. A metric no run could measure stays
|
|
486
|
-
* `unavailable` rather than becoming a 0-valued mean, and cells whose steer
|
|
487
|
-
* count was unavailable are counted separately from cells that measured zero.
|
|
488
|
-
*/
|
|
489
|
-
function rollupSupervisorRuns(reports) {
|
|
490
|
-
const known = (vals) => vals.filter((v) => !isUnavailable(v));
|
|
491
|
-
const steerVals = known(reports.map((r) => r.orchestration.steers));
|
|
492
|
-
const waveVals = known(reports.map((r) => r.orchestration.waves));
|
|
493
|
-
const concVals = known(reports.map((r) => r.orchestration.maxConcurrency));
|
|
494
|
-
const utilVals = known(reports.map((r) => r.orchestration.workerUtilization));
|
|
495
|
-
const idleVals = known(reports.map((r) => r.orchestration.idlePct));
|
|
496
|
-
const spawnVals = known(reports.map((r) => r.orchestration.workersSpawned));
|
|
497
|
-
const acceptVals = known(reports.map((r) => r.decision.accepted));
|
|
498
|
-
const usdVals = known(reports.map((r) => r.economics.totalUsd));
|
|
499
|
-
const journalSpendVals = known(reports.map((r) => r.economics.spend.journalDerived.usd));
|
|
500
|
-
const closeSpendVals = known(reports.map((r) => r.economics.spend.closeRecord.usd));
|
|
501
|
-
const resolvedVals = known(reports.map((r) => r.outcome.judgeResolved));
|
|
502
|
-
const sum = (xs) => xs.reduce((a, b) => a + b, 0);
|
|
503
|
-
const mean = (xs) => xs.length === 0 ? unavailable("no cell reported this metric") : round(sum(xs) / xs.length, 3);
|
|
504
|
-
const perCell = reports.map((r) => ({
|
|
505
|
-
instanceId: r.instanceId,
|
|
506
|
-
arm: r.arm,
|
|
507
|
-
steers: r.orchestration.steers,
|
|
508
|
-
waves: r.orchestration.waves,
|
|
509
|
-
utilization: r.orchestration.workerUtilization,
|
|
510
|
-
idlePct: r.orchestration.idlePct,
|
|
511
|
-
resolved: r.outcome.judgeResolved,
|
|
512
|
-
usd: r.economics.totalUsd,
|
|
513
|
-
...r.economics.resourceRecords === void 0 ? {} : { resourceRecords: r.economics.resourceRecords }
|
|
514
|
-
}));
|
|
515
|
-
return {
|
|
516
|
-
schema: SUPERVISOR_RUN_ROLLUP_SCHEMA,
|
|
517
|
-
cells: reports.length,
|
|
518
|
-
steersTotal: steerVals.length === 0 ? unavailable("no cell reported a steer count") : sum(steerVals),
|
|
519
|
-
cellsWithSteers: steerVals.length === 0 ? unavailable("no cell reported a steer count") : steerVals.filter((n) => n > 0).length,
|
|
520
|
-
cellsWithUnavailableSteers: reports.filter((r) => isUnavailable(r.orchestration.steers)).length,
|
|
521
|
-
wavesMean: mean(waveVals),
|
|
522
|
-
maxConcurrencyMax: concVals.length === 0 ? unavailable("no cell reported concurrency") : Math.max(...concVals),
|
|
523
|
-
utilizationMean: mean(utilVals),
|
|
524
|
-
idlePctMean: mean(idleVals),
|
|
525
|
-
workersSpawnedTotal: spawnVals.length === 0 ? unavailable("no cell reported spawns") : sum(spawnVals),
|
|
526
|
-
acceptedTotal: acceptVals.length === 0 ? unavailable("no cell reported acceptance") : sum(acceptVals),
|
|
527
|
-
usdTotal: usdVals.length === 0 ? unavailable("no cell reported spend") : round(sum(usdVals), 6),
|
|
528
|
-
spendUsd: {
|
|
529
|
-
journalDerived: {
|
|
530
|
-
value: journalSpendVals.length === 0 ? unavailable("no cell measured journal-derived spend") : round(sum(journalSpendVals), 6),
|
|
531
|
-
runs: journalSpendVals.length
|
|
532
|
-
},
|
|
533
|
-
closeRecord: {
|
|
534
|
-
value: closeSpendVals.length === 0 ? unavailable("no cell carried a close record") : round(sum(closeSpendVals), 6),
|
|
535
|
-
runs: closeSpendVals.length
|
|
536
|
-
}
|
|
537
|
-
},
|
|
538
|
-
resolvedCount: resolvedVals.length === 0 ? unavailable("no cell reported a judge verdict") : resolvedVals.filter((v) => v === true).length,
|
|
539
|
-
perCell
|
|
540
|
-
};
|
|
541
|
-
}
|
|
542
484
|
//#endregion
|
|
543
485
|
//#region src/supervisor-run/render.ts
|
|
544
486
|
/**
|
|
@@ -602,8 +544,8 @@ function fmtMs(v) {
|
|
|
602
544
|
if (isUnavailable(v)) return `unavailable — ${v.unavailable}`;
|
|
603
545
|
if (v < 1e3) return `${v}ms`;
|
|
604
546
|
const s = v / 1e3;
|
|
605
|
-
if (s < 120) return `${
|
|
606
|
-
return `${
|
|
547
|
+
if (s < 120) return `${roundDecimal(s, 1)}s`;
|
|
548
|
+
return `${roundDecimal(s / 60, 1)}min`;
|
|
607
549
|
}
|
|
608
550
|
function renderSupervisorRunMarkdown(r) {
|
|
609
551
|
const o = r.orchestration;
|
|
@@ -746,6 +688,66 @@ function renderSupervisorRollupMarkdown(rollup, title = "Round rollup") {
|
|
|
746
688
|
return out.join("\n");
|
|
747
689
|
}
|
|
748
690
|
//#endregion
|
|
691
|
+
//#region src/supervisor-run/coordination-reader.ts
|
|
692
|
+
/**
|
|
693
|
+
* Optional Runtime run-dir files, read as bytes.
|
|
694
|
+
*
|
|
695
|
+
* `coordination-log.jsonl` is Runtime's JSONL of `{ runId, seq, at, event }`:
|
|
696
|
+
* questions, steers, answers and peer mail between nodes. The `team-shape`
|
|
697
|
+
* analyst reads communication and steer edges from it.
|
|
698
|
+
*/
|
|
699
|
+
const COORDINATION_FILE = "coordination-log.jsonl";
|
|
700
|
+
/** File text, or null when the file does not exist. Any other read error throws. */
|
|
701
|
+
async function readMaybe(path) {
|
|
702
|
+
return readFile(path, "utf8").catch((error) => {
|
|
703
|
+
if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") return null;
|
|
704
|
+
throw error;
|
|
705
|
+
});
|
|
706
|
+
}
|
|
707
|
+
/** The run's coordination log, or null when Runtime wrote none. */
|
|
708
|
+
function readCoordinationLog(runDir) {
|
|
709
|
+
return readMaybe(join(runDir, COORDINATION_FILE));
|
|
710
|
+
}
|
|
711
|
+
//#endregion
|
|
712
|
+
//#region src/supervisor-run/runtime-source-limits.ts
|
|
713
|
+
function spendRecord(value) {
|
|
714
|
+
const spend = recordOrNull(value);
|
|
715
|
+
if (spend === null) return null;
|
|
716
|
+
const tokens = recordOrNull(spend.tokens);
|
|
717
|
+
if (tokens === null || typeof tokens.input !== "number" || !Number.isFinite(tokens.input) || tokens.input < 0 || typeof tokens.output !== "number" || !Number.isFinite(tokens.output) || tokens.output < 0 || typeof spend.usd !== "number" || !Number.isFinite(spend.usd) || spend.usd < 0 || spend.usdKnown !== void 0 && typeof spend.usdKnown !== "boolean") return null;
|
|
718
|
+
return spend;
|
|
719
|
+
}
|
|
720
|
+
function sourceLimits(root, events, workerIds) {
|
|
721
|
+
const rootMeters = events.filter((event) => event.kind === "metered" && event.id === root);
|
|
722
|
+
const invalidRootMeters = rootMeters.filter((event) => spendRecord(event.spend) === null);
|
|
723
|
+
const rootMeterReason = rootMeters.length === 0 ? "Runtime journal has no root metered event" : invalidRootMeters.length > 0 ? `${invalidRootMeters.length} root metered event(s) lack complete spend` : null;
|
|
724
|
+
const closes = events.filter((event) => workerIds.has(nonEmptyString(event.id) ?? "") && (event.kind === "settled" || event.kind === "cancelled"));
|
|
725
|
+
const settledById = /* @__PURE__ */ new Map();
|
|
726
|
+
for (const event of closes) {
|
|
727
|
+
const id = nonEmptyString(event.id);
|
|
728
|
+
if (id === null) continue;
|
|
729
|
+
const matches = settledById.get(id) ?? [];
|
|
730
|
+
matches.push(event);
|
|
731
|
+
settledById.set(id, matches);
|
|
732
|
+
}
|
|
733
|
+
const incompleteWorkers = [...workerIds].filter((id) => {
|
|
734
|
+
const terminal = settledById.get(id);
|
|
735
|
+
return terminal?.length !== 1 || terminal[0]?.kind !== "settled" || spendRecord(terminal[0]?.spent) === null;
|
|
736
|
+
});
|
|
737
|
+
const missingVerdicts = [...workerIds].filter((id) => {
|
|
738
|
+
const terminal = settledById.get(id)?.[0];
|
|
739
|
+
if (terminal?.kind !== "settled") return true;
|
|
740
|
+
return typeof recordOrNull(terminal.verdict)?.valid !== "boolean";
|
|
741
|
+
});
|
|
742
|
+
return {
|
|
743
|
+
managerTokens: rootMeterReason,
|
|
744
|
+
workerTokens: incompleteWorkers.length === 0 ? null : `${incompleteWorkers.length}/${workerIds.size} child invocation(s) lack one settled spend record`,
|
|
745
|
+
spendUsd: rootMeterReason !== null ? rootMeterReason : incompleteWorkers.length > 0 ? "at least one child invocation lacks a settled spend record" : null,
|
|
746
|
+
workerVerdicts: missingVerdicts.length === 0 ? null : `${missingVerdicts.length}/${workerIds.size} child invocation(s) lack a structured validity verdict`,
|
|
747
|
+
deliverables: workerIds.size === 0 ? null : "Runtime FileRunContext does not retain per-child delivered patches"
|
|
748
|
+
};
|
|
749
|
+
}
|
|
750
|
+
//#endregion
|
|
749
751
|
//#region src/supervisor-run/runtime-reader.ts
|
|
750
752
|
/**
|
|
751
753
|
* Reader for agent-runtime's file-backed supervision context.
|
|
@@ -805,22 +807,10 @@ const RUNTIME_RUN_DIR_MARKERS = [
|
|
|
805
807
|
OBSERVER_FILE,
|
|
806
808
|
FAILURE_FILE
|
|
807
809
|
];
|
|
808
|
-
async function readMaybe(path) {
|
|
809
|
-
return readFile(path, "utf8").catch((error) => {
|
|
810
|
-
if (typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT") return null;
|
|
811
|
-
throw error;
|
|
812
|
-
});
|
|
813
|
-
}
|
|
814
|
-
function record(value) {
|
|
815
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
816
|
-
}
|
|
817
|
-
function nonEmptyString(value) {
|
|
818
|
-
return typeof value === "string" && value.length > 0 ? value : null;
|
|
819
|
-
}
|
|
820
810
|
function profileDigest(event) {
|
|
821
811
|
const direct = nonEmptyString(event.profileDigest);
|
|
822
812
|
if (direct !== null) return direct;
|
|
823
|
-
const identity =
|
|
813
|
+
const identity = recordOrNull(event.identity);
|
|
824
814
|
return identity === null ? null : nonEmptyString(identity.profileDigest);
|
|
825
815
|
}
|
|
826
816
|
function formatError(path, line, detail) {
|
|
@@ -840,7 +830,7 @@ function parseEnvelopeJournal(text, path) {
|
|
|
840
830
|
} catch {
|
|
841
831
|
throw formatError(path, line, "line is not JSON");
|
|
842
832
|
}
|
|
843
|
-
const envelope =
|
|
833
|
+
const envelope = recordOrNull(parsed);
|
|
844
834
|
if (envelope === null) throw formatError(path, line, "line is not an object");
|
|
845
835
|
const kind = nonEmptyString(envelope.kind);
|
|
846
836
|
const root = nonEmptyString(envelope.root);
|
|
@@ -860,7 +850,7 @@ function parseEnvelopeJournal(text, path) {
|
|
|
860
850
|
}
|
|
861
851
|
if (kind !== "event") throw formatError(path, line, "kind must be 'begin' or 'event'");
|
|
862
852
|
if (!begun.has(root)) throw formatError(path, line, `event for tree ${JSON.stringify(root)} precedes begin`);
|
|
863
|
-
const event =
|
|
853
|
+
const event = recordOrNull(envelope.event);
|
|
864
854
|
if (event === null) throw formatError(path, line, "event must be an object");
|
|
865
855
|
if (nonEmptyString(event.kind) === null) throw formatError(path, line, "event.kind must be a non-empty string");
|
|
866
856
|
events.push({
|
|
@@ -974,47 +964,10 @@ function parseOptionalRecord(text, path) {
|
|
|
974
964
|
} catch {
|
|
975
965
|
throw new Error(`${path}: invalid JSON`);
|
|
976
966
|
}
|
|
977
|
-
const value =
|
|
967
|
+
const value = recordOrNull(parsed);
|
|
978
968
|
if (value === null) throw new Error(`${path}: expected a JSON object`);
|
|
979
969
|
return value;
|
|
980
970
|
}
|
|
981
|
-
function spendRecord(value) {
|
|
982
|
-
const spend = record(value);
|
|
983
|
-
if (spend === null) return null;
|
|
984
|
-
const tokens = record(spend.tokens);
|
|
985
|
-
if (tokens === null || typeof tokens.input !== "number" || !Number.isFinite(tokens.input) || tokens.input < 0 || typeof tokens.output !== "number" || !Number.isFinite(tokens.output) || tokens.output < 0 || typeof spend.usd !== "number" || !Number.isFinite(spend.usd) || spend.usd < 0 || spend.usdKnown !== void 0 && typeof spend.usdKnown !== "boolean") return null;
|
|
986
|
-
return spend;
|
|
987
|
-
}
|
|
988
|
-
function sourceLimits(root, events, workerIds) {
|
|
989
|
-
const rootMeters = events.filter((event) => event.kind === "metered" && event.id === root);
|
|
990
|
-
const invalidRootMeters = rootMeters.filter((event) => spendRecord(event.spend) === null);
|
|
991
|
-
const rootMeterReason = rootMeters.length === 0 ? "Runtime journal has no root metered event" : invalidRootMeters.length > 0 ? `${invalidRootMeters.length} root metered event(s) lack complete spend` : null;
|
|
992
|
-
const closes = events.filter((event) => workerIds.has(nonEmptyString(event.id) ?? "") && (event.kind === "settled" || event.kind === "cancelled"));
|
|
993
|
-
const settledById = /* @__PURE__ */ new Map();
|
|
994
|
-
for (const event of closes) {
|
|
995
|
-
const id = nonEmptyString(event.id);
|
|
996
|
-
if (id === null) continue;
|
|
997
|
-
const matches = settledById.get(id) ?? [];
|
|
998
|
-
matches.push(event);
|
|
999
|
-
settledById.set(id, matches);
|
|
1000
|
-
}
|
|
1001
|
-
const incompleteWorkers = [...workerIds].filter((id) => {
|
|
1002
|
-
const terminal = settledById.get(id);
|
|
1003
|
-
return terminal?.length !== 1 || terminal[0]?.kind !== "settled" || spendRecord(terminal[0]?.spent) === null;
|
|
1004
|
-
});
|
|
1005
|
-
const missingVerdicts = [...workerIds].filter((id) => {
|
|
1006
|
-
const terminal = settledById.get(id)?.[0];
|
|
1007
|
-
if (terminal?.kind !== "settled") return true;
|
|
1008
|
-
return typeof record(terminal.verdict)?.valid !== "boolean";
|
|
1009
|
-
});
|
|
1010
|
-
return {
|
|
1011
|
-
managerTokens: rootMeterReason,
|
|
1012
|
-
workerTokens: incompleteWorkers.length === 0 ? null : `${incompleteWorkers.length}/${workerIds.size} child invocation(s) lack one settled spend record`,
|
|
1013
|
-
spendUsd: rootMeterReason !== null ? rootMeterReason : incompleteWorkers.length > 0 ? "at least one child invocation lacks a settled spend record" : null,
|
|
1014
|
-
workerVerdicts: missingVerdicts.length === 0 ? null : `${missingVerdicts.length}/${workerIds.size} child invocation(s) lack a structured validity verdict`,
|
|
1015
|
-
deliverables: workerIds.size === 0 ? null : "Runtime FileRunContext does not retain per-child delivered patches"
|
|
1016
|
-
};
|
|
1017
|
-
}
|
|
1018
971
|
/**
|
|
1019
972
|
* Refuse a `result.json` that belongs to another run. Runtime's result carries
|
|
1020
973
|
* its own `tree.root`; a settled record with a different root is a copied or
|
|
@@ -1023,7 +976,7 @@ function sourceLimits(root, events, workerIds) {
|
|
|
1023
976
|
function assertResultMatchesJournal(root, result, resultPath) {
|
|
1024
977
|
const resultKind = result === null ? null : nonEmptyString(result.kind);
|
|
1025
978
|
if (resultKind === null || result === null) return;
|
|
1026
|
-
const resultRoot = nonEmptyString(
|
|
979
|
+
const resultRoot = nonEmptyString(recordOrNull(result.tree)?.root);
|
|
1027
980
|
if (resultRoot === null) throw new Error(`${resultPath}: Runtime ${resultKind} result has no tree.root`);
|
|
1028
981
|
if (resultRoot !== root) throw new Error(`${resultPath}: root ${JSON.stringify(resultRoot)} does not match journal root ${JSON.stringify(root)}`);
|
|
1029
982
|
}
|
|
@@ -1036,7 +989,7 @@ function assertResultMatchesJournal(root, result, resultPath) {
|
|
|
1036
989
|
*/
|
|
1037
990
|
function assertFailureRecord(failure, failurePath) {
|
|
1038
991
|
if (failure === null) return;
|
|
1039
|
-
if (
|
|
992
|
+
if (recordOrNull(failure.error) === null) throw new Error(`${failurePath}: Runtime failure record has no error object`);
|
|
1040
993
|
}
|
|
1041
994
|
/**
|
|
1042
995
|
* The journal's begin stamp in the analyzer's state-document shape. It carries
|
|
@@ -1082,12 +1035,12 @@ async function receiptSessionFiles(file) {
|
|
|
1082
1035
|
} catch {
|
|
1083
1036
|
return;
|
|
1084
1037
|
}
|
|
1085
|
-
const harness =
|
|
1086
|
-
const files =
|
|
1038
|
+
const harness = recordOrNull(descriptor)?.harness;
|
|
1039
|
+
const files = recordOrNull(descriptor)?.files;
|
|
1087
1040
|
const pattern = typeof harness === "string" ? HARNESS_SESSION_FILE[harness] : void 0;
|
|
1088
1041
|
if (pattern === void 0 || !Array.isArray(files)) return void 0;
|
|
1089
1042
|
return files.filter((entry) => {
|
|
1090
|
-
const path =
|
|
1043
|
+
const path = recordOrNull(entry)?.path;
|
|
1091
1044
|
return typeof path === "string" && pattern.test(path);
|
|
1092
1045
|
}).length;
|
|
1093
1046
|
}
|
|
@@ -1145,23 +1098,23 @@ async function workspaceCapturesFromOutput(runDir, ref) {
|
|
|
1145
1098
|
addressGap = "Runtime output cannot be canonically hashed";
|
|
1146
1099
|
}
|
|
1147
1100
|
const project = (rawReceipt, receiptPointer) => {
|
|
1148
|
-
const receipt =
|
|
1101
|
+
const receipt = recordOrNull(rawReceipt);
|
|
1149
1102
|
if (receipt === null) return {
|
|
1150
1103
|
...missing(`workspaceCapture receipt is absent or malformed${addressGap === null ? "" : `; ${addressGap}`}`),
|
|
1151
1104
|
receiptPointer,
|
|
1152
1105
|
receipt: rawReceipt
|
|
1153
1106
|
};
|
|
1154
|
-
const provenance =
|
|
1107
|
+
const provenance = recordOrNull(receipt.provenance);
|
|
1155
1108
|
const attempts = Array.isArray(provenance?.attempts) ? provenance.attempts : null;
|
|
1156
1109
|
const coverageComplete = typeof receipt.coverageComplete === "boolean" ? receipt.coverageComplete : null;
|
|
1157
1110
|
const incompleteReason = typeof receipt.incompleteReason === "string" ? receipt.incompleteReason : null;
|
|
1158
1111
|
const gaps = [];
|
|
1159
1112
|
if (addressGap !== null) gaps.push(addressGap);
|
|
1160
1113
|
if (coverageComplete === null) gaps.push("workspaceCapture.coverageComplete is absent");
|
|
1161
|
-
if (
|
|
1114
|
+
if (recordOrNull(receipt.snapshot) === null) gaps.push("workspaceCapture.snapshot is absent");
|
|
1162
1115
|
if (provenance === null) gaps.push("workspaceCapture.provenance is absent");
|
|
1163
1116
|
if (attempts === null) gaps.push("workspaceCapture.provenance.attempts is absent");
|
|
1164
|
-
else if (attempts.length === 0 || attempts.some((attempt) =>
|
|
1117
|
+
else if (attempts.length === 0 || attempts.some((attempt) => recordOrNull(attempt) === null)) gaps.push("workspaceCapture.provenance.attempts is empty or malformed");
|
|
1165
1118
|
return {
|
|
1166
1119
|
outRef,
|
|
1167
1120
|
blobPath,
|
|
@@ -1173,7 +1126,7 @@ async function workspaceCapturesFromOutput(runDir, ref) {
|
|
|
1173
1126
|
projectionGap: gaps.length > 0 ? gaps.join("; ") : null
|
|
1174
1127
|
};
|
|
1175
1128
|
};
|
|
1176
|
-
const result =
|
|
1129
|
+
const result = recordOrNull(output);
|
|
1177
1130
|
const captures = [];
|
|
1178
1131
|
for (const key of Object.keys(result ?? {})) if (key === "workspaceCapture") captures.push(project(result?.[key], "/workspaceCapture"));
|
|
1179
1132
|
else if (key === "workspaceCaptures") {
|
|
@@ -1238,8 +1191,8 @@ async function nodeTranscripts(runDir, events, nodeIds, root) {
|
|
|
1238
1191
|
});
|
|
1239
1192
|
}
|
|
1240
1193
|
}
|
|
1241
|
-
if (event.kind === "execution-admitted" &&
|
|
1242
|
-
else if (event.kind === "settled" || event.kind === "cancelled" || event.kind === "reconciled") keepReceipt(entry(id),
|
|
1194
|
+
if (event.kind === "execution-admitted" && recordOrNull(event.admission)?.phase === "dispatched") entry(id).dispatched += 1;
|
|
1195
|
+
else if (event.kind === "settled" || event.kind === "cancelled" || event.kind === "reconciled") keepReceipt(entry(id), recordOrNull(event.harnessTranscript));
|
|
1243
1196
|
}
|
|
1244
1197
|
if (root !== void 0 && nodeIds.has(root.id)) keepReceipt(entry(root.id), root.receipt);
|
|
1245
1198
|
const out = /* @__PURE__ */ new Map();
|
|
@@ -1301,7 +1254,7 @@ async function nodeTranscripts(runDir, events, nodeIds, root) {
|
|
|
1301
1254
|
* instead of `?`.
|
|
1302
1255
|
*/
|
|
1303
1256
|
function recordedRunId(result, failure) {
|
|
1304
|
-
return nonEmptyString(
|
|
1257
|
+
return nonEmptyString(recordOrNull(result?.tree)?.root) ?? nonEmptyString(failure?.runId);
|
|
1305
1258
|
}
|
|
1306
1259
|
function absentRuntimeSupervisorRun(runDir, resultText, failureText, instanceId) {
|
|
1307
1260
|
const reason = `no Runtime spawn journal (${JOURNAL_FILE}) under ${runDir}`;
|
|
@@ -1366,7 +1319,7 @@ async function readRuntimeSupervisorRun(runDir, opts = {}) {
|
|
|
1366
1319
|
const workerIds = new Set(childSpawns.map((event) => nonEmptyString(event.id)).filter((id) => id !== null));
|
|
1367
1320
|
const transcripts = await nodeTranscripts(runDir, normalized.events, /* @__PURE__ */ new Set([normalized.root, ...workerIds]), {
|
|
1368
1321
|
id: normalized.root,
|
|
1369
|
-
receipt:
|
|
1322
|
+
receipt: recordOrNull(result?.rootHarnessTranscript)
|
|
1370
1323
|
});
|
|
1371
1324
|
const workers = childSpawns.map((event) => {
|
|
1372
1325
|
const workerId = nonEmptyString(event.id);
|
|
@@ -1406,6 +1359,7 @@ async function readRuntimeSupervisorRun(runDir, opts = {}) {
|
|
|
1406
1359
|
judgeSource: null,
|
|
1407
1360
|
patch: null,
|
|
1408
1361
|
driverLog: null,
|
|
1362
|
+
coordinationLog: await readCoordinationLog(runDir),
|
|
1409
1363
|
harnessWorkerTokens: null,
|
|
1410
1364
|
harnessMissingReason: "Runtime FileRunContext has no external worker-token join",
|
|
1411
1365
|
limits: sourceLimits(normalized.root, normalized.events, workerIds),
|
|
@@ -1586,9 +1540,6 @@ function parseReportArgs(argv) {
|
|
|
1586
1540
|
format
|
|
1587
1541
|
};
|
|
1588
1542
|
}
|
|
1589
|
-
function errorMessage(error) {
|
|
1590
|
-
return error instanceof Error ? error.message : String(error);
|
|
1591
|
-
}
|
|
1592
1543
|
/**
|
|
1593
1544
|
* CLI driver for `agent-eval supervisor-run`. `argv` is everything after the
|
|
1594
1545
|
* command name, so `['report', runDir, ...flags]`. Returns the process exit code.
|
|
@@ -1638,6 +1589,6 @@ async function runSupervisorRunCommand(argv, io = PROCESS_IO) {
|
|
|
1638
1589
|
}
|
|
1639
1590
|
}
|
|
1640
1591
|
//#endregion
|
|
1641
|
-
export { writeSupervisorRunReportSafe as a, runtimeSupervisorRunReader as c, renderSupervisorRunMarkdown as d, analyzeSupervisorRunSources as f, writeSupervisorRunReport as i, renderSupervisorRollupMarkdown as l,
|
|
1592
|
+
export { writeSupervisorRunReportSafe as a, runtimeSupervisorRunReader as c, renderSupervisorRunMarkdown as d, analyzeSupervisorRunSources as f, writeSupervisorRunReport as i, renderSupervisorRollupMarkdown as l, analyzeSupervisorRun as n, isRuntimeSupervisorRunDir as o, parsePatch as p, findSupervisorRunDirs as r, readRuntimeSupervisorRun as s, runSupervisorRunCommand as t, renderSupervisorRunHeadline as u };
|
|
1642
1593
|
|
|
1643
|
-
//# sourceMappingURL=report-command-
|
|
1594
|
+
//# sourceMappingURL=report-command-SC9nqb4M.js.map
|