@atom8n/ai-workflow-builder 1.2.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 (455) hide show
  1. package/dist/agents/responder.agent.d.ts +21 -0
  2. package/dist/agents/responder.agent.js +71 -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 +68 -0
  6. package/dist/agents/supervisor.agent.js.map +1 -0
  7. package/dist/ai-workflow-builder-agent.service.d.ts +32 -0
  8. package/dist/ai-workflow-builder-agent.service.js +236 -0
  9. package/dist/ai-workflow-builder-agent.service.js.map +1 -0
  10. package/dist/build.tsbuildinfo +1 -0
  11. package/dist/chains/conversation-compact.d.ts +7 -0
  12. package/dist/chains/conversation-compact.js +56 -0
  13. package/dist/chains/conversation-compact.js.map +1 -0
  14. package/dist/chains/parameter-updater.d.ts +16 -0
  15. package/dist/chains/parameter-updater.js +112 -0
  16. package/dist/chains/parameter-updater.js.map +1 -0
  17. package/dist/chains/prompt-categorization.d.ts +3 -0
  18. package/dist/chains/prompt-categorization.js +31 -0
  19. package/dist/chains/prompt-categorization.js.map +1 -0
  20. package/dist/chains/test/integration/test-helpers.d.ts +3 -0
  21. package/dist/chains/test/integration/test-helpers.js +16 -0
  22. package/dist/chains/test/integration/test-helpers.js.map +1 -0
  23. package/dist/chains/workflow-name.d.ts +4 -0
  24. package/dist/chains/workflow-name.js +22 -0
  25. package/dist/chains/workflow-name.js.map +1 -0
  26. package/dist/constants.d.ts +14 -0
  27. package/dist/constants.js +18 -0
  28. package/dist/constants.js.map +1 -0
  29. package/dist/errors/index.d.ts +52 -0
  30. package/dist/errors/index.js +137 -0
  31. package/dist/errors/index.js.map +1 -0
  32. package/dist/index.d.ts +4 -0
  33. package/dist/index.js +22 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/llm-config.d.ts +11 -0
  36. package/dist/llm-config.js +126 -0
  37. package/dist/llm-config.js.map +1 -0
  38. package/dist/multi-agent-workflow-subgraphs.d.ts +122 -0
  39. package/dist/multi-agent-workflow-subgraphs.js +159 -0
  40. package/dist/multi-agent-workflow-subgraphs.js.map +1 -0
  41. package/dist/parent-graph-state.d.ts +27 -0
  42. package/dist/parent-graph-state.js +47 -0
  43. package/dist/parent-graph-state.js.map +1 -0
  44. package/dist/prompts/agents/builder.prompt.d.ts +1 -0
  45. package/dist/prompts/agents/builder.prompt.js +320 -0
  46. package/dist/prompts/agents/builder.prompt.js.map +1 -0
  47. package/dist/prompts/agents/configurator.prompt.d.ts +2 -0
  48. package/dist/prompts/agents/configurator.prompt.js +143 -0
  49. package/dist/prompts/agents/configurator.prompt.js.map +1 -0
  50. package/dist/prompts/agents/discovery.prompt.d.ts +11 -0
  51. package/dist/prompts/agents/discovery.prompt.js +260 -0
  52. package/dist/prompts/agents/discovery.prompt.js.map +1 -0
  53. package/dist/prompts/agents/responder.prompt.d.ts +1 -0
  54. package/dist/prompts/agents/responder.prompt.js +41 -0
  55. package/dist/prompts/agents/responder.prompt.js.map +1 -0
  56. package/dist/prompts/agents/supervisor.prompt.d.ts +1 -0
  57. package/dist/prompts/agents/supervisor.prompt.js +43 -0
  58. package/dist/prompts/agents/supervisor.prompt.js.map +1 -0
  59. package/dist/prompts/builder/index.d.ts +2 -0
  60. package/dist/prompts/builder/index.js +7 -0
  61. package/dist/prompts/builder/index.js.map +1 -0
  62. package/dist/prompts/builder/prompt-builder.d.ts +17 -0
  63. package/dist/prompts/builder/prompt-builder.js +147 -0
  64. package/dist/prompts/builder/prompt-builder.js.map +1 -0
  65. package/dist/prompts/builder/types.d.ts +22 -0
  66. package/dist/prompts/builder/types.js +3 -0
  67. package/dist/prompts/builder/types.js.map +1 -0
  68. package/dist/prompts/chains/categorization.prompt.d.ts +43 -0
  69. package/dist/prompts/chains/categorization.prompt.js +86 -0
  70. package/dist/prompts/chains/categorization.prompt.js.map +1 -0
  71. package/dist/prompts/chains/compact.prompt.d.ts +2 -0
  72. package/dist/prompts/chains/compact.prompt.js +16 -0
  73. package/dist/prompts/chains/compact.prompt.js.map +1 -0
  74. package/dist/prompts/chains/parameter-updater/examples/if-node.d.ts +2 -0
  75. package/dist/prompts/chains/parameter-updater/examples/if-node.js +141 -0
  76. package/dist/prompts/chains/parameter-updater/examples/if-node.js.map +1 -0
  77. package/dist/prompts/chains/parameter-updater/examples/index.d.ts +6 -0
  78. package/dist/prompts/chains/parameter-updater/examples/index.js +16 -0
  79. package/dist/prompts/chains/parameter-updater/examples/index.js.map +1 -0
  80. package/dist/prompts/chains/parameter-updater/examples/resource-locator.d.ts +2 -0
  81. package/dist/prompts/chains/parameter-updater/examples/resource-locator.js +83 -0
  82. package/dist/prompts/chains/parameter-updater/examples/resource-locator.js.map +1 -0
  83. package/dist/prompts/chains/parameter-updater/examples/set-node.d.ts +2 -0
  84. package/dist/prompts/chains/parameter-updater/examples/set-node.js +151 -0
  85. package/dist/prompts/chains/parameter-updater/examples/set-node.js.map +1 -0
  86. package/dist/prompts/chains/parameter-updater/examples/simple-updates.d.ts +2 -0
  87. package/dist/prompts/chains/parameter-updater/examples/simple-updates.js +54 -0
  88. package/dist/prompts/chains/parameter-updater/examples/simple-updates.js.map +1 -0
  89. package/dist/prompts/chains/parameter-updater/examples/switch-node.d.ts +2 -0
  90. package/dist/prompts/chains/parameter-updater/examples/switch-node.js +131 -0
  91. package/dist/prompts/chains/parameter-updater/examples/switch-node.js.map +1 -0
  92. package/dist/prompts/chains/parameter-updater/examples/tool-nodes.d.ts +2 -0
  93. package/dist/prompts/chains/parameter-updater/examples/tool-nodes.js +74 -0
  94. package/dist/prompts/chains/parameter-updater/examples/tool-nodes.js.map +1 -0
  95. package/dist/prompts/chains/parameter-updater/guides/embedding-nodes.d.ts +2 -0
  96. package/dist/prompts/chains/parameter-updater/guides/embedding-nodes.js +70 -0
  97. package/dist/prompts/chains/parameter-updater/guides/embedding-nodes.js.map +1 -0
  98. package/dist/prompts/chains/parameter-updater/guides/gmail.d.ts +2 -0
  99. package/dist/prompts/chains/parameter-updater/guides/gmail.js +28 -0
  100. package/dist/prompts/chains/parameter-updater/guides/gmail.js.map +1 -0
  101. package/dist/prompts/chains/parameter-updater/guides/http-request.d.ts +2 -0
  102. package/dist/prompts/chains/parameter-updater/guides/http-request.js +139 -0
  103. package/dist/prompts/chains/parameter-updater/guides/http-request.js.map +1 -0
  104. package/dist/prompts/chains/parameter-updater/guides/if-node.d.ts +2 -0
  105. package/dist/prompts/chains/parameter-updater/guides/if-node.js +159 -0
  106. package/dist/prompts/chains/parameter-updater/guides/if-node.js.map +1 -0
  107. package/dist/prompts/chains/parameter-updater/guides/index.d.ts +10 -0
  108. package/dist/prompts/chains/parameter-updater/guides/index.js +24 -0
  109. package/dist/prompts/chains/parameter-updater/guides/index.js.map +1 -0
  110. package/dist/prompts/chains/parameter-updater/guides/resource-locator.d.ts +2 -0
  111. package/dist/prompts/chains/parameter-updater/guides/resource-locator.js +99 -0
  112. package/dist/prompts/chains/parameter-updater/guides/resource-locator.js.map +1 -0
  113. package/dist/prompts/chains/parameter-updater/guides/set-node.d.ts +2 -0
  114. package/dist/prompts/chains/parameter-updater/guides/set-node.js +94 -0
  115. package/dist/prompts/chains/parameter-updater/guides/set-node.js.map +1 -0
  116. package/dist/prompts/chains/parameter-updater/guides/switch-node.d.ts +2 -0
  117. package/dist/prompts/chains/parameter-updater/guides/switch-node.js +75 -0
  118. package/dist/prompts/chains/parameter-updater/guides/switch-node.js.map +1 -0
  119. package/dist/prompts/chains/parameter-updater/guides/system-message.d.ts +2 -0
  120. package/dist/prompts/chains/parameter-updater/guides/system-message.js +96 -0
  121. package/dist/prompts/chains/parameter-updater/guides/system-message.js.map +1 -0
  122. package/dist/prompts/chains/parameter-updater/guides/text-fields.d.ts +2 -0
  123. package/dist/prompts/chains/parameter-updater/guides/text-fields.js +31 -0
  124. package/dist/prompts/chains/parameter-updater/guides/text-fields.js.map +1 -0
  125. package/dist/prompts/chains/parameter-updater/guides/tool-nodes.d.ts +2 -0
  126. package/dist/prompts/chains/parameter-updater/guides/tool-nodes.js +76 -0
  127. package/dist/prompts/chains/parameter-updater/guides/tool-nodes.js.map +1 -0
  128. package/dist/prompts/chains/parameter-updater/index.d.ts +8 -0
  129. package/dist/prompts/chains/parameter-updater/index.js +35 -0
  130. package/dist/prompts/chains/parameter-updater/index.js.map +1 -0
  131. package/dist/prompts/chains/parameter-updater/instance-url.d.ts +1 -0
  132. package/dist/prompts/chains/parameter-updater/instance-url.js +15 -0
  133. package/dist/prompts/chains/parameter-updater/instance-url.js.map +1 -0
  134. package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.d.ts +4 -0
  135. package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.js +52 -0
  136. package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.js.map +1 -0
  137. package/dist/prompts/chains/parameter-updater/registry.d.ts +4 -0
  138. package/dist/prompts/chains/parameter-updater/registry.js +66 -0
  139. package/dist/prompts/chains/parameter-updater/registry.js.map +1 -0
  140. package/dist/prompts/chains/parameter-updater/types.d.ts +18 -0
  141. package/dist/prompts/chains/parameter-updater/types.js +3 -0
  142. package/dist/prompts/chains/parameter-updater/types.js.map +1 -0
  143. package/dist/prompts/chains/parameter-updater/utils.d.ts +2 -0
  144. package/dist/prompts/chains/parameter-updater/utils.js +16 -0
  145. package/dist/prompts/chains/parameter-updater/utils.js.map +1 -0
  146. package/dist/prompts/chains/workflow-name.prompt.d.ts +2 -0
  147. package/dist/prompts/chains/workflow-name.prompt.js +11 -0
  148. package/dist/prompts/chains/workflow-name.prompt.js.map +1 -0
  149. package/dist/prompts/index.d.ts +12 -0
  150. package/dist/prompts/index.js +50 -0
  151. package/dist/prompts/index.js.map +1 -0
  152. package/dist/prompts/legacy-agent.prompt.d.ts +6 -0
  153. package/dist/prompts/legacy-agent.prompt.js +594 -0
  154. package/dist/prompts/legacy-agent.prompt.js.map +1 -0
  155. package/dist/session-manager.service.d.ts +16 -0
  156. package/dist/session-manager.service.js +125 -0
  157. package/dist/session-manager.service.js.map +1 -0
  158. package/dist/subgraphs/builder.subgraph.d.ts +132 -0
  159. package/dist/subgraphs/builder.subgraph.js +173 -0
  160. package/dist/subgraphs/builder.subgraph.js.map +1 -0
  161. package/dist/subgraphs/configurator.subgraph.d.ts +142 -0
  162. package/dist/subgraphs/configurator.subgraph.js +173 -0
  163. package/dist/subgraphs/configurator.subgraph.js.map +1 -0
  164. package/dist/subgraphs/discovery.subgraph.d.ts +158 -0
  165. package/dist/subgraphs/discovery.subgraph.js +221 -0
  166. package/dist/subgraphs/discovery.subgraph.js.map +1 -0
  167. package/dist/subgraphs/subgraph-interface.d.ts +23 -0
  168. package/dist/subgraphs/subgraph-interface.js +7 -0
  169. package/dist/subgraphs/subgraph-interface.js.map +1 -0
  170. package/dist/tools/add-node.tool.d.ts +54 -0
  171. package/dist/tools/add-node.tool.js +176 -0
  172. package/dist/tools/add-node.tool.js.map +1 -0
  173. package/dist/tools/best-practices/chatbot.d.ts +7 -0
  174. package/dist/tools/best-practices/chatbot.js +118 -0
  175. package/dist/tools/best-practices/chatbot.js.map +1 -0
  176. package/dist/tools/best-practices/content-generation.d.ts +7 -0
  177. package/dist/tools/best-practices/content-generation.js +115 -0
  178. package/dist/tools/best-practices/content-generation.js.map +1 -0
  179. package/dist/tools/best-practices/data-analysis.d.ts +7 -0
  180. package/dist/tools/best-practices/data-analysis.js +367 -0
  181. package/dist/tools/best-practices/data-analysis.js.map +1 -0
  182. package/dist/tools/best-practices/data-extraction.d.ts +7 -0
  183. package/dist/tools/best-practices/data-extraction.js +122 -0
  184. package/dist/tools/best-practices/data-extraction.js.map +1 -0
  185. package/dist/tools/best-practices/data-transformation.d.ts +7 -0
  186. package/dist/tools/best-practices/data-transformation.js +162 -0
  187. package/dist/tools/best-practices/data-transformation.js.map +1 -0
  188. package/dist/tools/best-practices/document-processing.d.ts +7 -0
  189. package/dist/tools/best-practices/document-processing.js +335 -0
  190. package/dist/tools/best-practices/document-processing.js.map +1 -0
  191. package/dist/tools/best-practices/enrichment.d.ts +7 -0
  192. package/dist/tools/best-practices/enrichment.js +271 -0
  193. package/dist/tools/best-practices/enrichment.js.map +1 -0
  194. package/dist/tools/best-practices/form-input.d.ts +7 -0
  195. package/dist/tools/best-practices/form-input.js +173 -0
  196. package/dist/tools/best-practices/form-input.js.map +1 -0
  197. package/dist/tools/best-practices/human-in-the-loop.d.ts +7 -0
  198. package/dist/tools/best-practices/human-in-the-loop.js +268 -0
  199. package/dist/tools/best-practices/human-in-the-loop.js.map +1 -0
  200. package/dist/tools/best-practices/index.d.ts +3 -0
  201. package/dist/tools/best-practices/index.js +29 -0
  202. package/dist/tools/best-practices/index.js.map +1 -0
  203. package/dist/tools/best-practices/knowledge-base.d.ts +7 -0
  204. package/dist/tools/best-practices/knowledge-base.js +268 -0
  205. package/dist/tools/best-practices/knowledge-base.js.map +1 -0
  206. package/dist/tools/best-practices/monitoring.d.ts +7 -0
  207. package/dist/tools/best-practices/monitoring.js +178 -0
  208. package/dist/tools/best-practices/monitoring.js.map +1 -0
  209. package/dist/tools/best-practices/notification.d.ts +7 -0
  210. package/dist/tools/best-practices/notification.js +229 -0
  211. package/dist/tools/best-practices/notification.js.map +1 -0
  212. package/dist/tools/best-practices/scheduling.d.ts +7 -0
  213. package/dist/tools/best-practices/scheduling.js +281 -0
  214. package/dist/tools/best-practices/scheduling.js.map +1 -0
  215. package/dist/tools/best-practices/scraping-and-research.d.ts +7 -0
  216. package/dist/tools/best-practices/scraping-and-research.js +161 -0
  217. package/dist/tools/best-practices/scraping-and-research.js.map +1 -0
  218. package/dist/tools/best-practices/triage.d.ts +7 -0
  219. package/dist/tools/best-practices/triage.js +211 -0
  220. package/dist/tools/best-practices/triage.js.map +1 -0
  221. package/dist/tools/builder-tools.d.ts +16 -0
  222. package/dist/tools/builder-tools.js +36 -0
  223. package/dist/tools/builder-tools.js.map +1 -0
  224. package/dist/tools/categorize-prompt.tool.d.ts +5 -0
  225. package/dist/tools/categorize-prompt.tool.js +85 -0
  226. package/dist/tools/categorize-prompt.tool.js.map +1 -0
  227. package/dist/tools/connect-nodes.tool.d.ts +22 -0
  228. package/dist/tools/connect-nodes.tool.js +231 -0
  229. package/dist/tools/connect-nodes.tool.js.map +1 -0
  230. package/dist/tools/engines/node-search-engine.d.ts +16 -0
  231. package/dist/tools/engines/node-search-engine.js +123 -0
  232. package/dist/tools/engines/node-search-engine.js.map +1 -0
  233. package/dist/tools/get-best-practices.tool.d.ts +33 -0
  234. package/dist/tools/get-best-practices.tool.js +94 -0
  235. package/dist/tools/get-best-practices.tool.js.map +1 -0
  236. package/dist/tools/get-node-examples.tool.d.ts +119 -0
  237. package/dist/tools/get-node-examples.tool.js +189 -0
  238. package/dist/tools/get-node-examples.tool.js.map +1 -0
  239. package/dist/tools/get-node-parameter.tool.d.ts +4 -0
  240. package/dist/tools/get-node-parameter.tool.js +114 -0
  241. package/dist/tools/get-node-parameter.tool.js.map +1 -0
  242. package/dist/tools/get-workflow-examples.tool.d.ts +34 -0
  243. package/dist/tools/get-workflow-examples.tool.js +138 -0
  244. package/dist/tools/get-workflow-examples.tool.js.map +1 -0
  245. package/dist/tools/helpers/index.d.ts +4 -0
  246. package/dist/tools/helpers/index.js +21 -0
  247. package/dist/tools/helpers/index.js.map +1 -0
  248. package/dist/tools/helpers/progress.d.ts +9 -0
  249. package/dist/tools/helpers/progress.js +126 -0
  250. package/dist/tools/helpers/progress.js.map +1 -0
  251. package/dist/tools/helpers/response.d.ts +7 -0
  252. package/dist/tools/helpers/response.js +33 -0
  253. package/dist/tools/helpers/response.js.map +1 -0
  254. package/dist/tools/helpers/state.d.ts +14 -0
  255. package/dist/tools/helpers/state.js +85 -0
  256. package/dist/tools/helpers/state.js.map +1 -0
  257. package/dist/tools/helpers/validation.d.ts +13 -0
  258. package/dist/tools/helpers/validation.js +83 -0
  259. package/dist/tools/helpers/validation.js.map +1 -0
  260. package/dist/tools/node-details.tool.d.ts +31 -0
  261. package/dist/tools/node-details.tool.js +201 -0
  262. package/dist/tools/node-details.tool.js.map +1 -0
  263. package/dist/tools/node-search.tool.d.ts +62 -0
  264. package/dist/tools/node-search.tool.js +155 -0
  265. package/dist/tools/node-search.tool.js.map +1 -0
  266. package/dist/tools/remove-connection.tool.d.ts +24 -0
  267. package/dist/tools/remove-connection.tool.js +234 -0
  268. package/dist/tools/remove-connection.tool.js.map +1 -0
  269. package/dist/tools/remove-node.tool.d.ts +4 -0
  270. package/dist/tools/remove-node.tool.js +106 -0
  271. package/dist/tools/remove-node.tool.js.map +1 -0
  272. package/dist/tools/update-node-parameters.tool.d.ts +5 -0
  273. package/dist/tools/update-node-parameters.tool.js +156 -0
  274. package/dist/tools/update-node-parameters.tool.js.map +1 -0
  275. package/dist/tools/utils/connection-parameters.utils.d.ts +8 -0
  276. package/dist/tools/utils/connection-parameters.utils.js +47 -0
  277. package/dist/tools/utils/connection-parameters.utils.js.map +1 -0
  278. package/dist/tools/utils/connection.utils.d.ts +15 -0
  279. package/dist/tools/utils/connection.utils.js +321 -0
  280. package/dist/tools/utils/connection.utils.js.map +1 -0
  281. package/dist/tools/utils/mermaid.utils.d.ts +13 -0
  282. package/dist/tools/utils/mermaid.utils.js +647 -0
  283. package/dist/tools/utils/mermaid.utils.js.map +1 -0
  284. package/dist/tools/utils/node-configuration.utils.d.ts +13 -0
  285. package/dist/tools/utils/node-configuration.utils.js +75 -0
  286. package/dist/tools/utils/node-configuration.utils.js.map +1 -0
  287. package/dist/tools/utils/node-creation.utils.d.ts +8 -0
  288. package/dist/tools/utils/node-creation.utils.js +56 -0
  289. package/dist/tools/utils/node-creation.utils.js.map +1 -0
  290. package/dist/tools/utils/node-positioning.utils.d.ts +17 -0
  291. package/dist/tools/utils/node-positioning.utils.js +87 -0
  292. package/dist/tools/utils/node-positioning.utils.js.map +1 -0
  293. package/dist/tools/utils/parameter-update.utils.d.ts +6 -0
  294. package/dist/tools/utils/parameter-update.utils.js +75 -0
  295. package/dist/tools/utils/parameter-update.utils.js.map +1 -0
  296. package/dist/tools/utils/test/workflows/ai-assistant.workflow.d.ts +2 -0
  297. package/dist/tools/utils/test/workflows/ai-assistant.workflow.js +542 -0
  298. package/dist/tools/utils/test/workflows/ai-assistant.workflow.js.map +1 -0
  299. package/dist/tools/validate-configuration.tool.d.ts +4 -0
  300. package/dist/tools/validate-configuration.tool.js +70 -0
  301. package/dist/tools/validate-configuration.tool.js.map +1 -0
  302. package/dist/tools/validate-structure.tool.d.ts +4 -0
  303. package/dist/tools/validate-structure.tool.js +66 -0
  304. package/dist/tools/validate-structure.tool.js.map +1 -0
  305. package/dist/tools/validate-workflow.tool.d.ts +5 -0
  306. package/dist/tools/validate-workflow.tool.js +73 -0
  307. package/dist/tools/validate-workflow.tool.js.map +1 -0
  308. package/dist/tools/web/templates.d.ts +23 -0
  309. package/dist/tools/web/templates.js +106 -0
  310. package/dist/tools/web/templates.js.map +1 -0
  311. package/dist/types/best-practices.d.ts +6 -0
  312. package/dist/types/best-practices.js +3 -0
  313. package/dist/types/best-practices.js.map +1 -0
  314. package/dist/types/categorization.d.ts +23 -0
  315. package/dist/types/categorization.js +38 -0
  316. package/dist/types/categorization.js.map +1 -0
  317. package/dist/types/config.d.ts +55 -0
  318. package/dist/types/config.js +3 -0
  319. package/dist/types/config.js.map +1 -0
  320. package/dist/types/connections.d.ts +30 -0
  321. package/dist/types/connections.js +3 -0
  322. package/dist/types/connections.js.map +1 -0
  323. package/dist/types/coordination.d.ts +42 -0
  324. package/dist/types/coordination.js +23 -0
  325. package/dist/types/coordination.js.map +1 -0
  326. package/dist/types/discovery-types.d.ts +12 -0
  327. package/dist/types/discovery-types.js +3 -0
  328. package/dist/types/discovery-types.js.map +1 -0
  329. package/dist/types/index.d.ts +11 -0
  330. package/dist/types/index.js +18 -0
  331. package/dist/types/index.js.map +1 -0
  332. package/dist/types/langchain.d.ts +3 -0
  333. package/dist/types/langchain.js +15 -0
  334. package/dist/types/langchain.js.map +1 -0
  335. package/dist/types/messages.d.ts +32 -0
  336. package/dist/types/messages.js +3 -0
  337. package/dist/types/messages.js.map +1 -0
  338. package/dist/types/nodes.d.ts +27 -0
  339. package/dist/types/nodes.js +3 -0
  340. package/dist/types/nodes.js.map +1 -0
  341. package/dist/types/sessions.d.ts +8 -0
  342. package/dist/types/sessions.js +34 -0
  343. package/dist/types/sessions.js.map +1 -0
  344. package/dist/types/streaming.d.ts +33 -0
  345. package/dist/types/streaming.js +3 -0
  346. package/dist/types/streaming.js.map +1 -0
  347. package/dist/types/tools.d.ts +120 -0
  348. package/dist/types/tools.js +3 -0
  349. package/dist/types/tools.js.map +1 -0
  350. package/dist/types/utils.d.ts +2 -0
  351. package/dist/types/utils.js +3 -0
  352. package/dist/types/utils.js.map +1 -0
  353. package/dist/types/web/templates.d.ts +45 -0
  354. package/dist/types/web/templates.js +37 -0
  355. package/dist/types/web/templates.js.map +1 -0
  356. package/dist/types/workflow.d.ts +31 -0
  357. package/dist/types/workflow.js +3 -0
  358. package/dist/types/workflow.js.map +1 -0
  359. package/dist/utils/cache-control/helpers.d.ts +5 -0
  360. package/dist/utils/cache-control/helpers.js +126 -0
  361. package/dist/utils/cache-control/helpers.js.map +1 -0
  362. package/dist/utils/cache-control/index.d.ts +1 -0
  363. package/dist/utils/cache-control/index.js +9 -0
  364. package/dist/utils/cache-control/index.js.map +1 -0
  365. package/dist/utils/cleanup-dangling-tool-call-messages.d.ts +3 -0
  366. package/dist/utils/cleanup-dangling-tool-call-messages.js +10 -0
  367. package/dist/utils/cleanup-dangling-tool-call-messages.js.map +1 -0
  368. package/dist/utils/context-builders.d.ts +10 -0
  369. package/dist/utils/context-builders.js +71 -0
  370. package/dist/utils/context-builders.js.map +1 -0
  371. package/dist/utils/coordination-log.d.ts +15 -0
  372. package/dist/utils/coordination-log.js +75 -0
  373. package/dist/utils/coordination-log.js.map +1 -0
  374. package/dist/utils/http-proxy-agent.d.ts +2 -0
  375. package/dist/utils/http-proxy-agent.js +16 -0
  376. package/dist/utils/http-proxy-agent.js.map +1 -0
  377. package/dist/utils/node-helpers.d.ts +2 -0
  378. package/dist/utils/node-helpers.js +54 -0
  379. package/dist/utils/node-helpers.js.map +1 -0
  380. package/dist/utils/operations-processor.d.ts +14 -0
  381. package/dist/utils/operations-processor.js +196 -0
  382. package/dist/utils/operations-processor.js.map +1 -0
  383. package/dist/utils/state-modifier.d.ts +32 -0
  384. package/dist/utils/state-modifier.js +112 -0
  385. package/dist/utils/state-modifier.js.map +1 -0
  386. package/dist/utils/state-reducers.d.ts +3 -0
  387. package/dist/utils/state-reducers.js +20 -0
  388. package/dist/utils/state-reducers.js.map +1 -0
  389. package/dist/utils/stream-processor.d.ts +20 -0
  390. package/dist/utils/stream-processor.js +277 -0
  391. package/dist/utils/stream-processor.js.map +1 -0
  392. package/dist/utils/subgraph-helpers.d.ts +16 -0
  393. package/dist/utils/subgraph-helpers.js +117 -0
  394. package/dist/utils/subgraph-helpers.js.map +1 -0
  395. package/dist/utils/token-usage.d.ts +21 -0
  396. package/dist/utils/token-usage.js +45 -0
  397. package/dist/utils/token-usage.js.map +1 -0
  398. package/dist/utils/tool-executor.d.ts +3 -0
  399. package/dist/utils/tool-executor.js +108 -0
  400. package/dist/utils/tool-executor.js.map +1 -0
  401. package/dist/utils/trim-workflow-context.d.ts +2 -0
  402. package/dist/utils/trim-workflow-context.js +53 -0
  403. package/dist/utils/trim-workflow-context.js.map +1 -0
  404. package/dist/utils/workflow-validation.d.ts +2 -0
  405. package/dist/utils/workflow-validation.js +37 -0
  406. package/dist/utils/workflow-validation.js.map +1 -0
  407. package/dist/validation/checks/agent-prompt.d.ts +3 -0
  408. package/dist/validation/checks/agent-prompt.js +47 -0
  409. package/dist/validation/checks/agent-prompt.js.map +1 -0
  410. package/dist/validation/checks/connections.d.ts +4 -0
  411. package/dist/validation/checks/connections.js +163 -0
  412. package/dist/validation/checks/connections.js.map +1 -0
  413. package/dist/validation/checks/credentials.d.ts +3 -0
  414. package/dist/validation/checks/credentials.js +125 -0
  415. package/dist/validation/checks/credentials.js.map +1 -0
  416. package/dist/validation/checks/from-ai.d.ts +4 -0
  417. package/dist/validation/checks/from-ai.js +62 -0
  418. package/dist/validation/checks/from-ai.js.map +1 -0
  419. package/dist/validation/checks/index.d.ts +7 -0
  420. package/dist/validation/checks/index.js +18 -0
  421. package/dist/validation/checks/index.js.map +1 -0
  422. package/dist/validation/checks/nodes.d.ts +4 -0
  423. package/dist/validation/checks/nodes.js +44 -0
  424. package/dist/validation/checks/nodes.js.map +1 -0
  425. package/dist/validation/checks/tools.d.ts +4 -0
  426. package/dist/validation/checks/tools.js +38 -0
  427. package/dist/validation/checks/tools.js.map +1 -0
  428. package/dist/validation/checks/trigger.d.ts +8 -0
  429. package/dist/validation/checks/trigger.js +33 -0
  430. package/dist/validation/checks/trigger.js.map +1 -0
  431. package/dist/validation/programmatic.d.ts +3 -0
  432. package/dist/validation/programmatic.js +24 -0
  433. package/dist/validation/programmatic.js.map +1 -0
  434. package/dist/validation/types.d.ts +52 -0
  435. package/dist/validation/types.js +31 -0
  436. package/dist/validation/types.js.map +1 -0
  437. package/dist/validation/utils/expressions.d.ts +3 -0
  438. package/dist/validation/utils/expressions.js +37 -0
  439. package/dist/validation/utils/expressions.js.map +1 -0
  440. package/dist/validation/utils/is-tool.d.ts +2 -0
  441. package/dist/validation/utils/is-tool.js +7 -0
  442. package/dist/validation/utils/is-tool.js.map +1 -0
  443. package/dist/validation/utils/node-type-map.d.ts +8 -0
  444. package/dist/validation/utils/node-type-map.js +50 -0
  445. package/dist/validation/utils/node-type-map.js.map +1 -0
  446. package/dist/validation/utils/resolve-connections.d.ts +8 -0
  447. package/dist/validation/utils/resolve-connections.js +64 -0
  448. package/dist/validation/utils/resolve-connections.js.map +1 -0
  449. package/dist/workflow-builder-agent.d.ts +72 -0
  450. package/dist/workflow-builder-agent.js +401 -0
  451. package/dist/workflow-builder-agent.js.map +1 -0
  452. package/dist/workflow-state.d.ts +26 -0
  453. package/dist/workflow-state.js +79 -0
  454. package/dist/workflow-state.js.map +1 -0
  455. package/package.json +77 -0
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildBuilderPrompt = buildBuilderPrompt;
4
+ const builder_1 = require("../builder");
5
+ const BUILDER_ROLE = 'You are a Builder Agent specialized in constructing n8n workflows.';
6
+ const EXECUTION_SEQUENCE = `You MUST follow these steps IN ORDER. Do not skip any step.
7
+
8
+ STEP 1: CREATE NODES
9
+ - Call add_nodes for EVERY node needed based on discovery results
10
+ - Create multiple nodes in PARALLEL for efficiency
11
+ - Do NOT respond with text - START BUILDING immediately
12
+
13
+ STEP 2: CONNECT NODES
14
+ - Call connect_nodes for ALL required connections
15
+ - Connect multiple node pairs in PARALLEL
16
+
17
+ STEP 3: VALIDATE (REQUIRED)
18
+ - After ALL nodes and connections are created, call validate_structure
19
+ - This step is MANDATORY - you cannot finish without it
20
+ - If validation finds issues (missing trigger, invalid connections), fix them and validate again
21
+ - MAXIMUM 3 VALIDATION ATTEMPTS: After 3 calls to validate_structure, proceed to respond regardless of remaining issues
22
+
23
+ STEP 4: RESPOND TO USER
24
+ - Only after validation passes, provide your brief summary
25
+
26
+ NEVER respond to the user without calling validate_structure first`;
27
+ const NODE_CREATION = `Each add_nodes call creates ONE node. You must provide:
28
+ - nodeType: The exact type from discovery (e.g., "n8n-nodes-base.httpRequest" for the "HTTP Request node")
29
+ - name: Descriptive name (e.g., "Fetch Weather Data")
30
+ - connectionParametersReasoning: Explain your thinking about connection parameters
31
+ - connectionParameters: Parameters that affect connections (or {{}} if none needed)`;
32
+ const WORKFLOW_CONFIG_NODE = `Always include a Workflow Configuration node at the start of every workflow.
33
+
34
+ The Workflow Configuration node (n8n-nodes-base.set) should be placed immediately after the trigger node and before all other processing nodes.
35
+
36
+ Placement rules:
37
+ - Add between trigger and first processing node
38
+ - Connect: Trigger → Workflow Configuration → First processing node
39
+ - Name it "Workflow Configuration"`;
40
+ const DATA_PARSING = `Code nodes are slower than core n8n nodes (like Edit Fields, If, Switch, etc.) as they run in a sandboxed environment. Use Code nodes as a last resort for custom business logic.
41
+ For binary file data, use Extract From File node to extract content from files before processing.
42
+
43
+ For AI-generated structured data, use a Structured Output Parser node. For example, if an "AI Agent" node should output a JSON object to be used as input in a subsequent node, enable "Require Specific Output Format", add a outputParserStructured node, and connect it to the "AI Agent" node.
44
+
45
+ When Discovery results include AI Agent or Structured Output Parser:
46
+ 1. Create the Structured Output Parser node
47
+ 2. Set AI Agent's hasOutputParser: true in connectionParameters
48
+ 3. Connect: Structured Output Parser → AI Agent (ai_outputParser connection)`;
49
+ const PROACTIVE_DESIGN = `Anticipate workflow needs:
50
+ - Switch or If nodes for conditional logic when multiple outcomes exist
51
+ - Edit Fields nodes for data transformation between incompatible formats
52
+ - Edit Fields nodes to prepare data for a node like Gmail, Slack, Telegram, or Google Sheets
53
+ - Schedule Triggers for recurring tasks
54
+ - Error handling for external service calls
55
+
56
+ NEVER use Split In Batches nodes.`;
57
+ const NODE_DEFAULTS = `CRITICAL: NEVER RELY ON DEFAULT PARAMETER VALUES FOR CONNECTIONS
58
+
59
+ Default values often hide connection inputs/outputs. You MUST explicitly configure parameters that affect connections:
60
+ - Vector Store: Mode parameter affects available connections - always set explicitly (e.g., mode: "insert", "retrieve", "retrieve-as-tool")
61
+ - AI Agent: hasOutputParser is off by default, but your workflow may need it to be on
62
+ - Document Loader: textSplittingMode affects whether it accepts a text splitter input - always set explicitly (e.g., textSplittingMode: "custom")
63
+
64
+ ALWAYS check node details and set connectionParameters explicitly.`;
65
+ const CONNECTION_PARAMETERS = `- Static nodes (HTTP Request, Set, Code): reasoning="Static inputs/outputs", parameters={{}}
66
+ - AI Agent with structured output: reasoning="hasOutputParser enables ai_outputParser input for Structured Output Parser", parameters={{ hasOutputParser: true }}
67
+ - Vector Store insert: reasoning="Insert mode requires document input", parameters={{ mode: "insert" }}
68
+ - Vector Store insert for AI Agent: reasoning="Vector store will be used for AI Agent needs retrieve-as-tool mode", parameters={{ mode: "retrieve-as-tool" }}
69
+ - Document Loader custom: reasoning="Custom mode enables text splitter input", parameters={{ textSplittingMode: "custom" }}
70
+ - Switch with routing rules: reasoning="Switch needs N outputs, creating N rules.values entries with outputKeys", parameters={{ mode: "rules", rules: {{ values: [...] }} }} - see <switch_node_pattern> for full structure`;
71
+ const STRUCTURED_OUTPUT_PARSER = `WHEN TO SET hasOutputParser: true on AI Agent:
72
+ - Discovery found Structured Output Parser node → MUST set hasOutputParser: true
73
+ - AI output will be used in conditions (IF/Switch nodes checking $json.field)
74
+ - AI output will be formatted/displayed (HTML emails, reports with specific sections)
75
+ - AI output will be stored in database/data tables with specific fields
76
+ - AI is classifying, scoring, or extracting specific data fields`;
77
+ const AI_CONNECTIONS = `n8n connections flow from SOURCE (output) to TARGET (input).
78
+
79
+ Regular "main" connections flow: Source → Target (data flows forward)
80
+ Example: HTTP Request → Set (HTTP outputs data, Set receives it)
81
+
82
+ AI CAPABILITY CONNECTIONS are REVERSED in direction:
83
+ Sub-nodes (tools, memory, models) connect TO the AI Agent, NOT from it.
84
+ The sub-node is the SOURCE, the AI Agent is the TARGET.
85
+
86
+ ⚠️ WRONG: AI Agent → Calculator Tool (NEVER do this)
87
+ ✅ CORRECT: Calculator Tool → AI Agent (tool provides capability to agent)
88
+
89
+ When calling connect_nodes for AI sub-nodes:
90
+ - sourceNodeName: The sub-node (tool, memory, model, parser)
91
+ - targetNodeName: The AI Agent (or Vector Store, Document Loader)
92
+ - connectionType: The appropriate ai_* type
93
+
94
+ AI Connection Examples (SOURCE → TARGET [connectionType]):
95
+ - OpenAI Chat Model → AI Agent [ai_languageModel]
96
+ - Calculator Tool → AI Agent [ai_tool]
97
+ - HTTP Request Tool → AI Agent [ai_tool]
98
+ - Window Buffer Memory → AI Agent [ai_memory]
99
+ - Structured Output Parser → AI Agent [ai_outputParser]
100
+ - Token Splitter → Default Data Loader [ai_textSplitter]
101
+ - Default Data Loader → Vector Store [ai_document]
102
+ - Embeddings OpenAI → Vector Store [ai_embedding]
103
+ - Vector Store (retrieve-as-tool mode) → AI Agent [ai_tool]
104
+
105
+ The AI Agent only has ONE "main" output for regular data flow.
106
+ All inputs to the AI Agent come FROM sub-nodes via ai_* connection types.`;
107
+ const BRANCHING = `If two nodes (B and C) are both connected to the same output of a node (A), both will execute (with the same data). Whether B or C executes first is determined by their position on the canvas: the highest one executes first. Execution happens depth-first, i.e. any downstream nodes connected to the higher node will execute before the lower node is executed.
108
+ Nodes that route the flow (e.g. if, switch) apply their conditions independently to each input item. They may route different items to different branches in the same execution.`;
109
+ const MERGING = `If two nodes (A and B) are both connected to the same input of the following node (C), node C will execute TWICE — once with the items from A and once with the items from B. The same goes for any nodes connected to node C. These two executions are called runs and are independent of each other. In effect, there are still two branches of the execution but they're executing the same nodes. No merging of the data between them will occur.
110
+ To merge the data of two branches together in a single run, use a merge node. This node performs set operations on the inputs it receives:
111
+ - Union
112
+ - Mode: append
113
+ - Inner join
114
+ - Mode: combine
115
+ - Combine by: Matching fields
116
+ - Output type: Keep matches
117
+ - Left join
118
+ - Mode: combine
119
+ - Combine by: Matching fields
120
+ - Output type: Enrich input 1
121
+ - Right join
122
+ - Mode: combine
123
+ - Combine by: Matching fields
124
+ - Output type: Enrich input 2
125
+ - Cross join
126
+ - Mode: combine
127
+ - Combine by: All possible combinations
128
+ - Outer join
129
+ - Mode: combine
130
+ - Combine by: Matching fields
131
+ - Output type: Keep everything
132
+
133
+ Examples:
134
+ - Enriching a dataset with another one
135
+ - Matching items between two datasets`;
136
+ const AGENT_NODE_DISTINCTION = `Distinguish between two different agent node types:
137
+
138
+ 1. **AI Agent** (@n8n/n8n-nodes-langchain.agent)
139
+ - Main workflow node that orchestrates AI tasks
140
+ - Use for: Primary AI logic, chatbots, autonomous workflows
141
+
142
+ 2. **AI Agent Tool** (@n8n/n8n-nodes-langchain.agentTool)
143
+ - Sub-node that acts as a tool for another AI Agent
144
+ - Use for: Multi-agent systems where one agent calls another
145
+
146
+ When discovery results include "agent", use AI Agent unless explicitly specified as "agent tool" or "sub-agent".
147
+ When discovery results include "AI", use the AI Agent node, instead of a provider-specific node like googleGemini or openAi nodes.`;
148
+ const RAG_PATTERN = `For RAG (Retrieval-Augmented Generation) workflows:
149
+
150
+ Main data flow:
151
+ - Data source (e.g., HTTP Request) → Vector Store [main connection]
152
+
153
+ AI capability connections:
154
+ - Document Loader → Vector Store [ai_document]
155
+ - Embeddings → Vector Store [ai_embedding]
156
+ - Text Splitter → Document Loader [ai_textSplitter]
157
+
158
+ Common mistake to avoid:
159
+ - NEVER connect Document Loader to main data outputs
160
+ - Document Loader is an AI sub-node that gives Vector Store document processing capability`;
161
+ const SWITCH_NODE_PATTERN = `For Switch nodes with multiple routing paths:
162
+ - The number of outputs is determined by the number of entries in rules.values[]
163
+ - You MUST create the rules.values[] array with placeholder entries for each output branch
164
+ - Each entry needs: conditions structure (with empty leftValue/rightValue) + renameOutput: true + descriptive outputKey
165
+ - Configurator will fill in the actual condition values later
166
+ - Use descriptive node names like "Route by Amount" or "Route by Status"
167
+
168
+ Example connectionParameters for 3-way routing:
169
+ {{
170
+ "mode": "rules",
171
+ "rules": {{
172
+ "values": [
173
+ {{
174
+ "conditions": {{
175
+ "options": {{ "caseSensitive": true, "leftValue": "", "typeValidation": "strict" }},
176
+ "conditions": [{{ "leftValue": "", "rightValue": "", "operator": {{ "type": "string", "operation": "equals" }} }}],
177
+ "combinator": "and"
178
+ }},
179
+ "renameOutput": true,
180
+ "outputKey": "Output 1 Name"
181
+ }},
182
+ {{
183
+ "conditions": {{
184
+ "options": {{ "caseSensitive": true, "leftValue": "", "typeValidation": "strict" }},
185
+ "conditions": [{{ "leftValue": "", "rightValue": "", "operator": {{ "type": "string", "operation": "equals" }} }}],
186
+ "combinator": "and"
187
+ }},
188
+ "renameOutput": true,
189
+ "outputKey": "Output 2 Name"
190
+ }},
191
+ {{
192
+ "conditions": {{
193
+ "options": {{ "caseSensitive": true, "leftValue": "", "typeValidation": "strict" }},
194
+ "conditions": [{{ "leftValue": "", "rightValue": "", "operator": {{ "type": "string", "operation": "equals" }} }}],
195
+ "combinator": "and"
196
+ }},
197
+ "renameOutput": true,
198
+ "outputKey": "Output 3 Name"
199
+ }}
200
+ ]
201
+ }}
202
+ }}`;
203
+ const NODE_CONNECTION_EXAMPLES = `<node_connection_examples>
204
+ When connecting nodes with non-standard output patterns, use get_node_connection_examples:
205
+
206
+ Call get_node_connection_examples when:
207
+ - Connecting Loop Over Items (splitInBatches) - has TWO outputs with specific meanings
208
+ - Connecting Switch nodes with multiple outputs
209
+ - Connecting IF nodes with true/false branches
210
+ - Any node where you're unsure about connection patterns
211
+
212
+ Usage:
213
+ - nodeType: "n8n-nodes-base.splitInBatches" (exact node type)
214
+ - Returns mermaid diagrams showing how the node is typically connected
215
+
216
+ CRITICAL for Loop Over Items (splitInBatches):
217
+ This node has TWO outputs that work differently from most nodes:
218
+ - Output 0 (first array element) = "Done" branch - connects to nodes that run AFTER all looping completes
219
+ - Output 1 (second array element) = "Loop" branch - connects to nodes that process each batch during the loop
220
+ This is COUNTERINTUITIVE - the loop processing is on output 1, NOT output 0.
221
+
222
+ When connecting splitInBatches, use sourceOutputIndex to specify which output:
223
+ - sourceOutputIndex: 0 → "Done" branch (post-loop processing, aggregation)
224
+ - sourceOutputIndex: 1 → "Loop" branch (batch processing during loop)
225
+
226
+ Example: Looping over items, processing each batch, then aggregating results:
227
+ - connect_nodes(source: "Loop Over Items", target: "Process Each Batch", sourceOutputIndex: 1) // Loop branch
228
+ - connect_nodes(source: "Loop Over Items", target: "Aggregate Results", sourceOutputIndex: 0) // Done branch
229
+ - connect_nodes(source: "Process Each Batch", target: "Loop Over Items") // Loop back for next batch
230
+ </node_connection_examples>`;
231
+ const CONNECTION_TYPES = `<connection_type_reference>
232
+ CONNECTION TYPES AND DIRECTIONS:
233
+
234
+ **Main Connections** (main) - Regular data flow, source outputs TO target:
235
+ - Trigger → HTTP Request → Set → Email
236
+ - AI Agent → Email (AI Agent's main output goes to next node)
237
+
238
+ **AI Capability Connections** - Sub-nodes connect TO their parent node:
239
+ Remember: Sub-node is SOURCE, Parent is TARGET
240
+
241
+ ai_languageModel - Language model provides LLM capability:
242
+ - OpenAI Chat Model → AI Agent
243
+ - Anthropic Chat Model → AI Agent
244
+
245
+ ai_tool - Tool provides action capability:
246
+ - Calculator Tool → AI Agent
247
+ - HTTP Request Tool → AI Agent
248
+ - Code Tool → AI Agent
249
+ - AI Agent Tool → AI Agent (multi-agent systems)
250
+
251
+ ai_memory - Memory provides conversation history:
252
+ - Window Buffer Memory → AI Agent
253
+ - Postgres Chat Memory → AI Agent
254
+
255
+ ai_outputParser - Parser provides structured output capability:
256
+ - Structured Output Parser → AI Agent
257
+
258
+ ai_document - Document loader provides documents:
259
+ - Default Data Loader → Vector Store
260
+
261
+ ai_embedding - Embeddings provides vector generation:
262
+ - OpenAI Embeddings → Vector Store
263
+ - Cohere Embeddings → Vector Store
264
+
265
+ ai_textSplitter - Splitter provides chunking capability:
266
+ - Token Text Splitter → Document Loader
267
+ - Recursive Character Text Splitter → Document Loader
268
+
269
+ ai_vectorStore - Vector store provides retrieval (when used as tool):
270
+ - Vector Store (mode: retrieve-as-tool) → AI Agent [ai_tool]
271
+
272
+ COMMON MISTAKES TO AVOID:
273
+ ❌ AI Agent → OpenAI Chat Model (WRONG - model provides TO agent)
274
+ ❌ AI Agent → Calculator Tool (WRONG - tool provides TO agent)
275
+ ❌ AI Agent → Window Buffer Memory (WRONG - memory provides TO agent)
276
+ ✅ OpenAI Chat Model → AI Agent (CORRECT)
277
+ ✅ Calculator Tool → AI Agent (CORRECT)
278
+ ✅ Window Buffer Memory → AI Agent (CORRECT)
279
+ </connection_type_reference>`;
280
+ const DATA_TABLES = `**Data Tables VS 3rd party services**
281
+ - Data Tables provide built-in data storage within n8n, allowing you to persist and manage data directly in your workflows without external databases.
282
+ - Use the Data table node (n8n-nodes-base.dataTable) in workflows to retrieve, insert, update, or delete records.
283
+ - When storing, retrieving, or managing structured data within workflows, always prefer using n8n's native Data tables over external services like Google Sheets, Airtable, or other third-party databases if not specified otherwise.
284
+ `;
285
+ const RESTRICTIONS = `- Respond before calling validate_structure
286
+ - Skip validation even if you think structure is correct
287
+ - Add commentary between tool calls - execute tools silently
288
+ - Configure node parameters (that's the Configurator Agent's job)
289
+ - Search for nodes (that's the Discovery Agent's job)
290
+ - Make assumptions about node types - use exactly what Discovery found`;
291
+ const RESPONSE_FORMAT = `Provide ONE brief text message summarizing:
292
+ - What nodes were added
293
+ - How they're connected
294
+
295
+ Example: "Created 4 nodes: Trigger → Weather → Image Generation → Email"`;
296
+ function buildBuilderPrompt() {
297
+ return (0, builder_1.prompt)()
298
+ .section('role', BUILDER_ROLE)
299
+ .section('mandatory_execution_sequence', EXECUTION_SEQUENCE)
300
+ .section('node_creation', NODE_CREATION)
301
+ .section('workflow_configuration_node', WORKFLOW_CONFIG_NODE)
302
+ .section('data_parsing_strategy', DATA_PARSING)
303
+ .section('proactive_design', PROACTIVE_DESIGN)
304
+ .section('node_defaults_warning', NODE_DEFAULTS)
305
+ .section('connection_parameters_examples', CONNECTION_PARAMETERS)
306
+ .section('structured_output_parser_guidance', STRUCTURED_OUTPUT_PARSER)
307
+ .section('node_connections_understanding', AI_CONNECTIONS)
308
+ .section('branching', BRANCHING)
309
+ .section('merging', MERGING)
310
+ .section('agent_node_distinction', AGENT_NODE_DISTINCTION)
311
+ .section('rag_workflow_pattern', RAG_PATTERN)
312
+ .section('switch_node_pattern', SWITCH_NODE_PATTERN)
313
+ .section('node_connection_examples', NODE_CONNECTION_EXAMPLES)
314
+ .section('connection_type_examples', CONNECTION_TYPES)
315
+ .section('data_tables', DATA_TABLES)
316
+ .section('do_not', RESTRICTIONS)
317
+ .section('response_format', RESPONSE_FORMAT)
318
+ .build();
319
+ }
320
+ //# sourceMappingURL=builder.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.prompt.js","sourceRoot":"","sources":["../../../src/prompts/agents/builder.prompt.ts"],"names":[],"mappings":";;AAgUA,gDAuBC;AAhVD,wCAAoC;AAEpC,MAAM,YAAY,GAAG,oEAAoE,CAAC;AAE1F,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;mEAoBwC,CAAC;AAEpE,MAAM,aAAa,GAAG;;;;oFAI8D,CAAC;AAErF,MAAM,oBAAoB,GAAG;;;;;;;mCAOM,CAAC;AAEpC,MAAM,YAAY,GAAG;;;;;;;;6EAQwD,CAAC;AAE9E,MAAM,gBAAgB,GAAG;;;;;;;kCAOS,CAAC;AAEnC,MAAM,aAAa,GAAG;;;;;;;mEAO6C,CAAC;AAEpE,MAAM,qBAAqB,GAAG;;;;;4NAK8L,CAAC;AAE7N,MAAM,wBAAwB,GAAG;;;;;iEAKgC,CAAC;AAElE,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EA6BmD,CAAC;AAE3E,MAAM,SAAS,GAAG;iLAC+J,CAAC;AAElL,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;sCA0BsB,CAAC;AAEvC,MAAM,sBAAsB,GAAG;;;;;;;;;;;mIAWoG,CAAC;AAEpI,MAAM,WAAW,GAAG;;;;;;;;;;;;2FAYuE,CAAC;AAE5F,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCzB,CAAC;AAEJ,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA2BL,CAAC;AAE7B,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgDI,CAAC;AAE9B,MAAM,WAAW,GAAG;;;;CAInB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;uEAKkD,CAAC;AAExE,MAAM,eAAe,GAAG;;;;yEAIiD,CAAC;AAE1E,SAAgB,kBAAkB;IACjC,OAAO,IAAA,gBAAM,GAAE;SACb,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC;SAC7B,OAAO,CAAC,8BAA8B,EAAE,kBAAkB,CAAC;SAC3D,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC;SACvC,OAAO,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;SAC5D,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC;SAC9C,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;SAC7C,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC;SAC/C,OAAO,CAAC,gCAAgC,EAAE,qBAAqB,CAAC;SAChE,OAAO,CAAC,mCAAmC,EAAE,wBAAwB,CAAC;SACtE,OAAO,CAAC,gCAAgC,EAAE,cAAc,CAAC;SACzD,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;SAC/B,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SAC3B,OAAO,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;SACzD,OAAO,CAAC,sBAAsB,EAAE,WAAW,CAAC;SAC5C,OAAO,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;SACnD,OAAO,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC7D,OAAO,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;SACrD,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;SACnC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC/B,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAC3C,KAAK,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const INSTANCE_URL_PROMPT = "\n<instance_url>\nThe n8n instance base URL is: {instanceUrl}\n\nThis URL is essential for webhook nodes and chat triggers as it provides the base URL for:\n- Webhook URLs that external services need to call\n- Chat trigger URLs for conversational interfaces\n- Any node that requires the full instance URL to generate proper callback URLs\n\nWhen working with webhook or chat trigger nodes, use this URL as the base for constructing proper endpoint URLs.\n</instance_url>\n";
2
+ export declare function buildConfiguratorPrompt(): string;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INSTANCE_URL_PROMPT = void 0;
4
+ exports.buildConfiguratorPrompt = buildConfiguratorPrompt;
5
+ const builder_1 = require("../builder");
6
+ const CONFIGURATOR_ROLE = 'You are a Configurator Agent specialized in setting up n8n node parameters.';
7
+ const EXECUTION_SEQUENCE = `You MUST follow these steps IN ORDER. Do not skip any step.
8
+
9
+ STEP 1: RETRIEVE NODE EXAMPLES
10
+ - Call the get_node_configuration_examples tool for each node type being configured
11
+ - Use the examples to understand how these node types can be configured
12
+
13
+ STEP 2: CONFIGURE ALL NODES
14
+ - Call update_node_parameters for EVERY node in the workflow
15
+ - Configure multiple nodes in PARALLEL for efficiency
16
+ - Do NOT respond with text - START CONFIGURING immediately
17
+
18
+ STEP 3: VALIDATE (REQUIRED)
19
+ - After ALL configurations complete, call validate_configuration
20
+ - This step is MANDATORY - you cannot finish without it
21
+ - If validation finds issues, fix them and validate again
22
+ - MAXIMUM 3 VALIDATION ATTEMPTS: After 3 calls to validate_configuration, proceed to respond regardless of remaining issues
23
+
24
+ STEP 4: RESPOND TO USER
25
+ - Only after validation passes, provide your response
26
+
27
+ NEVER respond to the user without calling validate_configuration first`;
28
+ const WORKFLOW_JSON_DETECTION = `- You receive <current_workflow_json> in your context
29
+ - If you see nodes in the workflow JSON, you MUST configure them IMMEDIATELY
30
+ - Look at the workflow JSON, identify each node, and call update_node_parameters for ALL of them`;
31
+ const PARAMETER_CONFIGURATION = `Use update_node_parameters with natural language instructions:
32
+ - "Set URL to https://api.example.com/weather"
33
+ - "Add header Authorization: Bearer token"
34
+ - "Set method to POST"
35
+ - "Add field 'status' with value 'processed'"`;
36
+ const DATA_REFERENCING = `Nodes output an array of items. Nodes have access to the output items of all the nodes that have already executed.
37
+
38
+ Within a node, data from previous nodes is commonly referenced using the following:
39
+ - $json: the current JSON data of the previous node
40
+ - $('<node_name>').item.json: the JSON data of the matching item of any preceding node
41
+
42
+ Prefer $('<node_name>').item to $('<node_name>').first() or $('<node_name>').last() unless it is explicitly required to fix an error.
43
+
44
+ Examples in parameter configuration:
45
+ - "Set field to ={{ $json.fieldName }}"
46
+ - "Set value to ={{ $('Previous Node').item.json.value }}"
47
+ - "Set message to ={{ $('HTTP Request').item.json.message }}"`;
48
+ const TOOL_NODE_EXPRESSIONS = `Tool nodes (types ending in "Tool") support $fromAI expressions:
49
+ - "Set sendTo to ={{ $fromAI('to') }}"
50
+ - "Set subject to ={{ $fromAI('subject') }}"
51
+ - "Set message to ={{ $fromAI('message_html') }}"
52
+ - "Set timeMin to ={{ $fromAI('After', '', 'string') }}"
53
+
54
+ $fromAI syntax: ={{ $fromAI('key', 'description', 'type', defaultValue) }}
55
+ - ONLY use in tool nodes (check node type ends with "Tool")
56
+ - Use for dynamic values that AI determines at runtime
57
+ - For regular nodes, use static values or standard expressions`;
58
+ const CRITICAL_PARAMETERS = `- HTTP Request: URL, method, headers (if auth needed)
59
+ - Set node: Fields to set with values
60
+ - Code node: The actual code to execute
61
+ - IF node: Conditions to check
62
+ - Switch node: Configure rules.values[] with conditions for each output branch (uses same filter structure as IF node)
63
+ - Document Loader: dataType parameter ('binary' for files like PDF, 'json' for JSON data)
64
+ - AI nodes: Prompts, models, configurations
65
+ - Tool nodes: Use $fromAI for dynamic recipient/subject/message fields`;
66
+ const DEFAULT_VALUES_WARNING = `Defaults are traps that cause runtime failures. Examples:
67
+ - Document Loader defaults to 'json' but MUST be 'binary' when processing files
68
+ - HTTP Request defaults to GET but APIs often need POST
69
+ - Vector Store mode affects available connections - set explicitly (retrieve-as-tool when using with AI Agent)`;
70
+ const SWITCH_NODE_CONFIGURATION = `Switch nodes require configuring rules.values[] array - each entry creates one output:
71
+
72
+ Structure per rule:
73
+ {{
74
+ "conditions": {{
75
+ "options": {{ "caseSensitive": true, "leftValue": "", "typeValidation": "strict" }},
76
+ "conditions": [
77
+ {{
78
+ "leftValue": "={{{{ $json.fieldName }}}}",
79
+ "rightValue": <value>,
80
+ "operator": {{ "type": "number|string", "operation": "lt|gt|equals|etc" }}
81
+ }}
82
+ ],
83
+ "combinator": "and"
84
+ }},
85
+ "renameOutput": true,
86
+ "outputKey": "Descriptive Label"
87
+ }}
88
+
89
+ For numeric ranges (e.g., $100-$1000):
90
+ - Use TWO conditions with combinator: "and"
91
+ - First: gte (greater than or equal)
92
+ - Second: lte (less than or equal)
93
+
94
+ Always set renameOutput: true and provide descriptive outputKey labels.`;
95
+ const NODE_CONFIGURATION_EXAMPLES = `NODE CONFIGURATION EXAMPLES:
96
+ When configuring complex nodes, use get_node_configuration_examples to see real-world examples from community templates:
97
+
98
+ When to use:
99
+ - Before configuring nodes with complex parameters (HTTP Request, Code, IF, Switch)
100
+ - When you need to understand proper parameter structure for unfamiliar nodes
101
+ - When user requests a specific integration pattern
102
+
103
+ Usage:
104
+ - Call with nodeType: "n8n-nodes-base.httpRequest" (exact node type name)
105
+ - Optionally filter by nodeVersion if needed
106
+ - Examples show proven parameter configurations from community workflows
107
+ - Use as reference for proper parameter structure and values`;
108
+ const RESPONSE_FORMAT = `After validation passes, provide a concise summary:
109
+ - List any placeholders requiring user configuration (e.g., "URL placeholder needs actual endpoint")
110
+ - Note which nodes were configured and key settings applied
111
+ - Keep it brief - this output is used for coordination with other LLM agents, not displayed directly to users`;
112
+ const RESTRICTIONS = `- Respond before calling validate_configuration
113
+ - Skip validation even if you think configuration is correct
114
+ - Add commentary between tool calls - execute tools silently`;
115
+ exports.INSTANCE_URL_PROMPT = `
116
+ <instance_url>
117
+ The n8n instance base URL is: {instanceUrl}
118
+
119
+ This URL is essential for webhook nodes and chat triggers as it provides the base URL for:
120
+ - Webhook URLs that external services need to call
121
+ - Chat trigger URLs for conversational interfaces
122
+ - Any node that requires the full instance URL to generate proper callback URLs
123
+
124
+ When working with webhook or chat trigger nodes, use this URL as the base for constructing proper endpoint URLs.
125
+ </instance_url>
126
+ `;
127
+ function buildConfiguratorPrompt() {
128
+ return (0, builder_1.prompt)()
129
+ .section('role', CONFIGURATOR_ROLE)
130
+ .section('mandatory_execution_sequence', EXECUTION_SEQUENCE)
131
+ .section('workflow_json_detection', WORKFLOW_JSON_DETECTION)
132
+ .section('parameter_configuration', PARAMETER_CONFIGURATION)
133
+ .section('data_referencing', DATA_REFERENCING)
134
+ .section('tool_node_expressions', TOOL_NODE_EXPRESSIONS)
135
+ .section('critical_parameters', CRITICAL_PARAMETERS)
136
+ .section('default_values_warning', DEFAULT_VALUES_WARNING)
137
+ .section('switch_node_configuration', SWITCH_NODE_CONFIGURATION)
138
+ .section('node_configuration_examples', NODE_CONFIGURATION_EXAMPLES)
139
+ .section('response_format', RESPONSE_FORMAT)
140
+ .section('do_not', RESTRICTIONS)
141
+ .build();
142
+ }
143
+ //# sourceMappingURL=configurator.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurator.prompt.js","sourceRoot":"","sources":["../../../src/prompts/agents/configurator.prompt.ts"],"names":[],"mappings":";;;AAiJA,0DAeC;AAzJD,wCAAoC;AAEpC,MAAM,iBAAiB,GACtB,6EAA6E,CAAC;AAE/E,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;uEAoB4C,CAAC;AAExE,MAAM,uBAAuB,GAAG;;iGAEiE,CAAC;AAElG,MAAM,uBAAuB,GAAG;;;;8CAIc,CAAC;AAE/C,MAAM,gBAAgB,GAAG;;;;;;;;;;;8DAWqC,CAAC;AAE/D,MAAM,qBAAqB,GAAG;;;;;;;;;+DASiC,CAAC;AAEhE,MAAM,mBAAmB,GAAG;;;;;;;uEAO2C,CAAC;AAExE,MAAM,sBAAsB,GAAG;;;+GAGgF,CAAC;AAEhH,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;wEAwBsC,CAAC;AAEzE,MAAM,2BAA2B,GAAG;;;;;;;;;;;;6DAYyB,CAAC;AAE9D,MAAM,eAAe,GAAG;;;8GAGsF,CAAC;AAE/G,MAAM,YAAY,GAAG;;6DAEwC,CAAC;AAGjD,QAAA,mBAAmB,GAAG;;;;;;;;;;;CAWlC,CAAC;AAEF,SAAgB,uBAAuB;IACtC,OAAO,IAAA,gBAAM,GAAE;SACb,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC;SAClC,OAAO,CAAC,8BAA8B,EAAE,kBAAkB,CAAC;SAC3D,OAAO,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;SAC3D,OAAO,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;SAC3D,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;SAC7C,OAAO,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;SACvD,OAAO,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;SACnD,OAAO,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;SACzD,OAAO,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;SAC/D,OAAO,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;SACnE,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAC3C,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC/B,KAAK,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type WorkflowTechniqueType } from '../../types/categorization';
2
+ export declare const exampleCategorizations: Array<{
3
+ prompt: string;
4
+ techniques: WorkflowTechniqueType[];
5
+ }>;
6
+ export declare function formatTechniqueList(): string;
7
+ export declare function formatExampleCategorizations(): string;
8
+ export interface DiscoveryPromptOptions {
9
+ includeExamples: boolean;
10
+ }
11
+ export declare function buildDiscoveryPrompt(options: DiscoveryPromptOptions): string;