upate to PR 669 (#700)

Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
This commit is contained in:
Bryan Morgan 2025-06-02 19:59:38 -04:00 committed by GitHub
parent 8563e46ade
commit 91fa770196
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 9 deletions

View File

@ -76,10 +76,12 @@ export async function ensureCorrectEdit(
unescapeStringForGeminiBug(originalParams.new_string) !== unescapeStringForGeminiBug(originalParams.new_string) !==
originalParams.new_string; originalParams.new_string;
const expectedReplacements = originalParams.expected_replacements ?? 1;
let finalOldString = originalParams.old_string; let finalOldString = originalParams.old_string;
let occurrences = countOccurrences(currentContent, finalOldString); let occurrences = countOccurrences(currentContent, finalOldString);
if (occurrences === (originalParams.expected_replacements ?? 1)) { if (occurrences === expectedReplacements) {
if (newStringPotentiallyEscaped) { if (newStringPotentiallyEscaped) {
finalNewString = await correctNewStringEscaping( finalNewString = await correctNewStringEscaping(
client, client,
@ -88,7 +90,7 @@ export async function ensureCorrectEdit(
abortSignal, abortSignal,
); );
} }
} else if (occurrences > 1) { } else if (occurrences > expectedReplacements) {
const expectedReplacements = originalParams.expected_replacements ?? 1; const expectedReplacements = originalParams.expected_replacements ?? 1;
// If user expects multiple replacements, return as-is // If user expects multiple replacements, return as-is
@ -125,7 +127,7 @@ export async function ensureCorrectEdit(
); );
occurrences = countOccurrences(currentContent, unescapedOldStringAttempt); occurrences = countOccurrences(currentContent, unescapedOldStringAttempt);
if (occurrences === (originalParams.expected_replacements ?? 1)) { if (occurrences === expectedReplacements) {
finalOldString = unescapedOldStringAttempt; finalOldString = unescapedOldStringAttempt;
if (newStringPotentiallyEscaped) { if (newStringPotentiallyEscaped) {
finalNewString = await correctNewString( finalNewString = await correctNewString(
@ -148,7 +150,7 @@ export async function ensureCorrectEdit(
llmCorrectedOldString, llmCorrectedOldString,
); );
if (llmOldOccurrences === (originalParams.expected_replacements ?? 1)) { if (llmOldOccurrences === expectedReplacements) {
finalOldString = llmCorrectedOldString; finalOldString = llmCorrectedOldString;
occurrences = llmOldOccurrences; occurrences = llmOldOccurrences;
@ -188,7 +190,7 @@ export async function ensureCorrectEdit(
finalOldString, finalOldString,
finalNewString, finalNewString,
currentContent, currentContent,
originalParams, expectedReplacements,
); );
finalOldString = targetString; finalOldString = targetString;
finalNewString = pair; finalNewString = pair;
@ -532,7 +534,7 @@ function trimPairIfPossible(
target: string, target: string,
trimIfTargetTrims: string, trimIfTargetTrims: string,
currentContent: string, currentContent: string,
originalParams: EditToolParams, expectedReplacements: number,
) { ) {
const trimmedTargetString = target.trim(); const trimmedTargetString = target.trim();
if (target.length !== trimmedTargetString.length) { if (target.length !== trimmedTargetString.length) {
@ -541,9 +543,7 @@ function trimPairIfPossible(
trimmedTargetString, trimmedTargetString,
); );
if ( if (trimmedTargetOccurrences === expectedReplacements) {
trimmedTargetOccurrences === (originalParams.expected_replacements ?? 1)
) {
const trimmedReactiveString = trimIfTargetTrims.trim(); const trimmedReactiveString = trimIfTargetTrims.trim();
return { return {
targetString: trimmedTargetString, targetString: trimmedTargetString,