@n8n/ai-workflow-builder 0.18.0 → 0.20.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/agents/workflow-planner-agent.d.ts +58 -0
- package/dist/agents/workflow-planner-agent.js +269 -0
- package/dist/agents/workflow-planner-agent.js.map +1 -0
- package/dist/ai-workflow-builder-agent.service.d.ts +2 -1
- package/dist/ai-workflow-builder-agent.service.js +6 -3
- package/dist/ai-workflow-builder-agent.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/chains/parameter-updater.js +5 -1
- package/dist/chains/parameter-updater.js.map +1 -1
- package/dist/chains/prompts/instance-url.d.ts +1 -0
- package/dist/chains/prompts/instance-url.js +16 -0
- package/dist/chains/prompts/instance-url.js.map +1 -0
- package/dist/chains/prompts/prompt-builder.js +1 -1
- package/dist/chains/prompts/prompt-builder.js.map +1 -1
- package/dist/chains/workflow-name.js +1 -1
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +8 -1
- package/dist/constants.js.map +1 -1
- package/dist/errors/index.d.ts +7 -0
- package/dist/errors/index.js +16 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/llm-config.js +2 -1
- package/dist/llm-config.js.map +1 -1
- package/dist/tools/add-node.tool.d.ts +38 -34
- package/dist/tools/add-node.tool.js +17 -2
- package/dist/tools/add-node.tool.js.map +1 -1
- package/dist/tools/connect-nodes.tool.d.ts +29 -26
- package/dist/tools/connect-nodes.tool.js +7 -2
- package/dist/tools/connect-nodes.tool.js.map +1 -1
- package/dist/tools/get-node-parameter.tool.d.ts +18 -0
- package/dist/tools/get-node-parameter.tool.js +109 -0
- package/dist/tools/get-node-parameter.tool.js.map +1 -0
- package/dist/tools/helpers/progress.d.ts +1 -1
- package/dist/tools/helpers/progress.js +14 -2
- package/dist/tools/helpers/progress.js.map +1 -1
- package/dist/tools/helpers/validation.d.ts +1 -0
- package/dist/tools/helpers/validation.js +13 -0
- package/dist/tools/helpers/validation.js.map +1 -1
- package/dist/tools/node-details.tool.d.ts +20 -17
- package/dist/tools/node-details.tool.js +7 -2
- package/dist/tools/node-details.tool.js.map +1 -1
- package/dist/tools/node-search.tool.d.ts +54 -45
- package/dist/tools/node-search.tool.js +7 -2
- package/dist/tools/node-search.tool.js.map +1 -1
- package/dist/tools/prompts/main-agent.prompt.d.ts +2 -0
- package/dist/tools/prompts/main-agent.prompt.js +96 -41
- package/dist/tools/prompts/main-agent.prompt.js.map +1 -1
- package/dist/tools/remove-node.tool.d.ts +14 -11
- package/dist/tools/remove-node.tool.js +7 -2
- package/dist/tools/remove-node.tool.js.map +1 -1
- package/dist/tools/update-node-parameters.tool.d.ts +19 -16
- package/dist/tools/update-node-parameters.tool.js +60 -38
- package/dist/tools/update-node-parameters.tool.js.map +1 -1
- package/dist/types/index.d.ts +8 -8
- package/dist/types/index.js +0 -22
- package/dist/types/index.js.map +1 -1
- package/dist/types/langchain.d.ts +2 -0
- package/dist/types/langchain.js +7 -0
- package/dist/types/langchain.js.map +1 -0
- package/dist/types/messages.d.ts +1 -7
- package/dist/types/streaming.d.ts +6 -1
- package/dist/types/tools.d.ts +8 -1
- package/dist/utils/stream-processor.d.ts +7 -1
- package/dist/utils/stream-processor.js +121 -63
- package/dist/utils/stream-processor.js.map +1 -1
- package/dist/utils/token-usage.d.ts +14 -0
- package/dist/utils/token-usage.js +27 -0
- package/dist/utils/token-usage.js.map +1 -1
- package/dist/utils/trim-workflow-context.d.ts +2 -0
- package/dist/utils/trim-workflow-context.js +53 -0
- package/dist/utils/trim-workflow-context.js.map +1 -0
- package/dist/workflow-builder-agent.d.ts +11 -1
- package/dist/workflow-builder-agent.js +205 -24
- package/dist/workflow-builder-agent.js.map +1 -1
- package/dist/workflow-state.d.ts +17 -0
- package/dist/workflow-state.js +12 -0
- package/dist/workflow-state.js.map +1 -1
- package/package.json +9 -7
- package/dist/chains/planner.d.ts +0 -4
- package/dist/chains/planner.js +0 -87
- package/dist/chains/planner.js.map +0 -1
|
@@ -3,9 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WorkflowBuilderAgent = void 0;
|
|
4
4
|
const messages_1 = require("@langchain/core/messages");
|
|
5
5
|
const langgraph_1 = require("@langchain/langgraph");
|
|
6
|
-
const
|
|
6
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
7
|
const constants_1 = require("./constants");
|
|
8
|
+
const get_node_parameter_tool_1 = require("./tools/get-node-parameter.tool");
|
|
9
|
+
const trim_workflow_context_1 = require("./utils/trim-workflow-context");
|
|
10
|
+
const workflow_planner_agent_1 = require("./agents/workflow-planner-agent");
|
|
8
11
|
const conversation_compact_1 = require("./chains/conversation-compact");
|
|
12
|
+
const workflow_name_1 = require("./chains/workflow-name");
|
|
9
13
|
const errors_1 = require("./errors");
|
|
10
14
|
const add_node_tool_1 = require("./tools/add-node.tool");
|
|
11
15
|
const connect_nodes_tool_1 = require("./tools/connect-nodes.tool");
|
|
@@ -27,6 +31,7 @@ class WorkflowBuilderAgent {
|
|
|
27
31
|
logger;
|
|
28
32
|
tracer;
|
|
29
33
|
autoCompactThresholdTokens;
|
|
34
|
+
instanceUrl;
|
|
30
35
|
constructor(config) {
|
|
31
36
|
this.parsedNodeTypes = config.parsedNodeTypes;
|
|
32
37
|
this.llmSimpleTask = config.llmSimpleTask;
|
|
@@ -36,16 +41,22 @@ class WorkflowBuilderAgent {
|
|
|
36
41
|
this.tracer = config.tracer;
|
|
37
42
|
this.autoCompactThresholdTokens =
|
|
38
43
|
config.autoCompactThresholdTokens ?? constants_1.DEFAULT_AUTO_COMPACT_THRESHOLD_TOKENS;
|
|
44
|
+
this.instanceUrl = config.instanceUrl;
|
|
39
45
|
}
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
getBuilderTools() {
|
|
47
|
+
return [
|
|
42
48
|
(0, node_search_tool_1.createNodeSearchTool)(this.parsedNodeTypes),
|
|
43
49
|
(0, node_details_tool_1.createNodeDetailsTool)(this.parsedNodeTypes),
|
|
44
50
|
(0, add_node_tool_1.createAddNodeTool)(this.parsedNodeTypes),
|
|
45
51
|
(0, connect_nodes_tool_1.createConnectNodesTool)(this.parsedNodeTypes, this.logger),
|
|
46
52
|
(0, remove_node_tool_1.createRemoveNodeTool)(this.logger),
|
|
47
|
-
(0, update_node_parameters_tool_1.createUpdateNodeParametersTool)(this.parsedNodeTypes, this.llmComplexTask, this.logger),
|
|
53
|
+
(0, update_node_parameters_tool_1.createUpdateNodeParametersTool)(this.parsedNodeTypes, this.llmComplexTask, this.logger, this.instanceUrl),
|
|
54
|
+
(0, get_node_parameter_tool_1.createGetNodeParameterTool)(),
|
|
48
55
|
];
|
|
56
|
+
}
|
|
57
|
+
createWorkflow() {
|
|
58
|
+
const builderTools = this.getBuilderTools();
|
|
59
|
+
const tools = builderTools.map((bt) => bt.tool);
|
|
49
60
|
const toolMap = new Map(tools.map((tool) => [tool.name, tool]));
|
|
50
61
|
const callModel = async (state) => {
|
|
51
62
|
if (!this.llmSimpleTask) {
|
|
@@ -58,9 +69,16 @@ class WorkflowBuilderAgent {
|
|
|
58
69
|
}
|
|
59
70
|
const prompt = await main_agent_prompt_1.mainAgentPrompt.invoke({
|
|
60
71
|
...state,
|
|
72
|
+
workflowJSON: (0, trim_workflow_context_1.trimWorkflowJSON)(state.workflowJSON),
|
|
61
73
|
executionData: state.workflowContext?.executionData ?? {},
|
|
62
74
|
executionSchema: state.workflowContext?.executionSchema ?? [],
|
|
75
|
+
workflowPlan: (0, main_agent_prompt_1.planFormatter)(state.workflowPlan),
|
|
76
|
+
instanceUrl: this.instanceUrl,
|
|
63
77
|
});
|
|
78
|
+
const estimatedTokens = (0, token_usage_1.estimateTokenCountFromMessages)(prompt.messages);
|
|
79
|
+
if (estimatedTokens > constants_1.MAX_INPUT_TOKENS) {
|
|
80
|
+
throw new errors_1.WorkflowStateError('The current conversation and workflow state is too large to process. Try to simplify your workflow by breaking it into smaller parts.');
|
|
81
|
+
}
|
|
64
82
|
const response = await this.llmSimpleTask.bindTools(tools).invoke(prompt);
|
|
65
83
|
return { messages: [response] };
|
|
66
84
|
};
|
|
@@ -78,8 +96,94 @@ class WorkflowBuilderAgent {
|
|
|
78
96
|
});
|
|
79
97
|
return tokensUsed > this.autoCompactThresholdTokens;
|
|
80
98
|
};
|
|
99
|
+
const createPlan = async (state) => {
|
|
100
|
+
const { messages } = state;
|
|
101
|
+
const lastHumanMessage = messages.findLast((m) => m instanceof messages_1.HumanMessage);
|
|
102
|
+
if (typeof lastHumanMessage.content !== 'string') {
|
|
103
|
+
throw new errors_1.ValidationError('Invalid message content for planning');
|
|
104
|
+
}
|
|
105
|
+
const plannerAgent = (0, workflow_planner_agent_1.createWorkflowPlannerAgent)(this.llmSimpleTask, this.parsedNodeTypes);
|
|
106
|
+
const plannerResult = await plannerAgent.plan(lastHumanMessage.content);
|
|
107
|
+
if ('plan' in plannerResult) {
|
|
108
|
+
const { plan, toolMessages } = plannerResult;
|
|
109
|
+
this.logger?.debug('Generated workflow plan: ' + JSON.stringify(plan, null, 2));
|
|
110
|
+
return {
|
|
111
|
+
workflowPlan: plan,
|
|
112
|
+
planStatus: 'pending',
|
|
113
|
+
messages: toolMessages,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
this.logger?.debug('Planner returned text response: ' + plannerResult.text);
|
|
117
|
+
return {
|
|
118
|
+
messages: [
|
|
119
|
+
new messages_1.AIMessage({
|
|
120
|
+
content: plannerResult.text,
|
|
121
|
+
}),
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
const reviewPlan = async (state) => {
|
|
126
|
+
const { workflowPlan } = state;
|
|
127
|
+
if (!workflowPlan) {
|
|
128
|
+
throw new errors_1.ValidationError('No workflow plan to review');
|
|
129
|
+
}
|
|
130
|
+
const userResponse = (0, langgraph_1.interrupt)({
|
|
131
|
+
plan: workflowPlan.plan,
|
|
132
|
+
message: workflowPlan.intro,
|
|
133
|
+
});
|
|
134
|
+
if (userResponse.action === 'approve') {
|
|
135
|
+
return {
|
|
136
|
+
planStatus: 'approved',
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
else if (userResponse.action === 'adjust') {
|
|
140
|
+
return {
|
|
141
|
+
planStatus: 'rejected',
|
|
142
|
+
planFeedback: userResponse.feedback ?? 'Please adjust the plan',
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return {};
|
|
146
|
+
};
|
|
147
|
+
const adjustPlan = async (state) => {
|
|
148
|
+
const { messages, planFeedback, workflowPlan } = state;
|
|
149
|
+
const lastHumanMessage = messages.findLast((m) => m instanceof messages_1.HumanMessage);
|
|
150
|
+
if (typeof lastHumanMessage.content !== 'string') {
|
|
151
|
+
throw new errors_1.ValidationError('Invalid message content for plan adjustment');
|
|
152
|
+
}
|
|
153
|
+
const plannerAgent = (0, workflow_planner_agent_1.createWorkflowPlannerAgent)(this.llmSimpleTask, this.parsedNodeTypes);
|
|
154
|
+
const adjustedPlan = await plannerAgent.plan(lastHumanMessage.content, workflowPlan ?? undefined, planFeedback ?? undefined);
|
|
155
|
+
if ('text' in adjustedPlan) {
|
|
156
|
+
return {
|
|
157
|
+
messages: [
|
|
158
|
+
new messages_1.AIMessage({
|
|
159
|
+
content: adjustedPlan.text,
|
|
160
|
+
}),
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
const filteredMessages = messages.map((m) => {
|
|
165
|
+
if (m instanceof messages_1.ToolMessage && m.name === 'generate_workflow_plan') {
|
|
166
|
+
return new messages_1.RemoveMessage({ id: m.id });
|
|
167
|
+
}
|
|
168
|
+
if (m instanceof messages_1.AIMessage && m.tool_calls && m.tool_calls.length > 0) {
|
|
169
|
+
const hasPlanCall = m.tool_calls.find((tc) => tc.name === 'generate_workflow_plan');
|
|
170
|
+
if (hasPlanCall) {
|
|
171
|
+
return new messages_1.RemoveMessage({ id: m.id });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return m;
|
|
175
|
+
});
|
|
176
|
+
const planAdjustmentMessage = new messages_1.HumanMessage({ content: planFeedback ?? '' });
|
|
177
|
+
this.logger?.debug('Adjusted workflow plan: ' + JSON.stringify(adjustedPlan, null, 2));
|
|
178
|
+
return {
|
|
179
|
+
workflowPlan: adjustedPlan.plan,
|
|
180
|
+
messages: [...filteredMessages, planAdjustmentMessage, ...adjustedPlan.toolMessages],
|
|
181
|
+
planStatus: 'pending',
|
|
182
|
+
planFeedback: null,
|
|
183
|
+
};
|
|
184
|
+
};
|
|
81
185
|
const shouldModifyState = (state) => {
|
|
82
|
-
const { messages, workflowContext } = state;
|
|
186
|
+
const { messages, workflowContext, planStatus } = state;
|
|
83
187
|
const lastHumanMessage = messages.findLast((m) => m instanceof messages_1.HumanMessage);
|
|
84
188
|
if (lastHumanMessage.content === '/compact') {
|
|
85
189
|
return 'compact_messages';
|
|
@@ -93,6 +197,9 @@ class WorkflowBuilderAgent {
|
|
|
93
197
|
if (shouldAutoCompact(state)) {
|
|
94
198
|
return 'auto_compact_messages';
|
|
95
199
|
}
|
|
200
|
+
if (!planStatus && workflowContext?.currentWorkflow?.nodes?.length === 0) {
|
|
201
|
+
return 'create_plan';
|
|
202
|
+
}
|
|
96
203
|
return 'agent';
|
|
97
204
|
};
|
|
98
205
|
const shouldContinue = ({ messages }) => {
|
|
@@ -116,6 +223,9 @@ class WorkflowBuilderAgent {
|
|
|
116
223
|
connections: {},
|
|
117
224
|
name: '',
|
|
118
225
|
},
|
|
226
|
+
workflowPlan: null,
|
|
227
|
+
planStatus: null,
|
|
228
|
+
planFeedback: null,
|
|
119
229
|
};
|
|
120
230
|
return stateUpdate;
|
|
121
231
|
}
|
|
@@ -170,11 +280,21 @@ class WorkflowBuilderAgent {
|
|
|
170
280
|
.addNode('compact_messages', compactSession)
|
|
171
281
|
.addNode('auto_compact_messages', compactSession)
|
|
172
282
|
.addNode('create_workflow_name', createWorkflowName)
|
|
283
|
+
.addNode('create_plan', createPlan)
|
|
284
|
+
.addNode('review_plan', reviewPlan)
|
|
285
|
+
.addNode('adjust_plan', adjustPlan)
|
|
173
286
|
.addConditionalEdges('__start__', shouldModifyState)
|
|
287
|
+
.addConditionalEdges('create_plan', (state) => {
|
|
288
|
+
return state.workflowPlan ? 'review_plan' : langgraph_1.END;
|
|
289
|
+
})
|
|
290
|
+
.addConditionalEdges('review_plan', (state) => {
|
|
291
|
+
return state.planStatus === 'approved' ? 'agent' : 'adjust_plan';
|
|
292
|
+
})
|
|
293
|
+
.addEdge('adjust_plan', 'review_plan')
|
|
174
294
|
.addEdge('tools', 'process_operations')
|
|
175
295
|
.addEdge('process_operations', 'agent')
|
|
176
296
|
.addEdge('auto_compact_messages', 'agent')
|
|
177
|
-
.addEdge('create_workflow_name', '
|
|
297
|
+
.addEdge('create_workflow_name', 'create_plan')
|
|
178
298
|
.addEdge('delete_messages', langgraph_1.END)
|
|
179
299
|
.addEdge('compact_messages', langgraph_1.END)
|
|
180
300
|
.addConditionalEdges('agent', shouldContinue);
|
|
@@ -199,13 +319,26 @@ class WorkflowBuilderAgent {
|
|
|
199
319
|
});
|
|
200
320
|
}
|
|
201
321
|
async *chat(payload, userId, abortSignal) {
|
|
202
|
-
|
|
322
|
+
this.validateMessageLength(payload.message);
|
|
323
|
+
const { agent, threadConfig, streamConfig } = this.setupAgentAndConfigs(payload, userId, abortSignal);
|
|
324
|
+
try {
|
|
325
|
+
const stream = await this.createAgentStream(payload, streamConfig, agent, threadConfig);
|
|
326
|
+
yield* this.processAgentStream(stream, agent, threadConfig);
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
this.handleStreamError(error);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
validateMessageLength(message) {
|
|
333
|
+
if (message.length > constants_1.MAX_AI_BUILDER_PROMPT_LENGTH) {
|
|
203
334
|
this.logger?.warn('Message exceeds maximum length', {
|
|
204
|
-
messageLength:
|
|
335
|
+
messageLength: message.length,
|
|
205
336
|
maxLength: constants_1.MAX_AI_BUILDER_PROMPT_LENGTH,
|
|
206
337
|
});
|
|
207
338
|
throw new errors_1.ValidationError(`Message exceeds maximum length of ${constants_1.MAX_AI_BUILDER_PROMPT_LENGTH} characters`);
|
|
208
339
|
}
|
|
340
|
+
}
|
|
341
|
+
setupAgentAndConfigs(payload, userId, abortSignal) {
|
|
209
342
|
const agent = this.createWorkflow().compile({ checkpointer: this.checkpointer });
|
|
210
343
|
const workflowId = payload.workflowContext?.currentWorkflow?.id;
|
|
211
344
|
const threadId = WorkflowBuilderAgent.generateThreadId(workflowId, userId);
|
|
@@ -217,16 +350,40 @@ class WorkflowBuilderAgent {
|
|
|
217
350
|
const streamConfig = {
|
|
218
351
|
...threadConfig,
|
|
219
352
|
streamMode: ['updates', 'custom'],
|
|
220
|
-
recursionLimit:
|
|
353
|
+
recursionLimit: 50,
|
|
221
354
|
signal: abortSignal,
|
|
222
355
|
callbacks: this.tracer ? [this.tracer] : undefined,
|
|
223
356
|
};
|
|
224
|
-
|
|
357
|
+
return { agent, threadConfig, streamConfig };
|
|
358
|
+
}
|
|
359
|
+
async createAgentStream(payload, streamConfig, agent, threadConfig) {
|
|
360
|
+
const currentState = await agent.getState(threadConfig);
|
|
361
|
+
const interruptedTask = currentState.tasks.find((task) => task.interrupts && task.interrupts.length > 0);
|
|
362
|
+
if (interruptedTask) {
|
|
363
|
+
const action = payload.message.trim() === constants_1.PLAN_APPROVAL_MESSAGE ? 'approve' : 'adjust';
|
|
364
|
+
const resumeCommand = new langgraph_1.Command({
|
|
365
|
+
resume: {
|
|
366
|
+
action,
|
|
367
|
+
feedback: action === 'adjust' ? payload.message : undefined,
|
|
368
|
+
},
|
|
369
|
+
});
|
|
370
|
+
return await agent.stream(resumeCommand, streamConfig);
|
|
371
|
+
}
|
|
372
|
+
return await agent.stream({
|
|
225
373
|
messages: [new messages_1.HumanMessage({ content: payload.message })],
|
|
226
374
|
workflowJSON: this.getDefaultWorkflowJSON(payload),
|
|
227
375
|
workflowOperations: [],
|
|
228
376
|
workflowContext: payload.workflowContext,
|
|
229
377
|
}, streamConfig);
|
|
378
|
+
}
|
|
379
|
+
handleStreamError(error) {
|
|
380
|
+
const invalidRequestErrorMessage = this.getInvalidRequestError(error);
|
|
381
|
+
if (invalidRequestErrorMessage) {
|
|
382
|
+
throw new errors_1.ValidationError(invalidRequestErrorMessage);
|
|
383
|
+
}
|
|
384
|
+
throw error;
|
|
385
|
+
}
|
|
386
|
+
async *processAgentStream(stream, agent, threadConfig) {
|
|
230
387
|
try {
|
|
231
388
|
const streamProcessor = (0, stream_processor_1.createStreamProcessor)(stream);
|
|
232
389
|
for await (const output of streamProcessor) {
|
|
@@ -234,21 +391,45 @@ class WorkflowBuilderAgent {
|
|
|
234
391
|
}
|
|
235
392
|
}
|
|
236
393
|
catch (error) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
394
|
+
await this.handleAgentStreamError(error, agent, threadConfig);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
async handleAgentStreamError(error, agent, threadConfig) {
|
|
398
|
+
if (error &&
|
|
399
|
+
typeof error === 'object' &&
|
|
400
|
+
'message' in error &&
|
|
401
|
+
typeof error.message === 'string' &&
|
|
402
|
+
['Abort', 'Aborted'].includes(error.message)) {
|
|
403
|
+
const messages = (await agent.getState(threadConfig)).values.messages;
|
|
404
|
+
const abortedAiMessage = new messages_1.AIMessage({
|
|
405
|
+
content: '[Task aborted]',
|
|
406
|
+
id: crypto.randomUUID(),
|
|
407
|
+
});
|
|
408
|
+
await agent.updateState(threadConfig, { messages: [...messages, abortedAiMessage] });
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
if (error instanceof langgraph_1.GraphRecursionError) {
|
|
412
|
+
throw new n8n_workflow_1.ApplicationError('Workflow generation stopped: The AI reached the maximum number of steps while building your workflow. This usually means the workflow design became too complex or got stuck in a loop while trying to create the nodes and connections.');
|
|
413
|
+
}
|
|
414
|
+
throw error;
|
|
415
|
+
}
|
|
416
|
+
getInvalidRequestError(error) {
|
|
417
|
+
if (error instanceof Error &&
|
|
418
|
+
'error' in error &&
|
|
419
|
+
typeof error.error === 'object' &&
|
|
420
|
+
error.error) {
|
|
421
|
+
const innerError = error.error;
|
|
422
|
+
if ('error' in innerError && typeof innerError.error === 'object' && innerError.error) {
|
|
423
|
+
const errorDetails = innerError.error;
|
|
424
|
+
if ('type' in errorDetails &&
|
|
425
|
+
errorDetails.type === 'invalid_request_error' &&
|
|
426
|
+
'message' in errorDetails &&
|
|
427
|
+
typeof errorDetails.message === 'string') {
|
|
428
|
+
return errorDetails.message;
|
|
429
|
+
}
|
|
249
430
|
}
|
|
250
|
-
throw error;
|
|
251
431
|
}
|
|
432
|
+
return undefined;
|
|
252
433
|
}
|
|
253
434
|
async getSessions(workflowId, userId) {
|
|
254
435
|
const sessions = [];
|
|
@@ -265,7 +446,7 @@ class WorkflowBuilderAgent {
|
|
|
265
446
|
const messages = checkpoint.checkpoint.channel_values?.messages ?? [];
|
|
266
447
|
sessions.push({
|
|
267
448
|
sessionId: threadId,
|
|
268
|
-
messages: (0, stream_processor_1.formatMessages)(messages),
|
|
449
|
+
messages: (0, stream_processor_1.formatMessages)(messages, this.getBuilderTools()),
|
|
269
450
|
lastUpdated: checkpoint.checkpoint.ts,
|
|
270
451
|
});
|
|
271
452
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-builder-agent.js","sourceRoot":"","sources":["../src/workflow-builder-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-builder-agent.js","sourceRoot":"","sources":["../src/workflow-builder-agent.ts"],"names":[],"mappings":";;;AACA,uDAA+F;AAG/F,oDAO8B;AAE9B,+CAMsB;AAEtB,2CAKqB;AACrB,6EAA6E;AAC7E,yEAAiE;AAEjE,4EAAoG;AACpG,wEAAyE;AACzE,0DAA2D;AAC3D,qCAAgF;AAChF,yDAA0D;AAC1D,mEAAoE;AACpE,iEAAkE;AAClE,+DAAgE;AAChE,yEAAmF;AACnF,+DAAgE;AAChE,qFAAqF;AAErF,uEAAiE;AACjE,+DAAmG;AACnG,qDAA4F;AAC5F,yDAA+D;AAC/D,qDAAiD;AAsBjD,MAAa,oBAAoB;IACxB,YAAY,CAAc;IAC1B,eAAe,CAAyB;IACxC,aAAa,CAAgB;IAC7B,cAAc,CAAgB;IAC9B,MAAM,CAAU;IAChB,MAAM,CAAmB;IACzB,0BAA0B,CAAS;IACnC,WAAW,CAAU;IAE7B,YAAY,MAAkC;QAC7C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,uBAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,0BAA0B;YAC9B,MAAM,CAAC,0BAA0B,IAAI,iDAAqC,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,CAAC;IAEO,eAAe;QACtB,OAAO;YACN,IAAA,uCAAoB,EAAC,IAAI,CAAC,eAAe,CAAC;YAC1C,IAAA,yCAAqB,EAAC,IAAI,CAAC,eAAe,CAAC;YAC3C,IAAA,iCAAiB,EAAC,IAAI,CAAC,eAAe,CAAC;YACvC,IAAA,2CAAsB,EAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;YACzD,IAAA,uCAAoB,EAAC,IAAI,CAAC,MAAM,CAAC;YACjC,IAAA,4DAA8B,EAC7B,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CAChB;YACD,IAAA,oDAA0B,GAAE;SAC5B,CAAC;IACH,CAAC;IAEO,cAAc;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAG5C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAGhD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAI,wBAAe,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACxD,MAAM,IAAI,wBAAe,CAAC,4BAA4B,EAAE;oBACvD,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;iBACvC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,mCAAe,CAAC,MAAM,CAAC;gBAC3C,GAAG,KAAK;gBACR,YAAY,EAAE,IAAA,wCAAgB,EAAC,KAAK,CAAC,YAAY,CAAC;gBAClD,aAAa,EAAE,KAAK,CAAC,eAAe,EAAE,aAAa,IAAI,EAAE;gBACzD,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,eAAe,IAAI,EAAE;gBAC7D,YAAY,EAAE,IAAA,iCAAa,EAAC,KAAK,CAAC,YAAY,CAAC;gBAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;aAC7B,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,IAAA,4CAA8B,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExE,IAAI,eAAe,GAAG,4BAAgB,EAAE,CAAC;gBACxC,MAAM,IAAI,2BAAkB,CAC3B,uIAAuI,CACvI,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE1E,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,EAAE,QAAQ,EAA8B,EAAE,EAAE;YACtE,MAAM,UAAU,GAAG,IAAA,mCAAqB,EAAC,QAAQ,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC;YAEtE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE;gBACjC,WAAW,EAAE,UAAU,CAAC,YAAY;gBACpC,YAAY,EAAE,UAAU,CAAC,aAAa;gBACtC,WAAW,EAAE,UAAU;aACvB,CAAC,CAAC;YAEH,OAAO,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC;QACrD,CAAC,CAAC;QAKF,MAAM,UAAU,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YAC3B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,uBAAY,CAAE,CAAC;YAE9E,IAAI,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,wBAAe,CAAC,sCAAsC,CAAC,CAAC;YACnE,CAAC;YAGD,MAAM,YAAY,GAAG,IAAA,mDAA0B,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAG1F,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAGxE,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;gBAC7B,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC;gBAC7C,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEhF,OAAO;oBACN,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,SAAkB;oBAC9B,QAAQ,EAAE,YAAY;iBACtB,CAAC;YACH,CAAC;YAGD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,kCAAkC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5E,OAAO;gBACN,QAAQ,EAAE;oBACT,IAAI,oBAAS,CAAC;wBACb,OAAO,EAAE,aAAa,CAAC,IAAI;qBAC3B,CAAC;iBACF;aACD,CAAC;QACH,CAAC,CAAC;QAKF,MAAM,UAAU,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;YAE/B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,IAAI,wBAAe,CAAC,4BAA4B,CAAC,CAAC;YACzD,CAAC;YAID,MAAM,YAAY,GAAG,IAAA,qBAAS,EAG5B;gBACD,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,OAAO,EAAE,YAAY,CAAC,KAAK;aAC3B,CAAC,CAAC;YAGH,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAEvC,OAAO;oBACN,UAAU,EAAE,UAAmB;iBAC/B,CAAC;YACH,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAE7C,OAAO;oBACN,UAAU,EAAE,UAAmB;oBAC/B,YAAY,EAAE,YAAY,CAAC,QAAQ,IAAI,wBAAwB;iBAC/D,CAAC;YACH,CAAC;YAED,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAKF,MAAM,UAAU,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YAC9D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;YACvD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,uBAAY,CAAE,CAAC;YAE9E,IAAI,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,wBAAe,CAAC,6CAA6C,CAAC,CAAC;YAC1E,CAAC;YAGD,MAAM,YAAY,GAAG,IAAA,mDAA0B,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAG1F,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAC3C,gBAAgB,CAAC,OAAO,EACxB,YAAY,IAAI,SAAS,EACzB,YAAY,IAAI,SAAS,CACzB,CAAC;YAGF,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC5B,OAAO;oBACN,QAAQ,EAAE;wBACT,IAAI,oBAAS,CAAC;4BACb,OAAO,EAAE,YAAY,CAAC,IAAI;yBAC1B,CAAC;qBACF;iBACD,CAAC;YACH,CAAC;YAGD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3C,IAAI,CAAC,YAAY,sBAAW,IAAI,CAAC,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;oBACrE,OAAO,IAAI,wBAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC;gBACzC,CAAC;gBAED,IAAI,CAAC,YAAY,oBAAS,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvE,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAC;oBACpF,IAAI,WAAW,EAAE,CAAC;wBACjB,OAAO,IAAI,wBAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC;oBACzC,CAAC;gBACF,CAAC;gBAED,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,MAAM,qBAAqB,GAAG,IAAI,uBAAY,CAAC,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE,CAAC,CAAC;YAEhF,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEvF,OAAO;gBACN,YAAY,EAAE,YAAY,CAAC,IAAI;gBAC/B,QAAQ,EAAE,CAAC,GAAG,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC;gBACpF,UAAU,EAAE,SAAkB;gBAC9B,YAAY,EAAE,IAAI;aAClB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,KAAiC,EAAE,EAAE;YAC/D,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;YACxD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,uBAAY,CAAE,CAAC;YAE9E,IAAI,gBAAgB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC7C,OAAO,kBAAkB,CAAC;YAC3B,CAAC;YAED,IAAI,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO,iBAAiB,CAAC;YAC1B,CAAC;YAID,IAAI,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpF,OAAO,sBAAsB,CAAC;YAC/B,CAAC;YAED,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,uBAAuB,CAAC;YAChC,CAAC;YAGD,IAAI,CAAC,UAAU,IAAI,eAAe,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1E,OAAO,aAAa,CAAC;YACtB,CAAC;YAED,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAA8B,EAAE,EAAE;YACnE,MAAM,WAAW,GAAc,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE7D,IAAI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBACpC,OAAO,OAAO,CAAC;YAChB,CAAC;YACD,OAAO,eAAG,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YACtE,OAAO,MAAM,IAAA,sCAAsB,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,SAAS,cAAc,CAAC,KAAiC;YACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,MAAM,WAAW,GAAwC;gBACxD,kBAAkB,EAAE,IAAI;gBACxB,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,wBAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC,IAAI,EAAE;gBACrE,YAAY,EAAE;oBACb,KAAK,EAAE,EAAE;oBACT,WAAW,EAAE,EAAE;oBACf,IAAI,EAAE,EAAE;iBACR;gBACD,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aAClB,CAAC;YAEF,OAAO,WAAW,CAAC;QACpB,CAAC;QAQD,MAAM,cAAc,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAI,wBAAe,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;YAC5C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAwB,CAAC;YAC9E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,KAAK,UAAU,CAAC;YAE9D,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,iCAAiC,EAAE;gBACrD,aAAa;aACb,CAAC,CAAC;YAEH,MAAM,iBAAiB,GAAG,MAAM,IAAA,+CAAwB,EACvD,IAAI,CAAC,aAAa,EAClB,QAAQ,EACR,eAAe,CACf,CAAC;YAOF,OAAO;gBACN,eAAe,EAAE,iBAAiB,CAAC,YAAY;gBAC/C,QAAQ,EAAE;oBACT,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,wBAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC;oBACxD,IAAI,uBAAY,CAAC,0CAA0C,CAAC;oBAC5D,IAAI,oBAAS,CAAC,6CAA6C,CAAC;oBAC5D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAY,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF;aACD,CAAC;QACH,CAAC,CAAC;QAKF,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAiC,EAAE,EAAE;YACtE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAI,wBAAe,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,uBAAY,EAAE,CAAC;gBAClE,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAwB,CAAC;gBAE1D,IAAI,OAAO,cAAc,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChD,IAAI,CAAC,MAAM,EAAE,KAAK,CACjB,4EAA4E,CAC5E,CAAC;oBACF,OAAO,EAAE,CAAC;gBACX,CAAC;gBAED,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,iCAAiB,EAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;gBAErF,OAAO;oBACN,YAAY,EAAE;wBACb,GAAG,YAAY;wBACf,IAAI;qBACJ;iBACD,CAAC;YACH,CAAC;YAED,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,sBAAU,CAAC,8BAAa,CAAC;aAC5C,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;aAC3B,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC;aACpC,OAAO,CAAC,oBAAoB,EAAE,wCAAiB,CAAC;aAChD,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC;aAC1C,OAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC;aAC3C,OAAO,CAAC,uBAAuB,EAAE,cAAc,CAAC;aAChD,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;aACnD,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;aAClC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;aAClC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;aAClC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC;aAEnD,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAE7C,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAG,CAAC;QACjD,CAAC,CAAC;aACD,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAE7C,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;QAClE,CAAC,CAAC;aACD,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC;aACrC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC;aACtC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;aACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;aACzC,OAAO,CAAC,sBAAsB,EAAE,aAAa,CAAC;aAC9C,OAAO,CAAC,iBAAiB,EAAE,eAAG,CAAC;aAC/B,OAAO,CAAC,kBAAkB,EAAE,eAAG,CAAC;aAChC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE/C,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,MAAe;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACpE,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC;YAC3B,YAAY,EAAE,EAAE,SAAS,EAAE,YAAY,UAAU,SAAS,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE;SAC5F,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,UAAmB,EAAE,MAAe;QAC3D,OAAO,UAAU;YAChB,CAAC,CAAC,YAAY,UAAU,SAAS,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YACjE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxB,CAAC;IAEO,sBAAsB,CAAC,OAAoB;QAClD,OAAO,CACL,OAAO,CAAC,eAAe,EAAE,eAAkC,IAAI;YAC/D,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;SACf,CACD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,OAAoB,EAAE,MAAe,EAAE,WAAyB;QAC3E,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,oBAAoB,CACtE,OAAO,EACP,MAAM,EACN,WAAW,CACX,CAAC;QAEF,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YACxF,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAEO,qBAAqB,CAAC,OAAe;QAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,wCAA4B,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gCAAgC,EAAE;gBACnD,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,SAAS,EAAE,wCAA4B;aACvC,CAAC,CAAC;YAEH,MAAM,IAAI,wBAAe,CACxB,qCAAqC,wCAA4B,aAAa,CAC9E,CAAC;QACH,CAAC;IACF,CAAC;IAEO,oBAAoB,CAAC,OAAoB,EAAE,MAAe,EAAE,WAAyB;QAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,eAAe,EAAE,EAAE,CAAC;QAGhE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAmB;YACpC,YAAY,EAAE;gBACb,SAAS,EAAE,QAAQ;aACnB;SACD,CAAC;QACF,MAAM,YAAY,GAAG;YACpB,GAAG,YAAY;YACf,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YACjC,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SAClD,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC9B,OAAoB,EACpB,YAA4B,EAC5B,KAAoE,EACpE,YAA4B;QAE5B,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAGxD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAC9C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CACvD,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YAKrB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,iCAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAGvF,MAAM,aAAa,GAAG,IAAI,mBAAO,CAAC;gBACjC,MAAM,EAAE;oBACP,MAAM;oBACN,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;iBAC3D;aACD,CAAC,CAAC;YAEH,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,MAAM,CACxB;YACC,QAAQ,EAAE,CAAC,IAAI,uBAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAClD,kBAAkB,EAAE,EAAE;YACtB,eAAe,EAAE,OAAO,CAAC,eAAe;SACxC,EACD,YAAY,CACZ,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAc;QACvC,MAAM,0BAA0B,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,0BAA0B,EAAE,CAAC;YAChC,MAAM,IAAI,wBAAe,CAAC,0BAA0B,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,KAAK,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,CAAC,kBAAkB,CAChC,MAAwD,EACxD,KAAoE,EACpE,YAA4B;QAE5B,IAAI,CAAC;YACJ,MAAM,eAAe,GAAG,IAAA,wCAAqB,EAAC,MAAM,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;gBAC5C,MAAM,MAAM,CAAC;YACd,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,sBAAsB,CACnC,KAAc,EACd,KAAoE,EACpE,YAA4B;QAE5B,IACC,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,SAAS,IAAI,KAAK;YAClB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAEjC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAC3C,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAE5D,CAAC;YAGF,MAAM,gBAAgB,GAAG,IAAI,oBAAS,CAAC;gBACtC,OAAO,EAAE,gBAAgB;gBACzB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;aACvB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO;QACR,CAAC;QAGD,IAAI,KAAK,YAAY,+BAAmB,EAAE,CAAC;YAC1C,MAAM,IAAI,+BAAgB,CACzB,0OAA0O,CAC1O,CAAC;QACH,CAAC;QAGD,MAAM,KAAK,CAAC;IACb,CAAC;IAEO,sBAAsB,CAAC,KAAc;QAC5C,IACC,KAAK,YAAY,KAAK;YACtB,OAAO,IAAI,KAAK;YAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,KAAK,CAAC,KAAK,EACV,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACvF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC;gBACtC,IACC,MAAM,IAAI,YAAY;oBACtB,YAAY,CAAC,IAAI,KAAK,uBAAuB;oBAC7C,SAAS,IAAI,YAAY;oBACzB,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EACvC,CAAC;oBACF,OAAO,YAAY,CAAC,OAAO,CAAC;gBAC7B,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAA8B,EAAE,MAAe;QAIhE,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAmB;gBACpC,YAAY,EAAE;oBACb,SAAS,EAAE,QAAQ;iBACnB;aACD,CAAC;YAEF,IAAI,CAAC;gBAEJ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAElE,IAAI,UAAU,EAAE,UAAU,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GACZ,UAAU,CAAC,UAAU,CAAC,cAAc,EAAE,QAErC,IAAI,EAAE,CAAC;oBAEV,QAAQ,CAAC,IAAI,CAAC;wBACb,SAAS,EAAE,QAAQ;wBACnB,QAAQ,EAAE,IAAA,iCAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1D,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE;qBACrC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEhB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,gCAAgC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,CAAC;QACF,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,CAAC;IACrB,CAAC;CACD;AAxoBD,oDAwoBC"}
|
package/dist/workflow-state.d.ts
CHANGED
|
@@ -5,6 +5,23 @@ export declare const WorkflowState: import("@langchain/langgraph").AnnotationRoo
|
|
|
5
5
|
messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage[], BaseMessage[]>;
|
|
6
6
|
workflowJSON: import("@langchain/langgraph").BinaryOperatorAggregate<SimpleWorkflow, SimpleWorkflow>;
|
|
7
7
|
workflowOperations: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowOperation[] | null, WorkflowOperation[] | null>;
|
|
8
|
+
workflowPlan: import("@langchain/langgraph").BinaryOperatorAggregate<{
|
|
9
|
+
intro: string;
|
|
10
|
+
plan: {
|
|
11
|
+
nodeType: string;
|
|
12
|
+
reasoning: string;
|
|
13
|
+
nodeName: string;
|
|
14
|
+
}[];
|
|
15
|
+
} | null, {
|
|
16
|
+
intro: string;
|
|
17
|
+
plan: {
|
|
18
|
+
nodeType: string;
|
|
19
|
+
reasoning: string;
|
|
20
|
+
nodeName: string;
|
|
21
|
+
}[];
|
|
22
|
+
} | null>;
|
|
23
|
+
planStatus: import("@langchain/langgraph").BinaryOperatorAggregate<"pending" | "approved" | "rejected" | null, "pending" | "approved" | "rejected" | null>;
|
|
24
|
+
planFeedback: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
8
25
|
workflowContext: import("@langchain/langgraph").BinaryOperatorAggregate<{
|
|
9
26
|
executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
|
|
10
27
|
currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
|
package/dist/workflow-state.js
CHANGED
|
@@ -47,6 +47,18 @@ exports.WorkflowState = langgraph_1.Annotation.Root({
|
|
|
47
47
|
reducer: operationsReducer,
|
|
48
48
|
default: () => [],
|
|
49
49
|
}),
|
|
50
|
+
workflowPlan: (0, langgraph_1.Annotation)({
|
|
51
|
+
reducer: (x, y) => y ?? x,
|
|
52
|
+
default: () => null,
|
|
53
|
+
}),
|
|
54
|
+
planStatus: (0, langgraph_1.Annotation)({
|
|
55
|
+
reducer: (x, y) => y ?? x,
|
|
56
|
+
default: () => null,
|
|
57
|
+
}),
|
|
58
|
+
planFeedback: (0, langgraph_1.Annotation)({
|
|
59
|
+
reducer: (x, y) => y ?? x,
|
|
60
|
+
default: () => null,
|
|
61
|
+
}),
|
|
50
62
|
workflowContext: (0, langgraph_1.Annotation)({
|
|
51
63
|
reducer: (x, y) => y ?? x,
|
|
52
64
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../src/workflow-state.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"workflow-state.js","sourceRoot":"","sources":["../src/workflow-state.ts"],"names":[],"mappings":";;;AAqCA,8DAsBC;AA1DD,uDAAwD;AACxD,oDAAwE;AAUxE,SAAS,iBAAiB,CACzB,OAAmC,EACnC,MAA8C;IAE9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,IAAI,EAAE,CAAC;IACtB,CAAC;IAGD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;AACxC,CAAC;AAGD,SAAgB,yBAAyB,CAAC,eAAuB;IAChE,OAAO,CAAC,OAAsB,EAAiB,EAAE;QAEhD,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,GAAG,YAAY,uBAAY,EAAE,CAAC;gBACjC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACF,CAAC,CAAC,CAAC;QAGH,IAAI,mBAAmB,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACnD,OAAO,OAAO,CAAC;QAChB,CAAC;QAGD,MAAM,sBAAsB,GAC3B,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;QAGnE,OAAO,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC,CAAC;AACH,CAAC;AAEY,QAAA,aAAa,GAAG,sBAAU,CAAC,IAAI,CAAC;IAC5C,QAAQ,EAAE,IAAA,sBAAU,EAAgB;QACnC,OAAO,EAAE,gCAAoB;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAIF,YAAY,EAAE,IAAA,sBAAU,EAAiB;QACxC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KACzD,CAAC;IAEF,kBAAkB,EAAE,IAAA,sBAAU,EAA6B;QAC1D,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAEF,YAAY,EAAE,IAAA,sBAAU,EAAsB;QAC7C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACnB,CAAC;IAEF,UAAU,EAAE,IAAA,sBAAU,EAA6C;QAClE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACnB,CAAC;IAEF,YAAY,EAAE,IAAA,sBAAU,EAAgB;QACvC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACnB,CAAC;IAEF,eAAe,EAAE,IAAA,sBAAU,EAA6C;QACvE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;KACzB,CAAC;IAGF,eAAe,EAAE,IAAA,sBAAU,EAAS;QACnC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;KACtB,CAAC;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/ai-workflow-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -23,20 +23,21 @@
|
|
|
23
23
|
"@langchain/openai": "0.6.7",
|
|
24
24
|
"@n8n_io/ai-assistant-sdk": "1.15.0",
|
|
25
25
|
"langsmith": "^0.3.45",
|
|
26
|
+
"lodash": "4.17.21",
|
|
26
27
|
"picocolors": "1.0.1",
|
|
27
28
|
"zod": "3.25.67",
|
|
28
|
-
"@n8n/
|
|
29
|
+
"@n8n/backend-common": "^0.20.0",
|
|
29
30
|
"@n8n/di": "0.9.0",
|
|
30
|
-
"
|
|
31
|
-
"n8n
|
|
31
|
+
"n8n-workflow": "1.107.0",
|
|
32
|
+
"@n8n/config": "1.53.0"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"@types/cli-progress": "^3.11.5",
|
|
35
|
-
"p-limit": "^3.1.0",
|
|
36
36
|
"cli-progress": "^3.12.0",
|
|
37
37
|
"cli-table3": "^0.6.3",
|
|
38
38
|
"jest-mock-extended": "^3.0.4",
|
|
39
39
|
"madge": "^8.0.0",
|
|
40
|
+
"p-limit": "^3.1.0",
|
|
40
41
|
"@n8n/typescript-config": "1.3.0"
|
|
41
42
|
},
|
|
42
43
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -68,7 +69,8 @@
|
|
|
68
69
|
"deps:report": "madge src/index.ts --json > deps-report.json && echo 'Dependency report saved to deps-report.json'",
|
|
69
70
|
"deps:orphans": "madge src/index.ts --orphans",
|
|
70
71
|
"deps:all": "pnpm run deps:graph && pnpm run deps:graph:service && pnpm run deps:graph:tools && pnpm run deps:circular && pnpm run deps:report",
|
|
71
|
-
"eval": "tsx evaluations
|
|
72
|
-
"eval:
|
|
72
|
+
"eval": "tsx evaluations",
|
|
73
|
+
"eval:langsmith": "USE_LANGSMITH_EVAL=true tsx evaluations",
|
|
74
|
+
"eval:generate": "GENERATE_TEST_CASES=true tsx evaluations"
|
|
73
75
|
}
|
|
74
76
|
}
|
package/dist/chains/planner.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
-
import { SystemMessage } from '@langchain/core/messages';
|
|
3
|
-
export declare const plannerPrompt: SystemMessage;
|
|
4
|
-
export declare const plannerChain: (llm: BaseChatModel) => import("@langchain/core/runnables").Runnable<any, string[], import("@langchain/core/runnables").RunnableConfig<Record<string, any>>>;
|
package/dist/chains/planner.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.plannerChain = exports.plannerPrompt = void 0;
|
|
4
|
-
const messages_1 = require("@langchain/core/messages");
|
|
5
|
-
const prompts_1 = require("@langchain/core/prompts");
|
|
6
|
-
const tools_1 = require("@langchain/core/tools");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
const errors_1 = require("../errors");
|
|
9
|
-
exports.plannerPrompt = new messages_1.SystemMessage(`You are a Workflow Planner for n8n, a platform that helps users automate processes across different services and APIs.
|
|
10
|
-
|
|
11
|
-
## Your Task
|
|
12
|
-
Convert user requests into clear, sequential workflow steps that can be implemented with n8n nodes. ONLY include steps that are explicitly stated or directly implied in the user request.
|
|
13
|
-
|
|
14
|
-
## Guidelines
|
|
15
|
-
1. Analyze the user request to understand their end goal and required process
|
|
16
|
-
2. Break down the automation into logical steps based on complexity - simpler workflows need fewer steps, complex ones may need more
|
|
17
|
-
3. Focus ONLY on actions mentioned directly in the user prompt
|
|
18
|
-
4. Create steps that can be mapped to n8n nodes later
|
|
19
|
-
5. Order steps sequentially from trigger to final action
|
|
20
|
-
6. Be specific about data transformations needed ONLY if mentioned in the request
|
|
21
|
-
7. NEVER add extra steps like storing data or sending notifications unless explicitly requested
|
|
22
|
-
8. Only recommend raw HTTP requests if you think there isn't a suitable n8n node
|
|
23
|
-
|
|
24
|
-
## CRITICAL REQUIREMENTS
|
|
25
|
-
- DO NOT add any steps not directly mentioned or implied in the user request
|
|
26
|
-
- DO NOT assume the user wants to store data in a database unless explicitly stated
|
|
27
|
-
- DO NOT assume the user wants to send notifications or emails unless explicitly stated
|
|
28
|
-
- DO NOT add any "nice to have" steps that aren't clearly part of the user's request
|
|
29
|
-
- Keep the workflow EXACTLY focused on what was requested, nothing more
|
|
30
|
-
|
|
31
|
-
## Output Format
|
|
32
|
-
Return ONLY a JSON object with this structure:
|
|
33
|
-
\`\`\`json
|
|
34
|
-
{
|
|
35
|
-
"steps": [
|
|
36
|
-
"[Brief action-oriented description]",
|
|
37
|
-
"[Brief action-oriented description]",
|
|
38
|
-
...
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
\`\`\`
|
|
42
|
-
|
|
43
|
-
## Examples of Good Step Descriptions
|
|
44
|
-
- "Trigger when a new email arrives in Gmail inbox"
|
|
45
|
-
- "Filter emails to only include those with attachments"
|
|
46
|
-
- "Extract data from CSV attachments"
|
|
47
|
-
- "Transform data to required format for the API"
|
|
48
|
-
- "Send HTTP request to external API with extracted data"
|
|
49
|
-
- "Post success message to Slack channel"
|
|
50
|
-
|
|
51
|
-
IMPORTANT: Do not include HTML tags, markdown formatting, or explanations outside the JSON.`);
|
|
52
|
-
const planSchema = zod_1.z.object({
|
|
53
|
-
steps: zod_1.z
|
|
54
|
-
.array(zod_1.z
|
|
55
|
-
.string()
|
|
56
|
-
.describe('A clear, action-oriented description of a single workflow step. Do not include "Step N" or similar, just the action'))
|
|
57
|
-
.min(1)
|
|
58
|
-
.describe('An ordered list of workflow steps that, when implemented, will fulfill the user request. Each step should be concise, action-oriented, and implementable with n8n nodes.'),
|
|
59
|
-
});
|
|
60
|
-
const generatePlanTool = new tools_1.DynamicStructuredTool({
|
|
61
|
-
name: 'generate_plan',
|
|
62
|
-
description: 'Convert a user workflow request into a logical sequence of clear, achievable steps that can be implemented with n8n nodes.',
|
|
63
|
-
schema: planSchema,
|
|
64
|
-
func: async (input) => {
|
|
65
|
-
return { steps: input.steps };
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
const humanTemplate = '{prompt}';
|
|
69
|
-
const chatPrompt = prompts_1.ChatPromptTemplate.fromMessages([
|
|
70
|
-
exports.plannerPrompt,
|
|
71
|
-
prompts_1.HumanMessagePromptTemplate.fromTemplate(humanTemplate),
|
|
72
|
-
]);
|
|
73
|
-
const plannerChain = (llm) => {
|
|
74
|
-
if (!llm.bindTools) {
|
|
75
|
-
throw new errors_1.LLMServiceError("LLM doesn't support binding tools", { llmModel: llm._llmType() });
|
|
76
|
-
}
|
|
77
|
-
return chatPrompt
|
|
78
|
-
.pipe(llm.bindTools([generatePlanTool], {
|
|
79
|
-
tool_choice: generatePlanTool.name,
|
|
80
|
-
}))
|
|
81
|
-
.pipe((x) => {
|
|
82
|
-
const toolCall = x.tool_calls?.[0];
|
|
83
|
-
return (toolCall?.args).steps;
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
exports.plannerChain = plannerChain;
|
|
87
|
-
//# sourceMappingURL=planner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/chains/planner.ts"],"names":[],"mappings":";;;AAEA,uDAAyD;AACzD,qDAAyF;AACzF,iDAA8D;AAC9D,6BAAwB;AAExB,sCAA4C;AAE/B,QAAA,aAAa,GAAG,IAAI,wBAAa,CAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4FA0C2F,CAC3F,CAAC;AAEF,MAAM,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,OAAC;SACN,KAAK,CACL,OAAC;SACC,MAAM,EAAE;SACR,QAAQ,CACR,qHAAqH,CACrH,CACF;SACA,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACR,0KAA0K,CAC1K;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,IAAI,6BAAqB,CAAC;IAClD,IAAI,EAAE,eAAe;IACrB,WAAW,EACV,4HAA4H;IAC7H,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,UAAU,GAAG,4BAAkB,CAAC,YAAY,CAAC;IAClD,qBAAa;IACb,oCAA0B,CAAC,YAAY,CAAC,aAAa,CAAC;CACtD,CAAC,CAAC;AAEI,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,EAAE;IAClD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,wBAAe,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,UAAU;SACf,IAAI,CACJ,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,EAAE;QACjC,WAAW,EAAE,gBAAgB,CAAC,IAAI;KAClC,CAAC,CACF;SACA,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE;QAC3B,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,QAAQ,EAAE,IAAmC,CAAA,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB"}
|