@falai/agent 2.4.3 → 2.5.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 (96) hide show
  1. package/dist/cjs/core/ToolLoopExecutor.d.ts +11 -0
  2. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
  3. package/dist/cjs/core/ToolLoopExecutor.js +75 -51
  4. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
  5. package/dist/cjs/index.d.ts +3 -0
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +4 -2
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  10. package/dist/cjs/providers/AnthropicProvider.js +18 -35
  11. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  12. package/dist/cjs/providers/DeepSeekProvider.d.ts +1 -12
  13. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
  14. package/dist/cjs/providers/DeepSeekProvider.js +3 -20
  15. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
  16. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  17. package/dist/cjs/providers/GeminiProvider.js +19 -36
  18. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  19. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +69 -0
  20. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -0
  21. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +93 -0
  22. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -0
  23. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +23 -5
  24. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  25. package/dist/cjs/providers/OpenAICompatibleProvider.js +46 -44
  26. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  27. package/dist/cjs/providers/index.d.ts +3 -1
  28. package/dist/cjs/providers/index.d.ts.map +1 -1
  29. package/dist/cjs/providers/index.js +3 -1
  30. package/dist/cjs/providers/index.js.map +1 -1
  31. package/dist/cjs/utils/completion.d.ts +20 -0
  32. package/dist/cjs/utils/completion.d.ts.map +1 -0
  33. package/dist/cjs/utils/completion.js +33 -0
  34. package/dist/cjs/utils/completion.js.map +1 -0
  35. package/dist/cjs/utils/index.d.ts +3 -2
  36. package/dist/cjs/utils/index.d.ts.map +1 -1
  37. package/dist/cjs/utils/index.js +7 -1
  38. package/dist/cjs/utils/index.js.map +1 -1
  39. package/dist/cjs/utils/retry.d.ts +43 -7
  40. package/dist/cjs/utils/retry.d.ts.map +1 -1
  41. package/dist/cjs/utils/retry.js +100 -12
  42. package/dist/cjs/utils/retry.js.map +1 -1
  43. package/dist/core/ToolLoopExecutor.d.ts +11 -0
  44. package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
  45. package/dist/core/ToolLoopExecutor.js +76 -52
  46. package/dist/core/ToolLoopExecutor.js.map +1 -1
  47. package/dist/index.d.ts +3 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  52. package/dist/providers/AnthropicProvider.js +19 -36
  53. package/dist/providers/AnthropicProvider.js.map +1 -1
  54. package/dist/providers/DeepSeekProvider.d.ts +1 -12
  55. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  56. package/dist/providers/DeepSeekProvider.js +3 -20
  57. package/dist/providers/DeepSeekProvider.js.map +1 -1
  58. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  59. package/dist/providers/GeminiProvider.js +20 -37
  60. package/dist/providers/GeminiProvider.js.map +1 -1
  61. package/dist/providers/GenericOpenAICompatibleProvider.d.ts +69 -0
  62. package/dist/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -0
  63. package/dist/providers/GenericOpenAICompatibleProvider.js +87 -0
  64. package/dist/providers/GenericOpenAICompatibleProvider.js.map +1 -0
  65. package/dist/providers/OpenAICompatibleProvider.d.ts +23 -5
  66. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  67. package/dist/providers/OpenAICompatibleProvider.js +47 -45
  68. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  69. package/dist/providers/index.d.ts +3 -1
  70. package/dist/providers/index.d.ts.map +1 -1
  71. package/dist/providers/index.js +1 -0
  72. package/dist/providers/index.js.map +1 -1
  73. package/dist/utils/completion.d.ts +20 -0
  74. package/dist/utils/completion.d.ts.map +1 -0
  75. package/dist/utils/completion.js +29 -0
  76. package/dist/utils/completion.js.map +1 -0
  77. package/dist/utils/index.d.ts +3 -2
  78. package/dist/utils/index.d.ts.map +1 -1
  79. package/dist/utils/index.js +3 -1
  80. package/dist/utils/index.js.map +1 -1
  81. package/dist/utils/retry.d.ts +43 -7
  82. package/dist/utils/retry.d.ts.map +1 -1
  83. package/dist/utils/retry.js +98 -12
  84. package/dist/utils/retry.js.map +1 -1
  85. package/package.json +1 -1
  86. package/src/core/ToolLoopExecutor.ts +108 -52
  87. package/src/index.ts +3 -0
  88. package/src/providers/AnthropicProvider.ts +22 -43
  89. package/src/providers/DeepSeekProvider.ts +3 -35
  90. package/src/providers/GeminiProvider.ts +23 -44
  91. package/src/providers/GenericOpenAICompatibleProvider.ts +138 -0
  92. package/src/providers/OpenAICompatibleProvider.ts +87 -67
  93. package/src/providers/index.ts +4 -0
  94. package/src/utils/completion.ts +38 -0
  95. package/src/utils/index.ts +5 -2
  96. package/src/utils/retry.ts +136 -14
@@ -13,10 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.OpenAICompatibleProvider = void 0;
14
14
  const utils_1 = require("../utils");
15
15
  const errorClassification_1 = require("./errorClassification");
16
- const DEFAULT_RETRY_CONFIG = {
17
- timeout: 60000,
18
- retries: 3,
19
- };
20
16
  /**
21
17
  * Base implementation of AiProvider for OpenAI-compatible APIs with
22
18
  * backup models and retry logic.
@@ -34,14 +30,8 @@ class OpenAICompatibleProvider {
34
30
  this.primaryModel = init.model;
35
31
  this.backupModels = init.backupModels ?? [];
36
32
  this.config = init.config;
37
- this.retryConfig = {
38
- // `||` is intentional: a 0ms timeout is degenerate (aborts every call
39
- // immediately), so fall back to the default.
40
- timeout: init.retryConfig?.timeout || DEFAULT_RETRY_CONFIG.timeout,
41
- // `??` so an explicit `retries: 0` (disable retries) is honored instead of
42
- // being clobbered to the default by a falsy-zero check.
43
- retries: init.retryConfig?.retries ?? DEFAULT_RETRY_CONFIG.retries,
44
- };
33
+ this.retryConfig = (0, utils_1.resolveRetryConfig)(init.retryConfig);
34
+ this.structuredOutput = init.structuredOutput ?? "responses_parse";
45
35
  }
46
36
  // ---------------------------------------------------------------------
47
37
  // Public API
@@ -62,6 +52,11 @@ class OpenAICompatibleProvider {
62
52
  * with a structured response_format instead.
63
53
  */
64
54
  async executeStructuredGenerate(model, input, jsonSchema) {
55
+ // Non-native modes go through chat completions, where
56
+ // `structuredResponseFormat` selects the response_format.
57
+ if (this.structuredOutput !== "responses_parse") {
58
+ return this.executeChatCompletion(model, input);
59
+ }
65
60
  const response = await this.client.responses.parse({
66
61
  model,
67
62
  instructions: input.prompt,
@@ -77,7 +72,7 @@ class OpenAICompatibleProvider {
77
72
  schema: this.adaptSchema(jsonSchema),
78
73
  },
79
74
  },
80
- });
75
+ }, { signal: input.signal });
81
76
  if (!response.output_parsed) {
82
77
  throw new Error(`No parsed output returned from ${this.displayName}`);
83
78
  }
@@ -95,12 +90,22 @@ class OpenAICompatibleProvider {
95
90
  };
96
91
  }
97
92
  /**
98
- * response_format applied to chat-completions requests when a JSON
99
- * schema is present. Default requests a generic JSON object (parsed at
100
- * the end); subclasses with native json_schema support in chat
101
- * completions (e.g. DeepSeek) override this.
93
+ * response_format applied to chat-completions requests when a JSON schema is
94
+ * present, selected by {@link StructuredOutputMode}: `"json_schema"` for native
95
+ * enforcement, else a generic JSON object parsed at the end. (`"responses_parse"`
96
+ * never reaches chat completions for non-streaming, but streaming has no parse
97
+ * API, so it falls back to `json_object` here.)
102
98
  */
103
- structuredResponseFormat(_jsonSchema, _schemaName) {
99
+ structuredResponseFormat(jsonSchema, schemaName) {
100
+ if (this.structuredOutput === "json_schema") {
101
+ return {
102
+ type: "json_schema",
103
+ json_schema: {
104
+ name: schemaName || "structured_output",
105
+ schema: this.adaptSchema(jsonSchema),
106
+ },
107
+ };
108
+ }
104
109
  return { type: "json_object" };
105
110
  }
106
111
  /**
@@ -260,7 +265,7 @@ class OpenAICompatibleProvider {
260
265
  async *generateStreamWithBackup(input) {
261
266
  // Try primary model first
262
267
  try {
263
- yield* (0, utils_1.withStreamRetry)(() => this.generateStreamWithModel(this.primaryModel, input), { maxRetries: this.retryConfig.retries, operationName: `${this.logLabel} ${this.primaryModel} stream` });
268
+ yield* (0, utils_1.withStreamRetry)((signal) => this.generateStreamWithModel(this.primaryModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `${this.logLabel} ${this.primaryModel} stream` });
264
269
  }
265
270
  catch (primaryError) {
266
271
  const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
@@ -274,7 +279,7 @@ class OpenAICompatibleProvider {
274
279
  const backupModel = this.backupModels[i];
275
280
  utils_1.logger.debug(`[${this.logLabel}] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
276
281
  try {
277
- yield* (0, utils_1.withStreamRetry)(() => this.generateStreamWithModel(backupModel, input), { maxRetries: this.retryConfig.retries, operationName: `${this.logLabel} ${backupModel} stream` });
282
+ yield* (0, utils_1.withStreamRetry)((signal) => this.generateStreamWithModel(backupModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `${this.logLabel} ${backupModel} stream` });
278
283
  utils_1.logger.debug(`[${this.logLabel}] Backup model ${backupModel} succeeded`);
279
284
  return;
280
285
  }
@@ -298,12 +303,16 @@ class OpenAICompatibleProvider {
298
303
  // Non-streaming generation
299
304
  // ---------------------------------------------------------------------
300
305
  async generateWithModel(model, input) {
301
- const operation = async () => {
306
+ const operation = async (signal) => {
307
+ // Thread the per-attempt timeout signal through input.signal so whichever
308
+ // path runs — responses.parse (structured) or chat.completions — cancels
309
+ // its upstream call when the deadline fires.
310
+ const reqInput = { ...input, signal: (0, utils_1.combineAbortSignals)(input.signal, signal) };
302
311
  // Use structured output path if JSON schema is provided
303
- if (input.parameters?.jsonSchema) {
304
- return this.executeStructuredGenerate(model, input, input.parameters.jsonSchema);
312
+ if (reqInput.parameters?.jsonSchema) {
313
+ return this.executeStructuredGenerate(model, reqInput, reqInput.parameters.jsonSchema);
305
314
  }
306
- return this.executeChatCompletion(model, input);
315
+ return this.executeChatCompletion(model, reqInput);
307
316
  };
308
317
  return (0, utils_1.withTimeoutAndRetry)(operation, this.retryConfig.timeout, this.retryConfig.retries, `${this.displayName} ${model}`);
309
318
  }
@@ -332,7 +341,9 @@ class OpenAICompatibleProvider {
332
341
  if (input.parameters?.jsonSchema) {
333
342
  params.response_format = this.structuredResponseFormat(input.parameters.jsonSchema, input.parameters.schemaName);
334
343
  }
335
- const response = await this.client.chat.completions.create(params);
344
+ const response = await this.client.chat.completions.create(params, {
345
+ signal: input.signal,
346
+ });
336
347
  const message = response.choices[0]?.message?.content || "";
337
348
  let toolCalls = [];
338
349
  if (response.choices?.[0]?.message?.tool_calls) {
@@ -365,14 +376,10 @@ class OpenAICompatibleProvider {
365
376
  toolCalls,
366
377
  };
367
378
  }
368
- // A parsed-but-blank structured message with no tool calls is just as empty
369
- // as no text at all — throw so withTimeoutAndRetry retries instead of
379
+ // A parsed-but-blank message with no tool calls is as empty as no text;
380
+ // the shared guard throws so withTimeoutAndRetry retries instead of
370
381
  // returning {"message":""}.
371
- if (toolCalls.length === 0 &&
372
- typeof structured?.message === "string" &&
373
- !structured.message.trim()) {
374
- throw new Error(`No response from ${this.displayName}`);
375
- }
382
+ (0, utils_1.assertUsableCompletion)(structured, message, toolCalls.length, this.displayName);
376
383
  return {
377
384
  message,
378
385
  metadata: {
@@ -388,7 +395,7 @@ class OpenAICompatibleProvider {
388
395
  // ---------------------------------------------------------------------
389
396
  // Streaming generation
390
397
  // ---------------------------------------------------------------------
391
- async *generateStreamWithModel(model, input) {
398
+ async *generateStreamWithModel(model, input, attemptSignal) {
392
399
  // Build messages from history and append prompt as final user message
393
400
  const historyMessages = this.buildChatMessages(input.history);
394
401
  historyMessages.push({ role: "user", content: input.prompt });
@@ -413,7 +420,9 @@ class OpenAICompatibleProvider {
413
420
  if (input.parameters?.jsonSchema) {
414
421
  params.response_format = this.structuredResponseFormat(input.parameters.jsonSchema, input.parameters.schemaName);
415
422
  }
416
- const stream = await this.client.chat.completions.create(params);
423
+ const stream = await this.client.chat.completions.create(params, {
424
+ signal: (0, utils_1.combineAbortSignals)(input.signal, attemptSignal),
425
+ });
417
426
  let accumulated = "";
418
427
  let currentModel = model;
419
428
  let finishReason;
@@ -477,16 +486,9 @@ class OpenAICompatibleProvider {
477
486
  toolCalls,
478
487
  };
479
488
  }
480
- // Empty-completion guard — mirror of the non-streaming path. A blank
481
- // effective message (structured message under a schema, else accumulated
482
- // text) with no tool calls means the model produced nothing usable; throw
483
- // so withStreamRetry/generateStreamWithBackup retry instead of silently
484
- // emitting an empty message.
485
- const structuredMessage = structured?.message;
486
- const messageText = (typeof structuredMessage === "string" ? structuredMessage : accumulated).trim();
487
- if (!messageText && toolCalls.length === 0) {
488
- throw new Error(`No response from ${this.displayName}`);
489
- }
489
+ // Empty-completion guard — same definition as the non-streaming path, so the
490
+ // stream retries / falls back to backup instead of emitting an empty message.
491
+ (0, utils_1.assertUsableCompletion)(structured, accumulated, toolCalls.length, this.displayName);
490
492
  // Yield final chunk
491
493
  yield {
492
494
  delta: "",
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAICompatibleProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatibleProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAICompatibleProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenAICompatibleProvider.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,9 @@ export type { OpenRouterProviderOptions } from "./OpenRouterProvider";
13
13
  export { DeepSeekProvider } from "./DeepSeekProvider";
14
14
  export type { DeepSeekProviderOptions } from "./DeepSeekProvider";
15
15
  export { OpenAICompatibleProvider } from "./OpenAICompatibleProvider";
16
- export type { OpenAICompatibleProviderInit, OpenAICompatibleRequestConfig, } from "./OpenAICompatibleProvider";
16
+ export type { OpenAICompatibleProviderInit, OpenAICompatibleRequestConfig, StructuredOutputMode, } from "./OpenAICompatibleProvider";
17
+ export { createOpenAICompatibleProvider } from "./GenericOpenAICompatibleProvider";
18
+ export type { OpenAICompatibleOptions } from "./GenericOpenAICompatibleProvider";
17
19
  export { classifyProviderError, isBackupEligible, toProviderError, } from "./errorClassification";
18
20
  export type { ErrorClassificationOptions } from "./errorClassification";
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,YAAY,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Centralized export point for all AI provider implementations
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.toProviderError = exports.isBackupEligible = exports.classifyProviderError = exports.OpenAICompatibleProvider = exports.DeepSeekProvider = exports.OpenRouterProvider = exports.OpenAIProvider = exports.GeminiProvider = exports.AnthropicProvider = void 0;
7
+ exports.toProviderError = exports.isBackupEligible = exports.classifyProviderError = exports.createOpenAICompatibleProvider = exports.OpenAICompatibleProvider = exports.DeepSeekProvider = exports.OpenRouterProvider = exports.OpenAIProvider = exports.GeminiProvider = exports.AnthropicProvider = void 0;
8
8
  var AnthropicProvider_1 = require("./AnthropicProvider");
9
9
  Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return AnthropicProvider_1.AnthropicProvider; } });
10
10
  var GeminiProvider_1 = require("./GeminiProvider");
@@ -17,6 +17,8 @@ var DeepSeekProvider_1 = require("./DeepSeekProvider");
17
17
  Object.defineProperty(exports, "DeepSeekProvider", { enumerable: true, get: function () { return DeepSeekProvider_1.DeepSeekProvider; } });
18
18
  var OpenAICompatibleProvider_1 = require("./OpenAICompatibleProvider");
19
19
  Object.defineProperty(exports, "OpenAICompatibleProvider", { enumerable: true, get: function () { return OpenAICompatibleProvider_1.OpenAICompatibleProvider; } });
20
+ var GenericOpenAICompatibleProvider_1 = require("./GenericOpenAICompatibleProvider");
21
+ Object.defineProperty(exports, "createOpenAICompatibleProvider", { enumerable: true, get: function () { return GenericOpenAICompatibleProvider_1.createOpenAICompatibleProvider; } });
20
22
  var errorClassification_1 = require("./errorClassification");
21
23
  Object.defineProperty(exports, "classifyProviderError", { enumerable: true, get: function () { return errorClassification_1.classifyProviderError; } });
22
24
  Object.defineProperty(exports, "isBackupEligible", { enumerable: true, get: function () { return errorClassification_1.isBackupEligible; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAG1B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAGvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAGvB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAG3B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAGzB,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AAMjC,6DAI+B;AAH7B,4HAAA,qBAAqB,OAAA;AACrB,uHAAA,gBAAgB,OAAA;AAChB,sHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAG1B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAGvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAGvB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAG3B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAGzB,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AAOjC,qFAAmF;AAA1E,iJAAA,8BAA8B,OAAA;AAGvC,6DAI+B;AAH7B,4HAAA,qBAAqB,OAAA;AACrB,uHAAA,gBAAgB,OAAA;AAChB,sHAAA,eAAe,OAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The user-facing text of a (possibly structured) model completion, trimmed.
3
+ *
4
+ * Under a JSON schema the real message lives in `structured.message`; otherwise
5
+ * it's the raw/accumulated text passed as `fallbackText`. A blank result with no
6
+ * tool calls means the model produced nothing usable — providers throw on that
7
+ * so the retry/backup path runs instead of emitting an empty message. Shared by
8
+ * the streaming and non-streaming empty-completion guards across all providers.
9
+ */
10
+ export declare function effectiveMessageText(structured: unknown, fallbackText: string): string;
11
+ /**
12
+ * The single definition of "the model produced nothing usable": a blank
13
+ * effective message ({@link effectiveMessageText}) and no tool calls. When that
14
+ * holds, throw `No response from <provider>` so the caller's retry/backup path
15
+ * runs instead of surfacing an empty turn. Lifting this above the providers
16
+ * keeps the streaming and non-streaming guards — six call sites across three
17
+ * providers — from drifting on what counts as empty.
18
+ */
19
+ export declare function assertUsableCompletion(structured: unknown, fallbackText: string, toolCallCount: number, providerLabel: string): void;
20
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/utils/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,IAAI,CAIN"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.effectiveMessageText = effectiveMessageText;
4
+ exports.assertUsableCompletion = assertUsableCompletion;
5
+ /**
6
+ * The user-facing text of a (possibly structured) model completion, trimmed.
7
+ *
8
+ * Under a JSON schema the real message lives in `structured.message`; otherwise
9
+ * it's the raw/accumulated text passed as `fallbackText`. A blank result with no
10
+ * tool calls means the model produced nothing usable — providers throw on that
11
+ * so the retry/backup path runs instead of emitting an empty message. Shared by
12
+ * the streaming and non-streaming empty-completion guards across all providers.
13
+ */
14
+ function effectiveMessageText(structured, fallbackText) {
15
+ const message = typeof structured === "object" && structured !== null && "message" in structured
16
+ ? structured.message
17
+ : undefined;
18
+ return (typeof message === "string" ? message : fallbackText).trim();
19
+ }
20
+ /**
21
+ * The single definition of "the model produced nothing usable": a blank
22
+ * effective message ({@link effectiveMessageText}) and no tool calls. When that
23
+ * holds, throw `No response from <provider>` so the caller's retry/backup path
24
+ * runs instead of surfacing an empty turn. Lifting this above the providers
25
+ * keeps the streaming and non-streaming guards — six call sites across three
26
+ * providers — from drifting on what counts as empty.
27
+ */
28
+ function assertUsableCompletion(structured, fallbackText, toolCallCount, providerLabel) {
29
+ if (toolCallCount === 0 && !effectiveMessageText(structured, fallbackText)) {
30
+ throw new Error(`No response from ${providerLabel}`);
31
+ }
32
+ }
33
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/utils/completion.ts"],"names":[],"mappings":";;AASA,oDASC;AAUD,wDASC;AArCD;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAClC,UAAmB,EACnB,YAAoB;IAEpB,MAAM,OAAO,GACX,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,SAAS,IAAI,UAAU;QAC9E,CAAC,CAAC,UAAU,CAAC,OAAO;QACpB,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CACpC,UAAmB,EACnB,YAAoB,EACpB,aAAqB,EACrB,aAAqB;IAErB,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -8,8 +8,9 @@ export { cloneDeep } from "./clone";
8
8
  export { getLastMessageFromHistory } from "./event";
9
9
  export { historyItemToEvent, historyToEvents, eventToHistoryItem, eventsToHistory, userMessage, assistantMessage, toolMessage, systemMessage, } from "./history";
10
10
  export { LoggerLevel, logger } from "./logger";
11
- export type { RetryOptions, StreamRetryOptions } from "./retry";
12
- export { retry, withTimeoutAndRetry, withStreamRetry } from "./retry";
11
+ export type { RetryOptions, StreamRetryOptions, RetryConfig } from "./retry";
12
+ export { retry, withTimeoutAndRetry, withStreamRetry, resolveRetryConfig, combineAbortSignals } from "./retry";
13
+ export { effectiveMessageText, assertUsableCompletion } from "./completion";
13
14
  export { ConditionEvaluator, createConditionEvaluator, extractAIContextStrings, hasProgrammaticConditions, } from "./condition";
14
15
  export { parseJSONResponse, tryParseJSONResponse } from "./json";
15
16
  export { serializeToolResult } from "./serialize";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGpD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGtE,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGpD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG/G,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG5E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Utility functions and helpers
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.serializeToolResult = exports.tryParseJSONResponse = exports.parseJSONResponse = exports.hasProgrammaticConditions = exports.extractAIContextStrings = exports.createConditionEvaluator = exports.ConditionEvaluator = exports.withStreamRetry = exports.withTimeoutAndRetry = exports.retry = exports.logger = exports.LoggerLevel = exports.systemMessage = exports.toolMessage = exports.assistantMessage = exports.userMessage = exports.eventsToHistory = exports.eventToHistoryItem = exports.historyToEvents = exports.historyItemToEvent = exports.getLastMessageFromHistory = exports.cloneDeep = exports.createTemplateContext = exports.formatKnowledgeBase = exports.renderMany = exports.render = exports.sessionDataToStep = exports.sessionStepToData = exports.mergeCollected = exports.isFlowCompletedThisSession = exports.completeCurrentFlow = exports.enterStep = exports.enterFlow = exports.createPersistedState = exports.createSessionId = exports.createSession = exports.generateSignalId = exports.generateInlineToolId = exports.generateToolId = exports.generateStepId = exports.generateFlowId = void 0;
6
+ exports.serializeToolResult = exports.tryParseJSONResponse = exports.parseJSONResponse = exports.hasProgrammaticConditions = exports.extractAIContextStrings = exports.createConditionEvaluator = exports.ConditionEvaluator = exports.assertUsableCompletion = exports.effectiveMessageText = exports.combineAbortSignals = exports.resolveRetryConfig = exports.withStreamRetry = exports.withTimeoutAndRetry = exports.retry = exports.logger = exports.LoggerLevel = exports.systemMessage = exports.toolMessage = exports.assistantMessage = exports.userMessage = exports.eventsToHistory = exports.eventToHistoryItem = exports.historyToEvents = exports.historyItemToEvent = exports.getLastMessageFromHistory = exports.cloneDeep = exports.createTemplateContext = exports.formatKnowledgeBase = exports.renderMany = exports.render = exports.sessionDataToStep = exports.sessionStepToData = exports.mergeCollected = exports.isFlowCompletedThisSession = exports.completeCurrentFlow = exports.enterStep = exports.enterFlow = exports.createPersistedState = exports.createSessionId = exports.createSession = exports.generateSignalId = exports.generateInlineToolId = exports.generateToolId = exports.generateStepId = exports.generateFlowId = void 0;
7
7
  // ID generation
8
8
  var id_1 = require("./id");
9
9
  Object.defineProperty(exports, "generateFlowId", { enumerable: true, get: function () { return id_1.generateFlowId; } });
@@ -53,6 +53,12 @@ var retry_1 = require("./retry");
53
53
  Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return retry_1.retry; } });
54
54
  Object.defineProperty(exports, "withTimeoutAndRetry", { enumerable: true, get: function () { return retry_1.withTimeoutAndRetry; } });
55
55
  Object.defineProperty(exports, "withStreamRetry", { enumerable: true, get: function () { return retry_1.withStreamRetry; } });
56
+ Object.defineProperty(exports, "resolveRetryConfig", { enumerable: true, get: function () { return retry_1.resolveRetryConfig; } });
57
+ Object.defineProperty(exports, "combineAbortSignals", { enumerable: true, get: function () { return retry_1.combineAbortSignals; } });
58
+ // Completion helpers
59
+ var completion_1 = require("./completion");
60
+ Object.defineProperty(exports, "effectiveMessageText", { enumerable: true, get: function () { return completion_1.effectiveMessageText; } });
61
+ Object.defineProperty(exports, "assertUsableCompletion", { enumerable: true, get: function () { return completion_1.assertUsableCompletion; } });
56
62
  // Condition utilities
57
63
  var condition_1 = require("./condition");
58
64
  Object.defineProperty(exports, "ConditionEvaluator", { enumerable: true, get: function () { return condition_1.ConditionEvaluator; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,gBAAgB;AAChB,2BAMc;AALZ,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,0GAAA,oBAAoB,OAAA;AACpB,sGAAA,gBAAgB,OAAA;AAGlB,qBAAqB;AACrB,qCAWmB;AAVjB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AACT,8GAAA,mBAAmB,OAAA;AACnB,qHAAA,0BAA0B,OAAA;AAC1B,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AAGnB,qBAAqB;AACrB,uCAKoB;AAJlB,kGAAA,MAAM,OAAA;AACN,sGAAA,UAAU,OAAA;AACV,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AAGvB,oBAAoB;AACpB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,iCAAoD;AAA3C,kHAAA,yBAAyB,OAAA;AAElC,oBAAoB;AACpB,qCASmB;AARjB,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,sGAAA,WAAW,OAAA;AACX,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AAGf,UAAU;AACV,mCAA+C;AAAtC,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAI5B,iCAAsE;AAA7D,8FAAA,KAAK,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAEpD,sBAAsB;AACtB,yCAKqB;AAJnB,+GAAA,kBAAkB,OAAA;AAClB,qHAAA,wBAAwB,OAAA;AACxB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AAG3B,iBAAiB;AACjB,+BAAiE;AAAxD,yGAAA,iBAAiB,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAEhD,0BAA0B;AAC1B,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,gBAAgB;AAChB,2BAMc;AALZ,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,oGAAA,cAAc,OAAA;AACd,0GAAA,oBAAoB,OAAA;AACpB,sGAAA,gBAAgB,OAAA;AAGlB,qBAAqB;AACrB,qCAWmB;AAVjB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,oGAAA,SAAS,OAAA;AACT,oGAAA,SAAS,OAAA;AACT,8GAAA,mBAAmB,OAAA;AACnB,qHAAA,0BAA0B,OAAA;AAC1B,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AAGnB,qBAAqB;AACrB,uCAKoB;AAJlB,kGAAA,MAAM,OAAA;AACN,sGAAA,UAAU,OAAA;AACV,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AAGvB,oBAAoB;AACpB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,kBAAkB;AAClB,iCAAoD;AAA3C,kHAAA,yBAAyB,OAAA;AAElC,oBAAoB;AACpB,qCASmB;AARjB,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,sGAAA,WAAW,OAAA;AACX,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AAGf,UAAU;AACV,mCAA+C;AAAtC,qGAAA,WAAW,OAAA;AAAE,gGAAA,MAAM,OAAA;AAI5B,iCAA+G;AAAtG,8FAAA,KAAK,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAE7F,qBAAqB;AACrB,2CAA4E;AAAnE,kHAAA,oBAAoB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AAErD,sBAAsB;AACtB,yCAKqB;AAJnB,+GAAA,kBAAkB,OAAA;AAClB,qHAAA,wBAAwB,OAAA;AACxB,oHAAA,uBAAuB,OAAA;AACvB,sHAAA,yBAAyB,OAAA;AAG3B,iBAAiB;AACjB,+BAAiE;AAAxD,yGAAA,iBAAiB,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAEhD,0BAA0B;AAC1B,yCAAkD;AAAzC,gHAAA,mBAAmB,OAAA"}
@@ -5,8 +5,37 @@ export interface RetryOptions<T> {
5
5
  onRetry?: (attempt: number, error: unknown) => void;
6
6
  onFailure?: (error: unknown) => boolean;
7
7
  }
8
+ /** Provider timeout (ms) + retry count, after defaults are applied. */
9
+ export interface RetryConfig {
10
+ timeout: number;
11
+ retries: number;
12
+ }
13
+ /**
14
+ * Normalize a provider's optional retry config against the defaults. `timeout`
15
+ * uses `||` (a 0ms timeout is degenerate — it aborts every call immediately — so
16
+ * fall back to the default), while `retries` uses `??` so an explicit
17
+ * `retries: 0` (disable retries) is honored rather than treated as unset. Single
18
+ * definition so this distinction can't drift between providers.
19
+ */
20
+ export declare function resolveRetryConfig(input?: {
21
+ timeout?: number;
22
+ retries?: number;
23
+ }): RetryConfig;
8
24
  export declare function retry<T>(options: RetryOptions<T>): Promise<T>;
9
- export declare const withTimeoutAndRetry: <T>(operation: () => Promise<T>, timeoutMs?: number, maxRetries?: number, operationName?: string) => Promise<T>;
25
+ /**
26
+ * Combine abort signals into one that aborts as soon as any input aborts.
27
+ * `undefined` inputs are skipped, so a caller can pass an optional caller-signal
28
+ * alongside a required per-attempt one. Returns the sole signal when only one is
29
+ * present (no wrapper), or `undefined` when none are.
30
+ *
31
+ * Prefers the platform `AbortSignal.any`, which cleans up its listeners via weak
32
+ * refs — so merging onto a long-lived caller signal that's reused across many
33
+ * calls can't accumulate listeners. Falls back to a manual controller on older
34
+ * runtimes (< Node 20.3); there the listeners live until a source aborts or is
35
+ * garbage-collected, which is fine for the usual per-request signal.
36
+ */
37
+ export declare function combineAbortSignals(...signals: Array<AbortSignal | undefined>): AbortSignal | undefined;
38
+ export declare const withTimeoutAndRetry: <T>(operation: (signal: AbortSignal) => Promise<T>, timeoutMs?: number, maxRetries?: number, operationName?: string) => Promise<T>;
10
39
  export interface StreamRetryOptions {
11
40
  /** Maximum number of retries after the first attempt. Defaults to 3. */
12
41
  maxRetries?: number;
@@ -14,18 +43,25 @@ export interface StreamRetryOptions {
14
43
  delay?: (attempt: number) => number;
15
44
  /** Label used in retry logs. */
16
45
  operationName?: string;
46
+ /**
47
+ * Max ms to wait for the *first* chunk (time-to-first-token) before treating
48
+ * the attempt as failed. Guards a provider that opens a stream and then
49
+ * stalls. Only the first chunk is bounded — later chunks are unbounded so a
50
+ * long but healthy stream is never cut off. `0`/omitted disables the deadline.
51
+ */
52
+ firstChunkTimeoutMs?: number;
17
53
  }
18
54
  /**
19
55
  * Streaming analog of {@link withTimeoutAndRetry}. Re-runs an async-generator
20
- * factory as long as it fails *before yielding its first chunk* — e.g. an
21
- * empty completion that throws "No response", or an error while establishing
22
- * the stream. Once any chunk has been yielded the stream is committed and
23
- * further errors propagate, so a retry can never double-emit deltas that the
24
- * consumer has already received.
56
+ * factory as long as it fails *before yielding its first chunk* — an empty
57
+ * completion that throws "No response", an error while establishing the stream,
58
+ * or (with `firstChunkTimeoutMs`) a stall before the first token. Once any chunk
59
+ * has been yielded the stream is committed and further errors propagate, so a
60
+ * retry can never double-emit deltas the consumer has already received.
25
61
  *
26
62
  * This mirrors the non-streaming path, where the provider throws on an empty
27
63
  * completion inside `withTimeoutAndRetry` and is retried on the same model
28
64
  * before the caller falls through to backup models.
29
65
  */
30
- export declare function withStreamRetry<T>(factory: () => AsyncGenerator<T>, options?: StreamRetryOptions): AsyncGenerator<T>;
66
+ export declare function withStreamRetry<T>(factory: (signal: AbortSignal) => AsyncGenerator<T>, options?: StreamRetryOptions): AsyncGenerator<T>;
31
67
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACzC;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8BnE;AAED,eAAO,MAAM,mBAAmB,GAAU,CAAC,EACzC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,YAAW,MAAc,EACzB,aAAY,MAAU,EACtB,gBAAe,MAAuB,KACrC,OAAO,CAAC,CAAC,CA8CX,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAuB,eAAe,CAAC,CAAC,EACtC,OAAO,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,EAChC,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAAC,CAAC,CAAC,CA6BnB"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/utils/retry.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACzC;AAED,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAKd;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA8BnE;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GACzC,WAAW,GAAG,SAAS,CAgBzB;AAED,eAAO,MAAM,mBAAmB,GAAU,CAAC,EACzC,WAAW,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,YAAW,MAAc,EACzB,aAAY,MAAU,EACtB,gBAAe,MAAuB,KACrC,OAAO,CAAC,CAAC,CAiDX,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAuBD;;;;;;;;;;;GAWG;AACH,wBAAuB,eAAe,CAAC,CAAC,EACtC,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,EACnD,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAAC,CAAC,CAAC,CAwDnB"}