@vybestack/llxprt-code-core 0.1.23-nightly.250905.97906524 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/src/adapters/IStreamAdapter.d.ts +3 -3
  2. package/dist/src/auth/precedence.d.ts +1 -1
  3. package/dist/src/auth/precedence.js +9 -4
  4. package/dist/src/auth/precedence.js.map +1 -1
  5. package/dist/src/auth/types.d.ts +4 -4
  6. package/dist/src/code_assist/codeAssist.js +8 -6
  7. package/dist/src/code_assist/codeAssist.js.map +1 -1
  8. package/dist/src/code_assist/setup.js +9 -7
  9. package/dist/src/code_assist/setup.js.map +1 -1
  10. package/dist/src/config/index.d.ts +7 -0
  11. package/dist/src/config/index.js +8 -0
  12. package/dist/src/config/index.js.map +1 -0
  13. package/dist/src/core/client.d.ts +9 -21
  14. package/dist/src/core/client.js +55 -156
  15. package/dist/src/core/client.js.map +1 -1
  16. package/dist/src/core/compression-config.d.ts +1 -1
  17. package/dist/src/core/compression-config.js +4 -5
  18. package/dist/src/core/compression-config.js.map +1 -1
  19. package/dist/src/core/coreToolScheduler.js +50 -15
  20. package/dist/src/core/coreToolScheduler.js.map +1 -1
  21. package/dist/src/core/geminiChat.d.ts +51 -2
  22. package/dist/src/core/geminiChat.js +616 -106
  23. package/dist/src/core/geminiChat.js.map +1 -1
  24. package/dist/src/core/nonInteractiveToolExecutor.js +70 -19
  25. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  26. package/dist/src/core/prompts.js +34 -26
  27. package/dist/src/core/prompts.js.map +1 -1
  28. package/dist/src/core/turn.d.ts +1 -0
  29. package/dist/src/core/turn.js +8 -6
  30. package/dist/src/core/turn.js.map +1 -1
  31. package/dist/src/index.d.ts +1 -2
  32. package/dist/src/index.js +2 -2
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/prompt-config/TemplateEngine.js +17 -0
  35. package/dist/src/prompt-config/TemplateEngine.js.map +1 -1
  36. package/dist/src/prompt-config/defaults/core-defaults.js +39 -32
  37. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  38. package/dist/src/prompt-config/defaults/core.md +2 -0
  39. package/dist/src/prompt-config/defaults/provider-defaults.js +34 -27
  40. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  41. package/dist/src/prompt-config/defaults/providers/gemini/core.md +229 -43
  42. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +12 -0
  43. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +12 -0
  44. package/dist/src/prompt-config/types.d.ts +2 -0
  45. package/dist/src/providers/BaseProvider.d.ts +32 -6
  46. package/dist/src/providers/BaseProvider.js +79 -22
  47. package/dist/src/providers/BaseProvider.js.map +1 -1
  48. package/dist/src/providers/IProvider.d.ts +9 -3
  49. package/dist/src/providers/LoggingProviderWrapper.d.ts +10 -3
  50. package/dist/src/providers/LoggingProviderWrapper.js +33 -27
  51. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  52. package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
  53. package/dist/src/providers/ProviderContentGenerator.js +9 -6
  54. package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
  55. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +27 -21
  56. package/dist/src/providers/anthropic/AnthropicProvider.js +473 -472
  57. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  58. package/dist/src/providers/gemini/GeminiProvider.d.ts +14 -9
  59. package/dist/src/providers/gemini/GeminiProvider.js +202 -486
  60. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  61. package/dist/src/providers/openai/ConversationCache.d.ts +3 -3
  62. package/dist/src/providers/openai/IChatGenerateParams.d.ts +9 -4
  63. package/dist/src/providers/openai/OpenAIProvider.d.ts +44 -115
  64. package/dist/src/providers/openai/OpenAIProvider.js +535 -948
  65. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  66. package/dist/src/providers/openai/buildResponsesRequest.d.ts +3 -3
  67. package/dist/src/providers/openai/buildResponsesRequest.js +67 -37
  68. package/dist/src/providers/openai/buildResponsesRequest.js.map +1 -1
  69. package/dist/src/providers/openai/estimateRemoteTokens.d.ts +2 -2
  70. package/dist/src/providers/openai/estimateRemoteTokens.js +21 -8
  71. package/dist/src/providers/openai/estimateRemoteTokens.js.map +1 -1
  72. package/dist/src/providers/openai/parseResponsesStream.d.ts +6 -2
  73. package/dist/src/providers/openai/parseResponsesStream.js +99 -391
  74. package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
  75. package/dist/src/providers/openai/syntheticToolResponses.d.ts +5 -5
  76. package/dist/src/providers/openai/syntheticToolResponses.js +102 -91
  77. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -1
  78. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.d.ts +18 -20
  79. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js +250 -239
  80. package/dist/src/providers/openai-responses/OpenAIResponsesProvider.js.map +1 -1
  81. package/dist/src/providers/tokenizers/OpenAITokenizer.js +3 -3
  82. package/dist/src/providers/tokenizers/OpenAITokenizer.js.map +1 -1
  83. package/dist/src/providers/types.d.ts +1 -1
  84. package/dist/src/services/history/ContentConverters.d.ts +6 -1
  85. package/dist/src/services/history/ContentConverters.js +155 -18
  86. package/dist/src/services/history/ContentConverters.js.map +1 -1
  87. package/dist/src/services/history/HistoryService.d.ts +52 -0
  88. package/dist/src/services/history/HistoryService.js +245 -93
  89. package/dist/src/services/history/HistoryService.js.map +1 -1
  90. package/dist/src/services/history/IContent.d.ts +4 -0
  91. package/dist/src/services/history/IContent.js.map +1 -1
  92. package/dist/src/telemetry/types.d.ts +16 -4
  93. package/dist/src/telemetry/types.js.map +1 -1
  94. package/dist/src/tools/IToolFormatter.d.ts +2 -2
  95. package/dist/src/tools/ToolFormatter.d.ts +42 -4
  96. package/dist/src/tools/ToolFormatter.js +159 -37
  97. package/dist/src/tools/ToolFormatter.js.map +1 -1
  98. package/dist/src/tools/doubleEscapeUtils.d.ts +57 -0
  99. package/dist/src/tools/doubleEscapeUtils.js +241 -0
  100. package/dist/src/tools/doubleEscapeUtils.js.map +1 -0
  101. package/dist/src/tools/read-file.js +5 -2
  102. package/dist/src/tools/read-file.js.map +1 -1
  103. package/dist/src/tools/todo-schemas.d.ts +4 -4
  104. package/dist/src/tools/write-file.js +5 -2
  105. package/dist/src/tools/write-file.js.map +1 -1
  106. package/dist/src/types/modelParams.d.ts +8 -0
  107. package/dist/src/utils/bfsFileSearch.js +2 -6
  108. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  109. package/package.json +8 -7
  110. package/dist/src/core/ContentGeneratorAdapter.d.ts +0 -37
  111. package/dist/src/core/ContentGeneratorAdapter.js +0 -58
  112. package/dist/src/core/ContentGeneratorAdapter.js.map +0 -1
  113. package/dist/src/providers/IMessage.d.ts +0 -38
  114. package/dist/src/providers/IMessage.js +0 -17
  115. package/dist/src/providers/IMessage.js.map +0 -1
  116. package/dist/src/providers/adapters/GeminiCompatibleWrapper.d.ts +0 -69
  117. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +0 -577
  118. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +0 -1
@@ -19,23 +19,73 @@
19
19
  * for models that support it (o1, o3, etc.)
20
20
  */
21
21
  import { DebugLogger } from '../../debug/index.js';
22
- import { ContentGeneratorRole } from '../ContentGeneratorRole.js';
23
- import { ToolFormatter } from '../../tools/ToolFormatter.js';
24
22
  import { RESPONSES_API_MODELS } from '../openai/RESPONSES_API_MODELS.js';
25
23
  import { ConversationCache } from '../openai/ConversationCache.js';
26
- import { estimateMessagesTokens, estimateRemoteTokens, } from '../openai/estimateRemoteTokens.js';
27
24
  import { parseResponsesStream, parseErrorResponse, } from '../openai/parseResponsesStream.js';
28
- import { buildResponsesRequest } from '../openai/buildResponsesRequest.js';
29
25
  import { BaseProvider } from '../BaseProvider.js';
30
26
  import { getSettingsService } from '../../settings/settingsServiceInstance.js';
27
+ import { getCoreSystemPromptAsync } from '../../core/prompts.js';
31
28
  export class OpenAIResponsesProvider extends BaseProvider {
29
+ /**
30
+ * Converts Gemini schema format (with uppercase Type enums) to standard JSON Schema format
31
+ */
32
+ convertGeminiSchemaToStandard(schema) {
33
+ if (!schema || typeof schema !== 'object') {
34
+ return schema;
35
+ }
36
+ const newSchema = { ...schema };
37
+ // Handle properties
38
+ if (newSchema.properties && typeof newSchema.properties === 'object') {
39
+ const newProperties = {};
40
+ for (const [key, value] of Object.entries(newSchema.properties)) {
41
+ newProperties[key] = this.convertGeminiSchemaToStandard(value);
42
+ }
43
+ newSchema.properties = newProperties;
44
+ }
45
+ // Handle items
46
+ if (newSchema.items) {
47
+ if (Array.isArray(newSchema.items)) {
48
+ newSchema.items = newSchema.items.map((item) => this.convertGeminiSchemaToStandard(item));
49
+ }
50
+ else {
51
+ newSchema.items = this.convertGeminiSchemaToStandard(newSchema.items);
52
+ }
53
+ }
54
+ // Convert type from UPPERCASE enum to lowercase string
55
+ if (newSchema.type) {
56
+ newSchema.type = String(newSchema.type).toLowerCase();
57
+ }
58
+ // Convert enum values if present
59
+ if (newSchema.enum && Array.isArray(newSchema.enum)) {
60
+ newSchema.enum = newSchema.enum.map((v) => String(v));
61
+ }
62
+ // Convert minLength from string to number if present
63
+ if (newSchema.minLength && typeof newSchema.minLength === 'string') {
64
+ const minLengthNum = parseInt(newSchema.minLength, 10);
65
+ if (!isNaN(minLengthNum)) {
66
+ newSchema.minLength = minLengthNum;
67
+ }
68
+ else {
69
+ delete newSchema.minLength;
70
+ }
71
+ }
72
+ // Convert maxLength from string to number if present
73
+ if (newSchema.maxLength && typeof newSchema.maxLength === 'string') {
74
+ const maxLengthNum = parseInt(newSchema.maxLength, 10);
75
+ if (!isNaN(maxLengthNum)) {
76
+ newSchema.maxLength = maxLengthNum;
77
+ }
78
+ else {
79
+ delete newSchema.maxLength;
80
+ }
81
+ }
82
+ return newSchema;
83
+ }
32
84
  logger;
33
85
  currentModel = 'o3-mini';
34
- baseURL;
35
- toolFormatter;
36
86
  conversationCache;
37
87
  modelParams;
38
- constructor(apiKey, baseURL, _config) {
88
+ constructor(apiKey, baseURL, config) {
39
89
  const baseConfig = {
40
90
  name: 'openai-responses',
41
91
  apiKey,
@@ -45,11 +95,9 @@ export class OpenAIResponsesProvider extends BaseProvider {
45
95
  oauthProvider: undefined,
46
96
  oauthManager: undefined,
47
97
  };
48
- super(baseConfig);
98
+ super(baseConfig, config);
49
99
  this.logger = new DebugLogger('llxprt:providers:openai-responses');
50
100
  this.logger.debug(() => `Constructor - baseURL: ${baseURL || 'https://api.openai.com/v1'}, apiKey: ${apiKey?.substring(0, 10) || 'none'}`);
51
- this.baseURL = baseURL || 'https://api.openai.com/v1';
52
- this.toolFormatter = new ToolFormatter();
53
101
  this.conversationCache = new ConversationCache();
54
102
  // Initialize from SettingsService
55
103
  this.initializeFromSettings().catch((error) => {
@@ -71,226 +119,62 @@ export class OpenAIResponsesProvider extends BaseProvider {
71
119
  // Always use OpenAI format for responses API
72
120
  return 'openai';
73
121
  }
74
- async callResponsesEndpoint(messages, tools, options) {
75
- // Check if API key is available (using resolved authentication)
122
+ async getModels() {
123
+ // Try to fetch models dynamically from the API
76
124
  const apiKey = await this.getAuthToken();
77
125
  if (!apiKey) {
78
- throw new Error('OpenAI API key is required to make API calls');
79
- }
80
- // Check context usage and warn if getting close to limit
81
- if (options?.conversationId && options?.parentId) {
82
- const contextInfo = this.estimateContextUsage(options.conversationId, options.parentId, messages);
83
- // Warn if less than 4k tokens remaining
84
- if (contextInfo.tokensRemaining < 4000) {
85
- this.logger.debug(() => `Warning: Only ${contextInfo.tokensRemaining} tokens remaining (${contextInfo.contextUsedPercent.toFixed(1)}% context used). Consider starting a new conversation.`);
86
- }
87
- }
88
- // Check cache for existing conversation
89
- if (options?.conversationId && options?.parentId) {
90
- const cachedMessages = this.conversationCache.get(options.conversationId, options.parentId);
91
- if (cachedMessages) {
92
- // Return cached messages as an async iterable
93
- return (async function* () {
94
- for (const message of cachedMessages) {
95
- yield message;
96
- }
97
- })();
98
- }
99
- }
100
- // Format tools for Responses API
101
- const formattedTools = tools
102
- ? this.toolFormatter.toResponsesTool(tools)
103
- : undefined;
104
- // Patch messages to include synthetic responses for cancelled tools
105
- const { SyntheticToolResponseHandler } = await import('../openai/syntheticToolResponses.js');
106
- const patchedMessages = SyntheticToolResponseHandler.patchMessageHistory(messages);
107
- // Build the request
108
- const request = buildResponsesRequest({
109
- model: this.currentModel,
110
- messages: patchedMessages,
111
- tools: formattedTools,
112
- stream: options?.stream ?? true,
113
- conversationId: options?.conversationId,
114
- parentId: options?.parentId,
115
- tool_choice: options?.tool_choice,
116
- ...(this.modelParams || {}),
117
- });
118
- // Make the API call
119
- const responsesURL = `${this.baseURL}/responses`;
120
- // Ensure proper UTF-8 encoding for the request body
121
- const requestBody = JSON.stringify(request);
122
- const bodyBlob = new Blob([requestBody], {
123
- type: 'application/json; charset=utf-8',
124
- });
125
- const response = await fetch(responsesURL, {
126
- method: 'POST',
127
- headers: {
128
- Authorization: `Bearer ${apiKey}`,
129
- 'Content-Type': 'application/json; charset=utf-8',
130
- },
131
- body: bodyBlob,
132
- });
133
- // Handle errors
134
- if (!response.ok) {
135
- const errorBody = await response.text();
136
- // Handle 422 context_length_exceeded error
137
- if (response.status === 422 &&
138
- errorBody.includes('context_length_exceeded')) {
139
- this.logger.debug(() => 'Context length exceeded, invalidating cache and retrying stateless...');
140
- // Invalidate the cache for this conversation
141
- if (options?.conversationId && options?.parentId) {
142
- this.conversationCache.invalidate(options.conversationId, options.parentId);
143
- }
144
- // Retry without conversation context (pure stateless)
145
- const retryRequest = buildResponsesRequest({
146
- model: this.currentModel,
147
- messages,
148
- tools: formattedTools,
149
- stream: options?.stream ?? true,
150
- // Omit conversationId and parentId for stateless retry
151
- tool_choice: options?.tool_choice,
152
- ...(this.modelParams || {}),
153
- });
154
- const retryRequestBody = JSON.stringify(retryRequest);
155
- const retryBodyBlob = new Blob([retryRequestBody], {
156
- type: 'application/json; charset=utf-8',
157
- });
158
- const retryResponse = await fetch(responsesURL, {
159
- method: 'POST',
160
- headers: {
161
- Authorization: `Bearer ${apiKey}`,
162
- 'Content-Type': 'application/json; charset=utf-8',
163
- },
164
- body: retryBodyBlob,
165
- });
166
- if (!retryResponse.ok) {
167
- const retryErrorBody = await retryResponse.text();
168
- throw parseErrorResponse(retryResponse.status, retryErrorBody, this.name);
169
- }
170
- // Use the retry response
171
- return this.handleResponsesApiResponse(retryResponse, messages, undefined, // No conversation context on retry
172
- undefined, options?.stream !== false);
173
- }
174
- throw parseErrorResponse(response.status, errorBody, this.name);
126
+ // If no API key, return hardcoded list from RESPONSES_API_MODELS
127
+ return RESPONSES_API_MODELS.map((modelId) => ({
128
+ id: modelId,
129
+ name: modelId,
130
+ provider: 'openai-responses',
131
+ supportedToolFormats: ['openai'],
132
+ }));
175
133
  }
176
- // Handle the response
177
- return this.handleResponsesApiResponse(response, messages, options?.conversationId, options?.parentId, options?.stream !== false);
178
- }
179
- async handleResponsesApiResponse(response, messages, conversationId, parentId, isStreaming) {
180
- // Handle streaming response
181
- if (isStreaming && response.body) {
182
- const collectedMessages = [];
183
- const cache = this.conversationCache;
184
- return (async function* () {
185
- for await (const message of parseResponsesStream(response.body)) {
186
- // Collect messages for caching
187
- if (message.content || message.tool_calls) {
188
- collectedMessages.push(message);
189
- }
190
- else if (message.usage && collectedMessages.length === 0) {
191
- // If we only got a usage message with no content, add a placeholder
192
- collectedMessages.push({
193
- role: ContentGeneratorRole.ASSISTANT,
194
- content: '',
134
+ try {
135
+ // Fetch models from the API
136
+ const baseURL = this.getBaseURL() || 'https://api.openai.com/v1';
137
+ const response = await fetch(`${baseURL}/models`, {
138
+ method: 'GET',
139
+ headers: {
140
+ Authorization: `Bearer ${apiKey}`,
141
+ },
142
+ });
143
+ if (response.ok) {
144
+ const data = (await response.json());
145
+ const models = [];
146
+ // Add all models without filtering - let them all through
147
+ for (const model of data.data) {
148
+ // Skip non-chat models (embeddings, audio, image, etc.)
149
+ if (!/embedding|whisper|audio|tts|image|vision|dall[- ]?e|moderation/i.test(model.id)) {
150
+ models.push({
151
+ id: model.id,
152
+ name: model.id,
153
+ provider: 'openai-responses',
154
+ supportedToolFormats: ['openai'],
195
155
  });
196
156
  }
197
- yield message;
198
- }
199
- // Cache the collected messages with token count
200
- if (conversationId && parentId && collectedMessages.length > 0) {
201
- // Get previous accumulated tokens
202
- const previousTokens = cache.getAccumulatedTokens(conversationId, parentId);
203
- // Calculate tokens for this request (messages + response)
204
- const requestTokens = estimateMessagesTokens(messages);
205
- const responseTokens = estimateMessagesTokens(collectedMessages);
206
- const totalTokensForRequest = requestTokens + responseTokens;
207
- // Update cache with new accumulated total
208
- cache.set(conversationId, parentId, collectedMessages, previousTokens + totalTokensForRequest);
209
157
  }
210
- })();
211
- }
212
- const data = (await response.json());
213
- const resultMessages = [];
214
- if (data.choices && data.choices.length > 0) {
215
- const choice = data.choices[0];
216
- const message = {
217
- role: choice.message.role,
218
- content: choice.message.content || '',
219
- };
220
- if (choice.message.tool_calls) {
221
- message.tool_calls = choice.message.tool_calls;
158
+ return models.length > 0
159
+ ? models
160
+ : RESPONSES_API_MODELS.map((modelId) => ({
161
+ id: modelId,
162
+ name: modelId,
163
+ provider: 'openai-responses',
164
+ supportedToolFormats: ['openai'],
165
+ }));
222
166
  }
223
- if (data.usage) {
224
- message.usage = {
225
- prompt_tokens: data.usage.prompt_tokens || 0,
226
- completion_tokens: data.usage.completion_tokens || 0,
227
- total_tokens: data.usage.total_tokens || 0,
228
- };
229
- }
230
- resultMessages.push(message);
231
- }
232
- // Cache the result with token count
233
- if (conversationId && parentId && resultMessages.length > 0) {
234
- // Get previous accumulated tokens
235
- const previousTokens = this.conversationCache.getAccumulatedTokens(conversationId, parentId);
236
- // Calculate tokens for this request
237
- const requestTokens = estimateMessagesTokens(messages);
238
- const responseTokens = estimateMessagesTokens(resultMessages);
239
- const totalTokensForRequest = requestTokens + responseTokens;
240
- // Update cache with new accumulated total
241
- this.conversationCache.set(conversationId, parentId, resultMessages, previousTokens + totalTokensForRequest);
242
167
  }
243
- return (async function* () {
244
- for (const message of resultMessages) {
245
- yield message;
246
- }
247
- })();
248
- }
249
- async getModels() {
250
- // Return models that support the responses API
251
- return [
252
- {
253
- id: 'o1',
254
- name: 'o1',
255
- provider: 'openai-responses',
256
- supportedToolFormats: ['openai'],
257
- },
258
- {
259
- id: 'o1-preview',
260
- name: 'o1-preview',
261
- provider: 'openai-responses',
262
- supportedToolFormats: ['openai'],
263
- },
264
- {
265
- id: 'o1-mini',
266
- name: 'o1-mini',
267
- provider: 'openai-responses',
268
- supportedToolFormats: ['openai'],
269
- },
270
- {
271
- id: 'o3-mini',
272
- name: 'o3-mini',
273
- provider: 'openai-responses',
274
- supportedToolFormats: ['openai'],
275
- },
276
- ];
277
- }
278
- async *generateChatCompletion(messages, tools, _toolFormat) {
279
- // Check if API key is available
280
- const apiKey = await this.getAuthToken();
281
- if (!apiKey) {
282
- throw new Error('OpenAI API key is required to generate completions');
168
+ catch (error) {
169
+ this.logger.debug(() => `Error fetching models from OpenAI: ${error}`);
283
170
  }
284
- // Always use responses endpoint
285
- const conversationId = undefined;
286
- const parentId = undefined;
287
- yield* await this.callResponsesEndpoint(messages, tools, {
288
- stream: true,
289
- tool_choice: tools && tools.length > 0 ? 'auto' : undefined,
290
- stateful: false, // Always stateless for now
291
- conversationId,
292
- parentId,
293
- });
171
+ // Fallback to hardcoded list from RESPONSES_API_MODELS
172
+ return RESPONSES_API_MODELS.map((modelId) => ({
173
+ id: modelId,
174
+ name: modelId,
175
+ provider: 'openai-responses',
176
+ supportedToolFormats: ['openai'],
177
+ }));
294
178
  }
295
179
  setModel(modelId) {
296
180
  // Update SettingsService as the source of truth
@@ -328,18 +212,18 @@ export class OpenAIResponsesProvider extends BaseProvider {
328
212
  });
329
213
  }
330
214
  setBaseUrl(baseUrl) {
331
- // If no baseUrl is provided, use default
332
- this.baseURL =
333
- baseUrl && baseUrl.trim() !== '' ? baseUrl : 'https://api.openai.com/v1';
334
- // Persist to SettingsService if available
335
- this.setBaseUrlInSettings(this.baseURL).catch((error) => {
215
+ // Call base provider implementation which stores in ephemeral settings
216
+ super.setBaseUrl?.(baseUrl);
217
+ // Also persist to SettingsService if available
218
+ const urlToStore = baseUrl && baseUrl.trim() !== '' ? baseUrl : 'https://api.openai.com/v1';
219
+ this.setBaseUrlInSettings(urlToStore).catch((error) => {
336
220
  this.logger.debug(() => `Failed to persist base URL to SettingsService: ${error}`);
337
221
  });
338
- // Call base provider implementation
339
- super.setBaseUrl?.(baseUrl);
340
222
  }
341
- setConfig(_config) {
342
- // Config not used by this provider
223
+ setConfig(config) {
224
+ // Update the providerConfig reference but don't store it locally
225
+ // The parent class will manage it through the protected property
226
+ super.setConfig?.(config);
343
227
  }
344
228
  setToolFormatOverride(format) {
345
229
  // Responses API only supports OpenAI format
@@ -347,13 +231,6 @@ export class OpenAIResponsesProvider extends BaseProvider {
347
231
  this.logger.debug(() => `Warning: Responses API only supports OpenAI tool format, ignoring override to ${format}`);
348
232
  }
349
233
  }
350
- /**
351
- * Estimates the remote context usage for the current conversation
352
- */
353
- estimateContextUsage(conversationId, parentId, promptMessages) {
354
- const promptTokens = estimateMessagesTokens(promptMessages);
355
- return estimateRemoteTokens(this.currentModel, this.conversationCache, conversationId, parentId, promptTokens);
356
- }
357
234
  /**
358
235
  * Get the conversation cache instance
359
236
  */
@@ -417,14 +294,15 @@ export class OpenAIResponsesProvider extends BaseProvider {
417
294
  // Load saved base URL if available
418
295
  const savedBaseUrl = await this.getBaseUrlFromSettings();
419
296
  if (savedBaseUrl !== undefined) {
420
- this.baseURL = savedBaseUrl || 'https://api.openai.com/v1';
297
+ this.baseProviderConfig.baseURL =
298
+ savedBaseUrl || 'https://api.openai.com/v1';
421
299
  }
422
300
  // Load saved model parameters if available
423
301
  const savedParams = await this.getModelParamsFromSettings();
424
302
  if (savedParams) {
425
303
  this.modelParams = savedParams;
426
304
  }
427
- this.logger.debug(() => `Initialized from SettingsService - model: ${this.currentModel}, baseURL: ${this.baseURL}, params: ${JSON.stringify(this.modelParams)}`);
305
+ this.logger.debug(() => `Initialized from SettingsService - model: ${this.currentModel}, baseURL: ${this.baseProviderConfig.baseURL}, params: ${JSON.stringify(this.modelParams)}`);
428
306
  }
429
307
  catch (error) {
430
308
  this.logger.debug(() => `Failed to initialize OpenAI Responses provider from SettingsService: ${error}`);
@@ -436,5 +314,138 @@ export class OpenAIResponsesProvider extends BaseProvider {
436
314
  async isAuthenticated() {
437
315
  return super.isAuthenticated();
438
316
  }
317
+ /**
318
+ * Generate chat completion with IContent interface
319
+ * Direct implementation for OpenAI Responses API with IContent interface
320
+ */
321
+ async *generateChatCompletion(content, tools, _toolFormat) {
322
+ // Check if API key is available
323
+ const apiKey = await this.getAuthToken();
324
+ if (!apiKey) {
325
+ throw new Error('OpenAI API key is required to generate completions');
326
+ }
327
+ // Get the system prompt
328
+ const userMemory = this.globalConfig?.getUserMemory
329
+ ? this.globalConfig.getUserMemory()
330
+ : '';
331
+ const systemPrompt = await getCoreSystemPromptAsync(userMemory, this.currentModel, undefined);
332
+ // Build Responses API input array directly from IContent
333
+ // For the Responses API, we send system, user and assistant messages
334
+ const input = [];
335
+ // Add system prompt as the first message if available
336
+ if (systemPrompt) {
337
+ input.push({
338
+ role: 'system',
339
+ content: systemPrompt,
340
+ });
341
+ }
342
+ for (const c of content) {
343
+ if (c.speaker === 'human') {
344
+ const textBlock = c.blocks.find((b) => b.type === 'text');
345
+ if (textBlock?.text) {
346
+ input.push({
347
+ role: 'user',
348
+ content: textBlock.text,
349
+ });
350
+ }
351
+ }
352
+ else if (c.speaker === 'ai') {
353
+ // For AI messages, we only include the text content
354
+ // Tool calls are part of the history but not sent to the API
355
+ const textBlocks = c.blocks.filter((b) => b.type === 'text');
356
+ const toolCallBlocks = c.blocks.filter((b) => b.type === 'tool_call');
357
+ const contentText = textBlocks.map((b) => b.text).join('');
358
+ // If there's text content or it's a pure tool call response, include it
359
+ if (contentText || toolCallBlocks.length > 0) {
360
+ const assistantMsg = {
361
+ role: 'assistant',
362
+ };
363
+ // Include text content if present
364
+ if (contentText) {
365
+ assistantMsg.content = contentText;
366
+ }
367
+ else if (toolCallBlocks.length > 0) {
368
+ // For tool-only responses, add a brief description
369
+ assistantMsg.content = `[Called ${toolCallBlocks.length} tool${toolCallBlocks.length > 1 ? 's' : ''}: ${toolCallBlocks.map((tc) => tc.name).join(', ')}]`;
370
+ }
371
+ input.push(assistantMsg);
372
+ }
373
+ }
374
+ else if (c.speaker === 'tool') {
375
+ // Tool responses are converted to assistant messages with the result
376
+ const toolResponseBlock = c.blocks.find((b) => b.type === 'tool_response');
377
+ if (toolResponseBlock) {
378
+ // Add tool result as an assistant message
379
+ const result = typeof toolResponseBlock.result === 'string'
380
+ ? toolResponseBlock.result
381
+ : JSON.stringify(toolResponseBlock.result);
382
+ input.push({
383
+ role: 'assistant',
384
+ content: `[Tool ${toolResponseBlock.toolName} result]: ${result}`,
385
+ });
386
+ }
387
+ }
388
+ }
389
+ // Convert Gemini format tools to Responses API format directly
390
+ // Based on the ToolFormatter.toResponsesTool format
391
+ const responsesTools = tools
392
+ ? tools[0].functionDeclarations.map((decl) => {
393
+ // Support both old 'parameters' and new 'parametersJsonSchema' formats
394
+ // DeclarativeTool uses parametersJsonSchema, while legacy tools use parameters
395
+ const toolParameters = 'parametersJsonSchema' in decl
396
+ ? decl
397
+ .parametersJsonSchema
398
+ : decl.parameters;
399
+ // Convert parameters from Gemini format to standard format
400
+ const convertedParams = toolParameters
401
+ ? this.convertGeminiSchemaToStandard(toolParameters)
402
+ : { type: 'object', properties: {} };
403
+ return {
404
+ type: 'function',
405
+ name: decl.name,
406
+ description: decl.description || null,
407
+ parameters: convertedParams,
408
+ strict: null,
409
+ };
410
+ })
411
+ : undefined;
412
+ // Build the request directly for Responses API
413
+ const request = {
414
+ model: this.currentModel,
415
+ input,
416
+ stream: true,
417
+ ...(this.modelParams || {}),
418
+ };
419
+ if (responsesTools && responsesTools.length > 0) {
420
+ request.tools = responsesTools;
421
+ }
422
+ // Make the API call
423
+ const baseURL = this.getBaseURL() || 'https://api.openai.com/v1';
424
+ const responsesURL = `${baseURL}/responses`;
425
+ const requestBody = JSON.stringify(request);
426
+ const bodyBlob = new Blob([requestBody], {
427
+ type: 'application/json; charset=utf-8',
428
+ });
429
+ const response = await fetch(responsesURL, {
430
+ method: 'POST',
431
+ headers: {
432
+ Authorization: `Bearer ${apiKey}`,
433
+ 'Content-Type': 'application/json; charset=utf-8',
434
+ },
435
+ body: bodyBlob,
436
+ });
437
+ // Handle errors
438
+ if (!response.ok) {
439
+ const errorBody = await response.text();
440
+ throw parseErrorResponse(response.status, errorBody, this.name);
441
+ }
442
+ // Stream the response directly as IContent
443
+ if (response.body) {
444
+ for await (const message of parseResponsesStream(response.body)) {
445
+ // The parseResponsesStream now returns IContent directly
446
+ yield message;
447
+ }
448
+ }
449
+ }
439
450
  }
440
451
  //# sourceMappingURL=OpenAIResponsesProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIResponsesProvider.js","sourceRoot":"","sources":["../../../../src/providers/openai-responses/OpenAIResponsesProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIResponsesProvider.js","sourceRoot":"","sources":["../../../../src/providers/openai-responses/OpenAIResponsesProvider.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,9 @@ export class OpenAITokenizer {
27
27
  this.encoderCache.set(model, encoder);
28
28
  }
29
29
  catch (_error) {
30
- // Fall back to cl100k_base encoding for newer models
31
- console.warn(`No specific encoding for model ${model}, using cl100k_base`);
32
- encoder = encoding_for_model('gpt-4');
30
+ // Fall back to o200k_base encoding for newer models
31
+ console.warn(`No specific encoding for model ${model}, using o200k_base`);
32
+ encoder = encoding_for_model('gpt-4o-mini');
33
33
  this.encoderCache.set(model, encoder);
34
34
  }
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAITokenizer.js","sourceRoot":"","sources":["../../../../src/providers/tokenizers/OpenAITokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAGnE,MAAM,OAAO,eAAe;IAClB,YAAY,GAAG,IAAI,GAAG,EAG3B,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,KAAa;QAC3C,IAAI,CAAC;YACH,sCAAsC;YACtC,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,OAAO,GAAG,kBAAkB,CAAC,KAAsB,CAAC,CAAC;oBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,qDAAqD;oBACrD,OAAO,CAAC,IAAI,CACV,kCAAkC,KAAK,qBAAqB,CAC7D,CAAC;oBACF,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACtC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,eAAe;YACf,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,+CAA+C;YAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"OpenAITokenizer.js","sourceRoot":"","sources":["../../../../src/providers/tokenizers/OpenAITokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,kBAAkB,EAAiB,MAAM,gBAAgB,CAAC;AAGnE,MAAM,OAAO,eAAe;IAClB,YAAY,GAAG,IAAI,GAAG,EAG3B,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,KAAa;QAC3C,IAAI,CAAC;YACH,sCAAsC;YACtC,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,OAAO,GAAG,kBAAkB,CAAC,KAAsB,CAAC,CAAC;oBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,oDAAoD;oBACpD,OAAO,CAAC,IAAI,CACV,kCAAkC,KAAK,oBAAoB,CAC5D,CAAC;oBACF,OAAO,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,eAAe;YACf,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,+CAA+C;YAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}