fix: Handle list values in Gemini schema sanitization

The schema sanitization utility now recursively processes list items, ensuring that properties with list values (e.g., "required") are correctly handled and not altered.

Close #4363

Co-authored-by: George Weale <gweale@google.com>
PiperOrigin-RevId: 867663267
This commit is contained in:
George Weale
2026-02-09 10:20:08 -08:00
committed by Copybara-Service
parent 6bc70a6bab
commit fd8a9e3962
2 changed files with 28 additions and 4 deletions
@@ -579,6 +579,20 @@ class TestToGeminiSchema:
"null",
]
def test_sanitize_schema_formats_for_gemini_with_list_property_value(self):
schema = {
"type": "object",
"properties": {
"required": ["sql"],
"sql": {"type": "string"},
},
}
sanitized = _sanitize_schema_formats_for_gemini(schema)
assert sanitized["properties"]["required"] == ["sql"]
assert sanitized["properties"]["sql"]["type"] == "string"
def test_sanitize_schema_formats_for_gemini_nullable(self):
openapi_schema = {
"properties": {