@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,6 +1,7 @@
|
|
|
1
1
|
import { c as unscreenedRewardFields } from "./reward-nw2xZGZG.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { n as isRecord } from "./json-BhdsJaOQ.js";
|
|
3
|
+
import { f as validateRolloutLine, r as ROLLOUT_SCHEMA, u as isRolloutLine } from "./schema-CvhfLjtZ.js";
|
|
4
|
+
import { a as nonEmptyString, c as parseSupervisorTree, i as asRecord, m as isUnavailable, o as parseJsonRecord, r as readTerminalRecord } from "./terminal-record-D4Rv-j1W.js";
|
|
4
5
|
//#region src/supervisor-run/integrity-issues.ts
|
|
5
6
|
function evidence(path, value) {
|
|
6
7
|
return {
|
|
@@ -179,7 +180,7 @@ function steerIssues(joined, rootCompleted) {
|
|
|
179
180
|
* workers with a terminal event, because a live worker's current turn and session are still
|
|
180
181
|
* being written. A worker whose store records neither fact is not counted either way.
|
|
181
182
|
*/
|
|
182
|
-
function transcriptIssues(source, facts) {
|
|
183
|
+
function transcriptIssues$1(source, facts) {
|
|
183
184
|
if (source.workers === null) return [];
|
|
184
185
|
const closed = new Set(facts.closes.map((close) => close.id).filter((id) => id.length > 0));
|
|
185
186
|
const closedWorkers = source.workers.filter((worker) => worker.workerId !== void 0 && closed.has(worker.workerId));
|
|
@@ -438,7 +439,7 @@ function sourceIssues(source, facts, tree) {
|
|
|
438
439
|
}));
|
|
439
440
|
return out;
|
|
440
441
|
}
|
|
441
|
-
out.push(...transcriptIssues(source, facts));
|
|
442
|
+
out.push(...transcriptIssues$1(source, facts));
|
|
442
443
|
const joined = joinWorkerControls(facts);
|
|
443
444
|
if (joined.issue !== null) out.push(joined.issue);
|
|
444
445
|
const rootCompleted = tree.rootId !== null && tree.nodes.filter((node) => node.rollout_id === tree.rootId).length === 1 && tree.nodes.find((node) => node.rollout_id === tree.rootId)?.outcome.is_completed === true;
|
|
@@ -447,9 +448,6 @@ function sourceIssues(source, facts, tree) {
|
|
|
447
448
|
}
|
|
448
449
|
//#endregion
|
|
449
450
|
//#region src/supervisor-run/integrity-tree.ts
|
|
450
|
-
function isRecord(value) {
|
|
451
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
452
|
-
}
|
|
453
451
|
function parentValue(raw) {
|
|
454
452
|
if (raw.parent_rollout_id === null) return null;
|
|
455
453
|
return nonEmptyString(raw.parent_rollout_id) ?? void 0;
|
|
@@ -506,10 +504,30 @@ function unavailableNodeChecks(record) {
|
|
|
506
504
|
if (!isRecord(record.raw.outcome)) checks.push("timing", "terminal-state");
|
|
507
505
|
return [...new Set(checks)];
|
|
508
506
|
}
|
|
509
|
-
function
|
|
510
|
-
const out = [];
|
|
507
|
+
function buildTreeView(tree, uncertainty) {
|
|
511
508
|
const records = tree.nodes.map(nodeRecord);
|
|
512
509
|
const malformedSourceRows = tree.gaps.filter((gap) => gap.code === "source-row-malformed").reduce((count, gap) => count + (gap.count ?? 1), 0);
|
|
510
|
+
const byId = /* @__PURE__ */ new Map();
|
|
511
|
+
for (const record of records) {
|
|
512
|
+
if (record.id === null) continue;
|
|
513
|
+
const matches = byId.get(record.id) ?? [];
|
|
514
|
+
matches.push(record);
|
|
515
|
+
byId.set(record.id, matches);
|
|
516
|
+
}
|
|
517
|
+
const unknownIdentityRows = records.filter((record) => record.id === null).length + Math.max(malformedSourceRows, uncertainty.unknownIdentityRows ?? 0);
|
|
518
|
+
return {
|
|
519
|
+
tree,
|
|
520
|
+
uncertainty,
|
|
521
|
+
records,
|
|
522
|
+
byId,
|
|
523
|
+
unique: records.filter((record) => record.id !== null && byId.get(record.id)?.length === 1),
|
|
524
|
+
unknownIdentityRows
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
/** Nodes that fail canonical rollout validation, and the checks that cannot run for them. */
|
|
528
|
+
function schemaIssues(view) {
|
|
529
|
+
const { records } = view;
|
|
530
|
+
const out = [];
|
|
513
531
|
for (const record of records) {
|
|
514
532
|
if (record.errors.length === 0) continue;
|
|
515
533
|
out.push(issue({
|
|
@@ -540,13 +558,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
540
558
|
}
|
|
541
559
|
}));
|
|
542
560
|
}
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
}
|
|
561
|
+
return out;
|
|
562
|
+
}
|
|
563
|
+
/** Rollout ids claimed by more than one node. */
|
|
564
|
+
function duplicateIdIssues(view) {
|
|
565
|
+
const { byId } = view;
|
|
566
|
+
const out = [];
|
|
550
567
|
for (const [rolloutId, matches] of byId) {
|
|
551
568
|
if (matches.length < 2) continue;
|
|
552
569
|
out.push(issue({
|
|
@@ -564,8 +581,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
564
581
|
recommendedAction: "Give every invocation one stable rollout id and regenerate the tree."
|
|
565
582
|
}));
|
|
566
583
|
}
|
|
567
|
-
|
|
568
|
-
|
|
584
|
+
return out;
|
|
585
|
+
}
|
|
586
|
+
/** Whether the declared root exists and is unambiguous; returns the root row when it does. */
|
|
587
|
+
function rootIssues(view) {
|
|
588
|
+
const { tree, records, byId, unknownIdentityRows } = view;
|
|
589
|
+
const out = [];
|
|
569
590
|
let root;
|
|
570
591
|
if (tree.rootId === null) out.push(issue({
|
|
571
592
|
code: "root-unavailable",
|
|
@@ -609,6 +630,15 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
609
630
|
recommendedAction: "Restore the root rollout row or correct rootId."
|
|
610
631
|
}));
|
|
611
632
|
}
|
|
633
|
+
return {
|
|
634
|
+
issues: out,
|
|
635
|
+
root
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
/** The root must be parentless and labeled a supervisor. */
|
|
639
|
+
function rootShapeIssues(view, root) {
|
|
640
|
+
const { tree } = view;
|
|
641
|
+
const out = [];
|
|
612
642
|
if (root !== void 0) {
|
|
613
643
|
if (root.parent !== void 0 && root.parent !== null) out.push(issue({
|
|
614
644
|
code: "root-has-parent",
|
|
@@ -631,6 +661,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
631
661
|
recommendedAction: "Preserve the root invocation role as supervisor when minting rollout rows."
|
|
632
662
|
}));
|
|
633
663
|
}
|
|
664
|
+
return out;
|
|
665
|
+
}
|
|
666
|
+
/** Parent-child edges: detached nodes, missing parents, cross-run edges and impossible orderings. */
|
|
667
|
+
function edgeIssues(view) {
|
|
668
|
+
const { tree, uncertainty, byId, unique, unknownIdentityRows } = view;
|
|
669
|
+
const out = [];
|
|
634
670
|
for (const record of unique) {
|
|
635
671
|
if (record.parent === void 0) continue;
|
|
636
672
|
if (record.parent === null) {
|
|
@@ -714,6 +750,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
714
750
|
recommendedAction: "Correct the causal timestamps or attach the child to its actual spawner."
|
|
715
751
|
}));
|
|
716
752
|
}
|
|
753
|
+
return out;
|
|
754
|
+
}
|
|
755
|
+
/** Invocations timestamped as closing before they started. */
|
|
756
|
+
function closeBeforeStartIssues(view) {
|
|
757
|
+
const { unique } = view;
|
|
758
|
+
const out = [];
|
|
717
759
|
for (const record of unique) {
|
|
718
760
|
const start = metric(record, ["spawned_at", "started_at"]);
|
|
719
761
|
const close = metric(record, [
|
|
@@ -733,6 +775,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
733
775
|
recommendedAction: "Correct the event ordering or retain clock-domain metadata."
|
|
734
776
|
}));
|
|
735
777
|
}
|
|
778
|
+
return out;
|
|
779
|
+
}
|
|
780
|
+
/** Parent cycles, each reported once. */
|
|
781
|
+
function parentCycleIssues(view) {
|
|
782
|
+
const { byId, unique } = view;
|
|
783
|
+
const out = [];
|
|
736
784
|
const emittedCycles = /* @__PURE__ */ new Set();
|
|
737
785
|
const resolved = /* @__PURE__ */ new Set();
|
|
738
786
|
for (const start of unique) {
|
|
@@ -775,6 +823,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
775
823
|
}
|
|
776
824
|
for (const id of path) resolved.add(id);
|
|
777
825
|
}
|
|
826
|
+
return out;
|
|
827
|
+
}
|
|
828
|
+
/** A completed run whose children never recorded a terminal outcome. */
|
|
829
|
+
function childTerminalIssues(view, root) {
|
|
830
|
+
const { unique } = view;
|
|
831
|
+
const out = [];
|
|
778
832
|
if (root?.completed === true) {
|
|
779
833
|
const missingTerminal = unique.filter((record) => record.id !== root?.id && record.terminal === false);
|
|
780
834
|
if (missingTerminal.length > 0) out.push(issue({
|
|
@@ -792,6 +846,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
792
846
|
}
|
|
793
847
|
}));
|
|
794
848
|
}
|
|
849
|
+
return out;
|
|
850
|
+
}
|
|
851
|
+
/** Rows with neither inlined messages nor a retained transcript. */
|
|
852
|
+
function transcriptIssues(view) {
|
|
853
|
+
const { records } = view;
|
|
854
|
+
const out = [];
|
|
795
855
|
const uninlined = records.filter((record) => record.messages?.length === 0);
|
|
796
856
|
const missingTranscripts = uninlined.filter((record) => record.transcriptRef === null);
|
|
797
857
|
if (missingTranscripts.length > 0) out.push(issue({
|
|
@@ -809,6 +869,12 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
809
869
|
retained_by_reference_count: uninlined.length - missingTranscripts.length
|
|
810
870
|
}
|
|
811
871
|
}));
|
|
872
|
+
return out;
|
|
873
|
+
}
|
|
874
|
+
/** Rows without the canonical agent-profile identity. */
|
|
875
|
+
function profileIssues(view) {
|
|
876
|
+
const { records } = view;
|
|
877
|
+
const out = [];
|
|
812
878
|
const missingProfiles = records.filter((record) => record.profileId === null);
|
|
813
879
|
if (missingProfiles.length > 0) out.push(issue({
|
|
814
880
|
code: "profile-id-unavailable",
|
|
@@ -826,6 +892,22 @@ function treeIssues(tree, uncertainty = {}) {
|
|
|
826
892
|
}));
|
|
827
893
|
return out;
|
|
828
894
|
}
|
|
895
|
+
function treeIssues(tree, uncertainty = {}) {
|
|
896
|
+
const view = buildTreeView(tree, uncertainty);
|
|
897
|
+
const { issues: rootProblems, root } = rootIssues(view);
|
|
898
|
+
return [
|
|
899
|
+
...schemaIssues(view),
|
|
900
|
+
...duplicateIdIssues(view),
|
|
901
|
+
...rootProblems,
|
|
902
|
+
...rootShapeIssues(view, root),
|
|
903
|
+
...edgeIssues(view),
|
|
904
|
+
...closeBeforeStartIssues(view),
|
|
905
|
+
...parentCycleIssues(view),
|
|
906
|
+
...childTerminalIssues(view, root),
|
|
907
|
+
...transcriptIssues(view),
|
|
908
|
+
...profileIssues(view)
|
|
909
|
+
];
|
|
910
|
+
}
|
|
829
911
|
//#endregion
|
|
830
912
|
//#region src/supervisor-run/integrity-types.ts
|
|
831
913
|
const SUPERVISOR_RUN_INTEGRITY_SCHEMA = "tangle.supervisor-run-integrity@1";
|
|
@@ -875,34 +957,16 @@ function hasWorkerId(worker) {
|
|
|
875
957
|
function supervisorRunRolloutLines(src, opts = {}) {
|
|
876
958
|
return supervisorRunRolloutLinesFromFacts(src, parseSupervisorTree(src), opts);
|
|
877
959
|
}
|
|
878
|
-
/**
|
|
879
|
-
function
|
|
880
|
-
const gaps = [];
|
|
881
|
-
if (src.journal === null) {
|
|
882
|
-
gaps.push({
|
|
883
|
-
code: "journal-unavailable",
|
|
884
|
-
message: `${src.supRunDir === null ? "no supervisor run dir" : "journal absent"}; no nodes recoverable`
|
|
885
|
-
});
|
|
886
|
-
return {
|
|
887
|
-
rootId: null,
|
|
888
|
-
nodes: [],
|
|
889
|
-
gaps
|
|
890
|
-
};
|
|
891
|
-
}
|
|
892
|
-
const malformedSourceRows = tree.journalInvalidRows + tree.spawns.filter((spawn) => !spawn.valid).length;
|
|
893
|
-
if (malformedSourceRows > 0) gaps.push({
|
|
894
|
-
code: "source-row-malformed",
|
|
895
|
-
message: `${malformedSourceRows} of ${tree.journalRows} journal row(s) were unusable and excluded from the tree`,
|
|
896
|
-
count: malformedSourceRows
|
|
897
|
-
});
|
|
960
|
+
/** What the root and worker rows share: the parsed run record, the row template and the gap collector. */
|
|
961
|
+
function rolloutContext(src, tree, opts, gaps) {
|
|
898
962
|
const state = tree.state;
|
|
899
|
-
const result =
|
|
900
|
-
const judge =
|
|
963
|
+
const result = parseJsonRecord(src.result);
|
|
964
|
+
const judge = parseJsonRecord(src.judge);
|
|
901
965
|
const stateResult = asRecord(state?.result);
|
|
902
966
|
const terminal = readTerminalRecord({
|
|
903
967
|
state,
|
|
904
968
|
result,
|
|
905
|
-
failure: src.failure === void 0 ? void 0 :
|
|
969
|
+
failure: src.failure === void 0 ? void 0 : parseJsonRecord(src.failure)
|
|
906
970
|
});
|
|
907
971
|
const rootId = tree.rootId;
|
|
908
972
|
const runId = opts.runId ?? rootId ?? src.runRef;
|
|
@@ -927,7 +991,6 @@ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
|
|
|
927
991
|
messages: [],
|
|
928
992
|
tool_defs: []
|
|
929
993
|
};
|
|
930
|
-
const nodes = [];
|
|
931
994
|
const noteCaptureGaps = (owner, nodeId, captures) => {
|
|
932
995
|
if (captures === null || captures?.length === 0) {
|
|
933
996
|
gaps.push({
|
|
@@ -951,173 +1014,233 @@ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
|
|
|
951
1014
|
}
|
|
952
1015
|
return incomplete ? "workspace capture evidence incomplete" : null;
|
|
953
1016
|
};
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
agent_profile_cell_id: rootSpawn?.profileDigest ?? null,
|
|
978
|
-
sampling: null
|
|
979
|
-
},
|
|
980
|
-
outcome: {
|
|
981
|
-
...unscreenedRewardFields(reward),
|
|
982
|
-
reward_source: src.judgeSource,
|
|
983
|
-
verdict: judge ?? null,
|
|
984
|
-
metrics: {
|
|
985
|
-
arm: src.arm,
|
|
986
|
-
sup_status: isUnavailable(terminal.supStatus) ? null : terminal.supStatus,
|
|
987
|
-
sup_verdict: typeof state?.verdict === "string" ? state.verdict : null,
|
|
988
|
-
delivered: typeof stateResult.delivered === "boolean" ? stateResult.delivered : null,
|
|
989
|
-
verify_pass: typeof result?.verify_pass === "boolean" ? result.verify_pass : null,
|
|
990
|
-
started_at: tree.startedAt,
|
|
991
|
-
completed_at: tree.completedAt,
|
|
992
|
-
workers_spawned: tree.workerSpawns.length,
|
|
993
|
-
brain_metered_events: tree.brain.meteredCount,
|
|
994
|
-
runtime: rootSpawn?.runtime ?? null,
|
|
995
|
-
profile_digest: rootSpawn?.profileDigest ?? null
|
|
996
|
-
},
|
|
997
|
-
is_completed: terminal.completed === true,
|
|
998
|
-
is_truncated: false,
|
|
999
|
-
error: terminal.completed !== false ? null : !isUnavailable(terminal.supReason) && terminal.supReason !== null ? terminal.supReason : !isUnavailable(terminal.failure) && terminal.failure !== null ? terminal.failure.message ?? terminal.failure.name : null,
|
|
1000
|
-
realness_gated: false
|
|
1001
|
-
},
|
|
1002
|
-
cost: {
|
|
1003
|
-
...EMPTY_COST,
|
|
1004
|
-
usd: src.limits.spendUsd !== null ? null : typeof stateResult.spentUsd === "number" ? stateResult.spentUsd : tree.brain.usd,
|
|
1005
|
-
tokens_in: src.limits.managerTokens === null ? tree.brain.tokensIn : null,
|
|
1006
|
-
tokens_out: src.limits.managerTokens === null ? tree.brain.tokensOut : null,
|
|
1007
|
-
cache_read: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheRead : null,
|
|
1008
|
-
cache_write: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheWrite : null,
|
|
1009
|
-
wall_s: wallMs === null ? null : wallMs / 1e3
|
|
1010
|
-
},
|
|
1011
|
-
artifacts: {
|
|
1012
|
-
patch_path: typeof result?.patchPath === "string" ? result.patchPath : null,
|
|
1013
|
-
run_dir: src.supRunDir,
|
|
1014
|
-
transcript_ref: src.rootTranscriptRef ?? null
|
|
1015
|
-
},
|
|
1016
|
-
provenance: {
|
|
1017
|
-
captured_at: capturedAt,
|
|
1018
|
-
capture: "backfill",
|
|
1019
|
-
lossy_projection: true,
|
|
1020
|
-
...captures === void 0 ? {} : { workspace_captures: captures },
|
|
1021
|
-
gap: [src.rootTranscriptRef == null ? "supervision journal carries structure and spend, not the brain transcript" : "brain transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
|
|
1022
|
-
}
|
|
1017
|
+
return {
|
|
1018
|
+
src,
|
|
1019
|
+
tree,
|
|
1020
|
+
opts,
|
|
1021
|
+
gaps,
|
|
1022
|
+
state,
|
|
1023
|
+
result,
|
|
1024
|
+
judge,
|
|
1025
|
+
stateResult,
|
|
1026
|
+
terminal,
|
|
1027
|
+
rootId,
|
|
1028
|
+
capturedAt,
|
|
1029
|
+
base,
|
|
1030
|
+
noteCaptureGaps
|
|
1031
|
+
};
|
|
1032
|
+
}
|
|
1033
|
+
/** The supervisor invocation row, or nothing when the journal never named a root. */
|
|
1034
|
+
function rootRolloutNode(ctx) {
|
|
1035
|
+
const { src, tree, opts, gaps, state, result, judge, stateResult, terminal, rootId, capturedAt, noteCaptureGaps, base } = ctx;
|
|
1036
|
+
if (rootId === null) {
|
|
1037
|
+
gaps.push({
|
|
1038
|
+
code: "root-spawn-unavailable",
|
|
1039
|
+
message: "no parentless spawned event in the journal"
|
|
1023
1040
|
});
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1041
|
+
return null;
|
|
1042
|
+
}
|
|
1043
|
+
const rootSpawn = tree.spawns.find((spawn) => spawn.valid && spawn.id === rootId);
|
|
1044
|
+
const judgeResolved = typeof judge?.resolved === "boolean" ? judge.resolved : null;
|
|
1045
|
+
const reward = (typeof judge?.score === "number" ? judge.score : null) ?? (judgeResolved === null ? null : judgeResolved ? 1 : 0);
|
|
1046
|
+
if (reward === null) gaps.push({
|
|
1047
|
+
code: "root-reward-unavailable",
|
|
1048
|
+
message: "no judge verdict for this run",
|
|
1049
|
+
nodeId: rootId
|
|
1027
1050
|
});
|
|
1028
|
-
const
|
|
1029
|
-
const
|
|
1030
|
-
const
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1051
|
+
const wallMs = tree.startedAt !== null && tree.completedAt !== null && tree.completedAt >= tree.startedAt ? tree.completedAt - tree.startedAt : null;
|
|
1052
|
+
const captures = src.rootWorkspaceCaptures;
|
|
1053
|
+
const captureGap = noteCaptureGaps(`root ${JSON.stringify(rootId)}`, rootId, captures);
|
|
1054
|
+
return {
|
|
1055
|
+
...base,
|
|
1056
|
+
rollout_id: rootId,
|
|
1057
|
+
parent_rollout_id: null,
|
|
1058
|
+
role: rootSpawn?.role ?? "supervisor",
|
|
1059
|
+
policy: {
|
|
1060
|
+
harness: opts.supervisorHarness ?? null,
|
|
1061
|
+
harness_version: null,
|
|
1062
|
+
model: opts.supervisorModel ?? null,
|
|
1063
|
+
provider: null,
|
|
1064
|
+
profile_commit: null,
|
|
1065
|
+
agent_profile_cell_id: rootSpawn?.profileDigest ?? null,
|
|
1066
|
+
sampling: null
|
|
1067
|
+
},
|
|
1068
|
+
outcome: {
|
|
1069
|
+
...unscreenedRewardFields(reward),
|
|
1070
|
+
reward_source: src.judgeSource,
|
|
1071
|
+
verdict: judge ?? null,
|
|
1072
|
+
metrics: {
|
|
1073
|
+
arm: src.arm,
|
|
1074
|
+
sup_status: isUnavailable(terminal.supStatus) ? null : terminal.supStatus,
|
|
1075
|
+
sup_verdict: typeof state?.verdict === "string" ? state.verdict : null,
|
|
1076
|
+
delivered: typeof stateResult.delivered === "boolean" ? stateResult.delivered : null,
|
|
1077
|
+
verify_pass: typeof result?.verify_pass === "boolean" ? result.verify_pass : null,
|
|
1078
|
+
started_at: tree.startedAt,
|
|
1079
|
+
completed_at: tree.completedAt,
|
|
1080
|
+
workers_spawned: tree.workerSpawns.length,
|
|
1081
|
+
brain_metered_events: tree.brain.meteredCount,
|
|
1082
|
+
runtime: rootSpawn?.runtime ?? null,
|
|
1083
|
+
profile_digest: rootSpawn?.profileDigest ?? null
|
|
1084
|
+
},
|
|
1085
|
+
is_completed: terminal.completed === true,
|
|
1086
|
+
is_truncated: false,
|
|
1087
|
+
error: terminal.completed !== false ? null : !isUnavailable(terminal.supReason) && terminal.supReason !== null ? terminal.supReason : !isUnavailable(terminal.failure) && terminal.failure !== null ? terminal.failure.message ?? terminal.failure.name : null,
|
|
1088
|
+
realness_gated: false
|
|
1089
|
+
},
|
|
1090
|
+
cost: {
|
|
1091
|
+
...EMPTY_COST,
|
|
1092
|
+
usd: src.limits.spendUsd !== null ? null : typeof stateResult.spentUsd === "number" ? stateResult.spentUsd : tree.brain.usd,
|
|
1093
|
+
tokens_in: src.limits.managerTokens === null ? tree.brain.tokensIn : null,
|
|
1094
|
+
tokens_out: src.limits.managerTokens === null ? tree.brain.tokensOut : null,
|
|
1095
|
+
cache_read: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheRead : null,
|
|
1096
|
+
cache_write: src.limits.managerTokens === null && tree.brain.hasCache ? tree.brain.cacheWrite : null,
|
|
1097
|
+
wall_s: wallMs === null ? null : wallMs / 1e3
|
|
1098
|
+
},
|
|
1099
|
+
artifacts: {
|
|
1100
|
+
patch_path: typeof result?.patchPath === "string" ? result.patchPath : null,
|
|
1101
|
+
run_dir: src.supRunDir,
|
|
1102
|
+
transcript_ref: src.rootTranscriptRef ?? null
|
|
1103
|
+
},
|
|
1104
|
+
provenance: {
|
|
1105
|
+
captured_at: capturedAt,
|
|
1106
|
+
capture: "backfill",
|
|
1107
|
+
lossy_projection: true,
|
|
1108
|
+
...captures === void 0 ? {} : { workspace_captures: captures },
|
|
1109
|
+
gap: [src.rootTranscriptRef == null ? "supervision journal carries structure and spend, not the brain transcript" : "brain transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
|
|
1039
1110
|
}
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1111
|
+
};
|
|
1112
|
+
}
|
|
1113
|
+
/** The journal closes and the reader's worker sources, joined to spawns by stable id first and by label only as a fallback. */
|
|
1114
|
+
function workerLookups(ctx) {
|
|
1115
|
+
const { src, tree } = ctx;
|
|
1116
|
+
return {
|
|
1117
|
+
closeById: new Map(tree.closes.map((c) => [c.id, c])),
|
|
1118
|
+
sourceById: new Map((src.workers ?? []).filter(hasWorkerId).map((worker) => [worker.workerId, worker])),
|
|
1119
|
+
fallbackSourceByLabel: new Map((src.workers ?? []).filter((worker) => worker.workerId === void 0).map((worker) => [worker.label, worker]))
|
|
1120
|
+
};
|
|
1121
|
+
}
|
|
1122
|
+
/** One worker row, or nothing when its spawn has no explicit role. */
|
|
1123
|
+
function workerRolloutNode(ctx, lookups, spawn) {
|
|
1124
|
+
const { src, tree, opts, gaps, capturedAt, noteCaptureGaps, base } = ctx;
|
|
1125
|
+
const { closeById, sourceById, fallbackSourceByLabel } = lookups;
|
|
1126
|
+
if (spawn.role === null) {
|
|
1127
|
+
gaps.push({
|
|
1128
|
+
code: "node-role-unavailable",
|
|
1129
|
+
message: `child ${JSON.stringify(spawn.label)} has no explicit invocation role`,
|
|
1050
1130
|
nodeId: spawn.id
|
|
1051
1131
|
});
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
profile_digest: spawn.profileDigest
|
|
1093
|
-
},
|
|
1094
|
-
is_completed: close?.kind === "settled" && close.status === "done",
|
|
1095
|
-
is_truncated: close?.kind === "cancelled",
|
|
1096
|
-
error: close?.kind === "cancelled" ? close.reason ?? "cancelled" : close?.status === "down" ? close.reason ?? "child down" : null,
|
|
1097
|
-
realness_gated: false
|
|
1098
|
-
},
|
|
1099
|
-
cost: {
|
|
1100
|
-
...EMPTY_COST,
|
|
1101
|
-
usd: src.limits.spendUsd !== null || !close?.hasSpend ? null : close.spend.usd,
|
|
1102
|
-
tokens_in: workerSource?.tokensIn ?? (close?.hasSpend ? close.spend.tokens.input : null),
|
|
1103
|
-
tokens_out: workerSource?.tokensOut ?? (close?.hasSpend ? close.spend.tokens.output : null),
|
|
1104
|
-
cache_read: workerSource?.cacheRead ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheRead : null),
|
|
1105
|
-
cache_write: workerSource?.cacheWrite ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheWrite : null),
|
|
1106
|
-
wall_s: wallMs === null ? null : wallMs / 1e3
|
|
1132
|
+
return null;
|
|
1133
|
+
}
|
|
1134
|
+
const close = closeById.get(spawn.id) ?? null;
|
|
1135
|
+
const workerSource = sourceById.get(spawn.id) ?? fallbackSourceByLabel.get(spawn.label) ?? null;
|
|
1136
|
+
const facts = tree.workerLogs.get(workerSource?.workerId ?? workerSource?.label ?? spawn.label) ?? null;
|
|
1137
|
+
const wallMs = facts?.started != null && facts.finishedAt != null ? facts.finishedAt - facts.started : null;
|
|
1138
|
+
const score = close?.score ?? facts?.score ?? null;
|
|
1139
|
+
const passed = close?.valid ?? facts?.passed ?? null;
|
|
1140
|
+
const reward = score ?? (passed === null ? null : passed ? 1 : 0);
|
|
1141
|
+
if (reward === null) gaps.push({
|
|
1142
|
+
code: "child-reward-unavailable",
|
|
1143
|
+
message: `child ${JSON.stringify(spawn.label)} has no verify verdict`,
|
|
1144
|
+
nodeId: spawn.id
|
|
1145
|
+
});
|
|
1146
|
+
const isSupervisor = spawn.role === "supervisor";
|
|
1147
|
+
const captures = workerSource?.workspaceCaptures;
|
|
1148
|
+
const captureGap = noteCaptureGaps(`child ${JSON.stringify(spawn.label)}`, spawn.id, captures);
|
|
1149
|
+
return {
|
|
1150
|
+
...base,
|
|
1151
|
+
rollout_id: spawn.id,
|
|
1152
|
+
parent_rollout_id: spawn.parent,
|
|
1153
|
+
role: spawn.role,
|
|
1154
|
+
policy: {
|
|
1155
|
+
harness: isSupervisor ? opts.supervisorHarness ?? null : opts.workerHarness ?? null,
|
|
1156
|
+
harness_version: null,
|
|
1157
|
+
model: isSupervisor ? opts.supervisorModel ?? null : opts.workerModel ?? null,
|
|
1158
|
+
provider: null,
|
|
1159
|
+
profile_commit: null,
|
|
1160
|
+
agent_profile_cell_id: spawn.profileDigest,
|
|
1161
|
+
sampling: null
|
|
1162
|
+
},
|
|
1163
|
+
outcome: {
|
|
1164
|
+
...unscreenedRewardFields(reward),
|
|
1165
|
+
reward_source: reward === null ? null : score === null ? "worker-self-verify" : "worker-verdict-score",
|
|
1166
|
+
verdict: close === null ? null : {
|
|
1167
|
+
kind: close.kind,
|
|
1168
|
+
status: close.status,
|
|
1169
|
+
verdict: close.rawVerdict,
|
|
1170
|
+
valid: close.valid,
|
|
1171
|
+
score: close.score
|
|
1107
1172
|
},
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1173
|
+
metrics: {
|
|
1174
|
+
label: spawn.label,
|
|
1175
|
+
spawned_at: spawn.at,
|
|
1176
|
+
settled_at: close?.at ?? null,
|
|
1177
|
+
started_at: facts?.started ?? null,
|
|
1178
|
+
finished_at: facts?.finishedAt ?? null,
|
|
1179
|
+
wall_ms: wallMs,
|
|
1180
|
+
patch_bytes: workerSource?.patchBytes ?? facts?.finishedPatchBytes ?? null,
|
|
1181
|
+
evidence_bytes: facts?.evidenceBytes ?? null,
|
|
1182
|
+
steers_queued: facts?.steersQueued ?? null,
|
|
1183
|
+
steers_delivered: facts?.steersDelivered ?? null,
|
|
1184
|
+
questions: facts?.questions ?? null,
|
|
1185
|
+
runtime: spawn.runtime,
|
|
1186
|
+
profile_digest: spawn.profileDigest
|
|
1112
1187
|
},
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1188
|
+
is_completed: close?.kind === "settled" && close.status === "done",
|
|
1189
|
+
is_truncated: close?.kind === "cancelled",
|
|
1190
|
+
error: close?.kind === "cancelled" ? close.reason ?? "cancelled" : close?.status === "down" ? close.reason ?? "child down" : null,
|
|
1191
|
+
realness_gated: false
|
|
1192
|
+
},
|
|
1193
|
+
cost: {
|
|
1194
|
+
...EMPTY_COST,
|
|
1195
|
+
usd: src.limits.spendUsd !== null || !close?.hasSpend ? null : close.spend.usd,
|
|
1196
|
+
tokens_in: workerSource?.tokensIn ?? (close?.hasSpend ? close.spend.tokens.input : null),
|
|
1197
|
+
tokens_out: workerSource?.tokensOut ?? (close?.hasSpend ? close.spend.tokens.output : null),
|
|
1198
|
+
cache_read: workerSource?.cacheRead ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheRead : null),
|
|
1199
|
+
cache_write: workerSource?.cacheWrite ?? (close?.hasSpend && close.spend.tokens.hasCache ? close.spend.tokens.cacheWrite : null),
|
|
1200
|
+
wall_s: wallMs === null ? null : wallMs / 1e3
|
|
1201
|
+
},
|
|
1202
|
+
artifacts: {
|
|
1203
|
+
patch_path: workerSource?.patchPath ?? null,
|
|
1204
|
+
run_dir: src.supRunDir,
|
|
1205
|
+
transcript_ref: workerSource?.transcriptRef ?? null
|
|
1206
|
+
},
|
|
1207
|
+
provenance: {
|
|
1208
|
+
captured_at: capturedAt,
|
|
1209
|
+
capture: "backfill",
|
|
1210
|
+
lossy_projection: true,
|
|
1211
|
+
...captures === void 0 ? {} : { workspace_captures: captures },
|
|
1212
|
+
gap: [workerSource?.transcriptRef == null ? "no worker transcript was retained; messages unavailable" : "worker transcript retained by reference; messages not inlined into this row", captureGap].filter((reason) => reason !== null).join("; ")
|
|
1213
|
+
}
|
|
1214
|
+
};
|
|
1215
|
+
}
|
|
1216
|
+
/** Mint rollout rows from an already parsed source without reading its JSONL again. */
|
|
1217
|
+
function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
|
|
1218
|
+
const gaps = [];
|
|
1219
|
+
if (src.journal === null) {
|
|
1220
|
+
gaps.push({
|
|
1221
|
+
code: "journal-unavailable",
|
|
1222
|
+
message: `${src.supRunDir === null ? "no supervisor run dir" : "journal absent"}; no nodes recoverable`
|
|
1120
1223
|
});
|
|
1224
|
+
return {
|
|
1225
|
+
rootId: null,
|
|
1226
|
+
nodes: [],
|
|
1227
|
+
gaps
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1230
|
+
const malformedSourceRows = tree.journalInvalidRows + tree.spawns.filter((spawn) => !spawn.valid).length;
|
|
1231
|
+
if (malformedSourceRows > 0) gaps.push({
|
|
1232
|
+
code: "source-row-malformed",
|
|
1233
|
+
message: `${malformedSourceRows} of ${tree.journalRows} journal row(s) were unusable and excluded from the tree`,
|
|
1234
|
+
count: malformedSourceRows
|
|
1235
|
+
});
|
|
1236
|
+
const ctx = rolloutContext(src, tree, opts, gaps);
|
|
1237
|
+
const nodes = [];
|
|
1238
|
+
const root = rootRolloutNode(ctx);
|
|
1239
|
+
if (root) nodes.push(root);
|
|
1240
|
+
const lookups = workerLookups(ctx);
|
|
1241
|
+
for (const spawn of tree.workerSpawns) {
|
|
1242
|
+
const node = workerRolloutNode(ctx, lookups, spawn);
|
|
1243
|
+
if (node) nodes.push(node);
|
|
1121
1244
|
}
|
|
1122
1245
|
const invalid = nodes.filter((n) => !isRolloutLine(n));
|
|
1123
1246
|
if (invalid.length > 0) gaps.push({
|
|
@@ -1126,7 +1249,7 @@ function supervisorRunRolloutLinesFromFacts(src, tree, opts = {}) {
|
|
|
1126
1249
|
count: invalid.length
|
|
1127
1250
|
});
|
|
1128
1251
|
return {
|
|
1129
|
-
rootId,
|
|
1252
|
+
rootId: tree.rootId,
|
|
1130
1253
|
nodes,
|
|
1131
1254
|
gaps
|
|
1132
1255
|
};
|
|
@@ -1190,4 +1313,4 @@ function analyzeSupervisorRunIntegrity(input, options = {}) {
|
|
|
1190
1313
|
//#endregion
|
|
1191
1314
|
export { supervisorRunRolloutLines as n, SUPERVISOR_RUN_INTEGRITY_SCHEMA as r, analyzeSupervisorRunIntegrity as t };
|
|
1192
1315
|
|
|
1193
|
-
//# sourceMappingURL=integrity-
|
|
1316
|
+
//# sourceMappingURL=integrity-C8oUeB0g.js.map
|