@tyvm/knowhow 0.0.118 → 0.0.119
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/package.json +1 -3
- package/src/agents/base/base.ts +72 -9
- package/src/agents/researcher/researcher.ts +9 -2
- package/src/agents/tools/list.ts +13 -2
- package/src/agents/tools/patch.ts +318 -32
- package/src/agents/tools/readFile.ts +48 -5
- package/src/chat/modules/AgentModule.ts +12 -0
- package/src/cli.ts +2 -0
- package/src/clients/anthropic.ts +12 -2
- package/src/clients/contextLimits.ts +77 -0
- package/src/commands/convert.ts +291 -0
- package/src/conversion.ts +15 -61
- package/src/index.ts +3 -0
- package/src/processors/TokenCompressor.ts +95 -9
- package/src/services/AgentSyncFs.ts +26 -4
- package/src/services/AgentSyncKnowhowWeb.ts +26 -4
- package/src/services/SyncedAgentWatcher.ts +8 -0
- package/src/services/conversion/ConversionService.ts +763 -0
- package/src/services/conversion/index.ts +2 -0
- package/src/services/conversion/types.ts +79 -0
- package/src/services/index.ts +8 -1
- package/src/services/modules/types.ts +2 -0
- package/src/services/watchers/FsSyncer.ts +6 -0
- package/src/services/watchers/RemoteSyncer.ts +5 -0
- package/tests/agents/tools/readFile.test.ts +88 -0
- package/tests/clients/AIClient.test.ts +5 -0
- package/tests/clients/contextLimits.test.ts +71 -0
- package/tests/patching/patchFileOutput.test.ts +217 -0
- package/tests/patching/regression-2026.test.ts +278 -0
- package/tests/processors/CustomVariables.test.ts +4 -4
- package/tests/processors/TokenCompressor.test.ts +59 -1
- package/tests/processors/tools/grepToolResponse.test.ts +72 -0
- package/tests/services/ConversionService.test.ts +154 -0
- package/tests/test.spec.ts +1 -1
- package/tests/unit/clients/AIClient.test.ts +8 -0
- package/ts_build/package.json +1 -3
- package/ts_build/src/agents/base/base.d.ts +3 -0
- package/ts_build/src/agents/base/base.js +46 -3
- package/ts_build/src/agents/base/base.js.map +1 -1
- package/ts_build/src/agents/researcher/researcher.js +5 -2
- package/ts_build/src/agents/researcher/researcher.js.map +1 -1
- package/ts_build/src/agents/tools/list.js +10 -2
- package/ts_build/src/agents/tools/list.js.map +1 -1
- package/ts_build/src/agents/tools/patch.js +202 -24
- package/ts_build/src/agents/tools/patch.js.map +1 -1
- package/ts_build/src/agents/tools/readFile.d.ts +1 -1
- package/ts_build/src/agents/tools/readFile.js +17 -4
- package/ts_build/src/agents/tools/readFile.js.map +1 -1
- package/ts_build/src/chat/modules/AgentModule.js +12 -0
- package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
- package/ts_build/src/cli.js +2 -0
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/anthropic.js +7 -2
- package/ts_build/src/clients/anthropic.js.map +1 -1
- package/ts_build/src/clients/contextLimits.js +70 -0
- package/ts_build/src/clients/contextLimits.js.map +1 -1
- package/ts_build/src/commands/convert.d.ts +2 -0
- package/ts_build/src/commands/convert.js +275 -0
- package/ts_build/src/commands/convert.js.map +1 -0
- package/ts_build/src/conversion.js +6 -38
- package/ts_build/src/conversion.js.map +1 -1
- package/ts_build/src/index.d.ts +2 -0
- package/ts_build/src/index.js +4 -1
- package/ts_build/src/index.js.map +1 -1
- package/ts_build/src/processors/TokenCompressor.d.ts +2 -0
- package/ts_build/src/processors/TokenCompressor.js +57 -7
- package/ts_build/src/processors/TokenCompressor.js.map +1 -1
- package/ts_build/src/services/AgentSyncFs.d.ts +1 -0
- package/ts_build/src/services/AgentSyncFs.js +21 -4
- package/ts_build/src/services/AgentSyncFs.js.map +1 -1
- package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +1 -0
- package/ts_build/src/services/AgentSyncKnowhowWeb.js +21 -4
- package/ts_build/src/services/AgentSyncKnowhowWeb.js.map +1 -1
- package/ts_build/src/services/SyncedAgentWatcher.d.ts +3 -0
- package/ts_build/src/services/SyncedAgentWatcher.js +4 -0
- package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
- package/ts_build/src/services/conversion/ConversionService.d.ts +18 -0
- package/ts_build/src/services/conversion/ConversionService.js +585 -0
- package/ts_build/src/services/conversion/ConversionService.js.map +1 -0
- package/ts_build/src/services/conversion/index.d.ts +2 -0
- package/ts_build/src/services/conversion/index.js +19 -0
- package/ts_build/src/services/conversion/index.js.map +1 -0
- package/ts_build/src/services/conversion/types.d.ts +49 -0
- package/ts_build/src/services/conversion/types.js +3 -0
- package/ts_build/src/services/conversion/types.js.map +1 -0
- package/ts_build/src/services/index.d.ts +3 -0
- package/ts_build/src/services/index.js +6 -1
- package/ts_build/src/services/index.js.map +1 -1
- package/ts_build/src/services/modules/index.d.ts +2 -0
- package/ts_build/src/services/modules/types.d.ts +2 -0
- package/ts_build/src/services/watchers/FsSyncer.d.ts +1 -0
- package/ts_build/src/services/watchers/FsSyncer.js +5 -0
- package/ts_build/src/services/watchers/FsSyncer.js.map +1 -1
- package/ts_build/src/services/watchers/RemoteSyncer.d.ts +1 -0
- package/ts_build/src/services/watchers/RemoteSyncer.js +4 -0
- package/ts_build/src/services/watchers/RemoteSyncer.js.map +1 -1
- package/ts_build/tests/agents/tools/readFile.test.d.ts +1 -0
- package/ts_build/tests/agents/tools/readFile.test.js +90 -0
- package/ts_build/tests/agents/tools/readFile.test.js.map +1 -0
- package/ts_build/tests/clients/AIClient.test.js +1 -0
- package/ts_build/tests/clients/AIClient.test.js.map +1 -1
- package/ts_build/tests/clients/contextLimits.test.d.ts +1 -0
- package/ts_build/tests/clients/contextLimits.test.js +57 -0
- package/ts_build/tests/clients/contextLimits.test.js.map +1 -0
- package/ts_build/tests/patching/patchFileOutput.test.d.ts +1 -0
- package/ts_build/tests/patching/patchFileOutput.test.js +187 -0
- package/ts_build/tests/patching/patchFileOutput.test.js.map +1 -0
- package/ts_build/tests/patching/regression-2026.test.js +214 -0
- package/ts_build/tests/patching/regression-2026.test.js.map +1 -1
- package/ts_build/tests/processors/CustomVariables.test.js +4 -4
- package/ts_build/tests/processors/CustomVariables.test.js.map +1 -1
- package/ts_build/tests/processors/TokenCompressor.test.js +37 -1
- package/ts_build/tests/processors/TokenCompressor.test.js.map +1 -1
- package/ts_build/tests/processors/tools/grepToolResponse.test.d.ts +1 -0
- package/ts_build/tests/processors/tools/grepToolResponse.test.js +40 -0
- package/ts_build/tests/processors/tools/grepToolResponse.test.js.map +1 -0
- package/ts_build/tests/services/ConversionService.test.d.ts +1 -0
- package/ts_build/tests/services/ConversionService.test.js +154 -0
- package/ts_build/tests/services/ConversionService.test.js.map +1 -0
- package/ts_build/tests/test.spec.js +1 -1
- package/ts_build/tests/test.spec.js.map +1 -1
- package/ts_build/tests/unit/clients/AIClient.test.js +3 -0
- package/ts_build/tests/unit/clients/AIClient.test.js.map +1 -1
|
@@ -97,6 +97,25 @@ function findSequenceIndex(haystack, needle) {
|
|
|
97
97
|
}
|
|
98
98
|
return -1;
|
|
99
99
|
}
|
|
100
|
+
function findSequenceIndexTrimmed(haystack, needle) {
|
|
101
|
+
if (!needle || needle.length === 0)
|
|
102
|
+
return -1;
|
|
103
|
+
if (!haystack || needle.length > haystack.length)
|
|
104
|
+
return -1;
|
|
105
|
+
const needleTrim = needle.map((l) => l.trim());
|
|
106
|
+
for (let start = 0; start <= haystack.length - needle.length; start++) {
|
|
107
|
+
let matches = true;
|
|
108
|
+
for (let i = 0; i < needle.length; i++) {
|
|
109
|
+
if (haystack[start + i].trim() !== needleTrim[i]) {
|
|
110
|
+
matches = false;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (matches)
|
|
115
|
+
return start;
|
|
116
|
+
}
|
|
117
|
+
return -1;
|
|
118
|
+
}
|
|
100
119
|
function parseHunks(patch) {
|
|
101
120
|
const patchLines = (0, utils_1.splitByNewLines)(patch);
|
|
102
121
|
const hunks = [];
|
|
@@ -220,15 +239,23 @@ function fixSingleHunk(hunk, originalContent) {
|
|
|
220
239
|
if (actualOriginalStartLine === -1 &&
|
|
221
240
|
deletionLinesContent.length === 0 &&
|
|
222
241
|
additionLinesContent.length > 0) {
|
|
223
|
-
|
|
242
|
+
const leadingContextBlock = [];
|
|
224
243
|
for (const line of hunk.lines) {
|
|
225
244
|
if (line.startsWith("+"))
|
|
226
245
|
break;
|
|
227
246
|
if (line.startsWith(" ")) {
|
|
228
|
-
|
|
247
|
+
leadingContextBlock.push(line.slice(1));
|
|
229
248
|
}
|
|
230
249
|
}
|
|
231
|
-
if (
|
|
250
|
+
if (leadingContextBlock.length > 1) {
|
|
251
|
+
const seqIdx = findSequenceIndex(originalLines, leadingContextBlock);
|
|
252
|
+
if (seqIdx !== -1) {
|
|
253
|
+
actualOriginalStartLine = seqIdx + leadingContextBlock.length + 1;
|
|
254
|
+
console.log(`Anchor found via leading context sequence (${leadingContextBlock.length} lines), targeting line ${actualOriginalStartLine}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (actualOriginalStartLine === -1 && leadingContextBlock.length > 0) {
|
|
258
|
+
const precedingContextLine = leadingContextBlock[leadingContextBlock.length - 1];
|
|
232
259
|
const potentialLines = findAllLineNumbers(originalContent, precedingContextLine);
|
|
233
260
|
const closestLine = findClosestNumber(potentialLines, hunk.originalStartLine);
|
|
234
261
|
if (closestLine !== undefined) {
|
|
@@ -301,6 +328,68 @@ function fixSingleHunk(hunk, originalContent) {
|
|
|
301
328
|
}
|
|
302
329
|
}
|
|
303
330
|
if (hasInterleavedChanges) {
|
|
331
|
+
{
|
|
332
|
+
const originalSideLines = [];
|
|
333
|
+
for (const line of hunk.lines) {
|
|
334
|
+
if (line.startsWith("+"))
|
|
335
|
+
continue;
|
|
336
|
+
originalSideLines.push(line.startsWith(" ") || line.startsWith("-") ? line.slice(1) : line);
|
|
337
|
+
}
|
|
338
|
+
while (originalSideLines.length > 0 &&
|
|
339
|
+
originalSideLines[originalSideLines.length - 1].trim() === "") {
|
|
340
|
+
originalSideLines.pop();
|
|
341
|
+
}
|
|
342
|
+
if (originalSideLines.length > 0) {
|
|
343
|
+
let anchorIdx = findSequenceIndex(originalLines, originalSideLines);
|
|
344
|
+
let usedTrimmed = false;
|
|
345
|
+
if (anchorIdx === -1) {
|
|
346
|
+
anchorIdx = findSequenceIndexTrimmed(originalLines, originalSideLines);
|
|
347
|
+
usedTrimmed = anchorIdx !== -1;
|
|
348
|
+
}
|
|
349
|
+
if (anchorIdx !== -1) {
|
|
350
|
+
const fileRegion = originalLines.slice(anchorIdx, anchorIdx + originalSideLines.length);
|
|
351
|
+
const fileIndent = (fileRegion[0].match(/^\s*/) || [""])[0];
|
|
352
|
+
const patchIndent = (originalSideLines[0].match(/^\s*/) || [""])[0];
|
|
353
|
+
const indentDelta = usedTrimmed && fileIndent.length >= patchIndent.length
|
|
354
|
+
? fileIndent.slice(patchIndent.length)
|
|
355
|
+
: "";
|
|
356
|
+
const rebuilt = [];
|
|
357
|
+
let origCursor = 0;
|
|
358
|
+
for (const line of hunk.lines) {
|
|
359
|
+
if (line.startsWith("+")) {
|
|
360
|
+
rebuilt.push(indentDelta + line.slice(1));
|
|
361
|
+
}
|
|
362
|
+
else if (line.startsWith("-")) {
|
|
363
|
+
origCursor++;
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
if (origCursor >= fileRegion.length)
|
|
367
|
+
continue;
|
|
368
|
+
rebuilt.push(fileRegion[origCursor]);
|
|
369
|
+
origCursor++;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
const newBody = [
|
|
373
|
+
...fileRegion.map((l) => `-${l}`),
|
|
374
|
+
...rebuilt.map((l) => `+${l}`),
|
|
375
|
+
];
|
|
376
|
+
const origCountR = fileRegion.length;
|
|
377
|
+
const newCountR = rebuilt.length;
|
|
378
|
+
const headerR = `@@ -${anchorIdx + 1},${origCountR} +${anchorIdx + 1},${newCountR} @@`;
|
|
379
|
+
return {
|
|
380
|
+
header: headerR,
|
|
381
|
+
originalStartLine: anchorIdx + 1,
|
|
382
|
+
originalLineCount: origCountR,
|
|
383
|
+
newStartLine: anchorIdx + 1,
|
|
384
|
+
newLineCount: newCountR,
|
|
385
|
+
lines: newBody,
|
|
386
|
+
additions: newBody.filter((l) => l.startsWith("+")),
|
|
387
|
+
subtractions: newBody.filter((l) => l.startsWith("-")),
|
|
388
|
+
contextLines: newBody.filter((l) => l.startsWith(" ")),
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
304
393
|
const blocks = [];
|
|
305
394
|
let curBlock = { deletions: [], additions: [] };
|
|
306
395
|
let inBlock = false;
|
|
@@ -427,17 +516,37 @@ function fixSingleHunk(hunk, originalContent) {
|
|
|
427
516
|
};
|
|
428
517
|
}
|
|
429
518
|
if (deletionLinesContent.length === 0 && additionLinesContent.length > 0) {
|
|
430
|
-
const
|
|
519
|
+
const insertIdx = actualOriginalStartLine - 1;
|
|
520
|
+
const beforeStart = Math.max(0, insertIdx - CONTEXT_LINES);
|
|
521
|
+
const contextBeforeLines = [];
|
|
522
|
+
for (let i = beforeStart; i < insertIdx && i < originalLines.length; i++) {
|
|
523
|
+
contextBeforeLines.push(` ${originalLines[i]}`);
|
|
524
|
+
}
|
|
525
|
+
const contextAfterLines = [];
|
|
526
|
+
for (let i = insertIdx; i < insertIdx + CONTEXT_LINES && i < originalLines.length; i++) {
|
|
527
|
+
contextAfterLines.push(` ${originalLines[i]}`);
|
|
528
|
+
}
|
|
529
|
+
const pureLines = [
|
|
530
|
+
...contextBeforeLines,
|
|
531
|
+
...hunk.additions,
|
|
532
|
+
...contextAfterLines,
|
|
533
|
+
];
|
|
534
|
+
const pureOrigStart = insertIdx - contextBeforeLines.length + 1;
|
|
535
|
+
const pureOrigCount = contextBeforeLines.length + contextAfterLines.length;
|
|
536
|
+
const pureNewCount = contextBeforeLines.length +
|
|
537
|
+
hunk.additions.length +
|
|
538
|
+
contextAfterLines.length;
|
|
539
|
+
const pureHeader = `@@ -${pureOrigStart},${pureOrigCount} +${pureOrigStart},${pureNewCount} @@`;
|
|
431
540
|
return {
|
|
432
541
|
header: pureHeader,
|
|
433
|
-
originalStartLine:
|
|
434
|
-
originalLineCount:
|
|
435
|
-
newStartLine:
|
|
436
|
-
newLineCount:
|
|
437
|
-
lines:
|
|
542
|
+
originalStartLine: pureOrigStart,
|
|
543
|
+
originalLineCount: pureOrigCount,
|
|
544
|
+
newStartLine: pureOrigStart,
|
|
545
|
+
newLineCount: pureNewCount,
|
|
546
|
+
lines: pureLines,
|
|
438
547
|
additions: hunk.additions,
|
|
439
548
|
subtractions: [],
|
|
440
|
-
contextLines: [],
|
|
549
|
+
contextLines: [...contextBeforeLines, ...contextAfterLines],
|
|
441
550
|
};
|
|
442
551
|
}
|
|
443
552
|
const hunkContextBefore = [];
|
|
@@ -466,11 +575,15 @@ function fixSingleHunk(hunk, originalContent) {
|
|
|
466
575
|
return match !== undefined ? ` ${match}` : null;
|
|
467
576
|
})
|
|
468
577
|
.filter((l) => l !== null);
|
|
469
|
-
const
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
578
|
+
const fileContextBefore = [];
|
|
579
|
+
if (deletionLinesContent.length > 0) {
|
|
580
|
+
const desiredBeforeCount = Math.min(CONTEXT_LINES, validContextBefore.length + 1);
|
|
581
|
+
const ctxStartIdx = Math.max(0, actualOriginalStartLine - 1 - desiredBeforeCount);
|
|
582
|
+
for (let i = ctxStartIdx; i < actualOriginalStartLine - 1; i++) {
|
|
583
|
+
fileContextBefore.push(` ${originalLines[i]}`);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
const contextBefore = deletionLinesContent.length > 0 ? fileContextBefore : validContextBefore;
|
|
474
587
|
const originalContentEndLine = actualOriginalStartLine + deletionLinesContent.length;
|
|
475
588
|
let contextAfter;
|
|
476
589
|
if (deletionLinesContent.length === 0) {
|
|
@@ -478,12 +591,11 @@ function fixSingleHunk(hunk, originalContent) {
|
|
|
478
591
|
contextAfter = afterIdx < originalLines.length ? [` ${originalLines[afterIdx]}`] : [];
|
|
479
592
|
}
|
|
480
593
|
else {
|
|
481
|
-
contextAfter =
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
}
|
|
594
|
+
contextAfter = [];
|
|
595
|
+
const desiredAfterCount = Math.max(1, Math.min(CONTEXT_LINES, validContextAfter.length));
|
|
596
|
+
const afterStartIdx = originalContentEndLine - 1;
|
|
597
|
+
for (let i = afterStartIdx; i < afterStartIdx + desiredAfterCount && i < originalLines.length; i++) {
|
|
598
|
+
contextAfter.push(` ${originalLines[i]}`);
|
|
487
599
|
}
|
|
488
600
|
}
|
|
489
601
|
const finalContextBefore = deletionLinesContent.length === 0 ? validContextBefore : contextBefore;
|
|
@@ -608,6 +720,39 @@ async function patchFile(filePath, patch) {
|
|
|
608
720
|
}
|
|
609
721
|
let updatedContent = (0, diff_1.applyPatch)(originalContent, patch);
|
|
610
722
|
let appliedPatch = patch;
|
|
723
|
+
const patchHunks = parseHunks(patch);
|
|
724
|
+
const patchHasAdditions = patchHunks.some((h) => h.additions.length > 0);
|
|
725
|
+
const patchHasDeletions = patchHunks.some((h) => h.subtractions.length > 0);
|
|
726
|
+
function buildChangeSummary(original, updated) {
|
|
727
|
+
const origLines = original === "" ? [] : original.split("\n");
|
|
728
|
+
const updLines = updated === "" ? [] : updated.split("\n");
|
|
729
|
+
const netChange = updLines.length - origLines.length;
|
|
730
|
+
const origSet = new Set(origLines);
|
|
731
|
+
const updSet = new Set(updLines);
|
|
732
|
+
const addedLines = updLines.filter((l) => !origSet.has(l));
|
|
733
|
+
const removedLines = origLines.filter((l) => !updSet.has(l));
|
|
734
|
+
const linesAdded = netChange > 0 ? netChange : addedLines.length;
|
|
735
|
+
const linesRemoved = netChange < 0 ? -netChange : removedLines.length;
|
|
736
|
+
const parts = [];
|
|
737
|
+
parts.push(`+${linesAdded} lines, -${linesRemoved} lines (net: ${netChange > 0 ? "+" : ""}${netChange})`);
|
|
738
|
+
const previewAdded = addedLines.slice(0, 3);
|
|
739
|
+
if (previewAdded.length > 0) {
|
|
740
|
+
parts.push("Preview of additions:\n" + previewAdded.map((l) => ` + ${l.trim().slice(0, 100)}`).join("\n"));
|
|
741
|
+
}
|
|
742
|
+
const previewRemoved = removedLines.slice(0, 3);
|
|
743
|
+
if (previewRemoved.length > 0) {
|
|
744
|
+
parts.push("Preview of removals:\n" + previewRemoved.map((l) => ` - ${l.trim().slice(0, 100)}`).join("\n"));
|
|
745
|
+
}
|
|
746
|
+
return parts.join("\n");
|
|
747
|
+
}
|
|
748
|
+
let wasNoOp = false;
|
|
749
|
+
if (updatedContent !== false &&
|
|
750
|
+
updatedContent === originalContent &&
|
|
751
|
+
(patchHasAdditions || patchHasDeletions)) {
|
|
752
|
+
console.warn("Patch applied but resulted in NO CHANGES despite having additions/deletions. Treating as failure and attempting fix...");
|
|
753
|
+
wasNoOp = true;
|
|
754
|
+
updatedContent = false;
|
|
755
|
+
}
|
|
611
756
|
if (updatedContent === false) {
|
|
612
757
|
console.warn("Initial patch apply failed. Attempting to fix patch...");
|
|
613
758
|
let fixedPatch = null;
|
|
@@ -625,7 +770,14 @@ async function patchFile(filePath, patch) {
|
|
|
625
770
|
if (!fixedPatch || fixedPatch.trim() === "") {
|
|
626
771
|
console.error("Patch could not be fixed or resulted in an empty patch.");
|
|
627
772
|
await savePatchError(patch, fixedPatch, originalContent, "Patch fix resulted in empty or null patch.");
|
|
628
|
-
|
|
773
|
+
const hunkSummary = patchHunks.map((h, i) => ` Hunk ${i + 1}: ${h.header} — ${h.additions.length} additions, ${h.subtractions.length} deletions`).join("\n");
|
|
774
|
+
return [
|
|
775
|
+
`❌ Patch failed: could not apply or fix the patch (${patchHunks.length} hunk(s) attempted, 0 applied).`,
|
|
776
|
+
wasNoOp ? `⚠️ Note: The patch initially appeared to succeed but produced NO CHANGES (silent no-op). This often means context lines matched a different location than intended.` : null,
|
|
777
|
+
`File: ${filePath} (${originalContent.split("\n").length} lines)`,
|
|
778
|
+
`Hunks attempted:\n${hunkSummary}`,
|
|
779
|
+
`Tip: Break your patch into smaller hunks. Ensure context lines exactly match the file. Use readFile to verify the current content before patching.`,
|
|
780
|
+
].filter(Boolean).join("\n");
|
|
629
781
|
}
|
|
630
782
|
updatedContent = (0, diff_1.applyPatch)(originalContent, fixedPatch);
|
|
631
783
|
appliedPatch = fixedPatch;
|
|
@@ -638,15 +790,23 @@ async function patchFile(filePath, patch) {
|
|
|
638
790
|
if (updatedContent === false) {
|
|
639
791
|
console.error("Applying the *fixed* patch also failed.");
|
|
640
792
|
await savePatchError(patch, fixedPatch, originalContent, "Fixed patch also failed to apply.");
|
|
641
|
-
return
|
|
793
|
+
return [
|
|
794
|
+
`❌ Patch failed: could not apply even after auto-correction (${patchHunks.length} hunk(s) attempted, 0 applied).`,
|
|
795
|
+
wasNoOp ? `⚠️ Note: The patch initially appeared to succeed but produced NO CHANGES (silent no-op). Context lines may have matched the wrong location.` : null,
|
|
796
|
+
`File: ${filePath} (${originalContent.split("\n").length} lines)`,
|
|
797
|
+
`The auto-fix attempted to re-anchor your hunks to the file content but the resulting patch still failed.`,
|
|
798
|
+
`Tip: Use readFile to get the current exact content, then rewrite your patch with precise context lines matching the file. Make smaller, more targeted hunks.`,
|
|
799
|
+
].filter(Boolean).join("\n");
|
|
642
800
|
}
|
|
643
801
|
else {
|
|
644
802
|
console.log("Successfully applied the *fixed* patch.");
|
|
803
|
+
appliedPatch = fixedPatch;
|
|
645
804
|
}
|
|
646
805
|
}
|
|
647
806
|
else {
|
|
648
807
|
console.log("Successfully applied the original patch.");
|
|
649
808
|
}
|
|
809
|
+
const wasFixed = appliedPatch !== patch;
|
|
650
810
|
const eventResults = [];
|
|
651
811
|
if (context.Events) {
|
|
652
812
|
eventResults.push(...(await context.Events.emitBlocking("file:pre-edit", {
|
|
@@ -675,7 +835,25 @@ async function patchFile(filePath, patch) {
|
|
|
675
835
|
JSON.stringify(eventResults, null, 2);
|
|
676
836
|
}
|
|
677
837
|
}
|
|
678
|
-
|
|
838
|
+
const changeSummary = buildChangeSummary(originalContent, updatedContent);
|
|
839
|
+
const appliedHunks = parseHunks(appliedPatch);
|
|
840
|
+
const totalHunks = patchHunks.length;
|
|
841
|
+
const appliedHunkCount = appliedHunks.length;
|
|
842
|
+
const patchStatus = wasFixed
|
|
843
|
+
? `⚠️ Original patch required auto-correction before applying.`
|
|
844
|
+
: `✅ Original patch applied cleanly.`;
|
|
845
|
+
const hunkStatus = appliedHunkCount < totalHunks
|
|
846
|
+
? `⚠️ Only ${appliedHunkCount}/${totalHunks} hunks were applied.`
|
|
847
|
+
: `${appliedHunkCount}/${totalHunks} hunks applied.`;
|
|
848
|
+
const summaryLines = [
|
|
849
|
+
`Patch applied to ${filePath}.`,
|
|
850
|
+
patchStatus,
|
|
851
|
+
hunkStatus,
|
|
852
|
+
changeSummary,
|
|
853
|
+
];
|
|
854
|
+
if (eventResultsText)
|
|
855
|
+
summaryLines.push(eventResultsText);
|
|
856
|
+
return summaryLines.join("\n");
|
|
679
857
|
}
|
|
680
858
|
catch (e) {
|
|
681
859
|
console.error(`Error in patchFile function for ${filePath}:`, e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../../src/agents/tools/patch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../../src/agents/tools/patch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function readFile(filePath: string): Promise<string>;
|
|
1
|
+
export declare function readFile(filePath: string, fromLine?: number, toLine?: number): Promise<string>;
|
|
@@ -38,8 +38,7 @@ const fs = __importStar(require("fs"));
|
|
|
38
38
|
const utils_1 = require("../../utils");
|
|
39
39
|
const services_1 = require("../../services");
|
|
40
40
|
const fileSearch_1 = require("./fileSearch");
|
|
41
|
-
|
|
42
|
-
async function readFile(filePath) {
|
|
41
|
+
async function readFile(filePath, fromLine, toLine) {
|
|
43
42
|
const toolService = (this instanceof services_1.ToolsService ? this : (0, services_1.services)().Tools);
|
|
44
43
|
const context = toolService.getContext();
|
|
45
44
|
if (context.Events) {
|
|
@@ -57,13 +56,27 @@ async function readFile(filePath) {
|
|
|
57
56
|
throw new Error(`File not found: ${filePath}`);
|
|
58
57
|
}
|
|
59
58
|
const text = fs.readFileSync(filePath, "utf8");
|
|
60
|
-
const patch = (0, diff_1.createPatch)(filePath, "", text);
|
|
61
59
|
if (context.Events) {
|
|
62
60
|
await context.Events.emitNonBlocking("file:post-read", {
|
|
63
61
|
filePath,
|
|
64
62
|
content: text,
|
|
65
63
|
});
|
|
66
64
|
}
|
|
67
|
-
|
|
65
|
+
const hasRange = typeof fromLine === "number" || typeof toLine === "number";
|
|
66
|
+
if (!hasRange) {
|
|
67
|
+
return text;
|
|
68
|
+
}
|
|
69
|
+
const lines = text.split("\n");
|
|
70
|
+
const totalLines = lines.length;
|
|
71
|
+
const start = Math.max(1, typeof fromLine === "number" ? fromLine : 1);
|
|
72
|
+
const end = Math.min(totalLines, typeof toLine === "number" ? toLine : totalLines);
|
|
73
|
+
if (start > end) {
|
|
74
|
+
throw new Error(`Invalid line range for ${filePath}: fromLine (${start}) is greater than toLine (${end}). File has ${totalLines} lines.`);
|
|
75
|
+
}
|
|
76
|
+
const numbered = [];
|
|
77
|
+
for (let i = start; i <= end; i++) {
|
|
78
|
+
numbered.push(`${i}: ${lines[i - 1]}`);
|
|
79
|
+
}
|
|
80
|
+
return numbered.join("\n");
|
|
68
81
|
}
|
|
69
82
|
//# sourceMappingURL=readFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFile.js","sourceRoot":"","sources":["../../../../src/agents/tools/readFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"readFile.js","sourceRoot":"","sources":["../../../../src/agents/tools/readFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,4BAyEC;AAxGD,uCAAyB;AACzB,uCAAyC;AACzC,6CAAwD;AAExD,6CAA0C;AA2BnC,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,QAAiB,EACjB,MAAe;IAGf,MAAM,WAAW,GAAG,CAClB,IAAI,YAAY,uBAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAQ,GAAE,CAAC,KAAK,CACvC,CAAC;IAElB,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAGzC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;YACjD,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAU,EAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,yCAAyC,YAAY,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAI/C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,gBAAgB,EAAE;YACrD,QAAQ;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GACZ,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC;IAE7D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAClB,UAAU,EACV,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CACjD,CAAC;IAEF,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,eAAe,KAAK,6BAA6B,GAAG,eAAe,UAAU,SAAS,CACzH,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -115,6 +115,18 @@ class AgentModule extends BaseChatModule_1.BaseChatModule {
|
|
|
115
115
|
}
|
|
116
116
|
},
|
|
117
117
|
},
|
|
118
|
+
{
|
|
119
|
+
name: "poke",
|
|
120
|
+
description: "Interrupt the agent's current tool call or AI completion, so it can continue with the next step",
|
|
121
|
+
modes: ["agent:attached"],
|
|
122
|
+
handler: async (args) => {
|
|
123
|
+
if (this.attachedAgent) {
|
|
124
|
+
const message = args.length > 0 ? args.join(" ") : undefined;
|
|
125
|
+
this.attachedAgent.interrupt(message);
|
|
126
|
+
console.log("Agent interrupted — it will continue with the next step.");
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
},
|
|
118
130
|
{
|
|
119
131
|
name: "detach",
|
|
120
132
|
description: "Detach from the currently attached agent",
|