@providerkit/core 0.8.1 → 0.10.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 (60) hide show
  1. package/dist/capability.d.ts +41 -0
  2. package/dist/capability.d.ts.map +1 -1
  3. package/dist/capability.js +94 -0
  4. package/dist/capability.js.map +1 -1
  5. package/dist/errors.d.ts +30 -0
  6. package/dist/errors.d.ts.map +1 -1
  7. package/dist/errors.js +171 -13
  8. package/dist/errors.js.map +1 -1
  9. package/dist/presets.d.ts +173 -28
  10. package/dist/presets.d.ts.map +1 -1
  11. package/dist/presets.js +172 -26
  12. package/dist/presets.js.map +1 -1
  13. package/dist/providers/anthropic.js +2 -2
  14. package/dist/providers/anthropic.js.map +1 -1
  15. package/dist/providers/factory.d.ts.map +1 -1
  16. package/dist/providers/factory.js +1 -0
  17. package/dist/providers/factory.js.map +1 -1
  18. package/dist/providers/gemini.d.ts.map +1 -1
  19. package/dist/providers/gemini.js +28 -10
  20. package/dist/providers/gemini.js.map +1 -1
  21. package/dist/providers/openai.d.ts +6 -0
  22. package/dist/providers/openai.d.ts.map +1 -1
  23. package/dist/providers/openai.js +58 -4
  24. package/dist/providers/openai.js.map +1 -1
  25. package/dist/rate-limit.d.ts +2 -0
  26. package/dist/rate-limit.d.ts.map +1 -1
  27. package/dist/rate-limit.js +91 -34
  28. package/dist/rate-limit.js.map +1 -1
  29. package/dist/retry.d.ts.map +1 -1
  30. package/dist/retry.js +2 -2
  31. package/dist/retry.js.map +1 -1
  32. package/dist/schema.d.ts +20 -0
  33. package/dist/schema.d.ts.map +1 -1
  34. package/dist/schema.js +112 -0
  35. package/dist/schema.js.map +1 -1
  36. package/dist/tool-args.d.ts +13 -1
  37. package/dist/tool-args.d.ts.map +1 -1
  38. package/dist/tool-args.js +50 -1
  39. package/dist/tool-args.js.map +1 -1
  40. package/dist/transport.d.ts.map +1 -1
  41. package/dist/transport.js +3 -0
  42. package/dist/transport.js.map +1 -1
  43. package/dist/usage.d.ts +6 -0
  44. package/dist/usage.d.ts.map +1 -1
  45. package/dist/usage.js +20 -0
  46. package/dist/usage.js.map +1 -1
  47. package/package.json +3 -1
  48. package/src/capability.ts +157 -0
  49. package/src/errors.ts +181 -13
  50. package/src/presets.ts +177 -28
  51. package/src/providers/anthropic.ts +2 -2
  52. package/src/providers/factory.ts +1 -0
  53. package/src/providers/gemini.ts +30 -10
  54. package/src/providers/openai.ts +64 -4
  55. package/src/rate-limit.ts +98 -36
  56. package/src/retry.ts +8 -2
  57. package/src/schema.ts +127 -0
  58. package/src/tool-args.ts +48 -1
  59. package/src/transport.ts +4 -0
  60. package/src/usage.ts +21 -0
@@ -48,4 +48,45 @@ export interface ProbeOptions {
48
48
  * ```
49
49
  */
50
50
  export declare function probeJsonWithTools(provider: Provider, opts?: ProbeOptions): Promise<JsonWithToolsProbe>;
51
+ export interface ModelCapabilities {
52
+ /** Canonical model identifier. */
53
+ id: string;
54
+ /** Human-readable model display name. */
55
+ name?: string;
56
+ /** Total context window in tokens. */
57
+ contextWindow?: number;
58
+ /** Maximum generation/output tokens. */
59
+ maxOutput?: number;
60
+ /** Whether the model natively supports tool / function calling. */
61
+ supportsTools?: boolean;
62
+ /** Whether the model natively supports JSON schema / structured output. */
63
+ supportsStructuredOutput?: boolean;
64
+ /** Whether the model can receive image inputs. */
65
+ supportsVision?: boolean;
66
+ /** Whether the model has extended thinking / reasoning capability. */
67
+ supportsReasoning?: boolean;
68
+ }
69
+ export interface ResolveModelOptions {
70
+ /** Custom catalog URL. Defaults to https://models.dev/api.json */
71
+ catalogUrl?: string;
72
+ /** Pre-loaded catalog object (useful for tests or offline execution). */
73
+ catalog?: Record<string, unknown>;
74
+ /** Custom fetch implementation (for proxies, custom headers, or tests). */
75
+ fetchImpl?: typeof fetch;
76
+ /** Max cache age in ms. Defaults to 24 hours (86_400_000 ms). */
77
+ maxAgeMs?: number;
78
+ }
79
+ /**
80
+ * Resolve model capabilities (context window, tool calling, vision, reasoning)
81
+ * by looking up the model in a live or cached models.dev catalog.
82
+ *
83
+ * Normalizes model identifiers across gateway spellings:
84
+ * - `z-ai/glm-5.3-flash` matches `glm-5.3-flash`
85
+ * - `deepseek/deepseek-v4.1-flash` matches `deepseek-v4.1-flash`
86
+ * - `accounts/fireworks/models/glm-5p3-flash` matches `glm-5.3-flash`
87
+ *
88
+ * Never throws — if the catalog cannot be retrieved or the model is unknown,
89
+ * returns `undefined` so capability lookups never break caller execution.
90
+ */
91
+ export declare function resolveModelCapabilities(modelId: string, options?: ResolveModelOptions): Promise<ModelCapabilities | undefined>;
51
92
  //# sourceMappingURL=capability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA2B1D,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B"}
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA2B1D,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;AAID,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,kDAAkD;IAClD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAmCD;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA6BxC"}
@@ -90,4 +90,98 @@ export async function probeJsonWithTools(provider, opts = {}) {
90
90
  // than the equal.
91
91
  return { use: SHAPES.find((shape) => calls[shape] === samples) ?? null, calls, samples };
92
92
  }
93
+ const DEFAULT_CATALOG_URL = "https://models.dev/api.json";
94
+ const DEFAULT_MAX_AGE_MS = 86_400_000; // 24 hours
95
+ let cachedCatalog = null;
96
+ function normalizeId(id) {
97
+ // Strip gateway prefixes (z-ai/, deepseek/, openai/, accounts/fireworks/models/, etc.)
98
+ const bare = id.replace(/^(?:accounts\/[^/]+\/models\/|[^/]+\/)/, "");
99
+ // Normalize punctuation variations like 5p3 -> 5.3 or v4p1 -> v4.1
100
+ return bare.replace(/([a-z0-9])p([0-9])/gi, "$1.$2").toLowerCase();
101
+ }
102
+ /**
103
+ * Resolve model capabilities (context window, tool calling, vision, reasoning)
104
+ * by looking up the model in a live or cached models.dev catalog.
105
+ *
106
+ * Normalizes model identifiers across gateway spellings:
107
+ * - `z-ai/glm-5.3-flash` matches `glm-5.3-flash`
108
+ * - `deepseek/deepseek-v4.1-flash` matches `deepseek-v4.1-flash`
109
+ * - `accounts/fireworks/models/glm-5p3-flash` matches `glm-5.3-flash`
110
+ *
111
+ * Never throws — if the catalog cannot be retrieved or the model is unknown,
112
+ * returns `undefined` so capability lookups never break caller execution.
113
+ */
114
+ export async function resolveModelCapabilities(modelId, options = {}) {
115
+ if (!modelId)
116
+ return undefined;
117
+ let catalogData;
118
+ if (options.catalog) {
119
+ catalogData = options.catalog;
120
+ }
121
+ else {
122
+ const maxAge = options.maxAgeMs ?? DEFAULT_MAX_AGE_MS;
123
+ const now = Date.now();
124
+ if (cachedCatalog && now - cachedCatalog.timestamp < maxAge) {
125
+ catalogData = cachedCatalog.data;
126
+ }
127
+ else {
128
+ try {
129
+ const fetcher = options.fetchImpl ?? fetch;
130
+ const res = await fetcher(options.catalogUrl ?? DEFAULT_CATALOG_URL);
131
+ if (!res.ok)
132
+ return undefined;
133
+ catalogData = (await res.json());
134
+ cachedCatalog = { timestamp: now, data: catalogData };
135
+ }
136
+ catch {
137
+ // Degrade gracefully if offline or request failed
138
+ if (cachedCatalog)
139
+ return extractCapabilities(modelId, cachedCatalog.data);
140
+ return undefined;
141
+ }
142
+ }
143
+ }
144
+ return extractCapabilities(modelId, catalogData);
145
+ }
146
+ function extractCapabilities(modelId, catalog) {
147
+ const targetNorm = normalizeId(modelId);
148
+ let bestMatch;
149
+ // Pass 1: exact match
150
+ for (const provider of Object.values(catalog)) {
151
+ if (!provider?.models)
152
+ continue;
153
+ if (provider.models[modelId]) {
154
+ bestMatch = provider.models[modelId];
155
+ break;
156
+ }
157
+ }
158
+ // Pass 2: normalized match across vendor prefixes and punctuation
159
+ if (!bestMatch) {
160
+ for (const provider of Object.values(catalog)) {
161
+ if (!provider?.models)
162
+ continue;
163
+ for (const [key, entry] of Object.entries(provider.models)) {
164
+ if (normalizeId(key) === targetNorm) {
165
+ bestMatch = entry;
166
+ break;
167
+ }
168
+ }
169
+ if (bestMatch)
170
+ break;
171
+ }
172
+ }
173
+ if (!bestMatch)
174
+ return undefined;
175
+ const inputs = bestMatch.modalities?.input ?? [];
176
+ return {
177
+ id: bestMatch.id ?? modelId,
178
+ name: bestMatch.name,
179
+ contextWindow: bestMatch.limit?.context,
180
+ maxOutput: bestMatch.limit?.output,
181
+ supportsTools: bestMatch.tool_call === true,
182
+ supportsStructuredOutput: bestMatch.structured_output === true,
183
+ supportsVision: inputs.includes("image") || bestMatch.attachment === true,
184
+ supportsReasoning: bestMatch.reasoning === true,
185
+ };
186
+ }
93
187
  //# sourceMappingURL=capability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -28,6 +28,19 @@ export type ErrorKind =
28
28
  | "invalid" | "unknown";
29
29
  export declare function isTransient(kind: ErrorKind): boolean;
30
30
  export declare function isBackupEligible(kind: ErrorKind): boolean;
31
+ /**
32
+ * Decides whether any failure (ProviderError, thrown Error, TypeError, HTTP response)
33
+ * is worth a retry.
34
+ *
35
+ * Checks in order:
36
+ * 1. Caller aborts are never retryable.
37
+ * 2. An explicit `shouldRetry` directive on ProviderError (e.g. from server `x-should-retry`)
38
+ * 3. Non-retryable kinds (quota, context, model, entitlement, content, invalid) return false.
39
+ * 4. Excessive retry-after waits (exceeding `maxWaitMs`) return false — long waits belong to fallbacks.
40
+ * 5. Transient kinds (rate, overload, network, timeout) return true.
41
+ * 6. Transport-level network faults (fetch failed, connection lost, SSL blips) return true.
42
+ */
43
+ export declare function isRetryable(err: unknown, maxWaitMs?: number): boolean;
31
44
  export declare class ProviderError extends Error {
32
45
  readonly provider: string;
33
46
  readonly kind: ErrorKind;
@@ -39,6 +52,8 @@ export declare class ProviderError extends Error {
39
52
  /** Absolute reset of the binding limit. Can be days beyond Retry-After. */
40
53
  readonly resetAtMs?: number;
41
54
  readonly window?: RateLimitWindow;
55
+ /** Explicit server directive (`x-should-retry`), overriding default classification. */
56
+ readonly shouldRetry?: boolean;
42
57
  /** The provider's own response body, truncated — the actual reason, which is
43
58
  * otherwise lost behind "400 status code (no body)". */
44
59
  readonly body?: string;
@@ -48,6 +63,7 @@ export declare class ProviderError extends Error {
48
63
  retryAfterMs?: number;
49
64
  resetAtMs?: number;
50
65
  window?: RateLimitWindow;
66
+ shouldRetry?: boolean;
51
67
  body?: string;
52
68
  cause?: unknown;
53
69
  });
@@ -98,6 +114,20 @@ export declare function classify(err: unknown, status?: number, body?: string):
98
114
  * backoff shorter than the window just burns an attempt.
99
115
  */
100
116
  export declare function parseRetryAfterMs(err: unknown, body?: string): number | undefined;
117
+ export interface ContextOverflowInfo {
118
+ inputTokens?: number;
119
+ maxTokens?: number;
120
+ contextLimit: number;
121
+ excessTokens: number;
122
+ }
123
+ /**
124
+ * Extracts context overflow details from provider error messages.
125
+ *
126
+ * Covers:
127
+ * - Anthropic / Bedrock: `input length and \`max_tokens\` exceed context limit: 188059 + 20000 > 200000`
128
+ * - Standard / Gateway: `prompt is too long: 137500 tokens > 135000 maximum`
129
+ */
130
+ export declare function parseContextOverflow(err: unknown, body?: string): ContextOverflowInfo | undefined;
101
131
  /**
102
132
  * A failure the backend reports INSIDE an already-200 stream.
103
133
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE5E,qEAAqE;AACrE,MAAM,MAAM,SAAS;AACnB,+DAA+D;AAC7D,SAAS;AACX,sDAAsD;GACpD,SAAS;AACX,8EAA8E;GAC5E,SAAS;AACX;sCACsC;GACpC,UAAU;AACZ,yEAAyE;GACvE,MAAM;AACR,0EAA0E;GACxE,OAAO;AACT,iFAAiF;GAC/E,aAAa;AACf,mDAAmD;GACjD,MAAM;AACR,yDAAyD;GACvD,OAAO;AACT,sEAAsE;GACpE,SAAS;AACX,gCAAgC;GAC9B,SAAS;AACX,6CAA6C;GAC3C,SAAS,GACT,SAAS,CAAC;AAcd,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;0CACsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC;6DACyD;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,eAAe,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IAcR,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;iFAC6E;IAC7E,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa;CAe3D;AAgBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU9C;AAwDD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuBxD;AAsGD;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAEhF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CA4ChF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAwBjF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAkB3E;AAED;mCACmC;AACnC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAe3E"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -20,12 +20,53 @@ const TRANSIENT = new Set([
20
20
  /** Worth walking to a backup MODEL rather than just waiting. A throttle and an
21
21
  * overload are per-model-endpoint; nothing else on this list is. */
22
22
  const BACKUP_ELIGIBLE = new Set(["overload", "rate"]);
23
+ /** Kinds that a retry on the same endpoint can never resolve. */
24
+ const NON_RETRYABLE_KINDS = new Set([
25
+ "quota",
26
+ "context",
27
+ "model",
28
+ "entitlement",
29
+ "content",
30
+ "invalid",
31
+ "aborted",
32
+ ]);
23
33
  export function isTransient(kind) {
24
34
  return TRANSIENT.has(kind);
25
35
  }
26
36
  export function isBackupEligible(kind) {
27
37
  return BACKUP_ELIGIBLE.has(kind);
28
38
  }
39
+ /**
40
+ * Decides whether any failure (ProviderError, thrown Error, TypeError, HTTP response)
41
+ * is worth a retry.
42
+ *
43
+ * Checks in order:
44
+ * 1. Caller aborts are never retryable.
45
+ * 2. An explicit `shouldRetry` directive on ProviderError (e.g. from server `x-should-retry`)
46
+ * 3. Non-retryable kinds (quota, context, model, entitlement, content, invalid) return false.
47
+ * 4. Excessive retry-after waits (exceeding `maxWaitMs`) return false — long waits belong to fallbacks.
48
+ * 5. Transient kinds (rate, overload, network, timeout) return true.
49
+ * 6. Transport-level network faults (fetch failed, connection lost, SSL blips) return true.
50
+ */
51
+ export function isRetryable(err, maxWaitMs = 60_000) {
52
+ if (isAbort(err))
53
+ return false;
54
+ if (err instanceof ProviderError) {
55
+ if (err.shouldRetry !== undefined)
56
+ return err.shouldRetry;
57
+ if (NON_RETRYABLE_KINDS.has(err.kind))
58
+ return false;
59
+ if (err.retryAfterMs !== undefined && err.retryAfterMs > maxWaitMs)
60
+ return false;
61
+ return err.isTransient;
62
+ }
63
+ if (isTransportFailure(err))
64
+ return true;
65
+ const kind = classify(err);
66
+ if (NON_RETRYABLE_KINDS.has(kind))
67
+ return false;
68
+ return isTransient(kind);
69
+ }
29
70
  export class ProviderError extends Error {
30
71
  provider;
31
72
  kind;
@@ -37,6 +78,8 @@ export class ProviderError extends Error {
37
78
  /** Absolute reset of the binding limit. Can be days beyond Retry-After. */
38
79
  resetAtMs;
39
80
  window;
81
+ /** Explicit server directive (`x-should-retry`), overriding default classification. */
82
+ shouldRetry;
40
83
  /** The provider's own response body, truncated — the actual reason, which is
41
84
  * otherwise lost behind "400 status code (no body)". */
42
85
  body;
@@ -50,9 +93,12 @@ export class ProviderError extends Error {
50
93
  this.retryAfterMs = opts.retryAfterMs;
51
94
  this.resetAtMs = opts.resetAtMs;
52
95
  this.window = opts.window;
96
+ this.shouldRetry = opts.shouldRetry;
53
97
  this.body = opts.body;
54
98
  }
55
99
  get isTransient() {
100
+ if (this.shouldRetry !== undefined)
101
+ return this.shouldRetry;
56
102
  return isTransient(this.kind);
57
103
  }
58
104
  get isBackupEligible() {
@@ -90,19 +136,27 @@ function readString(err, key) {
90
136
  const value = err[key];
91
137
  return typeof value === "string" ? value : undefined;
92
138
  }
139
+ function sanitizeHtmlError(text) {
140
+ if (/^\s*<!doctype|^\s*<html/i.test(text) || text.includes("<title>")) {
141
+ const match = text.match(/<title>([^<]+)<\/title>/i);
142
+ if (match?.[1])
143
+ return match[1].trim();
144
+ }
145
+ return text;
146
+ }
93
147
  export function messageOf(err) {
94
148
  if (err instanceof Error)
95
- return err.message;
149
+ return sanitizeHtmlError(err.message);
96
150
  if (typeof err === "string")
97
- return err;
151
+ return sanitizeHtmlError(err);
98
152
  const message = readString(err, "message");
99
153
  if (message !== undefined)
100
- return message;
154
+ return sanitizeHtmlError(message);
101
155
  try {
102
- return JSON.stringify(err) ?? String(err);
156
+ return sanitizeHtmlError(JSON.stringify(err) ?? String(err));
103
157
  }
104
158
  catch {
105
- return String(err);
159
+ return sanitizeHtmlError(String(err));
106
160
  }
107
161
  }
108
162
  /**
@@ -141,19 +195,44 @@ const TRANSPORT_CODES = new Set([
141
195
  "EHOSTUNREACH",
142
196
  "EAI_AGAIN",
143
197
  "ERR_STREAM_PREMATURE_CLOSE",
198
+ // SSL/TLS connection codes (Node, Bun, corporate proxies/firewalls)
199
+ "UNABLE_TO_VERIFY_LEAF_SIGNATURE",
200
+ "UNABLE_TO_GET_ISSUER_CERT",
201
+ "UNABLE_TO_GET_ISSUER_CERT_LOCALLY",
202
+ "CERT_SIGNATURE_FAILURE",
203
+ "CERT_HAS_EXPIRED",
204
+ "CERT_NOT_YET_VALID",
205
+ "DEPTH_ZERO_SELF_SIGNED_CERT",
206
+ "SELF_SIGNED_CERT_IN_CHAIN",
207
+ "ERR_TLS_CERT_ALTNAME_INVALID",
208
+ "HOSTNAME_MISMATCH",
209
+ "ERR_SSL_WRONG_VERSION_NUMBER",
144
210
  ]);
145
211
  /**
146
212
  * The same faults when only a message survives. Engine wordings differ:
147
213
  * Chromium says "Failed to fetch", Firefox "NetworkError when attempting to
148
- * fetch resource", Safari "Load failed", Node/Bun "fetch failed".
214
+ * fetch resource", Safari "Load failed", Node/Bun "fetch failed", WebKit/macOS
215
+ * "The network connection was lost".
149
216
  */
150
- const TRANSPORT_MESSAGES = /failed to fetch|fetch failed|network\s?error|load failed|unable to connect|socket hang up|socket (?:connection )?(?:was )?closed|connection (?:error|closed|refused|reset)|premature close|stream (?:ended|closed) unexpectedly|und_err/i;
217
+ const TRANSPORT_MESSAGES = /failed to fetch|fetch failed|network\s?error|network connection (?:was )?lost|load failed|unable to connect|socket hang up|socket (?:connection )?(?:was )?closed|connection (?:error|closed|refused|reset|lost)|premature close|stream (?:ended|closed) unexpectedly|und_err/i;
151
218
  /** How far up the `cause` chain to look before giving up. */
152
219
  const CAUSE_DEPTH = 5;
153
220
  function isAbort(err) {
154
221
  const name = readString(err, "name");
155
222
  const code = readString(err, "code");
156
- return name === "AbortError" || name === "APIUserAbortError" || code === "ABORT_ERR";
223
+ if (name === "AbortError" || name === "APIUserAbortError" || code === "ABORT_ERR")
224
+ return true;
225
+ const msg = readString(err, "message")?.toLowerCase();
226
+ if (msg) {
227
+ if (msg.includes("client closed request") ||
228
+ msg.includes("client cancelled request") ||
229
+ msg.includes("client canceled request") ||
230
+ msg.includes("request canceled by client") ||
231
+ msg.includes("request cancelled by client")) {
232
+ return true;
233
+ }
234
+ }
235
+ return false;
157
236
  }
158
237
  /**
159
238
  * A transport fault: the socket died before or during the response, so there
@@ -209,6 +288,10 @@ const CONTEXT_PATTERNS = [
209
288
  /input is too long/i,
210
289
  /too many (?:input )?tokens/i,
211
290
  /reduce the length of the (?:messages|prompt|input)/i,
291
+ // Anthropic's exact wording when input + max_tokens overflows context limit:
292
+ // "input length and `max_tokens` exceed context limit: 188059 + 20000 > 200000"
293
+ /input length and `?max_tokens`? exceed context limit/i,
294
+ /exceed(?:s|ed)? (?:the )?context limit/i,
212
295
  // Scoped to the thing that overflowed: a bare "exceeds the maximum" also
213
296
  // covers image counts and per-minute token rates, which compaction can't fix.
214
297
  /exceeds? the (?:model'?s? )?maximum (?:input |prompt |context )?(?:tokens?|length|context)/i,
@@ -220,7 +303,15 @@ const ENTITLEMENT_PATTERNS = [
220
303
  /plan does(?:n't| not) (?:include|support)/i,
221
304
  /not included (?:in|with) your .{0,40}plan/i,
222
305
  /upgrade to [\w ]{1,30}(?:or higher|plan)/i,
306
+ /requires? (?:the |a |an )?[\w\s]{1,30}plan/i,
307
+ /requires? (?:a )?subscription/i,
308
+ /subscription[_\s]?required/i,
309
+ /upgrade for access/i,
223
310
  /no api access/i,
311
+ /OAuth authentication is currently not allowed for this organization/i,
312
+ // The ChatGPT backend's error code, which arrives with no prose at all.
313
+ /usage_not_included/i,
314
+ /usage not included/i,
224
315
  ];
225
316
  // Balance or usage window used up. Chinese-market providers report it in
226
317
  // Chinese, which is why the literal strings are here rather than a rule.
@@ -229,7 +320,8 @@ const QUOTA_PATTERNS = [
229
320
  /exceeded your current quota/i,
230
321
  /insufficient (?:balance|credits?)/i,
231
322
  /credit balance is too low/i,
232
- /(?:no|out of) credits/i,
323
+ /(?:no|any|out of) credits/i,
324
+ /(?:credits?|balance) depleted/i,
233
325
  // Both word orders occur in the wild.
234
326
  /usage limits? (?:reached|exceeded|hit)/i,
235
327
  /reached your (?:usage|weekly|monthly|daily) limit/i,
@@ -238,6 +330,11 @@ const QUOTA_PATTERNS = [
238
330
  /upgrade your plan/i,
239
331
  /quota\b[^.]{0,40}\b(?:exhausted|exceeded|will be refreshed)/i,
240
332
  /balance (?:is )?(?:too low|not enough|insufficient)/i,
333
+ // The OpenAI-shape `type` field for billing failures, serialized into the
334
+ // scanned text — a quota signal with no prose wording at all (codex-router).
335
+ /billing_error/i,
336
+ // Alibaba intl's English spelling of 欠费.
337
+ /\barrears?\b/i,
241
338
  /余额不足/,
242
339
  /欠费/,
243
340
  /额度(?:不足|已用完)/,
@@ -248,16 +345,25 @@ const MODEL_PATTERNS = [
248
345
  /unsupported model/i,
249
346
  ];
250
347
  const AUTH_PATTERNS = [
251
- /invalid (?:x-api-key|api[ _-]?key|token|credentials?)/i,
348
+ /invalid[_\s]?(?:x-api-key|api[ _-]?key|token|credentials?)/i,
252
349
  /api[ _-]?key (?:is )?(?:not valid|invalid|incorrect)/i,
253
350
  /unauthorized|UNAUTHENTICATED|PERMISSION_DENIED/i,
254
351
  /authentication[_\s](?:failed|invalid|error)/i,
255
352
  /account (?:disabled|suspended|deactivated|banned)/i,
353
+ /unrecognizedclient|unauthorizedexception|accessdeniedexception/i,
354
+ /expired[_\s]?token/i,
355
+ /OAuth token has been revoked/i,
256
356
  ];
257
357
  const CONTENT_PATTERNS = [
258
358
  /content[_\s]filter/i,
259
359
  /content policy/i,
260
- /safety|PROHIBITED_CONTENT|blocked|refusal/i,
360
+ /cyber[_\s]policy/i,
361
+ /safety|PROHIBITED_CONTENT|blocked|refusal|policy violation|misalignment/i,
362
+ // Document and media boundary violations
363
+ /maximum of \d+ PDF pages/i,
364
+ /PDF specified is password protected/i,
365
+ /image(?:s)? exceed(?:s)? .* maximum/i,
366
+ /image dimensions exceed/i,
261
367
  ];
262
368
  /**
263
369
  * A throttle said in words rather than in a 429.
@@ -270,8 +376,19 @@ const CONTENT_PATTERNS = [
270
376
  */
271
377
  const RATE_PATTERNS = [
272
378
  /rate[_\s-]?limit/i,
273
- /too many requests/i,
274
- /RESOURCE_EXHAUSTED/,
379
+ // Spaces, snake and kebab all occur in the wild — opencode's list carries
380
+ // the snake form for providers that forward Google/gRPC error codes raw.
381
+ /too[_\s-]?many[_\s-]?requests/i,
382
+ // Google's quota code, upper-case in the status enum and snake_case in the
383
+ // type field (codex-router reads the latter) — a per-minute quota is a
384
+ // throttle, so it lands on rate, not quota.
385
+ /resource[_\s]?exhausted/i,
386
+ // AWS Bedrock throttles by exception name (ThrottlingException); the bare
387
+ // word also arrives alone.
388
+ /throttl(?:e|ed|ing)/i,
389
+ // A per-minute window named without the word "rate" — Anthropic's TPM prose
390
+ // ("Limit 30000 tokens per min") and gateway RPM counters.
391
+ /(?:requests?|tokens?) per (?:second|sec|minute|min)\b/i,
275
392
  ];
276
393
  /** Theirs and temporary, said in words rather than a status. Gemini reports
277
394
  * UNAVAILABLE/INTERNAL in the body; gateways say "capacity". */
@@ -283,7 +400,11 @@ const OVERLOAD_PATTERNS = [
283
400
  // does not swallow the word in ordinary prose.
284
401
  /\bINTERNAL\b/,
285
402
  /\bcapacity\b/i,
403
+ /server is busy/i,
404
+ /high demand/i,
286
405
  /"code"\s*:\s*5\d\d/,
406
+ // OpenAI's 5xx wording, often forwarded by gateways with the status lost.
407
+ /(?:try|retry) your request again/i,
287
408
  ];
288
409
  const matches = (patterns, text) => patterns.some((pattern) => pattern.test(text));
289
410
  /**
@@ -403,6 +524,43 @@ export function parseRetryAfterMs(err, body) {
403
524
  const date = Date.parse(value);
404
525
  return Number.isNaN(date) ? undefined : Math.max(0, date - Date.now());
405
526
  }
527
+ /**
528
+ * Extracts context overflow details from provider error messages.
529
+ *
530
+ * Covers:
531
+ * - Anthropic / Bedrock: `input length and \`max_tokens\` exceed context limit: 188059 + 20000 > 200000`
532
+ * - Standard / Gateway: `prompt is too long: 137500 tokens > 135000 maximum`
533
+ */
534
+ export function parseContextOverflow(err, body) {
535
+ const text = body ?? bodyTextOf(err) ?? messageOf(err);
536
+ if (!text)
537
+ return undefined;
538
+ // Anthropic / Bedrock: "input length and `max_tokens` exceed context limit: 188059 + 20000 > 200000"
539
+ const m1 = /(?:input length and [`']?max_tokens[`']? exceed context limit|exceeds context limit):\s*(\d+)\s*\+\s*(\d+)\s*>\s*(\d+)/i.exec(text);
540
+ if (m1) {
541
+ const input = parseInt(m1[1], 10);
542
+ const max = parseInt(m1[2], 10);
543
+ const limit = parseInt(m1[3], 10);
544
+ return {
545
+ inputTokens: input,
546
+ maxTokens: max,
547
+ contextLimit: limit,
548
+ excessTokens: input + max - limit,
549
+ };
550
+ }
551
+ // "prompt is too long: 137500 tokens > 135000 maximum"
552
+ const m2 = /(?:prompt is too long|context length exceeded|maximum context length is \d+ tokens?)[^:]*:\s*(\d+)\s*(?:tokens)?\s*>\s*(\d+)/i.exec(text);
553
+ if (m2) {
554
+ const actual = parseInt(m2[1], 10);
555
+ const limit = parseInt(m2[2], 10);
556
+ return {
557
+ inputTokens: actual,
558
+ contextLimit: limit,
559
+ excessTokens: actual - limit,
560
+ };
561
+ }
562
+ return undefined;
563
+ }
406
564
  /**
407
565
  * A failure the backend reports INSIDE an already-200 stream.
408
566
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}