@futdevpro/nts-dynamo 1.15.36 → 1.15.37

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.
@@ -1,8 +1,8 @@
1
1
  import { OpenAI } from 'openai';
2
2
  import { DyFM_OAI_Settings, DyFM_OAI_Model, DyFM_OAI_CallSettings } from '@futdevpro/fsm-dynamo/ai/open-ai';
3
- import { DyFM_AI_Message, DyFM_AI_Provider, DyFM_AI_ProviderCapabilities, DyFM_AI_Config } from '@futdevpro/fsm-dynamo/ai';
3
+ import { DyFM_AI_Message, DyFM_AI_Provider, DyFM_AI_ProviderCapabilities, DyFM_AI_Config, DyFM_AI_LLM_Response, DyFM_AI_Tool, DyFM_AI_ModelInfo } from '@futdevpro/fsm-dynamo/ai';
4
4
  import { ChatCompletion } from 'openai/resources';
5
- import { ChatCompletionCreateParamsBase } from 'openai/resources/chat/completions';
5
+ import { ChatCompletionCreateParamsBase, ChatCompletionMessageParam, ChatCompletionTool } from 'openai/resources/chat/completions';
6
6
  import { DyNTS_AI_CostEventCallback } from '../../../_models/interfaces/dynts-ai-cost-event-callback.interface';
7
7
  import { DyNTS_OAI_LLM_Predefined_Requests } from '../_models/interfaces/oai-llm-predefined-requests.interface';
8
8
  import { DyNTS_AI_LLM_ServiceBase } from '../../../_services/ai-llm.service-base';
@@ -170,5 +170,27 @@ export declare class DyNTS_OAI_LLM_ServiceBase extends DyNTS_AI_LLM_ServiceBase
170
170
  * Tests the connection to OpenAI API
171
171
  */
172
172
  testConnection(issuer: string): Promise<boolean>;
173
+ /** OpenAI tool-kepes modell-registry (a base capability-precheck-jehez). */
174
+ protected getModelRegistry(): DyFM_AI_ModelInfo[];
175
+ /**
176
+ * Egy OpenAI-kor a tool-loop-ban: felepiti a natív request-et (system + a teljes beszelgetes
177
+ * tool-uzenetekkel + tools), meghivja az API-t, es normalizalt DyFM_AI_LLM_Response-t ad vissza
178
+ * (toolCalls feltoltve, ha a model tool-t akar hivni). FR-002 cost-event: 'llm-tool-use'.
179
+ */
180
+ protected callModelWithTools(set: {
181
+ conversation: DyFM_AI_Message[];
182
+ tools: DyFM_AI_Tool[];
183
+ settings?: DyFM_OAI_CallSettings;
184
+ issuer: string;
185
+ }): Promise<DyFM_AI_LLM_Response>;
186
+ /** Agnosztikus tool-definicio → OpenAI ChatCompletionTool. */
187
+ protected toOpenAITool(tool: DyFM_AI_Tool): ChatCompletionTool;
188
+ /**
189
+ * Agnosztikus DyFM_AI_Message → OpenAI ChatCompletionMessageParam.
190
+ * Kezeli a tool-result (role:'tool') es a tool-hivo assistant (tool_calls) uzeneteket is.
191
+ */
192
+ protected toOpenAIMessage(message: DyFM_AI_Message): ChatCompletionMessageParam;
193
+ /** Tool-argumentumok parse-olasa (OpenAI JSON-string → object); hibas JSON eseten ures object. */
194
+ protected parseToolArguments(raw: string): Record<string, unknown>;
173
195
  }
174
196
  //# sourceMappingURL=oai-llm.service-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
@@ -433,6 +433,130 @@ class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_Servi
433
433
  return false;
434
434
  }
435
435
  }
436
+ //#region Function calling (tool use) — FR-047
437
+ /** OpenAI tool-kepes modell-registry (a base capability-precheck-jehez). */
438
+ getModelRegistry() {
439
+ return open_ai_1.DyFM_OAI_Models;
440
+ }
441
+ /**
442
+ * Egy OpenAI-kor a tool-loop-ban: felepiti a natív request-et (system + a teljes beszelgetes
443
+ * tool-uzenetekkel + tools), meghivja az API-t, es normalizalt DyFM_AI_LLM_Response-t ad vissza
444
+ * (toolCalls feltoltve, ha a model tool-t akar hivni). FR-002 cost-event: 'llm-tool-use'.
445
+ */
446
+ async callModelWithTools(set) {
447
+ try {
448
+ const settings = set.settings ?? this.defaultSettings;
449
+ const messages = [
450
+ this.toOpenAIMessage(this.getDefaultSystemMessage(settings)),
451
+ ...set.conversation.map((message) => this.toOpenAIMessage(message)),
452
+ ];
453
+ const input = {
454
+ model: settings?.useModel ?? this.defaultModel,
455
+ messages: messages,
456
+ temperature: (0, fsm_dynamo_1.DyFM_notNull)(settings?.temperature) ? settings.temperature : this.defaultSettings.temperature,
457
+ max_completion_tokens: (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ? settings.maxTokens : this.defaultSettings.maxTokens,
458
+ top_p: (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ? settings.topP : this.defaultSettings.topP,
459
+ frequency_penalty: (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ? settings.frequencyPenalty : this.defaultSettings.frequencyPenalty,
460
+ presence_penalty: (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ? settings.presencePenalty : this.defaultSettings.presencePenalty,
461
+ tools: set.tools.map((tool) => this.toOpenAITool(tool)),
462
+ tool_choice: 'auto',
463
+ };
464
+ const start = Date.now();
465
+ const result = await this.openai.chat.completions.create(input);
466
+ const durationMs = Date.now() - start;
467
+ const message = result.choices[0].message;
468
+ const toolCalls = (message.tool_calls ?? [])
469
+ .filter((toolCall) => toolCall.type === 'function')
470
+ .map((toolCall) => ({
471
+ id: toolCall.id,
472
+ name: toolCall.function.name,
473
+ arguments: this.parseToolArguments(toolCall.function.arguments),
474
+ }));
475
+ this.emitCostEvent({
476
+ callType: 'llm-tool-use',
477
+ provider: this.aiProvider,
478
+ model: String(input.model ?? this.defaultModel),
479
+ tokensUsed: {
480
+ input: result.usage?.prompt_tokens ?? 0,
481
+ output: result.usage?.completion_tokens ?? 0,
482
+ total: result.usage?.total_tokens ?? 0,
483
+ },
484
+ durationMs: durationMs,
485
+ issuer: set.issuer,
486
+ timestamp: new Date(),
487
+ });
488
+ return {
489
+ content: message.content ?? '',
490
+ toolCalls: toolCalls.length ? toolCalls : undefined,
491
+ usage: result.usage ? {
492
+ promptTokens: result.usage.prompt_tokens,
493
+ completionTokens: result.usage.completion_tokens,
494
+ totalTokens: result.usage.total_tokens,
495
+ } : undefined,
496
+ model: result.model,
497
+ finishReason: result.choices[0].finish_reason,
498
+ stopReason: result.choices[0].finish_reason,
499
+ rawResponse: result,
500
+ };
501
+ }
502
+ catch (error) {
503
+ throw new fsm_dynamo_1.DyFM_Error({
504
+ ...this.getDefaultErrorSettings('callModelWithTools', error, set.issuer),
505
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OLSB-TC0`,
506
+ });
507
+ }
508
+ }
509
+ /** Agnosztikus tool-definicio → OpenAI ChatCompletionTool. */
510
+ toOpenAITool(tool) {
511
+ return {
512
+ type: 'function',
513
+ function: {
514
+ name: tool.name,
515
+ description: tool.description,
516
+ parameters: tool.parameters,
517
+ },
518
+ };
519
+ }
520
+ /**
521
+ * Agnosztikus DyFM_AI_Message → OpenAI ChatCompletionMessageParam.
522
+ * Kezeli a tool-result (role:'tool') es a tool-hivo assistant (tool_calls) uzeneteket is.
523
+ */
524
+ toOpenAIMessage(message) {
525
+ if (message.role === ai_1.DyFM_AI_MessageRole.tool) {
526
+ return {
527
+ role: 'tool',
528
+ tool_call_id: message.toolCallId ?? '',
529
+ content: message.content,
530
+ };
531
+ }
532
+ if (message.role === ai_1.DyFM_AI_MessageRole.assistant && message.toolCalls?.length) {
533
+ return {
534
+ role: 'assistant',
535
+ content: message.content || null,
536
+ tool_calls: message.toolCalls.map((toolCall) => ({
537
+ id: toolCall.id,
538
+ type: 'function',
539
+ function: {
540
+ name: toolCall.name,
541
+ arguments: JSON.stringify(toolCall.arguments),
542
+ },
543
+ })),
544
+ };
545
+ }
546
+ return {
547
+ role: message.role,
548
+ content: message.content,
549
+ };
550
+ }
551
+ /** Tool-argumentumok parse-olasa (OpenAI JSON-string → object); hibas JSON eseten ures object. */
552
+ parseToolArguments(raw) {
553
+ try {
554
+ return JSON.parse(raw || '{}');
555
+ }
556
+ catch {
557
+ return {};
558
+ }
559
+ }
436
560
  }
437
561
  exports.DyNTS_OAI_LLM_ServiceBase = DyNTS_OAI_LLM_ServiceBase;
438
562
  //# sourceMappingURL=oai-llm.service-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oai-llm.service-base.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oai-llm.service-base.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DyNTS_AI_Provider_ServiceBase } from './ai-provider.service-base';
2
- import { DyFM_AI_CallSettings, DyFM_AI_Message } from '@futdevpro/fsm-dynamo/ai';
2
+ import { DyFM_AI_CallSettings, DyFM_AI_Message, DyFM_AI_LLM_Response, DyFM_AI_Tool, DyFM_AI_ToolCall, DyFM_AI_ToolResult, DyFM_AI_ToolHandlers, DyFM_AI_ModelInfo } from '@futdevpro/fsm-dynamo/ai';
3
3
  import { DyFM_AI_GenericSelect_Input, DyFM_AI_GenericMultiSelect_Input, DyFM_AI_JSONKeysDescription_Input, DyFM_AI_JSONExactKeys_Input, DyFM_AI_Message_Input } from '../_models/ai-input-interfaces';
4
4
  /**
5
5
  * Abstract base class for LLM services
@@ -16,6 +16,61 @@ export declare abstract class DyNTS_AI_LLM_ServiceBase<T_AISettings extends DyFM
16
16
  get defaultSystemPrompt(): string;
17
17
  get defaultModel(): string;
18
18
  defaultLogReplacer: string;
19
+ /**
20
+ * A provider tool-kepes modell-registry-je (override providerenkent — pl. DyFM_OAI_Models).
21
+ * Ures default → a modell tool-kepessege ismeretlen → a precheck elutasitja (honesty).
22
+ */
23
+ protected getModelRegistry(): DyFM_AI_ModelInfo[];
24
+ /**
25
+ * Ellenorzi, hogy a feloldott modell tamogatja-e a function calling-ot; ha nem, beszedes
26
+ * hibaval elhasal MIELOTT barmilyen API-hivas tortenne (kritikus pl. a Local providernel).
27
+ */
28
+ protected assertToolsSupported(modelId: string): void;
29
+ /**
30
+ * GPT valasz Function Calling Agent Tool-okkal — provider-agnosztikus agent-loop.
31
+ * @description A `tools` definiciok + `toolHandlers` alapjan tool-loop-ot futtat: hivja a
32
+ * modellt (callModelWithTools) → ha a valaszban tool-call van, lefuttatja a regisztralt
33
+ * handler-t (runToolCall, never-throw) es az eredmenyt visszafuzi → ismetli, amig a model
34
+ * vegso (tool-call nelkuli) valaszt ad, vagy a maxIterations limitet eleri. A tool-ok a
35
+ * REQUEST-parameterben jonnek, nem a settings-ben.
36
+ */
37
+ requestWithTools(set: {
38
+ conversation: DyFM_AI_Message[];
39
+ tools: DyFM_AI_Tool[];
40
+ toolHandlers: DyFM_AI_ToolHandlers;
41
+ settings?: T_AISettings;
42
+ issuer: string;
43
+ maxIterations?: number;
44
+ }): Promise<DyFM_AI_LLM_Response>;
45
+ /**
46
+ * Egy provider-kor a tool-loop-ban: elkuldi a beszelgetest + tool-okat, normalizalt valaszt ad.
47
+ * @description Override-olando providerenkent (OpenAI / Anthropic / Google / …). A default
48
+ * elhasal — egy provider, ami nem implementalja, tool-use-t nem tud kiszolgalni.
49
+ */
50
+ protected callModelWithTools(_set: {
51
+ conversation: DyFM_AI_Message[];
52
+ tools: DyFM_AI_Tool[];
53
+ settings?: T_AISettings;
54
+ issuer: string;
55
+ }): Promise<DyFM_AI_LLM_Response>;
56
+ /**
57
+ * A provider-agnosztikus agent-loop torzse. A bemeno `conversation` ele a provider teszi a
58
+ * system-message-et (callModelWithTools); a loop a tool-call/tool-result uzeneteket fuzi hozza.
59
+ */
60
+ protected runToolLoop(set: {
61
+ conversation: DyFM_AI_Message[];
62
+ tools: DyFM_AI_Tool[];
63
+ toolHandlers: DyFM_AI_ToolHandlers;
64
+ settings?: T_AISettings;
65
+ issuer: string;
66
+ maxIterations?: number;
67
+ }): Promise<DyFM_AI_LLM_Response>;
68
+ /**
69
+ * Egy tool-hivas lefuttatasa a regisztralt handler-rel. SOHA nem dob — a tool-hiba string-kent
70
+ * megy vissza a modellnek (hogy korrigalhasson), hianyzo handler eseten is informativ uzenet
71
+ * (soha nem [object Object]).
72
+ */
73
+ protected runToolCall(call: DyFM_AI_ToolCall, toolHandlers: DyFM_AI_ToolHandlers): Promise<DyFM_AI_ToolResult>;
19
74
  /**
20
75
  * Call LLM with system and user messages
21
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-llm.service-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-llm.service-base.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,128 @@ class DyNTS_AI_LLM_ServiceBase extends ai_provider_service_base_1.DyNTS_AI_Provi
20
20
  return this.defaultSettings.useModel;
21
21
  }
22
22
  defaultLogReplacer = '...long-context...';
23
+ //////////////////////////////////////////////////////////////////////////////////////////
24
+ // FUNCTION CALLING (TOOL USE) — FR-047 //
25
+ //////////////////////////////////////////////////////////////////////////////////////////
26
+ // Provider-agnostic agent-loop. The loop logic lives here ONCE (ported from the legacy
27
+ // FDPNTS_GPT_ControlService.getAnswerWithTools); each provider only overrides
28
+ // `callModelWithTools` (one provider turn) and `getModelRegistry` (capability honesty).
29
+ // Tools are a REQUEST parameter (not on settings), per the FR-047 design.
30
+ /**
31
+ * A provider tool-kepes modell-registry-je (override providerenkent — pl. DyFM_OAI_Models).
32
+ * Ures default → a modell tool-kepessege ismeretlen → a precheck elutasitja (honesty).
33
+ */
34
+ getModelRegistry() {
35
+ return [];
36
+ }
37
+ /**
38
+ * Ellenorzi, hogy a feloldott modell tamogatja-e a function calling-ot; ha nem, beszedes
39
+ * hibaval elhasal MIELOTT barmilyen API-hivas tortenne (kritikus pl. a Local providernel).
40
+ */
41
+ assertToolsSupported(modelId) {
42
+ if (!ai_1.DyFM_AI_ModelRegistry_Util.modelSupportsTools(this.getModelRegistry(), modelId)) {
43
+ throw new fsm_dynamo_1.DyFM_Error({
44
+ message: `Model '${modelId}' does not support function calling (provider: ${this.aiProvider})`,
45
+ userMessage: `The selected AI model does not support tools.`,
46
+ errorCode: 'DyNTS-AILSB-TLC0',
47
+ });
48
+ }
49
+ }
50
+ /**
51
+ * GPT valasz Function Calling Agent Tool-okkal — provider-agnosztikus agent-loop.
52
+ * @description A `tools` definiciok + `toolHandlers` alapjan tool-loop-ot futtat: hivja a
53
+ * modellt (callModelWithTools) → ha a valaszban tool-call van, lefuttatja a regisztralt
54
+ * handler-t (runToolCall, never-throw) es az eredmenyt visszafuzi → ismetli, amig a model
55
+ * vegso (tool-call nelkuli) valaszt ad, vagy a maxIterations limitet eleri. A tool-ok a
56
+ * REQUEST-parameterben jonnek, nem a settings-ben.
57
+ */
58
+ async requestWithTools(set) {
59
+ const modelId = (set.settings?.useModel ?? this.defaultModel);
60
+ this.assertToolsSupported(modelId);
61
+ return this.runToolLoop(set);
62
+ }
63
+ /**
64
+ * Egy provider-kor a tool-loop-ban: elkuldi a beszelgetest + tool-okat, normalizalt valaszt ad.
65
+ * @description Override-olando providerenkent (OpenAI / Anthropic / Google / …). A default
66
+ * elhasal — egy provider, ami nem implementalja, tool-use-t nem tud kiszolgalni.
67
+ */
68
+ async callModelWithTools(_set) {
69
+ throw new fsm_dynamo_1.DyFM_Error({
70
+ message: `callModelWithTools is not implemented for provider '${this.aiProvider}'`,
71
+ userMessage: `Function calling is not available for this AI provider yet.`,
72
+ errorCode: 'DyNTS-AILSB-TLN0',
73
+ });
74
+ }
75
+ /**
76
+ * A provider-agnosztikus agent-loop torzse. A bemeno `conversation` ele a provider teszi a
77
+ * system-message-et (callModelWithTools); a loop a tool-call/tool-result uzeneteket fuzi hozza.
78
+ */
79
+ async runToolLoop(set) {
80
+ const maxIterations = set.maxIterations ?? 8;
81
+ const conversation = [...set.conversation];
82
+ for (let iteration = 0; iteration < maxIterations; iteration++) {
83
+ const response = await this.callModelWithTools({
84
+ conversation: conversation,
85
+ tools: set.tools,
86
+ settings: set.settings,
87
+ issuer: set.issuer,
88
+ });
89
+ // nincs tool-hivas → ez a vegso valasz
90
+ if (!response.toolCalls?.length) {
91
+ return response;
92
+ }
93
+ // a model tool-hivo (assistant) uzenetet visszatesszuk a kontextusba
94
+ conversation.push({
95
+ role: ai_1.DyFM_AI_MessageRole.assistant,
96
+ content: response.content ?? '',
97
+ toolCalls: response.toolCalls,
98
+ });
99
+ // minden tool-hivast lefuttatunk (never-throw), es az eredmenyt visszaadjuk a modellnek
100
+ const results = await Promise.all(response.toolCalls.map((call) => this.runToolCall(call, set.toolHandlers)));
101
+ results.forEach((result) => {
102
+ conversation.push({
103
+ role: ai_1.DyFM_AI_MessageRole.tool,
104
+ content: result.content,
105
+ toolCallId: result.toolCallId,
106
+ });
107
+ });
108
+ }
109
+ // a tool-loop nem konvergalt a limiten belul
110
+ throw new fsm_dynamo_1.DyFM_Error({
111
+ message: `Tool loop did not converge within ${maxIterations} iterations`,
112
+ userMessage: `We encountered an error while running AI tools, please contact the responsible development team.`,
113
+ errorCode: 'DyNTS-AILSB-TL0',
114
+ });
115
+ }
116
+ /**
117
+ * Egy tool-hivas lefuttatasa a regisztralt handler-rel. SOHA nem dob — a tool-hiba string-kent
118
+ * megy vissza a modellnek (hogy korrigalhasson), hianyzo handler eseten is informativ uzenet
119
+ * (soha nem [object Object]).
120
+ */
121
+ async runToolCall(call, toolHandlers) {
122
+ const handler = toolHandlers[call.name];
123
+ if (!handler) {
124
+ return {
125
+ toolCallId: call.id,
126
+ content: `ERROR: no handler registered for tool '${call.name}'`,
127
+ isError: true,
128
+ };
129
+ }
130
+ try {
131
+ return {
132
+ toolCallId: call.id,
133
+ content: await handler(call.arguments),
134
+ };
135
+ }
136
+ catch (error) {
137
+ return {
138
+ toolCallId: call.id,
139
+ content: `ERROR executing tool '${call.name}': ` +
140
+ `${error instanceof Error ? error.message : String(error)}`,
141
+ isError: true,
142
+ };
143
+ }
144
+ }
23
145
  // Helper methods
24
146
  /* protected abstract getDefaultErrorSettings(
25
147
  method: string,
@@ -1 +1 @@
1
- {"version":3,"file":"ai-llm.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-llm.service-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-llm.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-llm.service-base.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.36",
3
+ "version": "01.15.37",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",
@@ -317,7 +317,7 @@
317
317
  "empty": ""
318
318
  },
319
319
  "peerDependencies": {
320
- "@futdevpro/fsm-dynamo": "1.15.16",
320
+ "@futdevpro/fsm-dynamo": "1.15.18",
321
321
  "@types/express": "4.17.21",
322
322
  "@types/geoip-lite": "~1.4.1",
323
323
  "@types/node": "~24.1.0",
@@ -1,2 +1,5 @@
1
1
  allowBuilds:
2
2
  '@discordjs/opus': set this to true or false
3
+ minimumReleaseAgeExclude:
4
+ - '@futdevpro/fsm-dynamo@1.15.17'
5
+ - '@futdevpro/fsm-dynamo@1.15.18'
@@ -0,0 +1,106 @@
1
+ import { DyNTS_OAI_LLM_ServiceBase } from './oai-llm.service-base';
2
+ import { DyFM_OAI_Model, DyFM_OAI_CallSettings } from '@futdevpro/fsm-dynamo/ai/open-ai';
3
+ import { DyFM_AI_MessageRole, DyFM_AI_Tool, DyFM_AI_ToolHandlers } from '@futdevpro/fsm-dynamo/ai';
4
+
5
+ /**
6
+ * FR-047 — provider-agnosztikus function-calling agent-loop az OpenAI-wire fordítón keresztül.
7
+ * Mockolt OpenAI klienssel teszteljük a teljes utat (translator + loop), halozat nelkul.
8
+ */
9
+ describe('| DyNTS_OAI_LLM_ServiceBase | requestWithTools (function calling)', (): void => {
10
+
11
+ function buildService(): DyNTS_OAI_LLM_ServiceBase {
12
+ return new DyNTS_OAI_LLM_ServiceBase({ config: { apiKey: 'test-key' } });
13
+ }
14
+
15
+ const tools: DyFM_AI_Tool[] = [
16
+ { name: 'get_x', description: 'returns x', parameters: { type: 'object', properties: {} } },
17
+ ];
18
+
19
+ const toolSettings = new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.gpt55 });
20
+
21
+ it('| should run the tool handler and return the final answer (loop converges)', async (): Promise<void> => {
22
+ const service = buildService();
23
+
24
+ (spyOn(service.openai.chat.completions, 'create') as jasmine.Spy).and.returnValues(
25
+ Promise.resolve({
26
+ choices: [{ message: { role: 'assistant', content: '', tool_calls: [
27
+ { id: 'call_1', type: 'function', function: { name: 'get_x', arguments: '{"a":1}' } },
28
+ ] }, finish_reason: 'tool_calls' }],
29
+ usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
30
+ model: 'gpt-5.5',
31
+ } as any),
32
+ Promise.resolve({
33
+ choices: [{ message: { role: 'assistant', content: 'final answer', tool_calls: [] }, finish_reason: 'stop' }],
34
+ usage: { prompt_tokens: 2, completion_tokens: 2, total_tokens: 4 },
35
+ model: 'gpt-5.5',
36
+ } as any),
37
+ );
38
+
39
+ let receivedArgs: Record<string, unknown> = {};
40
+ const toolHandlers: DyFM_AI_ToolHandlers = {
41
+ get_x: (args: Record<string, unknown>): string => {
42
+ receivedArgs = args;
43
+ return 'x=42';
44
+ },
45
+ };
46
+
47
+ const response = await service.requestWithTools({
48
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'use the tool' }],
49
+ tools: tools,
50
+ toolHandlers: toolHandlers,
51
+ settings: toolSettings,
52
+ issuer: 'spec',
53
+ });
54
+
55
+ expect(receivedArgs).toEqual({ a: 1 });
56
+ expect(response.content).toBe('final answer');
57
+ expect((service.openai.chat.completions.create as jasmine.Spy).calls.count()).toBe(2);
58
+ });
59
+
60
+ it('| should NOT throw when the tool handler throws (error fed back to the model)', async (): Promise<void> => {
61
+ const service = buildService();
62
+
63
+ (spyOn(service.openai.chat.completions, 'create') as jasmine.Spy).and.returnValues(
64
+ Promise.resolve({
65
+ choices: [{ message: { role: 'assistant', content: '', tool_calls: [
66
+ { id: 'call_1', type: 'function', function: { name: 'get_x', arguments: '{}' } },
67
+ ] }, finish_reason: 'tool_calls' }],
68
+ usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
69
+ model: 'gpt-5.5',
70
+ } as any),
71
+ Promise.resolve({
72
+ choices: [{ message: { role: 'assistant', content: 'recovered', tool_calls: [] }, finish_reason: 'stop' }],
73
+ usage: { prompt_tokens: 2, completion_tokens: 2, total_tokens: 4 },
74
+ model: 'gpt-5.5',
75
+ } as any),
76
+ );
77
+
78
+ const toolHandlers: DyFM_AI_ToolHandlers = {
79
+ get_x: (): string => { throw new Error('boom'); },
80
+ };
81
+
82
+ const response = await service.requestWithTools({
83
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'use the tool' }],
84
+ tools: tools,
85
+ toolHandlers: toolHandlers,
86
+ settings: toolSettings,
87
+ issuer: 'spec',
88
+ });
89
+
90
+ // a loop nem dobott; a model "recovered" valaszt adott a hiba-string utan
91
+ expect(response.content).toBe('recovered');
92
+ });
93
+
94
+ it('| should reject tool use for a model that does not support function calling', async (): Promise<void> => {
95
+ const service = buildService();
96
+ const embeddingSettings = new DyFM_OAI_CallSettings({ useModel: DyFM_OAI_Model.textEmbedding_3Small });
97
+
98
+ await expectAsync(service.requestWithTools({
99
+ conversation: [{ role: DyFM_AI_MessageRole.user, content: 'x' }],
100
+ tools: tools,
101
+ toolHandlers: {},
102
+ settings: embeddingSettings,
103
+ issuer: 'spec',
104
+ })).toBeRejected();
105
+ });
106
+ });