erosolar-cli 1.6.4 → 1.6.5

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 (68) hide show
  1. package/dist/core/resultVerification.d.ts +25 -0
  2. package/dist/core/resultVerification.d.ts.map +1 -1
  3. package/dist/core/resultVerification.js +118 -12
  4. package/dist/core/resultVerification.js.map +1 -1
  5. package/dist/plugins/providers/anthropic/index.d.ts +9 -0
  6. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -1
  7. package/dist/plugins/providers/anthropic/index.js +13 -1
  8. package/dist/plugins/providers/anthropic/index.js.map +1 -1
  9. package/dist/plugins/providers/deepseek/index.d.ts +9 -0
  10. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
  11. package/dist/plugins/providers/deepseek/index.js +28 -1
  12. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  13. package/dist/plugins/providers/google/index.d.ts +9 -0
  14. package/dist/plugins/providers/google/index.d.ts.map +1 -1
  15. package/dist/plugins/providers/google/index.js +13 -1
  16. package/dist/plugins/providers/google/index.js.map +1 -1
  17. package/dist/plugins/providers/ollama/index.d.ts +5 -1
  18. package/dist/plugins/providers/ollama/index.d.ts.map +1 -1
  19. package/dist/plugins/providers/ollama/index.js +11 -2
  20. package/dist/plugins/providers/ollama/index.js.map +1 -1
  21. package/dist/plugins/providers/openai/index.d.ts +9 -0
  22. package/dist/plugins/providers/openai/index.d.ts.map +1 -1
  23. package/dist/plugins/providers/openai/index.js +13 -1
  24. package/dist/plugins/providers/openai/index.js.map +1 -1
  25. package/dist/plugins/providers/xai/index.d.ts +9 -0
  26. package/dist/plugins/providers/xai/index.d.ts.map +1 -1
  27. package/dist/plugins/providers/xai/index.js +15 -1
  28. package/dist/plugins/providers/xai/index.js.map +1 -1
  29. package/dist/providers/anthropicProvider.d.ts +7 -0
  30. package/dist/providers/anthropicProvider.d.ts.map +1 -1
  31. package/dist/providers/anthropicProvider.js +87 -9
  32. package/dist/providers/anthropicProvider.js.map +1 -1
  33. package/dist/providers/googleProvider.d.ts +17 -0
  34. package/dist/providers/googleProvider.d.ts.map +1 -1
  35. package/dist/providers/googleProvider.js +113 -32
  36. package/dist/providers/googleProvider.js.map +1 -1
  37. package/dist/providers/openaiChatCompletionsProvider.d.ts +26 -0
  38. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  39. package/dist/providers/openaiChatCompletionsProvider.js +162 -27
  40. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  41. package/dist/providers/openaiResponsesProvider.d.ts +17 -0
  42. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  43. package/dist/providers/openaiResponsesProvider.js +109 -25
  44. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  45. package/dist/providers/resilientProvider.d.ts.map +1 -1
  46. package/dist/providers/resilientProvider.js +47 -1
  47. package/dist/providers/resilientProvider.js.map +1 -1
  48. package/dist/shell/interactiveShell.d.ts +6 -0
  49. package/dist/shell/interactiveShell.d.ts.map +1 -1
  50. package/dist/shell/interactiveShell.js +48 -0
  51. package/dist/shell/interactiveShell.js.map +1 -1
  52. package/dist/shell/taskCompletionDetector.d.ts +4 -0
  53. package/dist/shell/taskCompletionDetector.d.ts.map +1 -1
  54. package/dist/shell/taskCompletionDetector.js +27 -1
  55. package/dist/shell/taskCompletionDetector.js.map +1 -1
  56. package/dist/tools/bashTools.d.ts.map +1 -1
  57. package/dist/tools/bashTools.js +6 -2
  58. package/dist/tools/bashTools.js.map +1 -1
  59. package/dist/tools/browserAutomationTools.d.ts.map +1 -1
  60. package/dist/tools/browserAutomationTools.js +9 -1
  61. package/dist/tools/browserAutomationTools.js.map +1 -1
  62. package/dist/tools/cloudTools.d.ts.map +1 -1
  63. package/dist/tools/cloudTools.js +98 -52
  64. package/dist/tools/cloudTools.js.map +1 -1
  65. package/dist/tools/codeGenerationTools.d.ts.map +1 -1
  66. package/dist/tools/codeGenerationTools.js +77 -7
  67. package/dist/tools/codeGenerationTools.js.map +1 -1
  68. 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":"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"}
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
- // Check explicit failure patterns first
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(output)) {
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(output)) {
232
- return { isSuccess: true, isFailure: false, matchedPattern: pattern.source };
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
- // If we have an exit code, use it as fallback
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
- return {
238
- isSuccess: exitCode === 0,
239
- isFailure: exitCode !== 0,
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":"AAKA,wBAAgB,+BAA+B,IAAI,IAAI,CAgBtD"}
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
- return new AnthropicMessagesProvider(options);
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;AAEzE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,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,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAChD,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
+ {"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":"AAKA,wBAAgB,8BAA8B,IAAI,IAAI,CAerD"}
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
- return new OpenAIChatCompletionsProvider({
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;AAEzE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,8BAA8B;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;QACtC,OAAO,IAAI,6BAA6B,CAAC;YACvC,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC;YACtC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,0BAA0B;YACnC,UAAU,EAAE,UAAU;SACvB,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
+ {"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":"AAKA,wBAAgB,4BAA4B,IAAI,IAAI,CAiBnD"}
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
- return new GoogleGenAIProvider(options);
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;AAEzE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,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,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1C,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
+ {"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
- * Register Ollama provider plugin.
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":"AAKA;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAqBnD;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
+ {"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
- * Register Ollama provider plugin.
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
- return new OpenAIChatCompletionsProvider(options);
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;AAEzE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;GAKG;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,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,OAAO,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACpD,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
+ {"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":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,wBAAgB,4BAA4B,CAAC,UAAU,GAAE,UAAqB,GAAG,IAAI,CAiBpF"}
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
- return new OpenAIResponsesProvider(options);
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;AAGzE,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,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,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC9C,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
+ {"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":"AAKA,wBAAgB,yBAAyB,IAAI,IAAI,CAehD"}
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
- return new OpenAIChatCompletionsProvider({
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
  }