n8n-nodes-simple 2.0.1 → 2.2.0

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 (196) hide show
  1. package/dist/credentials/SimpleOpenAiApi.credentials.js +1 -1
  2. package/dist/credentials/SimpleOpenAiApi.credentials.js.map +1 -1
  3. package/dist/nodes/CoreAgent/CoreAgent.node.d.ts +3 -2
  4. package/dist/nodes/CoreAgent/CoreAgent.node.js +3 -3
  5. package/dist/nodes/CoreAgent/CoreAgent.node.js.map +1 -1
  6. package/dist/nodes/CoreAgent/description.js +15 -3
  7. package/dist/nodes/CoreAgent/description.js.map +1 -1
  8. package/dist/nodes/Subagent/Subagent.node.d.ts +3 -2
  9. package/dist/nodes/Subagent/Subagent.node.js +5 -5
  10. package/dist/nodes/Subagent/Subagent.node.js.map +1 -1
  11. package/dist/nodes/Subagent/description.js +16 -3
  12. package/dist/nodes/Subagent/description.js.map +1 -1
  13. package/dist/nodes/shared/actions/executor.js +1 -1
  14. package/dist/nodes/shared/actions/executor.js.map +1 -1
  15. package/dist/nodes/shared/actions/memory.d.ts +1 -1
  16. package/dist/nodes/shared/actions/memory.js +71 -19
  17. package/dist/nodes/shared/actions/memory.js.map +1 -1
  18. package/dist/nodes/shared/actions/message.operation.js +1 -1
  19. package/dist/nodes/shared/actions/message.operation.js.map +1 -1
  20. package/dist/nodes/shared/actions/messageProcessor.d.ts +1 -1
  21. package/dist/nodes/shared/actions/messageProcessor.js +9 -7
  22. package/dist/nodes/shared/actions/messageProcessor.js.map +1 -1
  23. package/dist/nodes/shared/actions/outputProcessor.js +29 -21
  24. package/dist/nodes/shared/actions/outputProcessor.js.map +1 -1
  25. package/dist/nodes/shared/actions/parameters.d.ts +2 -0
  26. package/dist/nodes/shared/actions/parameters.js +8 -1
  27. package/dist/nodes/shared/actions/parameters.js.map +1 -1
  28. package/dist/nodes/shared/actions/requestBuilder.js +2 -2
  29. package/dist/nodes/shared/actions/requestBuilder.js.map +1 -1
  30. package/dist/nodes/shared/actions/responseConfig.js +2 -2
  31. package/dist/nodes/shared/actions/responseConfig.js.map +1 -1
  32. package/dist/nodes/shared/actions/router.js +2 -2
  33. package/dist/nodes/shared/actions/router.js.map +1 -1
  34. package/dist/nodes/shared/actions/tool.js.map +1 -1
  35. package/dist/nodes/shared/actions/toolExecutor.js +78 -21
  36. package/dist/nodes/shared/actions/toolExecutor.js.map +1 -1
  37. package/dist/nodes/shared/actions/toolSetup.js +6 -5
  38. package/dist/nodes/shared/actions/toolSetup.js.map +1 -1
  39. package/dist/nodes/shared/api/openAiApiRequest.js.map +1 -1
  40. package/dist/nodes/shared/api/types.d.ts +2 -0
  41. package/dist/nodes/shared/api/utils.js.map +1 -1
  42. package/dist/nodes/shared/assets/gradientRobot.svg +11 -0
  43. package/dist/nodes/shared/assets/gradientRobotRed.svg +11 -0
  44. package/dist/nodes/shared/config/descriptionGenerator.d.ts +2 -0
  45. package/dist/nodes/shared/config/descriptionGenerator.js +36 -0
  46. package/dist/nodes/shared/config/descriptionGenerator.js.map +1 -0
  47. package/dist/nodes/shared/config/parameters.d.ts +26 -0
  48. package/dist/nodes/shared/config/parameters.js +35 -0
  49. package/dist/nodes/shared/config/parameters.js.map +1 -0
  50. package/dist/nodes/shared/config/properties/index.d.ts +2 -0
  51. package/dist/nodes/shared/config/properties/index.js +16 -0
  52. package/dist/nodes/shared/config/properties/index.js.map +1 -0
  53. package/dist/nodes/shared/config/properties/memory.d.ts +2 -0
  54. package/dist/nodes/shared/config/properties/memory.js +5 -0
  55. package/dist/nodes/shared/config/properties/memory.js.map +1 -0
  56. package/dist/nodes/shared/config/properties/messages.d.ts +2 -0
  57. package/dist/nodes/shared/config/properties/messages.js +109 -0
  58. package/dist/nodes/shared/config/properties/messages.js.map +1 -0
  59. package/dist/nodes/shared/config/properties/model.d.ts +2 -0
  60. package/dist/nodes/shared/config/properties/model.js +30 -0
  61. package/dist/nodes/shared/config/properties/model.js.map +1 -0
  62. package/dist/nodes/shared/config/properties/options.d.ts +2 -0
  63. package/dist/nodes/shared/config/properties/options.js +105 -0
  64. package/dist/nodes/shared/config/properties/options.js.map +1 -0
  65. package/dist/nodes/shared/config/properties/output.d.ts +2 -0
  66. package/dist/nodes/shared/config/properties/output.js +322 -0
  67. package/dist/nodes/shared/config/properties/output.js.map +1 -0
  68. package/dist/nodes/shared/config/properties/tools.d.ts +2 -0
  69. package/dist/nodes/shared/config/properties/tools.js +5 -0
  70. package/dist/nodes/shared/config/properties/tools.js.map +1 -0
  71. package/dist/nodes/shared/config/responseConfig.d.ts +3 -0
  72. package/dist/nodes/shared/config/responseConfig.js +26 -0
  73. package/dist/nodes/shared/config/responseConfig.js.map +1 -0
  74. package/dist/nodes/shared/core/execution/executor.d.ts +7 -0
  75. package/dist/nodes/shared/core/execution/executor.js +61 -0
  76. package/dist/nodes/shared/core/execution/executor.js.map +1 -0
  77. package/dist/nodes/shared/core/execution/messageOperation.d.ts +2 -0
  78. package/dist/nodes/shared/core/execution/messageOperation.js +14 -0
  79. package/dist/nodes/shared/core/execution/messageOperation.js.map +1 -0
  80. package/dist/nodes/shared/core/execution/router.d.ts +2 -0
  81. package/dist/nodes/shared/core/execution/router.js +117 -0
  82. package/dist/nodes/shared/core/execution/router.js.map +1 -0
  83. package/dist/nodes/shared/core/memory/index.d.ts +2 -0
  84. package/dist/nodes/shared/core/memory/index.js +19 -0
  85. package/dist/nodes/shared/core/memory/index.js.map +1 -0
  86. package/dist/nodes/shared/core/memory/io.d.ts +5 -0
  87. package/dist/nodes/shared/core/memory/io.js +93 -0
  88. package/dist/nodes/shared/core/memory/io.js.map +1 -0
  89. package/dist/nodes/shared/core/memory/optimizer.d.ts +3 -0
  90. package/dist/nodes/shared/core/memory/optimizer.js +30 -0
  91. package/dist/nodes/shared/core/memory/optimizer.js.map +1 -0
  92. package/dist/nodes/shared/core/memory/properties.d.ts +2 -0
  93. package/dist/nodes/shared/core/memory/properties.js +5 -0
  94. package/dist/nodes/shared/core/memory/properties.js.map +1 -0
  95. package/dist/nodes/shared/core/messages/chatHistory.d.ts +2 -0
  96. package/dist/nodes/shared/core/messages/chatHistory.js +63 -0
  97. package/dist/nodes/shared/core/messages/chatHistory.js.map +1 -0
  98. package/dist/nodes/shared/core/messages/converter.d.ts +4 -0
  99. package/dist/nodes/shared/core/messages/converter.js +76 -0
  100. package/dist/nodes/shared/core/messages/converter.js.map +1 -0
  101. package/dist/nodes/shared/core/messages/memoryOptimizer.d.ts +3 -0
  102. package/dist/nodes/shared/core/messages/memoryOptimizer.js +30 -0
  103. package/dist/nodes/shared/core/messages/memoryOptimizer.js.map +1 -0
  104. package/dist/nodes/shared/core/messages/processor.d.ts +4 -0
  105. package/dist/nodes/shared/core/messages/processor.js +23 -0
  106. package/dist/nodes/shared/core/messages/processor.js.map +1 -0
  107. package/dist/nodes/shared/core/messages/toolExtractor.d.ts +6 -0
  108. package/dist/nodes/shared/core/messages/toolExtractor.js +28 -0
  109. package/dist/nodes/shared/core/messages/toolExtractor.js.map +1 -0
  110. package/dist/nodes/shared/core/messages/types.d.ts +48 -0
  111. package/dist/nodes/shared/core/messages/types.js +12 -0
  112. package/dist/nodes/shared/core/messages/types.js.map +1 -0
  113. package/dist/nodes/shared/core/tools/connector.d.ts +3 -0
  114. package/dist/nodes/shared/core/tools/connector.js +37 -0
  115. package/dist/nodes/shared/core/tools/connector.js.map +1 -0
  116. package/dist/nodes/shared/core/tools/executor.d.ts +6 -0
  117. package/dist/nodes/shared/core/tools/executor.js +124 -0
  118. package/dist/nodes/shared/core/tools/executor.js.map +1 -0
  119. package/dist/nodes/shared/core/tools/manager.d.ts +2 -0
  120. package/dist/nodes/shared/core/tools/manager.js +51 -0
  121. package/dist/nodes/shared/core/tools/manager.js.map +1 -0
  122. package/dist/nodes/shared/core/tools/messageExtractor.d.ts +6 -0
  123. package/dist/nodes/shared/core/tools/messageExtractor.js +28 -0
  124. package/dist/nodes/shared/core/tools/messageExtractor.js.map +1 -0
  125. package/dist/nodes/shared/core/tools/n8nTool.d.ts +9 -0
  126. package/dist/nodes/shared/core/tools/n8nTool.js +91 -0
  127. package/dist/nodes/shared/core/tools/n8nTool.js.map +1 -0
  128. package/dist/nodes/shared/core/tools/schemaGenerator.d.ts +6 -0
  129. package/dist/nodes/shared/core/tools/schemaGenerator.js +23 -0
  130. package/dist/nodes/shared/core/tools/schemaGenerator.js.map +1 -0
  131. package/dist/nodes/shared/core/tools/setup.d.ts +8 -0
  132. package/dist/nodes/shared/core/tools/setup.js +59 -0
  133. package/dist/nodes/shared/core/tools/setup.js.map +1 -0
  134. package/dist/nodes/shared/core/tools/subagentTool.d.ts +11 -0
  135. package/dist/nodes/shared/core/tools/subagentTool.js +60 -0
  136. package/dist/nodes/shared/core/tools/subagentTool.js.map +1 -0
  137. package/dist/nodes/shared/descriptionGenerator.js +3 -7
  138. package/dist/nodes/shared/descriptionGenerator.js.map +1 -1
  139. package/dist/nodes/shared/message/chatHistoryProcessor.d.ts +2 -0
  140. package/dist/nodes/shared/message/chatHistoryProcessor.js +63 -0
  141. package/dist/nodes/shared/message/chatHistoryProcessor.js.map +1 -0
  142. package/dist/nodes/shared/message/memoryOptimizer.d.ts +3 -0
  143. package/dist/nodes/shared/message/memoryOptimizer.js +30 -0
  144. package/dist/nodes/shared/message/memoryOptimizer.js.map +1 -0
  145. package/dist/nodes/shared/message/messageConverter.d.ts +4 -0
  146. package/dist/nodes/shared/message/messageConverter.js +76 -0
  147. package/dist/nodes/shared/message/messageConverter.js.map +1 -0
  148. package/dist/nodes/shared/message/processor.d.ts +3 -7
  149. package/dist/nodes/shared/message/processor.js +8 -83
  150. package/dist/nodes/shared/message/processor.js.map +1 -1
  151. package/dist/nodes/shared/message/toolMessageExtractor.d.ts +6 -0
  152. package/dist/nodes/shared/message/toolMessageExtractor.js +28 -0
  153. package/dist/nodes/shared/message/toolMessageExtractor.js.map +1 -0
  154. package/dist/nodes/shared/message/types.d.ts +2 -0
  155. package/dist/nodes/shared/message/types.js +5 -5
  156. package/dist/nodes/shared/message/types.js.map +1 -1
  157. package/dist/nodes/shared/methods/index.d.ts +1 -1
  158. package/dist/nodes/shared/methods/index.js +1 -1
  159. package/dist/nodes/shared/methods/index.js.map +1 -1
  160. package/dist/nodes/shared/methods/listSearch.d.ts +3 -0
  161. package/dist/nodes/shared/methods/listSearch.js +4 -0
  162. package/dist/nodes/shared/methods/listSearch.js.map +1 -1
  163. package/dist/nodes/shared/processing/memory.d.ts +5 -0
  164. package/dist/nodes/shared/processing/memory.js +93 -0
  165. package/dist/nodes/shared/processing/memory.js.map +1 -0
  166. package/dist/nodes/shared/processing/outputProcessor.d.ts +5 -0
  167. package/dist/nodes/shared/processing/outputProcessor.js +112 -0
  168. package/dist/nodes/shared/processing/outputProcessor.js.map +1 -0
  169. package/dist/nodes/shared/processing/requestBuilder.d.ts +2 -0
  170. package/dist/nodes/shared/processing/requestBuilder.js +38 -0
  171. package/dist/nodes/shared/processing/requestBuilder.js.map +1 -0
  172. package/dist/nodes/shared/processing/visualEditor.d.ts +32 -0
  173. package/dist/nodes/shared/processing/visualEditor.js +70 -0
  174. package/dist/nodes/shared/processing/visualEditor.js.map +1 -0
  175. package/dist/nodes/shared/properties.js +75 -41
  176. package/dist/nodes/shared/properties.js.map +1 -1
  177. package/dist/nodes/shared/tool/subagentTool.d.ts +1 -1
  178. package/dist/nodes/shared/tool/subagentTool.js +4 -4
  179. package/dist/nodes/shared/tool/subagentTool.js.map +1 -1
  180. package/dist/nodes/shared/tool/visualEditor.d.ts +1 -1
  181. package/dist/nodes/shared/tool/visualEditor.js +20 -16
  182. package/dist/nodes/shared/tool/visualEditor.js.map +1 -1
  183. package/dist/nodes/shared/toolManager/getConnectedTools.js.map +1 -1
  184. package/dist/nodes/shared/toolManager/n8nTool.js.map +1 -1
  185. package/dist/nodes/shared/utils/descriptionGenerator.d.ts +2 -0
  186. package/dist/nodes/shared/utils/descriptionGenerator.js +36 -0
  187. package/dist/nodes/shared/utils/descriptionGenerator.js.map +1 -0
  188. package/dist/nodes/shared/utils/index.d.ts +1 -0
  189. package/dist/nodes/shared/utils/index.js +18 -0
  190. package/dist/nodes/shared/utils/index.js.map +1 -0
  191. package/dist/nodes/shared/utils/listSearch.d.ts +2 -0
  192. package/dist/nodes/shared/utils/listSearch.js +34 -0
  193. package/dist/nodes/shared/utils/listSearch.js.map +1 -0
  194. package/dist/package.json +1 -1
  195. package/dist/tsconfig.tsbuildinfo +1 -1
  196. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ import type { BaseChatMemory } from 'langchain/memory';
3
+ import type { ChatCompletion } from '../api/types';
4
+ export declare function getMemoryFromInput(executeFunctions: IExecuteFunctions): Promise<BaseChatMemory | undefined>;
5
+ export declare function saveToMemory(memory: BaseChatMemory | undefined, messages: IDataObject[], response: ChatCompletion, outputStringified: string, saveToolCallsInChatMemory: boolean, originalMessagesLength?: number): Promise<void>;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMemoryFromInput = getMemoryFromInput;
4
+ exports.saveToMemory = saveToMemory;
5
+ const messages_1 = require("@langchain/core/messages");
6
+ async function getMemoryFromInput(executeFunctions) {
7
+ let memoryInput;
8
+ try {
9
+ memoryInput = (await executeFunctions.getInputConnectionData('ai_memory', 0, undefined));
10
+ }
11
+ catch (error) {
12
+ memoryInput = undefined;
13
+ }
14
+ return Array.isArray(memoryInput) ? memoryInput[0] : memoryInput;
15
+ }
16
+ async function saveToMemory(memory, messages, response, outputStringified, saveToolCallsInChatMemory, originalMessagesLength = 0) {
17
+ var _a, _b, _c, _d, _e;
18
+ 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)) {
19
+ return;
20
+ }
21
+ if (!saveToolCallsInChatMemory) {
22
+ const lastUserMessageContent = ((_c = [...messages].reverse().find((msg) => msg.role === 'user')) === null || _c === void 0 ? void 0 : _c.content) || '';
23
+ let assistantContent = outputStringified;
24
+ if (!assistantContent || assistantContent === 'null' || assistantContent === 'undefined') {
25
+ assistantContent = response.choices[0].message.content || '';
26
+ if (!assistantContent && ((_d = response.choices[0].message.tool_calls) === null || _d === void 0 ? void 0 : _d.length)) {
27
+ assistantContent =
28
+ 'Used tools: ' +
29
+ response.choices[0].message.tool_calls.map((tc) => tc.function.name).join(', ');
30
+ }
31
+ else if (!assistantContent) {
32
+ assistantContent = '[No response content available]';
33
+ }
34
+ }
35
+ if (typeof assistantContent !== 'string') {
36
+ assistantContent = JSON.stringify(assistantContent);
37
+ }
38
+ try {
39
+ await memory.saveContext({ input: lastUserMessageContent }, { output: assistantContent });
40
+ }
41
+ catch (error) {
42
+ console.error('Error saving messages to memory:', error);
43
+ }
44
+ }
45
+ else {
46
+ try {
47
+ const lastUserMessage = [...messages].reverse().find((msg) => msg.role === 'user');
48
+ if (lastUserMessage === null || lastUserMessage === void 0 ? void 0 : lastUserMessage.content) {
49
+ const humanMessage = new messages_1.HumanMessage(lastUserMessage.content);
50
+ await memory.chatHistory.addMessage(humanMessage);
51
+ }
52
+ const conversationMessages = [];
53
+ for (let i = originalMessagesLength; i < messages.length; i++) {
54
+ const msg = messages[i];
55
+ if (msg.role === 'assistant' || msg.role === 'tool') {
56
+ conversationMessages.push({
57
+ role: msg.role,
58
+ content: msg.content || '',
59
+ ...(msg.tool_calls && { tool_calls: msg.tool_calls }),
60
+ ...(msg.tool_call_id && { tool_call_id: msg.tool_call_id }),
61
+ ...(msg.refusal && { refusal: msg.refusal }),
62
+ });
63
+ }
64
+ }
65
+ let finalContent = outputStringified;
66
+ if (!finalContent || finalContent === 'null' || finalContent === 'undefined') {
67
+ finalContent = response.choices[0].message.content || '';
68
+ if (!finalContent && ((_e = response.choices[0].message.tool_calls) === null || _e === void 0 ? void 0 : _e.length)) {
69
+ finalContent =
70
+ 'Used tools: ' +
71
+ response.choices[0].message.tool_calls.map((tc) => tc.function.name).join(', ');
72
+ }
73
+ else if (!finalContent) {
74
+ finalContent = '[No response content available]';
75
+ }
76
+ }
77
+ if (typeof finalContent !== 'string') {
78
+ finalContent = JSON.stringify(finalContent);
79
+ }
80
+ const aiMessage = new messages_1.AIMessage({
81
+ content: finalContent,
82
+ tool_calls: conversationMessages,
83
+ additional_kwargs: {},
84
+ response_metadata: {},
85
+ });
86
+ await memory.chatHistory.addMessage(aiMessage);
87
+ }
88
+ catch (error) {
89
+ console.error('Error saving messages with tool calls to memory:', error);
90
+ }
91
+ }
92
+ }
93
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../../nodes/shared/processing/memory.ts"],"names":[],"mappings":";;AAQA,gDAgBC;AAKD,oCA4GC;AAtID,uDAAmE;AAK5D,KAAK,UAAU,kBAAkB,CACvC,gBAAmC;IAEnC,IAAI,WAA0D,CAAC;IAC/D,IAAI,CAAC;QACJ,WAAW,GAAG,CAAC,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,CAG3E,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,YAAY,CACjC,MAAkC,EAClC,QAAuB,EACvB,QAAwB,EACxB,iBAAyB,EACzB,yBAAkC,EAClC,yBAAiC,CAAC;;IAElC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAG,CAAC,CAAC,0CAAE,OAAO,CAAA,EAAE,CAAC;QACjD,OAAO;IACR,CAAC;IAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEhC,MAAM,sBAAsB,GAC3B,CAAA,MAAA,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,0CAAE,OAAO,KAAI,EAAE,CAAC;QAE3E,IAAI,gBAAgB,GAAG,iBAAiB,CAAC;QAGzC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,MAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;YAC1F,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;YAG7D,IAAI,CAAC,gBAAgB,KAAI,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,0CAAE,MAAM,CAAA,EAAE,CAAC;gBACzE,gBAAgB;oBACf,cAAc;wBACd,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClF,CAAC;iBAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,gBAAgB,GAAG,iCAAiC,CAAC;YACtD,CAAC;QACF,CAAC;QAGD,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC1C,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;SAAM,CAAC;QAEP,IAAI,CAAC;YAEJ,MAAM,eAAe,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACnF,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAC,eAAe,CAAC,OAAiB,CAAC,CAAC;gBACzE,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YAID,MAAM,oBAAoB,GAAU,EAAE,CAAC;YAIvC,KAAK,IAAI,CAAC,GAAG,sBAAsB,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAQ,CAAC;gBAE/B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAErD,oBAAoB,CAAC,IAAI,CAAC;wBACzB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;wBAC1B,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;wBACrD,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;wBAC3D,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;qBAC5C,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAGD,IAAI,YAAY,GAAG,iBAAiB,CAAC;YAGrC,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;gBAC9E,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAGzD,IAAI,CAAC,YAAY,KAAI,MAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,0CAAE,MAAM,CAAA,EAAE,CAAC;oBACrE,YAAY;wBACX,cAAc;4BACd,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClF,CAAC;qBAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC1B,YAAY,GAAG,iCAAiC,CAAC;gBAClD,CAAC;YACF,CAAC;YAGD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACtC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;YAGD,MAAM,SAAS,GAAG,IAAI,oBAAS,CAAC;gBAC/B,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,oBAAoB;gBAChC,iBAAiB,EAAE,EAAE;gBACrB,iBAAiB,EAAE,EAAE;aACrB,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC;AACF,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,112 @@
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("../core/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
+ const includeReasoningInChatHistory = executeFunctions.getNodeParameter('includeReasoningInChatHistory', index, false);
43
+ let chatHistoryMessages = structuredClone(messages);
44
+ if (!includeToolCallsInChatHistory) {
45
+ chatHistoryMessages = chatHistoryMessages
46
+ .filter((msg) => msg.content !== null && msg.role !== 'tool')
47
+ .map(({ role, content }) => ({ role, content }));
48
+ }
49
+ if (!includeSystemMessagesInChatHistory) {
50
+ chatHistoryMessages = chatHistoryMessages.filter((msg) => msg.role !== 'system');
51
+ }
52
+ const finalMessage = response === null || response === void 0 ? void 0 : response.choices[0].message;
53
+ if (finalMessage) {
54
+ let rootMessage = {
55
+ role: finalMessage.role,
56
+ content: outputStringified,
57
+ };
58
+ chatHistoryMessages.push(rootMessage);
59
+ }
60
+ for (let i = 0; i < chatHistoryMessages.length; i++) {
61
+ const msg = chatHistoryMessages[i];
62
+ if (msg.role === 'assistant') {
63
+ delete msg.reasoning_details;
64
+ if (!includeReasoningInChatHistory) {
65
+ delete msg.reasoning;
66
+ }
67
+ }
68
+ }
69
+ outputData.forEach((item) => {
70
+ item.json.chat_history = chatHistoryMessages;
71
+ });
72
+ }
73
+ if (addToOutput.includes('request')) {
74
+ outputData.forEach((item) => {
75
+ item.json.request = body;
76
+ });
77
+ }
78
+ if (addToOutput.includes('modelOverview') && model.includes('/')) {
79
+ await addModelOverview(executeFunctions, model, outputData);
80
+ }
81
+ reorderOutputFields(outputData);
82
+ return outputData;
83
+ }
84
+ async function addModelOverview(executeFunctions, model, outputData) {
85
+ const requestOptions = {
86
+ method: 'GET',
87
+ url: `https://openrouter.ai/api/v1/models/${model}/endpoints`,
88
+ };
89
+ for (const item of outputData) {
90
+ try {
91
+ const modelOverviewResponse = await executeFunctions.helpers.httpRequest(requestOptions);
92
+ item.json.model_overview = modelOverviewResponse;
93
+ }
94
+ catch (error) {
95
+ console.error('Error fetching model endpoints:', error);
96
+ }
97
+ }
98
+ }
99
+ function reorderOutputFields(outputData) {
100
+ outputData.forEach((item) => {
101
+ const reordered = {
102
+ output: item.json.output,
103
+ request: item.json.request,
104
+ tool_calls: item.json.tool_calls,
105
+ response: item.json.response,
106
+ chat_history: item.json.chat_history,
107
+ model_overview: item.json.model_overview,
108
+ };
109
+ item.json = Object.fromEntries(Object.entries(reordered).filter(([_, value]) => value !== undefined));
110
+ });
111
+ }
112
+ //# sourceMappingURL=outputProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputProcessor.js","sourceRoot":"","sources":["../../../../nodes/shared/processing/outputProcessor.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;
@@ -0,0 +1,38 @@
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("../core/messages/types");
9
+ function prepareRequestBody(model, messages, tools, tool_choice, response_format, options, customParameters) {
10
+ let customParamsObj = {};
11
+ if (customParameters && customParameters.trim()) {
12
+ try {
13
+ customParamsObj = JSON.parse(customParameters);
14
+ }
15
+ catch (error) {
16
+ throw new Error('Invalid JSON in customParameters');
17
+ }
18
+ }
19
+ const cleanOptions = (0, omit_1.default)(options, [
20
+ 'customParameters',
21
+ 'fallbackModelId',
22
+ 'maxToolsIterations',
23
+ ]);
24
+ const body = {
25
+ model,
26
+ messages,
27
+ ...(tools.length > 0 ? { tools } : {}),
28
+ tool_choice,
29
+ response_format,
30
+ ...cleanOptions,
31
+ ...customParamsObj,
32
+ };
33
+ if (!Array.isArray(messages) || !messages.every(types_1.isValidMessage)) {
34
+ throw new Error("Invalid or missing 'messages' in the request body.");
35
+ }
36
+ return body;
37
+ }
38
+ //# sourceMappingURL=requestBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestBuilder.js","sourceRoot":"","sources":["../../../../nodes/shared/processing/requestBuilder.ts"],"names":[],"mappings":";;;;;AAOA,gDAyCC;AA/CD,uDAAgC;AAChC,kDAAwD;AAKxD,SAAgB,kBAAkB,CACjC,KAAa,EACb,QAAuB,EACvB,KAAY,EACZ,WAA+B,EAC/B,eAAwC,EACxC,OAAoB,EACpB,gBAAwB;IAExB,IAAI,eAAe,GAAgB,EAAE,CAAC;IACtC,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC;YACJ,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAgB,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACrD,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,32 @@
1
+ export type VisualEditorProperties = {
2
+ name: string;
3
+ type: string;
4
+ description: string;
5
+ isEnum: boolean;
6
+ enumValues?: string[];
7
+ elementDescription?: string;
8
+ isOptional: boolean;
9
+ };
10
+ type SchemaProperty = {
11
+ name?: string;
12
+ type?: string | string[];
13
+ enum?: string[];
14
+ description?: string;
15
+ items?: SchemaProperty | RefProperty;
16
+ properties?: Record<string, SchemaProperty>;
17
+ $ref?: string;
18
+ required?: string[];
19
+ additionalProperties?: boolean;
20
+ };
21
+ type RefProperty = {
22
+ $ref: string;
23
+ };
24
+ type Schema = {
25
+ type: 'object';
26
+ properties: Record<string, SchemaProperty>;
27
+ required: string[];
28
+ additionalProperties: false;
29
+ $defs?: Record<string, Schema>;
30
+ };
31
+ export declare function convertVisualEditorToSchema(visualEditorProperties: VisualEditorProperties[], structuredOutputIsArray?: boolean, structuredOutputArrayName?: string, structuredOutputArrayDescription?: string): Schema;
32
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertVisualEditorToSchema = convertVisualEditorToSchema;
4
+ function convertVisualEditorToSchema(visualEditorProperties, structuredOutputIsArray = false, structuredOutputArrayName = '', structuredOutputArrayDescription = '') {
5
+ var _a, _b;
6
+ const properties = {};
7
+ const required = [];
8
+ for (var visualProperty of visualEditorProperties) {
9
+ var propertyIsArray = visualProperty.type === 'stringArray';
10
+ var baseType = propertyIsArray ? 'string' : visualProperty.type;
11
+ var property = {
12
+ type: visualProperty.isOptional ? [baseType, 'null'] : baseType,
13
+ };
14
+ if (propertyIsArray && visualProperty.description.trim()) {
15
+ property.description = visualProperty.elementDescription;
16
+ }
17
+ if (!propertyIsArray && visualProperty.description.trim()) {
18
+ property.description = visualProperty.description;
19
+ }
20
+ if (visualProperty.isEnum) {
21
+ property.enum = visualProperty.enumValues;
22
+ }
23
+ if (propertyIsArray) {
24
+ const arrayProperty = {
25
+ type: visualProperty.isOptional ? ['array', 'null'] : 'array',
26
+ ...(((_a = visualProperty.description) === null || _a === void 0 ? void 0 : _a.trim()) && { description: visualProperty.description }),
27
+ items: {
28
+ type: baseType,
29
+ ...(((_b = visualProperty.elementDescription) === null || _b === void 0 ? void 0 : _b.trim()) && {
30
+ description: visualProperty.elementDescription,
31
+ }),
32
+ ...(visualProperty.isEnum && { enum: visualProperty.enumValues }),
33
+ },
34
+ };
35
+ properties[visualProperty.name] = arrayProperty;
36
+ }
37
+ else {
38
+ properties[visualProperty.name] = property;
39
+ }
40
+ required.push(visualProperty.name);
41
+ }
42
+ if (structuredOutputIsArray) {
43
+ return {
44
+ type: 'object',
45
+ properties: {
46
+ [structuredOutputArrayName]: {
47
+ type: 'array',
48
+ ...(structuredOutputArrayDescription.trim() && {
49
+ description: structuredOutputArrayDescription,
50
+ }),
51
+ items: {
52
+ type: 'object',
53
+ properties,
54
+ required,
55
+ additionalProperties: false,
56
+ },
57
+ },
58
+ },
59
+ required: [structuredOutputArrayName],
60
+ additionalProperties: false,
61
+ };
62
+ }
63
+ return {
64
+ type: 'object',
65
+ properties,
66
+ required,
67
+ additionalProperties: false,
68
+ };
69
+ }
70
+ //# sourceMappingURL=visualEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualEditor.js","sourceRoot":"","sources":["../../../../nodes/shared/processing/visualEditor.ts"],"names":[],"mappings":";;AAmCA,kEA+EC;AA/ED,SAAgB,2BAA2B,CAC1C,sBAAgD,EAChD,0BAAmC,KAAK,EACxC,4BAAoC,EAAE,EACtC,mCAA2C,EAAE;;IAE7C,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,IAAI,cAAc,IAAI,sBAAsB,EAAE,CAAC;QACnD,IAAI,eAAe,GAAY,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC;QAErE,IAAI,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;QAChE,IAAI,QAAQ,GAAmB;YAC9B,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;SAC/D,CAAC;QAEF,IAAI,eAAe,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1D,QAAQ,CAAC,WAAW,GAAG,cAAc,CAAC,kBAAkB,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,eAAe,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3D,QAAQ,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;QACnD,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC;QAC3C,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,aAAa,GAAmB;gBACrC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC7D,GAAG,CAAC,CAAA,MAAA,cAAc,CAAC,WAAW,0CAAE,IAAI,EAAE,KAAI,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC;gBACtF,KAAK,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,GAAG,CAAC,CAAA,MAAA,cAAc,CAAC,kBAAkB,0CAAE,IAAI,EAAE,KAAI;wBAChD,WAAW,EAAE,cAAc,CAAC,kBAAkB;qBAC9C,CAAC;oBACF,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC;iBACjE;aACD,CAAC;YACF,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;QACjD,CAAC;aAAM,CAAC;YACP,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAC5C,CAAC;QAID,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,uBAAuB,EAAE,CAAC;QAC7B,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACX,CAAC,yBAAyB,CAAC,EAAE;oBAC5B,IAAI,EAAE,OAAO;oBACb,GAAG,CAAC,gCAAgC,CAAC,IAAI,EAAE,IAAI;wBAC9C,WAAW,EAAE,gCAAgC;qBAC7C,CAAC;oBACF,KAAK,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU;wBACV,QAAQ;wBACR,oBAAoB,EAAE,KAAK;qBAC3B;iBACD;aACD;YACD,QAAQ,EAAE,CAAC,yBAAyB,CAAC;YACrC,oBAAoB,EAAE,KAAK;SAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,QAAQ;QACR,oBAAoB,EAAE,KAAK;KAC3B,CAAC;AACH,CAAC"}