n8n 2.35.2 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/e2e.controller.d.ts +21 -2
  17. package/dist/controllers/e2e.controller.js +40 -2
  18. package/dist/controllers/e2e.controller.js.map +1 -1
  19. package/dist/controllers/role.controller.js +3 -5
  20. package/dist/controllers/role.controller.js.map +1 -1
  21. package/dist/credentials/credential-connection-status-provider.interface.d.ts +4 -1
  22. package/dist/credentials/credential-connection-status-proxy.d.ts +2 -2
  23. package/dist/credentials/credential-connection-status-proxy.js +3 -3
  24. package/dist/credentials/credential-connection-status-proxy.js.map +1 -1
  25. package/dist/credentials/credentials-finder.service.d.ts +2 -1
  26. package/dist/credentials/credentials-finder.service.js +2 -1
  27. package/dist/credentials/credentials-finder.service.js.map +1 -1
  28. package/dist/credentials/credentials.controller.d.ts +8 -6
  29. package/dist/credentials/credentials.controller.js +3 -12
  30. package/dist/credentials/credentials.controller.js.map +1 -1
  31. package/dist/credentials/credentials.service.d.ts +38 -30
  32. package/dist/credentials/credentials.service.ee.d.ts +6 -4
  33. package/dist/credentials/credentials.service.ee.js +2 -1
  34. package/dist/credentials/credentials.service.ee.js.map +1 -1
  35. package/dist/credentials/credentials.service.js +93 -45
  36. package/dist/credentials/credentials.service.js.map +1 -1
  37. package/dist/credentials-overwrites.d.ts +1 -0
  38. package/dist/credentials-overwrites.js +17 -0
  39. package/dist/credentials-overwrites.js.map +1 -1
  40. package/dist/deprecation/deprecation.service.js +5 -0
  41. package/dist/deprecation/deprecation.service.js.map +1 -1
  42. package/dist/errors/http-error-classifier.d.ts +4 -1
  43. package/dist/errors/http-error-classifier.js +4 -1
  44. package/dist/errors/http-error-classifier.js.map +1 -1
  45. package/dist/evaluation.ee/evaluation-dataset.service.d.ts +3 -3
  46. package/dist/evaluation.ee/evaluation-dataset.service.js +5 -6
  47. package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -1
  48. package/dist/events/event.service.d.ts +2 -1
  49. package/dist/events/event.service.js.map +1 -1
  50. package/dist/events/maps/poll-trigger-metrics.event-map.d.ts +9 -0
  51. package/dist/events/maps/poll-trigger-metrics.event-map.js +3 -0
  52. package/dist/events/maps/poll-trigger-metrics.event-map.js.map +1 -0
  53. package/dist/events/maps/relay.event-map.d.ts +10 -0
  54. package/dist/events/relays/telemetry.event-relay.js +3 -0
  55. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  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 +429 -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.js +6 -1
  307. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
  308. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +1 -1
  309. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
  310. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +8 -1
  311. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +49 -2
  312. package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -1
  313. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.d.ts +8 -3
  314. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +29 -6
  315. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
  316. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +3 -0
  317. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
  318. package/dist/modules/favorites/favorite-resource-resolver.registry.d.ts +17 -0
  319. package/dist/modules/favorites/favorite-resource-resolver.registry.js +26 -0
  320. package/dist/modules/favorites/favorite-resource-resolver.registry.js.map +1 -0
  321. package/dist/modules/favorites/favorites.service.d.ts +4 -7
  322. package/dist/modules/favorites/favorites.service.js +18 -34
  323. package/dist/modules/favorites/favorites.service.js.map +1 -1
  324. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +0 -1
  325. package/dist/modules/insights/database/repositories/insights-by-period.repository.js +1 -5
  326. package/dist/modules/insights/database/repositories/insights-by-period.repository.js.map +1 -1
  327. package/dist/modules/instance-ai/canvas-node-context-flag-gate.d.ts +7 -0
  328. package/dist/modules/instance-ai/canvas-node-context-flag-gate.js +35 -0
  329. package/dist/modules/instance-ai/canvas-node-context-flag-gate.js.map +1 -0
  330. package/dist/modules/instance-ai/drop-rejected-attachments.d.ts +18 -0
  331. package/dist/modules/instance-ai/drop-rejected-attachments.js +49 -0
  332. package/dist/modules/instance-ai/drop-rejected-attachments.js.map +1 -0
  333. package/dist/modules/instance-ai/eval/agent-execution.service.js +2 -1
  334. package/dist/modules/instance-ai/eval/agent-execution.service.js.map +1 -1
  335. package/dist/modules/instance-ai/instance-ai-error-reporter.service.d.ts +1 -0
  336. package/dist/modules/instance-ai/instance-ai-error-reporter.service.js +9 -0
  337. package/dist/modules/instance-ai/instance-ai-error-reporter.service.js.map +1 -1
  338. package/dist/modules/instance-ai/instance-ai-model.service.d.ts +3 -3
  339. package/dist/modules/instance-ai/instance-ai-model.service.js +15 -21
  340. package/dist/modules/instance-ai/instance-ai-model.service.js.map +1 -1
  341. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +20 -4
  342. package/dist/modules/instance-ai/instance-ai-settings.service.js +144 -110
  343. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  344. package/dist/modules/instance-ai/instance-ai-setup-telemetry.service.d.ts +38 -0
  345. package/dist/modules/instance-ai/instance-ai-setup-telemetry.service.js +212 -0
  346. package/dist/modules/instance-ai/instance-ai-setup-telemetry.service.js.map +1 -0
  347. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.d.ts +4 -0
  348. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +11 -0
  349. package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js.map +1 -1
  350. package/dist/modules/instance-ai/instance-ai-verification.service.d.ts +3 -1
  351. package/dist/modules/instance-ai/instance-ai-verification.service.js +42 -6
  352. package/dist/modules/instance-ai/instance-ai-verification.service.js.map +1 -1
  353. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +16 -14
  354. package/dist/modules/instance-ai/instance-ai.adapter.service.js +143 -79
  355. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  356. package/dist/modules/instance-ai/instance-ai.controller.js +9 -0
  357. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  358. package/dist/modules/instance-ai/instance-ai.module.js +5 -3
  359. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  360. package/dist/modules/instance-ai/instance-ai.service.d.ts +19 -6
  361. package/dist/modules/instance-ai/instance-ai.service.js +288 -27
  362. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  363. package/dist/modules/instance-ai/internal-messages.js +1 -1
  364. package/dist/modules/instance-ai/internal-messages.js.map +1 -1
  365. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.d.ts +1 -0
  366. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js +3 -0
  367. package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js.map +1 -1
  368. package/dist/modules/instance-ai/stream-transport-error.d.ts +1 -0
  369. package/dist/modules/instance-ai/stream-transport-error.js +9 -0
  370. package/dist/modules/instance-ai/stream-transport-error.js.map +1 -0
  371. package/dist/modules/instance-ai/workflow-verification-task-projector.js +4 -1
  372. package/dist/modules/instance-ai/workflow-verification-task-projector.js.map +1 -1
  373. package/dist/modules/mcp/dto/update-mcp-settings.dto.d.ts +32 -2
  374. package/dist/modules/mcp/dto/update-mcp-settings.dto.js +17 -3
  375. package/dist/modules/mcp/dto/update-mcp-settings.dto.js.map +1 -1
  376. package/dist/modules/mcp/mcp-protected-resource.d.ts +3 -2
  377. package/dist/modules/mcp/mcp-protected-resource.js +6 -3
  378. package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
  379. package/dist/modules/mcp/mcp-scopes.d.ts +1 -0
  380. package/dist/modules/mcp/mcp-scopes.js +12 -2
  381. package/dist/modules/mcp/mcp-scopes.js.map +1 -1
  382. package/dist/modules/mcp/mcp.controller.js +1 -1
  383. package/dist/modules/mcp/mcp.controller.js.map +1 -1
  384. package/dist/modules/mcp/mcp.module.d.ts +1 -0
  385. package/dist/modules/mcp/mcp.module.js +4 -2
  386. package/dist/modules/mcp/mcp.module.js.map +1 -1
  387. package/dist/modules/mcp/mcp.service.d.ts +6 -3
  388. package/dist/modules/mcp/mcp.service.js +24 -5
  389. package/dist/modules/mcp/mcp.service.js.map +1 -1
  390. package/dist/modules/mcp/mcp.settings.controller.d.ts +2 -0
  391. package/dist/modules/mcp/mcp.settings.controller.js +24 -10
  392. package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
  393. package/dist/modules/mcp/mcp.settings.service.d.ts +4 -3
  394. package/dist/modules/mcp/mcp.settings.service.js +20 -2
  395. package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
  396. package/dist/modules/mcp/mcp.types.d.ts +4 -3
  397. package/dist/modules/mcp/mcp.utils.d.ts +4 -1
  398. package/dist/modules/mcp/mcp.utils.js +14 -4
  399. package/dist/modules/mcp/mcp.utils.js.map +1 -1
  400. package/dist/modules/mcp/tools/agents/agent-tools.service.js +10 -1
  401. package/dist/modules/mcp/tools/agents/agent-tools.service.js.map +1 -1
  402. package/dist/modules/mcp/tools/create-folder.tool.d.ts +13 -0
  403. package/dist/modules/mcp/tools/create-folder.tool.js +68 -0
  404. package/dist/modules/mcp/tools/create-folder.tool.js.map +1 -0
  405. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js +1 -1
  406. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js.map +1 -1
  407. package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.d.ts +44 -0
  408. package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.js +134 -0
  409. package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.js.map +1 -0
  410. package/dist/modules/mcp/tools/data-table/index.d.ts +1 -0
  411. package/dist/modules/mcp/tools/data-table/index.js +3 -1
  412. package/dist/modules/mcp/tools/data-table/index.js.map +1 -1
  413. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +11 -21
  414. package/dist/modules/mcp/tools/execute-workflow.tool.js +113 -76
  415. package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -1
  416. package/dist/modules/mcp/tools/folder-error.utils.d.ts +13 -0
  417. package/dist/modules/mcp/tools/folder-error.utils.js +25 -0
  418. package/dist/modules/mcp/tools/folder-error.utils.js.map +1 -0
  419. package/dist/modules/mcp/tools/get-workflow-details.tool.js +1 -1
  420. package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
  421. package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.d.ts +81 -0
  422. package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.js +218 -0
  423. package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.js.map +1 -0
  424. package/dist/modules/mcp/tools/move-workflows-to-folder.tool.d.ts +13 -0
  425. package/dist/modules/mcp/tools/move-workflows-to-folder.tool.js +122 -0
  426. package/dist/modules/mcp/tools/move-workflows-to-folder.tool.js.map +1 -0
  427. package/dist/modules/mcp/tools/schemas.d.ts +7 -0
  428. package/dist/modules/mcp/tools/schemas.js +15 -1
  429. package/dist/modules/mcp/tools/schemas.js.map +1 -1
  430. package/dist/modules/mcp/tools/search-folders.tool.d.ts +3 -2
  431. package/dist/modules/mcp/tools/search-folders.tool.js +14 -8
  432. package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -1
  433. package/dist/modules/mcp/tools/test-workflow.tool.js +10 -18
  434. package/dist/modules/mcp/tools/test-workflow.tool.js.map +1 -1
  435. package/dist/modules/mcp/tools/update-folder.tool.d.ts +14 -0
  436. package/dist/modules/mcp/tools/update-folder.tool.js +74 -0
  437. package/dist/modules/mcp/tools/update-folder.tool.js.map +1 -0
  438. package/dist/modules/mcp/tools/webhook-utils.js +6 -4
  439. package/dist/modules/mcp/tools/webhook-utils.js.map +1 -1
  440. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +18 -5
  441. package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
  442. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +4 -4
  443. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +467 -397
  444. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
  445. package/dist/modules/mcp/tools/workflow-inputs.d.ts +111 -0
  446. package/dist/modules/mcp/tools/workflow-inputs.js +81 -0
  447. package/dist/modules/mcp/tools/workflow-inputs.js.map +1 -0
  448. package/dist/modules/mcp/tools/workflow-validation.utils.d.ts +2 -0
  449. package/dist/modules/mcp/tools/workflow-validation.utils.js +7 -6
  450. package/dist/modules/mcp/tools/workflow-validation.utils.js.map +1 -1
  451. package/dist/modules/mcp-registry/registry/mcp-registry.service.d.ts +1 -0
  452. package/dist/modules/mcp-registry/registry/mcp-registry.service.js +4 -0
  453. package/dist/modules/mcp-registry/registry/mcp-registry.service.js.map +1 -1
  454. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js +4 -2
  455. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js.map +1 -1
  456. package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js +13 -9
  457. package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js.map +1 -1
  458. package/dist/modules/n8n-packages/entities/folder/folder.exporter.d.ts +2 -0
  459. package/dist/modules/n8n-packages/entities/folder/folder.exporter.js +1 -0
  460. package/dist/modules/n8n-packages/entities/folder/folder.exporter.js.map +1 -1
  461. package/dist/modules/n8n-packages/entities/folder/folder.serializer.js +4 -2
  462. package/dist/modules/n8n-packages/entities/folder/folder.serializer.js.map +1 -1
  463. package/dist/modules/n8n-packages/entities/package-serialization.types.d.ts +17 -0
  464. package/dist/modules/n8n-packages/entities/package-serialization.types.js +7 -0
  465. package/dist/modules/n8n-packages/entities/package-serialization.types.js.map +1 -0
  466. package/dist/modules/n8n-packages/entities/project/project.exporter.d.ts +2 -0
  467. package/dist/modules/n8n-packages/entities/project/project.exporter.js +2 -0
  468. package/dist/modules/n8n-packages/entities/project/project.exporter.js.map +1 -1
  469. package/dist/modules/n8n-packages/entities/project/project.serializer.js +4 -2
  470. package/dist/modules/n8n-packages/entities/project/project.serializer.js.map +1 -1
  471. package/dist/modules/n8n-packages/entities/tag/tag.exporter.js +3 -1
  472. package/dist/modules/n8n-packages/entities/tag/tag.exporter.js.map +1 -1
  473. package/dist/modules/n8n-packages/entities/variable/variable.serializer.js +6 -3
  474. package/dist/modules/n8n-packages/entities/variable/variable.serializer.js.map +1 -1
  475. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.d.ts +2 -0
  476. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js +21 -4
  477. package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js.map +1 -1
  478. package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.d.ts +2 -0
  479. package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.js +4 -1
  480. package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.js.map +1 -1
  481. package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.d.ts +4 -0
  482. package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.js +48 -0
  483. package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.js.map +1 -0
  484. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.d.ts +2 -0
  485. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +7 -2
  486. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
  487. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +5 -3
  488. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -1
  489. package/dist/modules/n8n-packages/n8n-packages.service.js +6 -0
  490. package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
  491. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +8 -0
  492. package/dist/modules/n8n-packages/n8n-packages.types.js +7 -1
  493. package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
  494. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.d.ts +2 -2
  495. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js +3 -3
  496. package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js.map +1 -1
  497. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.d.ts +2 -2
  498. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js +3 -3
  499. package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -1
  500. package/dist/modules/oauth-server/oauth-consent.controller.js +2 -0
  501. package/dist/modules/oauth-server/oauth-consent.controller.js.map +1 -1
  502. package/dist/modules/oauth-server/oauth-consent.service.d.ts +8 -1
  503. package/dist/modules/oauth-server/oauth-consent.service.js +33 -0
  504. package/dist/modules/oauth-server/oauth-consent.service.js.map +1 -1
  505. package/dist/modules/oauth-server/oauth-server.service.d.ts +6 -1
  506. package/dist/modules/oauth-server/oauth-server.service.js +36 -4
  507. package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
  508. package/dist/modules/oauth-server/oauth-token.service.d.ts +6 -2
  509. package/dist/modules/oauth-server/oauth-token.service.js +19 -7
  510. package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
  511. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.d.ts +7 -3
  512. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js +8 -7
  513. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js.map +1 -1
  514. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.d.ts +6 -3
  515. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js +8 -7
  516. package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js.map +1 -1
  517. package/dist/modules/oauth-server/protected-resource-resolvers/utils.d.ts +2 -0
  518. package/dist/modules/oauth-server/protected-resource-resolvers/utils.js +5 -1
  519. package/dist/modules/oauth-server/protected-resource-resolvers/utils.js.map +1 -1
  520. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.d.ts +4 -3
  521. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js +7 -7
  522. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js.map +1 -1
  523. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.d.ts +5 -3
  524. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js +7 -7
  525. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js.map +1 -1
  526. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-test-trigger-resource.resolver.js +7 -11
  527. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-test-trigger-resource.resolver.js.map +1 -1
  528. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-trigger-resource.resolver.js +7 -11
  529. package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-trigger-resource.resolver.js.map +1 -1
  530. package/dist/modules/oauth-server/resource-gate.d.ts +6 -0
  531. package/dist/modules/oauth-server/resource-gate.js +17 -0
  532. package/dist/modules/oauth-server/resource-gate.js.map +1 -0
  533. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js +1 -9
  534. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js.map +1 -1
  535. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +5 -2
  536. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +14 -4
  537. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
  538. package/dist/modules/source-control.ee/source-control-preferences.service.ee.d.ts +3 -1
  539. package/dist/modules/source-control.ee/source-control-preferences.service.ee.js +5 -2
  540. package/dist/modules/source-control.ee/source-control-preferences.service.ee.js.map +1 -1
  541. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.d.ts +27 -0
  542. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js +108 -0
  543. package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js.map +1 -0
  544. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.d.ts +23 -0
  545. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js +99 -0
  546. package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js.map +1 -0
  547. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.d.ts +4 -2
  548. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js +30 -11
  549. package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js.map +1 -1
  550. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.d.ts +18 -0
  551. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js +77 -0
  552. package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js.map +1 -0
  553. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.d.ts +8 -11
  554. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js +52 -71
  555. package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js.map +1 -1
  556. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +6 -4
  557. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +157 -40
  558. package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +1 -1
  559. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.d.ts +6 -2
  560. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js +30 -2
  561. package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js.map +1 -1
  562. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.d.ts +4 -2
  563. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js +69 -0
  564. package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js.map +1 -1
  565. package/dist/oauth/account-identifier.d.ts +2 -0
  566. package/dist/oauth/account-identifier.js +38 -0
  567. package/dist/oauth/account-identifier.js.map +1 -0
  568. package/dist/oauth/oauth.service.d.ts +0 -1
  569. package/dist/oauth/oauth.service.js +7 -39
  570. package/dist/oauth/oauth.service.js.map +1 -1
  571. package/dist/posthog/index.js +3 -0
  572. package/dist/posthog/index.js.map +1 -1
  573. package/dist/public-api/index.d.ts +1 -1
  574. package/dist/public-api/index.js +8 -4
  575. package/dist/public-api/index.js.map +1 -1
  576. package/dist/public-api/types.d.ts +0 -16
  577. package/dist/public-api/v1/controllers/index.d.ts +1 -0
  578. package/dist/public-api/v1/controllers/index.js +1 -0
  579. package/dist/public-api/v1/controllers/index.js.map +1 -1
  580. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.d.ts +11 -0
  581. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js +61 -0
  582. package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js.map +1 -0
  583. package/dist/public-api/v1/controllers/roles.public.controller.d.ts +4 -1
  584. package/dist/public-api/v1/controllers/roles.public.controller.js +95 -10
  585. package/dist/public-api/v1/controllers/roles.public.controller.js.map +1 -1
  586. package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +11 -2
  587. package/dist/public-api/v1/controllers/workflows.public.controller.js +159 -3
  588. package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -1
  589. package/dist/public-api/v1/handlers/credentials/credentials.handler.js +111 -43
  590. package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
  591. package/dist/public-api/v1/handlers/credentials/credentials.middleware.js +13 -6
  592. package/dist/public-api/v1/handlers/credentials/credentials.middleware.js.map +1 -1
  593. package/dist/public-api/v1/handlers/credentials/credentials.utils.d.ts +12 -0
  594. package/dist/public-api/v1/handlers/credentials/credentials.utils.js +182 -0
  595. package/dist/public-api/v1/handlers/credentials/credentials.utils.js.map +1 -0
  596. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.d.ts +1 -0
  597. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +1 -0
  598. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
  599. package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +0 -3
  600. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +0 -76
  601. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  602. package/dist/public-api/v1/openapi.yml +678 -126
  603. package/dist/public-api/v1/public-api-error-response.d.ts +2 -1
  604. package/dist/public-api/v1/public-api-error-response.js +2 -2
  605. package/dist/public-api/v1/public-api-error-response.js.map +1 -1
  606. package/dist/scaling/constants.js +1 -0
  607. package/dist/scaling/constants.js.map +1 -1
  608. package/dist/scaling/job-processor.js +15 -11
  609. package/dist/scaling/job-processor.js.map +1 -1
  610. package/dist/scaling/scaling.types.d.ts +2 -1
  611. package/dist/scheduling/durable-job-provisioner.d.ts +3 -2
  612. package/dist/scheduling/durable-job-provisioner.js +42 -8
  613. package/dist/scheduling/durable-job-provisioner.js.map +1 -1
  614. package/dist/scheduling/durable-scheduler.js +5 -1
  615. package/dist/scheduling/durable-scheduler.js.map +1 -1
  616. package/dist/scheduling/owner-key.d.ts +14 -0
  617. package/dist/scheduling/owner-key.js +17 -0
  618. package/dist/scheduling/owner-key.js.map +1 -0
  619. package/dist/scheduling/poll-trigger-node/poll-job-provider.d.ts +3 -1
  620. package/dist/scheduling/poll-trigger-node/poll-job-provider.js +7 -3
  621. package/dist/scheduling/poll-trigger-node/poll-job-provider.js.map +1 -1
  622. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.d.ts +5 -2
  623. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +60 -33
  624. package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -1
  625. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js +35 -6
  626. package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js.map +1 -1
  627. package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
  628. package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
  629. package/dist/server.js +8 -9
  630. package/dist/server.js.map +1 -1
  631. package/dist/services/ai-gateway.service.d.ts +3 -7
  632. package/dist/services/ai-gateway.service.js +31 -8
  633. package/dist/services/ai-gateway.service.js.map +1 -1
  634. package/dist/services/api-key-auth.strategy.js +3 -0
  635. package/dist/services/api-key-auth.strategy.js.map +1 -1
  636. package/dist/services/folder.service.d.ts +1 -1
  637. package/dist/services/folder.service.js.map +1 -1
  638. package/dist/services/frontend.service.js +7 -2
  639. package/dist/services/frontend.service.js.map +1 -1
  640. package/dist/services/instance-write-access.service.d.ts +5 -0
  641. package/dist/services/instance-write-access.service.js +26 -0
  642. package/dist/services/instance-write-access.service.js.map +1 -0
  643. package/dist/services/oauth-token-verifier-proxy.service.d.ts +4 -2
  644. package/dist/services/oauth-token-verifier-proxy.service.js +2 -2
  645. package/dist/services/oauth-token-verifier-proxy.service.js.map +1 -1
  646. package/dist/services/ownership-transfer/ownership-transfer.manifest.json +1 -1
  647. package/dist/services/project.service.ee.js +12 -5
  648. package/dist/services/project.service.ee.js.map +1 -1
  649. package/dist/services/protected-resource.registry.d.ts +4 -0
  650. package/dist/services/protected-resource.registry.js.map +1 -1
  651. package/dist/services/pruning/workflow-history-compaction.service.js +9 -6
  652. package/dist/services/pruning/workflow-history-compaction.service.js.map +1 -1
  653. package/dist/services/role.service.d.ts +13 -3
  654. package/dist/services/role.service.js +13 -5
  655. package/dist/services/role.service.js.map +1 -1
  656. package/dist/services/sandbox-settings.service.d.ts +29 -0
  657. package/dist/services/sandbox-settings.service.js +144 -0
  658. package/dist/services/sandbox-settings.service.js.map +1 -0
  659. package/dist/services/session-cookie-auth.strategy.d.ts +11 -0
  660. package/dist/services/session-cookie-auth.strategy.js +61 -0
  661. package/dist/services/session-cookie-auth.strategy.js.map +1 -0
  662. package/dist/utils/ai-proxy-language-model.d.ts +13 -0
  663. package/dist/utils/ai-proxy-language-model.js +48 -0
  664. package/dist/utils/ai-proxy-language-model.js.map +1 -0
  665. package/dist/utils/ttl-map.d.ts +3 -1
  666. package/dist/utils/ttl-map.js +13 -17
  667. package/dist/utils/ttl-map.js.map +1 -1
  668. package/dist/webhooks/webhook-helpers.js +12 -2
  669. package/dist/webhooks/webhook-helpers.js.map +1 -1
  670. package/dist/workflow-execute-additional-data.js +17 -1
  671. package/dist/workflow-execute-additional-data.js.map +1 -1
  672. package/dist/workflow-runner.d.ts +4 -1
  673. package/dist/workflow-runner.js +6 -1
  674. package/dist/workflow-runner.js.map +1 -1
  675. package/dist/workflows/publication/trigger-diff.js +10 -1
  676. package/dist/workflows/publication/trigger-diff.js.map +1 -1
  677. package/dist/workflows/publication/workflow-publication-applier.d.ts +2 -2
  678. package/dist/workflows/publication/workflow-publication-applier.js +11 -8
  679. package/dist/workflows/publication/workflow-publication-applier.js.map +1 -1
  680. package/dist/workflows/publication/workflow-publication-outbox-consumer.d.ts +6 -5
  681. package/dist/workflows/publication/workflow-publication-outbox-consumer.js +100 -52
  682. package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -1
  683. package/dist/workflows/publication/workflow-publication-outbox-worker-pool.d.ts +16 -0
  684. package/dist/workflows/publication/workflow-publication-outbox-worker-pool.js +50 -0
  685. package/dist/workflows/publication/workflow-publication-outbox-worker-pool.js.map +1 -0
  686. package/dist/workflows/triggers/durable-poller-gate.service.d.ts +19 -0
  687. package/dist/workflows/triggers/durable-poller-gate.service.js +78 -0
  688. package/dist/workflows/triggers/durable-poller-gate.service.js.map +1 -0
  689. package/dist/workflows/triggers/enabled-trigger-nodes.d.ts +6 -0
  690. package/dist/workflows/triggers/enabled-trigger-nodes.js +18 -0
  691. package/dist/workflows/triggers/enabled-trigger-nodes.js.map +1 -0
  692. package/dist/workflows/triggers/poll-cursor.service.d.ts +39 -0
  693. package/dist/workflows/triggers/poll-cursor.service.js +100 -0
  694. package/dist/workflows/triggers/poll-cursor.service.js.map +1 -0
  695. package/dist/workflows/triggers/trigger-activation-retry.d.ts +1 -1
  696. package/dist/workflows/triggers/trigger-activation-retry.js +4 -3
  697. package/dist/workflows/triggers/trigger-activation-retry.js.map +1 -1
  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 +9 -7
  702. package/dist/workflows/triggers/workflow-trigger-activator.js +65 -37
  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 +45 -44
  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
@@ -1,693 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AgentKnowledgeSandboxService = exports.AGENT_KNOWLEDGE_SANDBOX_NAME_PREFIX = void 0;
13
- const agents_1 = require("@n8n/agents");
14
- const sandbox_1 = require("@n8n/agents/sandbox");
15
- const backend_common_1 = require("@n8n/backend-common");
16
- const config_1 = require("@n8n/config");
17
- const constants_1 = require("@n8n/constants");
18
- const di_1 = require("@n8n/di");
19
- const n8n_core_1 = require("n8n-core");
20
- const n8n_workflow_1 = require("n8n-workflow");
21
- const nanoid_1 = require("nanoid");
22
- const node_crypto_1 = require("node:crypto");
23
- const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
24
- const not_found_error_1 = require("../../errors/response-errors/not-found.error");
25
- const ai_service_1 = require("../../services/ai.service");
26
- const ai_service_retry_1 = require("../../utils/ai-service-retry");
27
- const ttl_map_1 = require("../../utils/ttl-map");
28
- const agent_knowledge_commands_1 = require("./agent-knowledge-commands");
29
- const agent_knowledge_file_store_1 = require("./agent-knowledge-file-store");
30
- const agent_knowledge_gate_1 = require("./agent-knowledge-gate");
31
- const agent_knowledge_retrieval_1 = require("./agent-knowledge-retrieval");
32
- const agent_knowledge_storage_1 = require("./agent-knowledge-storage");
33
- const agent_file_repository_1 = require("./repositories/agent-file.repository");
34
- const agent_repository_1 = require("./repositories/agent.repository");
35
- exports.AGENT_KNOWLEDGE_SANDBOX_NAME_PREFIX = 'agent-';
36
- const MAX_SANDBOX_ERROR_DETAIL_CHARS = 2_000;
37
- const LABEL_KNOWLEDGE_BASE = 'n8n-agents-knowledgebase';
38
- const LABEL_PROJECT_ID = 'n8n-project-id';
39
- const LABEL_AGENT_ID = 'n8n-agent-id';
40
- const SANDBOX_STATE_STARTED = 'started';
41
- const DEAD_SANDBOX_STATES = new Set([
42
- 'destroyed',
43
- 'destroying',
44
- 'error',
45
- 'build_failed',
46
- ]);
47
- const DEFAULT_SANDBOX_IMAGE = 'daytonaio/sandbox:0.5.0';
48
- const AUTO_STOP_INTERVAL_MINUTES = 5;
49
- const MIRROR_MANIFEST_HASH_TTL_MS = 30 * constants_1.Time.minutes.toMilliseconds;
50
- const MIRROR_DISK_FIT_WARNING_BYTES = 2 * 1024 * 1024 * 1024;
51
- const MIRROR_UPLOAD_BATCH_BYTES = 64 * 1024 * 1024;
52
- function emptySearchKnowledgeResult(outputMode, limit) {
53
- if (outputMode === 'files_with_matches') {
54
- return { outputMode, files: [], limit, hasMore: false, truncated: false };
55
- }
56
- if (outputMode === 'count') {
57
- return { outputMode, counts: [], limit, hasMore: false, truncated: false };
58
- }
59
- return { outputMode, matches: [], limit, hasMore: false, truncated: false };
60
- }
61
- function buildSandboxScopeKey(projectId, agentId) {
62
- return `${projectId}:${agentId}`;
63
- }
64
- function buildSandboxName(scope) {
65
- return `${exports.AGENT_KNOWLEDGE_SANDBOX_NAME_PREFIX}${scope.instanceId}-${scope.projectId}-${scope.agentId}`.toLowerCase();
66
- }
67
- function extractCommandOutput(result) {
68
- return result.artifacts?.stdout ?? result.result ?? '';
69
- }
70
- function parseManifestNames(output) {
71
- return output
72
- .split(/\r?\n/)
73
- .map((line) => line.trim())
74
- .filter(Boolean);
75
- }
76
- function hashManifestNames(names) {
77
- return (0, node_crypto_1.createHash)('sha256')
78
- .update(JSON.stringify([...names].sort()))
79
- .digest('hex');
80
- }
81
- function isDaytonaNotFoundError(error) {
82
- const { DaytonaNotFoundError } = (0, sandbox_1.loadDaytona)();
83
- return error instanceof DaytonaNotFoundError;
84
- }
85
- function buildScopeLabels(projectId, agentId) {
86
- return {
87
- [LABEL_KNOWLEDGE_BASE]: 'true',
88
- [LABEL_PROJECT_ID]: projectId,
89
- [LABEL_AGENT_ID]: agentId,
90
- };
91
- }
92
- function isUsableSandbox(sandbox) {
93
- const state = sandbox.state;
94
- if (!state)
95
- return true;
96
- return !DEAD_SANDBOX_STATES.has(state);
97
- }
98
- function truncateSandboxErrorDetail(value) {
99
- if (value.length <= MAX_SANDBOX_ERROR_DETAIL_CHARS)
100
- return value;
101
- return `${value.slice(0, MAX_SANDBOX_ERROR_DETAIL_CHARS)}...[truncated]`;
102
- }
103
- function sanitizeSandboxErrorDetail(value) {
104
- return truncateSandboxErrorDetail((0, agents_1.redactText)(value).text.trimEnd());
105
- }
106
- function formatSandboxCommandFailure(operation, result) {
107
- const stderrText = sanitizeSandboxErrorDetail(result.stderr);
108
- const stdoutText = sanitizeSandboxErrorDetail(result.stdout);
109
- const parts = [`Agent knowledge ${operation} failed`, `exitCode=${result.exitCode}`];
110
- parts.push(stderrText ? `stderr=${stderrText}` : 'stderr=<empty>');
111
- parts.push(stdoutText ? `stdout=${stdoutText}` : 'stdout=<empty>');
112
- return parts.join('; ');
113
- }
114
- function assertKnowledgeFilesDirectoryAvailable(operation, result) {
115
- if (result.exitCode !== agent_knowledge_commands_1.KNOWLEDGE_FILES_DIR_UNAVAILABLE_EXIT_CODE)
116
- return;
117
- throw new n8n_workflow_1.OperationalError(`Agent knowledge ${operation} failed because the uploaded knowledge files directory is unavailable in the sandbox`);
118
- }
119
- let AgentKnowledgeSandboxService = class AgentKnowledgeSandboxService {
120
- constructor(agentsConfig, logger, aiService, instanceSettings, agentFileRepository, agentRepository, agentKnowledgeFileStore) {
121
- this.agentsConfig = agentsConfig;
122
- this.logger = logger;
123
- this.aiService = aiService;
124
- this.instanceSettings = instanceSettings;
125
- this.agentFileRepository = agentFileRepository;
126
- this.agentRepository = agentRepository;
127
- this.agentKnowledgeFileStore = agentKnowledgeFileStore;
128
- this.pendingSandboxAcquisitions = new Map();
129
- this.mirrorManifestHashes = new ttl_map_1.TtlMap(MIRROR_MANIFEST_HASH_TTL_MS);
130
- this.pendingMirrorSyncs = new Map();
131
- }
132
- async warmSandbox(projectId, agentId) {
133
- this.assertKnowledgeConfiguration(projectId, agentId);
134
- await this.acquireSandbox(projectId, agentId);
135
- }
136
- async destroySandbox(projectId, agentId) {
137
- if (!this.isKnowledgeBaseEnabled())
138
- return;
139
- try {
140
- const { Daytona } = (0, sandbox_1.loadDaytona)();
141
- const connection = await this.resolveDaytonaConnection(projectId);
142
- const daytona = new Daytona({
143
- apiUrl: connection.apiUrl,
144
- apiKey: connection.apiKey,
145
- });
146
- const name = buildSandboxName({
147
- instanceId: this.instanceSettings.instanceId,
148
- projectId,
149
- agentId,
150
- });
151
- const timeoutSeconds = Math.ceil(this.agentsConfig.sandboxTimeout / 1000);
152
- const sandbox = await daytona.get(name);
153
- await sandbox.delete(timeoutSeconds);
154
- }
155
- catch (error) {
156
- this.logger.warn('Failed to destroy agent knowledge sandbox', {
157
- projectId,
158
- agentId,
159
- error: error instanceof Error ? error.message : String(error),
160
- });
161
- }
162
- }
163
- async searchKnowledge(projectId, agentId, request) {
164
- const validatedRequest = (0, agent_knowledge_retrieval_1.parseSearchKnowledgeRequest)(request);
165
- const references = await this.loadKnowledgeReferenceLookup(projectId, agentId);
166
- const outputMode = validatedRequest.output_mode ?? 'content';
167
- const limit = validatedRequest.head_limit ?? agent_knowledge_retrieval_1.DEFAULT_SEARCH_TEXT_LIMIT;
168
- if (references.files.length === 0) {
169
- return emptySearchKnowledgeResult(outputMode, limit);
170
- }
171
- const scopedFilesByPath = new Map();
172
- for (const path of validatedRequest.path ?? []) {
173
- const file = this.resolveOptionalFile({ file: path }, references);
174
- if (!file) {
175
- throw new bad_request_error_1.BadRequestError('Knowledge file not found');
176
- }
177
- scopedFilesByPath.set(file.file, file);
178
- }
179
- const scopedFiles = [...scopedFilesByPath.values()];
180
- const command = (0, agent_knowledge_commands_1.buildSearchKnowledgeCommand)(validatedRequest, scopedFiles.map((file) => file.file));
181
- const result = await this.executeKnowledgeOperation(projectId, agentId, command, references.files);
182
- assertKnowledgeFilesDirectoryAvailable('search', result);
183
- if (result.exitCode === 1) {
184
- return emptySearchKnowledgeResult(outputMode, limit);
185
- }
186
- if (result.exitCode !== 0) {
187
- throw new n8n_workflow_1.OperationalError(formatSandboxCommandFailure('search', result));
188
- }
189
- if (outputMode === 'files_with_matches') {
190
- const parsed = (0, agent_knowledge_commands_1.parseRipgrepFilesOutput)(result.stdout, references.byFile);
191
- const files = parsed.files.slice(0, limit);
192
- return {
193
- outputMode,
194
- files,
195
- limit,
196
- hasMore: parsed.files.length > limit,
197
- truncated: parsed.incomplete,
198
- };
199
- }
200
- if (outputMode === 'count') {
201
- const parsed = (0, agent_knowledge_commands_1.parseRipgrepCountOutput)(result.stdout, references.byFile);
202
- const counts = parsed.counts.slice(0, limit);
203
- return {
204
- outputMode,
205
- counts,
206
- limit,
207
- hasMore: parsed.counts.length > limit,
208
- truncated: parsed.incomplete,
209
- };
210
- }
211
- const parsed = (0, agent_knowledge_commands_1.parseRipgrepOutput)(result.stdout, references.byFile, (0, agent_knowledge_commands_1.getSearchContextWindow)(validatedRequest));
212
- const matches = parsed.matches.slice(0, limit);
213
- return {
214
- outputMode,
215
- matches,
216
- limit,
217
- hasMore: parsed.matches.length > limit,
218
- truncated: parsed.incomplete,
219
- };
220
- }
221
- async globKnowledgeFiles(projectId, agentId, request) {
222
- const validatedRequest = (0, agent_knowledge_retrieval_1.parseGlobKnowledgeFilesRequest)(request);
223
- const references = await this.loadKnowledgeReferenceLookup(projectId, agentId);
224
- const limit = validatedRequest.limit ?? agent_knowledge_retrieval_1.DEFAULT_GLOB_FILES_LIMIT;
225
- const offset = validatedRequest.offset ?? 0;
226
- if (references.files.length === 0) {
227
- return { files: [], limit, offset, hasMore: false };
228
- }
229
- const matches = matchKnowledgeFilesByGlob(references.files, validatedRequest);
230
- return {
231
- files: matches.slice(offset, offset + limit),
232
- limit,
233
- offset,
234
- hasMore: matches.length > offset + limit,
235
- };
236
- }
237
- async readKnowledge(projectId, agentId, request) {
238
- const validatedRequest = (0, agent_knowledge_retrieval_1.parseReadKnowledgeRequest)(request);
239
- const references = await this.loadKnowledgeReferenceLookup(projectId, agentId);
240
- const file = this.resolveRequiredFile(validatedRequest, references);
241
- const command = (0, agent_knowledge_commands_1.buildReadKnowledgeCommand)(file.file, validatedRequest);
242
- const result = await this.executeKnowledgeOperation(projectId, agentId, command, references.files);
243
- assertKnowledgeFilesDirectoryAvailable('read', result);
244
- if (result.exitCode !== 0) {
245
- throw new n8n_workflow_1.OperationalError(formatSandboxCommandFailure('read', result));
246
- }
247
- const parsed = (0, agent_knowledge_commands_1.parseReadKnowledgeOutput)(result.stdout, file, validatedRequest);
248
- return {
249
- file: file.file,
250
- fileId: file.fileId,
251
- displayName: file.displayName,
252
- ranges: parsed.ranges,
253
- truncated: parsed.truncated,
254
- };
255
- }
256
- async executeKnowledgeOperation(projectId, agentId, command, files) {
257
- const timeoutSeconds = Math.ceil(this.agentsConfig.sandboxTimeout / 1000);
258
- const scopedCommand = (0, agent_knowledge_commands_1.buildScopedKnowledgeShellCommand)(command);
259
- const sandbox = await this.acquireSandbox(projectId, agentId);
260
- const sandboxName = buildSandboxName({
261
- instanceId: this.instanceSettings.instanceId,
262
- projectId,
263
- agentId,
264
- });
265
- await this.ensureMirrorSynced(sandbox, files, sandboxName);
266
- const result = await sandbox.process.executeCommand(scopedCommand, undefined, undefined, timeoutSeconds);
267
- return {
268
- exitCode: result.exitCode,
269
- stdout: result.artifacts?.stdout ?? result.result ?? '',
270
- stderr: result.artifacts &&
271
- 'stderr' in result.artifacts &&
272
- typeof result.artifacts.stderr === 'string'
273
- ? result.artifacts.stderr
274
- : '',
275
- };
276
- }
277
- async ensureMirrorSynced(sandbox, files, sandboxName) {
278
- const expectedHash = hashManifestNames(files.map((file) => file.file));
279
- if (this.mirrorManifestHashes.get(sandboxName) === expectedHash) {
280
- return;
281
- }
282
- let pending = this.pendingMirrorSyncs.get(sandboxName);
283
- if (!pending) {
284
- pending = this.syncMirror(sandbox, files, expectedHash, sandboxName).finally(() => {
285
- this.pendingMirrorSyncs.delete(sandboxName);
286
- });
287
- this.pendingMirrorSyncs.set(sandboxName, pending);
288
- }
289
- await pending;
290
- }
291
- async syncMirror(sandbox, files, expectedHash, sandboxName) {
292
- if (this.mirrorManifestHashes.get(sandboxName) === expectedHash)
293
- return;
294
- const manifestResult = await sandbox.process.executeCommand((0, agent_knowledge_commands_1.buildReadMirrorManifestCommand)(), undefined, undefined, agent_knowledge_commands_1.MIRROR_SYNC_TIMEOUT_SECONDS);
295
- const present = parseManifestNames(extractCommandOutput(manifestResult));
296
- const expectedNames = files.map((file) => file.file);
297
- const expectedSet = new Set(expectedNames);
298
- const presentSet = new Set(present);
299
- const toCopy = expectedNames.filter((name) => !presentSet.has(name));
300
- const toDelete = present.filter((name) => !expectedSet.has(name));
301
- if (toCopy.length === 0 && toDelete.length === 0) {
302
- this.mirrorManifestHashes.set(sandboxName, expectedHash);
303
- return;
304
- }
305
- for (const name of [...expectedNames, ...toDelete]) {
306
- (0, agent_knowledge_storage_1.assertKnowledgePathSegment)(name, 'knowledge mirror file name');
307
- }
308
- if (present.length === 0 && toCopy.length > 0) {
309
- const totalBytes = files.reduce((total, file) => total + file.fileSizeBytes, 0);
310
- if (totalBytes > MIRROR_DISK_FIT_WARNING_BYTES) {
311
- this.logger.warn('Agent knowledge mirror copy exceeds the disk-fit guard threshold', {
312
- sandboxName,
313
- totalBytes,
314
- });
315
- }
316
- }
317
- const filesByName = new Map(files.map((file) => [file.file, file]));
318
- const copiedNames = await this.uploadMirrorFiles(sandbox, toCopy, filesByName, sandboxName);
319
- const finalManifestNames = expectedNames.filter((name) => copiedNames.has(name) || presentSet.has(name));
320
- const syncResult = await sandbox.process.executeCommand((0, agent_knowledge_commands_1.buildMirrorFinalizeCommand)([...copiedNames], toDelete, finalManifestNames), undefined, undefined, agent_knowledge_commands_1.MIRROR_SYNC_TIMEOUT_SECONDS);
321
- if (syncResult.exitCode !== 0) {
322
- throw new n8n_workflow_1.OperationalError(`Agent knowledge mirror sync failed: exitCode=${syncResult.exitCode}; output=${sanitizeSandboxErrorDetail(extractCommandOutput(syncResult))}`);
323
- }
324
- this.mirrorManifestHashes.set(sandboxName, hashManifestNames(finalManifestNames));
325
- }
326
- async uploadMirrorFiles(sandbox, names, filesByName, sandboxName) {
327
- const copiedNames = new Set();
328
- if (names.length === 0)
329
- return copiedNames;
330
- await sandbox.fs.createFolder(agent_knowledge_storage_1.KNOWLEDGE_MIRROR_FILES_DIR, '755');
331
- let batch = [];
332
- let batchNames = [];
333
- let batchBytes = 0;
334
- const flushBatch = async () => {
335
- if (batch.length === 0)
336
- return;
337
- await sandbox.fs.uploadFiles(batch);
338
- for (const name of batchNames)
339
- copiedNames.add(name);
340
- batch = [];
341
- batchNames = [];
342
- batchBytes = 0;
343
- };
344
- for (const name of names) {
345
- const file = filesByName.get(name);
346
- if (!file)
347
- continue;
348
- try {
349
- const buffer = await this.agentKnowledgeFileStore.readAsBuffer({
350
- storedAt: file.storedAt,
351
- storageKey: file.storageKey,
352
- });
353
- if (!buffer) {
354
- this.logger.warn('Failed to load agent knowledge file for mirror sync', {
355
- sandboxName,
356
- file: name,
357
- error: 'not found',
358
- });
359
- continue;
360
- }
361
- batch.push({ source: buffer, destination: `${agent_knowledge_storage_1.KNOWLEDGE_MIRROR_FILES_DIR}/.tmp-${name}` });
362
- batchNames.push(name);
363
- batchBytes += buffer.length;
364
- }
365
- catch (error) {
366
- this.logger.warn('Failed to load agent knowledge file for mirror sync', {
367
- sandboxName,
368
- file: name,
369
- error: error instanceof Error ? error.message : String(error),
370
- });
371
- continue;
372
- }
373
- if (batchBytes >= MIRROR_UPLOAD_BATCH_BYTES) {
374
- await flushBatch();
375
- }
376
- }
377
- await flushBatch();
378
- return copiedNames;
379
- }
380
- prewarmMirrorInBackground(projectId, agentId) {
381
- void (async () => {
382
- const references = await this.loadKnowledgeReferenceLookup(projectId, agentId);
383
- const sandbox = await this.acquireSandbox(projectId, agentId);
384
- const sandboxName = buildSandboxName({
385
- instanceId: this.instanceSettings.instanceId,
386
- projectId,
387
- agentId,
388
- });
389
- await this.ensureMirrorSynced(sandbox, references.files, sandboxName);
390
- })().catch((error) => {
391
- this.logger.warn('Agent knowledge mirror pre-warm failed', {
392
- projectId,
393
- agentId,
394
- error: error instanceof Error ? error.message : String(error),
395
- });
396
- });
397
- }
398
- invalidateMirror(projectId, agentId) {
399
- const sandboxName = buildSandboxName({
400
- instanceId: this.instanceSettings.instanceId,
401
- projectId,
402
- agentId,
403
- });
404
- this.mirrorManifestHashes.delete(sandboxName);
405
- }
406
- async loadKnowledgeReferenceLookup(projectId, agentId) {
407
- await this.assertKnowledgeAccess(projectId, agentId);
408
- const files = await this.loadKnowledgeFileReferences(agentId);
409
- return {
410
- files,
411
- byFile: new Map(files.map((file) => [file.file, file])),
412
- byId: new Map(files.map((file) => [file.fileId, file])),
413
- };
414
- }
415
- async loadKnowledgeFileReferences(agentId) {
416
- const files = await this.agentFileRepository.findByAgentId(agentId);
417
- return files.map((file) => ({
418
- file: (0, agent_knowledge_storage_1.storageFileNameForOriginalFileName)(file.fileName),
419
- fileId: file.id,
420
- storedAt: file.storedAt,
421
- storageKey: file.storageKey,
422
- displayName: file.fileName,
423
- mimeType: file.mimeType,
424
- fileSizeBytes: file.fileSizeBytes,
425
- createdAt: file.createdAt.toISOString(),
426
- }));
427
- }
428
- resolveRequiredFile(request, references) {
429
- const file = this.resolveOptionalFile(request, references);
430
- if (!file) {
431
- throw new bad_request_error_1.BadRequestError('Knowledge file not found');
432
- }
433
- return file;
434
- }
435
- resolveOptionalFile(request, references) {
436
- if (!request.file && !request.fileId)
437
- return undefined;
438
- if (request.file && request.fileId) {
439
- const normalized = (0, agent_knowledge_retrieval_1.assertValidKnowledgeFilePath)(request.file);
440
- const fileByPath = references.byFile.get(normalized);
441
- const fileById = references.byId.get(request.fileId);
442
- if (!fileByPath || !fileById || fileByPath.fileId !== fileById.fileId) {
443
- throw new bad_request_error_1.BadRequestError('Knowledge file not found');
444
- }
445
- return fileByPath;
446
- }
447
- if (request.file) {
448
- const normalized = (0, agent_knowledge_retrieval_1.assertValidKnowledgeFilePath)(request.file);
449
- const file = references.byFile.get(normalized);
450
- if (!file) {
451
- throw new bad_request_error_1.BadRequestError('Knowledge file not found');
452
- }
453
- return file;
454
- }
455
- const file = references.byId.get(request.fileId ?? '');
456
- if (!file) {
457
- throw new bad_request_error_1.BadRequestError('Knowledge file not found');
458
- }
459
- return file;
460
- }
461
- async acquireSandbox(projectId, agentId) {
462
- const cacheKey = buildSandboxScopeKey(projectId, agentId);
463
- let pending = this.pendingSandboxAcquisitions.get(cacheKey);
464
- if (!pending) {
465
- pending = this.acquireSandboxFresh(projectId, agentId).finally(() => {
466
- this.pendingSandboxAcquisitions.delete(cacheKey);
467
- });
468
- this.pendingSandboxAcquisitions.set(cacheKey, pending);
469
- }
470
- return await pending;
471
- }
472
- async acquireSandboxFresh(projectId, agentId) {
473
- const agent = await this.agentRepository.findByIdAndProjectId(agentId, projectId);
474
- if (!agent) {
475
- throw new not_found_error_1.NotFoundError(`Agent "${agentId}" not found`);
476
- }
477
- const { Daytona } = (0, sandbox_1.loadDaytona)();
478
- const connection = await this.resolveDaytonaConnection(projectId);
479
- const daytona = new Daytona({
480
- apiUrl: connection.apiUrl,
481
- apiKey: connection.apiKey,
482
- });
483
- const labels = buildScopeLabels(projectId, agentId);
484
- const timeoutSeconds = Math.ceil(this.agentsConfig.sandboxTimeout / 1000);
485
- const name = buildSandboxName({
486
- instanceId: this.instanceSettings.instanceId,
487
- projectId,
488
- agentId,
489
- });
490
- const sandboxByName = await this.resolveSandboxByName(daytona, name, timeoutSeconds, connection);
491
- if (sandboxByName) {
492
- this.logger.debug('Reused agent knowledge sandbox', { projectId, agentId, name });
493
- return sandboxByName;
494
- }
495
- const image = connection.image;
496
- const baseCreateParams = {
497
- name,
498
- labels,
499
- language: 'typescript',
500
- ephemeral: this.agentsConfig.sandboxEphemeral,
501
- autoStopInterval: AUTO_STOP_INTERVAL_MINUTES,
502
- };
503
- let sandbox;
504
- if (connection.snapshot) {
505
- try {
506
- sandbox = await daytona.create({ ...baseCreateParams, snapshot: connection.snapshot }, { timeout: timeoutSeconds });
507
- }
508
- catch (error) {
509
- if (connection.mode === 'proxy')
510
- throw error;
511
- this.logger.warn('Agent knowledge sandbox create from snapshot failed; falling back to image', {
512
- projectId,
513
- agentId,
514
- snapshotName: connection.snapshot,
515
- error: error instanceof Error ? error.message : String(error),
516
- });
517
- sandbox = await daytona.create({ ...baseCreateParams, image }, { timeout: timeoutSeconds });
518
- }
519
- }
520
- else {
521
- if (connection.mode === 'proxy') {
522
- throw new n8n_workflow_1.OperationalError('Agent knowledge sandbox requires a snapshot when Daytona is reached through the AI service proxy. Set N8N_AGENTS_AI_SANDBOX_SNAPSHOT to a snapshot available to the instance.');
523
- }
524
- sandbox = await daytona.create({ ...baseCreateParams, image }, { timeout: timeoutSeconds });
525
- }
526
- this.logger.debug('Created agent knowledge sandbox', { projectId, agentId, name });
527
- return sandbox;
528
- }
529
- async resolveDaytonaConnection(projectId) {
530
- const directImage = this.agentsConfig.sandboxImage || DEFAULT_SANDBOX_IMAGE;
531
- const snapshot = this.agentsConfig.sandboxSnapshot.trim() || undefined;
532
- if (!this.aiService.isProxyEnabled()) {
533
- return {
534
- mode: 'direct',
535
- apiUrl: this.agentsConfig.daytonaApiUrl || undefined,
536
- apiKey: this.agentsConfig.daytonaApiKey || undefined,
537
- image: directImage,
538
- snapshot,
539
- };
540
- }
541
- const client = await this.aiService.getClient();
542
- const proxyConfig = await (0, ai_service_retry_1.callAiServiceWithRetry)('Agent knowledge sandbox proxy config fetch', async () => await client.getSandboxProxyConfig(), this.logger);
543
- const token = await (0, ai_service_retry_1.callAiServiceWithRetry)('Agent knowledge sandbox proxy token mint', async () => await client.getBuilderApiProxyToken({ id: projectId }, { userMessageId: (0, nanoid_1.nanoid)() }), this.logger);
544
- return {
545
- mode: 'proxy',
546
- apiUrl: client.getSandboxProxyBaseUrl(),
547
- apiKey: token.accessToken,
548
- image: proxyConfig.image || directImage,
549
- snapshot,
550
- };
551
- }
552
- async resolveSandboxByName(daytona, name, timeoutSeconds, connection) {
553
- let sandbox;
554
- try {
555
- sandbox = await daytona.get(name);
556
- }
557
- catch (error) {
558
- if (isDaytonaNotFoundError(error)) {
559
- return undefined;
560
- }
561
- throw error;
562
- }
563
- if (!isUsableSandbox(sandbox)) {
564
- await sandbox.delete(timeoutSeconds);
565
- return undefined;
566
- }
567
- if (sandbox.state !== SANDBOX_STATE_STARTED) {
568
- await sandbox.start(timeoutSeconds);
569
- }
570
- return await this.resolveReusableSandbox(daytona, sandbox, connection);
571
- }
572
- async resolveReusableSandbox(daytona, sandbox, connection) {
573
- if (connection.mode !== 'proxy') {
574
- return sandbox;
575
- }
576
- return await daytona.get(sandbox.name);
577
- }
578
- async assertKnowledgeAccess(projectId, agentId) {
579
- this.assertKnowledgeConfiguration(projectId, agentId);
580
- const agentExists = await this.agentRepository.existsBy({ id: agentId, projectId });
581
- if (!agentExists) {
582
- throw new not_found_error_1.NotFoundError(`Agent "${agentId}" not found`);
583
- }
584
- }
585
- assertKnowledgeConfiguration(projectId, agentId) {
586
- this.assertKnowledgeBaseEnabled();
587
- this.assertValidPathSegments(projectId, agentId);
588
- }
589
- assertValidPathSegments(projectId, agentId) {
590
- try {
591
- (0, agent_knowledge_storage_1.assertKnowledgePathSegment)(this.instanceSettings.instanceId, 'instance id');
592
- (0, agent_knowledge_storage_1.assertKnowledgePathSegment)(projectId, 'project id');
593
- (0, agent_knowledge_storage_1.assertKnowledgePathSegment)(agentId, 'agent id');
594
- }
595
- catch (error) {
596
- throw new n8n_workflow_1.OperationalError(error instanceof Error ? error.message : 'Invalid agent knowledge storage scope');
597
- }
598
- }
599
- isKnowledgeBaseEnabled() {
600
- return (0, agent_knowledge_gate_1.isAgentKnowledgeBaseEnabled)(this.agentsConfig, this.aiService.isProxyEnabled());
601
- }
602
- assertKnowledgeBaseEnabled() {
603
- if (this.isKnowledgeBaseEnabled()) {
604
- return;
605
- }
606
- throw new n8n_workflow_1.OperationalError('Agent knowledge sandbox is not enabled');
607
- }
608
- };
609
- exports.AgentKnowledgeSandboxService = AgentKnowledgeSandboxService;
610
- exports.AgentKnowledgeSandboxService = AgentKnowledgeSandboxService = __decorate([
611
- (0, di_1.Service)(),
612
- __metadata("design:paramtypes", [config_1.AgentsConfig, backend_common_1.Logger, ai_service_1.AiService, n8n_core_1.InstanceSettings, agent_file_repository_1.AgentFileRepository, agent_repository_1.AgentRepository, agent_knowledge_file_store_1.AgentKnowledgeFileStore])
613
- ], AgentKnowledgeSandboxService);
614
- function matchKnowledgeFilesByGlob(files, request) {
615
- const caseSensitive = request.caseSensitive === true;
616
- const regex = globPatternToRegExp(request.pattern, caseSensitive);
617
- const patternTokens = tokenizeKnowledgeFilePattern(request.pattern, caseSensitive);
618
- return files
619
- .filter((file) => regex.test(file.file) || regex.test(file.displayName))
620
- .map((file) => ({
621
- file,
622
- bucket: getKnowledgeFileMatchBucket(file, patternTokens, caseSensitive),
623
- }))
624
- .sort((left, right) => left.bucket - right.bucket || left.file.displayName.localeCompare(right.file.displayName))
625
- .map(({ file }) => file);
626
- }
627
- function getKnowledgeFileMatchBucket(file, patternTokens, caseSensitive) {
628
- const fileNames = [file.file, file.displayName];
629
- if (fileNames.some((fileName) => hasExactTokenMatch(tokenizeKnowledgeFileName(fileName, caseSensitive), patternTokens))) {
630
- return 0;
631
- }
632
- if (fileNames.some((fileName) => containsTokenSequence(tokenizeKnowledgeFileName(fileName, caseSensitive), patternTokens))) {
633
- return 1;
634
- }
635
- const compactPattern = patternTokens.join('');
636
- if (compactPattern &&
637
- fileNames.some((fileName) => compactKnowledgeFileName(fileName, caseSensitive).includes(compactPattern))) {
638
- return 2;
639
- }
640
- return 3;
641
- }
642
- function tokenizeKnowledgeFilePattern(pattern, caseSensitive) {
643
- return tokenizeKnowledgeFileName(pattern.replace(/[*?]/g, ' '), caseSensitive);
644
- }
645
- function tokenizeKnowledgeFileName(fileName, caseSensitive) {
646
- const normalized = caseSensitive ? fileName : fileName.toLowerCase();
647
- const baseName = normalized
648
- .split(/[\\/]/)
649
- .at(-1)
650
- ?.replace(/\.[^.]*$/, '') ?? normalized;
651
- return baseName.split(/[^a-z0-9]+/i).filter(Boolean);
652
- }
653
- function compactKnowledgeFileName(fileName, caseSensitive) {
654
- return tokenizeKnowledgeFileName(fileName, caseSensitive).join('');
655
- }
656
- function hasExactTokenMatch(fileTokens, patternTokens) {
657
- return (patternTokens.length > 0 &&
658
- fileTokens.length === patternTokens.length &&
659
- fileTokens.every((fileToken, index) => fileToken === patternTokens[index]));
660
- }
661
- function containsTokenSequence(fileTokens, patternTokens) {
662
- if (patternTokens.length === 0)
663
- return false;
664
- let patternIndex = 0;
665
- for (const fileToken of fileTokens) {
666
- if (fileToken === patternTokens[patternIndex]) {
667
- patternIndex++;
668
- if (patternIndex === patternTokens.length)
669
- return true;
670
- }
671
- }
672
- return false;
673
- }
674
- function globPatternToRegExp(pattern, caseSensitive) {
675
- let source = '^';
676
- for (const character of pattern) {
677
- if (character === '*') {
678
- source += '.*';
679
- continue;
680
- }
681
- if (character === '?') {
682
- source += '.';
683
- continue;
684
- }
685
- source += escapeRegExp(character);
686
- }
687
- source += '$';
688
- return new RegExp(source, caseSensitive ? undefined : 'i');
689
- }
690
- function escapeRegExp(value) {
691
- return value.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
692
- }
693
- //# sourceMappingURL=agent-knowledge-sandbox.service.js.map