kaitranntt
917f0bbef7
test(cliproxy): add edge case coverage for Gemini schema sanitizer
...
Add tests for: exclusiveMinimum/exclusiveMaximum/multipleOf stripping,
uniqueItems/contains/additionalItems stripping, writeOnly/definitions
stripping, example with array values, default with complex nested
objects, empty properties/anyOf edge cases.
Fix proxy log message to say "Gemini-unsupported" instead of
"non-standard".
2026-02-07 06:25:29 -05:00
kaitranntt
505d6d0f11
fix(cliproxy): strip Gemini-unsupported schema fields including "examples"
...
Replace permissive JSON Schema Draft-07 whitelist with strict
Gemini-compatible field set (22 fields). The "examples" field
in Claude Code tool schemas caused 400 errors from Gemini API.
Also strips other unsupported fields: $ref, $defs, oneOf, allOf,
additionalProperties, const, if/then/else, etc.
Safe change — sanitizer only runs for CLIProxy profiles (Gemini,
Codex, Antigravity), never for direct Anthropic API requests.
Closes #155
2026-02-07 06:17:26 -05:00
Kai (Tam Nhu) Tran and GitHub
f8c179f6da
fix(cliproxy): sanitize MCP tool input_schema to remove non-standard properties ( #459 )
...
Squash merge PR #459 : MCP tool input_schema sanitization
Fixes #456 - Gemini/Vertex APIs reject non-standard JSON Schema properties from MCP tools
Changes:
- Add allowlist-based schema sanitizer for JSON Schema Draft-07 keywords
- Recursive sanitization with circular ref protection and depth limit
- Handle all schema containers: properties, items, additionalProperties, additionalItems, oneOf/anyOf/allOf, not, if/then/else, $defs, definitions, patternProperties, contains, propertyNames, dependencies
- 22 unit tests covering edge cases
- Integrates into ToolSanitizationProxy pipeline before tool name sanitization
2026-02-04 20:19:58 -05:00