lastlight-evals 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -8
- package/dashboard/dist/assets/index-DbWEwzO3.css +1 -0
- package/dashboard/dist/assets/index-GvQi4Peq.js +264 -0
- package/dashboard/dist/index.html +2 -2
- package/datasets/pr-review/README.md +58 -0
- package/datasets/pr-review/martian-leaderboard.json +5785 -0
- package/datasets/pr-review/tier.json +5 -0
- package/dist/add-case.js +295 -31
- package/dist/add-case.js.map +1 -1
- package/dist/clean.js +127 -0
- package/dist/clean.js.map +1 -0
- package/dist/discovery.js +10 -4
- package/dist/discovery.js.map +1 -1
- package/dist/fake-github.js +187 -6
- package/dist/fake-github.js.map +1 -1
- package/dist/grade.js +266 -2
- package/dist/grade.js.map +1 -1
- package/dist/judge.js +145 -0
- package/dist/judge.js.map +1 -0
- package/dist/mechanism.test.js +350 -2
- package/dist/mechanism.test.js.map +1 -1
- package/dist/report.js +157 -10
- package/dist/report.js.map +1 -1
- package/dist/run-instance.js +192 -25
- package/dist/run-instance.js.map +1 -1
- package/dist/run.js +216 -38
- package/dist/run.js.map +1 -1
- package/dist/sandbox-preflight.js +107 -0
- package/dist/sandbox-preflight.js.map +1 -0
- package/dist/seed.js +195 -8
- package/dist/seed.js.map +1 -1
- package/dist/serve.js +2 -0
- package/dist/serve.js.map +1 -1
- package/models.json +1 -0
- package/package.json +2 -2
- package/dashboard/dist/assets/index-YwScAAxm.js +0 -238
- package/dashboard/dist/assets/index-uU9Sj3M4.css +0 -1
package/dist/clean.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `lastlight-evals clean` — finalize eval runs that were killed or crashed
|
|
3
|
+
* mid-flight. Such runs stay frozen in the dashboard as "running" because their
|
|
4
|
+
* scorecard kept `live: true` (the final write never happened). This finds runs
|
|
5
|
+
* that are still `live` but whose heartbeat has gone stale (the writing process
|
|
6
|
+
* is gone) and either marks them interrupted (default — keeps the partial
|
|
7
|
+
* scorecard, cost, and transcripts for inspection) or removes the run dir
|
|
8
|
+
* (`--delete`).
|
|
9
|
+
*
|
|
10
|
+
* The same staleness rule drives the dashboard (see `indexRun` /
|
|
11
|
+
* `heartbeatFresh`), so `clean` only ever touches runs the dashboard already
|
|
12
|
+
* shows as interrupted — never a genuinely live one.
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readFileSync, readdirSync, rmSync } from "node:fs";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
import chalk from "chalk";
|
|
17
|
+
import { resultsRoot } from "./paths.js";
|
|
18
|
+
import { writeScorecard, heartbeatFresh } from "./report.js";
|
|
19
|
+
const CLEAN_USAGE = `lastlight-evals clean [options]
|
|
20
|
+
|
|
21
|
+
Finalize eval runs killed or crashed mid-flight (stuck showing "running" in the
|
|
22
|
+
dashboard). A run is "dead" when its scorecard is still \`live\` but its heartbeat
|
|
23
|
+
has gone stale — the process that was writing it is gone.
|
|
24
|
+
|
|
25
|
+
Options:
|
|
26
|
+
--delete Remove the run directory instead of marking it interrupted
|
|
27
|
+
--older-than <dur> Only clean runs older than this (e.g. 30m, 2h, 1d)
|
|
28
|
+
--dry-run List what would change; write nothing
|
|
29
|
+
-h, --help Show this help`;
|
|
30
|
+
/** Parse `30m` / `2h` / `1d` / `45s` into ms; undefined if unset, null if bad. */
|
|
31
|
+
function parseDuration(s) {
|
|
32
|
+
if (!s)
|
|
33
|
+
return undefined;
|
|
34
|
+
const m = s.trim().match(/^(\d+)\s*(s|m|h|d)$/i);
|
|
35
|
+
if (!m)
|
|
36
|
+
return null;
|
|
37
|
+
const unit = { s: 1e3, m: 60e3, h: 3600e3, d: 86400e3 };
|
|
38
|
+
return Number(m[1]) * unit[m[2].toLowerCase()];
|
|
39
|
+
}
|
|
40
|
+
function parseCard(file) {
|
|
41
|
+
try {
|
|
42
|
+
return JSON.parse(readFileSync(file, "utf8"));
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null; // half-written / malformed — skip
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Find every run that is `live` on disk but whose heartbeat is stale/absent. */
|
|
49
|
+
function findDeadRuns(root, nowMs) {
|
|
50
|
+
const out = [];
|
|
51
|
+
if (!existsSync(root))
|
|
52
|
+
return out;
|
|
53
|
+
const consider = (tierKey, dir, cardDir) => {
|
|
54
|
+
const card = parseCard(join(cardDir, "scorecard.json"));
|
|
55
|
+
const meta = card?.meta;
|
|
56
|
+
if (!card || !meta?.live)
|
|
57
|
+
return; // only in-flight runs
|
|
58
|
+
if (heartbeatFresh(meta.heartbeat, nowMs))
|
|
59
|
+
return; // genuinely alive
|
|
60
|
+
out.push({ tierKey, dir, path: cardDir, card, generatedAt: meta.generatedAt ?? "", progress: meta.progress });
|
|
61
|
+
};
|
|
62
|
+
for (const tier of readdirSync(root, { withFileTypes: true })) {
|
|
63
|
+
if (!tier.isDirectory())
|
|
64
|
+
continue;
|
|
65
|
+
const tierDir = join(root, tier.name);
|
|
66
|
+
for (const ent of readdirSync(tierDir, { withFileTypes: true })) {
|
|
67
|
+
if (ent.isDirectory())
|
|
68
|
+
consider(tier.name, ent.name, join(tierDir, ent.name));
|
|
69
|
+
}
|
|
70
|
+
consider(tier.name, "", tierDir); // legacy flat run
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
export async function runClean(args = []) {
|
|
75
|
+
if (args.includes("-h") || args.includes("--help")) {
|
|
76
|
+
console.log(CLEAN_USAGE);
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
const del = args.includes("--delete");
|
|
80
|
+
const dryRun = args.includes("--dry-run");
|
|
81
|
+
const i = args.indexOf("--older-than");
|
|
82
|
+
const olderThanMs = parseDuration(i >= 0 ? args[i + 1] : undefined);
|
|
83
|
+
if (olderThanMs === null) {
|
|
84
|
+
console.error(`clean: bad --older-than "${args[i + 1]}" (use e.g. 30m, 2h, 1d).`);
|
|
85
|
+
return 2;
|
|
86
|
+
}
|
|
87
|
+
const root = resultsRoot();
|
|
88
|
+
const nowMs = Date.now();
|
|
89
|
+
let dead = findDeadRuns(root, nowMs);
|
|
90
|
+
if (olderThanMs !== undefined) {
|
|
91
|
+
dead = dead.filter((r) => {
|
|
92
|
+
const t = Date.parse(r.generatedAt);
|
|
93
|
+
// Unparseable timestamp ⇒ treat as old enough to clean.
|
|
94
|
+
return Number.isFinite(t) ? nowMs - t >= olderThanMs : true;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (!dead.length) {
|
|
98
|
+
console.log(chalk.green("No interrupted runs to clean — every live run has a fresh heartbeat."));
|
|
99
|
+
return 0;
|
|
100
|
+
}
|
|
101
|
+
const verb = del ? "delete" : "mark interrupted";
|
|
102
|
+
console.log(chalk.bold(`${dryRun ? "Would " : ""}${verb} ${dead.length} interrupted run(s):`));
|
|
103
|
+
for (const r of dead) {
|
|
104
|
+
const label = `${r.tierKey}/${r.dir || "(flat run)"}`;
|
|
105
|
+
console.log(` • ${label} ${chalk.dim(`${r.generatedAt} ${r.progress ?? ""}`)}`);
|
|
106
|
+
if (dryRun)
|
|
107
|
+
continue;
|
|
108
|
+
// Never `rm` a legacy flat run's dir — it IS the tier dir and would take
|
|
109
|
+
// sibling runs with it. Mark those interrupted instead.
|
|
110
|
+
if (del && r.dir) {
|
|
111
|
+
rmSync(r.path, { recursive: true, force: true });
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
const card = r.card;
|
|
115
|
+
card.meta = { ...card.meta, live: false, interrupted: true, pending: [] };
|
|
116
|
+
writeScorecard(r.path, card);
|
|
117
|
+
if (del && !r.dir)
|
|
118
|
+
console.log(chalk.dim(" (flat run — marked interrupted rather than deleting the tier dir)"));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (dryRun)
|
|
122
|
+
console.log(chalk.dim("\n(dry-run — nothing written. Re-run without --dry-run to apply.)"));
|
|
123
|
+
else
|
|
124
|
+
console.log(chalk.green(`\n✓ ${del ? "removed" : "finalized"} ${dead.length} run(s).`));
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../src/clean.ts"],"names":[],"mappings":"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"}
|
package/dist/discovery.js
CHANGED
|
@@ -78,11 +78,17 @@ export function discoverTiers(opts) {
|
|
|
78
78
|
add(scanRoot(join(resolve(opts.overlayDir), "evals", "datasets"), "overlay"));
|
|
79
79
|
return tiers;
|
|
80
80
|
}
|
|
81
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* Load a tier's instances (no filtering). The `--instance` / `EVAL_INSTANCE`
|
|
83
|
+
* filter is applied by the sole caller (`run.ts`) with exact, comma-split
|
|
84
|
+
* `instance_id` matching — do NOT re-filter here. An earlier substring filter on
|
|
85
|
+
* this line silently shadowed that one: it treated the whole `EVAL_INSTANCE`
|
|
86
|
+
* value (commas and all) as a single substring, so a comma-separated list matched
|
|
87
|
+
* nothing and the run aborted with "no instances matched" before the real filter
|
|
88
|
+
* ran. One filter, one place.
|
|
89
|
+
*/
|
|
82
90
|
export function loadInstances(tier) {
|
|
83
|
-
|
|
84
|
-
const filter = process.env.EVAL_INSTANCE?.trim();
|
|
85
|
-
return filter ? all.filter((i) => i.instance_id.includes(filter)) : all;
|
|
91
|
+
return JSON.parse(readFileSync(tier.instancesPath, "utf8"));
|
|
86
92
|
}
|
|
87
93
|
/**
|
|
88
94
|
* Resolve the workflow to run for one instance: explicit `instance.workflow`
|
package/dist/discovery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuB1C,yEAAyE;AACzE,SAAS,QAAQ,CAAC,IAAY,EAAE,MAAkB;IAChD,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAW,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAAE,SAAS;QAEzC,IAAI,QAAQ,GAAiB,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAiB,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,KAAK;YAC5B,MAAM;YACN,IAAI,EAAE,GAAG;YACT,aAAa;YACb,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAqB;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QAC3B,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,eAAe;QAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,UAAU;QAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACnG,OAAO,KAAK,CAAC;AACf,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/fake-github.js
CHANGED
|
@@ -12,6 +12,19 @@
|
|
|
12
12
|
* binds to 127.0.0.1 on an ephemeral port.
|
|
13
13
|
*/
|
|
14
14
|
import { createServer } from "node:http";
|
|
15
|
+
/** How the create-review `event` maps to a review `state`. */
|
|
16
|
+
function eventToState(event) {
|
|
17
|
+
switch (event) {
|
|
18
|
+
case "APPROVE":
|
|
19
|
+
return "APPROVED";
|
|
20
|
+
case "REQUEST_CHANGES":
|
|
21
|
+
return "CHANGES_REQUESTED";
|
|
22
|
+
case "COMMENT":
|
|
23
|
+
return "COMMENTED";
|
|
24
|
+
default:
|
|
25
|
+
return "PENDING";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
15
28
|
const NOW = "2026-01-01T00:00:00Z";
|
|
16
29
|
export async function startFakeGitHub(opts) {
|
|
17
30
|
const owner = opts.owner;
|
|
@@ -44,6 +57,64 @@ export async function startFakeGitHub(opts) {
|
|
|
44
57
|
}
|
|
45
58
|
const pulls = [];
|
|
46
59
|
let pullSeq = 1;
|
|
60
|
+
let reviewSeq = 5000;
|
|
61
|
+
// Changed files per PR, served at GET /pulls/:n/files. Populated after seeding
|
|
62
|
+
// via setPullFiles (the diff isn't known when the fake is constructed).
|
|
63
|
+
const pullFiles = new Map();
|
|
64
|
+
// Seed PRs (pr-review tier). Each PR also gets a SHADOW issue so the
|
|
65
|
+
// issue-comment + labels endpoints work on the PR number (GitHub models a PR
|
|
66
|
+
// as an issue), matching what the pr-review skill calls.
|
|
67
|
+
for (const seed of opts.pulls ?? []) {
|
|
68
|
+
pullSeq = Math.max(pullSeq, seed.number + 1);
|
|
69
|
+
pulls.push({
|
|
70
|
+
number: seed.number,
|
|
71
|
+
title: seed.title,
|
|
72
|
+
body: seed.body,
|
|
73
|
+
head: { ref: seed.head_ref, sha: seed.head_commit },
|
|
74
|
+
base: { ref: seed.base_ref, sha: seed.base_commit },
|
|
75
|
+
state: seed.state ?? "open",
|
|
76
|
+
merged: false,
|
|
77
|
+
user: { login: seed.user ?? "contributor" },
|
|
78
|
+
html_url: `https://github.com/${owner}/${repo}/pull/${seed.number}`,
|
|
79
|
+
reviews: (seed.reviews ?? []).map((r) => ({
|
|
80
|
+
id: reviewSeq++,
|
|
81
|
+
user: { login: r.user },
|
|
82
|
+
body: r.body,
|
|
83
|
+
state: r.state ?? "COMMENTED",
|
|
84
|
+
submitted_at: NOW,
|
|
85
|
+
comments: [],
|
|
86
|
+
})),
|
|
87
|
+
reviewComments: (seed.review_comments ?? []).map((c) => ({
|
|
88
|
+
id: commentSeq++,
|
|
89
|
+
user: { login: c.user },
|
|
90
|
+
path: c.path,
|
|
91
|
+
line: c.line,
|
|
92
|
+
body: c.body,
|
|
93
|
+
created_at: NOW,
|
|
94
|
+
})),
|
|
95
|
+
submitted: [],
|
|
96
|
+
});
|
|
97
|
+
// Shadow issue so /issues/:n[/comments|/labels] serve the PR number.
|
|
98
|
+
if (!issues.has(seed.number)) {
|
|
99
|
+
issues.set(seed.number, {
|
|
100
|
+
number: seed.number,
|
|
101
|
+
title: seed.title,
|
|
102
|
+
body: seed.body,
|
|
103
|
+
state: seed.state ?? "open",
|
|
104
|
+
user: { login: seed.user ?? "contributor" },
|
|
105
|
+
labels: [],
|
|
106
|
+
comments: (seed.issue_comments ?? []).map((c) => ({
|
|
107
|
+
id: commentSeq++,
|
|
108
|
+
user: { login: c.user },
|
|
109
|
+
body: c.body,
|
|
110
|
+
created_at: NOW,
|
|
111
|
+
})),
|
|
112
|
+
created_at: NOW,
|
|
113
|
+
updated_at: NOW,
|
|
114
|
+
html_url: `https://github.com/${owner}/${repo}/pull/${seed.number}`,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
47
118
|
const repoBase = `/repos/${owner}/${repo}`;
|
|
48
119
|
const server = createServer((req, res) => {
|
|
49
120
|
const method = req.method ?? "GET";
|
|
@@ -191,27 +262,118 @@ export async function startFakeGitHub(opts) {
|
|
|
191
262
|
// Pulls collection: /repos/:owner/:repo/pulls
|
|
192
263
|
if (path === `${repoBase}/pulls`) {
|
|
193
264
|
if (method === "GET") {
|
|
194
|
-
json(200, pulls);
|
|
265
|
+
json(200, pulls.map(serializePull));
|
|
195
266
|
return true;
|
|
196
267
|
}
|
|
197
268
|
if (method === "POST") {
|
|
198
269
|
const b = body;
|
|
270
|
+
const num = pullSeq++;
|
|
199
271
|
const pr = {
|
|
200
|
-
number:
|
|
272
|
+
number: num,
|
|
201
273
|
title: b.title,
|
|
202
274
|
body: b.body ?? "",
|
|
203
|
-
head: { ref: stripOwnerPrefix(b.head, owner) },
|
|
204
|
-
base: { ref: b.base },
|
|
275
|
+
head: { ref: stripOwnerPrefix(b.head, owner), sha: "0".repeat(40) },
|
|
276
|
+
base: { ref: b.base, sha: "0".repeat(40) },
|
|
205
277
|
state: "open",
|
|
206
|
-
|
|
278
|
+
merged: false,
|
|
279
|
+
user: { login: "last-light[bot]" },
|
|
280
|
+
html_url: `https://github.com/${owner}/${repo}/pull/${num}`,
|
|
281
|
+
reviews: [],
|
|
282
|
+
reviewComments: [],
|
|
283
|
+
submitted: [],
|
|
207
284
|
};
|
|
208
285
|
pulls.push(pr);
|
|
209
|
-
json(201, pr);
|
|
286
|
+
json(201, serializePull(pr));
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// Per-PR routes: /repos/:owner/:repo/pulls/:n[/reviews|/comments|/files]
|
|
291
|
+
const pullMatch = path.match(new RegExp(`^${escapeRe(repoBase)}/pulls/(\\d+)(/reviews|/comments|/files)?$`));
|
|
292
|
+
if (pullMatch) {
|
|
293
|
+
const num = Number(pullMatch[1]);
|
|
294
|
+
const sub = pullMatch[2];
|
|
295
|
+
const pr = pulls.find((p) => p.number === num);
|
|
296
|
+
if (!pr) {
|
|
297
|
+
json(404, { message: `pull ${num} not found` });
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
// /pulls/:n
|
|
301
|
+
if (!sub && method === "GET") {
|
|
302
|
+
json(200, serializePull(pr));
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
// /pulls/:n/reviews — list existing, or SUBMIT one (create_pull_request_review).
|
|
306
|
+
if (sub === "/reviews") {
|
|
307
|
+
if (method === "GET") {
|
|
308
|
+
json(200, pr.reviews.map(serializeReview));
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
if (method === "POST") {
|
|
312
|
+
const b = (body ?? {});
|
|
313
|
+
const review = {
|
|
314
|
+
id: reviewSeq++,
|
|
315
|
+
user: { login: "last-light[bot]" },
|
|
316
|
+
body: b.body ?? "",
|
|
317
|
+
state: eventToState(b.event),
|
|
318
|
+
commit_id: b.commit_id ?? pr.head.sha,
|
|
319
|
+
submitted_at: NOW,
|
|
320
|
+
comments: (b.comments ?? []).map((c) => ({
|
|
321
|
+
id: commentSeq++,
|
|
322
|
+
user: { login: "last-light[bot]" },
|
|
323
|
+
path: c.path,
|
|
324
|
+
line: c.line,
|
|
325
|
+
side: c.side,
|
|
326
|
+
position: c.position,
|
|
327
|
+
body: c.body,
|
|
328
|
+
created_at: NOW,
|
|
329
|
+
})),
|
|
330
|
+
};
|
|
331
|
+
pr.reviews.push(review);
|
|
332
|
+
pr.submitted.push(review);
|
|
333
|
+
pr.reviewComments.push(...review.comments);
|
|
334
|
+
json(200, serializeReview(review));
|
|
335
|
+
return true;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// /pulls/:n/comments — inline review comments.
|
|
339
|
+
if (sub === "/comments" && method === "GET") {
|
|
340
|
+
json(200, pr.reviewComments);
|
|
341
|
+
return true;
|
|
342
|
+
}
|
|
343
|
+
// /pulls/:n/files — the PR's changed files (computed from the seeded
|
|
344
|
+
// workspace's git diff; empty until setPullFiles is called). Pagination
|
|
345
|
+
// query params are ignored — the full set is returned in one page.
|
|
346
|
+
if (sub === "/files" && method === "GET") {
|
|
347
|
+
json(200, pullFiles.get(num) ?? []);
|
|
210
348
|
return true;
|
|
211
349
|
}
|
|
212
350
|
}
|
|
213
351
|
return false;
|
|
214
352
|
}
|
|
353
|
+
function serializePull(pr) {
|
|
354
|
+
return {
|
|
355
|
+
number: pr.number,
|
|
356
|
+
title: pr.title,
|
|
357
|
+
body: pr.body,
|
|
358
|
+
state: pr.state,
|
|
359
|
+
merged: pr.merged,
|
|
360
|
+
head: pr.head,
|
|
361
|
+
base: pr.base,
|
|
362
|
+
user: pr.user,
|
|
363
|
+
draft: false,
|
|
364
|
+
html_url: pr.html_url,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
function serializeReview(r) {
|
|
368
|
+
return {
|
|
369
|
+
id: r.id,
|
|
370
|
+
user: r.user,
|
|
371
|
+
body: r.body,
|
|
372
|
+
state: r.state,
|
|
373
|
+
commit_id: r.commit_id,
|
|
374
|
+
submitted_at: r.submitted_at,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
215
377
|
function serializeIssue(issue) {
|
|
216
378
|
return {
|
|
217
379
|
number: issue.number,
|
|
@@ -237,8 +399,27 @@ export async function startFakeGitHub(opts) {
|
|
|
237
399
|
commentsOn: (n) => (issues.get(n)?.comments ?? []).map((c) => c.body),
|
|
238
400
|
issueState: (n) => issues.get(n)?.state,
|
|
239
401
|
pulls: () => pulls,
|
|
402
|
+
submittedReviews: (n) => (pulls.find((p) => p.number === n)?.submitted ?? []).map((r) => ({
|
|
403
|
+
body: r.body,
|
|
404
|
+
event: stateToEvent(r.state),
|
|
405
|
+
comments: r.comments.map((c) => ({ path: c.path, line: c.line, side: c.side, body: c.body })),
|
|
406
|
+
})),
|
|
407
|
+
setPullFiles: (n, files) => pullFiles.set(n, files),
|
|
240
408
|
};
|
|
241
409
|
}
|
|
410
|
+
/** Inverse of {@link eventToState} — the grader reports the review's event. */
|
|
411
|
+
function stateToEvent(state) {
|
|
412
|
+
switch (state) {
|
|
413
|
+
case "APPROVED":
|
|
414
|
+
return "APPROVE";
|
|
415
|
+
case "CHANGES_REQUESTED":
|
|
416
|
+
return "REQUEST_CHANGES";
|
|
417
|
+
case "COMMENTED":
|
|
418
|
+
return "COMMENT";
|
|
419
|
+
default:
|
|
420
|
+
return "PENDING";
|
|
421
|
+
}
|
|
422
|
+
}
|
|
242
423
|
function escapeRe(s) {
|
|
243
424
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
244
425
|
}
|
package/dist/fake-github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-github.js","sourceRoot":"","sources":["../src/fake-github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fake-github.js","sourceRoot":"","sources":["../src/fake-github.ts"],"names":[],"mappings":"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"}
|