@providerkit/core 0.15.0 → 0.16.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.
Files changed (56) hide show
  1. package/README.md +3 -0
  2. package/dist/errors.d.ts +17 -0
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +55 -6
  5. package/dist/errors.js.map +1 -1
  6. package/dist/presets.d.ts +37 -2
  7. package/dist/presets.d.ts.map +1 -1
  8. package/dist/presets.js +37 -2
  9. package/dist/presets.js.map +1 -1
  10. package/dist/providers/anthropic.d.ts.map +1 -1
  11. package/dist/providers/anthropic.js +84 -33
  12. package/dist/providers/anthropic.js.map +1 -1
  13. package/dist/providers/gemini.d.ts.map +1 -1
  14. package/dist/providers/gemini.js +25 -1
  15. package/dist/providers/gemini.js.map +1 -1
  16. package/dist/providers/openai.d.ts.map +1 -1
  17. package/dist/providers/openai.js +44 -16
  18. package/dist/providers/openai.js.map +1 -1
  19. package/dist/providers/responses.d.ts.map +1 -1
  20. package/dist/providers/responses.js +131 -24
  21. package/dist/providers/responses.js.map +1 -1
  22. package/dist/rate-limit.d.ts.map +1 -1
  23. package/dist/rate-limit.js +53 -22
  24. package/dist/rate-limit.js.map +1 -1
  25. package/dist/schema.d.ts +10 -0
  26. package/dist/schema.d.ts.map +1 -1
  27. package/dist/schema.js +49 -0
  28. package/dist/schema.js.map +1 -1
  29. package/dist/transport.d.ts +30 -3
  30. package/dist/transport.d.ts.map +1 -1
  31. package/dist/transport.js +67 -28
  32. package/dist/transport.js.map +1 -1
  33. package/dist/types.d.ts +26 -2
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/types.js.map +1 -1
  36. package/dist/usage.d.ts +5 -4
  37. package/dist/usage.d.ts.map +1 -1
  38. package/dist/usage.js +14 -5
  39. package/dist/usage.js.map +1 -1
  40. package/dist/watchdog.d.ts +22 -8
  41. package/dist/watchdog.d.ts.map +1 -1
  42. package/dist/watchdog.js +77 -27
  43. package/dist/watchdog.js.map +1 -1
  44. package/package.json +3 -2
  45. package/src/errors.ts +60 -5
  46. package/src/presets.ts +37 -2
  47. package/src/providers/anthropic.ts +94 -36
  48. package/src/providers/gemini.ts +30 -1
  49. package/src/providers/openai.ts +42 -16
  50. package/src/providers/responses.ts +158 -26
  51. package/src/rate-limit.ts +55 -24
  52. package/src/schema.ts +51 -0
  53. package/src/transport.ts +95 -24
  54. package/src/types.ts +26 -2
  55. package/src/usage.ts +14 -5
  56. package/src/watchdog.ts +89 -32
@@ -10,10 +10,10 @@
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 { fileRefused, streamError } from "../errors.js";
13
+ import { fileRefused, ProviderError, streamCut, streamError } from "../errors.js";
14
14
  import { streamSse, apiUrl } from "../transport.js";
15
15
  import { toDataUri } from "../types.js";
16
- import { isStrictSchema } from "../schema.js";
16
+ import { isStrictSchema, withoutPatterns } from "../schema.js";
17
17
  import { withConfiguredFallbacks } from "../fallback.js";
18
18
  const DEFAULT_BASE_URL = "https://api.openai.com";
19
19
  const DEFAULT_PATH = "/v1/responses";
@@ -124,6 +124,32 @@ export function toResponsesInput(messages, provider = "openai-responses") {
124
124
  }
125
125
  return { ...(instructions ? { instructions } : {}), input };
126
126
  }
127
+ /**
128
+ * The quota wall a `codex.rate_limits` snapshot reports, if it is one.
129
+ *
130
+ * The snapshot rides ahead of the first output on every turn and is telemetry
131
+ * — a full window the account's credits cover, or that the backend still
132
+ * `allowed`, lets the turn proceed. It is only the reason when the stream then
133
+ * closes without a response: that close is a spent window, not a dropped
134
+ * socket, and retrying it walks every backup into the same wall. The fuller
135
+ * window binds; cc-proxy took the primary's clock first and told a weekly wall
136
+ * to come back in a few hours.
137
+ */
138
+ function quotaWall(event, provider) {
139
+ const limits = event.rate_limits;
140
+ if (!limits?.limit_reached || limits.allowed)
141
+ return undefined;
142
+ if (event.credits?.has_credits || event.credits?.unlimited)
143
+ return undefined;
144
+ const windows = [limits.primary, limits.secondary].filter((w) => !!w);
145
+ const binding = windows.sort((a, b) => (b.used_percent ?? 0) - (a.used_percent ?? 0))[0];
146
+ const after = binding?.reset_after_seconds;
147
+ return new ProviderError(provider, "quota", `${provider}: the usage limit has been reached`, {
148
+ ...(after !== undefined && after >= 0
149
+ ? { retryAfterMs: after * 1000, resetAtMs: Date.now() + after * 1000 }
150
+ : {}),
151
+ });
152
+ }
127
153
  function usageChunk(usage) {
128
154
  return {
129
155
  type: "usage",
@@ -134,9 +160,20 @@ function usageChunk(usage) {
134
160
  cachedInputTokens: usage.input_tokens_details?.cached_tokens ?? 0,
135
161
  // Reasoning tokens are billed INSIDE output_tokens, not beside them.
136
162
  outputTokens: usage.output_tokens ?? 0,
163
+ ...(usage.output_tokens_details?.reasoning_tokens !== undefined
164
+ ? { reasoningTokens: usage.output_tokens_details.reasoning_tokens }
165
+ : {}),
137
166
  },
138
167
  };
139
168
  }
169
+ /** The part of an authoritative snapshot the deltas have not already sent.
170
+ * Re-emitting it whole concatenates the JSON with itself and every argument
171
+ * parse fails; all of it goes when no delta came. */
172
+ function unsentTail(snapshot, streamed) {
173
+ return snapshot.length > streamed.length && snapshot.startsWith(streamed)
174
+ ? snapshot.slice(streamed.length)
175
+ : "";
176
+ }
140
177
  export function createResponsesProvider(config) {
141
178
  const baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;
142
179
  const id = config.id ?? "openai-responses";
@@ -186,9 +223,22 @@ export function createResponsesProvider(config) {
186
223
  type: "function",
187
224
  name: tool.name,
188
225
  description: tool.description,
189
- parameters: tool.inputSchema,
226
+ parameters: withoutPatterns(tool.inputSchema),
227
+ // Said either way, never left to the default. Strict demands every
228
+ // property required and every object closed; on a schema that is not
229
+ // already shaped that way the backend makes optional arguments
230
+ // mandatory, and the model starts filling in parameters nobody asked
231
+ // for (cc-proxy, 0.1.15). Where the schema already qualifies, the
232
+ // enforcement is free.
233
+ strict: isStrictSchema(tool.inputSchema),
190
234
  }));
235
+ if (opts.parallelToolCalls === false)
236
+ request.parallel_tool_calls = false;
191
237
  }
238
+ // The cache affinity key. Without one the backend spreads a
239
+ // conversation's turns across cache shards, and a re-sent prefix misses.
240
+ if (opts.sessionId)
241
+ request.prompt_cache_key = opts.sessionId;
192
242
  // Muse Contributor accepts only `auto`. `none` has an exact wire-level
193
243
  // equivalent: send no tools. Required/named choices stay explicit and let
194
244
  // the endpoint refuse a promise it cannot keep.
@@ -211,13 +261,17 @@ export function createResponsesProvider(config) {
211
261
  };
212
262
  }
213
263
  // Tool calls arrive as an item skeleton plus argument deltas; keyed by the
214
- // output item id so parallel calls never cross wires. The seam's index is
215
- // ours to assign — `output_index` counts reasoning and message items too.
264
+ // output item id AND the call id, whichever the backend quotes, so
265
+ // parallel calls never cross wires. The seam's index is ours to assign —
266
+ // `output_index` counts reasoning and message items too.
216
267
  const pending = new Map();
268
+ const pendingFor = (itemId, callId) => (itemId ? pending.get(itemId) : undefined) ?? (callId ? pending.get(callId) : undefined);
217
269
  let nextIndex = 0;
218
270
  // This shape never states a stop reason on a clean finish, so it is
219
271
  // inferred from whether the turn produced a function call.
220
272
  let sawToolCall = false;
273
+ let wall;
274
+ let produced = false;
221
275
  for await (const data of streamSse({
222
276
  url: apiUrl(baseUrl, config.path ?? DEFAULT_PATH),
223
277
  headers: {
@@ -231,6 +285,7 @@ export function createResponsesProvider(config) {
231
285
  provider: id,
232
286
  ...(opts.signal ? { signal: opts.signal } : {}),
233
287
  ...(config.fetchImpl ? { fetchImpl: config.fetchImpl } : {}),
288
+ ...(opts.onActivity ? { onActivity: opts.onActivity } : {}),
234
289
  })) {
235
290
  let event;
236
291
  try {
@@ -239,6 +294,9 @@ export function createResponsesProvider(config) {
239
294
  catch {
240
295
  continue; // a keep-alive or a frame we do not model
241
296
  }
297
+ if (event.type?.endsWith(".delta") || event.type === "response.output_item.added") {
298
+ produced = true;
299
+ }
242
300
  switch (event.type) {
243
301
  case "response.output_text.delta":
244
302
  if (event.delta)
@@ -254,19 +312,29 @@ export function createResponsesProvider(config) {
254
312
  break;
255
313
  case "response.output_item.added": {
256
314
  const item = event.item;
257
- if (item?.type !== "function_call" || !item.id)
315
+ if (item?.type !== "function_call")
316
+ break;
317
+ // OpenAI names the item (`fc_…`) and keys argument deltas by it;
318
+ // xAI's Grok sends no item id at all and keys them by `call_id`.
319
+ // Requiring the item id dropped every Grok call here, and the
320
+ // turn came back as a nameless call with empty arguments.
321
+ const key = item.id ?? item.call_id;
322
+ if (!key)
258
323
  break;
259
324
  sawToolCall = true;
260
325
  const index = nextIndex++;
261
326
  // Normally empty here, but a backend that already has the whole
262
327
  // call sends it in the skeleton.
263
328
  const seeded = item.arguments ?? "";
264
- pending.set(item.id, {
329
+ const call = {
265
330
  index,
266
331
  id: item.call_id ?? "",
267
332
  name: item.name ?? "",
268
333
  streamed: seeded,
269
- });
334
+ };
335
+ pending.set(key, call);
336
+ if (item.call_id)
337
+ pending.set(item.call_id, call);
270
338
  // Only the fields the skeleton actually states. An empty `id` here
271
339
  // is not "unknown", it is a wrong answer: a consumer takes the last
272
340
  // stated value, so `""` written into the slot survives the real
@@ -285,20 +353,34 @@ export function createResponsesProvider(config) {
285
353
  break;
286
354
  }
287
355
  case "response.function_call_arguments.delta": {
288
- const call = event.item_id ? pending.get(event.item_id) : undefined;
356
+ const call = pendingFor(event.item_id, event.call_id);
289
357
  if (!call || !event.delta)
290
358
  break;
291
359
  call.streamed += event.delta;
292
360
  yield { type: "delta", toolCalls: [{ index: call.index, arguments: event.delta }] };
293
361
  break;
294
362
  }
363
+ // xAI states the finished argument string here and NOT on the
364
+ // closing item, which carries only `call_id`. Skipped, a call whose
365
+ // deltas never came reaches the caller with empty arguments.
366
+ case "response.function_call_arguments.done": {
367
+ const call = pendingFor(event.item_id, event.call_id);
368
+ const tail = call ? unsentTail(event.arguments ?? "", call.streamed) : "";
369
+ if (!call || !tail)
370
+ break;
371
+ call.streamed += tail;
372
+ yield { type: "delta", toolCalls: [{ index: call.index, arguments: tail }] };
373
+ break;
374
+ }
295
375
  case "response.output_item.done": {
296
376
  const item = event.item;
297
377
  if (item?.type !== "function_call")
298
378
  break;
299
- const known = item.id ? pending.get(item.id) : undefined;
379
+ const known = pendingFor(item.id, item.call_id);
300
380
  if (item.id)
301
381
  pending.delete(item.id);
382
+ if (item.call_id)
383
+ pending.delete(item.call_id);
302
384
  const snapshot = item.arguments ?? "";
303
385
  if (!known) {
304
386
  // A backend that emits neither the skeleton nor the deltas — the
@@ -325,12 +407,8 @@ export function createResponsesProvider(config) {
325
407
  break;
326
408
  }
327
409
  // The snapshot is authoritative, but the fragments already went
328
- // out: re-emitting it whole concatenates the JSON with itself and
329
- // every argument parse fails. Send only what the deltas missed —
330
- // which is all of it when they never came.
331
- const tail = snapshot.length > known.streamed.length && snapshot.startsWith(known.streamed)
332
- ? snapshot.slice(known.streamed.length)
333
- : "";
410
+ // out: send only what the deltas missed.
411
+ const tail = unsentTail(snapshot, known.streamed);
334
412
  // `.done` restates the identity, and on a backend that leaves it
335
413
  // out of the skeleton this is the only frame that carries it. It
336
414
  // rides last so it WINS: the alternative is a caller assembling a
@@ -346,13 +424,33 @@ export function createResponsesProvider(config) {
346
424
  }
347
425
  break;
348
426
  }
349
- case "response.completed": {
350
- const usage = event.response?.usage;
351
- if (usage)
352
- yield usageChunk(usage);
427
+ // `response.done` is the same terminal event under the name
428
+ // OpenCode's gateway uses.
429
+ case "response.completed":
430
+ case "response.done": {
431
+ const response = event.response;
432
+ // A terminal event names its own outcome, and the type is not
433
+ // always it: a `completed` that states `failed` or carries an
434
+ // error failed, and one that states `incomplete` was cut. Read as
435
+ // a clean stop, either is a broken turn reported as a finished one.
436
+ if (response?.status === "failed" || response?.error) {
437
+ throw streamError(id, response.error ?? { message: "response failed" });
438
+ }
439
+ if (response?.usage)
440
+ yield usageChunk(response.usage);
441
+ if (response?.status === "incomplete") {
442
+ yield {
443
+ type: "finish",
444
+ finishReason: mapIncompleteReason(response.incomplete_details?.reason),
445
+ };
446
+ return;
447
+ }
353
448
  yield { type: "finish", finishReason: sawToolCall ? "tool_calls" : "stop" };
354
449
  return;
355
450
  }
451
+ case "codex.rate_limits":
452
+ wall = quotaWall(event, id);
453
+ break;
356
454
  case "response.incomplete": {
357
455
  // A turn that ran out of output tokens still billed for its input,
358
456
  // and this event carries usage in the same shape as `completed`.
@@ -372,12 +470,21 @@ export function createResponsesProvider(config) {
372
470
  throw streamError(id, event.response?.error);
373
471
  case "error":
374
472
  case "response.error":
375
- throw streamError(id, event.error ?? { message: event.message, code: event.code });
473
+ // The status and the window clocks ride beside `error`. Without
474
+ // them a spent Codex window reads as an unnamed in-stream failure:
475
+ // floored to overload, then retried and walked across every backup
476
+ // on the same account wall.
477
+ throw streamError(id, event.error
478
+ ? { ...event.error, status_code: event.status_code, headers: event.headers }
479
+ : { message: event.message, code: event.code });
376
480
  }
377
481
  }
378
- // The stream closed without a terminal event. Nothing is lost but the
379
- // finish reason and the usage record — every delta, tool-call fragment
380
- // included, was already yielded as it arrived.
482
+ // The stream closed without a terminal event. If the backend's last word
483
+ // was a spent window and nothing was produced, that is why; otherwise
484
+ // the stream was cut (see `streamCut`).
485
+ if (wall && !produced)
486
+ throw wall;
487
+ throw streamCut(id);
381
488
  },
382
489
  };
383
490
  return withConfiguredFallbacks(provider, config);
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/providers/responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/providers/responses.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../src/rate-limit.ts"],"names":[],"mappings":"AA2BA;oEACoE;AACpE,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAsFD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,SAAa,GAAG,cAAc,CAkDtF;AA0CD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,cAAc,CA6CtF;AAED;iEACiE;AACjE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAa,GACf,cAAc,CAchB"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../src/rate-limit.ts"],"names":[],"mappings":"AA2BA;oEACoE;AACpE,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAgHD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,SAAa,GAAG,cAAc,CAmDtF;AAwDD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,cAAc,CAmCtF;AAED;iEACiE;AACjE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAa,GACf,cAAc,CAchB"}
@@ -41,6 +41,28 @@ const RESET_HEADERS = [
41
41
  "x-ratelimit-reset-tokens",
42
42
  "x-ratelimit-reset",
43
43
  ];
44
+ /**
45
+ * The ChatGPT backend's two windows. Both ride every response — the slots are
46
+ * "primary" and "secondary", NOT "5h" and "weekly", so the window is named by
47
+ * its own `-window-minutes` (300 and 10080 in every capture), and its
48
+ * `-used-percent` says which one is full. Recorded by cc-proxy off a live turn
49
+ * that spent the 5-hour window, 2026-09.
50
+ */
51
+ const CODEX_SLOTS = ["primary", "secondary"];
52
+ function windowForMinutes(minutes) {
53
+ return minutes !== undefined && minutes > 0 ? windowForMs(minutes * 60_000) : undefined;
54
+ }
55
+ function codexWindow(headers, slot, now) {
56
+ const name = (suffix) => headers.get(`x-codex-${slot}-${suffix}`);
57
+ const percent = numeric(name("used-percent"));
58
+ const after = numeric(name("reset-after-seconds"));
59
+ return {
60
+ window: windowForMinutes(numeric(name("window-minutes"))),
61
+ // A percentage here; Anthropic's unified utilization is a fraction.
62
+ utilization: percent === undefined ? undefined : percent / 100,
63
+ reset: unixSecondsToMs(name("reset-at")) ?? (after === undefined ? undefined : now + after * 1000),
64
+ };
65
+ }
44
66
  /** Seconds since 1970 passed a billion in 2001, so a bare integer above this is
45
67
  * a timestamp and anything below it is a countdown. Vendors disagree on which
46
68
  * they send under the same header name, so magnitude decides. */
@@ -138,10 +160,12 @@ export function parseRateLimitReset(headers, now = Date.now()) {
138
160
  utilization: numeric(headers.get(`${UNIFIED_7D}utilization`)),
139
161
  reset: unixSecondsToMs(headers.get(`${UNIFIED_7D}reset`)),
140
162
  },
163
+ ...CODEX_SLOTS.map((slot) => codexWindow(headers, slot, now)),
141
164
  ].filter((w) => w.utilization !== undefined && w.reset !== undefined && w.reset > now);
142
165
  const binding = windows.sort((a, b) => (b.utilization ?? 0) - (a.utilization ?? 0))[0];
143
166
  if (binding) {
144
- result.window = binding.window;
167
+ if (binding.window)
168
+ result.window = binding.window;
145
169
  // The window's own reset outranks retry-after: it names the real horizon,
146
170
  // where retry-after names the next polite attempt.
147
171
  if (binding.reset !== undefined)
@@ -168,6 +192,21 @@ const WINDOW_FLOOR_MS = 10 * 60_000;
168
192
  * request fell, so a 5-hour window routinely reports four hours and change. */
169
193
  const FIVE_HOUR_MAX_MS = 5.5 * 3_600_000;
170
194
  const WEEKLY_MAX_MS = 7.5 * 86_400_000;
195
+ /** The window a span this long belongs to. */
196
+ function windowForMs(ms) {
197
+ if (ms <= FIVE_HOUR_MAX_MS)
198
+ return "5h";
199
+ if (ms <= WEEKLY_MAX_MS)
200
+ return "weekly";
201
+ return "monthly";
202
+ }
203
+ /** A wait read off a body, named as a window once it is long enough to be one. */
204
+ function resetAfter(waitMs, now) {
205
+ const result = { retryAfterMs: waitMs, resetAtMs: now + waitMs };
206
+ if (waitMs > WINDOW_FLOOR_MS)
207
+ result.window = windowForMs(waitMs);
208
+ return result;
209
+ }
171
210
  /** A finite number off a JSON field, the string form a relay may stringify it
172
211
  * into included. Bare `Number()` is the trap `numeric()` guards against one
173
212
  * layer up: `Number(null)`, `Number("")`, `Number([])` and `Number(false)` are
@@ -222,31 +261,23 @@ export function parseUsageLimitBody(bodyText, now = Date.now()) {
222
261
  : body;
223
262
  const inSeconds = jsonSeconds(error.resets_in_seconds);
224
263
  const atSeconds = jsonSeconds(error.resets_at);
225
- const waitMs = inSeconds !== undefined && inSeconds >= 0
226
- ? inSeconds * 1000
227
- : atSeconds !== undefined && atSeconds > 0
228
- ? Math.max(0, atSeconds * 1000 - now)
229
- : undefined;
230
- if (waitMs !== undefined) {
231
- const result = { retryAfterMs: waitMs, resetAtMs: now + waitMs };
232
- if (waitMs > WINDOW_FLOOR_MS) {
233
- result.window =
234
- waitMs <= FIVE_HOUR_MAX_MS ? "5h" : waitMs <= WEEKLY_MAX_MS ? "weekly" : "monthly";
235
- }
236
- return result;
264
+ // The plain wait some gateways put in the error body instead of a header,
265
+ // under either name (cc-proxy reads both off the ChatGPT backend's frames).
266
+ const afterSeconds = jsonSeconds(error.retry_after) ??
267
+ jsonSeconds(error.retry_after_seconds) ??
268
+ jsonSeconds(body.retry_after_seconds);
269
+ if (inSeconds !== undefined && inSeconds >= 0)
270
+ return resetAfter(inSeconds * 1000, now);
271
+ if (atSeconds !== undefined && atSeconds > 0) {
272
+ return resetAfter(Math.max(0, atSeconds * 1000 - now), now);
273
+ }
274
+ if (afterSeconds !== undefined && afterSeconds >= 0) {
275
+ return resetAfter(afterSeconds * 1000, now);
237
276
  }
238
277
  }
239
278
  // If structured JSON did not yield a reset, check prose wording
240
279
  const waitMs = parseProseRetryMs(bodyText);
241
- if (waitMs !== undefined) {
242
- const result = { retryAfterMs: waitMs, resetAtMs: now + waitMs };
243
- if (waitMs > WINDOW_FLOOR_MS) {
244
- result.window =
245
- waitMs <= FIVE_HOUR_MAX_MS ? "5h" : waitMs <= WEEKLY_MAX_MS ? "weekly" : "monthly";
246
- }
247
- return result;
248
- }
249
- return {};
280
+ return waitMs === undefined ? {} : resetAfter(waitMs, now);
250
281
  }
251
282
  /** Read both places an endpoint can report its reset. A short Retry-After is
252
283
  * not evidence that a longer subscription window has lifted. */
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../src/rate-limit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../src/rate-limit.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -35,6 +35,16 @@ export declare function clampToSchema(value: unknown, node: unknown): unknown;
35
35
  */
36
36
  export declare function schemaPrompt(schema: unknown): string;
37
37
  export declare function isStrictSchema(node: unknown): boolean;
38
+ /**
39
+ * A tool schema with every `pattern` constraint removed.
40
+ *
41
+ * The ChatGPT backend compiles tool schemas with OpenAI's own regex dialect and
42
+ * answers a pattern it cannot read with a 400 for the WHOLE request — strict
43
+ * or not. Claude Code's Artifact tool carries one, and every request that
44
+ * offered it failed (cc-proxy #141/#142). Losing the constraint costs a
45
+ * validation the caller's tool runner repeats anyway; the 400 costs the turn.
46
+ */
47
+ export declare function withoutPatterns(node: unknown): unknown;
38
48
  /**
39
49
  * Sanitize a JSON Schema for Google Gemini's REST API.
40
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAkDpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmBrD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiEzE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwC5E"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAkDpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAWpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmBrD;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAsBtD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiEzE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwC5E"}
package/dist/schema.js CHANGED
@@ -109,6 +109,55 @@ export function isStrictSchema(node) {
109
109
  const required = new Set(Array.isArray(schema.required) ? schema.required : []);
110
110
  return Object.entries(properties).every(([key, value]) => required.has(key) && isStrictSchema(value));
111
111
  }
112
+ /** Keywords whose value is a schema, a list of schemas, or a map of them —
113
+ * the only places a `pattern` can mean a regex. Everything else (`default`,
114
+ * `examples`, `enum`, property NAMES) is data and is left alone. */
115
+ const SCHEMA_SLOTS = [
116
+ "items",
117
+ "additionalProperties",
118
+ "not",
119
+ "if",
120
+ "then",
121
+ "else",
122
+ "contains",
123
+ "propertyNames",
124
+ "unevaluatedItems",
125
+ "unevaluatedProperties",
126
+ ];
127
+ const SCHEMA_LISTS = ["anyOf", "oneOf", "allOf", "prefixItems"];
128
+ const SCHEMA_MAPS = ["properties", "patternProperties", "$defs", "definitions", "dependentSchemas"];
129
+ /**
130
+ * A tool schema with every `pattern` constraint removed.
131
+ *
132
+ * The ChatGPT backend compiles tool schemas with OpenAI's own regex dialect and
133
+ * answers a pattern it cannot read with a 400 for the WHOLE request — strict
134
+ * or not. Claude Code's Artifact tool carries one, and every request that
135
+ * offered it failed (cc-proxy #141/#142). Losing the constraint costs a
136
+ * validation the caller's tool runner repeats anyway; the 400 costs the turn.
137
+ */
138
+ export function withoutPatterns(node) {
139
+ if (!node || typeof node !== "object" || Array.isArray(node))
140
+ return node;
141
+ const { pattern: _pattern, ...schema } = node;
142
+ for (const key of SCHEMA_SLOTS) {
143
+ const value = schema[key];
144
+ if (value !== undefined) {
145
+ schema[key] = Array.isArray(value) ? value.map(withoutPatterns) : withoutPatterns(value);
146
+ }
147
+ }
148
+ for (const key of SCHEMA_LISTS) {
149
+ const value = schema[key];
150
+ if (Array.isArray(value))
151
+ schema[key] = value.map(withoutPatterns);
152
+ }
153
+ for (const key of SCHEMA_MAPS) {
154
+ const value = schema[key];
155
+ if (value && typeof value === "object" && !Array.isArray(value)) {
156
+ schema[key] = Object.fromEntries(Object.entries(value).map(([name, child]) => [name, withoutPatterns(child)]));
157
+ }
158
+ }
159
+ return schema;
160
+ }
112
161
  /**
113
162
  * Sanitize a JSON Schema for Google Gemini's REST API.
114
163
  *
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}