diff --git a/packages/core/src/tools/edit.ts b/packages/core/src/tools/edit.ts index da230be95e..edd6959949 100644 --- a/packages/core/src/tools/edit.ts +++ b/packages/core/src/tools/edit.ts @@ -138,6 +138,17 @@ async function calculateExactReplacement( const normalizedReplace = new_string.replace(/\r\n/g, '\n'); const exactOccurrences = normalizedCode.split(normalizedSearch).length - 1; + const expectedReplacements = params.expected_replacements ?? 1; + + if (exactOccurrences > expectedReplacements) { + return { + newContent: currentContent, + occurrences: exactOccurrences, + finalOldString: normalizedSearch, + finalNewString: normalizedReplace, + }; + } + if (exactOccurrences > 0) { let modifiedCode = safeLiteralReplace( normalizedCode,