@vybestack/llxprt-code-core 0.1.23 → 0.2.2-nightly.250908.7b895396
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/README.md +21 -17
- package/dist/src/adapters/IStreamAdapter.d.ts +3 -3
- package/dist/src/auth/oauth-errors.d.ts +173 -0
- package/dist/src/auth/oauth-errors.js +461 -0
- package/dist/src/auth/oauth-errors.js.map +1 -0
- package/dist/src/auth/precedence.d.ts +1 -5
- package/dist/src/auth/precedence.js +28 -48
- package/dist/src/auth/precedence.js.map +1 -1
- package/dist/src/auth/token-store.js +2 -2
- package/dist/src/auth/token-store.js.map +1 -1
- package/dist/src/auth/types.d.ts +4 -4
- package/dist/src/code_assist/codeAssist.js +19 -6
- package/dist/src/code_assist/codeAssist.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +7 -0
- package/dist/src/code_assist/oauth2.js +82 -32
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/server.js +15 -4
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/setup.js +9 -0
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/config/index.d.ts +7 -0
- package/dist/src/config/index.js +8 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/core/client.d.ts +15 -20
- package/dist/src/core/client.js +98 -124
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/compression-config.d.ts +10 -0
- package/dist/src/core/compression-config.js +17 -0
- package/dist/src/core/compression-config.js.map +1 -0
- package/dist/src/core/coreToolScheduler.js +50 -15
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +68 -9
- package/dist/src/core/geminiChat.js +940 -405
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +70 -19
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/prompts.js +35 -25
- package/dist/src/core/prompts.js.map +1 -1
- package/dist/src/core/turn.d.ts +1 -0
- package/dist/src/core/turn.js +8 -6
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +1 -1
- package/dist/src/ide/ide-client.js +12 -6
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/index.d.ts +4 -2
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompt-config/TemplateEngine.js +17 -0
- package/dist/src/prompt-config/TemplateEngine.js.map +1 -1
- package/dist/src/prompt-config/defaults/core-defaults.js +39 -32
- package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/core.md +2 -0
- package/dist/src/prompt-config/defaults/provider-defaults.js +34 -27
- package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
- package/dist/src/prompt-config/defaults/providers/gemini/core.md +270 -0
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +12 -0
- package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +12 -0
- package/dist/src/prompt-config/types.d.ts +2 -0
- package/dist/src/providers/BaseProvider.d.ts +39 -13
- package/dist/src/providers/BaseProvider.js +102 -28
- package/dist/src/providers/BaseProvider.js.map +1 -1
- package/dist/src/providers/IProvider.d.ts +17 -3
- package/dist/src/providers/LoggingProviderWrapper.d.ts +10 -3
- package/dist/src/providers/LoggingProviderWrapper.js +33 -27
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
- package/dist/src/providers/ProviderContentGenerator.js +9 -6
- package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
- package/dist/src/providers/ProviderManager.d.ts +4 -0
- package/dist/src/providers/ProviderManager.js +6 -0
- package/dist/src/providers/ProviderManager.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +34 -21
- package/dist/src/providers/anthropic/AnthropicProvider.js +505 -492
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +23 -9
- package/dist/src/providers/gemini/GeminiProvider.js +344 -515
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/ConversationCache.d.ts +3 -3
- package/dist/src/providers/openai/IChatGenerateParams.d.ts +9 -4
- package/dist/src/providers/openai/OpenAIProvider.d.ts +46 -96
- package/dist/src/providers/openai/OpenAIProvider.js +580 -1392
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/buildResponsesRequest.d.ts +3 -3
- package/dist/src/providers/openai/buildResponsesRequest.js +67 -37
- package/dist/src/providers/openai/buildResponsesRequest.js.map +1 -1
- package/dist/src/providers/openai/estimateRemoteTokens.d.ts +2 -2
- package/dist/src/providers/openai/estimateRemoteTokens.js +21 -8
- package/dist/src/providers/openai/estimateRemoteTokens.js.map +1 -1
- package/dist/src/providers/openai/parseResponsesStream.d.ts +6 -2
- package/dist/src/providers/openai/parseResponsesStream.js +99 -391
- package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
- package/dist/src/providers/openai/syntheticToolResponses.d.ts +5 -5
- package/dist/src/providers/openai/syntheticToolResponses.js +102 -91
- package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -1
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +89 -0
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +451 -0
- package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -0
- package/dist/src/providers/openai-responses/index.d.ts +1 -0
- package/dist/src/providers/openai-responses/index.js +2 -0
- package/dist/src/providers/openai-responses/index.js.map +1 -0
- package/dist/src/providers/tokenizers/OpenAITokenizer.js +3 -3
- package/dist/src/providers/tokenizers/OpenAITokenizer.js.map +1 -1
- package/dist/src/providers/types.d.ts +1 -1
- package/dist/src/services/ClipboardService.d.ts +19 -0
- package/dist/src/services/ClipboardService.js +66 -0
- package/dist/src/services/ClipboardService.js.map +1 -0
- package/dist/src/services/history/ContentConverters.d.ts +43 -0
- package/dist/src/services/history/ContentConverters.js +325 -0
- package/dist/src/services/history/ContentConverters.js.map +1 -0
- package/dist/src/{providers/IMessage.d.ts → services/history/HistoryEvents.d.ts} +16 -22
- package/dist/src/{providers/IMessage.js → services/history/HistoryEvents.js} +1 -1
- package/dist/src/services/history/HistoryEvents.js.map +1 -0
- package/dist/src/services/history/HistoryService.d.ts +220 -0
- package/dist/src/services/history/HistoryService.js +673 -0
- package/dist/src/services/history/HistoryService.js.map +1 -0
- package/dist/src/services/history/IContent.d.ts +183 -0
- package/dist/src/services/history/IContent.js +104 -0
- package/dist/src/services/history/IContent.js.map +1 -0
- package/dist/src/services/index.d.ts +1 -0
- package/dist/src/services/index.js +1 -0
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/settings/SettingsService.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +16 -4
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/IToolFormatter.d.ts +2 -2
- package/dist/src/tools/ToolFormatter.d.ts +42 -4
- package/dist/src/tools/ToolFormatter.js +151 -64
- package/dist/src/tools/ToolFormatter.js.map +1 -1
- package/dist/src/tools/doubleEscapeUtils.d.ts +57 -0
- package/dist/src/tools/doubleEscapeUtils.js +241 -0
- package/dist/src/tools/doubleEscapeUtils.js.map +1 -0
- package/dist/src/tools/read-file.d.ts +6 -1
- package/dist/src/tools/read-file.js +25 -11
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/todo-schemas.d.ts +4 -4
- package/dist/src/tools/tool-registry.d.ts +8 -1
- package/dist/src/tools/tool-registry.js +79 -23
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.js +13 -0
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +6 -1
- package/dist/src/tools/write-file.js +48 -26
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +12 -0
- package/dist/src/utils/bfsFileSearch.js +2 -6
- package/dist/src/utils/bfsFileSearch.js.map +1 -1
- package/dist/src/utils/schemaValidator.js +16 -1
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/package.json +8 -7
- package/dist/src/providers/IMessage.js.map +0 -1
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.d.ts +0 -69
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +0 -577
- package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +0 -1
@@ -1,459 +1,167 @@
|
|
1
|
-
/**
|
2
|
-
* @plan PLAN-20250120-DEBUGLOGGING.P15
|
3
|
-
* @requirement REQ-INT-001.1
|
4
|
-
*/
|
5
|
-
import { DebugLogger } from '../../debug/index.js';
|
6
|
-
import { ContentGeneratorRole } from '../ContentGeneratorRole.js';
|
7
|
-
const MAX_ACCUMULATOR_SIZE = 10000; // Prevent unbounded accumulator growth
|
8
|
-
// Helper function to convert O3 model's answer/response fields to strings
|
9
|
-
function formatArrayResponse(value) {
|
10
|
-
if (typeof value === 'string') {
|
11
|
-
return value;
|
12
|
-
}
|
13
|
-
if (Array.isArray(value)) {
|
14
|
-
// Handle numeric arrays like [4, 1] -> "4.1"
|
15
|
-
if (value.every((item) => typeof item === 'number')) {
|
16
|
-
return value.join('.');
|
17
|
-
}
|
18
|
-
// Handle mixed arrays like ["gpt", 4.1] -> "gpt 4.1"
|
19
|
-
return value.map((item) => String(item)).join(' ');
|
20
|
-
}
|
21
|
-
// Handle other types by converting to string
|
22
|
-
return String(value);
|
23
|
-
}
|
24
|
-
/** Return true if the chunk starts with "{" or "[". Used to decide
|
25
|
-
whether it even makes sense to call JSON.parse on the chunk. */
|
26
|
-
function looksLikeJSONObjectOrArray(s) {
|
27
|
-
return /^[[{]/.test(s.trim());
|
28
|
-
}
|
29
|
-
// Create a single logger instance for the module (following singleton pattern)
|
30
|
-
const logger = new DebugLogger('llxprt:providers:openai');
|
31
1
|
export async function* parseResponsesStream(stream) {
|
32
|
-
const decoder = new TextDecoder();
|
33
2
|
const reader = stream.getReader();
|
3
|
+
const decoder = new TextDecoder();
|
34
4
|
let buffer = '';
|
35
|
-
// Track function calls being assembled
|
36
5
|
const functionCalls = new Map();
|
37
|
-
// Track accumulated text to detect reasoning JSON
|
38
|
-
let textAccumulator = '';
|
39
6
|
try {
|
40
7
|
while (true) {
|
41
8
|
const { done, value } = await reader.read();
|
42
9
|
if (done)
|
43
10
|
break;
|
11
|
+
// Decode chunk and add to buffer
|
44
12
|
buffer += decoder.decode(value, { stream: true });
|
13
|
+
// Process complete lines
|
45
14
|
const lines = buffer.split('\n');
|
46
|
-
buffer = lines.pop() || '';
|
15
|
+
buffer = lines.pop() || ''; // Keep incomplete line in buffer
|
47
16
|
for (const line of lines) {
|
48
|
-
if (line.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
continue;
|
53
|
-
}
|
54
|
-
else if (line.startsWith('data: ')) {
|
55
|
-
const dataLine = line.slice(6);
|
56
|
-
if (dataLine === '[DONE]') {
|
17
|
+
if (line.startsWith('data: ')) {
|
18
|
+
const data = line.substring(6);
|
19
|
+
// Skip [DONE] marker
|
20
|
+
if (data === '[DONE]')
|
57
21
|
continue;
|
58
|
-
}
|
59
22
|
try {
|
60
|
-
const event = JSON.parse(
|
23
|
+
const event = JSON.parse(data);
|
61
24
|
// Handle different event types
|
62
25
|
switch (event.type) {
|
63
26
|
case 'response.output_text.delta':
|
64
|
-
//
|
27
|
+
// Text content chunk
|
65
28
|
if (event.delta) {
|
66
|
-
// Fast-path: If delta is just a number, yield it immediately
|
67
|
-
if (/^\d+(\.\d+)?$/.test(event.delta.trim())) {
|
68
|
-
yield {
|
69
|
-
role: ContentGeneratorRole.ASSISTANT,
|
70
|
-
content: event.delta,
|
71
|
-
};
|
72
|
-
continue;
|
73
|
-
}
|
74
|
-
textAccumulator += event.delta;
|
75
|
-
// Only try to parse if accumulator looks like JSON
|
76
|
-
if (looksLikeJSONObjectOrArray(textAccumulator)) {
|
77
|
-
// Check if we have complete reasoning JSON
|
78
|
-
try {
|
79
|
-
const parsed = JSON.parse(textAccumulator);
|
80
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
81
|
-
// Format reasoning nicely
|
82
|
-
yield {
|
83
|
-
role: ContentGeneratorRole.ASSISTANT,
|
84
|
-
content: `Thinking: ${parsed.reasoning}\n\n`,
|
85
|
-
};
|
86
|
-
// Check if there's an answer/response field
|
87
|
-
if (parsed.answer || parsed.response) {
|
88
|
-
yield {
|
89
|
-
role: ContentGeneratorRole.ASSISTANT,
|
90
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
91
|
-
};
|
92
|
-
}
|
93
|
-
// Reset accumulator
|
94
|
-
textAccumulator = '';
|
95
|
-
continue;
|
96
|
-
}
|
97
|
-
}
|
98
|
-
catch {
|
99
|
-
// Not complete JSON yet or not reasoning
|
100
|
-
// Check if this looks like the start of JSON
|
101
|
-
if (textAccumulator.trim().startsWith('{') &&
|
102
|
-
textAccumulator.includes('"reasoning"')) {
|
103
|
-
// Still accumulating reasoning JSON, don't yield yet
|
104
|
-
if (textAccumulator.length > MAX_ACCUMULATOR_SIZE) {
|
105
|
-
yield {
|
106
|
-
role: ContentGeneratorRole.ASSISTANT,
|
107
|
-
content: textAccumulator,
|
108
|
-
};
|
109
|
-
textAccumulator = '';
|
110
|
-
}
|
111
|
-
continue;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
}
|
115
|
-
// Check if the delta itself is complete JSON (only if it looks like an object/array)
|
116
|
-
if (looksLikeJSONObjectOrArray(event.delta)) {
|
117
|
-
try {
|
118
|
-
const parsed = JSON.parse(event.delta);
|
119
|
-
if (parsed.reasoning !== undefined &&
|
120
|
-
parsed.next_speaker !== undefined) {
|
121
|
-
// This is complete O3 JSON in a single delta
|
122
|
-
yield {
|
123
|
-
role: ContentGeneratorRole.ASSISTANT,
|
124
|
-
content: `Thinking: ${parsed.reasoning}\n\n`,
|
125
|
-
};
|
126
|
-
// Check if there's an answer/response field
|
127
|
-
if (parsed.answer || parsed.response) {
|
128
|
-
yield {
|
129
|
-
role: ContentGeneratorRole.ASSISTANT,
|
130
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
131
|
-
};
|
132
|
-
}
|
133
|
-
// Reset accumulator
|
134
|
-
textAccumulator = '';
|
135
|
-
continue;
|
136
|
-
}
|
137
|
-
}
|
138
|
-
catch {
|
139
|
-
// Not JSON, continue with regular text handling
|
140
|
-
}
|
141
|
-
}
|
142
|
-
// Regular text, yield it
|
143
29
|
yield {
|
144
|
-
|
145
|
-
|
30
|
+
speaker: 'ai',
|
31
|
+
blocks: [{ type: 'text', text: event.delta }],
|
146
32
|
};
|
147
|
-
// Reset accumulator since we're in regular text mode
|
148
|
-
textAccumulator = '';
|
149
|
-
}
|
150
|
-
break;
|
151
|
-
case 'response.message_content.delta':
|
152
|
-
// Handle message content deltas (might contain reasoning)
|
153
|
-
if (event.delta) {
|
154
|
-
// Fast-path: If delta is just a number, yield it immediately
|
155
|
-
if (/^\d+(\.\d+)?$/.test(event.delta.trim())) {
|
156
|
-
yield {
|
157
|
-
role: ContentGeneratorRole.ASSISTANT,
|
158
|
-
content: event.delta,
|
159
|
-
};
|
160
|
-
continue;
|
161
|
-
}
|
162
|
-
textAccumulator += event.delta;
|
163
|
-
// Only try to parse if accumulator looks like JSON
|
164
|
-
if (looksLikeJSONObjectOrArray(textAccumulator)) {
|
165
|
-
// Check if we have complete reasoning JSON
|
166
|
-
try {
|
167
|
-
const parsed = JSON.parse(textAccumulator);
|
168
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
169
|
-
// Format reasoning nicely
|
170
|
-
yield {
|
171
|
-
role: ContentGeneratorRole.ASSISTANT,
|
172
|
-
content: `Thinking: ${parsed.reasoning}\n\n`,
|
173
|
-
};
|
174
|
-
// Check if there's an answer/response field
|
175
|
-
if (parsed.answer || parsed.response) {
|
176
|
-
yield {
|
177
|
-
role: ContentGeneratorRole.ASSISTANT,
|
178
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
179
|
-
};
|
180
|
-
}
|
181
|
-
// Reset accumulator
|
182
|
-
textAccumulator = '';
|
183
|
-
continue;
|
184
|
-
}
|
185
|
-
}
|
186
|
-
catch {
|
187
|
-
// Not complete JSON yet or not reasoning
|
188
|
-
// Check if this looks like the start of JSON
|
189
|
-
if (textAccumulator.trim().startsWith('{') &&
|
190
|
-
textAccumulator.includes('"reasoning"')) {
|
191
|
-
// Still accumulating reasoning JSON, don't yield yet
|
192
|
-
if (textAccumulator.length > MAX_ACCUMULATOR_SIZE) {
|
193
|
-
yield {
|
194
|
-
role: ContentGeneratorRole.ASSISTANT,
|
195
|
-
content: textAccumulator,
|
196
|
-
};
|
197
|
-
textAccumulator = '';
|
198
|
-
}
|
199
|
-
continue;
|
200
|
-
}
|
201
|
-
}
|
202
|
-
}
|
203
|
-
// Check if the delta itself is complete JSON (only if it looks like an object/array)
|
204
|
-
if (looksLikeJSONObjectOrArray(event.delta)) {
|
205
|
-
try {
|
206
|
-
const parsed = JSON.parse(event.delta);
|
207
|
-
if (parsed.reasoning !== undefined &&
|
208
|
-
parsed.next_speaker !== undefined) {
|
209
|
-
// This is complete O3 JSON in a single delta
|
210
|
-
yield {
|
211
|
-
role: ContentGeneratorRole.ASSISTANT,
|
212
|
-
content: `Thinking: ${parsed.reasoning}\n\n`,
|
213
|
-
};
|
214
|
-
// Check if there's an answer/response field
|
215
|
-
if (parsed.answer || parsed.response) {
|
216
|
-
yield {
|
217
|
-
role: ContentGeneratorRole.ASSISTANT,
|
218
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
219
|
-
};
|
220
|
-
}
|
221
|
-
// Reset accumulator
|
222
|
-
textAccumulator = '';
|
223
|
-
continue;
|
224
|
-
}
|
225
|
-
}
|
226
|
-
catch {
|
227
|
-
// Not JSON, continue with regular text handling
|
228
|
-
}
|
229
|
-
}
|
230
|
-
// If we have accumulated text that's not JSON, yield it all
|
231
|
-
if (textAccumulator &&
|
232
|
-
!looksLikeJSONObjectOrArray(textAccumulator)) {
|
233
|
-
yield {
|
234
|
-
role: ContentGeneratorRole.ASSISTANT,
|
235
|
-
content: textAccumulator,
|
236
|
-
};
|
237
|
-
textAccumulator = '';
|
238
|
-
}
|
239
|
-
else if (!textAccumulator) {
|
240
|
-
// No accumulator, just yield the delta
|
241
|
-
yield {
|
242
|
-
role: ContentGeneratorRole.ASSISTANT,
|
243
|
-
content: event.delta,
|
244
|
-
};
|
245
|
-
}
|
246
33
|
}
|
247
34
|
break;
|
248
35
|
case 'response.output_item.added':
|
249
|
-
//
|
36
|
+
// New function call started
|
250
37
|
if (event.item?.type === 'function_call' && event.item.id) {
|
251
38
|
functionCalls.set(event.item.id, {
|
252
|
-
id: event.item.
|
39
|
+
id: event.item.id,
|
40
|
+
call_id: event.item.call_id,
|
253
41
|
name: event.item.name || '',
|
254
42
|
arguments: event.item.arguments || '',
|
255
|
-
output_index: event.output_index || 0,
|
256
43
|
});
|
257
44
|
}
|
258
|
-
else if (event.item?.type === 'message') {
|
259
|
-
// Handle message-type items that might contain reasoning
|
260
|
-
// These should be handled but not stop the stream
|
261
|
-
if (event.item.content?.length) {
|
262
|
-
const content = event.item.content[0];
|
263
|
-
if (content?.type === 'text' && content.text) {
|
264
|
-
// Check if this is reasoning JSON
|
265
|
-
try {
|
266
|
-
const parsed = JSON.parse(content.text);
|
267
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
268
|
-
// This is reasoning JSON - format it nicely
|
269
|
-
yield {
|
270
|
-
role: ContentGeneratorRole.ASSISTANT,
|
271
|
-
content: `Thinking: ${parsed.reasoning}\n\n`,
|
272
|
-
};
|
273
|
-
// Check if there's an answer/response field
|
274
|
-
if (parsed.answer || parsed.response) {
|
275
|
-
yield {
|
276
|
-
role: ContentGeneratorRole.ASSISTANT,
|
277
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
278
|
-
};
|
279
|
-
}
|
280
|
-
}
|
281
|
-
else {
|
282
|
-
// Valid JSON but not reasoning
|
283
|
-
yield {
|
284
|
-
role: ContentGeneratorRole.ASSISTANT,
|
285
|
-
content: content.text,
|
286
|
-
};
|
287
|
-
}
|
288
|
-
}
|
289
|
-
catch {
|
290
|
-
// Not JSON, treat as regular text
|
291
|
-
yield {
|
292
|
-
role: ContentGeneratorRole.ASSISTANT,
|
293
|
-
content: content.text,
|
294
|
-
};
|
295
|
-
}
|
296
|
-
}
|
297
|
-
}
|
298
|
-
}
|
299
|
-
// Reset accumulator after processing output_item.added
|
300
|
-
textAccumulator = '';
|
301
45
|
break;
|
302
46
|
case 'response.function_call_arguments.delta':
|
303
|
-
//
|
304
|
-
if (event.item_id &&
|
305
|
-
event.delta &&
|
306
|
-
functionCalls.has(event.item_id)) {
|
47
|
+
// Function call arguments chunk
|
48
|
+
if (event.item_id && event.delta) {
|
307
49
|
const call = functionCalls.get(event.item_id);
|
308
|
-
call
|
50
|
+
if (call) {
|
51
|
+
call.arguments += event.delta;
|
52
|
+
}
|
309
53
|
}
|
310
54
|
break;
|
55
|
+
case 'response.function_call_arguments.done':
|
311
56
|
case 'response.output_item.done':
|
312
|
-
//
|
313
|
-
if (event.item?.type === 'function_call'
|
314
|
-
|
315
|
-
if (
|
316
|
-
const call = functionCalls.get(
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
{
|
327
|
-
id: call.id,
|
328
|
-
type: 'function',
|
329
|
-
function: {
|
57
|
+
// Function call completed
|
58
|
+
if (event.item?.type === 'function_call' || event.item_id) {
|
59
|
+
const itemId = event.item?.id || event.item_id;
|
60
|
+
if (itemId) {
|
61
|
+
const call = functionCalls.get(itemId);
|
62
|
+
if (call) {
|
63
|
+
// Use final arguments from event if available, otherwise use accumulated
|
64
|
+
const finalArguments = event.arguments || call.arguments;
|
65
|
+
yield {
|
66
|
+
speaker: 'ai',
|
67
|
+
blocks: [
|
68
|
+
{
|
69
|
+
type: 'tool_call',
|
70
|
+
id: call.call_id || call.id,
|
330
71
|
name: call.name,
|
331
|
-
|
72
|
+
parameters: finalArguments
|
73
|
+
? JSON.parse(finalArguments)
|
74
|
+
: {},
|
332
75
|
},
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
functionCalls.delete(event.item.id);
|
338
|
-
}
|
339
|
-
}
|
340
|
-
else if (event.item?.type === 'message') {
|
341
|
-
// Reset accumulator at message boundaries
|
342
|
-
textAccumulator = '';
|
343
|
-
// Handle completed message items
|
344
|
-
if (event.item.content?.length) {
|
345
|
-
const content = event.item.content[0];
|
346
|
-
if (content?.type === 'text' && content.text) {
|
347
|
-
// Check if this is reasoning JSON
|
348
|
-
try {
|
349
|
-
const parsed = JSON.parse(content.text);
|
350
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
351
|
-
// This is reasoning JSON - format it nicely
|
352
|
-
yield {
|
353
|
-
role: ContentGeneratorRole.ASSISTANT,
|
354
|
-
content: `Thinking: ${parsed.reasoning}\n\n`,
|
355
|
-
};
|
356
|
-
// Check if there's an answer/response field
|
357
|
-
if (parsed.answer || parsed.response) {
|
358
|
-
yield {
|
359
|
-
role: ContentGeneratorRole.ASSISTANT,
|
360
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
361
|
-
};
|
362
|
-
}
|
363
|
-
}
|
364
|
-
else {
|
365
|
-
// Valid JSON but not reasoning
|
366
|
-
yield {
|
367
|
-
role: ContentGeneratorRole.ASSISTANT,
|
368
|
-
content: content.text,
|
369
|
-
};
|
370
|
-
}
|
371
|
-
}
|
372
|
-
catch {
|
373
|
-
// Not JSON, treat as regular text
|
374
|
-
yield {
|
375
|
-
role: ContentGeneratorRole.ASSISTANT,
|
376
|
-
content: content.text,
|
377
|
-
};
|
378
|
-
}
|
76
|
+
],
|
77
|
+
};
|
78
|
+
// Clean up
|
79
|
+
functionCalls.delete(itemId);
|
379
80
|
}
|
380
81
|
}
|
381
82
|
}
|
382
|
-
// Reset textAccumulator after processing response.output_item.done
|
383
|
-
textAccumulator = '';
|
384
83
|
break;
|
385
84
|
case 'response.completed':
|
386
|
-
//
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
85
|
+
// Usage data
|
86
|
+
if (event.response?.usage) {
|
87
|
+
yield {
|
88
|
+
speaker: 'ai',
|
89
|
+
blocks: [],
|
90
|
+
metadata: {
|
91
|
+
usage: {
|
92
|
+
promptTokens: event.response.usage.input_tokens,
|
93
|
+
completionTokens: event.response.usage.output_tokens,
|
94
|
+
totalTokens: event.response.usage.total_tokens,
|
95
|
+
},
|
96
|
+
},
|
394
97
|
};
|
395
|
-
// Only add id if it exists
|
396
|
-
if (event.response.id) {
|
397
|
-
finalMessage.id = event.response.id;
|
398
|
-
}
|
399
|
-
if (event.response.usage) {
|
400
|
-
finalMessage.usage = {
|
401
|
-
prompt_tokens: event.response.usage.input_tokens || 0,
|
402
|
-
completion_tokens: event.response.usage.output_tokens || 0,
|
403
|
-
total_tokens: event.response.usage.total_tokens || 0,
|
404
|
-
};
|
405
|
-
}
|
406
|
-
yield finalMessage;
|
407
98
|
}
|
408
99
|
break;
|
409
100
|
default:
|
410
|
-
// Ignore
|
101
|
+
// Ignore unknown event types
|
411
102
|
break;
|
412
103
|
}
|
413
104
|
}
|
414
|
-
catch
|
415
|
-
|
105
|
+
catch {
|
106
|
+
// Skip malformed JSON events
|
107
|
+
continue;
|
416
108
|
}
|
417
109
|
}
|
418
110
|
}
|
419
111
|
}
|
420
|
-
// Yield any remaining accumulated text
|
421
|
-
if (textAccumulator) {
|
422
|
-
yield {
|
423
|
-
role: ContentGeneratorRole.ASSISTANT,
|
424
|
-
content: textAccumulator,
|
425
|
-
};
|
426
|
-
}
|
427
112
|
}
|
428
113
|
finally {
|
429
114
|
reader.releaseLock();
|
430
115
|
}
|
431
116
|
}
|
432
117
|
export function parseErrorResponse(status, body, providerName) {
|
118
|
+
// Try to parse JSON error response first
|
433
119
|
try {
|
434
120
|
const errorData = JSON.parse(body);
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
121
|
+
// Handle various error response formats
|
122
|
+
let message = 'Unknown error';
|
123
|
+
if (errorData.error?.message) {
|
124
|
+
message = errorData.error.message;
|
125
|
+
}
|
126
|
+
else if (errorData.error?.description) {
|
127
|
+
message = errorData.error.description;
|
440
128
|
}
|
441
|
-
else if (
|
442
|
-
|
129
|
+
else if (errorData.message) {
|
130
|
+
message = errorData.message;
|
443
131
|
}
|
444
|
-
else if (
|
445
|
-
|
132
|
+
else if (errorData.description) {
|
133
|
+
message = errorData.description;
|
446
134
|
}
|
447
|
-
else if (
|
448
|
-
|
135
|
+
else if (typeof errorData === 'string') {
|
136
|
+
message = errorData;
|
449
137
|
}
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
138
|
+
// Determine the error prefix based on specific status codes
|
139
|
+
let errorPrefix = 'API Error';
|
140
|
+
switch (status) {
|
141
|
+
case 409:
|
142
|
+
errorPrefix = 'Conflict';
|
143
|
+
break;
|
144
|
+
case 410:
|
145
|
+
errorPrefix = 'Gone';
|
146
|
+
break;
|
147
|
+
case 418: {
|
148
|
+
// For 418 I'm a teapot, just return the message without prefix
|
149
|
+
const teapotError = new Error(message);
|
150
|
+
teapotError.status = status;
|
151
|
+
teapotError.code =
|
152
|
+
errorData.error?.code || errorData.code;
|
153
|
+
return teapotError;
|
154
|
+
}
|
155
|
+
case 429:
|
156
|
+
errorPrefix = 'Rate limit exceeded';
|
157
|
+
break;
|
158
|
+
default:
|
159
|
+
if (status >= 400 && status < 500) {
|
160
|
+
errorPrefix = 'Client error';
|
161
|
+
}
|
162
|
+
else if (status >= 500 && status < 600) {
|
163
|
+
errorPrefix = 'Server error';
|
164
|
+
}
|
457
165
|
}
|
458
166
|
const error = new Error(`${errorPrefix}: ${message}`);
|
459
167
|
error.status = status;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parseResponsesStream.js","sourceRoot":"","sources":["../../../../src/providers/openai/parseResponsesStream.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"parseResponsesStream.js","sourceRoot":"","sources":["../../../../src/providers/openai/parseResponsesStream.ts"],"names":[],"mappings":"AA2CA,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,MAAkC;IAElC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE3D,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAE5C,IAAI,IAAI;gBAAE,MAAM;YAEhB,iCAAiC;YACjC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAElD,yBAAyB;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,iCAAiC;YAE7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAE/B,qBAAqB;oBACrB,IAAI,IAAI,KAAK,QAAQ;wBAAE,SAAS;oBAEhC,IAAI,CAAC;wBACH,MAAM,KAAK,GAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAE/C,+BAA+B;wBAC/B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;4BACnB,KAAK,4BAA4B;gCAC/B,qBAAqB;gCACrB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oCAChB,MAAM;wCACJ,OAAO,EAAE,IAAI;wCACb,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;qCAC9C,CAAC;gCACJ,CAAC;gCACD,MAAM;4BAER,KAAK,4BAA4B;gCAC/B,4BAA4B;gCAC5B,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oCAC1D,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;wCAC/B,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;wCACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;wCAC3B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;wCAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE;qCACtC,CAAC,CAAC;gCACL,CAAC;gCACD,MAAM;4BAER,KAAK,wCAAwC;gCAC3C,gCAAgC;gCAChC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oCACjC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oCAC9C,IAAI,IAAI,EAAE,CAAC;wCACT,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;oCAChC,CAAC;gCACH,CAAC;gCACD,MAAM;4BAER,KAAK,uCAAuC,CAAC;4BAC7C,KAAK,2BAA2B;gCAC9B,0BAA0B;gCAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oCAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC;oCAC/C,IAAI,MAAM,EAAE,CAAC;wCACX,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wCACvC,IAAI,IAAI,EAAE,CAAC;4CACT,yEAAyE;4CACzE,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;4CAEzD,MAAM;gDACJ,OAAO,EAAE,IAAI;gDACb,MAAM,EAAE;oDACN;wDACE,IAAI,EAAE,WAAW;wDACjB,EAAE,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;wDAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;wDACf,UAAU,EAAE,cAAc;4DACxB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;4DAC5B,CAAC,CAAC,EAAE;qDACP;iDACF;6CACF,CAAC;4CAEF,WAAW;4CACX,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wCAC/B,CAAC;oCACH,CAAC;gCACH,CAAC;gCACD,MAAM;4BAER,KAAK,oBAAoB;gCACvB,aAAa;gCACb,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;oCAC1B,MAAM;wCACJ,OAAO,EAAE,IAAI;wCACb,MAAM,EAAE,EAAE;wCACV,QAAQ,EAAE;4CACR,KAAK,EAAE;gDACL,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY;gDAC/C,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa;gDACpD,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY;6CAC/C;yCACF;qCACF,CAAC;gCACJ,CAAC;gCACD,MAAM;4BAER;gCACE,6BAA6B;gCAC7B,MAAM;wBACV,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,6BAA6B;wBAC7B,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,IAAY,EACZ,YAAoB;IAEpB,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,wCAAwC;QACxC,IAAI,OAAO,GAAG,eAAe,CAAC;QAC9B,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,CAAC;aAAM,IAAI,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACxC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;QACxC,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAC9B,CAAC;aAAM,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC;QAClC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QAED,4DAA4D;QAC5D,IAAI,WAAW,GAAG,WAAW,CAAC;QAC9B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,WAAW,GAAG,UAAU,CAAC;gBACzB,MAAM;YACR,KAAK,GAAG;gBACN,WAAW,GAAG,MAAM,CAAC;gBACrB,MAAM;YACR,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,+DAA+D;gBAC/D,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtC,WAAmC,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpD,WAAiC,CAAC,IAAI;oBACrC,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;gBAC1C,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,KAAK,GAAG;gBACN,WAAW,GAAG,qBAAqB,CAAC;gBACpC,MAAM;YACR;gBACE,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;oBAClC,WAAW,GAAG,cAAc,CAAC;gBAC/B,CAAC;qBAAM,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;oBACzC,WAAW,GAAG,cAAc,CAAC;gBAC/B,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;QACrD,KAA6B,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9C,KAA2B,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;QAC5C,MAAM,WAAW,GACf,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,GAAG,WAAW,KAAK,YAAY,eAAe,MAAM,EAAE,CACvD,CAAC;QACD,KAA6B,CAAC,MAAM,GAAG,MAAM,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* Copyright 2025 Vybestack LLC
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
-
import {
|
6
|
+
import { IContent } from '../../services/history/IContent.js';
|
7
7
|
/**
|
8
8
|
* Interface for cancelled tool information
|
9
9
|
*/
|
@@ -18,26 +18,26 @@ export declare class SyntheticToolResponseHandler {
|
|
18
18
|
* @param cancelledTools Array of cancelled tool information
|
19
19
|
* @returns Array of synthetic tool response messages
|
20
20
|
*/
|
21
|
-
static createSyntheticResponses(cancelledTools: CancelledToolInfo[]):
|
21
|
+
static createSyntheticResponses(cancelledTools: CancelledToolInfo[]): IContent[];
|
22
22
|
/**
|
23
23
|
* Identifies tool calls that need synthetic responses by comparing
|
24
24
|
* assistant messages with tool_calls against existing tool responses
|
25
25
|
* @param messages The conversation history
|
26
26
|
* @returns Array of tool call IDs that need synthetic responses
|
27
27
|
*/
|
28
|
-
static identifyMissingToolResponses(messages:
|
28
|
+
static identifyMissingToolResponses(messages: IContent[]): string[];
|
29
29
|
/**
|
30
30
|
* Patches a message history to include synthetic responses for any
|
31
31
|
* tool calls that don't have corresponding tool responses
|
32
32
|
* @param messages The original message history
|
33
33
|
* @returns Patched message history with synthetic responses added
|
34
34
|
*/
|
35
|
-
static patchMessageHistory(messages:
|
35
|
+
static patchMessageHistory(messages: IContent[]): IContent[];
|
36
36
|
/**
|
37
37
|
* Adds a user-facing cancellation notice to the message history
|
38
38
|
* @param messages The message history
|
39
39
|
* @param cancelledCount Number of tools that were cancelled
|
40
40
|
* @returns Message history with cancellation notice added
|
41
41
|
*/
|
42
|
-
static addCancellationNotice(messages:
|
42
|
+
static addCancellationNotice(messages: IContent[], cancelledCount: number): IContent[];
|
43
43
|
}
|