tweak(edit): separate edit tool error message with clearer guidance to avoid llm doom editing loop (#2051)

This commit is contained in:
spoons-and-mirrors
2025-09-05 18:36:13 +02:00
committed by GitHub
parent 66a5d58221
commit 900fe5ca04
2 changed files with 10 additions and 2 deletions

View File

@@ -594,6 +594,8 @@ export function replace(content: string, oldString: string, newString: string, r
throw new Error("oldString and newString must be different")
}
let notFound = true
for (const replacer of [
SimpleReplacer,
LineTrimmedReplacer,
@@ -608,6 +610,7 @@ export function replace(content: string, oldString: string, newString: string, r
for (const search of replacer(content, oldString)) {
const index = content.indexOf(search)
if (index === -1) continue
notFound = false
if (replaceAll) {
return content.replaceAll(search, newString)
}
@@ -616,5 +619,9 @@ export function replace(content: string, oldString: string, newString: string, r
return content.substring(0, index) + newString + content.substring(index + search.length)
}
}
throw new Error("oldString not found in content or was found multiple times")
if (notFound) {
throw new Error("oldString not found in content")
}
throw new Error("oldString found multiple times and requires more code context to uniquely identify the intended match")
}