reeval 0.6.3 → 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 +30 -307
- package/dist/{agent-DKuFnZPM.js → agent-Dhd5FJCZ.js} +4 -4
- package/dist/{agent-DKuFnZPM.js.map → agent-Dhd5FJCZ.js.map} +1 -1
- package/dist/{agent-oirN_8IS.js → agent-gjBiZis8.js} +4 -4
- package/dist/{agent-oirN_8IS.js.map → agent-gjBiZis8.js.map} +1 -1
- package/dist/assemble-D8sZ4Jiv.js +2 -0
- package/dist/{assemble-DYCDgbTq.js → assemble-Dd_mZYnu.js} +109 -7
- package/dist/assemble-Dd_mZYnu.js.map +1 -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/{cli-BIhzl_v_.js → cli-r9CDqoFL.js} +139 -186
- 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-KoOJ0ntD.js → command-Cej2t3y-.js} +9 -9
- package/dist/{command-KoOJ0ntD.js.map → command-Cej2t3y-.js.map} +1 -1
- package/dist/command-Cxfgghqo.js +2 -0
- package/dist/{command-DuJBqcwu.js → command-D6r2pwO5.js} +10 -10
- package/dist/{command-DuJBqcwu.js.map → command-D6r2pwO5.js.map} +1 -1
- package/dist/{command-B8tcwUJk.js → command-DMR69l5G.js} +12 -12
- package/dist/{command-B8tcwUJk.js.map → command-DMR69l5G.js.map} +1 -1
- package/dist/{command-fJpZK205.js → command-l4ZFCeMh.js} +6 -6
- package/dist/{command-fJpZK205.js.map → command-l4ZFCeMh.js.map} +1 -1
- package/dist/{commands-CHdTfPB6.js → commands-BA_NCh2h.js} +6 -6
- package/dist/{commands-CHdTfPB6.js.map → commands-BA_NCh2h.js.map} +1 -1
- package/dist/{commands-DE604ldB.js → commands-DgOUkcSO.js} +1 -1
- package/dist/{config-7-gXOgQf.js → config-DuQDCx0B.js} +3 -3
- package/dist/{config-7-gXOgQf.js.map → config-DuQDCx0B.js.map} +1 -1
- package/dist/{db-DvkzBhM6.js → db-CjX7JF4o.js} +12 -24
- package/dist/{db-DvkzBhM6.js.map → db-CjX7JF4o.js.map} +1 -1
- package/dist/db-o_osRkqr.js +3 -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-DaUaG4XZ.js} +4 -4
- package/dist/{docker-BBOMThRi.js.map → docker-DaUaG4XZ.js.map} +1 -1
- package/dist/{docker-CiNVc7di.js → docker-Dnya8eo9.js} +1 -1
- package/dist/{docker-CzFiN2AZ.js → docker-ZaYeKE2w.js} +2 -2
- package/dist/{docker-CzFiN2AZ.js.map → docker-ZaYeKE2w.js.map} +1 -1
- package/dist/{doctor-C06kYs2r.js → doctor-Bk6aJeec.js} +10 -10
- package/dist/{doctor-C06kYs2r.js.map → doctor-Bk6aJeec.js.map} +1 -1
- package/dist/{egress-De64jpeQ.js → egress-BKbyriEa.js} +10 -10
- package/dist/{egress-De64jpeQ.js.map → egress-BKbyriEa.js.map} +1 -1
- package/dist/{files-BqIF7iu4.js → files-BSMSnQMa.js} +2 -2
- package/dist/{files-BqIF7iu4.js.map → files-BSMSnQMa.js.map} +1 -1
- package/dist/files-DmZGPsWK.js +2 -0
- package/dist/{files-Cq99wif-.js → files-TNrZJQ3Y.js} +15 -4
- package/dist/{files-Cq99wif-.js.map → files-TNrZJQ3Y.js.map} +1 -1
- package/dist/files-Tb8wY0Ze.js +2 -0
- package/dist/{git-Dnl-kXgD.js → git-DNGtrOg9.js} +2 -2
- package/dist/{git-Dnl-kXgD.js.map → git-DNGtrOg9.js.map} +1 -1
- package/dist/{harness-3QUEWx8G.js → harness-CDRaaGvR.js} +2 -2
- package/dist/{harness-3QUEWx8G.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-B8Mp_VXZ.js → images-BpwFDT1E.js} +6 -6
- package/dist/{images-B8Mp_VXZ.js.map → images-BpwFDT1E.js.map} +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.js +24 -17
- package/dist/index.js.map +1 -1
- package/dist/init-1THeGfut.js +2 -0
- package/dist/{init-B8mw86E6.js → init-CBWt1rZT.js} +4 -4
- package/dist/{init-B8mw86E6.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-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-Ge_x32XE.js} +3 -3
- package/dist/{options-CWYB613o.js.map → options-Ge_x32XE.js.map} +1 -1
- package/dist/{plan-CsPE24pp.js → plan-BqBadHYj.js} +14 -7
- package/dist/plan-BqBadHYj.js.map +1 -0
- package/dist/{preflight-DKZjb7ZH.js → preflight-CFtZNTLt.js} +1 -1
- package/dist/{preflight-r0DgibQV.js → preflight-CyaAZE9r.js} +3 -3
- package/dist/{preflight-r0DgibQV.js.map → preflight-CyaAZE9r.js.map} +1 -1
- package/dist/{prepare-DOkvAa9D.js → prepare-Dl7-t3fO.js} +2 -2
- package/dist/{prepare-CTLg3nuk.js → prepare-Zr1xOMUX.js} +4 -4
- package/dist/{prepare-CTLg3nuk.js.map → prepare-Zr1xOMUX.js.map} +1 -1
- package/dist/{provenance--cVNo80L.js → provenance-Byl2T6LJ.js} +2 -2
- package/dist/{provenance--cVNo80L.js.map → provenance-Byl2T6LJ.js.map} +1 -1
- package/dist/{providers-DNLQzVnc.js → providers-Cflw7Ks-.js} +3 -3
- package/dist/{providers-DNLQzVnc.js.map → providers-Cflw7Ks-.js.map} +1 -1
- package/dist/{providers-B2cSfewm.js → providers-SBMExI53.js} +1 -1
- package/dist/query-CvutWHaL.js +2 -0
- package/dist/{query-DTtIZaua.js → query-DUSLlic0.js} +2 -2
- package/dist/{query-DTtIZaua.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-BFlKK2j6.js → server-yFVUxAm0.js} +6 -6
- package/dist/{server-BFlKK2j6.js.map → server-yFVUxAm0.js.map} +1 -1
- package/dist/source-Cmc5SKFn.js +2 -0
- package/dist/{source-B2ASbTdc.js → source-M3gS517R.js} +2 -2
- package/dist/{source-B2ASbTdc.js.map → source-M3gS517R.js.map} +1 -1
- package/dist/{src-Bo8GFUXg.js → src--L8B4WGa.js} +1 -1
- package/dist/{src-zOeHvrzR.js → src-79JhW-zG.js} +13 -13
- package/dist/{src-zOeHvrzR.js.map → src-79JhW-zG.js.map} +1 -1
- package/dist/{src-BoziVhKa.js → src-BLN459er.js} +1 -1
- package/dist/src-Bz66jDtE.js +3 -0
- package/dist/{src-CPkDaNxp.js → src-CfUwg9UY.js} +1 -1
- package/dist/{src-BHFNhTTQ.js → src-CokPbYCb.js} +45 -45
- package/dist/{src-BHFNhTTQ.js.map → src-CokPbYCb.js.map} +1 -1
- package/dist/{src-CDiGyoDt.js → src-DH0jhpoi.js} +1 -1
- package/dist/{src-CVoCJjEe.js → src-DTcalvuF.js} +2 -2
- package/dist/{src-CVoCJjEe.js.map → src-DTcalvuF.js.map} +1 -1
- package/dist/src-DV_3QDHA.js +4 -0
- package/dist/{src-CqsERnCZ.js → src-IOr1rhEg.js} +4 -4
- package/dist/{src-CqsERnCZ.js.map → src-IOr1rhEg.js.map} +1 -1
- package/dist/src-Ljh2vKXm.js +3 -0
- package/dist/{state-DBKcUJ2u.js → state-DEj_utaE.js} +10 -10
- package/dist/{state-DBKcUJ2u.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-CahgSiVt.js → summary--FBuB_sr.js} +3 -3
- package/dist/{summary-CahgSiVt.js.map → summary--FBuB_sr.js.map} +1 -1
- package/dist/{summary-BBABbon9.js → summary-D012KlUM.js} +5 -5
- package/dist/{summary-BBABbon9.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-53YHomyk.js → tools-CJHw-zCo.js} +3 -3
- package/dist/{tools-53YHomyk.js.map → tools-CJHw-zCo.js.map} +1 -1
- package/dist/{types-CoAfC-_k.d.ts → types-BsRSknLe.d.ts} +5 -4
- package/dist/view/index.d.ts +1 -1
- package/dist/view/index.js +2 -2
- package/dist/{views-Drl2OXuj.js → views-jhL9Jb8A.js} +4 -4
- package/dist/{views-Drl2OXuj.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-BT4jd04k.js → workspace-C4_J0pqb.js} +3 -3
- package/dist/{workspace-BT4jd04k.js.map → workspace-C4_J0pqb.js.map} +1 -1
- package/dist/{workspace-U6M1gKzo.js → workspace-wudSz_W-.js} +1 -1
- package/package.json +9 -8
- package/dist/assemble-DYCDgbTq.js.map +0 -1
- package/dist/assemble-DykFydSU.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/db-BVE1kZ2w.js +0 -2
- package/dist/files-Cs8tbYQY.js +0 -2
- package/dist/files-wUtoO5aA.js +0 -2
- package/dist/init-DDEpamaf.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/plan-CsPE24pp.js.map +0 -1
- package/dist/query-BWc_5Lhe.js +0 -2
- 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-CFxHPwQA.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/views-BhGinAz_.js +0 -3
- package/dist/worker-entry-mCctDzig.js.map +0 -1
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume-BL4Yw7Ld.js","names":[],"sources":["../src/live.ts","../src/resume.ts"],"mappings":"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"}
|
package/dist/sandbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { V as FakeSandboxDescriptor, dt as SandboxDescriptor, w as DockerSandboxDescriptor } from "./types-
|
|
1
|
+
import { V as FakeSandboxDescriptor, dt as SandboxDescriptor, w as DockerSandboxDescriptor } from "./types-BsRSknLe.js";
|
|
2
2
|
//#region src/sandbox.d.ts
|
|
3
3
|
export type DockerOptions = Omit<DockerSandboxDescriptor, 'kind' | 'dockerfile'> & {
|
|
4
4
|
/** Relative to the file that calls `docker()`, or an absolute path or `URL`. */
|
|
@@ -4,11 +4,11 @@ import { s as recordFileName } from "./ids-Bp6ut7ZD.js";
|
|
|
4
4
|
import { l as parseDebugLog, u as parseNdjson } from "./debug-D24NOQH1.js";
|
|
5
5
|
import { i as parseAttemptKey, t as attemptDebugDir } from "./files-Ca0d6Uq3.js";
|
|
6
6
|
import { o as sortAnalyses } from "./analysis-BV3TCznv.js";
|
|
7
|
-
import { v as indexFiles } from "./model-
|
|
7
|
+
import { v as indexFiles } from "./model-DyQbu7KF.js";
|
|
8
8
|
import { o as readableDebugRequest } from "./record-CbuQH4l1.js";
|
|
9
9
|
import { c as readableLiveProgress, i as isFinished, n as LIVE_FILE } from "./live-DZkCtmNP.js";
|
|
10
|
-
import { l as recordFile, p as scratchDir } from "./files-
|
|
11
|
-
import { n as resolveFile, t as listHeaders } from "./source-
|
|
10
|
+
import { l as recordFile, p as scratchDir } from "./files-TNrZJQ3Y.js";
|
|
11
|
+
import { n as resolveFile, t as listHeaders } from "./source-M3gS517R.js";
|
|
12
12
|
import { createReadStream, existsSync } from "node:fs";
|
|
13
13
|
import { hostname } from "node:os";
|
|
14
14
|
import { extname, join, resolve, sep } from "node:path";
|
|
@@ -75,7 +75,7 @@ async function liveTranscript(source, runId, key) {
|
|
|
75
75
|
const [realBase, real] = await Promise.all([realpath(base), realpath(join(base, "evals", recordFileName(key)))]);
|
|
76
76
|
if (!real.startsWith(realBase + sep)) return null;
|
|
77
77
|
const record = JSON.parse(await readFile(real, "utf8"));
|
|
78
|
-
const { transcriptLines } = await import("./assemble-
|
|
78
|
+
const { transcriptLines } = await import("./assemble-D8sZ4Jiv.js");
|
|
79
79
|
return redactSecrets(transcriptLines(record));
|
|
80
80
|
} catch {
|
|
81
81
|
return null;
|
|
@@ -300,7 +300,7 @@ function createStudioApp(options) {
|
|
|
300
300
|
return c.json(body, 200, noStore);
|
|
301
301
|
}
|
|
302
302
|
if (target.kind === "analysis") {
|
|
303
|
-
const { listAnalyses, listNotes } = await import("./files-
|
|
303
|
+
const { listAnalyses, listNotes } = await import("./files-Tb8wY0Ze.js");
|
|
304
304
|
const entries = await listAnalyses(source.root, [source.historyDir], target.runId, true);
|
|
305
305
|
const notes = await listNotes(source.root, target.runId);
|
|
306
306
|
const index = {
|
|
@@ -349,4 +349,4 @@ async function serveApp(c, dir, path) {
|
|
|
349
349
|
//#endregion
|
|
350
350
|
export { watchLive as a, newToken as i, allowedHosts as n, createStudioApp as r, COOKIE as t };
|
|
351
351
|
|
|
352
|
-
//# sourceMappingURL=server-
|
|
352
|
+
//# sourceMappingURL=server-yFVUxAm0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-
|
|
1
|
+
{"version":3,"file":"server-yFVUxAm0.js","names":[],"sources":["../src/studio/live.ts","../src/studio/server.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as listRuns, f as runDir, l as recordFile, p as scratchDir } from "./files-
|
|
1
|
+
import { a as listRuns, f as runDir, l as recordFile, p as scratchDir } from "./files-TNrZJQ3Y.js";
|
|
2
2
|
import { join, sep } from "node:path";
|
|
3
3
|
import { realpath, stat } from "node:fs/promises";
|
|
4
4
|
//#region src/studio/source.ts
|
|
@@ -37,4 +37,4 @@ async function resolveFile(source, target) {
|
|
|
37
37
|
//#endregion
|
|
38
38
|
export { resolveFile as n, listHeaders as t };
|
|
39
39
|
|
|
40
|
-
//# sourceMappingURL=source-
|
|
40
|
+
//# sourceMappingURL=source-M3gS517R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-
|
|
1
|
+
{"version":3,"file":"source-M3gS517R.js","names":[],"sources":["../src/studio/source.ts"],"mappings":";;;;;AAcA,eAAsB,YAAY,QAA+C;CAC/E,MAAM,OAAO,MAAM,SAAS,OAAO,MAAM,OAAO,YAAY,IAAI;CAChE,IAAI,CAAC,OAAO,SAAS,OAAO;CAC5B,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,KAAK,CAAC;CAC5C,MAAM,UAAU,MAAM,SAAS,OAAO,MAAM,WAAW,OAAO,IAAI,GAAG,KAAK;CAC1E,OAAO,CAAC,GAAG,MAAM,GAAG,QAAQ,QAAQ,MAAM,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MACrE,EAAE,QAAQ,EAAE,QAAQ,KAAK,CAC3B;AACF;AAEA,MAAM,UAAU,WACd,OAAO,UAAU,CAAC,OAAO,YAAY,WAAW,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,UAAU;AAEpF,eAAe,OAAO,MAAc,MAAsC;CACxE,IAAI;EACF,MAAM,CAAC,UAAU,QAAQ,MAAM,QAAQ,IAAI,CAAC,SAAS,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC;EAC3E,IAAI,CAAC,KAAK,WAAW,WAAW,GAAG,GAAG,OAAO;EAC7C,QAAQ,MAAM,KAAK,IAAI,EAAA,CAAG,OAAO,IAAI,OAAO;CAC9C,QAAQ;EACN,OAAO;CACT;AACF;;;;;AAMA,eAAsB,YACpB,QACA,QACwB;CACxB,KAAK,MAAM,OAAO,OAAO,MAAM,GAAG;EAChC,MAAM,SAAS,MAAM,OAAO,KAAK,WAAW,KAAK,OAAO,KAAK,CAAC;EAC9D,IAAI,CAAC,QAAQ;EACb,IAAI,OAAO,SAAS,UAAU,OAAO;EACrC,MAAM,YAAY,OAAO,KAAK,OAAO,KAAK;EAC1C,OAAO,OAAO,WAAW,KAAK,WAAW,GAAG,OAAO,QAAQ,CAAC;CAC9D;CACA,OAAO;AACT"}
|