reeval 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -30
- package/THIRD_PARTY_NOTICES.md +218 -11
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +30 -30
- package/dist/adapter-DWlpOtRn.js +279 -0
- package/dist/adapter-DWlpOtRn.js.map +1 -0
- package/dist/{agent-6FefIhX7.js → agent-CURAwx_q.js} +6 -6
- package/dist/{agent-6FefIhX7.js.map → agent-CURAwx_q.js.map} +1 -1
- package/dist/{agent-WSmTaesf.js → agent-CaS_2Sce.js} +46 -15
- package/dist/agent-CaS_2Sce.js.map +1 -0
- package/dist/{analysis-DlGBDjTj.js → analysis-Bxub9LMT.js} +4 -4
- package/dist/{analysis-DlGBDjTj.js.map → analysis-Bxub9LMT.js.map} +1 -1
- package/dist/{assemble-BCZzTyR7.js → assemble-B9Alds-z.js} +69 -41
- package/dist/assemble-B9Alds-z.js.map +1 -0
- package/dist/assemble-J5MukZFY.js +1 -0
- package/dist/{client-Bbo9SPlK.js → assert-EUIoRdIt.js} +10 -113
- package/dist/assert-EUIoRdIt.js.map +1 -0
- package/dist/bridge/index.mjs +248 -55
- package/dist/{capture-Bp74Z6Fr.js → capture-CNb9SuU5.js} +145 -31
- package/dist/capture-CNb9SuU5.js.map +1 -0
- package/dist/capture-jquXZBKK.js +1 -0
- package/dist/{cli-CVrMh_qz.js → cli-D303Vj5N.js} +133 -115
- package/dist/cli-D303Vj5N.js.map +1 -0
- package/dist/{cli-spec-CKEYa8V2.js → cli-spec-BPZbQG2p.js} +36 -17
- package/dist/cli-spec-BPZbQG2p.js.map +1 -0
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/client-fcwgwOAD.js +106 -0
- package/dist/client-fcwgwOAD.js.map +1 -0
- package/dist/{command-CzIFp1JQ.js → command-BLfT7vnQ.js} +18 -17
- package/dist/command-BLfT7vnQ.js.map +1 -0
- package/dist/{command-C5xFPKHM.js → command-BT9a37ZR.js} +374 -72
- package/dist/command-BT9a37ZR.js.map +1 -0
- package/dist/{command-DUT5l13I.js → command-Bge8F7Ko.js} +316 -83
- package/dist/command-Bge8F7Ko.js.map +1 -0
- package/dist/command-BkFjijN2.js +1 -0
- package/dist/{command-BFP0hKEb.js → command-CMJtHKRa.js} +14 -14
- package/dist/{command-BFP0hKEb.js.map → command-CMJtHKRa.js.map} +1 -1
- package/dist/commands-1p-bIWhN.js +1 -0
- package/dist/{commands-CLmPBrTS.js → commands-BFx16WB8.js} +7 -7
- package/dist/commands-BFx16WB8.js.map +1 -0
- package/dist/config-DEgnUiU-.js +756 -0
- package/dist/config-DEgnUiU-.js.map +1 -0
- package/dist/{context-DbSMEVKs.js → context-C1mxXh80.js} +11 -3
- package/dist/context-C1mxXh80.js.map +1 -0
- package/dist/{db-CfQFwJtq.js → db-CdHizc4_.js} +455 -36
- package/dist/db-CdHizc4_.js.map +1 -0
- package/dist/db-Dm1cRJJP.js +2 -0
- package/dist/debug-D7bEv_UV.js +1 -0
- package/dist/{dist-CTzThfu_.js → dist-B8hJImYt.js} +17 -4
- package/dist/dist-B8hJImYt.js.map +1 -0
- package/dist/{docker-CRQGQbIt.js → docker-7b_2SaH7.js} +22 -21
- package/dist/docker-7b_2SaH7.js.map +1 -0
- package/dist/{docker-DV2GNgle.js → docker-sZrNrr82.js} +3 -3
- package/dist/docker-sZrNrr82.js.map +1 -0
- package/dist/docker-yauK-9X8.js +1 -0
- package/dist/{doctor-DlKycx5H.js → doctor-BYNok4UO.js} +262 -83
- package/dist/doctor-BYNok4UO.js.map +1 -0
- package/dist/{duration-JsJrIWXq.js → duration-CEOQww97.js} +2 -2
- package/dist/{duration-JsJrIWXq.js.map → duration-CEOQww97.js.map} +1 -1
- package/dist/{egress-BhzNh7Yi.js → egress-C4PZTSSe.js} +146 -14
- package/dist/egress-C4PZTSSe.js.map +1 -0
- package/dist/environment-DNjRk0nU.js +1133 -0
- package/dist/environment-DNjRk0nU.js.map +1 -0
- package/dist/{errors-yDAEwmZo.js → errors-B6BSMs03.js} +2 -2
- package/dist/errors-B6BSMs03.js.map +1 -0
- package/dist/{errors-C9w_ud7g.js → errors-r025B0Zb.js} +4 -4
- package/dist/errors-r025B0Zb.js.map +1 -0
- package/dist/evaluate-C1UVL21l.d.ts +92 -0
- package/dist/evaluate-D4zeRGBF.js +2351 -0
- package/dist/evaluate-D4zeRGBF.js.map +1 -0
- package/dist/files-BAt0i00X.js +1 -0
- package/dist/{files-CSzVADHn.js → files-BXUdY8tr.js} +9 -8
- package/dist/{files-CSzVADHn.js.map → files-BXUdY8tr.js.map} +1 -1
- package/dist/files-BhyltlDB.js +1 -0
- package/dist/files-Bk1mC3AN.js +43 -0
- package/dist/files-Bk1mC3AN.js.map +1 -0
- package/dist/{files-DJUFg-4e.js → files-DQmHE7pb.js} +5 -5
- package/dist/{files-DJUFg-4e.js.map → files-DQmHE7pb.js.map} +1 -1
- package/dist/files-ZZPqfAo6.js +1 -0
- package/dist/harness-B8QC9u0O.js +323 -0
- package/dist/harness-B8QC9u0O.js.map +1 -0
- package/dist/harness.d.ts +16 -30
- package/dist/harness.js +1 -2
- package/dist/{header-CALhmafp.js → header-hK-Z_Po9.js} +2 -2
- package/dist/{header-CALhmafp.js.map → header-hK-Z_Po9.js.map} +1 -1
- package/dist/{images-BMgdpMAX.js → images-0On0cztu.js} +114 -45
- package/dist/images-0On0cztu.js.map +1 -0
- package/dist/index.d.ts +9 -37
- package/dist/index.js +6 -2138
- package/dist/{init-BIdLF0F9.js → init-B77Rpcqc.js} +26 -8
- package/dist/init-B77Rpcqc.js.map +1 -0
- package/dist/init-BrOWin3W.js +1 -0
- package/dist/{invocations-CLaL8AuW.js → invocations-DbGfBAA_.js} +4 -4
- package/dist/{invocations-CLaL8AuW.js.map → invocations-DbGfBAA_.js.map} +1 -1
- package/dist/{judge-CeYPN8P_.js → judge-DW_GDOmB.js} +11 -19
- package/dist/{judge-CeYPN8P_.js.map → judge-DW_GDOmB.js.map} +1 -1
- package/dist/judge.d.ts +2 -2
- package/dist/judge.js +1 -1
- package/dist/{live-S0qODb6o.js → live-jlfszAbb.js} +9 -20
- package/dist/live-jlfszAbb.js.map +1 -0
- package/dist/matchers-Ddmc2z7H.js +118 -0
- package/dist/matchers-Ddmc2z7H.js.map +1 -0
- package/dist/{model-DEQo3FkZ.js → model-DaVCY3rb.js} +2 -2
- package/dist/{model-DEQo3FkZ.js.map → model-DaVCY3rb.js.map} +1 -1
- package/dist/model-NM3ID0uR.js +1 -0
- package/dist/{model-B1BZoZ9b.js → model-h_cDtcRr.js} +18 -17
- package/dist/model-h_cDtcRr.js.map +1 -0
- package/dist/model-nwWJvaUR.js +1 -0
- package/dist/{model-BOnlAPzs.js → model-oqcDplJG.js} +111 -19
- package/dist/model-oqcDplJG.js.map +1 -0
- package/dist/{node-Co7EXge0.js → node-B3ydHo6t.js} +10 -47
- package/dist/node-B3ydHo6t.js.map +1 -0
- package/dist/object-CLf2-tNq.js +9 -0
- package/dist/object-CLf2-tNq.js.map +1 -0
- package/dist/{opencode-providers-ByD85Q0l.js → opencode-providers-J9colP0-.js} +96 -21
- package/dist/opencode-providers-J9colP0-.js.map +1 -0
- package/dist/options-Bh2W63dK.js +1119 -0
- package/dist/options-Bh2W63dK.js.map +1 -0
- package/dist/{pairs-DDsjgm5F.js → pairs-CnInRu-G.js} +76 -2
- package/dist/{pairs-DDsjgm5F.js.map → pairs-CnInRu-G.js.map} +1 -1
- package/dist/{patch-bDV8YFW0.js → patch-Zac5aIRM.js} +6 -6
- package/dist/{patch-bDV8YFW0.js.map → patch-Zac5aIRM.js.map} +1 -1
- package/dist/{plan-DUydFc_1.js → plan-C9Cy27Ay.js} +24 -9
- package/dist/plan-C9Cy27Ay.js.map +1 -0
- package/dist/preflight-CPWpQeBI.js +1 -0
- package/dist/{preflight-BkoSxf4C.js → preflight-D7iFPKeK.js} +8 -7
- package/dist/preflight-D7iFPKeK.js.map +1 -0
- package/dist/prepare-BGjePFQl.js +2 -0
- package/dist/{prepare-CUAWHebF.js → prepare-doGxaAGR.js} +38 -30
- package/dist/prepare-doGxaAGR.js.map +1 -0
- package/dist/{provenance-D7HK3vzt.js → provenance-DmE9uPVt.js} +3 -3
- package/dist/{provenance-D7HK3vzt.js.map → provenance-DmE9uPVt.js.map} +1 -1
- package/dist/provider-DehR4CMN.js +1 -0
- package/dist/providers-gDMko8fl.js +1 -0
- package/dist/providers-tAOD1NQN.js +165 -0
- package/dist/providers-tAOD1NQN.js.map +1 -0
- package/dist/{query-BjBMLa-C.js → query-Bes9Kh6Y.js} +3 -3
- package/dist/{query-BjBMLa-C.js.map → query-Bes9Kh6Y.js.map} +1 -1
- package/dist/query-C_G_svLU.js +1 -0
- package/dist/questions-DjAwMxZ3.js +524 -0
- package/dist/questions-DjAwMxZ3.js.map +1 -0
- package/dist/{record-BRP9vZrj.js → record-BKmMvZ6O.js} +9 -1
- package/dist/{record-BRP9vZrj.js.map → record-BKmMvZ6O.js.map} +1 -1
- package/dist/remote-HDRt16ew.js +378 -0
- package/dist/remote-HDRt16ew.js.map +1 -0
- package/dist/{results-Di7m8dQ3.js → results-DuauQI3Z.js} +4 -4
- package/dist/{results-Di7m8dQ3.js.map → results-DuauQI3Z.js.map} +1 -1
- package/dist/{resume-SUz1GskV.js → resume-BRfa8E_s.js} +10 -10
- package/dist/{resume-SUz1GskV.js.map → resume-BRfa8E_s.js.map} +1 -1
- package/dist/{root-CvdRlRZX.js → root-DICDHCtp.js} +4 -4
- package/dist/{root-CvdRlRZX.js.map → root-DICDHCtp.js.map} +1 -1
- package/dist/{runtime-DdsfnRz_.js → runtime-PX_oXiCS.js} +23 -71
- package/dist/runtime-PX_oXiCS.js.map +1 -0
- package/dist/sandbox-D3A8oUb7.js +70 -0
- package/dist/sandbox-D3A8oUb7.js.map +1 -0
- package/dist/sandbox.d.ts +19 -6
- package/dist/sandbox.js +1 -2
- package/dist/server-C7sg1ndo.js +1 -0
- package/dist/{server-BNnXtmS8.js → server-XDleKaF_.js} +11 -11
- package/dist/server-XDleKaF_.js.map +1 -0
- package/dist/shared-DYpIb1BI.js +166 -0
- package/dist/shared-DYpIb1BI.js.map +1 -0
- package/dist/{source-Dof0NQBm.js → source-C8xumIWj.js} +2 -2
- package/dist/{source-Dof0NQBm.js.map → source-C8xumIWj.js.map} +1 -1
- package/dist/source-fGd0SaKP.js +1 -0
- package/dist/{src-8rRXy4u9.js → src-B7treWa8.js} +1538 -180
- package/dist/src-B7treWa8.js.map +1 -0
- package/dist/{src-C1E9HDWO.js → src-C7_1SqDP.js} +3 -3
- package/dist/{src-C1E9HDWO.js.map → src-C7_1SqDP.js.map} +1 -1
- package/dist/{src-DDNXsD9H.js → src-CF17Ug08.js} +5 -4
- package/dist/src-CF17Ug08.js.map +1 -0
- package/dist/{src-C_4Umgh2.js → src-CFp86GtV.js} +52 -51
- package/dist/src-CFp86GtV.js.map +1 -0
- package/dist/src-C_lPtowT.js +2 -0
- package/dist/src-DIL0jST0.js +368 -0
- package/dist/src-DIL0jST0.js.map +1 -0
- package/dist/src-DNnG4e4R.js +2 -0
- package/dist/src-DTbrY1hi.js +2 -0
- package/dist/src-DdyJEh2v.js +2 -0
- package/dist/src-Dj9PAroc.js +2 -0
- package/dist/src-Du8H85Qq.js +2 -0
- package/dist/src-DvCg0NBs.js +324 -0
- package/dist/src-DvCg0NBs.js.map +1 -0
- package/dist/{src-COgE7991.js → src-DvK0EIZx.js} +5 -5
- package/dist/{src-COgE7991.js.map → src-DvK0EIZx.js.map} +1 -1
- package/dist/{src-DVy58-zZ.js → src-FGXhkEkH.js} +5 -5
- package/dist/{src-DVy58-zZ.js.map → src-FGXhkEkH.js.map} +1 -1
- package/dist/src-jzagbuqH.js +2 -0
- package/dist/src-ofUaYbuY.js +3 -0
- package/dist/src-pJZOrYR9.js +1 -0
- package/dist/{src-D95O-Smv.js → src-u8_ixn_F.js} +15 -11
- package/dist/src-u8_ixn_F.js.map +1 -0
- package/dist/{state-CiXyLqg0.js → state-C__9swoG.js} +35 -23
- package/dist/state-C__9swoG.js.map +1 -0
- package/dist/state-CeR6oz0k.js +66 -0
- package/dist/state-CeR6oz0k.js.map +1 -0
- package/dist/state-CgjQo29K.js +1 -0
- package/dist/studio-app/assets/index-CwQN3f_h.css +2 -0
- package/dist/studio-app/assets/{index-CROH2NB3.js → index-DrQc2Yxd.js} +11 -11
- package/dist/studio-app/index.html +2 -2
- package/dist/{summary-BTksrIxn.js → summary-BLAVLySU.js} +150 -19
- package/dist/summary-BLAVLySU.js.map +1 -0
- package/dist/{summary-2OAWF2N7.js → summary-DgyjUh_l.js} +7 -7
- package/dist/{summary-2OAWF2N7.js.map → summary-DgyjUh_l.js.map} +1 -1
- package/dist/testing.d.ts +3 -2
- package/dist/testing.js +3 -2
- package/dist/{tool-target-BU1JnSE9.js → tool-target-D2mcYlSQ.js} +14 -7
- package/dist/tool-target-D2mcYlSQ.js.map +1 -0
- package/dist/{tools-B10Uj7OI.js → tools-GCyNYSc1.js} +6 -6
- package/dist/tools-GCyNYSc1.js.map +1 -0
- package/dist/transcript-BNNANU8A.js +64 -0
- package/dist/transcript-BNNANU8A.js.map +1 -0
- package/dist/{types-D8RLfkFP.d.ts → types-g17bRAzt.d.ts} +389 -42
- package/dist/{usage-DDF_6tkV.js → usage-CleNKkly.js} +4 -2
- package/dist/{usage-DDF_6tkV.js.map → usage-CleNKkly.js.map} +1 -1
- package/dist/view/index.d.ts +42 -8
- package/dist/view/index.js +6 -6
- package/dist/views-BW6oCDUQ.js +2 -0
- package/dist/{views-Dqa5ojfZ.js → views-BmQF4UCI.js} +13 -8
- package/dist/views-BmQF4UCI.js.map +1 -0
- package/dist/{worker-entry-BAikHl9F.js → worker-entry-yOchGYYv.js} +16 -229
- package/dist/worker-entry-yOchGYYv.js.map +1 -0
- package/dist/{workspace-C-TrNIUc.js → workspace-CgyHEM0l.js} +6 -6
- package/dist/{workspace-C-TrNIUc.js.map → workspace-CgyHEM0l.js.map} +1 -1
- package/dist/workspace-D8sSgpiy.js +1 -0
- package/package.json +12 -12
- package/dist/agent-WSmTaesf.js.map +0 -1
- package/dist/assemble-BCZzTyR7.js.map +0 -1
- package/dist/assemble-C5qq5yT2.js +0 -2
- package/dist/capture-Bp74Z6Fr.js.map +0 -1
- package/dist/capture-DS-cPyuE.js +0 -2
- package/dist/cli-CVrMh_qz.js.map +0 -1
- package/dist/cli-spec-CKEYa8V2.js.map +0 -1
- package/dist/client-Bbo9SPlK.js.map +0 -1
- package/dist/command-BrmXUC-W.js +0 -2
- package/dist/command-C5xFPKHM.js.map +0 -1
- package/dist/command-CzIFp1JQ.js.map +0 -1
- package/dist/command-DUT5l13I.js.map +0 -1
- package/dist/commands-CLmPBrTS.js.map +0 -1
- package/dist/commands-fI3G2Wnh.js +0 -2
- package/dist/config-CGvBeewH.js +0 -457
- package/dist/config-CGvBeewH.js.map +0 -1
- package/dist/context-DbSMEVKs.js.map +0 -1
- package/dist/db-CSSFtGcN.js +0 -3
- package/dist/db-CfQFwJtq.js.map +0 -1
- package/dist/debug-SEmW4w8f.js +0 -2
- package/dist/dist-CTzThfu_.js.map +0 -1
- package/dist/docker-CRQGQbIt.js.map +0 -1
- package/dist/docker-DV2GNgle.js.map +0 -1
- package/dist/docker-Df_YOxxB.js +0 -2
- package/dist/doctor-DlKycx5H.js.map +0 -1
- package/dist/egress-BhzNh7Yi.js.map +0 -1
- package/dist/environment-1jE-HhO-.js +0 -657
- package/dist/environment-1jE-HhO-.js.map +0 -1
- package/dist/errors-C9w_ud7g.js.map +0 -1
- package/dist/errors-yDAEwmZo.js.map +0 -1
- package/dist/fake-instructions-CUI33I_F.js +0 -32
- package/dist/fake-instructions-CUI33I_F.js.map +0 -1
- package/dist/files-AiEKuEZe.js +0 -2
- package/dist/files-BM78_nnF.js +0 -2
- package/dist/files-BMCvfB4X.js +0 -2
- package/dist/harness-CeCp2GSW.js +0 -171
- package/dist/harness-CeCp2GSW.js.map +0 -1
- package/dist/images-BMgdpMAX.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-B6vegaP_.js +0 -2
- package/dist/init-BIdLF0F9.js.map +0 -1
- package/dist/jiti-BcJHCtrb.js +0 -46
- package/dist/jiti-BcJHCtrb.js.map +0 -1
- package/dist/live-S0qODb6o.js.map +0 -1
- package/dist/model-B1BZoZ9b.js.map +0 -1
- package/dist/model-BOnlAPzs.js.map +0 -1
- package/dist/model-DWeg5J7z.js +0 -2
- package/dist/model-FXko2kl7.js +0 -2
- package/dist/node-Co7EXge0.js.map +0 -1
- package/dist/opencode-providers-ByD85Q0l.js.map +0 -1
- package/dist/options-CKqyPGxX.js +0 -739
- package/dist/options-CKqyPGxX.js.map +0 -1
- package/dist/plan-DUydFc_1.js.map +0 -1
- package/dist/preflight-BkoSxf4C.js.map +0 -1
- package/dist/preflight-D5LW7Oqi.js +0 -2
- package/dist/prepare-CUAWHebF.js.map +0 -1
- package/dist/prepare-oji2oO8W.js +0 -3
- package/dist/provider-BDbNOQhQ.js +0 -2
- package/dist/providers-B1DzMvmH.js +0 -107
- package/dist/providers-B1DzMvmH.js.map +0 -1
- package/dist/providers-CpEfNU1F.js +0 -2
- package/dist/query-oPO_XrTy.js +0 -2
- package/dist/questions-B8by4Bbt.js +0 -234
- package/dist/questions-B8by4Bbt.js.map +0 -1
- package/dist/runtime-DdsfnRz_.js.map +0 -1
- package/dist/sandbox-D5v-of6d.js +0 -139
- package/dist/sandbox-D5v-of6d.js.map +0 -1
- package/dist/server-BNnXtmS8.js.map +0 -1
- package/dist/server-BNwoKzlm.js +0 -2
- package/dist/source-Bk_0ZaEY.js +0 -2
- package/dist/src-8rRXy4u9.js.map +0 -1
- package/dist/src-BGWuWp6I.js +0 -3
- package/dist/src-BRt0O02i.js +0 -3
- package/dist/src-Bx2x1ekD.js +0 -3
- package/dist/src-C_4Umgh2.js.map +0 -1
- package/dist/src-D95O-Smv.js.map +0 -1
- package/dist/src-DDNXsD9H.js.map +0 -1
- package/dist/src-DLa-ESW0.js +0 -4
- package/dist/src-cN0aB-WR.js +0 -3
- package/dist/src-cdIVjC5b.js +0 -2
- package/dist/src-sIsDHWYq.js +0 -3
- package/dist/state-Bo5zg4da.js +0 -2
- package/dist/state-CiXyLqg0.js.map +0 -1
- package/dist/studio-app/assets/index-B9MCTfuu.css +0 -2
- package/dist/summary-BTksrIxn.js.map +0 -1
- package/dist/tool-target-BU1JnSE9.js.map +0 -1
- package/dist/tools-B10Uj7OI.js.map +0 -1
- package/dist/views-Cs2Oqayd.js +0 -3
- package/dist/views-Dqa5ojfZ.js.map +0 -1
- package/dist/worker-entry-BAikHl9F.js.map +0 -1
- package/dist/workspace-Do_SiWBs.js +0 -2
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import { n as
|
|
2
|
-
import {
|
|
1
|
+
import { n as isOneOf } from "./object-CLf2-tNq.js";
|
|
2
|
+
import { n as UsageError } from "./errors-B6BSMs03.js";
|
|
3
|
+
import { t as parseDuration } from "./duration-CEOQww97.js";
|
|
4
|
+
import { f as sandboxId, s as harnessId } from "./options-Bh2W63dK.js";
|
|
5
|
+
import { A as workspaceLabel, p as environmentSandbox } from "./environment-DNjRk0nU.js";
|
|
6
|
+
import { a as fromCwd, i as evalSlug, n as attemptKey, o as newRunId } from "./ids-Bp6ut7ZD.js";
|
|
7
|
+
import { a as configPathFor, c as findConfig, d as malformedCredentials, f as missingCredentials, h as selectProfile, i as configLabel, l as hostCapacity, m as resolveConcurrency, p as requireConfig, u as loadConfig } from "./config-DEgnUiU-.js";
|
|
3
8
|
import { n as loadEnvFiles, t as inCI } from "./env-BQqj93gu.js";
|
|
4
9
|
import { o as redactSecrets, s as registerSecret } from "./redact-DJ9JCShu.js";
|
|
5
|
-
import { o as PACKAGE_VERSION } from "./root-
|
|
6
|
-
import {
|
|
7
|
-
import { a as fromCwd, i as evalSlug, n as attemptKey, o as newRunId } from "./ids-Bp6ut7ZD.js";
|
|
8
|
-
import { I as LABEL, X as imageInfo } from "./src-8rRXy4u9.js";
|
|
9
|
-
import { d as sandboxId, s as harnessId } from "./options-CKqyPGxX.js";
|
|
10
|
-
import { a as configPathFor, c as findConfig, d as malformedCredentials, f as missingCredentials, h as selectProfile, i as configLabel, l as hostCapacity, m as resolveConcurrency, p as requireConfig, u as loadConfig } from "./config-CGvBeewH.js";
|
|
10
|
+
import { o as PACKAGE_VERSION } from "./root-DICDHCtp.js";
|
|
11
|
+
import { I as LABEL, X as imageInfo } from "./src-B7treWa8.js";
|
|
11
12
|
import { s as debugTime } from "./debug-D24NOQH1.js";
|
|
12
13
|
import { i as sandboxWarningLine, n as clip, r as formatDuration } from "./text-gEcKjAyp.js";
|
|
13
14
|
import { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
14
|
-
import {
|
|
15
|
+
import { B as judgeRatesLabel, H as summaryJudgeRates, I as collapsedJudgeLabel, P as cellUsage, T as runOutcome, Y as cellContrast, g as formatUsage, l as evalMarkOutcome, tt as effortLabel, v as hasUngatedCells, x as isUngatedMiss } from "./model-oqcDplJG.js";
|
|
15
16
|
import { a as familyLiftLabel, i as familyHeadLabel, n as familyCases, o as familyRateLabel, r as familyEffortLabel, t as caseLabel } from "./family-D2b7WD10.js";
|
|
16
|
-
import {
|
|
17
|
-
import { a as
|
|
18
|
-
import { c as writeLiveProgress, i as prepareResume, o as resolveResume, r as loadPrevious, s as writeCurrent, t as completedKeysFor } from "./resume-
|
|
19
|
-
import {
|
|
20
|
-
import { i as runtimeInfo, n as gitInfo, r as runnerInfo, t as author } from "./provenance-
|
|
17
|
+
import { n as headToHeadLines, s as sampleReasons } from "./pairs-CnInRu-G.js";
|
|
18
|
+
import { a as contrastLines, f as undiscriminating, i as checksLabel, n as answersLabel, o as gateLabel, p as undiscriminatingLabel, s as liftLabel } from "./summary-BLAVLySU.js";
|
|
19
|
+
import { c as writeLiveProgress, i as prepareResume, o as resolveResume, r as loadPrevious, s as writeCurrent, t as completedKeysFor } from "./resume-BRfa8E_s.js";
|
|
20
|
+
import { a as commandHelpText, n as FLAGS, r as GLOBAL, s as helpText, t as COMMANDS } from "./cli-spec-BPZbQG2p.js";
|
|
21
|
+
import { i as runtimeInfo, n as gitInfo, r as runnerInfo, t as author } from "./provenance-DmE9uPVt.js";
|
|
21
22
|
import { t as budgetMarker } from "./budget-DBUrH4jX.js";
|
|
22
|
-
import { n as prepareAll, o as writePrepared, r as prepareTargets, t as RunStopError } from "./preflight-
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import { a as redactArgv, r as commandOf, t as logInvocation } from "./invocations-
|
|
23
|
+
import { n as prepareAll, o as writePrepared, r as prepareTargets, t as RunStopError } from "./preflight-D7iFPKeK.js";
|
|
24
|
+
import { n as imageHarness } from "./prepare-doGxaAGR.js";
|
|
25
|
+
import { r as createProviders, t as attemptImage } from "./providers-tAOD1NQN.js";
|
|
26
|
+
import { a as redactArgv, r as commandOf, t as logInvocation } from "./invocations-DbGfBAA_.js";
|
|
26
27
|
import { n as stripAnsi, t as colors } from "./colors-QV9dFVhN.js";
|
|
27
28
|
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
28
29
|
import { dirname, join } from "node:path";
|
|
29
|
-
import { appendFile, readFile, rm } from "node:fs/promises";
|
|
30
30
|
import { inspect } from "node:util";
|
|
31
|
+
import { appendFile, readFile, rm } from "node:fs/promises";
|
|
31
32
|
import { detectAgent } from "std-env";
|
|
32
33
|
import { Command, Option } from "commander";
|
|
33
34
|
//#region src/cli-parse.ts
|
|
@@ -65,13 +66,13 @@ function parseCli(argv) {
|
|
|
65
66
|
const subcommand = configure(command.command(subName), `reeval ${name} ${subName}`, sub.flags);
|
|
66
67
|
subcommand.argument("[args...]").action(() => {
|
|
67
68
|
const [stray] = Object.keys(valuesOf(command, spec.flags));
|
|
68
|
-
if (stray) throw new UsageError(`--${stray} isn't an option of reeval ${name} ${subName}
|
|
69
|
+
if (stray) throw new UsageError(`--${stray} isn't an option of reeval ${name} ${subName}. Run reeval --help.`);
|
|
69
70
|
parsed = done(program, subcommand, [name, subName], sub.flags, sub.positionals);
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
program.parse(argv, { from: "user" });
|
|
74
|
-
if (!parsed) throw new UsageError("Run reeval --help.");
|
|
75
|
+
if (!parsed) throw new UsageError("reeval couldn't read that command line. Run reeval --help.");
|
|
75
76
|
return parsed;
|
|
76
77
|
}
|
|
77
78
|
function configure(command, name, flags) {
|
|
@@ -124,11 +125,16 @@ function usageError(error, command) {
|
|
|
124
125
|
const [flag = "", value] = arg.replace(/^--?/, "").split("=");
|
|
125
126
|
const known = arg.startsWith("--") ? FLAGS[flag] : Object.entries(FLAGS).find(([, s]) => "short" in s && s.short === flag)?.[1];
|
|
126
127
|
const long = arg.startsWith("--") ? flag : Object.entries(FLAGS).find(([, s]) => "short" in s && s.short === flag)?.[0];
|
|
127
|
-
if (known && value !== void 0 && known.type === "boolean") return new UsageError(
|
|
128
|
+
if (known && value !== void 0 && known.type === "boolean") return new UsageError(`--${flag} doesn't take a value: pass --${flag} on its own.`);
|
|
128
129
|
if (known) return new UsageError(`--${long} isn't an option of ${command}. Run reeval --help.`);
|
|
129
130
|
const hint = rest.join(" ").replace(/^\(|\)$/g, "");
|
|
130
131
|
return new UsageError(`Unknown option '${arg}'. ${hint ? `${hint} ` : ""}Run reeval --help.`);
|
|
131
132
|
}
|
|
133
|
+
if (error.code === "commander.optionMissingArgument") {
|
|
134
|
+
const usage = /'([^']+)'/.exec(first)?.[1] ?? "";
|
|
135
|
+
const flag = usage.split(/[ ,]/).find((part) => part.startsWith("--")) ?? usage;
|
|
136
|
+
return new UsageError(`${flag} needs a value, e.g. ${usage}. Run reeval --help.`);
|
|
137
|
+
}
|
|
132
138
|
return new UsageError(first.charAt(0).toUpperCase() + first.slice(1));
|
|
133
139
|
}
|
|
134
140
|
//#endregion
|
|
@@ -172,10 +178,10 @@ async function preflight(uses, options) {
|
|
|
172
178
|
writePrepared(options.root, options.runId, outcomes);
|
|
173
179
|
const images = [];
|
|
174
180
|
for (const o of outcomes) {
|
|
175
|
-
if (!o.ok || o.target.kind !== "docker") continue;
|
|
176
|
-
const { ref, id, agentCli } = o.handle;
|
|
181
|
+
if (!o.ok || o.target.sandbox.kind !== "docker") continue;
|
|
182
|
+
const { ref, id, agentCli } = attemptImage(o.handle);
|
|
177
183
|
if (images.some((i) => i.id === id)) continue;
|
|
178
|
-
const info = await imageInfo(ref);
|
|
184
|
+
const info = await imageInfo(ref, o.target.sandbox.engine);
|
|
179
185
|
images.push({
|
|
180
186
|
ref,
|
|
181
187
|
id,
|
|
@@ -417,8 +423,10 @@ function resultFor(entry, attempt, results) {
|
|
|
417
423
|
function entryOutcome(e) {
|
|
418
424
|
const outcomes = e.attempts.map(attemptOutcome);
|
|
419
425
|
if (outcomes.length && outcomes.every((o) => o === "cancelled")) return "cancelled";
|
|
420
|
-
return e
|
|
426
|
+
return evalMarkOutcome(e);
|
|
421
427
|
}
|
|
428
|
+
/** Every cell is `gate: 'none'`: the eval reports its attempts but nothing gates it. */
|
|
429
|
+
const allUngated = (e) => e.cells.length > 0 && e.cells.every((c) => c.gate === "none");
|
|
422
430
|
const pct = (rate) => rate === null ? " – " : `${Math.round(rate * 100)}%`.padStart(4);
|
|
423
431
|
function evalColumns(c, e) {
|
|
424
432
|
const [attempt, ...more] = e.attempts;
|
|
@@ -427,7 +435,7 @@ function evalColumns(c, e) {
|
|
|
427
435
|
if (more.length) {
|
|
428
436
|
const pass = e.attempts.filter((a) => a.outcome === "pass").length;
|
|
429
437
|
const counted = e.attempts.filter((a) => a.outcome === "pass" || a.outcome === "fail").length;
|
|
430
|
-
const rate = hasUngatedCells(e.cells) ? ` · pass@1 ${pct(e.passRate).trim()} gated` : ` pass@1 ${pct(e.passRate)}`;
|
|
438
|
+
const rate = allUngated(e) ? " · not gated" : hasUngatedCells(e.cells) ? ` · pass@1 ${pct(e.passRate).trim()} gated` : ` pass@1 ${pct(e.passRate)}`;
|
|
431
439
|
return c.dim(`${`${pass}/${counted}`.padStart(7)}${rate} ${e.attempts.length} attempts`);
|
|
432
440
|
}
|
|
433
441
|
if (attemptOutcome(attempt) === "cancelled") return c.yellow("cancelled");
|
|
@@ -460,7 +468,7 @@ function cellRows(c, e, indent) {
|
|
|
460
468
|
const tokens = formatUsage(cellUsage(e, cell.key));
|
|
461
469
|
const usage = tokens ? ` ${c.dim(tokens)}` : "";
|
|
462
470
|
const rows = [`${indent}${c.dim(cell.key.padEnd(width))}${role} ${counts} pass@1 ${pct(cell.passRate)}${note}${infra}${usage}`];
|
|
463
|
-
const rates = judgeRatesLabel(
|
|
471
|
+
const rates = judgeRatesLabel(summaryJudgeRates(e, cell));
|
|
464
472
|
if (rates) rows.push(`${indent} ${c.dim(rates)}`);
|
|
465
473
|
const effort = cellContrast(e, cell.key);
|
|
466
474
|
if (effort) rows.push(`${indent} ${c.dim(`effort: ${effortLabel(effort)}`)}`);
|
|
@@ -470,11 +478,21 @@ function cellRows(c, e, indent) {
|
|
|
470
478
|
return rows;
|
|
471
479
|
});
|
|
472
480
|
}
|
|
481
|
+
/** With two variants or more, each pair of arms on one harness: lift, checks and effort. */
|
|
482
|
+
function contrastRows(c, e, indent) {
|
|
483
|
+
const lines = contrastLines(e);
|
|
484
|
+
if (!lines.length) return [];
|
|
485
|
+
return [`${indent}${c.dim("contrasts (each pair of arms, same harness)")}`, ...lines.map((line) => `${indent} ${c.dim(line)}`)];
|
|
486
|
+
}
|
|
473
487
|
/** One row per compare question: its win rates, or why it has none. They never gate. */
|
|
474
488
|
function questionRows(c, e, indent) {
|
|
475
489
|
return (e.answers ?? []).flatMap((a) => {
|
|
476
490
|
const label = answersLabel(a);
|
|
477
|
-
return [
|
|
491
|
+
return [
|
|
492
|
+
`${indent}${c.dim("question")} ${a.error !== void 0 ? c.yellow(label) : label}`,
|
|
493
|
+
...headToHeadLines(a.votes).map((line) => `${indent} ${line}`),
|
|
494
|
+
...sampleReasons(a.votes).map((reason) => `${indent} ${c.dim(reason)}`)
|
|
495
|
+
];
|
|
478
496
|
});
|
|
479
497
|
}
|
|
480
498
|
/** A family's mark: its pooled gate's and its cases' worst. */
|
|
@@ -566,8 +584,9 @@ function tree(c, evals, families = []) {
|
|
|
566
584
|
}
|
|
567
585
|
if (!entry) return [` ${pad}${text}`];
|
|
568
586
|
return [
|
|
569
|
-
` ${pad}${`${mark(c, entryOutcome(entry))} ${text}`}${fill} ${evalColumns(c, entry)}`,
|
|
587
|
+
` ${pad}${`${entryOutcome(entry) === "pass" && allUngated(entry) && entry.attempts.some((a) => isUngatedMiss(entry, a)) ? MISS_MARK(c) : mark(c, entryOutcome(entry))} ${text}`}${fill} ${evalColumns(c, entry)}`,
|
|
570
588
|
...cellRows(c, entry, ` ${pad} `),
|
|
589
|
+
...contrastRows(c, entry, ` ${pad} `),
|
|
571
590
|
...questionRows(c, entry, ` ${pad} `)
|
|
572
591
|
];
|
|
573
592
|
});
|
|
@@ -828,6 +847,7 @@ var AgentRenderer = class {
|
|
|
828
847
|
for (const error of e.unhandledErrors) this.#write(`ERROR ${error}`);
|
|
829
848
|
for (const entry of e.record.evals) for (const a of entry.answers ?? []) {
|
|
830
849
|
this.#write(`question ${entry.id}: ${answersLabel(a)}`);
|
|
850
|
+
for (const line of headToHeadLines(a.votes)) this.#write(` ${line}`);
|
|
831
851
|
for (const reason of sampleReasons(a.votes)) this.#write(` ${reason}`);
|
|
832
852
|
}
|
|
833
853
|
for (const x of undiscriminating(e.record.evals)) this.#write(`check doesn't discriminate: ${undiscriminatingLabel(x)}`);
|
|
@@ -1113,13 +1133,13 @@ const CI_VARS = [
|
|
|
1113
1133
|
const isCI = (env) => CI_VARS.some((name) => set(env, name));
|
|
1114
1134
|
function pick(name, value, allowed) {
|
|
1115
1135
|
if (value === void 0 || value === "") return void 0;
|
|
1116
|
-
if (value === "auto" || allowed
|
|
1117
|
-
throw new UsageError(`${name}
|
|
1136
|
+
if (value === "auto" || isOneOf(allowed, value)) return value;
|
|
1137
|
+
throw new UsageError(`${name} is one of ${[...allowed, "auto"].join(", ")} (got ${value})`);
|
|
1118
1138
|
}
|
|
1119
1139
|
function parseHeartbeat(value) {
|
|
1120
1140
|
if (!value) return 6e4;
|
|
1121
1141
|
const match = /^(\d+(?:\.\d+)?)(ms|s|m)?$/.exec(value);
|
|
1122
|
-
if (!match) throw new UsageError(`REEVAL_HEARTBEAT must be a duration like 30s or 0`);
|
|
1142
|
+
if (!match) throw new UsageError(`REEVAL_HEARTBEAT must be a duration like 30s, or 0 for none (got ${value})`);
|
|
1123
1143
|
const unit = {
|
|
1124
1144
|
ms: 1,
|
|
1125
1145
|
s: 1e3,
|
|
@@ -1219,12 +1239,16 @@ async function run(argv) {
|
|
|
1219
1239
|
return EXIT.ok;
|
|
1220
1240
|
}
|
|
1221
1241
|
const [command, ...filters] = positionals;
|
|
1242
|
+
if (values.help && command) {
|
|
1243
|
+
console.log(commandHelpText(version, positionals));
|
|
1244
|
+
return EXIT.ok;
|
|
1245
|
+
}
|
|
1222
1246
|
if (values.help || !command) {
|
|
1223
1247
|
console.log(HELP);
|
|
1224
1248
|
return values.help ? EXIT.ok : EXIT.usage;
|
|
1225
1249
|
}
|
|
1226
1250
|
if (command === "init") {
|
|
1227
|
-
const { initCommand } = await import("./init-
|
|
1251
|
+
const { initCommand } = await import("./init-BrOWin3W.js");
|
|
1228
1252
|
return initCommand(values, filters, {
|
|
1229
1253
|
out: (s) => console.log(s),
|
|
1230
1254
|
input: process.stdin,
|
|
@@ -1233,7 +1257,7 @@ async function run(argv) {
|
|
|
1233
1257
|
});
|
|
1234
1258
|
}
|
|
1235
1259
|
if (command === "doctor") {
|
|
1236
|
-
const { doctorCommand } = await import("./doctor-
|
|
1260
|
+
const { doctorCommand } = await import("./doctor-BYNok4UO.js");
|
|
1237
1261
|
return doctorCommand(values, {
|
|
1238
1262
|
out: (s) => console.log(s),
|
|
1239
1263
|
color: !!process.stdout.isTTY && !process.env.NO_COLOR,
|
|
@@ -1241,7 +1265,7 @@ async function run(argv) {
|
|
|
1241
1265
|
});
|
|
1242
1266
|
}
|
|
1243
1267
|
if (command === "report") {
|
|
1244
|
-
const { reportCommand } = await import("./command-
|
|
1268
|
+
const { reportCommand } = await import("./command-BLfT7vnQ.js");
|
|
1245
1269
|
return reportCommand(values, filters, {
|
|
1246
1270
|
out: (s) => console.log(s),
|
|
1247
1271
|
err: (s) => console.error(dim(s)),
|
|
@@ -1256,7 +1280,7 @@ async function run(argv) {
|
|
|
1256
1280
|
}
|
|
1257
1281
|
if (command === "studio") {
|
|
1258
1282
|
const config = await loadConfig(configPath, "studio");
|
|
1259
|
-
const { studioCommand } = await import("./command-
|
|
1283
|
+
const { studioCommand } = await import("./command-CMJtHKRa.js");
|
|
1260
1284
|
return studioCommand({
|
|
1261
1285
|
config,
|
|
1262
1286
|
flags: values,
|
|
@@ -1267,7 +1291,7 @@ async function run(argv) {
|
|
|
1267
1291
|
if (command === "mcp") {
|
|
1268
1292
|
if (!values.http) console.log = console.info = console.debug = console.error;
|
|
1269
1293
|
const config = await loadConfig(configPath, "mcp");
|
|
1270
|
-
const { mcpCommand } = await import("./command-
|
|
1294
|
+
const { mcpCommand } = await import("./command-BT9a37ZR.js");
|
|
1271
1295
|
return mcpCommand({
|
|
1272
1296
|
config,
|
|
1273
1297
|
flags: values,
|
|
@@ -1276,7 +1300,7 @@ async function run(argv) {
|
|
|
1276
1300
|
}
|
|
1277
1301
|
if (command in HISTORY_COMMANDS) {
|
|
1278
1302
|
const config = await loadConfig(configPath, command);
|
|
1279
|
-
const commands = await import("./commands-
|
|
1303
|
+
const commands = await import("./commands-1p-bIWhN.js");
|
|
1280
1304
|
const ctx = {
|
|
1281
1305
|
config,
|
|
1282
1306
|
flags: values,
|
|
@@ -1289,7 +1313,7 @@ async function run(argv) {
|
|
|
1289
1313
|
case "compare": return commands.compareCommand(ctx, filters);
|
|
1290
1314
|
case "checkout": return commands.checkoutCommand(ctx, filters);
|
|
1291
1315
|
case "query": {
|
|
1292
|
-
const { queryCommand } = await import("./query-
|
|
1316
|
+
const { queryCommand } = await import("./query-C_G_svLU.js");
|
|
1293
1317
|
return queryCommand({
|
|
1294
1318
|
...ctx,
|
|
1295
1319
|
err: (s) => console.error(dim(s))
|
|
@@ -1297,7 +1321,7 @@ async function run(argv) {
|
|
|
1297
1321
|
}
|
|
1298
1322
|
case "analyze": {
|
|
1299
1323
|
loadEnvFiles(configPath);
|
|
1300
|
-
const { analyzeCommand } = await import("./command-
|
|
1324
|
+
const { analyzeCommand } = await import("./command-BkFjijN2.js");
|
|
1301
1325
|
return analyzeCommand({
|
|
1302
1326
|
...ctx,
|
|
1303
1327
|
err: (s) => console.error(dim(s))
|
|
@@ -1330,16 +1354,19 @@ async function cleanCommand(flags, configPath) {
|
|
|
1330
1354
|
keep = Number(flags.keep);
|
|
1331
1355
|
if (!(Number.isInteger(keep) && keep >= 0)) throw new UsageError(`--keep must be a whole number (got ${flags.keep})`);
|
|
1332
1356
|
}
|
|
1333
|
-
const { debugRoot, pruneDebug } = await import("./files-
|
|
1334
|
-
const { formatBytes } = await import("./debug-
|
|
1357
|
+
const { debugRoot, pruneDebug } = await import("./files-BAt0i00X.js");
|
|
1358
|
+
const { formatBytes } = await import("./debug-D7bEv_UV.js");
|
|
1335
1359
|
const { runs, bytes } = await pruneDebug(config.root, keep);
|
|
1336
1360
|
const where = fromCwd(debugRoot(config.root)) || ".";
|
|
1337
1361
|
console.log(runs.length ? `Removed debug data for ${runs.length} run${runs.length === 1 ? "" : "s"} (${formatBytes(bytes)}) from ${where}` : `No debug data to remove in ${where}`);
|
|
1338
1362
|
if (flags.images) {
|
|
1339
|
-
const { pruneImages } = await import("./src-
|
|
1340
|
-
const { requireDocker } = await import("./providers-
|
|
1341
|
-
|
|
1342
|
-
const
|
|
1363
|
+
const { dockerAvailable, pruneImages } = await import("./src-pJZOrYR9.js");
|
|
1364
|
+
const { requireDocker } = await import("./providers-gDMko8fl.js");
|
|
1365
|
+
const engines = [];
|
|
1366
|
+
for (const engine of ["docker", "podman"]) if (await dockerAvailable(engine)) engines.push(engine);
|
|
1367
|
+
if (!engines.length) await requireDocker();
|
|
1368
|
+
let removed = 0;
|
|
1369
|
+
for (const engine of engines) removed += await pruneImages(engine);
|
|
1343
1370
|
console.log(removed ? `Removed ${removed} image${removed === 1 ? "" : "s"} reeval built that nothing uses` : "No leftover images to remove");
|
|
1344
1371
|
}
|
|
1345
1372
|
return EXIT.ok;
|
|
@@ -1355,40 +1382,21 @@ function verbosityOf(flags) {
|
|
|
1355
1382
|
* does. Needs a config, as `reeval run` does: there is no default image.
|
|
1356
1383
|
*/
|
|
1357
1384
|
async function imageBuildCommand(flags, configPath, filters) {
|
|
1358
|
-
const { buildImages, imagePlanLines, imageTargets } = await import("./images-
|
|
1385
|
+
const { buildImages, imagePlanLines, imageTargets, plannedImageUses } = await import("./images-0On0cztu.js");
|
|
1359
1386
|
const { runId, stagingDir, config, runs, tags, concurrency, profile } = await startRun(await prepareRun({
|
|
1360
1387
|
...flags,
|
|
1361
1388
|
"dry-run": true
|
|
1362
1389
|
}, configPath));
|
|
1363
1390
|
const root = config.root;
|
|
1364
|
-
const
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
concurrency,
|
|
1374
|
-
profile
|
|
1375
|
-
})),
|
|
1376
|
-
filters,
|
|
1377
|
-
onPlan: async (collected) => {
|
|
1378
|
-
if (collected.unmatched.length) throw unmatchedFilter(config, collected.unmatched);
|
|
1379
|
-
planned = collected.planned.filter((p) => !p.attempt.plan.skip);
|
|
1380
|
-
return false;
|
|
1381
|
-
}
|
|
1382
|
-
});
|
|
1383
|
-
const targets = imageTargets(planned.length ? planned.map((p) => ({
|
|
1384
|
-
id: p.id,
|
|
1385
|
-
harness: p.attempt.harness,
|
|
1386
|
-
sandbox: p.attempt.sandbox
|
|
1387
|
-
})) : config.harness.map((harness) => ({
|
|
1388
|
-
id: "",
|
|
1389
|
-
harness,
|
|
1390
|
-
sandbox: config.sandbox
|
|
1391
|
-
})));
|
|
1391
|
+
const targets = imageTargets(await plannedImageUses({
|
|
1392
|
+
runId,
|
|
1393
|
+
stagingDir,
|
|
1394
|
+
config,
|
|
1395
|
+
runs,
|
|
1396
|
+
tags,
|
|
1397
|
+
concurrency,
|
|
1398
|
+
profile
|
|
1399
|
+
}, filters, (parts) => unmatchedFilter(config, parts)));
|
|
1392
1400
|
if (targets.length === 0) {
|
|
1393
1401
|
console.log("No eval runs in a Docker sandbox, so there are no images to build.");
|
|
1394
1402
|
return EXIT.ok;
|
|
@@ -1397,7 +1405,7 @@ async function imageBuildCommand(flags, configPath, filters) {
|
|
|
1397
1405
|
for (const line of await imagePlanLines(targets, root)) console.log(line);
|
|
1398
1406
|
return EXIT.ok;
|
|
1399
1407
|
}
|
|
1400
|
-
const { PrepareError } = await import("./provider-
|
|
1408
|
+
const { PrepareError } = await import("./provider-DehR4CMN.js");
|
|
1401
1409
|
let built;
|
|
1402
1410
|
try {
|
|
1403
1411
|
built = await buildImages(targets, root, {
|
|
@@ -1434,7 +1442,7 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1434
1442
|
if (githubOut) await appendFile(githubOut, `run-id=${ctx.runId}\n`).catch(() => {});
|
|
1435
1443
|
const stepStart = process.env.GITHUB_STEP_SUMMARY;
|
|
1436
1444
|
if (stepStart) await appendFile(stepStart, `run ${ctx.runId}\n`).catch(() => {});
|
|
1437
|
-
const { engineVersions } = await import("./node-
|
|
1445
|
+
const { engineVersions } = await import("./node-B3ydHo6t.js");
|
|
1438
1446
|
const renderer = createRenderer({
|
|
1439
1447
|
out: setup.json ? { write: () => true } : process.stdout,
|
|
1440
1448
|
output: setup.output,
|
|
@@ -1455,15 +1463,16 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1455
1463
|
}
|
|
1456
1464
|
const { engineRun, plan, sandboxVersions, budgetReached, live, notes, questions } = executed;
|
|
1457
1465
|
invocation.unhandledErrors = engineRun.unhandledErrors;
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
await
|
|
1466
|
+
const engines = [...new Set(plan?.sandboxes.flatMap((s) => s.kind === "docker" ? [s.engine ?? "docker"] : []))];
|
|
1467
|
+
if ((interrupted || engineRun.cancelled) && engines.length) {
|
|
1468
|
+
const { removeRunContainers } = await import("./docker-yauK-9X8.js");
|
|
1469
|
+
await removeRunContainers(ctx.runId, engines);
|
|
1461
1470
|
}
|
|
1462
1471
|
if (notes) {
|
|
1463
1472
|
const cancelled = interrupted || engineRun.cancelled;
|
|
1464
1473
|
const written = await notes.finish(cancelled);
|
|
1465
1474
|
if (!cancelled && written.length) {
|
|
1466
|
-
const { notesLine } = await import("./agent-
|
|
1475
|
+
const { notesLine } = await import("./agent-CURAwx_q.js");
|
|
1467
1476
|
const text = notesLine(ctx.config.root, ctx.runId, written);
|
|
1468
1477
|
renderer.onEvent({
|
|
1469
1478
|
type: "notice",
|
|
@@ -1480,8 +1489,8 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1480
1489
|
}
|
|
1481
1490
|
const stopped = interrupted || engineRun.cancelled;
|
|
1482
1491
|
const answers = questions && !stopped ? await questions.settle() : void 0;
|
|
1483
|
-
const { lockfiles } = await import("./state-
|
|
1484
|
-
const { writeScratchRun } = await import("./results-
|
|
1492
|
+
const { lockfiles } = await import("./state-CgjQo29K.js");
|
|
1493
|
+
const { writeScratchRun } = await import("./results-DuauQI3Z.js");
|
|
1485
1494
|
const run = await writeScratchRun({
|
|
1486
1495
|
ctx,
|
|
1487
1496
|
author: ctx.author,
|
|
@@ -1491,7 +1500,7 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1491
1500
|
interrupted: stopped,
|
|
1492
1501
|
budgetReached: budgetReached(),
|
|
1493
1502
|
plan,
|
|
1494
|
-
|
|
1503
|
+
reeval: version,
|
|
1495
1504
|
runtime: runtimeInfo(),
|
|
1496
1505
|
language: { name: "typescript" },
|
|
1497
1506
|
enginePackages: engineVersions,
|
|
@@ -1506,8 +1515,8 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1506
1515
|
}, () => live?.stop());
|
|
1507
1516
|
const { record } = run;
|
|
1508
1517
|
if (notes && !stopped) {
|
|
1509
|
-
const { summarizeRun } = await import("./agent-
|
|
1510
|
-
const { resolveAnalysisModel } = await import("./model-
|
|
1518
|
+
const { summarizeRun } = await import("./agent-CURAwx_q.js");
|
|
1519
|
+
const { resolveAnalysisModel } = await import("./model-NM3ID0uR.js");
|
|
1511
1520
|
const model = resolveAnalysisModel(ctx.config, "agent");
|
|
1512
1521
|
const { level, text } = await summarizeRun(ctx.config, record.runId, model);
|
|
1513
1522
|
renderer.onEvent({
|
|
@@ -1517,7 +1526,7 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1517
1526
|
text
|
|
1518
1527
|
});
|
|
1519
1528
|
}
|
|
1520
|
-
const { pruneDebug } = await import("./files-
|
|
1529
|
+
const { pruneDebug } = await import("./files-BAt0i00X.js");
|
|
1521
1530
|
await pruneDebug(ctx.config.root, ctx.config.debug.keep).catch(() => {});
|
|
1522
1531
|
const summary = run.artifactDir ? join(run.artifactDir, "summary.md") : run.recordPath;
|
|
1523
1532
|
renderer.onEvent({
|
|
@@ -1534,7 +1543,7 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1534
1543
|
const { config } = ctx;
|
|
1535
1544
|
const mode = setup.record;
|
|
1536
1545
|
if ((flags.record || mode === "always" || mode === "ci" && inCI()) && record.status !== "interrupted") {
|
|
1537
|
-
const { record: recordCmd } = await import("./commands-
|
|
1546
|
+
const { record: recordCmd } = await import("./commands-1p-bIWhN.js");
|
|
1538
1547
|
const allow = record.status === "budget" ? { "allow-incomplete": true } : {};
|
|
1539
1548
|
console.log(await recordCmd(config, record.runId, {
|
|
1540
1549
|
...flags,
|
|
@@ -1572,9 +1581,10 @@ async function prepareRun(flags, configPath) {
|
|
|
1572
1581
|
}
|
|
1573
1582
|
const sandboxes = [environmentSandbox(config.environment, config.sandbox), ...profile?.defaults.environment ? [environmentSandbox(profile.defaults.environment, config.sandbox)] : []];
|
|
1574
1583
|
const concurrency = await resolveConcurrency(config, flags.concurrency, async () => {
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1584
|
+
const container = sandboxes.find((s) => s.kind === "docker");
|
|
1585
|
+
if (!container) return hostCapacity();
|
|
1586
|
+
const { dockerCapacity } = await import("./src-pJZOrYR9.js");
|
|
1587
|
+
return await dockerCapacity(container.engine) ?? hostCapacity();
|
|
1578
1588
|
});
|
|
1579
1589
|
return {
|
|
1580
1590
|
output,
|
|
@@ -1600,11 +1610,11 @@ async function prepareRun(flags, configPath) {
|
|
|
1600
1610
|
async function startRun({ config, profile, runs, tags, concurrency, verbosity, configFile, resume, dryRun }) {
|
|
1601
1611
|
const startedAt = /* @__PURE__ */ new Date();
|
|
1602
1612
|
const git = await gitInfo(config.root, [config.history.dir]);
|
|
1603
|
-
const { worktreePatch } = await import("./state-
|
|
1613
|
+
const { worktreePatch } = await import("./state-CgjQo29K.js");
|
|
1604
1614
|
const patch = git?.dirty ? await worktreePatch(config.root, [config.history.dir]) : null;
|
|
1605
1615
|
const who = await author(config.root);
|
|
1606
|
-
const { stagingDir, sweepStaging } = await import("./results-
|
|
1607
|
-
const { scratchDir } = await import("./files-
|
|
1616
|
+
const { stagingDir, sweepStaging } = await import("./results-DuauQI3Z.js");
|
|
1617
|
+
const { scratchDir } = await import("./files-ZZPqfAo6.js");
|
|
1608
1618
|
const scratch = scratchDir(config.root);
|
|
1609
1619
|
if (resume !== void 0) {
|
|
1610
1620
|
const target = await resolveResume(config.root, resume || void 0);
|
|
@@ -1615,8 +1625,8 @@ async function startRun({ config, profile, runs, tags, concurrency, verbosity, c
|
|
|
1615
1625
|
artifacts: target.previousArtifacts
|
|
1616
1626
|
} : await loadPrevious(stagingDir(config.root, target.runId));
|
|
1617
1627
|
if (!dryRun) try {
|
|
1618
|
-
const { removeRunContainers } = await import("./docker-
|
|
1619
|
-
await removeRunContainers(target.runId);
|
|
1628
|
+
const { removeRunContainers } = await import("./docker-yauK-9X8.js");
|
|
1629
|
+
await removeRunContainers(target.runId, ["docker", "podman"]);
|
|
1620
1630
|
} catch {}
|
|
1621
1631
|
return {
|
|
1622
1632
|
runId: target.runId,
|
|
@@ -1686,8 +1696,8 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1686
1696
|
configFile,
|
|
1687
1697
|
completed: []
|
|
1688
1698
|
}));
|
|
1689
|
-
const { runEngine } = await import("./node-
|
|
1690
|
-
const { buildPlan, checkAttemptBudget, planDocument, planLine, planTable } = await import("./plan-
|
|
1699
|
+
const { runEngine } = await import("./node-B3ydHo6t.js");
|
|
1700
|
+
const { buildPlan, checkAttemptBudget, planDocument, planLine, planTable } = await import("./plan-C9Cy27Ay.js");
|
|
1691
1701
|
let plan;
|
|
1692
1702
|
let sandboxVersions = { images: [] };
|
|
1693
1703
|
let preflightStop;
|
|
@@ -1714,7 +1724,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1714
1724
|
} : p);
|
|
1715
1725
|
toRun = skipped;
|
|
1716
1726
|
for (const p of skipped) for (const name of p.attempt.secretVars) registerSecret(process.env[name]);
|
|
1717
|
-
const models = skipped.some((p) => !p.attempt.plan.skip && p.attempt.plan.questions?.length) ? await import("./model-
|
|
1727
|
+
const models = skipped.some((p) => !p.attempt.plan.skip && p.attempt.plan.questions?.length) ? await import("./model-NM3ID0uR.js") : void 0;
|
|
1718
1728
|
plan = await buildPlan({
|
|
1719
1729
|
planned: skipped,
|
|
1720
1730
|
profile,
|
|
@@ -1730,7 +1740,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1730
1740
|
completed: completed.size
|
|
1731
1741
|
};
|
|
1732
1742
|
run.completed = [...completed];
|
|
1733
|
-
const { imageStages, imageTargets } = await import("./images-
|
|
1743
|
+
const { imageStages, imageTargets } = await import("./images-0On0cztu.js");
|
|
1734
1744
|
const targets = imageTargets(skipped.filter((p) => !p.attempt.plan.skip).map((p) => ({
|
|
1735
1745
|
id: p.id,
|
|
1736
1746
|
harness: p.attempt.harness,
|
|
@@ -1751,10 +1761,16 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1751
1761
|
if (setup.dryRun) {
|
|
1752
1762
|
const todos = excluded.filter((e) => e.mode === "todo").map((e) => e.id);
|
|
1753
1763
|
lines.push(...planTable(plan, todos));
|
|
1754
|
-
const { imageStatusLines } = await import("./images-
|
|
1755
|
-
const { dockerAvailable } = await import("./src-
|
|
1756
|
-
|
|
1757
|
-
|
|
1764
|
+
const { imageStatusLines } = await import("./images-0On0cztu.js");
|
|
1765
|
+
const { dockerAvailable, engineSpec } = await import("./src-pJZOrYR9.js");
|
|
1766
|
+
const engines = [...new Set(targets.map((t) => t.sandbox.engine ?? "docker"))];
|
|
1767
|
+
const down = [];
|
|
1768
|
+
for (const engine of engines) if (!await dockerAvailable(engine)) down.push(engine);
|
|
1769
|
+
if (targets.length && !down.length) lines.push(...await imageStatusLines(targets, config.root));
|
|
1770
|
+
else if (targets.length) {
|
|
1771
|
+
const names = down.map((e) => engineSpec(e).name).join(" and ");
|
|
1772
|
+
lines.push(`images not checked: ${names} ${down.length === 1 ? "is" : "are"} not running`);
|
|
1773
|
+
}
|
|
1758
1774
|
}
|
|
1759
1775
|
lines.push(...plan.warnings.map((w) => `warning: ${w}`));
|
|
1760
1776
|
lines.push(...plan.hints.map((h) => `hint: ${h}`));
|
|
@@ -1766,7 +1782,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1766
1782
|
});
|
|
1767
1783
|
if (setup.dryRun) return false;
|
|
1768
1784
|
checkAttemptBudget(plan, setup.force, config.file);
|
|
1769
|
-
const analysis = config.analysis.agent ? await import("./model-
|
|
1785
|
+
const analysis = config.analysis.agent ? await import("./model-NM3ID0uR.js") : null;
|
|
1770
1786
|
analysis?.analysisModelName(config, "agent");
|
|
1771
1787
|
const questionModels = /* @__PURE__ */ new Set();
|
|
1772
1788
|
const asked = [];
|
|
@@ -1775,7 +1791,9 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1775
1791
|
const questions = (row.plan.questions ?? []).map((q) => ({
|
|
1776
1792
|
question: q.question,
|
|
1777
1793
|
model: models.questionModel(config, q, row.id),
|
|
1778
|
-
...q.across ? { across: q.across } : {}
|
|
1794
|
+
...q.across ? { across: q.across } : {},
|
|
1795
|
+
...q.state ? { state: q.state } : {},
|
|
1796
|
+
...q.artifacts !== void 0 ? { artifacts: q.artifacts } : {}
|
|
1779
1797
|
}));
|
|
1780
1798
|
for (const q of questions) if (typeof q.model === "string") questionModels.add(q.model);
|
|
1781
1799
|
if (questions.length) asked.push({
|
|
@@ -1796,7 +1814,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1796
1814
|
});
|
|
1797
1815
|
if (malformed.length) throw new UsageError(`Credentials with whitespace or a line break in them: ${malformed.join(", ")}. A key copied from a wrapped terminal line picks these up; set it again as one line.`);
|
|
1798
1816
|
if (analysis) {
|
|
1799
|
-
const { startNotes } = await import("./agent-
|
|
1817
|
+
const { startNotes } = await import("./agent-CURAwx_q.js");
|
|
1800
1818
|
notes = startNotes({
|
|
1801
1819
|
config,
|
|
1802
1820
|
model: analysis.resolveAnalysisModel(config, "agent"),
|
|
@@ -1812,7 +1830,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1812
1830
|
});
|
|
1813
1831
|
}
|
|
1814
1832
|
if (asked.length) {
|
|
1815
|
-
const { questionRunner } = await import("./questions-
|
|
1833
|
+
const { questionRunner } = await import("./questions-DjAwMxZ3.js");
|
|
1816
1834
|
questions = questionRunner({
|
|
1817
1835
|
evals: asked,
|
|
1818
1836
|
stagingDir,
|
|
@@ -1829,7 +1847,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1829
1847
|
}
|
|
1830
1848
|
});
|
|
1831
1849
|
}
|
|
1832
|
-
const { prepareWorkspaces, workspaceKey } = await import("./workspace-
|
|
1850
|
+
const { prepareWorkspaces, workspaceKey } = await import("./workspace-D8sSgpiy.js");
|
|
1833
1851
|
const live = skipped.filter((p) => !p.attempt.plan.skip);
|
|
1834
1852
|
const outcomes = await prepareWorkspaces(live.flatMap(({ attempt: a }) => a.workspace ? [{
|
|
1835
1853
|
workspace: a.workspace,
|
|
@@ -1977,14 +1995,14 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1977
1995
|
throw error;
|
|
1978
1996
|
} finally {
|
|
1979
1997
|
clearTimeout(budgetTimer);
|
|
1980
|
-
const { removePrepared } = await import("./preflight-
|
|
1998
|
+
const { removePrepared } = await import("./preflight-CPWpQeBI.js");
|
|
1981
1999
|
removePrepared(config.root, runId);
|
|
1982
|
-
const { removePreparedWorkspaces } = await import("./workspace-
|
|
2000
|
+
const { removePreparedWorkspaces } = await import("./workspace-D8sSgpiy.js");
|
|
1983
2001
|
removePreparedWorkspaces(config.root, runId);
|
|
1984
2002
|
}
|
|
1985
2003
|
if (preflightStop) throw preflightStop;
|
|
1986
2004
|
if (engineRun.noFiles || !engineRun.stopped && engineRun.evals.length === 0 && !interrupted) live?.remove();
|
|
1987
|
-
if (engineRun.noFiles && !filters.length && !tags.length) throw new UsageError(`No eval files match ${config.include.join(", ")}
|
|
2005
|
+
if (engineRun.noFiles && !filters.length && !tags.length) throw new UsageError(`No eval files in ${config.root} match include: ${config.include.join(", ")}. Name eval files to match it, or set include in ${config.file}.`);
|
|
1988
2006
|
if (engineRun.noFiles || !engineRun.stopped && engineRun.evals.length === 0 && !interrupted) throw noMatch(config, filters, tags);
|
|
1989
2007
|
return {
|
|
1990
2008
|
engineRun,
|
|
@@ -2013,7 +2031,7 @@ function finish(code, error, kind) {
|
|
|
2013
2031
|
const command = commandOf(argv);
|
|
2014
2032
|
logInvocation(root, {
|
|
2015
2033
|
at: new Date(startedAt).toISOString(),
|
|
2016
|
-
|
|
2034
|
+
reeval: version,
|
|
2017
2035
|
argv: redactArgv(argv),
|
|
2018
2036
|
command,
|
|
2019
2037
|
exitCode: code,
|
|
@@ -2062,4 +2080,4 @@ run(process.argv.slice(2)).finally(() => {
|
|
|
2062
2080
|
//#endregion
|
|
2063
2081
|
export {};
|
|
2064
2082
|
|
|
2065
|
-
//# sourceMappingURL=cli-
|
|
2083
|
+
//# sourceMappingURL=cli-D303Vj5N.js.map
|