n8n-nodes-simple 2.2.1 → 2.2.3

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 (38) hide show
  1. package/dist/nodes/shared/config/parameters.d.ts +1 -1
  2. package/dist/nodes/shared/config/properties/toolParameters.d.ts +2 -0
  3. package/dist/nodes/shared/config/properties/toolParameters.js +101 -0
  4. package/dist/nodes/shared/config/properties/toolParameters.js.map +1 -0
  5. package/dist/nodes/shared/core/execution/executor.js +6 -6
  6. package/dist/nodes/shared/core/execution/executor.js.map +1 -1
  7. package/dist/nodes/shared/core/execution/outputData.d.ts +5 -0
  8. package/dist/nodes/shared/core/execution/outputData.js +108 -0
  9. package/dist/nodes/shared/core/execution/outputData.js.map +1 -0
  10. package/dist/nodes/shared/core/memory/supplier.d.ts +2 -0
  11. package/dist/nodes/shared/core/memory/supplier.js +53 -0
  12. package/dist/nodes/shared/core/memory/supplier.js.map +1 -0
  13. package/dist/nodes/shared/core/messages/processor.js +10 -4
  14. package/dist/nodes/shared/core/messages/processor.js.map +1 -1
  15. package/dist/nodes/shared/core/output/processor.d.ts +5 -0
  16. package/dist/nodes/shared/core/output/processor.js +108 -0
  17. package/dist/nodes/shared/core/output/processor.js.map +1 -0
  18. package/dist/nodes/shared/core/request/body.d.ts +2 -0
  19. package/dist/nodes/shared/core/request/body.js +43 -0
  20. package/dist/nodes/shared/core/request/body.js.map +1 -0
  21. package/dist/nodes/shared/core/request/builder.d.ts +2 -0
  22. package/dist/nodes/shared/core/request/builder.js +43 -0
  23. package/dist/nodes/shared/core/request/builder.js.map +1 -0
  24. package/dist/nodes/shared/core/request/structuredOutput.d.ts +3 -0
  25. package/dist/nodes/shared/core/request/structuredOutput.js +26 -0
  26. package/dist/nodes/shared/core/request/structuredOutput.js.map +1 -0
  27. package/dist/nodes/shared/core/request/visualEditor.d.ts +32 -0
  28. package/dist/nodes/shared/core/request/visualEditor.js +70 -0
  29. package/dist/nodes/shared/core/request/visualEditor.js.map +1 -0
  30. package/dist/nodes/shared/core/response/config.d.ts +3 -0
  31. package/dist/nodes/shared/core/response/config.js +26 -0
  32. package/dist/nodes/shared/core/response/config.js.map +1 -0
  33. package/dist/nodes/shared/core/schema/visualEditor.d.ts +32 -0
  34. package/dist/nodes/shared/core/schema/visualEditor.js +70 -0
  35. package/dist/nodes/shared/core/schema/visualEditor.js.map +1 -0
  36. package/dist/package.json +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
- import { VisualEditorProperties } from '../processing/visualEditor';
2
+ import { VisualEditorProperties } from '../core/request/visualEditor';
3
3
  import { Message } from '../core/messages/types';
4
4
  export type ExtractedParameters = {
5
5
  model: string;
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const toolParametersProperties: INodeProperties[];
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toolParametersProperties = void 0;
4
+ exports.toolParametersProperties = [
5
+ {
6
+ displayName: 'Tool Parameters',
7
+ name: 'toolParameters',
8
+ type: 'fixedCollection',
9
+ typeOptions: {
10
+ multipleValues: true,
11
+ sortable: false,
12
+ },
13
+ displayOptions: {
14
+ show: {
15
+ agentType: ['subAgent'],
16
+ },
17
+ },
18
+ description: 'Define parameters that the AI can request when using this tool. Use $fromAI() expressions for dynamic values.',
19
+ default: {},
20
+ options: [
21
+ {
22
+ displayName: 'Parameters',
23
+ name: 'parameters',
24
+ values: [
25
+ {
26
+ displayName: 'Parameter Name',
27
+ name: 'name',
28
+ type: 'string',
29
+ default: '',
30
+ placeholder: 'email',
31
+ description: 'Name of the parameter (e.g., email, name, count)',
32
+ required: true,
33
+ },
34
+ {
35
+ displayName: 'Description',
36
+ name: 'description',
37
+ type: 'string',
38
+ default: '',
39
+ placeholder: 'User email address',
40
+ description: 'Description of what this parameter represents',
41
+ },
42
+ {
43
+ displayName: 'Type',
44
+ name: 'type',
45
+ type: 'options',
46
+ options: [
47
+ {
48
+ name: 'String',
49
+ value: 'string',
50
+ },
51
+ {
52
+ name: 'Number',
53
+ value: 'number',
54
+ },
55
+ {
56
+ name: 'Boolean',
57
+ value: 'boolean',
58
+ },
59
+ {
60
+ name: 'JSON',
61
+ value: 'json',
62
+ },
63
+ ],
64
+ default: 'string',
65
+ description: 'Data type for this parameter',
66
+ },
67
+ {
68
+ displayName: 'Required',
69
+ name: 'required',
70
+ type: 'boolean',
71
+ default: true,
72
+ description: 'Whether this parameter is required',
73
+ },
74
+ {
75
+ displayName: 'Default Value',
76
+ name: 'defaultValue',
77
+ type: 'string',
78
+ default: '',
79
+ placeholder: 'jane.doe@example.com',
80
+ description: 'Default value for this parameter (optional)',
81
+ displayOptions: {
82
+ show: {
83
+ required: [false],
84
+ },
85
+ },
86
+ },
87
+ {
88
+ displayName: 'Value',
89
+ name: 'value',
90
+ type: 'string',
91
+ default: '',
92
+ placeholder: '{{ $fromAI("email", "User email address", "string") }}',
93
+ description: 'Value for this parameter. Use $fromAI() for AI-determined values.',
94
+ required: true,
95
+ },
96
+ ],
97
+ },
98
+ ],
99
+ },
100
+ ];
101
+ //# sourceMappingURL=toolParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolParameters.js","sourceRoot":"","sources":["../../../../../nodes/shared/config/properties/toolParameters.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAsB;IAC1D;QACC,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;YACZ,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,KAAK;SACf;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,SAAS,EAAE,CAAC,UAAU,CAAC;aACvB;SACD;QACD,WAAW,EAAE,+GAA+G;QAC5H,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE;oBACP;wBACC,WAAW,EAAE,gBAAgB;wBAC7B,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,OAAO;wBACpB,WAAW,EAAE,kDAAkD;wBAC/D,QAAQ,EAAE,IAAI;qBACd;oBACD;wBACC,WAAW,EAAE,aAAa;wBAC1B,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,oBAAoB;wBACjC,WAAW,EAAE,+CAA+C;qBAC5D;oBACD;wBACC,WAAW,EAAE,MAAM;wBACnB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACR;gCACC,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,QAAQ;6BACf;4BACD;gCACC,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,QAAQ;6BACf;4BACD;gCACC,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,SAAS;6BAChB;4BACD;gCACC,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE,MAAM;6BACb;yBACD;wBACD,OAAO,EAAE,QAAQ;wBACjB,WAAW,EAAE,8BAA8B;qBAC3C;oBACD;wBACC,WAAW,EAAE,UAAU;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,oCAAoC;qBACjD;oBACD;wBACC,WAAW,EAAE,eAAe;wBAC5B,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,sBAAsB;wBACnC,WAAW,EAAE,6CAA6C;wBAC1D,cAAc,EAAE;4BACf,IAAI,EAAE;gCACL,QAAQ,EAAE,CAAC,KAAK,CAAC;6BACjB;yBACL;qBACG;oBACD;wBACC,WAAW,EAAE,OAAO;wBACpB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,wDAAwD;wBACrE,WAAW,EAAE,mEAAmE;wBAChF,QAAQ,EAAE,IAAI;qBACd;iBACD;aACD;SACD;KACD;CACD,CAAC"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hasEmptyContent = hasEmptyContent;
4
4
  exports.executeWithFallback = executeWithFallback;
5
5
  exports.executeSingleModel = executeSingleModel;
6
- const responseConfig_1 = require("../../config/responseConfig");
6
+ const structuredOutput_1 = require("../request/structuredOutput");
7
7
  const setup_1 = require("../tools/setup");
8
- const requestBuilder_1 = require("../../processing/requestBuilder");
8
+ const body_1 = require("../request/body");
9
9
  const executor_1 = require("../tools/executor");
10
- const outputProcessor_1 = require("../../processing/outputProcessor");
10
+ const outputData_1 = require("./outputData");
11
11
  const io_1 = require("../memory/io");
12
12
  function hasEmptyContent(response) {
13
13
  var _a, _b, _c;
@@ -45,13 +45,13 @@ async function executeWithFallback(executeFunctions, params, memory, messages, i
45
45
  }
46
46
  async function executeSingleModel(executeFunctions, params, memory, messages, index, parentMessageContentStr, parentMessageContentObj, modelToUse) {
47
47
  var _a, _b;
48
- let response_format = (0, responseConfig_1.configureResponseFormat)(params.responseFormat, params.outputJsonSchemaDefinition, params.structuredOutputName, params.structuredOutputDescription, params.structuredOutputProperties, params.structuredOutputIsArray, params.structuredOutputArrayName, params.structuredOutputArrayDescription);
48
+ let response_format = (0, structuredOutput_1.configureResponseFormat)(params.responseFormat, params.outputJsonSchemaDefinition, params.structuredOutputName, params.structuredOutputDescription, params.structuredOutputProperties, params.structuredOutputIsArray, params.structuredOutputArrayName, params.structuredOutputArrayDescription);
49
49
  const { tools, invokableTools, tool_choice, structuredOutputTool, updatedResponseFormat } = await (0, setup_1.setupTools)(executeFunctions, params.structuredOutputToolsMode, response_format);
50
50
  response_format = updatedResponseFormat;
51
- const body = (0, requestBuilder_1.prepareRequestBody)(modelToUse, messages, tools, tool_choice, response_format, params.options, params.customParameters);
51
+ const body = (0, body_1.prepareRequestBody)(modelToUse, messages, tools, tool_choice, response_format, params.options, params.customParameters);
52
52
  const originalMessagesLength = messages.length;
53
53
  const { response, output } = await (0, executor_1.processToolCalls)(executeFunctions, body, messages, invokableTools, structuredOutputTool, params.maxToolsIterations, params.abortSignal);
54
- const outputData = await (0, outputProcessor_1.prepareOutputData)(response, output, messages, originalMessagesLength, params.addToOutput, params.agentType, executeFunctions, index, body, modelToUse, parentMessageContentStr);
54
+ const outputData = await (0, outputData_1.prepareOutputData)(response, output, messages, originalMessagesLength, params.addToOutput, params.agentType, executeFunctions, index, body, modelToUse, parentMessageContentStr);
55
55
  if (memory && ((_b = (_a = response === null || response === void 0 ? void 0 : response.choices) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.message)) {
56
56
  const outputStringified = typeof output === 'string' ? output : JSON.stringify(output);
57
57
  await (0, io_1.saveToMemory)(memory, messages, response, outputStringified, params.saveToolCallsInChatMemory, originalMessagesLength);
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/execution/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/execution/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, IDataObject } from 'n8n-workflow';
2
+ import type { ChatCompletion } from '../../api/types';
3
+ export declare function prepareOutputData(response: ChatCompletion, output: any, messages: IDataObject[], originalMessagesLength: number, addToOutput: string[], agentType: string, executeFunctions: IExecuteFunctions, index: number, body: IDataObject, model: string, parentMessageContentStr: string): Promise<INodeExecutionData[]>;
4
+ export declare function addModelOverview(executeFunctions: IExecuteFunctions, model: string, outputData: INodeExecutionData[]): Promise<void>;
5
+ export declare function reorderOutputFields(outputData: INodeExecutionData[]): void;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareOutputData = prepareOutputData;
4
+ exports.addModelOverview = addModelOverview;
5
+ exports.reorderOutputFields = reorderOutputFields;
6
+ const messageExtractor_1 = require("../tools/messageExtractor");
7
+ async function prepareOutputData(response, output, messages, originalMessagesLength, addToOutput, agentType, executeFunctions, index, body, model, parentMessageContentStr) {
8
+ const outputData = [];
9
+ if (agentType == 'subAgent' && parentMessageContentStr !== '') {
10
+ outputData.push({
11
+ json: { response: response },
12
+ pairedItem: { item: 0 },
13
+ });
14
+ return outputData;
15
+ }
16
+ if (body.response_format) {
17
+ response.choices = response.choices.map((choice) => {
18
+ try {
19
+ choice.message.content = JSON.parse(choice.message.content);
20
+ }
21
+ catch (error) { }
22
+ return choice;
23
+ });
24
+ }
25
+ output = output ? output : response.choices[0].message.content;
26
+ var outputStringified = typeof output === 'string' ? output : JSON.stringify(output);
27
+ outputData.push({ json: { output: output }, pairedItem: { item: index } });
28
+ if (addToOutput.includes('fullResponse') || agentType === 'subAgent') {
29
+ outputData.forEach((item) => {
30
+ item.json.response = response;
31
+ });
32
+ }
33
+ const newMessages = messages.slice(originalMessagesLength);
34
+ if (addToOutput.includes('tool_calls')) {
35
+ outputData.forEach((item) => {
36
+ item.json.tool_calls = (0, messageExtractor_1.extractToolMessages)(newMessages);
37
+ });
38
+ }
39
+ if (addToOutput.includes('chatHistory')) {
40
+ const includeToolCallsInChatHistory = executeFunctions.getNodeParameter('includeToolCallsInChatHistory', index, true);
41
+ const includeSystemMessagesInChatHistory = executeFunctions.getNodeParameter('includeSystemMessagesInChatHistory', index, true);
42
+ let chatHistoryMessages = structuredClone(messages);
43
+ if (!includeToolCallsInChatHistory) {
44
+ chatHistoryMessages = chatHistoryMessages
45
+ .filter((msg) => msg.content !== null && msg.role !== 'tool')
46
+ .map(({ role, content }) => ({ role, content }));
47
+ }
48
+ if (!includeSystemMessagesInChatHistory) {
49
+ chatHistoryMessages = chatHistoryMessages.filter((msg) => msg.role !== 'system');
50
+ }
51
+ const finalMessage = response === null || response === void 0 ? void 0 : response.choices[0].message;
52
+ if (finalMessage) {
53
+ let rootMessage = {
54
+ role: finalMessage.role,
55
+ content: outputStringified,
56
+ };
57
+ chatHistoryMessages.push(rootMessage);
58
+ }
59
+ for (const msg of chatHistoryMessages) {
60
+ if (msg.role === 'assistant') {
61
+ delete msg.reasoning_details;
62
+ delete msg.reasoning;
63
+ }
64
+ }
65
+ outputData.forEach((item) => {
66
+ item.json.chat_history = chatHistoryMessages;
67
+ });
68
+ }
69
+ if (addToOutput.includes('request')) {
70
+ outputData.forEach((item) => {
71
+ item.json.request = body;
72
+ });
73
+ }
74
+ if (addToOutput.includes('modelOverview') && model.includes('/')) {
75
+ await addModelOverview(executeFunctions, model, outputData);
76
+ }
77
+ reorderOutputFields(outputData);
78
+ return outputData;
79
+ }
80
+ async function addModelOverview(executeFunctions, model, outputData) {
81
+ const requestOptions = {
82
+ method: 'GET',
83
+ url: `https://openrouter.ai/api/v1/models/${model}/endpoints`,
84
+ };
85
+ for (const item of outputData) {
86
+ try {
87
+ const modelOverviewResponse = await executeFunctions.helpers.httpRequest(requestOptions);
88
+ item.json.model_overview = modelOverviewResponse;
89
+ }
90
+ catch (error) {
91
+ console.error('Error fetching model endpoints:', error);
92
+ }
93
+ }
94
+ }
95
+ function reorderOutputFields(outputData) {
96
+ outputData.forEach((item) => {
97
+ const reordered = {
98
+ output: item.json.output,
99
+ request: item.json.request,
100
+ tool_calls: item.json.tool_calls,
101
+ response: item.json.response,
102
+ chat_history: item.json.chat_history,
103
+ model_overview: item.json.model_overview,
104
+ };
105
+ item.json = Object.fromEntries(Object.entries(reordered).filter(([_, value]) => value !== undefined));
106
+ });
107
+ }
108
+ //# sourceMappingURL=outputData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputData.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/execution/outputData.ts"],"names":[],"mappings":";;AAcA,8CA2HC;AAKD,4CAkBC;AAKD,kDAgBC;AA7KD,gEAAgE;AAMzD,KAAK,UAAU,iBAAiB,CACtC,QAAwB,EACxB,MAAW,EACX,QAAuB,EACvB,sBAA8B,EAC9B,WAAqB,EACrB,SAAiB,EACjB,gBAAmC,EACnC,KAAa,EACb,IAAiB,EACjB,KAAa,EACb,uBAA+B;IAE/B,MAAM,UAAU,GAAyB,EAAE,CAAC;IAG5C,IAAI,SAAS,IAAI,UAAU,IAAI,uBAAuB,KAAK,EAAE,EAAE,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACnB,CAAC;IAGD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1B,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC;gBACJ,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;YAClB,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC/D,IAAI,iBAAiB,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrF,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAG3E,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACtE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAG3D,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAA,sCAAmB,EAAC,WAAwB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzC,MAAM,6BAA6B,GAAG,gBAAgB,CAAC,gBAAgB,CACtE,+BAA+B,EAC/B,KAAK,EACL,IAAI,CACO,CAAC;QACb,MAAM,kCAAkC,GAAG,gBAAgB,CAAC,gBAAgB,CAC3E,oCAAoC,EACpC,KAAK,EACL,IAAI,CACO,CAAC;QAEb,IAAI,mBAAmB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEpD,IAAI,CAAC,6BAA6B,EAAE,CAAC;YAEpC,mBAAmB,GAAG,mBAAmB;iBACvC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;iBAC5D,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAEzC,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAClF,CAAC;QAGD,MAAM,YAAY,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;QAClD,IAAI,YAAY,EAAE,CAAC;YAClB,IAAI,WAAW,GAAQ;gBACtB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,OAAO,EAAE,iBAAiB;aAC1B,CAAC;YACF,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QAGD,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;YACvC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9B,OAAO,GAAG,CAAC,iBAAiB,CAAC;gBAC7B,OAAO,GAAG,CAAC,SAAS,CAAC;YACtB,CAAC;QACF,CAAC;QAGD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC,CAAC;IACJ,CAAC;IAGD,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAGD,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,UAAU,CAAC;AACnB,CAAC;AAKM,KAAK,UAAU,gBAAgB,CACrC,gBAAmC,EACnC,KAAa,EACb,UAAgC;IAEhC,MAAM,cAAc,GAAwB;QAC3C,MAAM,EAAE,KAA4B;QACpC,GAAG,EAAE,uCAAuC,KAAK,YAAY;KAC7D,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC;YACJ,MAAM,qBAAqB,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YACzF,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;IACF,CAAC;AACF,CAAC;AAKD,SAAgB,mBAAmB,CAAC,UAAgC;IACnE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG;YACjB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;YAChC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACpC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;SACxC,CAAC;QAGF,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CACrE,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ISupplyDataFunctions, SupplyData } from 'n8n-workflow';
2
+ export declare function supplyMemoryData(this: ISupplyDataFunctions, itemIndex: number): Promise<SupplyData>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.supplyMemoryData = supplyMemoryData;
4
+ async function getMemoryFromSupplyInput(supplyFunctions) {
5
+ let memoryInput;
6
+ try {
7
+ memoryInput = (await supplyFunctions.getInputConnectionData('ai_memory', 0, undefined));
8
+ }
9
+ catch (error) {
10
+ memoryInput = undefined;
11
+ }
12
+ return Array.isArray(memoryInput) ? memoryInput[0] : memoryInput;
13
+ }
14
+ async function supplyMemoryData(itemIndex) {
15
+ try {
16
+ const memory = await getMemoryFromSupplyInput(this);
17
+ if (!memory || !memory.chatHistory) {
18
+ return {
19
+ response: [],
20
+ };
21
+ }
22
+ const messages = await memory.chatHistory.getMessages();
23
+ if (messages.length === 0) {
24
+ return {
25
+ response: [],
26
+ };
27
+ }
28
+ const formattedMessages = messages.map((message, index) => {
29
+ const messageData = {
30
+ id: index,
31
+ role: message._getType() === 'human' ? 'user' : 'assistant',
32
+ content: message.content,
33
+ };
34
+ if (message.additional_kwargs && Object.keys(message.additional_kwargs).length > 0) {
35
+ messageData.additional_kwargs = message.additional_kwargs;
36
+ }
37
+ if (message.tool_calls && Array.isArray(message.tool_calls)) {
38
+ messageData.tool_calls = message.tool_calls;
39
+ }
40
+ return messageData;
41
+ });
42
+ return {
43
+ response: formattedMessages,
44
+ };
45
+ }
46
+ catch (error) {
47
+ console.error('Error supplying memory data:', error);
48
+ return {
49
+ response: [],
50
+ };
51
+ }
52
+ }
53
+ //# sourceMappingURL=supplier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supplier.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/memory/supplier.ts"],"names":[],"mappings":";;AA2BA,4CAqDC;AA1ED,KAAK,UAAU,wBAAwB,CACtC,eAAqC;IAErC,IAAI,WAA0D,CAAC;IAC/D,IAAI,CAAC;QACJ,WAAW,GAAG,CAAC,MAAM,eAAe,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,CAG1E,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEhB,WAAW,GAAG,SAAS,CAAC;IACzB,CAAC;IAGD,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AAClE,CAAC;AAKM,KAAK,UAAU,gBAAgB,CAErC,SAAiB;IAEjB,IAAI,CAAC;QAEJ,MAAM,MAAM,GAA+B,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAEhF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,OAAO;gBACN,QAAQ,EAAE,EAAE;aACZ,CAAC;QACH,CAAC;QAGD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAExD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACN,QAAQ,EAAE,EAAE;aACZ,CAAC;QACH,CAAC;QAGD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACzD,MAAM,WAAW,GAAQ;gBACxB,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;gBAC3D,OAAO,EAAE,OAAO,CAAC,OAAO;aACxB,CAAC;YAGF,IAAI,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpF,WAAW,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAC3D,CAAC;YAGD,IAAK,OAAe,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAE,OAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/E,WAAW,CAAC,UAAU,GAAI,OAAe,CAAC,UAAU,CAAC;YACtD,CAAC;YAED,OAAO,WAAW,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,iBAAiB;SAC3B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACN,QAAQ,EAAE,EAAE;SACZ,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -5,10 +5,16 @@ const chatHistory_1 = require("./chatHistory");
5
5
  async function processMessages(rawMessagesToSend, memory, parentMessageContentStr, parentMessageContentObj, loadToolCallsFromChatMemory = true) {
6
6
  let messages = (await (0, chatHistory_1.unpackChatHistoryAndMemory)(rawMessagesToSend, memory, loadToolCallsFromChatMemory));
7
7
  messages = messages
8
- .map((item) => ({
9
- ...item,
10
- content: typeof item.content === 'string' ? item.content.trim() : item.content,
11
- }))
8
+ .map((item) => {
9
+ const processedItem = {
10
+ ...item,
11
+ content: typeof item.content === 'string' ? item.content.trim() : item.content,
12
+ };
13
+ if (processedItem.tool_calls && Array.isArray(processedItem.tool_calls) && processedItem.tool_calls.length === 0) {
14
+ delete processedItem.tool_calls;
15
+ }
16
+ return processedItem;
17
+ })
12
18
  .filter((item) => item.content !== '' ||
13
19
  (item.role === 'assistant' && item.tool_calls) ||
14
20
  item.role === 'tool');
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/processor.ts"],"names":[],"mappings":";;AAQA,0CAsCC;AA3CD,+CAA2D;AAKpD,KAAK,UAAU,eAAe,CACpC,iBAA4B,EAC5B,MAAkC,EAClC,uBAA+B,EAC/B,uBAA+B,EAC/B,8BAAuC,IAAI;IAG3C,IAAI,QAAQ,GAAG,CAAC,MAAM,IAAA,wCAA0B,EAC/C,iBAAiB,EACjB,MAAM,EACN,2BAA2B,CAC3B,CAAkB,CAAC;IAGpB,QAAQ,GAAG,QAAQ;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACf,GAAG,IAAI;QACP,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;KAC9E,CAAC,CAAC;SACF,MAAM,CACN,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,OAAO,KAAK,EAAE;QACnB,CAAE,IAAY,CAAC,IAAI,KAAK,WAAW,IAAK,IAAY,CAAC,UAAU,CAAC;QAC/D,IAAY,CAAC,IAAI,KAAK,MAAM,CAC9B,CAAC;IAGH,IAAI,uBAAuB,KAAK,EAAE,EAAE,CAAC;QAEpC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAG9D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/messages/processor.ts"],"names":[],"mappings":";;AAQA,0CA+CC;AApDD,+CAA2D;AAKpD,KAAK,UAAU,eAAe,CACpC,iBAA4B,EAC5B,MAAkC,EAClC,uBAA+B,EAC/B,uBAA+B,EAC/B,8BAAuC,IAAI;IAG3C,IAAI,QAAQ,GAAG,CAAC,MAAM,IAAA,wCAA0B,EAC/C,iBAAiB,EACjB,MAAM,EACN,2BAA2B,CAC3B,CAAkB,CAAC;IAGpB,QAAQ,GAAG,QAAQ;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,MAAM,aAAa,GAAG;YACrB,GAAG,IAAI;YACP,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;SAC9E,CAAC;QAGF,IAAK,aAAqB,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAE,aAAqB,CAAC,UAAU,CAAC,IAAK,aAAqB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7I,OAAQ,aAAqB,CAAC,UAAU,CAAC;QAC1C,CAAC;QAED,OAAO,aAAa,CAAC;IACtB,CAAC,CAAC;SACD,MAAM,CACN,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,OAAO,KAAK,EAAE;QACnB,CAAE,IAAY,CAAC,IAAI,KAAK,WAAW,IAAK,IAAY,CAAC,UAAU,CAAC;QAC/D,IAAY,CAAC,IAAI,KAAK,MAAM,CAC9B,CAAC;IAGH,IAAI,uBAAuB,KAAK,EAAE,EAAE,CAAC;QAEpC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAG9D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, IDataObject } from 'n8n-workflow';
2
+ import type { ChatCompletion } from '../../api/types';
3
+ export declare function prepareOutputData(response: ChatCompletion, output: any, messages: IDataObject[], originalMessagesLength: number, addToOutput: string[], agentType: string, executeFunctions: IExecuteFunctions, index: number, body: IDataObject, model: string, parentMessageContentStr: string): Promise<INodeExecutionData[]>;
4
+ export declare function addModelOverview(executeFunctions: IExecuteFunctions, model: string, outputData: INodeExecutionData[]): Promise<void>;
5
+ export declare function reorderOutputFields(outputData: INodeExecutionData[]): void;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareOutputData = prepareOutputData;
4
+ exports.addModelOverview = addModelOverview;
5
+ exports.reorderOutputFields = reorderOutputFields;
6
+ const messageExtractor_1 = require("../tools/messageExtractor");
7
+ async function prepareOutputData(response, output, messages, originalMessagesLength, addToOutput, agentType, executeFunctions, index, body, model, parentMessageContentStr) {
8
+ const outputData = [];
9
+ if (agentType == 'subAgent' && parentMessageContentStr !== '') {
10
+ outputData.push({
11
+ json: { response: response },
12
+ pairedItem: { item: 0 },
13
+ });
14
+ return outputData;
15
+ }
16
+ if (body.response_format) {
17
+ response.choices = response.choices.map((choice) => {
18
+ try {
19
+ choice.message.content = JSON.parse(choice.message.content);
20
+ }
21
+ catch (error) { }
22
+ return choice;
23
+ });
24
+ }
25
+ output = output ? output : response.choices[0].message.content;
26
+ var outputStringified = typeof output === 'string' ? output : JSON.stringify(output);
27
+ outputData.push({ json: { output: output }, pairedItem: { item: index } });
28
+ if (addToOutput.includes('fullResponse') || agentType === 'subAgent') {
29
+ outputData.forEach((item) => {
30
+ item.json.response = response;
31
+ });
32
+ }
33
+ const newMessages = messages.slice(originalMessagesLength);
34
+ if (addToOutput.includes('tool_calls')) {
35
+ outputData.forEach((item) => {
36
+ item.json.tool_calls = (0, messageExtractor_1.extractToolMessages)(newMessages);
37
+ });
38
+ }
39
+ if (addToOutput.includes('chatHistory')) {
40
+ const includeToolCallsInChatHistory = executeFunctions.getNodeParameter('includeToolCallsInChatHistory', index, true);
41
+ const includeSystemMessagesInChatHistory = executeFunctions.getNodeParameter('includeSystemMessagesInChatHistory', index, true);
42
+ let chatHistoryMessages = structuredClone(messages);
43
+ if (!includeToolCallsInChatHistory) {
44
+ chatHistoryMessages = chatHistoryMessages
45
+ .filter((msg) => msg.content !== null && msg.role !== 'tool')
46
+ .map(({ role, content }) => ({ role, content }));
47
+ }
48
+ if (!includeSystemMessagesInChatHistory) {
49
+ chatHistoryMessages = chatHistoryMessages.filter((msg) => msg.role !== 'system');
50
+ }
51
+ const finalMessage = response === null || response === void 0 ? void 0 : response.choices[0].message;
52
+ if (finalMessage) {
53
+ let rootMessage = {
54
+ role: finalMessage.role,
55
+ content: outputStringified,
56
+ };
57
+ chatHistoryMessages.push(rootMessage);
58
+ }
59
+ for (const msg of chatHistoryMessages) {
60
+ if (msg.role === 'assistant') {
61
+ delete msg.reasoning_details;
62
+ delete msg.reasoning;
63
+ }
64
+ }
65
+ outputData.forEach((item) => {
66
+ item.json.chat_history = chatHistoryMessages;
67
+ });
68
+ }
69
+ if (addToOutput.includes('request')) {
70
+ outputData.forEach((item) => {
71
+ item.json.request = body;
72
+ });
73
+ }
74
+ if (addToOutput.includes('modelOverview') && model.includes('/')) {
75
+ await addModelOverview(executeFunctions, model, outputData);
76
+ }
77
+ reorderOutputFields(outputData);
78
+ return outputData;
79
+ }
80
+ async function addModelOverview(executeFunctions, model, outputData) {
81
+ const requestOptions = {
82
+ method: 'GET',
83
+ url: `https://openrouter.ai/api/v1/models/${model}/endpoints`,
84
+ };
85
+ for (const item of outputData) {
86
+ try {
87
+ const modelOverviewResponse = await executeFunctions.helpers.httpRequest(requestOptions);
88
+ item.json.model_overview = modelOverviewResponse;
89
+ }
90
+ catch (error) {
91
+ console.error('Error fetching model endpoints:', error);
92
+ }
93
+ }
94
+ }
95
+ function reorderOutputFields(outputData) {
96
+ outputData.forEach((item) => {
97
+ const reordered = {
98
+ output: item.json.output,
99
+ request: item.json.request,
100
+ tool_calls: item.json.tool_calls,
101
+ response: item.json.response,
102
+ chat_history: item.json.chat_history,
103
+ model_overview: item.json.model_overview,
104
+ };
105
+ item.json = Object.fromEntries(Object.entries(reordered).filter(([_, value]) => value !== undefined));
106
+ });
107
+ }
108
+ //# sourceMappingURL=processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/output/processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ export declare function prepareRequestBody(model: string, messages: IDataObject[], tools: any[], tool_choice: string | undefined, response_format: IDataObject | undefined, options: IDataObject, customParameters: string | IDataObject): IDataObject;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareRequestBody = prepareRequestBody;
7
+ const omit_1 = __importDefault(require("lodash/omit"));
8
+ const types_1 = require("../messages/types");
9
+ function prepareRequestBody(model, messages, tools, tool_choice, response_format, options, customParameters) {
10
+ let customParamsObj = {};
11
+ if (customParameters) {
12
+ if (typeof customParameters === 'string' && customParameters.trim()) {
13
+ try {
14
+ customParamsObj = JSON.parse(customParameters);
15
+ }
16
+ catch (error) {
17
+ throw new Error('Invalid JSON in customParameters');
18
+ }
19
+ }
20
+ else if (typeof customParameters !== 'string') {
21
+ customParamsObj = customParameters;
22
+ }
23
+ }
24
+ const cleanOptions = (0, omit_1.default)(options, [
25
+ 'customParameters',
26
+ 'fallbackModelId',
27
+ 'maxToolsIterations',
28
+ ]);
29
+ const body = {
30
+ model,
31
+ messages,
32
+ ...(tools.length > 0 ? { tools } : {}),
33
+ tool_choice,
34
+ response_format,
35
+ ...cleanOptions,
36
+ ...customParamsObj,
37
+ };
38
+ if (!Array.isArray(messages) || !messages.every(types_1.isValidMessage)) {
39
+ throw new Error("Invalid or missing 'messages' in the request body.");
40
+ }
41
+ return body;
42
+ }
43
+ //# sourceMappingURL=body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/request/body.ts"],"names":[],"mappings":";;;;;AAOA,gDA6CC;AAnDD,uDAAgC;AAChC,6CAAmD;AAKnD,SAAgB,kBAAkB,CACjC,KAAa,EACb,QAAuB,EACvB,KAAY,EACZ,WAA+B,EAC/B,eAAwC,EACxC,OAAoB,EACpB,gBAAsC;IAEtC,IAAI,eAAe,GAAgB,EAAE,CAAC;IACtC,IAAI,gBAAgB,EAAE,CAAC;QACtB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC;gBACJ,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACjD,eAAe,GAAG,gBAAgB,CAAC;QACpC,CAAC;IACF,CAAC;IAGD,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC,OAAO,EAAE;QACnC,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;KACpB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAgB;QACzB,KAAK;QACL,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,WAAW;QACX,eAAe;QACf,GAAG,YAAY;QACf,GAAG,eAAe;KAClB,CAAC;IAGF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAc,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ export declare function prepareRequestBody(model: string, messages: IDataObject[], tools: any[], tool_choice: string | undefined, response_format: IDataObject | undefined, options: IDataObject, customParameters: string | IDataObject): IDataObject;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.prepareRequestBody = prepareRequestBody;
7
+ const omit_1 = __importDefault(require("lodash/omit"));
8
+ const types_1 = require("../messages/types");
9
+ function prepareRequestBody(model, messages, tools, tool_choice, response_format, options, customParameters) {
10
+ let customParamsObj = {};
11
+ if (customParameters) {
12
+ if (typeof customParameters === 'string' && customParameters.trim()) {
13
+ try {
14
+ customParamsObj = JSON.parse(customParameters);
15
+ }
16
+ catch (error) {
17
+ throw new Error('Invalid JSON in customParameters');
18
+ }
19
+ }
20
+ else if (typeof customParameters !== 'string') {
21
+ customParamsObj = customParameters;
22
+ }
23
+ }
24
+ const cleanOptions = (0, omit_1.default)(options, [
25
+ 'customParameters',
26
+ 'fallbackModelId',
27
+ 'maxToolsIterations',
28
+ ]);
29
+ const body = {
30
+ model,
31
+ messages,
32
+ ...(tools.length > 0 ? { tools } : {}),
33
+ tool_choice,
34
+ response_format,
35
+ ...cleanOptions,
36
+ ...customParamsObj,
37
+ };
38
+ if (!Array.isArray(messages) || !messages.every(types_1.isValidMessage)) {
39
+ throw new Error("Invalid or missing 'messages' in the request body.");
40
+ }
41
+ return body;
42
+ }
43
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../nodes/shared/core/request/builder.ts"],"names":[],"mappings":";;;;;AAOA,gDA6CC;AAnDD,uDAAgC;AAChC,6CAAmD;AAKnD,SAAgB,kBAAkB,CACjC,KAAa,EACb,QAAuB,EACvB,KAAY,EACZ,WAA+B,EAC/B,eAAwC,EACxC,OAAoB,EACpB,gBAAsC;IAEtC,IAAI,eAAe,GAAgB,EAAE,CAAC;IACtC,IAAI,gBAAgB,EAAE,CAAC;QACtB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YACrE,IAAI,CAAC;gBACJ,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;aAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACjD,eAAe,GAAG,gBAAgB,CAAC;QACpC,CAAC;IACF,CAAC;IAGD,MAAM,YAAY,GAAG,IAAA,cAAK,EAAC,OAAO,EAAE;QACnC,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;KACpB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAgB;QACzB,KAAK;QACL,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,WAAW;QACX,eAAe;QACf,GAAG,YAAY;QACf,GAAG,eAAe;KAClB,CAAC;IAGF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAc,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ import { VisualEditorProperties } from './visualEditor';
3
+ export declare function configureResponseFormat(responseFormat: string, outputJsonSchemaDefinition: string, structuredOutputName: string, structuredOutputDescription: string, structuredOutputProperties: VisualEditorProperties[], structuredOutputIsArray: boolean, structuredOutputArrayName: string, structuredOutputArrayDescription: string): IDataObject | undefined;