@cat-factory/orchestration 0.129.8 → 0.129.10

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.
@@ -34,6 +34,9 @@ export function initialPrReviewState(prUrl, model) {
34
34
  resolution: null,
35
35
  prUrl,
36
36
  model,
37
+ postReport: null,
38
+ postedFindingIds: [],
39
+ postedBody: false,
37
40
  };
38
41
  }
39
42
  /**
@@ -136,48 +139,159 @@ export function renderPrReviewFixerFeedback(findings) {
136
139
  }
137
140
  return lines.join('\n');
138
141
  }
142
+ const HUNK_HEADER = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/;
139
143
  /**
140
- * Turn the human-selected findings into a single advisory PR review to submit via
141
- * `RepoFiles.createReview`. A finding with a resolvable `line` becomes an inline comment
142
- * anchored to its `path`/`line`/`side` (default `RIGHT`); a finding with no line is summarised
143
- * in the review `body` alongside the reviewer's overall `summary`. The event is always
144
- * `COMMENT` (the deep review neither approves nor blocks the PR). Deterministic + total.
144
+ * Compute, per changed file, the exact lines an inline PR comment can anchor to the ROOT-CAUSE
145
+ * guard against GitHub's "Line could not be resolved" 422. GitHub only accepts an inline comment
146
+ * on a line that is part of the diff: on the RIGHT (head) side, an added (`+`) or context (` `)
147
+ * line; on the LEFT (base) side, a removed (`-`) or context line. A finding the reviewer anchored
148
+ * to any other line (very common — the model cites a line elsewhere in the file) can't be posted
149
+ * inline, so {@link buildPrReviewPost} folds it into the summary instead of letting the whole post
150
+ * 422. Parses each file's unified-diff `patch`; a file with a null patch (binary / too-large diff)
151
+ * is omitted, so its findings fall back to being posted directly (and reported if they fail).
152
+ */
153
+ export function computeCommentableLines(files) {
154
+ const out = new Map();
155
+ for (const file of files) {
156
+ if (!file.patch || !file.path)
157
+ continue;
158
+ const lines = { right: new Set(), left: new Set() };
159
+ let oldLine = 0;
160
+ let newLine = 0;
161
+ for (const raw of file.patch.split('\n')) {
162
+ const header = HUNK_HEADER.exec(raw);
163
+ if (header) {
164
+ oldLine = Number(header[1]);
165
+ newLine = Number(header[2]);
166
+ continue;
167
+ }
168
+ const marker = raw[0];
169
+ if (marker === '+') {
170
+ lines.right.add(newLine);
171
+ newLine++;
172
+ }
173
+ else if (marker === '-') {
174
+ lines.left.add(oldLine);
175
+ oldLine++;
176
+ }
177
+ else if (marker === '\\') {
178
+ // "" — advances neither side.
179
+ }
180
+ else {
181
+ // A context line (leading space, or the diff's trailing blank line) is commentable on both.
182
+ lines.right.add(newLine);
183
+ lines.left.add(oldLine);
184
+ newLine++;
185
+ oldLine++;
186
+ }
187
+ }
188
+ out.set(file.path, lines);
189
+ }
190
+ return out;
191
+ }
192
+ /**
193
+ * Turn the human-selected findings into a PR review to publish via `RepoFiles.createReview`.
194
+ * A finding whose `path`/`line`/`side` anchors to an actual diff line becomes an inline comment;
195
+ * a finding with no line — OR a line outside the diff (when `commentable` is supplied) — is folded
196
+ * into the review `body` alongside the reviewer's `summary`, so it is surfaced rather than
197
+ * rejected. When `commentable` is omitted (no diff available) every line-carrying finding is
198
+ * attempted inline and any residual failure is reported per-comment. Deterministic + total.
145
199
  *
146
- * The review always carries a non-empty `body`: GitHub can reject a `COMMENT`/`REQUEST_CHANGES`
147
- * review with a blank body, so when neither a summary nor any unanchored findings supply one we
148
- * fall back to a one-line count of the inline comments rather than submitting a bodyless review.
200
+ * The review always carries a non-empty `body` (GitHub rejects a blank-body comment): when
201
+ * neither a summary nor any folded/unanchored finding supplies one, we fall back to a one-line
202
+ * count of the inline comments.
149
203
  */
150
- export function buildPrReviewPost(findings, summary) {
204
+ export function buildPrReviewPost(findings, summary, commentable) {
151
205
  const comments = [];
206
+ const commentFindingIds = [];
207
+ const foldedFindingIds = [];
152
208
  const unanchored = [];
153
209
  for (const finding of findings) {
154
- if (finding.line != null && finding.path) {
210
+ const side = finding.side ?? 'RIGHT';
211
+ const anchorable = finding.line != null &&
212
+ finding.path.length > 0 &&
213
+ (commentable === undefined ||
214
+ (side === 'LEFT'
215
+ ? commentable.get(finding.path)?.left.has(finding.line)
216
+ : commentable.get(finding.path)?.right.has(finding.line)) === true);
217
+ if (anchorable) {
155
218
  comments.push({
156
219
  path: finding.path,
157
220
  line: finding.line,
158
- side: finding.side ?? 'RIGHT',
221
+ side,
159
222
  body: renderFindingBody(finding),
160
223
  });
224
+ commentFindingIds.push(finding.id);
161
225
  }
162
226
  else {
163
227
  unanchored.push(finding);
228
+ // A line-carrying finding we couldn't anchor was FOLDED to dodge the 422; a truly line-less
229
+ // one is just naturally summarised. Only the former is reported as `folded`.
230
+ if (finding.line != null && finding.path.length > 0)
231
+ foldedFindingIds.push(finding.id);
164
232
  }
165
233
  }
166
234
  const bodyParts = [];
167
235
  if (summary?.trim())
168
236
  bodyParts.push(summary.trim());
169
237
  if (unanchored.length > 0) {
170
- bodyParts.push('Additional findings (no specific line):', unanchored.map((f) => `- ${renderFindingBody(f)}`).join('\n\n'));
238
+ bodyParts.push('Additional findings (no in-diff line to anchor to):', unanchored
239
+ .map((f) => {
240
+ const loc = f.line != null ? `${f.path}:${f.line}` : f.path;
241
+ return `- ${loc ? `\`${loc}\` — ` : ''}${renderFindingBody(f)}`;
242
+ })
243
+ .join('\n\n'));
171
244
  }
172
- // Never submit a bodyless review — fall back to a count of the inline comments when nothing
173
- // else supplied a body (a summary-less review whose findings are all line-anchored).
174
245
  if (bodyParts.length === 0) {
175
246
  bodyParts.push(`Deep review: ${comments.length} inline finding${comments.length === 1 ? '' : 's'}.`);
176
247
  }
177
248
  return {
178
- event: 'COMMENT',
179
- body: bodyParts.join('\n\n'),
180
- comments,
249
+ input: { event: 'COMMENT', body: bodyParts.join('\n\n'), comments },
250
+ commentFindingIds,
251
+ foldedFindingIds,
181
252
  };
182
253
  }
254
+ /**
255
+ * Reduce a `createReview` result into the persisted {@link PrReviewPostReport} + the finding ids
256
+ * that newly posted, so the engine can record what landed, surface the failures, and skip the
257
+ * already-posted findings on a retry. Pure + total. `built` supplies the finding→comment mapping;
258
+ * `selected` resolves each failing finding's path/line for the report. `result` may be null when
259
+ * no VCS write ran (nothing to post) — reported as an all-folded/no-op attempt.
260
+ */
261
+ export function buildPrReviewPostReport(built, selected, result) {
262
+ const byId = new Map(selected.map((f) => [f.id, f]));
263
+ const failures = [];
264
+ const newlyPostedFindingIds = [];
265
+ const outcomes = result?.comments ?? [];
266
+ built.commentFindingIds.forEach((findingId, i) => {
267
+ const outcome = outcomes[i];
268
+ if (outcome?.posted) {
269
+ newlyPostedFindingIds.push(findingId);
270
+ }
271
+ else {
272
+ const finding = byId.get(findingId);
273
+ failures.push({
274
+ findingId,
275
+ path: finding?.path ?? '',
276
+ line: finding?.line ?? null,
277
+ reason: outcome?.error ?? 'The comment was not posted.',
278
+ });
279
+ }
280
+ });
281
+ return {
282
+ report: {
283
+ attempted: built.commentFindingIds.length,
284
+ posted: newlyPostedFindingIds.length,
285
+ folded: built.foldedFindingIds.length,
286
+ bodyPosted: result?.bodyPosted ?? null,
287
+ bodyError: result?.bodyError ?? null,
288
+ failures,
289
+ },
290
+ newlyPostedFindingIds,
291
+ };
292
+ }
293
+ /** Whether a post attempt fully succeeded — every inline comment landed and the body (if any) posted. */
294
+ export function isPrReviewPostComplete(report) {
295
+ return report.failures.length === 0 && report.bodyPosted !== false;
296
+ }
183
297
  //# sourceMappingURL=prReview.logic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prReview.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/prReview.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prReview.logic.js","sourceRoot":"","sources":["../../../src/modules/execution/prReview.logic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.129.8",
3
+ "version": "0.129.10",
4
4
  "description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,20 +25,20 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^6.0.230",
28
- "@cat-factory/agents": "0.66.3",
29
- "@cat-factory/caching": "0.10.19",
30
- "@cat-factory/contracts": "0.152.1",
31
- "@cat-factory/integrations": "0.88.9",
32
- "@cat-factory/kernel": "0.147.1",
33
- "@cat-factory/prompt-fragments": "0.13.44",
34
- "@cat-factory/sandbox": "0.9.118",
35
- "@cat-factory/spend": "0.12.63",
36
- "@cat-factory/workspaces": "0.17.6"
28
+ "@cat-factory/agents": "0.66.5",
29
+ "@cat-factory/caching": "0.10.20",
30
+ "@cat-factory/contracts": "0.152.2",
31
+ "@cat-factory/integrations": "0.88.10",
32
+ "@cat-factory/kernel": "0.147.2",
33
+ "@cat-factory/prompt-fragments": "0.13.45",
34
+ "@cat-factory/sandbox": "0.9.120",
35
+ "@cat-factory/spend": "0.12.64",
36
+ "@cat-factory/workspaces": "0.17.7"
37
37
  },
38
38
  "devDependencies": {
39
39
  "typescript": "7.0.2",
40
40
  "vitest": "^4.1.10",
41
- "@cat-factory/sandbox-fixtures": "0.7.179"
41
+ "@cat-factory/sandbox-fixtures": "0.7.180"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -b tsconfig.build.json",