@mate-academy/llm-gateway 6.1.0 → 6.2.1

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 (75) hide show
  1. package/dist/LLMService.constants.d.ts +291 -1
  2. package/dist/LLMService.constants.js +2 -1
  3. package/dist/LLMService.constants.js.map +1 -1
  4. package/dist/LLMService.typedefs.d.ts +9 -0
  5. package/dist/LLMService.typedefs.js.map +1 -1
  6. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.d.ts +12 -7
  7. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +232 -64
  8. package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
  9. package/dist/providers/LLMAPI/LLMAPI.constants.d.ts +293 -4
  10. package/dist/providers/LLMAPI/LLMAPI.constants.js +3 -3
  11. package/dist/providers/LLMAPI/LLMAPI.constants.js.map +1 -1
  12. package/dist/providers/LLMAPI/LLMAPI.entity.d.ts +6 -0
  13. package/dist/providers/LLMAPI/LLMAPI.entity.js +48 -0
  14. package/dist/providers/LLMAPI/LLMAPI.entity.js.map +1 -0
  15. package/dist/providers/LLMAPI/LLMAPI.typedefs.js.map +1 -1
  16. package/dist/providers/LLMAPI/index.d.ts +1 -0
  17. package/dist/providers/LLMAPI/index.js +1 -0
  18. package/dist/providers/LLMAPI/index.js.map +1 -1
  19. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.d.ts +37 -0
  20. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js +500 -0
  21. package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js.map +1 -0
  22. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.d.ts +2 -1
  23. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js +23 -13
  24. package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js.map +1 -1
  25. package/dist/providers/LLMAPI/services/index.d.ts +1 -0
  26. package/dist/providers/LLMAPI/services/index.js +1 -0
  27. package/dist/providers/LLMAPI/services/index.js.map +1 -1
  28. package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.js +2 -4
  29. package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.js.map +1 -1
  30. package/dist/providers/LLMAPI/utilities/index.d.ts +2 -0
  31. package/dist/providers/LLMAPI/utilities/index.js +5 -1
  32. package/dist/providers/LLMAPI/utilities/index.js.map +1 -1
  33. package/dist/providers/LLMAPI/utilities/parseXmlToolCalls.d.ts +7 -0
  34. package/dist/providers/LLMAPI/utilities/parseXmlToolCalls.js +35 -0
  35. package/dist/providers/LLMAPI/utilities/parseXmlToolCalls.js.map +1 -0
  36. package/dist/providers/LLMAPI/utilities/stripThinkingTags.d.ts +1 -0
  37. package/dist/providers/LLMAPI/utilities/stripThinkingTags.js +7 -0
  38. package/dist/providers/LLMAPI/utilities/stripThinkingTags.js.map +1 -0
  39. package/dist/providers/OpenAI/services/OpenAIAssistance.service.d.ts +12 -7
  40. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +180 -67
  41. package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
  42. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.d.ts +2 -0
  43. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js +60 -76
  44. package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js.map +1 -1
  45. package/dist/services/LLMAssistanceService.abstract.d.ts +8 -6
  46. package/dist/services/LLMAssistanceService.abstract.js +20 -0
  47. package/dist/services/LLMAssistanceService.abstract.js.map +1 -1
  48. package/dist/services/chatState/CompletionsChatState.d.ts +19 -0
  49. package/dist/services/chatState/CompletionsChatState.js +80 -0
  50. package/dist/services/chatState/CompletionsChatState.js.map +1 -0
  51. package/dist/services/chatState/index.d.ts +1 -0
  52. package/dist/services/chatState/index.js +6 -0
  53. package/dist/services/chatState/index.js.map +1 -0
  54. package/dist/services/fileStorage/FileStorageToolExecutor.d.ts +15 -0
  55. package/dist/services/fileStorage/FileStorageToolExecutor.js +172 -0
  56. package/dist/services/fileStorage/FileStorageToolExecutor.js.map +1 -0
  57. package/dist/services/fileStorage/InMemoryFileStorage.d.ts +20 -0
  58. package/dist/services/fileStorage/InMemoryFileStorage.js +67 -0
  59. package/dist/services/fileStorage/InMemoryFileStorage.js.map +1 -0
  60. package/dist/services/fileStorage/fileStorageTools.d.ts +26 -0
  61. package/dist/services/fileStorage/fileStorageTools.js +68 -0
  62. package/dist/services/fileStorage/fileStorageTools.js.map +1 -0
  63. package/dist/services/fileStorage/index.d.ts +4 -0
  64. package/dist/services/fileStorage/index.js +11 -0
  65. package/dist/services/fileStorage/index.js.map +1 -0
  66. package/dist/utilities/index.d.ts +1 -0
  67. package/dist/utilities/index.js +1 -0
  68. package/dist/utilities/index.js.map +1 -1
  69. package/dist/utilities/tools/LLMTool.d.ts +10 -0
  70. package/dist/utilities/tools/LLMTool.js +10 -0
  71. package/dist/utilities/tools/LLMTool.js.map +1 -0
  72. package/dist/utilities/tools/index.d.ts +1 -0
  73. package/dist/utilities/tools/index.js +6 -0
  74. package/dist/utilities/tools/index.js.map +1 -0
  75. package/package.json +1 -1
@@ -0,0 +1,500 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMAPIAssistanceService = void 0;
4
+ const openai_1 = require("openai");
5
+ const uuid_1 = require("uuid");
6
+ const LLMService_typedefs_1 = require("../../../LLMService.typedefs");
7
+ const LLMService_constants_1 = require("../../../LLMService.constants");
8
+ const serializeError_1 = require("../../../utilities/serializeError");
9
+ const services_1 = require("../../../services");
10
+ const LLMAPI_typedefs_1 = require("../../../providers/LLMAPI/LLMAPI.typedefs");
11
+ const LLMAPI_entity_1 = require("../../../providers/LLMAPI/LLMAPI.entity");
12
+ const utilities_1 = require("../../../providers/LLMAPI/utilities");
13
+ const OpenAI_entity_1 = require("../../../providers/OpenAI/OpenAI.entity");
14
+ const fileStorage_1 = require("../../../services/fileStorage");
15
+ const chatState_1 = require("../../../services/chatState");
16
+ const FILE_STORAGE_TOOL_NAMES = Object.values(fileStorage_1.FileStorageToolName);
17
+ class LLMAPIAssistanceService extends services_1.LLMAssistanceService {
18
+ fileStorage = new fileStorage_1.InMemoryFileStorage();
19
+ chatState = new chatState_1.CompletionsChatState();
20
+ toolExecutor = new fileStorage_1.FileStorageToolExecutor(this.fileStorage);
21
+ jsonFixer;
22
+ fileContextInjectedChats = new Set();
23
+ constructor(logger, reporter, options) {
24
+ super(LLMService_typedefs_1.LLMProviders.LLMAPI, logger, reporter, options);
25
+ }
26
+ get instance() {
27
+ return this.getOrCreateInstance(() => new openai_1.OpenAI({
28
+ ...this.options,
29
+ baseURL: LLMAPI_typedefs_1.LLMAPI_BASE_URL,
30
+ }));
31
+ }
32
+ getJsonFixer() {
33
+ if (!this.jsonFixer) {
34
+ this.jsonFixer = new utilities_1.LLMAPIJsonFixer(this.instance, this.logger, this.reporter);
35
+ }
36
+ return this.jsonFixer;
37
+ }
38
+ async uploadFile(fileOptions) {
39
+ const { path, name, mimeType, abortSignal, reporterContext, } = fileOptions;
40
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
41
+ try {
42
+ abortSignal?.throwIfAborted();
43
+ const existingFile = this.fileStorage.getFileByPath(path);
44
+ if (existingFile) {
45
+ await this.writeSuccessMetrics({
46
+ method: this.getMethodName(this.uploadFile),
47
+ model: null,
48
+ usage: {},
49
+ writeMetrics,
50
+ });
51
+ return {
52
+ fileId: existingFile.fileId,
53
+ name: existingFile.name,
54
+ path: existingFile.path,
55
+ mimeType: existingFile.mimeType,
56
+ };
57
+ }
58
+ const storedFile = this.fileStorage.addFile(path, name, mimeType);
59
+ const uploadedFileInfo = {
60
+ fileId: storedFile.fileId,
61
+ name: storedFile.name,
62
+ path: storedFile.path,
63
+ mimeType: storedFile.mimeType,
64
+ };
65
+ await this.writeSuccessMetrics({
66
+ method: this.getMethodName(this.uploadFile),
67
+ model: null,
68
+ usage: {},
69
+ writeMetrics,
70
+ });
71
+ return uploadedFileInfo;
72
+ }
73
+ catch (error) {
74
+ await this.writeErrorMetrics({
75
+ method: this.getMethodName(this.uploadFile),
76
+ model: null,
77
+ writeMetrics,
78
+ });
79
+ this.logger?.child(this.getMethodName(this.uploadFile))
80
+ .error('Error uploading file', {
81
+ error: (0, serializeError_1.serializeError)(error),
82
+ file: fileOptions,
83
+ });
84
+ return {
85
+ error: error instanceof Error
86
+ ? error
87
+ : new Error(String(error)),
88
+ };
89
+ }
90
+ }
91
+ async getFile(path) {
92
+ const storedFile = this.fileStorage.getFileByPath(path);
93
+ if (!storedFile) {
94
+ return null;
95
+ }
96
+ return {
97
+ fileId: storedFile.fileId,
98
+ name: storedFile.name,
99
+ path: storedFile.path,
100
+ mimeType: storedFile.mimeType,
101
+ };
102
+ }
103
+ async deleteFile(fileId) {
104
+ this.fileStorage.removeFile(fileId);
105
+ }
106
+ async createFileStorage(options) {
107
+ const { uploadedFiles, abortSignal, reporterContext, } = options;
108
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
109
+ try {
110
+ abortSignal?.throwIfAborted();
111
+ const storageId = this.fileStorage.createStorage(uploadedFiles.map((file) => file.fileId));
112
+ await this.writeSuccessMetrics({
113
+ method: this.getMethodName(this.createFileStorage),
114
+ model: null,
115
+ usage: {},
116
+ writeMetrics,
117
+ });
118
+ return { storageId };
119
+ }
120
+ catch (error) {
121
+ await this.writeErrorMetrics({
122
+ method: this.getMethodName(this.createFileStorage),
123
+ model: null,
124
+ writeMetrics,
125
+ });
126
+ this.logger?.child(this.getMethodName(this.createFileStorage))
127
+ .error('Error creating file storage', {
128
+ error: (0, serializeError_1.serializeError)(error),
129
+ uploadedFiles,
130
+ });
131
+ return {
132
+ error: error instanceof Error
133
+ ? error
134
+ : new Error(String(error)),
135
+ };
136
+ }
137
+ }
138
+ async deleteFileStorage(storageId) {
139
+ this.fileStorage.removeStorage(storageId);
140
+ }
141
+ async createChat(options) {
142
+ const { model, instructions, history = [], storageId, abortSignal, reporterContext, } = options;
143
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
144
+ try {
145
+ abortSignal?.throwIfAborted();
146
+ const chatId = (0, uuid_1.v4)();
147
+ const convertedHistory = LLMAPI_entity_1.LLMAPIEntity
148
+ .convertAssistanceHistoryToCompletions(history);
149
+ this.chatState.createChat(chatId, instructions, storageId, convertedHistory);
150
+ await this.writeSuccessMetrics({
151
+ method: this.getMethodName(this.createChat),
152
+ model,
153
+ usage: {},
154
+ writeMetrics,
155
+ });
156
+ return { chatId };
157
+ }
158
+ catch (error) {
159
+ await this.writeErrorMetrics({
160
+ method: this.getMethodName(this.createChat),
161
+ model,
162
+ writeMetrics,
163
+ });
164
+ this.logger?.child(this.getMethodName(this.createChat))
165
+ .error('Error creating chat', {
166
+ error: (0, serializeError_1.serializeError)(error),
167
+ options,
168
+ });
169
+ return {
170
+ error: error instanceof Error
171
+ ? error
172
+ : new Error(String(error)),
173
+ };
174
+ }
175
+ }
176
+ async deleteChat(chatId) {
177
+ this.chatState.deleteChat(chatId);
178
+ this.fileContextInjectedChats.delete(chatId);
179
+ }
180
+ async countTokens(messages) {
181
+ const countTokensFn = OpenAI_entity_1.OpenAIEntity.getCountTokensFn();
182
+ const messageContents = messages.flatMap((message) => message.content);
183
+ return countTokensFn(messageContents);
184
+ }
185
+ async assistInChatText(options) {
186
+ const { model, chatId, abortSignal, reporterContext, tools: customTools, maxToolIterations = LLMService_constants_1.DEFAULT_MAX_TOOL_ITERATIONS, } = options;
187
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
188
+ try {
189
+ const { storageId, tools, } = this.prepareChatForAssist(options);
190
+ const toolLoopResult = await this.executeToolLoop({
191
+ chatId,
192
+ model,
193
+ tools,
194
+ storageId,
195
+ customTools,
196
+ maxToolIterations,
197
+ abortSignal,
198
+ });
199
+ const text = (0, utilities_1.stripThinkingTags)(toolLoopResult.text);
200
+ this.chatState.appendAssistantMessage(chatId, text);
201
+ await this.writeSuccessMetrics({
202
+ method: this.getMethodName(this.assistInChatText),
203
+ model,
204
+ usage: this.buildToolLoopUsage(toolLoopResult),
205
+ writeMetrics,
206
+ });
207
+ return { text };
208
+ }
209
+ catch (error) {
210
+ await this.writeErrorMetrics({
211
+ method: this.getMethodName(this.assistInChatText),
212
+ model,
213
+ isAborted: abortSignal?.aborted,
214
+ writeMetrics,
215
+ });
216
+ this.logger?.child(this.getMethodName(this.assistInChatText)).error('Error assisting in chat', {
217
+ error: (0, serializeError_1.serializeError)(error),
218
+ options,
219
+ });
220
+ return {
221
+ error: error instanceof Error
222
+ ? error
223
+ : new Error(String(error)),
224
+ };
225
+ }
226
+ }
227
+ async assistInChatStructured(options) {
228
+ const { model, chatId, abortSignal, schema, reporterContext, tools: customTools, maxToolIterations = LLMService_constants_1.DEFAULT_MAX_TOOL_ITERATIONS, } = options;
229
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
230
+ try {
231
+ const { storageId, tools } = this.prepareChatForAssist(options);
232
+ const jsonSchema = schema._toProviderSchema(LLMService_typedefs_1.LLMProviders.LLMAPI);
233
+ const schemaRestore = this.injectSchemaInstruction(chatId, jsonSchema);
234
+ const toolLoopResult = await this.executeToolLoop({
235
+ chatId,
236
+ model,
237
+ tools,
238
+ storageId,
239
+ customTools,
240
+ maxToolIterations,
241
+ abortSignal,
242
+ responseFormat: { type: 'json_object' },
243
+ });
244
+ const text = (0, utilities_1.stripThinkingTags)(toolLoopResult.text);
245
+ schemaRestore();
246
+ this.chatState.appendAssistantMessage(chatId, text);
247
+ await this.writeSuccessMetrics({
248
+ method: this.getMethodName(this.assistInChatStructured),
249
+ model,
250
+ usage: this.buildToolLoopUsage(toolLoopResult),
251
+ writeMetrics,
252
+ });
253
+ return this.getJsonFixer()
254
+ .parseStructuredResponse({
255
+ content: text,
256
+ schema,
257
+ jsonSchema,
258
+ reporterContext,
259
+ abortSignal,
260
+ });
261
+ }
262
+ catch (error) {
263
+ await this.writeErrorMetrics({
264
+ method: this.getMethodName(this.assistInChatStructured),
265
+ model,
266
+ isAborted: abortSignal?.aborted,
267
+ writeMetrics,
268
+ });
269
+ this.logger?.child(this.getMethodName(this.assistInChatStructured)).error('Error assisting in chat'
270
+ + ' with structured output', {
271
+ error: (0, serializeError_1.serializeError)(error),
272
+ options,
273
+ });
274
+ return {
275
+ text: '',
276
+ error: error instanceof Error
277
+ ? error
278
+ : new Error(String(error)),
279
+ parseError: 'Failed to get structured response'
280
+ + ' from LLMAPI',
281
+ };
282
+ }
283
+ }
284
+ prepareChatForAssist(options) {
285
+ const { chatId, message, storageId: optionsStorageId, tools: customTools, } = options;
286
+ const chat = this.chatState.getChat(chatId);
287
+ if (!chat) {
288
+ throw new Error('Chat session not found');
289
+ }
290
+ const storageId = chat.storageId ?? optionsStorageId;
291
+ this.appendUserMessageToChat(chatId, message);
292
+ this.injectFileContext(chatId, storageId);
293
+ const tools = this.buildToolsArray(storageId, customTools);
294
+ return { storageId, tools };
295
+ }
296
+ appendUserMessageToChat(chatId, message) {
297
+ const convertedMessage = LLMAPI_entity_1.LLMAPIEntity
298
+ .convertAssistanceMessageToCompletion(message);
299
+ const content = convertedMessage.content;
300
+ if (typeof content === 'string') {
301
+ this.chatState.appendUserMessage(chatId, [{ type: 'text', text: content }]);
302
+ return;
303
+ }
304
+ if (Array.isArray(content)) {
305
+ this.chatState.appendUserMessage(chatId, content);
306
+ return;
307
+ }
308
+ this.chatState.appendUserMessage(chatId, [{ type: 'text', text: '' }]);
309
+ }
310
+ injectSchemaInstruction(chatId, jsonSchema) {
311
+ const schemaInstruction = 'You MUST respond with a valid JSON object'
312
+ + ' matching this JSON schema:\n'
313
+ + JSON.stringify(jsonSchema, null, 2);
314
+ const messages = this.chatState.getMessages(chatId);
315
+ const systemMessageIndex = messages.findIndex((msg) => msg.role === 'system');
316
+ if (systemMessageIndex >= 0) {
317
+ const originalMessage = messages[systemMessageIndex];
318
+ const existingContent = typeof originalMessage.content === 'string'
319
+ ? originalMessage.content
320
+ : '';
321
+ messages[systemMessageIndex] = {
322
+ role: 'system',
323
+ content: existingContent
324
+ ? `${existingContent}\n\n`
325
+ + schemaInstruction
326
+ : schemaInstruction,
327
+ };
328
+ return () => {
329
+ messages[systemMessageIndex] = originalMessage;
330
+ };
331
+ }
332
+ messages.unshift({
333
+ role: 'system',
334
+ content: schemaInstruction,
335
+ });
336
+ return () => {
337
+ messages.shift();
338
+ };
339
+ }
340
+ buildToolLoopUsage(result) {
341
+ return {
342
+ inputTextTokens: result.totalPromptTokens
343
+ - result.totalCachedTokens,
344
+ inputCachedTextTokens: result.totalCachedTokens,
345
+ outputTextTokens: result.totalOutputTokens,
346
+ outputReasoningTokens: result.totalReasoningTokens,
347
+ };
348
+ }
349
+ injectFileContext(chatId, storageId) {
350
+ if (!storageId) {
351
+ return;
352
+ }
353
+ if (this.fileContextInjectedChats.has(chatId)) {
354
+ return;
355
+ }
356
+ const files = this.fileStorage.getStorageFiles(storageId);
357
+ if (files.length === 0) {
358
+ return;
359
+ }
360
+ const fileContents = files.map((file) => `--- File: ${file.name} ---\n`
361
+ + file.content
362
+ + '\n--- End of file ---').join('\n\n');
363
+ const fileContext = 'The following files have been uploaded'
364
+ + ' for reference:\n\n'
365
+ + fileContents;
366
+ const messages = this.chatState.getMessages(chatId);
367
+ const systemMessage = messages.find((msg) => msg.role === 'system');
368
+ if (systemMessage && 'content' in systemMessage) {
369
+ const existingContent = typeof systemMessage.content === 'string'
370
+ ? systemMessage.content
371
+ : '';
372
+ systemMessage.content = existingContent
373
+ ? `${existingContent}\n\n${fileContext}`
374
+ : fileContext;
375
+ }
376
+ else {
377
+ messages.unshift({
378
+ role: 'system',
379
+ content: fileContext,
380
+ });
381
+ }
382
+ this.fileContextInjectedChats.add(chatId);
383
+ }
384
+ buildToolsArray(storageId, customTools) {
385
+ const tools = [];
386
+ if (customTools?.length) {
387
+ this.validateToolDefinitions(customTools);
388
+ if (storageId) {
389
+ tools.push(...(0, fileStorage_1.getFileStorageToolsForChatCompletions)());
390
+ }
391
+ for (const tool of customTools) {
392
+ tools.push({
393
+ type: 'function',
394
+ function: {
395
+ name: tool.name,
396
+ description: tool.description,
397
+ parameters: tool.parameters
398
+ ._toProviderSchema(LLMService_typedefs_1.LLMProviders.LLMAPI),
399
+ },
400
+ });
401
+ }
402
+ }
403
+ return tools;
404
+ }
405
+ async executeToolLoop(options) {
406
+ const { chatId, model, tools, storageId, customTools, maxToolIterations, abortSignal, responseFormat, } = options;
407
+ let totalPromptTokens = 0;
408
+ let totalCachedTokens = 0;
409
+ let totalOutputTokens = 0;
410
+ let totalReasoningTokens = 0;
411
+ let lastResponseText = '';
412
+ for (let iteration = 0; iteration < maxToolIterations; iteration++) {
413
+ abortSignal?.throwIfAborted();
414
+ const response = await this.instance.chat.completions.create({
415
+ model: model.name,
416
+ messages: this.chatState.getMessages(chatId),
417
+ ...model.config,
418
+ ...(tools.length > 0 && { tools }),
419
+ ...(responseFormat && {
420
+ response_format: responseFormat,
421
+ }),
422
+ }, { signal: abortSignal });
423
+ const choice = response.choices[0];
424
+ totalPromptTokens += response.usage?.prompt_tokens ?? 0;
425
+ totalCachedTokens +=
426
+ response.usage?.prompt_tokens_details?.cached_tokens ?? 0;
427
+ totalOutputTokens += response.usage?.completion_tokens ?? 0;
428
+ totalReasoningTokens +=
429
+ response.usage?.completion_tokens_details?.reasoning_tokens ?? 0;
430
+ const hasStandardToolCalls = choice?.finish_reason === 'tool_calls'
431
+ && choice.message.tool_calls?.length;
432
+ let toolCalls;
433
+ let usedXmlParsing = false;
434
+ if (hasStandardToolCalls) {
435
+ toolCalls = choice.message
436
+ .tool_calls;
437
+ }
438
+ else {
439
+ const responseText = choice?.message.content ?? '';
440
+ const xmlParsed = (0, utilities_1.parseXmlToolCalls)(responseText);
441
+ if (xmlParsed.toolCalls.length === 0) {
442
+ lastResponseText = responseText;
443
+ break;
444
+ }
445
+ toolCalls = xmlParsed.toolCalls;
446
+ usedXmlParsing = true;
447
+ }
448
+ const results = await Promise.all(toolCalls.map((toolCall) => this.dispatchToolCall(storageId, toolCall, customTools)));
449
+ if (usedXmlParsing) {
450
+ this.appendXmlToolResults(chatId, choice?.message.content ?? '', toolCalls, results);
451
+ }
452
+ else {
453
+ this.chatState.appendToolCallMessages(chatId, toolCalls);
454
+ for (let index = 0; index < toolCalls.length; index++) {
455
+ this.chatState.appendToolResult(chatId, toolCalls[index].id, results[index]);
456
+ }
457
+ }
458
+ }
459
+ return {
460
+ text: lastResponseText,
461
+ totalPromptTokens,
462
+ totalCachedTokens,
463
+ totalOutputTokens,
464
+ totalReasoningTokens,
465
+ };
466
+ }
467
+ appendXmlToolResults(chatId, originalContent, toolCalls, results) {
468
+ this.chatState.appendAssistantMessage(chatId, originalContent);
469
+ const toolResultsSummary = toolCalls.map((call, index) => `[Tool "${call.function.name}"`
470
+ + ` result]: ${results[index]}`).join('\n\n');
471
+ this.chatState.appendUserMessage(chatId, [{
472
+ type: 'text',
473
+ text: toolResultsSummary,
474
+ }]);
475
+ }
476
+ async dispatchToolCall(storageId, toolCall, customTools) {
477
+ const toolName = toolCall.function.name;
478
+ const isFileStorageTool = FILE_STORAGE_TOOL_NAMES.includes(toolName);
479
+ if (isFileStorageTool && storageId) {
480
+ return this.toolExecutor.execute(storageId, toolName, toolCall.function.arguments);
481
+ }
482
+ const customTool = customTools?.find((tool) => tool.name === toolName);
483
+ if (!customTool) {
484
+ return `Unknown tool: '${toolName}'`;
485
+ }
486
+ try {
487
+ const parsedArguments = JSON.parse(toolCall.function.arguments);
488
+ return await customTool.execute(parsedArguments);
489
+ }
490
+ catch (error) {
491
+ const errorMessage = error instanceof Error
492
+ ? error.message
493
+ : String(error);
494
+ return `Error executing tool '${toolName}':`
495
+ + ` ${errorMessage}`;
496
+ }
497
+ }
498
+ }
499
+ exports.LLMAPIAssistanceService = LLMAPIAssistanceService;
500
+ //# sourceMappingURL=LLMAPIAssistance.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMAPIAssistance.service.js","sourceRoot":"","sources":["../../../../src/providers/LLMAPI/services/LLMAPIAssistance.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { OpenAI } from 'openai';
2
- import type { LLMInstanceOptions, LLMSendMessageOptions, LLMStructuredResult } from '../../../LLMService.typedefs';
2
+ import type { LLMCompletionResult, LLMInstanceOptions, LLMSendMessageOptions, LLMStructuredResult } from '../../../LLMService.typedefs';
3
3
  import { LLMProviders } from '../../../LLMService.typedefs';
4
4
  import { type LLMLoggerInterface } from '../../../utilities/logger';
5
5
  import { type LLMReporterInterface } from '../../../utilities/reporter';
@@ -10,6 +10,7 @@ export declare class LLMAPICompletionService<Reporter extends LLMReporterInterfa
10
10
  constructor(logger: LLMLoggerInterface | undefined, reporter: Reporter, options?: LLMInstanceOptions[LLMProviders.LLMAPI]);
11
11
  get instance(): OpenAI;
12
12
  private getJsonFixer;
13
+ protected sendTextMessage(options: LLMSendMessageOptions<LLMProviders.LLMAPI, Reporter>): Promise<LLMCompletionResult>;
13
14
  protected sendStructuredMessage(options: LLMSendMessageOptions<LLMProviders.LLMAPI, Reporter> & {
14
15
  schema: LLMSchemaInterface;
15
16
  }): Promise<LLMStructuredResult>;
@@ -25,15 +25,23 @@ class LLMAPICompletionService extends OpenAICompatibleCompletion_service_1.OpenA
25
25
  }
26
26
  return this.jsonFixer;
27
27
  }
28
+ async sendTextMessage(options) {
29
+ const result = await super.sendTextMessage(options);
30
+ if ('text' in result && result.text) {
31
+ return {
32
+ ...result,
33
+ text: (0, utilities_1.stripThinkingTags)(result.text),
34
+ };
35
+ }
36
+ return result;
37
+ }
28
38
  async sendStructuredMessage(options) {
29
39
  const { model, message, history = [], instructions, abortSignal, schema, reporterContext, } = options;
30
- const writeMetrics = this.reporter
31
- ?.initWriter(reporterContext);
40
+ const writeMetrics = this.reporter?.initWriter(reporterContext);
32
41
  try {
33
42
  abortSignal?.throwIfAborted();
34
43
  const countTokensFn = OpenAI_entity_1.OpenAIEntity.getCountTokensFn();
35
- const combinedMessages = await OpenAI_entity_1.OpenAIEntity
36
- .combineMessagesWithLimit({
44
+ const combinedMessages = await OpenAI_entity_1.OpenAIEntity.combineMessagesWithLimit({
37
45
  history,
38
46
  message,
39
47
  model,
@@ -50,10 +58,11 @@ class LLMAPICompletionService extends OpenAICompatibleCompletion_service_1.OpenA
50
58
  const fullInstructions = instructions
51
59
  ? `${instructions}\n\n${schemaInstruction}`
52
60
  : schemaInstruction;
53
- const systemMessage = [{ role: 'system', content: fullInstructions }];
61
+ const systemMessage = [
62
+ { role: 'system', content: fullInstructions },
63
+ ];
54
64
  abortSignal?.throwIfAborted();
55
- const completion = await this.instance
56
- .chat.completions.create({
65
+ const completion = await this.instance.chat.completions.create({
57
66
  model: model.name,
58
67
  messages: [
59
68
  ...systemMessage,
@@ -66,7 +75,8 @@ class LLMAPICompletionService extends OpenAICompatibleCompletion_service_1.OpenA
66
75
  signal: abortSignal,
67
76
  });
68
77
  abortSignal?.throwIfAborted();
69
- const content = completion.choices[0]?.message.content ?? '';
78
+ const rawContent = completion.choices[0]?.message.content ?? '';
79
+ const content = (0, utilities_1.stripThinkingTags)(rawContent);
70
80
  if (!content) {
71
81
  throw new Error(`Empty response from ${this.provider}`);
72
82
  }
@@ -103,17 +113,17 @@ class LLMAPICompletionService extends OpenAICompatibleCompletion_service_1.OpenA
103
113
  isAborted: abortSignal?.aborted,
104
114
  writeMetrics,
105
115
  });
106
- this.logger
107
- ?.child(this.getMethodName(this.sendStructuredMessage))
116
+ this.logger?.child(this.getMethodName(this.sendStructuredMessage))
108
117
  .error('Error sending structured message', {
109
118
  error: (0, serializeError_1.serializeError)(error),
110
119
  options,
111
120
  });
112
121
  return {
113
122
  text: '',
114
- error,
115
- parseError: `Failed to get structured response`
116
- + ` from ${this.provider}`,
123
+ error: error instanceof Error
124
+ ? error
125
+ : new Error(String(error)),
126
+ parseError: `Failed to get structured response from ${this.provider}`,
117
127
  };
118
128
  }
119
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LLMAPICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/LLMAPI/services/LLMAPICompletion.service.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAQhC,+DAG+B;AAG/B,+DAA4D;AAC5D,wHAEyE;AACzE,wEAE4C;AAC5C,oEAAgE;AAEhE,4DAEsC;AAEtC,MAAa,uBAEX,SAAQ,sEAET;IACS,SAAS,CAA8B;IAE/C,YACE,MAAsC,EACtC,QAAkB,EAClB,OAAiD;QAEjD,KAAK,CAAC,kCAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAC7B,GAAG,EAAE,CAAC,IAAI,eAAM,CAAC;YACf,GAAG,IAAI,CAAC,OAAO;YACf,OAAO,EAAE,iCAAe;SACzB,CAAsB,CACxB,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,2BAAe,CAClC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,qBAAqB,CACnC,OACkC;QAElC,MAAM,EACJ,KAAK,EACL,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,YAAY,EACZ,WAAW,EACX,MAAM,EACN,eAAe,GAChB,GAAG,OAAO,CAAC;QAEZ,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ;YAChC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;QAEhC,IAAI,CAAC;YACH,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,aAAa,GAAG,4BAAY,CAAC,gBAAgB,EAAE,CAAC;YAEtD,MAAM,gBAAgB,GAAG,MAAM,4BAAY;iBACxC,wBAAwB,CAAC;gBACxB,OAAO;gBACP,OAAO;gBACP,KAAK;gBACL,aAAa;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aAOpB,CAAC,CAAC;YAEL,MAAM,0BAA0B,GAAG,4BAAY;iBAC5C,6BAA6B,CAC5B,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAC9B,CAAC;YAEJ,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CACzC,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,MAAM,iBAAiB,GACnB,2CAA2C;kBAC3C,+BAA+B;kBAC/B,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAExC,MAAM,gBAAgB,GAAG,YAAY;gBACnC,CAAC,CAAC,GAAG,YAAY,OAAO,iBAAiB,EAAE;gBAC3C,CAAC,CAAC,iBAAiB,CAAC;YAEtB,MAAM,aAAa,GAEf,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAEpD,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ;iBACnC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACvB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ,EAAE;oBACR,GAAG,aAAa;oBAChB,GAAG,0BAA0B;iBAC9B;gBACD,CAAC,EAAE,CAAC;gBACJ,GAAG,KAAK,CAAC,MAAM;gBACf,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aACzC,EAAE;gBACD,MAAM,EAAE,WAAW;aACpB,CAAC,CAAC;YAEL,WAAW,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,OAAO,GACT,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;YAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,CAAC,QAAQ,EAAE,CACvC,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GACd,UAAU,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC;YACzC,MAAM,YAAY,GACd,UAAU,CAAC,KAAK,EAAE,qBAAqB;gBACvC,EAAE,aAAa,IAAI,CAAC,CAAC;YACzB,MAAM,kBAAkB,GACpB,YAAY,GAAG,YAAY,CAAC;YAChC,MAAM,YAAY,GACd,UAAU,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC,CAAC;YAC7C,MAAM,eAAe,GACjB,UAAU,CAAC,KAAK,EAAE,yBAAyB;gBAC3C,EAAE,gBAAgB,IAAI,CAAC,CAAC;YAE5B,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,MAAM,EAAE,IAAI,CAAC,aAAa,CACxB,IAAI,CAAC,qBAAqB,CAC3B;gBACD,KAAK;gBACL,KAAK,EAAE;oBACL,eAAe,EAAE,kBAAkB;oBACnC,qBAAqB,EAAE,YAAY;oBACnC,gBAAgB,EAAE,YAAY;oBAC9B,qBAAqB,EAAE,eAAe;iBACvC;gBACD,YAAY;aACb,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,uBAAuB,CAAC;gBACjD,OAAO;gBACP,MAAM;gBACN,UAAU;gBACV,eAAe;gBACf,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,aAAa,CACxB,IAAI,CAAC,qBAAqB,CAC3B;gBACD,KAAK;gBACL,SAAS,EAAE,WAAW,EAAE,OAAO;gBAC/B,YAAY;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM;gBACT,EAAE,KAAK,CACL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAC/C;iBACA,KAAK,CAAC,kCAAkC,EAAE;gBACzC,KAAK,EAAE,IAAA,+BAAc,EAAC,KAAK,CAAC;gBAC5B,OAAO;aACR,CAAC,CAAC;YAEL,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,KAAK;gBACL,UAAU,EACR,mCAAmC;sBACjC,SAAS,IAAI,CAAC,QAAQ,EAAE;aAC7B,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAzLD,0DAyLC"}
1
+ {"version":3,"file":"LLMAPICompletion.service.js","sourceRoot":"","sources":["../../../../src/providers/LLMAPI/services/LLMAPICompletion.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './LLMAPICompletion.service';
2
+ export * from './LLMAPIAssistance.service';
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./LLMAPICompletion.service"), exports);
18
+ __exportStar(require("./LLMAPIAssistance.service"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/LLMAPI/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/LLMAPI/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,6DAA2C"}