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
|
@@ -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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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: '
|
|
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":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
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;
|
|
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"}
|
|
@@ -1,13 +1,50 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
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 errorCode = error.code?.toLowerCase() ?? '';
|
|
33
|
+
const allText = `${message} ${errorName} ${errorCode}`;
|
|
34
|
+
return RECOVERABLE_ERROR_PATTERNS.some(pattern => allText.includes(pattern));
|
|
35
|
+
}
|
|
2
36
|
export class OpenAIResponsesProvider {
|
|
3
37
|
id;
|
|
4
38
|
model;
|
|
5
39
|
client;
|
|
6
40
|
reasoningEffort;
|
|
7
41
|
textVerbosity;
|
|
42
|
+
maxRetries;
|
|
8
43
|
constructor(options) {
|
|
9
44
|
const clientConfig = {
|
|
10
45
|
apiKey: options.apiKey,
|
|
46
|
+
timeout: options.timeout ?? 120000,
|
|
47
|
+
maxRetries: 0, // We handle retries ourselves
|
|
11
48
|
};
|
|
12
49
|
if (options.baseURL) {
|
|
13
50
|
clientConfig.baseURL = options.baseURL;
|
|
@@ -17,37 +54,84 @@ export class OpenAIResponsesProvider {
|
|
|
17
54
|
this.model = options.model;
|
|
18
55
|
this.reasoningEffort = options.reasoningEffort;
|
|
19
56
|
this.textVerbosity = options.textVerbosity;
|
|
57
|
+
this.maxRetries = options.maxRetries ?? 3;
|
|
20
58
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Sleep for a given number of milliseconds
|
|
61
|
+
*/
|
|
62
|
+
sleep(ms) {
|
|
63
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Calculate exponential backoff delay with jitter
|
|
67
|
+
*/
|
|
68
|
+
getBackoffDelay(attempt, baseDelay = 1000, maxDelay = 30000) {
|
|
69
|
+
const delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
|
|
70
|
+
return delay + Math.random() * delay * 0.1;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Execute request with retry logic for transient errors
|
|
74
|
+
*/
|
|
75
|
+
async executeWithRetry(operation, operationName) {
|
|
76
|
+
let lastError;
|
|
77
|
+
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
78
|
+
try {
|
|
79
|
+
return await operation();
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
83
|
+
if (isRecoverableError(error) && attempt < this.maxRetries) {
|
|
84
|
+
const delay = this.getBackoffDelay(attempt);
|
|
85
|
+
console.warn(`[${this.id}] ${operationName} failed (attempt ${attempt + 1}/${this.maxRetries + 1}): ` +
|
|
86
|
+
`${lastError.message}. Retrying in ${Math.round(delay)}ms...`);
|
|
87
|
+
await this.sleep(delay);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
33
92
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
93
|
+
throw lastError;
|
|
94
|
+
}
|
|
95
|
+
async generate(messages, tools) {
|
|
96
|
+
return this.executeWithRetry(async () => {
|
|
97
|
+
const request = {
|
|
98
|
+
model: this.model,
|
|
99
|
+
input: mapMessages(messages),
|
|
100
|
+
tools: tools.length ? tools.map(mapTool) : undefined,
|
|
101
|
+
stream: false,
|
|
102
|
+
};
|
|
103
|
+
if (this.reasoningEffort) {
|
|
104
|
+
request.reasoning = { effort: this.reasoningEffort };
|
|
105
|
+
}
|
|
106
|
+
if (this.textVerbosity) {
|
|
107
|
+
request.text = { verbosity: this.textVerbosity };
|
|
108
|
+
}
|
|
109
|
+
const response = await this.client.responses.create(request);
|
|
110
|
+
assertHasOutput(response);
|
|
111
|
+
// Safely extract tool calls with error recovery
|
|
112
|
+
let toolCalls = [];
|
|
113
|
+
try {
|
|
114
|
+
toolCalls = response.output.filter(isFunctionCall).map(mapToolCall);
|
|
115
|
+
}
|
|
116
|
+
catch (parseError) {
|
|
117
|
+
console.warn(`[${this.id}] Failed to parse tool calls, recovering: ` +
|
|
118
|
+
`${parseError instanceof Error ? parseError.message : String(parseError)}`);
|
|
119
|
+
}
|
|
120
|
+
const usage = mapUsage(response.usage);
|
|
121
|
+
if (toolCalls.length > 0) {
|
|
122
|
+
return {
|
|
123
|
+
type: 'tool_calls',
|
|
124
|
+
toolCalls,
|
|
125
|
+
content: extractTextContent(response),
|
|
126
|
+
usage,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
39
129
|
return {
|
|
40
|
-
type: '
|
|
41
|
-
toolCalls,
|
|
130
|
+
type: 'message',
|
|
42
131
|
content: extractTextContent(response),
|
|
43
132
|
usage,
|
|
44
133
|
};
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
type: 'message',
|
|
48
|
-
content: extractTextContent(response),
|
|
49
|
-
usage,
|
|
50
|
-
};
|
|
134
|
+
}, 'generate');
|
|
51
135
|
}
|
|
52
136
|
async *generateStream(messages, tools) {
|
|
53
137
|
const request = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openaiResponsesProvider.js","sourceRoot":"","sources":["../../src/providers/openaiResponsesProvider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"openaiResponsesProvider.js","sourceRoot":"","sources":["../../src/providers/openaiResponsesProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilientProvider.d.ts","sourceRoot":"","sources":["../../src/providers/resilientProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACX,MAAM,kBAAkB,CAAC;AAO1B,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2DAA2D;IAC3D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wDAAwD;IACxD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"resilientProvider.d.ts","sourceRoot":"","sources":["../../src/providers/resilientProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACX,MAAM,kBAAkB,CAAC;AAO1B,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2DAA2D;IAC3D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wDAAwD;IACxD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAmHD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,KAAK,CAKX;gBAEU,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAE,uBAA4B;IA0BvE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;YACW,qBAAqB;IAyCnC;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,sBAAsB,EAAE,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAO5B;;;;;OAKG;IACI,cAAc,CACnB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,sBAAsB,EAAE,GAC9B,qBAAqB,CAAC,WAAW,CAAC;IAoErC;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;KACzB;IAQD;;OAEG;IACH,UAAU,IAAI,IAAI;CAQnB;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,uBAAuB,GAC/B,iBAAiB,CAEnB;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAsC/E,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAC3C,iBAAiB,CAGnB"}
|
|
@@ -30,6 +30,11 @@ const TRANSIENT_ERROR_PATTERNS = [
|
|
|
30
30
|
'connection',
|
|
31
31
|
'econnrefused',
|
|
32
32
|
'econnreset',
|
|
33
|
+
'enotfound',
|
|
34
|
+
'epipe',
|
|
35
|
+
'econnaborted',
|
|
36
|
+
'ehostunreach',
|
|
37
|
+
'enetunreach',
|
|
33
38
|
'socket',
|
|
34
39
|
'temporarily unavailable',
|
|
35
40
|
'502',
|
|
@@ -40,6 +45,28 @@ const TRANSIENT_ERROR_PATTERNS = [
|
|
|
40
45
|
'gateway timeout',
|
|
41
46
|
'internal server error',
|
|
42
47
|
'500',
|
|
48
|
+
// Stream and fetch errors
|
|
49
|
+
'premature close',
|
|
50
|
+
'premature end',
|
|
51
|
+
'unexpected end',
|
|
52
|
+
'stream',
|
|
53
|
+
'aborted',
|
|
54
|
+
'fetcherror',
|
|
55
|
+
'fetch error',
|
|
56
|
+
'invalid response body',
|
|
57
|
+
'response body',
|
|
58
|
+
'gunzip',
|
|
59
|
+
'decompress',
|
|
60
|
+
'zlib',
|
|
61
|
+
'content-encoding',
|
|
62
|
+
'chunked encoding',
|
|
63
|
+
'transfer-encoding',
|
|
64
|
+
// SSL/TLS errors
|
|
65
|
+
'ssl',
|
|
66
|
+
'tls',
|
|
67
|
+
'certificate',
|
|
68
|
+
'cert',
|
|
69
|
+
'handshake',
|
|
43
70
|
];
|
|
44
71
|
function isRateLimitError(error) {
|
|
45
72
|
if (!(error instanceof Error))
|
|
@@ -50,8 +77,27 @@ function isRateLimitError(error) {
|
|
|
50
77
|
function isTransientError(error) {
|
|
51
78
|
if (!(error instanceof Error))
|
|
52
79
|
return false;
|
|
80
|
+
// Check message
|
|
53
81
|
const message = error.message.toLowerCase();
|
|
54
|
-
|
|
82
|
+
if (TRANSIENT_ERROR_PATTERNS.some(pattern => message.includes(pattern))) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
// Check error name/type (FetchError, AbortError, etc.)
|
|
86
|
+
const errorName = error.name?.toLowerCase() ?? '';
|
|
87
|
+
if (errorName.includes('fetch') || errorName.includes('abort') || errorName.includes('network')) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
// Check error code if present (Node.js style)
|
|
91
|
+
const errorCode = error.code?.toLowerCase() ?? '';
|
|
92
|
+
if (errorCode && TRANSIENT_ERROR_PATTERNS.some(pattern => errorCode.includes(pattern))) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
// Check cause chain for nested errors
|
|
96
|
+
const cause = error.cause;
|
|
97
|
+
if (cause instanceof Error) {
|
|
98
|
+
return isTransientError(cause);
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
55
101
|
}
|
|
56
102
|
function shouldRetry(error) {
|
|
57
103
|
return isRateLimitError(error) || isTransientError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resilientProvider.js","sourceRoot":"","sources":["../../src/providers/resilientProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AA6BnE,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,MAAM,mBAAmB,GAAG;IAC1B,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,mBAAmB;IACnB,KAAK;IACL,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC/B,SAAS;IACT,WAAW;IACX,SAAS;IACT,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,QAAQ;IACR,yBAAyB;IACzB,KAAK;IACL,KAAK;IACL,KAAK;IACL,aAAa;IACb,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,KAAK;
|
|
1
|
+
{"version":3,"file":"resilientProvider.js","sourceRoot":"","sources":["../../src/providers/resilientProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -200,6 +200,12 @@ export declare class InteractiveShell {
|
|
|
200
200
|
* Context is automatically managed - overflow errors trigger auto-recovery.
|
|
201
201
|
*/
|
|
202
202
|
private processContinuousRequest;
|
|
203
|
+
/**
|
|
204
|
+
* Check if a response contains indicators that work is actually incomplete,
|
|
205
|
+
* even if it also contains TASK_FULLY_COMPLETE marker.
|
|
206
|
+
* This catches contradictory responses where the AI says "done" but also "not integrated yet".
|
|
207
|
+
*/
|
|
208
|
+
private responseIndicatesIncompleteWork;
|
|
203
209
|
/**
|
|
204
210
|
* Extract tool names from a response by looking for tool call patterns
|
|
205
211
|
*/
|