n8n 2.35.4 → 2.36.2

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 (733) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/commands/start.js +4 -2
  3. package/dist/commands/start.js.map +1 -1
  4. package/dist/config/index.js +0 -1
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/constants/oauth2-triggers.d.ts +0 -1
  7. package/dist/constants/oauth2-triggers.js +0 -4
  8. package/dist/constants/oauth2-triggers.js.map +1 -1
  9. package/dist/constants.js +1 -0
  10. package/dist/constants.js.map +1 -1
  11. package/dist/controllers/ai.controller.d.ts +2 -5
  12. package/dist/controllers/ai.controller.js.map +1 -1
  13. package/dist/controllers/api-keys.controller.d.ts +1 -1
  14. package/dist/controllers/api-keys.controller.js +10 -10
  15. package/dist/controllers/api-keys.controller.js.map +1 -1
  16. package/dist/controllers/dynamic-node-parameters.controller.d.ts +6 -1
  17. package/dist/controllers/dynamic-node-parameters.controller.js +21 -2
  18. package/dist/controllers/dynamic-node-parameters.controller.js.map +1 -1
  19. package/dist/controllers/e2e.controller.d.ts +21 -2
  20. package/dist/controllers/e2e.controller.js +40 -2
  21. package/dist/controllers/e2e.controller.js.map +1 -1
  22. package/dist/controllers/role.controller.js +3 -5
  23. package/dist/controllers/role.controller.js.map +1 -1
  24. package/dist/credentials/credential-connection-status-provider.interface.d.ts +4 -1
  25. package/dist/credentials/credential-connection-status-proxy.d.ts +2 -2
  26. package/dist/credentials/credential-connection-status-proxy.js +3 -3
  27. package/dist/credentials/credential-connection-status-proxy.js.map +1 -1
  28. package/dist/credentials/credentials-finder.service.d.ts +2 -1
  29. package/dist/credentials/credentials-finder.service.js +2 -1
  30. package/dist/credentials/credentials-finder.service.js.map +1 -1
  31. package/dist/credentials/credentials.controller.d.ts +8 -6
  32. package/dist/credentials/credentials.controller.js +3 -12
  33. package/dist/credentials/credentials.controller.js.map +1 -1
  34. package/dist/credentials/credentials.service.d.ts +38 -30
  35. package/dist/credentials/credentials.service.ee.d.ts +6 -4
  36. package/dist/credentials/credentials.service.ee.js +2 -1
  37. package/dist/credentials/credentials.service.ee.js.map +1 -1
  38. package/dist/credentials/credentials.service.js +93 -45
  39. package/dist/credentials/credentials.service.js.map +1 -1
  40. package/dist/credentials-overwrites.d.ts +1 -0
  41. package/dist/credentials-overwrites.js +17 -0
  42. package/dist/credentials-overwrites.js.map +1 -1
  43. package/dist/deprecation/deprecation.service.js +5 -0
  44. package/dist/deprecation/deprecation.service.js.map +1 -1
  45. package/dist/errors/http-error-classifier.d.ts +4 -1
  46. package/dist/errors/http-error-classifier.js +4 -1
  47. package/dist/errors/http-error-classifier.js.map +1 -1
  48. package/dist/evaluation.ee/evaluation-dataset.service.d.ts +3 -3
  49. package/dist/evaluation.ee/evaluation-dataset.service.js +5 -6
  50. package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -1
  51. package/dist/events/event.service.d.ts +2 -1
  52. package/dist/events/event.service.js.map +1 -1
  53. package/dist/events/maps/poll-trigger-metrics.event-map.d.ts +9 -0
  54. package/dist/events/maps/poll-trigger-metrics.event-map.js +3 -0
  55. package/dist/events/maps/poll-trigger-metrics.event-map.js.map +1 -0
  56. package/dist/executions/enqueued-execution-recovery.service.js +7 -1
  57. package/dist/executions/enqueued-execution-recovery.service.js.map +1 -1
  58. package/dist/executions/execution-persistence.d.ts +7 -2
  59. package/dist/executions/execution-persistence.js +27 -6
  60. package/dist/executions/execution-persistence.js.map +1 -1
  61. package/dist/executions/execution.service.d.ts +4 -1
  62. package/dist/executions/execution.service.js +2 -2
  63. package/dist/executions/execution.service.js.map +1 -1
  64. package/dist/load-nodes-and-credentials.d.ts +1 -0
  65. package/dist/load-nodes-and-credentials.js +31 -16
  66. package/dist/load-nodes-and-credentials.js.map +1 -1
  67. package/dist/metrics/prometheus/poll-trigger-metrics.service.d.ts +13 -0
  68. package/dist/metrics/prometheus/poll-trigger-metrics.service.js +81 -0
  69. package/dist/metrics/prometheus/poll-trigger-metrics.service.js.map +1 -0
  70. package/dist/metrics/prometheus/prometheus.service.d.ts +2 -1
  71. package/dist/metrics/prometheus/prometheus.service.js +4 -2
  72. package/dist/metrics/prometheus/prometheus.service.js.map +1 -1
  73. package/dist/metrics/prometheus/scheduler-metrics.service.d.ts +2 -0
  74. package/dist/metrics/prometheus/scheduler-metrics.service.js +10 -0
  75. package/dist/metrics/prometheus/scheduler-metrics.service.js.map +1 -1
  76. package/dist/modules/agent-evals/agent-eval-case-generation.service.d.ts +3 -3
  77. package/dist/modules/agent-evals/agent-eval-case-generation.service.js +5 -5
  78. package/dist/modules/agent-evals/agent-eval-case-generation.service.js.map +1 -1
  79. package/dist/modules/agent-evals/agent-eval-rating.service.js +5 -6
  80. package/dist/modules/agent-evals/agent-eval-rating.service.js.map +1 -1
  81. package/dist/modules/agents/adapters/agents-credential-provider.d.ts +1 -0
  82. package/dist/modules/agents/adapters/agents-credential-provider.js +11 -2
  83. package/dist/modules/agents/adapters/agents-credential-provider.js.map +1 -1
  84. package/dist/modules/agents/agent-config.service.js +9 -0
  85. package/dist/modules/agents/agent-config.service.js.map +1 -1
  86. package/dist/modules/agents/agent-default-model-resolver.service.d.ts +19 -0
  87. package/dist/modules/agents/agent-default-model-resolver.service.js +106 -0
  88. package/dist/modules/agents/agent-default-model-resolver.service.js.map +1 -0
  89. package/dist/modules/agents/agent-execution-orchestrator.service.d.ts +7 -1
  90. package/dist/modules/agents/agent-execution-orchestrator.service.js +200 -108
  91. package/dist/modules/agents/agent-execution-orchestrator.service.js.map +1 -1
  92. package/dist/modules/agents/agent-integration-management.service.d.ts +24 -6
  93. package/dist/modules/agents/agent-integration-management.service.js +175 -34
  94. package/dist/modules/agents/agent-integration-management.service.js.map +1 -1
  95. package/dist/modules/agents/agent-integration-persistence.service.d.ts +21 -6
  96. package/dist/modules/agents/agent-integration-persistence.service.js +61 -50
  97. package/dist/modules/agents/agent-integration-persistence.service.js.map +1 -1
  98. package/dist/modules/agents/agent-integrations.controller.d.ts +3 -5
  99. package/dist/modules/agents/agent-integrations.controller.js +11 -6
  100. package/dist/modules/agents/agent-integrations.controller.js.map +1 -1
  101. package/dist/modules/agents/agent-knowledge-commands.d.ts +3 -3
  102. package/dist/modules/agents/agent-knowledge-commands.js +16 -22
  103. package/dist/modules/agents/agent-knowledge-commands.js.map +1 -1
  104. package/dist/modules/agents/{agent-knowledge-sandbox.service.d.ts → agent-knowledge-mirror.service.d.ts} +6 -22
  105. package/dist/modules/agents/agent-knowledge-mirror.service.js +442 -0
  106. package/dist/modules/agents/agent-knowledge-mirror.service.js.map +1 -0
  107. package/dist/modules/agents/agent-knowledge-storage.d.ts +7 -3
  108. package/dist/modules/agents/agent-knowledge-storage.js +11 -4
  109. package/dist/modules/agents/agent-knowledge-storage.js.map +1 -1
  110. package/dist/modules/agents/agent-knowledge.controller.d.ts +3 -5
  111. package/dist/modules/agents/agent-knowledge.controller.js +5 -8
  112. package/dist/modules/agents/agent-knowledge.controller.js.map +1 -1
  113. package/dist/modules/agents/agent-knowledge.service.d.ts +8 -6
  114. package/dist/modules/agents/agent-knowledge.service.js +20 -14
  115. package/dist/modules/agents/agent-knowledge.service.js.map +1 -1
  116. package/dist/modules/agents/agent-model-catalog.service.d.ts +4 -1
  117. package/dist/modules/agents/agent-model-catalog.service.js +24 -13
  118. package/dist/modules/agents/agent-model-catalog.service.js.map +1 -1
  119. package/dist/modules/agents/agent-runtime-cache.service.d.ts +9 -1
  120. package/dist/modules/agents/agent-runtime-cache.service.js +50 -17
  121. package/dist/modules/agents/agent-runtime-cache.service.js.map +1 -1
  122. package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +11 -6
  123. package/dist/modules/agents/agent-runtime-reconstruction.service.js +35 -18
  124. package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
  125. package/dist/modules/agents/agent-sandbox-principal.d.ts +34 -0
  126. package/dist/modules/agents/agent-sandbox-principal.js +64 -0
  127. package/dist/modules/agents/agent-sandbox-principal.js.map +1 -0
  128. package/dist/modules/agents/agent-sandbox-runtime.service.d.ts +42 -0
  129. package/dist/modules/agents/agent-sandbox-runtime.service.js +290 -0
  130. package/dist/modules/agents/agent-sandbox-runtime.service.js.map +1 -0
  131. package/dist/modules/agents/agent-sandbox.controller.d.ts +3 -6
  132. package/dist/modules/agents/agent-sandbox.controller.js +6 -14
  133. package/dist/modules/agents/agent-sandbox.controller.js.map +1 -1
  134. package/dist/modules/agents/agent-session-langsmith-export.service.d.ts +27 -0
  135. package/dist/modules/agents/agent-session-langsmith-export.service.js +390 -0
  136. package/dist/modules/agents/agent-session-langsmith-export.service.js.map +1 -0
  137. package/dist/modules/agents/agent-skills.service.js +4 -0
  138. package/dist/modules/agents/agent-skills.service.js.map +1 -1
  139. package/dist/modules/agents/agent-slack-integrations.controller.d.ts +22 -2
  140. package/dist/modules/agents/agent-slack-integrations.controller.js +108 -9
  141. package/dist/modules/agents/agent-slack-integrations.controller.js.map +1 -1
  142. package/dist/modules/agents/agent-sse-stream.js +10 -3
  143. package/dist/modules/agents/agent-sse-stream.js.map +1 -1
  144. package/dist/modules/agents/agent-threads.controller.d.ts +8 -1
  145. package/dist/modules/agents/agent-threads.controller.js +20 -2
  146. package/dist/modules/agents/agent-threads.controller.js.map +1 -1
  147. package/dist/modules/agents/agent-validation.service.js +9 -0
  148. package/dist/modules/agents/agent-validation.service.js.map +1 -1
  149. package/dist/modules/agents/agent-workflow-execution.service.d.ts +8 -2
  150. package/dist/modules/agents/agent-workflow-execution.service.js +43 -7
  151. package/dist/modules/agents/agent-workflow-execution.service.js.map +1 -1
  152. package/dist/modules/agents/agent-workspace.service.d.ts +16 -0
  153. package/dist/modules/agents/agent-workspace.service.js +65 -0
  154. package/dist/modules/agents/agent-workspace.service.js.map +1 -0
  155. package/dist/modules/agents/agents.controller.d.ts +3 -1
  156. package/dist/modules/agents/agents.controller.js +6 -2
  157. package/dist/modules/agents/agents.controller.js.map +1 -1
  158. package/dist/modules/agents/agents.module.d.ts +1 -1
  159. package/dist/modules/agents/agents.module.js +6 -2
  160. package/dist/modules/agents/agents.module.js.map +1 -1
  161. package/dist/modules/agents/agents.service.d.ts +5 -1
  162. package/dist/modules/agents/agents.service.js +3 -2
  163. package/dist/modules/agents/agents.service.js.map +1 -1
  164. package/dist/modules/agents/builder/agents-builder-prompts.d.ts +3 -3
  165. package/dist/modules/agents/builder/agents-builder-prompts.js +23 -11
  166. package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
  167. package/dist/modules/agents/builder/agents-builder-settings.service.d.ts +3 -1
  168. package/dist/modules/agents/builder/agents-builder-settings.service.js +38 -29
  169. package/dist/modules/agents/builder/agents-builder-settings.service.js.map +1 -1
  170. package/dist/modules/agents/builder/agents-builder-tools.service.js +209 -2
  171. package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
  172. package/dist/modules/agents/builder/agents-builder.service.js +5 -2
  173. package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
  174. package/dist/modules/agents/builder/builder-model-live-lookup.service.js +1 -1
  175. package/dist/modules/agents/builder/builder-model-live-lookup.service.js.map +1 -1
  176. package/dist/modules/agents/builder/builder-tool-names.d.ts +5 -0
  177. package/dist/modules/agents/builder/builder-tool-names.js +5 -0
  178. package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
  179. package/dist/modules/agents/builder/format-preview-context.js +3 -0
  180. package/dist/modules/agents/builder/format-preview-context.js.map +1 -1
  181. package/dist/modules/agents/builder/interactive/ask-credential.tool.d.ts +1 -0
  182. package/dist/modules/agents/builder/interactive/ask-credential.tool.js +5 -2
  183. package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
  184. package/dist/modules/agents/builder/interactive/finish-setup.tool.js +1 -0
  185. package/dist/modules/agents/builder/interactive/finish-setup.tool.js.map +1 -1
  186. package/dist/modules/agents/builder/interactive/resolve-llm.tool.js +7 -3
  187. package/dist/modules/agents/builder/interactive/resolve-llm.tool.js.map +1 -1
  188. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +1 -1
  189. package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
  190. package/dist/modules/agents/builder/prompts/tools.prompt.js +11 -7
  191. package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -1
  192. package/dist/modules/agents/builder/resolve-integration.tool.js +1 -1
  193. package/dist/modules/agents/builder/resolve-integration.tool.js.map +1 -1
  194. package/dist/modules/agents/builder/skills/external-services.skill.js +13 -94
  195. package/dist/modules/agents/builder/skills/external-services.skill.js.map +1 -1
  196. package/dist/modules/agents/builder/skills/index.js +2 -0
  197. package/dist/modules/agents/builder/skills/index.js.map +1 -1
  198. package/dist/modules/agents/builder/skills/node-tools.skill.d.ts +2 -0
  199. package/dist/modules/agents/builder/skills/node-tools.skill.js +132 -0
  200. package/dist/modules/agents/builder/skills/node-tools.skill.js.map +1 -0
  201. package/dist/modules/agents/builder/skills/target-skills.skill.js +62 -21
  202. package/dist/modules/agents/builder/skills/target-skills.skill.js.map +1 -1
  203. package/dist/modules/agents/builder/skills/target-tasks.skill.js +34 -17
  204. package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
  205. package/dist/modules/agents/builder/task-objective-template.d.ts +2 -2
  206. package/dist/modules/agents/builder/task-objective-template.js +11 -9
  207. package/dist/modules/agents/builder/task-objective-template.js.map +1 -1
  208. package/dist/modules/agents/execution-recorder.d.ts +25 -0
  209. package/dist/modules/agents/execution-recorder.js +47 -0
  210. package/dist/modules/agents/execution-recorder.js.map +1 -1
  211. package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +3 -1
  212. package/dist/modules/agents/integrations/agent-chat-bridge.js +10 -2
  213. package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
  214. package/dist/modules/agents/integrations/agent-chat-integration.d.ts +10 -1
  215. package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
  216. package/dist/modules/agents/integrations/agent-chat-suspension-cards.d.ts +0 -1
  217. package/dist/modules/agents/integrations/agent-chat-suspension-cards.js +0 -24
  218. package/dist/modules/agents/integrations/agent-chat-suspension-cards.js.map +1 -1
  219. package/dist/modules/agents/integrations/chat-integration.service.d.ts +0 -1
  220. package/dist/modules/agents/integrations/chat-integration.service.js +1 -4
  221. package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
  222. package/dist/modules/agents/integrations/integration-tool-descriptions.js +1 -0
  223. package/dist/modules/agents/integrations/integration-tool-descriptions.js.map +1 -1
  224. package/dist/modules/agents/integrations/n8n-checkpoint-storage.d.ts +3 -0
  225. package/dist/modules/agents/integrations/n8n-checkpoint-storage.js +26 -1
  226. package/dist/modules/agents/integrations/n8n-checkpoint-storage.js.map +1 -1
  227. package/dist/modules/agents/integrations/platforms/slack/assets/n8n-bot-icon.png +0 -0
  228. package/dist/modules/agents/integrations/platforms/slack/slack-integration.d.ts +5 -4
  229. package/dist/modules/agents/integrations/platforms/slack/slack-integration.js +5 -3
  230. package/dist/modules/agents/integrations/platforms/slack/slack-integration.js.map +1 -1
  231. package/dist/modules/agents/integrations/platforms/slack/slack-managed-setup.service.d.ts +78 -0
  232. package/dist/modules/agents/integrations/platforms/slack/slack-managed-setup.service.js +620 -0
  233. package/dist/modules/agents/integrations/platforms/slack/slack-managed-setup.service.js.map +1 -0
  234. package/dist/modules/agents/integrations/platforms/slack/slack-manual-setup.service.d.ts +6 -6
  235. package/dist/modules/agents/integrations/platforms/slack/slack-manual-setup.service.js +31 -24
  236. package/dist/modules/agents/integrations/platforms/slack/slack-manual-setup.service.js.map +1 -1
  237. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.d.ts +19 -10
  238. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js +85 -54
  239. package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js.map +1 -1
  240. package/dist/modules/agents/integrations/platforms/slack/slack-setup.types.d.ts +16 -0
  241. package/dist/modules/agents/integrations/platforms/slack/slack-setup.types.js +36 -0
  242. package/dist/modules/agents/integrations/platforms/slack/slack-setup.types.js.map +1 -0
  243. package/dist/modules/agents/json-config/from-json-config.d.ts +2 -2
  244. package/dist/modules/agents/json-config/from-json-config.js +5 -0
  245. package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
  246. package/dist/modules/agents/json-config/mcp-client-factory.js +17 -12
  247. package/dist/modules/agents/json-config/mcp-client-factory.js.map +1 -1
  248. package/dist/modules/agents/llm-provider-defaults.js +8 -8
  249. package/dist/modules/agents/llm-provider-defaults.js.map +1 -1
  250. package/dist/modules/agents/register-favorite-resolver.d.ts +1 -0
  251. package/dist/modules/agents/register-favorite-resolver.js +18 -0
  252. package/dist/modules/agents/register-favorite-resolver.js.map +1 -0
  253. package/dist/modules/agents/repositories/agent-checkpoint.repository.d.ts +1 -0
  254. package/dist/modules/agents/repositories/agent-checkpoint.repository.js +7 -0
  255. package/dist/modules/agents/repositories/agent-checkpoint.repository.js.map +1 -1
  256. package/dist/modules/agents/repositories/agent-credential-dependency.repository.js +1 -1
  257. package/dist/modules/agents/repositories/agent-credential-dependency.repository.js.map +1 -1
  258. package/dist/modules/agents/repositories/agent-execution-thread.repository.d.ts +1 -0
  259. package/dist/modules/agents/repositories/agent-execution-thread.repository.js +6 -0
  260. package/dist/modules/agents/repositories/agent-execution-thread.repository.js.map +1 -1
  261. package/dist/modules/agents/repositories/agent.repository.d.ts +4 -1
  262. package/dist/modules/agents/repositories/agent.repository.js +14 -0
  263. package/dist/modules/agents/repositories/agent.repository.js.map +1 -1
  264. package/dist/modules/agents/runtime/agent-secure-runtime.d.ts +2 -0
  265. package/dist/modules/agents/runtime/agent-secure-runtime.js +72 -30
  266. package/dist/modules/agents/runtime/agent-secure-runtime.js.map +1 -1
  267. package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js +5 -0
  268. package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js.map +1 -1
  269. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.d.ts +1 -0
  270. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js +33 -0
  271. package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +1 -1
  272. package/dist/modules/agents/tools/input-data-tool.js +2 -1
  273. package/dist/modules/agents/tools/input-data-tool.js.map +1 -1
  274. package/dist/modules/agents/tools/knowledge/search-knowledge.tool.d.ts +3 -3
  275. package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js +4 -4
  276. package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js.map +1 -1
  277. package/dist/modules/agents/tools/workflow-tool-factory.js +11 -70
  278. package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
  279. package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.d.ts +2 -6
  280. package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js +6 -25
  281. package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js.map +1 -1
  282. package/dist/modules/agents/utils/execution-to-message-mapper.js +9 -0
  283. package/dist/modules/agents/utils/execution-to-message-mapper.js.map +1 -1
  284. package/dist/modules/agents/utils/model-snapshot-alias.d.ts +2 -0
  285. package/dist/modules/agents/utils/model-snapshot-alias.js +9 -0
  286. package/dist/modules/agents/utils/model-snapshot-alias.js.map +1 -0
  287. package/dist/modules/agents/utils/node-tool-validation.d.ts +6 -0
  288. package/dist/modules/agents/utils/node-tool-validation.js +28 -0
  289. package/dist/modules/agents/utils/node-tool-validation.js.map +1 -1
  290. package/dist/modules/data-table/data-table-proxy.service.d.ts +3 -3
  291. package/dist/modules/data-table/data-table-proxy.service.js +5 -6
  292. package/dist/modules/data-table/data-table-proxy.service.js.map +1 -1
  293. package/dist/modules/data-table/data-table.controller.d.ts +3 -3
  294. package/dist/modules/data-table/data-table.controller.js +5 -6
  295. package/dist/modules/data-table/data-table.controller.js.map +1 -1
  296. package/dist/modules/data-table/data-table.module.js +2 -0
  297. package/dist/modules/data-table/data-table.module.js.map +1 -1
  298. package/dist/modules/data-table/data-table.repository.d.ts +1 -1
  299. package/dist/modules/data-table/data-table.repository.js +10 -6
  300. package/dist/modules/data-table/data-table.repository.js.map +1 -1
  301. package/dist/modules/data-table/middleware/branch-write-access-middleware.js +2 -3
  302. package/dist/modules/data-table/middleware/branch-write-access-middleware.js.map +1 -1
  303. package/dist/modules/data-table/register-favorite-resolver.d.ts +1 -0
  304. package/dist/modules/data-table/register-favorite-resolver.js +18 -0
  305. package/dist/modules/data-table/register-favorite-resolver.js.map +1 -0
  306. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.d.ts +52 -0
  307. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js +25 -7
  308. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
  309. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +1 -1
  310. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
  311. package/dist/modules/dynamic-credentials.ee/errors/n8n-identity-not-supported.error.d.ts +4 -0
  312. package/dist/modules/dynamic-credentials.ee/errors/n8n-identity-not-supported.error.js +12 -0
  313. package/dist/modules/dynamic-credentials.ee/errors/n8n-identity-not-supported.error.js.map +1 -0
  314. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +8 -1
  315. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +49 -2
  316. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -1
  317. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.d.ts +8 -3
  318. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +29 -6
  319. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
  320. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +3 -0
  321. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
  322. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-web.service.d.ts +3 -1
  323. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-web.service.js +9 -12
  324. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-web.service.js.map +1 -1
  325. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +11 -0
  326. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
  327. package/dist/modules/favorites/favorite-resource-resolver.registry.d.ts +17 -0
  328. package/dist/modules/favorites/favorite-resource-resolver.registry.js +26 -0
  329. package/dist/modules/favorites/favorite-resource-resolver.registry.js.map +1 -0
  330. package/dist/modules/favorites/favorites.service.d.ts +4 -7
  331. package/dist/modules/favorites/favorites.service.js +18 -34
  332. package/dist/modules/favorites/favorites.service.js.map +1 -1
  333. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +0 -1
  334. package/dist/modules/insights/database/repositories/insights-by-period.repository.js +1 -5
  335. package/dist/modules/insights/database/repositories/insights-by-period.repository.js.map +1 -1
  336. package/dist/modules/instance-ai/canvas-node-context-flag-gate.d.ts +7 -0
  337. package/dist/modules/instance-ai/canvas-node-context-flag-gate.js +35 -0
  338. package/dist/modules/instance-ai/canvas-node-context-flag-gate.js.map +1 -0
  339. package/dist/modules/instance-ai/drop-rejected-attachments.d.ts +18 -0
  340. package/dist/modules/instance-ai/drop-rejected-attachments.js +49 -0
  341. package/dist/modules/instance-ai/drop-rejected-attachments.js.map +1 -0
  342. package/dist/modules/instance-ai/eval/agent-execution.service.js +2 -1
  343. package/dist/modules/instance-ai/eval/agent-execution.service.js.map +1 -1
  344. package/dist/modules/instance-ai/instance-ai-error-reporter.service.d.ts +1 -0
  345. package/dist/modules/instance-ai/instance-ai-error-reporter.service.js +9 -0
  346. package/dist/modules/instance-ai/instance-ai-error-reporter.service.js.map +1 -1
  347. package/dist/modules/instance-ai/instance-ai-model.service.d.ts +3 -3
  348. package/dist/modules/instance-ai/instance-ai-model.service.js +15 -21
  349. package/dist/modules/instance-ai/instance-ai-model.service.js.map +1 -1
  350. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +9 -4
  351. package/dist/modules/instance-ai/instance-ai-settings.service.js +119 -98
  352. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  353. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.d.ts +4 -0
  354. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +11 -0
  355. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js.map +1 -1
  356. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +16 -14
  357. package/dist/modules/instance-ai/instance-ai.adapter.service.js +143 -79
  358. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  359. package/dist/modules/instance-ai/instance-ai.controller.js +9 -0
  360. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  361. package/dist/modules/instance-ai/instance-ai.module.js +3 -3
  362. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  363. package/dist/modules/instance-ai/instance-ai.service.d.ts +19 -6
  364. package/dist/modules/instance-ai/instance-ai.service.js +288 -27
  365. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  366. package/dist/modules/instance-ai/internal-messages.js +1 -1
  367. package/dist/modules/instance-ai/internal-messages.js.map +1 -1
  368. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.d.ts +1 -0
  369. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js +3 -0
  370. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js.map +1 -1
  371. package/dist/modules/instance-ai/stream-transport-error.d.ts +1 -0
  372. package/dist/modules/instance-ai/stream-transport-error.js +9 -0
  373. package/dist/modules/instance-ai/stream-transport-error.js.map +1 -0
  374. package/dist/modules/instance-ai/workflow-verification-task-projector.js +4 -1
  375. package/dist/modules/instance-ai/workflow-verification-task-projector.js.map +1 -1
  376. package/dist/modules/mcp/dto/update-mcp-settings.dto.d.ts +32 -2
  377. package/dist/modules/mcp/dto/update-mcp-settings.dto.js +17 -3
  378. package/dist/modules/mcp/dto/update-mcp-settings.dto.js.map +1 -1
  379. package/dist/modules/mcp/mcp-protected-resource.d.ts +3 -2
  380. package/dist/modules/mcp/mcp-protected-resource.js +6 -3
  381. package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
  382. package/dist/modules/mcp/mcp-scopes.d.ts +1 -0
  383. package/dist/modules/mcp/mcp-scopes.js +12 -2
  384. package/dist/modules/mcp/mcp-scopes.js.map +1 -1
  385. package/dist/modules/mcp/mcp.controller.js +1 -1
  386. package/dist/modules/mcp/mcp.controller.js.map +1 -1
  387. package/dist/modules/mcp/mcp.module.d.ts +1 -0
  388. package/dist/modules/mcp/mcp.module.js +4 -2
  389. package/dist/modules/mcp/mcp.module.js.map +1 -1
  390. package/dist/modules/mcp/mcp.service.d.ts +6 -3
  391. package/dist/modules/mcp/mcp.service.js +24 -5
  392. package/dist/modules/mcp/mcp.service.js.map +1 -1
  393. package/dist/modules/mcp/mcp.settings.controller.d.ts +2 -0
  394. package/dist/modules/mcp/mcp.settings.controller.js +24 -10
  395. package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
  396. package/dist/modules/mcp/mcp.settings.service.d.ts +4 -3
  397. package/dist/modules/mcp/mcp.settings.service.js +20 -2
  398. package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
  399. package/dist/modules/mcp/mcp.types.d.ts +4 -3
  400. package/dist/modules/mcp/mcp.utils.d.ts +4 -1
  401. package/dist/modules/mcp/mcp.utils.js +14 -4
  402. package/dist/modules/mcp/mcp.utils.js.map +1 -1
  403. package/dist/modules/mcp/tools/agents/agent-tools.service.js +10 -1
  404. package/dist/modules/mcp/tools/agents/agent-tools.service.js.map +1 -1
  405. package/dist/modules/mcp/tools/create-folder.tool.d.ts +13 -0
  406. package/dist/modules/mcp/tools/create-folder.tool.js +68 -0
  407. package/dist/modules/mcp/tools/create-folder.tool.js.map +1 -0
  408. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js +1 -1
  409. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js.map +1 -1
  410. package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.d.ts +44 -0
  411. package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.js +134 -0
  412. package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.js.map +1 -0
  413. package/dist/modules/mcp/tools/data-table/index.d.ts +1 -0
  414. package/dist/modules/mcp/tools/data-table/index.js +3 -1
  415. package/dist/modules/mcp/tools/data-table/index.js.map +1 -1
  416. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +11 -21
  417. package/dist/modules/mcp/tools/execute-workflow.tool.js +113 -76
  418. package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -1
  419. package/dist/modules/mcp/tools/folder-error.utils.d.ts +13 -0
  420. package/dist/modules/mcp/tools/folder-error.utils.js +25 -0
  421. package/dist/modules/mcp/tools/folder-error.utils.js.map +1 -0
  422. package/dist/modules/mcp/tools/get-workflow-details.tool.js +1 -1
  423. package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
  424. package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.d.ts +81 -0
  425. package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.js +218 -0
  426. package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.js.map +1 -0
  427. package/dist/modules/mcp/tools/move-workflows-to-folder.tool.d.ts +13 -0
  428. package/dist/modules/mcp/tools/move-workflows-to-folder.tool.js +122 -0
  429. package/dist/modules/mcp/tools/move-workflows-to-folder.tool.js.map +1 -0
  430. package/dist/modules/mcp/tools/schemas.d.ts +7 -0
  431. package/dist/modules/mcp/tools/schemas.js +15 -1
  432. package/dist/modules/mcp/tools/schemas.js.map +1 -1
  433. package/dist/modules/mcp/tools/search-folders.tool.d.ts +3 -2
  434. package/dist/modules/mcp/tools/search-folders.tool.js +14 -8
  435. package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -1
  436. package/dist/modules/mcp/tools/test-workflow.tool.js +10 -18
  437. package/dist/modules/mcp/tools/test-workflow.tool.js.map +1 -1
  438. package/dist/modules/mcp/tools/update-folder.tool.d.ts +14 -0
  439. package/dist/modules/mcp/tools/update-folder.tool.js +74 -0
  440. package/dist/modules/mcp/tools/update-folder.tool.js.map +1 -0
  441. package/dist/modules/mcp/tools/webhook-utils.js +6 -4
  442. package/dist/modules/mcp/tools/webhook-utils.js.map +1 -1
  443. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +18 -5
  444. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  445. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +4 -4
  446. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +467 -397
  447. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  448. package/dist/modules/mcp/tools/workflow-inputs.d.ts +111 -0
  449. package/dist/modules/mcp/tools/workflow-inputs.js +81 -0
  450. package/dist/modules/mcp/tools/workflow-inputs.js.map +1 -0
  451. package/dist/modules/mcp/tools/workflow-validation.utils.d.ts +2 -0
  452. package/dist/modules/mcp/tools/workflow-validation.utils.js +7 -6
  453. package/dist/modules/mcp/tools/workflow-validation.utils.js.map +1 -1
  454. package/dist/modules/mcp-registry/registry/mcp-registry.service.d.ts +1 -0
  455. package/dist/modules/mcp-registry/registry/mcp-registry.service.js +4 -0
  456. package/dist/modules/mcp-registry/registry/mcp-registry.service.js.map +1 -1
  457. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js +4 -2
  458. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js.map +1 -1
  459. package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js +13 -9
  460. package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js.map +1 -1
  461. package/dist/modules/n8n-packages/entities/folder/folder.exporter.d.ts +2 -0
  462. package/dist/modules/n8n-packages/entities/folder/folder.exporter.js +1 -0
  463. package/dist/modules/n8n-packages/entities/folder/folder.exporter.js.map +1 -1
  464. package/dist/modules/n8n-packages/entities/folder/folder.serializer.js +4 -2
  465. package/dist/modules/n8n-packages/entities/folder/folder.serializer.js.map +1 -1
  466. package/dist/modules/n8n-packages/entities/package-serialization.types.d.ts +17 -0
  467. package/dist/modules/n8n-packages/entities/package-serialization.types.js +7 -0
  468. package/dist/modules/n8n-packages/entities/package-serialization.types.js.map +1 -0
  469. package/dist/modules/n8n-packages/entities/project/project.exporter.d.ts +2 -0
  470. package/dist/modules/n8n-packages/entities/project/project.exporter.js +2 -0
  471. package/dist/modules/n8n-packages/entities/project/project.exporter.js.map +1 -1
  472. package/dist/modules/n8n-packages/entities/project/project.serializer.js +4 -2
  473. package/dist/modules/n8n-packages/entities/project/project.serializer.js.map +1 -1
  474. package/dist/modules/n8n-packages/entities/tag/tag.exporter.js +3 -1
  475. package/dist/modules/n8n-packages/entities/tag/tag.exporter.js.map +1 -1
  476. package/dist/modules/n8n-packages/entities/variable/variable.serializer.js +6 -3
  477. package/dist/modules/n8n-packages/entities/variable/variable.serializer.js.map +1 -1
  478. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.d.ts +2 -0
  479. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js +21 -4
  480. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js.map +1 -1
  481. package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.d.ts +2 -0
  482. package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.js +4 -1
  483. package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.js.map +1 -1
  484. package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.d.ts +4 -0
  485. package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.js +48 -0
  486. package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.js.map +1 -0
  487. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.d.ts +2 -0
  488. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +7 -2
  489. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
  490. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +5 -3
  491. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -1
  492. package/dist/modules/n8n-packages/n8n-packages.service.js +6 -0
  493. package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
  494. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +8 -0
  495. package/dist/modules/n8n-packages/n8n-packages.types.js +7 -1
  496. package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
  497. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.d.ts +2 -2
  498. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js +3 -3
  499. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js.map +1 -1
  500. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.d.ts +2 -2
  501. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js +3 -3
  502. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -1
  503. package/dist/modules/oauth-server/oauth-consent.controller.js +2 -0
  504. package/dist/modules/oauth-server/oauth-consent.controller.js.map +1 -1
  505. package/dist/modules/oauth-server/oauth-consent.service.d.ts +8 -1
  506. package/dist/modules/oauth-server/oauth-consent.service.js +33 -0
  507. package/dist/modules/oauth-server/oauth-consent.service.js.map +1 -1
  508. package/dist/modules/oauth-server/oauth-server.service.d.ts +6 -1
  509. package/dist/modules/oauth-server/oauth-server.service.js +36 -4
  510. package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
  511. package/dist/modules/oauth-server/oauth-token.service.d.ts +6 -2
  512. package/dist/modules/oauth-server/oauth-token.service.js +19 -7
  513. package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
  514. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.d.ts +7 -3
  515. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js +8 -7
  516. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js.map +1 -1
  517. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.d.ts +6 -3
  518. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js +8 -7
  519. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js.map +1 -1
  520. package/dist/modules/oauth-server/protected-resource-resolvers/utils.d.ts +2 -0
  521. package/dist/modules/oauth-server/protected-resource-resolvers/utils.js +5 -1
  522. package/dist/modules/oauth-server/protected-resource-resolvers/utils.js.map +1 -1
  523. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.d.ts +4 -3
  524. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js +7 -7
  525. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js.map +1 -1
  526. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.d.ts +5 -3
  527. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js +7 -7
  528. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js.map +1 -1
  529. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-test-trigger-resource.resolver.js +7 -11
  530. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-test-trigger-resource.resolver.js.map +1 -1
  531. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-trigger-resource.resolver.js +7 -11
  532. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-trigger-resource.resolver.js.map +1 -1
  533. package/dist/modules/oauth-server/resource-gate.d.ts +6 -0
  534. package/dist/modules/oauth-server/resource-gate.js +17 -0
  535. package/dist/modules/oauth-server/resource-gate.js.map +1 -0
  536. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js +1 -9
  537. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js.map +1 -1
  538. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +5 -2
  539. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +14 -4
  540. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
  541. package/dist/modules/source-control.ee/source-control-preferences.service.ee.d.ts +3 -1
  542. package/dist/modules/source-control.ee/source-control-preferences.service.ee.js +5 -2
  543. package/dist/modules/source-control.ee/source-control-preferences.service.ee.js.map +1 -1
  544. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.d.ts +27 -0
  545. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js +108 -0
  546. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js.map +1 -0
  547. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.d.ts +23 -0
  548. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js +99 -0
  549. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js.map +1 -0
  550. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.d.ts +4 -2
  551. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js +30 -11
  552. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js.map +1 -1
  553. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.d.ts +18 -0
  554. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js +77 -0
  555. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js.map +1 -0
  556. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.d.ts +8 -11
  557. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js +52 -71
  558. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js.map +1 -1
  559. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +6 -4
  560. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +157 -40
  561. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +1 -1
  562. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.d.ts +6 -2
  563. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js +30 -2
  564. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js.map +1 -1
  565. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.d.ts +4 -2
  566. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js +69 -0
  567. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js.map +1 -1
  568. package/dist/oauth/account-identifier.d.ts +2 -0
  569. package/dist/oauth/account-identifier.js +38 -0
  570. package/dist/oauth/account-identifier.js.map +1 -0
  571. package/dist/oauth/oauth.service.d.ts +0 -1
  572. package/dist/oauth/oauth.service.js +7 -39
  573. package/dist/oauth/oauth.service.js.map +1 -1
  574. package/dist/posthog/index.js +3 -0
  575. package/dist/posthog/index.js.map +1 -1
  576. package/dist/public-api/index.d.ts +1 -1
  577. package/dist/public-api/index.js +8 -4
  578. package/dist/public-api/index.js.map +1 -1
  579. package/dist/public-api/types.d.ts +0 -16
  580. package/dist/public-api/v1/controllers/index.d.ts +1 -0
  581. package/dist/public-api/v1/controllers/index.js +1 -0
  582. package/dist/public-api/v1/controllers/index.js.map +1 -1
  583. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.d.ts +11 -0
  584. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js +61 -0
  585. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js.map +1 -0
  586. package/dist/public-api/v1/controllers/roles.public.controller.d.ts +4 -1
  587. package/dist/public-api/v1/controllers/roles.public.controller.js +95 -10
  588. package/dist/public-api/v1/controllers/roles.public.controller.js.map +1 -1
  589. package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +11 -2
  590. package/dist/public-api/v1/controllers/workflows.public.controller.js +159 -3
  591. package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -1
  592. package/dist/public-api/v1/handlers/credentials/credentials.handler.js +111 -43
  593. package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
  594. package/dist/public-api/v1/handlers/credentials/credentials.middleware.js +13 -6
  595. package/dist/public-api/v1/handlers/credentials/credentials.middleware.js.map +1 -1
  596. package/dist/public-api/v1/handlers/credentials/credentials.utils.d.ts +12 -0
  597. package/dist/public-api/v1/handlers/credentials/credentials.utils.js +182 -0
  598. package/dist/public-api/v1/handlers/credentials/credentials.utils.js.map +1 -0
  599. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.d.ts +1 -0
  600. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +1 -0
  601. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
  602. package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +0 -3
  603. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +0 -76
  604. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  605. package/dist/public-api/v1/openapi.yml +678 -126
  606. package/dist/public-api/v1/public-api-error-response.d.ts +2 -1
  607. package/dist/public-api/v1/public-api-error-response.js +2 -2
  608. package/dist/public-api/v1/public-api-error-response.js.map +1 -1
  609. package/dist/scaling/constants.js +1 -0
  610. package/dist/scaling/constants.js.map +1 -1
  611. package/dist/scaling/job-processor.js +15 -11
  612. package/dist/scaling/job-processor.js.map +1 -1
  613. package/dist/scaling/scaling.types.d.ts +2 -1
  614. package/dist/scheduling/durable-job-provisioner.d.ts +3 -2
  615. package/dist/scheduling/durable-job-provisioner.js +42 -8
  616. package/dist/scheduling/durable-job-provisioner.js.map +1 -1
  617. package/dist/scheduling/durable-scheduler.js +5 -1
  618. package/dist/scheduling/durable-scheduler.js.map +1 -1
  619. package/dist/scheduling/owner-key.d.ts +14 -0
  620. package/dist/scheduling/owner-key.js +17 -0
  621. package/dist/scheduling/owner-key.js.map +1 -0
  622. package/dist/scheduling/poll-trigger-node/poll-job-provider.d.ts +3 -1
  623. package/dist/scheduling/poll-trigger-node/poll-job-provider.js +7 -3
  624. package/dist/scheduling/poll-trigger-node/poll-job-provider.js.map +1 -1
  625. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.d.ts +5 -2
  626. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +60 -33
  627. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -1
  628. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js +35 -6
  629. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js.map +1 -1
  630. package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
  631. package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
  632. package/dist/server.js +8 -9
  633. package/dist/server.js.map +1 -1
  634. package/dist/services/ai-gateway.service.d.ts +3 -7
  635. package/dist/services/ai-gateway.service.js +31 -8
  636. package/dist/services/ai-gateway.service.js.map +1 -1
  637. package/dist/services/api-key-auth.strategy.js +3 -0
  638. package/dist/services/api-key-auth.strategy.js.map +1 -1
  639. package/dist/services/dynamic-node-parameters.service.d.ts +4 -2
  640. package/dist/services/dynamic-node-parameters.service.js +17 -3
  641. package/dist/services/dynamic-node-parameters.service.js.map +1 -1
  642. package/dist/services/folder.service.d.ts +1 -1
  643. package/dist/services/folder.service.js.map +1 -1
  644. package/dist/services/frontend.service.js +2 -1
  645. package/dist/services/frontend.service.js.map +1 -1
  646. package/dist/services/instance-write-access.service.d.ts +5 -0
  647. package/dist/services/instance-write-access.service.js +26 -0
  648. package/dist/services/instance-write-access.service.js.map +1 -0
  649. package/dist/services/oauth-token-verifier-proxy.service.d.ts +4 -2
  650. package/dist/services/oauth-token-verifier-proxy.service.js +2 -2
  651. package/dist/services/oauth-token-verifier-proxy.service.js.map +1 -1
  652. package/dist/services/ownership-transfer/ownership-transfer.manifest.json +1 -1
  653. package/dist/services/project.service.ee.js +12 -5
  654. package/dist/services/project.service.ee.js.map +1 -1
  655. package/dist/services/protected-resource.registry.d.ts +4 -0
  656. package/dist/services/protected-resource.registry.js.map +1 -1
  657. package/dist/services/pruning/workflow-history-compaction.service.js +9 -6
  658. package/dist/services/pruning/workflow-history-compaction.service.js.map +1 -1
  659. package/dist/services/role.service.d.ts +13 -3
  660. package/dist/services/role.service.js +13 -5
  661. package/dist/services/role.service.js.map +1 -1
  662. package/dist/services/sandbox-settings.service.d.ts +29 -0
  663. package/dist/services/sandbox-settings.service.js +144 -0
  664. package/dist/services/sandbox-settings.service.js.map +1 -0
  665. package/dist/services/session-cookie-auth.strategy.d.ts +11 -0
  666. package/dist/services/session-cookie-auth.strategy.js +61 -0
  667. package/dist/services/session-cookie-auth.strategy.js.map +1 -0
  668. package/dist/utils/ai-proxy-language-model.d.ts +13 -0
  669. package/dist/utils/ai-proxy-language-model.js +48 -0
  670. package/dist/utils/ai-proxy-language-model.js.map +1 -0
  671. package/dist/utils/ttl-map.d.ts +3 -1
  672. package/dist/utils/ttl-map.js +13 -17
  673. package/dist/utils/ttl-map.js.map +1 -1
  674. package/dist/webhooks/webhook-helpers.js +12 -2
  675. package/dist/webhooks/webhook-helpers.js.map +1 -1
  676. package/dist/workflow-execute-additional-data.js +17 -1
  677. package/dist/workflow-execute-additional-data.js.map +1 -1
  678. package/dist/workflow-runner.d.ts +4 -1
  679. package/dist/workflow-runner.js +6 -1
  680. package/dist/workflow-runner.js.map +1 -1
  681. package/dist/workflows/publication/trigger-diff.js +10 -1
  682. package/dist/workflows/publication/trigger-diff.js.map +1 -1
  683. package/dist/workflows/publication/workflow-publication-outbox-consumer.d.ts +3 -4
  684. package/dist/workflows/publication/workflow-publication-outbox-consumer.js +46 -50
  685. package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -1
  686. package/dist/workflows/publication/workflow-publication-outbox-worker-pool.d.ts +16 -0
  687. package/dist/workflows/publication/workflow-publication-outbox-worker-pool.js +50 -0
  688. package/dist/workflows/publication/workflow-publication-outbox-worker-pool.js.map +1 -0
  689. package/dist/workflows/triggers/durable-poller-gate.service.d.ts +19 -0
  690. package/dist/workflows/triggers/durable-poller-gate.service.js +78 -0
  691. package/dist/workflows/triggers/durable-poller-gate.service.js.map +1 -0
  692. package/dist/workflows/triggers/enabled-trigger-nodes.d.ts +6 -0
  693. package/dist/workflows/triggers/enabled-trigger-nodes.js +18 -0
  694. package/dist/workflows/triggers/enabled-trigger-nodes.js.map +1 -0
  695. package/dist/workflows/triggers/poll-cursor.service.d.ts +39 -0
  696. package/dist/workflows/triggers/poll-cursor.service.js +100 -0
  697. package/dist/workflows/triggers/poll-cursor.service.js.map +1 -0
  698. package/dist/workflows/triggers/trigger-execution-context.factory.d.ts +6 -4
  699. package/dist/workflows/triggers/trigger-execution-context.factory.js +56 -7
  700. package/dist/workflows/triggers/trigger-execution-context.factory.js.map +1 -1
  701. package/dist/workflows/triggers/workflow-trigger-activator.d.ts +3 -5
  702. package/dist/workflows/triggers/workflow-trigger-activator.js +2 -11
  703. package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
  704. package/dist/workflows/workflow-creation.service.d.ts +4 -1
  705. package/dist/workflows/workflow-creation.service.js +20 -2
  706. package/dist/workflows/workflow-creation.service.js.map +1 -1
  707. package/dist/workflows/workflow-entity-mapper.js.map +1 -1
  708. package/dist/workflows/workflow-execution.service.d.ts +9 -4
  709. package/dist/workflows/workflow-execution.service.js +93 -2
  710. package/dist/workflows/workflow-execution.service.js.map +1 -1
  711. package/dist/workflows/workflow-finder.service.d.ts +1 -0
  712. package/dist/workflows/workflow-finder.service.js +5 -1
  713. package/dist/workflows/workflow-finder.service.js.map +1 -1
  714. package/dist/workflows/workflow-validation.service.d.ts +1 -0
  715. package/dist/workflows/workflow-validation.service.js +32 -11
  716. package/dist/workflows/workflow-validation.service.js.map +1 -1
  717. package/dist/workflows/workflow.service.d.ts +1 -0
  718. package/dist/workflows/workflow.service.js +18 -4
  719. package/dist/workflows/workflow.service.js.map +1 -1
  720. package/package.json +42 -41
  721. package/templates/form-shell.handlebars +155 -86
  722. package/templates/form-trigger.handlebars +97 -2
  723. package/dist/modules/agents/agent-knowledge-gate.d.ts +0 -2
  724. package/dist/modules/agents/agent-knowledge-gate.js +0 -7
  725. package/dist/modules/agents/agent-knowledge-gate.js.map +0 -1
  726. package/dist/modules/agents/agent-knowledge-sandbox.service.js +0 -693
  727. package/dist/modules/agents/agent-knowledge-sandbox.service.js.map +0 -1
  728. package/dist/modules/workflow-reviews.ee/workflow-review-decision-eligibility.service.d.ts +0 -15
  729. package/dist/modules/workflow-reviews.ee/workflow-review-decision-eligibility.service.js +0 -52
  730. package/dist/modules/workflow-reviews.ee/workflow-review-decision-eligibility.service.js.map +0 -1
  731. package/dist/public-api/v1/handlers/credentials/credentials.service.d.ts +0 -36
  732. package/dist/public-api/v1/handlers/credentials/credentials.service.js +0 -330
  733. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +0 -1
@@ -29,136 +29,158 @@
29
29
  --color-icon-text: #6a5bdd;
30
30
  --border-radius-card: 8px;
31
31
  --border-radius-input: 6px;
32
- --container-width: 480px;
32
+ /* Matches the form card's own --container-width so the panel and the card
33
+ line up edge to edge; the narrow-viewport rule below mirrors the form's. */
34
+ --container-width: 448px;
33
35
  --box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);
34
36
  --box-shadow-dialog: 0px 12px 48px rgba(0, 0, 0, 0.18);
35
37
  }
36
38
  *, ::before, ::after { box-sizing: border-box; margin: 0; padding: 0; }
37
39
  body { font-family: var(--font-family); background: var(--color-background); min-height: 100vh; }
38
40
  .shell { width: 100%; padding-top: 24px; }
39
- /* Aligned to the form card's width, which centers itself in the iframe below. */
40
- .req-card, .req-strip { width: var(--container-width); max-width: calc(100vw - 32px); margin: 0 auto 16px; }
41
+ .req-card, .req-summary { width: var(--container-width); margin: 0 auto 16px; }
41
42
 
42
- /* --- Required-credentials card (1–2 credentials, inline) --- */
43
+ /* --- Single-account panel: the credential row connects directly --- */
43
44
  .req-card {
44
45
  background: var(--color-card-bg);
45
46
  border: 1px solid var(--color-card-border);
46
47
  border-radius: var(--border-radius-card);
47
48
  box-shadow: var(--box-shadow-card);
48
- padding: 20px;
49
+ padding: 8px 20px;
49
50
  }
50
- .req-title { font-size: 15px; font-weight: 600; color: var(--color-header); }
51
- .req-sub { font-size: 13px; color: var(--color-muted); margin-top: 4px; margin-bottom: 14px; }
52
51
 
53
- /* --- Compact strip (3+ credentials) --- */
54
- .req-strip {
52
+ /* --- Summary line (two or more accounts, details behind the dialog) --- */
53
+ .req-summary {
55
54
  display: flex;
56
55
  align-items: center;
57
- gap: 14px;
56
+ gap: 12px;
58
57
  background: var(--color-card-bg);
59
58
  border: 1px solid var(--color-card-border);
60
59
  border-radius: var(--border-radius-card);
61
60
  box-shadow: var(--box-shadow-card);
62
- padding: 16px 18px;
61
+ padding: 14px 18px;
63
62
  }
64
- .stack { display: flex; align-items: center; }
65
- .stack .cred-icon { margin-right: -8px; border: 2px solid var(--color-card-bg); }
66
- .stack .more {
67
- width: 28px; height: 28px; border-radius: 6px; border: 2px solid var(--color-card-bg);
68
- background: #eceafd; color: var(--color-icon-text);
69
- font-size: 11px; font-weight: 600; display: flex; align-items: center; justify-content: center;
70
- }
71
- .strip-meta { flex: 1; min-width: 0; }
72
- .strip-title { font-size: 14px; font-weight: 600; color: var(--color-header); }
73
- .strip-count { font-size: 13px; color: var(--color-muted); margin-top: 2px; }
63
+ .summary-icon { display: flex; flex-shrink: 0; color: var(--color-muted); }
64
+ .summary-icon svg { display: block; }
65
+ .summary-icon .icon-ok, .req-summary.all-connected .summary-icon .icon-pending { display: none; }
66
+ .req-summary.all-connected .summary-icon { color: var(--color-ok); }
67
+ .req-summary.all-connected .summary-icon .icon-ok { display: block; }
68
+ .summary-text { flex: 1; min-width: 0; font-size: 13px; color: var(--color-header); }
74
69
 
75
- /* --- Credential row (shared by card + dialog) --- */
70
+ /* --- Credential row (shared by the single-account panel + dialog) --- */
76
71
  .cred-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
77
- .req-card .cred-row + .cred-row,
78
- .dialog .cred-row + .cred-row { border-top: 1px solid #f0f1f4; }
79
72
  .cred-icon {
80
73
  width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
81
74
  background: var(--color-icon-bg); color: var(--color-icon-text);
82
75
  font-size: 13px; font-weight: 600; display: flex; align-items: center; justify-content: center;
83
76
  }
77
+ /* Provider icon, served unauthenticated from /icons/** on this same origin. */
78
+ img.cred-icon { background: none; object-fit: contain; }
84
79
  .cred-meta { flex: 1; min-width: 0; }
85
80
  .cred-name { display: block; font-size: 14px; font-weight: 600; color: var(--color-label); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
81
+ /* Stays muted when connected — the green lives on the row's control, not the copy. */
86
82
  .cred-sub { display: block; font-size: 12px; color: var(--color-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
87
- .cred-sub.connected { color: var(--color-ok); }
88
83
 
89
84
  /* --- Buttons --- */
90
85
  .btn {
91
86
  font-family: var(--font-family); font-size: 13px; font-weight: 600;
92
87
  padding: 8px 16px; border-radius: var(--border-radius-input); border: 1px solid transparent; cursor: pointer;
88
+ flex-shrink: 0;
93
89
  }
94
90
  .btn-primary { background: var(--color-primary); color: var(--color-primary-text); }
95
91
  .btn-primary:hover { opacity: 0.88; }
96
92
  .btn-secondary { background: var(--color-card-bg); color: var(--color-label); border-color: var(--color-card-border); }
97
93
  .btn-secondary:hover { border-color: var(--color-muted); }
94
+ /* Connect (primary) while accounts are outstanding; Manage (quiet) once they're all in. */
95
+ #open-dialog { display: inline-flex; align-items: center; gap: 6px; }
96
+ #open-dialog .dot { display: none; width: 7px; height: 7px; border-radius: 50%; background: var(--color-ok); }
97
+ .req-summary.all-connected #open-dialog { background: var(--color-card-bg); color: var(--color-label); border-color: var(--color-card-border); }
98
+ .req-summary.all-connected #open-dialog:hover { opacity: 1; border-color: var(--color-muted); }
99
+ .req-summary.all-connected #open-dialog .dot { display: block; }
98
100
  .cred-connected { position: relative; }
99
- .btn-connected { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; color: var(--color-ok); font-family: var(--font-family); font-size: 13px; font-weight: 600; cursor: pointer; padding: 6px 4px; }
101
+ /* Bordered like the Connect button it replaces, so the row's control keeps its shape. */
102
+ .btn-connected {
103
+ display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
104
+ background: var(--color-card-bg); border: 1px solid var(--color-card-border); border-radius: var(--border-radius-input);
105
+ color: var(--color-label); font-family: var(--font-family); font-size: 13px; font-weight: 600; padding: 8px 12px;
106
+ }
107
+ .btn-connected:hover { border-color: var(--color-muted); }
108
+ .btn-connected .caret { color: var(--color-muted); }
100
109
  .btn-connected .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-ok); }
101
110
  /* Fixed so the menu escapes the dialog's overflow clipping; positioned by JS. */
102
111
  .cred-menu { display: none; position: fixed; min-width: 150px; background: var(--color-card-bg); border: 1px solid var(--color-card-border); border-radius: 6px; box-shadow: var(--box-shadow-dialog); z-index: 30; }
103
112
  .cred-menu.open { display: block; }
104
113
  .btn-disconnect { display: block; width: 100%; text-align: left; white-space: nowrap; background: none; border: 0; padding: 8px 14px; font-family: var(--font-family); font-size: 13px; color: #a02f28; cursor: pointer; }
105
114
  .btn-disconnect:hover { background: #fdeceb; }
106
- .cred-status-ok { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--color-ok); white-space: nowrap; }
107
- .cred-status-ok .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-ok); }
108
115
  .cred-blocked { font-size: 13px; color: var(--color-muted); }
109
116
 
110
117
  /* --- Dialog --- */
111
118
  .overlay { display: none; position: fixed; inset: 0; background: rgba(20, 20, 30, 0.28); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); align-items: center; justify-content: center; z-index: 10; padding: 16px; }
112
119
  .overlay.open { display: flex; }
113
- .dialog { width: 480px; max-width: 100%; max-height: calc(100vh - 48px); display: flex; flex-direction: column; background: var(--color-card-bg); border-radius: 12px; box-shadow: var(--box-shadow-dialog); overflow: hidden; }
120
+ .dialog { width: 448px; max-width: 100%; max-height: calc(100vh - 48px); display: flex; flex-direction: column; background: var(--color-card-bg); border-radius: 12px; box-shadow: var(--box-shadow-dialog); overflow: hidden; }
114
121
  .dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px 8px; }
115
122
  .dialog-title { font-size: 16px; font-weight: 600; color: var(--color-header); }
116
123
  .dialog-close { background: none; border: 0; font-size: 20px; line-height: 1; color: var(--color-muted); cursor: pointer; }
117
- .dialog-sub { padding: 0 20px 8px; font-size: 13px; color: var(--color-muted); }
124
+ .dialog-sub { padding: 0 20px 16px; font-size: 13px; color: var(--color-muted); }
118
125
  .dialog-list { padding: 0 20px; overflow-y: auto; }
119
126
  .dialog-foot { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-top: 1px solid #f0f1f4; }
120
127
  .dialog-count { font-size: 13px; color: var(--color-muted); }
121
128
 
122
129
  /* --- The form itself, unchanged, in a null-origin sandboxed iframe --- */
123
130
  #form-frame { display: block; width: 100%; height: calc(100vh - 40px); border: 0; background: transparent; }
131
+
132
+ /* Mirrors the form card's own narrow-viewport width so the edges stay aligned. */
133
+ @media only screen and (max-width: 500px) {
134
+ .req-card, .req-summary { width: 95%; }
135
+ }
124
136
  </style>
125
137
  </head>
126
138
 
127
139
  <body>
140
+ {{#*inline "credRow"}}
141
+ <div
142
+ class='cred-row'
143
+ data-cred-id='{{id}}'
144
+ data-status='{{status}}'
145
+ data-resolver-id='{{resolverId}}'
146
+ data-not-connected-text='{{notConnectedText}}'
147
+ {{#if connected}} data-connected='true'{{/if}}
148
+ {{#if revokeUrl}} data-revoke-url='{{revokeUrl}}'{{/if}}
149
+ >
150
+ {{!-- The provider icon when it resolved server-side, else the letter tile. --}}
151
+ {{#if iconUrl}}
152
+ <img class='cred-icon cred-icon-img' src='{{iconUrl}}' alt='' data-initial='{{initial}}' />
153
+ {{else}}
154
+ <span class='cred-icon'>{{initial}}</span>
155
+ {{/if}}
156
+ <span class='cred-meta'>
157
+ <span class='cred-name'>{{name}}</span>
158
+ <span class='cred-sub'>{{#if connected}}{{#if account}}Connected as {{account}}{{else}}Connected{{/if}}{{else}}{{notConnectedText}}{{/if}}{{#if usedBy}} · used by {{usedBy}}{{/if}}</span>
159
+ </span>
160
+ {{#if connected}}
161
+ <span class='cred-connected'><button type='button' class='btn-connected'><span class='dot'></span> Connected <span class='caret'>&#9662;</span></button><div class='cred-menu'><button type='button' class='btn-disconnect'>Disconnect</button></div></span>
162
+ {{else if authorizationUrl}}
163
+ <button class='btn btn-secondary connect' data-url='{{authorizationUrl}}'>{{#if (eq status 'expired')}}Reconnect{{else}}Connect{{/if}}</button>
164
+ {{else}}
165
+ <span class='cred-blocked'>Ask the form owner</span>
166
+ {{/if}}
167
+ </div>
168
+ {{/inline}}
169
+
128
170
  <div class='shell' data-submitter-email='{{submitterEmail}}'>
129
171
  {{#if useDialog}}
130
- <div class='req-strip'>
131
- <div class='stack'>
132
- {{#each iconStack}}
133
- <span class='cred-icon'>{{this}}</span>
134
- {{/each}}
135
- {{#if moreCount}}<span class='more'>+{{moreCount}}</span>{{/if}}
136
- </div>
137
- <div class='strip-meta'>
138
- <div class='strip-title'>Required credentials</div>
139
- <div class='strip-count'>{{connectedCount}} of {{total}} credentials connected</div>
140
- </div>
141
- <button class='btn btn-primary' id='open-dialog'>Connect</button>
172
+ <div class='req-summary{{#if allConnected}} all-connected{{/if}}' id='req-summary'>
173
+ <span class='summary-icon'>
174
+ <svg class='icon-pending' width='17' height='17' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.3' aria-hidden='true'><circle cx='8' cy='8' r='6.7' /><path d='M8 7.3v3.5' stroke-linecap='round' /><circle cx='8' cy='5.1' r='.8' fill='currentColor' stroke='none' /></svg>
175
+ <svg class='icon-ok' width='17' height='17' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.3' aria-hidden='true'><circle cx='8' cy='8' r='6.7' /><path d='m5.2 8.2 1.9 1.9 3.7-4' stroke-linecap='round' stroke-linejoin='round' /></svg>
176
+ </span>
177
+ <span class='summary-text' id='summary-text'>{{summaryText}}</span>
178
+ <button class='btn btn-primary' id='open-dialog'><span class='dot'></span><span class='label'>{{#if allConnected}}Manage{{else}}Connect{{/if}}</span></button>
142
179
  </div>
143
180
  {{else}}
144
181
  <div class='req-card'>
145
- <div class='req-title'>Required credentials</div>
146
- <div class='req-sub'>Connect required credentials to run this form using your data.</div>
147
182
  {{#each credentials}}
148
- <div class='cred-row' data-cred-id='{{id}}' data-status='{{status}}' data-resolver-id='{{resolverId}}'{{#if connected}} data-connected='true'{{/if}}{{#if revokeUrl}} data-revoke-url='{{revokeUrl}}'{{/if}}>
149
- <span class='cred-icon'>{{initial}}</span>
150
- <span class='cred-meta'>
151
- <span class='cred-name'>{{name}}</span>
152
- <span class='cred-sub {{#if connected}}connected{{/if}}'>{{#if connected}}{{#if account}}Connected as {{account}}{{else}}Connected{{/if}}{{else}}Not connected{{/if}}{{#if usedBy}} · used by {{usedBy}}{{/if}}</span>
153
- </span>
154
- {{#if connected}}
155
- <span class='cred-connected'><button type='button' class='btn-connected'><span class='dot'></span> Connected <span class='caret'>&#9662;</span></button><div class='cred-menu'><button type='button' class='btn-disconnect'>Disconnect</button></div></span>
156
- {{else if authorizationUrl}}
157
- <button class='btn btn-secondary connect' data-url='{{authorizationUrl}}'>{{#if (eq status 'expired')}}Reconnect{{else}}Connect{{/if}}</button>
158
- {{else}}
159
- <span class='cred-blocked'>Ask the form owner</span>
160
- {{/if}}
161
- </div>
183
+ {{> credRow notConnectedText='Not connected · needed to submit this form'}}
162
184
  {{/each}}
163
185
  </div>
164
186
  {{/if}}
@@ -174,30 +196,17 @@
174
196
  <div class='overlay' id='overlay'>
175
197
  <div class='dialog' role='dialog' aria-modal='true' aria-labelledby='dialog-title'>
176
198
  <div class='dialog-head'>
177
- <span class='dialog-title' id='dialog-title'>Required credentials</span>
199
+ <span class='dialog-title' id='dialog-title'>Connect your accounts</span>
178
200
  <button class='dialog-close' id='close-dialog' aria-label='Close'>&times;</button>
179
201
  </div>
180
- <div class='dialog-sub'>Connect required credentials to run this form using your data.</div>
202
+ <div class='dialog-sub'>Submitting this form uses these accounts on your behalf.</div>
181
203
  <div class='dialog-list'>
182
204
  {{#each credentials}}
183
- <div class='cred-row' data-cred-id='{{id}}' data-status='{{status}}' data-resolver-id='{{resolverId}}'{{#if connected}} data-connected='true'{{/if}}{{#if revokeUrl}} data-revoke-url='{{revokeUrl}}'{{/if}}>
184
- <span class='cred-icon'>{{initial}}</span>
185
- <span class='cred-meta'>
186
- <span class='cred-name'>{{name}}</span>
187
- <span class='cred-sub {{#if connected}}connected{{/if}}'>{{#if connected}}{{#if account}}Connected as {{account}}{{else}}Connected{{/if}}{{else}}Not connected{{/if}}{{#if usedBy}} · used by {{usedBy}}{{/if}}</span>
188
- </span>
189
- {{#if connected}}
190
- <span class='cred-connected'><button type='button' class='btn-connected'><span class='dot'></span> Connected <span class='caret'>&#9662;</span></button><div class='cred-menu'><button type='button' class='btn-disconnect'>Disconnect</button></div></span>
191
- {{else if authorizationUrl}}
192
- <button class='btn btn-secondary connect' data-url='{{authorizationUrl}}'>{{#if (eq status 'expired')}}Reconnect{{else}}Connect{{/if}}</button>
193
- {{else}}
194
- <span class='cred-blocked'>Ask the form owner</span>
195
- {{/if}}
196
- </div>
205
+ {{> credRow notConnectedText='Not connected'}}
197
206
  {{/each}}
198
207
  </div>
199
208
  <div class='dialog-foot'>
200
- <span class='dialog-count'>{{connectedCount}} of {{total}} credentials connected</span>
209
+ <span class='dialog-count' id='dialog-count'>{{footerText}}</span>
201
210
  <button class='btn btn-primary' id='done-dialog'>Done</button>
202
211
  </div>
203
212
  </div>
@@ -217,37 +226,72 @@
217
226
  });
218
227
  var total = Object.keys(ids).length;
219
228
 
229
+ function accountsLabel(count) { return count === 1 ? 'account' : 'accounts'; }
230
+
231
+ // Mirrors `formShellSummaryText` in nodes-base/nodes/Form/utils/utils.ts,
232
+ // which renders the same line server-side and is what the unit tests cover.
233
+ function summaryText(count) {
234
+ var remaining = total - count;
235
+ if (remaining <= 0) return 'All ' + total + ' accounts connected · ready to submit';
236
+ if (count === 0) return total + ' accounts needed to submit this form';
237
+ return remaining + ' more ' + accountsLabel(remaining) + ' needed to submit this form';
238
+ }
239
+
240
+ var summaryEl = document.getElementById('summary-text');
241
+ var summaryRow = document.getElementById('req-summary');
242
+ var countEl = document.getElementById('dialog-count');
243
+ var openBtnLabel = document.querySelector('#open-dialog .label');
244
+
220
245
  function refresh() {
221
246
  var count = Object.keys(connected).length;
222
- var txt = count + ' of ' + total + ' credentials connected';
223
- document.querySelectorAll('.strip-count, .dialog-count').forEach(function (el) {
224
- el.textContent = txt;
225
- });
247
+ var allConnected = count >= total;
248
+ if (summaryEl) summaryEl.textContent = summaryText(count);
249
+ if (summaryRow) summaryRow.classList.toggle('all-connected', allConnected);
250
+ if (openBtnLabel) openBtnLabel.textContent = allConnected ? 'Manage' : 'Connect';
251
+ if (countEl) countEl.textContent = count + ' of ' + total + ' ' + accountsLabel(total) + ' connected';
226
252
  // UX-only signal to the form iframe; the server-side POST gate is the guarantee.
227
253
  if (frame && frame.contentWindow) {
228
254
  frame.contentWindow.postMessage(
229
- { type: count >= total ? 'n8n-shell-credentials-ready' : 'n8n-shell-credentials-not-ready' },
255
+ { type: allConnected ? 'n8n-shell-credentials-ready' : 'n8n-shell-credentials-not-ready' },
230
256
  '*',
231
257
  );
232
258
  }
233
259
  }
234
260
 
261
+ if (frame) frame.addEventListener('load', refresh);
262
+
235
263
  var shellEl = document.querySelector('.shell');
236
264
  var SUBMITTER_EMAIL = shellEl ? shellEl.getAttribute('data-submitter-email') || '' : '';
237
265
  var CONNECTED_MENU_HTML =
238
266
  '<button type="button" class="btn-connected"><span class="dot"></span> Connected <span class="caret">&#9662;</span></button>' +
239
267
  '<div class="cred-menu"><button type="button" class="btn-disconnect">Disconnect</button></div>';
240
268
 
269
+ // A provider icon that 404s (renamed node package, stale path) falls back to
270
+ // the letter tile the row also carries.
271
+ function fallBackToLetterTile(img) {
272
+ if (!img || !img.classList || !img.classList.contains('cred-icon-img')) return;
273
+ var tile = document.createElement('span');
274
+ tile.className = 'cred-icon';
275
+ tile.textContent = img.getAttribute('data-initial') || '?';
276
+ img.replaceWith(tile);
277
+ }
278
+ // Capture phase because `error` doesn't bubble.
279
+ document.addEventListener('error', function (e) { fallBackToLetterTile(e.target); }, true);
280
+ // Images load in parallel with this script, so some may have already failed
281
+ // by the time the listener above attaches — sweep those up.
282
+ document.querySelectorAll('.cred-icon-img').forEach(function (img) {
283
+ if (img.complete && img.naturalWidth === 0) fallBackToLetterTile(img);
284
+ });
285
+
241
286
  function markConnected(id) {
242
287
  if (!id || connected[id]) return;
243
288
  connected[id] = true;
244
- // Card and dialog share the same data-cred-id; update both.
289
+ // The single-account panel and the dialog share the same data-cred-id.
245
290
  document.querySelectorAll('.cred-row[data-cred-id="' + id + '"]').forEach(function (row) {
246
291
  row.setAttribute('data-connected', 'true');
247
292
  var sub = row.querySelector('.cred-sub');
248
293
  if (sub) {
249
294
  sub.textContent = SUBMITTER_EMAIL ? 'Connected as ' + SUBMITTER_EMAIL : 'Connected';
250
- sub.classList.add('connected');
251
295
  }
252
296
  var btn = row.querySelector('.connect');
253
297
  if (btn) {
@@ -284,8 +328,13 @@
284
328
  });
285
329
  } catch (e) {}
286
330
  window.addEventListener('message', function (event) {
287
- // Ignore the sandboxed form iframe so author content can't spoof a connect.
288
- if (frame && event.source === frame.contentWindow) return;
331
+ // The sandboxed form iframe can't spoof a connect: its only accepted message is
332
+ // the POST gate's rejection, which carries ids and moves rows one way only, so
333
+ // the worst author script can do is degrade its own form's UX.
334
+ if (frame && event.source === frame.contentWindow) {
335
+ handleGateRejection(event.data);
336
+ return;
337
+ }
289
338
  if (event.data === 'success') onSuccessSignal();
290
339
  });
291
340
 
@@ -302,7 +351,11 @@
302
351
  document.querySelectorAll('.cred-row[data-cred-id="' + id + '"]').forEach(function (row) {
303
352
  row.removeAttribute('data-connected');
304
353
  var sub = row.querySelector('.cred-sub');
305
- if (sub) { sub.textContent = 'Not connected'; sub.classList.remove('connected'); }
354
+ if (sub) {
355
+ // The single-account row spells out why the account is needed; the
356
+ // dialog's rows sit under copy that already says it.
357
+ sub.textContent = row.getAttribute('data-not-connected-text') || 'Not connected';
358
+ }
306
359
  var wrap = row.querySelector('.cred-connected');
307
360
  if (wrap) {
308
361
  var btn = document.createElement('button');
@@ -402,7 +455,7 @@
402
455
  document.querySelectorAll('.cred-menu.open').forEach(function (m) { m.classList.remove('open'); });
403
456
  });
404
457
 
405
- // Dialog (3+ credentials)
458
+ // Dialog (two or more accounts)
406
459
  var overlay = document.getElementById('overlay');
407
460
  var open = document.getElementById('open-dialog');
408
461
  if (open && overlay) {
@@ -411,6 +464,22 @@
411
464
  document.getElementById('done-dialog').addEventListener('click', function () { overlay.classList.remove('open'); });
412
465
  overlay.addEventListener('click', function (e) { if (e.target === overlay) overlay.classList.remove('open'); });
413
466
  }
467
+
468
+ // The form's POST was refused by the server-side gate. Rows rendered at page load
469
+ // can be stale (revoked since, or disconnected in another tab), so flip the ones
470
+ // the server no longer considers connected and surface the panel — the 2+ layout
471
+ // otherwise keeps every row behind the summary line. Declared after the dialog
472
+ // wiring so `overlay` is assigned; hoisting keeps it callable from the listener
473
+ // above.
474
+ function handleGateRejection(data) {
475
+ if (!data || data.type !== 'n8n-form-credentials-rejected' || !Array.isArray(data.ids)) return;
476
+ data.ids.forEach(function (id) {
477
+ // Only rows the server actually rendered, so a crafted key can't walk the
478
+ // prototype chain. Never markConnected from here — one direction only.
479
+ if (typeof id === 'string' && Object.prototype.hasOwnProperty.call(ids, id)) markDisconnected(id);
480
+ });
481
+ if (overlay) overlay.classList.add('open');
482
+ }
414
483
  })();
415
484
  </script>
416
485
  </body>
@@ -261,6 +261,12 @@
261
261
  cursor: not-allowed;
262
262
  }
263
263
 
264
+ #submit-hint {
265
+ margin-top: 8px;
266
+ font-size: var(--font-size-link);
267
+ color: var(--color-link);
268
+ }
269
+
264
270
  #submit-btn:disabled:hover {
265
271
  opacity: 1;
266
272
  }
@@ -281,6 +287,23 @@
281
287
  visibility: visible;
282
288
  }
283
289
 
290
+ {{#if hasAuthenticatedSubmitter}}
291
+ /* Form-level error above Submit. Unlike .error-hidden it must not reserve
292
+ space while empty, or every form gets a permanent gap above Submit. */
293
+ #submit-error {
294
+ display: none;
295
+ color: var(--color-error);
296
+ text-align: left;
297
+ font-size: var(--font-size-error);
298
+ padding-top: 6px;
299
+ padding-bottom: 9px;
300
+ }
301
+
302
+ #submit-error.error-show {
303
+ display: block;
304
+ }
305
+ {{/if}}
306
+
284
307
  /* multiselect ----------------------------------- */
285
308
  .multiselect {
286
309
  padding-left: 6px;
@@ -631,7 +654,9 @@
631
654
  {{/each}}
632
655
  </div>
633
656
 
634
- <button id='submit-btn' type='submit' {{#if shellInner}}disabled title='Connect the required credentials first'{{/if}}>
657
+ {{#if hasAuthenticatedSubmitter}}<p id='submit-error'></p>{{/if}}
658
+
659
+ <button id='submit-btn' type='submit' {{#if shellInner}}disabled title='Connect the required accounts first'{{/if}}>
635
660
  <span><svg
636
661
  xmlns='http://www.w3.org/2000/svg'
637
662
  height='18px'
@@ -643,6 +668,11 @@
643
668
  </svg></span>
644
669
  {{ buttonLabel }}
645
670
  </button>
671
+
672
+ {{#if shellInner}}
673
+ {{!-- Only inside the hosting shell, where the connect panel above supplies the accounts. --}}
674
+ <p id='submit-hint'>This form will run using your connected accounts.</p>
675
+ {{/if}}
646
676
  </form>
647
677
 
648
678
  <div class='card' id='submitted-form' style='display: none;'>
@@ -715,6 +745,47 @@
715
745
  }
716
746
  }
717
747
 
748
+ {{#if hasAuthenticatedSubmitter}}
749
+ // True when this form is the inner frame of the hosting shell, which owns the
750
+ // connect panel and the submit button's enabled state.
751
+ const isShellInner = {{#if shellInner}}true{{else}}false{{/if}};
752
+
753
+ // The submit-time credential gate refused this submission. Explain it and hand the
754
+ // form back with the answers intact. The panel names the accounts, so the banner
755
+ // only has to say what to do next.
756
+ function handleCredentialGate(credentials) {
757
+ updateError(
758
+ document.querySelector('#submit-error'),
759
+ 'add',
760
+ 'Not all required accounts are connected. ' +
761
+ (isShellInner
762
+ ? 'Connect them above, then submit again.'
763
+ : 'Open this form in a new tab to connect them, then come back here and submit again.'),
764
+ );
765
+
766
+ const btn = document.querySelector('#submit-btn');
767
+ btn.style.cursor = '';
768
+ btn.querySelector('span').style.display = '';
769
+
770
+ if (isShellInner) {
771
+ // The shell owns the disabled state, so hand it the rows it still shows as
772
+ // connected and let its readiness signal re-disable Submit. Ids only: it must
773
+ // not have to trust a name or a URL from this frame. targetOrigin '*' because
774
+ // the frame is sandboxed without allow-same-origin and can't know the parent's.
775
+ window.parent.postMessage(
776
+ {
777
+ type: 'n8n-form-credentials-rejected',
778
+ // The body lists every required credential, connected ones included.
779
+ ids: credentials.filter((c) => c.credentialStatus !== 'configured').map((c) => c.credentialId),
780
+ },
781
+ '*',
782
+ );
783
+ } else {
784
+ btn.disabled = false;
785
+ }
786
+ }
787
+ {{/if}}
788
+
718
789
  function validateInput(input, errorElement) {
719
790
  const value = input.value.trim();
720
791
  const type = input.type;
@@ -1010,6 +1081,7 @@
1010
1081
  const selectedValues = getSelectedValues(multiselect);
1011
1082
  formData.append(multiselect.id, JSON.stringify(selectedValues));
1012
1083
  });
1084
+ {{#if hasAuthenticatedSubmitter}}updateError(document.querySelector('#submit-error'), 'remove');{{/if}}
1013
1085
  document.querySelector('#submit-btn').disabled = true;
1014
1086
  document.querySelector('#submit-btn').style.cursor = 'not-allowed';
1015
1087
  document.querySelector('#submit-btn span').style.display = 'inline-block';
@@ -1034,6 +1106,22 @@
1034
1106
  headers,
1035
1107
  })
1036
1108
  .then(async function (response) {
1109
+ {{#if hasAuthenticatedSubmitter}}
1110
+ // A credential-gate rejection keeps the submitter on the page with their
1111
+ // answers, so handle it before the useResponseData branch below paints the
1112
+ // response body over the whole document.
1113
+ if (response.status === 428) {
1114
+ // Clone: that branch reads the body too, and a body can only be read once.
1115
+ // Any other 428 — the webhook trigger's gate has no `status` — falls
1116
+ // through untouched.
1117
+ const gate = await response.clone().json().catch(() => null);
1118
+ if (gate && gate.status === 'credential_connections_required') {
1119
+ handleCredentialGate(gate.credentials);
1120
+ return;
1121
+ }
1122
+ }
1123
+ {{/if}}
1124
+
1037
1125
  const useResponseData = document.getElementById("useResponseData").value;
1038
1126
 
1039
1127
  if (useResponseData === "true") {
@@ -1132,9 +1220,16 @@
1132
1220
  if (event.data.type === 'n8n-shell-credentials-ready') {
1133
1221
  btn.disabled = false;
1134
1222
  btn.removeAttribute('title');
1223
+ {{#if hasAuthenticatedSubmitter}}
1224
+ // A rejection banner asking for the credentials is stale once the panel
1225
+ // reports them connected. Guarded because shellInner comes from a query
1226
+ // param, so a form with no submitter identity — and so no banner in the
1227
+ // markup — can still render this listener.
1228
+ updateError(document.querySelector('#submit-error'), 'remove');
1229
+ {{/if}}
1135
1230
  } else if (event.data.type === 'n8n-shell-credentials-not-ready') {
1136
1231
  btn.disabled = true;
1137
- btn.setAttribute('title', 'Connect the required credentials first');
1232
+ btn.setAttribute('title', 'Connect the required accounts first');
1138
1233
  }
1139
1234
  });
1140
1235
  </script>
@@ -1,2 +0,0 @@
1
- import type { AgentsConfig } from '@n8n/config';
2
- export declare function isAgentKnowledgeBaseEnabled(config: Pick<AgentsConfig, 'sandboxEnabled' | 'sandboxProvider'>, aiAssistantAvailable: boolean): boolean;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAgentKnowledgeBaseEnabled = isAgentKnowledgeBaseEnabled;
4
- function isAgentKnowledgeBaseEnabled(config, aiAssistantAvailable) {
5
- return aiAssistantAvailable || (config.sandboxEnabled && config.sandboxProvider === 'daytona');
6
- }
7
- //# sourceMappingURL=agent-knowledge-gate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-knowledge-gate.js","sourceRoot":"","sources":["../../../src/modules/agents/agent-knowledge-gate.ts"],"names":[],"mappings":";;;AAEA,qCACC,MAAgE,EAChE,oBAA6B;IAE7B,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;AAChG,CAAC"}