@falai/agent 2.4.2 → 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.
- package/dist/cjs/core/PersistenceManager.d.ts +13 -0
- package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.js +29 -6
- package/dist/cjs/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +15 -3
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/core/SessionManager.js +7 -0
- package/dist/cjs/core/SessionManager.js.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.js +11 -0
- package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
- package/dist/cjs/core/ToolLoopExecutor.d.ts +27 -2
- package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
- package/dist/cjs/core/ToolLoopExecutor.js +159 -74
- package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
- package/dist/cjs/core/ToolManager.d.ts.map +1 -1
- package/dist/cjs/core/ToolManager.js +8 -31
- package/dist/cjs/core/ToolManager.js.map +1 -1
- package/dist/cjs/core/toolGates.d.ts +24 -0
- package/dist/cjs/core/toolGates.d.ts.map +1 -0
- package/dist/cjs/core/toolGates.js +52 -0
- package/dist/cjs/core/toolGates.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.js +18 -14
- package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
- package/dist/cjs/providers/DeepSeekProvider.d.ts +1 -12
- package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
- package/dist/cjs/providers/DeepSeekProvider.js +3 -20
- package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +19 -15
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +69 -0
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -0
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +93 -0
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -0
- package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +23 -5
- package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAICompatibleProvider.js +47 -23
- package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
- package/dist/cjs/providers/index.d.ts +3 -1
- package/dist/cjs/providers/index.d.ts.map +1 -1
- package/dist/cjs/providers/index.js +3 -1
- package/dist/cjs/providers/index.js.map +1 -1
- package/dist/cjs/utils/completion.d.ts +20 -0
- package/dist/cjs/utils/completion.d.ts.map +1 -0
- package/dist/cjs/utils/completion.js +33 -0
- package/dist/cjs/utils/completion.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +3 -2
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +8 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/retry.d.ts +58 -1
- package/dist/cjs/utils/retry.d.ts.map +1 -1
- package/dist/cjs/utils/retry.js +128 -3
- package/dist/cjs/utils/retry.js.map +1 -1
- package/dist/core/PersistenceManager.d.ts +13 -0
- package/dist/core/PersistenceManager.d.ts.map +1 -1
- package/dist/core/PersistenceManager.js +29 -6
- package/dist/core/PersistenceManager.js.map +1 -1
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +15 -3
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +7 -0
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/core/StreamingToolExecutor.js +11 -0
- package/dist/core/StreamingToolExecutor.js.map +1 -1
- package/dist/core/ToolLoopExecutor.d.ts +27 -2
- package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
- package/dist/core/ToolLoopExecutor.js +160 -75
- package/dist/core/ToolLoopExecutor.js.map +1 -1
- package/dist/core/ToolManager.d.ts.map +1 -1
- package/dist/core/ToolManager.js +8 -31
- package/dist/core/ToolManager.js.map +1 -1
- package/dist/core/toolGates.d.ts +24 -0
- package/dist/core/toolGates.d.ts.map +1 -0
- package/dist/core/toolGates.js +49 -0
- package/dist/core/toolGates.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/providers/AnthropicProvider.js +19 -15
- package/dist/providers/AnthropicProvider.js.map +1 -1
- package/dist/providers/DeepSeekProvider.d.ts +1 -12
- package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
- package/dist/providers/DeepSeekProvider.js +3 -20
- package/dist/providers/DeepSeekProvider.js.map +1 -1
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +20 -16
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/GenericOpenAICompatibleProvider.d.ts +69 -0
- package/dist/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -0
- package/dist/providers/GenericOpenAICompatibleProvider.js +87 -0
- package/dist/providers/GenericOpenAICompatibleProvider.js.map +1 -0
- package/dist/providers/OpenAICompatibleProvider.d.ts +23 -5
- package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/providers/OpenAICompatibleProvider.js +48 -24
- package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
- package/dist/providers/index.d.ts +3 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/utils/completion.d.ts +20 -0
- package/dist/utils/completion.d.ts.map +1 -0
- package/dist/utils/completion.js +29 -0
- package/dist/utils/completion.js.map +1 -0
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/retry.d.ts +58 -1
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +125 -3
- package/dist/utils/retry.js.map +1 -1
- package/package.json +1 -1
- package/src/core/PersistenceManager.ts +30 -6
- package/src/core/ResponseModal.ts +16 -3
- package/src/core/SessionManager.ts +7 -0
- package/src/core/StreamingToolExecutor.ts +12 -0
- package/src/core/ToolLoopExecutor.ts +210 -79
- package/src/core/ToolManager.ts +8 -32
- package/src/core/toolGates.ts +72 -0
- package/src/index.ts +3 -0
- package/src/providers/AnthropicProvider.ts +26 -20
- package/src/providers/DeepSeekProvider.ts +3 -35
- package/src/providers/GeminiProvider.ts +29 -17
- package/src/providers/GenericOpenAICompatibleProvider.ts +138 -0
- package/src/providers/OpenAICompatibleProvider.ts +92 -44
- package/src/providers/index.ts +4 -0
- package/src/utils/completion.ts +38 -0
- package/src/utils/index.ts +5 -2
- package/src/utils/retry.ts +181 -4
|
@@ -6,13 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.GeminiProvider = void 0;
|
|
7
7
|
const genai_1 = require("@google/genai");
|
|
8
8
|
const retry_1 = require("../utils/retry");
|
|
9
|
+
const completion_1 = require("../utils/completion");
|
|
9
10
|
const json_1 = require("../utils/json");
|
|
10
11
|
const logger_1 = require("../utils/logger");
|
|
11
12
|
const errorClassification_1 = require("./errorClassification");
|
|
12
|
-
const DEFAULT_RETRY_CONFIG = {
|
|
13
|
-
timeout: 60000,
|
|
14
|
-
retries: 3,
|
|
15
|
-
};
|
|
16
13
|
/**
|
|
17
14
|
* Gemini-specific error classification signals ("overloaded" code plus
|
|
18
15
|
* the "not available"/"INTERNAL" message patterns Gemini emits).
|
|
@@ -50,10 +47,7 @@ class GeminiProvider {
|
|
|
50
47
|
this.primaryModel = model;
|
|
51
48
|
this.backupModels = backupModels;
|
|
52
49
|
this.config = config;
|
|
53
|
-
this.retryConfig =
|
|
54
|
-
timeout: retryConfig?.timeout || DEFAULT_RETRY_CONFIG.timeout,
|
|
55
|
-
retries: retryConfig?.retries || DEFAULT_RETRY_CONFIG.retries,
|
|
56
|
-
};
|
|
50
|
+
this.retryConfig = (0, retry_1.resolveRetryConfig)(retryConfig);
|
|
57
51
|
}
|
|
58
52
|
/**
|
|
59
53
|
* Build Gemini-formatted contents from HistoryItem[] array.
|
|
@@ -294,7 +288,7 @@ class GeminiProvider {
|
|
|
294
288
|
}
|
|
295
289
|
}
|
|
296
290
|
async generateWithModel(model, input) {
|
|
297
|
-
const operation = async () => {
|
|
291
|
+
const operation = async (signal) => {
|
|
298
292
|
// Schema-required: configure response schema
|
|
299
293
|
const configOverride = { ...this.config };
|
|
300
294
|
// Handle tools and JSON schema - Gemini doesn't support both simultaneously
|
|
@@ -331,12 +325,13 @@ class GeminiProvider {
|
|
|
331
325
|
configOverride.systemInstruction = systemInstructions.join("\n\n");
|
|
332
326
|
}
|
|
333
327
|
}
|
|
328
|
+
const reqSignal = (0, retry_1.combineAbortSignals)(input.signal, signal);
|
|
334
329
|
response = await this.genAI.models.generateContent({
|
|
335
330
|
model,
|
|
336
331
|
contents: historyContents,
|
|
337
332
|
config: {
|
|
338
333
|
...configOverride,
|
|
339
|
-
...(
|
|
334
|
+
...(reqSignal ? { abortSignal: reqSignal } : {}),
|
|
340
335
|
},
|
|
341
336
|
});
|
|
342
337
|
}
|
|
@@ -395,6 +390,10 @@ class GeminiProvider {
|
|
|
395
390
|
...structured,
|
|
396
391
|
};
|
|
397
392
|
}
|
|
393
|
+
// A parsed-but-blank message with no tool calls is as empty as no text;
|
|
394
|
+
// the shared guard throws so withTimeoutAndRetry retries instead of
|
|
395
|
+
// returning {"message":""}.
|
|
396
|
+
(0, completion_1.assertUsableCompletion)(structured, message, toolCalls.length, "Gemini");
|
|
398
397
|
return {
|
|
399
398
|
message,
|
|
400
399
|
metadata: {
|
|
@@ -411,7 +410,7 @@ class GeminiProvider {
|
|
|
411
410
|
async *generateStreamWithBackup(input) {
|
|
412
411
|
// Try primary model first
|
|
413
412
|
try {
|
|
414
|
-
yield* this.generateStreamWithModel(this.primaryModel, input);
|
|
413
|
+
yield* (0, retry_1.withStreamRetry)((signal) => this.generateStreamWithModel(this.primaryModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `Gemini ${this.primaryModel} stream` });
|
|
415
414
|
}
|
|
416
415
|
catch (primaryError) {
|
|
417
416
|
const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
|
|
@@ -425,7 +424,7 @@ class GeminiProvider {
|
|
|
425
424
|
const backupModel = this.backupModels[i];
|
|
426
425
|
logger_1.logger.debug(`[GEMINI] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
|
|
427
426
|
try {
|
|
428
|
-
yield* this.generateStreamWithModel(backupModel, input);
|
|
427
|
+
yield* (0, retry_1.withStreamRetry)((signal) => this.generateStreamWithModel(backupModel, input, signal), { maxRetries: this.retryConfig.retries, firstChunkTimeoutMs: this.retryConfig.timeout, operationName: `Gemini ${backupModel} stream` });
|
|
429
428
|
logger_1.logger.debug(`[GEMINI] Backup model ${backupModel} succeeded`);
|
|
430
429
|
return;
|
|
431
430
|
}
|
|
@@ -445,7 +444,9 @@ class GeminiProvider {
|
|
|
445
444
|
throw (0, errorClassification_1.toProviderError)(lastBackupError, this.name, CLASSIFICATION_OPTIONS);
|
|
446
445
|
}
|
|
447
446
|
}
|
|
448
|
-
async *generateStreamWithModel(model, input) {
|
|
447
|
+
async *generateStreamWithModel(model, input, attemptSignal) {
|
|
448
|
+
// Caller cancellation + the retry helper's per-attempt deadline, as one.
|
|
449
|
+
const reqSignal = (0, retry_1.combineAbortSignals)(input.signal, attemptSignal);
|
|
449
450
|
// Streaming: request JSON if schema provided
|
|
450
451
|
const configOverride = { ...this.config };
|
|
451
452
|
// Handle tools and JSON schema - Gemini doesn't support both simultaneously
|
|
@@ -487,7 +488,7 @@ class GeminiProvider {
|
|
|
487
488
|
contents: historyContents,
|
|
488
489
|
config: {
|
|
489
490
|
...configOverride,
|
|
490
|
-
...(
|
|
491
|
+
...(reqSignal ? { abortSignal: reqSignal } : {}),
|
|
491
492
|
},
|
|
492
493
|
});
|
|
493
494
|
}
|
|
@@ -501,7 +502,7 @@ class GeminiProvider {
|
|
|
501
502
|
let totalTokenCount = 0;
|
|
502
503
|
const toolCalls = [];
|
|
503
504
|
for await (const chunk of stream) {
|
|
504
|
-
if (
|
|
505
|
+
if (reqSignal?.aborted)
|
|
505
506
|
break;
|
|
506
507
|
// Safely extract text — chunk.text can throw when chunk has only function calls
|
|
507
508
|
const delta = this.safeExtractText(chunk);
|
|
@@ -550,6 +551,9 @@ class GeminiProvider {
|
|
|
550
551
|
toolCalls,
|
|
551
552
|
};
|
|
552
553
|
}
|
|
554
|
+
// Empty-completion guard — same definition as the non-streaming path, so the
|
|
555
|
+
// stream retries / falls back to backup instead of emitting an empty message.
|
|
556
|
+
(0, completion_1.assertUsableCompletion)(structured, accumulated, toolCalls.length, "Gemini");
|
|
553
557
|
// Yield final chunk
|
|
554
558
|
yield {
|
|
555
559
|
delta: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../src/providers/GeminiProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GeminiProvider.js","sourceRoot":"","sources":["../../../src/providers/GeminiProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic OpenAI-compatible provider + factory.
|
|
3
|
+
*
|
|
4
|
+
* Most "OpenAI-compatible" endpoints (Azure OpenAI, Groq, Together, Fireworks,
|
|
5
|
+
* vLLM, LM Studio, Ollama, a self-hosted gateway…) differ from OpenAI only in
|
|
6
|
+
* base URL, headers, and how structured output is requested. `createOpenAICompatibleProvider`
|
|
7
|
+
* builds a working provider from that config alone — no subclass required — so
|
|
8
|
+
* adding one ("fake" provider, same wire protocol, different base URL) is a few lines:
|
|
9
|
+
*
|
|
10
|
+
* const ollama = createOpenAICompatibleProvider({
|
|
11
|
+
* name: "ollama",
|
|
12
|
+
* baseURL: "http://localhost:11434/v1",
|
|
13
|
+
* apiKey: "ollama", // local servers ignore it; pass any non-empty string
|
|
14
|
+
* model: "llama3.3",
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* const azure = createOpenAICompatibleProvider({
|
|
18
|
+
* name: "azure",
|
|
19
|
+
* baseURL: `https://${resource}.openai.azure.com/openai/deployments/${deployment}`,
|
|
20
|
+
* apiKey: process.env.AZURE_OPENAI_KEY!,
|
|
21
|
+
* model: deployment,
|
|
22
|
+
* defaultHeaders: { "api-key": process.env.AZURE_OPENAI_KEY! },
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* For OpenAI/OpenRouter (native `responses.parse`) and Anthropic/Gemini, prefer
|
|
26
|
+
* their dedicated provider classes.
|
|
27
|
+
*/
|
|
28
|
+
import type { ProviderCapabilities } from "../types/ai";
|
|
29
|
+
import { OpenAICompatibleProvider, type OpenAICompatibleRequestConfig, type StructuredOutputMode } from "./OpenAICompatibleProvider";
|
|
30
|
+
export interface OpenAICompatibleOptions {
|
|
31
|
+
/** Provider identifier, e.g. "azure", "ollama", "groq". */
|
|
32
|
+
name: string;
|
|
33
|
+
/** Base URL of the OpenAI-compatible endpoint. */
|
|
34
|
+
baseURL: string;
|
|
35
|
+
/** API key. Local servers often ignore it — pass any non-empty string. */
|
|
36
|
+
apiKey: string;
|
|
37
|
+
/** Primary model / deployment name. */
|
|
38
|
+
model: string;
|
|
39
|
+
/** Backup models to try if the primary fails. */
|
|
40
|
+
backupModels?: string[];
|
|
41
|
+
/** Human-readable name for error messages. Defaults to `name`. */
|
|
42
|
+
displayName?: string;
|
|
43
|
+
/** Uppercase tag for log lines. Defaults to `name.toUpperCase()`. */
|
|
44
|
+
logLabel?: string;
|
|
45
|
+
/** Capability overrides, merged over the defaults (all true except caching). */
|
|
46
|
+
capabilities?: Partial<ProviderCapabilities>;
|
|
47
|
+
/** Extra request headers (e.g. Azure's `api-key`, a gateway's auth header). */
|
|
48
|
+
defaultHeaders?: Record<string, string>;
|
|
49
|
+
/**
|
|
50
|
+
* How structured output is requested. Defaults to `"json_schema"` — the
|
|
51
|
+
* broadest enforced mode for arbitrary compatible endpoints (`responses.parse`
|
|
52
|
+
* is OpenAI-only). See {@link StructuredOutputMode}.
|
|
53
|
+
*/
|
|
54
|
+
structuredOutput?: StructuredOutputMode;
|
|
55
|
+
/** Default request parameters merged into every call. */
|
|
56
|
+
config?: OpenAICompatibleRequestConfig;
|
|
57
|
+
/** Per-call timeout (ms) and retry count. */
|
|
58
|
+
retryConfig?: {
|
|
59
|
+
timeout?: number;
|
|
60
|
+
retries?: number;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build an `AiProvider` for any OpenAI-compatible endpoint from config alone.
|
|
65
|
+
* See {@link OpenAICompatibleOptions} for the knobs and the file header for
|
|
66
|
+
* Azure/Ollama examples.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createOpenAICompatibleProvider(options: OpenAICompatibleOptions): OpenAICompatibleProvider;
|
|
69
|
+
//# sourceMappingURL=GenericOpenAICompatibleProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericOpenAICompatibleProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/GenericOpenAICompatibleProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,yDAAyD;IACzD,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,6CAA6C;IAC7C,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AA8DD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,uBAAuB,GAC/B,wBAAwB,CAE1B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generic OpenAI-compatible provider + factory.
|
|
4
|
+
*
|
|
5
|
+
* Most "OpenAI-compatible" endpoints (Azure OpenAI, Groq, Together, Fireworks,
|
|
6
|
+
* vLLM, LM Studio, Ollama, a self-hosted gateway…) differ from OpenAI only in
|
|
7
|
+
* base URL, headers, and how structured output is requested. `createOpenAICompatibleProvider`
|
|
8
|
+
* builds a working provider from that config alone — no subclass required — so
|
|
9
|
+
* adding one ("fake" provider, same wire protocol, different base URL) is a few lines:
|
|
10
|
+
*
|
|
11
|
+
* const ollama = createOpenAICompatibleProvider({
|
|
12
|
+
* name: "ollama",
|
|
13
|
+
* baseURL: "http://localhost:11434/v1",
|
|
14
|
+
* apiKey: "ollama", // local servers ignore it; pass any non-empty string
|
|
15
|
+
* model: "llama3.3",
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* const azure = createOpenAICompatibleProvider({
|
|
19
|
+
* name: "azure",
|
|
20
|
+
* baseURL: `https://${resource}.openai.azure.com/openai/deployments/${deployment}`,
|
|
21
|
+
* apiKey: process.env.AZURE_OPENAI_KEY!,
|
|
22
|
+
* model: deployment,
|
|
23
|
+
* defaultHeaders: { "api-key": process.env.AZURE_OPENAI_KEY! },
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* For OpenAI/OpenRouter (native `responses.parse`) and Anthropic/Gemini, prefer
|
|
27
|
+
* their dedicated provider classes.
|
|
28
|
+
*/
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.createOpenAICompatibleProvider = createOpenAICompatibleProvider;
|
|
34
|
+
const openai_1 = __importDefault(require("openai"));
|
|
35
|
+
const OpenAICompatibleProvider_1 = require("./OpenAICompatibleProvider");
|
|
36
|
+
/** Sensible defaults for a modern OpenAI-compatible endpoint. */
|
|
37
|
+
const DEFAULT_CAPABILITIES = {
|
|
38
|
+
supportsTools: true,
|
|
39
|
+
supportsNativeJsonSchema: true,
|
|
40
|
+
supportsStreaming: true,
|
|
41
|
+
supportsStreamingToolCalls: true,
|
|
42
|
+
supportsPromptCaching: false,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Concrete OpenAI-compatible provider configured entirely from
|
|
46
|
+
* {@link OpenAICompatibleOptions}. Kept private — construct via
|
|
47
|
+
* {@link createOpenAICompatibleProvider}; subclass {@link OpenAICompatibleProvider}
|
|
48
|
+
* directly if you need behavior beyond these knobs (e.g. provider-specific
|
|
49
|
+
* error classification or streaming hooks).
|
|
50
|
+
*/
|
|
51
|
+
class GenericOpenAICompatibleProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProvider {
|
|
52
|
+
constructor(options) {
|
|
53
|
+
if (!options.name) {
|
|
54
|
+
throw new Error("An OpenAI-compatible provider needs a `name`.");
|
|
55
|
+
}
|
|
56
|
+
if (!options.baseURL) {
|
|
57
|
+
throw new Error(`[${options.name}] A \`baseURL\` is required.`);
|
|
58
|
+
}
|
|
59
|
+
if (!options.apiKey) {
|
|
60
|
+
throw new Error(`[${options.name}] An \`apiKey\` is required — use any non-empty string for servers that ignore it.`);
|
|
61
|
+
}
|
|
62
|
+
if (!options.model) {
|
|
63
|
+
throw new Error(`[${options.name}] A \`model\` is required.`);
|
|
64
|
+
}
|
|
65
|
+
super({
|
|
66
|
+
client: new openai_1.default({
|
|
67
|
+
apiKey: options.apiKey,
|
|
68
|
+
baseURL: options.baseURL,
|
|
69
|
+
...(options.defaultHeaders ? { defaultHeaders: options.defaultHeaders } : {}),
|
|
70
|
+
}),
|
|
71
|
+
model: options.model,
|
|
72
|
+
backupModels: options.backupModels,
|
|
73
|
+
config: options.config,
|
|
74
|
+
retryConfig: options.retryConfig,
|
|
75
|
+
// Arbitrary compatible endpoints rarely have responses.parse; default to
|
|
76
|
+
// the broadly-supported chat json_schema strategy.
|
|
77
|
+
structuredOutput: options.structuredOutput ?? "json_schema",
|
|
78
|
+
});
|
|
79
|
+
this.name = options.name;
|
|
80
|
+
this.displayName = options.displayName ?? options.name;
|
|
81
|
+
this.logLabel = options.logLabel ?? options.name.toUpperCase();
|
|
82
|
+
this.capabilities = { ...DEFAULT_CAPABILITIES, ...options.capabilities };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build an `AiProvider` for any OpenAI-compatible endpoint from config alone.
|
|
87
|
+
* See {@link OpenAICompatibleOptions} for the knobs and the file header for
|
|
88
|
+
* Azure/Ollama examples.
|
|
89
|
+
*/
|
|
90
|
+
function createOpenAICompatibleProvider(options) {
|
|
91
|
+
return new GenericOpenAICompatibleProvider(options);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=GenericOpenAICompatibleProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericOpenAICompatibleProvider.js","sourceRoot":"","sources":["../../../src/providers/GenericOpenAICompatibleProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;;;AA2GH,wEAIC;AA7GD,oDAA4B;AAG5B,yEAIoC;AAiCpC,iEAAiE;AACjE,MAAM,oBAAoB,GAAyB;IACjD,aAAa,EAAE,IAAI;IACnB,wBAAwB,EAAE,IAAI;IAC9B,iBAAiB,EAAE,IAAI;IACvB,0BAA0B,EAAE,IAAI;IAChC,qBAAqB,EAAE,KAAK;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,+BAAgC,SAAQ,mDAAwB;IAMpE,YAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,IAAI,OAAO,CAAC,IAAI,oFAAoF,CACrG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,4BAA4B,CAAC,CAAC;QAChE,CAAC;QAED,KAAK,CAAC;YACJ,MAAM,EAAE,IAAI,gBAAM,CAAC;gBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E,CAAC;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,yEAAyE;YACzE,mDAAmD;YACnD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,aAAa;SAC5D,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAC3E,CAAC;CACF;AAED;;;;GAIG;AACH,SAAgB,8BAA8B,CAC5C,OAAgC;IAEhC,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -18,6 +18,16 @@ import { type ErrorClassificationOptions } from "./errorClassification";
|
|
|
18
18
|
* Default request parameters shared by OpenAI-compatible providers
|
|
19
19
|
*/
|
|
20
20
|
export type OpenAICompatibleRequestConfig = Partial<Omit<ChatCompletionCreateParamsNonStreaming, "model" | "messages">>;
|
|
21
|
+
/**
|
|
22
|
+
* How structured (JSON-schema) output is requested from the endpoint:
|
|
23
|
+
* - `"responses_parse"` (default) — OpenAI's native `responses.parse` API
|
|
24
|
+
* (OpenAI, OpenRouter). Most compatible endpoints do not implement it.
|
|
25
|
+
* - `"json_schema"` — chat completions with a `json_schema` response_format.
|
|
26
|
+
* The broadest enforced mode (DeepSeek, Groq, Together, Fireworks, vLLM, Azure…).
|
|
27
|
+
* - `"json_object"` — chat completions with a `json_object` response_format,
|
|
28
|
+
* for servers that lack json_schema enforcement (parsed at the end).
|
|
29
|
+
*/
|
|
30
|
+
export type StructuredOutputMode = "responses_parse" | "json_schema" | "json_object";
|
|
21
31
|
/**
|
|
22
32
|
* Initialization values supplied by subclasses
|
|
23
33
|
*/
|
|
@@ -35,6 +45,11 @@ export interface OpenAICompatibleProviderInit {
|
|
|
35
45
|
timeout?: number;
|
|
36
46
|
retries?: number;
|
|
37
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* How structured output is requested (default `"responses_parse"`). Lifts the
|
|
50
|
+
* strategy that used to be a per-subclass override into shared config.
|
|
51
|
+
*/
|
|
52
|
+
structuredOutput?: StructuredOutputMode;
|
|
38
53
|
}
|
|
39
54
|
/**
|
|
40
55
|
* Base implementation of AiProvider for OpenAI-compatible APIs with
|
|
@@ -55,6 +70,8 @@ export declare abstract class OpenAICompatibleProvider implements AiProvider {
|
|
|
55
70
|
timeout: number;
|
|
56
71
|
retries: number;
|
|
57
72
|
};
|
|
73
|
+
/** Structured-output strategy; see {@link StructuredOutputMode}. */
|
|
74
|
+
protected readonly structuredOutput: StructuredOutputMode;
|
|
58
75
|
/**
|
|
59
76
|
* Provider-specific error classification signals.
|
|
60
77
|
* model_not_found/model_overloaded historically triggered backup models.
|
|
@@ -71,12 +88,13 @@ export declare abstract class OpenAICompatibleProvider implements AiProvider {
|
|
|
71
88
|
*/
|
|
72
89
|
protected executeStructuredGenerate(model: string, input: GenerateMessageInput<unknown>, jsonSchema: StructuredSchema): Promise<GenerateMessageOutput>;
|
|
73
90
|
/**
|
|
74
|
-
* response_format applied to chat-completions requests when a JSON
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* completions
|
|
91
|
+
* response_format applied to chat-completions requests when a JSON schema is
|
|
92
|
+
* present, selected by {@link StructuredOutputMode}: `"json_schema"` for native
|
|
93
|
+
* enforcement, else a generic JSON object parsed at the end. (`"responses_parse"`
|
|
94
|
+
* never reaches chat completions for non-streaming, but streaming has no parse
|
|
95
|
+
* API, so it falls back to `json_object` here.)
|
|
78
96
|
*/
|
|
79
|
-
protected structuredResponseFormat(
|
|
97
|
+
protected structuredResponseFormat(jsonSchema: StructuredSchema, schemaName: string | undefined): ChatCompletionCreateParamsNonStreaming["response_format"];
|
|
80
98
|
/**
|
|
81
99
|
* Hook for provider-specific streaming request parameters
|
|
82
100
|
* (e.g. DeepSeek's stream_options.include_usage).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompatibleProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/OpenAICompatibleProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,mBAAmB,EACnB,sCAAsC,EACtC,mCAAmC,EACpC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAKL,KAAK,0BAA0B,EAChC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenAICompatibleProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/OpenAICompatibleProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,10 +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
|
-
|
|
39
|
-
retries: init.retryConfig?.retries || DEFAULT_RETRY_CONFIG.retries,
|
|
40
|
-
};
|
|
33
|
+
this.retryConfig = (0, utils_1.resolveRetryConfig)(init.retryConfig);
|
|
34
|
+
this.structuredOutput = init.structuredOutput ?? "responses_parse";
|
|
41
35
|
}
|
|
42
36
|
// ---------------------------------------------------------------------
|
|
43
37
|
// Public API
|
|
@@ -58,6 +52,11 @@ class OpenAICompatibleProvider {
|
|
|
58
52
|
* with a structured response_format instead.
|
|
59
53
|
*/
|
|
60
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
|
+
}
|
|
61
60
|
const response = await this.client.responses.parse({
|
|
62
61
|
model,
|
|
63
62
|
instructions: input.prompt,
|
|
@@ -73,7 +72,7 @@ class OpenAICompatibleProvider {
|
|
|
73
72
|
schema: this.adaptSchema(jsonSchema),
|
|
74
73
|
},
|
|
75
74
|
},
|
|
76
|
-
});
|
|
75
|
+
}, { signal: input.signal });
|
|
77
76
|
if (!response.output_parsed) {
|
|
78
77
|
throw new Error(`No parsed output returned from ${this.displayName}`);
|
|
79
78
|
}
|
|
@@ -91,12 +90,22 @@ class OpenAICompatibleProvider {
|
|
|
91
90
|
};
|
|
92
91
|
}
|
|
93
92
|
/**
|
|
94
|
-
* response_format applied to chat-completions requests when a JSON
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* completions
|
|
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.)
|
|
98
98
|
*/
|
|
99
|
-
structuredResponseFormat(
|
|
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
|
+
}
|
|
100
109
|
return { type: "json_object" };
|
|
101
110
|
}
|
|
102
111
|
/**
|
|
@@ -256,7 +265,7 @@ class OpenAICompatibleProvider {
|
|
|
256
265
|
async *generateStreamWithBackup(input) {
|
|
257
266
|
// Try primary model first
|
|
258
267
|
try {
|
|
259
|
-
yield* this.generateStreamWithModel(this.primaryModel, input);
|
|
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` });
|
|
260
269
|
}
|
|
261
270
|
catch (primaryError) {
|
|
262
271
|
const primaryErrMsg = (0, errorClassification_1.getErrorMessage)(primaryError);
|
|
@@ -270,7 +279,7 @@ class OpenAICompatibleProvider {
|
|
|
270
279
|
const backupModel = this.backupModels[i];
|
|
271
280
|
utils_1.logger.debug(`[${this.logLabel}] Trying backup model ${i + 1}/${this.backupModels.length}: ${backupModel}`);
|
|
272
281
|
try {
|
|
273
|
-
yield* this.generateStreamWithModel(backupModel, input);
|
|
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` });
|
|
274
283
|
utils_1.logger.debug(`[${this.logLabel}] Backup model ${backupModel} succeeded`);
|
|
275
284
|
return;
|
|
276
285
|
}
|
|
@@ -294,12 +303,16 @@ class OpenAICompatibleProvider {
|
|
|
294
303
|
// Non-streaming generation
|
|
295
304
|
// ---------------------------------------------------------------------
|
|
296
305
|
async generateWithModel(model, input) {
|
|
297
|
-
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) };
|
|
298
311
|
// Use structured output path if JSON schema is provided
|
|
299
|
-
if (
|
|
300
|
-
return this.executeStructuredGenerate(model,
|
|
312
|
+
if (reqInput.parameters?.jsonSchema) {
|
|
313
|
+
return this.executeStructuredGenerate(model, reqInput, reqInput.parameters.jsonSchema);
|
|
301
314
|
}
|
|
302
|
-
return this.executeChatCompletion(model,
|
|
315
|
+
return this.executeChatCompletion(model, reqInput);
|
|
303
316
|
};
|
|
304
317
|
return (0, utils_1.withTimeoutAndRetry)(operation, this.retryConfig.timeout, this.retryConfig.retries, `${this.displayName} ${model}`);
|
|
305
318
|
}
|
|
@@ -328,7 +341,9 @@ class OpenAICompatibleProvider {
|
|
|
328
341
|
if (input.parameters?.jsonSchema) {
|
|
329
342
|
params.response_format = this.structuredResponseFormat(input.parameters.jsonSchema, input.parameters.schemaName);
|
|
330
343
|
}
|
|
331
|
-
const response = await this.client.chat.completions.create(params
|
|
344
|
+
const response = await this.client.chat.completions.create(params, {
|
|
345
|
+
signal: input.signal,
|
|
346
|
+
});
|
|
332
347
|
const message = response.choices[0]?.message?.content || "";
|
|
333
348
|
let toolCalls = [];
|
|
334
349
|
if (response.choices?.[0]?.message?.tool_calls) {
|
|
@@ -361,6 +376,10 @@ class OpenAICompatibleProvider {
|
|
|
361
376
|
toolCalls,
|
|
362
377
|
};
|
|
363
378
|
}
|
|
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
|
|
381
|
+
// returning {"message":""}.
|
|
382
|
+
(0, utils_1.assertUsableCompletion)(structured, message, toolCalls.length, this.displayName);
|
|
364
383
|
return {
|
|
365
384
|
message,
|
|
366
385
|
metadata: {
|
|
@@ -376,7 +395,7 @@ class OpenAICompatibleProvider {
|
|
|
376
395
|
// ---------------------------------------------------------------------
|
|
377
396
|
// Streaming generation
|
|
378
397
|
// ---------------------------------------------------------------------
|
|
379
|
-
async *generateStreamWithModel(model, input) {
|
|
398
|
+
async *generateStreamWithModel(model, input, attemptSignal) {
|
|
380
399
|
// Build messages from history and append prompt as final user message
|
|
381
400
|
const historyMessages = this.buildChatMessages(input.history);
|
|
382
401
|
historyMessages.push({ role: "user", content: input.prompt });
|
|
@@ -401,7 +420,9 @@ class OpenAICompatibleProvider {
|
|
|
401
420
|
if (input.parameters?.jsonSchema) {
|
|
402
421
|
params.response_format = this.structuredResponseFormat(input.parameters.jsonSchema, input.parameters.schemaName);
|
|
403
422
|
}
|
|
404
|
-
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
|
+
});
|
|
405
426
|
let accumulated = "";
|
|
406
427
|
let currentModel = model;
|
|
407
428
|
let finishReason;
|
|
@@ -465,6 +486,9 @@ class OpenAICompatibleProvider {
|
|
|
465
486
|
toolCalls,
|
|
466
487
|
};
|
|
467
488
|
}
|
|
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);
|
|
468
492
|
// Yield final chunk
|
|
469
493
|
yield {
|
|
470
494
|
delta: "",
|