From 9213b7088b611cd3e94ffa90508593d0bcf47033 Mon Sep 17 00:00:00 2001 From: reanon <85157-reanon@users.noreply.gitgud.io> Date: Wed, 23 Apr 2025 19:10:13 +0000 Subject: [PATCH] Cohee, when I catch you Cohee --- src/shared/api-schemas/google-ai.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/shared/api-schemas/google-ai.ts b/src/shared/api-schemas/google-ai.ts index 4fb92f0..7686865 100644 --- a/src/shared/api-schemas/google-ai.ts +++ b/src/shared/api-schemas/google-ai.ts @@ -76,6 +76,7 @@ export const GoogleAIV1GenerateContentSchema = z topK: z.number().min(1).max(40).optional(), stopSequences: z.array(z.string().max(500)).max(5).optional(), thinkingConfig: z.object({ + enable_thinking: z.boolean().optional(), includeThoughts: z.boolean().optional(), thinkingBudget: z.union([ z.literal("auto"), @@ -83,7 +84,21 @@ export const GoogleAIV1GenerateContentSchema = z ]).optional() }).optional() }) - .default({}), + .default({}) + .transform((config) => { + // Auto-enable thinking when thinkingBudget is set + if (config.thinkingConfig?.thinkingBudget !== undefined && + config.thinkingConfig.enable_thinking === undefined) { + return { + ...config, + thinkingConfig: { + ...config.thinkingConfig, + enable_thinking: true + } + }; + } + return config; + }), }) .strip(); export type GoogleAIChatMessage = z.infer< @@ -182,4 +197,4 @@ export function containsImageContent(contents: GoogleAIChatMessage[]): boolean { const parts = Array.isArray(content.parts) ? content.parts : [content.parts]; return parts.some(part => 'inlineData' in part); }); -} +} \ No newline at end of file