summaryrefslogtreecommitdiff
path: root/packages/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/utils/editCorrector.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/server/src/utils/editCorrector.ts b/packages/server/src/utils/editCorrector.ts
index 477b2381..a17de6d4 100644
--- a/packages/server/src/utils/editCorrector.ts
+++ b/packages/server/src/utils/editCorrector.ts
@@ -136,6 +136,14 @@ export async function ensureCorrectEdit(
}
}
+ const { targetString, pair } = trimPairIfPossible(
+ finalOldString,
+ finalNewString,
+ currentContent,
+ );
+ finalOldString = targetString;
+ finalNewString = pair;
+
// Final result construction
const result: CorrectedEditResult = {
params: {
@@ -359,6 +367,33 @@ Return ONLY the corrected string in the specified JSON format with the key 'corr
}
}
+function trimPairIfPossible(
+ target: string,
+ trimIfTargetTrims: string,
+ currentContent: string,
+) {
+ const trimmedTargetString = target.trim();
+ if (target.length !== trimmedTargetString.length) {
+ const trimmedTargetOccurrences = countOccurrences(
+ currentContent,
+ trimmedTargetString,
+ );
+
+ if (trimmedTargetOccurrences === 1) {
+ const trimmedReactiveString = trimIfTargetTrims.trim();
+ return {
+ targetString: trimmedTargetString,
+ pair: trimmedReactiveString,
+ };
+ }
+ }
+
+ return {
+ targetString: target,
+ pair: trimIfTargetTrims,
+ };
+}
+
/**
* Unescapes a string that might have been overly escaped by an LLM.
*/