Commit 067766b
committed
fix(fetch): use OpenAPI 3.0 compatible schema keywords for Gemini support
The Fetch model's JSON schema used keywords incompatible with LLM
providers that only support OpenAPI 3.0 (e.g. Google Gemini 2.5 Pro),
causing 400 INVALID_ARGUMENT errors:
1. max_length field used gt=0/lt=1000000 (Pydantic Field constraints),
which generated exclusiveMinimum/exclusiveMaximum — not recognized
by Gemini. Changed to ge=1/le=999999 (identical semantics for
integers), which emits the supported minimum/maximum keywords.
2. url field used AnyUrl, which generated format: "uri" and minLength: 1
— Gemini only supports "enum" and "date-time" for string format.
Added WithJsonSchema override to emit a plain string schema while
preserving AnyUrl runtime validation.
Fixes #1624
Made-with: Cursor1 parent f424458 commit 067766b
2 files changed
+41
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
155 | 159 | | |
156 | 160 | | |
157 | 161 | | |
158 | 162 | | |
159 | 163 | | |
160 | | - | |
161 | | - | |
| 164 | + | |
| 165 | + | |
162 | 166 | | |
163 | 167 | | |
164 | 168 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
16 | 49 | | |
17 | 50 | | |
18 | 51 | | |
| |||
0 commit comments