@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
package/dist/providers/openai.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
// This is the dialect most gateways speak, so one adapter serves OpenAI,
|
|
4
4
|
// OpenRouter, DeepSeek, GLM, Kimi, Groq, Together, vLLM, Ollama and LM Studio.
|
|
5
5
|
// Their divergences are small and named where they appear.
|
|
6
|
+
import { repairHistory } from "../context.js";
|
|
6
7
|
import { fileRefused, ProviderError, streamCut, streamError } from "../errors.js";
|
|
7
|
-
import { streamSse, apiUrl } from "../transport.js";
|
|
8
|
+
import { streamSse, apiUrl, parseFrame } from "../transport.js";
|
|
9
|
+
import { settleToolCalls } from "../tool-args.js";
|
|
8
10
|
import { attributionHeaders } from "../attribution.js";
|
|
9
11
|
import { toDataUri } from "../types.js";
|
|
10
12
|
import { isStrictSchema, schemaPrompt } from "../schema.js";
|
|
@@ -105,14 +107,14 @@ const OPENROUTER_NONE = new Map([
|
|
|
105
107
|
* MiMo v2.6 Flash takes one, and DeepSeek V4 Flash thinks at `low` and not
|
|
106
108
|
* with the field omitted. So `none` is said per model, from
|
|
107
109
|
* `OPENROUTER_NONE`, which also says why an unlisted model gets nothing.
|
|
108
|
-
* Naming a level raises it
|
|
110
|
+
* Naming a level raises it. The accepted values are `low`, `high` and
|
|
109
111
|
* `max` (`medium` and `xhigh` are accepted too, but our vocabulary has no
|
|
110
112
|
* use for them).
|
|
111
113
|
* - **DeepSeek V4 defaults thinking ON** on its own API, so `none` has to be an
|
|
112
114
|
* explicit refusal there. The same word is a different request on each
|
|
113
115
|
* dialect, and on OpenRouter on each model: the spelling belongs to the
|
|
114
116
|
* endpoint, never to the caller.
|
|
115
|
-
* - **OpenAI** takes `reasoning_effort`, and `none` is one of its values
|
|
117
|
+
* - **OpenAI** takes `reasoning_effort`, and `none` is one of its values, not
|
|
116
118
|
* the absence of the field. GPT-5.1 both accepted `none` and made it the
|
|
117
119
|
* default; everything from GPT-5 back still defaults to `medium`. So sending
|
|
118
120
|
* nothing is NOT a way to say "do not think": on every model released before
|
|
@@ -211,19 +213,43 @@ function dialectFor(id) {
|
|
|
211
213
|
return "opencode-go";
|
|
212
214
|
return "openai";
|
|
213
215
|
}
|
|
214
|
-
|
|
216
|
+
/**
|
|
217
|
+
* A stated finish, or a throw for one this dialect does not document. An
|
|
218
|
+
* unknown reason used to end the stream as a clean success with no finish at
|
|
219
|
+
* all, so DeepSeek's `insufficient_system_resource`, Z.ai's `network_error` and
|
|
220
|
+
* OpenRouter's `error` each read as a finished answer. Nothing says the answer
|
|
221
|
+
* ended on purpose, so it is `overload`: theirs, and worth a retry (cc-proxy
|
|
222
|
+
* answers it the same way).
|
|
223
|
+
*/
|
|
224
|
+
function mapFinishReason(provider, reason) {
|
|
215
225
|
switch (reason) {
|
|
226
|
+
// A natural end under another name, from servers on this wire: Together's
|
|
227
|
+
// `eos`, Hugging Face TGI's `eos_token` and `stop_sequence`. Thrown as
|
|
228
|
+
// unknown, each would fail an answer that was already whole.
|
|
216
229
|
case "stop":
|
|
230
|
+
case "eos":
|
|
231
|
+
case "eos_token":
|
|
232
|
+
case "stop_sequence":
|
|
217
233
|
return "stop";
|
|
234
|
+
// Z.ai's `model_context_window_exceeded` and Mistral's `model_length`: the
|
|
235
|
+
// context window filled before the answer did. Cut short, and a retry fills
|
|
236
|
+
// it the same way.
|
|
218
237
|
case "length":
|
|
238
|
+
case "model_context_window_exceeded":
|
|
239
|
+
case "model_length":
|
|
219
240
|
return "length";
|
|
220
241
|
case "tool_calls":
|
|
221
242
|
case "function_call":
|
|
222
243
|
return "tool_calls";
|
|
244
|
+
// `sensitive` is Z.ai's name for its safety stop. A retry meets the same
|
|
245
|
+
// filter.
|
|
223
246
|
case "content_filter":
|
|
247
|
+
case "sensitive":
|
|
224
248
|
return "content_filter";
|
|
225
249
|
default:
|
|
226
|
-
|
|
250
|
+
throw new ProviderError(provider, "overload", `${provider} ended the turn on "${reason}"`, {
|
|
251
|
+
code: reason,
|
|
252
|
+
});
|
|
227
253
|
}
|
|
228
254
|
}
|
|
229
255
|
function partsToOpenAI(content, provider) {
|
|
@@ -238,7 +264,7 @@ function partsToOpenAI(content, provider) {
|
|
|
238
264
|
});
|
|
239
265
|
}
|
|
240
266
|
/**
|
|
241
|
-
* Assistant turns carry `reasoning_content` when the history has it
|
|
267
|
+
* Assistant turns carry `reasoning_content` when the history has it. Thinking
|
|
242
268
|
* providers require the prior turn's chain-of-thought replayed on a turn that
|
|
243
269
|
* made a tool call. A caller running a turn with thinking OFF must strip it
|
|
244
270
|
* first (`stripReasoning`); the two cannot be mixed.
|
|
@@ -353,7 +379,9 @@ export function createOpenAIProvider(config) {
|
|
|
353
379
|
async *createStream(messages, tools, opts = {}) {
|
|
354
380
|
const effort = opts.effort ?? config.effort;
|
|
355
381
|
const model = opts.model ?? config.model;
|
|
356
|
-
|
|
382
|
+
// Repaired first: a result with no call, or a call with no result, is a
|
|
383
|
+
// 400 that loses the turn. See repairHistory.
|
|
384
|
+
const body = toOpenAIMessages(repairHistory(messages).messages, id);
|
|
357
385
|
const request = {
|
|
358
386
|
model,
|
|
359
387
|
messages: body,
|
|
@@ -365,10 +393,12 @@ export function createOpenAIProvider(config) {
|
|
|
365
393
|
const maxTokens = opts.maxTokens ?? config.maxTokens;
|
|
366
394
|
if (maxTokens !== undefined)
|
|
367
395
|
request.max_tokens = maxTokens;
|
|
368
|
-
if (
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
396
|
+
if (!config.noSampling) {
|
|
397
|
+
if (opts.temperature !== undefined)
|
|
398
|
+
request.temperature = opts.temperature;
|
|
399
|
+
if (opts.topP !== undefined)
|
|
400
|
+
request.top_p = opts.topP;
|
|
401
|
+
}
|
|
372
402
|
if (opts.stopSequences?.length)
|
|
373
403
|
request.stop = opts.stopSequences;
|
|
374
404
|
const serviceTier = opts.serviceTier ?? config.serviceTier;
|
|
@@ -457,6 +487,9 @@ export function createOpenAIProvider(config) {
|
|
|
457
487
|
? "/chat/completions"
|
|
458
488
|
: "/v1/chat/completions";
|
|
459
489
|
let ended = false;
|
|
490
|
+
// Each call as its deltas named it, by index. The finish checks them
|
|
491
|
+
// before it goes out, and they are what says the turn called a tool.
|
|
492
|
+
const calls = new Map();
|
|
460
493
|
for await (const data of streamSse({
|
|
461
494
|
url: apiUrl(baseUrl, config.path ?? defaultPath),
|
|
462
495
|
headers: {
|
|
@@ -475,17 +508,16 @@ export function createOpenAIProvider(config) {
|
|
|
475
508
|
...(opts.signal ? { signal: opts.signal } : {}),
|
|
476
509
|
...(config.fetchImpl ? { fetchImpl: config.fetchImpl } : {}),
|
|
477
510
|
...(opts.onActivity ? { onActivity: opts.onActivity } : {}),
|
|
511
|
+
...(opts.onRateLimit ? { onRateLimit: opts.onRateLimit } : {}),
|
|
478
512
|
onDone: () => {
|
|
479
513
|
ended = true;
|
|
480
514
|
},
|
|
515
|
+
// Usage comes AFTER the finish on this shape, so the reader keeps going
|
|
516
|
+
// to `[DONE]` (invariant 5). But a read that dies in between costs only
|
|
517
|
+
// the usage frame: the answer is whole once its finish is stated.
|
|
518
|
+
finished: () => ended,
|
|
481
519
|
})) {
|
|
482
|
-
|
|
483
|
-
try {
|
|
484
|
-
chunk = JSON.parse(data);
|
|
485
|
-
}
|
|
486
|
-
catch {
|
|
487
|
-
continue;
|
|
488
|
-
}
|
|
520
|
+
const chunk = parseFrame(data, id);
|
|
489
521
|
// A failure the backend reports after its headers went out. The
|
|
490
522
|
// gateways speaking this dialect — OpenRouter above all — report a
|
|
491
523
|
// throttle or an upstream outage this way rather than as a status
|
|
@@ -554,21 +586,40 @@ export function createOpenAIProvider(config) {
|
|
|
554
586
|
? { arguments: call.function.arguments }
|
|
555
587
|
: {}),
|
|
556
588
|
}));
|
|
589
|
+
for (const call of out.toolCalls) {
|
|
590
|
+
const seen = calls.get(call.index) ?? { index: call.index, id: "", name: "" };
|
|
591
|
+
if (call.id)
|
|
592
|
+
seen.id = call.id;
|
|
593
|
+
if (call.name)
|
|
594
|
+
seen.name = call.name;
|
|
595
|
+
calls.set(call.index, seen);
|
|
596
|
+
}
|
|
557
597
|
has = true;
|
|
558
598
|
}
|
|
559
599
|
if (has)
|
|
560
600
|
yield out;
|
|
561
601
|
}
|
|
562
|
-
if (choice.finish_reason)
|
|
602
|
+
if (choice.finish_reason) {
|
|
603
|
+
const stated = mapFinishReason(id, choice.finish_reason);
|
|
604
|
+
const minted = settleToolCalls(id, calls.values());
|
|
605
|
+
if (minted.length > 0)
|
|
606
|
+
yield { type: "delta", toolCalls: minted };
|
|
563
607
|
ended = true;
|
|
564
|
-
|
|
565
|
-
|
|
608
|
+
// Several gateways end a turn that called a tool on `stop`, and a
|
|
609
|
+
// caller reading that as done never runs the tool. Only `stop` is
|
|
610
|
+
// promoted: a length cut or a filter may be what broke the call.
|
|
611
|
+
const finishReason = stated === "stop" && calls.size > 0 ? "tool_calls" : stated;
|
|
566
612
|
yield { type: "finish", finishReason };
|
|
613
|
+
}
|
|
567
614
|
}
|
|
568
615
|
// Either proof will do: some gateways send `[DONE]` with no finish, and
|
|
569
616
|
// some a finish with no `[DONE]`. Neither means the socket closed early.
|
|
570
617
|
if (!ended)
|
|
571
618
|
throw streamCut(id);
|
|
619
|
+
// A `[DONE]` with no finish stated still owes its calls the same check.
|
|
620
|
+
const minted = settleToolCalls(id, calls.values());
|
|
621
|
+
if (minted.length > 0)
|
|
622
|
+
yield { type: "delta", toolCalls: minted };
|
|
572
623
|
},
|
|
573
624
|
};
|
|
574
625
|
return withConfiguredFallbacks(provider, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export interface ResponsesConfig extends ProviderFallbackConfig {
|
|
|
11
11
|
effort?: Effort;
|
|
12
12
|
maxTokens?: number;
|
|
13
13
|
fetchImpl?: typeof fetch;
|
|
14
|
-
/** Extra request headers
|
|
14
|
+
/** Extra request headers, where a subscription backend's account id goes
|
|
15
15
|
* (`ChatGPT-Account-Id`), which those backends reject the request without. */
|
|
16
16
|
headers?: Record<string, string>;
|
|
17
17
|
/** Header that carries `StreamOptions.sessionId`. When set and a call has no
|
|
@@ -22,7 +22,7 @@ export interface ResponsesConfig extends ProviderFallbackConfig {
|
|
|
22
22
|
* The ChatGPT subscription surface serves it at `/backend-api/codex/responses`
|
|
23
23
|
* with no version segment, so that backend needs
|
|
24
24
|
* `{ baseUrl: "https://chatgpt.com/backend-api/codex", path: "/responses" }`.
|
|
25
|
-
* Without the override the POST 404s, and a 404 classifies as "model"
|
|
25
|
+
* Without the override the POST 404s, and a 404 classifies as "model". The
|
|
26
26
|
* user is told the model id does not exist when the path was the problem.
|
|
27
27
|
*/
|
|
28
28
|
path?: string;
|
|
@@ -39,7 +39,7 @@ export interface ResponsesConfig extends ProviderFallbackConfig {
|
|
|
39
39
|
/**
|
|
40
40
|
* Flatten a history into `instructions` plus the input item list.
|
|
41
41
|
*
|
|
42
|
-
* This shape has no system
|
|
42
|
+
* This shape has no system role. The system prompt is a top-level
|
|
43
43
|
* `instructions` string, and everything else is items. One assistant turn can
|
|
44
44
|
* become several items (its text, then one `function_call` per tool it asked
|
|
45
45
|
* for), which is why a message maps to a list rather than to one item.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/providers/responses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/providers/responses.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,WAAW,EAEX,MAAM,EAGN,QAAQ,EAER,WAAW,EAGZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;mFAC+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;6EACyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;gFAC4E;IAC5E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;2EAEuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAwGD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,WAAW,EAAE,EAChC,QAAQ,SAAqB,GAC5B;IACD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB,CA+DA;AAiJD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,CAmWzE"}
|
|
@@ -10,8 +10,11 @@
|
|
|
10
10
|
// The event names arrive on the SSE `event:` line and are repeated inside each
|
|
11
11
|
// payload's own `type`. The transport yields only `data:` payloads, so this
|
|
12
12
|
// adapter reads `type` — which is what survives, and what gateways agree on.
|
|
13
|
+
import { repairHistory } from "../context.js";
|
|
13
14
|
import { fileRefused, ProviderError, streamCut, streamError } from "../errors.js";
|
|
14
|
-
import { streamSse, apiUrl } from "../transport.js";
|
|
15
|
+
import { streamSse, apiUrl, parseFrame } from "../transport.js";
|
|
16
|
+
import { parseRateLimitReset } from "../rate-limit.js";
|
|
17
|
+
import { settleToolCalls } from "../tool-args.js";
|
|
15
18
|
import { toDataUri } from "../types.js";
|
|
16
19
|
import { isStrictSchema, withoutPatterns } from "../schema.js";
|
|
17
20
|
import { withConfiguredFallbacks } from "../fallback.js";
|
|
@@ -31,13 +34,24 @@ function reasoningEffort(model, effort) {
|
|
|
31
34
|
return effort === "max" ? "high" : effort;
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
|
-
* `
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
37
|
+
* The finish an `incomplete` turn stands for. This shape documents two
|
|
38
|
+
* reasons, and each has its own finish: `max_output_tokens` is the output cap
|
|
39
|
+
* (`length`) and `content_filter` the filter.
|
|
40
|
+
*
|
|
41
|
+
* Any other reason, or none, says only that the turn did not end on purpose.
|
|
42
|
+
* It used to read as `length`, so an empty turn was told to raise a maxTokens
|
|
43
|
+
* it never hit. It is thrown as `overload` instead, the transient fault
|
|
44
|
+
* cc-proxy answers it with (a 503). Nothing about the request is wrong, so it
|
|
45
|
+
* is retried if nothing was emitted yet; if something was, the error reaches
|
|
46
|
+
* the caller after it (invariant 1). It is read before reasoning and usage go
|
|
47
|
+
* out, like a failed terminal, so that retry stays open.
|
|
38
48
|
*/
|
|
39
|
-
function
|
|
40
|
-
|
|
49
|
+
function incompleteFinish(provider, reason) {
|
|
50
|
+
if (reason === "max_output_tokens")
|
|
51
|
+
return "length";
|
|
52
|
+
if (reason === "content_filter")
|
|
53
|
+
return "content_filter";
|
|
54
|
+
throw new ProviderError(provider, "overload", `${provider}: the turn stopped early, reason: ${reason ?? "none given"}`);
|
|
41
55
|
}
|
|
42
56
|
function isReplayedReasoning(item) {
|
|
43
57
|
return typeof item === "object" && item !== null && "type" in item && item.type === "reasoning";
|
|
@@ -71,8 +85,8 @@ function partsToResponses(content, provider) {
|
|
|
71
85
|
return { type: "input_image", image_url: toDataUri(part) };
|
|
72
86
|
});
|
|
73
87
|
}
|
|
74
|
-
/** A tool result is a bare string unless it carried images
|
|
75
|
-
* array form, the only way to hand this shape a screenshot back. */
|
|
88
|
+
/** A tool result is a bare string unless it carried images. Then it uses the
|
|
89
|
+
* content-array form, the only way to hand this shape a screenshot back. */
|
|
76
90
|
function toolOutput(content, images) {
|
|
77
91
|
if (images.length === 0)
|
|
78
92
|
return content;
|
|
@@ -86,7 +100,7 @@ function toolOutput(content, images) {
|
|
|
86
100
|
/**
|
|
87
101
|
* Flatten a history into `instructions` plus the input item list.
|
|
88
102
|
*
|
|
89
|
-
* This shape has no system
|
|
103
|
+
* This shape has no system role. The system prompt is a top-level
|
|
90
104
|
* `instructions` string, and everything else is items. One assistant turn can
|
|
91
105
|
* become several items (its text, then one `function_call` per tool it asked
|
|
92
106
|
* for), which is why a message maps to a list rather than to one item.
|
|
@@ -153,13 +167,17 @@ export function toResponsesInput(messages, provider = "openai-responses") {
|
|
|
153
167
|
/**
|
|
154
168
|
* The quota wall a `codex.rate_limits` snapshot reports, if it is one.
|
|
155
169
|
*
|
|
156
|
-
* The snapshot rides ahead of the first output on every turn and is telemetry
|
|
157
|
-
*
|
|
170
|
+
* The snapshot rides ahead of the first output on every turn and is telemetry.
|
|
171
|
+
* A full window the account's credits cover, or that the backend still
|
|
158
172
|
* `allowed`, lets the turn proceed. It is only the reason when the stream then
|
|
159
173
|
* closes without a response: that close is a spent window, not a dropped
|
|
160
|
-
* socket, and retrying it walks every backup into the same wall.
|
|
161
|
-
*
|
|
162
|
-
*
|
|
174
|
+
* socket, and retrying it walks every backup into the same wall.
|
|
175
|
+
*
|
|
176
|
+
* Which window, and when it lifts, comes from the same parser as the headers
|
|
177
|
+
* the snapshot mirrors: the fuller window binds, and the later reset when both
|
|
178
|
+
* are full. cc-proxy took the primary's clock first and told a weekly wall to
|
|
179
|
+
* come back in a few hours. The window is named so a caller can say "weekly"
|
|
180
|
+
* instead of "the limit", which reads as the 5-hour one.
|
|
163
181
|
*/
|
|
164
182
|
function quotaWall(event, provider) {
|
|
165
183
|
const limits = event.rate_limits;
|
|
@@ -167,15 +185,28 @@ function quotaWall(event, provider) {
|
|
|
167
185
|
return undefined;
|
|
168
186
|
if (event.credits?.has_credits || event.credits?.unlimited)
|
|
169
187
|
return undefined;
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
188
|
+
const now = Date.now();
|
|
189
|
+
const { window, resetAtMs } = parseRateLimitReset(codexHeaders(limits), now);
|
|
190
|
+
const named = window ? ` (${window} window)` : "";
|
|
191
|
+
const message = `${provider}: the usage limit has been reached${named}`;
|
|
192
|
+
return new ProviderError(provider, "quota", message, {
|
|
193
|
+
...(resetAtMs !== undefined ? { retryAfterMs: resetAtMs - now, resetAtMs } : {}),
|
|
194
|
+
window,
|
|
177
195
|
});
|
|
178
196
|
}
|
|
197
|
+
/** The snapshot as the `x-codex-*` headers it mirrors, rebuilt the way
|
|
198
|
+
* cc-proxy's `event_headers` does, so one parser reads both. */
|
|
199
|
+
function codexHeaders(limits) {
|
|
200
|
+
const headers = new Headers();
|
|
201
|
+
for (const slot of ["primary", "secondary"]) {
|
|
202
|
+
for (const [field, value] of Object.entries(limits[slot] ?? {})) {
|
|
203
|
+
if (typeof value === "number") {
|
|
204
|
+
headers.set(`x-codex-${slot}-${field.replaceAll("_", "-")}`, String(value));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return headers;
|
|
209
|
+
}
|
|
179
210
|
function usageChunk(usage) {
|
|
180
211
|
return {
|
|
181
212
|
type: "usage",
|
|
@@ -212,7 +243,10 @@ export function createResponsesProvider(config) {
|
|
|
212
243
|
const model = opts.model ?? config.model;
|
|
213
244
|
const museContributor = isMuseSparkContributor(model);
|
|
214
245
|
const requestTools = museContributor && opts.toolChoice === "none" ? [] : tools;
|
|
215
|
-
|
|
246
|
+
// Repaired before the images are gated: an orphaned result becomes a user
|
|
247
|
+
// note that keeps its images, and those must meet the limits too.
|
|
248
|
+
const sent = repairHistory(messages).messages;
|
|
249
|
+
const { instructions, input } = toResponsesInput(config.imageLimits ? gateImages(sent, config.imageLimits) : sent, id);
|
|
216
250
|
const request = {
|
|
217
251
|
model,
|
|
218
252
|
input,
|
|
@@ -298,9 +332,10 @@ export function createResponsesProvider(config) {
|
|
|
298
332
|
const pending = new Map();
|
|
299
333
|
const pendingFor = (itemId, callId) => (itemId ? pending.get(itemId) : undefined) ?? (callId ? pending.get(callId) : undefined);
|
|
300
334
|
let nextIndex = 0;
|
|
301
|
-
//
|
|
302
|
-
//
|
|
303
|
-
|
|
335
|
+
// Every call the turn opened, kept past its `.done`. This shape never
|
|
336
|
+
// states a stop reason on a clean finish, so it is inferred from whether
|
|
337
|
+
// there are any, and the terminal event checks each one can run.
|
|
338
|
+
const calls = [];
|
|
304
339
|
let wall;
|
|
305
340
|
let produced = false;
|
|
306
341
|
const reasoningItems = [];
|
|
@@ -321,14 +356,9 @@ export function createResponsesProvider(config) {
|
|
|
321
356
|
...(opts.signal ? { signal: opts.signal } : {}),
|
|
322
357
|
...(config.fetchImpl ? { fetchImpl: config.fetchImpl } : {}),
|
|
323
358
|
...(opts.onActivity ? { onActivity: opts.onActivity } : {}),
|
|
359
|
+
...(opts.onRateLimit ? { onRateLimit: opts.onRateLimit } : {}),
|
|
324
360
|
})) {
|
|
325
|
-
|
|
326
|
-
try {
|
|
327
|
-
event = JSON.parse(data);
|
|
328
|
-
}
|
|
329
|
-
catch {
|
|
330
|
-
continue; // a keep-alive or a frame we do not model
|
|
331
|
-
}
|
|
361
|
+
const event = parseFrame(data, id);
|
|
332
362
|
if (event.type?.endsWith(".delta") || event.type === "response.output_item.added") {
|
|
333
363
|
produced = true;
|
|
334
364
|
}
|
|
@@ -356,7 +386,6 @@ export function createResponsesProvider(config) {
|
|
|
356
386
|
const key = item.id ?? item.call_id;
|
|
357
387
|
if (!key)
|
|
358
388
|
break;
|
|
359
|
-
sawToolCall = true;
|
|
360
389
|
const index = nextIndex++;
|
|
361
390
|
// Normally empty here, but a backend that already has the whole
|
|
362
391
|
// call sends it in the skeleton.
|
|
@@ -367,6 +396,7 @@ export function createResponsesProvider(config) {
|
|
|
367
396
|
name: item.name ?? "",
|
|
368
397
|
streamed: seeded,
|
|
369
398
|
};
|
|
399
|
+
calls.push(call);
|
|
370
400
|
pending.set(key, call);
|
|
371
401
|
if (item.call_id)
|
|
372
402
|
pending.set(item.call_id, call);
|
|
@@ -425,21 +455,24 @@ export function createResponsesProvider(config) {
|
|
|
425
455
|
const snapshot = item.arguments ?? "";
|
|
426
456
|
if (!known) {
|
|
427
457
|
// A backend that emits neither the skeleton nor the deltas — the
|
|
428
|
-
// whole call arrives here or not at all.
|
|
429
|
-
//
|
|
430
|
-
//
|
|
431
|
-
//
|
|
432
|
-
//
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
458
|
+
// whole call arrives here or not at all. A call with no `call_id`
|
|
459
|
+
// used to be dropped, because the caller's `function_call_output`
|
|
460
|
+
// would quote `""` and take a 400 one turn later. Dropped, the
|
|
461
|
+
// model's call silently never happened. It gets an id at the
|
|
462
|
+
// terminal event instead (`settleToolCalls`).
|
|
463
|
+
const call = {
|
|
464
|
+
index: nextIndex++,
|
|
465
|
+
id: item.call_id ?? "",
|
|
466
|
+
name: item.name ?? "",
|
|
467
|
+
streamed: snapshot,
|
|
468
|
+
};
|
|
469
|
+
calls.push(call);
|
|
437
470
|
yield {
|
|
438
471
|
type: "delta",
|
|
439
472
|
toolCalls: [
|
|
440
473
|
{
|
|
441
|
-
index:
|
|
442
|
-
id: item.call_id,
|
|
474
|
+
index: call.index,
|
|
475
|
+
...(item.call_id ? { id: item.call_id } : {}),
|
|
443
476
|
...(item.name ? { name: item.name } : {}),
|
|
444
477
|
arguments: snapshot,
|
|
445
478
|
},
|
|
@@ -460,6 +493,8 @@ export function createResponsesProvider(config) {
|
|
|
460
493
|
...(item.name && item.name !== known.name ? { name: item.name } : {}),
|
|
461
494
|
...(tail ? { arguments: tail } : {}),
|
|
462
495
|
};
|
|
496
|
+
known.id = item.call_id || known.id;
|
|
497
|
+
known.name = item.name || known.name;
|
|
463
498
|
if (Object.keys(restated).length > 0) {
|
|
464
499
|
yield { type: "delta", toolCalls: [{ index: known.index, ...restated }] };
|
|
465
500
|
}
|
|
@@ -477,17 +512,30 @@ export function createResponsesProvider(config) {
|
|
|
477
512
|
if (response?.status === "failed" || response?.error) {
|
|
478
513
|
throw streamError(id, response.error ?? { message: "response failed" });
|
|
479
514
|
}
|
|
515
|
+
// Any other status (`cancelled`, `queued`, one added later) says
|
|
516
|
+
// nothing about the answer being whole. Read as a clean stop, it
|
|
517
|
+
// was a finished turn nobody retried. Theirs, so `overload`.
|
|
518
|
+
const status = response?.status;
|
|
519
|
+
if (status !== undefined && status !== "completed" && status !== "incomplete") {
|
|
520
|
+
throw new ProviderError(id, "overload", `${id} ended the turn as "${status}"`, {
|
|
521
|
+
code: status,
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
let finishReason = calls.length > 0 ? "tool_calls" : "stop";
|
|
525
|
+
if (status === "incomplete") {
|
|
526
|
+
finishReason = incompleteFinish(id, response?.incomplete_details?.reason);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
// Checked on a whole turn only: a cut one may have lost a call's
|
|
530
|
+
// name to the cut, and nobody runs a cut turn's calls.
|
|
531
|
+
const minted = settleToolCalls(id, calls);
|
|
532
|
+
if (minted.length > 0)
|
|
533
|
+
yield { type: "delta", toolCalls: minted };
|
|
534
|
+
}
|
|
480
535
|
yield* reasoningChunk();
|
|
481
536
|
if (response?.usage)
|
|
482
537
|
yield usageChunk(response.usage);
|
|
483
|
-
|
|
484
|
-
yield {
|
|
485
|
-
type: "finish",
|
|
486
|
-
finishReason: mapIncompleteReason(response.incomplete_details?.reason),
|
|
487
|
-
};
|
|
488
|
-
return;
|
|
489
|
-
}
|
|
490
|
-
yield { type: "finish", finishReason: sawToolCall ? "tool_calls" : "stop" };
|
|
538
|
+
yield { type: "finish", finishReason };
|
|
491
539
|
return;
|
|
492
540
|
}
|
|
493
541
|
case "codex.rate_limits":
|
|
@@ -496,14 +544,12 @@ export function createResponsesProvider(config) {
|
|
|
496
544
|
case "response.incomplete": {
|
|
497
545
|
// A turn that ran out of output tokens still billed for its input,
|
|
498
546
|
// and this event carries usage in the same shape as `completed`.
|
|
547
|
+
const finishReason = incompleteFinish(id, event.response?.incomplete_details?.reason);
|
|
499
548
|
yield* reasoningChunk();
|
|
500
549
|
const usage = event.response?.usage;
|
|
501
550
|
if (usage)
|
|
502
551
|
yield usageChunk(usage);
|
|
503
|
-
yield {
|
|
504
|
-
type: "finish",
|
|
505
|
-
finishReason: mapIncompleteReason(event.response?.incomplete_details?.reason),
|
|
506
|
-
};
|
|
552
|
+
yield { type: "finish", finishReason };
|
|
507
553
|
return;
|
|
508
554
|
}
|
|
509
555
|
// The two ways this shape reports a failure after its headers went
|