@zelari/core 2.22.0 → 2.24.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/dist/agents/harnessToolBridge.d.ts +1 -1
- package/dist/agents/harnessToolBridge.d.ts.map +1 -1
- package/dist/agents/harnessToolBridge.js +3 -1
- package/dist/agents/harnessToolBridge.js.map +1 -1
- package/dist/core/tools/builtin/diff.d.ts.map +1 -1
- package/dist/core/tools/builtin/diff.js +73 -114
- package/dist/core/tools/builtin/diff.js.map +1 -1
- package/dist/core/tools/builtin/edit.d.ts +80 -0
- package/dist/core/tools/builtin/edit.d.ts.map +1 -0
- package/dist/core/tools/builtin/edit.js +245 -0
- package/dist/core/tools/builtin/edit.js.map +1 -0
- package/dist/core/tools/builtin/filesystem.d.ts +8 -0
- package/dist/core/tools/builtin/filesystem.d.ts.map +1 -1
- package/dist/core/tools/builtin/filesystem.js +16 -1
- package/dist/core/tools/builtin/filesystem.js.map +1 -1
- package/dist/core/tools/toolTypes.d.ts +5 -0
- package/dist/core/tools/toolTypes.d.ts.map +1 -1
- package/dist/core/tools/toolTypes.js.map +1 -1
- package/dist/runtime/nodeProviders.d.ts.map +1 -1
- package/dist/runtime/nodeProviders.js +6 -0
- package/dist/runtime/nodeProviders.js.map +1 -1
- package/dist/session/writer.d.ts +56 -0
- package/dist/session/writer.d.ts.map +1 -1
- package/dist/session/writer.js +90 -5
- package/dist/session/writer.js.map +1 -1
- package/package.json +1 -1
|
@@ -25,7 +25,7 @@ import type { EnhancedToolDefinition } from '../types/index.js';
|
|
|
25
25
|
/**
|
|
26
26
|
* Derive a catalog `EnhancedToolDefinition` from any harness `ToolDefinition`.
|
|
27
27
|
*
|
|
28
|
-
* This is the same transformation `toEnhanced` applies to the
|
|
28
|
+
* This is the same transformation `toEnhanced` applies to the 11 HARNESS_TOOLS
|
|
29
29
|
* builtins, exposed so the CLI can bridge its OWN tool definitions (browser_check,
|
|
30
30
|
* the LSP navigation tools, AST outline) into the agents catalog with identical
|
|
31
31
|
* schema generation — so prompt text, provider schemas, and executor behaviour
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harnessToolBridge.d.ts","sourceRoot":"","sources":["../../src/agents/harnessToolBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"harnessToolBridge.d.ts","sourceRoot":"","sources":["../../src/agents/harnessToolBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAQ1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAwChE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,sBAAsB,CAErG;AAED,wEAAwE;AACxE,wBAAgB,yBAAyB,IAAI,sBAAsB,EAAE,CAEpE"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import { zodToJsonSchema } from '../core/tools/zodBridge.js';
|
|
24
24
|
import { readFileTool, writeFileTool, editFileTool } from '../core/tools/builtin/filesystem.js';
|
|
25
|
+
import { editTool } from '../core/tools/builtin/edit.js';
|
|
25
26
|
import { bashTool } from '../core/tools/builtin/shell.js';
|
|
26
27
|
import { grepContentTool } from '../core/tools/builtin/search.js';
|
|
27
28
|
import { listFilesTool } from '../core/tools/builtin/listFiles.js';
|
|
@@ -31,6 +32,7 @@ const HARNESS_TOOLS = [
|
|
|
31
32
|
readFileTool,
|
|
32
33
|
writeFileTool,
|
|
33
34
|
editFileTool,
|
|
35
|
+
editTool, // ADR-0033 anchored edit (snapshot-gated); edit_file stays for its deprecation cycle
|
|
34
36
|
bashTool,
|
|
35
37
|
grepContentTool,
|
|
36
38
|
listFilesTool,
|
|
@@ -60,7 +62,7 @@ function toEnhanced(tool) {
|
|
|
60
62
|
/**
|
|
61
63
|
* Derive a catalog `EnhancedToolDefinition` from any harness `ToolDefinition`.
|
|
62
64
|
*
|
|
63
|
-
* This is the same transformation `toEnhanced` applies to the
|
|
65
|
+
* This is the same transformation `toEnhanced` applies to the 11 HARNESS_TOOLS
|
|
64
66
|
* builtins, exposed so the CLI can bridge its OWN tool definitions (browser_check,
|
|
65
67
|
* the LSP navigation tools, AST outline) into the agents catalog with identical
|
|
66
68
|
* schema generation — so prompt text, provider schemas, and executor behaviour
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harnessToolBridge.js","sourceRoot":"","sources":["../../src/agents/harnessToolBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG3E,MAAM,aAAa,GAA4C;IAC7D,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,eAAe;IACf,aAAa;IACb,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;CACwC,CAAC;AAExD,SAAS,UAAU,CAAC,IAA2C;IAC7D,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAInE,CAAC;IACF,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;SAChC;QACD,OAAO,EAAE,GAAG,EAAE,CACZ,SAAS,IAAI,CAAC,IAAI,oFAAoF;KACzG,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA2C;IAC3E,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"harnessToolBridge.js","sourceRoot":"","sources":["../../src/agents/harnessToolBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG3E,MAAM,aAAa,GAA4C;IAC7D,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,QAAQ,EAAE,qFAAqF;IAC/F,QAAQ;IACR,eAAe;IACf,aAAa;IACb,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;CACwC,CAAC;AAExD,SAAS,UAAU,CAAC,IAA2C;IAC7D,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAInE,CAAC;IACF,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;SAChC;QACD,OAAO,EAAE,GAAG,EAAE,CACZ,SAAS,IAAI,CAAC,IAAI,oFAAoF;KACzG,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA2C;IAC3E,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA6BzE,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AA0TD,QAAA,MAAM,kBAAkB;;;;iBAItB,CAAC;AAEH,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvD,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAwGrE,CAAC;AAMF,QAAA,MAAM,mBAAmB;;;;;iBAKvB,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEzD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,aAAa,EAAE,eAAe,CAwFxE,CAAC"}
|
|
@@ -228,7 +228,7 @@ function parseUnified(raw) {
|
|
|
228
228
|
return { oldLabel, newLabel, hunks };
|
|
229
229
|
}
|
|
230
230
|
// ────────────────────────────────────────────────────────────────────────────
|
|
231
|
-
// Patch application
|
|
231
|
+
// Patch application — zero relocation (ADR-0033)
|
|
232
232
|
// ────────────────────────────────────────────────────────────────────────────
|
|
233
233
|
function normalizeWhitespace(s) {
|
|
234
234
|
return s.replace(/\s+/g, ' ').trim();
|
|
@@ -240,148 +240,80 @@ function linesEqual(fileLine, opText, fuzzy) {
|
|
|
240
240
|
return true;
|
|
241
241
|
return false;
|
|
242
242
|
}
|
|
243
|
-
function hunkOldNeedle(hunk) {
|
|
244
|
-
return hunk.ops.filter((op) => op.kind !== '+').map((op) => op.text);
|
|
245
|
-
}
|
|
246
|
-
function matchAt(lines, at, needle, fuzzy) {
|
|
247
|
-
if (needle.length === 0)
|
|
248
|
-
return at >= 0 && at <= lines.length;
|
|
249
|
-
if (at < 0 || at + needle.length > lines.length)
|
|
250
|
-
return false;
|
|
251
|
-
for (let i = 0; i < needle.length; i++) {
|
|
252
|
-
if (!linesEqual(lines[at + i] ?? '', needle[i], fuzzy))
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
return true;
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Resolve where a hunk's old side sits in the original file.
|
|
259
|
-
*
|
|
260
|
-
* `oldStart` is tried first (correct unified diffs). If it misses — LLM
|
|
261
|
-
* numbered the hunk after applying earlier hunks, or off-by-N — search
|
|
262
|
-
* forward from `fileIdx` for a unique / closest match of the old lines.
|
|
263
|
-
*/
|
|
264
|
-
function locateHunk(lines, hunk, fileIdx, fuzzy) {
|
|
265
|
-
const needle = hunkOldNeedle(hunk);
|
|
266
|
-
const preferred = hunk.oldStart - 1;
|
|
267
|
-
if (needle.length === 0) {
|
|
268
|
-
const start = Math.max(fileIdx, preferred >= 0 ? preferred : fileIdx);
|
|
269
|
-
return { start };
|
|
270
|
-
}
|
|
271
|
-
if (preferred >= fileIdx && matchAt(lines, preferred, needle, fuzzy)) {
|
|
272
|
-
return { start: preferred };
|
|
273
|
-
}
|
|
274
|
-
const hits = [];
|
|
275
|
-
for (let i = fileIdx; i <= lines.length - needle.length; i++) {
|
|
276
|
-
if (matchAt(lines, i, needle, fuzzy))
|
|
277
|
-
hits.push(i);
|
|
278
|
-
}
|
|
279
|
-
if (hits.length === 0) {
|
|
280
|
-
if (preferred >= fileIdx) {
|
|
281
|
-
let fileAt = preferred;
|
|
282
|
-
for (const op of hunk.ops) {
|
|
283
|
-
if (op.kind === '+')
|
|
284
|
-
continue;
|
|
285
|
-
const fileLine = lines[fileAt] ?? '';
|
|
286
|
-
if (!linesEqual(fileLine, op.text, fuzzy)) {
|
|
287
|
-
const label = op.kind === '-' ? 'Delete mismatch' : 'Context mismatch';
|
|
288
|
-
return {
|
|
289
|
-
error: `${label} at line ${fileAt + 1}: expected "${op.text.slice(0, 60)}", ` +
|
|
290
|
-
`got "${fileLine.slice(0, 60)}"`,
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
fileAt++;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
return { error: `Hunk context not found (oldStart ${hunk.oldStart})` };
|
|
297
|
-
}
|
|
298
|
-
if (hits.length === 1)
|
|
299
|
-
return { start: hits[0] };
|
|
300
|
-
hits.sort((a, b) => Math.abs(a - preferred) - Math.abs(b - preferred) || a - b);
|
|
301
|
-
const bestDist = Math.abs(hits[0] - preferred);
|
|
302
|
-
const tied = hits.filter((h) => Math.abs(h - preferred) === bestDist);
|
|
303
|
-
if (tied.length > 1) {
|
|
304
|
-
return {
|
|
305
|
-
error: `Ambiguous hunk at oldStart ${hunk.oldStart}: ${tied.length} equally close ` +
|
|
306
|
-
`matches (refusing to guess)`,
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
return { start: hits[0] };
|
|
310
|
-
}
|
|
311
243
|
/**
|
|
312
244
|
* Apply ALL hunks to the original file lines in a single pass.
|
|
313
245
|
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
246
|
+
* ADR-0033 (zero relocation): each hunk applies EXACTLY at its declared
|
|
247
|
+
* position — `oldStart` (1-based) on the ORIGINAL file, never the
|
|
248
|
+
* post-previous-hunk state and never another site found by context search.
|
|
249
|
+
* Tolerances: LF/CRLF normalization (the caller splits lines LF-normalized)
|
|
250
|
+
* and, when `fuzzy` is set, whitespace — both strictly AT the declared
|
|
251
|
+
* position. Git convention: `@@ -N,0` (pure insert) anchors AFTER old line N.
|
|
252
|
+
* Atomic: if ANY hunk fails, no commit happens.
|
|
317
253
|
*/
|
|
318
254
|
function applyAllHunks(originalLines, hunks, fuzzy) {
|
|
319
255
|
const out = [];
|
|
320
|
-
let
|
|
256
|
+
let cursor = 0; // next original line index not yet copied into `out`
|
|
321
257
|
let hunksApplied = 0;
|
|
322
258
|
let hunksSkipped = 0;
|
|
323
259
|
let lastReason;
|
|
260
|
+
let failedHunk;
|
|
324
261
|
for (const hunk of hunks) {
|
|
325
|
-
const
|
|
326
|
-
if (
|
|
262
|
+
const start = hunk.oldLines === 0 ? hunk.oldStart : hunk.oldStart - 1;
|
|
263
|
+
if (start < cursor) {
|
|
264
|
+
// Overlapping/reordered hunks cannot be applied in declared order.
|
|
265
|
+
lastReason = `Hunk at oldStart ${hunk.oldStart} overlaps the previous hunk (refusing to reorder)`;
|
|
327
266
|
hunksSkipped++;
|
|
328
|
-
|
|
267
|
+
failedHunk = hunk;
|
|
329
268
|
break;
|
|
330
269
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
270
|
+
if (start > originalLines.length) {
|
|
271
|
+
lastReason = `Hunk at oldStart ${hunk.oldStart} is beyond the end of the file (${originalLines.length} lines)`;
|
|
272
|
+
hunksSkipped++;
|
|
273
|
+
failedHunk = hunk;
|
|
274
|
+
break;
|
|
335
275
|
}
|
|
336
|
-
|
|
337
|
-
|
|
276
|
+
while (cursor < start) {
|
|
277
|
+
out.push(originalLines[cursor]);
|
|
278
|
+
cursor++;
|
|
279
|
+
}
|
|
280
|
+
let hunkFileIdx = cursor;
|
|
338
281
|
const hunkOut = [];
|
|
339
282
|
let hunkOk = true;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (op.kind === ' ') {
|
|
343
|
-
const fileLine = originalLines[hunkFileIdx] ?? '';
|
|
344
|
-
if (linesEqual(fileLine, op.text, fuzzy)) {
|
|
345
|
-
hunkOut.push(fileLine);
|
|
346
|
-
hunkFileIdx++;
|
|
347
|
-
hunkIdx++;
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
lastReason = `Context mismatch at line ${hunkFileIdx + 1}: expected "${op.text.slice(0, 60)}", got "${fileLine.slice(0, 60)}"`;
|
|
351
|
-
hunkOk = false;
|
|
352
|
-
break;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
else if (op.kind === '-') {
|
|
283
|
+
for (const op of hunk.ops) {
|
|
284
|
+
if (op.kind === ' ' || op.kind === '-') {
|
|
356
285
|
const fileLine = originalLines[hunkFileIdx] ?? '';
|
|
357
286
|
if (linesEqual(fileLine, op.text, fuzzy)) {
|
|
287
|
+
if (op.kind === ' ')
|
|
288
|
+
hunkOut.push(fileLine);
|
|
358
289
|
hunkFileIdx++;
|
|
359
|
-
hunkIdx++;
|
|
360
290
|
}
|
|
361
291
|
else {
|
|
362
|
-
lastReason =
|
|
292
|
+
lastReason =
|
|
293
|
+
`Mismatch at line ${hunkFileIdx + 1} (hunk declares oldStart ${hunk.oldStart}): ` +
|
|
294
|
+
`expected "${op.text.slice(0, 60)}", got "${fileLine.slice(0, 60)}"`;
|
|
363
295
|
hunkOk = false;
|
|
364
296
|
break;
|
|
365
297
|
}
|
|
366
298
|
}
|
|
367
299
|
else {
|
|
368
300
|
hunkOut.push(op.text);
|
|
369
|
-
hunkIdx++;
|
|
370
301
|
}
|
|
371
302
|
}
|
|
372
303
|
if (!hunkOk) {
|
|
373
304
|
hunksSkipped++;
|
|
305
|
+
failedHunk = hunk;
|
|
374
306
|
break;
|
|
375
307
|
}
|
|
376
308
|
out.push(...hunkOut);
|
|
377
|
-
|
|
309
|
+
cursor = hunkFileIdx;
|
|
378
310
|
hunksApplied++;
|
|
379
311
|
}
|
|
380
|
-
while (
|
|
381
|
-
out.push(originalLines[
|
|
382
|
-
|
|
312
|
+
while (cursor < originalLines.length) {
|
|
313
|
+
out.push(originalLines[cursor]);
|
|
314
|
+
cursor++;
|
|
383
315
|
}
|
|
384
|
-
return { lines: out, hunksApplied, hunksSkipped, lastReason };
|
|
316
|
+
return { lines: out, hunksApplied, hunksSkipped, lastReason, failedHunk };
|
|
385
317
|
}
|
|
386
318
|
// ────────────────────────────────────────────────────────────────────────────
|
|
387
319
|
// show_diff tool
|
|
@@ -515,9 +447,11 @@ export { ApplyDiffArgsSchema };
|
|
|
515
447
|
export const applyDiffTool = {
|
|
516
448
|
name: 'apply_diff',
|
|
517
449
|
description: 'Apply a unified diff patch to a file. Parses ---/+++/@@ headers and applies each ' +
|
|
518
|
-
'hunk
|
|
519
|
-
'
|
|
520
|
-
'
|
|
450
|
+
'hunk at its DECLARED @@ position on the original file — zero relocation (ADR-0033): ' +
|
|
451
|
+
'a drifted hunk is rejected with a structured WriteReject (meta.reject, status ' +
|
|
452
|
+
'hunk_mismatch + minimalDiff), never searched for elsewhere. ' +
|
|
453
|
+
'CRLF vs LF is ignored; the file keeps its original line endings. With fuzzyMatch=true, ' +
|
|
454
|
+
'whitespace differences are tolerated — still only at the declared position. ' +
|
|
521
455
|
'With dryRun=true, returns the final content without writing. ' +
|
|
522
456
|
'Atomic: if any hunk fails, no partial write occurs.',
|
|
523
457
|
permissions: ['write'],
|
|
@@ -547,8 +481,9 @@ export const applyDiffTool = {
|
|
|
547
481
|
if (parsed.hunks.length === 0) {
|
|
548
482
|
return typedErr('No hunks found in diff');
|
|
549
483
|
}
|
|
550
|
-
// Apply ALL hunks atomically against the ORIGINAL file
|
|
551
|
-
// oldStart refers to the original file, not the
|
|
484
|
+
// Apply ALL hunks atomically against the ORIGINAL file at their DECLARED
|
|
485
|
+
// positions. Each hunk's oldStart refers to the original file, not the
|
|
486
|
+
// post-previous-hunk state. No hunk is ever relocated (ADR-0033).
|
|
552
487
|
const nl = detectNewline(current);
|
|
553
488
|
const originalLines = splitLinesLF(current);
|
|
554
489
|
const result = applyAllHunks(originalLines, parsed.hunks, args.fuzzyMatch);
|
|
@@ -558,14 +493,38 @@ export const applyDiffTool = {
|
|
|
558
493
|
await fs.mkdir(path.dirname(absPath), { recursive: true });
|
|
559
494
|
await fs.writeFile(absPath, finalContent, 'utf-8');
|
|
560
495
|
}
|
|
496
|
+
if (!ok) {
|
|
497
|
+
// ADR-0033: structured reject on the failed hunk. Atomic — nothing was
|
|
498
|
+
// written. The value keeps applied:false + counters for compatibility;
|
|
499
|
+
// the machine payload (status/minimalDiff/span/next) rides in meta.reject.
|
|
500
|
+
const failed = result.failedHunk;
|
|
501
|
+
const startLine = failed ? Math.max(0, failed.oldStart - 1) : 0;
|
|
502
|
+
const reject = {
|
|
503
|
+
ok: false,
|
|
504
|
+
status: 'hunk_mismatch',
|
|
505
|
+
path: absPath,
|
|
506
|
+
...(failed ? { span: { startLine, endLine: startLine + failed.oldLines } } : {}),
|
|
507
|
+
minimalDiff: failed ? formatUnified([failed], absPath, args.path) : '',
|
|
508
|
+
next: { action: 're-read', path: absPath },
|
|
509
|
+
};
|
|
510
|
+
return typedOk({
|
|
511
|
+
path: absPath,
|
|
512
|
+
applied: false,
|
|
513
|
+
hunksApplied: result.hunksApplied,
|
|
514
|
+
hunksSkipped: result.hunksSkipped,
|
|
515
|
+
finalContent: '', // omit content on reject to save tokens
|
|
516
|
+
dryRun: args.dryRun,
|
|
517
|
+
reason: result.lastReason,
|
|
518
|
+
}, { status: 'failed', reject });
|
|
519
|
+
}
|
|
561
520
|
return typedOk({
|
|
562
521
|
path: absPath,
|
|
563
|
-
applied:
|
|
522
|
+
applied: true,
|
|
564
523
|
hunksApplied: result.hunksApplied,
|
|
565
524
|
hunksSkipped: result.hunksSkipped,
|
|
566
|
-
finalContent: args.dryRun
|
|
525
|
+
finalContent: args.dryRun ? '' : finalContent, // omit content on dryRun to save tokens
|
|
567
526
|
dryRun: args.dryRun,
|
|
568
|
-
reason:
|
|
527
|
+
reason: undefined,
|
|
569
528
|
});
|
|
570
529
|
}
|
|
571
530
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/core/tools/builtin/diff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/core/tools/builtin/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type ToolDefinition } from '../toolTypes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Structured reject payload for write-path failures (ADR-0033).
|
|
5
|
+
* Every reject carries a machine action (`next`), never an essay.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WriteRejectSchema: z.ZodObject<{
|
|
8
|
+
ok: z.ZodLiteral<false>;
|
|
9
|
+
status: z.ZodEnum<{
|
|
10
|
+
stale_snapshot: "stale_snapshot";
|
|
11
|
+
hunk_mismatch: "hunk_mismatch";
|
|
12
|
+
parse_error: "parse_error";
|
|
13
|
+
file_exists: "file_exists";
|
|
14
|
+
}>;
|
|
15
|
+
path: z.ZodString;
|
|
16
|
+
expectedHash: z.ZodOptional<z.ZodString>;
|
|
17
|
+
actualHash: z.ZodOptional<z.ZodString>;
|
|
18
|
+
span: z.ZodOptional<z.ZodObject<{
|
|
19
|
+
startLine: z.ZodNumber;
|
|
20
|
+
endLine: z.ZodNumber;
|
|
21
|
+
}, z.core.$strip>>;
|
|
22
|
+
minimalDiff: z.ZodString;
|
|
23
|
+
next: z.ZodObject<{
|
|
24
|
+
action: z.ZodLiteral<"re-read">;
|
|
25
|
+
path: z.ZodString;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type WriteReject = z.infer<typeof WriteRejectSchema>;
|
|
29
|
+
export interface AnchoredEditInput {
|
|
30
|
+
/** Current file content (freshly read by the caller; the engine never touches disk). */
|
|
31
|
+
content: string;
|
|
32
|
+
/** Anchor claimed by the caller: snapshotId from the last read_file of this path. */
|
|
33
|
+
expectedSnapshotId: string;
|
|
34
|
+
oldString: string;
|
|
35
|
+
newString: string;
|
|
36
|
+
replaceAll: boolean;
|
|
37
|
+
/** Path used in reject payloads and diff labels. */
|
|
38
|
+
path: string;
|
|
39
|
+
}
|
|
40
|
+
export type AnchoredEditResult = {
|
|
41
|
+
ok: true;
|
|
42
|
+
newContent: string;
|
|
43
|
+
occurrencesReplaced: number;
|
|
44
|
+
snapshotId: string;
|
|
45
|
+
} | {
|
|
46
|
+
ok: false;
|
|
47
|
+
reject: WriteReject;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* ADR-0033 edit protocol, pure engine:
|
|
51
|
+
*
|
|
52
|
+
* Gate 1 — snapshot anchor. `expectedSnapshotId !== sha256(current)[:16]`
|
|
53
|
+
* → `stale_snapshot` WITHOUT any apply attempt. The caller re-reads;
|
|
54
|
+
* the engine never "tries nearby".
|
|
55
|
+
*
|
|
56
|
+
* Gate 2 — exact region match via `replaceFileString`. The ONLY tolerance is
|
|
57
|
+
* deterministic LF/CRLF normalization: the engine may normalize bytes,
|
|
58
|
+
* it may never move the region (zero relocation, zero context scanning).
|
|
59
|
+
* 0 occurrences → `hunk_mismatch` + `minimalDiff`, no write.
|
|
60
|
+
*/
|
|
61
|
+
export declare function applyAnchoredEdit(input: AnchoredEditInput): AnchoredEditResult;
|
|
62
|
+
export declare const EditArgsSchema: z.ZodObject<{
|
|
63
|
+
path: z.ZodString;
|
|
64
|
+
oldString: z.ZodString;
|
|
65
|
+
newString: z.ZodString;
|
|
66
|
+
snapshotId: z.ZodString;
|
|
67
|
+
replaceAll: z.ZodDefault<z.ZodBoolean>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
type EditArgs = z.infer<typeof EditArgsSchema>;
|
|
70
|
+
interface EditResult {
|
|
71
|
+
path: string;
|
|
72
|
+
applied: true;
|
|
73
|
+
occurrencesReplaced: number;
|
|
74
|
+
/** Anchor of the POST-edit content — required by the next `edit` on this path. */
|
|
75
|
+
snapshotId: string;
|
|
76
|
+
bytesWritten: number;
|
|
77
|
+
}
|
|
78
|
+
export declare const editTool: ToolDefinition<EditArgs, EditResult>;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQzE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;iBAW5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAgD9E;AAyGD,eAAO,MAAM,cAAc;;;;;;iBAOzB,CAAC;AAEH,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE/C,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CA+DzD,CAAC"}
|