@vybestack/llxprt-code 0.1.12 → 0.1.13-nightly.250727.2261021c
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/index.js +0 -0
- package/dist/package.json +5 -5
- package/dist/src/acp/acp.d.ts +208 -0
- package/dist/src/acp/acp.js +193 -0
- package/dist/src/acp/acp.js.map +1 -0
- package/dist/src/acp/acpPeer.d.ts +8 -0
- package/dist/src/acp/acpPeer.js +537 -0
- package/dist/src/acp/acpPeer.js.map +1 -0
- package/dist/src/config/config.d.ts +2 -0
- package/dist/src/config/config.js +73 -19
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension.d.ts +2 -2
- package/dist/src/config/extension.js +21 -16
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/settings.d.ts +7 -0
- package/dist/src/config/settings.js +15 -0
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/gemini.js +33 -34
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/nonInteractiveCli.js +36 -3
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/index.d.ts +1 -7
- package/dist/src/providers/index.js +2 -10
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/providerConfigUtils.d.ts +1 -2
- package/dist/src/providers/providerConfigUtils.js +1 -1
- package/dist/src/providers/providerConfigUtils.js.map +1 -1
- package/dist/src/providers/providerManagerInstance.d.ts +2 -2
- package/dist/src/providers/providerManagerInstance.js +21 -19
- package/dist/src/providers/providerManagerInstance.js.map +1 -1
- package/dist/src/providers/types.d.ts +1 -9
- package/dist/src/providers/types.js +2 -10
- package/dist/src/providers/types.js.map +1 -1
- package/dist/src/services/CommandService.d.ts +3 -1
- package/dist/src/services/CommandService.js +50 -11
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/ui/App.js +24 -25
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +21 -0
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/baseurlCommand.d.ts +7 -0
- package/dist/src/ui/commands/baseurlCommand.js +22 -0
- package/dist/src/ui/commands/baseurlCommand.js.map +1 -0
- package/dist/src/ui/commands/bugCommand.d.ts +7 -0
- package/dist/src/ui/commands/bugCommand.js +61 -0
- package/dist/src/ui/commands/bugCommand.js.map +1 -0
- package/dist/src/ui/commands/chatCommand.d.ts +7 -0
- package/dist/src/ui/commands/chatCommand.js +170 -0
- package/dist/src/ui/commands/chatCommand.js.map +1 -0
- package/dist/src/ui/commands/clearCommand.js +12 -2
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.d.ts +7 -0
- package/dist/src/ui/commands/compressCommand.js +62 -0
- package/dist/src/ui/commands/compressCommand.js.map +1 -0
- package/dist/src/ui/commands/docsCommand.d.ts +7 -0
- package/dist/src/ui/commands/docsCommand.js +29 -0
- package/dist/src/ui/commands/docsCommand.js.map +1 -0
- package/dist/src/ui/commands/editorCommand.d.ts +7 -0
- package/dist/src/ui/commands/editorCommand.js +14 -0
- package/dist/src/ui/commands/editorCommand.js.map +1 -0
- package/dist/src/ui/commands/extensionsCommand.d.ts +7 -0
- package/dist/src/ui/commands/extensionsCommand.js +29 -0
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.d.ts +8 -0
- package/dist/src/ui/commands/ideCommand.js +123 -0
- package/dist/src/ui/commands/ideCommand.js.map +1 -0
- package/dist/src/{providers/ProviderAwareContentGenerator.d.ts → ui/commands/keyCommand.d.ts} +2 -1
- package/dist/src/ui/commands/keyCommand.js +29 -0
- package/dist/src/ui/commands/keyCommand.js.map +1 -0
- package/dist/src/ui/commands/keyfileCommand.d.ts +7 -0
- package/dist/src/ui/commands/keyfileCommand.js +104 -0
- package/dist/src/ui/commands/keyfileCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.d.ts +7 -0
- package/dist/src/ui/commands/mcpCommand.js +204 -0
- package/dist/src/ui/commands/mcpCommand.js.map +1 -0
- package/dist/src/ui/commands/modelCommand.d.ts +7 -0
- package/dist/src/ui/commands/modelCommand.js +60 -0
- package/dist/src/ui/commands/modelCommand.js.map +1 -0
- package/dist/src/ui/commands/providerCommand.d.ts +7 -0
- package/dist/src/ui/commands/providerCommand.js +86 -0
- package/dist/src/ui/commands/providerCommand.js.map +1 -0
- package/dist/src/ui/commands/quitCommand.d.ts +7 -0
- package/dist/src/ui/commands/quitCommand.js +32 -0
- package/dist/src/ui/commands/quitCommand.js.map +1 -0
- package/dist/src/ui/commands/restoreCommand.d.ts +8 -0
- package/dist/src/ui/commands/restoreCommand.js +126 -0
- package/dist/src/ui/commands/restoreCommand.js.map +1 -0
- package/dist/src/ui/commands/statsCommand.d.ts +7 -0
- package/dist/src/ui/commands/statsCommand.js +50 -0
- package/dist/src/ui/commands/statsCommand.js.map +1 -0
- package/dist/src/ui/commands/toolsCommand.d.ts +7 -0
- package/dist/src/ui/commands/toolsCommand.js +54 -0
- package/dist/src/ui/commands/toolsCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +34 -2
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +6 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +46 -19
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/Footer.d.ts +0 -1
- package/dist/src/ui/components/Footer.js +3 -21
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +110 -61
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/ProviderModelDialog.d.ts +1 -1
- package/dist/src/ui/components/ThemeDialog.js +25 -24
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +3 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.js +69 -2
- package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +3 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +60 -10
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.js +1 -1
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/constants.d.ts +1 -0
- package/dist/src/ui/constants.js +1 -0
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/containers/SessionController.js +1 -1
- package/dist/src/ui/containers/SessionController.js.map +1 -1
- package/dist/src/ui/contexts/OpenAIProviderContext.d.ts +1 -2
- package/dist/src/ui/contexts/OpenAIProviderContext.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.d.ts +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +35 -11
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -9
- package/dist/src/ui/hooks/slashCommandProcessor.js +83 -622
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.js +16 -2
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useCompletion.d.ts +1 -0
- package/dist/src/ui/hooks/useCompletion.js +21 -2
- package/dist/src/ui/hooks/useCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.d.ts +6 -0
- package/dist/src/ui/hooks/useFocus.js +41 -0
- package/dist/src/ui/hooks/useFocus.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +34 -2
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useOpenAIProviderInfo.d.ts +3 -2
- package/dist/src/ui/hooks/useOpenAIProviderInfo.js +5 -4
- package/dist/src/ui/hooks/useOpenAIProviderInfo.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.js +5 -5
- package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
- package/dist/src/ui/hooks/useProviderDialog.d.ts +5 -2
- package/dist/src/ui/hooks/useProviderDialog.js +55 -3
- package/dist/src/ui/hooks/useProviderDialog.js.map +1 -1
- package/dist/src/ui/hooks/useProviderModelDialog.d.ts +1 -1
- package/dist/src/ui/themes/ansi-light.js +1 -1
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/googlecode.js +1 -1
- package/dist/src/ui/themes/googlecode.js.map +1 -1
- package/dist/src/ui/themes/xcode.js +1 -1
- package/dist/src/ui/themes/xcode.js.map +1 -1
- package/dist/src/ui/types.d.ts +10 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.js +10 -6
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.js +1 -16
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/src/providers/IMessage.d.ts +0 -38
- package/dist/src/providers/IMessage.js +0 -17
- package/dist/src/providers/IMessage.js.map +0 -1
- package/dist/src/providers/IModel.d.ts +0 -23
- package/dist/src/providers/IModel.js +0 -17
- package/dist/src/providers/IModel.js.map +0 -1
- package/dist/src/providers/IProvider.d.ts +0 -32
- package/dist/src/providers/IProvider.js +0 -17
- package/dist/src/providers/IProvider.js.map +0 -1
- package/dist/src/providers/ITool.d.ts +0 -23
- package/dist/src/providers/ITool.js +0 -17
- package/dist/src/providers/ITool.js.map +0 -1
- package/dist/src/providers/ProviderAwareContentGenerator.js +0 -9
- package/dist/src/providers/ProviderAwareContentGenerator.js.map +0 -1
- package/dist/src/providers/ProviderManager.d.ts +0 -19
- package/dist/src/providers/ProviderManager.js +0 -63
- package/dist/src/providers/ProviderManager.js.map +0 -1
- package/dist/src/providers/ProviderManagerAdapter.d.ts +0 -17
- package/dist/src/providers/ProviderManagerAdapter.js +0 -113
- package/dist/src/providers/ProviderManagerAdapter.js.map +0 -1
- package/dist/src/providers/README-qwen3.md +0 -60
- package/dist/src/providers/adapters/IStreamAdapter.d.ts +0 -18
- package/dist/src/providers/adapters/IStreamAdapter.js +0 -7
- package/dist/src/providers/adapters/IStreamAdapter.js.map +0 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +0 -46
- package/dist/src/providers/anthropic/AnthropicProvider.js +0 -478
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +0 -1
- package/dist/src/providers/contentGeneratorProvider.d.ts +0 -13
- package/dist/src/providers/contentGeneratorProvider.js +0 -17
- package/dist/src/providers/contentGeneratorProvider.js.map +0 -1
- package/dist/src/providers/gemini/GeminiProvider.d.ts +0 -72
- package/dist/src/providers/gemini/GeminiProvider.js +0 -454
- package/dist/src/providers/gemini/GeminiProvider.js.map +0 -1
- package/dist/src/providers/integration/TEST_INSTRUCTIONS.md +0 -197
- package/dist/src/providers/openai/ConversationCache.d.ts +0 -20
- package/dist/src/providers/openai/ConversationCache.js +0 -109
- package/dist/src/providers/openai/ConversationCache.js.map +0 -1
- package/dist/src/providers/openai/IChatGenerateParams.d.ts +0 -11
- package/dist/src/providers/openai/IChatGenerateParams.js +0 -2
- package/dist/src/providers/openai/IChatGenerateParams.js.map +0 -1
- package/dist/src/providers/openai/OpenAIProvider.d.ts +0 -71
- package/dist/src/providers/openai/OpenAIProvider.js +0 -486
- package/dist/src/providers/openai/OpenAIProvider.js.map +0 -1
- package/dist/src/providers/openai/Qwen3FireworksProvider.d.ts +0 -39
- package/dist/src/providers/openai/Qwen3FireworksProvider.js +0 -209
- package/dist/src/providers/openai/Qwen3FireworksProvider.js.map +0 -1
- package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +0 -2
- package/dist/src/providers/openai/RESPONSES_API_MODELS.js +0 -14
- package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +0 -1
- package/dist/src/providers/openai/buildResponsesRequest.d.ts +0 -67
- package/dist/src/providers/openai/buildResponsesRequest.js +0 -144
- package/dist/src/providers/openai/buildResponsesRequest.js.map +0 -1
- package/dist/src/providers/openai/docs/accessing-provider-info.md +0 -172
- package/dist/src/providers/openai/docs/params-mapping.md +0 -91
- package/dist/src/providers/openai/docs/qwen3-fireworks.md +0 -47
- package/dist/src/providers/openai/docs/responses-api-tool-calls.md +0 -96
- package/dist/src/providers/openai/estimateRemoteTokens.d.ts +0 -26
- package/dist/src/providers/openai/estimateRemoteTokens.js +0 -75
- package/dist/src/providers/openai/estimateRemoteTokens.js.map +0 -1
- package/dist/src/providers/openai/getOpenAIProviderInfo.d.ts +0 -46
- package/dist/src/providers/openai/getOpenAIProviderInfo.js +0 -74
- package/dist/src/providers/openai/getOpenAIProviderInfo.js.map +0 -1
- package/dist/src/providers/openai/parseResponsesStream.d.ts +0 -3
- package/dist/src/providers/openai/parseResponsesStream.js +0 -444
- package/dist/src/providers/openai/parseResponsesStream.js.map +0 -1
- package/dist/src/providers/parsers/TextToolCallParser.d.ts +0 -35
- package/dist/src/providers/parsers/TextToolCallParser.js +0 -248
- package/dist/src/providers/parsers/TextToolCallParser.js.map +0 -1
- package/dist/src/providers/tokenizers/AnthropicTokenizer.d.ts +0 -19
- package/dist/src/providers/tokenizers/AnthropicTokenizer.js +0 -37
- package/dist/src/providers/tokenizers/AnthropicTokenizer.js.map +0 -1
- package/dist/src/providers/tokenizers/ITokenizer.d.ts +0 -18
- package/dist/src/providers/tokenizers/ITokenizer.js +0 -17
- package/dist/src/providers/tokenizers/ITokenizer.js.map +0 -1
- package/dist/src/providers/tokenizers/OpenAITokenizer.d.ts +0 -24
- package/dist/src/providers/tokenizers/OpenAITokenizer.js +0 -56
- package/dist/src/providers/tokenizers/OpenAITokenizer.js.map +0 -1
- package/dist/src/tools/IToolFormatter.d.ts +0 -40
- package/dist/src/tools/IToolFormatter.js +0 -17
- package/dist/src/tools/IToolFormatter.js.map +0 -1
- package/dist/src/tools/ToolFormatter.d.ts +0 -45
- package/dist/src/tools/ToolFormatter.js +0 -216
- package/dist/src/tools/ToolFormatter.js.map +0 -1
- package/dist/vybestack-llxprt-code-0.1.12.tgz +0 -0
@@ -1,444 +0,0 @@
|
|
1
|
-
import { ContentGeneratorRole } from '../types.js';
|
2
|
-
const MAX_ACCUMULATOR_SIZE = 10000; // Prevent unbounded accumulator growth
|
3
|
-
// Helper function to convert O3 model's answer/response fields to strings
|
4
|
-
function formatArrayResponse(value) {
|
5
|
-
if (typeof value === 'string') {
|
6
|
-
return value;
|
7
|
-
}
|
8
|
-
if (Array.isArray(value)) {
|
9
|
-
// Handle numeric arrays like [4, 1] -> "4.1"
|
10
|
-
if (value.every((item) => typeof item === 'number')) {
|
11
|
-
return value.join('.');
|
12
|
-
}
|
13
|
-
// Handle mixed arrays like ["gpt", 4.1] -> "gpt 4.1"
|
14
|
-
return value.map((item) => String(item)).join(' ');
|
15
|
-
}
|
16
|
-
// Handle other types by converting to string
|
17
|
-
return String(value);
|
18
|
-
}
|
19
|
-
/** Return true if the chunk starts with "{" or "[". Used to decide
|
20
|
-
whether it even makes sense to call JSON.parse on the chunk. */
|
21
|
-
function looksLikeJSONObjectOrArray(s) {
|
22
|
-
return /^[[{]/.test(s.trim());
|
23
|
-
}
|
24
|
-
export async function* parseResponsesStream(stream) {
|
25
|
-
const decoder = new TextDecoder();
|
26
|
-
const reader = stream.getReader();
|
27
|
-
let buffer = '';
|
28
|
-
// Track function calls being assembled
|
29
|
-
const functionCalls = new Map();
|
30
|
-
// Track accumulated text to detect reasoning JSON
|
31
|
-
let textAccumulator = '';
|
32
|
-
try {
|
33
|
-
while (true) {
|
34
|
-
const { done, value } = await reader.read();
|
35
|
-
if (done)
|
36
|
-
break;
|
37
|
-
buffer += decoder.decode(value, { stream: true });
|
38
|
-
const lines = buffer.split('\n');
|
39
|
-
buffer = lines.pop() || '';
|
40
|
-
for (const line of lines) {
|
41
|
-
if (line.trim() === '')
|
42
|
-
continue;
|
43
|
-
// Parse event type
|
44
|
-
if (line.startsWith('event: ')) {
|
45
|
-
continue;
|
46
|
-
}
|
47
|
-
else if (line.startsWith('data: ')) {
|
48
|
-
const dataLine = line.slice(6);
|
49
|
-
if (dataLine === '[DONE]') {
|
50
|
-
continue;
|
51
|
-
}
|
52
|
-
try {
|
53
|
-
const event = JSON.parse(dataLine);
|
54
|
-
// Handle different event types
|
55
|
-
switch (event.type) {
|
56
|
-
case 'response.output_text.delta':
|
57
|
-
// Accumulate and check for reasoning JSON
|
58
|
-
if (event.delta) {
|
59
|
-
// Fast-path: If delta is just a number, yield it immediately
|
60
|
-
if (/^\d+(\.\d+)?$/.test(event.delta.trim())) {
|
61
|
-
yield {
|
62
|
-
role: ContentGeneratorRole.ASSISTANT,
|
63
|
-
content: event.delta,
|
64
|
-
};
|
65
|
-
continue;
|
66
|
-
}
|
67
|
-
textAccumulator += event.delta;
|
68
|
-
// Only try to parse if accumulator looks like JSON
|
69
|
-
if (looksLikeJSONObjectOrArray(textAccumulator)) {
|
70
|
-
// Check if we have complete reasoning JSON
|
71
|
-
try {
|
72
|
-
const parsed = JSON.parse(textAccumulator);
|
73
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
74
|
-
// Format reasoning nicely
|
75
|
-
yield {
|
76
|
-
role: ContentGeneratorRole.ASSISTANT,
|
77
|
-
content: `🤔 Thinking: ${parsed.reasoning}\n\n`,
|
78
|
-
};
|
79
|
-
// Check if there's an answer/response field
|
80
|
-
if (parsed.answer || parsed.response) {
|
81
|
-
yield {
|
82
|
-
role: ContentGeneratorRole.ASSISTANT,
|
83
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
84
|
-
};
|
85
|
-
}
|
86
|
-
// Reset accumulator
|
87
|
-
textAccumulator = '';
|
88
|
-
continue;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
catch {
|
92
|
-
// Not complete JSON yet or not reasoning
|
93
|
-
// Check if this looks like the start of JSON
|
94
|
-
if (textAccumulator.trim().startsWith('{') &&
|
95
|
-
textAccumulator.includes('"reasoning"')) {
|
96
|
-
// Still accumulating reasoning JSON, don't yield yet
|
97
|
-
if (textAccumulator.length > MAX_ACCUMULATOR_SIZE) {
|
98
|
-
yield {
|
99
|
-
role: ContentGeneratorRole.ASSISTANT,
|
100
|
-
content: textAccumulator,
|
101
|
-
};
|
102
|
-
textAccumulator = '';
|
103
|
-
}
|
104
|
-
continue;
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
// Check if the delta itself is complete JSON (only if it looks like an object/array)
|
109
|
-
if (looksLikeJSONObjectOrArray(event.delta)) {
|
110
|
-
try {
|
111
|
-
const parsed = JSON.parse(event.delta);
|
112
|
-
if (parsed.reasoning !== undefined &&
|
113
|
-
parsed.next_speaker !== undefined) {
|
114
|
-
// This is complete O3 JSON in a single delta
|
115
|
-
yield {
|
116
|
-
role: ContentGeneratorRole.ASSISTANT,
|
117
|
-
content: `🤔 Thinking: ${parsed.reasoning}\n\n`,
|
118
|
-
};
|
119
|
-
// Check if there's an answer/response field
|
120
|
-
if (parsed.answer || parsed.response) {
|
121
|
-
yield {
|
122
|
-
role: ContentGeneratorRole.ASSISTANT,
|
123
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
124
|
-
};
|
125
|
-
}
|
126
|
-
// Reset accumulator
|
127
|
-
textAccumulator = '';
|
128
|
-
continue;
|
129
|
-
}
|
130
|
-
}
|
131
|
-
catch {
|
132
|
-
// Not JSON, continue with regular text handling
|
133
|
-
}
|
134
|
-
}
|
135
|
-
// Regular text, yield it
|
136
|
-
yield {
|
137
|
-
role: ContentGeneratorRole.ASSISTANT,
|
138
|
-
content: event.delta,
|
139
|
-
};
|
140
|
-
// Reset accumulator since we're in regular text mode
|
141
|
-
textAccumulator = '';
|
142
|
-
}
|
143
|
-
break;
|
144
|
-
case 'response.message_content.delta':
|
145
|
-
// Handle message content deltas (might contain reasoning)
|
146
|
-
if (event.delta) {
|
147
|
-
// Fast-path: If delta is just a number, yield it immediately
|
148
|
-
if (/^\d+(\.\d+)?$/.test(event.delta.trim())) {
|
149
|
-
yield {
|
150
|
-
role: ContentGeneratorRole.ASSISTANT,
|
151
|
-
content: event.delta,
|
152
|
-
};
|
153
|
-
continue;
|
154
|
-
}
|
155
|
-
textAccumulator += event.delta;
|
156
|
-
// Only try to parse if accumulator looks like JSON
|
157
|
-
if (looksLikeJSONObjectOrArray(textAccumulator)) {
|
158
|
-
// Check if we have complete reasoning JSON
|
159
|
-
try {
|
160
|
-
const parsed = JSON.parse(textAccumulator);
|
161
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
162
|
-
// Format reasoning nicely
|
163
|
-
yield {
|
164
|
-
role: ContentGeneratorRole.ASSISTANT,
|
165
|
-
content: `🤔 Thinking: ${parsed.reasoning}\n\n`,
|
166
|
-
};
|
167
|
-
// Check if there's an answer/response field
|
168
|
-
if (parsed.answer || parsed.response) {
|
169
|
-
yield {
|
170
|
-
role: ContentGeneratorRole.ASSISTANT,
|
171
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
172
|
-
};
|
173
|
-
}
|
174
|
-
// Reset accumulator
|
175
|
-
textAccumulator = '';
|
176
|
-
continue;
|
177
|
-
}
|
178
|
-
}
|
179
|
-
catch {
|
180
|
-
// Not complete JSON yet or not reasoning
|
181
|
-
// Check if this looks like the start of JSON
|
182
|
-
if (textAccumulator.trim().startsWith('{') &&
|
183
|
-
textAccumulator.includes('"reasoning"')) {
|
184
|
-
// Still accumulating reasoning JSON, don't yield yet
|
185
|
-
if (textAccumulator.length > MAX_ACCUMULATOR_SIZE) {
|
186
|
-
yield {
|
187
|
-
role: ContentGeneratorRole.ASSISTANT,
|
188
|
-
content: textAccumulator,
|
189
|
-
};
|
190
|
-
textAccumulator = '';
|
191
|
-
}
|
192
|
-
continue;
|
193
|
-
}
|
194
|
-
}
|
195
|
-
}
|
196
|
-
// Check if the delta itself is complete JSON (only if it looks like an object/array)
|
197
|
-
if (looksLikeJSONObjectOrArray(event.delta)) {
|
198
|
-
try {
|
199
|
-
const parsed = JSON.parse(event.delta);
|
200
|
-
if (parsed.reasoning !== undefined &&
|
201
|
-
parsed.next_speaker !== undefined) {
|
202
|
-
// This is complete O3 JSON in a single delta
|
203
|
-
yield {
|
204
|
-
role: ContentGeneratorRole.ASSISTANT,
|
205
|
-
content: `🤔 Thinking: ${parsed.reasoning}\n\n`,
|
206
|
-
};
|
207
|
-
// Check if there's an answer/response field
|
208
|
-
if (parsed.answer || parsed.response) {
|
209
|
-
yield {
|
210
|
-
role: ContentGeneratorRole.ASSISTANT,
|
211
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
212
|
-
};
|
213
|
-
}
|
214
|
-
// Reset accumulator
|
215
|
-
textAccumulator = '';
|
216
|
-
continue;
|
217
|
-
}
|
218
|
-
}
|
219
|
-
catch {
|
220
|
-
// Not JSON, continue with regular text handling
|
221
|
-
}
|
222
|
-
}
|
223
|
-
// Regular text, yield it
|
224
|
-
yield {
|
225
|
-
role: ContentGeneratorRole.ASSISTANT,
|
226
|
-
content: event.delta,
|
227
|
-
};
|
228
|
-
// Reset accumulator since we're in regular text mode
|
229
|
-
textAccumulator = '';
|
230
|
-
}
|
231
|
-
break;
|
232
|
-
case 'response.output_item.added':
|
233
|
-
// A new function call is starting
|
234
|
-
if (event.item?.type === 'function_call' && event.item.id) {
|
235
|
-
functionCalls.set(event.item.id, {
|
236
|
-
id: event.item.call_id || event.item.id,
|
237
|
-
name: event.item.name || '',
|
238
|
-
arguments: event.item.arguments || '',
|
239
|
-
output_index: event.output_index || 0,
|
240
|
-
});
|
241
|
-
}
|
242
|
-
else if (event.item?.type === 'message') {
|
243
|
-
// Handle message-type items that might contain reasoning
|
244
|
-
// These should be handled but not stop the stream
|
245
|
-
if (event.item.content?.length) {
|
246
|
-
const content = event.item.content[0];
|
247
|
-
if (content?.type === 'text' && content.text) {
|
248
|
-
// Check if this is reasoning JSON
|
249
|
-
try {
|
250
|
-
const parsed = JSON.parse(content.text);
|
251
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
252
|
-
// This is reasoning JSON - format it nicely
|
253
|
-
yield {
|
254
|
-
role: ContentGeneratorRole.ASSISTANT,
|
255
|
-
content: `🤔 Thinking: ${parsed.reasoning}\n\n`,
|
256
|
-
};
|
257
|
-
// Check if there's an answer/response field
|
258
|
-
if (parsed.answer || parsed.response) {
|
259
|
-
yield {
|
260
|
-
role: ContentGeneratorRole.ASSISTANT,
|
261
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
262
|
-
};
|
263
|
-
}
|
264
|
-
}
|
265
|
-
else {
|
266
|
-
// Valid JSON but not reasoning
|
267
|
-
yield {
|
268
|
-
role: ContentGeneratorRole.ASSISTANT,
|
269
|
-
content: content.text,
|
270
|
-
};
|
271
|
-
}
|
272
|
-
}
|
273
|
-
catch {
|
274
|
-
// Not JSON, treat as regular text
|
275
|
-
yield {
|
276
|
-
role: ContentGeneratorRole.ASSISTANT,
|
277
|
-
content: content.text,
|
278
|
-
};
|
279
|
-
}
|
280
|
-
}
|
281
|
-
}
|
282
|
-
}
|
283
|
-
// Reset accumulator after processing output_item.added
|
284
|
-
textAccumulator = '';
|
285
|
-
break;
|
286
|
-
case 'response.function_call_arguments.delta':
|
287
|
-
// Accumulate function call arguments
|
288
|
-
if (event.item_id &&
|
289
|
-
event.delta &&
|
290
|
-
functionCalls.has(event.item_id)) {
|
291
|
-
const call = functionCalls.get(event.item_id);
|
292
|
-
call.arguments += event.delta;
|
293
|
-
}
|
294
|
-
break;
|
295
|
-
case 'response.output_item.done':
|
296
|
-
// Handle completed output items
|
297
|
-
if (event.item?.type === 'function_call' && event.item.id) {
|
298
|
-
// Function call is complete, yield it
|
299
|
-
if (functionCalls.has(event.item.id)) {
|
300
|
-
const call = functionCalls.get(event.item.id);
|
301
|
-
// Update with final data from the done event
|
302
|
-
if (event.item.arguments) {
|
303
|
-
call.arguments = event.item.arguments;
|
304
|
-
}
|
305
|
-
// Convert to tool_calls array format
|
306
|
-
yield {
|
307
|
-
role: ContentGeneratorRole.ASSISTANT,
|
308
|
-
content: '',
|
309
|
-
tool_calls: [
|
310
|
-
{
|
311
|
-
id: call.id,
|
312
|
-
type: 'function',
|
313
|
-
function: {
|
314
|
-
name: call.name,
|
315
|
-
arguments: call.arguments,
|
316
|
-
},
|
317
|
-
},
|
318
|
-
],
|
319
|
-
};
|
320
|
-
// Remove the completed call
|
321
|
-
functionCalls.delete(event.item.id);
|
322
|
-
}
|
323
|
-
}
|
324
|
-
else if (event.item?.type === 'message') {
|
325
|
-
// Reset accumulator at message boundaries
|
326
|
-
textAccumulator = '';
|
327
|
-
// Handle completed message items
|
328
|
-
if (event.item.content?.length) {
|
329
|
-
const content = event.item.content[0];
|
330
|
-
if (content?.type === 'text' && content.text) {
|
331
|
-
// Check if this is reasoning JSON
|
332
|
-
try {
|
333
|
-
const parsed = JSON.parse(content.text);
|
334
|
-
if (parsed.reasoning && parsed.next_speaker) {
|
335
|
-
// This is reasoning JSON - format it nicely
|
336
|
-
yield {
|
337
|
-
role: ContentGeneratorRole.ASSISTANT,
|
338
|
-
content: `🤔 Thinking: ${parsed.reasoning}\n\n`,
|
339
|
-
};
|
340
|
-
// Check if there's an answer/response field
|
341
|
-
if (parsed.answer || parsed.response) {
|
342
|
-
yield {
|
343
|
-
role: ContentGeneratorRole.ASSISTANT,
|
344
|
-
content: formatArrayResponse(parsed.answer || parsed.response),
|
345
|
-
};
|
346
|
-
}
|
347
|
-
}
|
348
|
-
else {
|
349
|
-
// Valid JSON but not reasoning
|
350
|
-
yield {
|
351
|
-
role: ContentGeneratorRole.ASSISTANT,
|
352
|
-
content: content.text,
|
353
|
-
};
|
354
|
-
}
|
355
|
-
}
|
356
|
-
catch {
|
357
|
-
// Not JSON, treat as regular text
|
358
|
-
yield {
|
359
|
-
role: ContentGeneratorRole.ASSISTANT,
|
360
|
-
content: content.text,
|
361
|
-
};
|
362
|
-
}
|
363
|
-
}
|
364
|
-
}
|
365
|
-
}
|
366
|
-
// Reset textAccumulator after processing response.output_item.done
|
367
|
-
textAccumulator = '';
|
368
|
-
break;
|
369
|
-
case 'response.completed':
|
370
|
-
// Reset accumulator when response is completed
|
371
|
-
textAccumulator = '';
|
372
|
-
// Extract usage data and the final response ID
|
373
|
-
if (event.response) {
|
374
|
-
const finalMessage = {
|
375
|
-
id: event.response.id,
|
376
|
-
role: ContentGeneratorRole.ASSISTANT,
|
377
|
-
content: '',
|
378
|
-
};
|
379
|
-
if (event.response.usage) {
|
380
|
-
finalMessage.usage = {
|
381
|
-
prompt_tokens: event.response.usage.input_tokens || 0,
|
382
|
-
completion_tokens: event.response.usage.output_tokens || 0,
|
383
|
-
total_tokens: event.response.usage.total_tokens || 0,
|
384
|
-
};
|
385
|
-
}
|
386
|
-
yield finalMessage;
|
387
|
-
}
|
388
|
-
break;
|
389
|
-
default:
|
390
|
-
// Ignore other event types for now
|
391
|
-
break;
|
392
|
-
}
|
393
|
-
}
|
394
|
-
catch (parseError) {
|
395
|
-
console.error('[parseResponsesStream] Failed to parse event:', parseError);
|
396
|
-
}
|
397
|
-
}
|
398
|
-
}
|
399
|
-
}
|
400
|
-
}
|
401
|
-
finally {
|
402
|
-
reader.releaseLock();
|
403
|
-
}
|
404
|
-
}
|
405
|
-
export function parseErrorResponse(status, body, providerName) {
|
406
|
-
try {
|
407
|
-
const errorData = JSON.parse(body);
|
408
|
-
const message = errorData.error?.message || errorData.message || 'Unknown error';
|
409
|
-
// Format error message based on status code
|
410
|
-
let errorPrefix;
|
411
|
-
if (status === 409) {
|
412
|
-
errorPrefix = 'Conflict';
|
413
|
-
}
|
414
|
-
else if (status === 410) {
|
415
|
-
errorPrefix = 'Gone';
|
416
|
-
}
|
417
|
-
else if (status === 429) {
|
418
|
-
errorPrefix = 'Rate limit exceeded';
|
419
|
-
}
|
420
|
-
else if (status >= 500 && status < 600) {
|
421
|
-
errorPrefix = 'Server error';
|
422
|
-
}
|
423
|
-
else {
|
424
|
-
// For unknown status codes, just return the message without prefix
|
425
|
-
const error = new Error(message);
|
426
|
-
error.status = status;
|
427
|
-
error.code =
|
428
|
-
errorData.error?.code || errorData.code;
|
429
|
-
return error;
|
430
|
-
}
|
431
|
-
const error = new Error(`${errorPrefix}: ${message}`);
|
432
|
-
error.status = status;
|
433
|
-
error.code = errorData.error?.code || errorData.code;
|
434
|
-
return error;
|
435
|
-
}
|
436
|
-
catch {
|
437
|
-
// For invalid JSON, use a consistent format
|
438
|
-
const errorPrefix = status >= 500 && status < 600 ? 'Server error' : 'API Error';
|
439
|
-
const error = new Error(`${errorPrefix}: ${providerName} API error: ${status}`);
|
440
|
-
error.status = status;
|
441
|
-
return error;
|
442
|
-
}
|
443
|
-
}
|
444
|
-
//# sourceMappingURL=parseResponsesStream.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parseResponsesStream.js","sourceRoot":"","sources":["../../../../src/providers/openai/parseResponsesStream.ts"],"names":[],"mappings":"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"}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright 2025 Vybestack LLC
|
3
|
-
*
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
* you may not use this file except in compliance with the License.
|
6
|
-
* You may obtain a copy of the License at
|
7
|
-
*
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
*
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
* See the License for the specific language governing permissions and
|
14
|
-
* limitations under the License.
|
15
|
-
*/
|
16
|
-
export interface TextToolCall {
|
17
|
-
name: string;
|
18
|
-
arguments: Record<string, unknown>;
|
19
|
-
}
|
20
|
-
export interface ITextToolCallParser {
|
21
|
-
parse(content: string): {
|
22
|
-
cleanedContent: string;
|
23
|
-
toolCalls: TextToolCall[];
|
24
|
-
};
|
25
|
-
}
|
26
|
-
export declare class GemmaToolCallParser implements ITextToolCallParser {
|
27
|
-
private readonly patterns;
|
28
|
-
parse(content: string): {
|
29
|
-
cleanedContent: string;
|
30
|
-
toolCalls: TextToolCall[];
|
31
|
-
};
|
32
|
-
private parseKeyValuePairs;
|
33
|
-
private parseXMLParameters;
|
34
|
-
private parseValue;
|
35
|
-
}
|