erosolar-cli 1.6.4 → 1.6.6
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/core/resultVerification.d.ts +25 -0
- package/dist/core/resultVerification.d.ts.map +1 -1
- package/dist/core/resultVerification.js +118 -12
- package/dist/core/resultVerification.js.map +1 -1
- package/dist/plugins/providers/anthropic/index.d.ts +9 -0
- package/dist/plugins/providers/anthropic/index.d.ts.map +1 -1
- package/dist/plugins/providers/anthropic/index.js +13 -1
- package/dist/plugins/providers/anthropic/index.js.map +1 -1
- package/dist/plugins/providers/deepseek/index.d.ts +9 -0
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
- package/dist/plugins/providers/deepseek/index.js +28 -1
- package/dist/plugins/providers/deepseek/index.js.map +1 -1
- package/dist/plugins/providers/google/index.d.ts +9 -0
- package/dist/plugins/providers/google/index.d.ts.map +1 -1
- package/dist/plugins/providers/google/index.js +13 -1
- package/dist/plugins/providers/google/index.js.map +1 -1
- package/dist/plugins/providers/ollama/index.d.ts +5 -1
- package/dist/plugins/providers/ollama/index.d.ts.map +1 -1
- package/dist/plugins/providers/ollama/index.js +11 -2
- package/dist/plugins/providers/ollama/index.js.map +1 -1
- package/dist/plugins/providers/openai/index.d.ts +9 -0
- package/dist/plugins/providers/openai/index.d.ts.map +1 -1
- package/dist/plugins/providers/openai/index.js +13 -1
- package/dist/plugins/providers/openai/index.js.map +1 -1
- package/dist/plugins/providers/xai/index.d.ts +9 -0
- package/dist/plugins/providers/xai/index.d.ts.map +1 -1
- package/dist/plugins/providers/xai/index.js +15 -1
- package/dist/plugins/providers/xai/index.js.map +1 -1
- package/dist/providers/anthropicProvider.d.ts +7 -0
- package/dist/providers/anthropicProvider.d.ts.map +1 -1
- package/dist/providers/anthropicProvider.js +87 -9
- package/dist/providers/anthropicProvider.js.map +1 -1
- package/dist/providers/googleProvider.d.ts +17 -0
- package/dist/providers/googleProvider.d.ts.map +1 -1
- package/dist/providers/googleProvider.js +113 -32
- package/dist/providers/googleProvider.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts +26 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +162 -27
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/providers/openaiResponsesProvider.d.ts +17 -0
- package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
- package/dist/providers/openaiResponsesProvider.js +109 -25
- package/dist/providers/openaiResponsesProvider.js.map +1 -1
- package/dist/providers/resilientProvider.d.ts.map +1 -1
- package/dist/providers/resilientProvider.js +47 -1
- package/dist/providers/resilientProvider.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +6 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +105 -0
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/taskCompletionDetector.d.ts +5 -0
- package/dist/shell/taskCompletionDetector.d.ts.map +1 -1
- package/dist/shell/taskCompletionDetector.js +62 -1
- package/dist/shell/taskCompletionDetector.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +6 -2
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/browserAutomationTools.d.ts.map +1 -1
- package/dist/tools/browserAutomationTools.js +9 -1
- package/dist/tools/browserAutomationTools.js.map +1 -1
- package/dist/tools/cloudTools.d.ts.map +1 -1
- package/dist/tools/cloudTools.js +98 -52
- package/dist/tools/cloudTools.js.map +1 -1
- package/dist/tools/codeGenerationTools.d.ts.map +1 -1
- package/dist/tools/codeGenerationTools.js +77 -7
- package/dist/tools/codeGenerationTools.js.map +1 -1
- package/package.json +1 -1
|
@@ -83,8 +83,19 @@ export declare const OutputPatterns: {
|
|
|
83
83
|
failure: RegExp[];
|
|
84
84
|
};
|
|
85
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* Normalize text to prevent Unicode lookalike attacks
|
|
88
|
+
* Converts confusable characters (e.g., Cyrillic 'а' -> Latin 'a')
|
|
89
|
+
* This prevents attackers from bypassing pattern detection with visually similar characters
|
|
90
|
+
*/
|
|
91
|
+
export declare function normalizeForPatternMatch(text: string): string;
|
|
86
92
|
/**
|
|
87
93
|
* Analyze output against patterns to determine success/failure
|
|
94
|
+
*
|
|
95
|
+
* CRITICAL: This function is defensive against:
|
|
96
|
+
* 1. Unicode lookalike attacks (Cyrillic/Greek characters that look like Latin)
|
|
97
|
+
* 2. Exit code 0 with hidden failures in output
|
|
98
|
+
* 3. False positives from success words appearing in error messages
|
|
88
99
|
*/
|
|
89
100
|
export declare function analyzeOutput(output: string, patterns: {
|
|
90
101
|
success: RegExp[];
|
|
@@ -93,6 +104,7 @@ export declare function analyzeOutput(output: string, patterns: {
|
|
|
93
104
|
isSuccess: boolean;
|
|
94
105
|
isFailure: boolean;
|
|
95
106
|
matchedPattern?: string;
|
|
107
|
+
confidence: 'high' | 'medium' | 'low';
|
|
96
108
|
};
|
|
97
109
|
/**
|
|
98
110
|
* Create a verification check from a command result
|
|
@@ -110,4 +122,17 @@ export declare function verifyUrlAccessible(url: string, expectedStatus?: number
|
|
|
110
122
|
* Verify a JSON response matches expected structure
|
|
111
123
|
*/
|
|
112
124
|
export declare function verifyJsonEndpoint(url: string, expectedFields: string[], timeoutMs?: number): Promise<VerificationCheck>;
|
|
125
|
+
/**
|
|
126
|
+
* Check if content that would be truncated might contain error indicators
|
|
127
|
+
* Returns a warning message if potential errors are detected in the truncated portion
|
|
128
|
+
*/
|
|
129
|
+
export declare function checkTruncationForErrors(fullContent: string, truncateAt: number): {
|
|
130
|
+
shouldWarn: boolean;
|
|
131
|
+
warning: string;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Safely truncate content with error detection
|
|
135
|
+
* Returns truncated content with appropriate warning if errors might be hidden
|
|
136
|
+
*/
|
|
137
|
+
export declare function safeTruncate(content: string, maxLength: number, _label?: string): string;
|
|
113
138
|
//# sourceMappingURL=resultVerification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resultVerification.d.ts","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,MAAM,EAAE,kBAAkB,CAAC;IAE3B,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEzC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4DnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,iBAAiB,EAAE,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,MAAM,CAAC,EAAE,iBAAiB,EAAE,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,EAAE,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CASR;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CA2E1B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"resultVerification.d.ts","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,31 +216,93 @@ export const OutputPatterns = {
|
|
|
216
216
|
],
|
|
217
217
|
},
|
|
218
218
|
};
|
|
219
|
+
/**
|
|
220
|
+
* Normalize text to prevent Unicode lookalike attacks
|
|
221
|
+
* Converts confusable characters (e.g., Cyrillic 'а' -> Latin 'a')
|
|
222
|
+
* This prevents attackers from bypassing pattern detection with visually similar characters
|
|
223
|
+
*/
|
|
224
|
+
export function normalizeForPatternMatch(text) {
|
|
225
|
+
// Normalize Unicode to NFC form first
|
|
226
|
+
let normalized = text.normalize('NFC');
|
|
227
|
+
// Map common Unicode confusables to ASCII equivalents
|
|
228
|
+
// This prevents bypass using Cyrillic, Greek, or other lookalikes
|
|
229
|
+
const confusables = {
|
|
230
|
+
// Cyrillic lookalikes
|
|
231
|
+
'а': 'a', 'е': 'e', 'о': 'o', 'р': 'p', 'с': 'c', 'у': 'y', 'х': 'x',
|
|
232
|
+
'А': 'A', 'В': 'B', 'Е': 'E', 'К': 'K', 'М': 'M', 'Н': 'H', 'О': 'O',
|
|
233
|
+
'Р': 'P', 'С': 'C', 'Т': 'T', 'Х': 'X',
|
|
234
|
+
// Greek lookalikes
|
|
235
|
+
'Α': 'A', 'Β': 'B', 'Ε': 'E', 'Η': 'H', 'Ι': 'I', 'Κ': 'K', 'Μ': 'M',
|
|
236
|
+
'Ν': 'N', 'Ο': 'O', 'Ρ': 'P', 'Τ': 'T', 'Χ': 'X', 'Υ': 'Y', 'Ζ': 'Z',
|
|
237
|
+
'ο': 'o', 'ν': 'v', 'ρ': 'p',
|
|
238
|
+
// Fullwidth characters
|
|
239
|
+
'a': 'a', 'b': 'b', 'c': 'c', 'd': 'd', 'e': 'e', 'f': 'f', 'g': 'g',
|
|
240
|
+
'h': 'h', 'i': 'i', 'j': 'j', 'k': 'k', 'l': 'l', 'm': 'm', 'n': 'n',
|
|
241
|
+
'o': 'o', 'p': 'p', 'q': 'q', 'r': 'r', 's': 's', 't': 't', 'u': 'u',
|
|
242
|
+
'v': 'v', 'w': 'w', 'x': 'x', 'y': 'y', 'z': 'z',
|
|
243
|
+
// Other confusables
|
|
244
|
+
'ⅰ': 'i', 'ⅼ': 'l', 'ℓ': 'l', '𝕒': 'a', '𝕓': 'b', '𝕔': 'c',
|
|
245
|
+
'0': '0', '1': '1', '2': '2', '3': '3', '4': '4',
|
|
246
|
+
'5': '5', '6': '6', '7': '7', '8': '8', '9': '9',
|
|
247
|
+
};
|
|
248
|
+
for (const [confusable, replacement] of Object.entries(confusables)) {
|
|
249
|
+
normalized = normalized.split(confusable).join(replacement);
|
|
250
|
+
}
|
|
251
|
+
// Remove zero-width characters that could hide content
|
|
252
|
+
normalized = normalized.replace(/[\u200B-\u200D\uFEFF\u2060\u180E]/g, '');
|
|
253
|
+
return normalized;
|
|
254
|
+
}
|
|
219
255
|
/**
|
|
220
256
|
* Analyze output against patterns to determine success/failure
|
|
257
|
+
*
|
|
258
|
+
* CRITICAL: This function is defensive against:
|
|
259
|
+
* 1. Unicode lookalike attacks (Cyrillic/Greek characters that look like Latin)
|
|
260
|
+
* 2. Exit code 0 with hidden failures in output
|
|
261
|
+
* 3. False positives from success words appearing in error messages
|
|
221
262
|
*/
|
|
222
263
|
export function analyzeOutput(output, patterns, exitCode) {
|
|
223
|
-
//
|
|
264
|
+
// CRITICAL: Normalize output to prevent Unicode bypass attacks
|
|
265
|
+
const normalizedOutput = normalizeForPatternMatch(output);
|
|
266
|
+
// Check explicit failure patterns first (highest priority)
|
|
224
267
|
for (const pattern of patterns.failure) {
|
|
225
|
-
if (pattern.test(
|
|
226
|
-
return { isSuccess: false, isFailure: true, matchedPattern: pattern.source };
|
|
268
|
+
if (pattern.test(normalizedOutput)) {
|
|
269
|
+
return { isSuccess: false, isFailure: true, matchedPattern: pattern.source, confidence: 'high' };
|
|
227
270
|
}
|
|
228
271
|
}
|
|
229
272
|
// Check success patterns
|
|
230
273
|
for (const pattern of patterns.success) {
|
|
231
|
-
if (pattern.test(
|
|
232
|
-
|
|
274
|
+
if (pattern.test(normalizedOutput)) {
|
|
275
|
+
// Additional validation: ensure the success pattern isn't in a negative context
|
|
276
|
+
// e.g., "not successful", "failed to succeed", "success was not achieved"
|
|
277
|
+
const negativeContextPatterns = [
|
|
278
|
+
/not\s+(been\s+)?success/i,
|
|
279
|
+
/fail(ed|ure|s)?\s+to\s+(be\s+)?success/i,
|
|
280
|
+
/success\s+(was|is)\s+not/i,
|
|
281
|
+
/no\s+success/i,
|
|
282
|
+
/unsuccess/i,
|
|
283
|
+
/!success/i,
|
|
284
|
+
];
|
|
285
|
+
const hasNegativeContext = negativeContextPatterns.some(p => p.test(normalizedOutput));
|
|
286
|
+
if (hasNegativeContext) {
|
|
287
|
+
// Success word appears but in negative context - treat as failure
|
|
288
|
+
return { isSuccess: false, isFailure: true, matchedPattern: 'success in negative context', confidence: 'medium' };
|
|
289
|
+
}
|
|
290
|
+
return { isSuccess: true, isFailure: false, matchedPattern: pattern.source, confidence: 'high' };
|
|
233
291
|
}
|
|
234
292
|
}
|
|
235
|
-
//
|
|
293
|
+
// IMPORTANT: Exit code 0 alone is NOT sufficient to declare success
|
|
294
|
+
// We only use exit code as a weak signal, not as verification
|
|
236
295
|
if (exitCode !== undefined) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
isFailure:
|
|
240
|
-
}
|
|
296
|
+
if (exitCode !== 0) {
|
|
297
|
+
// Non-zero exit is a clear failure
|
|
298
|
+
return { isSuccess: false, isFailure: true, confidence: 'high' };
|
|
299
|
+
}
|
|
300
|
+
// Exit code 0 but no success pattern matched - this is INDETERMINATE, not success
|
|
301
|
+
// Return low confidence - the caller should treat this as unverified
|
|
302
|
+
return { isSuccess: false, isFailure: false, confidence: 'low' };
|
|
241
303
|
}
|
|
242
|
-
// Cannot determine
|
|
243
|
-
return { isSuccess: false, isFailure: false };
|
|
304
|
+
// Cannot determine at all
|
|
305
|
+
return { isSuccess: false, isFailure: false, confidence: 'low' };
|
|
244
306
|
}
|
|
245
307
|
/**
|
|
246
308
|
* Create a verification check from a command result
|
|
@@ -356,4 +418,48 @@ export async function verifyJsonEndpoint(url, expectedFields, timeoutMs = 10000)
|
|
|
356
418
|
};
|
|
357
419
|
}
|
|
358
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* Common error indicators that might be hidden in truncated content
|
|
423
|
+
*/
|
|
424
|
+
const ERROR_INDICATORS = [
|
|
425
|
+
'error', 'failed', 'failure', 'exception', 'denied', 'unauthorized',
|
|
426
|
+
'forbidden', 'not found', '404', '500', '502', '503', 'timeout',
|
|
427
|
+
'refused', 'rejected', 'invalid', 'expired', 'abort', 'crash',
|
|
428
|
+
'fatal', 'critical', 'panic', 'segfault', 'killed', 'terminated',
|
|
429
|
+
];
|
|
430
|
+
/**
|
|
431
|
+
* Check if content that would be truncated might contain error indicators
|
|
432
|
+
* Returns a warning message if potential errors are detected in the truncated portion
|
|
433
|
+
*/
|
|
434
|
+
export function checkTruncationForErrors(fullContent, truncateAt) {
|
|
435
|
+
if (fullContent.length <= truncateAt) {
|
|
436
|
+
return { shouldWarn: false, warning: '' };
|
|
437
|
+
}
|
|
438
|
+
const truncatedPortion = fullContent.slice(truncateAt).toLowerCase();
|
|
439
|
+
const foundIndicators = ERROR_INDICATORS.filter(indicator => truncatedPortion.includes(indicator));
|
|
440
|
+
if (foundIndicators.length > 0) {
|
|
441
|
+
return {
|
|
442
|
+
shouldWarn: true,
|
|
443
|
+
warning: `⚠️ TRUNCATION WARNING: The hidden portion (${fullContent.length - truncateAt} chars) may contain error indicators: ${foundIndicators.join(', ')}. If the operation appears to have failed, review full output.`,
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
return { shouldWarn: false, warning: '' };
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Safely truncate content with error detection
|
|
450
|
+
* Returns truncated content with appropriate warning if errors might be hidden
|
|
451
|
+
*/
|
|
452
|
+
export function safeTruncate(content, maxLength, _label = 'Content') {
|
|
453
|
+
if (content.length <= maxLength) {
|
|
454
|
+
return content;
|
|
455
|
+
}
|
|
456
|
+
const truncation = checkTruncationForErrors(content, maxLength);
|
|
457
|
+
const truncatedContent = content.slice(0, maxLength);
|
|
458
|
+
const hiddenChars = content.length - maxLength;
|
|
459
|
+
let result = `${truncatedContent}\n\n[... ${hiddenChars} characters truncated]`;
|
|
460
|
+
if (truncation.shouldWarn) {
|
|
461
|
+
result += `\n\n${truncation.warning}`;
|
|
462
|
+
}
|
|
463
|
+
return result;
|
|
464
|
+
}
|
|
359
465
|
//# sourceMappingURL=resultVerification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resultVerification.js","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resultVerification.js","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic (Claude) Provider Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers the Anthropic provider with hardened error handling for:
|
|
5
|
+
* - Network failures (premature close, connection reset)
|
|
6
|
+
* - Stream errors (gunzip, decompression failures)
|
|
7
|
+
* - Rate limiting with exponential backoff
|
|
8
|
+
* - Circuit breaker for cascading failure prevention
|
|
9
|
+
*/
|
|
1
10
|
export declare function registerAnthropicProviderPlugin(): void;
|
|
2
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/anthropic/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/anthropic/index.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAmBtD"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { AnthropicMessagesProvider } from '../../../providers/anthropicProvider.js';
|
|
2
2
|
import { registerProvider } from '../../../providers/providerFactory.js';
|
|
3
|
+
import { withProviderResilience } from '../../../providers/resilientProvider.js';
|
|
3
4
|
let registered = false;
|
|
5
|
+
/**
|
|
6
|
+
* Anthropic (Claude) Provider Plugin
|
|
7
|
+
*
|
|
8
|
+
* Registers the Anthropic provider with hardened error handling for:
|
|
9
|
+
* - Network failures (premature close, connection reset)
|
|
10
|
+
* - Stream errors (gunzip, decompression failures)
|
|
11
|
+
* - Rate limiting with exponential backoff
|
|
12
|
+
* - Circuit breaker for cascading failure prevention
|
|
13
|
+
*/
|
|
4
14
|
export function registerAnthropicProviderPlugin() {
|
|
5
15
|
if (registered) {
|
|
6
16
|
return;
|
|
@@ -12,7 +22,9 @@ export function registerAnthropicProviderPlugin() {
|
|
|
12
22
|
...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
|
|
13
23
|
...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
|
|
14
24
|
};
|
|
15
|
-
|
|
25
|
+
const baseProvider = new AnthropicMessagesProvider(options);
|
|
26
|
+
// Wrap with resilience layer
|
|
27
|
+
return withProviderResilience(baseProvider, 'anthropic');
|
|
16
28
|
});
|
|
17
29
|
registered = true;
|
|
18
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/anthropic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/anthropic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B;IAC7C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,UAAU,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAE5D,6BAA6B;QAC7B,OAAO,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepSeek Provider Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers the DeepSeek provider with hardened error handling for:
|
|
5
|
+
* - Network failures (premature close, connection reset)
|
|
6
|
+
* - Stream errors (gunzip, decompression failures)
|
|
7
|
+
* - Rate limiting with exponential backoff
|
|
8
|
+
* - Circuit breaker for cascading failure prevention
|
|
9
|
+
*/
|
|
1
10
|
export declare function registerDeepSeekProviderPlugin(): void;
|
|
2
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/deepseek/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/deepseek/index.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAiCrD"}
|
|
@@ -1,16 +1,43 @@
|
|
|
1
1
|
import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
|
|
2
2
|
import { registerProvider } from '../../../providers/providerFactory.js';
|
|
3
|
+
import { withProviderResilience } from '../../../providers/resilientProvider.js';
|
|
3
4
|
let registered = false;
|
|
5
|
+
/**
|
|
6
|
+
* DeepSeek Provider Plugin
|
|
7
|
+
*
|
|
8
|
+
* Registers the DeepSeek provider with hardened error handling for:
|
|
9
|
+
* - Network failures (premature close, connection reset)
|
|
10
|
+
* - Stream errors (gunzip, decompression failures)
|
|
11
|
+
* - Rate limiting with exponential backoff
|
|
12
|
+
* - Circuit breaker for cascading failure prevention
|
|
13
|
+
*/
|
|
4
14
|
export function registerDeepSeekProviderPlugin() {
|
|
5
15
|
if (registered) {
|
|
6
16
|
return;
|
|
7
17
|
}
|
|
8
18
|
registerProvider('deepseek', (config) => {
|
|
9
|
-
|
|
19
|
+
const baseProvider = new OpenAIChatCompletionsProvider({
|
|
10
20
|
apiKey: requireEnv('DEEPSEEK_API_KEY'),
|
|
11
21
|
model: config.model,
|
|
12
22
|
baseURL: 'https://api.deepseek.com',
|
|
13
23
|
providerId: 'deepseek',
|
|
24
|
+
// DeepSeek can be slower, use longer timeout
|
|
25
|
+
timeout: 180000, // 3 minutes
|
|
26
|
+
// Built-in retries at provider level
|
|
27
|
+
maxRetries: 3,
|
|
28
|
+
});
|
|
29
|
+
// Wrap with resilience layer for additional protection
|
|
30
|
+
return withProviderResilience(baseProvider, 'deepseek', {
|
|
31
|
+
// DeepSeek has lower rate limits
|
|
32
|
+
maxRequestsPerMinute: 30,
|
|
33
|
+
// More aggressive retries for DeepSeek's connection issues
|
|
34
|
+
maxRetries: 5,
|
|
35
|
+
baseDelayMs: 2000,
|
|
36
|
+
maxDelayMs: 60000,
|
|
37
|
+
// Enable circuit breaker to prevent cascading failures
|
|
38
|
+
enableCircuitBreaker: true,
|
|
39
|
+
circuitBreakerThreshold: 5,
|
|
40
|
+
circuitBreakerResetMs: 120000, // 2 minutes
|
|
14
41
|
});
|
|
15
42
|
});
|
|
16
43
|
registered = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/deepseek/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/deepseek/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,IAAI,6BAA6B,CAAC;YACrD,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC;YACtC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,0BAA0B;YACnC,UAAU,EAAE,UAAU;YACtB,6CAA6C;YAC7C,OAAO,EAAE,MAAM,EAAE,YAAY;YAC7B,qCAAqC;YACrC,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,uDAAuD;QACvD,OAAO,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE;YACtD,iCAAiC;YACjC,oBAAoB,EAAE,EAAE;YACxB,2DAA2D;YAC3D,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,uDAAuD;YACvD,oBAAoB,EAAE,IAAI;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,qBAAqB,EAAE,MAAM,EAAE,YAAY;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google (Gemini) Provider Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers the Google provider with hardened error handling for:
|
|
5
|
+
* - Network failures (premature close, connection reset)
|
|
6
|
+
* - Stream errors (gunzip, decompression failures)
|
|
7
|
+
* - Rate limiting with exponential backoff
|
|
8
|
+
* - Circuit breaker for cascading failure prevention
|
|
9
|
+
*/
|
|
1
10
|
export declare function registerGoogleProviderPlugin(): void;
|
|
2
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/google/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/google/index.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAoBnD"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { GoogleGenAIProvider } from '../../../providers/googleProvider.js';
|
|
2
2
|
import { registerProvider } from '../../../providers/providerFactory.js';
|
|
3
|
+
import { withProviderResilience } from '../../../providers/resilientProvider.js';
|
|
3
4
|
let registered = false;
|
|
5
|
+
/**
|
|
6
|
+
* Google (Gemini) Provider Plugin
|
|
7
|
+
*
|
|
8
|
+
* Registers the Google provider with hardened error handling for:
|
|
9
|
+
* - Network failures (premature close, connection reset)
|
|
10
|
+
* - Stream errors (gunzip, decompression failures)
|
|
11
|
+
* - Rate limiting with exponential backoff
|
|
12
|
+
* - Circuit breaker for cascading failure prevention
|
|
13
|
+
*/
|
|
4
14
|
export function registerGoogleProviderPlugin() {
|
|
5
15
|
if (registered) {
|
|
6
16
|
return;
|
|
@@ -13,7 +23,9 @@ export function registerGoogleProviderPlugin() {
|
|
|
13
23
|
...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
|
|
14
24
|
...(typeof config.maxTokens === 'number' ? { maxOutputTokens: config.maxTokens } : {}),
|
|
15
25
|
};
|
|
16
|
-
|
|
26
|
+
const baseProvider = new GoogleGenAIProvider(options);
|
|
27
|
+
// Wrap with resilience layer
|
|
28
|
+
return withProviderResilience(baseProvider, 'google');
|
|
17
29
|
});
|
|
18
30
|
registered = true;
|
|
19
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/google/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/google/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC;YACpC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,QAAQ;YACpB,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEtD,6BAA6B;QAC7B,OAAO,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Ollama Provider Plugin
|
|
3
3
|
*
|
|
4
|
+
* Registers the Ollama provider with hardened error handling.
|
|
4
5
|
* Ollama provides an OpenAI-compatible API, so we can reuse the OpenAI provider
|
|
5
6
|
* with a custom base URL. By default, Ollama runs on http://localhost:11434.
|
|
7
|
+
*
|
|
8
|
+
* Note: Ollama is local so circuit breaker is disabled, but retries are still useful
|
|
9
|
+
* for handling temporary resource constraints.
|
|
6
10
|
*/
|
|
7
11
|
export declare function registerOllamaProviderPlugin(): void;
|
|
8
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/ollama/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/ollama/index.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA0BnD;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,MAAiC,GACzC,OAAO,CAAC,MAAM,EAAE,CAAC,CAYnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,MAAiC,GACzC,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
|
|
2
2
|
import { registerProvider } from '../../../providers/providerFactory.js';
|
|
3
|
+
import { withProviderResilience } from '../../../providers/resilientProvider.js';
|
|
3
4
|
let registered = false;
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* Ollama Provider Plugin
|
|
6
7
|
*
|
|
8
|
+
* Registers the Ollama provider with hardened error handling.
|
|
7
9
|
* Ollama provides an OpenAI-compatible API, so we can reuse the OpenAI provider
|
|
8
10
|
* with a custom base URL. By default, Ollama runs on http://localhost:11434.
|
|
11
|
+
*
|
|
12
|
+
* Note: Ollama is local so circuit breaker is disabled, but retries are still useful
|
|
13
|
+
* for handling temporary resource constraints.
|
|
9
14
|
*/
|
|
10
15
|
export function registerOllamaProviderPlugin() {
|
|
11
16
|
if (registered) {
|
|
@@ -18,10 +23,14 @@ export function registerOllamaProviderPlugin() {
|
|
|
18
23
|
model: config.model,
|
|
19
24
|
providerId: 'ollama',
|
|
20
25
|
baseURL,
|
|
26
|
+
timeout: 300000, // 5 minutes - local models can be slow
|
|
27
|
+
maxRetries: 2,
|
|
21
28
|
...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
|
|
22
29
|
...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
|
|
23
30
|
};
|
|
24
|
-
|
|
31
|
+
const baseProvider = new OpenAIChatCompletionsProvider(options);
|
|
32
|
+
// Wrap with resilience layer (circuit breaker disabled for local)
|
|
33
|
+
return withProviderResilience(baseProvider, 'ollama');
|
|
25
34
|
});
|
|
26
35
|
registered = true;
|
|
27
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/ollama/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/ollama/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,2BAA2B,CAAC;QAE9E,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,QAAQ,EAAE,wDAAwD;YAC1E,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,QAAiB;YAC7B,OAAO;YACP,OAAO,EAAE,MAAM,EAAE,uCAAuC;YACxD,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAEhE,kEAAkE;QAClE,OAAO,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,UAAkB,wBAAwB;IAE1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyC,CAAC;QAC7E,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAkB,wBAAwB;IAE1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;YAClD,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,mBAAmB;SACvD,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import type { ProviderId } from '../../../core/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* OpenAI Provider Plugin
|
|
4
|
+
*
|
|
5
|
+
* Registers the OpenAI provider with hardened error handling for:
|
|
6
|
+
* - Network failures (premature close, connection reset)
|
|
7
|
+
* - Stream errors (gunzip, decompression failures)
|
|
8
|
+
* - Rate limiting with exponential backoff
|
|
9
|
+
* - Circuit breaker for cascading failure prevention
|
|
10
|
+
*/
|
|
2
11
|
export declare function registerOpenAIProviderPlugin(providerId?: ProviderId): void;
|
|
3
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/openai/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/openai/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,GAAE,UAAqB,GAAG,IAAI,CAoBpF"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { OpenAIResponsesProvider } from '../../../providers/openaiResponsesProvider.js';
|
|
2
2
|
import { registerProvider } from '../../../providers/providerFactory.js';
|
|
3
|
+
import { withProviderResilience } from '../../../providers/resilientProvider.js';
|
|
3
4
|
let registered = false;
|
|
5
|
+
/**
|
|
6
|
+
* OpenAI Provider Plugin
|
|
7
|
+
*
|
|
8
|
+
* Registers the OpenAI provider with hardened error handling for:
|
|
9
|
+
* - Network failures (premature close, connection reset)
|
|
10
|
+
* - Stream errors (gunzip, decompression failures)
|
|
11
|
+
* - Rate limiting with exponential backoff
|
|
12
|
+
* - Circuit breaker for cascading failure prevention
|
|
13
|
+
*/
|
|
4
14
|
export function registerOpenAIProviderPlugin(providerId = 'openai') {
|
|
5
15
|
if (registered) {
|
|
6
16
|
return;
|
|
@@ -13,7 +23,9 @@ export function registerOpenAIProviderPlugin(providerId = 'openai') {
|
|
|
13
23
|
...(config.reasoningEffort ? { reasoningEffort: config.reasoningEffort } : {}),
|
|
14
24
|
...(config.textVerbosity ? { textVerbosity: config.textVerbosity } : {}),
|
|
15
25
|
};
|
|
16
|
-
|
|
26
|
+
const baseProvider = new OpenAIResponsesProvider(options);
|
|
27
|
+
// Wrap with resilience layer
|
|
28
|
+
return withProviderResilience(baseProvider, 'openai');
|
|
17
29
|
});
|
|
18
30
|
registered = true;
|
|
19
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/openai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/openai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,aAAyB,QAAQ;IAC5E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC;YACpC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU;YACV,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE1D,6BAA6B;QAC7B,OAAO,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xAI (Grok) Provider Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers the xAI provider with hardened error handling for:
|
|
5
|
+
* - Network failures (premature close, connection reset)
|
|
6
|
+
* - Stream errors (gunzip, decompression failures)
|
|
7
|
+
* - Rate limiting with exponential backoff
|
|
8
|
+
* - Circuit breaker for cascading failure prevention
|
|
9
|
+
*/
|
|
1
10
|
export declare function registerXaiProviderPlugin(): void;
|
|
2
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/xai/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/xai/index.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAoBhD"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
|
|
2
2
|
import { registerProvider } from '../../../providers/providerFactory.js';
|
|
3
|
+
import { withProviderResilience } from '../../../providers/resilientProvider.js';
|
|
3
4
|
let registered = false;
|
|
5
|
+
/**
|
|
6
|
+
* xAI (Grok) Provider Plugin
|
|
7
|
+
*
|
|
8
|
+
* Registers the xAI provider with hardened error handling for:
|
|
9
|
+
* - Network failures (premature close, connection reset)
|
|
10
|
+
* - Stream errors (gunzip, decompression failures)
|
|
11
|
+
* - Rate limiting with exponential backoff
|
|
12
|
+
* - Circuit breaker for cascading failure prevention
|
|
13
|
+
*/
|
|
4
14
|
export function registerXaiProviderPlugin() {
|
|
5
15
|
if (registered) {
|
|
6
16
|
return;
|
|
7
17
|
}
|
|
8
18
|
registerProvider('xai', (config) => {
|
|
9
|
-
|
|
19
|
+
const baseProvider = new OpenAIChatCompletionsProvider({
|
|
10
20
|
apiKey: requireEnv('XAI_API_KEY'),
|
|
11
21
|
model: config.model,
|
|
12
22
|
baseURL: 'https://api.x.ai/v1',
|
|
13
23
|
providerId: 'xai',
|
|
24
|
+
timeout: 120000,
|
|
25
|
+
maxRetries: 3,
|
|
14
26
|
});
|
|
27
|
+
// Wrap with resilience layer
|
|
28
|
+
return withProviderResilience(baseProvider, 'xai');
|
|
15
29
|
});
|
|
16
30
|
registered = true;
|
|
17
31
|
}
|