From f2dcd5597dadd0450db052e795f91dc22e3fa542 Mon Sep 17 00:00:00 2001 From: mawkone Date: Tue, 19 May 2026 16:15:59 -0700 Subject: [PATCH] fix(ai): correct Gemini SDK payload property thinkingBudgetTokens to thinkingBudget --- vibn-frontend/fix_genai_bug.js | 16 ++++++++++++++++ vibn-frontend/lib/ai/gemini-chat.ts | 4 ++-- vibn-frontend/lib/ai/gemini-client.ts | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 vibn-frontend/fix_genai_bug.js diff --git a/vibn-frontend/fix_genai_bug.js b/vibn-frontend/fix_genai_bug.js new file mode 100644 index 00000000..4beaee20 --- /dev/null +++ b/vibn-frontend/fix_genai_bug.js @@ -0,0 +1,16 @@ +const fs = require('fs'); + +const file1 = 'lib/ai/gemini-chat.ts'; +let code1 = fs.readFileSync(file1, 'utf8'); + +// The correct property name for @google/genai ^1.0.0 is `thinkingBudget`. +// `thinkingBudgetTokens` is the old deprecated name that throws the 400 error! +code1 = code1.replace(/thinkingBudgetTokens:/g, 'thinkingBudget:'); +fs.writeFileSync(file1, code1); + +const file2 = 'lib/ai/gemini-client.ts'; +let code2 = fs.readFileSync(file2, 'utf8'); +code2 = code2.replace(/thinkingBudgetTokens:/g, 'thinkingBudget:'); +fs.writeFileSync(file2, code2); + +console.log("Fixed thinkingBudget property error for Gemini"); diff --git a/vibn-frontend/lib/ai/gemini-chat.ts b/vibn-frontend/lib/ai/gemini-chat.ts index a23e698b..ec9267ec 100644 --- a/vibn-frontend/lib/ai/gemini-chat.ts +++ b/vibn-frontend/lib/ai/gemini-chat.ts @@ -114,7 +114,7 @@ export async function callGeminiChat(opts: { } if (opts.includeThoughts) { - config.thinkingConfig = { thinkingBudgetTokens: 1024 }; + config.thinkingConfig = { thinkingBudget: 1024 }; } const fns = toGeminiFunctions(opts.tools ?? []); @@ -174,7 +174,7 @@ export async function* streamGeminiChat(opts: { const config: any = { temperature: opts.temperature ?? 0.7, maxOutputTokens: 8192, - thinkingConfig: { thinkingBudgetTokens: 1024 }, + thinkingConfig: { thinkingBudget: 1024 }, }; if (opts.systemPrompt) { diff --git a/vibn-frontend/lib/ai/gemini-client.ts b/vibn-frontend/lib/ai/gemini-client.ts index bdb7af73..f4fe6b28 100644 --- a/vibn-frontend/lib/ai/gemini-client.ts +++ b/vibn-frontend/lib/ai/gemini-client.ts @@ -88,7 +88,7 @@ export class GeminiLlmClient implements LlmClient { if (args.thinking_config) { config.thinkingConfig = { - thinkingBudgetTokens: 1024, + thinkingBudget: 1024, }; }