mirror of
https://github.com/decolua/9router.git
synced 2026-05-08 12:01:28 +00:00
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:
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user