@providerkit/core 0.22.0 → 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.
Files changed (97) hide show
  1. package/dist/auth/flows.d.ts.map +1 -1
  2. package/dist/auth/flows.js +5 -5
  3. package/dist/auth/flows.js.map +1 -1
  4. package/dist/auth/index.d.ts +1 -0
  5. package/dist/auth/index.d.ts.map +1 -1
  6. package/dist/auth/index.js +1 -0
  7. package/dist/auth/index.js.map +1 -1
  8. package/dist/auth/oauth.d.ts +12 -0
  9. package/dist/auth/oauth.d.ts.map +1 -1
  10. package/dist/auth/oauth.js +19 -1
  11. package/dist/auth/oauth.js.map +1 -1
  12. package/dist/auth/token-source.d.ts +9 -3
  13. package/dist/auth/token-source.d.ts.map +1 -1
  14. package/dist/auth/token-source.js +24 -9
  15. package/dist/auth/token-source.js.map +1 -1
  16. package/dist/auth/with-token.d.ts +29 -0
  17. package/dist/auth/with-token.d.ts.map +1 -0
  18. package/dist/auth/with-token.js +85 -0
  19. package/dist/auth/with-token.js.map +1 -0
  20. package/dist/context.d.ts +39 -1
  21. package/dist/context.d.ts.map +1 -1
  22. package/dist/context.js +119 -0
  23. package/dist/context.js.map +1 -1
  24. package/dist/errors.d.ts +12 -3
  25. package/dist/errors.d.ts.map +1 -1
  26. package/dist/errors.js +44 -5
  27. package/dist/errors.js.map +1 -1
  28. package/dist/fallback.d.ts +45 -1
  29. package/dist/fallback.d.ts.map +1 -1
  30. package/dist/fallback.js +138 -75
  31. package/dist/fallback.js.map +1 -1
  32. package/dist/key-pool.d.ts +10 -4
  33. package/dist/key-pool.d.ts.map +1 -1
  34. package/dist/key-pool.js +29 -12
  35. package/dist/key-pool.js.map +1 -1
  36. package/dist/presets.d.ts +7 -2
  37. package/dist/presets.d.ts.map +1 -1
  38. package/dist/presets.js +12 -2
  39. package/dist/presets.js.map +1 -1
  40. package/dist/providers/anthropic.d.ts.map +1 -1
  41. package/dist/providers/anthropic.js +80 -25
  42. package/dist/providers/anthropic.js.map +1 -1
  43. package/dist/providers/gemini.d.ts +6 -0
  44. package/dist/providers/gemini.d.ts.map +1 -1
  45. package/dist/providers/gemini.js +102 -27
  46. package/dist/providers/gemini.js.map +1 -1
  47. package/dist/providers/openai.d.ts.map +1 -1
  48. package/dist/providers/openai.js +63 -14
  49. package/dist/providers/openai.js.map +1 -1
  50. package/dist/providers/responses.d.ts.map +1 -1
  51. package/dist/providers/responses.js +98 -52
  52. package/dist/providers/responses.js.map +1 -1
  53. package/dist/rate-limit.d.ts +10 -0
  54. package/dist/rate-limit.d.ts.map +1 -1
  55. package/dist/rate-limit.js +7 -1
  56. package/dist/rate-limit.js.map +1 -1
  57. package/dist/retry.d.ts +11 -0
  58. package/dist/retry.d.ts.map +1 -1
  59. package/dist/retry.js +25 -12
  60. package/dist/retry.js.map +1 -1
  61. package/dist/tool-args.d.ts +22 -0
  62. package/dist/tool-args.d.ts.map +1 -1
  63. package/dist/tool-args.js +28 -0
  64. package/dist/tool-args.js.map +1 -1
  65. package/dist/transport.d.ts +34 -4
  66. package/dist/transport.d.ts.map +1 -1
  67. package/dist/transport.js +77 -16
  68. package/dist/transport.js.map +1 -1
  69. package/dist/types.d.ts +13 -0
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/types.js +0 -8
  72. package/dist/types.js.map +1 -1
  73. package/dist/watchdog.d.ts +2 -0
  74. package/dist/watchdog.d.ts.map +1 -1
  75. package/dist/watchdog.js +25 -6
  76. package/dist/watchdog.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/auth/flows.ts +5 -4
  79. package/src/auth/index.ts +1 -0
  80. package/src/auth/oauth.ts +23 -1
  81. package/src/auth/token-source.ts +30 -11
  82. package/src/auth/with-token.ts +97 -0
  83. package/src/context.ts +137 -2
  84. package/src/errors.ts +46 -6
  85. package/src/fallback.ts +173 -75
  86. package/src/key-pool.ts +30 -13
  87. package/src/presets.ts +12 -2
  88. package/src/providers/anthropic.ts +83 -24
  89. package/src/providers/gemini.ts +102 -28
  90. package/src/providers/openai.ts +61 -13
  91. package/src/providers/responses.ts +102 -50
  92. package/src/rate-limit.ts +31 -3
  93. package/src/retry.ts +41 -10
  94. package/src/tool-args.ts +44 -0
  95. package/src/transport.ts +97 -17
  96. package/src/types.ts +13 -0
  97. package/src/watchdog.ts +25 -6
package/dist/context.js CHANGED
@@ -133,6 +133,125 @@ export function applyCompaction(messages, cut, summary) {
133
133
  ...tail,
134
134
  ];
135
135
  }
136
+ /** What a call with no result answers, by whether running it again is safe.
137
+ * The model reads this and decides whether to call again, so the two must
138
+ * differ on exactly that. */
139
+ const INTERRUPTED_READ_ONLY = "This call was interrupted before it returned. It changed nothing, so it is safe to call again.";
140
+ const INTERRUPTED = "This call was interrupted before it returned. It may have partly run, so check its effect before calling it again.";
141
+ /** `id`, or `id_2`, `id_3`… whichever is free first. Only ids already handed
142
+ * out are consulted, so an id never depends on what comes after it. */
143
+ function freshId(id, used) {
144
+ let fresh = id;
145
+ for (let k = 2; used.has(fresh); k++)
146
+ fresh = `${id}_${k}`;
147
+ used.add(fresh);
148
+ return fresh;
149
+ }
150
+ /** The first call in the span asked under `id` that has no result yet, or -1.
151
+ * First unanswered rather than first: two calls in one reply can share an id,
152
+ * and their results then pair in order. */
153
+ function openSlot(span, id) {
154
+ return span.vendorIds.findIndex((asked, i) => asked === id && !span.results[i]);
155
+ }
156
+ /** A result with no call to answer, kept as words the model can still read
157
+ * instead of a `tool` message every provider answers with a 400. */
158
+ function orphanNote(result) {
159
+ const text = `[Tool result for ${result.toolCallId}; the tool call is missing or already has a result]\n${result.content}`;
160
+ return {
161
+ role: "user",
162
+ content: result.images?.length ? [{ type: "text", text }, ...result.images] : text,
163
+ };
164
+ }
165
+ /**
166
+ * Make a saved, resumed or interrupted history valid to send: every call has
167
+ * exactly one result, right after it, under an id no other call uses.
168
+ *
169
+ * A span runs from an assistant message with tool calls to the next assistant
170
+ * message. Its results move to just after the calls, in call order, and the
171
+ * rest of the span (a steer the user typed while the tools ran) keeps its
172
+ * order after them. Then:
173
+ *
174
+ * - A call with no result in its span gets one under the same id, saying it was
175
+ * interrupted. `isReadOnly` picks the wording; without it every tool may
176
+ * have partly run. These calls come back as `interrupted`, under the ids
177
+ * the request carries.
178
+ * - A result whose call is not in its span becomes a user note, images kept.
179
+ * Paired against the span only, because chat and Messages both require the
180
+ * result in the turn right after its call: a looser pairing still 400s.
181
+ * - A repeated id becomes `{id}_{k}`, the smallest free k, call and result
182
+ * together. Kimi and Gemini restart their ids every reply
183
+ * (`functions.search:0`, `call_0`), and Anthropic and Responses reject the
184
+ * second use.
185
+ * - An empty id becomes `call_{message}_{call}`, never `normalizeToolId`'s
186
+ * random fallback.
187
+ * - An assistant message with no calls and only whitespace is dropped, as if
188
+ * it were never there, so a placeholder saved before the tools ran orphans
189
+ * nothing.
190
+ *
191
+ * No side effects, and the same input always gives the same bytes: a span's
192
+ * output and every id depend only on what came before, so repairing a longer
193
+ * history keeps the shorter one's bytes and the prompt cache keeps hitting.
194
+ * Repairing a repaired history changes nothing. Every adapter here runs this
195
+ * on what it sends; call it yourself to know what `interrupted` holds.
196
+ */
197
+ export function repairHistory(messages, opts = {}) {
198
+ const out = [];
199
+ const interrupted = [];
200
+ const used = new Set();
201
+ // The open span: its calls as sent, the id the vendor gave each, the result
202
+ // each has found so far, and everything else in arrival order.
203
+ let span;
204
+ const close = () => {
205
+ if (!span)
206
+ return;
207
+ for (const [i, call] of span.calls.entries()) {
208
+ const result = span.results[i];
209
+ if (result) {
210
+ out.push(result);
211
+ continue;
212
+ }
213
+ interrupted.push(call);
214
+ const content = opts.isReadOnly?.(call.name) ? INTERRUPTED_READ_ONLY : INTERRUPTED;
215
+ out.push({ role: "tool", toolCallId: call.id, name: call.name, content });
216
+ }
217
+ out.push(...span.rest);
218
+ span = undefined;
219
+ };
220
+ for (const [index, message] of messages.entries()) {
221
+ if (message.role === "assistant") {
222
+ const calls = message.toolCalls ?? [];
223
+ if (calls.length === 0 && !message.content.trim())
224
+ continue;
225
+ close();
226
+ if (calls.length === 0) {
227
+ out.push(message);
228
+ continue;
229
+ }
230
+ const sent = calls.map((call, c) => {
231
+ const id = freshId(call.id.trim() ? call.id : `call_${index}_${c}`, used);
232
+ return id === call.id ? call : { ...call, id };
233
+ });
234
+ const renamed = sent.some((call, c) => call !== calls[c]);
235
+ out.push(renamed ? { ...message, toolCalls: sent } : message);
236
+ span = { calls: sent, vendorIds: calls.map((call) => call.id), results: [], rest: [] };
237
+ }
238
+ else if (message.role === "tool") {
239
+ const slot = span ? openSlot(span, message.toolCallId) : -1;
240
+ if (span && slot !== -1) {
241
+ const id = span.calls[slot].id;
242
+ span.results[slot] = id === message.toolCallId ? message : { ...message, toolCallId: id };
243
+ }
244
+ else {
245
+ (span?.rest ?? out).push(orphanNote(message));
246
+ }
247
+ }
248
+ else {
249
+ (span?.rest ?? out).push(message);
250
+ }
251
+ }
252
+ close();
253
+ return { messages: out, interrupted };
254
+ }
136
255
  /**
137
256
  * The context window for a model, when nothing volunteered one.
138
257
  *
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -146,11 +146,20 @@ export declare function parseContextOverflow(err: unknown, body?: string): Conte
146
146
  * `code`/`type`, the canonical `status` name. The whole thing serializes into
147
147
  * the searchable body, so RetryInfo's `retryDelay` is honoured wherever it sits.
148
148
  *
149
+ * A number is a status only from 400 to 599. Vendors put their own codes in
150
+ * the same field: Z.ai's 1113 is an empty balance, and read as a status it was
151
+ * past 500, which skips the 4xx body patterns that name it quota and lands on
152
+ * overload. With no status stated, the error's type says which one it stands
153
+ * for (`STATUS_BY_TYPE`), and the body still outranks it (invariant 3).
154
+ *
149
155
  * `unknown` is floored to "overload" rather than kept: a stream that dies after
150
156
  * its headers is by construction a transient upstream fault, and "unknown" is
151
- * never retried. Everything the body does name keeps its own kind, which is
152
- * what tells the caller to wait, rotate a key, or compact instead of retrying
153
- * a failure that will repeat.
157
+ * never retried. Only an error with no status and no type it knows gets there.
158
+ * Before the type was read, one `invalid_request_error` in words no pattern
159
+ * knew was floored too: retried, then walked across every backup, cooling each
160
+ * for 30s, on a request that fails the same way everywhere. Everything the
161
+ * body does name keeps its own kind, which is what tells the caller to wait,
162
+ * rotate a key, or compact instead of retrying a failure that will repeat.
154
163
  */
155
164
  export declare function streamError(provider: string, error: unknown): ProviderError;
156
165
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAYA,OAAO,EAA+C,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,qEAAqE;AACrE,MAAM,MAAM,SAAS;AACnB,8DAA8D;AAC5D,SAAS;AACX,sDAAsD;GACpD,SAAS;AACX,8EAA8E;GAC5E,SAAS;AACX;sCACsC;GACpC,UAAU;AACZ,wEAAwE;GACtE,MAAM;AACR,0EAA0E;GACxE,OAAO;AACT,iFAAiF;GAC/E,aAAa;AACf,kDAAkD;GAChD,MAAM;AACR,yDAAyD;GACvD,OAAO;AACT,sEAAsE;GACpE,SAAS;AACX,gCAAgC;GAC9B,SAAS;AACX,4CAA4C;GAC1C,SAAS,GACT,SAAS,CAAC;AAyBd,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,OAAO,CAerE;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,uFAAuF;IACvF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;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,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACZ;IAeR,IAAI,WAAW,IAAI,OAAO,CAGzB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;iFAC6E;IAC7E,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa;CAe3D;AAwBD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAU9C;AAkFD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuBxD;AAmLD;;;;;;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,CA0BjF;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAqCjG;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAyB3E;AAkBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAMzD;AAED;mCACmC;AACnC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAe3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,aAAa,CAO5F"}
package/dist/errors.js CHANGED
@@ -292,6 +292,12 @@ const CONTEXT_PATTERNS = [
292
292
  // "input length and `max_tokens` exceed context limit: 188059 + 20000 > 200000"
293
293
  /input length and `?max_tokens`? exceed context limit/i,
294
294
  /exceed(?:s|ed)? (?:the )?context limit/i,
295
+ // GitHub Copilot: "prompt token count of 270000 exceeds the limit of 128000",
296
+ // code `model_max_prompt_tokens_exceeded`. No other wording here reads it,
297
+ // so it landed on `invalid` and the conversation never compacted. cc-proxy
298
+ // shipped the same two patterns for the same reason (0.1.51).
299
+ /model_max_prompt_tokens_exceeded/i,
300
+ /prompt token count of \d+ exceeds the limit/i,
295
301
  // Scoped to the thing that overflowed: a bare "exceeds the maximum" also
296
302
  // covers image counts and per-minute token rates, which compaction can't fix.
297
303
  /exceeds? the (?:model'?s? )?maximum (?:input |prompt |context )?(?:tokens?|length|context)/i,
@@ -592,6 +598,24 @@ export function parseContextOverflow(err, body) {
592
598
  }
593
599
  return undefined;
594
600
  }
601
+ /**
602
+ * The HTTP status an in-band error's type stands for when it states none:
603
+ * Anthropic's types, then OpenAI's, read from `type` and then from a slug
604
+ * `code`. cc-proxy's table. A Map, so a type named after an Object method
605
+ * finds nothing rather than a function.
606
+ */
607
+ const STATUS_BY_TYPE = new Map([
608
+ ["invalid_request_error", 400],
609
+ ["authentication_error", 401],
610
+ ["permission_error", 403],
611
+ ["not_found_error", 404],
612
+ ["request_too_large", 413],
613
+ ["rate_limit_error", 429],
614
+ ["api_error", 500],
615
+ ["server_error", 500],
616
+ ["internal_server_error", 500],
617
+ ["overloaded_error", 529],
618
+ ]);
595
619
  /**
596
620
  * A failure the backend reports INSIDE an already-200 stream.
597
621
  *
@@ -609,17 +633,32 @@ export function parseContextOverflow(err, body) {
609
633
  * `code`/`type`, the canonical `status` name. The whole thing serializes into
610
634
  * the searchable body, so RetryInfo's `retryDelay` is honoured wherever it sits.
611
635
  *
636
+ * A number is a status only from 400 to 599. Vendors put their own codes in
637
+ * the same field: Z.ai's 1113 is an empty balance, and read as a status it was
638
+ * past 500, which skips the 4xx body patterns that name it quota and lands on
639
+ * overload. With no status stated, the error's type says which one it stands
640
+ * for (`STATUS_BY_TYPE`), and the body still outranks it (invariant 3).
641
+ *
612
642
  * `unknown` is floored to "overload" rather than kept: a stream that dies after
613
643
  * its headers is by construction a transient upstream fault, and "unknown" is
614
- * never retried. Everything the body does name keeps its own kind, which is
615
- * what tells the caller to wait, rotate a key, or compact instead of retrying
616
- * a failure that will repeat.
644
+ * never retried. Only an error with no status and no type it knows gets there.
645
+ * Before the type was read, one `invalid_request_error` in words no pattern
646
+ * knew was floored too: retried, then walked across every backup, cooling each
647
+ * for 30s, on a request that fails the same way everywhere. Everything the
648
+ * body does name keeps its own kind, which is what tells the caller to wait,
649
+ * rotate a key, or compact instead of retrying a failure that will repeat.
617
650
  */
618
651
  export function streamError(provider, error) {
619
652
  const body = JSON.stringify(error ?? {}) ?? "";
620
- const status = readNumber(error, "code") ?? readNumber(error, "status") ?? readNumber(error, "status_code");
653
+ const status = [
654
+ readNumber(error, "code"),
655
+ readNumber(error, "status"),
656
+ readNumber(error, "status_code"),
657
+ ].find((value) => value !== undefined && value >= 400 && value < 600);
621
658
  const code = readString(error, "code") ?? readString(error, "status") ?? readString(error, "type");
622
- const kind = classifyHttp(status, body);
659
+ const typeStatus = STATUS_BY_TYPE.get(readString(error, "type") ?? "") ??
660
+ STATUS_BY_TYPE.get(readString(error, "code") ?? "");
661
+ const kind = classifyHttp(status ?? typeStatus, body);
623
662
  return new ProviderError(provider, kind === "unknown" ? "overload" : kind, `${provider} stream error: ${readString(error, "message") ?? code ?? "no reason given"}`, {
624
663
  ...(status !== undefined ? { status } : {}),
625
664
  ...(code ? { code } : {}),
@@ -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":"AAAA,uDAAuD;AACvD,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,4CAA4C;AAC5C,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,+EAA+E;AAC/E,2EAA2E;AAE3E,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAgCpG,qDAAqD;AACrD,MAAM,SAAS,GAA2B,IAAI,GAAG,CAAY;IAC3D,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;CACP,CAAC,CAAC;AAEH;qEACqE;AACrE,MAAM,eAAe,GAA2B,IAAI,GAAG,CAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAEzF,iEAAiE;AACjE,MAAM,mBAAmB,GAA2B,IAAI,GAAG,CAAY;IACrE,OAAO;IACP,SAAS;IACT,OAAO;IACP,aAAa;IACb,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,SAAS,GAAG,MAAM;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/B,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,WAAW,CAAC;QAC1D,IAAI,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,GAAG,SAAS;YAAE,OAAO,KAAK,CAAC;QACjF,OAAO,GAAG,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAI,kBAAkB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,QAAQ,CAAS;IACjB,IAAI,CAAY;IAChB,MAAM,CAAU;IAChB,IAAI,CAAU;IACvB;0CACsC;IAC7B,YAAY,CAAU;IAC/B,2EAA2E;IAClE,SAAS,CAAU;IACnB,MAAM,CAAmB;IAClC,uFAAuF;IAC9E,WAAW,CAAW;IAC/B;6DACyD;IAChD,IAAI,CAAU;IAEvB,YACE,QAAgB,EAChB,IAAe,EACf,OAAe,EACf,OASI,EAAE;QAEN,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5D,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;iFAC6E;IAC7E,MAAM,CAAC,IAAI,CAAC,QAAgB,EAAE,GAAY;QACxC,IAAI,GAAG,YAAY,aAAa;YAAE,OAAO,GAAG,CAAC;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE;YACvE,MAAM;YACN,IAAI;YACJ,YAAY,EAAE,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC;YAC1C,GAAG,mBAAmB,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,SAAS;YACvC,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAED,6EAA6E;AAE7E,SAAS,UAAU,CAAC,GAAY,EAAE,GAAW;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,KAAK,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,GAAY,EAAE,GAAW;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,KAAK,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,GAAY;IAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAC5D,MAAM,IAAI,GAAI,GAA+B,CAAC,KAAK,CAAC;IACpD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,GAAG,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,6EAA6E;AAE7E;mEACmE;AACnE,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,YAAY;IACZ,cAAc;IACd,cAAc;IACd,WAAW;IACX,OAAO;IACP,aAAa;IACb,UAAU;IACV,WAAW;IACX,cAAc;IACd,WAAW;IACX,4BAA4B;IAC5B,oEAAoE;IACpE,iCAAiC;IACjC,2BAA2B;IAC3B,mCAAmC;IACnC,wBAAwB;IACxB,kBAAkB;IAClB,oBAAoB;IACpB,6BAA6B;IAC7B,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,8BAA8B;CAC/B,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,kBAAkB,GACtB,gRAAgR,CAAC;AAEnR,6DAA6D;AAC7D,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,SAAS,OAAO,CAAC,GAAY;IAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/F,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IACtD,IAAI,GAAG,EAAE,CAAC;QACR,IACE,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACrC,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACxC,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACvC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC1C,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAC3C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QACpE,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,2BAA2B;YAAE,OAAO,IAAI,CAAC;QACvF,IAAI,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,OAAO,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3E,OAAO,GAAI,OAA+B,CAAC,KAAK,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAE7E,6EAA6E;AAC7E,+EAA+E;AAC/E,0DAA0D;AAC1D,MAAM,gBAAgB,GAAsB;IAC1C,kCAAkC;IAClC,yBAAyB;IACzB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,6BAA6B;IAC7B,qDAAqD;IACrD,6EAA6E;IAC7E,gFAAgF;IAChF,uDAAuD;IACvD,yCAAyC;IACzC,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,8DAA8D;IAC9D,mCAAmC;IACnC,8CAA8C;IAC9C,yEAAyE;IACzE,8EAA8E;IAC9E,6FAA6F;CAC9F,CAAC;AAEF,6EAA6E;AAC7E,4EAA4E;AAC5E,kCAAkC;AAClC,MAAM,oBAAoB,GAAsB;IAC9C,4CAA4C;IAC5C,4CAA4C;IAC5C,2CAA2C;IAC3C,6CAA6C;IAC7C,gCAAgC;IAChC,6BAA6B;IAC7B,qBAAqB;IACrB,gBAAgB;IAChB,sEAAsE;IACtE,wEAAwE;IACxE,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,cAAc,GAAsB;IACxC,yBAAyB;IACzB,8BAA8B;IAC9B,oCAAoC;IACpC,4BAA4B;IAC5B,4BAA4B;IAC5B,gCAAgC;IAChC,sCAAsC;IACtC,yCAAyC;IACzC,oDAAoD;IACpD,4CAA4C;IAC5C,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,0DAA0D;IAC1D,8BAA8B;IAC9B,+BAA+B;IAC/B,uBAAuB;IACvB,oBAAoB;IACpB,8DAA8D;IAC9D,sDAAsD;IACtD,0EAA0E;IAC1E,6EAA6E;IAC7E,gBAAgB;IAChB,yCAAyC;IACzC,eAAe;IACf,MAAM;IACN,IAAI;IACJ,cAAc;CACf,CAAC;AAEF,MAAM,cAAc,GAAsB;IACxC,sEAAsE;IACtE,iBAAiB;IACjB,oBAAoB;IACpB,sEAAsE;IACtE,4EAA4E;IAC5E,uCAAuC;IACvC,+DAA+D;IAC/D,wDAAwD;IACxD,gCAAgC;IAChC,yEAAyE;IACzE,gBAAgB;IAChB,kEAAkE;IAClE,0BAA0B;CAC3B,CAAC;AAEF,MAAM,aAAa,GAAsB;IACvC,6DAA6D;IAC7D,uDAAuD;IACvD,iDAAiD;IACjD,8CAA8C;IAC9C,oDAAoD;IACpD,iEAAiE;IACjE,qBAAqB;IACrB,2EAA2E;IAC3E,8DAA8D;IAC9D,oBAAoB;IACpB,+BAA+B;IAC/B,sEAAsE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,4CAA4C;CAC7C,CAAC;AAEF,MAAM,gBAAgB,GAAsB;IAC1C,qBAAqB;IACrB,iBAAiB;IACjB,mBAAmB;IACnB,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,sDAAsD;IACtD,oBAAoB;IACpB,qBAAqB;IACrB,sCAAsC;IACtC,yCAAyC;IACzC,2BAA2B;IAC3B,sCAAsC;IACtC,sCAAsC;IACtC,0BAA0B;CAC3B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAsB;IACvC,mBAAmB;IACnB,0EAA0E;IAC1E,yEAAyE;IACzE,gCAAgC;IAChC,2EAA2E;IAC3E,uEAAuE;IACvE,4CAA4C;IAC5C,0BAA0B;IAC1B,0EAA0E;IAC1E,2BAA2B;IAC3B,sBAAsB;IACtB,4EAA4E;IAC5E,2DAA2D;IAC3D,wDAAwD;CACzD,CAAC;AAEF;iEACiE;AACjE,MAAM,iBAAiB,GAAsB;IAC3C,8BAA8B;IAC9B,6BAA6B;IAC7B,iBAAiB;IACjB,2EAA2E;IAC3E,+CAA+C;IAC/C,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,oBAAoB;IACpB,0EAA0E;IAC1E,mCAAmC;CACpC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,QAA2B,EAAE,IAAY,EAAW,EAAE,CACrE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjD;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B,EAAE,IAAY;IACnE,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY,EAAE,MAAe,EAAE,IAAa;IACnE,8EAA8E;IAC9E,8EAA8E;IAC9E,EAAE;IACF,2EAA2E;IAC3E,4EAA4E;IAC5E,sEAAsE;IACtE,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,GAAG,YAAY,aAAa;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,kBAAkB,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9C,MAAM,IAAI,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAErC,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IAE9D,qEAAqE;IACrE,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,GAAG,CAAC;IACrD,IAAI,WAAW,IAAI,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,IAAI,WAAW,IAAI,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IAC7E,IAAI,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IACjE,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAChF,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;IACjC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;IACjC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,uEAAuE;IACvE,iEAAiE;IACjE,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,UAAU,CAAC;IACpE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,UAAU,CAAC;IACzD,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IACxD,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAa;IAC3D,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAClG,MAAM,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC1E,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,OAAO,GAAI,GAA6B,CAAC,OAAO,CAAC;IACvD,MAAM,KAAK,GACT,OAAO,YAAY,OAAO;QACxB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC5B,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAC/C,CAAC,CAAE,OAAmC,CAAC,aAAa,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;IAClB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,OAAO,GAAG,IAAI,CAAC;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY,EAAE,IAAa;IAC9D,MAAM,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,qGAAqG;IACrG,MAAM,EAAE,GACN,yHAAyH,CAAC,IAAI,CAC5H,IAAI,CACL,CAAC;IACJ,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,KAAK,GAAG,GAAG,GAAG,KAAK;SAClC,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,MAAM,EAAE,GACN,+HAA+H,CAAC,IAAI,CAClI,IAAI,CACL,CAAC;IACJ,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,MAAM,GAAG,KAAK;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,cAAc,GAAgC,IAAI,GAAG,CAAC;IAC1D,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAC7B,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,iBAAiB,EAAE,GAAG,CAAC;IACxB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,kBAAkB,EAAE,GAAG,CAAC;IACzB,CAAC,WAAW,EAAE,GAAG,CAAC;IAClB,CAAC,cAAc,EAAE,GAAG,CAAC;IACrB,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAC9B,CAAC,kBAAkB,EAAE,GAAG,CAAC;CAC1B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAc;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG;QACb,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC3B,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC;KACjC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC;IACtE,MAAM,IAAI,GACR,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,UAAU,GACd,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACnD,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,IAAI,aAAa,CACtB,QAAQ,EACR,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EACtC,GAAG,QAAQ,kBAAkB,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,iBAAiB,EAAE,EACxF;QACE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,YAAY,EAAE,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC;QAC5C,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;KAC3B,CACF,CAAC;AACJ,CAAC;AAED;;0DAE0D;AAC1D,SAAS,SAAS,CAAC,KAAc,EAAE,IAAY;IAC7C,MAAM,GAAG,GACP,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QACzC,CAAC,CAAE,KAA+B,CAAC,OAAO;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,OAAO,IAAI,aAAa,CACtB,QAAQ,EACR,SAAS,EACT,GAAG,QAAQ,wCAAwC,CACpD,CAAC;AACJ,CAAC;AAED;mCACmC;AACnC,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,GAAG,CAAC,OAAO;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,OAAe,EAAE,IAAc;IAC3E,OAAO,IAAI,aAAa,CACtB,QAAQ,EACR,SAAS,EACT,GAAG,QAAQ,SAAS,OAAO,+BAA+B,IAAI,CAAC,QAAQ,qBAAqB;QAC1F,kFAAkF,CACrF,CAAC;AACJ,CAAC"}
@@ -18,6 +18,20 @@ export interface FallbackOptions<T> {
18
18
  retryAtMs: number;
19
19
  window?: RateLimitWindow;
20
20
  }) => void;
21
+ /** Where cooldowns live; a private Map when omitted. Hand one store to every
22
+ * pool that holds the same candidate and a lockout learned in one chain
23
+ * benches it in all of them, instead of each chain spending a call to find
24
+ * the same weekly wall. Pools sharing a store must share `cooldownMs` too: a
25
+ * bench set by one pool is honoured by the others, so a kind one of them
26
+ * turned off (`null`) would still divert its calls whenever another pool
27
+ * benched the candidate for it. */
28
+ cooldowns?: CooldownStore<T>;
29
+ /** How long a recovery probe may go without a first chunk before another
30
+ * call may replace it. A probe that hung used to hold its candidate out of
31
+ * service for good. Defaults to the watchdog's progress clock
32
+ * (`STREAM_PROGRESS_MS`): a call silent that long is one the watchdog
33
+ * would already have killed. */
34
+ probeStaleMs?: number;
21
35
  /** Inject a clock for deterministic tests. */
22
36
  now?: () => number;
23
37
  }
@@ -49,6 +63,27 @@ export interface ProviderFallbackConfig {
49
63
  * for the whole chain. The distinction is what lets silence rotate safely.
50
64
  */
51
65
  export declare function withConfiguredFallbacks(primary: Provider, config?: ProviderFallbackConfig): Provider;
66
+ /** One candidate's bench, as a pool records it. */
67
+ export interface Cooldown {
68
+ retryAtMs: number;
69
+ kind: ErrorKind;
70
+ window?: RateLimitWindow;
71
+ /** The one call let through once the bench expired. Only that call clears
72
+ * it, and `settled` resolves at its first chunk or its end. */
73
+ probe?: {
74
+ since: number;
75
+ settled: Promise<void>;
76
+ settle(): void;
77
+ };
78
+ }
79
+ /** Where a pool keeps its benches. A `Map` fits, and so does a `WeakMap` keyed
80
+ * by providers, which lets a bench go when its provider does. `get` must
81
+ * return the very object `set` was given: the probe is tracked on it. */
82
+ export interface CooldownStore<T> {
83
+ get(candidate: T): Cooldown | undefined;
84
+ set(candidate: T, cooldown: Cooldown): void;
85
+ delete(candidate: T): unknown;
86
+ }
52
87
  /** The whole chain is unavailable. Fail promptly instead of holding a request
53
88
  * open for hours. `retryAtMs` names its next opportunity, not a sleep to cap. */
54
89
  export declare class NoAvailableProviderError extends ProviderError {
@@ -63,10 +98,12 @@ export declare class FallbackPool<T> {
63
98
  private readonly options;
64
99
  private readonly candidates;
65
100
  private readonly cooldowns;
101
+ private readonly probeStaleMs;
66
102
  private readonly now;
67
103
  constructor(candidates: readonly T[], options?: FallbackOptions<T>);
68
104
  /** Clear a cooldown after replacing a key or fixing configuration. Omit the
69
- * candidate to clear all. Does not interrupt calls already in flight. */
105
+ * candidate to clear all of this pool's own; a shared store keeps the benches
106
+ * of candidates only other pools hold. Does not interrupt calls in flight. */
70
107
  reset(...selection: [] | [T]): void;
71
108
  status(): Array<{
72
109
  candidate: T;
@@ -80,6 +117,13 @@ export declare class FallbackPool<T> {
80
117
  /** Only a pre-output failure can switch provider. A later failure still
81
118
  * cools the endpoint for FUTURE calls but never restarts the current answer. */
82
119
  stream<R>(attempt: (candidate: T, signal: AbortSignal) => AsyncIterable<R>, signal?: AbortSignal): AsyncGenerator<R>;
120
+ /** An answer proves the candidate serves again. It lifts the bench this call
121
+ * was admitted under as the probe, and any bench a sibling set while it ran:
122
+ * a call that started before one stray 401 and then answered used to leave
123
+ * a busy primary benched for an hour. Rate and quota stay. A call that
124
+ * started before the throttle proves nothing about the window, and lifting
125
+ * it walks every caller back into the 429. */
126
+ private recovered;
83
127
  }
84
128
  export interface FallbackProvider extends Provider {
85
129
  readonly fallbacks: FallbackPool<Provider>;
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"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"}