reeval 0.6.3 → 0.8.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 +265 -0
- package/THIRD_PARTY_NOTICES.md +5 -5
- package/assets/package.json +1 -1
- package/assets/pnpm-lock.yaml +30 -307
- package/dist/{agent-DKuFnZPM.js → agent-B72lZ6w5.js} +6 -6
- package/dist/{agent-DKuFnZPM.js.map → agent-B72lZ6w5.js.map} +1 -1
- package/dist/{agent-oirN_8IS.js → agent-Cfj1wD4D.js} +5 -5
- package/dist/{agent-oirN_8IS.js.map → agent-Cfj1wD4D.js.map} +1 -1
- package/dist/{analysis-BV3TCznv.js → analysis-BTNnKh1w.js} +4 -4
- package/dist/{analysis-BV3TCznv.js.map → analysis-BTNnKh1w.js.map} +1 -1
- package/dist/{assemble-DYCDgbTq.js → assemble-BbFVjHeS.js} +125 -14
- package/dist/assemble-BbFVjHeS.js.map +1 -0
- package/dist/assemble-CXiTVyHD.js +2 -0
- package/dist/bridge/index.mjs +66 -7
- package/dist/bridge/package.json +3 -3
- package/dist/bridge/pnpm-lock.yaml +84 -89
- package/dist/capture-BXhBfmsM.js +1206 -0
- package/dist/capture-BXhBfmsM.js.map +1 -0
- package/dist/capture-N7r3yeak.js +2 -0
- package/dist/{cli-BIhzl_v_.js → cli-BMjTKY-D.js} +151 -193
- package/dist/cli-BMjTKY-D.js.map +1 -0
- package/dist/{cli-spec-DUeyuSIQ.js → cli-spec-DSvKsOK4.js} +25 -11
- package/dist/cli-spec-DSvKsOK4.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/client-CwzU9CiW.js +256 -0
- package/dist/client-CwzU9CiW.js.map +1 -0
- package/dist/{command-B8tcwUJk.js → command-BK4kOgkH.js} +15 -15
- package/dist/{command-B8tcwUJk.js.map → command-BK4kOgkH.js.map} +1 -1
- package/dist/{command-fJpZK205.js → command-BdstSEHu.js} +7 -7
- package/dist/{command-fJpZK205.js.map → command-BdstSEHu.js.map} +1 -1
- package/dist/{command-DuJBqcwu.js → command-BqJtFiPy.js} +153 -36
- package/dist/command-BqJtFiPy.js.map +1 -0
- package/dist/command-CTVGuH8y.js +2 -0
- package/dist/{command-KoOJ0ntD.js → command-JPGNzFsA.js} +9 -9
- package/dist/{command-KoOJ0ntD.js.map → command-JPGNzFsA.js.map} +1 -1
- package/dist/{commands-CHdTfPB6.js → commands-B618jg3C.js} +6 -6
- package/dist/{commands-CHdTfPB6.js.map → commands-B618jg3C.js.map} +1 -1
- package/dist/{commands-DE604ldB.js → commands-Duo2ur3r.js} +1 -1
- package/dist/{config-7-gXOgQf.js → config-B-E0xRkf.js} +4 -4
- package/dist/{config-7-gXOgQf.js.map → config-B-E0xRkf.js.map} +1 -1
- package/dist/db-CnoUy-FZ.js +3 -0
- package/dist/{db-DvkzBhM6.js → db-DFbtGIYy.js} +84 -37
- package/dist/db-DFbtGIYy.js.map +1 -0
- package/dist/{dist-DsZNsoD3.js → dist-CTzThfu_.js} +3 -3
- package/dist/{dist-DsZNsoD3.js.map → dist-CTzThfu_.js.map} +1 -1
- package/dist/{docker-BBOMThRi.js → docker-2qns7hJ2.js} +4 -4
- package/dist/{docker-BBOMThRi.js.map → docker-2qns7hJ2.js.map} +1 -1
- package/dist/{docker-CiNVc7di.js → docker-D6t23fZl.js} +1 -1
- package/dist/{docker-CzFiN2AZ.js → docker-IFRW8K5f.js} +2 -2
- package/dist/{docker-CzFiN2AZ.js.map → docker-IFRW8K5f.js.map} +1 -1
- package/dist/{doctor-C06kYs2r.js → doctor-B6oYTPoR.js} +11 -11
- package/dist/{doctor-C06kYs2r.js.map → doctor-B6oYTPoR.js.map} +1 -1
- package/dist/{egress-De64jpeQ.js → egress-IUKdeayc.js} +17 -10
- package/dist/egress-IUKdeayc.js.map +1 -0
- package/dist/fake-instructions-CUI33I_F.js +32 -0
- package/dist/fake-instructions-CUI33I_F.js.map +1 -0
- package/dist/{files-BqIF7iu4.js → files-B6aVVGrk.js} +3 -3
- package/dist/{files-BqIF7iu4.js.map → files-B6aVVGrk.js.map} +1 -1
- package/dist/files-BpYgF2z0.js +2 -0
- package/dist/{files-Cq99wif-.js → files-CMSUXAEg.js} +16 -5
- package/dist/{files-Cq99wif-.js.map → files-CMSUXAEg.js.map} +1 -1
- package/dist/files-YCCVaTQC.js +2 -0
- package/dist/{git-Dnl-kXgD.js → git-EmdFJ4DY.js} +2 -2
- package/dist/{git-Dnl-kXgD.js.map → git-EmdFJ4DY.js.map} +1 -1
- package/dist/{harness-3QUEWx8G.js → harness-iqWeJQMM.js} +35 -12
- package/dist/harness-iqWeJQMM.js.map +1 -0
- package/dist/harness.d.ts +22 -11
- package/dist/harness.js +1 -1
- package/dist/{header-IE-uIvX0.js → header-_F0EWob3.js} +2 -2
- package/dist/{header-IE-uIvX0.js.map → header-_F0EWob3.js.map} +1 -1
- package/dist/{images-B8Mp_VXZ.js → images-CscddrJU.js} +6 -6
- package/dist/{images-B8Mp_VXZ.js.map → images-CscddrJU.js.map} +1 -1
- package/dist/index.d.ts +13 -8
- package/dist/index.js +99 -24
- package/dist/index.js.map +1 -1
- package/dist/init-DBHyi92L.js +2 -0
- package/dist/{init-B8mw86E6.js → init-NQfIvi-0.js} +4 -4
- package/dist/{init-B8mw86E6.js.map → init-NQfIvi-0.js.map} +1 -1
- package/dist/{invocations-DHC946b-.js → invocations-nPvrlZPj.js} +3 -3
- package/dist/{invocations-DHC946b-.js.map → invocations-nPvrlZPj.js.map} +1 -1
- package/dist/{judge-7WjNdU9z.js → judge-CeYPN8P_.js} +2 -2
- package/dist/{judge-7WjNdU9z.js.map → judge-CeYPN8P_.js.map} +1 -1
- package/dist/judge.d.ts +5 -4
- package/dist/judge.js +4 -3
- package/dist/judge.js.map +1 -1
- package/dist/{live-DZkCtmNP.js → live-S0qODb6o.js} +2 -2
- package/dist/{live-DZkCtmNP.js.map → live-S0qODb6o.js.map} +1 -1
- package/dist/model-BbLGRtOs.js +2 -0
- package/dist/{model-CtrJdFi6.js → model-BndnmcLm.js} +241 -26
- package/dist/model-BndnmcLm.js.map +1 -0
- package/dist/{model-Cp6NoAT3.js → model-Cl507trk.js} +8 -7
- package/dist/model-Cl507trk.js.map +1 -0
- package/dist/{model-Bv8uUZ07.js → model-DEQo3FkZ.js} +6 -6
- package/dist/model-DEQo3FkZ.js.map +1 -0
- package/dist/{model-BeoRxCcJ.js → model-DMOraCcm.js} +1 -1
- package/dist/{opencode-providers-DjlA5fuC.js → opencode-providers-ByD85Q0l.js} +21 -7
- package/dist/{opencode-providers-DjlA5fuC.js.map → opencode-providers-ByD85Q0l.js.map} +1 -1
- package/dist/{options-CWYB613o.js → options-DPUlm4FI.js} +152 -29
- package/dist/options-DPUlm4FI.js.map +1 -0
- package/dist/pairs-DDsjgm5F.js +149 -0
- package/dist/pairs-DDsjgm5F.js.map +1 -0
- package/dist/{plan-CsPE24pp.js → plan-PPc4-6xd.js} +35 -18
- package/dist/plan-PPc4-6xd.js.map +1 -0
- package/dist/{preflight-r0DgibQV.js → preflight-CddycK92.js} +3 -3
- package/dist/{preflight-r0DgibQV.js.map → preflight-CddycK92.js.map} +1 -1
- package/dist/{preflight-DKZjb7ZH.js → preflight-Zumy0adT.js} +1 -1
- package/dist/{prepare-DOkvAa9D.js → prepare-CKdMoC7e.js} +2 -2
- package/dist/{prepare-CTLg3nuk.js → prepare-CsP-057p.js} +4 -4
- package/dist/{prepare-CTLg3nuk.js.map → prepare-CsP-057p.js.map} +1 -1
- package/dist/{provenance--cVNo80L.js → provenance-CsX6PHDR.js} +2 -2
- package/dist/{provenance--cVNo80L.js.map → provenance-CsX6PHDR.js.map} +1 -1
- package/dist/{providers-DNLQzVnc.js → providers-DkwiLKDS.js} +3 -3
- package/dist/{providers-DNLQzVnc.js.map → providers-DkwiLKDS.js.map} +1 -1
- package/dist/{providers-B2cSfewm.js → providers-yXZZcPfx.js} +1 -1
- package/dist/{query-DTtIZaua.js → query-BUcwCYsI.js} +2 -2
- package/dist/{query-DTtIZaua.js.map → query-BUcwCYsI.js.map} +1 -1
- package/dist/query-noGbekGF.js +2 -0
- package/dist/{questions-ZdT3JDyQ.js → questions-BEPj98fZ.js} +27 -118
- package/dist/questions-BEPj98fZ.js.map +1 -0
- package/dist/{record-CbuQH4l1.js → record-BRP9vZrj.js} +21 -1
- package/dist/record-BRP9vZrj.js.map +1 -0
- package/dist/results-BcSHWbgB.js +52 -0
- package/dist/results-BcSHWbgB.js.map +1 -0
- package/dist/resume-DZ9AmfPv.js +406 -0
- package/dist/resume-DZ9AmfPv.js.map +1 -0
- package/dist/{matchers-Bp-OH1vj.js → runtime-Dfb2r-cS.js} +2 -179
- package/dist/runtime-Dfb2r-cS.js.map +1 -0
- package/dist/sandbox.d.ts +1 -1
- package/dist/{server-BFlKK2j6.js → server-Da60oe4b.js} +9 -9
- package/dist/{server-BFlKK2j6.js.map → server-Da60oe4b.js.map} +1 -1
- package/dist/server-DiGR4JxK.js +2 -0
- package/dist/{source-B2ASbTdc.js → source-BVOnL3sn.js} +2 -2
- package/dist/{source-B2ASbTdc.js.map → source-BVOnL3sn.js.map} +1 -1
- package/dist/source-Dqu0jKwx.js +2 -0
- package/dist/src-BHNiP-5A.js +4 -0
- package/dist/{src-CDiGyoDt.js → src-BT4dB5CO.js} +1 -1
- package/dist/src-BT5pwco0.js +3 -0
- package/dist/src-BrMbt1B2.js +3 -0
- package/dist/{src-s-VffoYK.js → src-C1E9HDWO.js} +5 -3
- package/dist/{src-s-VffoYK.js.map → src-C1E9HDWO.js.map} +1 -1
- package/dist/{src-CqsERnCZ.js → src-CxTC5kNI.js} +10 -6
- package/dist/{src-CqsERnCZ.js.map → src-CxTC5kNI.js.map} +1 -1
- package/dist/src-D13vpMh0.js +3 -0
- package/dist/{src-DxFJrMUA.js → src-D95O-Smv.js} +12 -7
- package/dist/{src-DxFJrMUA.js.map → src-D95O-Smv.js.map} +1 -1
- package/dist/{src-CVoCJjEe.js → src-DDNXsD9H.js} +29 -5
- package/dist/{src-CVoCJjEe.js.map → src-DDNXsD9H.js.map} +1 -1
- package/dist/{src-DSE0FWaU.js → src-DVy58-zZ.js} +2 -2
- package/dist/{src-DSE0FWaU.js.map → src-DVy58-zZ.js.map} +1 -1
- package/dist/{src-BHFNhTTQ.js → src-D_cXqmnI.js} +59 -49
- package/dist/{src-BHFNhTTQ.js.map → src-D_cXqmnI.js.map} +1 -1
- package/dist/src-DdRlaiRc.js +3 -0
- package/dist/{src-zOeHvrzR.js → src-TdJuDYqB.js} +13 -13
- package/dist/{src-zOeHvrzR.js.map → src-TdJuDYqB.js.map} +1 -1
- package/dist/src-xczuQbE6.js +3 -0
- package/dist/{state-DBKcUJ2u.js → state-B72h_jEw.js} +14 -14
- package/dist/{state-DBKcUJ2u.js.map → state-B72h_jEw.js.map} +1 -1
- package/dist/state-Bf_Vq_pV.js +2 -0
- package/dist/studio-app/assets/{index-WQPq5K3E.js → index-Bgr-efZm.js} +9 -9
- package/dist/studio-app/index.html +1 -1
- package/dist/{summary-BBABbon9.js → summary-CJdxaRdM.js} +7 -7
- package/dist/{summary-BBABbon9.js.map → summary-CJdxaRdM.js.map} +1 -1
- package/dist/{summary-CahgSiVt.js → summary-k3mhWWXv.js} +8 -4
- package/dist/summary-k3mhWWXv.js.map +1 -0
- package/dist/testing.d.ts +14 -0
- package/dist/testing.js +2 -0
- package/dist/tool-target-BU1JnSE9.js +34 -0
- package/dist/tool-target-BU1JnSE9.js.map +1 -0
- package/dist/{tools-53YHomyk.js → tools-D0gF2QoV.js} +3 -3
- package/dist/{tools-53YHomyk.js.map → tools-D0gF2QoV.js.map} +1 -1
- package/dist/{types-CoAfC-_k.d.ts → types-_LOFdPUf.d.ts} +266 -36
- package/dist/{usage-DsYUqIUM.js → usage-DDF_6tkV.js} +4 -2
- package/dist/{usage-DsYUqIUM.js.map → usage-DDF_6tkV.js.map} +1 -1
- package/dist/view/index.d.ts +19 -6
- package/dist/view/index.js +6 -6
- package/dist/{views-Drl2OXuj.js → views-DZ1YDqey.js} +4 -4
- package/dist/{views-Drl2OXuj.js.map → views-DZ1YDqey.js.map} +1 -1
- package/dist/views-Ds0GXWtX.js +3 -0
- package/dist/{worker-entry-mCctDzig.js → worker-entry-DXeyWY-m.js} +73 -2
- package/dist/worker-entry-DXeyWY-m.js.map +1 -0
- package/dist/{workspace-BT4jd04k.js → workspace-DpXdrslo.js} +3 -3
- package/dist/{workspace-BT4jd04k.js.map → workspace-DpXdrslo.js.map} +1 -1
- package/dist/{workspace-U6M1gKzo.js → workspace-DzNL-3iO.js} +1 -1
- package/package.json +14 -8
- package/dist/assemble-DYCDgbTq.js.map +0 -1
- package/dist/assemble-DykFydSU.js +0 -2
- package/dist/capture-CisAmy-G.js +0 -587
- package/dist/capture-CisAmy-G.js.map +0 -1
- package/dist/capture-DquyqAHC.js +0 -2
- package/dist/cli-BIhzl_v_.js.map +0 -1
- package/dist/cli-spec-DUeyuSIQ.js.map +0 -1
- package/dist/command-CwuwuKJD.js +0 -2
- package/dist/command-DuJBqcwu.js.map +0 -1
- package/dist/db-BVE1kZ2w.js +0 -2
- package/dist/db-DvkzBhM6.js.map +0 -1
- package/dist/egress-De64jpeQ.js.map +0 -1
- package/dist/files-Cs8tbYQY.js +0 -2
- package/dist/files-wUtoO5aA.js +0 -2
- package/dist/harness-3QUEWx8G.js.map +0 -1
- package/dist/init-DDEpamaf.js +0 -2
- package/dist/matchers-Bp-OH1vj.js.map +0 -1
- package/dist/model-Bv8uUZ07.js.map +0 -1
- package/dist/model-C_B5JrhL.js +0 -2
- package/dist/model-Cp6NoAT3.js.map +0 -1
- package/dist/model-CtrJdFi6.js.map +0 -1
- package/dist/options-CWYB613o.js.map +0 -1
- package/dist/plan-CsPE24pp.js.map +0 -1
- package/dist/query-BWc_5Lhe.js +0 -2
- package/dist/questions-ZdT3JDyQ.js.map +0 -1
- package/dist/record-CbuQH4l1.js.map +0 -1
- package/dist/results-CrFs7_In.js +0 -37
- package/dist/results-CrFs7_In.js.map +0 -1
- package/dist/server-HRUHVcHc.js +0 -2
- package/dist/source-Co7h89WK.js +0 -2
- package/dist/src-BE19tji4.js +0 -3
- package/dist/src-Bo8GFUXg.js +0 -3
- package/dist/src-BoziVhKa.js +0 -3
- package/dist/src-CFxHPwQA.js +0 -3
- package/dist/src-CPkDaNxp.js +0 -3
- package/dist/src-D-go5-qz.js +0 -4
- package/dist/state-BaHjYXr1.js +0 -2
- package/dist/stats-BNAHlNMD.js +0 -114
- package/dist/stats-BNAHlNMD.js.map +0 -1
- package/dist/summary-CahgSiVt.js.map +0 -1
- package/dist/views-BhGinAz_.js +0 -3
- package/dist/worker-entry-mCctDzig.js.map +0 -1
|
@@ -1,122 +1,25 @@
|
|
|
1
1
|
import { o as redactSecrets } from "./redact-DJ9JCShu.js";
|
|
2
2
|
import { s as recordFileName } from "./ids-Bp6ut7ZD.js";
|
|
3
|
-
import { l as judgeRoute } from "./judge-
|
|
3
|
+
import { l as judgeRoute } from "./judge-CeYPN8P_.js";
|
|
4
|
+
import { a as providerModel, i as isFake, r as cannedModel } from "./model-Cl507trk.js";
|
|
4
5
|
import { r as patchForJudge } from "./patch-CGCVipPu.js";
|
|
5
|
-
import {
|
|
6
|
+
import { c as voteReason, i as ratesOf, n as pairsOf, o as slots, s as voteOf, t as acrossOf } from "./pairs-DDsjgm5F.js";
|
|
6
7
|
import { join } from "node:path";
|
|
7
8
|
import { readFile } from "node:fs/promises";
|
|
8
|
-
import { z } from "zod";
|
|
9
9
|
import { Output, generateText } from "ai";
|
|
10
|
-
|
|
11
|
-
/** The side a pair names: an arm within a harness, a harness across them. */
|
|
12
|
-
const sideName = (cut, side) => cut === "within" ? side.arm : side.harness;
|
|
13
|
-
/** Every two-element combination, in the order given. */
|
|
14
|
-
function combinations(items) {
|
|
15
|
-
const out = [];
|
|
16
|
-
for (let i = 0; i < items.length; i++) for (let j = i + 1; j < items.length; j++) out.push([items[i], items[j]]);
|
|
17
|
-
return out;
|
|
18
|
-
}
|
|
19
|
-
/** Distinct values in first-seen order. */
|
|
20
|
-
const distinct = (values) => [...new Set(values)];
|
|
21
|
-
/**
|
|
22
|
-
* The pairs to judge. Within a harness, for each run, every two arms; across harnesses, for each
|
|
23
|
-
* arm and run, every two harnesses. Attempts that failed their deterministic checks are left out
|
|
24
|
-
* (they still count in the pass rate), so a pair missing a side isn't judged. The control arm
|
|
25
|
-
* comes first, then arms and harnesses in the order they first appear.
|
|
26
|
-
*/
|
|
27
|
-
function pairsOf(attempts) {
|
|
28
|
-
const eligible = attempts.filter((a) => a.checksPassed);
|
|
29
|
-
const find = (harness, arm, run) => eligible.find((a) => a.harness === harness && a.arm === arm && a.run === run);
|
|
30
|
-
const harnesses = distinct(attempts.map((a) => a.harness));
|
|
31
|
-
const arms = distinct([...attempts.filter((a) => a.control).map((a) => a.arm), ...attempts.map((a) => a.arm)]);
|
|
32
|
-
const runs = [...new Set(attempts.map((a) => a.run))].sort((x, y) => x - y);
|
|
33
|
-
const pairs = [];
|
|
34
|
-
for (const harness of harnesses) for (const run of runs) for (const [x, y] of combinations(arms)) {
|
|
35
|
-
const a = find(harness, x, run);
|
|
36
|
-
const b = find(harness, y, run);
|
|
37
|
-
if (a && b) pairs.push({
|
|
38
|
-
cut: "within",
|
|
39
|
-
harness,
|
|
40
|
-
run,
|
|
41
|
-
a,
|
|
42
|
-
b
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
for (const arm of arms) for (const run of runs) for (const [x, y] of combinations(harnesses)) {
|
|
46
|
-
const a = find(x, arm, run);
|
|
47
|
-
const b = find(y, arm, run);
|
|
48
|
-
if (a && b) pairs.push({
|
|
49
|
-
cut: "across",
|
|
50
|
-
arm,
|
|
51
|
-
run,
|
|
52
|
-
a,
|
|
53
|
-
b
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return pairs;
|
|
57
|
-
}
|
|
58
|
-
/** The two sides in the order the model sees them: `a` first, or `b` first when swapped. */
|
|
59
|
-
const slots = (pair, swapped) => swapped ? [pair.b, pair.a] : [pair.a, pair.b];
|
|
60
|
-
/** Maps a blinded pick (`A` is the first slot) back to the side's name. */
|
|
61
|
-
function winnerOf(pair, swapped, pick) {
|
|
62
|
-
if (pick === "tie") return "tie";
|
|
63
|
-
const [first, second] = slots(pair, swapped);
|
|
64
|
-
return sideName(pair.cut, pick === "A" ? first : second);
|
|
65
|
-
}
|
|
66
|
-
/** The vote a pick makes, with the pair's names. */
|
|
67
|
-
function voteOf(question, pair, swapped, pick) {
|
|
68
|
-
return {
|
|
69
|
-
question,
|
|
70
|
-
cut: pair.cut,
|
|
71
|
-
...pair.cut === "within" ? { harness: pair.harness } : { arm: pair.arm },
|
|
72
|
-
run: pair.run,
|
|
73
|
-
a: sideName(pair.cut, pair.a),
|
|
74
|
-
b: sideName(pair.cut, pair.b),
|
|
75
|
-
winner: winnerOf(pair, swapped, pick),
|
|
76
|
-
swapped
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Each side's wins over the decided votes it was in, per cut. A tie decides nothing, so it counts
|
|
81
|
-
* for neither side; both orders of a pair count, since each is its own judgement.
|
|
82
|
-
*/
|
|
83
|
-
function ratesOf(votes) {
|
|
84
|
-
const rates = /* @__PURE__ */ new Map();
|
|
85
|
-
const rate = (cut, name) => {
|
|
86
|
-
const key = `${cut}\0${name}`;
|
|
87
|
-
let found = rates.get(key);
|
|
88
|
-
if (!found) {
|
|
89
|
-
found = {
|
|
90
|
-
cut,
|
|
91
|
-
name,
|
|
92
|
-
wins: 0,
|
|
93
|
-
n: 0
|
|
94
|
-
};
|
|
95
|
-
rates.set(key, found);
|
|
96
|
-
}
|
|
97
|
-
return found;
|
|
98
|
-
};
|
|
99
|
-
for (const v of votes) {
|
|
100
|
-
if (v.winner === "tie") continue;
|
|
101
|
-
for (const name of [v.a, v.b]) {
|
|
102
|
-
const r = rate(v.cut, name);
|
|
103
|
-
r.n++;
|
|
104
|
-
if (v.winner === name) r.wins++;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const order = ["within", "across"];
|
|
108
|
-
return [...rates.values()].sort((x, y) => order.indexOf(x.cut) - order.indexOf(y.cut));
|
|
109
|
-
}
|
|
110
|
-
//#endregion
|
|
10
|
+
import { z } from "zod";
|
|
111
11
|
//#region src/compare/questions.ts
|
|
112
12
|
const QUESTION_SYSTEM = `You compare two attempts by coding agents at the same task and answer one question about them.
|
|
113
13
|
Each attempt is shown as the changes it made to the project, as a unified diff, labelled A or B. The labels are assigned at random: which attempt comes first says nothing about it.
|
|
114
|
-
Judge only by the question, from the changes shown. Answer A or B for the attempt the question favours, or tie when the changes don't separate them on it.`;
|
|
115
|
-
const voteSchema = z.object({
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
14
|
+
Judge only by the question, from the changes shown. Answer A or B for the attempt the question favours, or tie when the changes don't separate them on it. Give a short reason for the pick.`;
|
|
15
|
+
const voteSchema = z.object({
|
|
16
|
+
winner: z.enum([
|
|
17
|
+
"A",
|
|
18
|
+
"B",
|
|
19
|
+
"tie"
|
|
20
|
+
]),
|
|
21
|
+
reason: z.string().optional()
|
|
22
|
+
});
|
|
120
23
|
/** Roughly four characters a token: each side gets half of `maxInputTokens`. */
|
|
121
24
|
const CHARS_PER_TOKEN = 4;
|
|
122
25
|
/** A diff as the model sees it: dependency and binary noise dropped, then cut to `chars`. */
|
|
@@ -167,9 +70,14 @@ function blindPair(question, pair, swapped, maxInputTokens) {
|
|
|
167
70
|
}
|
|
168
71
|
function fakeAnswer(fake, pair) {
|
|
169
72
|
const vote = fake.vote ?? "tie";
|
|
170
|
-
if (typeof vote === "object") return cannedModel({ error: vote.error });
|
|
73
|
+
if (typeof vote === "object" && "error" in vote) return cannedModel({ error: vote.error });
|
|
171
74
|
const pick = typeof vote === "function" ? vote(pair) : vote;
|
|
172
|
-
|
|
75
|
+
const winner = typeof pick === "string" ? pick : pick.winner;
|
|
76
|
+
const reason = typeof pick === "string" ? void 0 : pick.reason;
|
|
77
|
+
return cannedModel({ text: JSON.stringify({
|
|
78
|
+
winner,
|
|
79
|
+
...reason !== void 0 ? { reason } : {}
|
|
80
|
+
}) });
|
|
173
81
|
}
|
|
174
82
|
async function ask(model, pair, maxOutputTokens, signal) {
|
|
175
83
|
const result = await generateText({
|
|
@@ -188,9 +96,10 @@ async function ask(model, pair, maxOutputTokens, signal) {
|
|
|
188
96
|
maxRetries: 3,
|
|
189
97
|
...signal ? { abortSignal: signal } : {}
|
|
190
98
|
});
|
|
191
|
-
const { winner } = result.output;
|
|
99
|
+
const { winner, reason } = result.output;
|
|
192
100
|
return {
|
|
193
101
|
pick: winner,
|
|
102
|
+
reason: voteReason(reason),
|
|
194
103
|
resolvedModel: isFake(model) ? null : result.response?.modelId ?? null
|
|
195
104
|
};
|
|
196
105
|
}
|
|
@@ -224,9 +133,9 @@ async function answerQuestion(options) {
|
|
|
224
133
|
if (error !== void 0) return null;
|
|
225
134
|
const blind = blindPair(question, pair, swapped, options.maxInputTokens);
|
|
226
135
|
try {
|
|
227
|
-
const { pick, resolvedModel } = await ask(model, blind, options.maxOutputTokens, options.signal);
|
|
136
|
+
const { pick, reason, resolvedModel } = await ask(model, blind, options.maxOutputTokens, options.signal);
|
|
228
137
|
if (resolvedModel) served.add(resolvedModel);
|
|
229
|
-
return voteOf(question, pair, swapped, pick);
|
|
138
|
+
return voteOf(question, pair, swapped, pick, reason);
|
|
230
139
|
} catch (e) {
|
|
231
140
|
error ??= errorText(e);
|
|
232
141
|
return null;
|
|
@@ -272,12 +181,12 @@ function questionRunner(options) {
|
|
|
272
181
|
if (!e || started.has(id)) return;
|
|
273
182
|
const attempts = ended.get(id) ?? [];
|
|
274
183
|
const answers = (async () => {
|
|
275
|
-
const
|
|
184
|
+
const staged = (await Promise.all(attempts.map(async (a) => stagedAttempt(a, await readStaged(options.stagingDir, a.key))))).filter((s) => s !== null).sort((x, y) => (x.id ?? "") < (y.id ?? "") ? -1 : 1);
|
|
276
185
|
return Promise.all(e.questions.map(async (q) => {
|
|
277
186
|
const answer = await answerQuestion({
|
|
278
187
|
question: q.question,
|
|
279
188
|
model: q.model,
|
|
280
|
-
pairs,
|
|
189
|
+
pairs: pairsOf(staged, acrossOf(q.across)),
|
|
281
190
|
maxInputTokens: options.maxInputTokens,
|
|
282
191
|
maxOutputTokens: options.maxOutputTokens,
|
|
283
192
|
signal: controller.signal
|
|
@@ -322,4 +231,4 @@ function questionRunner(options) {
|
|
|
322
231
|
//#endregion
|
|
323
232
|
export { questionRunner };
|
|
324
233
|
|
|
325
|
-
//# sourceMappingURL=questions-
|
|
234
|
+
//# sourceMappingURL=questions-BEPj98fZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions-BEPj98fZ.js","names":[],"sources":["../src/compare/questions.ts"],"mappings":"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"}
|
|
@@ -9,9 +9,29 @@ const READ_DEFAULTS = {
|
|
|
9
9
|
path: "stack.harnesses[].resolvedModels",
|
|
10
10
|
empty: () => []
|
|
11
11
|
},
|
|
12
|
+
{
|
|
13
|
+
path: "stack.harnesses[].effort",
|
|
14
|
+
empty: () => null
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
path: "stack.harnesses[].resolvedEffort",
|
|
18
|
+
empty: () => []
|
|
19
|
+
},
|
|
12
20
|
{
|
|
13
21
|
path: "evals[].todo",
|
|
14
22
|
empty: () => false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
path: "evals[].cells[].effort",
|
|
26
|
+
empty: () => null
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
path: "evals[].attempts[].effort",
|
|
30
|
+
empty: () => null
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
path: "evals[].attempts[].servedEffort",
|
|
34
|
+
empty: () => null
|
|
15
35
|
}
|
|
16
36
|
],
|
|
17
37
|
"transcript-line": [],
|
|
@@ -100,4 +120,4 @@ const readableCliInvocation = (entry) => fillDefaults("cli-invocation", entry);
|
|
|
100
120
|
//#endregion
|
|
101
121
|
export { readableCliInvocation as a, readableTranscriptLine as c, readableAnalysisNote as i, fillDefaults as n, readableDebugRequest as o, readableAnalysis as r, readableRecord as s, NewerSchemaError as t };
|
|
102
122
|
|
|
103
|
-
//# sourceMappingURL=record-
|
|
123
|
+
//# sourceMappingURL=record-BRP9vZrj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-BRP9vZrj.js","names":[],"sources":["../src/view/record.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { h as writeRun, p as scratchDir, s as readRecord } from "./files-CMSUXAEg.js";
|
|
2
|
+
import { o as renderSummary } from "./summary-k3mhWWXv.js";
|
|
3
|
+
import { n as assembleRun } from "./assemble-BbFVjHeS.js";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { readdir, rm, stat } from "node:fs/promises";
|
|
6
|
+
//#region src/results.ts
|
|
7
|
+
const STALE_STAGING_MS = 864e5;
|
|
8
|
+
/** Where workers write raw per-eval records before the run is assembled. */
|
|
9
|
+
const stagingDir = (root, runId) => join(root, ".reeval", "staging", runId);
|
|
10
|
+
/** Removes staging left behind by runs that were killed before they could clean up. */
|
|
11
|
+
async function sweepStaging(root, keep) {
|
|
12
|
+
const dir = join(root, ".reeval", "staging");
|
|
13
|
+
const entries = await readdir(dir).catch(() => []);
|
|
14
|
+
for (const name of entries) {
|
|
15
|
+
if (name === keep) continue;
|
|
16
|
+
if (await stat(join(dir, name)).then((s) => Date.now() - s.mtimeMs, () => 0) > STALE_STAGING_MS) await rm(join(dir, name), {
|
|
17
|
+
recursive: true,
|
|
18
|
+
force: true
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** Assembles the run into `.reeval/runs/`, with every artifact and a summary.md. */
|
|
23
|
+
async function writeScratchRun(input, landed) {
|
|
24
|
+
const { record, artifacts } = await assembleRun(input);
|
|
25
|
+
artifacts.set("summary.md", Buffer.from(renderSummary(record)));
|
|
26
|
+
const scratch = scratchDir(input.ctx.config.root);
|
|
27
|
+
const existing = join(scratch, `${record.runId}.json`);
|
|
28
|
+
try {
|
|
29
|
+
const old = await readRecord(existing);
|
|
30
|
+
if (old.status === "interrupted" || old.status === "budget") {
|
|
31
|
+
await rm(existing, { force: true });
|
|
32
|
+
await rm(join(scratch, record.runId), {
|
|
33
|
+
recursive: true,
|
|
34
|
+
force: true
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
} catch {}
|
|
38
|
+
const written = await writeRun(scratch, record, artifacts);
|
|
39
|
+
landed?.();
|
|
40
|
+
await rm(input.ctx.stagingDir, {
|
|
41
|
+
recursive: true,
|
|
42
|
+
force: true
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
...written,
|
|
46
|
+
record
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { stagingDir, sweepStaging, writeScratchRun };
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=results-BcSHWbgB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results-BcSHWbgB.js","names":[],"sources":["../src/results.ts"],"mappings":";;;;;;AAOA,MAAM,mBAAmB;;AAGzB,MAAa,cAAc,MAAc,UAAkB,KAAK,MAAM,WAAW,WAAW,KAAK;;AAGjG,eAAsB,aAAa,MAAc,MAA8B;CAC7E,MAAM,MAAM,KAAK,MAAM,WAAW,SAAS;CAC3C,MAAM,UAAU,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;CACjD,KAAK,MAAM,QAAQ,SAAS;EAC1B,IAAI,SAAS,MAAM;EAKnB,IAAI,MAJc,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MACrC,MAAM,KAAK,IAAI,IAAI,EAAE,eAChB,CACR,IACU,kBAAkB,MAAM,GAAG,KAAK,KAAK,IAAI,GAAG;GAAE,WAAW;GAAM,OAAO;EAAK,CAAC;CACxF;AACF;;AAGA,eAAsB,gBACpB,OACA,QAC6C;CAC7C,MAAM,EAAE,QAAQ,cAAc,MAAM,YAAY,KAAK;CACrD,UAAU,IAAI,cAAc,OAAO,KAAK,cAAc,MAAM,CAAC,CAAC;CAC9D,MAAM,UAAU,WAAW,MAAM,IAAI,OAAO,IAAI;CAChD,MAAM,WAAW,KAAK,SAAS,GAAG,OAAO,MAAM,MAAM;CACrD,IAAI;EACF,MAAM,MAAM,MAAM,WAAW,QAAQ;EACrC,IAAI,IAAI,WAAW,iBAAiB,IAAI,WAAW,UAAU;GAC3D,MAAM,GAAG,UAAU,EAAE,OAAO,KAAK,CAAC;GAClC,MAAM,GAAG,KAAK,SAAS,OAAO,KAAK,GAAG;IAAE,WAAW;IAAM,OAAO;GAAK,CAAC;EACxE;CACF,QAAQ,CAAC;CACT,MAAM,UAAU,MAAM,SAAS,SAAS,QAAQ,SAAS;CACzD,SAAS;CACT,MAAM,GAAG,MAAM,IAAI,YAAY;EAAE,WAAW;EAAM,OAAO;CAAK,CAAC;CAC/D,OAAO;EAAE,GAAG;EAAS;CAAO;AAC9B"}
|