reeval 0.3.0 → 0.5.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/THIRD_PARTY_NOTICES.md +5 -5
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +36 -36
- package/dist/{agent-DcQAvomp.js → agent-BDPZxZo6.js} +5 -5
- package/dist/{agent-DcQAvomp.js.map → agent-BDPZxZo6.js.map} +1 -1
- package/dist/{agent-BYy0Tc6P.js → agent-Dcnbp_qS.js} +5 -5
- package/dist/{agent-BYy0Tc6P.js.map → agent-Dcnbp_qS.js.map} +1 -1
- package/dist/{analysis-CxSCt1YY.js → analysis-1fqCRQJ5.js} +4 -4
- package/dist/{analysis-CxSCt1YY.js.map → analysis-1fqCRQJ5.js.map} +1 -1
- package/dist/{assemble-h8s0hzTQ.js → assemble-Br5xWfoJ.js} +10 -10
- package/dist/assemble-Br5xWfoJ.js.map +1 -0
- package/dist/assemble-BriNtYfK.js +2 -0
- package/dist/{attempt-BdRQ9jKX.js → attempt-CGPV3BZY.js} +2 -2
- package/dist/{attempt-BdRQ9jKX.js.map → attempt-CGPV3BZY.js.map} +1 -1
- package/dist/bridge/index.mjs +1620 -1793
- package/dist/bridge/package.json +2 -2
- package/dist/bridge/pnpm-lock.yaml +75 -75
- package/dist/bridge/pnpm-workspace.yaml +1 -1
- package/dist/{cli-DemDdg8J.js → cli-Ben0kbJt.js} +61 -55
- package/dist/cli-Ben0kbJt.js.map +1 -0
- package/dist/{cli-spec-BxLPgNN-.js → cli-spec-DUeyuSIQ.js} +4 -3
- package/dist/cli-spec-DUeyuSIQ.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{command-y91-aNhu.js → command-BZXB7JbK.js} +26 -18
- package/dist/command-BZXB7JbK.js.map +1 -0
- package/dist/{command-pHfluVCF.js → command-CmFpqrTW.js} +8 -8
- package/dist/{command-pHfluVCF.js.map → command-CmFpqrTW.js.map} +1 -1
- package/dist/{command-CxwnRrTs.js → command-DpR1iz_b.js} +14 -13
- package/dist/command-DpR1iz_b.js.map +1 -0
- package/dist/command-pIntI3Iq.js +2 -0
- package/dist/{command-PEbIzJj3.js → command-zD7IIwQF.js} +14 -14
- package/dist/{command-PEbIzJj3.js.map → command-zD7IIwQF.js.map} +1 -1
- package/dist/{commands-De-SxIgY.js → commands-8xIhRt-7.js} +1 -1
- package/dist/{commands-DhCuEa6z.js → commands-CkfvCaoN.js} +31 -13
- package/dist/commands-CkfvCaoN.js.map +1 -0
- package/dist/{config-CqSLZkwx.js → config-kbc7kZz3.js} +10 -7
- package/dist/{config-CqSLZkwx.js.map → config-kbc7kZz3.js.map} +1 -1
- package/dist/db-BgmkqBzz.js +2 -0
- package/dist/{db-DA4LBwi_.js → db-DYPkngEs.js} +5 -5
- package/dist/db-DYPkngEs.js.map +1 -0
- package/dist/{dist-BSoys6pg.js → dist-D6co5uaT.js} +106 -54
- package/dist/dist-D6co5uaT.js.map +1 -0
- package/dist/{docker-DMRwn7yh.js → docker-BLqzfYMT.js} +3 -3
- package/dist/{docker-DMRwn7yh.js.map → docker-BLqzfYMT.js.map} +1 -1
- package/dist/{docker-DwG9f76x.js → docker-C4H1eSjN.js} +5 -5
- package/dist/{docker-DwG9f76x.js.map → docker-C4H1eSjN.js.map} +1 -1
- package/dist/{docker-jf52ARP7.js → docker-CJkJ4-_n.js} +1 -1
- package/dist/{doctor-DhvVbNKv.js → doctor-X2ba-e1Y.js} +80 -16
- package/dist/doctor-X2ba-e1Y.js.map +1 -0
- package/dist/{egress-D9vJCATi.js → egress-CRQ7wCj8.js} +11 -11
- package/dist/{egress-D9vJCATi.js.map → egress-CRQ7wCj8.js.map} +1 -1
- package/dist/{environment-ByCF9s3n.js → environment-D3sZUybY.js} +154 -17
- package/dist/environment-D3sZUybY.js.map +1 -0
- package/dist/errors-yDAEwmZo.js +15 -0
- package/dist/errors-yDAEwmZo.js.map +1 -0
- package/dist/files-BTF2wg0i.js +2 -0
- package/dist/{files-CfsIRN7n.js → files-CO4Y4eRS.js} +3 -3
- package/dist/{files-CfsIRN7n.js.map → files-CO4Y4eRS.js.map} +1 -1
- package/dist/files-CspMl_3t.js +2 -0
- package/dist/{files-DHBBIYx_.js → files-DiGDoSSw.js} +196 -12
- package/dist/files-DiGDoSSw.js.map +1 -0
- package/dist/{git-oX92_Jh-.js → git-BZlPo1Rh.js} +3 -3
- package/dist/{git-oX92_Jh-.js.map → git-BZlPo1Rh.js.map} +1 -1
- package/dist/{harness-BbMShUC-.js → harness-8-dnGNgT.js} +2 -2
- package/dist/{harness-BbMShUC-.js.map → harness-8-dnGNgT.js.map} +1 -1
- package/dist/harness.d.ts +1 -1
- package/dist/harness.js +1 -1
- package/dist/{header-sPQ9Lq2S.js → header-CTTSGpy-.js} +2 -2
- package/dist/{header-sPQ9Lq2S.js.map → header-CTTSGpy-.js.map} +1 -1
- package/dist/{images-C9Y4ijbG.js → images-CPfNRSuK.js} +6 -6
- package/dist/{images-C9Y4ijbG.js.map → images-CPfNRSuK.js.map} +1 -1
- package/dist/index.d.ts +15 -4
- package/dist/index.js +186 -71
- package/dist/index.js.map +1 -1
- package/dist/init-C5Kp2CVo.js +2 -0
- package/dist/{init-x55uF8a4.js → init-CquBKr3J.js} +6 -8
- package/dist/init-CquBKr3J.js.map +1 -0
- package/dist/{invocations-DSMfs3Dx.js → invocations-DHC946b-.js} +3 -3
- package/dist/{invocations-DSMfs3Dx.js.map → invocations-DHC946b-.js.map} +1 -1
- package/dist/{judge-D8Uf4dA9.js → judge-7WjNdU9z.js} +20 -7
- package/dist/judge-7WjNdU9z.js.map +1 -0
- package/dist/judge.d.ts +7 -4
- package/dist/judge.js +5 -2
- package/dist/judge.js.map +1 -1
- package/dist/{matchers-D51lM8dO.js → matchers-Bp-OH1vj.js} +7 -2
- package/dist/{matchers-D51lM8dO.js.map → matchers-Bp-OH1vj.js.map} +1 -1
- package/dist/{model-DQQQ3q_n.js → model-BAB6ScG7.js} +1 -1
- package/dist/model-Bip8dx2I.js +2 -0
- package/dist/{model-BdO79gWz.js → model-Bv8uUZ07.js} +3 -3
- package/dist/{model-BdO79gWz.js.map → model-Bv8uUZ07.js.map} +1 -1
- package/dist/{model-GFM8iOzM.js → model-CwxodD2e.js} +7 -7
- package/dist/model-CwxodD2e.js.map +1 -0
- package/dist/{model-ORtLm2UB.js → model-DGafiJdy.js} +118 -6
- package/dist/model-DGafiJdy.js.map +1 -0
- package/dist/{node-OXPxBD2N.js → node-B72WWfgg.js} +3 -2
- package/dist/{node-OXPxBD2N.js.map → node-B72WWfgg.js.map} +1 -1
- package/dist/{options-CIutEeuy.js → options-BBLwgaSz.js} +158 -78
- package/dist/options-BBLwgaSz.js.map +1 -0
- package/dist/patch-CzT5wTZr.js +118 -0
- package/dist/patch-CzT5wTZr.js.map +1 -0
- package/dist/{plan-DcHTdiJN.js → plan-4AO_VH20.js} +5 -4
- package/dist/{plan-DcHTdiJN.js.map → plan-4AO_VH20.js.map} +1 -1
- package/dist/{preflight-BQyUr_hW.js → preflight-B8XgaXdX.js} +1 -1
- package/dist/{preflight-vISQIiF1.js → preflight-Cl__EL9Y.js} +3 -3
- package/dist/{preflight-vISQIiF1.js.map → preflight-Cl__EL9Y.js.map} +1 -1
- package/dist/{prepare-Ca0Nxd9b.js → prepare-BgzG6f6h.js} +2 -2
- package/dist/{prepare-BTeAiW9Q.js → prepare-jmZNuhe5.js} +5 -5
- package/dist/{prepare-BTeAiW9Q.js.map → prepare-jmZNuhe5.js.map} +1 -1
- package/dist/{provenance-D4vo7RF6.js → provenance-rP7Unzb4.js} +3 -3
- package/dist/{provenance-D4vo7RF6.js.map → provenance-rP7Unzb4.js.map} +1 -1
- package/dist/{providers-Bjgky1u8.js → providers-Cs0GAhfO.js} +4 -4
- package/dist/{providers-Bjgky1u8.js.map → providers-Cs0GAhfO.js.map} +1 -1
- package/dist/{providers-DfVMglqP.js → providers-Dh6hQDI6.js} +1 -1
- package/dist/{query-D2KaStTs.js → query-BOtU7Phq.js} +3 -3
- package/dist/{query-D2KaStTs.js.map → query-BOtU7Phq.js.map} +1 -1
- package/dist/query-BjqPXDPV.js +2 -0
- package/dist/{questions-CzXdVVsh.js → questions-nUB6aKz_.js} +5 -5
- package/dist/{questions-CzXdVVsh.js.map → questions-nUB6aKz_.js.map} +1 -1
- package/dist/{redact-C4fL_bZP.js → redact-DJ9JCShu.js} +99 -28
- package/dist/redact-DJ9JCShu.js.map +1 -0
- package/dist/{results-BI-zTqQy.js → results-EaWTGQtw.js} +4 -4
- package/dist/{results-BI-zTqQy.js.map → results-EaWTGQtw.js.map} +1 -1
- package/dist/{sandbox-Dd-4Bx6B.js → sandbox-DsY0Xa_L.js} +3 -3
- package/dist/{sandbox-Dd-4Bx6B.js.map → sandbox-DsY0Xa_L.js.map} +1 -1
- package/dist/sandbox.d.ts +1 -1
- package/dist/sandbox.js +1 -1
- package/dist/server-D62mXUew.js +2 -0
- package/dist/{server-C7t8WYCR.js → server-DFCcG4kE.js} +8 -8
- package/dist/{server-C7t8WYCR.js.map → server-DFCcG4kE.js.map} +1 -1
- package/dist/source-Cr87qm1N.js +2 -0
- package/dist/{source-fNUCWsCW.js → source-ybqIFzmB.js} +2 -2
- package/dist/{source-fNUCWsCW.js.map → source-ybqIFzmB.js.map} +1 -1
- package/dist/{src-CEQFcAJH.js → src-B3kHPyvg.js} +1 -1
- package/dist/src-Bq2wa7fE.js +3 -0
- package/dist/{src-D3eW1e7Y.js → src-CQXA5zkO.js} +17 -18
- package/dist/{src-D3eW1e7Y.js.map → src-CQXA5zkO.js.map} +1 -1
- package/dist/{src-C91RndLw.js → src-CQzUdIZj.js} +1 -1
- package/dist/src-CYBvNARj.js +3 -0
- package/dist/{src-DWk0e7ix.js → src-Czhg5ONv.js} +54 -58
- package/dist/src-Czhg5ONv.js.map +1 -0
- package/dist/src-D2H8Rz6M.js +4 -0
- package/dist/{src-B1OT_Zhf.js → src-DABrrexp.js} +50 -67
- package/dist/src-DABrrexp.js.map +1 -0
- package/dist/{src-BAiYD4eC.js → src-DVWhOfrD.js} +24 -4
- package/dist/src-DVWhOfrD.js.map +1 -0
- package/dist/{src-DTlmkpJe.js → src-DygwWk6l.js} +1 -1
- package/dist/src-OXjUr5ng.js +3 -0
- package/dist/{src-DfEAlC9s.js → src-Zqi4rheD.js} +4 -4
- package/dist/{src-DfEAlC9s.js.map → src-Zqi4rheD.js.map} +1 -1
- package/dist/state-BOeZS-Wa.js +2 -0
- package/dist/{state-g6ij_40j.js → state-CWs2X2x8.js} +12 -12
- package/dist/{state-g6ij_40j.js.map → state-CWs2X2x8.js.map} +1 -1
- package/dist/studio-app/assets/{index-DciOL7BI.js → index-BYZWo5gl.js} +9 -9
- package/dist/studio-app/index.html +1 -1
- package/dist/{summary-gawvEpNu.js → summary-78yLjokt.js} +5 -3
- package/dist/summary-78yLjokt.js.map +1 -0
- package/dist/{summary-DjbxgCDi.js → summary-CxHRN1zB.js} +6 -6
- package/dist/{summary-DjbxgCDi.js.map → summary-CxHRN1zB.js.map} +1 -1
- package/dist/{tools-B7SoW5kU.js → tools-DCuVntbR.js} +3 -3
- package/dist/{tools-B7SoW5kU.js.map → tools-DCuVntbR.js.map} +1 -1
- package/dist/{types-C5AEPr29.d.ts → types-BUWwRisO.d.ts} +105 -24
- package/dist/view/index.d.ts +45 -3
- package/dist/view/index.js +4 -4
- package/dist/views-BVu2pD9u.js +3 -0
- package/dist/{views-CHXQfSWQ.js → views-CZDDDj2F.js} +4 -4
- package/dist/{views-CHXQfSWQ.js.map → views-CZDDDj2F.js.map} +1 -1
- package/dist/{worker-entry-B6nuDpBX.js → worker-entry-DlriWSAs.js} +5 -5
- package/dist/{worker-entry-B6nuDpBX.js.map → worker-entry-DlriWSAs.js.map} +1 -1
- package/dist/{workspace-DXV77ZqW.js → workspace-BwKzynEj.js} +1 -1
- package/dist/{workspace-DUUfne8b.js → workspace-oBK63kWs.js} +5 -5
- package/dist/{workspace-DUUfne8b.js.map → workspace-oBK63kWs.js.map} +1 -1
- package/package.json +13 -12
- package/dist/assemble-BFsyMhb-.js +0 -2
- package/dist/assemble-h8s0hzTQ.js.map +0 -1
- package/dist/cli-DemDdg8J.js.map +0 -1
- package/dist/cli-spec-BxLPgNN-.js.map +0 -1
- package/dist/command-CxwnRrTs.js.map +0 -1
- package/dist/command-DhgZPhsY.js +0 -2
- package/dist/command-y91-aNhu.js.map +0 -1
- package/dist/commands-DhCuEa6z.js.map +0 -1
- package/dist/db-DA4LBwi_.js.map +0 -1
- package/dist/db-DDfq7Tx_.js +0 -2
- package/dist/dist-BSoys6pg.js.map +0 -1
- package/dist/doctor-DhvVbNKv.js.map +0 -1
- package/dist/environment-ByCF9s3n.js.map +0 -1
- package/dist/errors-CSxfJ4qu.js +0 -11
- package/dist/errors-CSxfJ4qu.js.map +0 -1
- package/dist/files-B16cQ6XX.js +0 -2
- package/dist/files-BC5Yqir-.js +0 -2
- package/dist/files-DHBBIYx_.js.map +0 -1
- package/dist/init-DPJv7OmX.js +0 -2
- package/dist/init-x55uF8a4.js.map +0 -1
- package/dist/judge-D8Uf4dA9.js.map +0 -1
- package/dist/model-CNoc8t2Y.js +0 -2
- package/dist/model-GFM8iOzM.js.map +0 -1
- package/dist/model-ORtLm2UB.js.map +0 -1
- package/dist/options-CIutEeuy.js.map +0 -1
- package/dist/patch-BkKje4cp.js +0 -69
- package/dist/patch-BkKje4cp.js.map +0 -1
- package/dist/query-CWkZnV62.js +0 -2
- package/dist/redact-C4fL_bZP.js.map +0 -1
- package/dist/server-BjbgFX28.js +0 -2
- package/dist/source-CLE8vMNa.js +0 -2
- package/dist/src-B1OT_Zhf.js.map +0 -1
- package/dist/src-BAiYD4eC.js.map +0 -1
- package/dist/src-CNp0srm9.js +0 -3
- package/dist/src-DJsBrqo6.js +0 -4
- package/dist/src-DWk0e7ix.js.map +0 -1
- package/dist/src-DgYURuJ6.js +0 -3
- package/dist/src-sSPmuaAc.js +0 -3
- package/dist/state-Bx-pH2ON.js +0 -2
- package/dist/summary-gawvEpNu.js.map +0 -1
- package/dist/views-DDei2LHa.js +0 -3
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { g as isAgentKind, i as plannedEgress, l as HARNESS_EXAMPLE, r as egressLabel } from "./egress-
|
|
4
|
-
import {
|
|
5
|
-
import { c as opencodeModelError } from "./harness-
|
|
1
|
+
import { n as UsageError } from "./errors-yDAEwmZo.js";
|
|
2
|
+
import { D as parseDuration, E as workspaceOf, S as sandboxOf, T as workspaceLabel, g as isMovingRef, i as applied, l as emptyEnvironment, m as isEnvironment, o as checkEgress, r as EMPTY_BASELINE, s as checkEnv, w as unbrokeredSecrets, x as plannedSecrets } from "./environment-D3sZUybY.js";
|
|
3
|
+
import { g as isAgentKind, i as plannedEgress, l as HARNESS_EXAMPLE, r as egressLabel } from "./egress-CRQ7wCj8.js";
|
|
4
|
+
import { a as checkModelString, i as badJudgeList } from "./judge-7WjNdU9z.js";
|
|
5
|
+
import { c as opencodeModelError } from "./harness-8-dnGNgT.js";
|
|
6
|
+
import { createHash } from "node:crypto";
|
|
6
7
|
//#region src/options.ts
|
|
7
8
|
const KNOWN = [
|
|
8
9
|
"harness",
|
|
@@ -60,10 +61,10 @@ const COMPARE_KEYS = [
|
|
|
60
61
|
"gate",
|
|
61
62
|
"minLift",
|
|
62
63
|
"harness",
|
|
63
|
-
"
|
|
64
|
+
"questions"
|
|
64
65
|
];
|
|
65
66
|
const QUESTION_KEYS = ["question", "model"];
|
|
66
|
-
const QUESTION_EXAMPLE = `
|
|
67
|
+
const QUESTION_EXAMPLE = `questions: ['Which handles state more cleanly?']`;
|
|
67
68
|
const ID = /^[A-Za-z0-9._:@+-]+$/;
|
|
68
69
|
const sanitize = (text) => (text.split("/").at(-1) ?? text).replace(/[^A-Za-z0-9._:@-]+/g, "-");
|
|
69
70
|
function harnessId(h) {
|
|
@@ -71,19 +72,27 @@ function harnessId(h) {
|
|
|
71
72
|
if (h.kind === "fake") return "fake";
|
|
72
73
|
return h.model ? `${h.kind}:${sanitize(h.model)}` : h.kind;
|
|
73
74
|
}
|
|
75
|
+
function installId(install) {
|
|
76
|
+
if (!install?.length) return "";
|
|
77
|
+
const key = JSON.stringify(install.map((step) => typeof step === "string" ? step : {
|
|
78
|
+
run: step.run,
|
|
79
|
+
timeout: step.timeout
|
|
80
|
+
}));
|
|
81
|
+
return `+${createHash("sha256").update(key).digest("hex").slice(0, 8)}`;
|
|
82
|
+
}
|
|
74
83
|
function sandboxId(s) {
|
|
75
84
|
if (s.id) return s.id;
|
|
76
85
|
if (s.kind === "fake") return "fake";
|
|
86
|
+
const install = s.kind === "docker" ? installId(s.install) : "";
|
|
77
87
|
if (s.dockerfile) {
|
|
78
88
|
const [file = "", dir = ""] = s.dockerfile.split(/[\\/]/).reverse();
|
|
79
|
-
return `docker:${sanitize(file === "Dockerfile" ? dir || file : file)}`;
|
|
89
|
+
return `docker:${sanitize(file === "Dockerfile" ? dir || file : file)}${install}`;
|
|
80
90
|
}
|
|
81
91
|
const image = s.image ?? s.from;
|
|
82
|
-
return image ? `docker:${sanitize(image)}` :
|
|
92
|
+
return image ? `docker:${sanitize(image)}${install}` : `docker${install}`;
|
|
83
93
|
}
|
|
84
94
|
const cellKey = (harness, environment, sandbox) => `${harness}/${environment}/${sandbox}`;
|
|
85
95
|
const isHarness = (v) => v?.kind === "fake" || isAgentKind(v?.kind);
|
|
86
|
-
const isSandbox = (v) => v?.kind === "docker" || v?.kind === "fake";
|
|
87
96
|
function checkMaxConcurrent(value, where) {
|
|
88
97
|
if (value === void 0 || Number.isInteger(value) && value >= 1) return;
|
|
89
98
|
throw new UsageError(`maxConcurrent must be a whole number of at least 1 (got ${String(value)}) for ${where}`);
|
|
@@ -101,34 +110,38 @@ const isEvaluationModel = (model) => model.startsWith("typesafe-ai/");
|
|
|
101
110
|
function checkQuestion(item, where) {
|
|
102
111
|
if (typeof item === "string") {
|
|
103
112
|
if (item.trim()) return item;
|
|
104
|
-
throw new UsageError(`compare.
|
|
113
|
+
throw new UsageError(`compare.questions in ${where} is an empty string. Ask something, e.g. ${QUESTION_EXAMPLE}.`);
|
|
105
114
|
}
|
|
106
|
-
if (typeof item !== "object" || item === null || Array.isArray(item)) throw new UsageError(`compare.
|
|
115
|
+
if (typeof item !== "object" || item === null || Array.isArray(item)) throw new UsageError(`compare.questions in ${where} takes strings or { question, model? } (got ${describe(item)}), e.g. ${QUESTION_EXAMPLE}.`);
|
|
107
116
|
const unknown = Object.keys(item).filter((k) => !QUESTION_KEYS.includes(k));
|
|
108
|
-
if (unknown.length) throw new UsageError(`compare.
|
|
117
|
+
if (unknown.length) throw new UsageError(`compare.questions in ${where} takes { question, model? } (got ${unknown.map((k) => `"${k}"`).join(", ")}).`);
|
|
109
118
|
const { question, model } = item;
|
|
110
|
-
if (typeof question !== "string" || !question.trim()) throw new UsageError(`compare.
|
|
119
|
+
if (typeof question !== "string" || !question.trim()) throw new UsageError(`compare.questions in ${where} has an entry without its question (got ${describe(question)}), e.g. { question: 'Which is cleaner?', model: 'google/gemini-3.8-flash' }.`);
|
|
111
120
|
if (model !== void 0) {
|
|
112
|
-
if (typeof model !== "string" || checkModelString(model)) throw new UsageError(`compare.
|
|
113
|
-
if (isEvaluationModel(model)) throw new UsageError(`compare.
|
|
121
|
+
if (typeof model !== "string" || checkModelString(model)) throw new UsageError(`compare.questions "${question}" in ${where}: model is a 'provider/model' string, e.g. 'google/gemini-3.8-flash' (got ${describe(model)})`);
|
|
122
|
+
if (isEvaluationModel(model)) throw new UsageError(`compare.questions "${question}" in ${where} names ${model}, an evaluation model: it scores yes/no questions and can't pick between two attempts. Use a language model, e.g. 'google/gemini-3.8-flash'.`);
|
|
114
123
|
}
|
|
115
124
|
return question;
|
|
116
125
|
}
|
|
117
126
|
function checkQuestions(value, where) {
|
|
118
|
-
|
|
119
|
-
|
|
127
|
+
if (!Array.isArray(value)) throw new UsageError(`compare.questions in ${where} is a list (got ${describe(value)}), e.g. ${QUESTION_EXAMPLE}.`);
|
|
128
|
+
const list = value;
|
|
129
|
+
if (list.length === 0) throw new UsageError(`compare.questions in ${where} is an empty list. Ask at least one, e.g. ${QUESTION_EXAMPLE}, or leave questions out.`);
|
|
120
130
|
const texts = list.map((item) => checkQuestion(item, where));
|
|
121
131
|
const dupe = texts.find((t, i) => texts.indexOf(t) !== i);
|
|
122
|
-
if (dupe) throw new UsageError(`compare.
|
|
132
|
+
if (dupe) throw new UsageError(`compare.questions in ${where} asks "${dupe}" twice`);
|
|
123
133
|
}
|
|
124
134
|
function checkCompare(value, where) {
|
|
125
135
|
if (Array.isArray(value)) throw new UsageError(`compare must be an object in ${where}. Use compare: { baseline, variants: [...] }.`);
|
|
126
136
|
const spec = value;
|
|
127
|
-
if (typeof value !== "object" || value === null || !Array.isArray(spec.variants)) throw new UsageError(`compare takes {
|
|
128
|
-
for (const key of Object.keys(value)) if (!COMPARE_KEYS.includes(key))
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
137
|
+
if (typeof value !== "object" || value === null || !Array.isArray(spec.variants)) throw new UsageError(`compare takes { variants, baseline? } (got ${describe(value)}) in ${where}. Use compare: { variants: [a, b], baseline?, gate?, minLift?, harness?, questions? }.`);
|
|
138
|
+
for (const key of Object.keys(value)) if (!COMPARE_KEYS.includes(key)) {
|
|
139
|
+
const hint = key === "question" ? `. Did you mean "questions"? It's a list: ${QUESTION_EXAMPLE}.` : "";
|
|
140
|
+
throw new UsageError(`Unknown compare option "${key}" in ${where}${hint}`);
|
|
141
|
+
}
|
|
142
|
+
const { baseline, variants, gate, minLift, harness, questions } = spec;
|
|
143
|
+
if (questions !== void 0) checkQuestions(questions, where);
|
|
144
|
+
if (baseline !== void 0 && !isEnvironment(baseline)) throw new UsageError(`compare.baseline in ${where} must be an environment from defineEnvironment (got ${describe(baseline)}). It is the control; variants are not layered on it or on the eval's environment. Leave it out to use the eval's environment as the control.`);
|
|
132
145
|
if (gate !== void 0 && !GATES.includes(gate)) throw new UsageError(`compare.gate must be one of ${GATES.join(", ")} in ${where}`);
|
|
133
146
|
if (minLift !== void 0 && !(typeof minLift === "number" && minLift >= -1 && minLift <= 1)) throw new UsageError(`compare.minLift is points from -1 to 1 (got ${minLift}) in ${where}`);
|
|
134
147
|
if (harness !== void 0 && !Array.isArray(harness)) throw new UsageError(`compare.harness must be a list of harness ids in ${where}`);
|
|
@@ -151,19 +164,22 @@ function checkOptions(options, where, allowed = KNOWN) {
|
|
|
151
164
|
checkMaxConcurrent(o.judge?.maxConcurrent, `judge in ${where}`);
|
|
152
165
|
const threshold = o.judge?.threshold;
|
|
153
166
|
if (threshold !== void 0 && !(typeof threshold === "number" && threshold >= 0 && threshold <= 1)) throw new UsageError(`judge.threshold must be between 0 and 1 (got ${String(threshold)}) in ${where}`);
|
|
167
|
+
const badList = o.judge && badJudgeList(o.judge);
|
|
168
|
+
if (badList) throw new UsageError(`judge.${badList.key} must be a list of non-empty strings (got ${badList.got}) in ${where}`);
|
|
169
|
+
if (o.sandbox !== void 0) {
|
|
170
|
+
const kind = o.sandbox.kind;
|
|
171
|
+
if (kind !== "docker" && kind !== "fake") throw new UsageError(`sandbox in ${where} must come from docker() or fakeSandbox() (got ${describe(o.sandbox)})`);
|
|
172
|
+
const max = o.sandbox.maxConcurrent;
|
|
173
|
+
if (max !== void 0 && !(Number.isInteger(max) && max >= 1)) throw new UsageError(`sandbox.maxConcurrent in ${where} must be a whole number of at least 1 (got ${String(max)})`);
|
|
174
|
+
}
|
|
154
175
|
if (o.environment !== void 0) {
|
|
155
176
|
if (Array.isArray(o.environment)) throw new UsageError(`environment takes one environment, not a list (${where}). To compare environments, use compare: { baseline, variants: [a, b] }. baseline is the control; variants are not layered on it.`);
|
|
156
177
|
if (!isEnvironment(o.environment)) throw new UsageError(`environment in ${where} must come from defineEnvironment(…) (got ${describe(o.environment)})`);
|
|
157
178
|
}
|
|
158
|
-
if (o.sandbox !== void 0) {
|
|
159
|
-
if (Array.isArray(o.sandbox)) throw new UsageError(`sandbox takes one sandbox, not a list (${where}). Different toolchains need different checks, so write a separate eval per sandbox.`);
|
|
160
|
-
if (!isSandbox(o.sandbox)) throw new UsageError(`sandbox in ${where} must be like docker() (got ${describe(o.sandbox)})`);
|
|
161
|
-
checkMaxConcurrent(o.sandbox.maxConcurrent, `sandbox in ${where}`);
|
|
162
|
-
}
|
|
163
179
|
const raw = options;
|
|
164
180
|
if (raw.compare === false) throw new UsageError(`compare: false can't be set in ${where}. A profile turns compare off with limit.compare: false, which runs the baseline and strips the variants. On a group or eval, omit compare or pass compare: { baseline, variants }.`);
|
|
165
181
|
if (o.compare !== void 0) checkCompare(o.compare, where);
|
|
166
|
-
if (raw.environment !== void 0 &&
|
|
182
|
+
if (raw.environment !== void 0 && o.compare?.baseline !== void 0) throw new UsageError(`environment and compare.baseline can't both be set in ${where}. compare: { baseline, variants } names every arm, so drop environment, or drop baseline to make environment the control.`);
|
|
167
183
|
if (o.pin !== void 0) {
|
|
168
184
|
const bad = Array.isArray(o.pin) ? o.pin.filter((k) => !PINNABLE.includes(k)) : [o.pin];
|
|
169
185
|
if (bad.length) throw new UsageError(`pin accepts harness, runs and compare (got ${bad.map(String).join(", ")}) in ${where}`);
|
|
@@ -214,20 +230,23 @@ function checkUnique(list, where) {
|
|
|
214
230
|
seen.add(key);
|
|
215
231
|
}
|
|
216
232
|
}
|
|
217
|
-
const plannedQuestions = (value) => (value
|
|
233
|
+
const plannedQuestions = (value) => (value ?? []).map((q) => typeof q === "string" ? { question: q } : {
|
|
218
234
|
question: q.question,
|
|
219
235
|
...q.model !== void 0 ? { model: q.model } : {}
|
|
220
236
|
});
|
|
221
237
|
function normalizeCompare(value) {
|
|
222
238
|
if (value === void 0) return void 0;
|
|
223
239
|
return {
|
|
224
|
-
baseline: value.baseline
|
|
240
|
+
...value.baseline ? { baseline: value.baseline } : {
|
|
241
|
+
baseline: emptyEnvironment(EMPTY_BASELINE),
|
|
242
|
+
from: "empty"
|
|
243
|
+
},
|
|
225
244
|
variants: value.variants,
|
|
226
245
|
gate: value.gate ?? "variants",
|
|
227
246
|
...value.minLift !== void 0 ? { minLift: value.minLift } : {},
|
|
228
247
|
...value.harness ? { harness: value.harness.map((h) => typeof h === "string" ? h : harnessId(h)) } : {},
|
|
229
248
|
of: value.variants.length,
|
|
230
|
-
questions: plannedQuestions(value.
|
|
249
|
+
questions: plannedQuestions(value.questions)
|
|
231
250
|
};
|
|
232
251
|
}
|
|
233
252
|
function applyLevel(out, options, where, egress = "own") {
|
|
@@ -273,12 +292,17 @@ function cascade(base, levels, where, options = {}) {
|
|
|
273
292
|
judge: profileJudge(profile)
|
|
274
293
|
}, `profiles.${profile.name}.defaults`, "inherited");
|
|
275
294
|
for (const { options: own, where: at } of levels) applyLevel(out, own, at);
|
|
295
|
+
if (out.compare?.from && out.environment) out.compare = {
|
|
296
|
+
...out.compare,
|
|
297
|
+
baseline: out.environment,
|
|
298
|
+
from: "environment"
|
|
299
|
+
};
|
|
276
300
|
checkUnique(out.harness, where);
|
|
277
301
|
if (profile?.defaults.harness !== void 0 && levels.some((l) => l.options.harness)) notes.push("harness set by the eval");
|
|
278
302
|
const ids = out.harness.map(harnessId);
|
|
279
303
|
const missing = (out.compare?.harness)?.filter((id) => !ids.includes(id)) ?? [];
|
|
280
304
|
if (missing.length) throw new UsageError(`compare.harness lists ${missing.join(", ")}, which ${where} doesn't run (it runs ${ids.join(", ")}).`);
|
|
281
|
-
for (const v of out.compare?.variants ?? []) if (v.name === out.compare?.baseline.name) throw new UsageError(`compare in ${where} lists ${v.name}, which is the baseline. List only the other environments.`);
|
|
305
|
+
for (const v of out.compare?.variants ?? []) if (v.name === out.compare?.baseline.name) throw new UsageError(out.compare.from === "empty" ? `compare in ${where} lists a variant named ${v.name}, the name of the empty control a compare without a baseline or environment runs. Rename the variant, or set compare.baseline.` : out.compare.from === "environment" ? `compare in ${where} lists ${v.name}, which is the control: compare has no baseline, so the eval's environment is. List only the other environments.` : `compare in ${where} lists ${v.name}, which is the baseline. List only the other environments.`);
|
|
282
306
|
const names = out.compare?.variants.map((v) => v.name) ?? [];
|
|
283
307
|
const dupe = names.find((n, i) => names.indexOf(n) !== i);
|
|
284
308
|
if (dupe) throw new UsageError(`compare in ${where} lists two variants named ${dupe}`);
|
|
@@ -331,50 +355,90 @@ function cascade(base, levels, where, options = {}) {
|
|
|
331
355
|
...skip ? { skip } : {}
|
|
332
356
|
};
|
|
333
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* The sandbox an attempt runs in: the resolved environment's (including an `.extend()`
|
|
360
|
+
* parent's), else the first variant's when this is an omitted-baseline empty control, else
|
|
361
|
+
* the cascaded option (`defineConfig` / profile defaults / group / eval), else implicit Docker.
|
|
362
|
+
* A named environment is a total override: the config environment's sandbox is not inherited.
|
|
363
|
+
*/
|
|
364
|
+
const attemptSandbox = (resolved, env) => {
|
|
365
|
+
const own = env.layers.findLast((l) => l.spec.sandbox)?.spec.sandbox;
|
|
366
|
+
if (own) return own;
|
|
367
|
+
const variant = resolved.compare?.from === "empty" && env.name === "baseline" ? resolved.compare.variants[0] : void 0;
|
|
368
|
+
return sandboxOf(variant?.layers ?? [], resolved.sandbox);
|
|
369
|
+
};
|
|
370
|
+
/**
|
|
371
|
+
* Which level set this attempt's sandbox: the cascade source of the environment that named one
|
|
372
|
+
* (an `.extend()` child still names that environment), else the first variant when this is an
|
|
373
|
+
* omitted-baseline empty control, else the cascaded `sandbox` option, else the config (implicit
|
|
374
|
+
* Docker).
|
|
375
|
+
*/
|
|
376
|
+
function sandboxSetBy(planned, resolved, configFile) {
|
|
377
|
+
if (!planned.environment.layers.some((l) => l.spec.sandbox)) {
|
|
378
|
+
if (resolved.compare?.from === "empty" && planned.cell.role === "control" && resolved.compare.variants[0]?.layers.some((l) => l.spec.sandbox)) return resolved.sources?.compare ?? configFile;
|
|
379
|
+
return resolved.sources?.sandbox ?? configFile;
|
|
380
|
+
}
|
|
381
|
+
if (resolved.compare) {
|
|
382
|
+
if (planned.cell.role === "control") {
|
|
383
|
+
if (resolved.compare.from === "environment") return resolved.sources?.environment ?? configFile;
|
|
384
|
+
if (resolved.compare.from === "empty") return configFile;
|
|
385
|
+
return resolved.sources?.compare ?? configFile;
|
|
386
|
+
}
|
|
387
|
+
return resolved.sources?.compare ?? configFile;
|
|
388
|
+
}
|
|
389
|
+
return resolved.sources?.environment ?? configFile;
|
|
390
|
+
}
|
|
334
391
|
/** Per harness: the control, then each variant it compares on; then run numbers. */
|
|
335
392
|
function expand(resolved) {
|
|
336
393
|
const { compare } = resolved;
|
|
337
|
-
const sandbox = sandboxId(resolved.sandbox);
|
|
338
394
|
const control = applied(compare ? compare.baseline : resolved.environment);
|
|
339
395
|
const policy = resolved.gate ?? "all";
|
|
340
396
|
const gateIf = (gated) => gated ? policy : "none";
|
|
341
397
|
const attempts = [];
|
|
342
398
|
for (const harness of resolved.harness) {
|
|
343
399
|
const hid = harnessId(harness);
|
|
344
|
-
const cells = [{
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
environment: control.name,
|
|
400
|
+
const cells = [(() => {
|
|
401
|
+
const sandbox = attemptSandbox(resolved, control);
|
|
402
|
+
const sid = sandboxId(sandbox);
|
|
403
|
+
return {
|
|
404
|
+
env: control,
|
|
350
405
|
sandbox,
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
406
|
+
cell: {
|
|
407
|
+
key: cellKey(hid, control.name, sid),
|
|
408
|
+
harness: hid,
|
|
409
|
+
environment: control.name,
|
|
410
|
+
sandbox: sid,
|
|
411
|
+
role: "control"
|
|
412
|
+
},
|
|
413
|
+
gate: gateIf(!compare || compare.gate === "all")
|
|
414
|
+
};
|
|
415
|
+
})()];
|
|
355
416
|
if (compare && (!compare.harness || compare.harness.includes(hid))) for (const v of compare.variants) {
|
|
356
417
|
const env = applied(v);
|
|
418
|
+
const sandbox = attemptSandbox(resolved, env);
|
|
419
|
+
const sid = sandboxId(sandbox);
|
|
357
420
|
cells.push({
|
|
358
421
|
env,
|
|
422
|
+
sandbox,
|
|
359
423
|
cell: {
|
|
360
|
-
key: cellKey(hid, env.name,
|
|
424
|
+
key: cellKey(hid, env.name, sid),
|
|
361
425
|
harness: hid,
|
|
362
426
|
environment: env.name,
|
|
363
|
-
sandbox,
|
|
427
|
+
sandbox: sid,
|
|
364
428
|
role: "variant",
|
|
365
429
|
variant: v.name
|
|
366
430
|
},
|
|
367
431
|
gate: gateIf(compare.gate !== "none")
|
|
368
432
|
});
|
|
369
433
|
}
|
|
370
|
-
for (const { env, cell, gate } of cells) {
|
|
434
|
+
for (const { env, sandbox, cell, gate } of cells) {
|
|
371
435
|
const axes = [resolved.harness.length > 1 ? hid : "", compare ? cell.role === "control" ? "control" : env.name : ""].filter(Boolean);
|
|
372
436
|
for (let n = 1; n <= resolved.runs; n++) {
|
|
373
437
|
const label = [axes.join(" · "), resolved.runs > 1 ? `#${n}` : ""].filter(Boolean).join(" ");
|
|
374
438
|
attempts.push({
|
|
375
439
|
cell,
|
|
376
440
|
harness,
|
|
377
|
-
sandbox
|
|
441
|
+
sandbox,
|
|
378
442
|
environment: env,
|
|
379
443
|
egress: plannedEgress(resolved.egress, harness, resolved.env, env.layers),
|
|
380
444
|
gate,
|
|
@@ -426,33 +490,46 @@ const unbrokeredWarning = (s) => s.checksOnly ? `${s.label} reaches the checks (
|
|
|
426
490
|
const unbrokeredError = (s, where, configFile) => `${s.label} in ${where} isn't brokered, and secrets.unbrokered is 'error' in ${configFile}. To broker it, ${brokerHint(s)}.`;
|
|
427
491
|
const levelOf = (where) => where.startsWith("evaluate(") ? "eval" : where.startsWith("group(") ? "group" : where.startsWith("profiles.") ? "profile" : "config";
|
|
428
492
|
/**
|
|
429
|
-
* A warning per privilege
|
|
430
|
-
* config when no profile, group or eval did.
|
|
493
|
+
* A warning per privilege an attempt's Docker sandbox adds, naming the level that set the
|
|
494
|
+
* environment which owns that sandbox: the config when no profile, group or eval did.
|
|
431
495
|
*/
|
|
432
|
-
function sandboxWarnings(resolved, origin) {
|
|
433
|
-
const { sandbox } = resolved;
|
|
434
|
-
if (sandbox.kind !== "docker") return [];
|
|
435
|
-
const where = resolved.sources?.sandbox ?? origin.configFile;
|
|
436
|
-
const level = levelOf(where);
|
|
437
|
-
const file = level === "eval" || level === "group" ? origin.file : null;
|
|
496
|
+
function sandboxWarnings(attempts, resolved, origin) {
|
|
438
497
|
const out = [];
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
where,
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
498
|
+
const seen = /* @__PURE__ */ new Set();
|
|
499
|
+
for (const a of attempts) {
|
|
500
|
+
if (a.sandbox.kind !== "docker") continue;
|
|
501
|
+
const where = sandboxSetBy(a, resolved, origin.configFile);
|
|
502
|
+
const level = levelOf(where);
|
|
503
|
+
const file = level === "eval" || level === "group" ? origin.file : null;
|
|
504
|
+
if (a.sandbox.root) {
|
|
505
|
+
const message = `running as root in the sandbox: ${where} (docker({ root: true }))`;
|
|
506
|
+
const key = `${file}\0${message}`;
|
|
507
|
+
if (!seen.has(key)) {
|
|
508
|
+
seen.add(key);
|
|
509
|
+
out.push({
|
|
510
|
+
kind: "root",
|
|
511
|
+
level,
|
|
512
|
+
where,
|
|
513
|
+
file,
|
|
514
|
+
message
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
if (a.sandbox.capabilities?.length) {
|
|
519
|
+
const message = `extra capabilities in the sandbox: ${where} (docker({ capabilities: [${a.sandbox.capabilities.map((c) => `'${c}'`).join(", ")}] }))`;
|
|
520
|
+
const key = `${file}\0${message}`;
|
|
521
|
+
if (!seen.has(key)) {
|
|
522
|
+
seen.add(key);
|
|
523
|
+
out.push({
|
|
524
|
+
kind: "capabilities",
|
|
525
|
+
level,
|
|
526
|
+
where,
|
|
527
|
+
file,
|
|
528
|
+
capabilities: [...a.sandbox.capabilities],
|
|
529
|
+
message
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
}
|
|
456
533
|
}
|
|
457
534
|
return out;
|
|
458
535
|
}
|
|
@@ -465,7 +542,10 @@ function evalPlan(r, attempts, origin) {
|
|
|
465
542
|
run: resolved.compare.variants.length,
|
|
466
543
|
of: resolved.compare.of
|
|
467
544
|
} : null,
|
|
468
|
-
...resolved.compare ? { compare: {
|
|
545
|
+
...resolved.compare ? { compare: {
|
|
546
|
+
baseline: resolved.compare.baseline.name,
|
|
547
|
+
...resolved.compare.from ? { from: resolved.compare.from } : {}
|
|
548
|
+
} } : {},
|
|
469
549
|
...!skip && resolved.compare?.questions.length ? { questions: resolved.compare.questions } : {},
|
|
470
550
|
runs: resolved.runs,
|
|
471
551
|
...resolved.gate !== void 0 ? { gate: resolved.gate } : {},
|
|
@@ -473,7 +553,7 @@ function evalPlan(r, attempts, origin) {
|
|
|
473
553
|
notes,
|
|
474
554
|
...skip ? { skip } : {},
|
|
475
555
|
warnings: [...environmentWarnings(attempts), ...unbrokered(r.resolved.env, attempts).filter(reachesSandbox).map(unbrokeredWarning)],
|
|
476
|
-
sandboxWarnings: skip ? [] : sandboxWarnings(resolved, origin),
|
|
556
|
+
sandboxWarnings: skip ? [] : sandboxWarnings(attempts, resolved, origin),
|
|
477
557
|
brokered: [...new Set(attempts.flatMap((a) => brokeredIn(r.resolved.env, a)))],
|
|
478
558
|
egress: [...new Set(attempts.map((a) => egressLabel(a.egress)).filter(Boolean))],
|
|
479
559
|
workspaces: [...new Set(attempts.flatMap((a) => {
|
|
@@ -487,6 +567,6 @@ function matchesTags(tags, filters) {
|
|
|
487
567
|
return filters.every((f) => f.startsWith("!") ? !tags.includes(f.slice(1)) : tags.includes(f));
|
|
488
568
|
}
|
|
489
569
|
//#endregion
|
|
490
|
-
export { evalPlan as a, levelOf as c, sandboxId as d,
|
|
570
|
+
export { evalPlan as a, levelOf as c, sandboxId as d, sandboxSetBy as f, unbrokeredError as h, checkOptions as i, matchesTags as l, unbrokered as m, cascade as n, expand as o, secretVarsIn as p, checkHarnesses as r, harnessId as s, brokeredIn as t, profileJudge as u };
|
|
491
571
|
|
|
492
|
-
//# sourceMappingURL=options-
|
|
572
|
+
//# sourceMappingURL=options-BBLwgaSz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options-BBLwgaSz.js","names":[],"sources":["../src/options.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { f as globFilter } from "./environment-D3sZUybY.js";
|
|
2
|
+
//#region src/judge/patch.ts
|
|
3
|
+
/** Installed dependencies: one entry per directory, never one per file. */
|
|
4
|
+
const DEPENDENCY_DIR = /^(.*?(?:^|\/)(?:node_modules|\.venv|\.dart_tool|\.pub-cache|__pycache__)\/)/;
|
|
5
|
+
/**
|
|
6
|
+
* Build output: `dist/` and `.next/` at any depth; `build/` and `out/` at the top of the
|
|
7
|
+
* workspace only, since a nested one can be source.
|
|
8
|
+
*/
|
|
9
|
+
const BUILD_DIR = /^((?:.*?\/)?(?:dist|\.next)\/|(?:build|out)\/)/;
|
|
10
|
+
const LOCKFILE = /(?:^|\/)(?:package-lock\.json|pnpm-lock\.yaml|yarn\.lock|bun\.lockb?)$/;
|
|
11
|
+
const GENERATED = /\.(?:map|tsbuildinfo)$/;
|
|
12
|
+
/** Replaces every file under a dependency directory with one `{ dir, count }` entry. */
|
|
13
|
+
function collapseDependencies(items, pathOf) {
|
|
14
|
+
return collapse(items, pathOf, DEPENDENCY_DIR);
|
|
15
|
+
}
|
|
16
|
+
function collapse(items, pathOf, dirOf) {
|
|
17
|
+
const kept = [];
|
|
18
|
+
const counts = /* @__PURE__ */ new Map();
|
|
19
|
+
for (const item of items) {
|
|
20
|
+
const dir = dirOf.exec(pathOf(item))?.[1];
|
|
21
|
+
if (dir) counts.set(dir, (counts.get(dir) ?? 0) + 1);
|
|
22
|
+
else kept.push(item);
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
kept,
|
|
26
|
+
dirs: [...counts].map(([dir, count]) => ({
|
|
27
|
+
dir,
|
|
28
|
+
count
|
|
29
|
+
}))
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const plural = (n, word) => `${n} ${word}${n === 1 ? "" : "s"}`;
|
|
33
|
+
const changedLineList = (part) => part.split("\n").filter((l) => /^[+-]/.test(l) && !/^(\+\+\+|---) /.test(l));
|
|
34
|
+
/**
|
|
35
|
+
* The diff text and changed files the judge can actually grade. Source files are kept whole;
|
|
36
|
+
* dependencies, build output, lockfiles, binaries, source maps, build info and minified files are
|
|
37
|
+
* each replaced by a marker naming them (a directory by one marker with its file count), and paths
|
|
38
|
+
* `include` leaves out are gone. `git apply` skips the marker lines.
|
|
39
|
+
*/
|
|
40
|
+
function judgeDiff(diff, { include, inFull } = {}) {
|
|
41
|
+
const included = include?.length ? globFilter(include) : () => true;
|
|
42
|
+
const dropped = [];
|
|
43
|
+
const files = diff.files.filter((f) => included(f.path));
|
|
44
|
+
for (const f of diff.files) if (!included(f.path)) dropped.push(`${f.path}: not in include`);
|
|
45
|
+
const deps = collapse(files, (f) => f.path, DEPENDENCY_DIR);
|
|
46
|
+
const built = collapse(deps.kept, (f) => f.path, BUILD_DIR);
|
|
47
|
+
const fileLines = [...built.kept.map((f) => `${f.status} ${f.path}`), ...[...deps.dirs, ...built.dirs].map((d) => `changed ${d.dir} (${plural(d.count, "file")})`)];
|
|
48
|
+
if (!diff.patch) return {
|
|
49
|
+
files: fileLines,
|
|
50
|
+
patch: diff.patch,
|
|
51
|
+
dropped
|
|
52
|
+
};
|
|
53
|
+
const parts = diff.patch.split(/(?=^diff --git )/m).filter((part) => part.length > 0);
|
|
54
|
+
const paths = parts.map(diffPath);
|
|
55
|
+
const dirCounts = /* @__PURE__ */ new Map();
|
|
56
|
+
const dirOf = (path) => DEPENDENCY_DIR.exec(path)?.[1] ?? BUILD_DIR.exec(path)?.[1];
|
|
57
|
+
for (const path of paths) {
|
|
58
|
+
const dir = path && included(path) ? dirOf(path) : void 0;
|
|
59
|
+
if (dir) dirCounts.set(dir, (dirCounts.get(dir) ?? 0) + 1);
|
|
60
|
+
}
|
|
61
|
+
const out = [];
|
|
62
|
+
const marked = /* @__PURE__ */ new Set();
|
|
63
|
+
const drop = (what) => {
|
|
64
|
+
dropped.push(what);
|
|
65
|
+
out.push(`[reeval: dropped ${what}]\n`);
|
|
66
|
+
};
|
|
67
|
+
for (const [i, part] of parts.entries()) {
|
|
68
|
+
const path = paths[i];
|
|
69
|
+
if (!path) {
|
|
70
|
+
out.push(part);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (!included(path) || inFull?.has(path)) continue;
|
|
74
|
+
const dir = dirOf(path);
|
|
75
|
+
if (dir) {
|
|
76
|
+
if (marked.has(dir)) continue;
|
|
77
|
+
marked.add(dir);
|
|
78
|
+
const why = DEPENDENCY_DIR.test(path) ? "installed dependencies" : "build output";
|
|
79
|
+
drop(`${dir} (${plural(dirCounts.get(dir) ?? 0, "file")}): ${why}`);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (LOCKFILE.test(path)) {
|
|
83
|
+
drop(`${path}: lockfile, ${plural(changedLineList(part).length, "changed line")}`);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (part.includes("\nGIT binary patch\n")) {
|
|
87
|
+
drop(`${path}: binary`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (GENERATED.test(path)) {
|
|
91
|
+
drop(`${path}: generated`);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const longest = Math.max(0, ...changedLineList(part).map((l) => l.length - 1));
|
|
95
|
+
if (longest > 1e3) {
|
|
96
|
+
drop(`${path}: minified, a line of ${longest} characters`);
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
out.push(part);
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
files: fileLines,
|
|
103
|
+
patch: out.join(""),
|
|
104
|
+
dropped
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/** `judgeDiff`'s diff text alone, for a patch without its file list. */
|
|
108
|
+
const patchForJudge = (patch) => judgeDiff({
|
|
109
|
+
patch,
|
|
110
|
+
files: []
|
|
111
|
+
}).patch;
|
|
112
|
+
function diffPath(part) {
|
|
113
|
+
return /^(?:diff --git a\/.+ b\/(.+))$/m.exec(part)?.[1] ?? null;
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
export { judgeDiff as n, patchForJudge as r, collapseDependencies as t };
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=patch-CzT5wTZr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-CzT5wTZr.js","names":[],"sources":["../src/judge/patch.ts"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as UsageError } from "./errors-yDAEwmZo.js";
|
|
2
2
|
import { n as clip, r as formatDuration } from "./text-gEcKjAyp.js";
|
|
3
|
-
import {
|
|
3
|
+
import { c as recentRecords, p as scratchDir } from "./files-DiGDoSSw.js";
|
|
4
4
|
//#region src/plan.ts
|
|
5
5
|
/** With no history for a harness, an attempt is assumed to take this long (the fake agent: 1s). */
|
|
6
6
|
const DEFAULT_ATTEMPT_MS = 18e4;
|
|
@@ -210,7 +210,8 @@ function planDocument(plan, planned, excluded, images) {
|
|
|
210
210
|
repo: attempt.workspace.repo,
|
|
211
211
|
ref: attempt.workspace.ref ?? null,
|
|
212
212
|
path: attempt.workspace.path ?? null
|
|
213
|
-
} }
|
|
213
|
+
} },
|
|
214
|
+
...attempt.files && { files: attempt.files }
|
|
214
215
|
});
|
|
215
216
|
}
|
|
216
217
|
const { attempts, duration } = plan.budget;
|
|
@@ -250,4 +251,4 @@ function checkAttemptBudget(plan, force, configFile) {
|
|
|
250
251
|
//#endregion
|
|
251
252
|
export { buildPlan, checkAttemptBudget, planDocument, planLine, planTable };
|
|
252
253
|
|
|
253
|
-
//# sourceMappingURL=plan-
|
|
254
|
+
//# sourceMappingURL=plan-4AO_VH20.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-
|
|
1
|
+
{"version":3,"file":"plan-4AO_VH20.js","names":[],"sources":["../src/plan.ts"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as removePrepared, i as preparedFor } from "./preflight-
|
|
1
|
+
import { a as removePrepared, i as preparedFor } from "./preflight-Cl__EL9Y.js";
|
|
2
2
|
export { preparedFor, removePrepared };
|