n8n 2.32.6 → 2.33.1

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 (717) hide show
  1. package/dist/active-workflow-manager.d.ts +4 -1
  2. package/dist/active-workflow-manager.js +18 -16
  3. package/dist/active-workflow-manager.js.map +1 -1
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/collaboration/collaboration.service.d.ts +1 -0
  6. package/dist/collaboration/collaboration.service.js +12 -1
  7. package/dist/collaboration/collaboration.service.js.map +1 -1
  8. package/dist/commands/base-command.d.ts +3 -2
  9. package/dist/commands/base-command.js +31 -23
  10. package/dist/commands/base-command.js.map +1 -1
  11. package/dist/commands/db/revert.js.map +1 -1
  12. package/dist/commands/import/credentials.d.ts +1 -1
  13. package/dist/commands/import/credentials.js +91 -25
  14. package/dist/commands/import/credentials.js.map +1 -1
  15. package/dist/commands/ldap/reset.js.map +1 -1
  16. package/dist/commands/start.d.ts +1 -0
  17. package/dist/commands/start.js +3 -1
  18. package/dist/commands/start.js.map +1 -1
  19. package/dist/commands/user-management/reset.js +1 -5
  20. package/dist/commands/user-management/reset.js.map +1 -1
  21. package/dist/commands/webhook.d.ts +1 -0
  22. package/dist/commands/webhook.js +1 -1
  23. package/dist/commands/webhook.js.map +1 -1
  24. package/dist/commands/worker.d.ts +1 -0
  25. package/dist/commands/worker.js +1 -1
  26. package/dist/commands/worker.js.map +1 -1
  27. package/dist/constants.js +19 -0
  28. package/dist/constants.js.map +1 -1
  29. package/dist/controllers/ai.controller.d.ts +4 -5
  30. package/dist/controllers/ai.controller.js +5 -22
  31. package/dist/controllers/ai.controller.js.map +1 -1
  32. package/dist/controllers/e2e.controller.d.ts +15 -2
  33. package/dist/controllers/e2e.controller.js +25 -2
  34. package/dist/controllers/e2e.controller.js.map +1 -1
  35. package/dist/controllers/oauth/oauth2-credential.controller.js +5 -1
  36. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  37. package/dist/controllers/project.controller.js.map +1 -1
  38. package/dist/controllers/role.controller.d.ts +2 -2
  39. package/dist/controllers/role.controller.js +4 -3
  40. package/dist/controllers/role.controller.js.map +1 -1
  41. package/dist/controllers/users.controller.d.ts +5 -0
  42. package/dist/controllers/users.controller.js +1 -0
  43. package/dist/controllers/users.controller.js.map +1 -1
  44. package/dist/credentials/credential-connection-status-proxy.js.map +1 -1
  45. package/dist/credentials/credential-dependency.service.js.map +1 -1
  46. package/dist/credentials/credentials-finder.service.d.ts +7 -2
  47. package/dist/credentials/credentials-finder.service.js +33 -8
  48. package/dist/credentials/credentials-finder.service.js.map +1 -1
  49. package/dist/credentials/credentials.controller.d.ts +6 -0
  50. package/dist/credentials/credentials.controller.js +44 -5
  51. package/dist/credentials/credentials.controller.js.map +1 -1
  52. package/dist/credentials/credentials.service.d.ts +38 -5
  53. package/dist/credentials/credentials.service.ee.d.ts +4 -2
  54. package/dist/credentials/credentials.service.ee.js +8 -7
  55. package/dist/credentials/credentials.service.ee.js.map +1 -1
  56. package/dist/credentials/credentials.service.js +227 -21
  57. package/dist/credentials/credentials.service.js.map +1 -1
  58. package/dist/credentials/instance-credential-broker.d.ts +24 -0
  59. package/dist/credentials/instance-credential-broker.js +80 -0
  60. package/dist/credentials/instance-credential-broker.js.map +1 -0
  61. package/dist/credentials/instance-credential-use.registry.d.ts +14 -0
  62. package/dist/credentials/instance-credential-use.registry.js +43 -0
  63. package/dist/credentials/instance-credential-use.registry.js.map +1 -0
  64. package/dist/credentials-helper.js +4 -0
  65. package/dist/credentials-helper.js.map +1 -1
  66. package/dist/credentials-overwrites.js +2 -1
  67. package/dist/credentials-overwrites.js.map +1 -1
  68. package/dist/errors/response-errors/workflow-deactivation-bad-request.error.d.ts +9 -0
  69. package/dist/errors/response-errors/workflow-deactivation-bad-request.error.js +13 -0
  70. package/dist/errors/response-errors/workflow-deactivation-bad-request.error.js.map +1 -0
  71. package/dist/evaluation.ee/evaluation-collection.service.d.ts +12 -2
  72. package/dist/evaluation.ee/evaluation-collection.service.js +132 -20
  73. package/dist/evaluation.ee/evaluation-collection.service.js.map +1 -1
  74. package/dist/evaluation.ee/evaluation-collections.controller.ee.d.ts +12 -0
  75. package/dist/evaluation.ee/evaluation-collections.controller.ee.js +12 -0
  76. package/dist/evaluation.ee/evaluation-collections.controller.ee.js.map +1 -1
  77. package/dist/evaluation.ee/insights/eval-insights.service.d.ts +11 -4
  78. package/dist/evaluation.ee/insights/eval-insights.service.js +136 -30
  79. package/dist/evaluation.ee/insights/eval-insights.service.js.map +1 -1
  80. package/dist/evaluation.ee/insights/insights-context-builder.d.ts +59 -0
  81. package/dist/evaluation.ee/insights/insights-context-builder.js +179 -0
  82. package/dist/evaluation.ee/insights/insights-context-builder.js.map +1 -0
  83. package/dist/evaluation.ee/insights/insights-model-resolver.d.ts +16 -0
  84. package/dist/evaluation.ee/insights/insights-model-resolver.js +65 -0
  85. package/dist/evaluation.ee/insights/insights-model-resolver.js.map +1 -0
  86. package/dist/evaluation.ee/metric-scales.d.ts +4 -0
  87. package/dist/evaluation.ee/metric-scales.js +13 -0
  88. package/dist/evaluation.ee/metric-scales.js.map +1 -0
  89. package/dist/evaluation.ee/test-runner/test-runner.service.ee.d.ts +5 -0
  90. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +40 -4
  91. package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
  92. package/dist/evaluation.ee/test-runner/workflow-compiler.service.d.ts +6 -1
  93. package/dist/evaluation.ee/test-runner/workflow-compiler.service.js +53 -4
  94. package/dist/evaluation.ee/test-runner/workflow-compiler.service.js.map +1 -1
  95. package/dist/evaluation.ee/test-runs.controller.ee.d.ts +4 -2
  96. package/dist/evaluation.ee/test-runs.controller.ee.js +26 -6
  97. package/dist/evaluation.ee/test-runs.controller.ee.js.map +1 -1
  98. package/dist/eventbus/message-event-bus/message-event-bus.js.map +1 -1
  99. package/dist/events/maps/workflow-publication-metrics.event-map.d.ts +2 -0
  100. package/dist/events/relays/telemetry.event-relay.js +5 -0
  101. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  102. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +1 -0
  103. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  104. package/dist/executions/execution-data/execution-data-json-store.d.ts +6 -4
  105. package/dist/executions/execution-data/execution-data-json-store.js +17 -5
  106. package/dist/executions/execution-data/execution-data-json-store.js.map +1 -1
  107. package/dist/executions/pre-execution-checks/credentials-permission-checker.d.ts +1 -0
  108. package/dist/executions/pre-execution-checks/credentials-permission-checker.js +17 -5
  109. package/dist/executions/pre-execution-checks/credentials-permission-checker.js.map +1 -1
  110. package/dist/external-hooks.d.ts +44 -10
  111. package/dist/external-hooks.js +13 -0
  112. package/dist/external-hooks.js.map +1 -1
  113. package/dist/license.d.ts +2 -0
  114. package/dist/license.js +13 -1
  115. package/dist/license.js.map +1 -1
  116. package/dist/metrics/prometheus/workflow-info-metrics.service.d.ts +4 -1
  117. package/dist/metrics/prometheus/workflow-info-metrics.service.js +27 -8
  118. package/dist/metrics/prometheus/workflow-info-metrics.service.js.map +1 -1
  119. package/dist/metrics/prometheus/workflow-publication-metrics.service.js +11 -1
  120. package/dist/metrics/prometheus/workflow-publication-metrics.service.js.map +1 -1
  121. package/dist/modules/agents/agent-chat.controller.js +10 -2
  122. package/dist/modules/agents/agent-chat.controller.js.map +1 -1
  123. package/dist/modules/agents/agent-config.service.js +1 -1
  124. package/dist/modules/agents/agent-config.service.js.map +1 -1
  125. package/dist/modules/agents/agent-execution-orchestrator.service.d.ts +7 -1
  126. package/dist/modules/agents/agent-execution-orchestrator.service.js +84 -43
  127. package/dist/modules/agents/agent-execution-orchestrator.service.js.map +1 -1
  128. package/dist/modules/agents/agent-execution.service.d.ts +12 -1
  129. package/dist/modules/agents/agent-execution.service.js +82 -7
  130. package/dist/modules/agents/agent-execution.service.js.map +1 -1
  131. package/dist/modules/agents/agent-integration-persistence.service.js +2 -2
  132. package/dist/modules/agents/agent-integration-persistence.service.js.map +1 -1
  133. package/dist/modules/agents/agent-integrations.controller.js +4 -2
  134. package/dist/modules/agents/agent-integrations.controller.js.map +1 -1
  135. package/dist/modules/agents/agent-knowledge-sandbox.service.js +5 -3
  136. package/dist/modules/agents/agent-knowledge-sandbox.service.js.map +1 -1
  137. package/dist/modules/agents/agent-knowledge.service.d.ts +0 -1
  138. package/dist/modules/agents/agent-knowledge.service.js +2 -9
  139. package/dist/modules/agents/agent-knowledge.service.js.map +1 -1
  140. package/dist/modules/agents/agent-model-catalog.service.js +1 -1
  141. package/dist/modules/agents/agent-model-catalog.service.js.map +1 -1
  142. package/dist/modules/agents/agent-publish.controller.js +2 -2
  143. package/dist/modules/agents/agent-publish.controller.js.map +1 -1
  144. package/dist/modules/agents/agent-publish.service.d.ts +7 -3
  145. package/dist/modules/agents/agent-publish.service.js +31 -8
  146. package/dist/modules/agents/agent-publish.service.js.map +1 -1
  147. package/dist/modules/agents/agent-run-tracing.service.d.ts +30 -0
  148. package/dist/modules/agents/agent-run-tracing.service.js +63 -0
  149. package/dist/modules/agents/agent-run-tracing.service.js.map +1 -0
  150. package/dist/modules/agents/agent-runtime-instrumentation.d.ts +26 -0
  151. package/dist/{blob-storage/types.js → modules/agents/agent-runtime-instrumentation.js} +1 -1
  152. package/dist/modules/agents/agent-runtime-instrumentation.js.map +1 -0
  153. package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +3 -1
  154. package/dist/modules/agents/agent-runtime-reconstruction.service.js +31 -8
  155. package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
  156. package/dist/modules/agents/agent-sse-stream.js +31 -6
  157. package/dist/modules/agents/agent-sse-stream.js.map +1 -1
  158. package/dist/modules/agents/agent-validation.service.d.ts +2 -1
  159. package/dist/modules/agents/agent-validation.service.js +21 -6
  160. package/dist/modules/agents/agent-validation.service.js.map +1 -1
  161. package/dist/modules/agents/agent-workflow-execution.service.d.ts +5 -3
  162. package/dist/modules/agents/agent-workflow-execution.service.js +31 -9
  163. package/dist/modules/agents/agent-workflow-execution.service.js.map +1 -1
  164. package/dist/modules/agents/agents-tools.service.js +12 -0
  165. package/dist/modules/agents/agents-tools.service.js.map +1 -1
  166. package/dist/modules/agents/agents.module.js +13 -0
  167. package/dist/modules/agents/agents.module.js.map +1 -1
  168. package/dist/modules/agents/agents.service.d.ts +3 -1
  169. package/dist/modules/agents/agents.service.js +5 -2
  170. package/dist/modules/agents/agents.service.js.map +1 -1
  171. package/dist/modules/agents/builder/agents-builder-model-recommendations.js +6 -4
  172. package/dist/modules/agents/builder/agents-builder-model-recommendations.js.map +1 -1
  173. package/dist/modules/agents/builder/agents-builder-prompts.d.ts +5 -4
  174. package/dist/modules/agents/builder/agents-builder-prompts.js +109 -34
  175. package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
  176. package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +16 -2
  177. package/dist/modules/agents/builder/agents-builder-tools.service.js +201 -39
  178. package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
  179. package/dist/modules/agents/builder/agents-builder.service.js +7 -2
  180. package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
  181. package/dist/modules/agents/builder/builder-config-telemetry.d.ts +12 -0
  182. package/dist/modules/agents/builder/builder-config-telemetry.js +67 -0
  183. package/dist/modules/agents/builder/builder-config-telemetry.js.map +1 -0
  184. package/dist/modules/agents/builder/builder-tool-names.d.ts +2 -0
  185. package/dist/modules/agents/builder/builder-tool-names.js +2 -0
  186. package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
  187. package/dist/modules/agents/builder/interactive/ask-credential.tool.d.ts +3 -0
  188. package/dist/modules/agents/builder/interactive/ask-credential.tool.js +35 -7
  189. package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
  190. package/dist/modules/agents/builder/interactive/ask-questions.tool.d.ts +4 -1
  191. package/dist/modules/agents/builder/interactive/ask-questions.tool.js +13 -1
  192. package/dist/modules/agents/builder/interactive/ask-questions.tool.js.map +1 -1
  193. package/dist/modules/agents/builder/interactive/configure-channel.tool.d.ts +2 -0
  194. package/dist/modules/agents/builder/interactive/configure-channel.tool.js +7 -1
  195. package/dist/modules/agents/builder/interactive/configure-channel.tool.js.map +1 -1
  196. package/dist/modules/agents/builder/interactive/finish-setup.tool.d.ts +17 -0
  197. package/dist/modules/agents/builder/interactive/finish-setup.tool.js +316 -0
  198. package/dist/modules/agents/builder/interactive/finish-setup.tool.js.map +1 -0
  199. package/dist/modules/agents/builder/interactive/index.d.ts +1 -0
  200. package/dist/modules/agents/builder/interactive/index.js +3 -1
  201. package/dist/modules/agents/builder/interactive/index.js.map +1 -1
  202. package/dist/modules/agents/builder/interactive/resolve-llm.tool.d.ts +8 -0
  203. package/dist/modules/agents/builder/interactive/resolve-llm.tool.js +87 -6
  204. package/dist/modules/agents/builder/interactive/resolve-llm.tool.js.map +1 -1
  205. package/dist/modules/agents/builder/prompts/config-mutation.prompt.js +6 -5
  206. package/dist/modules/agents/builder/prompts/config-mutation.prompt.js.map +1 -1
  207. package/dist/modules/agents/builder/prompts/config-rules.prompt.js +6 -5
  208. package/dist/modules/agents/builder/prompts/config-rules.prompt.js.map +1 -1
  209. package/dist/modules/agents/builder/prompts/initial-build.prompt.d.ts +2 -0
  210. package/dist/modules/agents/builder/prompts/initial-build.prompt.js +56 -0
  211. package/dist/modules/agents/builder/prompts/initial-build.prompt.js.map +1 -0
  212. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +6 -3
  213. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js.map +1 -1
  214. package/dist/modules/agents/builder/prompts/memory.prompt.d.ts +1 -1
  215. package/dist/modules/agents/builder/prompts/memory.prompt.js +2 -2
  216. package/dist/modules/agents/builder/prompts/memory.prompt.js.map +1 -1
  217. package/dist/modules/agents/builder/prompts/planner-todos.prompt.d.ts +2 -0
  218. package/dist/modules/agents/builder/prompts/planner-todos.prompt.js +22 -0
  219. package/dist/modules/agents/builder/prompts/planner-todos.prompt.js.map +1 -0
  220. package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
  221. package/dist/modules/agents/builder/prompts/tools.prompt.js +12 -12
  222. package/dist/modules/agents/builder/resolve-integration.tool.js +1 -1
  223. package/dist/modules/agents/builder/resolve-integration.tool.js.map +1 -1
  224. package/dist/modules/agents/builder/skills/external-services.skill.d.ts +2 -0
  225. package/dist/modules/agents/builder/skills/external-services.skill.js +361 -0
  226. package/dist/modules/agents/builder/skills/external-services.skill.js.map +1 -0
  227. package/dist/modules/agents/builder/skills/index.js +2 -6
  228. package/dist/modules/agents/builder/skills/index.js.map +1 -1
  229. package/dist/modules/agents/builder/skills/memory.skill.js +2 -1
  230. package/dist/modules/agents/builder/skills/memory.skill.js.map +1 -1
  231. package/dist/modules/agents/builder/skills/resource-locators.skill.js +17 -3
  232. package/dist/modules/agents/builder/skills/resource-locators.skill.js.map +1 -1
  233. package/dist/modules/agents/builder/skills/target-skills.skill.js +12 -9
  234. package/dist/modules/agents/builder/skills/target-skills.skill.js.map +1 -1
  235. package/dist/modules/agents/builder/skills/target-tasks.skill.js +14 -10
  236. package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
  237. package/dist/modules/agents/builder/verify-mcp-server.tool.d.ts +4 -0
  238. package/dist/modules/agents/builder/verify-mcp-server.tool.js +30 -5
  239. package/dist/modules/agents/builder/verify-mcp-server.tool.js.map +1 -1
  240. package/dist/modules/agents/entities/agent-execution.entity.d.ts +2 -1
  241. package/dist/modules/agents/entities/agent-execution.entity.js +4 -0
  242. package/dist/modules/agents/entities/agent-execution.entity.js.map +1 -1
  243. package/dist/modules/agents/execution-log/agent-execution-log-store.d.ts +17 -0
  244. package/dist/modules/agents/execution-log/agent-execution-log-store.js +58 -0
  245. package/dist/modules/agents/execution-log/agent-execution-log-store.js.map +1 -0
  246. package/dist/modules/agents/execution-log/agent-execution-log-write.error.d.ts +5 -0
  247. package/dist/modules/agents/execution-log/agent-execution-log-write.error.js +11 -0
  248. package/dist/modules/agents/execution-log/agent-execution-log-write.error.js.map +1 -0
  249. package/dist/modules/agents/execution-log/corrupted-agent-execution-log.error.d.ts +5 -0
  250. package/dist/modules/agents/execution-log/corrupted-agent-execution-log.error.js +11 -0
  251. package/dist/modules/agents/execution-log/corrupted-agent-execution-log.error.js.map +1 -0
  252. package/dist/modules/agents/instance-ai-builder-delegate.adapter.d.ts +1 -1
  253. package/dist/modules/agents/instance-ai-builder-delegate.adapter.js +4 -2
  254. package/dist/modules/agents/instance-ai-builder-delegate.adapter.js.map +1 -1
  255. package/dist/modules/agents/integrations/agent-chat-bridge.js +8 -4
  256. package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
  257. package/dist/modules/agents/integrations/agent-chat-stream-consumer.d.ts +4 -2
  258. package/dist/modules/agents/integrations/agent-chat-stream-consumer.js +62 -6
  259. package/dist/modules/agents/integrations/agent-chat-stream-consumer.js.map +1 -1
  260. package/dist/modules/agents/integrations/integration-tool-factory.d.ts +7 -7
  261. package/dist/modules/agents/integrations/integration-tool-factory.js +13 -10
  262. package/dist/modules/agents/integrations/integration-tool-factory.js.map +1 -1
  263. package/dist/modules/agents/integrations/integration-tool-schema.d.ts +7 -7
  264. package/dist/modules/agents/integrations/integration-tool-schema.js +7 -7
  265. package/dist/modules/agents/integrations/integration-tool-schema.js.map +1 -1
  266. package/dist/modules/agents/integrations/slack-app-setup.service.js +2 -1
  267. package/dist/modules/agents/integrations/slack-app-setup.service.js.map +1 -1
  268. package/dist/modules/agents/json-config/from-json-config.d.ts +21 -0
  269. package/dist/modules/agents/json-config/from-json-config.js +16 -4
  270. package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
  271. package/dist/modules/agents/json-config/mcp-client-factory.d.ts +4 -0
  272. package/dist/modules/agents/json-config/mcp-client-factory.js +6 -1
  273. package/dist/modules/agents/json-config/mcp-client-factory.js.map +1 -1
  274. package/dist/modules/agents/json-config/sanitize-unknown-agent-credentials.js +14 -1
  275. package/dist/modules/agents/json-config/sanitize-unknown-agent-credentials.js.map +1 -1
  276. package/dist/modules/agents/{builder/interactive/llm-provider-defaults.d.ts → llm-provider-defaults.d.ts} +1 -0
  277. package/dist/modules/agents/{builder/interactive/llm-provider-defaults.js → llm-provider-defaults.js} +14 -1
  278. package/dist/modules/agents/llm-provider-defaults.js.map +1 -0
  279. package/dist/modules/agents/repositories/agent-execution.repository.d.ts +4 -0
  280. package/dist/modules/agents/repositories/agent-execution.repository.js +31 -0
  281. package/dist/modules/agents/repositories/agent-execution.repository.js.map +1 -1
  282. package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js +1 -0
  283. package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js.map +1 -1
  284. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.d.ts +4 -1
  285. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js +7 -1
  286. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +1 -1
  287. package/dist/modules/agents/tools/node-tool-factory.d.ts +2 -0
  288. package/dist/modules/agents/tools/node-tool-factory.js +8 -0
  289. package/dist/modules/agents/tools/node-tool-factory.js.map +1 -1
  290. package/dist/modules/agents/tools/workflow-tool-factory.d.ts +3 -1
  291. package/dist/modules/agents/tools/workflow-tool-factory.js +9 -3
  292. package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
  293. package/dist/modules/agents/utils/execution-to-message-mapper.js +4 -2
  294. package/dist/modules/agents/utils/execution-to-message-mapper.js.map +1 -1
  295. package/dist/modules/agents/utils/node-tool-validation.js +6 -0
  296. package/dist/modules/agents/utils/node-tool-validation.js.map +1 -1
  297. package/dist/modules/breaking-changes/rules/index.d.ts +3 -0
  298. package/dist/modules/breaking-changes/rules/index.js +3 -0
  299. package/dist/modules/breaking-changes/rules/index.js.map +1 -1
  300. package/dist/modules/breaking-changes/rules/v3/chat-trigger-embedded-json.rule.d.ts +10 -0
  301. package/dist/modules/breaking-changes/rules/v3/chat-trigger-embedded-json.rule.js +58 -0
  302. package/dist/modules/breaking-changes/rules/v3/chat-trigger-embedded-json.rule.js.map +1 -0
  303. package/dist/modules/breaking-changes/rules/v3/removed-nodes-with-replacements.rule.d.ts +239 -0
  304. package/dist/modules/breaking-changes/rules/v3/removed-nodes-with-replacements.rule.js +445 -0
  305. package/dist/modules/breaking-changes/rules/v3/removed-nodes-with-replacements.rule.js.map +1 -0
  306. package/dist/modules/breaking-changes/rules/v3/removed-nodes.rule.d.ts +11 -0
  307. package/dist/modules/breaking-changes/rules/v3/removed-nodes.rule.js +61 -0
  308. package/dist/modules/breaking-changes/rules/v3/removed-nodes.rule.js.map +1 -0
  309. package/dist/modules/community-packages/installed-nodes.entity.js +1 -1
  310. package/dist/modules/community-packages/installed-nodes.entity.js.map +1 -1
  311. package/dist/modules/data-table/data-table-proxy.service.js +13 -0
  312. package/dist/modules/data-table/data-table-proxy.service.js.map +1 -1
  313. package/dist/modules/data-table/data-table.controller.js +1 -1
  314. package/dist/modules/data-table/data-table.controller.js.map +1 -1
  315. package/dist/modules/data-table/data-table.service.d.ts +1 -1
  316. package/dist/modules/data-table/data-table.service.js.map +1 -1
  317. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-user-entry.repository.js.map +1 -1
  318. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
  319. package/dist/modules/instance-ai/eval/agent-execution.service.d.ts +26 -0
  320. package/dist/modules/instance-ai/eval/agent-execution.service.js +508 -0
  321. package/dist/modules/instance-ai/eval/agent-execution.service.js.map +1 -0
  322. package/dist/modules/instance-ai/eval/agent-model-turn-recorder.d.ts +9 -0
  323. package/dist/modules/instance-ai/eval/agent-model-turn-recorder.js +110 -0
  324. package/dist/modules/instance-ai/eval/agent-model-turn-recorder.js.map +1 -0
  325. package/dist/modules/instance-ai/eval/agent-scenario-seed.d.ts +14 -0
  326. package/dist/modules/instance-ai/eval/agent-scenario-seed.js +98 -0
  327. package/dist/modules/instance-ai/eval/agent-scenario-seed.js.map +1 -0
  328. package/dist/modules/instance-ai/eval/execution.service.js +3 -3
  329. package/dist/modules/instance-ai/eval/execution.service.js.map +1 -1
  330. package/dist/modules/instance-ai/eval/mcp-mock-fetch.d.ts +28 -0
  331. package/dist/modules/instance-ai/eval/mcp-mock-fetch.js +265 -0
  332. package/dist/modules/instance-ai/eval/mcp-mock-fetch.js.map +1 -0
  333. package/dist/modules/instance-ai/eval/mock-utils.d.ts +4 -0
  334. package/dist/modules/instance-ai/eval/mock-utils.js +41 -0
  335. package/dist/modules/instance-ai/eval/mock-utils.js.map +1 -0
  336. package/dist/modules/instance-ai/eval/request-sanitizer.d.ts +1 -0
  337. package/dist/modules/instance-ai/eval/request-sanitizer.js +26 -0
  338. package/dist/modules/instance-ai/eval/request-sanitizer.js.map +1 -1
  339. package/dist/modules/instance-ai/eval/web-search-mock.d.ts +26 -0
  340. package/dist/modules/instance-ai/eval/web-search-mock.js +122 -0
  341. package/dist/modules/instance-ai/eval/web-search-mock.js.map +1 -0
  342. package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.d.ts +8 -0
  343. package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.js +85 -11
  344. package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.js.map +1 -1
  345. package/dist/modules/instance-ai/instance-ai-error-reporter.service.js +13 -0
  346. package/dist/modules/instance-ai/instance-ai-error-reporter.service.js.map +1 -1
  347. package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +3 -3
  348. package/dist/modules/instance-ai/instance-ai-memory.service.js +5 -11
  349. package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
  350. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +42 -14
  351. package/dist/modules/instance-ai/instance-ai-settings.service.js +650 -174
  352. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  353. package/dist/modules/instance-ai/instance-ai-test.controller.js +4 -1
  354. package/dist/modules/instance-ai/instance-ai-test.controller.js.map +1 -1
  355. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +2 -1
  356. package/dist/modules/instance-ai/instance-ai.adapter.service.js +26 -2
  357. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  358. package/dist/modules/instance-ai/instance-ai.controller.d.ts +14 -6
  359. package/dist/modules/instance-ai/instance-ai.controller.js +84 -29
  360. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  361. package/dist/modules/instance-ai/instance-ai.module.js +9 -2
  362. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  363. package/dist/modules/instance-ai/instance-ai.service.d.ts +10 -1
  364. package/dist/modules/instance-ai/instance-ai.service.js +146 -45
  365. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  366. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.d.ts +1 -1
  367. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.js +6 -5
  368. package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.js.map +1 -1
  369. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.d.ts +6 -2
  370. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js +55 -14
  371. package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js.map +1 -1
  372. package/dist/modules/mcp/mcp-protected-resource.d.ts +1 -0
  373. package/dist/modules/mcp/mcp-protected-resource.js +4 -0
  374. package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
  375. package/dist/modules/mcp/mcp-server-middleware.service.js +2 -1
  376. package/dist/modules/mcp/mcp-server-middleware.service.js.map +1 -1
  377. package/dist/modules/mcp/mcp.controller.d.ts +3 -1
  378. package/dist/modules/mcp/mcp.controller.js +15 -11
  379. package/dist/modules/mcp/mcp.controller.js.map +1 -1
  380. package/dist/modules/mcp/mcp.service.d.ts +7 -2
  381. package/dist/modules/mcp/mcp.service.js +63 -43
  382. package/dist/modules/mcp/mcp.service.js.map +1 -1
  383. package/dist/modules/mcp/mcp.types.d.ts +1 -0
  384. package/dist/modules/mcp/tools/execution-utils.d.ts +3 -1
  385. package/dist/modules/mcp/tools/execution-utils.js +6 -4
  386. package/dist/modules/mcp/tools/execution-utils.js.map +1 -1
  387. package/dist/modules/mcp/tools/get-workflow-details.tool.d.ts +3 -2
  388. package/dist/modules/mcp/tools/get-workflow-details.tool.js +6 -6
  389. package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
  390. package/dist/modules/mcp/tools/get-workflow-version.tool.d.ts +3 -2
  391. package/dist/modules/mcp/tools/get-workflow-version.tool.js +1 -1
  392. package/dist/modules/mcp/tools/get-workflow-version.tool.js.map +1 -1
  393. package/dist/modules/mcp/tools/schemas.d.ts +34 -32
  394. package/dist/modules/mcp/tools/schemas.js +14 -2
  395. package/dist/modules/mcp/tools/schemas.js.map +1 -1
  396. package/dist/modules/mcp/tools/test-workflow.tool.d.ts +4 -1
  397. package/dist/modules/mcp/tools/test-workflow.tool.js +13 -5
  398. package/dist/modules/mcp/tools/test-workflow.tool.js.map +1 -1
  399. package/dist/modules/mcp/tools/webhook-utils.d.ts +3 -3
  400. package/dist/modules/mcp/tools/webhook-utils.js +17 -6
  401. package/dist/modules/mcp/tools/webhook-utils.js.map +1 -1
  402. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.d.ts +4 -1
  403. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +5 -1
  404. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  405. package/dist/modules/mcp/tools/workflow-builder/get-workflow-best-practices.tool.d.ts +3 -1
  406. package/dist/modules/mcp/tools/workflow-builder/get-workflow-best-practices.tool.js +16 -3
  407. package/dist/modules/mcp/tools/workflow-builder/get-workflow-best-practices.tool.js.map +1 -1
  408. package/dist/modules/mcp/tools/workflow-builder/get-workflow-sdk-reference.tool.d.ts +5 -2
  409. package/dist/modules/mcp/tools/workflow-builder/get-workflow-sdk-reference.tool.js +17 -10
  410. package/dist/modules/mcp/tools/workflow-builder/get-workflow-sdk-reference.tool.js.map +1 -1
  411. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.d.ts +6 -1
  412. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js +8 -2
  413. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js.map +1 -1
  414. package/dist/modules/mcp/tools/workflow-builder/sdk-reference-content.d.ts +4 -2
  415. package/dist/modules/mcp/tools/workflow-builder/sdk-reference-content.js +8 -1
  416. package/dist/modules/mcp/tools/workflow-builder/sdk-reference-content.js.map +1 -1
  417. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +280 -2
  418. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +54 -17
  419. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  420. package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.d.ts +4 -1
  421. package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js +58 -1
  422. package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js.map +1 -1
  423. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.d.ts +51 -5
  424. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js +414 -233
  425. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js.map +1 -1
  426. package/dist/modules/mcp-registry/mcp-registry-test.controller.js +2 -2
  427. package/dist/modules/mcp-registry/mcp-registry-test.controller.js.map +1 -1
  428. package/dist/modules/mcp-registry/mcp-registry.module.js +1 -1
  429. package/dist/modules/mcp-registry/mcp-registry.module.js.map +1 -1
  430. package/dist/modules/n8n-packages/engine/import-orchestrator.d.ts +11 -1
  431. package/dist/modules/n8n-packages/engine/import-orchestrator.js +36 -7
  432. package/dist/modules/n8n-packages/engine/import-orchestrator.js.map +1 -1
  433. package/dist/modules/n8n-packages/engine/import-result.d.ts +3 -2
  434. package/dist/modules/n8n-packages/engine/import-result.js +2 -1
  435. package/dist/modules/n8n-packages/engine/import-result.js.map +1 -1
  436. package/dist/modules/n8n-packages/engine/import-telemetry.d.ts +2 -0
  437. package/dist/modules/n8n-packages/engine/import-telemetry.js +11 -0
  438. package/dist/modules/n8n-packages/engine/import-telemetry.js.map +1 -1
  439. package/dist/modules/n8n-packages/engine/project-package-importer.js +11 -0
  440. package/dist/modules/n8n-packages/engine/project-package-importer.js.map +1 -1
  441. package/dist/modules/n8n-packages/engine/workflow-package-importer.js +10 -1
  442. package/dist/modules/n8n-packages/engine/workflow-package-importer.js.map +1 -1
  443. package/dist/modules/n8n-packages/entities/requirements.types.d.ts +2 -0
  444. package/dist/modules/n8n-packages/entities/requirements.types.js +1 -0
  445. package/dist/modules/n8n-packages/entities/requirements.types.js.map +1 -1
  446. package/dist/modules/n8n-packages/entities/variable/variable-importer.d.ts +9 -0
  447. package/dist/modules/n8n-packages/entities/variable/variable-importer.js +55 -0
  448. package/dist/modules/n8n-packages/entities/variable/variable-importer.js.map +1 -0
  449. package/dist/modules/n8n-packages/entities/variable/variable-missing-mode.d.ts +3 -0
  450. package/dist/modules/n8n-packages/entities/variable/variable-missing-mode.js +12 -0
  451. package/dist/modules/n8n-packages/entities/variable/variable-missing-mode.js.map +1 -0
  452. package/dist/modules/n8n-packages/entities/variable/variable.types.d.ts +14 -0
  453. package/dist/modules/n8n-packages/entities/variable/variable.types.js +7 -0
  454. package/dist/modules/n8n-packages/entities/variable/variable.types.js.map +1 -1
  455. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.d.ts +37 -0
  456. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js +165 -0
  457. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js.map +1 -0
  458. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow.exporter.d.ts +39 -0
  459. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow.exporter.js +198 -0
  460. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow.exporter.js.map +1 -0
  461. package/dist/modules/n8n-packages/entities/workflow/missing-node-type-mode.d.ts +7 -0
  462. package/dist/modules/n8n-packages/entities/workflow/missing-node-type-mode.js +30 -0
  463. package/dist/modules/n8n-packages/entities/workflow/missing-node-type-mode.js.map +1 -0
  464. package/dist/modules/n8n-packages/entities/workflow/node-type-usage.d.ts +11 -0
  465. package/dist/modules/n8n-packages/entities/workflow/node-type-usage.js +27 -0
  466. package/dist/modules/n8n-packages/entities/workflow/node-type-usage.js.map +1 -0
  467. package/dist/modules/n8n-packages/entities/workflow/static-sub-workflow-id.d.ts +2 -0
  468. package/dist/modules/n8n-packages/entities/workflow/static-sub-workflow-id.js +23 -0
  469. package/dist/modules/n8n-packages/entities/workflow/static-sub-workflow-id.js.map +1 -0
  470. package/dist/modules/n8n-packages/entities/workflow/workflow-import.types.d.ts +2 -2
  471. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +1 -1
  472. package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
  473. package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.d.ts +2 -2
  474. package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js +5 -4
  475. package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js.map +1 -1
  476. package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.types.d.ts +1 -1
  477. package/dist/modules/n8n-packages/entities/workflow/workflow-requirements.extractor.js +2 -2
  478. package/dist/modules/n8n-packages/entities/workflow/workflow-requirements.extractor.js.map +1 -1
  479. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +3 -1
  480. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
  481. package/dist/modules/n8n-packages/io/unique-filename-allocator.d.ts +1 -0
  482. package/dist/modules/n8n-packages/io/unique-filename-allocator.js +9 -0
  483. package/dist/modules/n8n-packages/io/unique-filename-allocator.js.map +1 -1
  484. package/dist/modules/n8n-packages/n8n-packages.service.d.ts +8 -4
  485. package/dist/modules/n8n-packages/n8n-packages.service.js +81 -36
  486. package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
  487. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +40 -3
  488. package/dist/modules/n8n-packages/n8n-packages.types.js +9 -1
  489. package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
  490. package/dist/modules/n8n-packages/spec/manifest.schema.d.ts +51 -0
  491. package/dist/modules/n8n-packages/spec/requirements.schema.d.ts +45 -0
  492. package/dist/modules/n8n-packages/spec/requirements.schema.js +10 -1
  493. package/dist/modules/n8n-packages/spec/requirements.schema.js.map +1 -1
  494. package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js +1 -1
  495. package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js.map +1 -1
  496. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.d.ts +10 -2
  497. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js +5 -1
  498. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js.map +1 -1
  499. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.d.ts +14 -2
  500. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js +16 -1
  501. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -1
  502. package/dist/modules/oauth-server/oauth-token.service.d.ts +3 -2
  503. package/dist/modules/oauth-server/oauth-token.service.js +13 -33
  504. package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
  505. package/dist/modules/oauth-server/oauth.controller.d.ts +3 -0
  506. package/dist/modules/oauth-server/oauth.controller.js +45 -1
  507. package/dist/modules/oauth-server/oauth.controller.js.map +1 -1
  508. package/dist/modules/oauth-server/oauth.helpers.d.ts +1 -0
  509. package/dist/modules/oauth-server/oauth.helpers.js +7 -0
  510. package/dist/modules/oauth-server/oauth.helpers.js.map +1 -1
  511. package/dist/modules/otel/otel-settings.controller.d.ts +2 -2
  512. package/dist/modules/otel/otel-settings.controller.js +1 -1
  513. package/dist/modules/otel/otel-settings.controller.js.map +1 -1
  514. package/dist/modules/redaction/redaction-context-hook.js +4 -2
  515. package/dist/modules/redaction/redaction-context-hook.js.map +1 -1
  516. package/dist/modules/source-control.ee/source-control-export.service.ee.js +3 -3
  517. package/dist/modules/source-control.ee/source-control-export.service.ee.js.map +1 -1
  518. package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +1 -0
  519. package/dist/modules/source-control.ee/source-control-import.service.ee.js +51 -22
  520. package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
  521. package/dist/modules/source-control.ee/source-control-scoped.service.js +1 -1
  522. package/dist/modules/source-control.ee/source-control-scoped.service.js.map +1 -1
  523. package/dist/modules/source-control.ee/types/exportable-credential.d.ts +2 -0
  524. package/dist/modules/workflow-index/workflow-dependency-query.service.js +1 -1
  525. package/dist/modules/workflow-index/workflow-dependency-query.service.js.map +1 -1
  526. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +44 -0
  527. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +373 -0
  528. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +1 -0
  529. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.d.ts +14 -0
  530. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js +97 -0
  531. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js.map +1 -0
  532. package/dist/modules/workflow-reviews.ee/workflow-reviews.module.d.ts +4 -0
  533. package/dist/modules/workflow-reviews.ee/workflow-reviews.module.js +24 -0
  534. package/dist/modules/workflow-reviews.ee/workflow-reviews.module.js.map +1 -0
  535. package/dist/node-execution/ephemeral-node-executor.d.ts +5 -1
  536. package/dist/node-execution/ephemeral-node-executor.js +7 -4
  537. package/dist/node-execution/ephemeral-node-executor.js.map +1 -1
  538. package/dist/node-execution/index.d.ts +1 -0
  539. package/dist/node-execution/index.js +4 -1
  540. package/dist/node-execution/index.js.map +1 -1
  541. package/dist/node-execution/node-tool-operation-support.d.ts +2 -0
  542. package/dist/node-execution/node-tool-operation-support.js +12 -0
  543. package/dist/node-execution/node-tool-operation-support.js.map +1 -0
  544. package/dist/node-types.d.ts +5 -1
  545. package/dist/node-types.js +53 -20
  546. package/dist/node-types.js.map +1 -1
  547. package/dist/oauth/oauth.service.d.ts +5 -1
  548. package/dist/oauth/oauth.service.js +57 -28
  549. package/dist/oauth/oauth.service.js.map +1 -1
  550. package/dist/permissions.ee/check-access.js +18 -0
  551. package/dist/permissions.ee/check-access.js.map +1 -1
  552. package/dist/posthog/index.js +6 -0
  553. package/dist/posthog/index.js.map +1 -1
  554. package/dist/public-api/index.d.ts +1 -1
  555. package/dist/public-api/index.js +40 -11
  556. package/dist/public-api/index.js.map +1 -1
  557. package/dist/public-api/types.d.ts +7 -1
  558. package/dist/public-api/v1/controllers/index.d.ts +2 -0
  559. package/dist/public-api/v1/controllers/index.js +5 -0
  560. package/dist/public-api/v1/controllers/index.js.map +1 -0
  561. package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +9 -0
  562. package/dist/public-api/v1/controllers/workflows.public.controller.js +81 -0
  563. package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -0
  564. package/dist/public-api/v1/handlers/credentials/credentials.handler.js +1 -0
  565. package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
  566. package/dist/public-api/v1/handlers/credentials/credentials.service.d.ts +1 -0
  567. package/dist/public-api/v1/handlers/credentials/credentials.service.js +9 -2
  568. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
  569. package/dist/public-api/v1/handlers/discover/discover.service.d.ts +1 -0
  570. package/dist/public-api/v1/handlers/discover/discover.service.js +39 -34
  571. package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -1
  572. package/dist/public-api/v1/handlers/executions/executions.handler.js.map +1 -1
  573. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +8 -3
  574. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
  575. package/dist/public-api/v1/handlers/otel/otel.handler.d.ts +9 -0
  576. package/dist/public-api/v1/handlers/otel/otel.handler.js +57 -0
  577. package/dist/public-api/v1/handlers/otel/otel.handler.js.map +1 -0
  578. package/dist/public-api/v1/handlers/otel/otel.mapper.d.ts +3 -0
  579. package/dist/public-api/v1/handlers/otel/otel.mapper.js +18 -0
  580. package/dist/public-api/v1/handlers/otel/otel.mapper.js.map +1 -0
  581. package/dist/public-api/v1/handlers/tags/tags.handler.d.ts +0 -1
  582. package/dist/public-api/v1/handlers/tags/tags.handler.js +0 -8
  583. package/dist/public-api/v1/handlers/tags/tags.handler.js.map +1 -1
  584. package/dist/public-api/v1/handlers/users/users.service.ee.js.map +1 -1
  585. package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +2 -0
  586. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +47 -34
  587. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  588. package/dist/public-api/v1/handlers/workflows/workflows.service.js +6 -0
  589. package/dist/public-api/v1/handlers/workflows/workflows.service.js.map +1 -1
  590. package/dist/public-api/v1/openapi.yml +491 -19
  591. package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +4 -0
  592. package/dist/public-api/v1/shared/middlewares/global.middleware.js +9 -1
  593. package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
  594. package/dist/public-api/v1/shared/public-api-scope-lookup.d.ts +5 -0
  595. package/dist/public-api/v1/shared/public-api-scope-lookup.js +60 -0
  596. package/dist/public-api/v1/shared/public-api-scope-lookup.js.map +1 -0
  597. package/dist/scaling/constants.d.ts +2 -2
  598. package/dist/scaling/pubsub/pubsub.event-map.d.ts +1 -0
  599. package/dist/scaling/pubsub/pubsub.types.d.ts +2 -1
  600. package/dist/scheduling/durable-job-provisioner.d.ts +1 -0
  601. package/dist/scheduling/durable-job-provisioner.js +2 -0
  602. package/dist/scheduling/durable-job-provisioner.js.map +1 -1
  603. package/dist/scheduling/durable-scheduler.d.ts +2 -1
  604. package/dist/scheduling/durable-scheduler.js +4 -2
  605. package/dist/scheduling/durable-scheduler.js.map +1 -1
  606. package/dist/scheduling/poll-trigger-node/poll-job-provider.d.ts +11 -0
  607. package/dist/scheduling/poll-trigger-node/poll-job-provider.js +41 -0
  608. package/dist/scheduling/poll-trigger-node/poll-job-provider.js.map +1 -0
  609. package/dist/scheduling/poll-trigger-node/poll-trigger-job-registrar.d.ts +19 -0
  610. package/dist/scheduling/poll-trigger-node/poll-trigger-job-registrar.js +111 -0
  611. package/dist/scheduling/poll-trigger-node/poll-trigger-job-registrar.js.map +1 -0
  612. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.d.ts +16 -0
  613. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +100 -0
  614. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -0
  615. package/dist/scheduling/poll-trigger-node/poll-trigger-task.d.ts +6 -0
  616. package/dist/scheduling/poll-trigger-node/poll-trigger-task.js +8 -0
  617. package/dist/scheduling/poll-trigger-node/poll-trigger-task.js.map +1 -0
  618. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.d.ts +1 -0
  619. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js +7 -1
  620. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js.map +1 -1
  621. package/dist/security-audit/risk-reporters/credentials-risk-reporter.d.ts +4 -6
  622. package/dist/security-audit/risk-reporters/credentials-risk-reporter.js +17 -23
  623. package/dist/security-audit/risk-reporters/credentials-risk-reporter.js.map +1 -1
  624. package/dist/security-audit/security-audit.repository.js.map +1 -1
  625. package/dist/services/export.service.js.map +1 -1
  626. package/dist/services/folder-finder.service.d.ts +1 -0
  627. package/dist/services/folder-finder.service.js +30 -0
  628. package/dist/services/folder-finder.service.js.map +1 -1
  629. package/dist/services/folder.service.js.map +1 -1
  630. package/dist/services/free-ai-credits.service.d.ts +32 -0
  631. package/dist/services/free-ai-credits.service.js +55 -0
  632. package/dist/services/free-ai-credits.service.js.map +1 -0
  633. package/dist/services/frontend.service.js +2 -0
  634. package/dist/services/frontend.service.js.map +1 -1
  635. package/dist/services/hooks.service.js.map +1 -1
  636. package/dist/services/import.service.js +3 -1
  637. package/dist/services/import.service.js.map +1 -1
  638. package/dist/services/ownership-transfer/ownership-transfer-handler.registry.js.map +1 -1
  639. package/dist/services/ownership-transfer/ownership-transfer.manifest.json +5 -0
  640. package/dist/services/project.service.ee.d.ts +1 -0
  641. package/dist/services/project.service.ee.js +6 -1
  642. package/dist/services/project.service.ee.js.map +1 -1
  643. package/dist/services/public-api-key.service.js.map +1 -1
  644. package/dist/services/role.service.d.ts +2 -1
  645. package/dist/services/role.service.js +21 -3
  646. package/dist/services/role.service.js.map +1 -1
  647. package/dist/services/tag.service.js.map +1 -1
  648. package/dist/telemetry/index.d.ts +3 -2
  649. package/dist/telemetry/index.js +7 -1
  650. package/dist/telemetry/index.js.map +1 -1
  651. package/dist/utils.d.ts +1 -0
  652. package/dist/utils.js +4 -0
  653. package/dist/utils.js.map +1 -1
  654. package/dist/webhooks/live-webhooks.js +1 -1
  655. package/dist/webhooks/live-webhooks.js.map +1 -1
  656. package/dist/webhooks/waiting-forms.js +2 -7
  657. package/dist/webhooks/waiting-forms.js.map +1 -1
  658. package/dist/webhooks/waiting-webhooks.d.ts +7 -2
  659. package/dist/webhooks/waiting-webhooks.js +32 -2
  660. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  661. package/dist/workflow-helpers.js +8 -62
  662. package/dist/workflow-helpers.js.map +1 -1
  663. package/dist/workflow-hook-context.service.d.ts +4 -1
  664. package/dist/workflow-hook-context.service.js +14 -2
  665. package/dist/workflow-hook-context.service.js.map +1 -1
  666. package/dist/workflows/publication/workflow-publication-reconciler.service.d.ts +10 -3
  667. package/dist/workflows/publication/workflow-publication-reconciler.service.js +49 -13
  668. package/dist/workflows/publication/workflow-publication-reconciler.service.js.map +1 -1
  669. package/dist/workflows/triggers/non-webhook-trigger-registrar.d.ts +3 -1
  670. package/dist/workflows/triggers/non-webhook-trigger-registrar.js +5 -2
  671. package/dist/workflows/triggers/non-webhook-trigger-registrar.js.map +1 -1
  672. package/dist/workflows/triggers/trigger-execution-context.factory.d.ts +13 -4
  673. package/dist/workflows/triggers/trigger-execution-context.factory.js +62 -4
  674. package/dist/workflows/triggers/trigger-execution-context.factory.js.map +1 -1
  675. package/dist/workflows/workflow-creation.service.d.ts +3 -1
  676. package/dist/workflows/workflow-creation.service.js +14 -4
  677. package/dist/workflows/workflow-creation.service.js.map +1 -1
  678. package/dist/workflows/workflow-finder.service.js +1 -0
  679. package/dist/workflows/workflow-finder.service.js.map +1 -1
  680. package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
  681. package/dist/workflows/workflow-sharing.service.js.map +1 -1
  682. package/dist/workflows/workflow-validation.service.js +1 -1
  683. package/dist/workflows/workflow-validation.service.js.map +1 -1
  684. package/dist/workflows/workflow.service.d.ts +7 -2
  685. package/dist/workflows/workflow.service.ee.js +1 -0
  686. package/dist/workflows/workflow.service.ee.js.map +1 -1
  687. package/dist/workflows/workflow.service.js +70 -15
  688. package/dist/workflows/workflow.service.js.map +1 -1
  689. package/dist/workflows/workflows.controller.js.map +1 -1
  690. package/package.json +34 -33
  691. package/dist/blob-storage/azure-byte-store.ee.d.ts +0 -10
  692. package/dist/blob-storage/azure-byte-store.ee.js +0 -42
  693. package/dist/blob-storage/azure-byte-store.ee.js.map +0 -1
  694. package/dist/blob-storage/fs-byte-store.d.ts +0 -14
  695. package/dist/blob-storage/fs-byte-store.js +0 -96
  696. package/dist/blob-storage/fs-byte-store.js.map +0 -1
  697. package/dist/blob-storage/json-store.d.ts +0 -18
  698. package/dist/blob-storage/json-store.js +0 -128
  699. package/dist/blob-storage/json-store.js.map +0 -1
  700. package/dist/blob-storage/s3-byte-store.ee.d.ts +0 -10
  701. package/dist/blob-storage/s3-byte-store.ee.js +0 -37
  702. package/dist/blob-storage/s3-byte-store.ee.js.map +0 -1
  703. package/dist/blob-storage/skipped-entry-deletion.error.d.ts +0 -5
  704. package/dist/blob-storage/skipped-entry-deletion.error.js +0 -13
  705. package/dist/blob-storage/skipped-entry-deletion.error.js.map +0 -1
  706. package/dist/blob-storage/types.d.ts +0 -23
  707. package/dist/blob-storage/types.js.map +0 -1
  708. package/dist/modules/agents/builder/interactive/llm-provider-defaults.js.map +0 -1
  709. package/dist/modules/agents/builder/skills/integrations.skill.d.ts +0 -2
  710. package/dist/modules/agents/builder/skills/integrations.skill.js +0 -128
  711. package/dist/modules/agents/builder/skills/integrations.skill.js.map +0 -1
  712. package/dist/modules/agents/builder/skills/mcp.skill.d.ts +0 -2
  713. package/dist/modules/agents/builder/skills/mcp.skill.js +0 -172
  714. package/dist/modules/agents/builder/skills/mcp.skill.js.map +0 -1
  715. package/dist/modules/agents/builder/skills/node-tools.skill.d.ts +0 -2
  716. package/dist/modules/agents/builder/skills/node-tools.skill.js +0 -90
  717. package/dist/modules/agents/builder/skills/node-tools.skill.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export declare const INITIAL_BUILD_SECTION = "## Initial Build\n\n\"Initial build\" means the first build pass on a fresh agent. Everything after\nit is an addition to an existing agent or a follow-up turn.\n\nDuring an initial build:\n\n- NEVER suspend mid-build on an interactive tool (`ask_questions`,\n `ask_credential`, `ask_embedding_credential`, `configure_channel`). Build\n everything as a draft first; the only allowed suspends are the single\n trailing `finish_setup` call and, when it reports a blocked channel, the\n immediate `configure_channel` follow-up described below.\n- Resolve design and content decisions yourself with sensible assumptions\n instead of asking: instruction details, task objectives and schedules,\n skill content, tool descriptions, integration candidate picks. Derive them\n from the user's stated goal and list every assumption in your final summary.\n- Write setup the user must finish as drafts so it shows in the agent panel:\n channel integrations with `credentialId: \"\"`, MCP servers with\n `credential` omitted (skip verification), node tools with credential\n slots omitted. Leave Episodic Memory disabled while its credential is\n missing.\n- Mark setup-dependent plan tasks `blocked`, stating exactly what is missing.\n- When only blocked tasks remain, call `finish_setup` ONCE with everything\n pending: the model choice and open decisions as `questions`, one\n `credentialRequests` entry per credential slot, and one `channels` entry\n per drafted channel integration \u2014 it connects or skips each channel itself,\n always as the last cards in the flow. Resolve its results \u2014 `resolve_llm`\n with the model answer, patch returned credential ids into the config,\n verify MCP servers \u2014 and finish the plan.\n- If `finish_setup` reports a channel as `'blocked'` (its\n `publishBlockedIssues` field lists why \u2014 the agent could not be published\n yet, so the card never showed), first apply everything `finish_setup`\n already collected: patch returned credential ids into the config and\n resolve the model with `resolve_llm`. If that resolves every reported\n issue (nothing was skipped), call `configure_channel` once per blocked\n channel as an immediate follow-up. If anything remains skipped or\n unresolved, do not call `configure_channel`; leave it for the closing\n checklist instead.\n- After `finish_setup` and any follow-up `configure_channel` calls, end\n your reply with a short setup checklist for whatever remains \u2014 any\n skipped, dismissed, or still-blocked items only \u2014 one line per item naming\n where to complete it in the agent panel (channels: the channel chip opens\n the setup modal), plus the offer to do it here in chat.\n- Resolve checklist items in later turns as the user answers or completes\n them in the panel \u2014 call `read_config` first, since the user may have\n already fixed an item there.\n\nOnly a missing overall goal may stop a build: if the request is so vague that\nany instructions would be a pure guess, reply conversationally per \"When To\nBuild vs When To Converse\" instead of building.";
2
+ export declare const INITIAL_BUILD_NOTE = "During an initial build, never suspend mid-build: defer pending setup to the end of the build, per the Initial Build rules in your system prompt.";
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INITIAL_BUILD_NOTE = exports.INITIAL_BUILD_SECTION = void 0;
4
+ exports.INITIAL_BUILD_SECTION = `\
5
+ ## Initial Build
6
+
7
+ "Initial build" means the first build pass on a fresh agent. Everything after
8
+ it is an addition to an existing agent or a follow-up turn.
9
+
10
+ During an initial build:
11
+
12
+ - NEVER suspend mid-build on an interactive tool (\`ask_questions\`,
13
+ \`ask_credential\`, \`ask_embedding_credential\`, \`configure_channel\`). Build
14
+ everything as a draft first; the only allowed suspends are the single
15
+ trailing \`finish_setup\` call and, when it reports a blocked channel, the
16
+ immediate \`configure_channel\` follow-up described below.
17
+ - Resolve design and content decisions yourself with sensible assumptions
18
+ instead of asking: instruction details, task objectives and schedules,
19
+ skill content, tool descriptions, integration candidate picks. Derive them
20
+ from the user's stated goal and list every assumption in your final summary.
21
+ - Write setup the user must finish as drafts so it shows in the agent panel:
22
+ channel integrations with \`credentialId: ""\`, MCP servers with
23
+ \`credential\` omitted (skip verification), node tools with credential
24
+ slots omitted. Leave Episodic Memory disabled while its credential is
25
+ missing.
26
+ - Mark setup-dependent plan tasks \`blocked\`, stating exactly what is missing.
27
+ - When only blocked tasks remain, call \`finish_setup\` ONCE with everything
28
+ pending: the model choice and open decisions as \`questions\`, one
29
+ \`credentialRequests\` entry per credential slot, and one \`channels\` entry
30
+ per drafted channel integration — it connects or skips each channel itself,
31
+ always as the last cards in the flow. Resolve its results — \`resolve_llm\`
32
+ with the model answer, patch returned credential ids into the config,
33
+ verify MCP servers — and finish the plan.
34
+ - If \`finish_setup\` reports a channel as \`'blocked'\` (its
35
+ \`publishBlockedIssues\` field lists why — the agent could not be published
36
+ yet, so the card never showed), first apply everything \`finish_setup\`
37
+ already collected: patch returned credential ids into the config and
38
+ resolve the model with \`resolve_llm\`. If that resolves every reported
39
+ issue (nothing was skipped), call \`configure_channel\` once per blocked
40
+ channel as an immediate follow-up. If anything remains skipped or
41
+ unresolved, do not call \`configure_channel\`; leave it for the closing
42
+ checklist instead.
43
+ - After \`finish_setup\` and any follow-up \`configure_channel\` calls, end
44
+ your reply with a short setup checklist for whatever remains — any
45
+ skipped, dismissed, or still-blocked items only — one line per item naming
46
+ where to complete it in the agent panel (channels: the channel chip opens
47
+ the setup modal), plus the offer to do it here in chat.
48
+ - Resolve checklist items in later turns as the user answers or completes
49
+ them in the panel — call \`read_config\` first, since the user may have
50
+ already fixed an item there.
51
+
52
+ Only a missing overall goal may stop a build: if the request is so vague that
53
+ any instructions would be a pure guess, reply conversationally per "When To
54
+ Build vs When To Converse" instead of building.`;
55
+ exports.INITIAL_BUILD_NOTE = 'During an initial build, never suspend mid-build: defer pending setup to the end of the build, per the Initial Build rules in your system prompt.';
56
+ //# sourceMappingURL=initial-build.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initial-build.prompt.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/prompts/initial-build.prompt.ts"],"names":[],"mappings":";;;AAKa,QAAA,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAkDW,CAAC;AAUpC,QAAA,kBAAkB,GAC9B,mJAAmJ,CAAC"}
@@ -14,14 +14,17 @@ Use this to resolve the target agent's main \`model\` and \`credential\`.
14
14
 
15
15
  ### Workflow
16
16
 
17
- 1. Use \`resolve_llm\` when the request contains enough provider/model detail, otherwise ask via \`ask_questions\` and call \`resolve_llm\` with the answer.
18
- 2. If \`resolve_llm\` succeeds, persist \`model = "{provider}/{model}"\` and \`credential = credentialId\`.
17
+ 1. For fresh agents, call \`resolve_llm\` once, silently, before the first config write — with provider/model when the user named them, otherwise with no arguments.
18
+ 2. If \`resolve_llm\` succeeds, persist \`model = "{provider}/{model}"\` and \`credential = credentialId\`. If the result has \`claimedFreeOpenAiCredits: true\`, tell the user you set them up with free OpenAI credits. If it has \`autoPicked: true\`, tell the user which provider and model you picked and that they can ask to change it — do not ask for confirmation and do not raise a trailing model question.
19
19
  3. If the user asks to pick, change, confirm, or configure a model or main credential, ask via \`ask_questions\`; do not ask in prose.
20
- 4. If \`resolve_llm\` reports missing or ambiguous credentials/provider, ask via \`ask_questions\` then retry \`resolve_llm\` with the answer.
20
+ 4. During an initial build, if \`resolve_llm\` reports missing or ambiguous credentials/provider, do not ask: mark the model task \`blocked\`, keep building with \`model: ""\` and no \`credential\`, and include the model choice as a question in the trailing \`finish_setup\` call — for ambiguity between multiple credentials of one provider, use the credential names from the resolve_llm result as the question's options — when it resolves, call \`resolve_llm\` with the answer (pass \`credentialId\` when the user picked a specific credential) and patch \`/model\` and \`/credential\` — after \`read_config\`, since the user may have already set the model in the panel. For a model change on an existing agent, ask immediately instead, and never write \`model: ""\` over an existing model — keep the current model and credential until the new one is resolved.
21
21
  5. If \`resolve_llm\` reports \`unknown_model\`, retry with a plausible returned model value or ask via \`ask_questions\`.
22
+ 6. If the model is still unresolved when the user asks to run or publish the agent, leave the draft with \`model: ""\`, do not guess a model, and tell the user the agent needs a model and credential first — in the panel or here in chat. If they dismiss a model-change question on an existing agent, keep the current model and credential unchanged.
22
23
 
23
24
  ### Rules
24
25
 
26
+ - Do not enable \`config.webSearch\` before the model is resolved; set it in
27
+ the same mutation that writes the resolved model.
25
28
  - Only OpenAI and Anthropic models support native web search. Use native web
26
29
  search by default for those providers only, and only for
27
30
  fresh agents or agents with no existing \`config.webSearch\`. Persist
@@ -1 +1 @@
1
- {"version":3,"file":"llm-selection.prompt.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/prompts/llm-selection.prompt.ts"],"names":[],"mappings":";;;AAAA,+BAAsC,2BAA0C;IAC/E,MAAM,sBAAsB,GAAG,2BAA2B;QACzD,CAAC,CAAC,OAAO,2BAA2B,EAAE;QACtC,CAAC,CAAC,8MAA8M,CAAC;IAElN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iJAiDyI,sBAAsB,EAAE,CAAC;AAC1K,CAAC"}
1
+ {"version":3,"file":"llm-selection.prompt.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/prompts/llm-selection.prompt.ts"],"names":[],"mappings":";;;AAAA,+BAAsC,2BAA0C;IAC/E,MAAM,sBAAsB,GAAG,2BAA2B;QACzD,CAAC,CAAC,OAAO,2BAA2B,EAAE;QACtC,CAAC,CAAC,8MAA8M,CAAC;IAElN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iJAoDyI,sBAAsB,EAAE,CAAC;AAC1K,CAAC"}
@@ -1 +1 @@
1
- export declare const MEMORY_PROMPT = "## Memory Guidance\n\n### Purpose\n\nUse this to configure the target agent's memory behavior.\n\n### Workflow\n\nFresh agents must include this default memory config unless the user explicitly asks to disable or change memory:\n```json\n{\n \"enabled\": true,\n \"storage\": \"n8n\",\n \"observationalMemory\": {\n \"enabled\": true\n }\n}\n```\n\nThis is the configurable agent's session memory. The runtime-managed\n`observationalMemory` settings tune that memory behavior; they are not a\nseparate user-facing memory product.\n\nLoad `agent-builder-memory` for Episodic/long-term/cross-session memory,\nobserver/reflector/extractor worker models, threshold/budget tuning, or\ndisabling memory. Do not load it for ordinary fresh-agent creation.\n\n### Rules\n\n- When creating a new agent, always write the exact default `memory` object above.\n- Set `storage` to \"n8n\".\n- Set `observationalMemory.enabled` to `true` for new agents unless the user explicitly asks to disable observational memory.\n- Preserve existing memory tuning unless the user asked to change it.\n\n### Verify\n\n- Fresh runnable agents have enabled n8n memory unless explicitly disabled.\n- Fresh runnable agents set `observationalMemory.enabled` to `true` unless explicitly disabled.";
1
+ export declare const MEMORY_PROMPT = "## Memory Guidance\n\n### Purpose\n\nUse this to configure the target agent's memory behavior.\n\n### Workflow\n\nFresh agents must include this default memory config unless the user explicitly asks to disable or change memory:\n```json\n{\n \"enabled\": true,\n \"storage\": \"n8n\",\n \"observationalMemory\": {\n \"enabled\": true\n }\n}\n```\n\nThis is the configurable agent's session memory. The runtime-managed\n`observationalMemory` settings tune that memory behavior; they are not a\nseparate user-facing memory product.\n\nLoad `agent-builder-memory` for Episodic/long-term/cross-session memory,\nobserver/reflector/extractor worker models, threshold/budget tuning, or\ndisabling memory. Do not load it for ordinary fresh-agent creation.\n\n### Rules\n\n- When creating a new agent, always write the exact default `memory` object above.\n- Set `storage` to \"n8n\".\n- Set `observationalMemory.enabled` to `true` for new agents unless the user explicitly asks to disable observational memory.\n- Preserve existing memory tuning unless the user asked to change it.\n\n### Verify\n\n- Fresh agents have enabled n8n memory unless explicitly disabled.\n- Fresh agents set `observationalMemory.enabled` to `true` unless explicitly disabled.";
@@ -38,6 +38,6 @@ disabling memory. Do not load it for ordinary fresh-agent creation.
38
38
 
39
39
  ### Verify
40
40
 
41
- - Fresh runnable agents have enabled n8n memory unless explicitly disabled.
42
- - Fresh runnable agents set \`observationalMemory.enabled\` to \`true\` unless explicitly disabled.`;
41
+ - Fresh agents have enabled n8n memory unless explicitly disabled.
42
+ - Fresh agents set \`observationalMemory.enabled\` to \`true\` unless explicitly disabled.`;
43
43
  //# sourceMappingURL=memory.prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.prompt.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/prompts/memory.prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGAsCuE,CAAC"}
1
+ {"version":3,"file":"memory.prompt.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/prompts/memory.prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2FAsC8D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const BUILDER_PLANNER_TODOS_DESCRIPTION: string;
2
+ export declare const BUILDER_PLANNER_TODOS_SYSTEM_INSTRUCTION: string;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BUILDER_PLANNER_TODOS_SYSTEM_INSTRUCTION = exports.BUILDER_PLANNER_TODOS_DESCRIPTION = void 0;
4
+ exports.BUILDER_PLANNER_TODOS_DESCRIPTION = 'Create or update a structured task list for the current build. Use it to decompose the work, ' +
5
+ 'track progress, and record which tasks are blocked on user input. Use it for every build or ' +
6
+ 'change request. This tool only updates the task list; it does not perform work or ask the user.';
7
+ exports.BUILDER_PLANNER_TODOS_SYSTEM_INSTRUCTION = [
8
+ 'write_todos maintains your plan for the current build. It never asks the user or performs work itself.',
9
+ 'WHEN TO USE write_todos:',
10
+ '- Every request that builds or changes the agent, before other tool calls.',
11
+ '- You need to track progress or record tasks blocked on user input.',
12
+ 'WHEN NOT TO USE write_todos:',
13
+ '- Purely conversational replies with no build work.',
14
+ 'HOW TO USE write_todos:',
15
+ '- Write concrete, self-contained tasks; mark the first active task in_progress immediately.',
16
+ '- Mark a task blocked when it cannot proceed without user input, and state exactly what input is missing in the task content.',
17
+ '- Marking a task blocked IS the action for now. Do not ask the user about it while any non-blocked task remains; continue with unblocked tasks.',
18
+ '- When only blocked tasks remain: during an initial build, follow the Initial Build rules (call finish_setup); otherwise end your turn with a summary of what is missing, and unblock and finish the tasks in later turns as the user provides input.',
19
+ '- Update task status as soon as work completes; do not batch completions at the end.',
20
+ '- Do not call write_todos multiple times in parallel; send one full list update at a time.',
21
+ ].join('\n');
22
+ //# sourceMappingURL=planner-todos.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner-todos.prompt.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/prompts/planner-todos.prompt.ts"],"names":[],"mappings":";;;AAMa,QAAA,iCAAiC,GAC7C,+FAA+F;IAC/F,8FAA8F;IAC9F,iGAAiG,CAAC;AAEtF,QAAA,wCAAwC,GAAG;IACvD,wGAAwG;IACxG,0BAA0B;IAC1B,4EAA4E;IAC5E,qEAAqE;IACrE,8BAA8B;IAC9B,qDAAqD;IACrD,yBAAyB;IACzB,6FAA6F;IAC7F,+HAA+H;IAC/H,iJAAiJ;IACjJ,uPAAuP;IACvP,sFAAsF;IACtF,4FAA4F;CAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -1 +1 @@
1
- export declare const TOOLS_PROMPT = "## Tool Guidance\n\n### Purpose\n\nUse this to give the target agent callable capabilities through MCP servers,\nworkflows, nodes, custom code tools, or provider tools.\n\n### Workflow\n\nUse this guidance before calling `resolve_integration`, `search_nodes`,\n`search_mcp_servers`, `get_node_types`, `build_custom_tool`, or adding,\nchanging, or removing entries in `tools[]` / `mcpServers` / `providerTools`.\n\nFor an external product, first decide whether it is the target agent's chat or\ntrigger surface. Load `agent-builder-integrations` whenever the request could\nmean that the product is where people invoke or converse with the agent.\n\n- Chat/trigger integration: call `list_integration_types`, then\n `configure_channel` with a returned type. Do not call `resolve_integration`\n for chat/trigger integrations.\n- Callable external service: the conversation or trigger happens elsewhere and\n the agent only operates on the product. For each requested non-chat callable\n service, call `resolve_integration` separately, using `queries` as\n alternative search terms for that one service. Do not infer MCP availability\n from memory.\n - `kind: \"mcp\"`: load `agent-builder-mcp` and follow the MCP credential,\n verification, and config workflow.\n - `kind: \"node\"`: load `agent-builder-node-tools`, use the returned node\n results, and continue with `get_node_types`.\n\nUse `search_nodes` directly only when the user explicitly asks for an n8n node,\nwhen refining node results, or when a verified MCP server lacks the requested\ncapability. Use `search_mcp_servers` directly only when refining MCP results or\nwhen the user explicitly asks to browse the MCP registry.\n\nPreference order for non-chat callable services:\n1. MCP servers selected by `resolve_integration`\n2. Node tools returned by `resolve_integration`\n3. Workflow tools (`list_workflows`)\n4. Custom tools (`build_custom_tool`) \u2014 last resort\n\nCustom tools are for pure computation, validation, formatting, or planning logic;\nthey cannot perform live network, filesystem, process, timer, or host I/O.\n\n#### Workflow Tools\n\n- Call `list_workflows`; reference supported workflows by name with `{ \"type\": \"workflow\", \"workflow\": \"<name>\" }`. Always use the workflow name, never its id.\n\n#### Node Tools\n\nLoad `agent-builder-node-tools` after `resolve_integration` returns\n`kind: \"node\"`, or when the user explicitly requests an n8n node. Follow it\nbefore adding, changing, or removing node-backed tools, `nodeParameters`,\n`$fromAI` usage, or n8n expressions.\n\n#### MCP Servers\n\nLoad `agent-builder-mcp` after `resolve_integration` returns `kind: \"mcp\"`, or\nwhen the user explicitly requests a custom MCP server.\n\n#### Custom Tools\n\nCustom tools are last resort and only for pure computation. Load\n`agent-builder-custom-tools` before calling `build_custom_tool`.\n\n#### Provider Tools\n\n- Match provider tools to the configured model provider.\n- Anthropic: `providerTools[\"anthropic.web_search\"]`.\n- OpenAI: `providerTools[\"openai.web_search\"]` or `providerTools[\"openai.image_generation\"]`, only for compatible OpenAI models.\n\n### Gotchas\n\n- Live crawling, fetching, and API integrations need MCP, workflow, or node tools, not custom tools.\n- Do not invent MCP servers, node type names, workflow names, credential ids, or provider tool keys.\n\n### Verify\n\n- Chat/trigger integrations bypassed `resolve_integration` and were set up\n through `configure_channel`.\n- Each non-chat callable service was resolved separately through\n `resolve_integration` unless the user explicitly requested an n8n node or\n custom MCP server.\n- Workflow tools reference discovered workflow names.\n- Provider tool keys match the configured model provider and the valid key list.";
1
+ export declare const TOOLS_PROMPT = "## Tool Guidance\n\n### Purpose\n\nUse this to give the target agent callable capabilities through MCP servers,\nworkflows, nodes, custom code tools, or provider tools.\n\n### Workflow\n\nUse this guidance before calling `resolve_integration`, `search_nodes`,\n`search_mcp_servers`, `get_node_types`, `build_custom_tool`, or adding,\nchanging, or removing entries in `tools[]` / `mcpServers` / `providerTools`.\n\nFor an external product, load `agent-builder-external-services` once and\nfollow it. It covers the chat-integration-versus-callable-tool decision, chat\nintegration setup, MCP servers, and node tools.\n\n- Chat/trigger integration: call `list_integration_types`, then\n `configure_channel` with a returned type. Do not call `resolve_integration`\n for chat/trigger integrations.\n- Callable external service: the conversation or trigger happens elsewhere and\n the agent only operates on the product. For each requested non-chat callable\n service, call `resolve_integration` separately, using `queries` as\n alternative search terms for that one service. Do not infer MCP availability\n from memory.\n - `kind: \"mcp\"`: follow the skill's MCP Servers section \u2014 credential,\n verification, and config workflow.\n - `kind: \"node\"`: follow the skill's Node Tools section, use the returned\n node results, and continue with `get_node_types`.\n\nUse `search_nodes` directly only when the user explicitly asks for an n8n node,\nwhen refining node results, or when a verified MCP server lacks the requested\ncapability. Use `search_mcp_servers` directly only when refining MCP results or\nwhen the user explicitly asks to browse the MCP registry.\n\nPreference order for non-chat callable services:\n1. MCP servers selected by `resolve_integration`\n2. Node tools returned by `resolve_integration`\n3. Workflow tools (`list_workflows`)\n4. Custom tools (`build_custom_tool`) \u2014 last resort\n\nCustom tools are for pure computation, validation, formatting, or planning logic;\nthey cannot perform live network, filesystem, process, timer, or host I/O.\n\n#### Workflow Tools\n\n- Call `list_workflows`; reference supported workflows by name with `{ \"type\": \"workflow\", \"workflow\": \"<name>\" }`. Always use the workflow name, never its id.\n\n#### Node Tools\n\nLoad `agent-builder-external-services` when the user explicitly requests an\nn8n node, and follow its Node Tools section before adding, changing, or\nremoving node-backed tools, `nodeParameters`, `$fromAI` usage, or n8n\nexpressions.\n\n#### MCP Servers\n\nLoad `agent-builder-external-services` when the user explicitly requests a\ncustom MCP server, and follow its MCP Servers section.\n\n#### Custom Tools\n\nCustom tools are last resort and only for pure computation. Load\n`agent-builder-custom-tools` before calling `build_custom_tool`.\n\n#### Provider Tools\n\n- Match provider tools to the configured model provider.\n- Anthropic: `providerTools[\"anthropic.web_search\"]`.\n- OpenAI: `providerTools[\"openai.web_search\"]` or `providerTools[\"openai.image_generation\"]`, only for compatible OpenAI models.\n\n### Gotchas\n\n- Live crawling, fetching, and API integrations need MCP, workflow, or node tools, not custom tools.\n- Do not invent MCP servers, node type names, workflow names, credential ids, or provider tool keys.\n\n### Verify\n\n- Chat/trigger integrations bypassed `resolve_integration` and were set up\n through `configure_channel`.\n- Each non-chat callable service was resolved separately through\n `resolve_integration` unless the user explicitly requested an n8n node or\n custom MCP server.\n- Workflow tools reference discovered workflow names.\n- Provider tool keys match the configured model provider and the valid key list.";
@@ -15,9 +15,9 @@ Use this guidance before calling \`resolve_integration\`, \`search_nodes\`,
15
15
  \`search_mcp_servers\`, \`get_node_types\`, \`build_custom_tool\`, or adding,
16
16
  changing, or removing entries in \`tools[]\` / \`mcpServers\` / \`providerTools\`.
17
17
 
18
- For an external product, first decide whether it is the target agent's chat or
19
- trigger surface. Load \`agent-builder-integrations\` whenever the request could
20
- mean that the product is where people invoke or converse with the agent.
18
+ For an external product, load \`agent-builder-external-services\` once and
19
+ follow it. It covers the chat-integration-versus-callable-tool decision, chat
20
+ integration setup, MCP servers, and node tools.
21
21
 
22
22
  - Chat/trigger integration: call \`list_integration_types\`, then
23
23
  \`configure_channel\` with a returned type. Do not call \`resolve_integration\`
@@ -27,10 +27,10 @@ mean that the product is where people invoke or converse with the agent.
27
27
  service, call \`resolve_integration\` separately, using \`queries\` as
28
28
  alternative search terms for that one service. Do not infer MCP availability
29
29
  from memory.
30
- - \`kind: "mcp"\`: load \`agent-builder-mcp\` and follow the MCP credential,
30
+ - \`kind: "mcp"\`: follow the skill's MCP Servers section — credential,
31
31
  verification, and config workflow.
32
- - \`kind: "node"\`: load \`agent-builder-node-tools\`, use the returned node
33
- results, and continue with \`get_node_types\`.
32
+ - \`kind: "node"\`: follow the skill's Node Tools section, use the returned
33
+ node results, and continue with \`get_node_types\`.
34
34
 
35
35
  Use \`search_nodes\` directly only when the user explicitly asks for an n8n node,
36
36
  when refining node results, or when a verified MCP server lacks the requested
@@ -52,15 +52,15 @@ they cannot perform live network, filesystem, process, timer, or host I/O.
52
52
 
53
53
  #### Node Tools
54
54
 
55
- Load \`agent-builder-node-tools\` after \`resolve_integration\` returns
56
- \`kind: "node"\`, or when the user explicitly requests an n8n node. Follow it
57
- before adding, changing, or removing node-backed tools, \`nodeParameters\`,
58
- \`$fromAI\` usage, or n8n expressions.
55
+ Load \`agent-builder-external-services\` when the user explicitly requests an
56
+ n8n node, and follow its Node Tools section before adding, changing, or
57
+ removing node-backed tools, \`nodeParameters\`, \`$fromAI\` usage, or n8n
58
+ expressions.
59
59
 
60
60
  #### MCP Servers
61
61
 
62
- Load \`agent-builder-mcp\` after \`resolve_integration\` returns \`kind: "mcp"\`, or
63
- when the user explicitly requests a custom MCP server.
62
+ Load \`agent-builder-external-services\` when the user explicitly requests a
63
+ custom MCP server, and follow its MCP Servers section.
64
64
 
65
65
  #### Custom Tools
66
66
 
@@ -12,7 +12,7 @@ const resolveIntegrationInputSchema = zod_1.z.object({
12
12
  });
13
13
  function buildResolveIntegrationTool(deps) {
14
14
  return new tool_1.Tool(builder_tool_names_1.BUILDER_TOOLS.RESOLVE_INTEGRATION)
15
- .description('Resolve external services to MCP servers or n8n node tools. Searches the MCP registry first and returns kind: "mcp" when a match exists; only searches agent-eligible n8n node tools and returns kind: "node" when no MCP server matches. For kind: "mcp", load agent-builder-mcp. For kind: "node", load agent-builder-node-tools and use the returned node results.')
15
+ .description('Resolve external services to MCP servers or n8n node tools. Searches the MCP registry first and returns kind: "mcp" when a match exists; only searches agent-eligible n8n node tools and returns kind: "node" when no MCP server matches. For either kind, load agent-builder-external-services and follow its matching section, using the returned results.')
16
16
  .input(resolveIntegrationInputSchema)
17
17
  .handler(async ({ queries }) => {
18
18
  const mcpResults = await deps.mcpRegistryService.search(queries);
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-integration.tool.js","sourceRoot":"","sources":["../../../../src/modules/agents/builder/resolve-integration.tool.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,6BAAwB;AAKxB,6DAAqD;AAOrD,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC;SACR,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,2DAA2D,CAAC;CACvE,CAAC,CAAC;AAEH,qCAA4C,IAA4B;IACvE,OAAO,IAAI,WAAI,CAAC,kCAAa,CAAC,mBAAmB,CAAC;SAChD,WAAW,CACX,uWAAuW,CACvW;SACA,KAAK,CAAC,6BAA6B,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAyB,EAAE,EAAE;QACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,KAAc,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO;YACN,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;SACtD,CAAC;IACH,CAAC,CAAC;SACD,KAAK,EAAE,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"resolve-integration.tool.js","sourceRoot":"","sources":["../../../../src/modules/agents/builder/resolve-integration.tool.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,6BAAwB;AAKxB,6DAAqD;AAOrD,MAAM,6BAA6B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC;SACR,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,2DAA2D,CAAC;CACvE,CAAC,CAAC;AAEH,qCAA4C,IAA4B;IACvE,OAAO,IAAI,WAAI,CAAC,kCAAa,CAAC,mBAAmB,CAAC;SAChD,WAAW,CACX,8VAA8V,CAC9V;SACA,KAAK,CAAC,6BAA6B,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAyB,EAAE,EAAE;QACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,KAAc,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO;YACN,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;SACtD,CAAC;IACH,CAAC,CAAC;SACD,KAAK,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { RuntimeSkill } from '@n8n/agents';
2
+ export declare function externalServicesSkill(): RuntimeSkill;
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.externalServicesSkill = externalServicesSkill;
4
+ const api_types_1 = require("@n8n/api-types");
5
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
6
+ const schema_text_serializer_1 = require("../../json-config/schema-text-serializer");
7
+ const initial_build_prompt_1 = require("../prompts/initial-build.prompt");
8
+ const mcpServerSchemaText = (0, schema_text_serializer_1.jsonSchemaToCompactText)((0, zod_to_json_schema_1.zodToJsonSchema)(api_types_1.McpServerConfigSchema));
9
+ function externalServicesSkill() {
10
+ return {
11
+ id: 'agent-builder-external-services',
12
+ name: 'Agent Builder External Services',
13
+ description: 'Use when connecting the target agent to any external product: deciding whether Slack, Linear, Telegram, or another platform is a chat integration/trigger versus an MCP, node, or workflow tool; adding, removing, or updating chat integrations or MCP servers; and wiring n8n node-backed tools (search_nodes/get_node_types discovery, nodeParameters, node credential slots, $fromAI usage, n8n expressions).',
14
+ recommendedTools: [
15
+ 'resolve_integration',
16
+ 'list_integration_types',
17
+ 'configure_channel',
18
+ 'search_nodes',
19
+ 'get_node_types',
20
+ 'ask_credential',
21
+ 'verify_mcp_server',
22
+ 'read_config',
23
+ 'patch_config',
24
+ ],
25
+ allowedTools: [
26
+ 'resolve_integration',
27
+ 'list_integration_types',
28
+ 'configure_channel',
29
+ 'search_mcp_servers',
30
+ 'search_nodes',
31
+ 'get_node_types',
32
+ 'ask_credential',
33
+ 'verify_mcp_server',
34
+ 'get_resource_locator_options',
35
+ 'ask_questions',
36
+ 'read_config',
37
+ 'patch_config',
38
+ 'write_config',
39
+ 'load_skill',
40
+ ],
41
+ instructions: `\
42
+ ## Purpose
43
+
44
+ Use this to connect the target agent to external products across all three
45
+ surfaces: chat integrations (the \`integrations\` array), MCP servers
46
+ (\`mcpServers\`), and n8n node tools (entries in \`tools[]\` with
47
+ \`nodeParameters\`). Decide the right surface first, then follow that
48
+ section.
49
+
50
+ ## Integration vs Callable Tool Decision
51
+
52
+ Use an integration when the product is the agent's conversation or trigger
53
+ surface: humans will mention, message, comment to, or resume the agent there,
54
+ or the agent needs to respond in that same platform conversation context.
55
+
56
+ Use an MCP, node, or workflow tool when the product is only something the agent
57
+ operates on: searching records, creating tickets, updating objects, or sending a
58
+ business-process notification while the conversation happens elsewhere.
59
+
60
+ Examples:
61
+
62
+ - Slack integration: the agent should be chatted with in Slack, respond in
63
+ Slack threads, DM users, message channels, add reactions, or render rich UI
64
+ to Slack users.
65
+ - Linear integration: the agent should be triggered from Linear issues/comments,
66
+ understand the current Linear subject, or reply in the same Linear
67
+ conversation.
68
+ - Linear callable tools: the agent is triggered from Slack, Preview, a task, or a
69
+ workflow and only needs to search/create/update Linear tickets via MCP or node
70
+ tools.
71
+
72
+ For callable (non-chat) services, call \`resolve_integration\` separately per
73
+ service and follow the returned \`kind\`: \`"mcp"\` -> MCP Servers section
74
+ below, \`"node"\` -> Node Tools section below.
75
+
76
+ ## Chat Integrations
77
+
78
+ The \`integrations\` array controls how the target agent is triggered.
79
+
80
+ - These are connected external chat platforms, not built-in Preview chat.
81
+ - Call \`list_integration_types\` first.
82
+ - Read the returned \`capabilities\`, \`useIntegrationWhen\`, and
83
+ \`useNodeToolWhen\` fields before deciding to add an integration.
84
+ - Pick one returned \`type\` and pass it to \`configure_channel\` as
85
+ \`integrationType\`. ALWAYS use \`configure_channel\` for chat-channel
86
+ credentials — never \`ask_credential\` or a raw config write. The setup UI it
87
+ shows creates and persists the credential/connection itself; do not follow up
88
+ with \`patch_config\`/\`write_config\` to write the credential.
89
+ - ${initial_build_prompt_1.INITIAL_BUILD_NOTE} Instead of \`configure_channel\`: after
90
+ \`list_integration_types\` returns the matching type, \`read_config()\` then
91
+ \`patch_config\` adding \`{ "type": "<integrationType>", "credentialId": "" }\`
92
+ to \`/integrations/-\` (include a minimal valid draft \`settings\` object for
93
+ telegram) so the channel appears in the agent panel as needing setup. Pass
94
+ the same \`integrationType\` in the trailing \`finish_setup\` call's
95
+ \`channels\` array — its card connects or skips the channel itself; if
96
+ skipped, list it in the closing setup checklist pointing at the channel
97
+ chip in the agent panel. If \`finish_setup\` instead reports the channel as
98
+ \`'blocked'\` (the agent could not be published yet), patch in the
99
+ credentials/model it collected first; if that resolves every reported
100
+ issue, call \`configure_channel\` directly for that channel as a follow-up.
101
+ Otherwise leave it for the closing checklist.
102
+ - Preserve existing chat integrations unless the user asked to remove them.
103
+ - To remove an existing chat integration, call \`read_config\` and inspect
104
+ \`config.integrations\`.
105
+ - If exactly one existing integration matches the requested platform, remove
106
+ that entry with \`patch_config\` by index (or replace \`/integrations\` with a
107
+ filtered array when clearer).
108
+ - If multiple existing integrations match the requested platform, ask which one
109
+ to remove before editing \`integrations\`.
110
+ - Removing a chat integration means deleting its entry from
111
+ \`integrations[]\`. Do not call \`configure_channel\` to remove a channel.
112
+
113
+ ### Gotchas
114
+
115
+ - Chat integration types must come from \`list_integration_types\`.
116
+ - Do not add a chat integration just because the agent needs CRUD or notifications
117
+ for that product. Resolve the callable capability through \`resolve_integration\`
118
+ unless the product itself is the chat/trigger context.
119
+ - For recurring or scheduled runs, create a task (\`create_tasks\`), not an
120
+ integration.
121
+ - Omitting \`integrations\` from a config write preserves the current channels.
122
+ To remove one, write an explicit filtered array or remove the exact array
123
+ entry.
124
+
125
+ ## MCP Servers
126
+
127
+ MCP servers expose external tool catalogs to the target agent over HTTP. They
128
+ live on the top-level \`mcpServers\` array, and each entry maps 1:1 to a
129
+ connected MCP server. Use this section when \`resolve_integration\` returned
130
+ \`kind: "mcp"\`, the user explicitly asks to add or edit an MCP server, or the
131
+ user provides or asks to configure a custom MCP server.
132
+
133
+ ### Discovery and setup
134
+
135
+ For a generic external-service request, \`resolve_integration\` must select the
136
+ integration type before MCP setup. If no resolver result is available yet,
137
+ call \`resolve_integration\` with queries matching the requested service.
138
+ Resolve one requested service per call; use \`queries\` only for alternative
139
+ search terms for that service.
140
+
141
+ - If it returns \`kind: "node"\` for a generic service request, follow the Node
142
+ Tools section with the returned node results. Stop this MCP workflow.
143
+ - If it returns \`kind: "node"\` but the user explicitly requested an MCP server,
144
+ do not silently substitute a node tool. Continue with manual MCP setup by
145
+ asking for the URL and transport/authentication decision through
146
+ \`${api_types_1.ASK_QUESTIONS_TOOL_NAME}\`.
147
+ - \`resolve_integration\` returns \`{ kind: "mcp", results: [...] }\` for MCP
148
+ matches. Never read server fields from the wrapper; select a result first:
149
+ - If \`results[]\` contains one entry, use it as \`selectedResult\`.
150
+ - If the request uniquely identifies one entry by \`name\` or \`title\`, use
151
+ that entry as \`selectedResult\`.
152
+ - If multiple candidates remain, call \`ask_questions\` with the candidate
153
+ titles and descriptions; never choose by array order. During an initial
154
+ build, do not call \`ask_questions\` for this: pick the best candidate by
155
+ title/description relevance yourself, and list the pick as an assumption
156
+ in your summary. Use the chosen entry as \`selectedResult\`. If
157
+ \`ask_questions\` returns \`{ answered: false }\`, stop MCP setup without
158
+ selecting a server, asking for credentials, verifying a connection, or
159
+ mutating config. Do not re-present the question.
160
+ - Use \`name\`, \`url\`, \`transport\`, \`authentication\`, \`credentialType\`,
161
+ \`tools\`, and optional \`metadata\` only from \`selectedResult\`.
162
+
163
+ Follow these steps for the selected MCP result:
164
+
165
+ 1. Credential: call \`ask_credential\` with a short \`purpose\`, using
166
+ \`selectedResult.credentialType\` as \`credentialType\`. Never invent
167
+ credential IDs.
168
+ 2. Verify: call \`verify_mcp_server\` with the selected result's \`name\`, \`url\`,
169
+ \`transport\`, and \`authentication\`, plus the returned \`credentialId\` as
170
+ \`credential\` when authentication is required.
171
+ 3. Capability check: confirm the verified tool names and descriptions cover the
172
+ capability the user requested.
173
+ 4. Write config: call \`read_config\`, then \`patch_config\` to add the entry to
174
+ \`mcpServers[]\` using the patch pattern below. When the entry already
175
+ exists and verify returned \`credentialApplied: true\`, skip this step — the
176
+ credential is already persisted.
177
+
178
+ ${initial_build_prompt_1.INITIAL_BUILD_NOTE} For MCP that means: pick the best candidate as an
179
+ assumption (above), then \`read_config()\` and \`patch_config\` a draft
180
+ \`/mcpServers/-\` entry using \`name\`, \`url\`, \`transport\`,
181
+ \`authentication\`, and \`metadata.nodeTypeName\` from \`selectedResult\` with
182
+ \`credential\` omitted, and skip \`verify_mcp_server\` — there is nothing to
183
+ authenticate yet. Include the credential in the trailing \`finish_setup\` call;
184
+ verify with the returned credential id — on success the tool writes the
185
+ credential into the matching entry itself (\`credentialApplied: true\`); no
186
+ \`read_config\`/\`patch_config\` follow-up for the credential. Existing-agent
187
+ additions keep the immediate ask + verify flow above unchanged.
188
+
189
+ If verification succeeds but the tools do not cover the requested capability
190
+ for a generic service request, switch to the Node Tools section, call
191
+ \`search_nodes\` with the same service queries, and continue with node setup. Do
192
+ not add the MCP server merely because its registry entry matched.
193
+
194
+ Full schema reference:
195
+
196
+ ${mcpServerSchemaText}
197
+
198
+ ### Tool exposure and approval
199
+
200
+ - Expose every available MCP tool by default: omit \`toolFilter\` unless the user
201
+ explicitly asks to restrict which tools are exposed. Do not infer an allowlist
202
+ from the requested capability.
203
+ - For an explicit filter or selected approval list, use only exact, unprefixed
204
+ \`name\` values from \`selectedResult.tools\` or a successful
205
+ \`verify_mcp_server\` result.
206
+ - Never prepend the server name. Never invent MCP tool names. \`toolFilter.tools\`
207
+ and \`approval.tools\` match original MCP names; the SDK adds the server prefix
208
+ only when exposing tools to the model.
209
+
210
+ ### Credential flow
211
+
212
+ - For \`bearerAuth\`, call \`ask_credential\` with
213
+ \`credentialType: "httpBearerAuth"\`.
214
+ - For \`headerAuth\`, call \`ask_credential\` with
215
+ \`credentialType: "httpHeaderAuth"\`.
216
+ - For \`multipleHeadersAuth\`, call \`ask_credential\` with
217
+ \`credentialType: "httpMultipleHeadersAuth"\`.
218
+ - For \`mcpOAuth2Api\`, call \`ask_credential\` with
219
+ \`credentialType: "mcpOAuth2Api"\`.
220
+
221
+ ### Testing the connection
222
+
223
+ Before writing to config, call \`verify_mcp_server\` with server \`name\`,
224
+ \`url\`, \`transport\`, and (if applicable) the credential id from
225
+ \`ask_credential\`.
226
+
227
+ - Success returns \`{ ok: true, tools: [{ name, description }] }\`, and when a
228
+ matching \`mcpServers\` entry exists, also \`credentialApplied: true,
229
+ configMutated: true, agentId\` — the credential is written automatically; do
230
+ not follow with \`read_config\`/\`patch_config\` for the credential.
231
+ - When verify succeeds but \`credentialApplied: false\` and the entry already
232
+ exists, fall back to \`read_config\` then \`patch_config\` for the credential.
233
+ - For an explicitly requested filter or selected approval list, copy exact names
234
+ from the returned tool list following Tool exposure and approval above.
235
+ - Failure returns \`{ ok: false, error: "..." }\`.
236
+ - If verification fails, explain the error and ask the user to check the URL
237
+ or credentials before proceeding.
238
+
239
+ ### Incomplete setup
240
+
241
+ The user can skip the credential prompt, the URL question, or both. Never
242
+ invent a credential ID or a placeholder URL to fill the gap, and never abort
243
+ the server addition — always persist what is known and let the user finish
244
+ setup later:
245
+
246
+ - Credential skipped (\`ask_credential\` returned \`{ skipped: true }\`): omit
247
+ only the \`credential\` field.
248
+ - URL skipped: persist \`url: ""\`.
249
+ - Either case: skip \`verify_mcp_server\` (there is nothing to authenticate or
250
+ connect to), then \`read_config\` and \`patch_config\` the entry, preserving
251
+ every other known field — \`name\`, \`transport\`, \`authentication\`, an
252
+ already-selected credential, and registry \`metadata\`.
253
+
254
+ ### Selecting credentials
255
+
256
+ When using a registry-backed server, always use the \`credentialType\` returned
257
+ by \`selectedResult\`.
258
+
259
+ For custom MCP servers, if credential type is unknown, ask the user which
260
+ credential type to use (OAuth2, Bearer Token, Header Auth, Multiple Headers
261
+ Auth, or None) via \`${api_types_1.ASK_QUESTIONS_TOOL_NAME}\`. Then map to:
262
+
263
+ - \`bearerAuth\` -> \`ask_credential\` with \`credentialType: "httpBearerAuth"\`
264
+ - \`headerAuth\` -> \`ask_credential\` with \`credentialType: "httpHeaderAuth"\`
265
+ - \`multipleHeadersAuth\` -> \`ask_credential\` with
266
+ \`credentialType: "httpMultipleHeadersAuth"\`
267
+ - \`mcpOAuth2Api\` -> \`ask_credential\` with \`credentialType: "mcpOAuth2Api"\`
268
+
269
+ ### Patch pattern
270
+
271
+ 1. Initialize the array if missing:
272
+ \`{ "op": "add", "path": "/mcpServers", "value": [] }\`
273
+ 2. Append each server:
274
+ \`{ "op": "add", "path": "/mcpServers/-", "value": { ... } }\`
275
+
276
+ ### Gotchas
277
+
278
+ - Server \`name\` must be unique across \`mcpServers\` within an agent.
279
+ - Never fabricate \`metadata.nodeTypeName\`.
280
+ - When \`selectedResult\` includes \`metadata.nodeTypeName\`, include
281
+ \`metadata: { nodeTypeName: <selectedResult.metadata.nodeTypeName> }\` in the
282
+ entry so the UI can render the correct server form.
283
+ - A registry match proves server availability, not support for the requested
284
+ capability; use the verified live tool list for that decision.
285
+
286
+ ## Node Tools
287
+
288
+ Use this section to discover, configure, and wire node tools into the target
289
+ agent's \`tools[]\`, including \`nodeParameters\` and n8n expressions.
290
+
291
+ ### Workflow
292
+
293
+ - For a generic external-service request, call \`resolve_integration\` before
294
+ node discovery unless a resolver result is already available.
295
+ - If it returns \`kind: "mcp"\`, follow the MCP Servers section instead and stop
296
+ this node-tool workflow.
297
+ - If it returns \`kind: "node"\`, use its returned node results and call
298
+ \`get_node_types\`; do not repeat the same search with \`search_nodes\`.
299
+ - Call \`search_nodes\` directly only when the user explicitly requests an n8n
300
+ node, when refining node results, or when a verified MCP server lacks the
301
+ requested capability.
302
+ - Never guess node type names.
303
+ - Use the tool node id from discovery, usually ending in \`Tool\`.
304
+ - Put fixed values in \`nodeParameters\`; use complete n8n expressions for values the agent should decide at runtime:
305
+ \`={{ $fromAI('url', 'The URL to inspect', 'string') }}\`.
306
+ - For stable dynamic selectors, load \`agent-builder-resource-locators\` and
307
+ follow it.
308
+ - Never write literal \`"$fromAI"\` or bare \`$fromAI\`; the node will treat it as the actual value.
309
+ - Do not pipe AI-chosen fields through \`$json\`.
310
+ - Do not include \`inputSchema\` or \`toolDescription\` for node tools.
311
+ - For each required credential slot, call \`ask_credential\` once before the config mutation for an addition to an existing agent. ${initial_build_prompt_1.INITIAL_BUILD_NOTE} Add the tool with that credential slot omitted; after the trailing \`finish_setup\` resolves the credential, copy the returned credentials into \`node.credentials\` via \`patch_config\`; for resource-locator resolution follow \`agent-builder-resource-locators\` then. Pass the node's credential key as \`credentialSlot\`. On success, copy the returned \`credentials\` object directly to \`node.credentials\`. If skipped, still add the tool and omit only that credential slot.
312
+ - When the agent already has a chat channel configured and the tool needs the same
313
+ credential type, \`ask_credential\` reuses the channel's credential automatically —
314
+ do not ask the user to pick a different one.
315
+
316
+ ### n8n Expressions
317
+
318
+ Node tool parameters inside \`nodeParameters\` can use n8n expressions.
319
+ Prefer \`$fromAI\` whenever the target agent should decide a value at runtime.
320
+ Do not use \`$fromAI\` for stable resource IDs that the target agent cannot know
321
+ at runtime, such as Linear \`teamId\`, project IDs, channel IDs, calendar IDs,
322
+ database IDs, table IDs, or other dynamic "Name or ID" selectors. Resolve those
323
+ with the \`agent-builder-resource-locators\` skill, \`ask_credential\`, and
324
+ \`get_resource_locator_options\`; write the returned \`parameterValue\` into
325
+ \`nodeParameters\`.
326
+
327
+ - \`={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('fieldName', 'What value to provide', 'string') }}\`
328
+ - \`={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('count', 'How many items', 'number') }}\`
329
+ - \`={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('enabled', 'Whether to enable this option', 'boolean') }}\`
330
+ - \`={{ $now.toISO() }}\` for current date/time.
331
+ - \`={{ $today }}\` for the start of today.
332
+
333
+ Always wrap expressions in \`={{ }}\`. Never pipe AI-chosen node-tool fields
334
+ through \`$json\`; use \`$fromAI\` for those fields instead.
335
+
336
+ ### Gotchas
337
+
338
+ - Do not include \`inputSchema\` or \`toolDescription\` for node tools.
339
+ - \`$fromAI(...)\` placeholders define the node tool input schema; do not add it manually.
340
+ - Follow \`agent-builder-resource-locators\` for dynamic selector lookup,
341
+ credentials, and \`parameterValue\` handling.
342
+ - If a required node-tool credential is skipped, add the tool and omit only that credential slot.
343
+ - Node tools execute inline, so never use waiting operations such as \`sendAndWait\`
344
+ or \`dispatchAndWait\`. When the user requests human approval, configure the
345
+ intended non-waiting operation and set \`requireApproval: true\` on the tool.
346
+
347
+ ## Verify
348
+
349
+ - Connected chat integrations were set up through \`configure_channel\`, not
350
+ \`ask_credential\` or a manual config write.
351
+ - The chosen integration matches \`useIntegrationWhen\`; otherwise resolve the
352
+ callable capability through \`resolve_integration\` and use MCP, node, or
353
+ workflow tools.
354
+ - Generic non-chat external services were routed through \`resolve_integration\`
355
+ before MCP or node setup.
356
+ - The final \`integrations\` array keeps unrelated integrations intact and
357
+ removes only the requested channel entries.
358
+ - Node tools use discovered tool node ids and valid node parameters.`,
359
+ };
360
+ }
361
+ //# sourceMappingURL=external-services.skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-services.skill.js","sourceRoot":"","sources":["../../../../../src/modules/agents/builder/skills/external-services.skill.ts"],"names":[],"mappings":";;;AACA,8CAAgF;AAEhF,2DAAqD;AAErD,qFAAmF;AACnF,0EAAqE;AAErE,MAAM,mBAAmB,GAAG,IAAA,gDAAuB,EAClD,IAAA,oCAAe,EAAC,iCAAqB,CAAgB,CACrD,CAAC;AAEF;IACC,OAAO;QACN,EAAE,EAAE,iCAAiC;QACrC,IAAI,EAAE,iCAAiC;QACvC,WAAW,EACV,mZAAmZ;QACpZ,gBAAgB,EAAE;YACjB,qBAAqB;YACrB,wBAAwB;YACxB,mBAAmB;YACnB,cAAc;YACd,gBAAgB;YAChB,gBAAgB;YAChB,mBAAmB;YACnB,aAAa;YACb,cAAc;SACd;QACD,YAAY,EAAE;YACb,qBAAqB;YACrB,wBAAwB;YACxB,mBAAmB;YACnB,oBAAoB;YACpB,cAAc;YACd,gBAAgB;YAChB,gBAAgB;YAChB,mBAAmB;YACnB,8BAA8B;YAC9B,eAAe;YACf,aAAa;YACb,cAAc;YACd,cAAc;YACd,YAAY;SACZ;QACD,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgDZ,yCAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyDhB,mCAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC3B,yCAAkB;;;;;;;;;;;;;;;;;;EAkBlB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAiEE,mCAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qIAkDuF,yCAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEA+ClF;KACnE,CAAC;AACH,CAAC"}