lastlight 0.7.6 → 0.7.8
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/dist/engine/github/github-app-client.d.ts +16 -0
- package/dist/engine/github/github-app-client.js +17 -0
- package/dist/engine/github/github-app-client.js.map +1 -1
- package/dist/engine/github/github.d.ts +31 -0
- package/dist/engine/github/github.js +50 -1
- package/dist/engine/github/github.js.map +1 -1
- package/dist/engine/github/review-poster.d.ts +98 -0
- package/dist/engine/github/review-poster.js +177 -0
- package/dist/engine/github/review-poster.js.map +1 -0
- package/dist/sandbox/sandbox.js +10 -5
- package/dist/sandbox/sandbox.js.map +1 -1
- package/dist/workflows/phase-executor.d.ts +24 -0
- package/dist/workflows/phase-executor.js +208 -0
- package/dist/workflows/phase-executor.js.map +1 -1
- package/dist/workflows/schema.d.ts +2 -0
- package/dist/workflows/schema.js +11 -2
- package/dist/workflows/schema.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lastlight/.claude-plugin/plugin.json +12 -3
- package/skills/pr-review/SKILL.md +12 -10
- package/skills/pr-review/references/findings-schema.md +9 -15
- package/workflows/pr-review.yaml +16 -141
|
@@ -3,5 +3,21 @@ export interface GitHubAppClientConfig {
|
|
|
3
3
|
appId: string;
|
|
4
4
|
privateKeyPath: string;
|
|
5
5
|
installationId: string;
|
|
6
|
+
/**
|
|
7
|
+
* Override the GitHub REST base URL (Octokit `baseUrl`). Prod leaves this
|
|
8
|
+
* unset → `api.github.com`. The evals harness points it at its mock server so
|
|
9
|
+
* harness-side writes land there. Test/eval escape hatch only — mirrors
|
|
10
|
+
* `ExecutorConfig.githubApiBaseUrl`.
|
|
11
|
+
*/
|
|
12
|
+
baseUrl?: string;
|
|
6
13
|
}
|
|
7
14
|
export declare function githubAppClient(config: GitHubAppClientConfig): Octokit;
|
|
15
|
+
/**
|
|
16
|
+
* Octokit authed with a raw bearer token (a pre-minted installation token) plus
|
|
17
|
+
* an optional `baseUrl`. This is the auth shape the evals mock and the
|
|
18
|
+
* harness-minted scoped token both use — no App JWT / installation-token
|
|
19
|
+
* minting round-trip against the REST base URL. Used by the harness-side
|
|
20
|
+
* `post-review` action so it works identically against api.github.com and the
|
|
21
|
+
* eval mock.
|
|
22
|
+
*/
|
|
23
|
+
export declare function githubTokenClient(token: string, baseUrl?: string): Octokit;
|
|
@@ -2,8 +2,12 @@ import { createAppAuth } from "@octokit/auth-app";
|
|
|
2
2
|
import { readFileSync } from "fs";
|
|
3
3
|
import { Octokit } from "octokit";
|
|
4
4
|
import { resolve } from "path";
|
|
5
|
+
function normalizeBaseUrl(baseUrl) {
|
|
6
|
+
return baseUrl ? baseUrl.replace(/\/+$/, "") : undefined;
|
|
7
|
+
}
|
|
5
8
|
export function githubAppClient(config) {
|
|
6
9
|
const privateKey = readFileSync(resolve(config.privateKeyPath), "utf-8");
|
|
10
|
+
const baseUrl = normalizeBaseUrl(config.baseUrl);
|
|
7
11
|
return new Octokit({
|
|
8
12
|
authStrategy: createAppAuth,
|
|
9
13
|
auth: {
|
|
@@ -11,6 +15,19 @@ export function githubAppClient(config) {
|
|
|
11
15
|
privateKey,
|
|
12
16
|
installationId: config.installationId,
|
|
13
17
|
},
|
|
18
|
+
...(baseUrl ? { baseUrl } : {}),
|
|
14
19
|
});
|
|
15
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Octokit authed with a raw bearer token (a pre-minted installation token) plus
|
|
23
|
+
* an optional `baseUrl`. This is the auth shape the evals mock and the
|
|
24
|
+
* harness-minted scoped token both use — no App JWT / installation-token
|
|
25
|
+
* minting round-trip against the REST base URL. Used by the harness-side
|
|
26
|
+
* `post-review` action so it works identically against api.github.com and the
|
|
27
|
+
* eval mock.
|
|
28
|
+
*/
|
|
29
|
+
export function githubTokenClient(token, baseUrl) {
|
|
30
|
+
const url = normalizeBaseUrl(baseUrl);
|
|
31
|
+
return new Octokit({ auth: token, ...(url ? { baseUrl: url } : {}) });
|
|
32
|
+
}
|
|
16
33
|
//# sourceMappingURL=github-app-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-app-client.js","sourceRoot":"","sources":["../../../src/engine/github/github-app-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"github-app-client.js","sourceRoot":"","sources":["../../../src/engine/github/github-app-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAe/B,SAAS,gBAAgB,CAAC,OAA2B;IACnD,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC;QACjB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU;YACV,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC;QACD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,OAAgB;IAC/D,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type GitHubAppClientConfig } from "./github-app-client.js";
|
|
2
|
+
import type { InlineComment, ReviewEvent } from "./review-poster.js";
|
|
2
3
|
/** GitHub reaction emoji values accepted by the reactions API. */
|
|
3
4
|
export type ReactionContent = "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes";
|
|
4
5
|
/**
|
|
@@ -8,6 +9,15 @@ export type ReactionContent = "+1" | "-1" | "laugh" | "confused" | "heart" | "ho
|
|
|
8
9
|
export declare class GitHubClient {
|
|
9
10
|
private octokit;
|
|
10
11
|
constructor(config: GitHubAppClientConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Build a client authed with a raw bearer token (a pre-minted installation
|
|
14
|
+
* token) instead of App JWT auth. Used by the harness-side `post-review`
|
|
15
|
+
* action: prod passes the run's scoped review-write token; evals pass the
|
|
16
|
+
* mock's token + `baseUrl`. Avoids the App installation-token minting
|
|
17
|
+
* round-trip (which hard-codes api.github.com and the evals mock doesn't
|
|
18
|
+
* serve).
|
|
19
|
+
*/
|
|
20
|
+
static withToken(token: string, baseUrl?: string): GitHubClient;
|
|
11
21
|
/**
|
|
12
22
|
* Create a new comment on an issue/PR. Returns the new comment id so callers
|
|
13
23
|
* that want to edit it later (the in-place status checklist — see
|
|
@@ -1139,6 +1149,27 @@ export declare class GitHubClient {
|
|
|
1139
1149
|
body: string | null;
|
|
1140
1150
|
submittedAt: string | null;
|
|
1141
1151
|
} | null>;
|
|
1152
|
+
/**
|
|
1153
|
+
* Fetch a PR's unified diff (three-dot, base…head) as a string. Used by the
|
|
1154
|
+
* `post-review` action to anchor findings to changed lines — the harness runs
|
|
1155
|
+
* this in-process (not in the sandbox), so the diff comes from the API rather
|
|
1156
|
+
* than a local `git diff`, with no dependency on checkout/fetch state.
|
|
1157
|
+
*/
|
|
1158
|
+
getPullRequestDiff(owner: string, repo: string, pullNumber: number): Promise<string>;
|
|
1159
|
+
/**
|
|
1160
|
+
* Submit one formal PR review with an event (APPROVE / REQUEST_CHANGES /
|
|
1161
|
+
* COMMENT) plus optional line-anchored inline comments. `commitId` pins the
|
|
1162
|
+
* review to the reviewed head SHA. This is the single harness-side write for
|
|
1163
|
+
* PR reviews — the reviewer agent never submits; it writes findings and the
|
|
1164
|
+
* `post-review` action calls this. Throws on a non-2xx so the action can fail
|
|
1165
|
+
* the phase visibly (or retry body-only).
|
|
1166
|
+
*/
|
|
1167
|
+
createPullRequestReview(owner: string, repo: string, pullNumber: number, review: {
|
|
1168
|
+
body: string;
|
|
1169
|
+
event: ReviewEvent;
|
|
1170
|
+
comments?: InlineComment[];
|
|
1171
|
+
commitId?: string;
|
|
1172
|
+
}): Promise<void>;
|
|
1142
1173
|
/**
|
|
1143
1174
|
* Get failed check runs for a PR's head SHA.
|
|
1144
1175
|
* Fetches the actual job logs (not just annotations) to show real errors.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { githubAppClient } from "./github-app-client.js";
|
|
1
|
+
import { githubAppClient, githubTokenClient, } from "./github-app-client.js";
|
|
2
2
|
/**
|
|
3
3
|
* GitHub client for the harness — uses GitHub App auth.
|
|
4
4
|
* Used by the orchestrator to post comments, not by agent sessions.
|
|
@@ -8,6 +8,19 @@ export class GitHubClient {
|
|
|
8
8
|
constructor(config) {
|
|
9
9
|
this.octokit = githubAppClient(config);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Build a client authed with a raw bearer token (a pre-minted installation
|
|
13
|
+
* token) instead of App JWT auth. Used by the harness-side `post-review`
|
|
14
|
+
* action: prod passes the run's scoped review-write token; evals pass the
|
|
15
|
+
* mock's token + `baseUrl`. Avoids the App installation-token minting
|
|
16
|
+
* round-trip (which hard-codes api.github.com and the evals mock doesn't
|
|
17
|
+
* serve).
|
|
18
|
+
*/
|
|
19
|
+
static withToken(token, baseUrl) {
|
|
20
|
+
const client = Object.create(GitHubClient.prototype);
|
|
21
|
+
client.octokit = githubTokenClient(token, baseUrl);
|
|
22
|
+
return client;
|
|
23
|
+
}
|
|
11
24
|
/**
|
|
12
25
|
* Create a new comment on an issue/PR. Returns the new comment id so callers
|
|
13
26
|
* that want to edit it later (the in-place status checklist — see
|
|
@@ -199,6 +212,42 @@ export class GitHubClient {
|
|
|
199
212
|
}
|
|
200
213
|
return null;
|
|
201
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Fetch a PR's unified diff (three-dot, base…head) as a string. Used by the
|
|
217
|
+
* `post-review` action to anchor findings to changed lines — the harness runs
|
|
218
|
+
* this in-process (not in the sandbox), so the diff comes from the API rather
|
|
219
|
+
* than a local `git diff`, with no dependency on checkout/fetch state.
|
|
220
|
+
*/
|
|
221
|
+
async getPullRequestDiff(owner, repo, pullNumber) {
|
|
222
|
+
const res = await this.octokit.rest.pulls.get({
|
|
223
|
+
owner,
|
|
224
|
+
repo,
|
|
225
|
+
pull_number: pullNumber,
|
|
226
|
+
mediaType: { format: "diff" },
|
|
227
|
+
});
|
|
228
|
+
// With `format: diff` Octokit returns the raw diff as the response body,
|
|
229
|
+
// typed as the JSON shape — cast through unknown.
|
|
230
|
+
return res.data;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Submit one formal PR review with an event (APPROVE / REQUEST_CHANGES /
|
|
234
|
+
* COMMENT) plus optional line-anchored inline comments. `commitId` pins the
|
|
235
|
+
* review to the reviewed head SHA. This is the single harness-side write for
|
|
236
|
+
* PR reviews — the reviewer agent never submits; it writes findings and the
|
|
237
|
+
* `post-review` action calls this. Throws on a non-2xx so the action can fail
|
|
238
|
+
* the phase visibly (or retry body-only).
|
|
239
|
+
*/
|
|
240
|
+
async createPullRequestReview(owner, repo, pullNumber, review) {
|
|
241
|
+
await this.octokit.rest.pulls.createReview({
|
|
242
|
+
owner,
|
|
243
|
+
repo,
|
|
244
|
+
pull_number: pullNumber,
|
|
245
|
+
body: review.body,
|
|
246
|
+
event: review.event,
|
|
247
|
+
...(review.comments && review.comments.length ? { comments: review.comments } : {}),
|
|
248
|
+
...(review.commitId ? { commit_id: review.commitId } : {}),
|
|
249
|
+
});
|
|
250
|
+
}
|
|
202
251
|
/**
|
|
203
252
|
* Get failed check runs for a PR's head SHA.
|
|
204
253
|
* Fetches the actual job logs (not just annotations) to show real errors.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/engine/github/github.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/engine/github/github.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,iBAAiB,GAElB,MAAM,wBAAwB,CAAC;AAchC;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,OAAO,CAAU;IAEzB,YAAY,MAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CAAC,KAAa,EAAE,OAAgB;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAiB,CAAC;QACrE,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,IAAY,EAAE,WAAmB,EAAE,IAAY;QAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC5D,KAAK;YACL,IAAI;YACJ,YAAY,EAAE,WAAW;YACzB,IAAI;SACL,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,IAAY;QAC9E,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,IAAY,EACZ,SAAiB,EACjB,UAA2B,QAAQ;QAEnC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;YACtD,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,IAAY,EACZ,WAAmB,EACnB,UAA2B,MAAM;QAEjC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YAC/C,KAAK;YACL,IAAI;YACJ,YAAY,EAAE,WAAW;YACzB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,KAAa,EACb,IAAY,EACZ,SAAiB,EACjB,UAA2B,MAAM;QAEjC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC;YAClE,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAE,WAAmB;QAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAClD,KAAK;YACL,IAAI;YACJ,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,IAAY,EAAE,WAAmB;QACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAClD,KAAK;YACL,IAAI;YACJ,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,KAAa,EACb,IAAY,EACZ,WAAmB;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EACrC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAC1D,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,SAAS,EAAE,CAAC,CAAC,UAAU;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,IAAY,EAAE,UAAkB;QAClE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACjD,KAAK;YACL,IAAI;YACJ,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,qBAAqB,CAAC,KAAa,EAAE,IAAY,EAAE,UAAkB;QACzE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACjD,KAAK;YACL,IAAI;YACJ,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,UAAgF,EAAE;QAElF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACrD,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,IAAY,EACZ,UAAkB,EAClB,MAaC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,KAAK;YACL,IAAI;YACJ,YAAY,EAAE,UAAU;YACxB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,IAAY,EACZ,UAAkB,EAClB,OAAe,EACf,QAAQ,GAAG,iBAAiB;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC/E,KAAK;YACL,IAAI;YACJ,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,GAAG;SACd,CAAC,CAAC;QACH,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,+DAA+D;QAC/D,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC1D,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YACvF,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,IAAY,EAAE,UAAkB;QACtE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5C,KAAK;YACL,IAAI;YACJ,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;SAC9B,CAAC,CAAC;QACH,yEAAyE;QACzE,kDAAkD;QAClD,OAAO,GAAG,CAAC,IAAyB,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAAa,EACb,IAAY,EACZ,UAAkB,EAClB,MAA2F;QAE3F,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YACzC,KAAK;YACL,IAAI;YACJ,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,GAAW;QAC5D,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACzD,KAAK;gBACL,IAAI;gBACJ,GAAG;gBACH,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,WAAW,CAClE,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,yBAAyB,CAAC;YAE1D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC3D,IAAI,UAAU,GAAG,EAAE,CAAC;gBAEpB,6DAA6D;gBAC7D,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACH,8EAA8E;wBAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC;4BACtF,KAAK;4BACL,IAAI;4BACJ,MAAM,EAAE,KAAK;yBACd,CAAC,CAAC;wBACH,wCAAwC;wBACxC,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACxE,6DAA6D;wBAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClC,2CAA2C;wBAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;wBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BACtB,IAAI,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gCAC9E,wCAAwC;gCACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gCACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gCAC1C,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;oCACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wCACnC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC5B,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC1B,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClD,CAAC;6BAAM,CAAC;4BACN,gDAAgD;4BAChD,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC3C,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,2DAA2D;oBAC7D,CAAC;gBACH,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;4BAC3E,KAAK;4BACL,IAAI;4BACJ,YAAY,EAAE,GAAG,CAAC,EAAE;yBACrB,CAAC,CAAC;wBACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,UAAU,GAAG,WAAW;iCACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS,CAAC;iCAC/C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iCACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;iCACtD,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChB,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;gBACpD,CAAC;gBAED,OAAO,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,2BAA2B,EAAE,CAAC;YAC5F,CAAC,CAAC,CAAC,CAAC;YAEJ,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure PR-review composition: turn a set of structured findings + the PR diff
|
|
3
|
+
* into the payload for one formal GitHub review (`POST /pulls/{n}/reviews`).
|
|
4
|
+
*
|
|
5
|
+
* This is the tested core of the first-class `post-review` action
|
|
6
|
+
* (`PhaseExecutor.runPostReview`). It replaces the ~150-line JS blob that used
|
|
7
|
+
* to live inline in `workflows/pr-review.yaml` — that script depended on the AI
|
|
8
|
+
* agent hand-writing `pr_number`/`base_ref`/`head_sha` into the findings file
|
|
9
|
+
* and silently `exit 0`'d on any mismatch. Here the harness owns all of that:
|
|
10
|
+
* the agent supplies only *content* (`summary`, `event`, `findings`), and this
|
|
11
|
+
* module anchors each finding to the diff, demoting anything off-diff to the
|
|
12
|
+
* body (GitHub 422s on comments that don't sit on a changed line).
|
|
13
|
+
*
|
|
14
|
+
* No I/O — every function is a pure transform, so the anchoring rules are
|
|
15
|
+
* exercised directly in `review-poster.test.ts` rather than by eval-extracting
|
|
16
|
+
* a function out of a YAML string.
|
|
17
|
+
*/
|
|
18
|
+
export type ReviewEvent = "APPROVE" | "REQUEST_CHANGES" | "COMMENT";
|
|
19
|
+
export type ReviewSide = "LEFT" | "RIGHT";
|
|
20
|
+
/** One finding as written by the `pr-review` skill into findings.json. */
|
|
21
|
+
export interface ReviewFinding {
|
|
22
|
+
path: string;
|
|
23
|
+
line: number;
|
|
24
|
+
side?: ReviewSide;
|
|
25
|
+
start_line?: number;
|
|
26
|
+
severity?: string;
|
|
27
|
+
title?: string;
|
|
28
|
+
body?: string;
|
|
29
|
+
suggestion?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The findings document the agent writes. `pr_number` / `base_ref` /
|
|
33
|
+
* `head_sha` are intentionally NOT here — the harness knows them from its own
|
|
34
|
+
* run context and the PR object, so the agent never hand-copies metadata.
|
|
35
|
+
*/
|
|
36
|
+
export interface ReviewFindingsDoc {
|
|
37
|
+
skip?: boolean;
|
|
38
|
+
summary?: string;
|
|
39
|
+
event?: ReviewEvent;
|
|
40
|
+
findings?: ReviewFinding[];
|
|
41
|
+
}
|
|
42
|
+
/** An inline review comment in the shape GitHub's create-review API expects. */
|
|
43
|
+
export interface InlineComment {
|
|
44
|
+
path: string;
|
|
45
|
+
line: number;
|
|
46
|
+
side: ReviewSide;
|
|
47
|
+
body: string;
|
|
48
|
+
start_line?: number;
|
|
49
|
+
start_side?: ReviewSide;
|
|
50
|
+
}
|
|
51
|
+
/** Everything needed to POST one review, ready for `createPullRequestReview`. */
|
|
52
|
+
export interface BuiltReview {
|
|
53
|
+
event: ReviewEvent;
|
|
54
|
+
body: string;
|
|
55
|
+
comments: InlineComment[];
|
|
56
|
+
inlineCount: number;
|
|
57
|
+
demotedCount: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Map a unified diff to `path -> Set<"SIDE:line">`. Added/`+` and context lines
|
|
61
|
+
* are `RIGHT:<newLine>`; removed/`-` and context lines are `LEFT:<oldLine>` —
|
|
62
|
+
* mirroring GitHub's three-dot PR diff anchoring. A finding may be commented
|
|
63
|
+
* inline only when its `side:line` appears in this set.
|
|
64
|
+
*/
|
|
65
|
+
export declare function parseDiff(diff: string): Map<string, Set<string>>;
|
|
66
|
+
/** True when a finding anchors onto a line that appears in the diff. */
|
|
67
|
+
export declare function isAnchored(f: ReviewFinding, commentable: Map<string, Set<string>> | null): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Partition findings into `inline` (anchor is on the diff) and `demoted`
|
|
70
|
+
* (off-diff, or missing path/line — folded into the body). When `commentable`
|
|
71
|
+
* is null (the diff couldn't be computed) every finding is demoted, so the
|
|
72
|
+
* review still posts and nothing is lost.
|
|
73
|
+
*/
|
|
74
|
+
export declare function splitFindings(findings: ReviewFinding[], commentable: Map<string, Set<string>> | null): {
|
|
75
|
+
inline: ReviewFinding[];
|
|
76
|
+
demoted: ReviewFinding[];
|
|
77
|
+
};
|
|
78
|
+
/** The "Additional findings" section appended to the body for demoted findings. */
|
|
79
|
+
export declare function renderDemoted(list: ReviewFinding[]): string;
|
|
80
|
+
/** Build the inline-comment objects GitHub's create-review API expects. */
|
|
81
|
+
export declare function toInlineComments(list: ReviewFinding[]): InlineComment[];
|
|
82
|
+
/**
|
|
83
|
+
* Resolve the review event. An explicit `doc.event` wins; otherwise an empty
|
|
84
|
+
* findings set is an `APPROVE` and anything else is a `COMMENT` (never an
|
|
85
|
+
* automatic `REQUEST_CHANGES` — that stays an explicit, deliberate call).
|
|
86
|
+
*/
|
|
87
|
+
export declare function resolveEvent(doc: ReviewFindingsDoc): ReviewEvent;
|
|
88
|
+
/**
|
|
89
|
+
* Compose the full review payload. Pass `commentable = null` to force every
|
|
90
|
+
* finding into the body (the diff-unavailable fallback).
|
|
91
|
+
*/
|
|
92
|
+
export declare function buildReview(doc: ReviewFindingsDoc, commentable: Map<string, Set<string>> | null): BuiltReview;
|
|
93
|
+
/**
|
|
94
|
+
* The body-only fallback: when the inline POST is rejected (e.g. a stale diff
|
|
95
|
+
* yields a 422 on a comment line), re-render with ALL findings in the body so
|
|
96
|
+
* the review still lands. Same event as the inline attempt.
|
|
97
|
+
*/
|
|
98
|
+
export declare function buildBodyOnlyReview(doc: ReviewFindingsDoc): BuiltReview;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure PR-review composition: turn a set of structured findings + the PR diff
|
|
3
|
+
* into the payload for one formal GitHub review (`POST /pulls/{n}/reviews`).
|
|
4
|
+
*
|
|
5
|
+
* This is the tested core of the first-class `post-review` action
|
|
6
|
+
* (`PhaseExecutor.runPostReview`). It replaces the ~150-line JS blob that used
|
|
7
|
+
* to live inline in `workflows/pr-review.yaml` — that script depended on the AI
|
|
8
|
+
* agent hand-writing `pr_number`/`base_ref`/`head_sha` into the findings file
|
|
9
|
+
* and silently `exit 0`'d on any mismatch. Here the harness owns all of that:
|
|
10
|
+
* the agent supplies only *content* (`summary`, `event`, `findings`), and this
|
|
11
|
+
* module anchors each finding to the diff, demoting anything off-diff to the
|
|
12
|
+
* body (GitHub 422s on comments that don't sit on a changed line).
|
|
13
|
+
*
|
|
14
|
+
* No I/O — every function is a pure transform, so the anchoring rules are
|
|
15
|
+
* exercised directly in `review-poster.test.ts` rather than by eval-extracting
|
|
16
|
+
* a function out of a YAML string.
|
|
17
|
+
*/
|
|
18
|
+
const FENCE = "```";
|
|
19
|
+
/**
|
|
20
|
+
* Map a unified diff to `path -> Set<"SIDE:line">`. Added/`+` and context lines
|
|
21
|
+
* are `RIGHT:<newLine>`; removed/`-` and context lines are `LEFT:<oldLine>` —
|
|
22
|
+
* mirroring GitHub's three-dot PR diff anchoring. A finding may be commented
|
|
23
|
+
* inline only when its `side:line` appears in this set.
|
|
24
|
+
*/
|
|
25
|
+
export function parseDiff(diff) {
|
|
26
|
+
const map = new Map();
|
|
27
|
+
let path = null;
|
|
28
|
+
let right = 0;
|
|
29
|
+
let left = 0;
|
|
30
|
+
let inHunk = false;
|
|
31
|
+
for (const line of diff.split("\n")) {
|
|
32
|
+
if (line.startsWith("+++ ")) {
|
|
33
|
+
const p = line.slice(4).replace(/^b\//, "");
|
|
34
|
+
path = p === "/dev/null" ? null : p;
|
|
35
|
+
if (path && !map.has(path))
|
|
36
|
+
map.set(path, new Set());
|
|
37
|
+
inHunk = false;
|
|
38
|
+
}
|
|
39
|
+
else if (line.startsWith("@@")) {
|
|
40
|
+
const m = /@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(line);
|
|
41
|
+
if (m) {
|
|
42
|
+
left = parseInt(m[1], 10);
|
|
43
|
+
right = parseInt(m[2], 10);
|
|
44
|
+
inHunk = true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (inHunk && path) {
|
|
48
|
+
const set = map.get(path);
|
|
49
|
+
if (line.startsWith("+")) {
|
|
50
|
+
set.add("RIGHT:" + right);
|
|
51
|
+
right++;
|
|
52
|
+
}
|
|
53
|
+
else if (line.startsWith("-")) {
|
|
54
|
+
set.add("LEFT:" + left);
|
|
55
|
+
left++;
|
|
56
|
+
}
|
|
57
|
+
else if (line.startsWith(" ")) {
|
|
58
|
+
set.add("RIGHT:" + right);
|
|
59
|
+
set.add("LEFT:" + left);
|
|
60
|
+
right++;
|
|
61
|
+
left++;
|
|
62
|
+
}
|
|
63
|
+
else if (line.startsWith("\\")) {
|
|
64
|
+
/* "" */
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
inHunk = false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return map;
|
|
72
|
+
}
|
|
73
|
+
/** True when a finding anchors onto a line that appears in the diff. */
|
|
74
|
+
export function isAnchored(f, commentable) {
|
|
75
|
+
if (!commentable)
|
|
76
|
+
return false;
|
|
77
|
+
const side = f.side === "LEFT" ? "LEFT" : "RIGHT";
|
|
78
|
+
const set = commentable.get(f.path);
|
|
79
|
+
if (!set || !set.has(side + ":" + f.line))
|
|
80
|
+
return false;
|
|
81
|
+
if (f.start_line && !set.has(side + ":" + f.start_line))
|
|
82
|
+
return false;
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Partition findings into `inline` (anchor is on the diff) and `demoted`
|
|
87
|
+
* (off-diff, or missing path/line — folded into the body). When `commentable`
|
|
88
|
+
* is null (the diff couldn't be computed) every finding is demoted, so the
|
|
89
|
+
* review still posts and nothing is lost.
|
|
90
|
+
*/
|
|
91
|
+
export function splitFindings(findings, commentable) {
|
|
92
|
+
const inline = [];
|
|
93
|
+
const demoted = [];
|
|
94
|
+
for (const f of findings) {
|
|
95
|
+
if (f && f.path && f.line && isAnchored(f, commentable))
|
|
96
|
+
inline.push(f);
|
|
97
|
+
else if (f)
|
|
98
|
+
demoted.push(f);
|
|
99
|
+
}
|
|
100
|
+
return { inline, demoted };
|
|
101
|
+
}
|
|
102
|
+
function commentBody(f) {
|
|
103
|
+
let b = "**[" + (f.severity || "Important") + "] " + (f.title || "") + "**\n\n" + (f.body || "");
|
|
104
|
+
if (f.suggestion)
|
|
105
|
+
b += "\n\n" + FENCE + "suggestion\n" + f.suggestion + "\n" + FENCE;
|
|
106
|
+
return b;
|
|
107
|
+
}
|
|
108
|
+
/** The "Additional findings" section appended to the body for demoted findings. */
|
|
109
|
+
export function renderDemoted(list) {
|
|
110
|
+
if (!list.length)
|
|
111
|
+
return "";
|
|
112
|
+
return ("\n\n### Additional findings\n" +
|
|
113
|
+
list
|
|
114
|
+
.map((f) => "- **[" +
|
|
115
|
+
(f.severity || "Important") +
|
|
116
|
+
"] " +
|
|
117
|
+
(f.title || "") +
|
|
118
|
+
"** (" +
|
|
119
|
+
f.path +
|
|
120
|
+
":" +
|
|
121
|
+
f.line +
|
|
122
|
+
") — " +
|
|
123
|
+
(f.body || ""))
|
|
124
|
+
.join("\n"));
|
|
125
|
+
}
|
|
126
|
+
/** Build the inline-comment objects GitHub's create-review API expects. */
|
|
127
|
+
export function toInlineComments(list) {
|
|
128
|
+
return list.map((f) => {
|
|
129
|
+
const side = f.side === "LEFT" ? "LEFT" : "RIGHT";
|
|
130
|
+
const c = { path: f.path, line: f.line, side, body: commentBody(f) };
|
|
131
|
+
if (f.start_line) {
|
|
132
|
+
c.start_line = f.start_line;
|
|
133
|
+
c.start_side = side;
|
|
134
|
+
}
|
|
135
|
+
return c;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Resolve the review event. An explicit `doc.event` wins; otherwise an empty
|
|
140
|
+
* findings set is an `APPROVE` and anything else is a `COMMENT` (never an
|
|
141
|
+
* automatic `REQUEST_CHANGES` — that stays an explicit, deliberate call).
|
|
142
|
+
*/
|
|
143
|
+
export function resolveEvent(doc) {
|
|
144
|
+
const findings = Array.isArray(doc.findings) ? doc.findings : [];
|
|
145
|
+
return doc.event || (findings.length === 0 ? "APPROVE" : "COMMENT");
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Compose the full review payload. Pass `commentable = null` to force every
|
|
149
|
+
* finding into the body (the diff-unavailable fallback).
|
|
150
|
+
*/
|
|
151
|
+
export function buildReview(doc, commentable) {
|
|
152
|
+
const findings = Array.isArray(doc.findings) ? doc.findings : [];
|
|
153
|
+
const { inline, demoted } = splitFindings(findings, commentable);
|
|
154
|
+
return {
|
|
155
|
+
event: resolveEvent(doc),
|
|
156
|
+
body: (doc.summary || "") + renderDemoted(demoted),
|
|
157
|
+
comments: toInlineComments(inline),
|
|
158
|
+
inlineCount: inline.length,
|
|
159
|
+
demotedCount: demoted.length,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The body-only fallback: when the inline POST is rejected (e.g. a stale diff
|
|
164
|
+
* yields a 422 on a comment line), re-render with ALL findings in the body so
|
|
165
|
+
* the review still lands. Same event as the inline attempt.
|
|
166
|
+
*/
|
|
167
|
+
export function buildBodyOnlyReview(doc) {
|
|
168
|
+
const findings = Array.isArray(doc.findings) ? doc.findings : [];
|
|
169
|
+
return {
|
|
170
|
+
event: resolveEvent(doc),
|
|
171
|
+
body: (doc.summary || "") + renderDemoted(findings),
|
|
172
|
+
comments: [],
|
|
173
|
+
inlineCount: 0,
|
|
174
|
+
demotedCount: findings.length,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=review-poster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-poster.js","sourceRoot":"","sources":["../../../src/engine/github/review-poster.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox/sandbox.js
CHANGED
|
@@ -255,15 +255,20 @@ class InProcessSandbox {
|
|
|
255
255
|
return { hostWorkspaceDir: workDir, agentCwd: this.agentCwd };
|
|
256
256
|
}
|
|
257
257
|
stageSkills(phaseKey, skillPaths) {
|
|
258
|
-
// none: stage at the workspace ROOT (host FS fully visible)
|
|
259
|
-
//
|
|
260
|
-
//
|
|
258
|
+
// none: stage at the workspace ROOT (host FS fully visible), by symlink —
|
|
259
|
+
// the host resolves it and it's the cheap/CI path. gondolin mounts ONLY cwd
|
|
260
|
+
// into the guest, so its bundle is staged under the repo (inside the mount)
|
|
261
|
+
// AND must be COPIED, not symlinked: a symlink's target is the skill source
|
|
262
|
+
// in the install tree (outside cwd), which isn't mounted, so it would dangle
|
|
263
|
+
// in the guest and the agent couldn't read SKILL.md. Copying (dereferenced)
|
|
264
|
+
// lands the real files inside the mount, exactly as docker does. The bundle
|
|
265
|
+
// is added to the checkout's local `.git/info/exclude` so it's never committed.
|
|
261
266
|
const gondolin = this.mode === "gondolin";
|
|
262
267
|
const skillRoot = gondolin ? this.agentCwd : this.hostWorkspaceDir;
|
|
263
|
-
const staged = stageSkillBundle(skillRoot, phaseKey, skillPaths, "symlink");
|
|
268
|
+
const staged = stageSkillBundle(skillRoot, phaseKey, skillPaths, gondolin ? "copy" : "symlink");
|
|
264
269
|
if (staged && gondolin)
|
|
265
270
|
excludeFromGit(this.agentCwd, SKILL_BUNDLE_ROOT);
|
|
266
|
-
return staged; //
|
|
271
|
+
return staged; // paths inside cwd → agentic-pi maps them into the guest's /workspace
|
|
267
272
|
}
|
|
268
273
|
sandboxPathFor(relPath) {
|
|
269
274
|
return join(this.hostWorkspaceDir, relPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,6 +129,30 @@ export declare class PhaseExecutor {
|
|
|
129
129
|
*/
|
|
130
130
|
execute(node: DagNode, outputs: Readonly<Record<string, unknown>>): Promise<PhaseOutcome>;
|
|
131
131
|
private runContext;
|
|
132
|
+
/**
|
|
133
|
+
* First-class, in-process PR-review submission (`type: post-review`). The
|
|
134
|
+
* reviewer agent writes only *content* to `.lastlight/pr-review/findings.json`
|
|
135
|
+
* (`{ skip?, summary, event, findings[] }`); THIS action supplies every fact
|
|
136
|
+
* the harness already knows — the PR number (from the run context), the base
|
|
137
|
+
* ref, the head SHA and the diff (from the pre-cloned checkout) — anchors each
|
|
138
|
+
* finding to a changed line, and posts one formal review via `GitHubClient`.
|
|
139
|
+
*
|
|
140
|
+
* This replaces the ~150-line in-sandbox `type: script` blob that depended on
|
|
141
|
+
* the AI hand-copying `pr_number`/`base_ref`/`head_sha` into the JSON and
|
|
142
|
+
* silently `exit 0`'d on any mismatch (the "ran but posted nothing" bug).
|
|
143
|
+
* Here a genuine failure — missing findings after a real review, or a GitHub
|
|
144
|
+
* error that survives the body-only retry — FAILS the phase visibly; only a
|
|
145
|
+
* legitimate `skip` succeeds without posting. Idempotent on resume: it no-ops
|
|
146
|
+
* when a bot review already exists on the current head SHA.
|
|
147
|
+
*/
|
|
148
|
+
private runPostReview;
|
|
149
|
+
/** Host path of the run's repo checkout — mirrors sandbox/index.ts layout. */
|
|
150
|
+
private resolveHostRepoDir;
|
|
151
|
+
/** Build the GitHub client for the post: token+baseUrl in evals, App auth in prod. */
|
|
152
|
+
private buildReviewClient;
|
|
153
|
+
private gitHeadSha;
|
|
154
|
+
/** Compute the base…head diff locally and parse it into a commentable set. */
|
|
155
|
+
private gitCommentableDiff;
|
|
132
156
|
/** Resolve model + variant for a phase/task, honouring YAML templates first. */
|
|
133
157
|
private resolveModelVariant;
|
|
134
158
|
private runPhaseCall;
|