erosolar-cli 1.6.3 → 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 (72) hide show
  1. package/dist/core/resultVerification.d.ts +138 -0
  2. package/dist/core/resultVerification.d.ts.map +1 -0
  3. package/dist/core/resultVerification.js +465 -0
  4. package/dist/core/resultVerification.js.map +1 -0
  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 +26 -8
  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 +436 -35
  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/dist/ui/persistentPrompt.d.ts +10 -0
  69. package/dist/ui/persistentPrompt.d.ts.map +1 -1
  70. package/dist/ui/persistentPrompt.js +82 -18
  71. package/dist/ui/persistentPrompt.js.map +1 -1
  72. package/package.json +1 -1
@@ -1,10 +1,44 @@
1
1
  import { GoogleGenAI, } from '@google/genai';
2
+ // ============================================================================
3
+ // Error Recovery Constants
4
+ // ============================================================================
5
+ const RECOVERABLE_ERROR_PATTERNS = [
6
+ 'premature close',
7
+ 'premature end',
8
+ 'unexpected end',
9
+ 'aborted',
10
+ 'fetcherror',
11
+ 'invalid response body',
12
+ 'gunzip',
13
+ 'decompress',
14
+ 'econnreset',
15
+ 'econnrefused',
16
+ 'epipe',
17
+ 'socket hang up',
18
+ 'network',
19
+ 'timeout',
20
+ 'rate limit',
21
+ '429',
22
+ '500',
23
+ '502',
24
+ '503',
25
+ '504',
26
+ ];
27
+ function isRecoverableError(error) {
28
+ if (!(error instanceof Error))
29
+ return false;
30
+ const message = error.message.toLowerCase();
31
+ const errorName = error.name?.toLowerCase() ?? '';
32
+ const allText = `${message} ${errorName}`;
33
+ return RECOVERABLE_ERROR_PATTERNS.some(pattern => allText.includes(pattern));
34
+ }
2
35
  export class GoogleGenAIProvider {
3
36
  id;
4
37
  model;
5
38
  client;
6
39
  temperature;
7
40
  maxOutputTokens;
41
+ maxRetries;
8
42
  constructor(options) {
9
43
  this.client = new GoogleGenAI({
10
44
  apiKey: options.apiKey,
@@ -13,44 +47,91 @@ export class GoogleGenAIProvider {
13
47
  this.model = options.model;
14
48
  this.temperature = options.temperature;
15
49
  this.maxOutputTokens = options.maxOutputTokens;
50
+ this.maxRetries = options.maxRetries ?? 3;
16
51
  }
17
- async generate(messages, tools) {
18
- const { contents, systemInstruction } = mapConversation(messages);
19
- const config = {};
20
- if (systemInstruction) {
21
- config.systemInstruction = systemInstruction;
22
- }
23
- if (typeof this.temperature === 'number') {
24
- config.temperature = this.temperature;
25
- }
26
- if (typeof this.maxOutputTokens === 'number') {
27
- config.maxOutputTokens = this.maxOutputTokens;
28
- }
29
- const mappedTools = mapTools(tools);
30
- if (mappedTools.length > 0) {
31
- config.tools = mappedTools;
52
+ /**
53
+ * Sleep for a given number of milliseconds
54
+ */
55
+ sleep(ms) {
56
+ return new Promise(resolve => setTimeout(resolve, ms));
57
+ }
58
+ /**
59
+ * Calculate exponential backoff delay with jitter
60
+ */
61
+ getBackoffDelay(attempt, baseDelay = 1000, maxDelay = 30000) {
62
+ const delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
63
+ return delay + Math.random() * delay * 0.1;
64
+ }
65
+ /**
66
+ * Execute request with retry logic for transient errors
67
+ */
68
+ async executeWithRetry(operation, operationName) {
69
+ let lastError;
70
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
71
+ try {
72
+ return await operation();
73
+ }
74
+ catch (error) {
75
+ lastError = error instanceof Error ? error : new Error(String(error));
76
+ if (isRecoverableError(error) && attempt < this.maxRetries) {
77
+ const delay = this.getBackoffDelay(attempt);
78
+ console.warn(`[${this.id}] ${operationName} failed (attempt ${attempt + 1}/${this.maxRetries + 1}): ` +
79
+ `${lastError.message}. Retrying in ${Math.round(delay)}ms...`);
80
+ await this.sleep(delay);
81
+ continue;
82
+ }
83
+ throw error;
84
+ }
32
85
  }
33
- const response = await this.client.models.generateContent({
34
- model: this.model,
35
- contents: contents.length ? contents : createEmptyUserContent(),
36
- config: Object.keys(config).length ? config : undefined,
37
- });
38
- const usage = mapUsage(response.usageMetadata);
39
- const toolCalls = mapFunctionCalls(response.functionCalls ?? []);
40
- const content = response.text?.trim() ?? '';
41
- if (toolCalls.length > 0) {
86
+ throw lastError;
87
+ }
88
+ async generate(messages, tools) {
89
+ return this.executeWithRetry(async () => {
90
+ const { contents, systemInstruction } = mapConversation(messages);
91
+ const config = {};
92
+ if (systemInstruction) {
93
+ config.systemInstruction = systemInstruction;
94
+ }
95
+ if (typeof this.temperature === 'number') {
96
+ config.temperature = this.temperature;
97
+ }
98
+ if (typeof this.maxOutputTokens === 'number') {
99
+ config.maxOutputTokens = this.maxOutputTokens;
100
+ }
101
+ const mappedTools = mapTools(tools);
102
+ if (mappedTools.length > 0) {
103
+ config.tools = mappedTools;
104
+ }
105
+ const response = await this.client.models.generateContent({
106
+ model: this.model,
107
+ contents: contents.length ? contents : createEmptyUserContent(),
108
+ config: Object.keys(config).length ? config : undefined,
109
+ });
110
+ const usage = mapUsage(response.usageMetadata);
111
+ // Safely extract tool calls with error recovery
112
+ let toolCalls = [];
113
+ try {
114
+ toolCalls = mapFunctionCalls(response.functionCalls ?? []);
115
+ }
116
+ catch (parseError) {
117
+ console.warn(`[${this.id}] Failed to parse function calls, recovering: ` +
118
+ `${parseError instanceof Error ? parseError.message : String(parseError)}`);
119
+ }
120
+ const content = response.text?.trim() ?? '';
121
+ if (toolCalls.length > 0) {
122
+ return {
123
+ type: 'tool_calls',
124
+ toolCalls,
125
+ content,
126
+ usage,
127
+ };
128
+ }
42
129
  return {
43
- type: 'tool_calls',
44
- toolCalls,
130
+ type: 'message',
45
131
  content,
46
132
  usage,
47
133
  };
48
- }
49
- return {
50
- type: 'message',
51
- content,
52
- usage,
53
- };
134
+ }, 'generate');
54
135
  }
55
136
  }
56
137
  function mapConversation(messages) {
@@ -1 +1 @@
1
- {"version":3,"file":"googleProvider.js","sourceRoot":"","sources":["../../src/providers/googleProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"googleProvider.js","sourceRoot":"","sources":["../../src/providers/googleProvider.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,41 @@
1
1
  import type { ConversationMessage, LLMProvider, ProviderId, ProviderResponse, ProviderToolDefinition } from '../core/types.js';
2
+ /**
3
+ * Custom error class for provider-specific failures
4
+ */
5
+ export declare class ProviderStreamError extends Error {
6
+ readonly isRetryable: boolean;
7
+ readonly originalError?: Error;
8
+ readonly providerId: string;
9
+ constructor(message: string, providerId: string, originalError?: Error, isRetryable?: boolean);
10
+ }
2
11
  interface OpenAIChatCompletionsOptions {
3
12
  apiKey: string;
4
13
  model: string;
5
14
  providerId?: ProviderId;
6
15
  baseURL?: string;
16
+ /** Request timeout in milliseconds (default: 120000) */
17
+ timeout?: number;
18
+ /** Maximum retries for transient errors (default: 3) */
19
+ maxRetries?: number;
7
20
  }
8
21
  export declare class OpenAIChatCompletionsProvider implements LLMProvider {
9
22
  readonly id: ProviderId;
10
23
  readonly model: string;
11
24
  private readonly client;
25
+ private readonly maxRetries;
12
26
  constructor(options: OpenAIChatCompletionsOptions);
27
+ /**
28
+ * Sleep for a given number of milliseconds
29
+ */
30
+ private sleep;
31
+ /**
32
+ * Calculate exponential backoff delay
33
+ */
34
+ private getBackoffDelay;
35
+ /**
36
+ * Execute request with retry logic for transient errors
37
+ */
38
+ private executeWithRetry;
13
39
  generate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
14
40
  }
15
41
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"openaiChatCompletionsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/openaiChatCompletionsProvider.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EAGvB,MAAM,kBAAkB,CAAC;AAE1B,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,6BAA8B,YAAW,WAAW;IAC/D,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,EAAE,4BAA4B;IAc3C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAuC5G"}
1
+ {"version":3,"file":"openaiChatCompletionsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/openaiChatCompletionsProvider.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EAGvB,MAAM,kBAAkB,CAAC;AA0B1B;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,UAAO;CAY3F;AAsBD,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,qBAAa,6BAA8B,YAAW,WAAW;IAC/D,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBACxB,OAAO,EAAE,4BAA4B;IAiBjD;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;YACW,gBAAgB;IAqCxB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgG5G"}
@@ -1,11 +1,68 @@
1
1
  import OpenAI from 'openai';
2
+ // ============================================================================
3
+ // Stream/Fetch Error Types for Detection
4
+ // ============================================================================
5
+ /**
6
+ * Error types that indicate stream or network failures that should be retried
7
+ */
8
+ const RECOVERABLE_ERROR_PATTERNS = [
9
+ 'premature close',
10
+ 'premature end',
11
+ 'unexpected end',
12
+ 'aborted',
13
+ 'fetcherror',
14
+ 'invalid response body',
15
+ 'gunzip',
16
+ 'decompress',
17
+ 'econnreset',
18
+ 'econnrefused',
19
+ 'epipe',
20
+ 'socket hang up',
21
+ 'network',
22
+ 'timeout',
23
+ ];
24
+ /**
25
+ * Custom error class for provider-specific failures
26
+ */
27
+ export class ProviderStreamError extends Error {
28
+ isRetryable;
29
+ originalError;
30
+ providerId;
31
+ constructor(message, providerId, originalError, isRetryable = true) {
32
+ super(message);
33
+ this.name = 'ProviderStreamError';
34
+ this.providerId = providerId;
35
+ this.originalError = originalError;
36
+ this.isRetryable = isRetryable;
37
+ // Preserve stack trace
38
+ if (originalError?.stack) {
39
+ this.stack = `${this.stack}\nCaused by: ${originalError.stack}`;
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Check if an error is recoverable (should be retried)
45
+ */
46
+ function isRecoverableError(error) {
47
+ if (!(error instanceof Error))
48
+ return false;
49
+ const message = error.message.toLowerCase();
50
+ const errorName = error.name?.toLowerCase() ?? '';
51
+ const errorCode = error.code?.toLowerCase() ?? '';
52
+ // Check all sources for recoverable patterns
53
+ const allText = `${message} ${errorName} ${errorCode}`;
54
+ return RECOVERABLE_ERROR_PATTERNS.some(pattern => allText.includes(pattern));
55
+ }
2
56
  export class OpenAIChatCompletionsProvider {
3
57
  id;
4
58
  model;
5
59
  client;
60
+ maxRetries;
6
61
  constructor(options) {
7
62
  const clientConfig = {
8
63
  apiKey: options.apiKey,
64
+ timeout: options.timeout ?? 120000,
65
+ maxRetries: 0, // We handle retries ourselves for better control
9
66
  };
10
67
  if (options.baseURL) {
11
68
  clientConfig.baseURL = options.baseURL;
@@ -13,40 +70,118 @@ export class OpenAIChatCompletionsProvider {
13
70
  this.client = new OpenAI(clientConfig);
14
71
  this.id = options.providerId ?? 'openai';
15
72
  this.model = options.model;
73
+ this.maxRetries = options.maxRetries ?? 3;
74
+ }
75
+ /**
76
+ * Sleep for a given number of milliseconds
77
+ */
78
+ sleep(ms) {
79
+ return new Promise(resolve => setTimeout(resolve, ms));
80
+ }
81
+ /**
82
+ * Calculate exponential backoff delay
83
+ */
84
+ getBackoffDelay(attempt, baseDelay = 1000, maxDelay = 30000) {
85
+ const delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
86
+ // Add jitter to prevent thundering herd
87
+ return delay + Math.random() * delay * 0.1;
88
+ }
89
+ /**
90
+ * Execute request with retry logic for transient errors
91
+ */
92
+ async executeWithRetry(operation, operationName) {
93
+ let lastError;
94
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
95
+ try {
96
+ return await operation();
97
+ }
98
+ catch (error) {
99
+ lastError = error instanceof Error ? error : new Error(String(error));
100
+ // Check if this is a recoverable error
101
+ if (isRecoverableError(error) && attempt < this.maxRetries) {
102
+ const delay = this.getBackoffDelay(attempt);
103
+ console.warn(`[${this.id}] ${operationName} failed (attempt ${attempt + 1}/${this.maxRetries + 1}): ` +
104
+ `${lastError.message}. Retrying in ${Math.round(delay)}ms...`);
105
+ await this.sleep(delay);
106
+ continue;
107
+ }
108
+ // Non-recoverable error or out of retries
109
+ throw new ProviderStreamError(`${operationName} failed after ${attempt + 1} attempts: ${lastError.message}`, this.id, lastError, isRecoverableError(error));
110
+ }
111
+ }
112
+ // Should not reach here, but TypeScript needs this
113
+ throw lastError;
16
114
  }
17
115
  async generate(messages, tools) {
18
- const request = {
19
- model: this.model,
20
- messages: mapMessages(messages),
21
- tools: tools.length ? tools.map(mapTool) : undefined,
22
- stream: false,
23
- };
24
- const completion = await this.client.chat.completions.create(request);
25
- assertHasChoices(completion);
26
- const choice = completion.choices[0];
27
- const usage = mapUsage(completion.usage);
28
- if (!choice) {
29
- return {
30
- type: 'message',
31
- content: '',
32
- usage,
116
+ return this.executeWithRetry(async () => {
117
+ const request = {
118
+ model: this.model,
119
+ messages: mapMessages(messages),
120
+ tools: tools.length ? tools.map(mapTool) : undefined,
121
+ stream: false,
33
122
  };
34
- }
35
- const toolCalls = (choice.message.tool_calls ?? []).map(mapToolCall);
36
- const content = extractMessageContent(choice);
37
- if (toolCalls.length > 0) {
123
+ let completion;
124
+ try {
125
+ const result = await this.client.chat.completions.create(request);
126
+ assertHasChoices(result);
127
+ completion = result;
128
+ }
129
+ catch (error) {
130
+ // Wrap and rethrow with more context
131
+ if (error instanceof Error) {
132
+ // Check for specific API error types
133
+ const apiError = error;
134
+ if (apiError.status === 401) {
135
+ throw new ProviderStreamError(`Authentication failed for ${this.id}. Check your API key.`, this.id, error, false // Not retryable
136
+ );
137
+ }
138
+ if (apiError.status === 403) {
139
+ throw new ProviderStreamError(`Access forbidden for ${this.id}. Check your permissions.`, this.id, error, false // Not retryable
140
+ );
141
+ }
142
+ // Let recoverable errors propagate for retry
143
+ if (isRecoverableError(error)) {
144
+ throw error;
145
+ }
146
+ // Wrap other errors
147
+ throw new ProviderStreamError(`API request failed: ${error.message}`, this.id, error, false);
148
+ }
149
+ throw error;
150
+ }
151
+ const choice = completion.choices[0];
152
+ const usage = mapUsage(completion.usage);
153
+ if (!choice) {
154
+ return {
155
+ type: 'message',
156
+ content: '',
157
+ usage,
158
+ };
159
+ }
160
+ // Safely extract tool calls with error recovery
161
+ let toolCalls = [];
162
+ try {
163
+ toolCalls = (choice.message.tool_calls ?? []).map(mapToolCall);
164
+ }
165
+ catch (parseError) {
166
+ console.warn(`[${this.id}] Failed to parse tool calls, recovering: ` +
167
+ `${parseError instanceof Error ? parseError.message : String(parseError)}`);
168
+ // Continue with empty tool calls rather than failing
169
+ }
170
+ const content = extractMessageContent(choice);
171
+ if (toolCalls.length > 0) {
172
+ return {
173
+ type: 'tool_calls',
174
+ toolCalls,
175
+ content,
176
+ usage,
177
+ };
178
+ }
38
179
  return {
39
- type: 'tool_calls',
40
- toolCalls,
180
+ type: 'message',
41
181
  content,
42
182
  usage,
43
183
  };
44
- }
45
- return {
46
- type: 'message',
47
- content,
48
- usage,
49
- };
184
+ }, 'generate');
50
185
  }
51
186
  }
52
187
  function mapMessages(messages) {
@@ -1 +1 @@
1
- {"version":3,"file":"openaiChatCompletionsProvider.js","sourceRoot":"","sources":["../../src/providers/openaiChatCompletionsProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openaiChatCompletionsProvider.js","sourceRoot":"","sources":["../../src/providers/openaiChatCompletionsProvider.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ interface OpenAIProviderOptions {
6
6
  baseURL?: string;
7
7
  reasoningEffort?: ReasoningEffortLevel;
8
8
  textVerbosity?: TextVerbosityLevel;
9
+ /** Maximum retries for transient errors (default: 3) */
10
+ maxRetries?: number;
11
+ /** Request timeout in milliseconds (default: 120000) */
12
+ timeout?: number;
9
13
  }
10
14
  export declare class OpenAIResponsesProvider implements LLMProvider {
11
15
  readonly id: ProviderId;
@@ -13,7 +17,20 @@ export declare class OpenAIResponsesProvider implements LLMProvider {
13
17
  private readonly client;
14
18
  private readonly reasoningEffort?;
15
19
  private readonly textVerbosity?;
20
+ private readonly maxRetries;
16
21
  constructor(options: OpenAIProviderOptions);
22
+ /**
23
+ * Sleep for a given number of milliseconds
24
+ */
25
+ private sleep;
26
+ /**
27
+ * Calculate exponential backoff delay with jitter
28
+ */
29
+ private getBackoffDelay;
30
+ /**
31
+ * Execute request with retry logic for transient errors
32
+ */
33
+ private executeWithRetry;
17
34
  generate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
18
35
  generateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
19
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openaiResponsesProvider.d.ts","sourceRoot":"","sources":["../../src/providers/openaiResponsesProvider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EAGtB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAW1B,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AASD,qBAAa,uBAAwB,YAAW,WAAW;IACzD,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAqB;gBAExC,OAAO,EAAE,qBAAqB;IAgBpC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoCpG,cAAc,CACnB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,sBAAsB,EAAE,GAC9B,qBAAqB,CAAC,WAAW,CAAC;CA6EtC"}
1
+ {"version":3,"file":"openaiResponsesProvider.d.ts","sourceRoot":"","sources":["../../src/providers/openaiResponsesProvider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EAGtB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACZ,MAAM,kBAAkB,CAAC;AA+C1B,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD,qBAAa,uBAAwB,YAAW,WAAW;IACzD,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,qBAAqB;IAmB1C;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;YACW,gBAAgB;IA6BxB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgDpG,cAAc,CACnB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,sBAAsB,EAAE,GAC9B,qBAAqB,CAAC,WAAW,CAAC;CA6EtC"}