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.
This commit is contained in:
Anurag Saxena
2026-03-22 22:20:55 -04:00
committed by GitHub
parent 1154244f1d
commit 4d7ddbfffe

View File

@@ -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)) {