@n8n/ai-workflow-builder 1.22.1 → 1.23.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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/code-builder/code-builder-agent.js +2 -2
- package/dist/code-builder/code-builder-agent.js.map +1 -1
- package/dist/code-builder/handlers/chat-setup-handler.d.ts +1 -1
- package/dist/code-builder/handlers/chat-setup-handler.js +2 -2
- package/dist/code-builder/handlers/chat-setup-handler.js.map +1 -1
- package/dist/code-builder/index.d.ts +2 -5
- package/dist/code-builder/index.js +1 -5
- package/dist/code-builder/index.js.map +1 -1
- package/dist/code-builder/tools/code-builder-get.tool.d.ts +1 -13
- package/dist/code-builder/tools/code-builder-get.tool.js +2 -354
- package/dist/code-builder/tools/code-builder-get.tool.js.map +1 -1
- package/dist/code-builder/tools/code-builder-search.tool.d.ts +1 -10
- package/dist/code-builder/tools/code-builder-search.tool.js +2 -325
- package/dist/code-builder/tools/code-builder-search.tool.js.map +1 -1
- package/dist/code-builder/tools/get-suggested-nodes.tool.d.ts +1 -1
- package/dist/code-builder/tools/get-suggested-nodes.tool.js +3 -68
- package/dist/code-builder/tools/get-suggested-nodes.tool.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/subgraphs/discovery.subgraph.d.ts +1 -1
- package/dist/subgraphs/discovery.subgraph.js +3 -3
- package/dist/subgraphs/discovery.subgraph.js.map +1 -1
- package/dist/tools/node-details.tool.js +4 -4
- package/dist/tools/node-details.tool.js.map +1 -1
- package/dist/types/discovery-types.d.ts +1 -1
- package/package.json +11 -11
- package/dist/code-builder/engines/code-builder-node-search-engine.d.ts +0 -19
- package/dist/code-builder/engines/code-builder-node-search-engine.js +0 -243
- package/dist/code-builder/engines/code-builder-node-search-engine.js.map +0 -1
- package/dist/code-builder/tools/suggested-nodes-data.d.ts +0 -11
- package/dist/code-builder/tools/suggested-nodes-data.js +0 -236
- package/dist/code-builder/tools/suggested-nodes-data.js.map +0 -1
- package/dist/code-builder/utils/discriminator-utils.d.ts +0 -22
- package/dist/code-builder/utils/discriminator-utils.js +0 -85
- package/dist/code-builder/utils/discriminator-utils.js.map +0 -1
- package/dist/code-builder/utils/node-type-parser.d.ts +0 -18
- package/dist/code-builder/utils/node-type-parser.js +0 -67
- package/dist/code-builder/utils/node-type-parser.js.map +0 -1
- package/dist/utils/resource-operation-extractor.d.ts +0 -26
- package/dist/utils/resource-operation-extractor.js +0 -156
- package/dist/utils/resource-operation-extractor.js.map +0 -1
|
@@ -1,14 +1,5 @@
|
|
|
1
|
+
import { type CodeBuilderSearchToolOptions, type NodeTypeParser } from '@n8n/ai-utilities/node-catalog';
|
|
1
2
|
import { z } from 'zod';
|
|
2
|
-
import type { NodeTypeParser } from '../utils/node-type-parser';
|
|
3
|
-
export declare function formatNodeResult(nodeTypeParser: NodeTypeParser, nodeId: string, version?: number): string | undefined;
|
|
4
|
-
export interface CodeBuilderSearchToolOptions {
|
|
5
|
-
nodeFilter?: (nodeId: string) => boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface CodeBuilderSearchResult {
|
|
8
|
-
results: string;
|
|
9
|
-
queriesWithNoResults: string[];
|
|
10
|
-
}
|
|
11
|
-
export declare function searchCodeBuilderNodes(nodeTypeParser: NodeTypeParser, queries: string[], options?: CodeBuilderSearchToolOptions): CodeBuilderSearchResult;
|
|
12
3
|
export declare function createCodeBuilderSearchTool(nodeTypeParser: NodeTypeParser, options?: CodeBuilderSearchToolOptions): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
|
|
13
4
|
queries: z.ZodArray<z.ZodString, "many">;
|
|
14
5
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1,334 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatNodeResult = formatNodeResult;
|
|
4
|
-
exports.searchCodeBuilderNodes = searchCodeBuilderNodes;
|
|
5
3
|
exports.createCodeBuilderSearchTool = createCodeBuilderSearchTool;
|
|
6
4
|
const tools_1 = require("@langchain/core/tools");
|
|
7
|
-
const
|
|
5
|
+
const node_catalog_1 = require("@n8n/ai-utilities/node-catalog");
|
|
8
6
|
const zod_1 = require("zod");
|
|
9
|
-
const resource_operation_extractor_1 = require("../../utils/resource-operation-extractor");
|
|
10
|
-
const discriminator_utils_1 = require("../utils/discriminator-utils");
|
|
11
|
-
function formatBuilderHint(nodeTypeParser, nodeId, version) {
|
|
12
|
-
const nodeType = nodeTypeParser.getNodeType(nodeId, version);
|
|
13
|
-
const hint = nodeType?.builderHint?.searchHint;
|
|
14
|
-
if (!hint)
|
|
15
|
-
return '';
|
|
16
|
-
return ` @builderHint ${hint}`;
|
|
17
|
-
}
|
|
18
|
-
function getDirectRelatedNodeIds(nodeTypeParser, nodeId, version) {
|
|
19
|
-
const nodeType = nodeTypeParser.getNodeType(nodeId, version);
|
|
20
|
-
const relatedNodes = nodeType?.builderHint?.relatedNodes;
|
|
21
|
-
if (!relatedNodes)
|
|
22
|
-
return [];
|
|
23
|
-
return relatedNodes.map((r) => r.nodeType);
|
|
24
|
-
}
|
|
25
|
-
function getRelatedNodesWithHints(nodeTypeParser, nodeId, version, nodeFilter) {
|
|
26
|
-
const nodeType = nodeTypeParser.getNodeType(nodeId, version);
|
|
27
|
-
return nodeType?.builderHint?.relatedNodes?.filter((r) => nodeFilter?.(r.nodeType) ?? true);
|
|
28
|
-
}
|
|
29
|
-
function formatRelatedNodesWithHints(relatedNodes) {
|
|
30
|
-
if (relatedNodes.length === 0)
|
|
31
|
-
return '';
|
|
32
|
-
const lines = [' @relatedNodes'];
|
|
33
|
-
for (const related of relatedNodes) {
|
|
34
|
-
lines.push(` - ${related.nodeType}: "${related.relationHint}"`);
|
|
35
|
-
}
|
|
36
|
-
return lines.join('\n');
|
|
37
|
-
}
|
|
38
|
-
function collectAllRelatedNodeIds(nodeTypeParser, initialNodeIds, excludeNodeIds) {
|
|
39
|
-
const allRelated = new Set();
|
|
40
|
-
const visited = new Set();
|
|
41
|
-
for (const node of initialNodeIds) {
|
|
42
|
-
visited.add(node.id);
|
|
43
|
-
}
|
|
44
|
-
for (const id of excludeNodeIds) {
|
|
45
|
-
visited.add(id);
|
|
46
|
-
}
|
|
47
|
-
const queue = [...initialNodeIds];
|
|
48
|
-
while (queue.length > 0) {
|
|
49
|
-
const current = queue.shift();
|
|
50
|
-
const relatedIds = getDirectRelatedNodeIds(nodeTypeParser, current.id, current.version);
|
|
51
|
-
for (const relatedId of relatedIds) {
|
|
52
|
-
if (visited.has(relatedId)) {
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
visited.add(relatedId);
|
|
56
|
-
allRelated.add(relatedId);
|
|
57
|
-
const relatedNodeType = nodeTypeParser.getNodeType(relatedId);
|
|
58
|
-
if (relatedNodeType) {
|
|
59
|
-
const relatedVersion = Array.isArray(relatedNodeType.version)
|
|
60
|
-
? relatedNodeType.version[relatedNodeType.version.length - 1]
|
|
61
|
-
: relatedNodeType.version;
|
|
62
|
-
queue.push({ id: relatedId, version: relatedVersion });
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return allRelated;
|
|
67
|
-
}
|
|
68
|
-
const CONNECTION_TYPE_TO_SDK = {
|
|
69
|
-
ai_tool: { fn: 'tool()', subnodeField: 'subnodes.tools' },
|
|
70
|
-
ai_vectorStore: { fn: 'vectorStore()', subnodeField: 'subnodes.vectorStore' },
|
|
71
|
-
ai_retriever: { fn: 'retriever()', subnodeField: 'subnodes.retriever' },
|
|
72
|
-
ai_languageModel: { fn: 'languageModel()', subnodeField: 'subnodes.model' },
|
|
73
|
-
ai_memory: { fn: 'memory()', subnodeField: 'subnodes.memory' },
|
|
74
|
-
ai_outputParser: { fn: 'outputParser()', subnodeField: 'subnodes.outputParser' },
|
|
75
|
-
ai_embedding: { fn: 'embeddings()', subnodeField: 'subnodes.embeddings' },
|
|
76
|
-
ai_document: { fn: 'documentLoader()', subnodeField: 'subnodes.documentLoader' },
|
|
77
|
-
ai_textSplitter: { fn: 'textSplitter()', subnodeField: 'subnodes.textSplitter' },
|
|
78
|
-
};
|
|
79
|
-
const MODE_DISPLAY_NAME_OVERRIDES = {
|
|
80
|
-
retrieve: {
|
|
81
|
-
'Retrieve Documents (As Vector Store for Chain/Tool)': 'Retrieve Documents (As Vector Store for Chain)',
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
function formatModeForDisplay(mode, showSdkMapping) {
|
|
85
|
-
const lines = [];
|
|
86
|
-
const displayName = MODE_DISPLAY_NAME_OVERRIDES[mode.value]?.[mode.displayName] ?? mode.displayName;
|
|
87
|
-
let firstLine = ` - ${mode.value}: "${displayName}"`;
|
|
88
|
-
if (showSdkMapping) {
|
|
89
|
-
const sdkMapping = mode.outputConnectionType
|
|
90
|
-
? CONNECTION_TYPE_TO_SDK[mode.outputConnectionType]
|
|
91
|
-
: undefined;
|
|
92
|
-
if (sdkMapping) {
|
|
93
|
-
const fnWithMode = sdkMapping.fn.replace('()', `({ mode: '${mode.value}' })`);
|
|
94
|
-
firstLine += ` → use ${fnWithMode} for ${sdkMapping.subnodeField}`;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
firstLine += ' → use node()';
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
lines.push(firstLine);
|
|
101
|
-
if (mode.description) {
|
|
102
|
-
lines.push(` ${mode.description}`);
|
|
103
|
-
}
|
|
104
|
-
if (mode.builderHint) {
|
|
105
|
-
lines.push(` @builderHint ${mode.builderHint.propertyHint}`);
|
|
106
|
-
}
|
|
107
|
-
return lines.join('\n');
|
|
108
|
-
}
|
|
109
|
-
function getDiscriminatorInfo(nodeTypeParser, nodeId, version) {
|
|
110
|
-
const nodeType = nodeTypeParser.getNodeType(nodeId, version);
|
|
111
|
-
if (!nodeType) {
|
|
112
|
-
return { type: 'none' };
|
|
113
|
-
}
|
|
114
|
-
const resourceOps = (0, resource_operation_extractor_1.extractResourceOperations)(nodeType, version, undefined, {
|
|
115
|
-
fields: { description: true, builderHint: true },
|
|
116
|
-
});
|
|
117
|
-
if (resourceOps && resourceOps.resources.length > 0) {
|
|
118
|
-
const resources = resourceOps.resources
|
|
119
|
-
.filter((r) => r.value !== '__CUSTOM_API_CALL__')
|
|
120
|
-
.map((r) => ({
|
|
121
|
-
value: r.value,
|
|
122
|
-
description: r.description,
|
|
123
|
-
builderHint: r.builderHint,
|
|
124
|
-
operations: r.operations
|
|
125
|
-
.filter((op) => op.value !== '__CUSTOM_API_CALL__')
|
|
126
|
-
.map((op) => ({
|
|
127
|
-
value: op.value,
|
|
128
|
-
description: op.description,
|
|
129
|
-
builderHint: op.builderHint,
|
|
130
|
-
})),
|
|
131
|
-
}));
|
|
132
|
-
if (resources.length > 0) {
|
|
133
|
-
return { type: 'resource_operation', resources };
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const operationOnly = (0, discriminator_utils_1.extractOperationOnlyDiscriminator)(nodeType, version);
|
|
137
|
-
if (operationOnly && operationOnly.operations.length > 0) {
|
|
138
|
-
const operations = operationOnly.operations
|
|
139
|
-
.filter((op) => op.value !== '__CUSTOM_API_CALL__')
|
|
140
|
-
.map((op) => ({
|
|
141
|
-
value: op.value,
|
|
142
|
-
description: op.description,
|
|
143
|
-
builderHint: op.builderHint,
|
|
144
|
-
}));
|
|
145
|
-
if (operations.length > 0) {
|
|
146
|
-
return { type: 'operation', operations };
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
const modeInfo = (0, discriminator_utils_1.extractModeDiscriminator)(nodeType, version);
|
|
150
|
-
if (modeInfo && modeInfo.modes.length > 0) {
|
|
151
|
-
return { type: 'mode', modes: modeInfo.modes };
|
|
152
|
-
}
|
|
153
|
-
return { type: 'none' };
|
|
154
|
-
}
|
|
155
|
-
function formatResourceOperationLines(resources, nodeId) {
|
|
156
|
-
const lines = [' resource:'];
|
|
157
|
-
for (const resource of resources) {
|
|
158
|
-
lines.push(` - ${resource.value}:`);
|
|
159
|
-
if (resource.description) {
|
|
160
|
-
lines.push(` ${resource.description}`);
|
|
161
|
-
}
|
|
162
|
-
if (resource.builderHint) {
|
|
163
|
-
lines.push(` @builderHint ${resource.builderHint.propertyHint}`);
|
|
164
|
-
}
|
|
165
|
-
lines.push(' operations:');
|
|
166
|
-
for (const op of resource.operations) {
|
|
167
|
-
lines.push(` - ${op.value}`);
|
|
168
|
-
if (op.description) {
|
|
169
|
-
lines.push(` ${op.description}`);
|
|
170
|
-
}
|
|
171
|
-
if (op.builderHint) {
|
|
172
|
-
lines.push(` @builderHint ${op.builderHint.propertyHint}`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
const firstResource = resources[0];
|
|
177
|
-
const firstOp = firstResource?.operations[0]?.value || 'get';
|
|
178
|
-
lines.push('');
|
|
179
|
-
lines.push(' Use get_node_types with discriminators:');
|
|
180
|
-
lines.push(` get_node_types({ nodeIds: [{ nodeId: "${nodeId}", resource: "${firstResource?.value}", operation: "${firstOp}" }] })`);
|
|
181
|
-
return lines;
|
|
182
|
-
}
|
|
183
|
-
function formatOperationLines(operations, nodeId) {
|
|
184
|
-
const lines = [' operation:'];
|
|
185
|
-
for (const op of operations) {
|
|
186
|
-
lines.push(` - ${op.value}`);
|
|
187
|
-
if (op.description) {
|
|
188
|
-
lines.push(` ${op.description}`);
|
|
189
|
-
}
|
|
190
|
-
if (op.builderHint) {
|
|
191
|
-
lines.push(` @builderHint ${op.builderHint.propertyHint}`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
const firstOp = operations[0]?.value ?? 'default';
|
|
195
|
-
lines.push('');
|
|
196
|
-
lines.push(' Use get_node_types with discriminators:');
|
|
197
|
-
lines.push(` get_node_types({ nodeIds: [{ nodeId: "${nodeId}", operation: "${firstOp}" }] })`);
|
|
198
|
-
return lines;
|
|
199
|
-
}
|
|
200
|
-
function formatModeLines(modes, nodeId) {
|
|
201
|
-
const lines = [' mode:'];
|
|
202
|
-
const hasSubnodeModes = modes.some((m) => m.outputConnectionType);
|
|
203
|
-
for (const mode of modes) {
|
|
204
|
-
lines.push(formatModeForDisplay(mode, hasSubnodeModes));
|
|
205
|
-
}
|
|
206
|
-
const firstMode = modes[0];
|
|
207
|
-
lines.push('');
|
|
208
|
-
lines.push(' Use get_node_types with discriminators:');
|
|
209
|
-
lines.push(` get_node_types({ nodeIds: [{ nodeId: "${nodeId}", mode: "${firstMode.value}" }] })`);
|
|
210
|
-
return lines;
|
|
211
|
-
}
|
|
212
|
-
function formatDiscriminatorInfo(info, nodeId) {
|
|
213
|
-
if (info.type === 'none') {
|
|
214
|
-
return ' Discriminators: none (use node directly without resource/operation/mode)';
|
|
215
|
-
}
|
|
216
|
-
const lines = [' Discriminators:'];
|
|
217
|
-
if (info.type === 'resource_operation' && info.resources) {
|
|
218
|
-
lines.push(...formatResourceOperationLines(info.resources, nodeId));
|
|
219
|
-
}
|
|
220
|
-
else if (info.type === 'operation' && info.operations) {
|
|
221
|
-
lines.push(...formatOperationLines(info.operations, nodeId));
|
|
222
|
-
}
|
|
223
|
-
else if (info.type === 'mode' && info.modes) {
|
|
224
|
-
lines.push(...formatModeLines(info.modes, nodeId));
|
|
225
|
-
}
|
|
226
|
-
return lines.join('\n');
|
|
227
|
-
}
|
|
228
|
-
function formatNodeResult(nodeTypeParser, nodeId, version) {
|
|
229
|
-
const nodeType = nodeTypeParser.getNodeType(nodeId, version);
|
|
230
|
-
if (!nodeType)
|
|
231
|
-
return undefined;
|
|
232
|
-
const resolvedVersion = version ?? (Array.isArray(nodeType.version) ? Math.max(...nodeType.version) : nodeType.version);
|
|
233
|
-
const triggerTag = (0, n8n_workflow_1.isTriggerNodeType)(nodeId) ? ' [TRIGGER]' : '';
|
|
234
|
-
const basicInfo = `- ${nodeId}${triggerTag}\n Display Name: ${nodeType.displayName}\n Version: ${resolvedVersion}\n Description: ${nodeType.description}`;
|
|
235
|
-
const builderHint = formatBuilderHint(nodeTypeParser, nodeId, resolvedVersion);
|
|
236
|
-
const relatedNodesWithHints = getRelatedNodesWithHints(nodeTypeParser, nodeId, resolvedVersion);
|
|
237
|
-
const discInfo = getDiscriminatorInfo(nodeTypeParser, nodeId, resolvedVersion);
|
|
238
|
-
const discStr = formatDiscriminatorInfo(discInfo, nodeId);
|
|
239
|
-
const parts = [basicInfo];
|
|
240
|
-
if (builderHint)
|
|
241
|
-
parts.push(builderHint);
|
|
242
|
-
if (relatedNodesWithHints && relatedNodesWithHints.length > 0) {
|
|
243
|
-
const relatedNodesStr = formatRelatedNodesWithHints(relatedNodesWithHints);
|
|
244
|
-
if (relatedNodesStr)
|
|
245
|
-
parts.push(relatedNodesStr);
|
|
246
|
-
}
|
|
247
|
-
if (discStr)
|
|
248
|
-
parts.push(discStr);
|
|
249
|
-
return parts.join('\n');
|
|
250
|
-
}
|
|
251
|
-
function searchForQuery(nodeTypeParser, query, nodeFilter) {
|
|
252
|
-
const results = nodeTypeParser.searchNodeTypes(query, 5, nodeFilter);
|
|
253
|
-
if (results.length === 0) {
|
|
254
|
-
return {
|
|
255
|
-
result: `## "${query}"\nNo nodes found. Try a different search term.`,
|
|
256
|
-
hasResults: false,
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
const shownNodeIds = new Set(results.map((node) => node.id));
|
|
260
|
-
const allNodeLines = [];
|
|
261
|
-
let totalRelatedCount = 0;
|
|
262
|
-
for (const node of results) {
|
|
263
|
-
const triggerTag = node.isTrigger ? ' [TRIGGER]' : '';
|
|
264
|
-
const basicInfo = `- ${node.id}${triggerTag}\n Display Name: ${node.displayName}\n Version: ${node.version}\n Description: ${node.description}`;
|
|
265
|
-
const builderHint = formatBuilderHint(nodeTypeParser, node.id, node.version);
|
|
266
|
-
const relatedNodesWithHints = getRelatedNodesWithHints(nodeTypeParser, node.id, node.version, nodeFilter);
|
|
267
|
-
const discInfo = getDiscriminatorInfo(nodeTypeParser, node.id, node.version);
|
|
268
|
-
const discStr = formatDiscriminatorInfo(discInfo, node.id);
|
|
269
|
-
const parts = [basicInfo];
|
|
270
|
-
if (builderHint)
|
|
271
|
-
parts.push(builderHint);
|
|
272
|
-
if (relatedNodesWithHints && relatedNodesWithHints.length > 0) {
|
|
273
|
-
const relatedNodesStr = formatRelatedNodesWithHints(relatedNodesWithHints);
|
|
274
|
-
if (relatedNodesStr)
|
|
275
|
-
parts.push(relatedNodesStr);
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
const relatedNodeIds = collectAllRelatedNodeIds(nodeTypeParser, [{ id: node.id, version: node.version }], shownNodeIds);
|
|
279
|
-
if (discStr)
|
|
280
|
-
parts.push(discStr);
|
|
281
|
-
allNodeLines.push(parts.join('\n'));
|
|
282
|
-
for (const relatedId of relatedNodeIds) {
|
|
283
|
-
if (nodeFilter && !nodeFilter(relatedId))
|
|
284
|
-
continue;
|
|
285
|
-
const nodeType = nodeTypeParser.getNodeType(relatedId);
|
|
286
|
-
if (nodeType) {
|
|
287
|
-
const version = Array.isArray(nodeType.version)
|
|
288
|
-
? nodeType.version[nodeType.version.length - 1]
|
|
289
|
-
: nodeType.version;
|
|
290
|
-
const relatedTriggerTag = (0, n8n_workflow_1.isTriggerNodeType)(relatedId) ? ' [TRIGGER]' : '';
|
|
291
|
-
const relatedBasicInfo = `- ${relatedId}${relatedTriggerTag} [RELATED]\n Display Name: ${nodeType.displayName}\n Version: ${version}\n Description: ${nodeType.description}`;
|
|
292
|
-
const relatedBuilderHint = formatBuilderHint(nodeTypeParser, relatedId, version);
|
|
293
|
-
const relatedDiscInfo = getDiscriminatorInfo(nodeTypeParser, relatedId, version);
|
|
294
|
-
const relatedDiscStr = formatDiscriminatorInfo(relatedDiscInfo, relatedId);
|
|
295
|
-
const relatedParts = [relatedBasicInfo];
|
|
296
|
-
if (relatedBuilderHint)
|
|
297
|
-
relatedParts.push(relatedBuilderHint);
|
|
298
|
-
if (relatedDiscStr)
|
|
299
|
-
relatedParts.push(relatedDiscStr);
|
|
300
|
-
allNodeLines.push(relatedParts.join('\n'));
|
|
301
|
-
shownNodeIds.add(relatedId);
|
|
302
|
-
totalRelatedCount++;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
continue;
|
|
306
|
-
}
|
|
307
|
-
if (discStr)
|
|
308
|
-
parts.push(discStr);
|
|
309
|
-
allNodeLines.push(parts.join('\n'));
|
|
310
|
-
}
|
|
311
|
-
const countSuffix = totalRelatedCount > 0 ? ` (+ ${totalRelatedCount} related)` : '';
|
|
312
|
-
return {
|
|
313
|
-
result: `## "${query}"\nFound ${results.length} nodes${countSuffix}:\n\n${allNodeLines.join('\n\n')}`,
|
|
314
|
-
hasResults: true,
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
function searchCodeBuilderNodes(nodeTypeParser, queries, options) {
|
|
318
|
-
const { nodeFilter } = options ?? {};
|
|
319
|
-
const searchResults = queries.map((query) => ({
|
|
320
|
-
query,
|
|
321
|
-
...searchForQuery(nodeTypeParser, query, nodeFilter),
|
|
322
|
-
}));
|
|
323
|
-
return {
|
|
324
|
-
results: searchResults.map(({ result }) => result).join('\n\n---\n\n'),
|
|
325
|
-
queriesWithNoResults: searchResults
|
|
326
|
-
.filter(({ hasResults }) => !hasResults)
|
|
327
|
-
.map(({ query }) => query),
|
|
328
|
-
};
|
|
329
|
-
}
|
|
330
7
|
function createCodeBuilderSearchTool(nodeTypeParser, options) {
|
|
331
|
-
return (0, tools_1.tool)(async (input) => searchCodeBuilderNodes(nodeTypeParser, input.queries, options).results, {
|
|
8
|
+
return (0, tools_1.tool)(async (input) => (0, node_catalog_1.searchCodeBuilderNodes)(nodeTypeParser, input.queries, options).results, {
|
|
332
9
|
name: 'search_nodes',
|
|
333
10
|
description: 'Search for n8n nodes by name or service. Accepts multiple search queries and returns separate result lists for each. Use this when you need to find nodes for specific integrations or services (e.g., ["salesforce", "http", "gmail"]).',
|
|
334
11
|
schema: zod_1.z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-builder-search.tool.js","sourceRoot":"","sources":["../../../src/code-builder/tools/code-builder-search.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-builder-search.tool.js","sourceRoot":"","sources":["../../../src/code-builder/tools/code-builder-search.tool.ts"],"names":[],"mappings":";;AAoBA,kEAkBC;AA/BD,iDAA6C;AAC7C,iEAIwC;AACxC,6BAAwB;AAOxB,SAAgB,2BAA2B,CAC1C,cAA8B,EAC9B,OAAsC;IAEtC,OAAO,IAAA,YAAI,EACV,KAAK,EAAE,KAA4B,EAAE,EAAE,CACtC,IAAA,qCAAsB,EAAC,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EACvE;QACC,IAAI,EAAE,cAAc;QACpB,WAAW,EACV,0OAA0O;QAC3O,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,OAAC;iBACR,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,iEAAiE,CAAC;SAC7E,CAAC;KACF,CACD,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DynamicStructuredTool } from '@langchain/core/tools';
|
|
2
|
+
import { type NodeTypeParser } from '@n8n/ai-utilities/node-catalog';
|
|
2
3
|
import { z } from 'zod';
|
|
3
|
-
import type { NodeTypeParser } from '../utils/node-type-parser';
|
|
4
4
|
export declare function createGetSuggestedNodesTool(nodeTypeParser: NodeTypeParser): DynamicStructuredTool<z.ZodObject<{
|
|
5
5
|
categories: z.ZodArray<z.ZodString, "many">;
|
|
6
6
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -2,87 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createGetSuggestedNodesTool = createGetSuggestedNodesTool;
|
|
4
4
|
const tools_1 = require("@langchain/core/tools");
|
|
5
|
+
const node_catalog_1 = require("@n8n/ai-utilities/node-catalog");
|
|
5
6
|
const zod_1 = require("zod");
|
|
6
|
-
const suggested_nodes_data_1 = require("./suggested-nodes-data");
|
|
7
7
|
const GetSuggestedNodesSchema = zod_1.z.object({
|
|
8
8
|
categories: zod_1.z
|
|
9
9
|
.array(zod_1.z.string())
|
|
10
10
|
.describe('List of workflow technique categories to get node suggestions for'),
|
|
11
11
|
});
|
|
12
|
-
function formatCategoryResult(nodeTypeParser, category) {
|
|
13
|
-
const categoryData = suggested_nodes_data_1.suggestedNodesData[category];
|
|
14
|
-
if (!categoryData) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
const nodes = categoryData.nodes.map((node) => {
|
|
18
|
-
const nodeType = nodeTypeParser.getNodeType(node.name);
|
|
19
|
-
if (nodeType) {
|
|
20
|
-
return {
|
|
21
|
-
name: node.name,
|
|
22
|
-
displayName: nodeType.displayName,
|
|
23
|
-
description: nodeType.description,
|
|
24
|
-
note: node.note,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
return {
|
|
28
|
-
name: node.name,
|
|
29
|
-
displayName: '(not found)',
|
|
30
|
-
description: '(not found)',
|
|
31
|
-
note: node.note,
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
return {
|
|
35
|
-
category,
|
|
36
|
-
patternHint: categoryData.patternHint,
|
|
37
|
-
nodes,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function formatOutput(results) {
|
|
41
|
-
const lines = [];
|
|
42
|
-
for (const result of results) {
|
|
43
|
-
if (!result) {
|
|
44
|
-
lines.push('Category not found\n');
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
lines.push(`## ${result.category}`);
|
|
48
|
-
lines.push(`patternHint: ${result.patternHint}`);
|
|
49
|
-
lines.push('');
|
|
50
|
-
lines.push('Suggested nodes:');
|
|
51
|
-
for (const node of result.nodes) {
|
|
52
|
-
lines.push(`- ${node.name}`);
|
|
53
|
-
lines.push(` displayName: ${node.displayName}`);
|
|
54
|
-
lines.push(` description: ${node.description}`);
|
|
55
|
-
if (node.note) {
|
|
56
|
-
lines.push(` note: ${node.note}`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
lines.push('');
|
|
60
|
-
}
|
|
61
|
-
return lines.join('\n');
|
|
62
|
-
}
|
|
63
12
|
function createGetSuggestedNodesTool(nodeTypeParser) {
|
|
64
13
|
return new tools_1.DynamicStructuredTool({
|
|
65
14
|
name: 'get_suggested_nodes',
|
|
66
15
|
description: `Returns curated node recommendations by workflow technique category.
|
|
67
16
|
|
|
68
|
-
Available categories: ${
|
|
17
|
+
Available categories: ${node_catalog_1.categoryList.join(', ')}`,
|
|
69
18
|
schema: GetSuggestedNodesSchema,
|
|
70
19
|
func: async (input) => {
|
|
71
|
-
|
|
72
|
-
for (const category of input.categories) {
|
|
73
|
-
const result = formatCategoryResult(nodeTypeParser, category);
|
|
74
|
-
if (result) {
|
|
75
|
-
results.push(result);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
results.push({
|
|
79
|
-
category,
|
|
80
|
-
patternHint: 'Category not found',
|
|
81
|
-
nodes: [],
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return formatOutput(results);
|
|
20
|
+
return (0, node_catalog_1.getSuggestedNodes)(nodeTypeParser, input.categories);
|
|
86
21
|
},
|
|
87
22
|
});
|
|
88
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-suggested-nodes.tool.js","sourceRoot":"","sources":["../../../src/code-builder/tools/get-suggested-nodes.tool.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"get-suggested-nodes.tool.js","sourceRoot":"","sources":["../../../src/code-builder/tools/get-suggested-nodes.tool.ts"],"names":[],"mappings":";;AAsBA,kEAWC;AA3BD,iDAA8D;AAC9D,iEAIwC;AACxC,6BAAwB;AAExB,MAAM,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,OAAC;SACX,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,CAAC,mEAAmE,CAAC;CAC/E,CAAC,CAAC;AAIH,SAAgB,2BAA2B,CAAC,cAA8B;IACzE,OAAO,IAAI,6BAAqB,CAAC;QAChC,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE;;wBAES,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC/C,MAAM,EAAE,uBAAuB;QAC/B,IAAI,EAAE,KAAK,EAAE,KAA6B,EAAmB,EAAE;YAC9D,OAAO,IAAA,gCAAiB,EAAC,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { CodeBuilderAgent, type CodeBuilderAgentConfig } from './code-builder';
|
|
|
6
6
|
export { CodeWorkflowBuilder, type CodeWorkflowBuilderConfig } from './code-builder';
|
|
7
7
|
export { AssistantHandler } from './assistant';
|
|
8
8
|
export type { AssistantContext, AssistantResult, AssistantSdkClient, StreamWriter, } from './assistant';
|
|
9
|
-
export {
|
|
10
|
-
export type {
|
|
9
|
+
export { ParseValidateHandler, WorkflowCodeParseError, createCodeBuilderSearchTool, createCodeBuilderGetTool, createGetSuggestedNodesTool, stripImportStatements, SDK_IMPORT_STATEMENT, EXPRESSION_REFERENCE, WORKFLOW_PATTERNS, ADDITIONAL_FUNCTIONS, WORKFLOW_RULES, CODE_BUILDER_SEARCH_NODES_TOOL, CODE_BUILDER_GET_NODE_TYPES_TOOL, CODE_BUILDER_GET_SUGGESTED_NODES_TOOL, CODE_BUILDER_VALIDATE_TOOL, MCP_GET_SDK_REFERENCE_TOOL, MCP_CREATE_WORKFLOW_FROM_CODE_TOOL, MCP_ARCHIVE_WORKFLOW_TOOL, MCP_UPDATE_WORKFLOW_TOOL, } from './code-builder';
|
|
10
|
+
export type { ParseAndValidateResult, ValidationWarning } from './code-builder';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.MCP_UPDATE_WORKFLOW_TOOL = exports.MCP_ARCHIVE_WORKFLOW_TOOL = exports.MCP_CREATE_WORKFLOW_FROM_CODE_TOOL = exports.MCP_GET_SDK_REFERENCE_TOOL = exports.CODE_BUILDER_VALIDATE_TOOL = exports.CODE_BUILDER_GET_SUGGESTED_NODES_TOOL = exports.CODE_BUILDER_GET_NODE_TYPES_TOOL = exports.CODE_BUILDER_SEARCH_NODES_TOOL = exports.WORKFLOW_RULES = exports.ADDITIONAL_FUNCTIONS = exports.WORKFLOW_PATTERNS = exports.EXPRESSION_REFERENCE = exports.SDK_IMPORT_STATEMENT = exports.stripImportStatements = exports.createGetSuggestedNodesTool = exports.
|
|
17
|
+
exports.MCP_UPDATE_WORKFLOW_TOOL = exports.MCP_ARCHIVE_WORKFLOW_TOOL = exports.MCP_CREATE_WORKFLOW_FROM_CODE_TOOL = exports.MCP_GET_SDK_REFERENCE_TOOL = exports.CODE_BUILDER_VALIDATE_TOOL = exports.CODE_BUILDER_GET_SUGGESTED_NODES_TOOL = exports.CODE_BUILDER_GET_NODE_TYPES_TOOL = exports.CODE_BUILDER_SEARCH_NODES_TOOL = exports.WORKFLOW_RULES = exports.ADDITIONAL_FUNCTIONS = exports.WORKFLOW_PATTERNS = exports.EXPRESSION_REFERENCE = exports.SDK_IMPORT_STATEMENT = exports.stripImportStatements = exports.createGetSuggestedNodesTool = exports.createCodeBuilderGetTool = exports.createCodeBuilderSearchTool = exports.WorkflowCodeParseError = exports.ParseValidateHandler = exports.AssistantHandler = exports.CodeWorkflowBuilder = exports.CodeBuilderAgent = exports.resolveConnections = void 0;
|
|
18
18
|
__exportStar(require("./ai-workflow-builder-agent.service"), exports);
|
|
19
19
|
__exportStar(require("./types"), exports);
|
|
20
20
|
__exportStar(require("./workflow-state"), exports);
|
|
@@ -27,13 +27,10 @@ Object.defineProperty(exports, "CodeWorkflowBuilder", { enumerable: true, get: f
|
|
|
27
27
|
var assistant_1 = require("./assistant");
|
|
28
28
|
Object.defineProperty(exports, "AssistantHandler", { enumerable: true, get: function () { return assistant_1.AssistantHandler; } });
|
|
29
29
|
var code_builder_3 = require("./code-builder");
|
|
30
|
-
Object.defineProperty(exports, "NodeTypeParser", { enumerable: true, get: function () { return code_builder_3.NodeTypeParser; } });
|
|
31
30
|
Object.defineProperty(exports, "ParseValidateHandler", { enumerable: true, get: function () { return code_builder_3.ParseValidateHandler; } });
|
|
32
31
|
Object.defineProperty(exports, "WorkflowCodeParseError", { enumerable: true, get: function () { return code_builder_3.WorkflowCodeParseError; } });
|
|
33
32
|
Object.defineProperty(exports, "createCodeBuilderSearchTool", { enumerable: true, get: function () { return code_builder_3.createCodeBuilderSearchTool; } });
|
|
34
|
-
Object.defineProperty(exports, "searchCodeBuilderNodes", { enumerable: true, get: function () { return code_builder_3.searchCodeBuilderNodes; } });
|
|
35
33
|
Object.defineProperty(exports, "createCodeBuilderGetTool", { enumerable: true, get: function () { return code_builder_3.createCodeBuilderGetTool; } });
|
|
36
|
-
Object.defineProperty(exports, "getNodeTypes", { enumerable: true, get: function () { return code_builder_3.getNodeTypes; } });
|
|
37
34
|
Object.defineProperty(exports, "createGetSuggestedNodesTool", { enumerable: true, get: function () { return code_builder_3.createGetSuggestedNodesTool; } });
|
|
38
35
|
Object.defineProperty(exports, "stripImportStatements", { enumerable: true, get: function () { return code_builder_3.stripImportStatements; } });
|
|
39
36
|
Object.defineProperty(exports, "SDK_IMPORT_STATEMENT", { enumerable: true, get: function () { return code_builder_3.SDK_IMPORT_STATEMENT; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,0CAAwB;AACxB,mDAAiC;AACjC,8EAA4E;AAAnE,yHAAA,kBAAkB,OAAA;AAC3B,+CAA+E;AAAtE,gHAAA,gBAAgB,OAAA;AACzB,+CAAqF;AAA5E,mHAAA,mBAAmB,OAAA;AAC5B,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AASzB,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,0CAAwB;AACxB,mDAAiC;AACjC,8EAA4E;AAAnE,yHAAA,kBAAkB,OAAA;AAC3B,+CAA+E;AAAtE,gHAAA,gBAAgB,OAAA;AACzB,+CAAqF;AAA5E,mHAAA,mBAAmB,OAAA;AAC5B,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AASzB,+CAoBwB;AAnBvB,oHAAA,oBAAoB,OAAA;AACpB,sHAAA,sBAAsB,OAAA;AACtB,2HAAA,2BAA2B,OAAA;AAC3B,wHAAA,wBAAwB,OAAA;AACxB,2HAAA,2BAA2B,OAAA;AAC3B,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,oBAAoB,OAAA;AACpB,oHAAA,oBAAoB,OAAA;AACpB,iHAAA,iBAAiB,OAAA;AACjB,oHAAA,oBAAoB,OAAA;AACpB,8GAAA,cAAc,OAAA;AACd,8HAAA,8BAA8B,OAAA;AAC9B,gIAAA,gCAAgC,OAAA;AAChC,qIAAA,qCAAqC,OAAA;AACrC,0HAAA,0BAA0B,OAAA;AAC1B,0HAAA,0BAA0B,OAAA;AAC1B,kIAAA,kCAAkC,OAAA;AAClC,yHAAA,yBAAyB,OAAA;AACzB,wHAAA,wBAAwB,OAAA"}
|
|
@@ -2,6 +2,7 @@ import type { BaseChatModel } from '@langchain/core/language_models/chat_models'
|
|
|
2
2
|
import type { BaseMessage, AIMessage } from '@langchain/core/messages';
|
|
3
3
|
import { HumanMessage } from '@langchain/core/messages';
|
|
4
4
|
import { type BaseCheckpointSaver } from '@langchain/langgraph';
|
|
5
|
+
import { type ResourceOperationInfo } from '@n8n/ai-utilities/node-catalog';
|
|
5
6
|
import type { Logger } from '@n8n/backend-common';
|
|
6
7
|
import type { INodeTypeDescription } from 'n8n-workflow';
|
|
7
8
|
import type { ParentGraphState } from '../parent-graph-state';
|
|
@@ -10,7 +11,6 @@ import type { DiscoveryContext } from '../types/discovery-types';
|
|
|
10
11
|
import type { PlanDecision, PlanOutput } from '../types/planning';
|
|
11
12
|
import type { WorkflowMetadata } from '../types/tools';
|
|
12
13
|
import type { SimpleWorkflow } from '../types/workflow';
|
|
13
|
-
import { type ResourceOperationInfo } from '../utils/resource-operation-extractor';
|
|
14
14
|
import type { BuilderFeatureFlags } from '../workflow-builder-agent';
|
|
15
15
|
import { BaseSubgraph } from './subgraph-interface';
|
|
16
16
|
export declare const DiscoverySubgraphState: import("@langchain/langgraph").AnnotationRoot<{
|
|
@@ -5,6 +5,7 @@ const messages_1 = require("@langchain/core/messages");
|
|
|
5
5
|
const prompts_1 = require("@langchain/core/prompts");
|
|
6
6
|
const tools_1 = require("@langchain/core/tools");
|
|
7
7
|
const langgraph_1 = require("@langchain/langgraph");
|
|
8
|
+
const node_catalog_1 = require("@n8n/ai-utilities/node-catalog");
|
|
8
9
|
const zod_1 = require("zod");
|
|
9
10
|
const planner_agent_1 = require("../agents/planner.agent");
|
|
10
11
|
const errors_1 = require("../errors");
|
|
@@ -19,7 +20,6 @@ const web_fetch_tool_1 = require("../tools/web-fetch.tool");
|
|
|
19
20
|
const coordination_1 = require("../types/coordination");
|
|
20
21
|
const cache_control_1 = require("../utils/cache-control");
|
|
21
22
|
const context_builders_1 = require("../utils/context-builders");
|
|
22
|
-
const resource_operation_extractor_1 = require("../utils/resource-operation-extractor");
|
|
23
23
|
const state_reducers_1 = require("../utils/state-reducers");
|
|
24
24
|
const subgraph_helpers_1 = require("../utils/subgraph-helpers");
|
|
25
25
|
const subgraph_interface_1 = require("./subgraph-interface");
|
|
@@ -372,7 +372,7 @@ class DiscoverySubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
372
372
|
}
|
|
373
373
|
const existingCache = state.resourceOperationCache ?? {};
|
|
374
374
|
const hydratedNodesFound = output.nodesFound.map((node) => {
|
|
375
|
-
const cacheKey = (0,
|
|
375
|
+
const cacheKey = (0, node_catalog_1.createResourceCacheKey)(node.nodeName, node.version);
|
|
376
376
|
if (cacheKey in existingCache) {
|
|
377
377
|
const cached = existingCache[cacheKey];
|
|
378
378
|
if (cached) {
|
|
@@ -391,7 +391,7 @@ class DiscoverySubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
391
391
|
});
|
|
392
392
|
return node;
|
|
393
393
|
}
|
|
394
|
-
const resourceOpInfo = (0,
|
|
394
|
+
const resourceOpInfo = (0, node_catalog_1.extractResourceOperations)(nodeType, node.version, this.logger);
|
|
395
395
|
if (!resourceOpInfo) {
|
|
396
396
|
return node;
|
|
397
397
|
}
|