@n8n/ai-workflow-builder 0.32.0 → 0.33.0-exp.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/agents/responder.agent.d.ts +21 -0
  2. package/dist/agents/responder.agent.js +102 -0
  3. package/dist/agents/responder.agent.js.map +1 -0
  4. package/dist/agents/supervisor.agent.d.ts +31 -0
  5. package/dist/agents/supervisor.agent.js +104 -0
  6. package/dist/agents/supervisor.agent.js.map +1 -0
  7. package/dist/ai-workflow-builder-agent.service.d.ts +2 -1
  8. package/dist/ai-workflow-builder-agent.service.js +13 -4
  9. package/dist/ai-workflow-builder-agent.service.js.map +1 -1
  10. package/dist/build.tsbuildinfo +1 -1
  11. package/dist/chains/prompts/examples/basic/switch-node-examples.d.ts +1 -0
  12. package/dist/chains/prompts/examples/basic/switch-node-examples.js +128 -0
  13. package/dist/chains/prompts/examples/basic/switch-node-examples.js.map +1 -0
  14. package/dist/chains/prompts/node-types/switch-node.d.ts +1 -0
  15. package/dist/chains/prompts/node-types/switch-node.js +72 -0
  16. package/dist/chains/prompts/node-types/switch-node.js.map +1 -0
  17. package/dist/chains/prompts/prompt-builder.d.ts +1 -0
  18. package/dist/chains/prompts/prompt-builder.js +12 -0
  19. package/dist/chains/prompts/prompt-builder.js.map +1 -1
  20. package/dist/chains/prompts/prompt-config.js +1 -0
  21. package/dist/chains/prompts/prompt-config.js.map +1 -1
  22. package/dist/constants.d.ts +6 -0
  23. package/dist/constants.js +7 -1
  24. package/dist/constants.js.map +1 -1
  25. package/dist/llm-config.d.ts +1 -0
  26. package/dist/llm-config.js +20 -1
  27. package/dist/llm-config.js.map +1 -1
  28. package/dist/multi-agent-workflow-subgraphs.d.ts +122 -0
  29. package/dist/multi-agent-workflow-subgraphs.js +153 -0
  30. package/dist/multi-agent-workflow-subgraphs.js.map +1 -0
  31. package/dist/parent-graph-state.d.ts +27 -0
  32. package/dist/parent-graph-state.js +47 -0
  33. package/dist/parent-graph-state.js.map +1 -0
  34. package/dist/subgraphs/builder.subgraph.d.ts +122 -0
  35. package/dist/subgraphs/builder.subgraph.js +384 -0
  36. package/dist/subgraphs/builder.subgraph.js.map +1 -0
  37. package/dist/subgraphs/configurator.subgraph.d.ts +132 -0
  38. package/dist/subgraphs/configurator.subgraph.js +272 -0
  39. package/dist/subgraphs/configurator.subgraph.js.map +1 -0
  40. package/dist/subgraphs/discovery.subgraph.d.ts +158 -0
  41. package/dist/subgraphs/discovery.subgraph.js +487 -0
  42. package/dist/subgraphs/discovery.subgraph.js.map +1 -0
  43. package/dist/subgraphs/subgraph-interface.d.ts +23 -0
  44. package/dist/subgraphs/subgraph-interface.js +7 -0
  45. package/dist/subgraphs/subgraph-interface.js.map +1 -0
  46. package/dist/tools/best-practices/content-generation.js +38 -2
  47. package/dist/tools/best-practices/content-generation.js.map +1 -1
  48. package/dist/tools/builder-tools.d.ts +5 -2
  49. package/dist/tools/builder-tools.js +15 -25
  50. package/dist/tools/builder-tools.js.map +1 -1
  51. package/dist/tools/get-best-practices.tool.d.ts +1 -1
  52. package/dist/tools/get-workflow-examples.tool.d.ts +34 -0
  53. package/dist/tools/get-workflow-examples.tool.js +172 -0
  54. package/dist/tools/get-workflow-examples.tool.js.map +1 -0
  55. package/dist/tools/node-details.tool.d.ts +4 -4
  56. package/dist/tools/node-details.tool.js +30 -2
  57. package/dist/tools/node-details.tool.js.map +1 -1
  58. package/dist/tools/node-search.tool.d.ts +1 -1
  59. package/dist/tools/prompts/main-agent.prompt.d.ts +4 -0
  60. package/dist/tools/prompts/main-agent.prompt.js +113 -57
  61. package/dist/tools/prompts/main-agent.prompt.js.map +1 -1
  62. package/dist/tools/utils/markdown-workflow.utils.d.ts +14 -0
  63. package/dist/tools/utils/markdown-workflow.utils.js +174 -0
  64. package/dist/tools/utils/markdown-workflow.utils.js.map +1 -0
  65. package/dist/tools/utils/test/workflows/ai-assistant.workflow.d.ts +2 -0
  66. package/dist/tools/utils/test/workflows/ai-assistant.workflow.js +541 -0
  67. package/dist/tools/utils/test/workflows/ai-assistant.workflow.js.map +1 -0
  68. package/dist/tools/validate-configuration.tool.d.ts +4 -0
  69. package/dist/tools/validate-configuration.tool.js +70 -0
  70. package/dist/tools/validate-configuration.tool.js.map +1 -0
  71. package/dist/tools/validate-structure.tool.d.ts +4 -0
  72. package/dist/tools/validate-structure.tool.js +66 -0
  73. package/dist/tools/validate-structure.tool.js.map +1 -0
  74. package/dist/tools/web/templates.d.ts +7 -0
  75. package/dist/tools/web/templates.js +71 -0
  76. package/dist/tools/web/templates.js.map +1 -0
  77. package/dist/types/config.d.ts +1 -0
  78. package/dist/types/coordination.d.ts +42 -0
  79. package/dist/types/coordination.js +23 -0
  80. package/dist/types/coordination.js.map +1 -0
  81. package/dist/types/discovery-types.d.ts +14 -0
  82. package/dist/types/discovery-types.js +3 -0
  83. package/dist/types/discovery-types.js.map +1 -0
  84. package/dist/types/index.d.ts +1 -0
  85. package/dist/types/index.js +15 -0
  86. package/dist/types/index.js.map +1 -1
  87. package/dist/types/langchain.d.ts +1 -0
  88. package/dist/types/langchain.js +8 -0
  89. package/dist/types/langchain.js.map +1 -1
  90. package/dist/types/tools.d.ts +20 -0
  91. package/dist/types/web/templates.d.ts +44 -0
  92. package/dist/types/web/templates.js +37 -0
  93. package/dist/types/web/templates.js.map +1 -0
  94. package/dist/utils/cache-control/helpers.d.ts +1 -0
  95. package/dist/utils/cache-control/helpers.js +36 -0
  96. package/dist/utils/cache-control/helpers.js.map +1 -1
  97. package/dist/utils/cache-control/index.d.ts +1 -1
  98. package/dist/utils/cache-control/index.js +2 -1
  99. package/dist/utils/cache-control/index.js.map +1 -1
  100. package/dist/utils/context-builders.d.ts +10 -0
  101. package/dist/utils/context-builders.js +71 -0
  102. package/dist/utils/context-builders.js.map +1 -0
  103. package/dist/utils/coordination-log.d.ts +15 -0
  104. package/dist/utils/coordination-log.js +75 -0
  105. package/dist/utils/coordination-log.js.map +1 -0
  106. package/dist/utils/operations-processor.d.ts +4 -2
  107. package/dist/utils/operations-processor.js.map +1 -1
  108. package/dist/utils/state-modifier.d.ts +32 -0
  109. package/dist/utils/state-modifier.js +112 -0
  110. package/dist/utils/state-modifier.js.map +1 -0
  111. package/dist/utils/state-reducers.d.ts +4 -0
  112. package/dist/utils/state-reducers.js +25 -0
  113. package/dist/utils/state-reducers.js.map +1 -0
  114. package/dist/utils/stream-processor.d.ts +6 -2
  115. package/dist/utils/stream-processor.js +138 -83
  116. package/dist/utils/stream-processor.js.map +1 -1
  117. package/dist/utils/subgraph-helpers.d.ts +16 -0
  118. package/dist/utils/subgraph-helpers.js +118 -0
  119. package/dist/utils/subgraph-helpers.js.map +1 -0
  120. package/dist/utils/token-usage.js +4 -1
  121. package/dist/utils/token-usage.js.map +1 -1
  122. package/dist/utils/tool-executor.js +55 -38
  123. package/dist/utils/tool-executor.js.map +1 -1
  124. package/dist/utils/workflow-validation.js +1 -0
  125. package/dist/utils/workflow-validation.js.map +1 -1
  126. package/dist/validation/checks/connections.js +6 -14
  127. package/dist/validation/checks/connections.js.map +1 -1
  128. package/dist/validation/checks/index.d.ts +2 -1
  129. package/dist/validation/checks/index.js +3 -1
  130. package/dist/validation/checks/index.js.map +1 -1
  131. package/dist/validation/checks/nodes.d.ts +4 -0
  132. package/dist/validation/checks/nodes.js +36 -0
  133. package/dist/validation/checks/nodes.js.map +1 -0
  134. package/dist/validation/checks/tools.js +0 -10
  135. package/dist/validation/checks/tools.js.map +1 -1
  136. package/dist/validation/checks/trigger.js +0 -6
  137. package/dist/validation/checks/trigger.js.map +1 -1
  138. package/dist/validation/programmatic.js +2 -0
  139. package/dist/validation/programmatic.js.map +1 -1
  140. package/dist/validation/types.d.ts +5 -1
  141. package/dist/validation/types.js +8 -0
  142. package/dist/validation/types.js.map +1 -1
  143. package/dist/workflow-builder-agent.d.ts +9 -0
  144. package/dist/workflow-builder-agent.js +44 -10
  145. package/dist/workflow-builder-agent.js.map +1 -1
  146. package/dist/workflow-state.d.ts +4 -2
  147. package/dist/workflow-state.js +9 -0
  148. package/dist/workflow-state.js.map +1 -1
  149. package/package.json +9 -8
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMultiAgentWorkflowWithSubgraphs = createMultiAgentWorkflowWithSubgraphs;
4
+ const messages_1 = require("@langchain/core/messages");
5
+ const langgraph_1 = require("@langchain/langgraph");
6
+ const responder_agent_1 = require("./agents/responder.agent");
7
+ const supervisor_agent_1 = require("./agents/supervisor.agent");
8
+ const constants_1 = require("./constants");
9
+ const parent_graph_state_1 = require("./parent-graph-state");
10
+ const builder_subgraph_1 = require("./subgraphs/builder.subgraph");
11
+ const configurator_subgraph_1 = require("./subgraphs/configurator.subgraph");
12
+ const discovery_subgraph_1 = require("./subgraphs/discovery.subgraph");
13
+ const coordination_1 = require("./types/coordination");
14
+ const coordination_log_1 = require("./utils/coordination-log");
15
+ const operations_processor_1 = require("./utils/operations-processor");
16
+ const state_modifier_1 = require("./utils/state-modifier");
17
+ function routeToNode(next) {
18
+ const nodeMapping = {
19
+ responder: 'responder',
20
+ discovery: 'discovery_subgraph',
21
+ builder: 'builder_subgraph',
22
+ configurator: 'configurator_subgraph',
23
+ };
24
+ return nodeMapping[next] ?? 'responder';
25
+ }
26
+ function createSubgraphNodeHandler(subgraph, compiledGraph, name, logger, recursionLimit) {
27
+ return async (state) => {
28
+ try {
29
+ const input = subgraph.transformInput(state);
30
+ const result = await compiledGraph.invoke(input, { recursionLimit });
31
+ const output = subgraph.transformOutput(result, state);
32
+ return output;
33
+ }
34
+ catch (error) {
35
+ logger?.error(`[${name}] ERROR:`, { error });
36
+ const errorMessage = error instanceof Error ? error.message : `An error occurred in ${name}: ${String(error)}`;
37
+ const phase = name.replace('_subgraph', '');
38
+ return {
39
+ nextPhase: 'responder',
40
+ messages: [
41
+ new messages_1.HumanMessage({
42
+ content: `Error in ${name}: ${errorMessage}`,
43
+ name: 'system_error',
44
+ }),
45
+ ],
46
+ coordinationLog: [
47
+ {
48
+ phase,
49
+ status: 'error',
50
+ timestamp: Date.now(),
51
+ summary: `Error: ${errorMessage}`,
52
+ metadata: (0, coordination_1.createErrorMetadata)({
53
+ failedSubgraph: phase,
54
+ errorMessage,
55
+ }),
56
+ },
57
+ ],
58
+ };
59
+ }
60
+ };
61
+ }
62
+ function createMultiAgentWorkflowWithSubgraphs(config) {
63
+ const { parsedNodeTypes, llmComplexTask, logger, instanceUrl, checkpointer, autoCompactThresholdTokens = constants_1.DEFAULT_AUTO_COMPACT_THRESHOLD_TOKENS, featureFlags, } = config;
64
+ const supervisorAgent = new supervisor_agent_1.SupervisorAgent({ llm: llmComplexTask });
65
+ const responderAgent = new responder_agent_1.ResponderAgent({ llm: llmComplexTask });
66
+ const discoverySubgraph = new discovery_subgraph_1.DiscoverySubgraph();
67
+ const builderSubgraph = new builder_subgraph_1.BuilderSubgraph();
68
+ const configuratorSubgraph = new configurator_subgraph_1.ConfiguratorSubgraph();
69
+ const compiledDiscovery = discoverySubgraph.create({
70
+ parsedNodeTypes,
71
+ llm: llmComplexTask,
72
+ logger,
73
+ featureFlags,
74
+ });
75
+ const compiledBuilder = builderSubgraph.create({ parsedNodeTypes, llm: llmComplexTask, logger });
76
+ const compiledConfigurator = configuratorSubgraph.create({
77
+ parsedNodeTypes,
78
+ llm: llmComplexTask,
79
+ logger,
80
+ instanceUrl,
81
+ });
82
+ return (new langgraph_1.StateGraph(parent_graph_state_1.ParentGraphState)
83
+ .addNode('supervisor', async (state) => {
84
+ const routing = await supervisorAgent.invoke({
85
+ messages: state.messages,
86
+ workflowJSON: state.workflowJSON,
87
+ coordinationLog: state.coordinationLog,
88
+ previousSummary: state.previousSummary,
89
+ });
90
+ return {
91
+ nextPhase: routing.next,
92
+ };
93
+ })
94
+ .addNode('responder', async (state) => {
95
+ const response = await responderAgent.invoke({
96
+ messages: state.messages,
97
+ coordinationLog: state.coordinationLog,
98
+ discoveryContext: state.discoveryContext,
99
+ workflowJSON: state.workflowJSON,
100
+ previousSummary: state.previousSummary,
101
+ });
102
+ return {
103
+ messages: [response],
104
+ };
105
+ })
106
+ .addNode('process_operations', (state) => {
107
+ const result = (0, operations_processor_1.processOperations)(state);
108
+ return {
109
+ ...result,
110
+ workflowOperations: [],
111
+ };
112
+ })
113
+ .addNode('check_state', (state) => ({
114
+ nextPhase: (0, state_modifier_1.determineStateAction)(state, autoCompactThresholdTokens),
115
+ }))
116
+ .addNode('cleanup_dangling', (state) => (0, state_modifier_1.handleCleanupDangling)(state.messages, logger))
117
+ .addNode('compact_messages', async (state) => {
118
+ const isAutoCompact = state.messages[state.messages.length - 1]?.content !== '/compact';
119
+ return await (0, state_modifier_1.handleCompactMessages)(state.messages, state.previousSummary ?? '', llmComplexTask, isAutoCompact);
120
+ })
121
+ .addNode('delete_messages', (state) => (0, state_modifier_1.handleDeleteMessages)(state.messages))
122
+ .addNode('create_workflow_name', async (state) => await (0, state_modifier_1.handleCreateWorkflowName)(state.messages, state.workflowJSON, llmComplexTask, logger))
123
+ .addNode('discovery_subgraph', createSubgraphNodeHandler(discoverySubgraph, compiledDiscovery, 'discovery_subgraph', logger, constants_1.MAX_DISCOVERY_ITERATIONS))
124
+ .addNode('builder_subgraph', createSubgraphNodeHandler(builderSubgraph, compiledBuilder, 'builder_subgraph', logger, constants_1.MAX_BUILDER_ITERATIONS))
125
+ .addNode('configurator_subgraph', createSubgraphNodeHandler(configuratorSubgraph, compiledConfigurator, 'configurator_subgraph', logger, constants_1.MAX_CONFIGURATOR_ITERATIONS))
126
+ .addEdge('discovery_subgraph', 'process_operations')
127
+ .addEdge('builder_subgraph', 'process_operations')
128
+ .addEdge('configurator_subgraph', 'process_operations')
129
+ .addEdge(langgraph_1.START, 'check_state')
130
+ .addConditionalEdges('check_state', (state) => {
131
+ const routes = {
132
+ cleanup_dangling: 'cleanup_dangling',
133
+ compact_messages: 'compact_messages',
134
+ delete_messages: 'delete_messages',
135
+ create_workflow_name: 'create_workflow_name',
136
+ auto_compact_messages: 'compact_messages',
137
+ continue: 'supervisor',
138
+ };
139
+ return routes[state.nextPhase] ?? 'supervisor';
140
+ })
141
+ .addEdge('cleanup_dangling', 'check_state')
142
+ .addEdge('delete_messages', 'responder')
143
+ .addEdge('create_workflow_name', 'supervisor')
144
+ .addConditionalEdges('compact_messages', (state) => {
145
+ const hasMessages = state.messages.length > 0;
146
+ return hasMessages ? 'check_state' : 'responder';
147
+ })
148
+ .addConditionalEdges('supervisor', (state) => routeToNode(state.nextPhase))
149
+ .addConditionalEdges('process_operations', (state) => routeToNode((0, coordination_log_1.getNextPhaseFromLog)(state.coordinationLog)))
150
+ .addEdge('responder', langgraph_1.END)
151
+ .compile({ checkpointer }));
152
+ }
153
+ //# sourceMappingURL=multi-agent-workflow-subgraphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-agent-workflow-subgraphs.js","sourceRoot":"","sources":["../src/multi-agent-workflow-subgraphs.ts"],"names":[],"mappings":";;AAsHA,sFA0KC;AA/RD,uDAAwD;AACxD,oDAAgF;AAIhF,8DAA0D;AAC1D,gEAA4D;AAC5D,2CAKqB;AACrB,6DAAwD;AACxD,mEAA+D;AAC/D,6EAAyE;AACzE,uEAAmE;AAGnE,uDAA2D;AAC3D,+DAA+D;AAC/D,uEAAiE;AACjE,2DAMgC;AAOhC,SAAS,WAAW,CAAC,IAAY;IAChC,MAAM,WAAW,GAA2B;QAC3C,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,oBAAoB;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,YAAY,EAAE,uBAAuB;KACrC,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;AACzC,CAAC;AAiBD,SAAS,yBAAyB,CAGjC,QAAmB,EACnB,aAA8C,EAC9C,IAAY,EACZ,MAAe,EACf,cAAuB;IAEvB,OAAO,KAAK,EAAE,KAAoC,EAAE,EAAE;QACrD,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEvD,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAG3F,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAkB,CAAC;YAI7D,OAAO;gBACN,SAAS,EAAE,WAAW;gBACtB,QAAQ,EAAE;oBACT,IAAI,uBAAY,CAAC;wBAChB,OAAO,EAAE,YAAY,IAAI,KAAK,YAAY,EAAE;wBAC5C,IAAI,EAAE,cAAc;qBACpB,CAAC;iBACF;gBACD,eAAe,EAAE;oBAChB;wBACC,KAAK;wBACL,MAAM,EAAE,OAAgB;wBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,OAAO,EAAE,UAAU,YAAY,EAAE;wBACjC,QAAQ,EAAE,IAAA,kCAAmB,EAAC;4BAC7B,cAAc,EAAE,KAAK;4BACrB,YAAY;yBACZ,CAAC;qBACF;iBACD;aACD,CAAC;QACH,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAQD,SAAgB,qCAAqC,CAAC,MAAgC;IACrF,MAAM,EACL,eAAe,EACf,cAAc,EACd,MAAM,EACN,WAAW,EACX,YAAY,EACZ,0BAA0B,GAAG,iDAAqC,EAClE,YAAY,GACZ,GAAG,MAAM,CAAC;IAEX,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,IAAI,gCAAc,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;IAGnE,MAAM,iBAAiB,GAAG,IAAI,sCAAiB,EAAE,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,kCAAe,EAAE,CAAC;IAC9C,MAAM,oBAAoB,GAAG,IAAI,4CAAoB,EAAE,CAAC;IAGxD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAClD,eAAe;QACf,GAAG,EAAE,cAAc;QACnB,MAAM;QACN,YAAY;KACZ,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IACjG,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,MAAM,CAAC;QACxD,eAAe;QACf,GAAG,EAAE,cAAc;QACnB,MAAM;QACN,WAAW;KACX,CAAC,CAAC;IAGH,OAAO,CACN,IAAI,sBAAU,CAAC,qCAAgB,CAAC;SAE9B,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;YAC5C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,eAAe,EAAE,KAAK,CAAC,eAAe;SACtC,CAAC,CAAC;QAEH,OAAO;YACN,SAAS,EAAE,OAAO,CAAC,IAAI;SACvB,CAAC;IACH,CAAC,CAAC;SAED,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC;YAC5C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,eAAe,EAAE,KAAK,CAAC,eAAe;SACtC,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACpB,CAAC;IACH,CAAC,CAAC;SAED,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;QAExC,MAAM,MAAM,GAAG,IAAA,wCAAiB,EAAC,KAAK,CAAC,CAAC;QAExC,OAAO;YACN,GAAG,MAAM;YACT,kBAAkB,EAAE,EAAE;SACtB,CAAC;IACH,CAAC,CAAC;SAED,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,SAAS,EAAE,IAAA,qCAAoB,EAAC,KAAK,EAAE,0BAA0B,CAAC;KAClE,CAAC,CAAC;SACF,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,sCAAqB,EAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACrF,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC;QACxF,OAAO,MAAM,IAAA,sCAAqB,EACjC,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,eAAe,IAAI,EAAE,EAC3B,cAAc,EACd,aAAa,CACb,CAAC;IACH,CAAC,CAAC;SACD,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,qCAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC3E,OAAO,CACP,sBAAsB,EACtB,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,MAAM,IAAA,yCAAwB,EAC7B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,YAAY,EAClB,cAAc,EACd,MAAM,CACN,CACF;SAEA,OAAO,CACP,oBAAoB,EACpB,yBAAyB,CACxB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,MAAM,EACN,oCAAwB,CACxB,CACD;SACA,OAAO,CACP,kBAAkB,EAClB,yBAAyB,CACxB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,MAAM,EACN,kCAAsB,CACtB,CACD;SACA,OAAO,CACP,uBAAuB,EACvB,yBAAyB,CACxB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,MAAM,EACN,uCAA2B,CAC3B,CACD;SAEA,OAAO,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;SACnD,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;SACjD,OAAO,CAAC,uBAAuB,EAAE,oBAAoB,CAAC;SAEtD,OAAO,CAAC,iBAAK,EAAE,aAAa,CAAC;SAE7B,mBAAmB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;QAC7C,MAAM,MAAM,GAA2B;YACtC,gBAAgB,EAAE,kBAAkB;YACpC,gBAAgB,EAAE,kBAAkB;YACpC,eAAe,EAAE,iBAAiB;YAClC,oBAAoB,EAAE,sBAAsB;YAC5C,qBAAqB,EAAE,kBAAkB;YACzC,QAAQ,EAAE,YAAY;SACtB,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;IAChD,CAAC,CAAC;SAED,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC;SAC1C,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC;SACvC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC;SAE7C,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;QAGlD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAClD,CAAC,CAAC;SAED,mBAAmB,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAE1E,mBAAmB,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CACpD,WAAW,CAAC,IAAA,sCAAmB,EAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CACvD;SAEA,OAAO,CAAC,WAAW,EAAE,eAAG,CAAC;SAEzB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,CAC3B,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { BaseMessage } from '@langchain/core/messages';
2
+ import type { CoordinationLogEntry } from './types/coordination';
3
+ import type { DiscoveryContext } from './types/discovery-types';
4
+ import type { NodeConfigurationsMap } from './types/tools';
5
+ import type { SimpleWorkflow, WorkflowOperation } from './types/workflow';
6
+ export declare const ParentGraphState: import("@langchain/langgraph").AnnotationRoot<{
7
+ 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>[]>;
8
+ workflowJSON: import("@langchain/langgraph").BinaryOperatorAggregate<SimpleWorkflow, SimpleWorkflow>;
9
+ workflowContext: import("@langchain/langgraph").BinaryOperatorAggregate<{
10
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
11
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
12
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
13
+ expressionValues?: Record<string, import("./workflow-builder-agent").ExpressionValue[]>;
14
+ } | undefined, {
15
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
16
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
17
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
18
+ expressionValues?: Record<string, import("./workflow-builder-agent").ExpressionValue[]>;
19
+ } | undefined>;
20
+ nextPhase: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
21
+ discoveryContext: import("@langchain/langgraph").BinaryOperatorAggregate<DiscoveryContext | null, DiscoveryContext | null>;
22
+ workflowOperations: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowOperation[], WorkflowOperation[]>;
23
+ coordinationLog: import("@langchain/langgraph").BinaryOperatorAggregate<CoordinationLogEntry[], CoordinationLogEntry[]>;
24
+ previousSummary: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
25
+ templateIds: import("@langchain/langgraph").BinaryOperatorAggregate<number[], number[]>;
26
+ nodeConfigurations: import("@langchain/langgraph").BinaryOperatorAggregate<NodeConfigurationsMap, NodeConfigurationsMap>;
27
+ }>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParentGraphState = void 0;
4
+ const langgraph_1 = require("@langchain/langgraph");
5
+ const state_reducers_1 = require("./utils/state-reducers");
6
+ exports.ParentGraphState = langgraph_1.Annotation.Root({
7
+ messages: (0, langgraph_1.Annotation)({
8
+ reducer: langgraph_1.messagesStateReducer,
9
+ default: () => [],
10
+ }),
11
+ workflowJSON: (0, langgraph_1.Annotation)({
12
+ reducer: (x, y) => y ?? x,
13
+ default: () => ({ nodes: [], connections: {}, name: '' }),
14
+ }),
15
+ workflowContext: (0, langgraph_1.Annotation)({
16
+ reducer: (x, y) => y ?? x,
17
+ }),
18
+ nextPhase: (0, langgraph_1.Annotation)({
19
+ reducer: (x, y) => y ?? x,
20
+ default: () => '',
21
+ }),
22
+ discoveryContext: (0, langgraph_1.Annotation)({
23
+ reducer: (x, y) => y ?? x,
24
+ default: () => null,
25
+ }),
26
+ workflowOperations: (0, langgraph_1.Annotation)({
27
+ reducer: (x, y) => x.concat(y),
28
+ default: () => [],
29
+ }),
30
+ coordinationLog: (0, langgraph_1.Annotation)({
31
+ reducer: (x, y) => x.concat(y),
32
+ default: () => [],
33
+ }),
34
+ previousSummary: (0, langgraph_1.Annotation)({
35
+ reducer: (x, y) => y ?? x,
36
+ default: () => '',
37
+ }),
38
+ templateIds: (0, langgraph_1.Annotation)({
39
+ reducer: state_reducers_1.appendArrayReducer,
40
+ default: () => [],
41
+ }),
42
+ nodeConfigurations: (0, langgraph_1.Annotation)({
43
+ reducer: state_reducers_1.nodeConfigurationsReducer,
44
+ default: () => ({}),
45
+ }),
46
+ });
47
+ //# sourceMappingURL=parent-graph-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-graph-state.js","sourceRoot":"","sources":["../src/parent-graph-state.ts"],"names":[],"mappings":";;;AACA,oDAAwE;AAMxE,2DAAuF;AAS1E,QAAA,gBAAgB,GAAG,sBAAU,CAAC,IAAI,CAAC;IAE/C,QAAQ,EAAE,IAAA,sBAAU,EAAgB;QACnC,OAAO,EAAE,gCAAoB;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAGF,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,SAAS,EAAE,IAAA,sBAAU,EAAS;QAC7B,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,kBAAkB,EAAE,IAAA,sBAAU,EAAsB;QACnD,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,eAAe,EAAE,IAAA,sBAAU,EAAyB;QACnD,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,eAAe,EAAE,IAAA,sBAAU,EAAS;QACnC,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,EAAW;QACjC,OAAO,EAAE,mCAAkB;QAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KACjB,CAAC;IAIF,kBAAkB,EAAE,IAAA,sBAAU,EAAwB;QACrD,OAAO,EAAE,0CAAyB;QAClC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KACnB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,122 @@
1
+ import type { BaseChatModel } from '@langchain/core/language_models/chat_models';
2
+ import type { BaseMessage } from '@langchain/core/messages';
3
+ import type { Logger } from '@n8n/backend-common';
4
+ import type { INodeTypeDescription } from 'n8n-workflow';
5
+ import { BaseSubgraph } from './subgraph-interface';
6
+ import type { ParentGraphState } from '../parent-graph-state';
7
+ import type { CoordinationLogEntry } from '../types/coordination';
8
+ import type { DiscoveryContext } from '../types/discovery-types';
9
+ import type { SimpleWorkflow, WorkflowOperation } from '../types/workflow';
10
+ export declare const BuilderSubgraphState: import("@langchain/langgraph").AnnotationRoot<{
11
+ workflowJSON: import("@langchain/langgraph").BinaryOperatorAggregate<SimpleWorkflow, SimpleWorkflow>;
12
+ userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
13
+ workflowContext: import("@langchain/langgraph").BinaryOperatorAggregate<{
14
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
15
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
16
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
17
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
18
+ } | undefined, {
19
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
20
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
21
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
22
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
23
+ } | undefined>;
24
+ discoveryContext: import("@langchain/langgraph").BinaryOperatorAggregate<DiscoveryContext | null, DiscoveryContext | null>;
25
+ 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
+ workflowOperations: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowOperation[] | null, WorkflowOperation[] | null>;
27
+ }>;
28
+ export interface BuilderSubgraphConfig {
29
+ parsedNodeTypes: INodeTypeDescription[];
30
+ llm: BaseChatModel;
31
+ logger?: Logger;
32
+ }
33
+ export declare class BuilderSubgraph extends BaseSubgraph<BuilderSubgraphConfig, typeof BuilderSubgraphState.State, typeof ParentGraphState.State> {
34
+ name: string;
35
+ description: string;
36
+ create(config: BuilderSubgraphConfig): import("@langchain/langgraph").CompiledStateGraph<{
37
+ workflowJSON: SimpleWorkflow;
38
+ userRequest: string;
39
+ workflowContext: {
40
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
41
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
42
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
43
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
44
+ } | undefined;
45
+ discoveryContext: DiscoveryContext | null;
46
+ messages: BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[];
47
+ workflowOperations: WorkflowOperation[] | null;
48
+ }, {
49
+ workflowJSON?: SimpleWorkflow | undefined;
50
+ userRequest?: string | undefined;
51
+ workflowContext?: {
52
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
53
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
54
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
55
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
56
+ } | undefined;
57
+ discoveryContext?: DiscoveryContext | null | undefined;
58
+ messages?: BaseMessage<import("@langchain/core/messages").MessageStructure, import("@langchain/core/messages").MessageType>[] | undefined;
59
+ workflowOperations?: WorkflowOperation[] | null | undefined;
60
+ }, "agent" | "tools" | "process_operations" | "__start__", {
61
+ workflowJSON: import("@langchain/langgraph").BinaryOperatorAggregate<SimpleWorkflow, SimpleWorkflow>;
62
+ userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
63
+ workflowContext: import("@langchain/langgraph").BinaryOperatorAggregate<{
64
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
65
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
66
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
67
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
68
+ } | undefined, {
69
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
70
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
71
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
72
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
73
+ } | undefined>;
74
+ discoveryContext: import("@langchain/langgraph").BinaryOperatorAggregate<DiscoveryContext | null, DiscoveryContext | null>;
75
+ 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>[]>;
76
+ workflowOperations: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowOperation[] | null, WorkflowOperation[] | null>;
77
+ }, {
78
+ workflowJSON: import("@langchain/langgraph").BinaryOperatorAggregate<SimpleWorkflow, SimpleWorkflow>;
79
+ userRequest: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
80
+ workflowContext: import("@langchain/langgraph").BinaryOperatorAggregate<{
81
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
82
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
83
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
84
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
85
+ } | undefined, {
86
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
87
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
88
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
89
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
90
+ } | undefined>;
91
+ discoveryContext: import("@langchain/langgraph").BinaryOperatorAggregate<DiscoveryContext | null, DiscoveryContext | null>;
92
+ 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>[]>;
93
+ workflowOperations: import("@langchain/langgraph").BinaryOperatorAggregate<WorkflowOperation[] | null, WorkflowOperation[] | null>;
94
+ }, import("@langchain/langgraph").StateDefinition, {
95
+ agent: {
96
+ messages: import("@langchain/core/messages").AIMessageChunk<import("@langchain/core/messages").MessageStructure>[];
97
+ };
98
+ tools: {
99
+ messages?: BaseMessage[];
100
+ workflowOperations?: WorkflowOperation[] | null;
101
+ templateIds?: number[];
102
+ nodeConfigurations?: import("..").NodeConfigurationsMap;
103
+ };
104
+ }, unknown, unknown>;
105
+ transformInput(parentState: typeof ParentGraphState.State): {
106
+ userRequest: string;
107
+ workflowJSON: SimpleWorkflow;
108
+ workflowContext: {
109
+ executionSchema?: import("n8n-workflow").NodeExecutionSchema[];
110
+ currentWorkflow?: Partial<import("n8n-workflow").IWorkflowBase>;
111
+ executionData?: import("n8n-workflow").IRunExecutionData["resultData"];
112
+ expressionValues?: Record<string, import("../workflow-builder-agent").ExpressionValue[]>;
113
+ } | undefined;
114
+ discoveryContext: DiscoveryContext | null;
115
+ messages: import("@langchain/core/messages").HumanMessage<import("@langchain/core/messages").MessageStructure>[];
116
+ };
117
+ transformOutput(subgraphOutput: typeof BuilderSubgraphState.State, _parentState: typeof ParentGraphState.State): {
118
+ workflowJSON: SimpleWorkflow;
119
+ workflowOperations: WorkflowOperation[];
120
+ coordinationLog: CoordinationLogEntry[];
121
+ };
122
+ }