lastlight-evals 0.4.0 → 0.6.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-D5AO7YF_.js +274 -0
- package/dashboard/dist/assets/index-DllAFtF8.css +1 -0
- package/dashboard/dist/index.html +20 -3
- 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 +188 -12
- package/dist/add-case.js.map +1 -1
- 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 +252 -0
- 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 +332 -3
- package/dist/mechanism.test.js.map +1 -1
- package/dist/report.js +123 -1
- package/dist/report.js.map +1 -1
- package/dist/run-instance.js +152 -14
- package/dist/run-instance.js.map +1 -1
- package/dist/run.js +175 -36
- 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 +223 -0
- package/dist/seed.js.map +1 -1
- package/models.json +1 -0
- package/package.json +2 -2
- package/dashboard/dist/assets/index-D6qxQ8uN.js +0 -258
- package/dashboard/dist/assets/index-DYwJHkLo.css +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pr-review",
|
|
3
|
+
"defaultWorkflow": "pr-review",
|
|
4
|
+
"description": "PR review precision — the posted review scored against a gold set via LLM judge (precision/recall/F0.5). Import cases with `scripts/import-martian.ts` (Martian Code Review Bench). Heavy: clones real repos + calls a judge model."
|
|
5
|
+
}
|
package/dist/add-case.js
CHANGED
|
@@ -26,30 +26,40 @@ import { tmpdir } from "node:os";
|
|
|
26
26
|
import { join, resolve } from "node:path";
|
|
27
27
|
import chalk from "chalk";
|
|
28
28
|
import { ensureRepoCache } from "./seed.js";
|
|
29
|
-
const ADD_CASE_USAGE = `lastlight-evals add-case --pr <url> | --issue <url> [options]
|
|
29
|
+
const ADD_CASE_USAGE = `lastlight-evals add-case --pr <url> --review|--code-fix | --issue <url> [options]
|
|
30
30
|
|
|
31
|
-
Scaffold an eval instance from a real GitHub PR (code-fix) or issue (triage).
|
|
31
|
+
Scaffold an eval instance from a real GitHub PR (pr-review / code-fix) or issue (triage).
|
|
32
|
+
|
|
33
|
+
A PR can seed two different evals, so --pr requires a kind:
|
|
34
|
+
--pr <url> --review PR-review case: the human review is the gold set (pr-review tier)
|
|
35
|
+
--pr <url> --code-fix Code-fix case: hide the fix, the agent must reproduce it (build)
|
|
36
|
+
--issue <url> Triage case (issue-triage)
|
|
32
37
|
|
|
33
38
|
Options:
|
|
34
|
-
--pr <url> GitHub PR url
|
|
39
|
+
--pr <url> GitHub PR url (pick --review or --code-fix)
|
|
40
|
+
--review With --pr → a pr-review case (gold = the PR's human review)
|
|
41
|
+
--code-fix With --pr → a code-fix (build) case
|
|
35
42
|
--issue <url> GitHub issue url → a triage case
|
|
36
|
-
--tier <name> Target tier dir (default: code-fix for --pr, triage for --issue)
|
|
43
|
+
--tier <name> Target tier dir (default: pr-review/code-fix for --pr, triage for --issue)
|
|
37
44
|
--id <slug> instance_id (default: derived from repo + number)
|
|
38
45
|
--datasets <dir> Datasets root to write into (a <tier>/ subdir)
|
|
39
46
|
--overlay <dir> Write into <dir>/evals/datasets instead
|
|
40
|
-
--
|
|
41
|
-
|
|
42
|
-
--
|
|
43
|
-
|
|
47
|
+
--severity <level> (--review) default severity for candidate gold comments
|
|
48
|
+
(low|medium|high|critical; default medium — refine after).
|
|
49
|
+
--include-bots (--review) keep review comments from bots (default: skipped)
|
|
50
|
+
--test-cmd "<cmd>" (--code-fix) Held-out test command (default: node --test). Stored as test_cmd.
|
|
51
|
+
--setup-cmd "<cmd>" (--code-fix) Install/build run before tests (e.g. "npm ci"). Stored as setup_cmd.
|
|
52
|
+
--hold-out (--code-fix) SWE-bench style: hold the PR's test files out of the
|
|
53
|
+
agent's repo and apply them only at grade time, scored by named
|
|
44
54
|
FAIL_TO_PASS. Default is SUITE mode — grade on the repo's own
|
|
45
55
|
test_cmd run against the agent's final tree (nothing held out).
|
|
46
|
-
--pass-list (hold-out only) Enumerate every green test in PASS_TO_PASS.
|
|
56
|
+
--pass-list (--code-fix, hold-out only) Enumerate every green test in PASS_TO_PASS.
|
|
47
57
|
Default is PASS_TO_PASS=["*"] (the whole suite must stay green).
|
|
48
|
-
--no-validate Don't run the repo's tests to validate the case (just scaffold)
|
|
58
|
+
--no-validate (--code-fix) Don't run the repo's tests to validate the case (just scaffold)
|
|
49
59
|
--dry-run Print the proposed instance JSON; don't write
|
|
50
60
|
-h, --help Show this help
|
|
51
61
|
|
|
52
|
-
|
|
62
|
+
--code-fix runs the repo's tests/setup (real code) — only use trusted repos.`;
|
|
53
63
|
// ── small shells ────────────────────────────────────────────────────────────
|
|
54
64
|
function sh(bin, args, cwd) {
|
|
55
65
|
return execFileSync(bin, args, { cwd, encoding: "utf8", stdio: ["ignore", "pipe", "pipe"], maxBuffer: 64 * 1024 * 1024 });
|
|
@@ -88,6 +98,17 @@ function parseRepoFromUrl(url) {
|
|
|
88
98
|
function slugify(s) {
|
|
89
99
|
return s.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60);
|
|
90
100
|
}
|
|
101
|
+
/** The `prreview__<slug>-<n>` id slug — case-preserving, keeps `_`/`-`. Matches
|
|
102
|
+
* `scripts/import-martian.ts`'s `slug` so authored + imported ids are identical. */
|
|
103
|
+
function reviewSlug(s) {
|
|
104
|
+
return s.replace(/[^a-zA-Z0-9_-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60);
|
|
105
|
+
}
|
|
106
|
+
/** Trim to n chars with an ellipsis marker (port of import-martian's `truncate`,
|
|
107
|
+
* so `pr.body`/gold descriptions match the imported dataset's bounds). */
|
|
108
|
+
function truncate(s, n) {
|
|
109
|
+
const t = (s ?? "").trim();
|
|
110
|
+
return t.length > n ? t.slice(0, n) + "\n\n[…truncated]" : t;
|
|
111
|
+
}
|
|
91
112
|
const TEST_PATH = /(^|\/)(tests?|__tests__|spec)\/|[._-](test|spec)\.[a-z0-9]+$/i;
|
|
92
113
|
function isTestPath(p) {
|
|
93
114
|
return TEST_PATH.test(p);
|
|
@@ -244,6 +265,130 @@ async function fromPr(url, o) {
|
|
|
244
265
|
};
|
|
245
266
|
return emit(inst, "code-fix", "build", o);
|
|
246
267
|
}
|
|
268
|
+
/** Approve/LGTM/empty-class noise we don't want as gold findings. */
|
|
269
|
+
const NOISE = /^\s*(lgtm|looks good(?: to me)?|approved?|ship it|\+1|👍|:\+1:|nit)?\s*[.!]?\s*$/i;
|
|
270
|
+
function isNoise(body) {
|
|
271
|
+
return NOISE.test((body ?? "").trim());
|
|
272
|
+
}
|
|
273
|
+
const BOT_LOGIN = /\[bot\]$|^(coderabbitai|github-actions|dependabot|codecov|sonarcloud|renovate|greptile)/i;
|
|
274
|
+
function isBot(user) {
|
|
275
|
+
return user?.type === "Bot" || BOT_LOGIN.test(user?.login ?? "");
|
|
276
|
+
}
|
|
277
|
+
/** Build candidate `review_gold` from the PR's human review — inline comments
|
|
278
|
+
* (the substance) + substantive top-level review bodies. Skips reply threads,
|
|
279
|
+
* approve/LGTM noise, and (unless --include-bots) bot comments; keeps outdated
|
|
280
|
+
* comments (via `original_line`) but flags them for the curator. Dedups by
|
|
281
|
+
* file + the comment's first 120 chars. */
|
|
282
|
+
function candidateGold(comments, reviews, o) {
|
|
283
|
+
const sev = o.severity ?? "medium";
|
|
284
|
+
const out = [];
|
|
285
|
+
const seen = new Set();
|
|
286
|
+
const push = (c) => {
|
|
287
|
+
const key = `${c.file ?? ""}::${c.description.slice(0, 120)}`;
|
|
288
|
+
if (seen.has(key))
|
|
289
|
+
return;
|
|
290
|
+
seen.add(key);
|
|
291
|
+
out.push(c);
|
|
292
|
+
};
|
|
293
|
+
for (const c of comments) {
|
|
294
|
+
if (c.in_reply_to_id != null)
|
|
295
|
+
continue; // keep only thread roots
|
|
296
|
+
const bot = isBot(c.user);
|
|
297
|
+
if (bot && !o.includeBots)
|
|
298
|
+
continue;
|
|
299
|
+
const body = (c.body ?? "").trim();
|
|
300
|
+
if (!body || isNoise(body))
|
|
301
|
+
continue;
|
|
302
|
+
const outdated = c.line == null && c.original_line != null;
|
|
303
|
+
const line = c.line ?? c.original_line ?? undefined;
|
|
304
|
+
push({
|
|
305
|
+
...(c.path ? { file: c.path } : {}),
|
|
306
|
+
...(line != null ? { line } : {}),
|
|
307
|
+
severity: sev,
|
|
308
|
+
description: truncate(body, 2000),
|
|
309
|
+
who: c.user?.login ?? "?",
|
|
310
|
+
outdated,
|
|
311
|
+
bot,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
for (const r of reviews ?? []) {
|
|
315
|
+
if ((r.state ?? "").toUpperCase() === "APPROVED")
|
|
316
|
+
continue; // approve summaries aren't findings
|
|
317
|
+
const bot = isBot(r.author);
|
|
318
|
+
if (bot && !o.includeBots)
|
|
319
|
+
continue;
|
|
320
|
+
const body = (r.body ?? "").trim();
|
|
321
|
+
if (!body || isNoise(body))
|
|
322
|
+
continue;
|
|
323
|
+
push({ severity: sev, description: truncate(body, 2000), who: r.author?.login ?? "?", outdated: false, bot });
|
|
324
|
+
}
|
|
325
|
+
return out;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Author a `pr-review` case from a real PR: the PR's human review is the gold
|
|
329
|
+
* set. Pure metadata extraction — no clone/worktree/test run (there's nothing to
|
|
330
|
+
* validate). Byte-compatible with `scripts/import-martian.ts`: the `pr` seed uses
|
|
331
|
+
* `baseRefOid`/`headRefOid` (not a merge-base) and the id uses `reviewSlug`.
|
|
332
|
+
*
|
|
333
|
+
* Anti-spoil: the review goes ONLY into `review_gold`. We never populate
|
|
334
|
+
* `pr.reviews`/`pr.review_comments` — the fake GitHub would serve those to the
|
|
335
|
+
* agent (see `seedWorkspacePrReview`), handing it the answer.
|
|
336
|
+
*/
|
|
337
|
+
async function fromPrReview(url, o) {
|
|
338
|
+
const { owner, name, number } = parseRepoFromUrl(url);
|
|
339
|
+
const repo = `${owner}/${name}`;
|
|
340
|
+
console.log(chalk.dim(`Resolving PR ${repo}#${number} (pr-review)…`));
|
|
341
|
+
const view = ghJson([
|
|
342
|
+
"pr", "view", url,
|
|
343
|
+
"--json", "number,title,body,baseRefName,headRefName,baseRefOid,headRefOid,author,reviews",
|
|
344
|
+
]);
|
|
345
|
+
const pr = {
|
|
346
|
+
number: view.number ?? number,
|
|
347
|
+
title: view.title ?? "",
|
|
348
|
+
body: truncate(view.body, 6000),
|
|
349
|
+
base_ref: view.baseRefName,
|
|
350
|
+
head_ref: view.headRefName,
|
|
351
|
+
base_commit: view.baseRefOid,
|
|
352
|
+
head_commit: view.headRefOid,
|
|
353
|
+
user: view.author?.login,
|
|
354
|
+
};
|
|
355
|
+
const comments = ghJson([
|
|
356
|
+
"api", "--paginate", `repos/${owner}/${name}/pulls/${pr.number}/comments`,
|
|
357
|
+
]);
|
|
358
|
+
const candidates = candidateGold(comments, view.reviews, o);
|
|
359
|
+
// Evidence block — the raw review signal the skill/human turns into curated
|
|
360
|
+
// review_gold (assign severity, prune bot/nit/outdated noise). Mirrors the
|
|
361
|
+
// triage evidence block.
|
|
362
|
+
console.log(chalk.bold(`\n# PR-review evidence for ${repo}#${pr.number}`));
|
|
363
|
+
if (candidates.length) {
|
|
364
|
+
console.log(chalk.dim(`\nCandidate review_gold (${candidates.length}) — refine severity + prune non-actionable:`));
|
|
365
|
+
for (const c of candidates) {
|
|
366
|
+
const loc = c.file ? `${c.file}${c.line != null ? `:${c.line}` : ""}` : "(summary)";
|
|
367
|
+
const tags = [c.outdated ? "outdated" : "", c.bot ? "bot" : ""].filter(Boolean).join(",");
|
|
368
|
+
const first = c.description.split("\n")[0].slice(0, 100);
|
|
369
|
+
console.log(` ${chalk.cyan(c.who)} · ${loc} ${chalk.dim(`[${c.severity}]`)} ${first}${tags ? chalk.yellow(` (${tags})`) : ""}`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
console.log(chalk.yellow("\n⚠ No usable human review comments — review_gold is EMPTY. Author it by hand from the PR diff " +
|
|
374
|
+
"before running, or the case can't be judged."));
|
|
375
|
+
}
|
|
376
|
+
console.log(chalk.yellow("\n⚠ Severity is a default guess (GitHub comments carry none) — set it per real impact, and drop " +
|
|
377
|
+
"comments that aren't concrete findings, before running."));
|
|
378
|
+
// Strip the evidence-only fields to leave clean GoldComment entries.
|
|
379
|
+
const review_gold = candidates.map(({ who, outdated, bot, ...g }) => g);
|
|
380
|
+
const id = o.id ?? `prreview__${reviewSlug(name)}-${pr.number}`;
|
|
381
|
+
const inst = {
|
|
382
|
+
instance_id: id,
|
|
383
|
+
repo,
|
|
384
|
+
workflow: "pr-review",
|
|
385
|
+
problem_statement: pr.title,
|
|
386
|
+
pr,
|
|
387
|
+
review_gold,
|
|
388
|
+
expect_github: { review_submitted: {} },
|
|
389
|
+
};
|
|
390
|
+
return emit(inst, "pr-review", "pr-review", o);
|
|
391
|
+
}
|
|
247
392
|
/** Run the held-out tests at base (red) and head (green); diff TAP to verdicts. */
|
|
248
393
|
function validate(opts) {
|
|
249
394
|
const tmp = mkdtempSync(join(tmpdir(), "ll-addcase-"));
|
|
@@ -487,11 +632,20 @@ export async function runAddCase(args = []) {
|
|
|
487
632
|
};
|
|
488
633
|
const pr = val("--pr");
|
|
489
634
|
const issue = val("--issue");
|
|
635
|
+
const severityArg = val("--severity");
|
|
636
|
+
if (severityArg && !["low", "medium", "high", "critical"].includes(severityArg)) {
|
|
637
|
+
console.error(`add-case: --severity must be one of low|medium|high|critical (got "${severityArg}").`);
|
|
638
|
+
return 2;
|
|
639
|
+
}
|
|
490
640
|
const o = {
|
|
491
641
|
tier: val("--tier"),
|
|
492
642
|
id: val("--id"),
|
|
493
643
|
datasets: val("--datasets"),
|
|
494
644
|
overlay: val("--overlay"),
|
|
645
|
+
review: args.includes("--review"),
|
|
646
|
+
codeFix: args.includes("--code-fix"),
|
|
647
|
+
severity: severityArg,
|
|
648
|
+
includeBots: args.includes("--include-bots"),
|
|
495
649
|
testCmd: parseCmd(val("--test-cmd")),
|
|
496
650
|
setupCmd: parseCmd(val("--setup-cmd")),
|
|
497
651
|
holdOut: args.includes("--hold-out"),
|
|
@@ -504,6 +658,26 @@ export async function runAddCase(args = []) {
|
|
|
504
658
|
console.error(ADD_CASE_USAGE);
|
|
505
659
|
return 2;
|
|
506
660
|
}
|
|
661
|
+
// A PR seeds two different evals (pr-review vs code-fix) — require an explicit
|
|
662
|
+
// kind so an old `--pr`-only command fails loudly, never silently emitting the
|
|
663
|
+
// wrong case type.
|
|
664
|
+
if (pr) {
|
|
665
|
+
if (o.review && o.codeFix) {
|
|
666
|
+
console.error("add-case: pass only one of --review or --code-fix with --pr.\n");
|
|
667
|
+
console.error(ADD_CASE_USAGE);
|
|
668
|
+
return 2;
|
|
669
|
+
}
|
|
670
|
+
if (!o.review && !o.codeFix) {
|
|
671
|
+
console.error("add-case: --pr needs a kind — pass --review (pr-review) or --code-fix (build).\n");
|
|
672
|
+
console.error(ADD_CASE_USAGE);
|
|
673
|
+
return 2;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
if (issue && (o.review || o.codeFix)) {
|
|
677
|
+
console.error("add-case: --review / --code-fix apply to --pr, not --issue.\n");
|
|
678
|
+
console.error(ADD_CASE_USAGE);
|
|
679
|
+
return 2;
|
|
680
|
+
}
|
|
507
681
|
// `gh` is required for PR/issue metadata — check presence AND auth up front so
|
|
508
682
|
// a missing/unauthenticated setup fails cleanly before any work, rather than
|
|
509
683
|
// partway through with a raw "Command failed" from the first API call.
|
|
@@ -522,7 +696,9 @@ export async function runAddCase(args = []) {
|
|
|
522
696
|
return 2;
|
|
523
697
|
}
|
|
524
698
|
try {
|
|
525
|
-
|
|
699
|
+
if (pr)
|
|
700
|
+
return o.review ? await fromPrReview(pr, o) : await fromPr(pr, o);
|
|
701
|
+
return await fromIssue(issue, o);
|
|
526
702
|
}
|
|
527
703
|
catch (err) {
|
|
528
704
|
console.error(chalk.red(`add-case failed: ${err.message}`));
|
package/dist/add-case.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-case.js","sourceRoot":"","sources":["../src/add-case.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-case.js","sourceRoot":"","sources":["../src/add-case.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
|
}
|