@providerkit/core 0.21.1 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/attribution.d.ts +2 -2
- package/dist/auth/flows.d.ts.map +1 -1
- package/dist/auth/flows.js +5 -5
- package/dist/auth/flows.js.map +1 -1
- package/dist/auth/index.d.ts +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/oauth.d.ts +12 -0
- package/dist/auth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth.js +19 -1
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/token-source.d.ts +9 -3
- package/dist/auth/token-source.d.ts.map +1 -1
- package/dist/auth/token-source.js +24 -9
- package/dist/auth/token-source.js.map +1 -1
- package/dist/auth/with-token.d.ts +29 -0
- package/dist/auth/with-token.d.ts.map +1 -0
- package/dist/auth/with-token.js +85 -0
- package/dist/auth/with-token.js.map +1 -0
- package/dist/capability.d.ts +9 -9
- package/dist/capability.js +9 -9
- package/dist/capability.js.map +1 -1
- package/dist/context.d.ts +43 -5
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +123 -4
- package/dist/context.js.map +1 -1
- package/dist/errors.d.ts +26 -17
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +57 -18
- package/dist/errors.js.map +1 -1
- package/dist/fallback.d.ts +45 -1
- package/dist/fallback.d.ts.map +1 -1
- package/dist/fallback.js +138 -75
- package/dist/fallback.js.map +1 -1
- package/dist/image.d.ts +1 -1
- package/dist/image.d.ts.map +1 -1
- package/dist/jev.d.ts +9 -9
- package/dist/jev.d.ts.map +1 -1
- package/dist/jev.js +1 -1
- package/dist/key-pool.d.ts +14 -8
- package/dist/key-pool.d.ts.map +1 -1
- package/dist/key-pool.js +35 -18
- package/dist/key-pool.js.map +1 -1
- package/dist/presets.d.ts +33 -24
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +25 -14
- package/dist/presets.js.map +1 -1
- package/dist/providers/anthropic.d.ts +5 -5
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +89 -34
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/factory.d.ts +2 -2
- package/dist/providers/factory.d.ts.map +1 -1
- package/dist/providers/factory.js +2 -1
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/gemini.d.ts +8 -2
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +117 -41
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/openai.d.ts +12 -9
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +72 -21
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/responses.d.ts +3 -3
- package/dist/providers/responses.d.ts.map +1 -1
- package/dist/providers/responses.js +103 -57
- package/dist/providers/responses.js.map +1 -1
- package/dist/providers/zai.d.ts +2 -2
- package/dist/providers/zai.js +2 -2
- package/dist/rate-limit.d.ts +13 -3
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +10 -4
- package/dist/rate-limit.js.map +1 -1
- package/dist/retry.d.ts +16 -5
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +29 -16
- package/dist/retry.js.map +1 -1
- package/dist/schema.d.ts +6 -6
- package/dist/schema.js +8 -8
- package/dist/tool-args.d.ts +23 -1
- package/dist/tool-args.d.ts.map +1 -1
- package/dist/tool-args.js +30 -2
- package/dist/tool-args.js.map +1 -1
- package/dist/tools.d.ts +3 -3
- package/dist/tools.js +2 -2
- package/dist/tools.js.map +1 -1
- package/dist/transport.d.ts +40 -10
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +82 -21
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +37 -23
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -11
- package/dist/types.js.map +1 -1
- package/dist/usage.d.ts +4 -4
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +3 -3
- package/dist/usage.js.map +1 -1
- package/dist/watchdog.d.ts +14 -12
- package/dist/watchdog.d.ts.map +1 -1
- package/dist/watchdog.js +35 -16
- package/dist/watchdog.js.map +1 -1
- package/dist/zod.d.ts +4 -4
- package/dist/zod.js +3 -3
- package/package.json +1 -1
- package/src/attribution.ts +2 -2
- package/src/auth/flows.ts +5 -4
- package/src/auth/index.ts +1 -0
- package/src/auth/oauth.ts +23 -1
- package/src/auth/token-source.ts +30 -11
- package/src/auth/with-token.ts +97 -0
- package/src/capability.ts +12 -12
- package/src/context.ts +141 -6
- package/src/errors.ts +63 -23
- package/src/fallback.ts +173 -75
- package/src/image.ts +1 -1
- package/src/jev.ts +11 -11
- package/src/key-pool.ts +37 -20
- package/src/presets.ts +38 -24
- package/src/providers/anthropic.ts +97 -38
- package/src/providers/factory.ts +4 -3
- package/src/providers/gemini.ts +121 -44
- package/src/providers/openai.ts +78 -25
- package/src/providers/responses.ts +113 -61
- package/src/providers/zai.ts +2 -2
- package/src/rate-limit.ts +35 -7
- package/src/retry.ts +46 -15
- package/src/schema.ts +8 -8
- package/src/tool-args.ts +46 -2
- package/src/tools.ts +4 -4
- package/src/transport.ts +103 -23
- package/src/types.ts +37 -23
- package/src/usage.ts +5 -5
- package/src/watchdog.ts +38 -19
- package/src/zod.ts +4 -4
|
@@ -3,7 +3,7 @@ import type { ChatMessage, Effort, JsonWithTools, Provider } from "../types.ts";
|
|
|
3
3
|
export interface GeminiConfig extends ProviderFallbackConfig {
|
|
4
4
|
apiKey: string;
|
|
5
5
|
model: string;
|
|
6
|
-
/** Any endpoint speaking the Generative Language REST dialect
|
|
6
|
+
/** Any endpoint speaking the Generative Language REST dialect, including a proxy or
|
|
7
7
|
* gateway. Defaults to the Generative Language API.
|
|
8
8
|
*
|
|
9
9
|
* Not Vertex: it serves `/v1/projects/…/locations/…/publishers/google/models`
|
|
@@ -16,7 +16,7 @@ export interface GeminiConfig extends ProviderFallbackConfig {
|
|
|
16
16
|
effort?: Effort;
|
|
17
17
|
/**
|
|
18
18
|
* How the schema rides on a call that also carries tools. See
|
|
19
|
-
* {@link JsonWithTools}
|
|
19
|
+
* {@link JsonWithTools}. Note that it is the model's answer, not the
|
|
20
20
|
* endpoint's: measured 2026-09-07, `gemini-3.5-flash` and
|
|
21
21
|
* `gemini-3.5-flash-lite` called their tool under `responseJsonSchema` every
|
|
22
22
|
* time, while `gemini-3.8-flash` managed 3/10. `probeJsonWithTools` asks the
|
|
@@ -41,6 +41,12 @@ export interface GeminiContent {
|
|
|
41
41
|
* and carry tool calls as `functionCall` parts with the thought signature
|
|
42
42
|
* beside them; tool results are role `user` with a `functionResponse` part
|
|
43
43
|
* naming the FUNCTION, since Gemini pairs a result to its call by name.
|
|
44
|
+
*
|
|
45
|
+
* A run of results is ONE user turn: Gemini answers a model turn's parallel
|
|
46
|
+
* calls with every response together, and spread over several turns it 400s
|
|
47
|
+
* that the response count does not match the call count. The responses go
|
|
48
|
+
* first, in call order, and the run's images follow them all, the way the
|
|
49
|
+
* OpenAI dialect places them.
|
|
44
50
|
*/
|
|
45
51
|
export declare function toGeminiContents(messages: readonly ChatMessage[]): {
|
|
46
52
|
system?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAYA,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EAEN,aAAa,EACb,QAAQ,EAMT,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,YAAa,SAAQ,sBAAsB;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;;;;;oFAKgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAkCD,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAqCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAqEA;AA+GD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAsOnE"}
|
package/dist/providers/gemini.js
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
// its own chain of thought on the next turn. Written straight against the REST
|
|
6
6
|
// wire rather than @google/genai, because this package ships zero dependencies
|
|
7
7
|
// and the SDK is a Node-shaped one.
|
|
8
|
+
import { repairHistory } from "../context.js";
|
|
8
9
|
import { ProviderError, streamCut, streamError } from "../errors.js";
|
|
9
10
|
import { schemaPrompt, toGeminiToolSchema } from "../schema.js";
|
|
10
|
-
import { parseToolArgs } from "../tool-args.js";
|
|
11
|
+
import { parseToolArgs, settleToolCalls } from "../tool-args.js";
|
|
11
12
|
import { streamSse, apiUrl } from "../transport.js";
|
|
12
13
|
import { withConfiguredFallbacks } from "../fallback.js";
|
|
13
14
|
const DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com";
|
|
@@ -27,9 +28,10 @@ const THINKING_LEVEL = {
|
|
|
27
28
|
max: "HIGH",
|
|
28
29
|
};
|
|
29
30
|
/**
|
|
30
|
-
* Gemini 2.x thinking budget dial (tokens).
|
|
31
|
-
*
|
|
32
|
-
* `thinkingLevel
|
|
31
|
+
* Gemini 2.x thinking budget dial (tokens). Gemini 2.5 takes `thinkingBudget`
|
|
32
|
+
* (0 disables thinking) and has no level. Every newer model takes
|
|
33
|
+
* `thinkingLevel`, and Google has said the next ones answer a budget with a
|
|
34
|
+
* 400 instead of remapping it.
|
|
33
35
|
*/
|
|
34
36
|
const GEMINI_2_THINKING_BUDGET = {
|
|
35
37
|
none: 0,
|
|
@@ -44,7 +46,7 @@ function isJsonObject(value) {
|
|
|
44
46
|
/**
|
|
45
47
|
* Tool-call arguments as the OBJECT Gemini's `functionCall.args` requires.
|
|
46
48
|
*
|
|
47
|
-
* A bare JSON scalar or array is wrapped rather than rejected
|
|
49
|
+
* A bare JSON scalar or array is wrapped rather than rejected. The shared
|
|
48
50
|
* `parseToolArgs` drops a non-object as a protocol violation, which is right
|
|
49
51
|
* for reading a fresh tool call and wrong here, where replaying `{}` deletes an
|
|
50
52
|
* argument the model did send. Everything else defers to it, so a truncated or
|
|
@@ -82,11 +84,21 @@ function toResponseObject(content) {
|
|
|
82
84
|
* and carry tool calls as `functionCall` parts with the thought signature
|
|
83
85
|
* beside them; tool results are role `user` with a `functionResponse` part
|
|
84
86
|
* naming the FUNCTION, since Gemini pairs a result to its call by name.
|
|
87
|
+
*
|
|
88
|
+
* A run of results is ONE user turn: Gemini answers a model turn's parallel
|
|
89
|
+
* calls with every response together, and spread over several turns it 400s
|
|
90
|
+
* that the response count does not match the call count. The responses go
|
|
91
|
+
* first, in call order, and the run's images follow them all, the way the
|
|
92
|
+
* OpenAI dialect places them.
|
|
85
93
|
*/
|
|
86
94
|
export function toGeminiContents(messages) {
|
|
87
95
|
let system = "";
|
|
88
96
|
const contents = [];
|
|
97
|
+
// The open run of tool results: its parts, and how many lead with a response.
|
|
98
|
+
let results;
|
|
89
99
|
for (const message of messages) {
|
|
100
|
+
if (message.role === "user" || message.role === "assistant")
|
|
101
|
+
results = undefined;
|
|
90
102
|
switch (message.role) {
|
|
91
103
|
case "system":
|
|
92
104
|
system = system ? `${system}\n\n${message.content}` : message.content;
|
|
@@ -122,30 +134,31 @@ export function toGeminiContents(messages) {
|
|
|
122
134
|
contents.push({ role: "model", parts });
|
|
123
135
|
break;
|
|
124
136
|
}
|
|
125
|
-
case "tool":
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
parts:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
...(message.images ?? []).map((image) => ({
|
|
137
|
-
inlineData: { mimeType: image.mimeType, data: image.data },
|
|
138
|
-
})),
|
|
139
|
-
],
|
|
137
|
+
case "tool": {
|
|
138
|
+
if (!results) {
|
|
139
|
+
results = { parts: [], responses: 0 };
|
|
140
|
+
contents.push({ role: "user", parts: results.parts });
|
|
141
|
+
}
|
|
142
|
+
results.parts.splice(results.responses, 0, {
|
|
143
|
+
functionResponse: {
|
|
144
|
+
id: message.toolCallId,
|
|
145
|
+
name: message.name,
|
|
146
|
+
response: toResponseObject(message.content),
|
|
147
|
+
},
|
|
140
148
|
});
|
|
149
|
+
results.responses += 1;
|
|
150
|
+
for (const image of message.images ?? []) {
|
|
151
|
+
results.parts.push({ inlineData: { mimeType: image.mimeType, data: image.data } });
|
|
152
|
+
}
|
|
141
153
|
break;
|
|
154
|
+
}
|
|
142
155
|
}
|
|
143
156
|
}
|
|
144
157
|
return { ...(system ? { system } : {}), contents };
|
|
145
158
|
}
|
|
146
159
|
/**
|
|
147
160
|
* `auto` and an absent choice are Gemini's own default, so the field is omitted
|
|
148
|
-
* rather than sent as AUTO. `required` and a pinned tool are both mode ANY
|
|
161
|
+
* rather than sent as AUTO. `required` and a pinned tool are both mode ANY:
|
|
149
162
|
* the pin is the allow-list, not the mode.
|
|
150
163
|
*/
|
|
151
164
|
function toToolConfig(choice) {
|
|
@@ -157,15 +170,66 @@ function toToolConfig(choice) {
|
|
|
157
170
|
return { functionCallingConfig: { mode: "ANY" } };
|
|
158
171
|
return { functionCallingConfig: { mode: "ANY", allowedFunctionNames: [choice.name] } };
|
|
159
172
|
}
|
|
160
|
-
|
|
173
|
+
/**
|
|
174
|
+
* Every finish reason Gemini documents (the generate-content reference, read
|
|
175
|
+
* 2026-10-19), decided one by one. Anything this switch did not name used to
|
|
176
|
+
* read as `stop`, so a call the model botched (`MALFORMED_FUNCTION_CALL`) or a
|
|
177
|
+
* turn that ended for no stated reason (`OTHER`) came back as a finished, empty
|
|
178
|
+
* answer. After a tool result, `requireContent` takes an empty `stop` as the
|
|
179
|
+
* model choosing to say nothing, so nothing retried it.
|
|
180
|
+
*/
|
|
181
|
+
function mapFinishReason(provider, reason) {
|
|
182
|
+
const fail = (kind, why) => {
|
|
183
|
+
throw new ProviderError(provider, kind, `${provider} ended the turn on ${reason}: ${why}`, {
|
|
184
|
+
code: reason,
|
|
185
|
+
});
|
|
186
|
+
};
|
|
161
187
|
switch (reason) {
|
|
188
|
+
case "STOP":
|
|
189
|
+
return "stop";
|
|
190
|
+
// The output cap. CONTINUATION is the same cap with a token to carry on,
|
|
191
|
+
// which this adapter never sends back.
|
|
162
192
|
case "MAX_TOKENS":
|
|
193
|
+
case "CONTINUATION":
|
|
163
194
|
return "length";
|
|
195
|
+
// A filter on what was said or drawn. The text so far stands and the
|
|
196
|
+
// finish says why it ended, as `content_filter` does on every wire. A
|
|
197
|
+
// retry would mostly meet the same filter.
|
|
164
198
|
case "SAFETY":
|
|
165
199
|
case "PROHIBITED_CONTENT":
|
|
200
|
+
case "BLOCKLIST":
|
|
201
|
+
case "SPII":
|
|
202
|
+
case "RECITATION":
|
|
203
|
+
case "LANGUAGE":
|
|
204
|
+
case "ESCALATION":
|
|
205
|
+
case "IMAGE_SAFETY":
|
|
206
|
+
case "IMAGE_PROHIBITED_CONTENT":
|
|
207
|
+
case "IMAGE_RECITATION":
|
|
166
208
|
return "content_filter";
|
|
209
|
+
// The request lost a thought signature, and the same request loses it
|
|
210
|
+
// again. A bug in what was sent, so nothing retries it.
|
|
211
|
+
case "MISSING_THOUGHT_SIGNATURE":
|
|
212
|
+
return fail("invalid", "the request is missing a thought signature");
|
|
213
|
+
// The account was limited for a policy violation. Benched like a refused
|
|
214
|
+
// key, so a key pool moves to another project.
|
|
215
|
+
case "PUP_LIMITED_DISABLED":
|
|
216
|
+
return fail("auth", "the account is limited or disabled");
|
|
217
|
+
// The model broke its own turn: a call it could not form, one with no tool
|
|
218
|
+
// offered, too many in a row, a malformed reply, an image it never made.
|
|
219
|
+
// The same request usually works on the next try.
|
|
220
|
+
case "MALFORMED_FUNCTION_CALL":
|
|
221
|
+
case "UNEXPECTED_TOOL_CALL":
|
|
222
|
+
case "TOO_MANY_TOOL_CALLS":
|
|
223
|
+
case "MALFORMED_RESPONSE":
|
|
224
|
+
case "NO_IMAGE":
|
|
225
|
+
return fail("overload", "the model broke its own turn");
|
|
226
|
+
// These say nothing about why, and a reason added after this list says
|
|
227
|
+
// nothing we can read. Neither proves the answer is whole.
|
|
228
|
+
case "OTHER":
|
|
229
|
+
case "IMAGE_OTHER":
|
|
230
|
+
case "FINISH_REASON_UNSPECIFIED":
|
|
167
231
|
default:
|
|
168
|
-
return "
|
|
232
|
+
return fail("overload", "it gave no reason that shows the answer is complete");
|
|
169
233
|
}
|
|
170
234
|
}
|
|
171
235
|
export function createGeminiProvider(config) {
|
|
@@ -177,30 +241,32 @@ export function createGeminiProvider(config) {
|
|
|
177
241
|
async *createStream(messages, tools, opts = {}) {
|
|
178
242
|
const effort = opts.effort ?? config.effort;
|
|
179
243
|
const maxTokens = opts.maxTokens ?? config.maxTokens;
|
|
180
|
-
|
|
244
|
+
// Repaired first: a result with no call, or a call with no result, is a
|
|
245
|
+
// 400 that loses the turn. See repairHistory.
|
|
246
|
+
const { system, contents } = toGeminiContents(repairHistory(messages).messages);
|
|
181
247
|
// A model id copied out of Gemini's docs is often already `models/…`, and
|
|
182
248
|
// the doubled segment 404s as "model not found" — a confusing way to
|
|
183
249
|
// learn about a prefix.
|
|
184
250
|
const model = (opts.model ?? config.model).replace(/^models\//, "");
|
|
185
251
|
const isGemini3 = /gemini-3/i.test(model);
|
|
252
|
+
// Not `!isGemini3`: `gemini-flash-latest` and models newer than 3 are not
|
|
253
|
+
// Gemini 3 either, and they must get a level.
|
|
254
|
+
const isGemini2 = /gemini-2/i.test(model);
|
|
186
255
|
const generationConfig = {};
|
|
187
256
|
if (maxTokens !== undefined)
|
|
188
257
|
generationConfig.maxOutputTokens = maxTokens;
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
generationConfig.topP = opts.topP;
|
|
258
|
+
// `temperature` and `topP` are never sent: Gemini 3.6 Flash and later ignore
|
|
259
|
+
// them and the next models reject them. Dropping them, rather than refusing,
|
|
260
|
+
// keeps a fallback chain that shares one set of options working.
|
|
193
261
|
if (opts.stopSequences?.length)
|
|
194
262
|
generationConfig.stopSequences = opts.stopSequences;
|
|
195
263
|
// No effort means the model's own dynamic thinking. Sending MINIMAL / 0 here
|
|
196
264
|
// would switch that off for a caller who never asked, which is the whole
|
|
197
265
|
// reason the seam treats an absent effort as "never sent".
|
|
198
|
-
// Gemini 3 uses thinkingLevel (MINIMAL..HIGH), while Gemini 2.5 uses
|
|
199
|
-
// thinkingBudget (0 tokens disables thinking, positive numbers set budget).
|
|
200
266
|
if (effort) {
|
|
201
|
-
generationConfig.thinkingConfig =
|
|
202
|
-
? {
|
|
203
|
-
: {
|
|
267
|
+
generationConfig.thinkingConfig = isGemini2
|
|
268
|
+
? { thinkingBudget: GEMINI_2_THINKING_BUDGET[effort] }
|
|
269
|
+
: { thinkingLevel: THINKING_LEVEL[effort] };
|
|
204
270
|
}
|
|
205
271
|
// A schema that shares its call with tools pins the decoder, and a pinned
|
|
206
272
|
// decoder cannot emit a functionCall — the model narrates the call it
|
|
@@ -275,6 +341,11 @@ export function createGeminiProvider(config) {
|
|
|
275
341
|
...(opts.signal ? { signal: opts.signal } : {}),
|
|
276
342
|
...(config.fetchImpl ? { fetchImpl: config.fetchImpl } : {}),
|
|
277
343
|
...(opts.onActivity ? { onActivity: opts.onActivity } : {}),
|
|
344
|
+
...(opts.onRateLimit ? { onRateLimit: opts.onRateLimit } : {}),
|
|
345
|
+
// This wire has no terminal event to stop at, so the finish reason is
|
|
346
|
+
// the end: a read that dies after it can cost a late usage record, never
|
|
347
|
+
// the answer.
|
|
348
|
+
finished: () => finished,
|
|
278
349
|
})) {
|
|
279
350
|
let chunk;
|
|
280
351
|
try {
|
|
@@ -334,12 +405,14 @@ export function createGeminiProvider(config) {
|
|
|
334
405
|
if (!call)
|
|
335
406
|
continue;
|
|
336
407
|
const index = callIndex++;
|
|
408
|
+
const identity = { index, id: call.id ?? "", name: call.name ?? "" };
|
|
409
|
+
// The part is the whole call, so it is settled here: one with no
|
|
410
|
+
// name can't run, and one with no id gets one the way the other
|
|
411
|
+
// three wires mint it. Gemini omits the id on a single-call turn, and
|
|
412
|
+
// the seam's consumers pair a result back to its call by id.
|
|
413
|
+
settleToolCalls(id, [identity]);
|
|
337
414
|
toolCalls.push({
|
|
338
|
-
|
|
339
|
-
// Gemini omits the id on a single-call turn, and the seam's
|
|
340
|
-
// consumers pair a result back to its call by id.
|
|
341
|
-
id: call.id ?? `call_${index}`,
|
|
342
|
-
...(call.name ? { name: call.name } : {}),
|
|
415
|
+
...identity,
|
|
343
416
|
// Whole and already assembled — unlike the OpenAI shape, Gemini
|
|
344
417
|
// never fragments an argument object across chunks.
|
|
345
418
|
arguments: JSON.stringify(call.args ?? {}),
|
|
@@ -355,13 +428,16 @@ export function createGeminiProvider(config) {
|
|
|
355
428
|
yield { type: "delta", toolCalls };
|
|
356
429
|
}
|
|
357
430
|
if (candidate.finishReason) {
|
|
431
|
+
// Mapped first: a reason that throws must not be dressed as tool_calls.
|
|
432
|
+
const finishReason = mapFinishReason(id, candidate.finishReason);
|
|
358
433
|
finished = true;
|
|
359
434
|
yield {
|
|
360
435
|
type: "finish",
|
|
361
|
-
//
|
|
362
|
-
// candidate says — Gemini routinely reports STOP there, and a
|
|
436
|
+
// Gemini routinely reports STOP on a turn that called tools, and a
|
|
363
437
|
// caller reading that as "done" drops the tool round entirely.
|
|
364
|
-
|
|
438
|
+
// Only STOP is promoted, as on the other three wires: a length cut
|
|
439
|
+
// or a filter may be what broke the call (invariant 10).
|
|
440
|
+
finishReason: sawFunctionCalls && finishReason === "stop" ? "tool_calls" : finishReason,
|
|
365
441
|
};
|
|
366
442
|
}
|
|
367
443
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
9
9
|
* /chat/completions when the base already includes the API version, such as
|
|
10
10
|
* a gateway using /v4 rather than /v1. */
|
|
11
11
|
path?: string;
|
|
12
|
-
/** Names the provider in errors and logs
|
|
12
|
+
/** Names the provider in errors and logs ("openrouter", "deepseek", …). It
|
|
13
13
|
* also picks the effort dialect below, unless `effortDialect` overrides. */
|
|
14
14
|
id?: string;
|
|
15
15
|
effort?: Effort;
|
|
@@ -28,7 +28,7 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
28
28
|
/**
|
|
29
29
|
* How a json request rides when the SAME call also carries tools.
|
|
30
30
|
*
|
|
31
|
-
* `response_format`
|
|
31
|
+
* `response_format` (the default) sends both, which is what the shape
|
|
32
32
|
* documents and what most models honour. `prompt` drops the response format
|
|
33
33
|
* from those calls only and sends the schema as prompt instead: the shape the
|
|
34
34
|
* Anthropic adapter has always used, and the reason this failure cannot
|
|
@@ -36,7 +36,7 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
36
36
|
*
|
|
37
37
|
* It needs a knob because a model that cannot serve both does not say so. Its
|
|
38
38
|
* decoder is pinned to the schema, the tool call has nowhere to go, and the
|
|
39
|
-
* model writes the announcement instead
|
|
39
|
+
* model writes the announcement instead ("let me look that up for you") and
|
|
40
40
|
* the turn ends looking like a model with no initiative rather than a request
|
|
41
41
|
* that made the call impossible. Nothing is logged, because nothing failed.
|
|
42
42
|
*
|
|
@@ -48,7 +48,7 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
48
48
|
* No default is right for everyone, which is why this stays a setting rather
|
|
49
49
|
* than becoming a rule: the same run put `qwen3.8-flash` at 1/6 with the
|
|
50
50
|
* schema in the prompt against 6/6 with the response format. Don't guess it
|
|
51
|
-
* from the model card
|
|
51
|
+
* from the model card. `probeJsonWithTools` asks the model itself, in one
|
|
52
52
|
* call. `StreamOptions.jsonWithTools` overrides this per call.
|
|
53
53
|
*/
|
|
54
54
|
jsonWithTools?: JsonWithTools;
|
|
@@ -56,7 +56,7 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
56
56
|
fetchImpl?: typeof fetch;
|
|
57
57
|
headers?: Record<string, string>;
|
|
58
58
|
/**
|
|
59
|
-
* App attribution for OpenRouter's rankings
|
|
59
|
+
* App attribution for OpenRouter's rankings. The site URL rides as
|
|
60
60
|
* `HTTP-Referer`, the app name as `X-Title`. Public, not secret. Sent
|
|
61
61
|
* whenever set (other vendors ignore unknown headers); an explicit entry
|
|
62
62
|
* in `headers` always wins.
|
|
@@ -69,7 +69,7 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
69
69
|
/**
|
|
70
70
|
* Pin OpenRouter to preferred upstream hosts so the PROMPT CACHE stays warm
|
|
71
71
|
* across rounds. The cache lives on the upstream host's account and default
|
|
72
|
-
* routing hops between them
|
|
72
|
+
* routing hops between them. Every hop is a cold cache, with worse latency
|
|
73
73
|
* and higher effective input cost. Fallbacks stay on: this is a preference,
|
|
74
74
|
* not a lock.
|
|
75
75
|
*/
|
|
@@ -87,6 +87,9 @@ export interface OpenAIConfig extends ProviderFallbackConfig {
|
|
|
87
87
|
* `agent`. GitHub Copilot bills a premium request per `user` turn and lets
|
|
88
88
|
* the agent's own follow-ups (tool results) ride free. */
|
|
89
89
|
initiatorHeader?: boolean;
|
|
90
|
+
/** Never send `temperature` or `top_p`. For an endpoint that fixes its own
|
|
91
|
+
* sampling and rejects the fields (Gemini's OpenAI-compatible route). */
|
|
92
|
+
noSampling?: boolean;
|
|
90
93
|
/** Default `service_tier` for every call; `StreamOptions.serviceTier` wins. */
|
|
91
94
|
serviceTier?: ServiceTier;
|
|
92
95
|
}
|
|
@@ -105,14 +108,14 @@ export type EffortDialect = "openai" | "openrouter" | "deepseek" | "opencode-go"
|
|
|
105
108
|
* MiMo v2.6 Flash takes one, and DeepSeek V4 Flash thinks at `low` and not
|
|
106
109
|
* with the field omitted. So `none` is said per model, from
|
|
107
110
|
* `OPENROUTER_NONE`, which also says why an unlisted model gets nothing.
|
|
108
|
-
* Naming a level raises it
|
|
111
|
+
* Naming a level raises it. The accepted values are `low`, `high` and
|
|
109
112
|
* `max` (`medium` and `xhigh` are accepted too, but our vocabulary has no
|
|
110
113
|
* use for them).
|
|
111
114
|
* - **DeepSeek V4 defaults thinking ON** on its own API, so `none` has to be an
|
|
112
115
|
* explicit refusal there. The same word is a different request on each
|
|
113
116
|
* dialect, and on OpenRouter on each model: the spelling belongs to the
|
|
114
117
|
* endpoint, never to the caller.
|
|
115
|
-
* - **OpenAI** takes `reasoning_effort`, and `none` is one of its values
|
|
118
|
+
* - **OpenAI** takes `reasoning_effort`, and `none` is one of its values, not
|
|
116
119
|
* the absence of the field. GPT-5.1 both accepted `none` and made it the
|
|
117
120
|
* default; everything from GPT-5 back still defaults to `medium`. So sending
|
|
118
121
|
* nothing is NOT a way to say "do not think": on every model released before
|
|
@@ -131,7 +134,7 @@ export type EffortDialect = "openai" | "openrouter" | "deepseek" | "opencode-go"
|
|
|
131
134
|
*/
|
|
132
135
|
export declare function effortParams(dialect: EffortDialect, effort: Effort | undefined, model?: string): Record<string, unknown>;
|
|
133
136
|
/**
|
|
134
|
-
* Assistant turns carry `reasoning_content` when the history has it
|
|
137
|
+
* Assistant turns carry `reasoning_content` when the history has it. Thinking
|
|
135
138
|
* providers require the prior turn's chain-of-thought replayed on a turn that
|
|
136
139
|
* made a tool call. A caller running a turn with thinking OFF must strip it
|
|
137
140
|
* first (`stripReasoning`); the two cannot be mixed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,WAAW,EAEX,MAAM,EAEN,aAAa,EACb,QAAQ,EAER,WAAW,EAGZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,MAAM,WAAW,YAAa,SAAQ,sBAAsB;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;+CAE2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;iFAC6E;IAC7E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;iDAE6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;+DAE2D;IAC3D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;8EAC0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAuCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpF;AAED;4EAC4E;AAC5E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,KAAK,CAAC;AA4CzF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsCzB;AA6FD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,QAAQ,SAAW,GAAG,OAAO,EAAE,CAgEjG;AA8CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7D,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAuQnE"}
|