@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
|
@@ -3,46 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ResponderAgent = void 0;
|
|
4
4
|
const messages_1 = require("@langchain/core/messages");
|
|
5
5
|
const prompts_1 = require("@langchain/core/prompts");
|
|
6
|
+
const responder_prompt_1 = require("../prompts/agents/responder.prompt");
|
|
6
7
|
const coordination_log_1 = require("../utils/coordination-log");
|
|
7
|
-
const RESPONDER_PROMPT = `You are a helpful AI assistant for n8n workflow automation.
|
|
8
|
-
|
|
9
|
-
You have access to context about what has been built, including:
|
|
10
|
-
- Discovery results (nodes found)
|
|
11
|
-
- Builder output (workflow structure)
|
|
12
|
-
- Configuration summary (setup instructions)
|
|
13
|
-
|
|
14
|
-
FOR WORKFLOW COMPLETION RESPONSES:
|
|
15
|
-
When you receive [Internal Context], synthesize a clean user-facing response:
|
|
16
|
-
1. Summarize what was built in a friendly way
|
|
17
|
-
2. Explain the workflow structure briefly
|
|
18
|
-
3. Include setup instructions if provided
|
|
19
|
-
4. Ask if user wants adjustments
|
|
20
|
-
|
|
21
|
-
Example response structure:
|
|
22
|
-
"I've created your [workflow type] workflow! Here's what it does:
|
|
23
|
-
[Brief explanation of the flow]
|
|
24
|
-
|
|
25
|
-
**Setup Required:**
|
|
26
|
-
[List any configuration steps from the context]
|
|
27
|
-
|
|
28
|
-
Let me know if you'd like to adjust anything."
|
|
29
|
-
|
|
30
|
-
FOR QUESTIONS/CONVERSATIONS:
|
|
31
|
-
- Be friendly and concise
|
|
32
|
-
- Explain n8n capabilities when asked
|
|
33
|
-
- Provide practical examples when helpful
|
|
34
|
-
|
|
35
|
-
RESPONSE STYLE:
|
|
36
|
-
- Keep responses focused and not overly long
|
|
37
|
-
- Use markdown formatting for readability
|
|
38
|
-
- Be conversational and helpful`;
|
|
39
8
|
const systemPrompt = prompts_1.ChatPromptTemplate.fromMessages([
|
|
40
9
|
[
|
|
41
10
|
'system',
|
|
42
11
|
[
|
|
43
12
|
{
|
|
44
13
|
type: 'text',
|
|
45
|
-
text:
|
|
14
|
+
text: (0, responder_prompt_1.buildResponderPrompt)(),
|
|
46
15
|
cache_control: { type: 'ephemeral' },
|
|
47
16
|
},
|
|
48
17
|
],
|
|
@@ -56,6 +25,13 @@ class ResponderAgent {
|
|
|
56
25
|
}
|
|
57
26
|
buildContextMessage(context) {
|
|
58
27
|
const contextParts = [];
|
|
28
|
+
if (context.previousSummary) {
|
|
29
|
+
contextParts.push(`**Previous Conversation Summary:**\n${context.previousSummary}`);
|
|
30
|
+
}
|
|
31
|
+
const stateManagementEntry = context.coordinationLog.find((e) => e.phase === 'state_management');
|
|
32
|
+
if (stateManagementEntry) {
|
|
33
|
+
contextParts.push(`**State Management:** ${stateManagementEntry.summary}`);
|
|
34
|
+
}
|
|
59
35
|
const errorEntry = (0, coordination_log_1.getErrorEntry)(context.coordinationLog);
|
|
60
36
|
if (errorEntry) {
|
|
61
37
|
contextParts.push(`**Error:** An error occurred in the ${errorEntry.phase} phase: ${errorEntry.summary}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responder.agent.js","sourceRoot":"","sources":["../../src/agents/responder.agent.ts"],"names":[],"mappings":";;;AAEA,uDAAwD;AACxD,qDAA6D;
|
|
1
|
+
{"version":3,"file":"responder.agent.js","sourceRoot":"","sources":["../../src/agents/responder.agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,52 +4,16 @@ exports.SupervisorAgent = exports.supervisorRoutingSchema = void 0;
|
|
|
4
4
|
const messages_1 = require("@langchain/core/messages");
|
|
5
5
|
const prompts_1 = require("@langchain/core/prompts");
|
|
6
6
|
const zod_1 = require("zod");
|
|
7
|
+
const supervisor_prompt_1 = require("../prompts/agents/supervisor.prompt");
|
|
7
8
|
const context_builders_1 = require("../utils/context-builders");
|
|
8
9
|
const coordination_log_1 = require("../utils/coordination-log");
|
|
9
|
-
const SUPERVISOR_PROMPT = `You are a Supervisor that routes user requests to specialist agents.
|
|
10
|
-
|
|
11
|
-
AVAILABLE AGENTS:
|
|
12
|
-
- discovery: Find n8n nodes for building/modifying workflows
|
|
13
|
-
- builder: Create nodes and connections (requires discovery first for new node types)
|
|
14
|
-
- configurator: Set parameters on EXISTING nodes (no structural changes)
|
|
15
|
-
- responder: Answer questions, confirm completion (TERMINAL)
|
|
16
|
-
|
|
17
|
-
ROUTING DECISION TREE:
|
|
18
|
-
|
|
19
|
-
1. Is user asking a question or chatting? → responder
|
|
20
|
-
Examples: "what does this do?", "explain the workflow", "thanks"
|
|
21
|
-
|
|
22
|
-
2. Does the request involve NEW or DIFFERENT node types? → discovery
|
|
23
|
-
Examples:
|
|
24
|
-
- "Build a workflow that..." (new workflow)
|
|
25
|
-
- "Use [ServiceB] instead of [ServiceA]" (replacing node type)
|
|
26
|
-
- "Add [some integration]" (new integration)
|
|
27
|
-
- "Switch from [ServiceA] to [ServiceB]" (swapping services)
|
|
28
|
-
|
|
29
|
-
3. Is the request about connecting/disconnecting existing nodes? → builder
|
|
30
|
-
Examples: "Connect node A to node B", "Remove the connection to X"
|
|
31
|
-
|
|
32
|
-
4. Is the request about changing VALUES in existing nodes? → configurator
|
|
33
|
-
Examples:
|
|
34
|
-
- "Change the URL to https://..."
|
|
35
|
-
- "Set the timeout to 30 seconds"
|
|
36
|
-
- "Update the email subject to..."
|
|
37
|
-
|
|
38
|
-
KEY DISTINCTION:
|
|
39
|
-
- "Use [ServiceB] instead of [ServiceA]" = REPLACEMENT = discovery (new node type needed)
|
|
40
|
-
- "Change the [ServiceA] API key" = CONFIGURATION = configurator (same node, different value)
|
|
41
|
-
|
|
42
|
-
OUTPUT:
|
|
43
|
-
- reasoning: One sentence explaining your routing decision
|
|
44
|
-
- next: Agent name`;
|
|
45
10
|
const systemPrompt = prompts_1.ChatPromptTemplate.fromMessages([
|
|
46
11
|
[
|
|
47
12
|
'system',
|
|
48
13
|
[
|
|
49
14
|
{
|
|
50
15
|
type: 'text',
|
|
51
|
-
text:
|
|
52
|
-
'\n\nGiven the conversation above, which agent should act next? Provide your reasoning and selection.',
|
|
16
|
+
text: (0, supervisor_prompt_1.buildSupervisorPrompt)(),
|
|
53
17
|
cache_control: { type: 'ephemeral' },
|
|
54
18
|
},
|
|
55
19
|
],
|
|
@@ -69,6 +33,11 @@ class SupervisorAgent {
|
|
|
69
33
|
}
|
|
70
34
|
buildContextMessage(context) {
|
|
71
35
|
const contextParts = [];
|
|
36
|
+
if (context.previousSummary) {
|
|
37
|
+
contextParts.push('<previous_conversation_summary>');
|
|
38
|
+
contextParts.push(context.previousSummary);
|
|
39
|
+
contextParts.push('</previous_conversation_summary>');
|
|
40
|
+
}
|
|
72
41
|
if (context.workflowJSON.nodes.length > 0) {
|
|
73
42
|
contextParts.push('<workflow_summary>');
|
|
74
43
|
contextParts.push((0, context_builders_1.buildWorkflowSummary)(context.workflowJSON));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.agent.js","sourceRoot":"","sources":["../../src/agents/supervisor.agent.ts"],"names":[],"mappings":";;;AAEA,uDAAwD;AACxD,qDAA6D;AAC7D,6BAAwB;
|
|
1
|
+
{"version":3,"file":"supervisor.agent.js","sourceRoot":"","sources":["../../src/agents/supervisor.agent.ts"],"names":[],"mappings":";;;AAEA,uDAAwD;AACxD,qDAA6D;AAC7D,6BAAwB;AAExB,0EAA2E;AAI3E,gEAAiE;AACjE,gEAAqE;AAErE,MAAM,YAAY,GAAG,4BAAkB,CAAC,YAAY,CAAC;IACpD;QACC,QAAQ;QACR;YACC;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAA,yCAAqB,GAAE;gBAC7B,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aACpC;SACD;KACD;IACD,CAAC,aAAa,EAAE,YAAY,CAAC;CAC7B,CAAC,CAAC;AAKU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IACxF,IAAI,EAAE,OAAC;SACL,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;SAC3D,QAAQ,CAAC,wBAAwB,CAAC;CACpC,CAAC,CAAC;AA4BH,MAAa,eAAe;IACnB,GAAG,CAAgB;IAE3B,YAAY,MAA6B;QACxC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,CAAC;IAKO,mBAAmB,CAAC,OAA0B;QACrD,MAAM,YAAY,GAAa,EAAE,CAAC;QAGlC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACrD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3C,YAAY,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC;QAGD,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,IAAA,uCAAoB,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9D,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC1C,CAAC;QAGD,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,IAAA,2CAAwB,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;YACrE,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,IAAI,uBAAY,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,OAA0B;QACtC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAC9B,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,+BAAuB,EAAE;YACtD,IAAI,EAAE,kBAAkB;SACxB,CAAC,CACF,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,cAAc;YACpC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEpB,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IACzD,CAAC;CACD;AA1DD,0CA0DC"}
|
|
@@ -9,11 +9,12 @@ export declare class AiWorkflowBuilderService {
|
|
|
9
9
|
private readonly logger?;
|
|
10
10
|
private readonly instanceId?;
|
|
11
11
|
private readonly instanceUrl?;
|
|
12
|
+
private readonly n8nVersion?;
|
|
12
13
|
private readonly onCreditsUpdated?;
|
|
13
14
|
private readonly onTelemetryEvent?;
|
|
14
15
|
private readonly parsedNodeTypes;
|
|
15
16
|
private sessionManager;
|
|
16
|
-
constructor(parsedNodeTypes: INodeTypeDescription[], client?: AiAssistantClient | undefined, logger?: Logger | undefined, instanceId?: string | undefined, instanceUrl?: string | undefined, onCreditsUpdated?: OnCreditsUpdated | undefined, onTelemetryEvent?: OnTelemetryEvent | undefined);
|
|
17
|
+
constructor(parsedNodeTypes: INodeTypeDescription[], client?: AiAssistantClient | undefined, logger?: Logger | undefined, instanceId?: string | undefined, instanceUrl?: string | undefined, n8nVersion?: string | undefined, onCreditsUpdated?: OnCreditsUpdated | undefined, onTelemetryEvent?: OnTelemetryEvent | undefined);
|
|
17
18
|
private static getAnthropicClaudeModel;
|
|
18
19
|
private getApiProxyAuthHeaders;
|
|
19
20
|
private setupModels;
|
|
@@ -30,15 +30,17 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
30
30
|
logger;
|
|
31
31
|
instanceId;
|
|
32
32
|
instanceUrl;
|
|
33
|
+
n8nVersion;
|
|
33
34
|
onCreditsUpdated;
|
|
34
35
|
onTelemetryEvent;
|
|
35
36
|
parsedNodeTypes;
|
|
36
37
|
sessionManager;
|
|
37
|
-
constructor(parsedNodeTypes, client, logger, instanceId, instanceUrl, onCreditsUpdated, onTelemetryEvent) {
|
|
38
|
+
constructor(parsedNodeTypes, client, logger, instanceId, instanceUrl, n8nVersion, onCreditsUpdated, onTelemetryEvent) {
|
|
38
39
|
this.client = client;
|
|
39
40
|
this.logger = logger;
|
|
40
41
|
this.instanceId = instanceId;
|
|
41
42
|
this.instanceUrl = instanceUrl;
|
|
43
|
+
this.n8nVersion = n8nVersion;
|
|
42
44
|
this.onCreditsUpdated = onCreditsUpdated;
|
|
43
45
|
this.onTelemetryEvent = onTelemetryEvent;
|
|
44
46
|
this.parsedNodeTypes = this.filterNodeTypes(parsedNodeTypes);
|
|
@@ -54,18 +56,18 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
54
56
|
},
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
|
-
async getApiProxyAuthHeaders(user) {
|
|
59
|
+
async getApiProxyAuthHeaders(user, userMessageId) {
|
|
58
60
|
(0, assert_1.default)(this.client);
|
|
59
|
-
const authResponse = await this.client.getBuilderApiProxyToken(user);
|
|
61
|
+
const authResponse = await this.client.getBuilderApiProxyToken(user, { userMessageId });
|
|
60
62
|
const authHeaders = {
|
|
61
63
|
Authorization: `${authResponse.tokenType} ${authResponse.accessToken}`,
|
|
62
64
|
};
|
|
63
65
|
return authHeaders;
|
|
64
66
|
}
|
|
65
|
-
async setupModels(user) {
|
|
67
|
+
async setupModels(user, userMessageId) {
|
|
66
68
|
try {
|
|
67
69
|
if (this.client) {
|
|
68
|
-
const authHeaders = await this.getApiProxyAuthHeaders(user);
|
|
70
|
+
const authHeaders = await this.getApiProxyAuthHeaders(user, userMessageId);
|
|
69
71
|
const baseUrl = this.client.getApiProxyBaseUrl();
|
|
70
72
|
const anthropicClaude = await AiWorkflowBuilderService_1.getAnthropicClaudeModel({
|
|
71
73
|
baseUrl: baseUrl + '/anthropic',
|
|
@@ -122,14 +124,13 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
122
124
|
};
|
|
123
125
|
});
|
|
124
126
|
}
|
|
125
|
-
async getAgent(user) {
|
|
126
|
-
const { anthropicClaude, tracingClient, authHeaders } = await this.setupModels(user);
|
|
127
|
+
async getAgent(user, userMessageId, featureFlags) {
|
|
128
|
+
const { anthropicClaude, tracingClient, authHeaders } = await this.setupModels(user, userMessageId);
|
|
127
129
|
const agent = new workflow_builder_agent_1.WorkflowBuilderAgent({
|
|
128
130
|
parsedNodeTypes: this.parsedNodeTypes,
|
|
129
131
|
llmSimpleTask: anthropicClaude,
|
|
130
132
|
llmComplexTask: anthropicClaude,
|
|
131
133
|
logger: this.logger,
|
|
132
|
-
enableMultiAgent: process.env.N8N_ENABLE_MULTI_AGENT === 'true',
|
|
133
134
|
checkpointer: this.sessionManager.getCheckpointer(),
|
|
134
135
|
tracer: tracingClient
|
|
135
136
|
? new tracer_langchain_1.LangChainTracer({ client: tracingClient, projectName: 'n8n-workflow-builder' })
|
|
@@ -138,6 +139,10 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
138
139
|
onGenerationSuccess: async () => {
|
|
139
140
|
await this.onGenerationSuccess(user, authHeaders);
|
|
140
141
|
},
|
|
142
|
+
runMetadata: {
|
|
143
|
+
n8nVersion: this.n8nVersion,
|
|
144
|
+
featureFlags: featureFlags ?? {},
|
|
145
|
+
},
|
|
141
146
|
});
|
|
142
147
|
return agent;
|
|
143
148
|
}
|
|
@@ -159,7 +164,7 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
159
164
|
}
|
|
160
165
|
}
|
|
161
166
|
async *chat(payload, user, abortSignal) {
|
|
162
|
-
const agent = await this.getAgent(user);
|
|
167
|
+
const agent = await this.getAgent(user, payload.id, payload.featureFlags);
|
|
163
168
|
const userId = user?.id?.toString();
|
|
164
169
|
const workflowId = payload.workflowContext?.currentWorkflow?.id;
|
|
165
170
|
for await (const output of agent.chat(payload, userId, abortSignal)) {
|
|
@@ -167,14 +172,14 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
167
172
|
}
|
|
168
173
|
if (this.onTelemetryEvent && userId) {
|
|
169
174
|
try {
|
|
170
|
-
await this.trackBuilderReplyTelemetry(agent, workflowId, userId);
|
|
175
|
+
await this.trackBuilderReplyTelemetry(agent, workflowId, userId, payload.id);
|
|
171
176
|
}
|
|
172
177
|
catch (error) {
|
|
173
178
|
this.logger?.error('Failed to track builder reply telemetry', { error });
|
|
174
179
|
}
|
|
175
180
|
}
|
|
176
181
|
}
|
|
177
|
-
async trackBuilderReplyTelemetry(agent, workflowId, userId) {
|
|
182
|
+
async trackBuilderReplyTelemetry(agent, workflowId, userId, userMessageId) {
|
|
178
183
|
if (!this.onTelemetryEvent)
|
|
179
184
|
return;
|
|
180
185
|
const state = await agent.getState(workflowId, userId);
|
|
@@ -201,6 +206,7 @@ let AiWorkflowBuilderService = AiWorkflowBuilderService_1 = class AiWorkflowBuil
|
|
|
201
206
|
...(state.values.templateIds.length > 0 && {
|
|
202
207
|
templates_selected: state.values.templateIds,
|
|
203
208
|
}),
|
|
209
|
+
user_message_id: userMessageId,
|
|
204
210
|
};
|
|
205
211
|
this.onTelemetryEvent('Builder replied to user message', properties);
|
|
206
212
|
}
|
|
@@ -222,6 +228,6 @@ exports.AiWorkflowBuilderService = AiWorkflowBuilderService;
|
|
|
222
228
|
exports.AiWorkflowBuilderService = AiWorkflowBuilderService = AiWorkflowBuilderService_1 = __decorate([
|
|
223
229
|
(0, di_1.Service)(),
|
|
224
230
|
__metadata("design:paramtypes", [Array, ai_assistant_sdk_1.AiAssistantClient,
|
|
225
|
-
backend_common_1.Logger, String, String, Function, Function])
|
|
231
|
+
backend_common_1.Logger, String, String, String, Function, Function])
|
|
226
232
|
], AiWorkflowBuilderService);
|
|
227
233
|
//# sourceMappingURL=ai-workflow-builder-agent.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-workflow-builder-agent.service.js","sourceRoot":"","sources":["../src/ai-workflow-builder-agent.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,uDAAkE;AAElE,+EAA2E;AAC3E,wDAA6C;AAC7C,gCAAkC;AAClC,+DAA6E;AAC7E,oDAA4B;AAC5B,yCAAoD;AAGpD,qCAA2C;AAC3C,6CAAuD;AACvD,uEAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"ai-workflow-builder-agent.service.js","sourceRoot":"","sources":["../src/ai-workflow-builder-agent.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,uDAAkE;AAElE,+EAA2E;AAC3E,wDAA6C;AAC7C,gCAAkC;AAClC,+DAA6E;AAC7E,oDAA4B;AAC5B,yCAAoD;AAGpD,qCAA2C;AAC3C,6CAAuD;AACvD,uEAAkE;AAClE,qEAIkC;AAO3B,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAMlB;IACA;IACA;IACA;IACA;IACA;IACA;IAXD,eAAe,CAAyB;IACjD,cAAc,CAAwB;IAE9C,YACC,eAAuC,EACtB,MAA0B,EAC1B,MAAe,EACf,UAAmB,EACnB,WAAoB,EACpB,UAAmB,EACnB,gBAAmC,EACnC,gBAAmC;QANnC,WAAM,GAAN,MAAM,CAAoB;QAC1B,WAAM,GAAN,MAAM,CAAS;QACf,eAAU,GAAV,UAAU,CAAS;QACnB,gBAAW,GAAX,WAAW,CAAS;QACpB,eAAU,GAAV,UAAU,CAAS;QACnB,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,qBAAgB,GAAhB,gBAAgB,CAAmB;QAEpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,IAAI,+CAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAC5C,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,GAAG,MAKT,EAAE;QACL,OAAO,MAAM,IAAA,oCAAuB,EAAC;YACpC,OAAO;YACP,MAAM;YACN,OAAO,EAAE;gBACR,GAAG,WAAW;gBAEd,gBAAgB,EAAE,2BAA2B;aAC7C;SACD,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,IAAW,EAAE,aAAqB;QACtE,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG;YAEnB,aAAa,EAAE,GAAG,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,WAAW,EAAE;SACtE,CAAC;QAEF,OAAO,WAAW,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,WAAW,CACxB,IAAW,EACX,aAAqB;QAOrB,IAAI,CAAC;YAEJ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBAG3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAEjD,MAAM,eAAe,GAAG,MAAM,0BAAwB,CAAC,uBAAuB,CAAC;oBAC9E,OAAO,EAAE,OAAO,GAAG,YAAY;oBAC/B,WAAW;iBACX,CAAC,CAAC;gBAEH,MAAM,aAAa,GAAG,IAAI,kBAAa,CAAC;oBACvC,MAAM,EAAE,GAAG;oBACX,MAAM,EAAE,OAAO,GAAG,YAAY;oBAC9B,gBAAgB,EAAE,KAAK;oBACvB,qBAAqB,EAAE,CAAC;oBACxB,YAAY,EAAE;wBACb,OAAO,EAAE;4BACR,GAAG,WAAW;yBACd;qBACD;iBACD,CAAC,CAAC;gBAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;YACxD,CAAC;YAGD,MAAM,eAAe,GAAG,MAAM,0BAAwB,CAAC,uBAAuB,CAAC;gBAC9E,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;aAC9C,CAAC,CAAC;YAEH,OAAO,EAAE,eAAe,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,QAAQ,GAAG,IAAI,wBAAe,CAAC,oCAAoC,YAAY,EAAE,EAAE;gBACxF,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE;oBACL,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM;oBACxB,OAAO,EAAE,CAAC,CAAC,IAAI;iBACf;aACD,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC;QAChB,CAAC;IACF,CAAC;IAEO,eAAe,CAAC,SAAiC;QAExD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;YAC5B,0CAA0C;YAC1C,+CAA+C;YAC/C,+BAA+B;SAC/B,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CACxC,CAAC,QAAQ,EAAE,EAAE,CAGZ,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChC,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAC3E,CAAC;QAEF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAGxC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC;YAE7B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1F,IAAI,CAAC,WAAW;gBAAE,OAAO,QAAQ,CAAC;YAElC,OAAO;gBACN,GAAG,WAAW;gBACd,GAAG,QAAQ;aACX,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAW,EAAE,aAAqB,EAAE,YAAkC;QAC5F,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAC7E,IAAI,EACJ,aAAa,CACb,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,6CAAoB,CAAC;YACtC,eAAe,EAAE,IAAI,CAAC,eAAe;YAErC,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,eAAe;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACnD,MAAM,EAAE,aAAa;gBACpB,CAAC,CAAC,IAAI,kCAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;gBACrF,CAAC,CAAC,SAAS;YACZ,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,mBAAmB,EAAE,KAAK,IAAI,EAAE;gBAC/B,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACnD,CAAC;YACD,WAAW,EAAE;gBACZ,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,YAAY,IAAI,EAAE;aAChC;SACD,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAChC,IAAY,EAEZ,WAAuC;QAEvC,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAA,gBAAM,EAAC,WAAW,EAAE,mEAAmE,CAAC,CAAC;gBACzF,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAG5E,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,EAAE,IAAI,WAAW,EAAE,CAAC;oBACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;gBACtF,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,OAAoB,EAAE,IAAW,EAAE,WAAyB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,eAAe,EAAE,EAAE,CAAC;QAEhE,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,CAAC;QACd,CAAC;QAGD,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACvC,KAA2B,EAC3B,UAA8B,EAC9B,MAAc,EACd,aAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAEnC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,+CAAqB,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAG5E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACnD,CAAC,CAAc,EAAkB,EAAE,CAAC,CAAC,YAAY,oBAAS,CAC1D,CAAC;QACF,MAAM,SAAS,GACd,OAAO,aAAa,EAAE,OAAO,KAAK,QAAQ;YACzC,CAAC,CAAC,aAAa,CAAC,OAAO;YACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAEjD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAChD,CAAC,CAAc,EAAoB,EAAE,CAAC,CAAC,YAAY,sBAAW,CAC9D,CAAC;QACF,MAAM,WAAW,GAAG;YACnB,GAAG,IAAI,GAAG,CACT,YAAY;iBACV,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC/B,MAAM,CAAC,CAAC,IAAwB,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAC1E;SACD,CAAC;QAGF,MAAM,UAAU,GAA8B;YAC7C,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,IAAI,CAAC,UAAU;YAC5B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;YACzB,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,mBAAmB;YACvD,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB;YAE3C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI;gBAC1C,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;aAC5C,CAAC;YACF,eAAe,EAAE,aAAa;SAC9B,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAA8B,EAAE,IAAY;QAC7D,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QACpC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC9B,IAAW;QAEX,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;QAGD,OAAO;YACN,YAAY,EAAE,CAAC,CAAC;YAChB,cAAc,EAAE,CAAC;SACjB,CAAC;IACH,CAAC;CACD,CAAA;AAtRY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,YAAO,GAAE;4CAOkB,oCAAiB;QACjB,uBAAM;GAPrB,wBAAwB,CAsRpC"}
|