reeval 0.11.0 → 0.13.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 +115 -257
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +41 -30
- package/bin/mcp-timer.cjs +224 -0
- package/dist/{adapter-Bwy3QxAK.js → adapter-IKKo4sZj.js} +4 -4
- package/dist/{adapter-Bwy3QxAK.js.map → adapter-IKKo4sZj.js.map} +1 -1
- package/dist/{agent-DpE80WPz.js → agent-ClE-g9VL.js} +22 -7
- package/dist/{agent-DpE80WPz.js.map → agent-ClE-g9VL.js.map} +1 -1
- package/dist/{analysis-Bxub9LMT.js → analysis-B0nOfAzA.js} +3 -3
- package/dist/{analysis-Bxub9LMT.js.map → analysis-B0nOfAzA.js.map} +1 -1
- package/dist/{assemble-D9GWr-HS.js → assemble-BO93VAk1.js} +22 -20
- package/dist/assemble-BO93VAk1.js.map +1 -0
- package/dist/assemble-VQxyoDxK.js +1 -0
- package/dist/{attempt-CGPV3BZY.js → attempt-jI0OWxlz.js} +2 -2
- package/dist/{attempt-CGPV3BZY.js.map → attempt-jI0OWxlz.js.map} +1 -1
- package/dist/bridge/index.mjs +2 -1
- package/dist/{capture-BQlGHiMC.js → capture-dn2hjSLj.js} +29 -21
- package/dist/{capture-BQlGHiMC.js.map → capture-dn2hjSLj.js.map} +1 -1
- package/dist/capture-nIJ-7kUE.js +1 -0
- package/dist/{cli-ClpPT8kn.js → cli-BCE1xlm4.js} +176 -120
- package/dist/cli-BCE1xlm4.js.map +1 -0
- package/dist/{cli-spec-qmEnQ25_.js → cli-spec-BXIBUlaK.js} +34 -15
- package/dist/cli-spec-BXIBUlaK.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{command-BlM0y8jN.js → command-Bh3yhN_b.js} +8 -8
- package/dist/{command-BlM0y8jN.js.map → command-Bh3yhN_b.js.map} +1 -1
- package/dist/command-C6vwmjS7.js +91 -0
- package/dist/command-C6vwmjS7.js.map +1 -0
- package/dist/{command-DbAe1Rzb.js → command-CANun0m0.js} +16 -19
- package/dist/command-CANun0m0.js.map +1 -0
- package/dist/command-CBaHukyl.js +335 -0
- package/dist/command-CBaHukyl.js.map +1 -0
- package/dist/{command-TgbzPizb.js → command-D_kEnYcX.js} +17 -16
- package/dist/command-D_kEnYcX.js.map +1 -0
- package/dist/commands-7tH3EsVu.js +666 -0
- package/dist/commands-7tH3EsVu.js.map +1 -0
- package/dist/{commands-CthqwkAn.js → commands-BKGzBMgb.js} +1 -1
- package/dist/{config-DrVSEVN0.js → config-D7TFvUpL.js} +40 -55
- package/dist/config-D7TFvUpL.js.map +1 -0
- package/dist/{context-C1mxXh80.js → context-Dgn48BqT.js} +13 -2
- package/dist/context-Dgn48BqT.js.map +1 -0
- package/dist/{contrasts-5zsj32gk.js → contrasts-B4nOhn0Z.js} +3 -3
- package/dist/{contrasts-5zsj32gk.js.map → contrasts-B4nOhn0Z.js.map} +1 -1
- package/dist/db-DJUuFoWQ.js +602 -0
- package/dist/db-DJUuFoWQ.js.map +1 -0
- package/dist/db-W9EFlXnn.js +2 -0
- package/dist/{dist-CuY4ehEk.js → dist-Dp_AJgYN.js} +3 -3
- package/dist/{dist-CuY4ehEk.js.map → dist-Dp_AJgYN.js.map} +1 -1
- package/dist/{docker-D1HZDS6q.js → docker-CQxucRPe.js} +16 -15
- package/dist/docker-CQxucRPe.js.map +1 -0
- package/dist/{docker-DNmMPOBb.js → docker-Dac6Zalz.js} +1 -1
- package/dist/{docker-DOvjji9I.js → docker-DuHcQidD.js} +3 -3
- package/dist/{docker-DOvjji9I.js.map → docker-DuHcQidD.js.map} +1 -1
- package/dist/{doctor-D2MbNO8L.js → doctor-De_QlOTM.js} +72 -38
- package/dist/doctor-De_QlOTM.js.map +1 -0
- package/dist/{egress-2-qzPvGi.js → egress-DEAvq8Fl.js} +453 -31
- package/dist/egress-DEAvq8Fl.js.map +1 -0
- package/dist/env-BQqj93gu.js +21 -0
- package/dist/env-BQqj93gu.js.map +1 -0
- package/dist/{environment-Cca6a4wB.js → environment-B4IuURK1.js} +247 -14
- package/dist/environment-B4IuURK1.js.map +1 -0
- package/dist/{evaluate-DMyaGQEj.d.ts → evaluate-C9-ritA5.d.ts} +2 -2
- package/dist/{evaluate-DKIl54Hb.js → evaluate-Djk1YPFL.js} +540 -560
- package/dist/evaluate-Djk1YPFL.js.map +1 -0
- package/dist/facts-Cfx1H70y.js +898 -0
- package/dist/facts-Cfx1H70y.js.map +1 -0
- package/dist/files-Bs6H3HiG.js +65 -0
- package/dist/files-Bs6H3HiG.js.map +1 -0
- package/dist/{files-BpUYBwGu.js → files-CN1QfenC.js} +31 -8
- package/dist/files-CN1QfenC.js.map +1 -0
- package/dist/files-CtjEXWXm.js +1 -0
- package/dist/{files-BXHZFWmx.js → files-D27nUk0K.js} +6 -17
- package/dist/files-D27nUk0K.js.map +1 -0
- package/dist/files-D3gJa91B.js +1 -0
- package/dist/generate-BnrvBAzF.js +1646 -0
- package/dist/generate-BnrvBAzF.js.map +1 -0
- package/dist/{git-Crl3b87o.js → git-rPfl7AD1.js} +3 -3
- package/dist/{git-Crl3b87o.js.map → git-rPfl7AD1.js.map} +1 -1
- package/dist/{harness-CEuntrla.js → harness-1OkumOAm.js} +3 -3
- package/dist/{harness-CEuntrla.js.map → harness-1OkumOAm.js.map} +1 -1
- package/dist/harness.d.ts +1 -1
- package/dist/harness.js +1 -1
- package/dist/{header-DHQv_ZrF.js → header-BVzbRnNv.js} +10 -3
- package/dist/{header-DHQv_ZrF.js.map → header-BVzbRnNv.js.map} +1 -1
- package/dist/{images-Bi3aGxb9.js → images-m784ueGK.js} +61 -13
- package/dist/images-m784ueGK.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -4
- package/dist/init-hiTkiM4L.js +543 -0
- package/dist/init-hiTkiM4L.js.map +1 -0
- package/dist/init-kMkTgTZc.js +1 -0
- package/dist/insights-B2Xmhz9o.js +64 -0
- package/dist/insights-B2Xmhz9o.js.map +1 -0
- package/dist/{invocations-BYDPe3fV.js → invocations-D_ePcwyL.js} +4 -4
- package/dist/{invocations-BYDPe3fV.js.map → invocations-D_ePcwyL.js.map} +1 -1
- package/dist/{judge-DW_GDOmB.js → judge-CEDIfRiU.js} +50 -15
- package/dist/judge-CEDIfRiU.js.map +1 -0
- package/dist/judge.d.ts +7 -6
- package/dist/judge.js +8 -7
- package/dist/judge.js.map +1 -1
- package/dist/{live-jlfszAbb.js → live-DYd2QEyR.js} +2 -2
- package/dist/{live-jlfszAbb.js.map → live-DYd2QEyR.js.map} +1 -1
- package/dist/model-B8H3gL69.js +1 -0
- package/dist/{model-DaVCY3rb.js → model-CTiuzkWw.js} +9 -7
- package/dist/model-CTiuzkWw.js.map +1 -0
- package/dist/model-DcIbmggK.js +1 -0
- package/dist/{model-D0IcOQao.js → model-DpkclE4r.js} +60 -25
- package/dist/model-DpkclE4r.js.map +1 -0
- package/dist/{model-DaX4bNLZ.js → model-UgHDMhI1.js} +144 -46
- package/dist/model-UgHDMhI1.js.map +1 -0
- package/dist/{node-B3ydHo6t.js → node-CGZYh4Fj.js} +4 -4
- package/dist/{node-B3ydHo6t.js.map → node-CGZYh4Fj.js.map} +1 -1
- package/dist/{opencode-providers-J9colP0-.js → opencode-providers-snfeWd6Z.js} +86 -47
- package/dist/opencode-providers-snfeWd6Z.js.map +1 -0
- package/dist/{options-C0d0AzeR.js → options-CyAyLjgJ.js} +22 -11
- package/dist/options-CyAyLjgJ.js.map +1 -0
- package/dist/{pairs-CnInRu-G.js → pairs-DP6XOJby.js} +2 -2
- package/dist/{pairs-CnInRu-G.js.map → pairs-DP6XOJby.js.map} +1 -1
- package/dist/{patch-B1bnfhN-.js → patch-uMq9rCl_.js} +2 -2
- package/dist/{patch-B1bnfhN-.js.map → patch-uMq9rCl_.js.map} +1 -1
- package/dist/{plan-DgQxp9yy.js → plan-CZYgXnZh.js} +21 -8
- package/dist/plan-CZYgXnZh.js.map +1 -0
- package/dist/plugins-P-uh54VF.js +654 -0
- package/dist/plugins-P-uh54VF.js.map +1 -0
- package/dist/{preflight-DlQvbySb.js → preflight-BQlPTHVu.js} +1 -1
- package/dist/{preflight-BRzD30L5.js → preflight-D3HvKeAx.js} +14 -10
- package/dist/preflight-D3HvKeAx.js.map +1 -0
- package/dist/prepare-DCwM2KKD.js +2 -0
- package/dist/{prepare-B_y-AFMv.js → prepare-Dx7dOnJB.js} +70 -23
- package/dist/prepare-Dx7dOnJB.js.map +1 -0
- package/dist/{provenance-DQ0AXn6c.js → provenance-C_-8y-x3.js} +4 -4
- package/dist/{provenance-DQ0AXn6c.js.map → provenance-C_-8y-x3.js.map} +1 -1
- package/dist/{providers-DoTq1jHW.js → providers-CF5UEaP8.js} +24 -10
- package/dist/providers-CF5UEaP8.js.map +1 -0
- package/dist/providers-CTBYvMxu.js +1 -0
- package/dist/{query-BO-ux7RB.js → query-DXthKmq0.js} +3 -3
- package/dist/{query-BO-ux7RB.js.map → query-DXthKmq0.js.map} +1 -1
- package/dist/query-D_1ARx5q.js +1 -0
- package/dist/{questions-C2dym2ce.js → questions-KENpWnfV.js} +8 -9
- package/dist/questions-KENpWnfV.js.map +1 -0
- package/dist/{record-BKmMvZ6O.js → record-kk9M1hj-.js} +8 -4
- package/dist/record-kk9M1hj-.js.map +1 -0
- package/dist/{redact-DJ9JCShu.js → redact-CRGdfV2s.js} +4 -2
- package/dist/redact-CRGdfV2s.js.map +1 -0
- package/dist/remarks-1521zwfW.js +38 -0
- package/dist/remarks-1521zwfW.js.map +1 -0
- package/dist/remarks-BhAV1H4V.js +1 -0
- package/dist/remarks-Ml6bcSdV.js +278 -0
- package/dist/remarks-Ml6bcSdV.js.map +1 -0
- package/dist/{remote-CPPW86Q9.js → remote-Dkeghk8k.js} +3 -3
- package/dist/{remote-CPPW86Q9.js.map → remote-Dkeghk8k.js.map} +1 -1
- package/dist/resolve-CMmhACr6.js +1 -0
- package/dist/resolve-DzdWcIL6.js +724 -0
- package/dist/resolve-DzdWcIL6.js.map +1 -0
- package/dist/{results-BE2f-1XS.js → results-D-naai_Q.js} +33 -8
- package/dist/results-D-naai_Q.js.map +1 -0
- package/dist/{resume-Ca1c8vix.js → resume-8-nnW8iO.js} +4 -4
- package/dist/{resume-Ca1c8vix.js.map → resume-8-nnW8iO.js.map} +1 -1
- package/dist/{root-DICDHCtp.js → root-DNuLhaA5.js} +2 -2
- package/dist/root-DNuLhaA5.js.map +1 -0
- package/dist/rules-CcV3zLDR.js +318 -0
- package/dist/rules-CcV3zLDR.js.map +1 -0
- package/dist/run-Bel7Vde4.js +88 -0
- package/dist/run-Bel7Vde4.js.map +1 -0
- package/dist/{sandbox-DLrsvu7U.js → sandbox-YLbk9mO7.js} +2 -2
- package/dist/{sandbox-DLrsvu7U.js.map → sandbox-YLbk9mO7.js.map} +1 -1
- package/dist/sandbox.d.ts +1 -1
- package/dist/sandbox.js +1 -1
- package/dist/server-C-ysqkLv.js +1 -0
- package/dist/{server-TUY5xA_A.js → server-De8oH3bt.js} +10 -10
- package/dist/{server-TUY5xA_A.js.map → server-De8oH3bt.js.map} +1 -1
- package/dist/{source-DJGS0a0u.js → source-C686eZpY.js} +2 -2
- package/dist/{source-DJGS0a0u.js.map → source-C686eZpY.js.map} +1 -1
- package/dist/source-DjgypUHW.js +1 -0
- package/dist/src-3mP821Pt.js +2 -0
- package/dist/src-B3KCLZVk.js +3 -0
- package/dist/src-BAyg6CtQ.js +2 -0
- package/dist/{src-CF17Ug08.js → src-BYLM3hEz.js} +22 -6
- package/dist/src-BYLM3hEz.js.map +1 -0
- package/dist/src-BezgGX4X.js +2 -0
- package/dist/{src-DvCg0NBs.js → src-C7W6kg81.js} +40 -10
- package/dist/{src-DvCg0NBs.js.map → src-C7W6kg81.js.map} +1 -1
- package/dist/{src-ftu5wPSt.js → src-CIpKL45U.js} +782 -169
- package/dist/src-CIpKL45U.js.map +1 -0
- package/dist/src-ChBhk06Q.js +2 -0
- package/dist/{src-BxfCKA3_.js → src-CoqZYspK.js} +1 -1
- package/dist/{src-CFp86GtV.js → src-CzQrAcF8.js} +49 -49
- package/dist/src-CzQrAcF8.js.map +1 -0
- package/dist/src-D9fSTxlc.js +1 -0
- package/dist/{src-FGXhkEkH.js → src-DeY52Gyf.js} +182 -23
- package/dist/src-DeY52Gyf.js.map +1 -0
- package/dist/src-DrJSnoMR.js +2 -0
- package/dist/{src-DvK0EIZx.js → src-Xj_BZKbq.js} +112 -13
- package/dist/src-Xj_BZKbq.js.map +1 -0
- package/dist/{src-u8_ixn_F.js → src-cbCb-MPy.js} +20 -4
- package/dist/src-cbCb-MPy.js.map +1 -0
- package/dist/src-dhSTRN50.js +2 -0
- package/dist/{src-C7_1SqDP.js → src-djNNYIdP.js} +2 -2
- package/dist/{src-C7_1SqDP.js.map → src-djNNYIdP.js.map} +1 -1
- package/dist/state-BGWGAwdo.js +1 -0
- package/dist/{state-DfpHox6b.js → state-C0i_ujQZ.js} +19 -17
- package/dist/{state-DfpHox6b.js.map → state-C0i_ujQZ.js.map} +1 -1
- package/dist/studio-app/assets/{index-CBkhNAv8.js → index-Bb_cid9k.js} +9 -9
- package/dist/studio-app/index.html +1 -1
- package/dist/{suite-Cw_7G2RM.js → suite-DmuF_ApO.js} +80 -30
- package/dist/suite-DmuF_ApO.js.map +1 -0
- package/dist/suite-mn9g4veR.js +2 -0
- package/dist/{summary-BUKfU-9l.js → summary-BFMHMTz2.js} +273 -47
- package/dist/summary-BFMHMTz2.js.map +1 -0
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +2 -2
- package/dist/{text-gEcKjAyp.js → text-CrVy5ioL.js} +18 -2
- package/dist/text-CrVy5ioL.js.map +1 -0
- package/dist/{transcript-BNNANU8A.js → transcript-BTxJpW4R.js} +2 -2
- package/dist/{transcript-BNNANU8A.js.map → transcript-BTxJpW4R.js.map} +1 -1
- package/dist/{types-BYdlwMwo.d.ts → types-B-9b1MDV.d.ts} +850 -34
- package/dist/types-C5vI3g1C.js.map +1 -1
- package/dist/usage-BDo2q_yu.js +1 -0
- package/dist/{command-Bj39y-Wm.js → validate-DWjkshl1.js} +20 -377
- package/dist/validate-DWjkshl1.js.map +1 -0
- package/dist/view/index.d.ts +31 -263
- package/dist/view/index.js +8 -7
- package/dist/views-DE2A1jEX.js +2 -0
- package/dist/{views-B8w2J-gD.js → views-Dk8MCQKr.js} +8 -98
- package/dist/views-Dk8MCQKr.js.map +1 -0
- package/dist/{worker-entry-DNnveLqx.js → worker-entry-CqrzGPF4.js} +2 -2
- package/dist/{worker-entry-DNnveLqx.js.map → worker-entry-CqrzGPF4.js.map} +1 -1
- package/dist/workspace-B1eGO46M.js +1 -0
- package/dist/{workspace-C4RA3srV.js → workspace-CLeOybkr.js} +45 -11
- package/dist/workspace-CLeOybkr.js.map +1 -0
- package/package.json +5 -1
- package/skills/eval-rubric/SKILL.md +130 -0
- package/dist/agent-D483ru7D.js +0 -334
- package/dist/agent-D483ru7D.js.map +0 -1
- package/dist/assemble-D5KGrwnJ.js +0 -1
- package/dist/assemble-D9GWr-HS.js.map +0 -1
- package/dist/capture-CYGLpWxR.js +0 -1
- package/dist/cli-ClpPT8kn.js.map +0 -1
- package/dist/cli-spec-qmEnQ25_.js.map +0 -1
- package/dist/command-Bj39y-Wm.js.map +0 -1
- package/dist/command-C-cVjlny.js +0 -1
- package/dist/command-DbAe1Rzb.js.map +0 -1
- package/dist/command-TgbzPizb.js.map +0 -1
- package/dist/commands-YUwlyTbr.js +0 -228
- package/dist/commands-YUwlyTbr.js.map +0 -1
- package/dist/config-DrVSEVN0.js.map +0 -1
- package/dist/context-C1mxXh80.js.map +0 -1
- package/dist/db-CKg5NtiW.js +0 -2
- package/dist/db-DfhipHEF.js +0 -1416
- package/dist/db-DfhipHEF.js.map +0 -1
- package/dist/docker-D1HZDS6q.js.map +0 -1
- package/dist/doctor-D2MbNO8L.js.map +0 -1
- package/dist/egress-2-qzPvGi.js.map +0 -1
- package/dist/environment-Cca6a4wB.js.map +0 -1
- package/dist/evaluate-DKIl54Hb.js.map +0 -1
- package/dist/files-BXHZFWmx.js.map +0 -1
- package/dist/files-BpUYBwGu.js.map +0 -1
- package/dist/files-Bw8lWEjg.js +0 -1
- package/dist/files-D6J0iSdx.js +0 -1
- package/dist/images-Bi3aGxb9.js.map +0 -1
- package/dist/init-Cl3f3NBT.js +0 -360
- package/dist/init-Cl3f3NBT.js.map +0 -1
- package/dist/init-fhOXED8F.js +0 -1
- package/dist/judge-DW_GDOmB.js.map +0 -1
- package/dist/model-CXhrziBe.js +0 -1
- package/dist/model-D0IcOQao.js.map +0 -1
- package/dist/model-DaVCY3rb.js.map +0 -1
- package/dist/model-DaX4bNLZ.js.map +0 -1
- package/dist/model-_bxNrk2h.js +0 -1
- package/dist/opencode-providers-J9colP0-.js.map +0 -1
- package/dist/options-C0d0AzeR.js.map +0 -1
- package/dist/plan-DgQxp9yy.js.map +0 -1
- package/dist/preflight-BRzD30L5.js.map +0 -1
- package/dist/prepare-B_y-AFMv.js.map +0 -1
- package/dist/prepare-DCKTLHN3.js +0 -2
- package/dist/providers-B9yTdIqF.js +0 -1
- package/dist/providers-DoTq1jHW.js.map +0 -1
- package/dist/query-CRQfsw0e.js +0 -1
- package/dist/questions-C2dym2ce.js.map +0 -1
- package/dist/record-BKmMvZ6O.js.map +0 -1
- package/dist/redact-DJ9JCShu.js.map +0 -1
- package/dist/results-BE2f-1XS.js.map +0 -1
- package/dist/root-DICDHCtp.js.map +0 -1
- package/dist/server-Dp8eOeK5.js +0 -1
- package/dist/source-DdbLGR1M.js +0 -1
- package/dist/src-CF17Ug08.js.map +0 -1
- package/dist/src-CFp86GtV.js.map +0 -1
- package/dist/src-CLoOMVWI.js +0 -3
- package/dist/src-CcrQbpG8.js +0 -2
- package/dist/src-DCFtJRp0.js +0 -2
- package/dist/src-DSYYPEOj.js +0 -2
- package/dist/src-DYO3DdnQ.js +0 -1
- package/dist/src-DvK0EIZx.js.map +0 -1
- package/dist/src-FGXhkEkH.js.map +0 -1
- package/dist/src-WD-zgQYZ.js +0 -2
- package/dist/src-_oI9AePb.js +0 -2
- package/dist/src-ftu5wPSt.js.map +0 -1
- package/dist/src-qsKCqv7a.js +0 -2
- package/dist/src-u8_ixn_F.js.map +0 -1
- package/dist/state-DpAxYyED.js +0 -1
- package/dist/suite-Cw_7G2RM.js.map +0 -1
- package/dist/suite-DamAEnNF.js +0 -1
- package/dist/summary-BUKfU-9l.js.map +0 -1
- package/dist/summary-Baa4rTHS.js +0 -192
- package/dist/summary-Baa4rTHS.js.map +0 -1
- package/dist/text-gEcKjAyp.js.map +0 -1
- package/dist/tools-DLHgetpx.js +0 -249
- package/dist/tools-DLHgetpx.js.map +0 -1
- package/dist/views-B8w2J-gD.js.map +0 -1
- package/dist/views-DblnI3kA.js +0 -2
- package/dist/workspace-C4RA3srV.js.map +0 -1
- package/dist/workspace-C_X0tdv6.js +0 -1
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import { n as isOneOf } from "./object-CLf2-tNq.js";
|
|
2
2
|
import { n as UsageError } from "./errors-B6BSMs03.js";
|
|
3
3
|
import { p as parseDuration } from "./shared-CA61BuPJ.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { p as sandboxId, s as harnessId, u as plannedSandboxes } from "./options-CyAyLjgJ.js";
|
|
5
|
+
import { M as workspaceLabel, T as profileSandbox, p as environmentSandbox } from "./environment-B4IuURK1.js";
|
|
6
6
|
import { a as fromCwd, o as newRunId } from "./ids-Bp6ut7ZD.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
7
|
+
import { c as registerSecret, s as redactSecrets } from "./redact-CRGdfV2s.js";
|
|
8
|
+
import { a as configPathFor, c as findConfig, d as loadConfig, f as malformedCredentials, g as selectProfile, h as resolveConcurrency, i as configLabel, l as hasAnalysisModel, m as requireConfig, p as missingCredentials, u as hostCapacity } from "./config-D7TFvUpL.js";
|
|
9
|
+
import { n as loadEnvFiles, t as inCI } from "./env-BQqj93gu.js";
|
|
10
|
+
import { W as LABEL, at as imageInfo } from "./src-CIpKL45U.js";
|
|
11
|
+
import { o as PACKAGE_VERSION } from "./root-DNuLhaA5.js";
|
|
12
|
+
import { C as pluginBuildsLabel } from "./plugins-P-uh54VF.js";
|
|
11
13
|
import { s as debugTime } from "./debug-D24NOQH1.js";
|
|
12
|
-
import { i as
|
|
14
|
+
import { i as formatDuration, n as clip, o as sandboxWarningLine } from "./text-CrVy5ioL.js";
|
|
13
15
|
import { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
14
|
-
import { T as runOutcome, g as formatUsage } from "./model-
|
|
15
|
-
import {
|
|
16
|
+
import { T as runOutcome, g as formatUsage } from "./model-UgHDMhI1.js";
|
|
17
|
+
import { c as suiteResult } from "./suite-DmuF_ApO.js";
|
|
18
|
+
import { a as commandHelpText, n as FLAGS, r as GLOBAL, s as helpText, t as COMMANDS } from "./cli-spec-BXIBUlaK.js";
|
|
19
|
+
import { p as render } from "./summary-BFMHMTz2.js";
|
|
16
20
|
import { n as stripAnsi, t as colors } from "./colors-QV9dFVhN.js";
|
|
17
|
-
import {
|
|
18
|
-
import { c as writeLiveProgress, i as prepareResume, o as resolveResume, r as loadPrevious, s as writeCurrent, t as completedKeysFor } from "./resume-Ca1c8vix.js";
|
|
19
|
-
import { a as commandHelpText, n as FLAGS, r as GLOBAL, s as helpText, t as COMMANDS } from "./cli-spec-qmEnQ25_.js";
|
|
20
|
-
import { i as runtimeInfo, n as gitInfo, r as runnerInfo, t as author } from "./provenance-DQ0AXn6c.js";
|
|
21
|
+
import { i as runtimeInfo, n as gitInfo, r as runnerInfo, t as author } from "./provenance-C_-8y-x3.js";
|
|
21
22
|
import { t as budgetMarker } from "./budget-DBUrH4jX.js";
|
|
22
|
-
import {
|
|
23
|
-
import { n as
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
23
|
+
import { c as writeLiveProgress, i as prepareResume, o as resolveResume, r as loadPrevious, s as writeCurrent, t as completedKeysFor } from "./resume-8-nnW8iO.js";
|
|
24
|
+
import { n as prepareAll, o as writePrepared, r as prepareTargets, t as RunStopError } from "./preflight-D3HvKeAx.js";
|
|
25
|
+
import { n as imageHarness } from "./prepare-Dx7dOnJB.js";
|
|
26
|
+
import { i as createProviders, n as attemptImage } from "./providers-CF5UEaP8.js";
|
|
27
|
+
import { a as redactArgv, r as commandOf, t as logInvocation } from "./invocations-D_ePcwyL.js";
|
|
26
28
|
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
27
29
|
import { dirname, join } from "node:path";
|
|
28
30
|
import { inspect } from "node:util";
|
|
@@ -161,12 +163,15 @@ function usageError(error, command) {
|
|
|
161
163
|
}
|
|
162
164
|
//#endregion
|
|
163
165
|
//#region src/preflight.ts
|
|
164
|
-
/**
|
|
165
|
-
|
|
166
|
+
/**
|
|
167
|
+
* How the terminal names a sandbox to prepare: its cell id, `+ install`, `+ plugin builds`, and a
|
|
168
|
+
* harness other than Cursor.
|
|
169
|
+
*/
|
|
170
|
+
function prepareLabel({ sandbox, harness, plugins }) {
|
|
166
171
|
if (sandbox.kind !== "docker") return sandboxId(sandbox);
|
|
167
172
|
const baked = imageHarness(harness);
|
|
168
173
|
const install = sandbox.install?.length ? " + install" : "";
|
|
169
|
-
return `${sandboxId(sandbox)}${install}${baked === "cursor" ? "" : ` · ${baked}`}`;
|
|
174
|
+
return `${sandboxId(sandbox)}${install}${pluginBuildsLabel(plugins)}${baked === "cursor" ? "" : ` · ${baked}`}`;
|
|
170
175
|
}
|
|
171
176
|
/** A run that stopped in preflight on an infra failure: exit 3. */
|
|
172
177
|
var PreflightInfraError = class extends Error {
|
|
@@ -384,12 +389,12 @@ function resultLines(c, e, verbose) {
|
|
|
384
389
|
`results ${e.summaryPath}`
|
|
385
390
|
].filter(Boolean).join(" · "))
|
|
386
391
|
];
|
|
387
|
-
return
|
|
392
|
+
return render(suiteResult(record), e.insights ?? null, {
|
|
388
393
|
color: c.enabled,
|
|
389
394
|
verbose,
|
|
390
|
-
notes,
|
|
395
|
+
notes: [...(e.insightLines ?? []).map((l) => c.yellow(l)), ...notes],
|
|
391
396
|
hint: e.hint
|
|
392
|
-
})
|
|
397
|
+
});
|
|
393
398
|
}
|
|
394
399
|
//#endregion
|
|
395
400
|
//#region src/ui/tags.ts
|
|
@@ -552,6 +557,8 @@ var PlainRenderer = class {
|
|
|
552
557
|
#evals = /* @__PURE__ */ new Set();
|
|
553
558
|
#tries = /* @__PURE__ */ new Set();
|
|
554
559
|
#ended = /* @__PURE__ */ new Set();
|
|
560
|
+
/** Insights after the last attempt, once they've started: they take the status line. */
|
|
561
|
+
#insights = null;
|
|
555
562
|
constructor(options) {
|
|
556
563
|
this.#o = options;
|
|
557
564
|
this.#c = options.colors;
|
|
@@ -568,11 +575,16 @@ var PlainRenderer = class {
|
|
|
568
575
|
this.#o.out.write(this.#status ? `${CLEAR}${line}${this.#status}` : line);
|
|
569
576
|
this.#lastWrite = this.#now();
|
|
570
577
|
}
|
|
571
|
-
/** `7 evals · 12/28 tries`: what's collected so far and how many tries ended
|
|
578
|
+
/** `7 evals · 12/28 tries`: what's collected so far and how many tries ended; then `insights 3/7…`. */
|
|
572
579
|
#drawStatus() {
|
|
573
|
-
if (!this.#live
|
|
574
|
-
|
|
575
|
-
|
|
580
|
+
if (!this.#live) return;
|
|
581
|
+
let status;
|
|
582
|
+
if (this.#insights) status = this.#c.dim(`insights ${this.#insights.done}/${this.#insights.total}…`);
|
|
583
|
+
else {
|
|
584
|
+
if (!this.#tries.size) return;
|
|
585
|
+
const evals = `${this.#evals.size} eval${this.#evals.size === 1 ? "" : "s"}`;
|
|
586
|
+
status = this.#c.dim(`${evals} · ${this.#ended.size}/${this.#tries.size} tries`);
|
|
587
|
+
}
|
|
576
588
|
if (status === this.#status) return;
|
|
577
589
|
this.#o.out.write(`${CLEAR}${status}`);
|
|
578
590
|
this.#status = status;
|
|
@@ -700,6 +712,14 @@ var PlainRenderer = class {
|
|
|
700
712
|
this.#write(`::error title=${title}::${ghEscape(failure.message)}`);
|
|
701
713
|
}
|
|
702
714
|
return;
|
|
715
|
+
case "insights-progress":
|
|
716
|
+
this.#insights = {
|
|
717
|
+
done: e.done,
|
|
718
|
+
total: e.total,
|
|
719
|
+
startedAt: this.#insights?.startedAt ?? e.at
|
|
720
|
+
};
|
|
721
|
+
this.#drawStatus();
|
|
722
|
+
return;
|
|
703
723
|
case "notice": {
|
|
704
724
|
const paint = {
|
|
705
725
|
info: c.dim,
|
|
@@ -760,12 +780,19 @@ var PlainRenderer = class {
|
|
|
760
780
|
this.#write(`::error file=${ghEscape(result.file, true)}${where},title=${title}::${message}`);
|
|
761
781
|
}
|
|
762
782
|
}
|
|
763
|
-
/** Prints the heartbeat if nothing was written for `heartbeatMs` and evals are running. */
|
|
783
|
+
/** Prints the heartbeat if nothing was written for `heartbeatMs` and evals or insights are running. */
|
|
764
784
|
tick(now = this.#now()) {
|
|
765
785
|
const { heartbeatMs } = this.#o.output;
|
|
766
|
-
if (this.#live || heartbeatMs <= 0
|
|
786
|
+
if (this.#live || heartbeatMs <= 0) return;
|
|
767
787
|
if (now - this.#lastWrite < heartbeatMs) return;
|
|
768
788
|
const c = this.#c;
|
|
789
|
+
const insights = this.#insights;
|
|
790
|
+
if (insights) {
|
|
791
|
+
const elapsed = formatDuration(now - insights.startedAt);
|
|
792
|
+
if (insights.done < insights.total) this.#write(c.dim(`… insights ${insights.done}/${insights.total} after ${elapsed}`));
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
if (this.#running.size === 0) return;
|
|
769
796
|
const running = [...this.#running.values()].map((a) => {
|
|
770
797
|
const progress = a.last?.type === "eval-progress" ? a.last.progress : void 0;
|
|
771
798
|
return `${this.#prefix(a)} ${phaseOf(progress)} ${c.dim(formatDuration(now - a.startedAt))}`;
|
|
@@ -899,6 +926,11 @@ const invocation = {
|
|
|
899
926
|
let interrupted = false;
|
|
900
927
|
/** The last signal that cancelled the run: 130 after SIGINT, 143 after SIGTERM. */
|
|
901
928
|
let stopCode = EXIT.interrupted;
|
|
929
|
+
/**
|
|
930
|
+
* Set while insights run, after the attempts and the exit code: Ctrl-C or SIGTERM then stops the
|
|
931
|
+
* insights instead of cancelling the run, which has nothing left to cancel.
|
|
932
|
+
*/
|
|
933
|
+
let onInsightsSignal = null;
|
|
902
934
|
async function run(argv) {
|
|
903
935
|
const { values, positionals } = parseCli(argv);
|
|
904
936
|
invocation.flags = values;
|
|
@@ -916,7 +948,7 @@ async function run(argv) {
|
|
|
916
948
|
return values.help ? EXIT.ok : EXIT.usage;
|
|
917
949
|
}
|
|
918
950
|
if (command === "init") {
|
|
919
|
-
const { initCommand } = await import("./init-
|
|
951
|
+
const { initCommand } = await import("./init-kMkTgTZc.js");
|
|
920
952
|
return initCommand(values, filters, {
|
|
921
953
|
out: (s) => console.log(s),
|
|
922
954
|
input: process.stdin,
|
|
@@ -925,7 +957,7 @@ async function run(argv) {
|
|
|
925
957
|
});
|
|
926
958
|
}
|
|
927
959
|
if (command === "doctor") {
|
|
928
|
-
const { doctorCommand } = await import("./doctor-
|
|
960
|
+
const { doctorCommand } = await import("./doctor-De_QlOTM.js");
|
|
929
961
|
return doctorCommand(values, {
|
|
930
962
|
out: (s) => console.log(s),
|
|
931
963
|
color: !!process.stdout.isTTY && !process.env.NO_COLOR,
|
|
@@ -933,7 +965,7 @@ async function run(argv) {
|
|
|
933
965
|
});
|
|
934
966
|
}
|
|
935
967
|
if (command === "report") {
|
|
936
|
-
const { reportCommand } = await import("./command-
|
|
968
|
+
const { reportCommand } = await import("./command-CANun0m0.js");
|
|
937
969
|
return reportCommand(values, filters, {
|
|
938
970
|
out: (s) => console.log(s),
|
|
939
971
|
err: (s) => console.error(dim(s)),
|
|
@@ -948,7 +980,7 @@ async function run(argv) {
|
|
|
948
980
|
}
|
|
949
981
|
if (command === "studio") {
|
|
950
982
|
const config = await loadConfig(configPath, "studio");
|
|
951
|
-
const { studioCommand } = await import("./command-
|
|
983
|
+
const { studioCommand } = await import("./command-Bh3yhN_b.js");
|
|
952
984
|
return studioCommand({
|
|
953
985
|
config,
|
|
954
986
|
flags: values,
|
|
@@ -959,7 +991,7 @@ async function run(argv) {
|
|
|
959
991
|
if (command === "mcp") {
|
|
960
992
|
if (!values.http) console.log = console.info = console.debug = console.error;
|
|
961
993
|
const config = await loadConfig(configPath, "mcp");
|
|
962
|
-
const { mcpCommand } = await import("./command-
|
|
994
|
+
const { mcpCommand } = await import("./command-D_kEnYcX.js");
|
|
963
995
|
return mcpCommand({
|
|
964
996
|
config,
|
|
965
997
|
flags: values,
|
|
@@ -968,7 +1000,7 @@ async function run(argv) {
|
|
|
968
1000
|
}
|
|
969
1001
|
if (command in HISTORY_COMMANDS) {
|
|
970
1002
|
const config = await loadConfig(configPath, command);
|
|
971
|
-
const commands = await import("./commands-
|
|
1003
|
+
const commands = await import("./commands-BKGzBMgb.js");
|
|
972
1004
|
const ctx = {
|
|
973
1005
|
config,
|
|
974
1006
|
flags: values,
|
|
@@ -981,7 +1013,7 @@ async function run(argv) {
|
|
|
981
1013
|
case "compare": return commands.compareCommand(ctx, filters);
|
|
982
1014
|
case "checkout": return commands.checkoutCommand(ctx, filters);
|
|
983
1015
|
case "query": {
|
|
984
|
-
const { queryCommand } = await import("./query-
|
|
1016
|
+
const { queryCommand } = await import("./query-D_1ARx5q.js");
|
|
985
1017
|
return queryCommand({
|
|
986
1018
|
...ctx,
|
|
987
1019
|
err: (s) => console.error(dim(s))
|
|
@@ -989,7 +1021,7 @@ async function run(argv) {
|
|
|
989
1021
|
}
|
|
990
1022
|
case "analyze": {
|
|
991
1023
|
loadEnvFiles(configPath);
|
|
992
|
-
const { analyzeCommand } = await import("./command-
|
|
1024
|
+
const { analyzeCommand } = await import("./command-CBaHukyl.js");
|
|
993
1025
|
return analyzeCommand({
|
|
994
1026
|
...ctx,
|
|
995
1027
|
err: (s) => console.error(dim(s))
|
|
@@ -1028,8 +1060,8 @@ async function cleanCommand(flags, configPath) {
|
|
|
1028
1060
|
const where = fromCwd(debugRoot(config.root)) || ".";
|
|
1029
1061
|
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}`);
|
|
1030
1062
|
if (flags.images) {
|
|
1031
|
-
const { dockerAvailable, pruneImages } = await import("./src-
|
|
1032
|
-
const { requireDocker } = await import("./providers-
|
|
1063
|
+
const { dockerAvailable, pruneImages } = await import("./src-D9fSTxlc.js");
|
|
1064
|
+
const { requireDocker } = await import("./providers-CTBYvMxu.js");
|
|
1033
1065
|
const engines = [];
|
|
1034
1066
|
for (const engine of ["docker", "podman"]) if (await dockerAvailable(engine)) engines.push(engine);
|
|
1035
1067
|
if (!engines.length) await requireDocker();
|
|
@@ -1050,7 +1082,7 @@ function verbosityOf(flags) {
|
|
|
1050
1082
|
* does. Needs a config, as `reeval run` does: there is no default image.
|
|
1051
1083
|
*/
|
|
1052
1084
|
async function imageBuildCommand(flags, configPath, filters) {
|
|
1053
|
-
const { buildImages, imagePlanLines, imageTargets, plannedImageUses } = await import("./images-
|
|
1085
|
+
const { buildImages, imagePlanLines, imageTargets, plannedImageUses } = await import("./images-m784ueGK.js");
|
|
1054
1086
|
const { runId, stagingDir, config, runs, tags, concurrency, profile } = await startRun(await prepareRun({
|
|
1055
1087
|
...flags,
|
|
1056
1088
|
"dry-run": true
|
|
@@ -1110,7 +1142,7 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1110
1142
|
if (githubOut) await appendFile(githubOut, `run-id=${ctx.runId}\n`).catch(() => {});
|
|
1111
1143
|
const stepStart = process.env.GITHUB_STEP_SUMMARY;
|
|
1112
1144
|
if (stepStart) await appendFile(stepStart, `run ${ctx.runId}\n`).catch(() => {});
|
|
1113
|
-
const { engineVersions } = await import("./node-
|
|
1145
|
+
const { engineVersions } = await import("./node-CGZYh4Fj.js");
|
|
1114
1146
|
const renderer = createRenderer({
|
|
1115
1147
|
out: setup.json ? setup.dryRun ? { write: () => true } : process.stderr : process.stdout,
|
|
1116
1148
|
output: setup.output,
|
|
@@ -1128,27 +1160,13 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1128
1160
|
});
|
|
1129
1161
|
throw error;
|
|
1130
1162
|
}
|
|
1131
|
-
const { engineRun, plan, sandboxVersions, budgetReached, live,
|
|
1163
|
+
const { engineRun, plan, sandboxVersions, budgetReached, live, questions } = executed;
|
|
1132
1164
|
invocation.unhandledErrors = engineRun.unhandledErrors;
|
|
1133
1165
|
const engines = [...new Set(plan?.sandboxes.flatMap((s) => s.kind === "docker" ? [s.engine ?? "docker"] : []))];
|
|
1134
1166
|
if ((interrupted || engineRun.cancelled) && engines.length) {
|
|
1135
|
-
const { removeRunContainers } = await import("./docker-
|
|
1167
|
+
const { removeRunContainers } = await import("./docker-Dac6Zalz.js");
|
|
1136
1168
|
await removeRunContainers(ctx.runId, engines);
|
|
1137
1169
|
}
|
|
1138
|
-
if (notes) {
|
|
1139
|
-
const cancelled = interrupted || engineRun.cancelled;
|
|
1140
|
-
const written = await notes.finish(cancelled);
|
|
1141
|
-
if (!cancelled && written.length) {
|
|
1142
|
-
const { notesLine } = await import("./agent-D483ru7D.js");
|
|
1143
|
-
const text = notesLine(ctx.config.root, ctx.runId, written);
|
|
1144
|
-
renderer.onEvent({
|
|
1145
|
-
type: "notice",
|
|
1146
|
-
at: Date.now(),
|
|
1147
|
-
level: "info",
|
|
1148
|
-
text
|
|
1149
|
-
});
|
|
1150
|
-
}
|
|
1151
|
-
}
|
|
1152
1170
|
if (engineRun.stopped || !plan) {
|
|
1153
1171
|
live?.remove();
|
|
1154
1172
|
renderer.close();
|
|
@@ -1156,8 +1174,8 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1156
1174
|
}
|
|
1157
1175
|
const stopped = interrupted || engineRun.cancelled;
|
|
1158
1176
|
const answers = questions && !stopped ? await questions.settle() : void 0;
|
|
1159
|
-
const { lockfiles } = await import("./state-
|
|
1160
|
-
const { writeScratchRun } = await import("./results-
|
|
1177
|
+
const { lockfiles } = await import("./state-BGWGAwdo.js");
|
|
1178
|
+
const { writeScratchRun } = await import("./results-D-naai_Q.js");
|
|
1161
1179
|
const run = await writeScratchRun({
|
|
1162
1180
|
ctx,
|
|
1163
1181
|
author: ctx.author,
|
|
@@ -1181,17 +1199,56 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1181
1199
|
...answers?.size ? { answers } : {}
|
|
1182
1200
|
}, () => live?.stop());
|
|
1183
1201
|
const { record } = run;
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1202
|
+
const outcome = runOutcome(record);
|
|
1203
|
+
const code = stopped ? stopCode : outcome === "fail" ? EXIT.failed : outcome === "infra_error" ? EXIT.infra : EXIT.ok;
|
|
1204
|
+
let insights = run.insights;
|
|
1205
|
+
let insightLines = [];
|
|
1206
|
+
const { runInsights, wantsInsights } = await import("./run-Bel7Vde4.js");
|
|
1207
|
+
const wanted = !stopped && wantsInsights(ctx.config, !flags["no-insights"]);
|
|
1208
|
+
if (wanted && interrupted) insightLines = [`insights skipped (${stopCode === EXIT.terminated ? "SIGTERM" : "Ctrl-C"}): reeval analyze ${record.runId} --insights to write them`];
|
|
1209
|
+
else if (wanted) {
|
|
1210
|
+
const { scratchDir } = await import("./files-CtjEXWXm.js");
|
|
1211
|
+
const stop = new AbortController();
|
|
1212
|
+
let stopSignal = "SIGINT";
|
|
1213
|
+
onInsightsSignal = (signal) => {
|
|
1214
|
+
if (stop.signal.aborted) {
|
|
1215
|
+
renderer.close();
|
|
1216
|
+
process.exit(code);
|
|
1217
|
+
}
|
|
1218
|
+
stopSignal = signal;
|
|
1219
|
+
stop.abort(/* @__PURE__ */ new Error(signal === "SIGTERM" ? "SIGTERM" : "Ctrl-C"));
|
|
1220
|
+
};
|
|
1221
|
+
try {
|
|
1222
|
+
const done = await runInsights({
|
|
1223
|
+
config: ctx.config,
|
|
1224
|
+
record,
|
|
1225
|
+
runDir: run.artifactDir ?? join(scratchDir(ctx.config.root), record.runId),
|
|
1226
|
+
remarks: run.insights,
|
|
1227
|
+
verbose: (ctx.verbosity ?? 0) > 0,
|
|
1228
|
+
signal: stop.signal,
|
|
1229
|
+
stopSignal: () => stopSignal,
|
|
1230
|
+
onStart: (text) => {
|
|
1231
|
+
renderer.onEvent({
|
|
1232
|
+
type: "notice",
|
|
1233
|
+
at: Date.now(),
|
|
1234
|
+
level: "info",
|
|
1235
|
+
text
|
|
1236
|
+
});
|
|
1237
|
+
},
|
|
1238
|
+
onProgress: (n, total) => {
|
|
1239
|
+
renderer.onEvent({
|
|
1240
|
+
type: "insights-progress",
|
|
1241
|
+
at: Date.now(),
|
|
1242
|
+
done: n,
|
|
1243
|
+
total
|
|
1244
|
+
});
|
|
1245
|
+
}
|
|
1246
|
+
});
|
|
1247
|
+
insights = done.insights ?? insights;
|
|
1248
|
+
insightLines = done.lines;
|
|
1249
|
+
} finally {
|
|
1250
|
+
onInsightsSignal = null;
|
|
1251
|
+
}
|
|
1195
1252
|
}
|
|
1196
1253
|
const { pruneDebug } = await import("./files-BAt0i00X.js");
|
|
1197
1254
|
await pruneDebug(ctx.config.root, ctx.config.debug.keep).catch(() => {});
|
|
@@ -1202,8 +1259,9 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1202
1259
|
record,
|
|
1203
1260
|
summaryPath: fromCwd(summary),
|
|
1204
1261
|
results: engineRun.evals,
|
|
1205
|
-
|
|
1206
|
-
|
|
1262
|
+
hint: !hasAnalysisModel(ctx.config),
|
|
1263
|
+
insights,
|
|
1264
|
+
insightLines
|
|
1207
1265
|
});
|
|
1208
1266
|
renderer.close();
|
|
1209
1267
|
const stepSummary = process.env.GITHUB_STEP_SUMMARY;
|
|
@@ -1211,7 +1269,7 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1211
1269
|
const { config } = ctx;
|
|
1212
1270
|
const mode = setup.record;
|
|
1213
1271
|
if ((flags.record || mode === "always" || mode === "ci" && inCI()) && record.status !== "interrupted") {
|
|
1214
|
-
const { record: recordCmd } = await import("./commands-
|
|
1272
|
+
const { record: recordCmd } = await import("./commands-BKGzBMgb.js");
|
|
1215
1273
|
const allow = record.status === "budget" ? { "allow-incomplete": true } : {};
|
|
1216
1274
|
const line = await recordCmd(config, record.runId, {
|
|
1217
1275
|
...flags,
|
|
@@ -1221,13 +1279,10 @@ async function runCommand(flags, configPath, filters) {
|
|
|
1221
1279
|
else console.log(line);
|
|
1222
1280
|
}
|
|
1223
1281
|
if (setup.json) {
|
|
1224
|
-
const { suiteResult } = await import("./suite-
|
|
1282
|
+
const { suiteResult } = await import("./suite-mn9g4veR.js");
|
|
1225
1283
|
process.stdout.write(`${JSON.stringify(suiteResult(record), null, 2)}\n`);
|
|
1226
1284
|
}
|
|
1227
|
-
|
|
1228
|
-
if (engineRun.unhandledErrors.length > 0) return EXIT.failed;
|
|
1229
|
-
const outcome = runOutcome(record);
|
|
1230
|
-
return outcome === "fail" ? EXIT.failed : outcome === "infra_error" ? EXIT.infra : EXIT.ok;
|
|
1285
|
+
return code;
|
|
1231
1286
|
}
|
|
1232
1287
|
/** Everything that can fail before the evals are collected: output mode, config, profile, flags. */
|
|
1233
1288
|
async function prepareRun(flags, configPath) {
|
|
@@ -1253,11 +1308,11 @@ async function prepareRun(flags, configPath) {
|
|
|
1253
1308
|
runs = Number(flags.runs);
|
|
1254
1309
|
if (!(Number.isInteger(runs) && runs >= 1)) throw new UsageError(`--runs must be a whole number of at least 1 (got ${flags.runs})`);
|
|
1255
1310
|
}
|
|
1256
|
-
const sandboxes = [environmentSandbox(config.environment, config.sandbox), ...profile
|
|
1311
|
+
const sandboxes = [environmentSandbox(config.environment, config.sandbox), ...profile ? [profileSandbox(config, profile.defaults)] : []];
|
|
1257
1312
|
const concurrency = await resolveConcurrency(config, flags.concurrency, async () => {
|
|
1258
1313
|
const container = sandboxes.find((s) => s.kind === "docker");
|
|
1259
1314
|
if (!container) return hostCapacity();
|
|
1260
|
-
const { dockerCapacity } = await import("./src-
|
|
1315
|
+
const { dockerCapacity } = await import("./src-D9fSTxlc.js");
|
|
1261
1316
|
return await dockerCapacity(container.engine) ?? hostCapacity();
|
|
1262
1317
|
});
|
|
1263
1318
|
return {
|
|
@@ -1272,6 +1327,8 @@ async function prepareRun(flags, configPath) {
|
|
|
1272
1327
|
dryRun: !!flags["dry-run"],
|
|
1273
1328
|
json: !!flags.json,
|
|
1274
1329
|
force: !!flags.force,
|
|
1330
|
+
/** `--no-insights` turns them off for this run. */
|
|
1331
|
+
insights: !flags["no-insights"],
|
|
1275
1332
|
verbosity: verbosityOf(flags),
|
|
1276
1333
|
configFile: configLabel(path),
|
|
1277
1334
|
/** Named in the plan line when the project root isn't the current directory. */
|
|
@@ -1284,11 +1341,11 @@ async function prepareRun(flags, configPath) {
|
|
|
1284
1341
|
async function startRun({ config, profile, runs, tags, concurrency, verbosity, configFile, resume, dryRun }) {
|
|
1285
1342
|
const startedAt = /* @__PURE__ */ new Date();
|
|
1286
1343
|
const git = await gitInfo(config.root, [config.history.dir]);
|
|
1287
|
-
const { worktreePatch } = await import("./state-
|
|
1344
|
+
const { worktreePatch } = await import("./state-BGWGAwdo.js");
|
|
1288
1345
|
const patch = git?.dirty ? await worktreePatch(config.root, [config.history.dir]) : null;
|
|
1289
1346
|
const who = await author(config.root);
|
|
1290
|
-
const { stagingDir, sweepStaging } = await import("./results-
|
|
1291
|
-
const { scratchDir } = await import("./files-
|
|
1347
|
+
const { stagingDir, sweepStaging } = await import("./results-D-naai_Q.js");
|
|
1348
|
+
const { scratchDir } = await import("./files-CtjEXWXm.js");
|
|
1292
1349
|
const scratch = scratchDir(config.root);
|
|
1293
1350
|
if (resume !== void 0) {
|
|
1294
1351
|
const target = await resolveResume(config.root, resume || void 0);
|
|
@@ -1299,7 +1356,7 @@ async function startRun({ config, profile, runs, tags, concurrency, verbosity, c
|
|
|
1299
1356
|
artifacts: target.previousArtifacts
|
|
1300
1357
|
} : await loadPrevious(stagingDir(config.root, target.runId));
|
|
1301
1358
|
if (!dryRun) try {
|
|
1302
|
-
const { removeRunContainers } = await import("./docker-
|
|
1359
|
+
const { removeRunContainers } = await import("./docker-Dac6Zalz.js");
|
|
1303
1360
|
await removeRunContainers(target.runId, ["docker", "podman"]);
|
|
1304
1361
|
} catch {}
|
|
1305
1362
|
return {
|
|
@@ -1370,8 +1427,8 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1370
1427
|
configFile,
|
|
1371
1428
|
completed: []
|
|
1372
1429
|
}));
|
|
1373
|
-
const { runEngine } = await import("./node-
|
|
1374
|
-
const { buildPlan, checkAttemptBudget, planDocument, planLine, planTable } = await import("./plan-
|
|
1430
|
+
const { runEngine } = await import("./node-CGZYh4Fj.js");
|
|
1431
|
+
const { buildPlan, checkAttemptBudget, planDocument, planInsights, planLine, planTable } = await import("./plan-CZYgXnZh.js");
|
|
1375
1432
|
let plan;
|
|
1376
1433
|
let sandboxVersions = { images: [] };
|
|
1377
1434
|
let preflightStop;
|
|
@@ -1379,7 +1436,6 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1379
1436
|
let budgetTimer;
|
|
1380
1437
|
let toRun = [];
|
|
1381
1438
|
let live;
|
|
1382
|
-
let notes;
|
|
1383
1439
|
let questions;
|
|
1384
1440
|
const onPlan = async ({ planned, excluded, matched, unmatched }) => {
|
|
1385
1441
|
if (unmatched.length) throw unmatchedFilter(config, unmatched);
|
|
@@ -1398,7 +1454,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1398
1454
|
} : p);
|
|
1399
1455
|
toRun = skipped;
|
|
1400
1456
|
for (const p of skipped) for (const name of p.attempt.secretVars) registerSecret(process.env[name]);
|
|
1401
|
-
const models = skipped.some((p) => !p.attempt.plan.skip && p.attempt.plan.questions?.length) ? await import("./model-
|
|
1457
|
+
const models = skipped.some((p) => !p.attempt.plan.skip && p.attempt.plan.questions?.length) ? await import("./model-B8H3gL69.js") : void 0;
|
|
1402
1458
|
plan = await buildPlan({
|
|
1403
1459
|
planned: skipped,
|
|
1404
1460
|
profile,
|
|
@@ -1406,19 +1462,26 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1406
1462
|
concurrency,
|
|
1407
1463
|
root: config.root,
|
|
1408
1464
|
historyDir: config.history.dir,
|
|
1409
|
-
questionModel: models?.questionModelLabel(config) ?? null
|
|
1465
|
+
questionModel: models?.questionModelLabel(config) ?? null,
|
|
1466
|
+
insights: await planInsights(config, setup.insights)
|
|
1410
1467
|
});
|
|
1411
1468
|
plan.runId = runId;
|
|
1469
|
+
if (plan.insights) {
|
|
1470
|
+
const { analysisKeyProblem } = await import("./model-B8H3gL69.js");
|
|
1471
|
+
const problem = analysisKeyProblem(config);
|
|
1472
|
+
if (problem) plan.warnings.push(`insights will be skipped: ${problem}`);
|
|
1473
|
+
}
|
|
1412
1474
|
if (completed.size) plan.resume = {
|
|
1413
1475
|
runId,
|
|
1414
1476
|
completed: completed.size
|
|
1415
1477
|
};
|
|
1416
1478
|
run.completed = [...completed];
|
|
1417
|
-
const { imageStages, imageTargets } = await import("./images-
|
|
1479
|
+
const { imageStages, imageTargets } = await import("./images-m784ueGK.js");
|
|
1418
1480
|
const targets = imageTargets(skipped.filter((p) => !p.attempt.plan.skip).map((p) => ({
|
|
1419
1481
|
id: p.id,
|
|
1420
1482
|
harness: p.attempt.harness,
|
|
1421
|
-
sandbox: p.attempt.sandbox
|
|
1483
|
+
sandbox: p.attempt.sandbox,
|
|
1484
|
+
plugins: p.attempt.pluginBuilds ?? []
|
|
1422
1485
|
})));
|
|
1423
1486
|
if (setup.json && setup.dryRun) {
|
|
1424
1487
|
const images = await Promise.all(targets.map(async (t) => ({
|
|
@@ -1435,8 +1498,8 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1435
1498
|
if (setup.dryRun) {
|
|
1436
1499
|
const todos = excluded.filter((e) => e.mode === "todo").map((e) => e.id);
|
|
1437
1500
|
lines.push(...planTable(plan, todos));
|
|
1438
|
-
const { imageStatusLines } = await import("./images-
|
|
1439
|
-
const { dockerAvailable, engineSpec } = await import("./src-
|
|
1501
|
+
const { imageStatusLines } = await import("./images-m784ueGK.js");
|
|
1502
|
+
const { dockerAvailable, engineSpec } = await import("./src-D9fSTxlc.js");
|
|
1440
1503
|
const engines = [...new Set(targets.map((t) => t.sandbox.engine ?? "docker"))];
|
|
1441
1504
|
const down = [];
|
|
1442
1505
|
for (const engine of engines) if (!await dockerAvailable(engine)) down.push(engine);
|
|
@@ -1446,6 +1509,10 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1446
1509
|
lines.push(`images not checked: ${names} ${down.length === 1 ? "is" : "are"} not running`);
|
|
1447
1510
|
}
|
|
1448
1511
|
}
|
|
1512
|
+
if (setup.dryRun && plan.insights) {
|
|
1513
|
+
const { formatTokens } = await import("./usage-BDo2q_yu.js");
|
|
1514
|
+
lines.push(`insights ${plan.insights.model} · up to ${formatTokens(plan.insights.maxTokens)} tokens`);
|
|
1515
|
+
}
|
|
1449
1516
|
lines.push(...plan.warnings.map((w) => `warning: ${w}`));
|
|
1450
1517
|
lines.push(...plan.hints.map((h) => `hint: ${h}`));
|
|
1451
1518
|
renderer.onEvent({
|
|
@@ -1456,8 +1523,6 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1456
1523
|
});
|
|
1457
1524
|
if (setup.dryRun) return false;
|
|
1458
1525
|
checkAttemptBudget(plan, setup.force, config.file);
|
|
1459
|
-
const analysis = config.analysis.agent ? await import("./model-CXhrziBe.js") : null;
|
|
1460
|
-
analysis?.analysisModelName(config, "agent");
|
|
1461
1526
|
const questionModels = /* @__PURE__ */ new Set();
|
|
1462
1527
|
const asked = [];
|
|
1463
1528
|
for (const row of plan.rows) {
|
|
@@ -1480,31 +1545,15 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1480
1545
|
profile,
|
|
1481
1546
|
questionModels: [...questionModels]
|
|
1482
1547
|
});
|
|
1483
|
-
if (missing.length) throw new UsageError(`Missing credentials: ${missing.join("
|
|
1548
|
+
if (missing.length) throw new UsageError(`Missing credentials: ${missing.join("; ")}. Set them in the environment or .env.local.`);
|
|
1484
1549
|
const malformed = malformedCredentials(config, process.env, {
|
|
1485
1550
|
harnesses: plan.harnessDescriptors,
|
|
1486
1551
|
profile,
|
|
1487
1552
|
questionModels: [...questionModels]
|
|
1488
1553
|
});
|
|
1489
1554
|
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.`);
|
|
1490
|
-
if (analysis) {
|
|
1491
|
-
const { startNotes } = await import("./agent-D483ru7D.js");
|
|
1492
|
-
notes = startNotes({
|
|
1493
|
-
config,
|
|
1494
|
-
model: analysis.resolveAnalysisModel(config, "agent"),
|
|
1495
|
-
runId,
|
|
1496
|
-
stagingDir,
|
|
1497
|
-
planned: skipped,
|
|
1498
|
-
warn: (text) => renderer.onEvent({
|
|
1499
|
-
type: "notice",
|
|
1500
|
-
at: Date.now(),
|
|
1501
|
-
level: "warn",
|
|
1502
|
-
text
|
|
1503
|
-
})
|
|
1504
|
-
});
|
|
1505
|
-
}
|
|
1506
1555
|
if (asked.length) {
|
|
1507
|
-
const { questionRunner } = await import("./questions-
|
|
1556
|
+
const { questionRunner } = await import("./questions-KENpWnfV.js");
|
|
1508
1557
|
questions = questionRunner({
|
|
1509
1558
|
evals: asked,
|
|
1510
1559
|
stagingDir,
|
|
@@ -1521,7 +1570,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1521
1570
|
}
|
|
1522
1571
|
});
|
|
1523
1572
|
}
|
|
1524
|
-
const { prepareWorkspaces, workspaceKey } = await import("./workspace-
|
|
1573
|
+
const { prepareWorkspaces, sameTreeArms, workspaceKey } = await import("./workspace-B1eGO46M.js");
|
|
1525
1574
|
const live = skipped.filter((p) => !p.attempt.plan.skip);
|
|
1526
1575
|
const outcomes = await prepareWorkspaces(live.flatMap(({ attempt: a }) => a.workspace ? [{
|
|
1527
1576
|
workspace: a.workspace,
|
|
@@ -1551,6 +1600,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1551
1600
|
label: `workspace ${o.label}`,
|
|
1552
1601
|
sandbox: user.attempt.sandbox,
|
|
1553
1602
|
harness: user.attempt.harness,
|
|
1603
|
+
plugins: [],
|
|
1554
1604
|
setBy: o.setBy,
|
|
1555
1605
|
runWide: false
|
|
1556
1606
|
};
|
|
@@ -1566,10 +1616,17 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1566
1616
|
}
|
|
1567
1617
|
});
|
|
1568
1618
|
}
|
|
1619
|
+
for (const text of sameTreeArms(live, outcomes)) renderer.onEvent({
|
|
1620
|
+
type: "notice",
|
|
1621
|
+
at: Date.now(),
|
|
1622
|
+
level: "warn",
|
|
1623
|
+
text
|
|
1624
|
+
});
|
|
1569
1625
|
try {
|
|
1570
1626
|
sandboxVersions = await preflight(skipped.filter((p) => !p.attempt.plan.skip).map((p) => ({
|
|
1571
1627
|
harness: p.attempt.harness,
|
|
1572
1628
|
sandbox: p.attempt.sandbox,
|
|
1629
|
+
plugins: p.attempt.pluginBuilds ?? [],
|
|
1573
1630
|
setBy: p.attempt.setBy
|
|
1574
1631
|
})), {
|
|
1575
1632
|
root: config.root,
|
|
@@ -1623,7 +1680,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1623
1680
|
version,
|
|
1624
1681
|
files,
|
|
1625
1682
|
harness: (plan?.harnesses ?? config.harness.map(harnessId)).join(", "),
|
|
1626
|
-
sandbox:
|
|
1683
|
+
sandbox: plannedSandboxes(plan?.sandboxes ?? [], profileSandbox(config, profile?.defaults)),
|
|
1627
1684
|
concurrency,
|
|
1628
1685
|
runId
|
|
1629
1686
|
});
|
|
@@ -1635,7 +1692,6 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1635
1692
|
}
|
|
1636
1693
|
if (e.type === "eval-end") {
|
|
1637
1694
|
live?.end(e.result);
|
|
1638
|
-
notes?.onResult(e.result);
|
|
1639
1695
|
questions?.onEvalEnd(e.result);
|
|
1640
1696
|
}
|
|
1641
1697
|
if (interrupted && e.type === "eval-end" && e.result.state === "skipped") return;
|
|
@@ -1643,6 +1699,7 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1643
1699
|
},
|
|
1644
1700
|
onCancellable: (cancel) => {
|
|
1645
1701
|
const onSignal = (signal) => {
|
|
1702
|
+
if (onInsightsSignal) return onInsightsSignal(signal === "SIGTERM" ? "SIGTERM" : "SIGINT");
|
|
1646
1703
|
stopCode = signal === "SIGTERM" ? EXIT.terminated : EXIT.interrupted;
|
|
1647
1704
|
if (interrupted) {
|
|
1648
1705
|
renderer.close();
|
|
@@ -1669,9 +1726,9 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1669
1726
|
throw error;
|
|
1670
1727
|
} finally {
|
|
1671
1728
|
clearTimeout(budgetTimer);
|
|
1672
|
-
const { removePrepared } = await import("./preflight-
|
|
1729
|
+
const { removePrepared } = await import("./preflight-BQlPTHVu.js");
|
|
1673
1730
|
removePrepared(config.root, runId);
|
|
1674
|
-
const { removePreparedWorkspaces } = await import("./workspace-
|
|
1731
|
+
const { removePreparedWorkspaces } = await import("./workspace-B1eGO46M.js");
|
|
1675
1732
|
removePreparedWorkspaces(config.root, runId);
|
|
1676
1733
|
}
|
|
1677
1734
|
if (preflightStop) throw preflightStop;
|
|
@@ -1684,7 +1741,6 @@ async function executeRun(ctx, setup, filters, renderer) {
|
|
|
1684
1741
|
sandboxVersions,
|
|
1685
1742
|
budgetReached: () => reached,
|
|
1686
1743
|
live,
|
|
1687
|
-
notes,
|
|
1688
1744
|
questions
|
|
1689
1745
|
};
|
|
1690
1746
|
}
|
|
@@ -1754,4 +1810,4 @@ run(process.argv.slice(2)).finally(() => {
|
|
|
1754
1810
|
//#endregion
|
|
1755
1811
|
export {};
|
|
1756
1812
|
|
|
1757
|
-
//# sourceMappingURL=cli-
|
|
1813
|
+
//# sourceMappingURL=cli-BCE1xlm4.js.map
|