reeval 0.8.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 +52 -40
- 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-B72lZ6w5.js → agent-CURAwx_q.js} +6 -6
- package/dist/{agent-B72lZ6w5.js.map → agent-CURAwx_q.js.map} +1 -1
- package/dist/{agent-Cfj1wD4D.js → agent-CaS_2Sce.js} +92 -26
- package/dist/agent-CaS_2Sce.js.map +1 -0
- package/dist/{analysis-BTNnKh1w.js → analysis-Bxub9LMT.js} +4 -4
- package/dist/{analysis-BTNnKh1w.js.map → analysis-Bxub9LMT.js.map} +1 -1
- package/dist/{assemble-BbFVjHeS.js → assemble-B9Alds-z.js} +290 -30
- package/dist/assemble-B9Alds-z.js.map +1 -0
- package/dist/assemble-J5MukZFY.js +1 -0
- package/dist/{client-CwzU9CiW.js → assert-EUIoRdIt.js} +38 -112
- package/dist/assert-EUIoRdIt.js.map +1 -0
- package/dist/bridge/index.mjs +248 -55
- package/dist/{capture-BXhBfmsM.js → capture-CNb9SuU5.js} +204 -39
- package/dist/capture-CNb9SuU5.js.map +1 -0
- package/dist/capture-jquXZBKK.js +1 -0
- package/dist/{cli-BMjTKY-D.js → cli-D303Vj5N.js} +257 -146
- package/dist/cli-D303Vj5N.js.map +1 -0
- package/dist/{cli-spec-DSvKsOK4.js → cli-spec-BPZbQG2p.js} +38 -19
- 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-JPGNzFsA.js → command-BLfT7vnQ.js} +19 -18
- package/dist/command-BLfT7vnQ.js.map +1 -0
- package/dist/{command-BK4kOgkH.js → command-BT9a37ZR.js} +381 -78
- package/dist/command-BT9a37ZR.js.map +1 -0
- package/dist/{command-BqJtFiPy.js → command-Bge8F7Ko.js} +384 -101
- package/dist/command-Bge8F7Ko.js.map +1 -0
- package/dist/command-BkFjijN2.js +1 -0
- package/dist/{command-BdstSEHu.js → command-CMJtHKRa.js} +14 -14
- package/dist/{command-BdstSEHu.js.map → command-CMJtHKRa.js.map} +1 -1
- package/dist/commands-1p-bIWhN.js +1 -0
- package/dist/{commands-B618jg3C.js → commands-BFx16WB8.js} +8 -8
- 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-CvUv7DUb.js → context-C1mxXh80.js} +11 -7
- package/dist/context-C1mxXh80.js.map +1 -0
- package/dist/{db-DFbtGIYy.js → db-CdHizc4_.js} +582 -53
- 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-2qns7hJ2.js → docker-7b_2SaH7.js} +35 -22
- package/dist/docker-7b_2SaH7.js.map +1 -0
- package/dist/{docker-IFRW8K5f.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-B6oYTPoR.js → doctor-BYNok4UO.js} +263 -84
- 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-IUKdeayc.js → egress-C4PZTSSe.js} +147 -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/family-D2b7WD10.js +67 -0
- package/dist/family-D2b7WD10.js.map +1 -0
- package/dist/files-BAt0i00X.js +1 -0
- package/dist/{files-CMSUXAEg.js → files-BXUdY8tr.js} +10 -9
- package/dist/{files-CMSUXAEg.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-B6aVVGrk.js → files-DQmHE7pb.js} +5 -5
- package/dist/{files-B6aVVGrk.js.map → files-DQmHE7pb.js.map} +1 -1
- package/dist/files-ZZPqfAo6.js +1 -0
- package/dist/{git-EmdFJ4DY.js → git-DfG-YJ1u.js} +2 -2
- package/dist/{git-EmdFJ4DY.js.map → git-DfG-YJ1u.js.map} +1 -1
- package/dist/harness-B8QC9u0O.js +323 -0
- package/dist/harness-B8QC9u0O.js.map +1 -0
- package/dist/harness.d.ts +19 -31
- package/dist/harness.js +1 -2
- package/dist/{header-_F0EWob3.js → header-hK-Z_Po9.js} +10 -3
- package/dist/{header-_F0EWob3.js.map → header-hK-Z_Po9.js.map} +1 -1
- package/dist/{images-CscddrJU.js → images-0On0cztu.js} +114 -45
- package/dist/images-0On0cztu.js.map +1 -0
- package/dist/index.d.ts +10 -26
- package/dist/index.js +6 -2108
- package/dist/{init-NQfIvi-0.js → init-B77Rpcqc.js} +26 -8
- package/dist/init-B77Rpcqc.js.map +1 -0
- package/dist/init-BrOWin3W.js +1 -0
- package/dist/{invocations-nPvrlZPj.js → invocations-DbGfBAA_.js} +4 -4
- package/dist/{invocations-nPvrlZPj.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-Cl507trk.js → model-h_cDtcRr.js} +19 -18
- package/dist/model-h_cDtcRr.js.map +1 -0
- package/dist/model-nwWJvaUR.js +1 -0
- package/dist/{model-BndnmcLm.js → model-oqcDplJG.js} +271 -34
- 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-CGCVipPu.js → patch-Zac5aIRM.js} +6 -6
- package/dist/{patch-CGCVipPu.js.map → patch-Zac5aIRM.js.map} +1 -1
- package/dist/{plan-PPc4-6xd.js → plan-C9Cy27Ay.js} +75 -32
- package/dist/plan-C9Cy27Ay.js.map +1 -0
- package/dist/preflight-CPWpQeBI.js +1 -0
- package/dist/{preflight-CddycK92.js → preflight-D7iFPKeK.js} +8 -7
- package/dist/preflight-D7iFPKeK.js.map +1 -0
- package/dist/prepare-BGjePFQl.js +2 -0
- package/dist/{prepare-CsP-057p.js → prepare-doGxaAGR.js} +38 -30
- package/dist/prepare-doGxaAGR.js.map +1 -0
- package/dist/process-CSVO_jsc.js +119 -0
- package/dist/process-CSVO_jsc.js.map +1 -0
- package/dist/{provenance-CsX6PHDR.js → provenance-DmE9uPVt.js} +4 -4
- package/dist/{provenance-CsX6PHDR.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-BUcwCYsI.js → query-Bes9Kh6Y.js} +3 -3
- package/dist/{query-BUcwCYsI.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-BcSHWbgB.js → results-DuauQI3Z.js} +4 -4
- package/dist/{results-BcSHWbgB.js.map → results-DuauQI3Z.js.map} +1 -1
- package/dist/{resume-DZ9AmfPv.js → resume-BRfa8E_s.js} +10 -10
- package/dist/{resume-DZ9AmfPv.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-Dfb2r-cS.js → runtime-PX_oXiCS.js} +105 -11
- 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 +22 -8
- package/dist/sandbox.js +1 -2
- package/dist/server-C7sg1ndo.js +1 -0
- package/dist/{server-Da60oe4b.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-BVOnL3sn.js → source-C8xumIWj.js} +2 -2
- package/dist/{source-BVOnL3sn.js.map → source-C8xumIWj.js.map} +1 -1
- package/dist/source-fGd0SaKP.js +1 -0
- package/dist/{src-TdJuDYqB.js → src-B7treWa8.js} +1597 -292
- 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-D_cXqmnI.js → src-CFp86GtV.js} +60 -60
- 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-CxTC5kNI.js → src-DvK0EIZx.js} +8 -10
- package/dist/{src-CxTC5kNI.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-B72h_jEw.js → state-C__9swoG.js} +36 -24
- 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-Bgr-efZm.js → index-DrQc2Yxd.js} +12 -12
- package/dist/studio-app/index.html +2 -2
- package/dist/{summary-k3mhWWXv.js → summary-BLAVLySU.js} +202 -17
- package/dist/summary-BLAVLySU.js.map +1 -0
- package/dist/{summary-CJdxaRdM.js → summary-DgyjUh_l.js} +7 -7
- package/dist/{summary-CJdxaRdM.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-D0gF2QoV.js → tools-GCyNYSc1.js} +7 -7
- 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-C5vI3g1C.js.map +1 -1
- package/dist/{types-_LOFdPUf.d.ts → types-g17bRAzt.d.ts} +578 -49
- 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 +83 -17
- package/dist/view/index.js +7 -6
- package/dist/views-BW6oCDUQ.js +2 -0
- package/dist/{views-DZ1YDqey.js → views-BmQF4UCI.js} +13 -8
- package/dist/views-BmQF4UCI.js.map +1 -0
- package/dist/{worker-entry-DXeyWY-m.js → worker-entry-yOchGYYv.js} +16 -225
- package/dist/worker-entry-yOchGYYv.js.map +1 -0
- package/dist/{workspace-DpXdrslo.js → workspace-CgyHEM0l.js} +7 -7
- package/dist/{workspace-DpXdrslo.js.map → workspace-CgyHEM0l.js.map} +1 -1
- package/dist/workspace-D8sSgpiy.js +1 -0
- package/docker/Dockerfile +7 -5
- package/package.json +12 -12
- package/dist/agent-Cfj1wD4D.js.map +0 -1
- package/dist/assemble-BbFVjHeS.js.map +0 -1
- package/dist/assemble-CXiTVyHD.js +0 -2
- package/dist/capture-BXhBfmsM.js.map +0 -1
- package/dist/capture-N7r3yeak.js +0 -2
- package/dist/cli-BMjTKY-D.js.map +0 -1
- package/dist/cli-spec-DSvKsOK4.js.map +0 -1
- package/dist/client-CwzU9CiW.js.map +0 -1
- package/dist/command-BK4kOgkH.js.map +0 -1
- package/dist/command-BqJtFiPy.js.map +0 -1
- package/dist/command-CTVGuH8y.js +0 -2
- package/dist/command-JPGNzFsA.js.map +0 -1
- package/dist/commands-B618jg3C.js.map +0 -1
- package/dist/commands-Duo2ur3r.js +0 -2
- package/dist/config-B-E0xRkf.js +0 -447
- package/dist/config-B-E0xRkf.js.map +0 -1
- package/dist/context-CvUv7DUb.js.map +0 -1
- package/dist/db-CnoUy-FZ.js +0 -3
- package/dist/db-DFbtGIYy.js.map +0 -1
- package/dist/debug-SEmW4w8f.js +0 -2
- package/dist/dist-CTzThfu_.js.map +0 -1
- package/dist/docker-2qns7hJ2.js.map +0 -1
- package/dist/docker-D6t23fZl.js +0 -2
- package/dist/docker-IFRW8K5f.js.map +0 -1
- package/dist/doctor-B6oYTPoR.js.map +0 -1
- package/dist/egress-IUKdeayc.js.map +0 -1
- package/dist/environment-DiCljXMD.js +0 -657
- package/dist/environment-DiCljXMD.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-BM78_nnF.js +0 -2
- package/dist/files-BpYgF2z0.js +0 -2
- package/dist/files-YCCVaTQC.js +0 -2
- package/dist/harness-iqWeJQMM.js +0 -154
- package/dist/harness-iqWeJQMM.js.map +0 -1
- package/dist/images-CscddrJU.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-DBHyi92L.js +0 -2
- package/dist/init-NQfIvi-0.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-BbLGRtOs.js +0 -2
- package/dist/model-BndnmcLm.js.map +0 -1
- package/dist/model-Cl507trk.js.map +0 -1
- package/dist/model-DMOraCcm.js +0 -2
- package/dist/node-Co7EXge0.js.map +0 -1
- package/dist/opencode-providers-ByD85Q0l.js.map +0 -1
- package/dist/options-DPUlm4FI.js +0 -735
- package/dist/options-DPUlm4FI.js.map +0 -1
- package/dist/plan-PPc4-6xd.js.map +0 -1
- package/dist/preflight-CddycK92.js.map +0 -1
- package/dist/preflight-Zumy0adT.js +0 -2
- package/dist/prepare-CKdMoC7e.js +0 -3
- package/dist/prepare-CsP-057p.js.map +0 -1
- package/dist/provider-BDbNOQhQ.js +0 -2
- package/dist/providers-DkwiLKDS.js +0 -107
- package/dist/providers-DkwiLKDS.js.map +0 -1
- package/dist/providers-yXZZcPfx.js +0 -2
- package/dist/query-noGbekGF.js +0 -2
- package/dist/questions-BEPj98fZ.js +0 -234
- package/dist/questions-BEPj98fZ.js.map +0 -1
- package/dist/runtime-Dfb2r-cS.js.map +0 -1
- package/dist/sandbox--ZXuscAZ.js +0 -134
- package/dist/sandbox--ZXuscAZ.js.map +0 -1
- package/dist/server-Da60oe4b.js.map +0 -1
- package/dist/server-DiGR4JxK.js +0 -2
- package/dist/source-Dqu0jKwx.js +0 -2
- package/dist/src-BHNiP-5A.js +0 -4
- package/dist/src-BT4dB5CO.js +0 -2
- package/dist/src-BT5pwco0.js +0 -3
- package/dist/src-BrMbt1B2.js +0 -3
- package/dist/src-D13vpMh0.js +0 -3
- package/dist/src-D95O-Smv.js.map +0 -1
- package/dist/src-DDNXsD9H.js.map +0 -1
- package/dist/src-D_cXqmnI.js.map +0 -1
- package/dist/src-DdRlaiRc.js +0 -3
- package/dist/src-TdJuDYqB.js.map +0 -1
- package/dist/src-xczuQbE6.js +0 -3
- package/dist/state-B72h_jEw.js.map +0 -1
- package/dist/state-Bf_Vq_pV.js +0 -2
- package/dist/studio-app/assets/index-CUx6GoL5.css +0 -2
- package/dist/summary-k3mhWWXv.js.map +0 -1
- package/dist/tool-target-BU1JnSE9.js.map +0 -1
- package/dist/tools-D0gF2QoV.js.map +0 -1
- package/dist/views-DZ1YDqey.js.map +0 -1
- package/dist/views-Ds0GXWtX.js +0 -3
- package/dist/worker-entry-DXeyWY-m.js.map +0 -1
- package/dist/workspace-DzNL-3iO.js +0 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as parseDuration } from "./duration-
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import "./
|
|
1
|
+
import { t as parseDuration } from "./duration-CEOQww97.js";
|
|
2
|
+
import { D as stepCommand } from "./environment-DNjRk0nU.js";
|
|
3
|
+
import "./config-DEgnUiU-.js";
|
|
4
|
+
import { H as harnessLabel, I as LABEL, U as imageFor, X as imageInfo, a as buildInstallLayer, c as dockerfileTag, d as installLayerTag, h as usesReevalBase, i as buildImage, m as resolveFrom, r as buildDockerfile, s as contextHash, u as harnessImageFor, ut as engineSpec } from "./src-B7treWa8.js";
|
|
5
5
|
import { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
6
|
-
import "./docker-
|
|
6
|
+
import "./docker-sZrNrr82.js";
|
|
7
7
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { join, relative, sep } from "node:path";
|
|
9
9
|
//#region src/sandbox/prepare.ts
|
|
@@ -28,7 +28,8 @@ function createBuilds(options = {}) {
|
|
|
28
28
|
},
|
|
29
29
|
retry: options.retry ?? ((step) => step()),
|
|
30
30
|
log: options.log ?? (() => {}),
|
|
31
|
-
refresh: options.refresh ?? "none"
|
|
31
|
+
refresh: options.refresh ?? "none",
|
|
32
|
+
engine: options.engine ?? "docker"
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
const buildLogger = (root, ref) => {
|
|
@@ -43,16 +44,17 @@ const buildLogger = (root, ref) => {
|
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
46
|
};
|
|
46
|
-
const built = async (ref) => {
|
|
47
|
-
const info = await imageInfo(ref);
|
|
47
|
+
const built = async (ref, engine) => {
|
|
48
|
+
const info = await imageInfo(ref, engine);
|
|
48
49
|
if (!info) throw new Error(`The image ${ref} disappeared after building`);
|
|
49
50
|
return info;
|
|
50
51
|
};
|
|
51
52
|
/** reeval's image for the harness: built when it's missing, or when reeval's base context changed. */
|
|
52
|
-
const
|
|
53
|
+
const reevalImage = (harness, root, signal, b) => {
|
|
53
54
|
const ref = imageFor(harness);
|
|
55
|
+
const { engine } = b;
|
|
54
56
|
return b.once(ref, async () => {
|
|
55
|
-
const info = await imageInfo(ref);
|
|
57
|
+
const info = await imageInfo(ref, engine);
|
|
56
58
|
const current = info?.labels[LABEL.context] === contextHash();
|
|
57
59
|
if (info && current && b.refresh !== "force") return info;
|
|
58
60
|
b.log(info && !current ? `Rebuilding ${ref}: reeval's base image changed` : `Building ${ref}`);
|
|
@@ -62,9 +64,10 @@ const esImage = (harness, root, signal, b) => {
|
|
|
62
64
|
harness,
|
|
63
65
|
signal,
|
|
64
66
|
output,
|
|
65
|
-
pull
|
|
67
|
+
pull,
|
|
68
|
+
engine
|
|
66
69
|
}));
|
|
67
|
-
return built(ref);
|
|
70
|
+
return built(ref, engine);
|
|
68
71
|
});
|
|
69
72
|
};
|
|
70
73
|
/**
|
|
@@ -73,12 +76,13 @@ const esImage = (harness, root, signal, b) => {
|
|
|
73
76
|
* Dockerfile (with them baked on unless it's built on that harness's image).
|
|
74
77
|
*/
|
|
75
78
|
async function harnessBase(sandbox, harness, root, signal, b) {
|
|
79
|
+
const { engine } = b;
|
|
76
80
|
const bake = (from) => {
|
|
77
81
|
const ref = harnessImageFor(harness, from);
|
|
78
82
|
return b.once(ref, async () => {
|
|
79
|
-
const cached = b.refresh === "force" ? null : await imageInfo(ref);
|
|
83
|
+
const cached = b.refresh === "force" ? null : await imageInfo(ref, engine);
|
|
80
84
|
if (cached && b.refresh === "check") {
|
|
81
|
-
const now = await resolveFrom(from, signal);
|
|
85
|
+
const now = await resolveFrom(from, signal, engine);
|
|
82
86
|
const was = cached.labels[LABEL.fromDigest];
|
|
83
87
|
if ("digest" in now && was && now.digest !== was) b.log(`Rebuilding ${ref}: ${from} moved upstream`);
|
|
84
88
|
else return cached;
|
|
@@ -90,9 +94,10 @@ async function harnessBase(sandbox, harness, root, signal, b) {
|
|
|
90
94
|
from,
|
|
91
95
|
signal,
|
|
92
96
|
output,
|
|
93
|
-
pull
|
|
97
|
+
pull,
|
|
98
|
+
engine
|
|
94
99
|
}));
|
|
95
|
-
return built(ref);
|
|
100
|
+
return built(ref, engine);
|
|
96
101
|
});
|
|
97
102
|
};
|
|
98
103
|
if (sandbox.image) {
|
|
@@ -100,8 +105,9 @@ async function harnessBase(sandbox, harness, root, signal, b) {
|
|
|
100
105
|
return {
|
|
101
106
|
ref: image,
|
|
102
107
|
info: await b.once(image, async () => {
|
|
103
|
-
const found = await imageInfo(image);
|
|
108
|
+
const found = await imageInfo(image, engine);
|
|
104
109
|
if (found) return found;
|
|
110
|
+
const { name, fn } = engineSpec(engine);
|
|
105
111
|
throw new PrepareError({
|
|
106
112
|
class: "config",
|
|
107
113
|
stage: "image",
|
|
@@ -109,7 +115,7 @@ async function harnessBase(sandbox, harness, root, signal, b) {
|
|
|
109
115
|
cause: null,
|
|
110
116
|
log: null,
|
|
111
117
|
usage: true,
|
|
112
|
-
message:
|
|
118
|
+
message: `${name} image ${image} not found. ${fn}({ image }) is used as is, so pull or build it first (or use from or dockerfile to have reeval build it).`
|
|
113
119
|
});
|
|
114
120
|
}),
|
|
115
121
|
dockerfile: null
|
|
@@ -122,27 +128,28 @@ async function harnessBase(sandbox, harness, root, signal, b) {
|
|
|
122
128
|
};
|
|
123
129
|
if (sandbox.dockerfile) {
|
|
124
130
|
const path = sandbox.dockerfile;
|
|
125
|
-
const
|
|
126
|
-
const { tag, sha256 } = dockerfileTag(path, harness,
|
|
131
|
+
const reevalBase = usesReevalBase(path) ? (await reevalImage(harness, root, signal, b)).id : null;
|
|
132
|
+
const { tag, sha256 } = dockerfileTag(path, harness, reevalBase);
|
|
127
133
|
const dockerfile = {
|
|
128
134
|
path: projectPath(root, path),
|
|
129
135
|
sha256
|
|
130
136
|
};
|
|
131
137
|
const info = await b.once(tag, async () => {
|
|
132
|
-
const cached = b.refresh === "force" ? null : await imageInfo(tag);
|
|
138
|
+
const cached = b.refresh === "force" ? null : await imageInfo(tag, engine);
|
|
133
139
|
if (cached) return cached;
|
|
134
140
|
b.log(`Building ${dockerfile.path} as ${tag}`);
|
|
135
141
|
const output = buildLogger(root, tag);
|
|
136
142
|
await b.retry(() => buildDockerfile(path, {
|
|
137
143
|
harness,
|
|
138
|
-
|
|
144
|
+
reevalBase,
|
|
139
145
|
name: dockerfile.path,
|
|
140
146
|
signal,
|
|
141
147
|
output,
|
|
142
148
|
force: true,
|
|
143
|
-
pull: b.refresh === "force"
|
|
149
|
+
pull: b.refresh === "force",
|
|
150
|
+
engine
|
|
144
151
|
}));
|
|
145
|
-
return built(tag);
|
|
152
|
+
return built(tag, engine);
|
|
146
153
|
});
|
|
147
154
|
if (info.labels[LABEL.harness] === harnessLabel(harness)) return {
|
|
148
155
|
ref: tag,
|
|
@@ -157,7 +164,7 @@ async function harnessBase(sandbox, harness, root, signal, b) {
|
|
|
157
164
|
}
|
|
158
165
|
return {
|
|
159
166
|
ref: imageFor(harness),
|
|
160
|
-
info: await
|
|
167
|
+
info: await reevalImage(harness, root, signal, b),
|
|
161
168
|
dockerfile: null
|
|
162
169
|
};
|
|
163
170
|
}
|
|
@@ -195,20 +202,21 @@ async function prepareImage(sandbox, harness, root, signal, b) {
|
|
|
195
202
|
return {
|
|
196
203
|
ref,
|
|
197
204
|
id: (await b.once(ref, async () => {
|
|
198
|
-
const cached = await imageInfo(ref);
|
|
205
|
+
const cached = await imageInfo(ref, b.engine);
|
|
199
206
|
if (cached) return cached;
|
|
200
207
|
b.log(`Installing ${steps.length} command(s) onto ${base.ref} as ${ref}`);
|
|
201
208
|
const output = buildLogger(root, ref);
|
|
202
209
|
await buildInstallLayer(parent, steps, {
|
|
203
210
|
signal,
|
|
204
|
-
output
|
|
211
|
+
output,
|
|
212
|
+
engine: b.engine
|
|
205
213
|
});
|
|
206
|
-
return built(ref);
|
|
214
|
+
return built(ref, b.engine);
|
|
207
215
|
})).id,
|
|
208
216
|
...image
|
|
209
217
|
};
|
|
210
218
|
}
|
|
211
219
|
//#endregion
|
|
212
|
-
export {
|
|
220
|
+
export { projectPath as a, prepareImage as i, imageHarness as n, reevalImage as o, installSteps as r, createBuilds as t };
|
|
213
221
|
|
|
214
|
-
//# sourceMappingURL=prepare-
|
|
222
|
+
//# sourceMappingURL=prepare-doGxaAGR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-doGxaAGR.js","names":[],"sources":["../src/sandbox/prepare.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { win32 } from "node:path";
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
//#region ../sandbox-docker/src/process.ts
|
|
5
|
+
const CMD_META = /([()\][%!^"`<>&|;, *?])/g;
|
|
6
|
+
const cmdEscape = (arg, twice) => {
|
|
7
|
+
const quoted = `"${arg.replace(/(\\*)"/g, "$1$1\\\"").replace(/(\\*)$/, "$1$1")}"`.replace(CMD_META, "^$1");
|
|
8
|
+
return twice ? quoted.replace(CMD_META, "^$1") : quoted;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* How to spawn `cmd` on Windows, where npm, npx and pnpm are `.cmd` scripts that only cmd.exe
|
|
12
|
+
* runs: the program PATH and PATHEXT find, and for a script, cmd.exe with every argument escaped.
|
|
13
|
+
*/
|
|
14
|
+
function windowsSpawn(cmd, args, env = process.env, exists = existsSync) {
|
|
15
|
+
const exts = (env.PATHEXT ?? ".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);
|
|
16
|
+
const file = (/[\\/]/.test(cmd) ? [""] : (env.PATH ?? env.Path ?? "").split(";").filter(Boolean)).flatMap((dir) => {
|
|
17
|
+
const base = dir ? win32.join(dir, cmd) : cmd;
|
|
18
|
+
return [...win32.extname(cmd) ? [base] : [], ...exts.map((ext) => base + ext.toLowerCase())];
|
|
19
|
+
}).find(exists) ?? cmd;
|
|
20
|
+
if (!/\.(cmd|bat)$/i.test(file)) return {
|
|
21
|
+
file,
|
|
22
|
+
args,
|
|
23
|
+
verbatim: false
|
|
24
|
+
};
|
|
25
|
+
const twice = /node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i.test(file);
|
|
26
|
+
const line = [win32.normalize(file).replace(CMD_META, "^$1"), ...args.map((a) => cmdEscape(a, twice))].join(" ");
|
|
27
|
+
return {
|
|
28
|
+
file: env.ComSpec ?? "cmd.exe",
|
|
29
|
+
args: [
|
|
30
|
+
"/d",
|
|
31
|
+
"/s",
|
|
32
|
+
"/c",
|
|
33
|
+
`"${line}"`
|
|
34
|
+
],
|
|
35
|
+
verbatim: true
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Kills a process and everything it started: its process group on POSIX (a detached child leads
|
|
40
|
+
* one), its process tree with `taskkill` on Windows, which has neither groups nor signals.
|
|
41
|
+
*/
|
|
42
|
+
function killTree(pid) {
|
|
43
|
+
if (process.platform === "win32") {
|
|
44
|
+
spawn("taskkill", [
|
|
45
|
+
"/pid",
|
|
46
|
+
String(pid),
|
|
47
|
+
"/t",
|
|
48
|
+
"/f"
|
|
49
|
+
], {
|
|
50
|
+
stdio: "ignore",
|
|
51
|
+
windowsHide: true
|
|
52
|
+
}).on("error", () => {});
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
process.kill(-pid, "SIGKILL");
|
|
57
|
+
} catch {
|
|
58
|
+
try {
|
|
59
|
+
process.kill(pid, "SIGKILL");
|
|
60
|
+
} catch {}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** `s` as one single-quoted POSIX shell word. */
|
|
64
|
+
const shellQuote = (s) => `'${s.replaceAll("'", `'\\''`)}'`;
|
|
65
|
+
function run(cmd, args, options = {}) {
|
|
66
|
+
const { signal } = options;
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
if (signal?.aborted) return reject(signal.reason);
|
|
69
|
+
const detached = options.detached ?? true;
|
|
70
|
+
const target = process.platform === "win32" ? windowsSpawn(cmd, args, options.env ? {
|
|
71
|
+
...process.env,
|
|
72
|
+
...options.env
|
|
73
|
+
} : process.env) : {
|
|
74
|
+
file: cmd,
|
|
75
|
+
args,
|
|
76
|
+
verbatim: false
|
|
77
|
+
};
|
|
78
|
+
const child = spawn(target.file, target.args, {
|
|
79
|
+
cwd: options.cwd,
|
|
80
|
+
stdio: "pipe",
|
|
81
|
+
detached: detached && !target.verbatim,
|
|
82
|
+
windowsHide: true,
|
|
83
|
+
windowsVerbatimArguments: target.verbatim,
|
|
84
|
+
env: options.env ? {
|
|
85
|
+
...process.env,
|
|
86
|
+
...options.env
|
|
87
|
+
} : process.env
|
|
88
|
+
});
|
|
89
|
+
const out = [];
|
|
90
|
+
let stderr = "";
|
|
91
|
+
child.stdout.on("data", (d) => out.push(d));
|
|
92
|
+
child.stderr.on("data", (d) => {
|
|
93
|
+
stderr += d;
|
|
94
|
+
});
|
|
95
|
+
const onAbort = () => {
|
|
96
|
+
if ((detached || process.platform === "win32") && child.pid) killTree(child.pid);
|
|
97
|
+
else child.kill("SIGKILL");
|
|
98
|
+
};
|
|
99
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
100
|
+
child.on("error", reject);
|
|
101
|
+
child.on("close", (code) => {
|
|
102
|
+
signal?.removeEventListener("abort", onAbort);
|
|
103
|
+
if (signal?.aborted) return reject(signal.reason);
|
|
104
|
+
const stdout = Buffer.concat(out);
|
|
105
|
+
resolve({
|
|
106
|
+
exitCode: code ?? 1,
|
|
107
|
+
stdout: options.binary ? stdout : stdout.toString(),
|
|
108
|
+
stderr
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
if (child.pid) options.onSpawn?.(child.pid);
|
|
112
|
+
child.stdin.on("error", () => {});
|
|
113
|
+
child.stdin.end(options.input ?? "");
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { shellQuote as n, run as t };
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=process-CSVO_jsc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-CSVO_jsc.js","names":[],"sources":["../../sandbox-docker/src/process.ts"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { l as sha256, u as slugify } from "./ids-Bp6ut7ZD.js";
|
|
1
2
|
import { t as inCI } from "./env-BQqj93gu.js";
|
|
2
3
|
import { c as stripCredentials } from "./redact-DJ9JCShu.js";
|
|
3
|
-
import {
|
|
4
|
-
import { r as repoTop, t as git } from "./git-EmdFJ4DY.js";
|
|
4
|
+
import { r as repoTop, t as git } from "./git-DfG-YJ1u.js";
|
|
5
5
|
import { hostname, userInfo } from "node:os";
|
|
6
6
|
import { relative, sep } from "node:path";
|
|
7
7
|
//#region src/history/provenance.ts
|
|
@@ -82,7 +82,7 @@ function runtimeInfo(versions = process.versions) {
|
|
|
82
82
|
function runnerInfo(env = process.env) {
|
|
83
83
|
if (!inCI(env)) return {
|
|
84
84
|
kind: "local",
|
|
85
|
-
hostHash: sha256(`
|
|
85
|
+
hostHash: sha256(`reeval:${hostname()}`).slice(0, 12)
|
|
86
86
|
};
|
|
87
87
|
if (env.GITHUB_ACTIONS) {
|
|
88
88
|
const runUrl = env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID ? `${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}` : null;
|
|
@@ -144,4 +144,4 @@ async function author(root, env = process.env) {
|
|
|
144
144
|
//#endregion
|
|
145
145
|
export { runtimeInfo as i, gitInfo as n, runnerInfo as r, author as t };
|
|
146
146
|
|
|
147
|
-
//# sourceMappingURL=provenance-
|
|
147
|
+
//# sourceMappingURL=provenance-DmE9uPVt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance-
|
|
1
|
+
{"version":3,"file":"provenance-DmE9uPVt.js","names":[],"sources":["../src/history/provenance.ts"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { t as attemptImage, o as dockerProvider, c as podmanConfinementProblem, u as requireDocker } from "./providers-tAOD1NQN.js";
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { n as UsageError } from "./errors-B6BSMs03.js";
|
|
2
|
+
import { Y as dockerState, at as isTransient, tt as ImageBuildError, ut as engineSpec } from "./src-B7treWa8.js";
|
|
3
|
+
import { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
4
|
+
//#region src/sandbox/providers.ts
|
|
5
|
+
/** The key of a Docker sandbox's image: what's in it, not the limits or user it runs with. */
|
|
6
|
+
const dockerKey = (sandbox, harness) => {
|
|
7
|
+
const kind = harness.kind === "fake" ? harness.layout ?? "cursor" : harness.kind;
|
|
8
|
+
const { image, from, dockerfile, install } = sandbox;
|
|
9
|
+
return JSON.stringify({
|
|
10
|
+
harness: kind,
|
|
11
|
+
image: {
|
|
12
|
+
image,
|
|
13
|
+
from,
|
|
14
|
+
dockerfile,
|
|
15
|
+
install
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
/** How Docker's build errors class: a named cause is a resource, a network error transient. */
|
|
20
|
+
function classifyDocker(error) {
|
|
21
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
22
|
+
if (error instanceof ImageBuildError) {
|
|
23
|
+
const { stage, ref, transient, cause, log } = error.failure;
|
|
24
|
+
return {
|
|
25
|
+
class: cause ? "resource" : transient ? "transient" : "config",
|
|
26
|
+
stage,
|
|
27
|
+
ref,
|
|
28
|
+
cause,
|
|
29
|
+
log,
|
|
30
|
+
message
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
class: isTransient(message) ? "transient" : "config",
|
|
35
|
+
stage: "image",
|
|
36
|
+
ref: null,
|
|
37
|
+
cause: null,
|
|
38
|
+
log: null,
|
|
39
|
+
message
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** Why Docker (or Podman) can't run a sandbox, as the fix a user needs; null when it can. */
|
|
43
|
+
function dockerProblem(state, platform = process.platform, engine = "docker") {
|
|
44
|
+
if (state === "running") return null;
|
|
45
|
+
if (engine === "podman") return podmanProblem(platform);
|
|
46
|
+
if (state === "windows-containers") return "Docker is running Windows containers, but reeval's sandboxes are Linux containers. Switch Docker Desktop to Linux containers (its tray menu: Switch to Linux containers) and try again.";
|
|
47
|
+
return platform === "win32" ? "Docker is not running. Start Docker Desktop (with the WSL 2 backend and Linux containers) and try again." : "Docker is not running. Start Docker and try again.";
|
|
48
|
+
}
|
|
49
|
+
const upper = (s) => s.charAt(0).toUpperCase() + s.slice(1);
|
|
50
|
+
/** Podman doesn't answer: not installed, or (macOS, Windows) its machine isn't running. */
|
|
51
|
+
function podmanProblem(platform) {
|
|
52
|
+
return platform === "linux" ? "Podman isn't answering: `podman info` failed. Install Podman 4 or later (your distribution's podman package) and check `podman info` works as you, then try again." : "Podman isn't answering: `podman info` failed. Start its machine (podman machine init, then podman machine start) and try again.";
|
|
53
|
+
}
|
|
54
|
+
/** Throws a usage error unless Docker (or Podman) can run a sandbox. */
|
|
55
|
+
async function requireDocker(engine = "docker") {
|
|
56
|
+
const problem = dockerProblem(await dockerState(engine), process.platform, engine);
|
|
57
|
+
if (problem) throw new UsageError(problem);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Why Podman can't confine a sandbox as reeval needs, or null: too old for the bridge network
|
|
61
|
+
* rootless, or a rootless cgroup without the controllers `--cpus`, `--memory` and `--pids-limit`
|
|
62
|
+
* need (systemd before 252 delegates only memory and pids).
|
|
63
|
+
*/
|
|
64
|
+
function podmanInfoProblem(info) {
|
|
65
|
+
if (Number(/^(\d+)/.exec(info.version)?.[1]) < 4) return {
|
|
66
|
+
problem: `Podman ${info.version} is too old for reeval's sandboxes, which need Podman 4 or later (its rootless bridge network)`,
|
|
67
|
+
fix: "upgrade Podman"
|
|
68
|
+
};
|
|
69
|
+
const missing = [
|
|
70
|
+
"cpu",
|
|
71
|
+
"memory",
|
|
72
|
+
"pids"
|
|
73
|
+
].filter((c) => !(info.controllers ?? []).includes(c));
|
|
74
|
+
if (info.rootless && missing.length) {
|
|
75
|
+
const names = missing.join(", ");
|
|
76
|
+
return {
|
|
77
|
+
problem: `rootless Podman can't limit a sandbox's ${names}: your user's cgroup doesn't have the ${names} controller${missing.length === 1 ? "" : "s"}`,
|
|
78
|
+
fix: "delegate them with a systemd drop-in for user@.service (Delegate=cpu cpuset io memory pids), then log in again"
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/** {@link podmanInfoProblem} for this host's Podman; null when `podman info` doesn't answer. */
|
|
84
|
+
async function podmanConfinementProblem() {
|
|
85
|
+
const { docker } = await import("./src-pJZOrYR9.js");
|
|
86
|
+
const r = await docker([
|
|
87
|
+
"info",
|
|
88
|
+
"--format",
|
|
89
|
+
"{{json .Version.Version}} {{json .Host.Security.Rootless}} {{json .Host.CgroupControllers}}"
|
|
90
|
+
], { engine: "podman" }).catch(() => null);
|
|
91
|
+
if (r?.exitCode !== 0) return null;
|
|
92
|
+
const [version, rootless, controllers] = r.stdout.toString("utf8").trim().split(/\s+/).map((v) => JSON.parse(v));
|
|
93
|
+
return podmanInfoProblem({
|
|
94
|
+
version,
|
|
95
|
+
rootless,
|
|
96
|
+
controllers
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/** Docker or Podman: one image per key, each sub-image built once per provider (so once per run). */
|
|
100
|
+
function dockerProvider(options = {}) {
|
|
101
|
+
const engine = options.engine ?? "docker";
|
|
102
|
+
let builds;
|
|
103
|
+
return {
|
|
104
|
+
kind: engine,
|
|
105
|
+
async check() {
|
|
106
|
+
const confinement = engine === "podman" ? await podmanConfinementProblem() : null;
|
|
107
|
+
const problem = dockerProblem(await dockerState(engine), process.platform, engine) ?? (confinement && `${upper(confinement.problem)}: ${confinement.fix}, and try again.`);
|
|
108
|
+
if (!problem) return;
|
|
109
|
+
throw new PrepareError({
|
|
110
|
+
class: "config",
|
|
111
|
+
stage: engineSpec(engine).bin,
|
|
112
|
+
ref: null,
|
|
113
|
+
cause: null,
|
|
114
|
+
log: null,
|
|
115
|
+
usage: true,
|
|
116
|
+
message: problem
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
key: dockerKey,
|
|
120
|
+
async prepare(sandbox, harness, ctx) {
|
|
121
|
+
const { createBuilds, imageHarness, prepareImage } = await import("./prepare-BGjePFQl.js");
|
|
122
|
+
builds ??= createBuilds({
|
|
123
|
+
retry: ctx.retry,
|
|
124
|
+
log: ctx.log,
|
|
125
|
+
refresh: options.refresh ?? "none",
|
|
126
|
+
engine
|
|
127
|
+
});
|
|
128
|
+
return await prepareImage(sandbox, imageHarness(harness), ctx.root, ctx.signal, builds);
|
|
129
|
+
},
|
|
130
|
+
classify: classifyDocker
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The image a Docker sandbox's `prepare` returned. Handles are opaque to preflight and round-trip
|
|
135
|
+
* through `prepared.json`, so only the Docker provider's own type says what this one holds.
|
|
136
|
+
*/
|
|
137
|
+
const attemptImage = (handle) => handle;
|
|
138
|
+
/** The fake sandbox is a temp directory on the host: nothing to check or prepare. */
|
|
139
|
+
const fakeProvider = () => ({
|
|
140
|
+
kind: "fake",
|
|
141
|
+
check: async () => {},
|
|
142
|
+
key: () => "fake",
|
|
143
|
+
prepare: async () => null,
|
|
144
|
+
classify: (error) => ({
|
|
145
|
+
class: "config",
|
|
146
|
+
stage: "fake",
|
|
147
|
+
ref: null,
|
|
148
|
+
cause: null,
|
|
149
|
+
log: null,
|
|
150
|
+
message: error instanceof Error ? error.message : String(error)
|
|
151
|
+
})
|
|
152
|
+
});
|
|
153
|
+
/** A fresh set of providers, one per run: each keeps the run's builds. */
|
|
154
|
+
const createProviders = (options = {}) => ({
|
|
155
|
+
docker: dockerProvider(options),
|
|
156
|
+
podman: dockerProvider({
|
|
157
|
+
...options,
|
|
158
|
+
engine: "podman"
|
|
159
|
+
}),
|
|
160
|
+
fake: fakeProvider()
|
|
161
|
+
});
|
|
162
|
+
//#endregion
|
|
163
|
+
export { dockerProblem as a, podmanConfinementProblem as c, dockerKey as i, podmanInfoProblem as l, classifyDocker as n, dockerProvider as o, createProviders as r, fakeProvider as s, attemptImage as t, requireDocker as u };
|
|
164
|
+
|
|
165
|
+
//# sourceMappingURL=providers-tAOD1NQN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers-tAOD1NQN.js","names":[],"sources":["../src/sandbox/providers.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as UsageError } from "./errors-
|
|
1
|
+
import { n as UsageError } from "./errors-B6BSMs03.js";
|
|
2
2
|
import { n as clip } from "./text-gEcKjAyp.js";
|
|
3
3
|
//#region src/query.ts
|
|
4
4
|
const EXAMPLES = [
|
|
@@ -61,7 +61,7 @@ function statementCount(sql) {
|
|
|
61
61
|
* and tables; a bare name selects everything from that view or table.
|
|
62
62
|
*/
|
|
63
63
|
async function queryCommand(ctx, args) {
|
|
64
|
-
const { openHistoryDb } = await import("./db-
|
|
64
|
+
const { openHistoryDb } = await import("./db-Dm1cRJJP.js");
|
|
65
65
|
const db = await openHistoryDb(ctx.config.root, ctx.config.history.dir, { rebuild: !!ctx.flags.rebuild });
|
|
66
66
|
try {
|
|
67
67
|
const { sync } = db;
|
|
@@ -88,4 +88,4 @@ async function queryCommand(ctx, args) {
|
|
|
88
88
|
//#endregion
|
|
89
89
|
export { queryCommand as n, statementCount as r, formatRows as t };
|
|
90
90
|
|
|
91
|
-
//# sourceMappingURL=query-
|
|
91
|
+
//# sourceMappingURL=query-Bes9Kh6Y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-
|
|
1
|
+
{"version":3,"file":"query-Bes9Kh6Y.js","names":[],"sources":["../src/query.ts"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { n as queryCommand } from "./query-Bes9Kh6Y.js";
|