@n8n/ai-workflow-builder 0.12.1 → 0.14.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 (191) hide show
  1. package/dist/ai-workflow-builder-agent.service.d.ts +28 -0
  2. package/dist/ai-workflow-builder-agent.service.js +160 -0
  3. package/dist/ai-workflow-builder-agent.service.js.map +1 -0
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/chains/conversation-compact.d.ts +8 -0
  6. package/dist/chains/conversation-compact.js +56 -0
  7. package/dist/chains/conversation-compact.js.map +1 -0
  8. package/dist/chains/parameter-updater.d.ts +16 -0
  9. package/dist/chains/parameter-updater.js +94 -0
  10. package/dist/chains/parameter-updater.js.map +1 -0
  11. package/dist/chains/planner.js +2 -2
  12. package/dist/chains/planner.js.map +1 -1
  13. package/dist/chains/prompts/base/common-patterns.d.ts +1 -0
  14. package/dist/chains/prompts/base/common-patterns.js +13 -0
  15. package/dist/chains/prompts/base/common-patterns.js.map +1 -0
  16. package/dist/chains/prompts/base/core-instructions.d.ts +1 -0
  17. package/dist/chains/prompts/base/core-instructions.js +28 -0
  18. package/dist/chains/prompts/base/core-instructions.js.map +1 -0
  19. package/dist/chains/prompts/base/expression-rules.d.ts +1 -0
  20. package/dist/chains/prompts/base/expression-rules.js +15 -0
  21. package/dist/chains/prompts/base/expression-rules.js.map +1 -0
  22. package/dist/chains/prompts/base/output-format.d.ts +1 -0
  23. package/dist/chains/prompts/base/output-format.js +7 -0
  24. package/dist/chains/prompts/base/output-format.js.map +1 -0
  25. package/dist/chains/prompts/examples/advanced/resource-locator-examples.d.ts +1 -0
  26. package/dist/chains/prompts/examples/advanced/resource-locator-examples.js +79 -0
  27. package/dist/chains/prompts/examples/advanced/resource-locator-examples.js.map +1 -0
  28. package/dist/chains/prompts/examples/advanced/tool-node-examples.d.ts +1 -0
  29. package/dist/chains/prompts/examples/advanced/tool-node-examples.js +71 -0
  30. package/dist/chains/prompts/examples/advanced/tool-node-examples.js.map +1 -0
  31. package/dist/chains/prompts/examples/basic/if-node-examples.d.ts +1 -0
  32. package/dist/chains/prompts/examples/basic/if-node-examples.js +138 -0
  33. package/dist/chains/prompts/examples/basic/if-node-examples.js.map +1 -0
  34. package/dist/chains/prompts/examples/basic/set-node-examples.d.ts +1 -0
  35. package/dist/chains/prompts/examples/basic/set-node-examples.js +148 -0
  36. package/dist/chains/prompts/examples/basic/set-node-examples.js.map +1 -0
  37. package/dist/chains/prompts/examples/basic/simple-updates.d.ts +1 -0
  38. package/dist/chains/prompts/examples/basic/simple-updates.js +51 -0
  39. package/dist/chains/prompts/examples/basic/simple-updates.js.map +1 -0
  40. package/dist/chains/prompts/node-types/http-request.d.ts +1 -0
  41. package/dist/chains/prompts/node-types/http-request.js +113 -0
  42. package/dist/chains/prompts/node-types/http-request.js.map +1 -0
  43. package/dist/chains/prompts/node-types/if-node.d.ts +1 -0
  44. package/dist/chains/prompts/node-types/if-node.js +158 -0
  45. package/dist/chains/prompts/node-types/if-node.js.map +1 -0
  46. package/dist/chains/prompts/node-types/set-node.d.ts +1 -0
  47. package/dist/chains/prompts/node-types/set-node.js +91 -0
  48. package/dist/chains/prompts/node-types/set-node.js.map +1 -0
  49. package/dist/chains/prompts/node-types/tool-nodes.d.ts +1 -0
  50. package/dist/chains/prompts/node-types/tool-nodes.js +73 -0
  51. package/dist/chains/prompts/node-types/tool-nodes.js.map +1 -0
  52. package/dist/chains/prompts/parameter-types/resource-locator.d.ts +1 -0
  53. package/dist/chains/prompts/parameter-types/resource-locator.js +95 -0
  54. package/dist/chains/prompts/parameter-types/resource-locator.js.map +1 -0
  55. package/dist/chains/prompts/parameter-types/text-fields.d.ts +1 -0
  56. package/dist/chains/prompts/parameter-types/text-fields.js +22 -0
  57. package/dist/chains/prompts/parameter-types/text-fields.js.map +1 -0
  58. package/dist/chains/prompts/prompt-builder.d.ts +14 -0
  59. package/dist/chains/prompts/prompt-builder.js +118 -0
  60. package/dist/chains/prompts/prompt-builder.js.map +1 -0
  61. package/dist/chains/prompts/prompt-config.d.ts +5 -0
  62. package/dist/chains/prompts/prompt-config.js +52 -0
  63. package/dist/chains/prompts/prompt-config.js.map +1 -0
  64. package/dist/errors/index.d.ts +45 -0
  65. package/dist/errors/index.js +122 -0
  66. package/dist/errors/index.js.map +1 -0
  67. package/dist/index.d.ts +1 -2
  68. package/dist/index.js +1 -2
  69. package/dist/index.js.map +1 -1
  70. package/dist/llm-config.d.ts +6 -5
  71. package/dist/llm-config.js +19 -4
  72. package/dist/llm-config.js.map +1 -1
  73. package/dist/tools/add-node.tool.d.ts +56 -0
  74. package/dist/tools/add-node.tool.js +136 -0
  75. package/dist/tools/add-node.tool.js.map +1 -0
  76. package/dist/tools/connect-nodes.tool.d.ts +45 -0
  77. package/dist/tools/connect-nodes.tool.js +223 -0
  78. package/dist/tools/connect-nodes.tool.js.map +1 -0
  79. package/dist/tools/engines/node-search-engine.d.ts +25 -0
  80. package/dist/tools/engines/node-search-engine.js +121 -0
  81. package/dist/tools/engines/node-search-engine.js.map +1 -0
  82. package/dist/tools/helpers/index.d.ts +4 -0
  83. package/dist/tools/helpers/index.js +21 -0
  84. package/dist/tools/helpers/index.js.map +1 -0
  85. package/dist/tools/helpers/progress.d.ts +9 -0
  86. package/dist/tools/helpers/progress.js +114 -0
  87. package/dist/tools/helpers/progress.js.map +1 -0
  88. package/dist/tools/helpers/response.d.ts +7 -0
  89. package/dist/tools/helpers/response.js +31 -0
  90. package/dist/tools/helpers/response.js.map +1 -0
  91. package/dist/tools/helpers/state.d.ts +13 -0
  92. package/dist/tools/helpers/state.js +70 -0
  93. package/dist/tools/helpers/state.js.map +1 -0
  94. package/dist/tools/helpers/validation.d.ts +12 -0
  95. package/dist/tools/helpers/validation.js +69 -0
  96. package/dist/tools/helpers/validation.js.map +1 -0
  97. package/dist/tools/node-details.tool.d.ts +19 -0
  98. package/dist/tools/node-details.tool.js +133 -0
  99. package/dist/tools/node-details.tool.js.map +1 -0
  100. package/dist/tools/node-search.tool.d.ts +49 -0
  101. package/dist/tools/node-search.tool.js +146 -0
  102. package/dist/tools/node-search.tool.js.map +1 -0
  103. package/dist/tools/prompts/main-agent.prompt.d.ts +2 -0
  104. package/dist/tools/prompts/main-agent.prompt.js +390 -0
  105. package/dist/tools/prompts/main-agent.prompt.js.map +1 -0
  106. package/dist/tools/remove-node.tool.d.ts +13 -0
  107. package/dist/tools/remove-node.tool.js +97 -0
  108. package/dist/tools/remove-node.tool.js.map +1 -0
  109. package/dist/tools/update-node-parameters.tool.d.ts +19 -0
  110. package/dist/tools/update-node-parameters.tool.js +131 -0
  111. package/dist/tools/update-node-parameters.tool.js.map +1 -0
  112. package/dist/tools/utils/connection-parameters.utils.d.ts +8 -0
  113. package/dist/tools/utils/connection-parameters.utils.js +47 -0
  114. package/dist/tools/utils/connection-parameters.utils.js.map +1 -0
  115. package/dist/tools/utils/connection.utils.d.ts +15 -0
  116. package/dist/tools/utils/connection.utils.js +321 -0
  117. package/dist/tools/utils/connection.utils.js.map +1 -0
  118. package/dist/tools/utils/node-creation.utils.d.ts +8 -0
  119. package/dist/tools/utils/node-creation.utils.js +52 -0
  120. package/dist/tools/utils/node-creation.utils.js.map +1 -0
  121. package/dist/tools/utils/node-positioning.utils.d.ts +17 -0
  122. package/dist/tools/utils/node-positioning.utils.js +87 -0
  123. package/dist/tools/utils/node-positioning.utils.js.map +1 -0
  124. package/dist/tools/utils/parameter-update.utils.d.ts +6 -0
  125. package/dist/tools/utils/parameter-update.utils.js +75 -0
  126. package/dist/tools/utils/parameter-update.utils.js.map +1 -0
  127. package/dist/types/config.d.ts +53 -0
  128. package/dist/{interfaces.js → types/config.js} +1 -1
  129. package/dist/types/config.js.map +1 -0
  130. package/dist/types/connections.d.ts +30 -0
  131. package/dist/types/connections.js +3 -0
  132. package/dist/types/connections.js.map +1 -0
  133. package/dist/types/index.d.ts +8 -0
  134. package/dist/types/index.js +25 -0
  135. package/dist/types/index.js.map +1 -0
  136. package/dist/types/messages.d.ts +38 -0
  137. package/dist/types/messages.js +3 -0
  138. package/dist/types/messages.js.map +1 -0
  139. package/dist/types/nodes.d.ts +26 -0
  140. package/dist/{types.js → types/nodes.js} +1 -1
  141. package/dist/types/nodes.js.map +1 -0
  142. package/dist/types/streaming.d.ts +33 -0
  143. package/dist/types/streaming.js +3 -0
  144. package/dist/types/streaming.js.map +1 -0
  145. package/dist/types/tools.d.ts +76 -0
  146. package/dist/types/tools.js +3 -0
  147. package/dist/types/tools.js.map +1 -0
  148. package/dist/types/utils.d.ts +2 -0
  149. package/dist/types/utils.js +3 -0
  150. package/dist/types/utils.js.map +1 -0
  151. package/dist/types/workflow.d.ts +21 -0
  152. package/dist/types/workflow.js +3 -0
  153. package/dist/types/workflow.js.map +1 -0
  154. package/dist/utils/node-helpers.d.ts +2 -0
  155. package/dist/utils/node-helpers.js +54 -0
  156. package/dist/utils/node-helpers.js.map +1 -0
  157. package/dist/utils/operations-processor.d.ts +10 -0
  158. package/dist/utils/operations-processor.js +114 -0
  159. package/dist/utils/operations-processor.js.map +1 -0
  160. package/dist/utils/stream-processor.d.ts +6 -0
  161. package/dist/utils/stream-processor.js +153 -0
  162. package/dist/utils/stream-processor.js.map +1 -0
  163. package/dist/utils/tool-executor.d.ts +3 -0
  164. package/dist/utils/tool-executor.js +86 -0
  165. package/dist/utils/tool-executor.js.map +1 -0
  166. package/dist/workflow-builder-agent.d.ts +41 -0
  167. package/dist/workflow-builder-agent.js +205 -0
  168. package/dist/workflow-builder-agent.js.map +1 -0
  169. package/dist/workflow-state.d.ts +12 -7
  170. package/dist/workflow-state.js +26 -7
  171. package/dist/workflow-state.js.map +1 -1
  172. package/package.json +26 -7
  173. package/dist/ai-workflow-builder.service.d.ts +0 -25
  174. package/dist/ai-workflow-builder.service.js +0 -308
  175. package/dist/ai-workflow-builder.service.js.map +0 -1
  176. package/dist/chains/connection-composer.d.ts +0 -10
  177. package/dist/chains/connection-composer.js +0 -135
  178. package/dist/chains/connection-composer.js.map +0 -1
  179. package/dist/chains/node-selector.d.ts +0 -8
  180. package/dist/chains/node-selector.js +0 -90
  181. package/dist/chains/node-selector.js.map +0 -1
  182. package/dist/chains/nodes-composer.d.ts +0 -8
  183. package/dist/chains/nodes-composer.js +0 -451
  184. package/dist/chains/nodes-composer.js.map +0 -1
  185. package/dist/chains/validator.d.ts +0 -2
  186. package/dist/chains/validator.js +0 -67
  187. package/dist/chains/validator.js.map +0 -1
  188. package/dist/interfaces.d.ts +0 -4
  189. package/dist/interfaces.js.map +0 -1
  190. package/dist/types.d.ts +0 -87
  191. package/dist/types.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNodeDetailsTool = createNodeDetailsTool;
4
+ const tools_1 = require("@langchain/core/tools");
5
+ const zod_1 = require("zod");
6
+ const errors_1 = require("../errors");
7
+ const progress_1 = require("./helpers/progress");
8
+ const response_1 = require("./helpers/response");
9
+ const validation_1 = require("./helpers/validation");
10
+ const nodeDetailsSchema = zod_1.z.object({
11
+ nodeName: zod_1.z.string().describe('The exact node type name (e.g., n8n-nodes-base.httpRequest)'),
12
+ withParameters: zod_1.z
13
+ .boolean()
14
+ .optional()
15
+ .default(false)
16
+ .describe('Whether to include node parameters in the output'),
17
+ withConnections: zod_1.z
18
+ .boolean()
19
+ .optional()
20
+ .default(true)
21
+ .describe('Whether to include node supported connections in the output'),
22
+ });
23
+ function formatInputs(inputs) {
24
+ if (!inputs || inputs.length === 0) {
25
+ return '<inputs>none</inputs>';
26
+ }
27
+ if (typeof inputs === 'string') {
28
+ return `<input>${inputs}</input>`;
29
+ }
30
+ const formattedInputs = inputs.map((input) => {
31
+ if (typeof input === 'string') {
32
+ return `<input>${input}</input>`;
33
+ }
34
+ return `<input>${JSON.stringify(input)}</input>`;
35
+ });
36
+ return formattedInputs.join('\n');
37
+ }
38
+ function formatOutputs(outputs) {
39
+ if (!outputs || outputs.length === 0) {
40
+ return '<outputs>none</outputs>';
41
+ }
42
+ if (typeof outputs === 'string') {
43
+ return `<output>${outputs}</output>`;
44
+ }
45
+ const formattedOutputs = outputs.map((output) => {
46
+ if (typeof output === 'string') {
47
+ return `<output>${output}</output>`;
48
+ }
49
+ return `<output>${JSON.stringify(output)}</output>`;
50
+ });
51
+ return formattedOutputs.join('\n');
52
+ }
53
+ function formatNodeDetails(details, withParameters = false, withConnections = true) {
54
+ const parts = [];
55
+ parts.push('<node_details>');
56
+ parts.push(`<name>${details.name}</name>`);
57
+ parts.push(`<display_name>${details.displayName}</display_name>`);
58
+ parts.push(`<description>${details.description}</description>`);
59
+ if (details.subtitle) {
60
+ parts.push(`<subtitle>${details.subtitle}</subtitle>`);
61
+ }
62
+ if (withParameters && details.properties.length > 0) {
63
+ const stringifiedProperties = JSON.stringify(details.properties, null, 2);
64
+ parts.push(`<properties>
65
+ ${stringifiedProperties.length > 1000 ? stringifiedProperties.slice(0, 1000) + '... Rest of properties omitted' : stringifiedProperties}
66
+ </properties>`);
67
+ }
68
+ if (withConnections) {
69
+ parts.push('<connections>');
70
+ parts.push(formatInputs(details.inputs));
71
+ parts.push(formatOutputs(details.outputs));
72
+ parts.push('</connections>');
73
+ }
74
+ parts.push('</node_details>');
75
+ return parts.join('\n');
76
+ }
77
+ function extractNodeDetails(nodeType) {
78
+ return {
79
+ name: nodeType.name,
80
+ displayName: nodeType.displayName,
81
+ description: nodeType.description,
82
+ properties: nodeType.properties,
83
+ subtitle: nodeType.subtitle,
84
+ inputs: nodeType.inputs,
85
+ outputs: nodeType.outputs,
86
+ };
87
+ }
88
+ function createNodeDetailsTool(nodeTypes) {
89
+ return (0, tools_1.tool)((input, config) => {
90
+ const reporter = (0, progress_1.createProgressReporter)(config, 'get_node_details');
91
+ try {
92
+ const validatedInput = nodeDetailsSchema.parse(input);
93
+ const { nodeName, withParameters, withConnections } = validatedInput;
94
+ reporter.start(validatedInput);
95
+ (0, progress_1.reportProgress)(reporter, `Looking up details for ${nodeName}...`);
96
+ const nodeType = (0, validation_1.findNodeType)(nodeName, nodeTypes);
97
+ if (!nodeType) {
98
+ const error = (0, validation_1.createNodeTypeNotFoundError)(nodeName);
99
+ reporter.error(error);
100
+ return (0, response_1.createErrorResponse)(config, error);
101
+ }
102
+ const details = extractNodeDetails(nodeType);
103
+ const message = formatNodeDetails(details, withParameters, withConnections);
104
+ const output = {
105
+ details,
106
+ found: true,
107
+ message,
108
+ };
109
+ reporter.complete(output);
110
+ return (0, response_1.createSuccessResponse)(config, message);
111
+ }
112
+ catch (error) {
113
+ if (error instanceof zod_1.z.ZodError) {
114
+ const validationError = new errors_1.ValidationError('Invalid input parameters', {
115
+ extra: { errors: error.errors },
116
+ });
117
+ reporter.error(validationError);
118
+ return (0, response_1.createErrorResponse)(config, validationError);
119
+ }
120
+ const toolError = new errors_1.ToolExecutionError(error instanceof Error ? error.message : 'Unknown error occurred', {
121
+ toolName: 'get_node_details',
122
+ cause: error instanceof Error ? error : undefined,
123
+ });
124
+ reporter.error(toolError);
125
+ return (0, response_1.createErrorResponse)(config, toolError);
126
+ }
127
+ }, {
128
+ name: 'get_node_details',
129
+ description: 'Get detailed information about a specific n8n node type including properties and available connections. Use this before adding nodes to understand their input/output structure.',
130
+ schema: nodeDetailsSchema,
131
+ });
132
+ }
133
+ //# sourceMappingURL=node-details.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-details.tool.js","sourceRoot":"","sources":["../../src/tools/node-details.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { type INodeTypeDescription } from 'n8n-workflow';
2
+ import { z } from 'zod';
3
+ export declare function createNodeSearchTool(nodeTypes: INodeTypeDescription[]): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
4
+ queries: z.ZodArray<z.ZodObject<{
5
+ queryType: z.ZodEnum<["name", "subNodeSearch"]>;
6
+ query: z.ZodOptional<z.ZodString>;
7
+ connectionType: z.ZodOptional<z.ZodNativeEnum<{
8
+ readonly AiAgent: "ai_agent";
9
+ readonly AiChain: "ai_chain";
10
+ readonly AiDocument: "ai_document";
11
+ readonly AiEmbedding: "ai_embedding";
12
+ readonly AiLanguageModel: "ai_languageModel";
13
+ readonly AiMemory: "ai_memory";
14
+ readonly AiOutputParser: "ai_outputParser";
15
+ readonly AiRetriever: "ai_retriever";
16
+ readonly AiReranker: "ai_reranker";
17
+ readonly AiTextSplitter: "ai_textSplitter";
18
+ readonly AiTool: "ai_tool";
19
+ readonly AiVectorStore: "ai_vectorStore";
20
+ readonly Main: "main";
21
+ }>>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ queryType: "name" | "subNodeSearch";
24
+ connectionType?: "ai_agent" | "ai_chain" | "ai_document" | "ai_embedding" | "ai_languageModel" | "ai_memory" | "ai_outputParser" | "ai_retriever" | "ai_reranker" | "ai_textSplitter" | "ai_tool" | "ai_vectorStore" | "main" | undefined;
25
+ query?: string | undefined;
26
+ }, {
27
+ queryType: "name" | "subNodeSearch";
28
+ connectionType?: "ai_agent" | "ai_chain" | "ai_document" | "ai_embedding" | "ai_languageModel" | "ai_memory" | "ai_outputParser" | "ai_retriever" | "ai_reranker" | "ai_textSplitter" | "ai_tool" | "ai_vectorStore" | "main" | undefined;
29
+ query?: string | undefined;
30
+ }>, "many">;
31
+ }, "strip", z.ZodTypeAny, {
32
+ queries: {
33
+ queryType: "name" | "subNodeSearch";
34
+ connectionType?: "ai_agent" | "ai_chain" | "ai_document" | "ai_embedding" | "ai_languageModel" | "ai_memory" | "ai_outputParser" | "ai_retriever" | "ai_reranker" | "ai_textSplitter" | "ai_tool" | "ai_vectorStore" | "main" | undefined;
35
+ query?: string | undefined;
36
+ }[];
37
+ }, {
38
+ queries: {
39
+ queryType: "name" | "subNodeSearch";
40
+ connectionType?: "ai_agent" | "ai_chain" | "ai_document" | "ai_embedding" | "ai_languageModel" | "ai_memory" | "ai_outputParser" | "ai_retriever" | "ai_reranker" | "ai_textSplitter" | "ai_tool" | "ai_vectorStore" | "main" | undefined;
41
+ query?: string | undefined;
42
+ }[];
43
+ }>, unknown, {
44
+ queries: {
45
+ queryType: "name" | "subNodeSearch";
46
+ connectionType?: "ai_agent" | "ai_chain" | "ai_document" | "ai_embedding" | "ai_languageModel" | "ai_memory" | "ai_outputParser" | "ai_retriever" | "ai_reranker" | "ai_textSplitter" | "ai_tool" | "ai_vectorStore" | "main" | undefined;
47
+ query?: string | undefined;
48
+ }[];
49
+ }, import("@langchain/langgraph").Command<unknown>>;
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNodeSearchTool = createNodeSearchTool;
4
+ const tools_1 = require("@langchain/core/tools");
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const zod_1 = require("zod");
7
+ const errors_1 = require("../errors");
8
+ const node_search_engine_1 = require("./engines/node-search-engine");
9
+ const progress_1 = require("./helpers/progress");
10
+ const response_1 = require("./helpers/response");
11
+ const searchQuerySchema = zod_1.z.object({
12
+ queryType: zod_1.z.enum(['name', 'subNodeSearch']).describe('Type of search to perform'),
13
+ query: zod_1.z.string().optional().describe('Search term to filter results'),
14
+ connectionType: zod_1.z
15
+ .nativeEnum(n8n_workflow_1.NodeConnectionTypes)
16
+ .optional()
17
+ .describe('For subNodeSearch: connection type like ai_languageModel, ai_tool, etc.'),
18
+ });
19
+ const nodeSearchSchema = zod_1.z.object({
20
+ queries: zod_1.z
21
+ .array(searchQuerySchema)
22
+ .min(1)
23
+ .describe('Array of search queries to find different types of nodes'),
24
+ });
25
+ const SEARCH_LIMIT = 5;
26
+ function processQuery(query, searchEngine) {
27
+ if (query.queryType === 'name') {
28
+ const searchTerm = query.query;
29
+ if (!searchTerm) {
30
+ return {
31
+ searchResults: [],
32
+ searchIdentifier: '',
33
+ };
34
+ }
35
+ const searchResults = searchEngine.searchByName(searchTerm, SEARCH_LIMIT);
36
+ return {
37
+ searchResults,
38
+ searchIdentifier: searchTerm,
39
+ };
40
+ }
41
+ else {
42
+ const connectionType = query.connectionType;
43
+ if (!connectionType) {
44
+ return {
45
+ searchResults: [],
46
+ searchIdentifier: '',
47
+ };
48
+ }
49
+ const searchResults = searchEngine.searchByConnectionType(connectionType, SEARCH_LIMIT, query.query);
50
+ const searchIdentifier = query.query
51
+ ? `sub-nodes with ${connectionType} output matching "${query.query}"`
52
+ : `sub-nodes with ${connectionType} output`;
53
+ return {
54
+ searchResults,
55
+ searchIdentifier,
56
+ };
57
+ }
58
+ }
59
+ function buildResponseMessage(results, nodeTypes) {
60
+ const searchEngine = new node_search_engine_1.NodeSearchEngine(nodeTypes);
61
+ let responseContent = '';
62
+ for (const { query, results: searchResults } of results) {
63
+ if (responseContent)
64
+ responseContent += '\n\n';
65
+ if (searchResults.length === 0) {
66
+ responseContent += `No nodes found matching "${query}"`;
67
+ }
68
+ else {
69
+ responseContent += `Found ${searchResults.length} nodes matching "${query}":${searchResults
70
+ .map((node) => searchEngine.formatResult(node))
71
+ .join('')}`;
72
+ }
73
+ }
74
+ return responseContent;
75
+ }
76
+ function createNodeSearchTool(nodeTypes) {
77
+ return (0, tools_1.tool)((input, config) => {
78
+ const reporter = (0, progress_1.createProgressReporter)(config, 'search_nodes');
79
+ try {
80
+ const validatedInput = nodeSearchSchema.parse(input);
81
+ const { queries } = validatedInput;
82
+ reporter.start(validatedInput);
83
+ const allResults = [];
84
+ const searchEngine = new node_search_engine_1.NodeSearchEngine(nodeTypes);
85
+ const batchReporter = (0, progress_1.createBatchProgressReporter)(reporter, 'Searching nodes');
86
+ batchReporter.init(queries.length);
87
+ for (const searchQuery of queries) {
88
+ const { searchResults, searchIdentifier } = processQuery(searchQuery, searchEngine);
89
+ batchReporter.next(searchIdentifier);
90
+ allResults.push({
91
+ query: searchIdentifier,
92
+ results: searchResults,
93
+ });
94
+ }
95
+ batchReporter.complete();
96
+ const responseMessage = buildResponseMessage(allResults, nodeTypes);
97
+ const output = {
98
+ results: allResults,
99
+ totalResults: allResults.reduce((sum, r) => sum + r.results.length, 0),
100
+ message: responseMessage,
101
+ };
102
+ reporter.complete(output);
103
+ return (0, response_1.createSuccessResponse)(config, responseMessage);
104
+ }
105
+ catch (error) {
106
+ if (error instanceof zod_1.z.ZodError) {
107
+ const validationError = new errors_1.ValidationError('Invalid input parameters', {
108
+ extra: { errors: error.errors },
109
+ });
110
+ reporter.error(validationError);
111
+ return (0, response_1.createErrorResponse)(config, validationError);
112
+ }
113
+ const toolError = new errors_1.ToolExecutionError(error instanceof Error ? error.message : 'Unknown error occurred', {
114
+ toolName: 'search_nodes',
115
+ cause: error instanceof Error ? error : undefined,
116
+ });
117
+ reporter.error(toolError);
118
+ return (0, response_1.createErrorResponse)(config, toolError);
119
+ }
120
+ }, {
121
+ name: 'search_nodes',
122
+ description: `Search for n8n nodes by name or find sub-nodes that output specific connection types. Use this before adding nodes to find the correct node types.
123
+
124
+ Search modes:
125
+ 1. Name search (default): Search nodes by name/description
126
+ Example: { queryType: "name", query: "http" }
127
+
128
+ 2. Sub-node search: Find sub-nodes that output specific AI connection types
129
+ Example: { queryType: "subNodeSearch", connectionType: NodeConnectionTypes.AiTool }
130
+ With optional query filter: { queryType: "subNodeSearch", connectionType: NodeConnectionTypes.AiTool, query: "calculator" }
131
+ This finds sub-nodes (like "Calculator Tool") that can be connected to nodes accepting that connection type
132
+
133
+ Common AI connection types for sub-node search:
134
+ - NodeConnectionTypes.AiLanguageModel (finds LLM provider sub-nodes like "OpenAI Chat Model")
135
+ - NodeConnectionTypes.AiTool (finds tool sub-nodes like "Calculator Tool", "Code Tool")
136
+ - NodeConnectionTypes.AiMemory (finds memory sub-nodes like "Window Buffer Memory")
137
+ - NodeConnectionTypes.AiEmbedding (finds embedding sub-nodes like "Embeddings OpenAI")
138
+ - NodeConnectionTypes.AiVectorStore (finds vector store sub-nodes)
139
+ - NodeConnectionTypes.AiDocument (finds document loader sub-nodes)
140
+ - NodeConnectionTypes.AiTextSplitter (finds text splitter sub-nodes)
141
+
142
+ You can search for multiple different criteria at once by providing an array of queries.`,
143
+ schema: nodeSearchSchema,
144
+ });
145
+ }
146
+ //# sourceMappingURL=node-search.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-search.tool.js","sourceRoot":"","sources":["../../src/tools/node-search.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ChatPromptTemplate } from '@langchain/core/prompts';
2
+ export declare const mainAgentPrompt: ChatPromptTemplate<any, any>;