From 4d7ddbfffe202c76ac860927b408ff6bc83a61f8 Mon Sep 17 00:00:00 2001 From: Anurag Saxena Date: Sun, 22 Mar 2026 22:20:55 -0400 Subject: [PATCH] fix: add missing type:string to enum properties in Gemini tool schema translation (#380) Gemini API requires enum properties to have an explicit type:"string" declaration. Without it, tool calls with enum parameters return 400 Bad Request. Fixes #359. --- open-sse/translator/helpers/geminiHelper.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/open-sse/translator/helpers/geminiHelper.js b/open-sse/translator/helpers/geminiHelper.js index 283d26a5..77be2233 100644 --- a/open-sse/translator/helpers/geminiHelper.js +++ b/open-sse/translator/helpers/geminiHelper.js @@ -138,12 +138,16 @@ function convertConstToEnum(obj) { } } -// Convert enum values to strings (Gemini requires string enum values) +// Convert enum values to strings (Gemini requires string enum values + explicit type:"string") function convertEnumValuesToStrings(obj) { if (!obj || typeof obj !== "object") return; if (obj.enum && Array.isArray(obj.enum)) { obj.enum = obj.enum.map(v => String(v)); + // Gemini API requires type:"string" when enum is present — without it returns 400 + if (!obj.type) { + obj.type = "string"; + } } for (const value of Object.values(obj)) {