diff --git a/.changeset/cyan-camels-explode.md b/.changeset/cyan-camels-explode.md new file mode 100644 index 0000000..7bc47f8 --- /dev/null +++ b/.changeset/cyan-camels-explode.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Fix bug where language selector wasn't working diff --git a/src/core/Cline.ts b/src/core/Cline.ts index f26b43b..9d82086 100644 --- a/src/core/Cline.ts +++ b/src/core/Cline.ts @@ -809,7 +809,8 @@ export class Cline { }) } - const { browserViewportSize, mode, customPrompts } = (await this.providerRef.deref()?.getState()) ?? {} + const { browserViewportSize, mode, customPrompts, preferredLanguage } = + (await this.providerRef.deref()?.getState()) ?? {} const { customModes } = (await this.providerRef.deref()?.getState()) ?? {} const systemPrompt = await (async () => { const provider = this.providerRef.deref() @@ -826,6 +827,7 @@ export class Cline { mode, customPrompts, customModes, + preferredLanguage, ) })() diff --git a/src/core/prompts/__tests__/sections.test.ts b/src/core/prompts/__tests__/sections.test.ts new file mode 100644 index 0000000..064639f --- /dev/null +++ b/src/core/prompts/__tests__/sections.test.ts @@ -0,0 +1,28 @@ +import { addCustomInstructions } from "../sections/custom-instructions" + +describe("addCustomInstructions", () => { + test("adds preferred language to custom instructions", async () => { + const result = await addCustomInstructions( + "mode instructions", + "global instructions", + "/test/path", + "test-mode", + { preferredLanguage: "French" }, + ) + + expect(result).toContain("Language Preference:") + expect(result).toContain("You should always speak and think in the French language") + }) + + test("works without preferred language", async () => { + const result = await addCustomInstructions( + "mode instructions", + "global instructions", + "/test/path", + "test-mode", + ) + + expect(result).not.toContain("Language Preference:") + expect(result).not.toContain("You should always speak and think in") + }) +}) diff --git a/src/core/prompts/system.ts b/src/core/prompts/system.ts index 3d30a96..bb7797f 100644 --- a/src/core/prompts/system.ts +++ b/src/core/prompts/system.ts @@ -37,6 +37,7 @@ async function generatePrompt( promptComponent?: PromptComponent, customModeConfigs?: ModeConfig[], globalCustomInstructions?: string, + preferredLanguage?: string, ): Promise { if (!context) { throw new Error("Extension context is required for generating system prompt") @@ -79,7 +80,7 @@ ${getSystemInfoSection(cwd, mode, customModeConfigs)} ${getObjectiveSection()} -${await addCustomInstructions(modeConfig.customInstructions || "", globalCustomInstructions || "", cwd, mode, {})}` +${await addCustomInstructions(modeConfig.customInstructions || "", globalCustomInstructions || "", cwd, mode, { preferredLanguage })}` return basePrompt } @@ -95,6 +96,7 @@ export const SYSTEM_PROMPT = async ( customPrompts?: CustomPrompts, customModes?: ModeConfig[], globalCustomInstructions?: string, + preferredLanguage?: string, ): Promise => { if (!context) { throw new Error("Extension context is required for generating system prompt") @@ -123,5 +125,6 @@ export const SYSTEM_PROMPT = async ( promptComponent, customModes, globalCustomInstructions, + preferredLanguage, ) }