reeval 0.6.1 → 0.7.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 +35 -311
- package/dist/{agent-BrqDHAx6.js → agent-Dhd5FJCZ.js} +4 -4
- package/dist/{agent-BrqDHAx6.js.map → agent-Dhd5FJCZ.js.map} +1 -1
- package/dist/{agent-bHgHIPVD.js → agent-gjBiZis8.js} +4 -4
- package/dist/{agent-bHgHIPVD.js.map → agent-gjBiZis8.js.map} +1 -1
- package/dist/assemble-D8sZ4Jiv.js +2 -0
- package/dist/{assemble-BB_dcnfh.js → assemble-Dd_mZYnu.js} +109 -7
- package/dist/assemble-Dd_mZYnu.js.map +1 -0
- package/dist/bridge/index.mjs +84 -9
- package/dist/bridge/package.json +3 -3
- package/dist/bridge/pnpm-lock.yaml +84 -89
- package/dist/bridge/pnpm-workspace.yaml +1 -1
- package/dist/{capture-tcMRp6ks.js → capture-CisAmy-G.js} +3 -3
- package/dist/{capture-tcMRp6ks.js.map → capture-CisAmy-G.js.map} +1 -1
- package/dist/capture-DquyqAHC.js +2 -0
- package/dist/{cli-BM-qbqO_.js → cli-r9CDqoFL.js} +139 -172
- package/dist/cli-r9CDqoFL.js.map +1 -0
- package/dist/{cli-spec-DUeyuSIQ.js → cli-spec-DOyxAMc2.js} +22 -9
- package/dist/cli-spec-DOyxAMc2.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{matchers-Bp-OH1vj.js → client-LsfDiD-X.js} +152 -76
- package/dist/client-LsfDiD-X.js.map +1 -0
- package/dist/{command-BT9i1I5S.js → command-Cej2t3y-.js} +9 -9
- package/dist/{command-BT9i1I5S.js.map → command-Cej2t3y-.js.map} +1 -1
- package/dist/command-Cxfgghqo.js +2 -0
- package/dist/{command-DITkSzxp.js → command-D6r2pwO5.js} +10 -10
- package/dist/{command-DITkSzxp.js.map → command-D6r2pwO5.js.map} +1 -1
- package/dist/{command-BpoZJVeI.js → command-DMR69l5G.js} +12 -12
- package/dist/{command-BpoZJVeI.js.map → command-DMR69l5G.js.map} +1 -1
- package/dist/{command-DATlIXj1.js → command-l4ZFCeMh.js} +6 -6
- package/dist/{command-DATlIXj1.js.map → command-l4ZFCeMh.js.map} +1 -1
- package/dist/{commands-C0SFWd1T.js → commands-BA_NCh2h.js} +6 -6
- package/dist/{commands-C0SFWd1T.js.map → commands-BA_NCh2h.js.map} +1 -1
- package/dist/{commands-CDty3r_G.js → commands-DgOUkcSO.js} +1 -1
- package/dist/{config-Cy_vLUbw.js → config-DuQDCx0B.js} +3 -3
- package/dist/{config-Cy_vLUbw.js.map → config-DuQDCx0B.js.map} +1 -1
- package/dist/{context-loi9OCZv.js → context-CvUv7DUb.js} +3 -4
- package/dist/{context-loi9OCZv.js.map → context-CvUv7DUb.js.map} +1 -1
- package/dist/{db-iskAs8Ox.js → db-CjX7JF4o.js} +13 -25
- package/dist/{db-iskAs8Ox.js.map → db-CjX7JF4o.js.map} +1 -1
- package/dist/db-o_osRkqr.js +3 -0
- package/dist/{dist-Dmm3bnKA.js → dist-CTzThfu_.js} +3 -3
- package/dist/{dist-Dmm3bnKA.js.map → dist-CTzThfu_.js.map} +1 -1
- package/dist/{docker-B9wx9-KX.js → docker-DaUaG4XZ.js} +4 -4
- package/dist/{docker-B9wx9-KX.js.map → docker-DaUaG4XZ.js.map} +1 -1
- package/dist/{docker-Di4o89kZ.js → docker-Dnya8eo9.js} +1 -1
- package/dist/{docker-Ctnty6xd.js → docker-ZaYeKE2w.js} +2 -2
- package/dist/{docker-Ctnty6xd.js.map → docker-ZaYeKE2w.js.map} +1 -1
- package/dist/{doctor-BMUVi-gC.js → doctor-Bk6aJeec.js} +10 -10
- package/dist/{doctor-BMUVi-gC.js.map → doctor-Bk6aJeec.js.map} +1 -1
- package/dist/{egress-3bdvDu1s.js → egress-BKbyriEa.js} +13 -13
- package/dist/{egress-3bdvDu1s.js.map → egress-BKbyriEa.js.map} +1 -1
- package/dist/{files-CITwkC4O.js → files-BSMSnQMa.js} +2 -2
- package/dist/{files-CITwkC4O.js.map → files-BSMSnQMa.js.map} +1 -1
- package/dist/files-DmZGPsWK.js +2 -0
- package/dist/{files-DGhQZaXT.js → files-TNrZJQ3Y.js} +15 -4
- package/dist/{files-DGhQZaXT.js.map → files-TNrZJQ3Y.js.map} +1 -1
- package/dist/files-Tb8wY0Ze.js +2 -0
- package/dist/{git-BzyBakoB.js → git-DNGtrOg9.js} +2 -2
- package/dist/{git-BzyBakoB.js.map → git-DNGtrOg9.js.map} +1 -1
- package/dist/{harness-8-dnGNgT.js → harness-CDRaaGvR.js} +2 -2
- package/dist/{harness-8-dnGNgT.js.map → harness-CDRaaGvR.js.map} +1 -1
- package/dist/harness.d.ts +1 -1
- package/dist/harness.js +1 -1
- package/dist/{header-IE-uIvX0.js → header-BZF8Xss1.js} +2 -2
- package/dist/{header-IE-uIvX0.js.map → header-BZF8Xss1.js.map} +1 -1
- package/dist/{images-QBtOj-_q.js → images-BpwFDT1E.js} +6 -6
- package/dist/{images-QBtOj-_q.js.map → images-BpwFDT1E.js.map} +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.js +31 -24
- package/dist/index.js.map +1 -1
- package/dist/init-1THeGfut.js +2 -0
- package/dist/{init-B47uIoHu.js → init-CBWt1rZT.js} +4 -4
- package/dist/{init-B47uIoHu.js.map → init-CBWt1rZT.js.map} +1 -1
- package/dist/{invocations-DHC946b-.js → invocations-DArYWyXN.js} +2 -2
- package/dist/{invocations-DHC946b-.js.map → invocations-DArYWyXN.js.map} +1 -1
- package/dist/judge.d.ts +1 -1
- package/dist/model-D_pF3Vcl.js +2 -0
- package/dist/{model-CtrJdFi6.js → model-DyQbu7KF.js} +113 -3
- package/dist/model-DyQbu7KF.js.map +1 -0
- package/dist/{opencode-providers-DJVocFOU.js → opencode-providers-ByD85Q0l.js} +33 -19
- package/dist/opencode-providers-ByD85Q0l.js.map +1 -0
- package/dist/{options-DVB78W8X.js → options-Ge_x32XE.js} +3 -3
- package/dist/{options-DVB78W8X.js.map → options-Ge_x32XE.js.map} +1 -1
- package/dist/{plan-Bsge1_cc.js → plan-BqBadHYj.js} +14 -7
- package/dist/plan-BqBadHYj.js.map +1 -0
- package/dist/{preflight-B5ue4TlX.js → preflight-CFtZNTLt.js} +1 -1
- package/dist/{preflight-BOstyJDX.js → preflight-CyaAZE9r.js} +3 -3
- package/dist/{preflight-BOstyJDX.js.map → preflight-CyaAZE9r.js.map} +1 -1
- package/dist/{prepare-ChIEi8hP.js → prepare-Dl7-t3fO.js} +2 -2
- package/dist/{prepare-jpXfdH-9.js → prepare-Zr1xOMUX.js} +4 -4
- package/dist/{prepare-jpXfdH-9.js.map → prepare-Zr1xOMUX.js.map} +1 -1
- package/dist/{provenance-BTJCjEPg.js → provenance-Byl2T6LJ.js} +2 -2
- package/dist/{provenance-BTJCjEPg.js.map → provenance-Byl2T6LJ.js.map} +1 -1
- package/dist/{providers-BJCxWIm4.js → providers-Cflw7Ks-.js} +3 -3
- package/dist/{providers-BJCxWIm4.js.map → providers-Cflw7Ks-.js.map} +1 -1
- package/dist/{providers-DxVIaae1.js → providers-SBMExI53.js} +1 -1
- package/dist/query-CvutWHaL.js +2 -0
- package/dist/{query-Cpe659ni.js → query-DUSLlic0.js} +2 -2
- package/dist/{query-Cpe659ni.js.map → query-DUSLlic0.js.map} +1 -1
- package/dist/results-owJR-NFm.js +52 -0
- package/dist/results-owJR-NFm.js.map +1 -0
- package/dist/resume-BL4Yw7Ld.js +406 -0
- package/dist/resume-BL4Yw7Ld.js.map +1 -0
- package/dist/sandbox.d.ts +1 -1
- package/dist/server-CNPsB0cT.js +2 -0
- package/dist/{server-CSSXF89R.js → server-yFVUxAm0.js} +6 -6
- package/dist/{server-CSSXF89R.js.map → server-yFVUxAm0.js.map} +1 -1
- package/dist/source-Cmc5SKFn.js +2 -0
- package/dist/{source-BcHShRWU.js → source-M3gS517R.js} +2 -2
- package/dist/{source-BcHShRWU.js.map → source-M3gS517R.js.map} +1 -1
- package/dist/src--L8B4WGa.js +3 -0
- package/dist/{src-BRdoxjJS.js → src-79JhW-zG.js} +15 -15
- package/dist/{src-BRdoxjJS.js.map → src-79JhW-zG.js.map} +1 -1
- package/dist/src-BLN459er.js +3 -0
- package/dist/src-Bz66jDtE.js +3 -0
- package/dist/src-CfUwg9UY.js +3 -0
- package/dist/{src-B3J1D0nL.js → src-CokPbYCb.js} +76 -60
- package/dist/src-CokPbYCb.js.map +1 -0
- package/dist/{src-a6y9cGkR.js → src-DH0jhpoi.js} +1 -1
- package/dist/{src-DyQJdvp2.js → src-DSE0FWaU.js} +5 -5
- package/dist/{src-DyQJdvp2.js.map → src-DSE0FWaU.js.map} +1 -1
- package/dist/{src-Czhg5ONv.js → src-DTcalvuF.js} +3 -3
- package/dist/{src-Czhg5ONv.js.map → src-DTcalvuF.js.map} +1 -1
- package/dist/src-DV_3QDHA.js +4 -0
- package/dist/{src-BjVw2K4H.js → src-DxFJrMUA.js} +4 -4
- package/dist/{src-BjVw2K4H.js.map → src-DxFJrMUA.js.map} +1 -1
- package/dist/{src-Dk96a9w7.js → src-IOr1rhEg.js} +6 -6
- package/dist/{src-Dk96a9w7.js.map → src-IOr1rhEg.js.map} +1 -1
- package/dist/src-Ljh2vKXm.js +3 -0
- package/dist/{src-CdwJuMBO.js → src-s-VffoYK.js} +2 -2
- package/dist/{src-CdwJuMBO.js.map → src-s-VffoYK.js.map} +1 -1
- package/dist/{state-evRYxV_q.js → state-DEj_utaE.js} +15 -15
- package/dist/{state-evRYxV_q.js.map → state-DEj_utaE.js.map} +1 -1
- package/dist/state-DkqbCVVp.js +2 -0
- package/dist/studio-app/assets/{index-WQPq5K3E.js → index-Bbl0oTxu.js} +1 -1
- package/dist/studio-app/index.html +1 -1
- package/dist/{summary-DTUCNA-v.js → summary--FBuB_sr.js} +3 -3
- package/dist/{summary-DTUCNA-v.js.map → summary--FBuB_sr.js.map} +1 -1
- package/dist/{summary-CIw18kb-.js → summary-D012KlUM.js} +5 -5
- package/dist/{summary-CIw18kb-.js.map → summary-D012KlUM.js.map} +1 -1
- package/dist/tool-target-BU1JnSE9.js +34 -0
- package/dist/tool-target-BU1JnSE9.js.map +1 -0
- package/dist/{tools-By2WuNxm.js → tools-CJHw-zCo.js} +3 -3
- package/dist/{tools-By2WuNxm.js.map → tools-CJHw-zCo.js.map} +1 -1
- package/dist/{types-C2Gl05_c.d.ts → types-BsRSknLe.d.ts} +6 -5
- package/dist/view/index.d.ts +1 -1
- package/dist/view/index.js +2 -2
- package/dist/{views-BJ0i1Iuw.js → views-jhL9Jb8A.js} +4 -4
- package/dist/{views-BJ0i1Iuw.js.map → views-jhL9Jb8A.js.map} +1 -1
- package/dist/views-yPmmoo8f.js +3 -0
- package/dist/{worker-entry-mCctDzig.js → worker-entry-OwnsrUdr.js} +72 -2
- package/dist/worker-entry-OwnsrUdr.js.map +1 -0
- package/dist/{workspace-Bl1SiRQa.js → workspace-C4_J0pqb.js} +3 -3
- package/dist/{workspace-Bl1SiRQa.js.map → workspace-C4_J0pqb.js.map} +1 -1
- package/dist/{workspace-CvAPfa8b.js → workspace-wudSz_W-.js} +1 -1
- package/package.json +11 -10
- package/dist/assemble-BB_dcnfh.js.map +0 -1
- package/dist/assemble-DcLLkwnB.js +0 -2
- package/dist/capture-EvOaSXj_.js +0 -2
- package/dist/cli-BM-qbqO_.js.map +0 -1
- package/dist/cli-spec-DUeyuSIQ.js.map +0 -1
- package/dist/command-Bn_kbh3B.js +0 -2
- package/dist/db-4nMvBFNX.js +0 -2
- package/dist/files-C_CsTMtM.js +0 -2
- package/dist/files-vgLA9tcj.js +0 -2
- package/dist/init-DIAJuCs2.js +0 -2
- package/dist/matchers-Bp-OH1vj.js.map +0 -1
- package/dist/model-C_B5JrhL.js +0 -2
- package/dist/model-CtrJdFi6.js.map +0 -1
- package/dist/opencode-providers-DJVocFOU.js.map +0 -1
- package/dist/plan-Bsge1_cc.js.map +0 -1
- package/dist/query-BtLxk32J.js +0 -2
- package/dist/results-CiJzkjNI.js +0 -37
- package/dist/results-CiJzkjNI.js.map +0 -1
- package/dist/server-CN3lGbK-.js +0 -2
- package/dist/source-CxLRUqU2.js +0 -2
- package/dist/src-B3J1D0nL.js.map +0 -1
- package/dist/src-Ba3zMSdv.js +0 -3
- package/dist/src-BpVFmHqj.js +0 -3
- package/dist/src-CJONyPRm.js +0 -3
- package/dist/src-CLO4dUg7.js +0 -3
- package/dist/src-DQCjANtm.js +0 -3
- package/dist/src-yCDQ7kpQ.js +0 -4
- package/dist/state-CeYoWFWx.js +0 -2
- package/dist/stats-BNAHlNMD.js +0 -114
- package/dist/stats-BNAHlNMD.js.map +0 -1
- package/dist/views-BEurSpHC.js +0 -3
- package/dist/worker-entry-mCctDzig.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight-
|
|
1
|
+
{"version":3,"file":"preflight-CyaAZE9r.js","names":[],"sources":["../src/sandbox/preflight.ts"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./src-
|
|
2
|
-
import { a as prepareImage, r as imageHarness, t as createBuilds } from "./prepare-
|
|
1
|
+
import "./src-79JhW-zG.js";
|
|
2
|
+
import { a as prepareImage, r as imageHarness, t as createBuilds } from "./prepare-Zr1xOMUX.js";
|
|
3
3
|
export { createBuilds, imageHarness, prepareImage };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as parseDuration } from "./duration-JsJrIWXq.js";
|
|
2
2
|
import { C as stepCommand } from "./environment-DiCljXMD.js";
|
|
3
|
-
import { H as harnessLabel, I as LABEL, U as imageFor, X as imageInfo, a as buildInstallLayer, c as dockerfileTag, d as installLayerTag, h as usesEsBase, i as buildImage, m as resolveFrom, r as buildDockerfile, s as contextHash, u as harnessImageFor } from "./src-
|
|
4
|
-
import "./config-
|
|
3
|
+
import { H as harnessLabel, I as LABEL, U as imageFor, X as imageInfo, a as buildInstallLayer, c as dockerfileTag, d as installLayerTag, h as usesEsBase, i as buildImage, m as resolveFrom, r as buildDockerfile, s as contextHash, u as harnessImageFor } from "./src-79JhW-zG.js";
|
|
4
|
+
import "./config-DuQDCx0B.js";
|
|
5
5
|
import { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
6
|
-
import "./docker-
|
|
6
|
+
import "./docker-ZaYeKE2w.js";
|
|
7
7
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
8
8
|
import { join, relative, sep } from "node:path";
|
|
9
9
|
//#region src/sandbox/prepare.ts
|
|
@@ -211,4 +211,4 @@ async function prepareImage(sandbox, harness, root, signal, b) {
|
|
|
211
211
|
//#endregion
|
|
212
212
|
export { prepareImage as a, installSteps as i, esImage as n, projectPath as o, imageHarness as r, createBuilds as t };
|
|
213
213
|
|
|
214
|
-
//# sourceMappingURL=prepare-
|
|
214
|
+
//# sourceMappingURL=prepare-Zr1xOMUX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-
|
|
1
|
+
{"version":3,"file":"prepare-Zr1xOMUX.js","names":[],"sources":["../src/sandbox/prepare.ts"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as inCI } from "./env-BQqj93gu.js";
|
|
2
2
|
import { c as stripCredentials } from "./redact-DJ9JCShu.js";
|
|
3
3
|
import { l as sha256, u as slugify } from "./ids-Bp6ut7ZD.js";
|
|
4
|
-
import { r as repoTop, t as git } from "./git-
|
|
4
|
+
import { r as repoTop, t as git } from "./git-DNGtrOg9.js";
|
|
5
5
|
import { hostname, userInfo } from "node:os";
|
|
6
6
|
import { relative, sep } from "node:path";
|
|
7
7
|
//#region src/history/provenance.ts
|
|
@@ -144,4 +144,4 @@ async function author(root, env = process.env) {
|
|
|
144
144
|
//#endregion
|
|
145
145
|
export { runtimeInfo as i, gitInfo as n, runnerInfo as r, author as t };
|
|
146
146
|
|
|
147
|
-
//# sourceMappingURL=provenance-
|
|
147
|
+
//# sourceMappingURL=provenance-Byl2T6LJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance-
|
|
1
|
+
{"version":3,"file":"provenance-Byl2T6LJ.js","names":[],"sources":["../src/history/provenance.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as UsageError } from "./errors-yDAEwmZo.js";
|
|
2
|
-
import { Y as dockerState, nt as ImageBuildError, ot as isTransient } from "./src-
|
|
2
|
+
import { Y as dockerState, nt as ImageBuildError, ot as isTransient } from "./src-79JhW-zG.js";
|
|
3
3
|
import { t as PrepareError } from "./provider-CmAYTQQs.js";
|
|
4
4
|
//#region src/sandbox/providers.ts
|
|
5
5
|
/** The key of a Docker sandbox's image: what's in it, not the limits or user it runs with. */
|
|
@@ -70,7 +70,7 @@ function dockerProvider(options = {}) {
|
|
|
70
70
|
},
|
|
71
71
|
key: dockerKey,
|
|
72
72
|
async prepare(sandbox, harness, ctx) {
|
|
73
|
-
const { createBuilds, imageHarness, prepareImage } = await import("./prepare-
|
|
73
|
+
const { createBuilds, imageHarness, prepareImage } = await import("./prepare-Dl7-t3fO.js");
|
|
74
74
|
builds ??= createBuilds({
|
|
75
75
|
retry: ctx.retry,
|
|
76
76
|
log: ctx.log,
|
|
@@ -104,4 +104,4 @@ const createProviders = (options = {}) => ({
|
|
|
104
104
|
//#endregion
|
|
105
105
|
export { dockerProvider as a, dockerProblem as i, createProviders as n, fakeProvider as o, dockerKey as r, requireDocker as s, classifyDocker as t };
|
|
106
106
|
|
|
107
|
-
//# sourceMappingURL=providers-
|
|
107
|
+
//# sourceMappingURL=providers-Cflw7Ks-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers-
|
|
1
|
+
{"version":3,"file":"providers-Cflw7Ks-.js","names":[],"sources":["../src/sandbox/providers.ts"],"mappings":";;;;;AASA,MAAa,aAAa,SAAkC,YAA+B;CACzF,MAAM,OAAO,QAAQ,SAAS,SAAU,QAAQ,UAAU,WAAY,QAAQ;CAC9E,MAAM,EAAE,OAAO,MAAM,YAAY,YAAY;CAC7C,OAAO,KAAK,UAAU;EAAE,SAAS;EAAM,OAAO;GAAE;GAAO;GAAM;GAAY;EAAQ;CAAE,CAAC;AACtF;;AAGA,SAAgB,eAAe,OAAgC;CAC7D,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;CACrE,IAAI,iBAAiB,iBAAiB;EACpC,MAAM,EAAE,OAAO,KAAK,WAAW,OAAO,QAAQ,MAAM;EACpD,OAAO;GACL,OAAO,QAAQ,aAAa,YAAY,cAAc;GACtD;GACA;GACA;GACA;GACA;EACF;CACF;CACA,OAAO;EACL,OAAO,YAAY,OAAO,IAAI,cAAc;EAC5C,OAAO;EACP,KAAK;EACL,OAAO;EACP,KAAK;EACL;CACF;AACF;;AAGA,SAAgB,cACd,OACA,WAA4B,QAAQ,UACrB;CACf,IAAI,UAAU,WAAW,OAAO;CAChC,IAAI,UAAU,sBACZ,OAAO;CACT,OAAO,aAAa,UAChB,6GACA;AACN;;AAGA,eAAsB,gBAA+B;CACnD,MAAM,UAAU,cAAc,MAAM,YAAY,CAAC;CACjD,IAAI,SAAS,MAAM,IAAI,WAAW,OAAO;AAC3C;;AAGA,SAAgB,eACd,UAAiC,CAAC,GACQ;CAC1C,IAAI;CACJ,OAAO;EACL,MAAM;EACN,MAAM,QAAQ;GACZ,MAAM,UAAU,cAAc,MAAM,YAAY,CAAC;GACjD,IAAI,CAAC,SAAS;GACd,MAAM,IAAI,aAAa;IACrB,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,SAAS;GACX,CAAC;EACH;EACA,KAAK;EACL,MAAM,QAAQ,SAAS,SAAS,KAAK;GACnC,MAAM,EAAE,cAAc,cAAc,iBAAiB,MAAM,OAAO;GAClE,WAAW,aAAa;IACtB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,SAAS,QAAQ,WAAW;GAC9B,CAAC;GACD,OAAO,MAAM,aAAa,SAAS,aAAa,OAAO,GAAG,IAAI,MAAM,IAAI,QAAQ,MAAM;EACxF;EACA,UAAU;CACZ;AACF;;AAGA,MAAa,sBAA8D;CACzE,MAAM;CACN,OAAO,YAAY,CAAC;CACpB,WAAW;CACX,SAAS,YAAY;CACrB,WAAW,WAAW;EACpB,OAAO;EACP,OAAO;EACP,KAAK;EACL,OAAO;EACP,KAAK;EACL,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;CAChE;AACF;;AAGA,MAAa,mBAAmB,UAAiC,CAAC,OAC/D;CAAE,QAAQ,eAAe,OAAO;CAAG,MAAM,aAAa;AAAE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as dockerProvider, s as requireDocker } from "./providers-
|
|
1
|
+
import { a as dockerProvider, s as requireDocker } from "./providers-Cflw7Ks-.js";
|
|
2
2
|
export { dockerProvider, requireDocker };
|
|
@@ -61,7 +61,7 @@ function statementCount(sql) {
|
|
|
61
61
|
* and tables; a bare name selects everything from that view or table.
|
|
62
62
|
*/
|
|
63
63
|
async function queryCommand(ctx, args) {
|
|
64
|
-
const { openHistoryDb } = await import("./db-
|
|
64
|
+
const { openHistoryDb } = await import("./db-o_osRkqr.js");
|
|
65
65
|
const db = await openHistoryDb(ctx.config.root, ctx.config.history.dir, { rebuild: !!ctx.flags.rebuild });
|
|
66
66
|
try {
|
|
67
67
|
const { sync } = db;
|
|
@@ -88,4 +88,4 @@ async function queryCommand(ctx, args) {
|
|
|
88
88
|
//#endregion
|
|
89
89
|
export { queryCommand as n, statementCount as r, formatRows as t };
|
|
90
90
|
|
|
91
|
-
//# sourceMappingURL=query-
|
|
91
|
+
//# sourceMappingURL=query-DUSLlic0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-
|
|
1
|
+
{"version":3,"file":"query-DUSLlic0.js","names":[],"sources":["../src/query.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { h as writeRun, p as scratchDir, s as readRecord } from "./files-TNrZJQ3Y.js";
|
|
2
|
+
import { o as renderSummary } from "./summary--FBuB_sr.js";
|
|
3
|
+
import { n as assembleRun } from "./assemble-Dd_mZYnu.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-owJR-NFm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results-owJR-NFm.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"}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import { n as UsageError } from "./errors-yDAEwmZo.js";
|
|
2
|
+
import { t as RUN_ID } from "./paths-BmR-7tx3.js";
|
|
3
|
+
import { s as recordFileName } from "./ids-Bp6ut7ZD.js";
|
|
4
|
+
import { c as readableLiveProgress, n as LIVE_FILE, o as liveCounts } from "./live-DZkCtmNP.js";
|
|
5
|
+
import { p as scratchDir } from "./files-TNrZJQ3Y.js";
|
|
6
|
+
import { t as RefError } from "./views-jhL9Jb8A.js";
|
|
7
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
8
|
+
import { hostname } from "node:os";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { readFile, readdir, stat } from "node:fs/promises";
|
|
11
|
+
function finished(result) {
|
|
12
|
+
const outcome = result.meta?.outcome;
|
|
13
|
+
if (result.state === "skipped") return outcome === "fail" || outcome === "infra_error" ? outcome : "skipped";
|
|
14
|
+
if (outcome === "infra_error") return "infra_error";
|
|
15
|
+
return result.state === "passed" ? "pass" : "fail";
|
|
16
|
+
}
|
|
17
|
+
/** Sharing-violation codes Windows uses while a reader has `to` open. */
|
|
18
|
+
const BUSY = /* @__PURE__ */ new Set([
|
|
19
|
+
"EPERM",
|
|
20
|
+
"EACCES",
|
|
21
|
+
"EBUSY"
|
|
22
|
+
]);
|
|
23
|
+
/** How long a busy rename is retried. A studio poll holds the file for a few milliseconds. */
|
|
24
|
+
const BUSY_MS = 1e3;
|
|
25
|
+
function pause(ms) {
|
|
26
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Renames `from` over `to`. Windows refuses while a reader (`reeval studio`) has `to` open, for a
|
|
30
|
+
* moment: try again for up to a second rather than drop the update.
|
|
31
|
+
*/
|
|
32
|
+
function replace(from, to, rename = renameSync, hooks = {}) {
|
|
33
|
+
const now = hooks.now ?? Date.now;
|
|
34
|
+
const wait = hooks.wait ?? pause;
|
|
35
|
+
const deadline = now() + (hooks.busyMs ?? BUSY_MS);
|
|
36
|
+
for (let attempt = 1;; attempt++) try {
|
|
37
|
+
rename(from, to);
|
|
38
|
+
return;
|
|
39
|
+
} catch (error) {
|
|
40
|
+
const code = error.code;
|
|
41
|
+
if (!code || !BUSY.has(code) || now() >= deadline) throw error;
|
|
42
|
+
wait(Math.min(attempt, 32));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Writes the file at once, then on every change and heartbeat. Write errors never fail the run. */
|
|
46
|
+
function writeLiveProgress(options) {
|
|
47
|
+
const now = options.now ?? (() => /* @__PURE__ */ new Date());
|
|
48
|
+
const file = join(options.dir, LIVE_FILE);
|
|
49
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
50
|
+
const attempts = new Map(options.planned.map((p) => [p.key, {
|
|
51
|
+
key: p.key,
|
|
52
|
+
evalId: p.id,
|
|
53
|
+
name: p.attempt.name,
|
|
54
|
+
file: p.file,
|
|
55
|
+
cell: p.attempt.cell.key,
|
|
56
|
+
n: p.attempt.n,
|
|
57
|
+
status: p.attempt.skip || p.attempt.plan.skip ? "skipped" : "queued",
|
|
58
|
+
startedAt: null,
|
|
59
|
+
durationMs: null
|
|
60
|
+
}]));
|
|
61
|
+
let phase = "running";
|
|
62
|
+
let stopped = false;
|
|
63
|
+
const read = () => {
|
|
64
|
+
const list = [...attempts.values()];
|
|
65
|
+
return {
|
|
66
|
+
schemaVersion: 1,
|
|
67
|
+
runId: options.runId,
|
|
68
|
+
startedAt: options.startedAt.toISOString(),
|
|
69
|
+
pid: process.pid,
|
|
70
|
+
host: hostname(),
|
|
71
|
+
heartbeatAt: now().toISOString(),
|
|
72
|
+
phase,
|
|
73
|
+
planned: list.length,
|
|
74
|
+
counts: liveCounts(list),
|
|
75
|
+
attempts: list
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
const write = () => {
|
|
79
|
+
if (stopped) return;
|
|
80
|
+
try {
|
|
81
|
+
writeFileSync(tmp, JSON.stringify(read()));
|
|
82
|
+
replace(tmp, file);
|
|
83
|
+
} catch {}
|
|
84
|
+
};
|
|
85
|
+
try {
|
|
86
|
+
mkdirSync(options.dir, { recursive: true });
|
|
87
|
+
} catch {}
|
|
88
|
+
write();
|
|
89
|
+
const heartbeat = setInterval(write, options.heartbeatMs ?? 2e3);
|
|
90
|
+
heartbeat.unref();
|
|
91
|
+
const stop = () => {
|
|
92
|
+
stopped = true;
|
|
93
|
+
clearInterval(heartbeat);
|
|
94
|
+
};
|
|
95
|
+
return {
|
|
96
|
+
start(key, at) {
|
|
97
|
+
const a = attempts.get(key);
|
|
98
|
+
if (!a) return;
|
|
99
|
+
a.status = "running";
|
|
100
|
+
a.startedAt = new Date(at).toISOString();
|
|
101
|
+
write();
|
|
102
|
+
},
|
|
103
|
+
end(result) {
|
|
104
|
+
const a = attempts.get(result.key);
|
|
105
|
+
if (!a) return;
|
|
106
|
+
a.status = finished(result);
|
|
107
|
+
a.durationMs = result.durationMs;
|
|
108
|
+
write();
|
|
109
|
+
},
|
|
110
|
+
phase(next) {
|
|
111
|
+
phase = next;
|
|
112
|
+
write();
|
|
113
|
+
},
|
|
114
|
+
stop,
|
|
115
|
+
remove() {
|
|
116
|
+
stop();
|
|
117
|
+
rmSync(file, { force: true });
|
|
118
|
+
rmSync(tmp, { force: true });
|
|
119
|
+
},
|
|
120
|
+
read
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/resume.ts
|
|
125
|
+
/** Other-host / studio: a heartbeat older than this is quiet. A live pid on this host is not. */
|
|
126
|
+
const STALE_MS = 15e3;
|
|
127
|
+
/** Exclusive claim in staging so two CLIs cannot resume the same id through the plan window. */
|
|
128
|
+
const HOLDER_FILE = "holder";
|
|
129
|
+
/** `.reeval/current`: the run id, written when the run starts (after the plan). */
|
|
130
|
+
const currentPath = (root) => join(root, ".reeval", "current");
|
|
131
|
+
const stagingOf = (root, runId) => join(root, ".reeval", "staging", runId);
|
|
132
|
+
function writeCurrent(root, runId) {
|
|
133
|
+
const file = currentPath(root);
|
|
134
|
+
mkdirSync(join(root, ".reeval"), { recursive: true });
|
|
135
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
136
|
+
writeFileSync(tmp, `${runId}\n`);
|
|
137
|
+
try {
|
|
138
|
+
replace(tmp, file);
|
|
139
|
+
} catch (error) {
|
|
140
|
+
rmSync(tmp, { force: true });
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const stillRunning = (runId) => new UsageError(`run ${runId} is still running. Wait for it to finish or stop, then reeval run --resume ${runId}.`);
|
|
145
|
+
/** Same host only: `kill(pid, 0)`. Another host cannot be probed. */
|
|
146
|
+
function processAlive(pid, host) {
|
|
147
|
+
if (host !== hostname()) return false;
|
|
148
|
+
try {
|
|
149
|
+
process.kill(pid, 0);
|
|
150
|
+
return true;
|
|
151
|
+
} catch (error) {
|
|
152
|
+
return error.code !== "ESRCH";
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function readHolder(dir) {
|
|
156
|
+
try {
|
|
157
|
+
const [pidLine, hostLine] = readFileSync(join(dir, HOLDER_FILE), "utf8").split("\n");
|
|
158
|
+
const pid = Number(pidLine);
|
|
159
|
+
if (!Number.isInteger(pid) || pid <= 0 || !hostLine) return null;
|
|
160
|
+
return {
|
|
161
|
+
pid,
|
|
162
|
+
host: hostLine
|
|
163
|
+
};
|
|
164
|
+
} catch {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const holderLive = (dir) => {
|
|
169
|
+
const holder = readHolder(dir);
|
|
170
|
+
return holder ? processAlive(holder.pid, holder.host) : false;
|
|
171
|
+
};
|
|
172
|
+
function acquireHolder(staging, runId) {
|
|
173
|
+
const file = join(staging, HOLDER_FILE);
|
|
174
|
+
const body = `${process.pid}\n${hostname()}\n`;
|
|
175
|
+
const create = () => writeFileSync(file, body, { flag: "wx" });
|
|
176
|
+
try {
|
|
177
|
+
create();
|
|
178
|
+
return;
|
|
179
|
+
} catch (error) {
|
|
180
|
+
if (error.code !== "EEXIST") throw error;
|
|
181
|
+
}
|
|
182
|
+
if (holderLive(staging)) throw stillRunning(runId);
|
|
183
|
+
try {
|
|
184
|
+
unlinkSync(file);
|
|
185
|
+
} catch {
|
|
186
|
+
throw stillRunning(runId);
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
create();
|
|
190
|
+
} catch (error) {
|
|
191
|
+
if (error.code === "EEXIST") throw stillRunning(runId);
|
|
192
|
+
throw error;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function readCurrent(root) {
|
|
196
|
+
try {
|
|
197
|
+
const id = readFileSync(currentPath(root), "utf8").trim();
|
|
198
|
+
return RUN_ID.test(id) ? id : null;
|
|
199
|
+
} catch {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/** Finished with a real outcome: not queued, not skipped, not a cancel abort. */
|
|
204
|
+
function isCompletedAttempt(outcome, error) {
|
|
205
|
+
if (outcome === "skipped") return false;
|
|
206
|
+
if (error?.kind === "aborted") return false;
|
|
207
|
+
return outcome === "pass" || outcome === "fail" || outcome === "infra_error";
|
|
208
|
+
}
|
|
209
|
+
const completedFromRecord = (record) => record.evals.flatMap((e) => e.attempts.filter((a) => isCompletedAttempt(a.outcome, a.error)).map((a) => a.key));
|
|
210
|
+
function readEvalRecord(path) {
|
|
211
|
+
try {
|
|
212
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
213
|
+
} catch {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function stagingRecordComplete(staging, key) {
|
|
218
|
+
const record = readEvalRecord(join(staging, "evals", recordFileName(key)));
|
|
219
|
+
if (!record) return false;
|
|
220
|
+
return isCompletedAttempt(record.outcome, record.error);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Attempt keys that already finished in `staging` or in an interrupted/budget scratch, so a
|
|
224
|
+
* resume skips them.
|
|
225
|
+
*/
|
|
226
|
+
function completedKeysFor(planned, staging, previous) {
|
|
227
|
+
const keys = /* @__PURE__ */ new Set();
|
|
228
|
+
const fromPrevious = new Set(previous ? completedFromRecord(previous) : []);
|
|
229
|
+
for (const { key } of planned) if (stagingRecordComplete(staging, key) || fromPrevious.has(key)) keys.add(key);
|
|
230
|
+
return keys;
|
|
231
|
+
}
|
|
232
|
+
function progressLive(progress, now) {
|
|
233
|
+
if (processAlive(progress.pid, progress.host)) return true;
|
|
234
|
+
if (now - Date.parse(progress.heartbeatAt) > STALE_MS) return false;
|
|
235
|
+
return progress.host !== hostname();
|
|
236
|
+
}
|
|
237
|
+
async function readScratch(root, runId) {
|
|
238
|
+
try {
|
|
239
|
+
const text = await readFile(join(scratchDir(root), `${runId}.json`), "utf8");
|
|
240
|
+
const record = JSON.parse(text);
|
|
241
|
+
return record.kind === "es-run" && record.runId === runId ? record : null;
|
|
242
|
+
} catch {
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
async function listCandidates(root, now = Date.now()) {
|
|
247
|
+
const found = /* @__PURE__ */ new Map();
|
|
248
|
+
const stagingRoot = join(root, ".reeval", "staging");
|
|
249
|
+
const names = await readdir(stagingRoot).catch(() => []);
|
|
250
|
+
for (const runId of names.filter((n) => RUN_ID.test(n))) {
|
|
251
|
+
const dir = join(stagingRoot, runId);
|
|
252
|
+
const info = await stat(dir).catch(() => null);
|
|
253
|
+
if (!info?.isDirectory()) continue;
|
|
254
|
+
const text = await readFile(join(dir, LIVE_FILE), "utf8").catch(() => null);
|
|
255
|
+
const progress = text ? readableLiveProgress(JSON.parse(text)) : null;
|
|
256
|
+
const live = (progress ? progressLive(progress, now) : false) || holderLive(dir);
|
|
257
|
+
const startedAt = progress?.startedAt ?? new Date(info.mtimeMs).toISOString();
|
|
258
|
+
found.set(runId, {
|
|
259
|
+
runId,
|
|
260
|
+
startedAt,
|
|
261
|
+
kind: "staging",
|
|
262
|
+
live,
|
|
263
|
+
complete: false,
|
|
264
|
+
previous: null,
|
|
265
|
+
previousArtifacts: null
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
const scratch = scratchDir(root);
|
|
269
|
+
const records = (await readdir(scratch).catch(() => [])).filter((n) => n.endsWith(".json") && RUN_ID.test(n.slice(0, -5)));
|
|
270
|
+
for (const name of records) {
|
|
271
|
+
const runId = name.slice(0, -5);
|
|
272
|
+
const record = await readScratch(root, runId);
|
|
273
|
+
if (!record) continue;
|
|
274
|
+
const artifacts = join(scratch, runId);
|
|
275
|
+
const previousArtifacts = existsSync(artifacts) ? artifacts : null;
|
|
276
|
+
const complete = record.status === "complete";
|
|
277
|
+
const existing = found.get(runId);
|
|
278
|
+
if (existing) {
|
|
279
|
+
existing.previous = record;
|
|
280
|
+
existing.previousArtifacts = previousArtifacts;
|
|
281
|
+
existing.complete = complete;
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
found.set(runId, {
|
|
285
|
+
runId,
|
|
286
|
+
startedAt: record.startedAt,
|
|
287
|
+
kind: "scratch",
|
|
288
|
+
live: false,
|
|
289
|
+
complete,
|
|
290
|
+
previous: complete ? null : record,
|
|
291
|
+
previousArtifacts: complete ? null : previousArtifacts
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
return [...found.values()].sort((a, b) => a.runId < b.runId ? -1 : 1);
|
|
295
|
+
}
|
|
296
|
+
const resumable = (c) => !c.live && !c.complete && (c.kind === "staging" || c.previous?.status === "interrupted" || c.previous?.status === "budget");
|
|
297
|
+
function toTarget(c) {
|
|
298
|
+
return {
|
|
299
|
+
runId: c.runId,
|
|
300
|
+
startedAt: new Date(c.startedAt),
|
|
301
|
+
kind: c.kind,
|
|
302
|
+
previous: c.previous,
|
|
303
|
+
previousArtifacts: c.previousArtifacts
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
function matchRef(candidates, ref) {
|
|
307
|
+
const exact = candidates.find((c) => c.runId === ref);
|
|
308
|
+
if (exact) return exact;
|
|
309
|
+
const byId = candidates.filter((c) => c.runId.startsWith(ref));
|
|
310
|
+
if (byId.length === 1) return byId[0];
|
|
311
|
+
if (byId.length > 1) throw new RefError(`"${ref}" matches ${byId.length} runs; use more of the id`);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* `--resume` with no ref (or `latest`): the newest Stopped staging directory, or an
|
|
315
|
+
* `interrupted` / `budget` scratch. A pointer at `.reeval/current` wins when it still names
|
|
316
|
+
* one of those. A live pid (or a holder this process did not steal) is still running: omitted
|
|
317
|
+
* `--resume` names that id instead of "No resumable run". `--resume <ref>` is a run id or
|
|
318
|
+
* unique prefix, not today's assembled `latest` and not a git SHA.
|
|
319
|
+
*/
|
|
320
|
+
async function resolveResume(root, ref) {
|
|
321
|
+
const candidates = await listCandidates(root);
|
|
322
|
+
const open = candidates.filter(resumable);
|
|
323
|
+
if (ref === void 0 || ref === "" || ref === "latest") {
|
|
324
|
+
const pointer = readCurrent(root);
|
|
325
|
+
const pick = (pointer ? open.find((c) => c.runId === pointer) : void 0) ?? open.at(-1);
|
|
326
|
+
if (!pick) {
|
|
327
|
+
const liveOnes = candidates.filter((c) => c.live);
|
|
328
|
+
const livePick = (pointer ? liveOnes.find((c) => c.runId === pointer) : void 0) ?? liveOnes.at(-1);
|
|
329
|
+
if (livePick) throw stillRunning(livePick.runId);
|
|
330
|
+
throw new UsageError("No resumable run. A stopped staging directory, or an interrupted or budget-stopped scratch record, can be resumed.");
|
|
331
|
+
}
|
|
332
|
+
return toTarget(pick);
|
|
333
|
+
}
|
|
334
|
+
const back = /^latest~(\d+)$/.exec(ref);
|
|
335
|
+
if (back) {
|
|
336
|
+
const entry = open[open.length - 1 - Number(back[1])];
|
|
337
|
+
if (!entry) throw new RefError(`There are only ${open.length} resumable runs`);
|
|
338
|
+
return toTarget(entry);
|
|
339
|
+
}
|
|
340
|
+
const found = matchRef(candidates, ref);
|
|
341
|
+
if (!found) throw new RefError(`No run matches "${ref}"`);
|
|
342
|
+
if (found.live) throw stillRunning(found.runId);
|
|
343
|
+
if (found.complete || !resumable(found)) throw new UsageError(`run ${found.runId} is complete and cannot be resumed. reeval run starts a new run.`);
|
|
344
|
+
return toTarget(found);
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* For a scratch resume: move the assembled record aside so the continuation can write the same
|
|
348
|
+
* id. Staging already in place is left alone.
|
|
349
|
+
*/
|
|
350
|
+
async function prepareResume(target, root) {
|
|
351
|
+
const staging = stagingOf(root, target.runId);
|
|
352
|
+
mkdirSync(join(staging, "evals"), { recursive: true });
|
|
353
|
+
acquireHolder(staging, target.runId);
|
|
354
|
+
if (!target.previous) return;
|
|
355
|
+
const scratch = scratchDir(root);
|
|
356
|
+
const recordPath = join(scratch, `${target.runId}.json`);
|
|
357
|
+
const aside = join(staging, "previous.json");
|
|
358
|
+
if (existsSync(recordPath) && !existsSync(aside)) renameSync(recordPath, aside);
|
|
359
|
+
if (target.previousArtifacts && existsSync(target.previousArtifacts)) {
|
|
360
|
+
const dest = join(staging, "previous-artifacts");
|
|
361
|
+
if (!existsSync(dest)) renameSync(target.previousArtifacts, dest);
|
|
362
|
+
}
|
|
363
|
+
for (const e of target.previous.evals) for (const a of e.attempts) {
|
|
364
|
+
if (!isCompletedAttempt(a.outcome, a.error)) continue;
|
|
365
|
+
const path = join(staging, "evals", recordFileName(a.key));
|
|
366
|
+
if (existsSync(path)) continue;
|
|
367
|
+
const record = {
|
|
368
|
+
outcome: a.outcome === "skipped" ? "fail" : a.outcome,
|
|
369
|
+
error: a.error,
|
|
370
|
+
startedAt: a.startedAt ?? void 0,
|
|
371
|
+
turns: [],
|
|
372
|
+
diff: null,
|
|
373
|
+
checks: [],
|
|
374
|
+
judgements: [],
|
|
375
|
+
timings: {
|
|
376
|
+
setupMs: 0,
|
|
377
|
+
agentMs: 0,
|
|
378
|
+
diffMs: 0,
|
|
379
|
+
checksMs: 0,
|
|
380
|
+
judgeMs: 0
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
writeFileSync(path, `${JSON.stringify(record, null, 2)}\n`);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
async function loadPrevious(staging) {
|
|
387
|
+
const file = join(staging, "previous.json");
|
|
388
|
+
const artifacts = join(staging, "previous-artifacts");
|
|
389
|
+
try {
|
|
390
|
+
const record = JSON.parse(await readFile(file, "utf8"));
|
|
391
|
+
return {
|
|
392
|
+
record: record.kind === "es-run" ? record : null,
|
|
393
|
+
artifacts: existsSync(artifacts) ? artifacts : null
|
|
394
|
+
};
|
|
395
|
+
} catch {
|
|
396
|
+
return {
|
|
397
|
+
record: null,
|
|
398
|
+
artifacts: existsSync(artifacts) ? artifacts : null
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
const previousAttempt = (previous, key) => previous?.evals.flatMap((e) => e.attempts).find((a) => a.key === key);
|
|
403
|
+
//#endregion
|
|
404
|
+
export { previousAttempt as a, writeLiveProgress as c, prepareResume as i, isCompletedAttempt as n, resolveResume as o, loadPrevious as r, writeCurrent as s, completedKeysFor as t };
|
|
405
|
+
|
|
406
|
+
//# sourceMappingURL=resume-BL4Yw7Ld.js.map
|