diff --git a/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/uselessSuggestionFilter.test.ts b/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/uselessSuggestionFilter.test.ts index 2a23682396..b2cd98dbfc 100644 --- a/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/uselessSuggestionFilter.test.ts +++ b/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/__tests__/uselessSuggestionFilter.test.ts @@ -42,25 +42,15 @@ describe("postprocessAutocompleteSuggestion", () => { expect(result).toBe("test") }) - it("handles Mercury/Granite prefix duplication", () => { + it("handles Mercury prefix duplication", () => { const result = postprocessAutocompleteSuggestion({ suggestion: "const x = 42", prefix: "const x = ", suffix: "", - model: "granite-20b", + model: "inception/mercury-edit", }) expect(result).toBe("42") }) - - it("handles Gemini/Gemma file separator", () => { - const result = postprocessAutocompleteSuggestion({ - suggestion: "const x = 1<|file_separator|>", - prefix: "", - suffix: "", - model: "gemini-pro", - }) - expect(result).toBe("const x = 1") - }) }) describe("extreme repetition filtering", () => { diff --git a/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/uselessSuggestionFilter.ts b/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/uselessSuggestionFilter.ts index ea47bd2379..db1d975b4e 100644 --- a/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/uselessSuggestionFilter.ts +++ b/packages/kilo-vscode/src/services/autocomplete/classic-auto-complete/uselessSuggestionFilter.ts @@ -133,7 +133,7 @@ function normalizeToCompleteLine(params: AutocompleteSuggestion): AutocompleteSu * @param params.suggestion - The suggested text to insert * @param params.prefix - The text before the cursor position * @param params.suffix - The text after the cursor position - * @param params.model - The model string (e.g., "codestral", "qwen3", etc.) + * @param params.model - The model string (e.g., "codestral", "mercury", etc.) * @param params.languageId - Optional language ID for language-specific filtering * @returns The processed suggestion text, or undefined if it should be filtered out */ diff --git a/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/index.ts b/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/index.ts index 0e67bdf798..7f384b09a4 100644 --- a/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/index.ts +++ b/packages/kilo-vscode/src/services/autocomplete/continuedev/core/autocomplete/postprocessing/index.ts @@ -133,34 +133,18 @@ export function postprocessCompletion({ } } - if (llm.model.includes("qwen3")) { - // Qwen3 always starts from special thinking markers, and we don't want them to output these contents - // Remove all content from " - completion = completion.replace(/.*?<\/think>/s, "") - completion = completion.replace(/<\/think>/, "") - - // Remove any number of newline characters at the beginning and end - completion = completion.replace(/^\n+|\n+$/g, "") - } - - if (llm.model.includes("mercury") || llm.model.includes("granite")) { + if (llm.model.includes("mercury")) { completion = removePrefixOverlap(completion, prefix) - } - // // If completion starts with multiple whitespaces, but the cursor is at the end of the line - // // then it should probably be on a new line - if ( - llm.model.includes("mercury") && - (completion.startsWith(" ") || completion.startsWith("\t")) && - !prefix.endsWith("\n") && - (suffix.startsWith("\n") || suffix.trim().length === 0) - ) { - completion = "\n" + completion - } - - if ((llm.model.includes("gemini") || llm.model.includes("gemma")) && completion.endsWith("<|file_separator|>")) { - // "<|file_separator|>" is 18 characters long - completion = completion.slice(0, -18) + // If completion starts with multiple whitespaces, but the cursor is at the + // end of the line then it should probably be on a new line + if ( + (completion.startsWith(" ") || completion.startsWith("\t")) && + !prefix.endsWith("\n") && + (suffix.startsWith("\n") || suffix.trim().length === 0) + ) { + completion = "\n" + completion + } } // If prefix ends with space and so does completion, then remove the space from completion