@n8n/ai-workflow-builder 1.0.0 → 1.1.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/responder.agent.d.ts +1 -0
- package/dist/agents/responder.agent.js +9 -33
- package/dist/agents/responder.agent.js.map +1 -1
- package/dist/agents/supervisor.agent.d.ts +1 -0
- package/dist/agents/supervisor.agent.js +7 -38
- package/dist/agents/supervisor.agent.js.map +1 -1
- package/dist/ai-workflow-builder-agent.service.d.ts +2 -1
- package/dist/ai-workflow-builder-agent.service.js +18 -12
- package/dist/ai-workflow-builder-agent.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/chains/conversation-compact.js +2 -13
- package/dist/chains/conversation-compact.js.map +1 -1
- package/dist/chains/parameter-updater.js +21 -7
- package/dist/chains/parameter-updater.js.map +1 -1
- package/dist/chains/prompt-categorization.js +3 -81
- package/dist/chains/prompt-categorization.js.map +1 -1
- package/dist/chains/workflow-name.js +2 -10
- package/dist/chains/workflow-name.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/multi-agent-workflow-subgraphs.d.ts +38 -1
- package/dist/multi-agent-workflow-subgraphs.js +34 -2
- package/dist/multi-agent-workflow-subgraphs.js.map +1 -1
- package/dist/parent-graph-state.d.ts +4 -0
- package/dist/parent-graph-state.js +14 -1
- package/dist/parent-graph-state.js.map +1 -1
- package/dist/prompts/agents/builder.prompt.d.ts +1 -0
- package/dist/prompts/agents/builder.prompt.js +242 -0
- package/dist/prompts/agents/builder.prompt.js.map +1 -0
- package/dist/prompts/agents/configurator.prompt.d.ts +2 -0
- package/dist/prompts/agents/configurator.prompt.js +125 -0
- package/dist/prompts/agents/configurator.prompt.js.map +1 -0
- package/dist/prompts/agents/discovery.prompt.d.ts +11 -0
- package/dist/prompts/agents/discovery.prompt.js +259 -0
- package/dist/prompts/agents/discovery.prompt.js.map +1 -0
- package/dist/prompts/agents/responder.prompt.d.ts +1 -0
- package/dist/prompts/agents/responder.prompt.js +41 -0
- package/dist/prompts/agents/responder.prompt.js.map +1 -0
- package/dist/prompts/agents/supervisor.prompt.d.ts +1 -0
- package/dist/prompts/agents/supervisor.prompt.js +43 -0
- package/dist/prompts/agents/supervisor.prompt.js.map +1 -0
- package/dist/prompts/builder/index.d.ts +2 -0
- package/dist/prompts/builder/index.js +7 -0
- package/dist/prompts/builder/index.js.map +1 -0
- package/dist/prompts/builder/prompt-builder.d.ts +17 -0
- package/dist/prompts/builder/prompt-builder.js +147 -0
- package/dist/prompts/builder/prompt-builder.js.map +1 -0
- package/dist/prompts/builder/types.d.ts +22 -0
- package/dist/prompts/builder/types.js +3 -0
- package/dist/prompts/builder/types.js.map +1 -0
- package/dist/prompts/chains/categorization.prompt.d.ts +43 -0
- package/dist/prompts/chains/categorization.prompt.js +86 -0
- package/dist/prompts/chains/categorization.prompt.js.map +1 -0
- package/dist/prompts/chains/compact.prompt.d.ts +2 -0
- package/dist/prompts/chains/compact.prompt.js +16 -0
- package/dist/prompts/chains/compact.prompt.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/if-node.d.ts +2 -0
- package/dist/{chains/prompts/examples/basic/if-node-examples.js → prompts/chains/parameter-updater/examples/if-node.js} +6 -3
- package/dist/prompts/chains/parameter-updater/examples/if-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/index.d.ts +6 -0
- package/dist/prompts/chains/parameter-updater/examples/index.js +16 -0
- package/dist/prompts/chains/parameter-updater/examples/index.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/resource-locator.d.ts +2 -0
- package/dist/{chains/prompts/examples/advanced/resource-locator-examples.js → prompts/chains/parameter-updater/examples/resource-locator.js} +7 -3
- package/dist/prompts/chains/parameter-updater/examples/resource-locator.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/set-node.d.ts +2 -0
- package/dist/{chains/prompts/examples/basic/set-node-examples.js → prompts/chains/parameter-updater/examples/set-node.js} +6 -3
- package/dist/prompts/chains/parameter-updater/examples/set-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/simple-updates.d.ts +2 -0
- package/dist/{chains/prompts/examples/basic → prompts/chains/parameter-updater/examples}/simple-updates.js +8 -5
- package/dist/prompts/chains/parameter-updater/examples/simple-updates.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/switch-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/switch-node.js +131 -0
- package/dist/prompts/chains/parameter-updater/examples/switch-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/tool-nodes.d.ts +2 -0
- package/dist/{chains/prompts/examples/advanced/tool-node-examples.js → prompts/chains/parameter-updater/examples/tool-nodes.js} +6 -3
- package/dist/prompts/chains/parameter-updater/examples/tool-nodes.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/gmail.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/gmail.js +28 -0
- package/dist/prompts/chains/parameter-updater/guides/gmail.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/http-request.d.ts +2 -0
- package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/http-request.js +34 -8
- package/dist/prompts/chains/parameter-updater/guides/http-request.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/if-node.d.ts +2 -0
- package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/if-node.js +6 -5
- package/dist/prompts/chains/parameter-updater/guides/if-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/index.d.ts +9 -0
- package/dist/prompts/chains/parameter-updater/guides/index.js +22 -0
- package/dist/prompts/chains/parameter-updater/guides/index.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/resource-locator.d.ts +2 -0
- package/dist/{chains/prompts/parameter-types → prompts/chains/parameter-updater/guides}/resource-locator.js +6 -2
- package/dist/prompts/chains/parameter-updater/guides/resource-locator.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/set-node.d.ts +2 -0
- package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/set-node.js +5 -2
- package/dist/prompts/chains/parameter-updater/guides/set-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/switch-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/switch-node.js +75 -0
- package/dist/prompts/chains/parameter-updater/guides/switch-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/system-message.d.ts +2 -0
- package/dist/{chains/prompts/parameter-types → prompts/chains/parameter-updater/guides}/system-message.js +25 -4
- package/dist/prompts/chains/parameter-updater/guides/system-message.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/text-fields.d.ts +2 -0
- package/dist/{chains/prompts/parameter-types → prompts/chains/parameter-updater/guides}/text-fields.js +11 -2
- package/dist/prompts/chains/parameter-updater/guides/text-fields.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/tool-nodes.d.ts +2 -0
- package/dist/{chains/prompts/node-types → prompts/chains/parameter-updater/guides}/tool-nodes.js +5 -2
- package/dist/prompts/chains/parameter-updater/guides/tool-nodes.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/index.d.ts +8 -0
- package/dist/prompts/chains/parameter-updater/index.js +35 -0
- package/dist/prompts/chains/parameter-updater/index.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/instance-url.d.ts +1 -0
- package/dist/{chains/prompts → prompts/chains/parameter-updater}/instance-url.js +5 -6
- package/dist/prompts/chains/parameter-updater/instance-url.js.map +1 -0
- package/dist/{chains/prompts/base/core-instructions.d.ts → prompts/chains/parameter-updater/parameter-updater.prompt.d.ts} +3 -0
- package/dist/{chains/prompts/base/core-instructions.js → prompts/chains/parameter-updater/parameter-updater.prompt.js} +25 -2
- package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/registry.d.ts +4 -0
- package/dist/prompts/chains/parameter-updater/registry.js +65 -0
- package/dist/prompts/chains/parameter-updater/registry.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/types.d.ts +18 -0
- package/dist/prompts/chains/parameter-updater/types.js +3 -0
- package/dist/prompts/chains/parameter-updater/types.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/utils.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/utils.js +16 -0
- package/dist/prompts/chains/parameter-updater/utils.js.map +1 -0
- package/dist/prompts/chains/workflow-name.prompt.d.ts +2 -0
- package/dist/prompts/chains/workflow-name.prompt.js +11 -0
- package/dist/prompts/chains/workflow-name.prompt.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.js +50 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/{tools/prompts/main-agent.prompt.js → prompts/legacy-agent.prompt.js} +14 -31
- package/dist/prompts/legacy-agent.prompt.js.map +1 -0
- package/dist/subgraphs/builder.subgraph.d.ts +2 -0
- package/dist/subgraphs/builder.subgraph.js +2 -163
- package/dist/subgraphs/builder.subgraph.js.map +1 -1
- package/dist/subgraphs/configurator.subgraph.d.ts +2 -0
- package/dist/subgraphs/configurator.subgraph.js +3 -84
- package/dist/subgraphs/configurator.subgraph.js.map +1 -1
- package/dist/subgraphs/discovery.subgraph.d.ts +18 -0
- package/dist/subgraphs/discovery.subgraph.js +28 -220
- package/dist/subgraphs/discovery.subgraph.js.map +1 -1
- package/dist/tools/add-node.tool.js +1 -1
- package/dist/tools/best-practices/chatbot.js +6 -7
- package/dist/tools/best-practices/chatbot.js.map +1 -1
- package/dist/tools/best-practices/content-generation.js +38 -2
- package/dist/tools/best-practices/content-generation.js.map +1 -1
- package/dist/tools/best-practices/data-transformation.js +17 -22
- package/dist/tools/best-practices/data-transformation.js.map +1 -1
- package/dist/tools/best-practices/index.js +2 -1
- package/dist/tools/best-practices/index.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/coordination.d.ts +8 -2
- package/dist/types/coordination.js +4 -0
- package/dist/types/coordination.js.map +1 -1
- package/dist/types/discovery-types.d.ts +2 -0
- package/dist/utils/coordination-log.d.ts +2 -1
- package/dist/utils/coordination-log.js.map +1 -1
- package/dist/utils/state-modifier.d.ts +32 -0
- package/dist/utils/state-modifier.js +112 -0
- package/dist/utils/state-modifier.js.map +1 -0
- package/dist/utils/state-reducers.d.ts +4 -0
- package/dist/utils/state-reducers.js +25 -0
- package/dist/utils/state-reducers.js.map +1 -0
- package/dist/utils/stream-processor.js +2 -30
- package/dist/utils/stream-processor.js.map +1 -1
- package/dist/utils/subgraph-helpers.d.ts +3 -0
- package/dist/utils/subgraph-helpers.js +23 -0
- package/dist/utils/subgraph-helpers.js.map +1 -1
- package/dist/validation/checks/connections.js +6 -14
- package/dist/validation/checks/connections.js.map +1 -1
- package/dist/validation/checks/credentials.d.ts +3 -0
- package/dist/validation/checks/credentials.js +125 -0
- package/dist/validation/checks/credentials.js.map +1 -0
- package/dist/validation/checks/index.d.ts +1 -0
- package/dist/validation/checks/index.js +3 -1
- package/dist/validation/checks/index.js.map +1 -1
- package/dist/validation/checks/tools.js +0 -10
- package/dist/validation/checks/tools.js.map +1 -1
- package/dist/validation/programmatic.js +2 -0
- package/dist/validation/programmatic.js.map +1 -1
- package/dist/validation/types.d.ts +4 -1
- package/dist/validation/types.js +2 -0
- package/dist/validation/types.js.map +1 -1
- package/dist/workflow-builder-agent.d.ts +7 -3
- package/dist/workflow-builder-agent.js +24 -15
- package/dist/workflow-builder-agent.js.map +1 -1
- package/dist/workflow-state.js +3 -14
- package/dist/workflow-state.js.map +1 -1
- package/package.json +8 -7
- package/dist/chains/prompts/base/common-patterns.d.ts +0 -1
- package/dist/chains/prompts/base/common-patterns.js +0 -13
- package/dist/chains/prompts/base/common-patterns.js.map +0 -1
- package/dist/chains/prompts/base/core-instructions.js.map +0 -1
- package/dist/chains/prompts/base/expression-rules.d.ts +0 -1
- package/dist/chains/prompts/base/expression-rules.js +0 -15
- package/dist/chains/prompts/base/expression-rules.js.map +0 -1
- package/dist/chains/prompts/base/output-format.d.ts +0 -1
- package/dist/chains/prompts/base/output-format.js +0 -7
- package/dist/chains/prompts/base/output-format.js.map +0 -1
- package/dist/chains/prompts/examples/advanced/resource-locator-examples.d.ts +0 -1
- package/dist/chains/prompts/examples/advanced/resource-locator-examples.js.map +0 -1
- package/dist/chains/prompts/examples/advanced/tool-node-examples.d.ts +0 -1
- package/dist/chains/prompts/examples/advanced/tool-node-examples.js.map +0 -1
- package/dist/chains/prompts/examples/basic/if-node-examples.d.ts +0 -1
- package/dist/chains/prompts/examples/basic/if-node-examples.js.map +0 -1
- package/dist/chains/prompts/examples/basic/set-node-examples.d.ts +0 -1
- package/dist/chains/prompts/examples/basic/set-node-examples.js.map +0 -1
- package/dist/chains/prompts/examples/basic/simple-updates.d.ts +0 -1
- package/dist/chains/prompts/examples/basic/simple-updates.js.map +0 -1
- package/dist/chains/prompts/instance-url.d.ts +0 -1
- package/dist/chains/prompts/instance-url.js.map +0 -1
- package/dist/chains/prompts/node-types/http-request.d.ts +0 -1
- package/dist/chains/prompts/node-types/http-request.js.map +0 -1
- package/dist/chains/prompts/node-types/if-node.d.ts +0 -1
- package/dist/chains/prompts/node-types/if-node.js.map +0 -1
- package/dist/chains/prompts/node-types/set-node.d.ts +0 -1
- package/dist/chains/prompts/node-types/set-node.js.map +0 -1
- package/dist/chains/prompts/node-types/tool-nodes.d.ts +0 -1
- package/dist/chains/prompts/node-types/tool-nodes.js.map +0 -1
- package/dist/chains/prompts/parameter-types/resource-locator.d.ts +0 -1
- package/dist/chains/prompts/parameter-types/resource-locator.js.map +0 -1
- package/dist/chains/prompts/parameter-types/system-message.d.ts +0 -1
- package/dist/chains/prompts/parameter-types/system-message.js.map +0 -1
- package/dist/chains/prompts/parameter-types/text-fields.d.ts +0 -1
- package/dist/chains/prompts/parameter-types/text-fields.js.map +0 -1
- package/dist/chains/prompts/prompt-builder.d.ts +0 -15
- package/dist/chains/prompts/prompt-builder.js +0 -140
- package/dist/chains/prompts/prompt-builder.js.map +0 -1
- package/dist/chains/prompts/prompt-config.d.ts +0 -5
- package/dist/chains/prompts/prompt-config.js +0 -52
- package/dist/chains/prompts/prompt-config.js.map +0 -1
- package/dist/tools/prompts/main-agent.prompt.js.map +0 -1
- /package/dist/{tools/prompts/main-agent.prompt.d.ts → prompts/legacy-agent.prompt.d.ts} +0 -0
|
@@ -4,6 +4,7 @@ exports.BuilderSubgraph = exports.BuilderSubgraphState = void 0;
|
|
|
4
4
|
const prompts_1 = require("@langchain/core/prompts");
|
|
5
5
|
const langgraph_1 = require("@langchain/langgraph");
|
|
6
6
|
const errors_1 = require("../errors");
|
|
7
|
+
const builder_prompt_1 = require("../prompts/agents/builder.prompt");
|
|
7
8
|
const subgraph_interface_1 = require("./subgraph-interface");
|
|
8
9
|
const add_node_tool_1 = require("../tools/add-node.tool");
|
|
9
10
|
const connect_nodes_tool_1 = require("../tools/connect-nodes.tool");
|
|
@@ -15,168 +16,6 @@ const cache_control_1 = require("../utils/cache-control");
|
|
|
15
16
|
const context_builders_1 = require("../utils/context-builders");
|
|
16
17
|
const operations_processor_1 = require("../utils/operations-processor");
|
|
17
18
|
const subgraph_helpers_1 = require("../utils/subgraph-helpers");
|
|
18
|
-
const BUILDER_PROMPT = `You are a Builder Agent specialized in constructing n8n workflows.
|
|
19
|
-
|
|
20
|
-
MANDATORY EXECUTION SEQUENCE:
|
|
21
|
-
You MUST follow these steps IN ORDER. Do not skip any step.
|
|
22
|
-
|
|
23
|
-
STEP 1: CREATE NODES
|
|
24
|
-
- Call add_nodes for EVERY node needed based on discovery results
|
|
25
|
-
- Create multiple nodes in PARALLEL for efficiency
|
|
26
|
-
- Do NOT respond with text - START BUILDING immediately
|
|
27
|
-
|
|
28
|
-
STEP 2: CONNECT NODES
|
|
29
|
-
- Call connect_nodes for ALL required connections
|
|
30
|
-
- Connect multiple node pairs in PARALLEL
|
|
31
|
-
|
|
32
|
-
STEP 3: VALIDATE (REQUIRED)
|
|
33
|
-
- After ALL nodes and connections are created, call validate_structure
|
|
34
|
-
- This step is MANDATORY - you cannot finish without it
|
|
35
|
-
- If validation finds issues (missing trigger, invalid connections), fix them and validate again
|
|
36
|
-
|
|
37
|
-
STEP 4: RESPOND TO USER
|
|
38
|
-
- Only after validation passes, provide your brief summary
|
|
39
|
-
|
|
40
|
-
⚠️ NEVER respond to the user without calling validate_structure first ⚠️
|
|
41
|
-
|
|
42
|
-
NODE CREATION:
|
|
43
|
-
Each add_nodes call creates ONE node. You must provide:
|
|
44
|
-
- nodeType: The exact type from discovery (e.g., "n8n-nodes-base.httpRequest")
|
|
45
|
-
- name: Descriptive name (e.g., "Fetch Weather Data")
|
|
46
|
-
- connectionParametersReasoning: Explain your thinking about connection parameters
|
|
47
|
-
- connectionParameters: Parameters that affect connections (or {{}} if none needed)
|
|
48
|
-
|
|
49
|
-
<workflow_configuration_node>
|
|
50
|
-
Always include a Workflow Configuration node at the start of every workflow.
|
|
51
|
-
|
|
52
|
-
The Workflow Configuration node (n8n-nodes-base.set) should be placed immediately after the trigger node and before all other processing nodes.
|
|
53
|
-
|
|
54
|
-
Placement rules:
|
|
55
|
-
- Add between trigger and first processing node
|
|
56
|
-
- Connect: Trigger → Workflow Configuration → First processing node
|
|
57
|
-
- Name it "Workflow Configuration"
|
|
58
|
-
</workflow_configuration_node>
|
|
59
|
-
|
|
60
|
-
<data_parsing_strategy>
|
|
61
|
-
For AI-generated structured data, prefer Structured Output Parser nodes over Code nodes.
|
|
62
|
-
For binary file data, use Extract From File node to extract content from files before processing.
|
|
63
|
-
Use Code nodes only for custom business logic beyond parsing.
|
|
64
|
-
</data_parsing_strategy>
|
|
65
|
-
|
|
66
|
-
<proactive_design>
|
|
67
|
-
Anticipate workflow needs:
|
|
68
|
-
- IF nodes for conditional logic when multiple outcomes exist
|
|
69
|
-
- Set nodes for data transformation between incompatible formats
|
|
70
|
-
- Schedule Triggers for recurring tasks
|
|
71
|
-
- Error handling for external service calls
|
|
72
|
-
|
|
73
|
-
NEVER use Split In Batches nodes.
|
|
74
|
-
</proactive_design>
|
|
75
|
-
|
|
76
|
-
<node_defaults_warning>
|
|
77
|
-
CRITICAL: NEVER RELY ON DEFAULT PARAMETER VALUES FOR CONNECTIONS
|
|
78
|
-
|
|
79
|
-
Default values often hide connection inputs/outputs. You MUST explicitly configure parameters that affect connections:
|
|
80
|
-
- Vector Store: Mode parameter affects available connections - always set explicitly (e.g., mode: "insert", "retrieve", "retrieve-as-tool")
|
|
81
|
-
- AI Agent: hasOutputParser default may not match your workflow needs
|
|
82
|
-
- Document Loader: textSplittingMode affects whether it accepts a text splitter input
|
|
83
|
-
|
|
84
|
-
ALWAYS check node details and set connectionParameters explicitly.
|
|
85
|
-
</node_defaults_warning>
|
|
86
|
-
|
|
87
|
-
CONNECTION PARAMETERS EXAMPLES:
|
|
88
|
-
- Static nodes (HTTP Request, Set, Code): reasoning="Static inputs/outputs", parameters={{}}
|
|
89
|
-
- AI Agent with parser: reasoning="hasOutputParser creates additional input", parameters={{ hasOutputParser: true }}
|
|
90
|
-
- Vector Store insert: reasoning="Insert mode requires document input", parameters={{ mode: "insert" }}
|
|
91
|
-
- Document Loader custom: reasoning="Custom mode enables text splitter input", parameters={{ textSplittingMode: "custom" }}
|
|
92
|
-
|
|
93
|
-
<node_connections_understanding>
|
|
94
|
-
n8n connections flow from SOURCE (output) to TARGET (input).
|
|
95
|
-
|
|
96
|
-
Regular data flow: Source node output → Target node input
|
|
97
|
-
Example: HTTP Request → Set (HTTP Request is source, Set is target)
|
|
98
|
-
|
|
99
|
-
AI sub-nodes PROVIDE capabilities, making them the SOURCE:
|
|
100
|
-
- OpenAI Chat Model → AI Agent [ai_languageModel]
|
|
101
|
-
- Calculator Tool → AI Agent [ai_tool]
|
|
102
|
-
- Window Buffer Memory → AI Agent [ai_memory]
|
|
103
|
-
- Token Splitter → Default Data Loader [ai_textSplitter]
|
|
104
|
-
- Default Data Loader → Vector Store [ai_document]
|
|
105
|
-
- Embeddings OpenAI → Vector Store [ai_embedding]
|
|
106
|
-
</node_connections_understanding>
|
|
107
|
-
|
|
108
|
-
<agent_node_distinction>
|
|
109
|
-
Distinguish between two different agent node types:
|
|
110
|
-
|
|
111
|
-
1. **AI Agent** (@n8n/n8n-nodes-langchain.agent)
|
|
112
|
-
- Main workflow node that orchestrates AI tasks
|
|
113
|
-
- Use for: Primary AI logic, chatbots, autonomous workflows
|
|
114
|
-
|
|
115
|
-
2. **AI Agent Tool** (@n8n/n8n-nodes-langchain.agentTool)
|
|
116
|
-
- Sub-node that acts as a tool for another AI Agent
|
|
117
|
-
- Use for: Multi-agent systems where one agent calls another
|
|
118
|
-
|
|
119
|
-
Default assumption: When discovery results include "agent", use AI Agent
|
|
120
|
-
unless explicitly specified as "agent tool" or "sub-agent".
|
|
121
|
-
</agent_node_distinction>
|
|
122
|
-
|
|
123
|
-
<rag_workflow_pattern>
|
|
124
|
-
For RAG (Retrieval-Augmented Generation) workflows:
|
|
125
|
-
|
|
126
|
-
Main data flow:
|
|
127
|
-
- Data source (e.g., HTTP Request) → Vector Store [main connection]
|
|
128
|
-
|
|
129
|
-
AI capability connections:
|
|
130
|
-
- Document Loader → Vector Store [ai_document]
|
|
131
|
-
- Embeddings → Vector Store [ai_embedding]
|
|
132
|
-
- Text Splitter → Document Loader [ai_textSplitter]
|
|
133
|
-
|
|
134
|
-
Common mistake to avoid:
|
|
135
|
-
- NEVER connect Document Loader to main data outputs
|
|
136
|
-
- Document Loader is an AI sub-node that gives Vector Store document processing capability
|
|
137
|
-
</rag_workflow_pattern>
|
|
138
|
-
|
|
139
|
-
<connection_type_examples>
|
|
140
|
-
**Main Connections** (regular data flow):
|
|
141
|
-
- Trigger → HTTP Request → Set → Email
|
|
142
|
-
|
|
143
|
-
**AI Language Model Connections** (ai_languageModel):
|
|
144
|
-
- OpenAI Chat Model → AI Agent
|
|
145
|
-
|
|
146
|
-
**AI Tool Connections** (ai_tool):
|
|
147
|
-
- Calculator Tool → AI Agent
|
|
148
|
-
- AI Agent Tool → AI Agent (for multi-agent systems)
|
|
149
|
-
|
|
150
|
-
**AI Document Connections** (ai_document):
|
|
151
|
-
- Document Loader → Vector Store
|
|
152
|
-
|
|
153
|
-
**AI Embedding Connections** (ai_embedding):
|
|
154
|
-
- OpenAI Embeddings → Vector Store
|
|
155
|
-
|
|
156
|
-
**AI Text Splitter Connections** (ai_textSplitter):
|
|
157
|
-
- Token Text Splitter → Document Loader
|
|
158
|
-
|
|
159
|
-
**AI Memory Connections** (ai_memory):
|
|
160
|
-
- Window Buffer Memory → AI Agent
|
|
161
|
-
|
|
162
|
-
**AI Vector Store in retrieve-as-tool mode** (ai_tool):
|
|
163
|
-
- Vector Store → AI Agent
|
|
164
|
-
</connection_type_examples>
|
|
165
|
-
|
|
166
|
-
DO NOT:
|
|
167
|
-
- Respond before calling validate_structure
|
|
168
|
-
- Skip validation even if you think structure is correct
|
|
169
|
-
- Add commentary between tool calls - execute tools silently
|
|
170
|
-
- Configure node parameters (that's the Configurator Agent's job)
|
|
171
|
-
- Search for nodes (that's the Discovery Agent's job)
|
|
172
|
-
- Make assumptions about node types - use exactly what Discovery found
|
|
173
|
-
|
|
174
|
-
RESPONSE FORMAT (only after validation):
|
|
175
|
-
Provide ONE brief text message summarizing:
|
|
176
|
-
- What nodes were added
|
|
177
|
-
- How they're connected
|
|
178
|
-
|
|
179
|
-
Example: "Created 4 nodes: Trigger → Weather → Image Generation → Email"`;
|
|
180
19
|
exports.BuilderSubgraphState = langgraph_1.Annotation.Root({
|
|
181
20
|
workflowJSON: (0, langgraph_1.Annotation)({
|
|
182
21
|
reducer: (x, y) => y ?? x,
|
|
@@ -226,7 +65,7 @@ class BuilderSubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
226
65
|
[
|
|
227
66
|
{
|
|
228
67
|
type: 'text',
|
|
229
|
-
text:
|
|
68
|
+
text: (0, builder_prompt_1.buildBuilderPrompt)(),
|
|
230
69
|
cache_control: { type: 'ephemeral' },
|
|
231
70
|
},
|
|
232
71
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.subgraph.js","sourceRoot":"","sources":["../../src/subgraphs/builder.subgraph.ts"],"names":[],"mappings":";;;AAEA,qDAA6D;AAE7D,oDAA8D;AAI9D,qCAA2C;
|
|
1
|
+
{"version":3,"file":"builder.subgraph.js","sourceRoot":"","sources":["../../src/subgraphs/builder.subgraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,8 @@ export declare class ConfiguratorSubgraph extends BaseSubgraph<ConfiguratorSubgr
|
|
|
107
107
|
tools: {
|
|
108
108
|
messages?: BaseMessage[];
|
|
109
109
|
workflowOperations?: WorkflowOperation[] | null;
|
|
110
|
+
templateIds?: number[];
|
|
111
|
+
nodeConfigurations?: import("..").NodeConfigurationsMap;
|
|
110
112
|
};
|
|
111
113
|
}, unknown, unknown>;
|
|
112
114
|
transformInput(parentState: typeof ParentGraphState.State): {
|
|
@@ -4,6 +4,7 @@ exports.ConfiguratorSubgraph = exports.ConfiguratorSubgraphState = void 0;
|
|
|
4
4
|
const prompts_1 = require("@langchain/core/prompts");
|
|
5
5
|
const langgraph_1 = require("@langchain/langgraph");
|
|
6
6
|
const errors_1 = require("../errors");
|
|
7
|
+
const configurator_prompt_1 = require("../prompts/agents/configurator.prompt");
|
|
7
8
|
const subgraph_interface_1 = require("./subgraph-interface");
|
|
8
9
|
const get_node_parameter_tool_1 = require("../tools/get-node-parameter.tool");
|
|
9
10
|
const update_node_parameters_tool_1 = require("../tools/update-node-parameters.tool");
|
|
@@ -14,88 +15,6 @@ const cache_control_1 = require("../utils/cache-control");
|
|
|
14
15
|
const context_builders_1 = require("../utils/context-builders");
|
|
15
16
|
const operations_processor_1 = require("../utils/operations-processor");
|
|
16
17
|
const subgraph_helpers_1 = require("../utils/subgraph-helpers");
|
|
17
|
-
const CONFIGURATOR_PROMPT = `You are a Configurator Agent specialized in setting up n8n node parameters.
|
|
18
|
-
|
|
19
|
-
MANDATORY EXECUTION SEQUENCE:
|
|
20
|
-
You MUST follow these steps IN ORDER. Do not skip any step.
|
|
21
|
-
|
|
22
|
-
STEP 1: CONFIGURE ALL NODES
|
|
23
|
-
- Call update_node_parameters for EVERY node in the workflow
|
|
24
|
-
- Configure multiple nodes in PARALLEL for efficiency
|
|
25
|
-
- Do NOT respond with text - START CONFIGURING immediately
|
|
26
|
-
|
|
27
|
-
STEP 2: VALIDATE (REQUIRED)
|
|
28
|
-
- After ALL configurations complete, call validate_configuration
|
|
29
|
-
- This step is MANDATORY - you cannot finish without it
|
|
30
|
-
- If validation finds issues, fix them and validate again
|
|
31
|
-
|
|
32
|
-
STEP 3: RESPOND TO USER
|
|
33
|
-
- Only after validation passes, provide your response
|
|
34
|
-
|
|
35
|
-
NEVER respond to the user without calling validate_configuration first
|
|
36
|
-
|
|
37
|
-
WORKFLOW JSON DETECTION:
|
|
38
|
-
- You receive <current_workflow_json> in your context
|
|
39
|
-
- If you see nodes in the workflow JSON, you MUST configure them IMMEDIATELY
|
|
40
|
-
- Look at the workflow JSON, identify each node, and call update_node_parameters for ALL of them
|
|
41
|
-
|
|
42
|
-
PARAMETER CONFIGURATION:
|
|
43
|
-
Use update_node_parameters with natural language instructions:
|
|
44
|
-
- "Set URL to https://api.example.com/weather"
|
|
45
|
-
- "Add header Authorization: Bearer token"
|
|
46
|
-
- "Set method to POST"
|
|
47
|
-
- "Add field 'status' with value 'processed'"
|
|
48
|
-
|
|
49
|
-
SPECIAL EXPRESSIONS FOR TOOL NODES:
|
|
50
|
-
Tool nodes (types ending in "Tool") support $fromAI expressions:
|
|
51
|
-
- "Set sendTo to ={{ $fromAI('to') }}"
|
|
52
|
-
- "Set subject to ={{ $fromAI('subject') }}"
|
|
53
|
-
- "Set message to ={{ $fromAI('message_html') }}"
|
|
54
|
-
- "Set timeMin to ={{ $fromAI('After', '', 'string') }}"
|
|
55
|
-
|
|
56
|
-
$fromAI syntax: ={{ $fromAI('key', 'description', 'type', defaultValue) }}
|
|
57
|
-
- ONLY use in tool nodes (check node type ends with "Tool")
|
|
58
|
-
- Use for dynamic values that AI determines at runtime
|
|
59
|
-
- For regular nodes, use static values or standard expressions
|
|
60
|
-
|
|
61
|
-
CRITICAL PARAMETERS TO ALWAYS SET:
|
|
62
|
-
- HTTP Request: URL, method, headers (if auth needed)
|
|
63
|
-
- Set node: Fields to set with values
|
|
64
|
-
- Code node: The actual code to execute
|
|
65
|
-
- IF node: Conditions to check
|
|
66
|
-
- Document Loader: dataType parameter ('binary' for files like PDF, 'json' for JSON data)
|
|
67
|
-
- AI nodes: Prompts, models, configurations
|
|
68
|
-
- Tool nodes: Use $fromAI for dynamic recipient/subject/message fields
|
|
69
|
-
|
|
70
|
-
NEVER RELY ON DEFAULT VALUES:
|
|
71
|
-
Defaults are traps that cause runtime failures. Examples:
|
|
72
|
-
- Document Loader defaults to 'json' but MUST be 'binary' when processing files
|
|
73
|
-
- HTTP Request defaults to GET but APIs often need POST
|
|
74
|
-
- Vector Store mode affects available connections - set explicitly (retrieve-as-tool when using with AI Agent)
|
|
75
|
-
|
|
76
|
-
<response_format>
|
|
77
|
-
After validation passes, provide a concise summary:
|
|
78
|
-
- List any placeholders requiring user configuration (e.g., "URL placeholder needs actual endpoint")
|
|
79
|
-
- Note which nodes were configured and key settings applied
|
|
80
|
-
- Keep it brief - this output is used for coordination with other LLM agents, not displayed directly to users
|
|
81
|
-
</response_format>
|
|
82
|
-
|
|
83
|
-
DO NOT:
|
|
84
|
-
- Respond before calling validate_configuration
|
|
85
|
-
- Skip validation even if you think configuration is correct
|
|
86
|
-
- Add commentary between tool calls - execute tools silently`;
|
|
87
|
-
const INSTANCE_URL_PROMPT = `
|
|
88
|
-
<instance_url>
|
|
89
|
-
The n8n instance base URL is: {instanceUrl}
|
|
90
|
-
|
|
91
|
-
This URL is essential for webhook nodes and chat triggers as it provides the base URL for:
|
|
92
|
-
- Webhook URLs that external services need to call
|
|
93
|
-
- Chat trigger URLs for conversational interfaces
|
|
94
|
-
- Any node that requires the full instance URL to generate proper callback URLs
|
|
95
|
-
|
|
96
|
-
When working with webhook or chat trigger nodes, use this URL as the base for constructing proper endpoint URLs.
|
|
97
|
-
</instance_url>
|
|
98
|
-
`;
|
|
99
18
|
exports.ConfiguratorSubgraphState = langgraph_1.Annotation.Root({
|
|
100
19
|
workflowJSON: (0, langgraph_1.Annotation)({
|
|
101
20
|
reducer: (x, y) => y ?? x,
|
|
@@ -151,11 +70,11 @@ class ConfiguratorSubgraph extends subgraph_interface_1.BaseSubgraph {
|
|
|
151
70
|
[
|
|
152
71
|
{
|
|
153
72
|
type: 'text',
|
|
154
|
-
text:
|
|
73
|
+
text: (0, configurator_prompt_1.buildConfiguratorPrompt)(),
|
|
155
74
|
},
|
|
156
75
|
{
|
|
157
76
|
type: 'text',
|
|
158
|
-
text: INSTANCE_URL_PROMPT,
|
|
77
|
+
text: configurator_prompt_1.INSTANCE_URL_PROMPT,
|
|
159
78
|
cache_control: { type: 'ephemeral' },
|
|
160
79
|
},
|
|
161
80
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurator.subgraph.js","sourceRoot":"","sources":["../../src/subgraphs/configurator.subgraph.ts"],"names":[],"mappings":";;;AAEA,qDAA6D;AAG7D,oDAA8D;AAI9D,qCAA2C;
|
|
1
|
+
{"version":3,"file":"configurator.subgraph.js","sourceRoot":"","sources":["../../src/subgraphs/configurator.subgraph.ts"],"names":[],"mappings":";;;AAEA,qDAA6D;AAG7D,oDAA8D;AAI9D,qCAA2C;AAC3C,8EAAoG;AAEpG,6DAAoD;AAEpD,8EAA8E;AAC9E,sFAAsF;AACtF,sFAAuF;AAEvF,wDAAmE;AAEnE,kDAAmD;AAEnD,0DAAmE;AACnE,gEAImC;AACnC,wEAAkE;AAClE,gEAImC;AAMtB,QAAA,yBAAyB,GAAG,sBAAU,CAAC,IAAI,CAAC;IAExD,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;IAGF,eAAe,EAAE,IAAA,sBAAU,EAA6C;QACvE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;KACzB,CAAC;IAGF,WAAW,EAAE,IAAA,sBAAU,EAAS;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAGF,WAAW,EAAE,IAAA,sBAAU,EAAS;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAGF,gBAAgB,EAAE,IAAA,sBAAU,EAA0B;QACrD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACnB,CAAC;IAGF,QAAQ,EAAE,IAAA,sBAAU,EAAgB;QACnC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAGF,kBAAkB,EAAE,IAAA,sBAAU,EAA6B;QAC1D,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;CACF,CAAC,CAAC;AASH,MAAa,oBAAqB,SAAQ,iCAIzC;IACA,IAAI,GAAG,uBAAuB,CAAC;IAC/B,WAAW,GAAG,qDAAqD,CAAC;IAE5D,KAAK,CAAY;IACjB,OAAO,CAA+B;IACtC,WAAW,GAAW,EAAE,CAAC;IAEjC,MAAM,CAAC,MAAkC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAE5C,MAAM,KAAK,GAAG;YACb,IAAA,4DAA8B,EAC7B,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,CAClB;YACD,IAAA,oDAA0B,GAAE;YAC5B,IAAA,6DAA+B,EAAC,MAAM,CAAC,eAAe,CAAC;SACvD,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAyB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3F,MAAM,oBAAoB,GAAG,4BAAkB,CAAC,YAAY,CAAC;YAC5D;gBACC,QAAQ;gBACR;oBACC;wBACC,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAA,6CAAuB,GAAE;qBAC/B;oBACD;wBACC,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yCAAmB;wBACzB,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;qBACpC;iBACD;aACD;YACD,CAAC,aAAa,EAAE,YAAY,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,wBAAe,CAAC,4BAA4B,EAAE;gBACvD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;aAC/B,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAMzF,MAAM,SAAS,GAAG,KAAK,EAAE,KAA6C,EAAE,EAAE;YAEzE,IAAA,yCAAyB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAG1C,MAAM,QAAQ,GAAY,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjD,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,yBAAa,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,wBAAe,CAAC,mDAAmD,CAAC,CAAC;YAChF,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC;QAGF,MAAM,QAAQ,GAAG,IAAI,sBAAU,CAAC,iCAAyB,CAAC;aACxD,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;aAC3B,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,IAAA,uCAAoB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAClF,OAAO,CAAC,oBAAoB,EAAE,wCAAiB,CAAC;aAChD,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;aAE7B,mBAAmB,CAAC,OAAO,EAAE,IAAA,+CAA4B,GAAE,CAAC;aAC5D,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC;aACtC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAEzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,WAA0C;QACxD,MAAM,WAAW,GAAG,IAAA,qCAAkB,EAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAG7D,MAAM,YAAY,GAAa,EAAE,CAAC;QAGlC,IAAI,WAAW,EAAE,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC1C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAGD,IAAI,WAAW,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC;YACjD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAGD,YAAY,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnD,YAAY,CAAC,IAAI,CAAC,IAAA,yCAAsB,EAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAGpE,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,IAAA,6CAA0B,EAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QAG3E,MAAM,cAAc,GAAG,IAAA,uCAAoB,EAAC,YAAY,CAAC,CAAC;QAE1D,OAAO;YACN,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW;YACX,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC1B,CAAC;IACH,CAAC;IAED,eAAe,CACd,cAAsD,EACtD,YAA2C;QAG3C,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChF,MAAM,iBAAiB,GACtB,OAAO,WAAW,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAE3F,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACjE,MAAM,oBAAoB,GACzB,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC;QAG/B,MAAM,QAAQ,GAAyB;YACtC,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,cAAc,eAAe,QAAQ;YAC9C,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE,IAAA,yCAA0B,EAAC;gBACpC,eAAe;gBACf,oBAAoB;aACpB,CAAC;SACF,CAAC;QAEF,OAAO;YACN,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,IAAI,EAAE;YAC3D,eAAe,EAAE,CAAC,QAAQ,CAAC;SAE3B,CAAC;IACH,CAAC;CACD;AAjKD,oDAiKC"}
|
|
@@ -2,9 +2,11 @@ import type { BaseChatModel } from '@langchain/core/language_models/chat_models'
|
|
|
2
2
|
import type { BaseMessage, AIMessage } from '@langchain/core/messages';
|
|
3
3
|
import type { Logger } from '@n8n/backend-common';
|
|
4
4
|
import type { INodeTypeDescription } from 'n8n-workflow';
|
|
5
|
+
import type { BuilderFeatureFlags } from '../workflow-builder-agent';
|
|
5
6
|
import { BaseSubgraph } from './subgraph-interface';
|
|
6
7
|
import type { ParentGraphState } from '../parent-graph-state';
|
|
7
8
|
import type { CoordinationLogEntry } from '../types/coordination';
|
|
9
|
+
import type { NodeConfigurationsMap } from '../types/tools';
|
|
8
10
|
export declare const DiscoverySubgraphState: import("@langchain/langgraph").AnnotationRoot<{
|
|
9
11
|
userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
10
12
|
messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[], BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[]>;
|
|
@@ -26,11 +28,14 @@ export declare const DiscoverySubgraphState: import("@langchain/langgraph").Anno
|
|
|
26
28
|
}>;
|
|
27
29
|
}[]>;
|
|
28
30
|
bestPractices: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
31
|
+
templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
|
|
32
|
+
nodeConfigurations: import("@langchain/langgraph").BinaryOperatorAggregate<NodeConfigurationsMap, NodeConfigurationsMap>;
|
|
29
33
|
}>;
|
|
30
34
|
export interface DiscoverySubgraphConfig {
|
|
31
35
|
parsedNodeTypes: INodeTypeDescription[];
|
|
32
36
|
llm: BaseChatModel;
|
|
33
37
|
logger?: Logger;
|
|
38
|
+
featureFlags?: BuilderFeatureFlags;
|
|
34
39
|
}
|
|
35
40
|
export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphConfig, typeof DiscoverySubgraphState.State, typeof ParentGraphState.State> {
|
|
36
41
|
name: string;
|
|
@@ -51,6 +56,8 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
51
56
|
}>;
|
|
52
57
|
}[];
|
|
53
58
|
bestPractices: string | undefined;
|
|
59
|
+
templateIds: number[];
|
|
60
|
+
nodeConfigurations: NodeConfigurationsMap;
|
|
54
61
|
}, {
|
|
55
62
|
userRequest?: string | undefined;
|
|
56
63
|
messages?: BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[] | undefined;
|
|
@@ -64,6 +71,8 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
64
71
|
}>;
|
|
65
72
|
}[] | undefined;
|
|
66
73
|
bestPractices?: string | undefined;
|
|
74
|
+
templateIds?: number[] | undefined;
|
|
75
|
+
nodeConfigurations?: NodeConfigurationsMap | undefined;
|
|
67
76
|
}, "agent" | "tools" | "__start__" | "format_output", {
|
|
68
77
|
userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
69
78
|
messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[], BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[]>;
|
|
@@ -85,6 +94,8 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
85
94
|
}>;
|
|
86
95
|
}[]>;
|
|
87
96
|
bestPractices: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
97
|
+
templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
|
|
98
|
+
nodeConfigurations: import("@langchain/langgraph").BinaryOperatorAggregate<NodeConfigurationsMap, NodeConfigurationsMap>;
|
|
88
99
|
}, {
|
|
89
100
|
userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
90
101
|
messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[], BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[]>;
|
|
@@ -106,6 +117,8 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
106
117
|
}>;
|
|
107
118
|
}[]>;
|
|
108
119
|
bestPractices: import("@langchain/langgraph").BinaryOperatorAggregate<string | undefined, string | undefined>;
|
|
120
|
+
templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
|
|
121
|
+
nodeConfigurations: import("@langchain/langgraph").BinaryOperatorAggregate<NodeConfigurationsMap, NodeConfigurationsMap>;
|
|
109
122
|
}, import("@langchain/langgraph").StateDefinition, {
|
|
110
123
|
agent: {
|
|
111
124
|
messages: AIMessage<import("@langchain/core/messages").MessageStructure>[];
|
|
@@ -113,6 +126,8 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
113
126
|
tools: {
|
|
114
127
|
messages?: BaseMessage[];
|
|
115
128
|
workflowOperations?: import("..").WorkflowOperation[] | null;
|
|
129
|
+
templateIds?: number[];
|
|
130
|
+
nodeConfigurations?: NodeConfigurationsMap;
|
|
116
131
|
};
|
|
117
132
|
}, unknown, unknown>;
|
|
118
133
|
private callAgent;
|
|
@@ -134,7 +149,10 @@ export declare class DiscoverySubgraph extends BaseSubgraph<DiscoverySubgraphCon
|
|
|
134
149
|
}>;
|
|
135
150
|
}[];
|
|
136
151
|
bestPractices: string | undefined;
|
|
152
|
+
nodeConfigurations: NodeConfigurationsMap;
|
|
137
153
|
};
|
|
138
154
|
coordinationLog: CoordinationLogEntry[];
|
|
155
|
+
templateIds: number[];
|
|
156
|
+
nodeConfigurations: NodeConfigurationsMap;
|
|
139
157
|
};
|
|
140
158
|
}
|