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,18 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as
|
|
3
|
-
import { n as prepareAll } from "./preflight-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { f as sandboxId, p as sandboxProvider } from "./options-Bh2W63dK.js";
|
|
2
|
+
import { I as LABEL, U as imageFor, X as imageInfo, at as isTransient, c as dockerfileTag, d as installLayerTag, h as usesReevalBase, m as resolveFrom, n as REEVAL_BASE_ARG, s as contextHash, u as harnessImageFor, ut as engineSpec } from "./src-B7treWa8.js";
|
|
3
|
+
import { n as prepareAll } from "./preflight-D7iFPKeK.js";
|
|
4
|
+
import { a as projectPath, n as imageHarness, r as installSteps } from "./prepare-doGxaAGR.js";
|
|
5
|
+
import { i as dockerKey, r as createProviders, t as attemptImage } from "./providers-tAOD1NQN.js";
|
|
6
6
|
//#region src/sandbox/images.ts
|
|
7
|
+
/**
|
|
8
|
+
* What `reeval image build` builds and `reeval doctor` checks: the harness and sandbox of each
|
|
9
|
+
* attempt the evals plan (collected as `--dry-run` does), or the config's harnesses on its sandbox
|
|
10
|
+
* when they plan none.
|
|
11
|
+
*/
|
|
12
|
+
async function plannedImageUses(run, filters = [], unmatched) {
|
|
13
|
+
const { runEngine } = await import("./node-B3ydHo6t.js");
|
|
14
|
+
let planned = [];
|
|
15
|
+
await runEngine({
|
|
16
|
+
run: JSON.parse(JSON.stringify(run)),
|
|
17
|
+
filters,
|
|
18
|
+
onPlan: async (collected) => {
|
|
19
|
+
if (unmatched && collected.unmatched.length) throw unmatched(collected.unmatched);
|
|
20
|
+
planned = collected.planned.filter((p) => !p.attempt.plan.skip);
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return planned.length ? planned.map((p) => ({
|
|
25
|
+
id: p.id,
|
|
26
|
+
harness: p.attempt.harness,
|
|
27
|
+
sandbox: p.attempt.sandbox
|
|
28
|
+
})) : run.config.harness.map((harness) => ({
|
|
29
|
+
id: "",
|
|
30
|
+
harness,
|
|
31
|
+
sandbox: run.config.sandbox
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
7
34
|
/** The distinct Docker sandbox and harness pairs, in first-use order, with how many evals use each. */
|
|
8
35
|
function imageTargets(uses) {
|
|
9
36
|
const targets = /* @__PURE__ */ new Map();
|
|
10
37
|
for (const { id, sandbox, ...use } of uses) {
|
|
11
38
|
if (sandbox.kind !== "docker") continue;
|
|
12
39
|
const harness = imageHarness(use.harness);
|
|
13
|
-
const { image, from, dockerfile, install } = sandbox;
|
|
40
|
+
const { engine, image, from, dockerfile, install } = sandbox;
|
|
14
41
|
const key = JSON.stringify({
|
|
15
42
|
harness,
|
|
43
|
+
engine,
|
|
16
44
|
image: {
|
|
17
45
|
image,
|
|
18
46
|
from,
|
|
@@ -21,7 +49,7 @@ function imageTargets(uses) {
|
|
|
21
49
|
}
|
|
22
50
|
});
|
|
23
51
|
const target = targets.get(key) ?? {
|
|
24
|
-
id:
|
|
52
|
+
id: `${sandboxId(sandbox)} · ${harness}`,
|
|
25
53
|
harness,
|
|
26
54
|
sandbox,
|
|
27
55
|
evals: 0,
|
|
@@ -45,10 +73,18 @@ function imageTargets(uses) {
|
|
|
45
73
|
});
|
|
46
74
|
}
|
|
47
75
|
const short = (digest) => digest.replace(/^sha256:/, "").slice(0, 12);
|
|
76
|
+
const look = (ref, engine) => imageInfo(ref, engine).then((info) => ({ info }), (error) => ({
|
|
77
|
+
info: null,
|
|
78
|
+
error: error.message
|
|
79
|
+
}));
|
|
48
80
|
/** `from`'s image, checked against what the tag names now (a registry lookup, no pull). */
|
|
49
|
-
async function fromStatus(from, ref) {
|
|
50
|
-
const [cached, now] = await Promise.all([
|
|
51
|
-
if (
|
|
81
|
+
async function fromStatus(from, ref, engine) {
|
|
82
|
+
const [cached, now] = await Promise.all([look(ref, engine), resolveFrom(from, void 0, engine)]);
|
|
83
|
+
if (cached.error) return {
|
|
84
|
+
status: "unknown",
|
|
85
|
+
detail: cached.error
|
|
86
|
+
};
|
|
87
|
+
if (!cached.info) {
|
|
52
88
|
if (!("error" in now)) return {
|
|
53
89
|
status: "build",
|
|
54
90
|
detail: `on ${from} (${short(now.digest)})`
|
|
@@ -61,7 +97,7 @@ async function fromStatus(from, ref) {
|
|
|
61
97
|
detail: `doesn't resolve: ${now.error}`
|
|
62
98
|
};
|
|
63
99
|
}
|
|
64
|
-
const was = cached.labels[LABEL.fromDigest];
|
|
100
|
+
const was = cached.info.labels[LABEL.fromDigest];
|
|
65
101
|
if ("error" in now) return {
|
|
66
102
|
status: "ready",
|
|
67
103
|
detail: `built; ${from} couldn't be checked`
|
|
@@ -75,20 +111,34 @@ async function fromStatus(from, ref) {
|
|
|
75
111
|
detail: `built on ${short(now.digest)}`
|
|
76
112
|
};
|
|
77
113
|
}
|
|
78
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* How each target's image is made, in build order, and how each step stands, building nothing. A
|
|
116
|
+
* step whose image Docker couldn't say is there is `unknown`, with Docker's error.
|
|
117
|
+
*/
|
|
79
118
|
async function imageStages(target, root) {
|
|
80
119
|
const { sandbox, harness } = target;
|
|
120
|
+
const { engine } = sandbox;
|
|
81
121
|
const stages = [];
|
|
82
122
|
const exists = async (ref) => {
|
|
83
|
-
const info = await
|
|
123
|
+
const { info, error } = await look(ref, engine);
|
|
124
|
+
if (error) return {
|
|
125
|
+
info,
|
|
126
|
+
status: "unknown",
|
|
127
|
+
detail: error
|
|
128
|
+
};
|
|
84
129
|
return {
|
|
85
130
|
info,
|
|
86
131
|
status: info ? "ready" : "build",
|
|
87
132
|
detail: info ? `built (${short(info.id)})` : "not built yet"
|
|
88
133
|
};
|
|
89
134
|
};
|
|
90
|
-
const
|
|
91
|
-
const info = await
|
|
135
|
+
const reevalBase = async () => {
|
|
136
|
+
const { info, error } = await look(imageFor(harness), engine);
|
|
137
|
+
if (error) return {
|
|
138
|
+
info,
|
|
139
|
+
status: "unknown",
|
|
140
|
+
detail: error
|
|
141
|
+
};
|
|
92
142
|
if (!info) return {
|
|
93
143
|
info,
|
|
94
144
|
status: "build",
|
|
@@ -105,16 +155,21 @@ async function imageStages(target, root) {
|
|
|
105
155
|
};
|
|
106
156
|
};
|
|
107
157
|
let parent = null;
|
|
158
|
+
let unanswered = null;
|
|
108
159
|
if (sandbox.image) {
|
|
109
|
-
const found = await
|
|
110
|
-
parent = found?.id ?? null;
|
|
160
|
+
const found = await look(sandbox.image, engine);
|
|
161
|
+
parent = found.info?.id ?? null;
|
|
162
|
+
unanswered = found.error ?? null;
|
|
111
163
|
stages.push({
|
|
112
164
|
what: "image",
|
|
113
165
|
ref: sandbox.image,
|
|
114
166
|
action: "used as is",
|
|
115
|
-
...found ? {
|
|
167
|
+
...found.error ? {
|
|
168
|
+
status: "unknown",
|
|
169
|
+
detail: found.error
|
|
170
|
+
} : found.info ? {
|
|
116
171
|
status: "ready",
|
|
117
|
-
detail: `found (${short(found.id)})`
|
|
172
|
+
detail: `found (${short(found.info.id)})`
|
|
118
173
|
} : {
|
|
119
174
|
status: "missing",
|
|
120
175
|
detail: "not found: pull or build it yourself"
|
|
@@ -122,8 +177,9 @@ async function imageStages(target, root) {
|
|
|
122
177
|
});
|
|
123
178
|
} else if (sandbox.from) {
|
|
124
179
|
const ref = harnessImageFor(harness, sandbox.from);
|
|
125
|
-
const status = await fromStatus(sandbox.from, ref);
|
|
126
|
-
parent = status.status === "ready" ? (await
|
|
180
|
+
const status = await fromStatus(sandbox.from, ref, engine);
|
|
181
|
+
parent = status.status === "ready" ? (await look(ref, engine)).info?.id ?? null : null;
|
|
182
|
+
if (status.status === "unknown") unanswered = status.detail;
|
|
127
183
|
stages.push({
|
|
128
184
|
what: `from ${sandbox.from}`,
|
|
129
185
|
ref,
|
|
@@ -131,30 +187,32 @@ async function imageStages(target, root) {
|
|
|
131
187
|
...status
|
|
132
188
|
});
|
|
133
189
|
} else if (sandbox.dockerfile) {
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
const real = dockerfileTag(sandbox.dockerfile, harness,
|
|
137
|
-
const tag =
|
|
190
|
+
const onReeval = usesReevalBase(sandbox.dockerfile);
|
|
191
|
+
const base = onReeval ? await reevalBase() : null;
|
|
192
|
+
const real = dockerfileTag(sandbox.dockerfile, harness, base?.info?.id ?? null).tag;
|
|
193
|
+
const tag = onReeval ? real.replace(/-[0-9a-f]{16}$/, "-<context + reeval image id>") : real;
|
|
138
194
|
const built = await exists(real);
|
|
139
195
|
stages.push({
|
|
140
196
|
what: `dockerfile ${projectPath(root, sandbox.dockerfile)}`,
|
|
141
197
|
ref: tag,
|
|
142
|
-
action:
|
|
198
|
+
action: `${engineSpec(engine).bin} build (layer cache), tagged by content hash`,
|
|
143
199
|
status: built.status,
|
|
144
|
-
detail: built.info || !
|
|
200
|
+
detail: built.info || !onReeval || built.status === "unknown" ? built.detail : `${built.detail} (${real})`
|
|
145
201
|
});
|
|
146
|
-
if (
|
|
202
|
+
if (onReeval) {
|
|
147
203
|
parent = built.info?.id ?? null;
|
|
204
|
+
if (built.status === "unknown") unanswered = built.detail;
|
|
148
205
|
stages.push({
|
|
149
206
|
what: "harness",
|
|
150
207
|
ref: tag,
|
|
151
208
|
action: `inherited: FROM \${${REEVAL_BASE_ARG}}, which is ${imageFor(harness)}`,
|
|
152
|
-
status:
|
|
153
|
-
detail: `${imageFor(harness)} ${
|
|
209
|
+
status: base?.status ?? "build",
|
|
210
|
+
detail: base?.status === "unknown" ? base.detail : `${imageFor(harness)} ${base?.detail ?? ""}`.trim()
|
|
154
211
|
});
|
|
155
212
|
} else {
|
|
156
213
|
const baked = await exists(harnessImageFor(harness, real));
|
|
157
214
|
parent = baked.info?.id ?? null;
|
|
215
|
+
if (baked.status === "unknown") unanswered = baked.detail;
|
|
158
216
|
stages.push({
|
|
159
217
|
what: "harness",
|
|
160
218
|
ref: harnessImageFor(harness, tag),
|
|
@@ -164,33 +222,42 @@ async function imageStages(target, root) {
|
|
|
164
222
|
});
|
|
165
223
|
}
|
|
166
224
|
} else {
|
|
167
|
-
const
|
|
168
|
-
parent =
|
|
225
|
+
const base = await reevalBase();
|
|
226
|
+
parent = base.status === "ready" ? base.info?.id ?? null : null;
|
|
227
|
+
if (base.status === "unknown") unanswered = base.detail;
|
|
169
228
|
stages.push({
|
|
170
229
|
what: "base",
|
|
171
230
|
ref: imageFor(harness),
|
|
172
231
|
action: "reeval's image: built when missing or when its base changed",
|
|
173
|
-
status:
|
|
174
|
-
detail:
|
|
232
|
+
status: base.status,
|
|
233
|
+
detail: base.detail
|
|
175
234
|
});
|
|
176
235
|
}
|
|
177
236
|
const steps = installSteps(sandbox);
|
|
178
237
|
if (steps.length) {
|
|
179
|
-
const
|
|
238
|
+
const ref = parent ? installLayerTag({ id: parent }, steps) : null;
|
|
239
|
+
const layer = ref ? await exists(ref) : unanswered ? {
|
|
240
|
+
status: "unknown",
|
|
241
|
+
detail: unanswered
|
|
242
|
+
} : {
|
|
243
|
+
status: "build",
|
|
244
|
+
detail: "not built yet"
|
|
245
|
+
};
|
|
180
246
|
stages.push({
|
|
181
247
|
what: `install ${steps.length} command${steps.length === 1 ? "" : "s"}`,
|
|
182
|
-
ref: "reeval-install:<base id + commands>",
|
|
248
|
+
ref: ref ?? "reeval-install:<base id + commands>",
|
|
183
249
|
action: "build unless cached",
|
|
184
|
-
status: layer
|
|
185
|
-
detail: layer
|
|
250
|
+
status: layer.status,
|
|
251
|
+
detail: layer.detail
|
|
186
252
|
});
|
|
187
253
|
}
|
|
188
254
|
return stages;
|
|
189
255
|
}
|
|
190
256
|
/** reeval's harness images the targets need: used directly, or as a Dockerfile's `REEVAL_BASE`. */
|
|
191
|
-
const
|
|
257
|
+
const reevalImages = (targets) => [...new Set(targets.filter(({ sandbox: s }) => !s.image && !s.from && !s.dockerfile || s.dockerfile && usesReevalBase(s.dockerfile)).map((t) => t.harness))];
|
|
192
258
|
const WORST = [
|
|
193
259
|
"missing",
|
|
260
|
+
"unknown",
|
|
194
261
|
"stale",
|
|
195
262
|
"build",
|
|
196
263
|
"ready"
|
|
@@ -199,13 +266,15 @@ const MARKS = {
|
|
|
199
266
|
ready: "✓",
|
|
200
267
|
build: "+",
|
|
201
268
|
stale: "~",
|
|
202
|
-
missing: "✗"
|
|
269
|
+
missing: "✗",
|
|
270
|
+
unknown: "?"
|
|
203
271
|
};
|
|
204
272
|
const WORDS = {
|
|
205
273
|
ready: "ready",
|
|
206
274
|
build: "to build",
|
|
207
275
|
stale: "stale",
|
|
208
|
-
missing: "missing"
|
|
276
|
+
missing: "missing",
|
|
277
|
+
unknown: "unchecked"
|
|
209
278
|
};
|
|
210
279
|
/** A target's standing: its worst step. */
|
|
211
280
|
const targetStatus = (stages) => WORST.find((w) => stages.some((s) => s.status === w)) ?? "ready";
|
|
@@ -246,7 +315,7 @@ async function imageStatusLines(targets, root) {
|
|
|
246
315
|
async function buildImages(targets, root, options) {
|
|
247
316
|
const providers = createProviders({ refresh: options.force ? "force" : "check" });
|
|
248
317
|
const prepared = targets.map((t) => ({
|
|
249
|
-
kind:
|
|
318
|
+
kind: sandboxProvider(t.sandbox),
|
|
250
319
|
key: dockerKey(t.sandbox, harnessFor(t.harness)),
|
|
251
320
|
label: t.id,
|
|
252
321
|
sandbox: t.sandbox,
|
|
@@ -265,7 +334,7 @@ async function buildImages(targets, root, options) {
|
|
|
265
334
|
return o.ok ? {
|
|
266
335
|
...t,
|
|
267
336
|
ok: true,
|
|
268
|
-
image: o.handle,
|
|
337
|
+
image: attemptImage(o.handle),
|
|
269
338
|
ms: o.ms
|
|
270
339
|
} : {
|
|
271
340
|
...t,
|
|
@@ -281,6 +350,6 @@ const harnessFor = (harness) => ({
|
|
|
281
350
|
layout: harness
|
|
282
351
|
});
|
|
283
352
|
//#endregion
|
|
284
|
-
export { buildImages,
|
|
353
|
+
export { buildImages, imagePlanLines, imageStages, imageStatusLines, imageTargets, plannedImageUses, reevalImages };
|
|
285
354
|
|
|
286
|
-
//# sourceMappingURL=images-
|
|
355
|
+
//# sourceMappingURL=images-0On0cztu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images-0On0cztu.js","names":[],"sources":["../src/sandbox/images.ts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $t as RunRecord, A as DirectoryOptions, At as SetupStep, B as EvalFn, Bt as WebEventType, C as CompareCut, Ct as ProfileLimit, Dt as Secret, E as ConfigHelpers, F as EnvVars, Ft as TurnData, Ht as AttemptRecord, I as Environment, L as EnvironmentHelpers, Lt as Verdict, M as Duration, N as EgressPolicy, Nt as TranscriptEvent, Ot as SecretTemplate, P as EgressRecord, Pt as Turn, R as EnvironmentInput, Rt as Viewport, S as CompareAnswer, St as ProfileDefaults, T as CompareQuestion, U as ExecResult, Ut as CellRecord, V as EvalOptions, Wt as EvalEntry, _ as Cell, _t as PairFactor, a as BackgroundHandle, at as HistoryConfig, bt as PinnableKey, c as Capture, ct as JudgeCallOptions, d as CaptureOptions, dt as JudgeOptions, et as GroupOptions, f as CaptureUse, g as CaptureWindow, h as CaptureWait, i as AttemptContext, it as HarnessOption, jt as SkillSource, k as Diff, kt as ServeHandle, l as CaptureCall, lt as JudgeFailure, m as CaptureUseScript, mt as McpServer, ot as HostFile, p as CaptureUseAction, pt as JudgeStateOptions, qt as FamilyRecord, rt as HarnessEdit, s as Budget, st as JudgeArtifactRef, tt as HarnessData, u as CaptureInstruction, v as CellRole, vt as PairVote, w as CompareOptions, wt as ReevalConfig, xt as Profile, z as EnvironmentSpec, zt as Wait } from "./types-g17bRAzt.js";
|
|
2
|
+
import { i as group, r as evaluate, t as EachOptions } from "./evaluate-C1UVL21l.js";
|
|
2
3
|
import { Duplex } from "node:stream";
|
|
3
4
|
import { ExpectStatic, Tester } from "@vitest/expect";
|
|
4
5
|
import "@ai-sdk/harness";
|
|
@@ -9,7 +10,7 @@ export declare class HarnessCapabilityError extends Error {
|
|
|
9
10
|
}
|
|
10
11
|
//#endregion
|
|
11
12
|
//#region src/config.d.ts
|
|
12
|
-
type ConfigInput =
|
|
13
|
+
type ConfigInput = ReevalConfig | ((helpers: ConfigHelpers) => ReevalConfig);
|
|
13
14
|
/**
|
|
14
15
|
* The config: a plain object, or a callback that destructures the helpers it needs, e.g.
|
|
15
16
|
* `defineConfig(({ secret }) => ({ env: { KEY: secret.fromEnv('KEY') } }))`.
|
|
@@ -42,6 +43,11 @@ declare module '@vitest/expect' {
|
|
|
42
43
|
hasAssertions: () => void;
|
|
43
44
|
}
|
|
44
45
|
interface Matchers<R extends void | Promise<void> = void | Promise<void>, T = unknown> {
|
|
46
|
+
toBe(expected: unknown): void;
|
|
47
|
+
toEqual(expected: unknown): void;
|
|
48
|
+
toBeNull(): void;
|
|
49
|
+
toBeTruthy(): void;
|
|
50
|
+
toContain(needle: unknown): void;
|
|
45
51
|
toHaveFile(path: string, pattern?: RegExp | string): Promise<void>;
|
|
46
52
|
toSucceed(): Promise<void>;
|
|
47
53
|
toHaveSearched(query?: RegExp | string): void;
|
|
@@ -87,39 +93,5 @@ export declare const DEFAULT_DIRECTORY_IGNORES: readonly string[];
|
|
|
87
93
|
*/
|
|
88
94
|
export declare function defineEnvironment(name: string, input: EnvironmentInput): Environment;
|
|
89
95
|
//#endregion
|
|
90
|
-
|
|
91
|
-
type GroupFn = {
|
|
92
|
-
(name: string, fn: () => void, options?: GroupOptions): void;
|
|
93
|
-
(name: string, options: GroupOptions, fn: () => void): void;
|
|
94
|
-
};
|
|
95
|
-
export declare const group: GroupFn & {
|
|
96
|
-
skip: GroupFn;
|
|
97
|
-
only: GroupFn;
|
|
98
|
-
todo: (name: string) => void;
|
|
99
|
-
};
|
|
100
|
-
type EvaluateFn<F = EvalFn> = {
|
|
101
|
-
(name: string, fn: F, options?: EvalOptions): void;
|
|
102
|
-
(name: string, options: EvalOptions, fn: F): void;
|
|
103
|
-
};
|
|
104
|
-
/** How an `evaluate.each` treats its cases. */
|
|
105
|
-
type EachOptions = {
|
|
106
|
-
/**
|
|
107
|
-
* Pool the cases into one suite: a pass rate over them and, with `compare`, one paired lift
|
|
108
|
-
* that `minLift` gates. On by default; `false` keeps them independent evals.
|
|
109
|
-
*/
|
|
110
|
-
pool?: boolean;
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* One eval per case, pooled into one suite:
|
|
114
|
-
* `evaluate.each(cases)('adds $a and $b', async (c, { a, b }) => …)`.
|
|
115
|
-
*/
|
|
116
|
-
declare const evalEach: <T>(cases: readonly T[], options?: EachOptions) => EvaluateFn<(c: AttemptContext, item: T) => Promise<void>>;
|
|
117
|
-
export declare const evaluate: EvaluateFn & {
|
|
118
|
-
skip: EvaluateFn;
|
|
119
|
-
only: EvaluateFn;
|
|
120
|
-
todo: (name: string) => void;
|
|
121
|
-
each: typeof evalEach;
|
|
122
|
-
};
|
|
123
|
-
//#endregion
|
|
124
|
-
export type { AttemptContext, AttemptRecord, BackgroundHandle, Budget, Capture, CaptureCall, CaptureInstruction, CaptureOptions, CaptureUse, CaptureUseAction, CaptureUseScript, CaptureWait, CaptureWindow, Cell, CellRecord, CellRole, CompareAnswer, CompareCut, CompareOptions, CompareQuestion, ConfigHelpers, Diff, DirectoryOptions, Duration, EachOptions, EgressPolicy, EgressRecord, EnvVars, Environment, EnvironmentHelpers, EnvironmentInput, EnvironmentSpec, EsConfig, EvalEntry, EvalFn, EvalOptions, ExecResult, FamilyRecord, GroupOptions, HarnessData, HarnessEdit, HarnessOption, HistoryConfig, HostFile, JudgeArtifactRef, JudgeCallOptions, JudgeFailure, JudgeOptions, McpServer, PairFactor, PairVote, PinnableKey, Profile, ProfileDefaults, ProfileLimit, RunRecord, Secret, SecretTemplate, ServeHandle, SetupStep, SkillSource, TranscriptEvent, Turn, TurnData, Verdict, Viewport, Wait, WebEventType };
|
|
96
|
+
export { type AttemptContext, type AttemptRecord, type BackgroundHandle, type Budget, type Capture, type CaptureCall, type CaptureInstruction, type CaptureOptions, type CaptureUse, type CaptureUseAction, type CaptureUseScript, type CaptureWait, type CaptureWindow, type Cell, type CellRecord, type CellRole, type CompareAnswer, type CompareCut, type CompareOptions, type CompareQuestion, type ConfigHelpers, type Diff, type DirectoryOptions, type Duration, type EachOptions, type EgressPolicy, type EgressRecord, type EnvVars, type Environment, type EnvironmentHelpers, type EnvironmentInput, type EnvironmentSpec, type EvalEntry, type EvalFn, type EvalOptions, type ExecResult, type FamilyRecord, type GroupOptions, type HarnessData, type HarnessEdit, type HarnessOption, type HistoryConfig, type HostFile, type JudgeArtifactRef, type JudgeCallOptions, type JudgeFailure, type JudgeOptions, type JudgeStateOptions, type McpServer, type PairFactor, type PairVote, type PinnableKey, type Profile, type ProfileDefaults, type ProfileLimit, type ReevalConfig, type RunRecord, type Secret, type SecretTemplate, type ServeHandle, type SetupStep, type SkillSource, type TranscriptEvent, type Turn, type TurnData, type Verdict, type Viewport, type Wait, type WebEventType, evaluate, group };
|
|
125
97
|
//# sourceMappingURL=index.d.ts.map
|