llm-retry-kit 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,8 @@
1
- export { BudgetExceededError, llmRetry, LLMRetryError } from './retry.js';
1
+ export { CircuitBreaker, CircuitBreakerOpenError } from './circuit-breaker.js';
2
+ export { BudgetExceededError, llmRetry, LLMRetryError, ProviderTimeoutError } from './retry.js';
3
+ export { llmRetryStream } from './stream.js';
2
4
  export { BudgetTracker } from './budget.js';
5
+ export { GlobalBudgetTracker } from './global-budget.js';
6
+ export { AdaptiveHedgeDelay } from './hedging.js';
3
7
  export { calculateBackoff, extractRetryAfter, isRetryableError } from './backoff.js';
4
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9E,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA"}
package/dist/retry.d.ts CHANGED
@@ -15,4 +15,8 @@ export declare class BudgetExceededError extends Error {
15
15
  readonly limitUSD: number | null;
16
16
  constructor(spentUSD: number, limitUSD: number | null);
17
17
  }
18
+ export declare class ProviderTimeoutError extends Error {
19
+ readonly timeoutMs: number;
20
+ constructor(timeoutMs: number);
21
+ }
18
22
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAMV,YAAY,EAEZ,WAAW,EAGZ,MAAM,YAAY,CAAA;AAEnB,wBAAsB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAyKnF;AAyMD,qBAAa,aAAc,SAAQ,KAAK;aAGpB,YAAY,EAAE,KAAK,GAAG,IAAI;aAC1B,aAAa,EAAE,KAAK,GAAG,IAAI;aAC3B,YAAY,EAAE,MAAM;aACpB,WAAW,EAAE,MAAM;aACnB,QAAQ;aACR,SAAS,EAAE,MAAM,EAAE;aACnB,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS;gBAPjE,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,KAAK,GAAG,IAAI,EAC1B,aAAa,EAAE,KAAK,GAAG,IAAI,EAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,SAAI,EACZ,SAAS,GAAE,MAAM,EAAO,EACxB,MAAM,GAAE,SAAS,GAAG,iBAAiB,GAAG,SAAqB;CAKhF;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,QAAQ,EAAE,MAAM;aAChB,QAAQ,EAAE,MAAM,GAAG,IAAI;gBADvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,IAAI;CAM1C"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAQV,YAAY,EAEZ,WAAW,EAGZ,MAAM,YAAY,CAAA;AAUnB,wBAAsB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CA0OnF;AAkfD,qBAAa,aAAc,SAAQ,KAAK;aAGpB,YAAY,EAAE,KAAK,GAAG,IAAI;aAC1B,aAAa,EAAE,KAAK,GAAG,IAAI;aAC3B,YAAY,EAAE,MAAM;aACpB,WAAW,EAAE,MAAM;aACnB,QAAQ;aACR,SAAS,EAAE,MAAM,EAAE;aACnB,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS;gBAPjE,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,KAAK,GAAG,IAAI,EAC1B,aAAa,EAAE,KAAK,GAAG,IAAI,EAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,SAAI,EACZ,SAAS,GAAE,MAAM,EAAO,EACxB,MAAM,GAAE,SAAS,GAAG,iBAAiB,GAAG,SAAqB;CAKhF;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,QAAQ,EAAE,MAAM;aAChB,QAAQ,EAAE,MAAM,GAAG,IAAI;gBADvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,IAAI;CAM1C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aACjB,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAI9C"}
package/dist/retry.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import { calculateBackoff, createAbortError, extractRetryAfter, isRetryableError, sleep, } from './backoff.js';
2
2
  import { BudgetTracker } from './budget.js';
3
+ import { CircuitBreakerOpenError } from './circuit-breaker.js';
4
+ const failureAlreadyRecorded = Symbol('llmRetry.failureAlreadyRecorded');
3
5
  export async function llmRetry(options) {
4
- const { maxRetries = 3, maxCostUSD, costPer1kTokens = 0.002, initialDelayMs = 1000, maxDelayMs = 30000, timeoutMs, signal, shouldRetry, shouldFallback, onAttempt, onRetry, onSuccess, onFailure, onBudgetExceeded, } = options;
5
- validateOptions({ maxRetries, initialDelayMs, maxDelayMs, timeoutMs });
6
+ const { maxRetries = 3, maxCostUSD, globalBudget, costPer1kTokens = 0.002, initialDelayMs = 1000, maxDelayMs = 30000, timeoutMs, hedgeDelayMs, hedgeDelayStrategy, signal, meta, payload, shouldRetry, shouldFallback, onAttempt, onRetry, onSuccess, onFailure, onBudgetExceeded, } = options;
7
+ validateOptions({ maxRetries, initialDelayMs, maxDelayMs, timeoutMs, hedgeDelayMs });
6
8
  const providers = normalizeProviders(options, maxRetries);
9
+ validateProviders(providers);
7
10
  const startedAt = Date.now();
8
11
  const budget = new BudgetTracker(costPer1kTokens, maxCostUSD);
9
12
  const runtimeSignal = createRuntimeSignal(signal, timeoutMs);
@@ -17,46 +20,84 @@ export async function llmRetry(options) {
17
20
  const provider = providers[providerIndex];
18
21
  const providerMaxRetries = provider.maxRetries ?? maxRetries;
19
22
  let providerShouldFallback = false;
23
+ if (provider.circuitBreaker && !provider.circuitBreaker.canRequest()) {
24
+ const err = new CircuitBreakerOpenError(provider.name);
25
+ lastError = err;
26
+ if (providerIndex === 0) {
27
+ primaryError = err;
28
+ }
29
+ else {
30
+ fallbackError = err;
31
+ }
32
+ if (providerIndex < providers.length - 1) {
33
+ continue;
34
+ }
35
+ break;
36
+ }
20
37
  for (let retryAttempt = 0; retryAttempt <= providerMaxRetries; retryAttempt++) {
21
38
  if (runtimeSignal.signal?.aborted) {
22
39
  throw createAbortError();
23
40
  }
24
- if (budget.isExceeded()) {
25
- budgetExceededNotified = notifyBudgetExceeded(budget.spent, budget.limit, onBudgetExceeded, budgetExceededNotified);
26
- throw new BudgetExceededError(budget.spent, budget.limit);
41
+ const exceededBudget = getExceededBudget(budget, globalBudget);
42
+ if (exceededBudget) {
43
+ budgetExceededNotified = notifyBudgetExceeded(exceededBudget.spent, exceededBudget.limit, onBudgetExceeded, budgetExceededNotified);
44
+ throw new BudgetExceededError(exceededBudget.spent, exceededBudget.limit);
27
45
  }
28
46
  attempts += 1;
47
+ const attemptSignal = createAttemptSignal(runtimeSignal.signal, provider.timeoutMs);
29
48
  const context = createAttemptContext({
30
49
  attempt: attempts,
31
50
  retryAttempt,
32
51
  provider,
33
52
  providerIndex,
34
53
  startedAt,
35
- signal: runtimeSignal.signal,
54
+ signal: attemptSignal.signal,
36
55
  lastError,
56
+ meta,
57
+ payload,
37
58
  });
38
59
  onAttempt?.(context);
39
60
  try {
40
- const response = await runWithAbort(provider.fn(context), runtimeSignal.signal);
41
- const costUSD = trackUsage({
42
- response,
61
+ const response = await runProviderAttempt({
62
+ providers,
63
+ providerIndex,
43
64
  context,
44
- provider,
65
+ runtimeSignal: runtimeSignal.signal,
66
+ attemptSignal,
67
+ retryAttempt,
68
+ startedAt,
69
+ lastError,
70
+ meta,
71
+ payload,
72
+ hedgeDelayMs,
73
+ hedgeDelayStrategy,
74
+ nextAttemptNumber: () => {
75
+ attempts += 1;
76
+ return attempts;
77
+ },
78
+ onAttempt,
79
+ });
80
+ const costUSD = trackUsage({
81
+ response: response.response,
82
+ context: response.context,
83
+ provider: response.provider,
45
84
  defaultCostPer1kTokens: costPer1kTokens,
46
85
  defaultCostCalculator: options.costCalculator,
47
86
  budget,
87
+ globalBudget,
48
88
  });
89
+ response.provider.circuitBreaker?.recordSuccess();
49
90
  onSuccess?.({
50
- ...context,
91
+ ...response.context,
51
92
  costUSD,
52
93
  totalCostUSD: budget.spent,
53
94
  totalTokens: budget.tokens,
54
95
  });
55
96
  return {
56
- data: response.data,
97
+ data: response.response.data,
57
98
  attempts,
58
- provider: provider.name,
59
- usedFallback: providerIndex > 0,
99
+ provider: response.provider.name,
100
+ usedFallback: response.providerIndex > 0,
60
101
  totalCostUSD: budget.spent,
61
102
  totalTokens: budget.tokens,
62
103
  };
@@ -64,6 +105,9 @@ export async function llmRetry(options) {
64
105
  catch (error) {
65
106
  const err = error instanceof Error ? error : new Error(String(error));
66
107
  lastError = err;
108
+ if (!hasFailureAlreadyRecorded(err)) {
109
+ provider.circuitBreaker?.recordFailure();
110
+ }
67
111
  if (providerIndex === 0) {
68
112
  primaryError = err;
69
113
  }
@@ -97,6 +141,9 @@ export async function llmRetry(options) {
97
141
  onRetry?.(attempts, err, delay, decisionContext);
98
142
  await sleep(delay, runtimeSignal.signal);
99
143
  }
144
+ finally {
145
+ attemptSignal.cleanup();
146
+ }
100
147
  }
101
148
  if (providerIndex < providers.length - 1 && !providerShouldFallback) {
102
149
  break;
@@ -105,13 +152,23 @@ export async function llmRetry(options) {
105
152
  if (budget.isExceeded()) {
106
153
  budgetExceededNotified = notifyBudgetExceeded(budget.spent, budget.limit, onBudgetExceeded, budgetExceededNotified);
107
154
  }
108
- throw new Error(lastError?.message ?? 'No provider returned a successful response');
155
+ if (lastError) {
156
+ throw lastError;
157
+ }
158
+ throw new Error('No provider returned a successful response');
109
159
  }
110
160
  catch (error) {
111
161
  const err = error instanceof Error ? error : new Error(String(error));
112
162
  const reason = getFailureReason(err);
113
163
  const retryError = new LLMRetryError(`LLM call failed after ${attempts} attempt${attempts === 1 ? '' : 's'}: ${err.message}`, primaryError ?? lastError, fallbackError, budget.spent, budget.tokens, attempts, providers.map((provider) => provider.name), reason);
114
- onFailure?.(retryError);
164
+ onFailure?.(retryError, {
165
+ attempts,
166
+ totalCostUSD: budget.spent,
167
+ totalTokens: budget.tokens,
168
+ providers: providers.map((provider) => provider.name),
169
+ meta,
170
+ payload,
171
+ });
115
172
  throw retryError;
116
173
  }
117
174
  finally {
@@ -160,8 +217,159 @@ function createAttemptContext(options) {
160
217
  elapsedMs: Date.now() - options.startedAt,
161
218
  signal: options.signal,
162
219
  lastError: options.lastError ?? undefined,
220
+ meta: options.meta,
221
+ payload: options.payload,
163
222
  };
164
223
  }
224
+ async function runProviderAttempt(options) {
225
+ const provider = options.providers[options.providerIndex];
226
+ const hedgeDelayStrategy = provider.hedgeDelayStrategy ?? options.hedgeDelayStrategy;
227
+ const hedgeDelayMs = resolveHedgeDelayMs(provider.hedgeDelayMs ?? options.hedgeDelayMs, hedgeDelayStrategy, options.context);
228
+ const nextProvider = options.providers[options.providerIndex + 1];
229
+ if (options.retryAttempt === 0 &&
230
+ hedgeDelayMs !== undefined &&
231
+ nextProvider &&
232
+ (!nextProvider.circuitBreaker || nextProvider.circuitBreaker.canRequest())) {
233
+ return runHedgedAttempt({
234
+ ...options,
235
+ provider,
236
+ hedgeProvider: nextProvider,
237
+ hedgeProviderIndex: options.providerIndex + 1,
238
+ hedgeDelayMs,
239
+ hedgeDelayStrategy,
240
+ });
241
+ }
242
+ const startedAt = Date.now();
243
+ try {
244
+ const response = await runWithAbort(provider.fn(options.context), options.attemptSignal.signal);
245
+ hedgeDelayStrategy?.recordLatency({
246
+ provider: provider.name,
247
+ providerIndex: options.providerIndex,
248
+ latencyMs: Date.now() - startedAt,
249
+ outcome: 'success',
250
+ hedged: false,
251
+ });
252
+ return {
253
+ response,
254
+ provider,
255
+ providerIndex: options.providerIndex,
256
+ context: options.context,
257
+ };
258
+ }
259
+ catch (error) {
260
+ hedgeDelayStrategy?.recordLatency({
261
+ provider: provider.name,
262
+ providerIndex: options.providerIndex,
263
+ latencyMs: Date.now() - startedAt,
264
+ outcome: 'failure',
265
+ hedged: false,
266
+ });
267
+ throw error;
268
+ }
269
+ }
270
+ function resolveHedgeDelayMs(fixedDelayMs, strategy, context) {
271
+ const delayMs = fixedDelayMs ?? strategy?.getDelayMs(context);
272
+ if (delayMs === null || delayMs === undefined) {
273
+ return undefined;
274
+ }
275
+ return Number.isFinite(delayMs) && delayMs >= 0 ? delayMs : undefined;
276
+ }
277
+ function runHedgedAttempt(options) {
278
+ return new Promise((resolve, reject) => {
279
+ let done = false;
280
+ let pending = 1;
281
+ let hedgeTimeout = null;
282
+ let hedgeSignal = null;
283
+ let lastFailure = null;
284
+ const primaryStartedAt = Date.now();
285
+ let hedgeStartedAt = 0;
286
+ const cleanup = () => {
287
+ if (hedgeTimeout) {
288
+ clearTimeout(hedgeTimeout);
289
+ }
290
+ hedgeSignal?.cleanup();
291
+ };
292
+ const succeed = (result) => {
293
+ if (done)
294
+ return;
295
+ done = true;
296
+ options.hedgeDelayStrategy?.recordLatency({
297
+ provider: result.provider.name,
298
+ providerIndex: result.providerIndex,
299
+ latencyMs: Date.now() - (result.providerIndex === options.providerIndex ? primaryStartedAt : hedgeStartedAt),
300
+ outcome: 'success',
301
+ hedged: true,
302
+ });
303
+ if (result.providerIndex === options.providerIndex) {
304
+ hedgeSignal?.abort();
305
+ }
306
+ else {
307
+ options.attemptSignal.abort();
308
+ }
309
+ cleanup();
310
+ resolve(result);
311
+ };
312
+ const fail = (error, provider) => {
313
+ if (done)
314
+ return;
315
+ const err = markFailureAlreadyRecorded(error instanceof Error ? error : new Error(String(error)));
316
+ lastFailure = err;
317
+ options.hedgeDelayStrategy?.recordLatency({
318
+ provider: provider.name,
319
+ providerIndex: provider === options.provider ? options.providerIndex : options.hedgeProviderIndex,
320
+ latencyMs: Date.now() - (provider === options.provider ? primaryStartedAt : hedgeStartedAt),
321
+ outcome: 'failure',
322
+ hedged: true,
323
+ });
324
+ provider.circuitBreaker?.recordFailure();
325
+ pending -= 1;
326
+ if (pending === 0) {
327
+ done = true;
328
+ cleanup();
329
+ reject(lastFailure);
330
+ }
331
+ };
332
+ runWithAbort(options.provider.fn(options.context), options.attemptSignal.signal).then((response) => succeed({
333
+ response,
334
+ provider: options.provider,
335
+ providerIndex: options.providerIndex,
336
+ context: options.context,
337
+ }), (error) => fail(error, options.provider));
338
+ hedgeTimeout = setTimeout(() => {
339
+ if (done)
340
+ return;
341
+ pending += 1;
342
+ hedgeStartedAt = Date.now();
343
+ hedgeSignal = createAttemptSignal(options.runtimeSignal, options.hedgeProvider.timeoutMs);
344
+ const hedgeContext = createAttemptContext({
345
+ attempt: options.nextAttemptNumber(),
346
+ retryAttempt: 0,
347
+ provider: options.hedgeProvider,
348
+ providerIndex: options.hedgeProviderIndex,
349
+ startedAt: options.startedAt,
350
+ signal: hedgeSignal.signal,
351
+ lastError: options.lastError,
352
+ meta: options.meta,
353
+ payload: options.payload,
354
+ });
355
+ options.onAttempt?.(hedgeContext);
356
+ runWithAbort(options.hedgeProvider.fn(hedgeContext), hedgeSignal.signal).then((response) => succeed({
357
+ response,
358
+ provider: options.hedgeProvider,
359
+ providerIndex: options.hedgeProviderIndex,
360
+ context: hedgeContext,
361
+ }), (error) => fail(error, options.hedgeProvider));
362
+ }, options.hedgeDelayMs);
363
+ });
364
+ }
365
+ function markFailureAlreadyRecorded(error) {
366
+ const err = error;
367
+ err[failureAlreadyRecorded] = true;
368
+ return err;
369
+ }
370
+ function hasFailureAlreadyRecorded(error) {
371
+ return Boolean(error[failureAlreadyRecorded]);
372
+ }
165
373
  async function shouldRetryAttempt(options) {
166
374
  if (options.error.name === 'AbortError') {
167
375
  return false;
@@ -199,8 +407,18 @@ function trackUsage(options) {
199
407
  ? calculator(usage, options.context)
200
408
  : calculateDefaultCost(usage, options.provider.costPer1kTokens ?? options.defaultCostPer1kTokens);
201
409
  options.budget.add(usage, costUSD);
410
+ options.globalBudget?.add(costUSD);
202
411
  return costUSD;
203
412
  }
413
+ function getExceededBudget(budget, globalBudget) {
414
+ if (budget.isExceeded()) {
415
+ return { spent: budget.spent, limit: budget.limit };
416
+ }
417
+ if (globalBudget?.isExceeded()) {
418
+ return { spent: globalBudget.spent, limit: globalBudget.limit };
419
+ }
420
+ return null;
421
+ }
204
422
  function calculateDefaultCost(usage, costPer1kTokens) {
205
423
  return (usage.totalTokens / 1000) * costPer1kTokens;
206
424
  }
@@ -209,10 +427,10 @@ function runWithAbort(promise, signal) {
209
427
  return promise;
210
428
  }
211
429
  if (signal.aborted) {
212
- return Promise.reject(createAbortError());
430
+ return Promise.reject(getAbortReason(signal));
213
431
  }
214
432
  return new Promise((resolve, reject) => {
215
- const abort = () => reject(createAbortError());
433
+ const abort = () => reject(getAbortReason(signal));
216
434
  signal.addEventListener('abort', abort, { once: true });
217
435
  promise.then((value) => {
218
436
  signal.removeEventListener('abort', abort);
@@ -223,13 +441,31 @@ function runWithAbort(promise, signal) {
223
441
  });
224
442
  });
225
443
  }
444
+ function createAttemptSignal(parentSignal, timeoutMs) {
445
+ const controller = new AbortController();
446
+ const timeout = timeoutMs === undefined
447
+ ? null
448
+ : setTimeout(() => controller.abort(new ProviderTimeoutError(timeoutMs)), timeoutMs);
449
+ const abortFromParent = () => controller.abort(getAbortReason(parentSignal));
450
+ parentSignal?.addEventListener('abort', abortFromParent, { once: true });
451
+ return {
452
+ signal: controller.signal,
453
+ abort: () => controller.abort(createAbortError()),
454
+ cleanup: () => {
455
+ if (timeout) {
456
+ clearTimeout(timeout);
457
+ }
458
+ parentSignal?.removeEventListener('abort', abortFromParent);
459
+ },
460
+ };
461
+ }
226
462
  function createRuntimeSignal(signal, timeoutMs) {
227
463
  if (timeoutMs === undefined) {
228
464
  return { signal, cleanup: () => undefined };
229
465
  }
230
466
  const controller = new AbortController();
231
- const timeout = setTimeout(() => controller.abort(), timeoutMs);
232
- const abortFromParent = () => controller.abort();
467
+ const timeout = setTimeout(() => controller.abort(createAbortError()), timeoutMs);
468
+ const abortFromParent = () => controller.abort(getAbortReason(signal));
233
469
  signal?.addEventListener('abort', abortFromParent, { once: true });
234
470
  return {
235
471
  signal: controller.signal,
@@ -239,6 +475,10 @@ function createRuntimeSignal(signal, timeoutMs) {
239
475
  },
240
476
  };
241
477
  }
478
+ function getAbortReason(signal) {
479
+ const reason = signal?.reason;
480
+ return reason instanceof Error ? reason : createAbortError();
481
+ }
242
482
  function notifyBudgetExceeded(spentUSD, limitUSD, callback, alreadyNotified) {
243
483
  if (!alreadyNotified && limitUSD !== null) {
244
484
  callback?.(spentUSD, limitUSD);
@@ -276,6 +516,14 @@ export class BudgetExceededError extends Error {
276
516
  this.name = 'BudgetExceededError';
277
517
  }
278
518
  }
519
+ export class ProviderTimeoutError extends Error {
520
+ timeoutMs;
521
+ constructor(timeoutMs) {
522
+ super(`Provider timed out after ${timeoutMs}ms`);
523
+ this.timeoutMs = timeoutMs;
524
+ this.name = 'TimeoutError';
525
+ }
526
+ }
279
527
  function getFailureReason(error) {
280
528
  if (error instanceof BudgetExceededError) {
281
529
  return 'budget_exceeded';
@@ -301,5 +549,18 @@ function validateOptions(options) {
301
549
  if (options.timeoutMs !== undefined && options.timeoutMs < 0) {
302
550
  throw new Error('timeoutMs must be greater than or equal to 0');
303
551
  }
552
+ if (options.hedgeDelayMs !== undefined && options.hedgeDelayMs < 0) {
553
+ throw new Error('hedgeDelayMs must be greater than or equal to 0');
554
+ }
555
+ }
556
+ function validateProviders(providers) {
557
+ providers.forEach((provider) => {
558
+ if (provider.timeoutMs !== undefined && provider.timeoutMs < 0) {
559
+ throw new Error(`timeoutMs for provider "${provider.name}" must be greater than or equal to 0`);
560
+ }
561
+ if (provider.hedgeDelayMs !== undefined && provider.hedgeDelayMs < 0) {
562
+ throw new Error(`hedgeDelayMs for provider "${provider.name}" must be greater than or equal to 0`);
563
+ }
564
+ });
304
565
  }
305
566
  //# sourceMappingURL=retry.js.map
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { StreamRetryOptions, StreamRetryResult } from './types.js';
2
+ export declare function llmRetryStream<TChunk>(options: StreamRetryOptions<TChunk>): StreamRetryResult<TChunk>;
3
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EASV,kBAAkB,EAElB,iBAAiB,EAGlB,MAAM,YAAY,CAAA;AAMnB,wBAAgB,cAAc,CAAC,MAAM,EACnC,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAClC,iBAAiB,CAAC,MAAM,CAAC,CAc3B"}