@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.
Files changed (123) hide show
  1. package/package.json +1 -3
  2. package/src/agents/base/base.ts +72 -9
  3. package/src/agents/researcher/researcher.ts +9 -2
  4. package/src/agents/tools/list.ts +13 -2
  5. package/src/agents/tools/patch.ts +318 -32
  6. package/src/agents/tools/readFile.ts +48 -5
  7. package/src/chat/modules/AgentModule.ts +12 -0
  8. package/src/cli.ts +2 -0
  9. package/src/clients/anthropic.ts +12 -2
  10. package/src/clients/contextLimits.ts +77 -0
  11. package/src/commands/convert.ts +291 -0
  12. package/src/conversion.ts +15 -61
  13. package/src/index.ts +3 -0
  14. package/src/processors/TokenCompressor.ts +95 -9
  15. package/src/services/AgentSyncFs.ts +26 -4
  16. package/src/services/AgentSyncKnowhowWeb.ts +26 -4
  17. package/src/services/SyncedAgentWatcher.ts +8 -0
  18. package/src/services/conversion/ConversionService.ts +763 -0
  19. package/src/services/conversion/index.ts +2 -0
  20. package/src/services/conversion/types.ts +79 -0
  21. package/src/services/index.ts +8 -1
  22. package/src/services/modules/types.ts +2 -0
  23. package/src/services/watchers/FsSyncer.ts +6 -0
  24. package/src/services/watchers/RemoteSyncer.ts +5 -0
  25. package/tests/agents/tools/readFile.test.ts +88 -0
  26. package/tests/clients/AIClient.test.ts +5 -0
  27. package/tests/clients/contextLimits.test.ts +71 -0
  28. package/tests/patching/patchFileOutput.test.ts +217 -0
  29. package/tests/patching/regression-2026.test.ts +278 -0
  30. package/tests/processors/CustomVariables.test.ts +4 -4
  31. package/tests/processors/TokenCompressor.test.ts +59 -1
  32. package/tests/processors/tools/grepToolResponse.test.ts +72 -0
  33. package/tests/services/ConversionService.test.ts +154 -0
  34. package/tests/test.spec.ts +1 -1
  35. package/tests/unit/clients/AIClient.test.ts +8 -0
  36. package/ts_build/package.json +1 -3
  37. package/ts_build/src/agents/base/base.d.ts +3 -0
  38. package/ts_build/src/agents/base/base.js +46 -3
  39. package/ts_build/src/agents/base/base.js.map +1 -1
  40. package/ts_build/src/agents/researcher/researcher.js +5 -2
  41. package/ts_build/src/agents/researcher/researcher.js.map +1 -1
  42. package/ts_build/src/agents/tools/list.js +10 -2
  43. package/ts_build/src/agents/tools/list.js.map +1 -1
  44. package/ts_build/src/agents/tools/patch.js +202 -24
  45. package/ts_build/src/agents/tools/patch.js.map +1 -1
  46. package/ts_build/src/agents/tools/readFile.d.ts +1 -1
  47. package/ts_build/src/agents/tools/readFile.js +17 -4
  48. package/ts_build/src/agents/tools/readFile.js.map +1 -1
  49. package/ts_build/src/chat/modules/AgentModule.js +12 -0
  50. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  51. package/ts_build/src/cli.js +2 -0
  52. package/ts_build/src/cli.js.map +1 -1
  53. package/ts_build/src/clients/anthropic.js +7 -2
  54. package/ts_build/src/clients/anthropic.js.map +1 -1
  55. package/ts_build/src/clients/contextLimits.js +70 -0
  56. package/ts_build/src/clients/contextLimits.js.map +1 -1
  57. package/ts_build/src/commands/convert.d.ts +2 -0
  58. package/ts_build/src/commands/convert.js +275 -0
  59. package/ts_build/src/commands/convert.js.map +1 -0
  60. package/ts_build/src/conversion.js +6 -38
  61. package/ts_build/src/conversion.js.map +1 -1
  62. package/ts_build/src/index.d.ts +2 -0
  63. package/ts_build/src/index.js +4 -1
  64. package/ts_build/src/index.js.map +1 -1
  65. package/ts_build/src/processors/TokenCompressor.d.ts +2 -0
  66. package/ts_build/src/processors/TokenCompressor.js +57 -7
  67. package/ts_build/src/processors/TokenCompressor.js.map +1 -1
  68. package/ts_build/src/services/AgentSyncFs.d.ts +1 -0
  69. package/ts_build/src/services/AgentSyncFs.js +21 -4
  70. package/ts_build/src/services/AgentSyncFs.js.map +1 -1
  71. package/ts_build/src/services/AgentSyncKnowhowWeb.d.ts +1 -0
  72. package/ts_build/src/services/AgentSyncKnowhowWeb.js +21 -4
  73. package/ts_build/src/services/AgentSyncKnowhowWeb.js.map +1 -1
  74. package/ts_build/src/services/SyncedAgentWatcher.d.ts +3 -0
  75. package/ts_build/src/services/SyncedAgentWatcher.js +4 -0
  76. package/ts_build/src/services/SyncedAgentWatcher.js.map +1 -1
  77. package/ts_build/src/services/conversion/ConversionService.d.ts +18 -0
  78. package/ts_build/src/services/conversion/ConversionService.js +585 -0
  79. package/ts_build/src/services/conversion/ConversionService.js.map +1 -0
  80. package/ts_build/src/services/conversion/index.d.ts +2 -0
  81. package/ts_build/src/services/conversion/index.js +19 -0
  82. package/ts_build/src/services/conversion/index.js.map +1 -0
  83. package/ts_build/src/services/conversion/types.d.ts +49 -0
  84. package/ts_build/src/services/conversion/types.js +3 -0
  85. package/ts_build/src/services/conversion/types.js.map +1 -0
  86. package/ts_build/src/services/index.d.ts +3 -0
  87. package/ts_build/src/services/index.js +6 -1
  88. package/ts_build/src/services/index.js.map +1 -1
  89. package/ts_build/src/services/modules/index.d.ts +2 -0
  90. package/ts_build/src/services/modules/types.d.ts +2 -0
  91. package/ts_build/src/services/watchers/FsSyncer.d.ts +1 -0
  92. package/ts_build/src/services/watchers/FsSyncer.js +5 -0
  93. package/ts_build/src/services/watchers/FsSyncer.js.map +1 -1
  94. package/ts_build/src/services/watchers/RemoteSyncer.d.ts +1 -0
  95. package/ts_build/src/services/watchers/RemoteSyncer.js +4 -0
  96. package/ts_build/src/services/watchers/RemoteSyncer.js.map +1 -1
  97. package/ts_build/tests/agents/tools/readFile.test.d.ts +1 -0
  98. package/ts_build/tests/agents/tools/readFile.test.js +90 -0
  99. package/ts_build/tests/agents/tools/readFile.test.js.map +1 -0
  100. package/ts_build/tests/clients/AIClient.test.js +1 -0
  101. package/ts_build/tests/clients/AIClient.test.js.map +1 -1
  102. package/ts_build/tests/clients/contextLimits.test.d.ts +1 -0
  103. package/ts_build/tests/clients/contextLimits.test.js +57 -0
  104. package/ts_build/tests/clients/contextLimits.test.js.map +1 -0
  105. package/ts_build/tests/patching/patchFileOutput.test.d.ts +1 -0
  106. package/ts_build/tests/patching/patchFileOutput.test.js +187 -0
  107. package/ts_build/tests/patching/patchFileOutput.test.js.map +1 -0
  108. package/ts_build/tests/patching/regression-2026.test.js +214 -0
  109. package/ts_build/tests/patching/regression-2026.test.js.map +1 -1
  110. package/ts_build/tests/processors/CustomVariables.test.js +4 -4
  111. package/ts_build/tests/processors/CustomVariables.test.js.map +1 -1
  112. package/ts_build/tests/processors/TokenCompressor.test.js +37 -1
  113. package/ts_build/tests/processors/TokenCompressor.test.js.map +1 -1
  114. package/ts_build/tests/processors/tools/grepToolResponse.test.d.ts +1 -0
  115. package/ts_build/tests/processors/tools/grepToolResponse.test.js +40 -0
  116. package/ts_build/tests/processors/tools/grepToolResponse.test.js.map +1 -0
  117. package/ts_build/tests/services/ConversionService.test.d.ts +1 -0
  118. package/ts_build/tests/services/ConversionService.test.js +154 -0
  119. package/ts_build/tests/services/ConversionService.test.js.map +1 -0
  120. package/ts_build/tests/test.spec.js +1 -1
  121. package/ts_build/tests/test.spec.js.map +1 -1
  122. package/ts_build/tests/unit/clients/AIClient.test.js +3 -0
  123. 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
- let precedingContextLine = "";
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
- precedingContextLine = line.slice(1);
247
+ leadingContextBlock.push(line.slice(1));
229
248
  }
230
249
  }
231
- if (precedingContextLine) {
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 pureHeader = `@@ -${actualOriginalStartLine},0 +${actualOriginalStartLine},${hunk.additions.length} @@`;
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: actualOriginalStartLine,
434
- originalLineCount: 0,
435
- newStartLine: actualOriginalStartLine,
436
- newLineCount: hunk.additions.length,
437
- lines: hunk.additions,
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 supplementBeforeIdx = actualOriginalStartLine - 1 - validContextBefore.length - 1;
470
- const supplementBefore = supplementBeforeIdx >= 0
471
- ? [` ${originalLines[supplementBeforeIdx]}`]
472
- : [];
473
- const contextBefore = [...supplementBefore, ...validContextBefore];
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 = validContextAfter;
482
- if (contextAfter.length === 0) {
483
- const afterIdx = originalContentEndLine - 1;
484
- if (afterIdx < originalLines.length) {
485
- contextAfter = [` ${originalLines[afterIdx]}`];
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
- return `Patch failed to apply and could not be fixed or resulted in no changes. Make sure you are making small patches`;
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 "Patch failed to apply even after attempting to fix it. Make sure you are making small patches.";
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
- return `Patch applied successfully.${filePath ? ` Use readFile on ${filePath} to verify changes.` : ""}${eventResultsText}`.trim();
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
- const diff_1 = require("diff");
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
- return patch;
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,4BAyCC;AA7DD,uCAAyB;AACzB,uCAAyC;AACzC,6CAAwD;AAExD,6CAA0C;AAC1C,+BAAmC;AAe5B,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAE7C,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;IAC/C,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAG9C,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,OAAO,KAAK,CAAC;AACf,CAAC"}
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",