greenbump 0.7.0 → 0.9.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 +73 -15
- package/README.zh-CN.md +37 -4
- package/dist/action/github.test.js +37 -0
- package/dist/action/github.test.js.map +1 -0
- package/dist/action/main.js +19 -4
- package/dist/action/main.js.map +1 -1
- package/dist/agent/calllog.js +23 -0
- package/dist/agent/calllog.js.map +1 -0
- package/dist/agent/calllog.test.js +77 -0
- package/dist/agent/calllog.test.js.map +1 -0
- package/dist/agent/fixer.js +246 -29
- package/dist/agent/fixer.js.map +1 -1
- package/dist/agent/fixer.test.js +299 -0
- package/dist/agent/fixer.test.js.map +1 -1
- package/dist/agent/guard.js +37 -0
- package/dist/agent/guard.js.map +1 -0
- package/dist/agent/guard.test.js +48 -0
- package/dist/agent/guard.test.js.map +1 -0
- package/dist/agent/provider-anthropic.js +2 -2
- package/dist/agent/provider-anthropic.js.map +1 -1
- package/dist/agent/provider-openai.js +2 -2
- package/dist/agent/provider-openai.js.map +1 -1
- package/dist/benchmarks/run.js +0 -0
- package/dist/benchmarks/run.js.map +1 -0
- package/dist/cli/interactive.js +46 -11
- package/dist/cli/interactive.js.map +1 -1
- package/dist/cli.js +37 -7
- package/dist/cli.js.map +1 -1
- package/dist/engine/analyzers/changelog-parser.js +51 -2
- package/dist/engine/analyzers/changelog-parser.js.map +1 -1
- package/dist/engine/batch.js +54 -10
- package/dist/engine/batch.js.map +1 -1
- package/dist/engine/cache/manager.js +19 -1
- package/dist/engine/cache/manager.js.map +1 -1
- package/dist/engine/cache/manager.test.js +17 -0
- package/dist/engine/cache/manager.test.js.map +1 -1
- package/dist/engine/change-detector.js +52 -23
- package/dist/engine/change-detector.js.map +1 -1
- package/dist/engine/change-detector.test.js +72 -0
- package/dist/engine/change-detector.test.js.map +1 -0
- package/dist/engine/changelog.js +22 -2
- package/dist/engine/changelog.js.map +1 -1
- package/dist/engine/changelog.test.js +31 -0
- package/dist/engine/changelog.test.js.map +1 -0
- package/dist/engine/checks.js +10 -4
- package/dist/engine/checks.js.map +1 -1
- package/dist/engine/context/optimizer.js +14 -44
- package/dist/engine/context/optimizer.js.map +1 -1
- package/dist/engine/context/optimizer.test.js +23 -1
- package/dist/engine/context/optimizer.test.js.map +1 -1
- package/dist/engine/ecosystems/cargo.js +2 -1
- package/dist/engine/ecosystems/cargo.js.map +1 -1
- package/dist/engine/ecosystems/conan.js +2 -1
- package/dist/engine/ecosystems/conan.js.map +1 -1
- package/dist/engine/ecosystems/elm.js +2 -1
- package/dist/engine/ecosystems/elm.js.map +1 -1
- package/dist/engine/ecosystems/gradle.js +2 -1
- package/dist/engine/ecosystems/gradle.js.map +1 -1
- package/dist/engine/ecosystems/http.js +18 -0
- package/dist/engine/ecosystems/http.js.map +1 -0
- package/dist/engine/ecosystems/maven.js +2 -1
- package/dist/engine/ecosystems/maven.js.map +1 -1
- package/dist/engine/ecosystems/swiftpm.js +2 -1
- package/dist/engine/ecosystems/swiftpm.js.map +1 -1
- package/dist/engine/exec.js +37 -7
- package/dist/engine/exec.js.map +1 -1
- package/dist/engine/exec.test.js +36 -0
- package/dist/engine/exec.test.js.map +1 -0
- package/dist/engine/fixer/patterns.js +55 -18
- package/dist/engine/fixer/patterns.js.map +1 -1
- package/dist/engine/fixer/patterns.test.js +95 -1
- package/dist/engine/fixer/patterns.test.js.map +1 -1
- package/dist/engine/git.js +38 -16
- package/dist/engine/git.js.map +1 -1
- package/dist/engine/git.test.js +51 -1
- package/dist/engine/git.test.js.map +1 -1
- package/dist/engine/perf/metrics.js +44 -57
- package/dist/engine/perf/metrics.js.map +1 -1
- package/dist/engine/run.js +141 -15
- package/dist/engine/run.js.map +1 -1
- package/dist/engine/run.test.js +65 -1
- package/dist/engine/run.test.js.map +1 -1
- package/dist/engine/sandbox/docker-manager.js +52 -26
- package/dist/engine/sandbox/docker-manager.js.map +1 -1
- package/dist/engine/sandbox/template-generator.js +0 -4
- package/dist/engine/sandbox/template-generator.js.map +1 -1
- package/dist/engine/sandbox/template-generator.test.js +16 -0
- package/dist/engine/sandbox/template-generator.test.js.map +1 -0
- package/dist/engine/scan/benchmark-crosscheck.test.js +116 -0
- package/dist/engine/scan/benchmark-crosscheck.test.js.map +1 -0
- package/dist/engine/scan/detect.js +96 -0
- package/dist/engine/scan/detect.js.map +1 -0
- package/dist/engine/scan/impact.js +128 -0
- package/dist/engine/scan/impact.js.map +1 -0
- package/dist/engine/scan/impact.test.js +217 -0
- package/dist/engine/scan/impact.test.js.map +1 -0
- package/dist/engine/scan/indexer.js +129 -0
- package/dist/engine/scan/indexer.js.map +1 -0
- package/dist/engine/scan/indexer.test.js +149 -0
- package/dist/engine/scan/indexer.test.js.map +1 -0
- package/dist/engine/scan/probes.js +92 -0
- package/dist/engine/scan/probes.js.map +1 -0
- package/dist/engine/scan/probes.test.js +100 -0
- package/dist/engine/scan/probes.test.js.map +1 -0
- package/dist/engine/verify.js +41 -58
- package/dist/engine/verify.js.map +1 -1
- package/dist/engine/verify.test.js +49 -0
- package/dist/engine/verify.test.js.map +1 -0
- package/dist/format.js +96 -0
- package/dist/format.js.map +1 -1
- package/dist/format.test.js +53 -0
- package/dist/format.test.js.map +1 -0
- package/dist/pr.test.js +48 -0
- package/dist/pr.test.js.map +1 -0
- package/package.json +4 -4
- package/dist/engine/dep-graph.js +0 -101
- package/dist/engine/dep-graph.js.map +0 -1
- package/dist/engine/staged-fix.js +0 -108
- package/dist/engine/staged-fix.js.map +0 -1
- package/dist/engine/stages.js +0 -125
- package/dist/engine/stages.js.map +0 -1
package/dist/agent/fixer.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { readFile, writeFile, readdir, stat } from "node:fs/promises";
|
|
1
|
+
import { readFile, writeFile, readdir, stat, rm } from "node:fs/promises";
|
|
2
2
|
import { resolve, relative, isAbsolute, join } from "node:path";
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
3
4
|
import { runChecks } from "../engine/checks.js";
|
|
4
5
|
import { getAdapter } from "../engine/pm.js";
|
|
5
6
|
import { tryBuiltinCodemods, tryLearnedPatterns, tryCachedLlmFix, learnFromSuccessfulFix, buildContextKey, FixTier, } from "../engine/fixer/patterns.js";
|
|
6
7
|
import { trimFailureOutput, extractCandidateFiles, findRelatedTests, buildCandidateHint, estimateTokens, } from "../engine/context/optimizer.js";
|
|
8
|
+
import { isProtectedWrite, isSensitivePath } from "./guard.js";
|
|
7
9
|
function buildSystemPrompt(pm, deps) {
|
|
8
10
|
const adapter = getAdapter(pm);
|
|
9
11
|
const protectedFiles = [...adapter.manifestFiles, ...adapter.lockFiles].join(", ");
|
|
@@ -17,6 +19,7 @@ Your job: edit the project's source code so that build and tests pass again —
|
|
|
17
19
|
|
|
18
20
|
Rules:
|
|
19
21
|
- Make the smallest correct change that adapts the code to the new version's API.
|
|
22
|
+
- Prefer edit_file for updating existing code (targeted search/replace) to avoid accidentally truncating or omitting lines. Only use write_file for new files or complete rewrites.
|
|
20
23
|
- Prefer following each dependency's documented migration path (renamed exports, changed signatures, moved modules, new required options). If release notes are provided below, treat them as authoritative over guessing.
|
|
21
24
|
- Use search_code to find ALL call sites of the breaking API across the repo before editing — a partial fix that leaves other files broken wastes rounds.
|
|
22
25
|
- Never edit ${protectedFiles}. The upgrade is intentional.
|
|
@@ -56,9 +59,22 @@ const tools = [
|
|
|
56
59
|
required: ["path"],
|
|
57
60
|
},
|
|
58
61
|
},
|
|
62
|
+
{
|
|
63
|
+
name: "edit_file",
|
|
64
|
+
description: "Replace an exact chunk of text in an existing file. Strongly preferred over write_file to avoid accidental truncations or lost code.",
|
|
65
|
+
parameters: {
|
|
66
|
+
type: "object",
|
|
67
|
+
properties: {
|
|
68
|
+
path: { type: "string", description: "project-relative file path" },
|
|
69
|
+
old_string: { type: "string", description: "exact string to replace (must match uniquely in file)" },
|
|
70
|
+
new_string: { type: "string", description: "replacement string" },
|
|
71
|
+
},
|
|
72
|
+
required: ["path", "old_string", "new_string"],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
59
75
|
{
|
|
60
76
|
name: "write_file",
|
|
61
|
-
description: "Overwrite a project-relative file with new contents.",
|
|
77
|
+
description: "Overwrite a project-relative file with new contents (or create new file). For small edits, prefer edit_file.",
|
|
62
78
|
parameters: {
|
|
63
79
|
type: "object",
|
|
64
80
|
properties: { path: { type: "string" }, content: { type: "string" } },
|
|
@@ -119,6 +135,11 @@ async function searchCode(cwd, root, query) {
|
|
|
119
135
|
const dot = e.name.lastIndexOf(".");
|
|
120
136
|
if (dot < 0 || !SEARCHABLE_EXT.has(e.name.slice(dot)))
|
|
121
137
|
continue;
|
|
138
|
+
// Same secrets boundary as read_file: never let matching lines from a
|
|
139
|
+
// credentials file (e.g. secrets.json) flow into a tool result — they
|
|
140
|
+
// would be sent to the LLM provider.
|
|
141
|
+
if (isSensitivePath(e.name))
|
|
142
|
+
continue;
|
|
122
143
|
let s;
|
|
123
144
|
try {
|
|
124
145
|
s = await stat(abs);
|
|
@@ -193,23 +214,100 @@ async function toolResult(cwd, pm, checkOverrides, name, input, onFixSuggestion)
|
|
|
193
214
|
}
|
|
194
215
|
case "read_file": {
|
|
195
216
|
const abs = safePath(cwd, input.path);
|
|
217
|
+
const rel = relative(cwd, abs);
|
|
218
|
+
if (isSensitivePath(rel)) {
|
|
219
|
+
return { text: `(refused: ${input.path} looks like a secrets/credentials file — its contents are never sent to the model)` };
|
|
220
|
+
}
|
|
196
221
|
const s = await stat(abs);
|
|
197
222
|
if (s.size > 200_000)
|
|
198
223
|
return { text: "(file too large to read)" };
|
|
199
224
|
return { text: await readFile(abs, "utf8") };
|
|
200
225
|
}
|
|
226
|
+
case "edit_file": {
|
|
227
|
+
const abs = safePath(cwd, input.path);
|
|
228
|
+
const rel = relative(cwd, abs);
|
|
229
|
+
const adapter = getAdapter(pm);
|
|
230
|
+
if (isProtectedWrite(rel, adapter.manifestFiles, adapter.lockFiles)) {
|
|
231
|
+
return {
|
|
232
|
+
text: `error: edit to ${input.path} blocked — it is a dependency manifest/lockfile or secrets file.`,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
let content = "";
|
|
236
|
+
try {
|
|
237
|
+
content = await readFile(abs, "utf8");
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
return { text: `error: file ${input.path} does not exist (use write_file to create new files)` };
|
|
241
|
+
}
|
|
242
|
+
const oldStr = input.old_string;
|
|
243
|
+
const newStr = input.new_string;
|
|
244
|
+
if (!oldStr) {
|
|
245
|
+
return { text: `error: old_string cannot be empty` };
|
|
246
|
+
}
|
|
247
|
+
const occurrences = content.split(oldStr).length - 1;
|
|
248
|
+
if (occurrences === 0) {
|
|
249
|
+
return {
|
|
250
|
+
text: `error: old_string not found in ${input.path}. Make sure the string matches verbatim, including indentation and whitespace.`,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
if (occurrences > 1) {
|
|
254
|
+
return {
|
|
255
|
+
text: `error: old_string matched ${occurrences} locations in ${input.path}. Please provide more surrounding lines for unique context.`,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
const updated = content.replace(oldStr, newStr);
|
|
259
|
+
if (onFixSuggestion) {
|
|
260
|
+
const decision = await onFixSuggestion({
|
|
261
|
+
path: input.path,
|
|
262
|
+
diff: simpleDiff(input.path, content, updated),
|
|
263
|
+
});
|
|
264
|
+
switch (decision.action) {
|
|
265
|
+
case "reject":
|
|
266
|
+
return { text: `edit to ${input.path} REJECTED by user — do not retry the same change`, skipped: true };
|
|
267
|
+
case "skip":
|
|
268
|
+
return { text: `edit to ${input.path} skipped by user`, skipped: true };
|
|
269
|
+
case "edit":
|
|
270
|
+
await writeFile(abs, decision.content, "utf8");
|
|
271
|
+
return { text: `applied user-edited changes to ${input.path}` };
|
|
272
|
+
case "accept":
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
await writeFile(abs, updated, "utf8");
|
|
277
|
+
return { text: `edited ${input.path}` };
|
|
278
|
+
}
|
|
201
279
|
case "write_file": {
|
|
202
280
|
const abs = safePath(cwd, input.path);
|
|
281
|
+
const rel = relative(cwd, abs);
|
|
282
|
+
const adapter = getAdapter(pm);
|
|
283
|
+
if (isProtectedWrite(rel, adapter.manifestFiles, adapter.lockFiles)) {
|
|
284
|
+
return {
|
|
285
|
+
text: `error: write to ${input.path} blocked — it is a dependency manifest/lockfile or secrets file managed outside the fix agent. Fix the source code instead.`,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
203
288
|
let content = input.content;
|
|
289
|
+
// Anti-truncation guard: if existing file has > 40 lines and new content drops > 50% lines,
|
|
290
|
+
// warn model to use edit_file or verify it didn't accidentally truncate.
|
|
291
|
+
let oldContent = "";
|
|
292
|
+
let exists = false;
|
|
293
|
+
try {
|
|
294
|
+
oldContent = await readFile(abs, "utf8");
|
|
295
|
+
exists = true;
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
// new file
|
|
299
|
+
}
|
|
300
|
+
if (exists) {
|
|
301
|
+
const oldLines = oldContent.split("\n").length;
|
|
302
|
+
const newLines = content.split("\n").length;
|
|
303
|
+
if (oldLines > 40 && newLines < oldLines * 0.5) {
|
|
304
|
+
return {
|
|
305
|
+
text: `error: write_file rejected due to code truncation safety guard. The existing file has ${oldLines} lines, but proposed content has only ${newLines} lines (loss of > 50%). If you are fixing a small section, use edit_file instead to avoid deleting code.`,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
}
|
|
204
309
|
// Interactive gate: show the proposed edit and wait for a decision.
|
|
205
310
|
if (onFixSuggestion) {
|
|
206
|
-
let oldContent = "";
|
|
207
|
-
try {
|
|
208
|
-
oldContent = await readFile(abs, "utf8");
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
// new file
|
|
212
|
-
}
|
|
213
311
|
const decision = await onFixSuggestion({
|
|
214
312
|
path: input.path,
|
|
215
313
|
diff: simpleDiff(input.path, oldContent, content),
|
|
@@ -249,16 +347,40 @@ function isRetryable(err) {
|
|
|
249
347
|
return /connection error|ECONNRESET|ETIMEDOUT|EAI_AGAIN|fetch failed|network|429|500|502|503|504/i.test(msg);
|
|
250
348
|
}
|
|
251
349
|
/** Call the provider with retry/backoff for transient network or server errors. */
|
|
252
|
-
async function sendWithRetry(provider, system, messages, toolSpecs, log) {
|
|
350
|
+
async function sendWithRetry(provider, system, messages, toolSpecs, log, feature, onLlmCall) {
|
|
351
|
+
const startedAt = Date.now();
|
|
253
352
|
let lastErr;
|
|
254
353
|
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
255
354
|
try {
|
|
256
|
-
|
|
355
|
+
const turn = await provider.send(system, messages, toolSpecs);
|
|
356
|
+
await onLlmCall?.({
|
|
357
|
+
feature,
|
|
358
|
+
provider: provider.name,
|
|
359
|
+
model: provider.model,
|
|
360
|
+
inputTokens: turn.usage.inputTokens,
|
|
361
|
+
outputTokens: turn.usage.outputTokens,
|
|
362
|
+
durationMs: Date.now() - startedAt,
|
|
363
|
+
attempts: attempt,
|
|
364
|
+
ok: true,
|
|
365
|
+
});
|
|
366
|
+
return turn;
|
|
257
367
|
}
|
|
258
368
|
catch (err) {
|
|
259
369
|
lastErr = err;
|
|
260
|
-
if (attempt === MAX_RETRIES || !isRetryable(err))
|
|
370
|
+
if (attempt === MAX_RETRIES || !isRetryable(err)) {
|
|
371
|
+
await onLlmCall?.({
|
|
372
|
+
feature,
|
|
373
|
+
provider: provider.name,
|
|
374
|
+
model: provider.model,
|
|
375
|
+
inputTokens: 0,
|
|
376
|
+
outputTokens: 0,
|
|
377
|
+
durationMs: Date.now() - startedAt,
|
|
378
|
+
attempts: attempt,
|
|
379
|
+
ok: false,
|
|
380
|
+
error: err.message.slice(0, 200),
|
|
381
|
+
});
|
|
261
382
|
throw err;
|
|
383
|
+
}
|
|
262
384
|
const delay = RETRY_BASE_DELAY_MS * 2 ** (attempt - 1);
|
|
263
385
|
log(`provider request failed (${err.message}) — retrying in ${delay}ms (attempt ${attempt}/${MAX_RETRIES})`);
|
|
264
386
|
await new Promise((r) => setTimeout(r, delay));
|
|
@@ -270,7 +392,6 @@ export async function runFixLoop(opts) {
|
|
|
270
392
|
const { provider, pm, checkOverrides } = opts;
|
|
271
393
|
const log = opts.onLog ?? (() => { });
|
|
272
394
|
const usage = { inputTokens: 0, outputTokens: 0 };
|
|
273
|
-
const editedFiles = new Set();
|
|
274
395
|
const SYSTEM = buildSystemPrompt(pm, opts.deps);
|
|
275
396
|
// ── Context optimization: trim failure output, find candidate files ──────
|
|
276
397
|
const trimmedFailure = trimFailureOutput(opts.failureOutput);
|
|
@@ -286,7 +407,19 @@ export async function runFixLoop(opts) {
|
|
|
286
407
|
const primaryDep = opts.deps?.[0]?.dep ?? opts.dep;
|
|
287
408
|
const primaryFrom = opts.deps?.[0]?.from ?? opts.from;
|
|
288
409
|
const primaryTo = opts.deps?.[0]?.to ?? opts.to;
|
|
289
|
-
|
|
410
|
+
// Bind the tier-3 cache key to the actual file contents being fixed —
|
|
411
|
+
// same error text + different code must NOT replay another project's fix.
|
|
412
|
+
const fingerprint = createHash("sha256");
|
|
413
|
+
for (const f of candidateFiles) {
|
|
414
|
+
try {
|
|
415
|
+
fingerprint.update(f);
|
|
416
|
+
fingerprint.update(await readFile(join(opts.cwd, f), "utf8"));
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
// unreadable — leave it out of the fingerprint
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
const contextKey = buildContextKey(primaryDep, primaryFrom, primaryTo, trimmedFailure, candidateFiles.length > 0 ? fingerprint.digest("hex").slice(0, 16) : undefined);
|
|
290
423
|
// ── Free tiers: codemods → learned patterns → cached LLM fix ────────────
|
|
291
424
|
if (!opts.noFreeTiers) {
|
|
292
425
|
const patternCtx = {
|
|
@@ -297,6 +430,9 @@ export async function runFixLoop(opts) {
|
|
|
297
430
|
failureOutput: trimmedFailure,
|
|
298
431
|
candidateFiles: candidateFiles.length > 0 ? candidateFiles : ["."],
|
|
299
432
|
};
|
|
433
|
+
// Snapshot candidate files once so any tier whose rewrite fails the check
|
|
434
|
+
// can be rolled back cleanly (regex codemods can produce broken code).
|
|
435
|
+
const preTierSnapshot = await snapshotFiles(opts.cwd, patternCtx.candidateFiles);
|
|
300
436
|
// Tier 1: built-in codemods
|
|
301
437
|
const t1 = await tryBuiltinCodemods(patternCtx);
|
|
302
438
|
if (t1.advice && t1.advice.length > 0) {
|
|
@@ -310,9 +446,8 @@ export async function runFixLoop(opts) {
|
|
|
310
446
|
log("tier 1 (codemod): check passed — fixed with 0 tokens");
|
|
311
447
|
return tierResult(true, t1.editedFiles, FixTier.REGEX);
|
|
312
448
|
}
|
|
313
|
-
log("tier 1 (codemod): edit applied but check still failing — escalating");
|
|
314
|
-
|
|
315
|
-
editedFiles.add(f);
|
|
449
|
+
log("tier 1 (codemod): edit applied but check still failing — rolling back and escalating");
|
|
450
|
+
await rollbackTierEdits(opts.cwd, t1.editedFiles, preTierSnapshot);
|
|
316
451
|
}
|
|
317
452
|
// Tier 2: learned patterns from cache
|
|
318
453
|
if (!opts.noCache) {
|
|
@@ -322,11 +457,10 @@ export async function runFixLoop(opts) {
|
|
|
322
457
|
const check = await runChecks(pm, opts.cwd, checkOverrides);
|
|
323
458
|
if (check.ok) {
|
|
324
459
|
log("tier 2 (learned pattern): check passed — fixed with 0 tokens");
|
|
325
|
-
return tierResult(true,
|
|
460
|
+
return tierResult(true, t2.editedFiles, FixTier.RULE, true);
|
|
326
461
|
}
|
|
327
|
-
log("tier 2 (learned pattern): edit applied but check still failing — escalating");
|
|
328
|
-
|
|
329
|
-
editedFiles.add(f);
|
|
462
|
+
log("tier 2 (learned pattern): edit applied but check still failing — rolling back and escalating");
|
|
463
|
+
await rollbackTierEdits(opts.cwd, t2.editedFiles, preTierSnapshot);
|
|
330
464
|
}
|
|
331
465
|
// Tier 3: cached LLM fix for identical failure
|
|
332
466
|
const t3 = await tryCachedLlmFix(patternCtx, contextKey);
|
|
@@ -335,11 +469,10 @@ export async function runFixLoop(opts) {
|
|
|
335
469
|
const check = await runChecks(pm, opts.cwd, checkOverrides);
|
|
336
470
|
if (check.ok) {
|
|
337
471
|
log("tier 3 (cached fix): check passed — fixed with 0 tokens");
|
|
338
|
-
return tierResult(true,
|
|
472
|
+
return tierResult(true, t3.editedFiles, FixTier.CACHED, true);
|
|
339
473
|
}
|
|
340
|
-
log("tier 3 (cached fix): didn't resolve in this project — escalating to LLM");
|
|
341
|
-
|
|
342
|
-
editedFiles.add(f);
|
|
474
|
+
log("tier 3 (cached fix): didn't resolve in this project — rolling back and escalating to LLM");
|
|
475
|
+
await rollbackTierEdits(opts.cwd, t3.editedFiles, preTierSnapshot);
|
|
343
476
|
}
|
|
344
477
|
}
|
|
345
478
|
}
|
|
@@ -374,10 +507,45 @@ Fix the source code so build and tests pass. Call run_check to verify before fin
|
|
|
374
507
|
let budgetExceeded = false;
|
|
375
508
|
let round = 0;
|
|
376
509
|
const llmEditedFiles = new Set();
|
|
510
|
+
// ── Enhanced verification feedback ─────────────────────────────────────
|
|
511
|
+
// Verifiers that run after build/tests pass (type check, API surface) used
|
|
512
|
+
// to be one-way notifications to the user. Now their actionable findings go
|
|
513
|
+
// back into the conversation so the agent can fix them itself. Two guards
|
|
514
|
+
// keep this bounded: the loop still lives inside maxRounds/maxTokens, and an
|
|
515
|
+
// identical report twice means the agent provably can't fix it — stop.
|
|
516
|
+
const seenReports = new Set();
|
|
517
|
+
let enhancedRounds = 0;
|
|
518
|
+
let enhancedStuck = false;
|
|
519
|
+
/** Returns "continue" when verifier findings were fed back for another round. */
|
|
520
|
+
async function enhancedFeedback(currentRound) {
|
|
521
|
+
if (!opts.verifyEnhanced)
|
|
522
|
+
return "stop";
|
|
523
|
+
const v = await opts.verifyEnhanced(opts.cwd, [...llmEditedFiles]);
|
|
524
|
+
if (!v.hasIssues)
|
|
525
|
+
return "stop";
|
|
526
|
+
const hash = createHash("sha256").update(v.report).digest("hex");
|
|
527
|
+
if (seenReports.has(hash)) {
|
|
528
|
+
enhancedStuck = true;
|
|
529
|
+
log(`round ${currentRound}: enhanced verification reports the identical problem again (${v.summary}) — agent can't fix it, flagging for review`);
|
|
530
|
+
return "stop";
|
|
531
|
+
}
|
|
532
|
+
if (currentRound >= opts.maxRounds) {
|
|
533
|
+
// No rounds left — end here; the post-loop checks will flag the review.
|
|
534
|
+
return "stop";
|
|
535
|
+
}
|
|
536
|
+
seenReports.add(hash);
|
|
537
|
+
enhancedRounds++;
|
|
538
|
+
log(`round ${currentRound}: enhanced verification — ${v.summary}; feeding back for another round`);
|
|
539
|
+
messages.push({
|
|
540
|
+
role: "user",
|
|
541
|
+
text: `Build and tests pass, but additional verification found problems that must be fixed:\n\n${v.report}\n\nFix these without breaking the build/tests.`,
|
|
542
|
+
});
|
|
543
|
+
return "continue";
|
|
544
|
+
}
|
|
377
545
|
for (round = 1; round <= opts.maxRounds; round++) {
|
|
378
546
|
const remaining = opts.maxRounds - round + 1;
|
|
379
547
|
const system = remaining <= 2 ? `${SYSTEM}\n\nYou have ${remaining} round(s) left. Wrap up and verify now.` : SYSTEM;
|
|
380
|
-
const turn = await sendWithRetry(provider, system, messages, tools, log);
|
|
548
|
+
const turn = await sendWithRetry(provider, system, messages, tools, log, "fix-loop", opts.onLlmCall);
|
|
381
549
|
usage.inputTokens += turn.usage.inputTokens;
|
|
382
550
|
usage.outputTokens += turn.usage.outputTokens;
|
|
383
551
|
messages.push({ role: "assistant", text: turn.text, toolCalls: turn.toolCalls });
|
|
@@ -389,13 +557,16 @@ Fix the source code so build and tests pass. Call run_check to verify before fin
|
|
|
389
557
|
if (turn.toolCalls.length === 0) {
|
|
390
558
|
// Model stopped without a tool call — verify once and finish.
|
|
391
559
|
const r = await runChecks(pm, opts.cwd, checkOverrides);
|
|
560
|
+
if (r.ok && (await enhancedFeedback(round)) === "continue") {
|
|
561
|
+
continue;
|
|
562
|
+
}
|
|
392
563
|
fixed = r.ok;
|
|
393
564
|
log(`round ${round}: agent stopped, final check ${r.ok ? "PASS" : "FAIL"}`);
|
|
394
565
|
break;
|
|
395
566
|
}
|
|
396
567
|
const results = [];
|
|
397
568
|
for (const tc of turn.toolCalls) {
|
|
398
|
-
if (tc.name === "write_file") {
|
|
569
|
+
if (tc.name === "write_file" || tc.name === "edit_file") {
|
|
399
570
|
llmEditedFiles.add(tc.input.path);
|
|
400
571
|
}
|
|
401
572
|
let out;
|
|
@@ -416,13 +587,17 @@ Fix the source code so build and tests pass. Call run_check to verify before fin
|
|
|
416
587
|
}
|
|
417
588
|
messages.push({ role: "tool", results });
|
|
418
589
|
if (fixed) {
|
|
590
|
+
if ((await enhancedFeedback(round)) === "continue") {
|
|
591
|
+
fixed = false;
|
|
592
|
+
continue;
|
|
593
|
+
}
|
|
419
594
|
log(`round ${round}: check passed — fixed`);
|
|
420
595
|
break;
|
|
421
596
|
}
|
|
422
597
|
}
|
|
423
598
|
// Learn from a successful LLM fix so the next identical failure is free.
|
|
424
599
|
if (fixed && !opts.noCache) {
|
|
425
|
-
const allEdited = [...
|
|
600
|
+
const allEdited = [...llmEditedFiles];
|
|
426
601
|
await learnFromSuccessfulFix({
|
|
427
602
|
cwd: opts.cwd,
|
|
428
603
|
packageName: primaryDep,
|
|
@@ -440,9 +615,11 @@ Fix the source code so build and tests pass. Call run_check to verify before fin
|
|
|
440
615
|
rounds: Math.min(round, opts.maxRounds),
|
|
441
616
|
unverifiable: false,
|
|
442
617
|
usage,
|
|
443
|
-
editedFiles: [...
|
|
618
|
+
editedFiles: [...llmEditedFiles],
|
|
444
619
|
budgetExceeded,
|
|
445
620
|
fixedByTier: fixed ? FixTier.LLM : undefined,
|
|
621
|
+
enhancedRounds,
|
|
622
|
+
enhancedStuck: enhancedStuck || undefined,
|
|
446
623
|
};
|
|
447
624
|
}
|
|
448
625
|
function tierResult(fixed, editedFiles, tier, cacheHit = false) {
|
|
@@ -455,6 +632,46 @@ function tierResult(fixed, editedFiles, tier, cacheHit = false) {
|
|
|
455
632
|
budgetExceeded: false,
|
|
456
633
|
fixedByTier: tier,
|
|
457
634
|
cacheHit,
|
|
635
|
+
enhancedRounds: 0,
|
|
458
636
|
};
|
|
459
637
|
}
|
|
638
|
+
/**
|
|
639
|
+
* Snapshot the current contents of the given candidate files (those that
|
|
640
|
+
* exist) so a failed free-tier rewrite can be rolled back instead of
|
|
641
|
+
* leaving half-broken code for the next tier to trip over.
|
|
642
|
+
*/
|
|
643
|
+
async function snapshotFiles(cwd, files) {
|
|
644
|
+
const snap = new Map();
|
|
645
|
+
for (const f of files) {
|
|
646
|
+
try {
|
|
647
|
+
const abs = join(cwd, f);
|
|
648
|
+
if (!(await stat(abs)).isFile())
|
|
649
|
+
continue;
|
|
650
|
+
snap.set(f, await readFile(abs, "utf8"));
|
|
651
|
+
}
|
|
652
|
+
catch {
|
|
653
|
+
// unreadable — nothing to snapshot
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
return snap;
|
|
657
|
+
}
|
|
658
|
+
/**
|
|
659
|
+
* Restore tier-edited files to their pre-tier contents; files the tier
|
|
660
|
+
* created (not in the snapshot) are removed. Best-effort.
|
|
661
|
+
*/
|
|
662
|
+
async function rollbackTierEdits(cwd, editedFiles, snapshot) {
|
|
663
|
+
for (const f of editedFiles) {
|
|
664
|
+
const abs = join(cwd, f);
|
|
665
|
+
try {
|
|
666
|
+
const prev = snapshot.get(f);
|
|
667
|
+
if (prev === undefined)
|
|
668
|
+
await rm(abs, { force: true });
|
|
669
|
+
else
|
|
670
|
+
await writeFile(abs, prev, "utf8");
|
|
671
|
+
}
|
|
672
|
+
catch {
|
|
673
|
+
// best effort — the git branch is the outer safety net
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
}
|
|
460
677
|
//# sourceMappingURL=fixer.js.map
|
package/dist/agent/fixer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../src/agent/fixer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../src/agent/fixer.ts"],"names":[],"mappings":"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"}
|