n8n 2.15.0 → 2.16.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 (414) hide show
  1. package/dist/active-workflow-manager.js +25 -12
  2. package/dist/active-workflow-manager.js.map +1 -1
  3. package/dist/auth/auth.service.js +1 -0
  4. package/dist/auth/auth.service.js.map +1 -1
  5. package/dist/build.tsbuildinfo +1 -1
  6. package/dist/commands/base-command.js +7 -1
  7. package/dist/commands/base-command.js.map +1 -1
  8. package/dist/controllers/ai.controller.js +2 -2
  9. package/dist/controllers/ai.controller.js.map +1 -1
  10. package/dist/controllers/e2e.controller.js +2 -0
  11. package/dist/controllers/e2e.controller.js.map +1 -1
  12. package/dist/credentials/credentials.controller.js +1 -1
  13. package/dist/credentials/credentials.controller.js.map +1 -1
  14. package/dist/credentials/credentials.service.d.ts +7 -4
  15. package/dist/credentials/credentials.service.js +77 -16
  16. package/dist/credentials/credentials.service.js.map +1 -1
  17. package/dist/credentials-helper.js +7 -1
  18. package/dist/credentials-helper.js.map +1 -1
  19. package/dist/errors/http-error-classifier.d.ts +31 -0
  20. package/dist/errors/http-error-classifier.js +60 -0
  21. package/dist/errors/http-error-classifier.js.map +1 -0
  22. package/dist/errors/http-error-serializers.d.ts +18 -0
  23. package/dist/errors/http-error-serializers.js +64 -0
  24. package/dist/errors/http-error-serializers.js.map +1 -0
  25. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  26. package/dist/eventbus/event-message-classes/index.js +3 -0
  27. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  28. package/dist/events/maps/relay.event-map.d.ts +22 -0
  29. package/dist/events/relays/log-streaming.event-relay.d.ts +3 -0
  30. package/dist/events/relays/log-streaming.event-relay.js +21 -0
  31. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  32. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +2 -0
  33. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  34. package/dist/executions/execution.service.js +2 -1
  35. package/dist/executions/execution.service.js.map +1 -1
  36. package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +1 -0
  37. package/dist/modules/chat-hub/chat-hub-workflow.service.js +18 -2
  38. package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
  39. package/dist/modules/chat-hub/chat-hub.types.d.ts +5 -0
  40. package/dist/modules/chat-hub/chat-hub.types.js +1 -0
  41. package/dist/modules/chat-hub/chat-hub.types.js.map +1 -1
  42. package/dist/modules/chat-hub/context-limits.js +10 -0
  43. package/dist/modules/chat-hub/context-limits.js.map +1 -1
  44. package/dist/modules/community-packages/community-node-types-utils.d.ts +2 -2
  45. package/dist/modules/community-packages/community-node-types-utils.js +4 -4
  46. package/dist/modules/community-packages/community-node-types-utils.js.map +1 -1
  47. package/dist/modules/community-packages/strapi-utils.d.ts +1 -1
  48. package/dist/modules/data-table/data-table-proxy.service.d.ts +44 -2
  49. package/dist/modules/data-table/data-table-proxy.service.js +86 -2
  50. package/dist/modules/data-table/data-table-proxy.service.js.map +1 -1
  51. package/dist/modules/dynamic-credentials.ee/services/resolver-config-expression.service.js +10 -4
  52. package/dist/modules/dynamic-credentials.ee/services/resolver-config-expression.service.js.map +1 -1
  53. package/dist/modules/instance-ai/compaction.service.d.ts +19 -0
  54. package/dist/modules/instance-ai/compaction.service.js +213 -0
  55. package/dist/modules/instance-ai/compaction.service.js.map +1 -0
  56. package/dist/modules/instance-ai/entities/index.d.ts +7 -0
  57. package/dist/modules/instance-ai/entities/index.js +18 -0
  58. package/dist/modules/instance-ai/entities/index.js.map +1 -0
  59. package/dist/modules/instance-ai/entities/instance-ai-iteration-log.entity.d.ts +7 -0
  60. package/dist/modules/instance-ai/entities/instance-ai-iteration-log.entity.js +38 -0
  61. package/dist/modules/instance-ai/entities/instance-ai-iteration-log.entity.js.map +1 -0
  62. package/dist/modules/instance-ai/entities/instance-ai-message.entity.d.ts +9 -0
  63. package/dist/modules/instance-ai/entities/instance-ai-message.entity.js +47 -0
  64. package/dist/modules/instance-ai/entities/instance-ai-message.entity.js.map +1 -0
  65. package/dist/modules/instance-ai/entities/instance-ai-observational-memory.entity.d.ts +33 -0
  66. package/dist/modules/instance-ai/entities/instance-ai-observational-memory.entity.js +145 -0
  67. package/dist/modules/instance-ai/entities/instance-ai-observational-memory.entity.js.map +1 -0
  68. package/dist/modules/instance-ai/entities/instance-ai-resource.entity.d.ts +6 -0
  69. package/dist/modules/instance-ai/entities/instance-ai-resource.entity.js +33 -0
  70. package/dist/modules/instance-ai/entities/instance-ai-resource.entity.js.map +1 -0
  71. package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.d.ts +8 -0
  72. package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.js +43 -0
  73. package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.js.map +1 -0
  74. package/dist/modules/instance-ai/entities/instance-ai-thread.entity.d.ts +7 -0
  75. package/dist/modules/instance-ai/entities/instance-ai-thread.entity.js +38 -0
  76. package/dist/modules/instance-ai/entities/instance-ai-thread.entity.js.map +1 -0
  77. package/dist/modules/instance-ai/entities/instance-ai-workflow-snapshot.entity.d.ts +8 -0
  78. package/dist/modules/instance-ai/entities/instance-ai-workflow-snapshot.entity.js +41 -0
  79. package/dist/modules/instance-ai/entities/instance-ai-workflow-snapshot.entity.js.map +1 -0
  80. package/dist/modules/instance-ai/event-bus/in-process-event-bus.d.ts +19 -0
  81. package/dist/modules/instance-ai/event-bus/in-process-event-bus.js +98 -0
  82. package/dist/modules/instance-ai/event-bus/in-process-event-bus.js.map +1 -0
  83. package/dist/modules/instance-ai/filesystem/index.d.ts +4 -0
  84. package/dist/modules/instance-ai/filesystem/index.js +10 -0
  85. package/dist/modules/instance-ai/filesystem/index.js.map +1 -0
  86. package/dist/modules/instance-ai/filesystem/local-fs-provider.d.ts +26 -0
  87. package/dist/modules/instance-ai/filesystem/local-fs-provider.js +321 -0
  88. package/dist/modules/instance-ai/filesystem/local-fs-provider.js.map +1 -0
  89. package/dist/modules/instance-ai/filesystem/local-gateway-registry.d.ts +29 -0
  90. package/dist/modules/instance-ai/filesystem/local-gateway-registry.js +137 -0
  91. package/dist/modules/instance-ai/filesystem/local-gateway-registry.js.map +1 -0
  92. package/dist/modules/instance-ai/filesystem/local-gateway.d.ts +35 -0
  93. package/dist/modules/instance-ai/filesystem/local-gateway.js +99 -0
  94. package/dist/modules/instance-ai/filesystem/local-gateway.js.map +1 -0
  95. package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +36 -0
  96. package/dist/modules/instance-ai/instance-ai-memory.service.js +265 -0
  97. package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -0
  98. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +55 -0
  99. package/dist/modules/instance-ai/instance-ai-settings.service.js +430 -0
  100. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -0
  101. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +86 -0
  102. package/dist/modules/instance-ai/instance-ai.adapter.service.js +1731 -0
  103. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -0
  104. package/dist/modules/instance-ai/instance-ai.controller.d.ts +102 -0
  105. package/dist/modules/instance-ai/instance-ai.controller.js +613 -0
  106. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -0
  107. package/dist/modules/instance-ai/instance-ai.module.d.ts +13 -0
  108. package/dist/modules/instance-ai/instance-ai.module.js +119 -0
  109. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -0
  110. package/dist/modules/instance-ai/instance-ai.service.d.ts +132 -0
  111. package/dist/modules/instance-ai/instance-ai.service.js +1674 -0
  112. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -0
  113. package/dist/modules/instance-ai/internal-messages.d.ts +2 -0
  114. package/dist/modules/instance-ai/internal-messages.js +11 -0
  115. package/dist/modules/instance-ai/internal-messages.js.map +1 -0
  116. package/dist/modules/instance-ai/message-parser.d.ts +12 -0
  117. package/dist/modules/instance-ai/message-parser.js +171 -0
  118. package/dist/modules/instance-ai/message-parser.js.map +1 -0
  119. package/dist/modules/instance-ai/node-definition-resolver.d.ts +19 -0
  120. package/dist/modules/instance-ai/node-definition-resolver.js +290 -0
  121. package/dist/modules/instance-ai/node-definition-resolver.js.map +1 -0
  122. package/dist/modules/instance-ai/repositories/index.d.ts +7 -0
  123. package/dist/modules/instance-ai/repositories/index.js +18 -0
  124. package/dist/modules/instance-ai/repositories/index.js.map +1 -0
  125. package/dist/modules/instance-ai/repositories/instance-ai-iteration-log.repository.d.ts +5 -0
  126. package/dist/modules/instance-ai/repositories/instance-ai-iteration-log.repository.js +26 -0
  127. package/dist/modules/instance-ai/repositories/instance-ai-iteration-log.repository.js.map +1 -0
  128. package/dist/modules/instance-ai/repositories/instance-ai-message.repository.d.ts +5 -0
  129. package/dist/modules/instance-ai/repositories/instance-ai-message.repository.js +26 -0
  130. package/dist/modules/instance-ai/repositories/instance-ai-message.repository.js.map +1 -0
  131. package/dist/modules/instance-ai/repositories/instance-ai-observational-memory.repository.d.ts +5 -0
  132. package/dist/modules/instance-ai/repositories/instance-ai-observational-memory.repository.js +26 -0
  133. package/dist/modules/instance-ai/repositories/instance-ai-observational-memory.repository.js.map +1 -0
  134. package/dist/modules/instance-ai/repositories/instance-ai-resource.repository.d.ts +5 -0
  135. package/dist/modules/instance-ai/repositories/instance-ai-resource.repository.js +26 -0
  136. package/dist/modules/instance-ai/repositories/instance-ai-resource.repository.js.map +1 -0
  137. package/dist/modules/instance-ai/repositories/instance-ai-run-snapshot.repository.d.ts +5 -0
  138. package/dist/modules/instance-ai/repositories/instance-ai-run-snapshot.repository.js +26 -0
  139. package/dist/modules/instance-ai/repositories/instance-ai-run-snapshot.repository.js.map +1 -0
  140. package/dist/modules/instance-ai/repositories/instance-ai-thread.repository.d.ts +5 -0
  141. package/dist/modules/instance-ai/repositories/instance-ai-thread.repository.js +26 -0
  142. package/dist/modules/instance-ai/repositories/instance-ai-thread.repository.js.map +1 -0
  143. package/dist/modules/instance-ai/repositories/instance-ai-workflow-snapshot.repository.d.ts +5 -0
  144. package/dist/modules/instance-ai/repositories/instance-ai-workflow-snapshot.repository.js +26 -0
  145. package/dist/modules/instance-ai/repositories/instance-ai-workflow-snapshot.repository.js.map +1 -0
  146. package/dist/modules/instance-ai/snapshot-pruning.service.d.ts +14 -0
  147. package/dist/modules/instance-ai/snapshot-pruning.service.js +77 -0
  148. package/dist/modules/instance-ai/snapshot-pruning.service.js.map +1 -0
  149. package/dist/modules/instance-ai/storage/db-iteration-log-storage.d.ts +9 -0
  150. package/dist/modules/instance-ai/storage/db-iteration-log-storage.js +45 -0
  151. package/dist/modules/instance-ai/storage/db-iteration-log-storage.js.map +1 -0
  152. package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +10 -0
  153. package/dist/modules/instance-ai/storage/db-snapshot-storage.js +74 -0
  154. package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -0
  155. package/dist/modules/instance-ai/storage/index.d.ts +5 -0
  156. package/dist/modules/instance-ai/storage/index.js +14 -0
  157. package/dist/modules/instance-ai/storage/index.js.map +1 -0
  158. package/dist/modules/instance-ai/storage/typeorm-composite-store.d.ts +9 -0
  159. package/dist/modules/instance-ai/storage/typeorm-composite-store.js +33 -0
  160. package/dist/modules/instance-ai/storage/typeorm-composite-store.js.map +1 -0
  161. package/dist/modules/instance-ai/storage/typeorm-memory-storage.d.ts +96 -0
  162. package/dist/modules/instance-ai/storage/typeorm-memory-storage.js +853 -0
  163. package/dist/modules/instance-ai/storage/typeorm-memory-storage.js.map +1 -0
  164. package/dist/modules/instance-ai/storage/typeorm-workflows-storage.d.ts +44 -0
  165. package/dist/modules/instance-ai/storage/typeorm-workflows-storage.js +156 -0
  166. package/dist/modules/instance-ai/storage/typeorm-workflows-storage.js.map +1 -0
  167. package/dist/modules/instance-ai/web-research/brave-search.d.ts +10 -0
  168. package/dist/modules/instance-ai/web-research/brave-search.js +43 -0
  169. package/dist/modules/instance-ai/web-research/brave-search.js.map +1 -0
  170. package/dist/modules/instance-ai/web-research/cache.d.ts +13 -0
  171. package/dist/modules/instance-ai/web-research/cache.js +43 -0
  172. package/dist/modules/instance-ai/web-research/cache.js.map +1 -0
  173. package/dist/modules/instance-ai/web-research/fetch-and-extract.d.ts +8 -0
  174. package/dist/modules/instance-ai/web-research/fetch-and-extract.js +231 -0
  175. package/dist/modules/instance-ai/web-research/fetch-and-extract.js.map +1 -0
  176. package/dist/modules/instance-ai/web-research/index.d.ts +7 -0
  177. package/dist/modules/instance-ai/web-research/index.js +16 -0
  178. package/dist/modules/instance-ai/web-research/index.js.map +1 -0
  179. package/dist/modules/instance-ai/web-research/searxng-search.d.ts +6 -0
  180. package/dist/modules/instance-ai/web-research/searxng-search.js +39 -0
  181. package/dist/modules/instance-ai/web-research/searxng-search.js.map +1 -0
  182. package/dist/modules/instance-ai/web-research/ssrf-guard.d.ts +1 -0
  183. package/dist/modules/instance-ai/web-research/ssrf-guard.js +85 -0
  184. package/dist/modules/instance-ai/web-research/ssrf-guard.js.map +1 -0
  185. package/dist/modules/instance-ai/web-research/summarize-content.d.ts +4 -0
  186. package/dist/modules/instance-ai/web-research/summarize-content.js +34 -0
  187. package/dist/modules/instance-ai/web-research/summarize-content.js.map +1 -0
  188. package/dist/modules/instance-registry/instance-registry.types.d.ts +1 -0
  189. package/dist/modules/instance-registry/instance-registry.types.js +2 -1
  190. package/dist/modules/instance-registry/instance-registry.types.js.map +1 -1
  191. package/dist/modules/instance-registry/storage/instance-storage.interface.d.ts +1 -0
  192. package/dist/modules/instance-registry/storage/lua-scripts.d.ts +4 -0
  193. package/dist/modules/instance-registry/storage/lua-scripts.js +39 -0
  194. package/dist/modules/instance-registry/storage/lua-scripts.js.map +1 -0
  195. package/dist/modules/instance-registry/storage/memory-storage.d.ts +1 -0
  196. package/dist/modules/instance-registry/storage/memory-storage.js +1 -0
  197. package/dist/modules/instance-registry/storage/memory-storage.js.map +1 -1
  198. package/dist/modules/instance-registry/storage/redis-instance-storage.d.ts +25 -0
  199. package/dist/modules/instance-registry/storage/redis-instance-storage.js +185 -0
  200. package/dist/modules/instance-registry/storage/redis-instance-storage.js.map +1 -0
  201. package/dist/modules/log-streaming.ee/log-streaming.controller.js.map +1 -1
  202. package/dist/modules/mcp/mcp.service.d.ts +3 -1
  203. package/dist/modules/mcp/mcp.service.js +22 -3
  204. package/dist/modules/mcp/mcp.service.js.map +1 -1
  205. package/dist/modules/mcp/mcp.types.d.ts +1 -1
  206. package/dist/modules/mcp/tools/data-table/add-data-table-column.tool.d.ts +13 -0
  207. package/dist/modules/mcp/tools/data-table/add-data-table-column.tool.js +69 -0
  208. package/dist/modules/mcp/tools/data-table/add-data-table-column.tool.js.map +1 -0
  209. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.d.ts +12 -0
  210. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js +77 -0
  211. package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js.map +1 -0
  212. package/dist/modules/mcp/tools/data-table/create-data-table.tool.d.ts +21 -0
  213. package/dist/modules/mcp/tools/data-table/create-data-table.tool.js +92 -0
  214. package/dist/modules/mcp/tools/data-table/create-data-table.tool.js.map +1 -0
  215. package/dist/modules/mcp/tools/data-table/delete-data-table-column.tool.d.ts +12 -0
  216. package/dist/modules/mcp/tools/data-table/delete-data-table-column.tool.js +60 -0
  217. package/dist/modules/mcp/tools/data-table/delete-data-table-column.tool.js.map +1 -0
  218. package/dist/modules/mcp/tools/data-table/index.d.ts +7 -0
  219. package/dist/modules/mcp/tools/data-table/index.js +18 -0
  220. package/dist/modules/mcp/tools/data-table/index.js.map +1 -0
  221. package/dist/modules/mcp/tools/data-table/rename-data-table-column.tool.d.ts +13 -0
  222. package/dist/modules/mcp/tools/data-table/rename-data-table-column.tool.js +70 -0
  223. package/dist/modules/mcp/tools/data-table/rename-data-table-column.tool.js.map +1 -0
  224. package/dist/modules/mcp/tools/data-table/rename-data-table.tool.d.ts +12 -0
  225. package/dist/modules/mcp/tools/data-table/rename-data-table.tool.js +60 -0
  226. package/dist/modules/mcp/tools/data-table/rename-data-table.tool.js.map +1 -0
  227. package/dist/modules/mcp/tools/data-table/search-data-tables.tool.d.ts +12 -0
  228. package/dist/modules/mcp/tools/data-table/search-data-tables.tool.js +93 -0
  229. package/dist/modules/mcp/tools/data-table/search-data-tables.tool.js.map +1 -0
  230. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +3 -4
  231. package/dist/modules/mcp/tools/execute-workflow.tool.js +10 -25
  232. package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -1
  233. package/dist/modules/mcp/tools/get-execution.tool.js +4 -8
  234. package/dist/modules/mcp/tools/get-execution.tool.js.map +1 -1
  235. package/dist/modules/mcp/tools/schemas.d.ts +73 -2
  236. package/dist/modules/mcp/tools/schemas.js +41 -1
  237. package/dist/modules/mcp/tools/schemas.js.map +1 -1
  238. package/dist/modules/mcp/tools/search-folders.tool.js +2 -7
  239. package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -1
  240. package/dist/modules/mcp/tools/search-projects.tool.js +2 -7
  241. package/dist/modules/mcp/tools/search-projects.tool.js.map +1 -1
  242. package/dist/modules/mcp/tools/search-workflows.tool.js +2 -7
  243. package/dist/modules/mcp/tools/search-workflows.tool.js.map +1 -1
  244. package/dist/modules/mcp/tools/workflow-builder/get-suggested-workflow-nodes.tool.js +1 -37
  245. package/dist/modules/mcp/tools/workflow-builder/get-suggested-workflow-nodes.tool.js.map +1 -1
  246. package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.js +1 -37
  247. package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.js.map +1 -1
  248. package/dist/modules/mcp/tools/workflow-builder/search-workflow-nodes.tool.js +1 -37
  249. package/dist/modules/mcp/tools/workflow-builder/search-workflow-nodes.tool.js.map +1 -1
  250. package/dist/modules/mcp/tools/workflow-builder/workflow-builder-tools.service.d.ts +17 -0
  251. package/dist/modules/mcp/tools/workflow-builder/workflow-builder-tools.service.js +48 -0
  252. package/dist/modules/mcp/tools/workflow-builder/workflow-builder-tools.service.js.map +1 -1
  253. package/dist/modules/otel/handlers/node-end.handler.d.ts +8 -0
  254. package/dist/modules/otel/handlers/node-end.handler.js +71 -0
  255. package/dist/modules/otel/handlers/node-end.handler.js.map +1 -0
  256. package/dist/modules/otel/handlers/node-start.handler.d.ts +7 -0
  257. package/dist/modules/otel/handlers/node-start.handler.js +37 -0
  258. package/dist/modules/otel/handlers/node-start.handler.js.map +1 -0
  259. package/dist/modules/otel/handlers/workflow-end.handler.d.ts +1 -0
  260. package/dist/modules/otel/handlers/workflow-end.handler.js +8 -0
  261. package/dist/modules/otel/handlers/workflow-end.handler.js.map +1 -1
  262. package/dist/modules/otel/n8n-instrumentation.d.ts +8 -2
  263. package/dist/modules/otel/n8n-instrumentation.js +32 -1
  264. package/dist/modules/otel/n8n-instrumentation.js.map +1 -1
  265. package/dist/modules/otel/otel.config.d.ts +1 -0
  266. package/dist/modules/otel/otel.config.js +5 -0
  267. package/dist/modules/otel/otel.config.js.map +1 -1
  268. package/dist/modules/otel/otel.constants.d.ts +7 -0
  269. package/dist/modules/otel/otel.constants.js +7 -0
  270. package/dist/modules/otel/otel.constants.js.map +1 -1
  271. package/dist/modules/otel/otel.service.d.ts +1 -1
  272. package/dist/modules/otel/otel.service.js +20 -23
  273. package/dist/modules/otel/otel.service.js.map +1 -1
  274. package/dist/modules/otel/span-registry.d.ts +1 -0
  275. package/dist/modules/otel/span-registry.js +11 -0
  276. package/dist/modules/otel/span-registry.js.map +1 -1
  277. package/dist/modules/provisioning.ee/provisioning.service.ee.d.ts +13 -2
  278. package/dist/modules/provisioning.ee/provisioning.service.ee.js +145 -2
  279. package/dist/modules/provisioning.ee/provisioning.service.ee.js.map +1 -1
  280. package/dist/modules/redaction/executions/execution-redaction.service.d.ts +3 -2
  281. package/dist/modules/redaction/executions/execution-redaction.service.js +5 -1
  282. package/dist/modules/redaction/executions/execution-redaction.service.js.map +1 -1
  283. package/dist/modules/redaction/redaction.module.js +0 -6
  284. package/dist/modules/redaction/redaction.module.js.map +1 -1
  285. package/dist/modules/sso-oidc/oidc.controller.ee.d.ts +4 -1
  286. package/dist/modules/sso-oidc/oidc.controller.ee.js +39 -3
  287. package/dist/modules/sso-oidc/oidc.controller.ee.js.map +1 -1
  288. package/dist/modules/sso-oidc/oidc.service.ee.d.ts +14 -2
  289. package/dist/modules/sso-oidc/oidc.service.ee.js +86 -8
  290. package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
  291. package/dist/modules/sso-oidc/views/oidc-test-result.d.ts +5 -0
  292. package/dist/modules/sso-oidc/views/oidc-test-result.js +58 -0
  293. package/dist/modules/sso-oidc/views/oidc-test-result.js.map +1 -0
  294. package/dist/modules/sso-saml/saml-helpers.d.ts +1 -0
  295. package/dist/modules/sso-saml/saml-helpers.js +2 -0
  296. package/dist/modules/sso-saml/saml-helpers.js.map +1 -1
  297. package/dist/modules/sso-saml/saml.service.ee.d.ts +4 -1
  298. package/dist/modules/sso-saml/saml.service.ee.js +13 -7
  299. package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
  300. package/dist/modules/token-exchange/controllers/embed-auth.controller.d.ts +15 -0
  301. package/dist/modules/token-exchange/controllers/embed-auth.controller.js +67 -0
  302. package/dist/modules/token-exchange/controllers/embed-auth.controller.js.map +1 -0
  303. package/dist/modules/token-exchange/database/entities/token-exchange-jti.entity.d.ts +5 -0
  304. package/dist/modules/token-exchange/database/entities/token-exchange-jti.entity.js +33 -0
  305. package/dist/modules/token-exchange/database/entities/token-exchange-jti.entity.js.map +1 -0
  306. package/dist/modules/token-exchange/database/repositories/token-exchange-jti.repository.d.ts +10 -0
  307. package/dist/modules/token-exchange/database/repositories/token-exchange-jti.repository.js +106 -0
  308. package/dist/modules/token-exchange/database/repositories/token-exchange-jti.repository.js.map +1 -0
  309. package/dist/modules/token-exchange/services/identity-resolution.service.d.ts +5 -0
  310. package/dist/modules/token-exchange/services/identity-resolution.service.js +21 -0
  311. package/dist/modules/token-exchange/services/identity-resolution.service.js.map +1 -0
  312. package/dist/modules/token-exchange/services/jti-cleanup.service.d.ts +18 -0
  313. package/dist/modules/token-exchange/services/jti-cleanup.service.js +90 -0
  314. package/dist/modules/token-exchange/services/jti-cleanup.service.js.map +1 -0
  315. package/dist/modules/token-exchange/services/jti-store.service.d.ts +6 -0
  316. package/dist/modules/token-exchange/services/jti-store.service.js +30 -0
  317. package/dist/modules/token-exchange/services/jti-store.service.js.map +1 -0
  318. package/dist/modules/token-exchange/services/token-exchange.service.d.ts +17 -0
  319. package/dist/modules/token-exchange/services/token-exchange.service.js +93 -0
  320. package/dist/modules/token-exchange/services/token-exchange.service.js.map +1 -0
  321. package/dist/modules/token-exchange/services/trusted-key.service.d.ts +13 -0
  322. package/dist/modules/token-exchange/services/trusted-key.service.js +123 -0
  323. package/dist/modules/token-exchange/services/trusted-key.service.js.map +1 -0
  324. package/dist/modules/token-exchange/token-exchange.config.d.ts +7 -0
  325. package/dist/modules/token-exchange/token-exchange.config.js +47 -0
  326. package/dist/modules/token-exchange/token-exchange.config.js.map +1 -0
  327. package/dist/modules/token-exchange/token-exchange.controller.d.ts +9 -0
  328. package/dist/modules/token-exchange/token-exchange.controller.js +103 -0
  329. package/dist/modules/token-exchange/token-exchange.controller.js.map +1 -0
  330. package/dist/modules/token-exchange/token-exchange.module.d.ts +5 -0
  331. package/dist/modules/token-exchange/token-exchange.module.js +74 -0
  332. package/dist/modules/token-exchange/token-exchange.module.js.map +1 -0
  333. package/dist/modules/token-exchange/token-exchange.schemas.d.ts +131 -0
  334. package/dist/modules/token-exchange/token-exchange.schemas.js +60 -0
  335. package/dist/modules/token-exchange/token-exchange.schemas.js.map +1 -0
  336. package/dist/modules/token-exchange/token-exchange.service.d.ts +9 -0
  337. package/dist/modules/token-exchange/token-exchange.service.js +66 -0
  338. package/dist/modules/token-exchange/token-exchange.service.js.map +1 -0
  339. package/dist/modules/token-exchange/token-exchange.types.d.ts +50 -0
  340. package/dist/modules/token-exchange/token-exchange.types.js +3 -0
  341. package/dist/modules/token-exchange/token-exchange.types.js.map +1 -0
  342. package/dist/public-api/index.js +5 -5
  343. package/dist/public-api/index.js.map +1 -1
  344. package/dist/public-api/types.d.ts +17 -0
  345. package/dist/public-api/v1/handlers/community-packages/community-packages.handler.d.ts +18 -0
  346. package/dist/public-api/v1/handlers/community-packages/community-packages.handler.js +71 -0
  347. package/dist/public-api/v1/handlers/community-packages/community-packages.handler.js.map +1 -0
  348. package/dist/public-api/v1/handlers/community-packages/community-packages.mapper.d.ts +27 -0
  349. package/dist/public-api/v1/handlers/community-packages/community-packages.mapper.js +35 -0
  350. package/dist/public-api/v1/handlers/community-packages/community-packages.mapper.js.map +1 -0
  351. package/dist/public-api/v1/handlers/executions/executions.handler.js +48 -4
  352. package/dist/public-api/v1/handlers/executions/executions.handler.js.map +1 -1
  353. package/dist/public-api/v1/openapi.yml +208 -2
  354. package/dist/public-api/v1/public-api-error-response.d.ts +2 -0
  355. package/dist/public-api/v1/public-api-error-response.js +11 -0
  356. package/dist/public-api/v1/public-api-error-response.js.map +1 -0
  357. package/dist/push/abstract.push.d.ts +1 -0
  358. package/dist/push/abstract.push.js +3 -0
  359. package/dist/push/abstract.push.js.map +1 -1
  360. package/dist/push/sse.push.js +5 -1
  361. package/dist/push/sse.push.js.map +1 -1
  362. package/dist/push/websocket.push.js +3 -1
  363. package/dist/push/websocket.push.js.map +1 -1
  364. package/dist/response-helper.js +6 -29
  365. package/dist/response-helper.js.map +1 -1
  366. package/dist/scaling/pubsub/subscriber.service.d.ts +2 -0
  367. package/dist/scaling/pubsub/subscriber.service.js +17 -8
  368. package/dist/scaling/pubsub/subscriber.service.js.map +1 -1
  369. package/dist/scaling/redis/redis.types.d.ts +1 -1
  370. package/dist/services/ai-workflow-builder.service.d.ts +2 -2
  371. package/dist/services/ai-workflow-builder.service.js +4 -4
  372. package/dist/services/ai-workflow-builder.service.js.map +1 -1
  373. package/dist/services/ai.service.d.ts +4 -0
  374. package/dist/services/ai.service.js +20 -18
  375. package/dist/services/ai.service.js.map +1 -1
  376. package/dist/services/auth-strategy.registry.d.ts +7 -0
  377. package/dist/services/auth-strategy.registry.js +32 -0
  378. package/dist/services/auth-strategy.registry.js.map +1 -0
  379. package/dist/services/auth-strategy.types.d.ts +4 -0
  380. package/dist/services/auth-strategy.types.js +3 -0
  381. package/dist/services/auth-strategy.types.js.map +1 -0
  382. package/dist/services/credentials-tester.service.js +2 -0
  383. package/dist/services/credentials-tester.service.js.map +1 -1
  384. package/dist/services/db-clock.service.d.ts +10 -0
  385. package/dist/services/db-clock.service.js +48 -0
  386. package/dist/services/db-clock.service.js.map +1 -0
  387. package/dist/services/frontend.service.js +2 -0
  388. package/dist/services/frontend.service.js.map +1 -1
  389. package/dist/wait-tracker.d.ts +6 -2
  390. package/dist/wait-tracker.js +94 -63
  391. package/dist/wait-tracker.js.map +1 -1
  392. package/dist/webhooks/live-webhooks.js +24 -18
  393. package/dist/webhooks/live-webhooks.js.map +1 -1
  394. package/dist/webhooks/test-webhooks.js +96 -78
  395. package/dist/webhooks/test-webhooks.js.map +1 -1
  396. package/dist/webhooks/waiting-webhooks.js +27 -21
  397. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  398. package/dist/webhooks/webhook-helpers.js +21 -6
  399. package/dist/webhooks/webhook-helpers.js.map +1 -1
  400. package/dist/webhooks/webhook-last-node-response-extractor.d.ts +5 -2
  401. package/dist/webhooks/webhook-last-node-response-extractor.js +5 -8
  402. package/dist/webhooks/webhook-last-node-response-extractor.js.map +1 -1
  403. package/dist/workflows/workflow-creation.service.js +4 -0
  404. package/dist/workflows/workflow-creation.service.js.map +1 -1
  405. package/dist/workflows/workflow-execution.service.js +1 -1
  406. package/dist/workflows/workflow-execution.service.js.map +1 -1
  407. package/dist/workflows/workflow-history/workflow-history.service.js +1 -0
  408. package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
  409. package/dist/workflows/workflow-validation.service.js +3 -3
  410. package/dist/workflows/workflow-validation.service.js.map +1 -1
  411. package/dist/workflows/workflow.service.js +12 -1
  412. package/dist/workflows/workflow.service.js.map +1 -1
  413. package/dist/workflows/workflows.controller.d.ts +2 -2
  414. package/package.json +28 -25
@@ -0,0 +1,613 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.InstanceAiController = void 0;
16
+ const api_types_1 = require("@n8n/api-types");
17
+ const backend_common_1 = require("@n8n/backend-common");
18
+ const config_1 = require("@n8n/config");
19
+ const decorators_1 = require("@n8n/decorators");
20
+ const instance_ai_1 = require("@n8n/instance-ai");
21
+ const node_crypto_1 = require("node:crypto");
22
+ const in_process_event_bus_1 = require("./event-bus/in-process-event-bus");
23
+ const instance_ai_memory_service_1 = require("./instance-ai-memory.service");
24
+ const instance_ai_settings_service_1 = require("./instance-ai-settings.service");
25
+ const instance_ai_service_1 = require("./instance-ai.service");
26
+ const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
27
+ const conflict_error_1 = require("../../errors/response-errors/conflict.error");
28
+ const forbidden_error_1 = require("../../errors/response-errors/forbidden.error");
29
+ const not_found_error_1 = require("../../errors/response-errors/not-found.error");
30
+ const push_1 = require("../../push");
31
+ const KEEP_ALIVE_INTERVAL_MS = 15_000;
32
+ let InstanceAiController = class InstanceAiController {
33
+ constructor(instanceAiService, memoryService, settingsService, eventBus, moduleRegistry, push, globalConfig) {
34
+ this.instanceAiService = instanceAiService;
35
+ this.memoryService = memoryService;
36
+ this.settingsService = settingsService;
37
+ this.eventBus = eventBus;
38
+ this.moduleRegistry = moduleRegistry;
39
+ this.push = push;
40
+ this.gatewayApiKey = globalConfig.instanceAi.gatewayApiKey;
41
+ this.instanceBaseUrl = globalConfig.editorBaseUrl || `http://localhost:${globalConfig.port}`;
42
+ }
43
+ async chat(req, _res, threadId, payload) {
44
+ await this.assertThreadAccess(req.user.id, threadId, { allowNew: true });
45
+ if (this.instanceAiService.hasActiveRun(threadId)) {
46
+ throw new conflict_error_1.ConflictError('A run is already active for this thread');
47
+ }
48
+ const runId = this.instanceAiService.startRun(req.user, threadId, payload.message, payload.researchMode, payload.attachments, payload.timeZone, payload.pushRef);
49
+ return { runId };
50
+ }
51
+ async events(req, res, threadId, query) {
52
+ const ownership = await this.memoryService.checkThreadOwnership(req.user.id, threadId);
53
+ if (ownership === 'other_user') {
54
+ throw new forbidden_error_1.ForbiddenError('Not authorized for this thread');
55
+ }
56
+ let ownershipVerified = ownership === 'owned';
57
+ let ownershipCheckInFlight = false;
58
+ const pendingEvents = [];
59
+ const userId = req.user.id;
60
+ res.setHeader('Content-Type', 'text/event-stream; charset=UTF-8');
61
+ res.setHeader('Cache-Control', 'no-cache');
62
+ res.setHeader('Connection', 'keep-alive');
63
+ res.setHeader('X-Accel-Buffering', 'no');
64
+ res.flushHeaders();
65
+ const headerValue = req.headers['last-event-id'];
66
+ const parsedHeader = headerValue ? parseInt(String(headerValue), 10) : NaN;
67
+ const cursor = Number.isFinite(parsedHeader) && parsedHeader >= 0 ? parsedHeader : (query.lastEventId ?? 0);
68
+ const missed = this.eventBus.getEventsAfter(threadId, cursor);
69
+ for (const stored of missed) {
70
+ this.writeSseEvent(res, stored);
71
+ }
72
+ const threadStatus = this.instanceAiService.getThreadStatus(threadId);
73
+ const liveGroups = new Map();
74
+ if (threadStatus.hasActiveRun || threadStatus.isSuspended) {
75
+ const groupId = this.instanceAiService.getMessageGroupId(threadId);
76
+ if (groupId) {
77
+ liveGroups.set(groupId, {
78
+ runIds: this.instanceAiService.getRunIdsForMessageGroup(groupId),
79
+ status: threadStatus.hasActiveRun ? 'active' : 'suspended',
80
+ });
81
+ }
82
+ }
83
+ for (const task of threadStatus.backgroundTasks) {
84
+ if (task.status !== 'running' || !task.messageGroupId)
85
+ continue;
86
+ if (!liveGroups.has(task.messageGroupId)) {
87
+ liveGroups.set(task.messageGroupId, {
88
+ runIds: this.instanceAiService.getRunIdsForMessageGroup(task.messageGroupId),
89
+ status: 'background',
90
+ });
91
+ }
92
+ }
93
+ for (const [groupId, group] of liveGroups) {
94
+ const runEvents = this.eventBus.getEventsForRuns(threadId, group.runIds);
95
+ if (runEvents.length === 0)
96
+ continue;
97
+ const agentTree = (0, instance_ai_1.buildAgentTreeFromEvents)(runEvents);
98
+ const groupRunId = group.runIds.at(-1);
99
+ res.write(`event: run-sync\ndata: ${JSON.stringify({
100
+ runId: groupRunId,
101
+ messageGroupId: groupId,
102
+ runIds: group.runIds,
103
+ agentTree,
104
+ status: group.status,
105
+ backgroundTasks: threadStatus.backgroundTasks,
106
+ })}\n\n`);
107
+ }
108
+ if (liveGroups.size > 0)
109
+ res.flush?.();
110
+ const unsubscribe = this.eventBus.subscribe(threadId, (stored) => {
111
+ if (ownershipVerified) {
112
+ this.writeSseEvent(res, stored);
113
+ return;
114
+ }
115
+ pendingEvents.push(stored);
116
+ if (ownershipCheckInFlight)
117
+ return;
118
+ ownershipCheckInFlight = true;
119
+ void this.memoryService
120
+ .checkThreadOwnership(userId, threadId)
121
+ .then((currentOwnership) => {
122
+ if (currentOwnership === 'other_user') {
123
+ res.end();
124
+ return;
125
+ }
126
+ ownershipVerified = true;
127
+ for (const buffered of pendingEvents) {
128
+ this.writeSseEvent(res, buffered);
129
+ }
130
+ pendingEvents.length = 0;
131
+ })
132
+ .catch(() => {
133
+ pendingEvents.length = 0;
134
+ res.end();
135
+ });
136
+ });
137
+ const keepAlive = setInterval(() => {
138
+ res.write(': ping\n\n');
139
+ res.flush?.();
140
+ }, KEEP_ALIVE_INTERVAL_MS);
141
+ const cleanup = () => {
142
+ unsubscribe();
143
+ clearInterval(keepAlive);
144
+ };
145
+ req.once('close', cleanup);
146
+ res.once('finish', cleanup);
147
+ }
148
+ async confirm(req, _res, requestId, body) {
149
+ const resolved = await this.instanceAiService.resolveConfirmation(req.user.id, requestId, {
150
+ approved: body.approved,
151
+ credentialId: body.credentialId,
152
+ credentials: body.credentials,
153
+ nodeCredentials: body.nodeCredentials,
154
+ autoSetup: body.autoSetup,
155
+ userInput: body.userInput,
156
+ domainAccessAction: body.domainAccessAction,
157
+ action: body.action,
158
+ nodeParameters: body.nodeParameters,
159
+ testTriggerNode: body.testTriggerNode,
160
+ answers: body.answers,
161
+ resourceDecision: body.resourceDecision,
162
+ });
163
+ if (!resolved) {
164
+ throw new not_found_error_1.NotFoundError('Confirmation request not found or not authorized');
165
+ }
166
+ return { ok: true };
167
+ }
168
+ async cancel(req, _res, threadId) {
169
+ await this.assertThreadAccess(req.user.id, threadId);
170
+ this.instanceAiService.cancelRun(threadId);
171
+ return { ok: true };
172
+ }
173
+ async cancelTask(req, _res, threadId, taskId) {
174
+ await this.assertThreadAccess(req.user.id, threadId);
175
+ this.instanceAiService.cancelBackgroundTask(threadId, taskId);
176
+ return { ok: true };
177
+ }
178
+ async correctTask(req, _res, threadId, taskId, payload) {
179
+ await this.assertThreadAccess(req.user.id, threadId);
180
+ this.instanceAiService.sendCorrectionToTask(threadId, taskId, payload.message);
181
+ return { ok: true };
182
+ }
183
+ async getCredits(req) {
184
+ return await this.instanceAiService.getCredits(req.user);
185
+ }
186
+ async getAdminSettings(_req) {
187
+ return this.settingsService.getAdminSettings();
188
+ }
189
+ async updateAdminSettings(_req, _res, payload) {
190
+ return await this.settingsService.updateAdminSettings(payload);
191
+ }
192
+ async getUserPreferences(req) {
193
+ return await this.settingsService.getUserPreferences(req.user);
194
+ }
195
+ async updateUserPreferences(req, _res, payload) {
196
+ const result = await this.settingsService.updateUserPreferences(req.user, payload);
197
+ if (payload.localGatewayDisabled !== undefined) {
198
+ await this.moduleRegistry.refreshModuleSettings('instance-ai');
199
+ }
200
+ return result;
201
+ }
202
+ async listModelCredentials(req) {
203
+ return await this.settingsService.listModelCredentials(req.user);
204
+ }
205
+ async listServiceCredentials(req) {
206
+ return await this.settingsService.listServiceCredentials(req.user);
207
+ }
208
+ async getMemory(req, _res, threadId) {
209
+ await this.assertThreadAccess(req.user.id, threadId, { allowNew: true });
210
+ return await this.memoryService.getWorkingMemory(req.user.id, threadId);
211
+ }
212
+ async updateMemory(req, _res, threadId, payload) {
213
+ await this.assertThreadAccess(req.user.id, threadId, { allowNew: true });
214
+ await this.memoryService.updateWorkingMemory(req.user.id, threadId, payload.content);
215
+ return { ok: true };
216
+ }
217
+ async listThreads(req) {
218
+ return await this.memoryService.listThreads(req.user.id);
219
+ }
220
+ async ensureThread(req, _res, payload) {
221
+ const requestedThreadId = payload.threadId ?? (0, node_crypto_1.randomUUID)();
222
+ await this.assertThreadAccess(req.user.id, requestedThreadId, { allowNew: true });
223
+ return await this.memoryService.ensureThread(req.user.id, requestedThreadId);
224
+ }
225
+ async deleteThread(req, _res, threadId) {
226
+ await this.assertThreadAccess(req.user.id, threadId);
227
+ await this.instanceAiService.clearThreadState(threadId);
228
+ await this.memoryService.deleteThread(threadId);
229
+ return { ok: true };
230
+ }
231
+ async renameThread(req, _res, threadId, payload) {
232
+ await this.assertThreadAccess(req.user.id, threadId);
233
+ const thread = await this.memoryService.renameThread(threadId, payload.title);
234
+ return { thread };
235
+ }
236
+ async getThreadMessages(req, _res, threadId, query) {
237
+ await this.assertThreadAccess(req.user.id, threadId);
238
+ if (query.raw === 'true') {
239
+ return await this.memoryService.getThreadMessages(req.user.id, threadId, {
240
+ limit: query.limit,
241
+ page: query.page,
242
+ });
243
+ }
244
+ const result = await this.memoryService.getRichMessages(req.user.id, threadId, {
245
+ limit: query.limit,
246
+ page: query.page,
247
+ });
248
+ const nextEventId = this.eventBus.getNextEventId(threadId);
249
+ return { ...result, nextEventId };
250
+ }
251
+ async getThreadStatus(req, _res, threadId) {
252
+ await this.assertThreadAccess(req.user.id, threadId, { allowNew: true });
253
+ return this.instanceAiService.getThreadStatus(threadId);
254
+ }
255
+ async getThreadContext(req, _res, threadId) {
256
+ await this.assertThreadAccess(req.user.id, threadId, { allowNew: true });
257
+ return await this.memoryService.getThreadContext(req.user.id, threadId);
258
+ }
259
+ async createGatewayLink(req) {
260
+ const token = this.instanceAiService.generatePairingToken(req.user.id);
261
+ const baseUrl = this.instanceBaseUrl.replace(/\/$/, '');
262
+ const command = `npx @n8n/fs-proxy ${baseUrl} ${token}`;
263
+ return { token, command };
264
+ }
265
+ async gatewayEvents(req, res) {
266
+ const userId = this.validateGatewayApiKey(this.getGatewayKeyHeader(req));
267
+ res.setHeader('Content-Type', 'text/event-stream; charset=UTF-8');
268
+ res.setHeader('Cache-Control', 'no-cache');
269
+ res.setHeader('Connection', 'keep-alive');
270
+ res.setHeader('X-Accel-Buffering', 'no');
271
+ res.flushHeaders();
272
+ const gateway = this.instanceAiService.getLocalGateway(userId);
273
+ const unsubscribe = gateway.onRequest((event) => {
274
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
275
+ res.flush?.();
276
+ });
277
+ const keepAlive = setInterval(() => {
278
+ res.write(': ping\n\n');
279
+ res.flush?.();
280
+ }, KEEP_ALIVE_INTERVAL_MS);
281
+ const cleanup = () => {
282
+ unsubscribe();
283
+ clearInterval(keepAlive);
284
+ this.instanceAiService.startDisconnectTimer(userId, () => {
285
+ this.push.sendToUsers({
286
+ type: 'instanceAiGatewayStateChanged',
287
+ data: {
288
+ connected: false,
289
+ directory: null,
290
+ hostIdentifier: null,
291
+ toolCategories: [],
292
+ },
293
+ }, [userId]);
294
+ });
295
+ };
296
+ req.once('close', cleanup);
297
+ res.once('finish', cleanup);
298
+ }
299
+ gatewayInit(req) {
300
+ const key = this.getGatewayKeyHeader(req);
301
+ const userId = this.validateGatewayApiKey(key);
302
+ const parsed = api_types_1.instanceAiGatewayCapabilitiesSchema.safeParse(req.body);
303
+ if (!parsed.success) {
304
+ throw new bad_request_error_1.BadRequestError(parsed.error.message);
305
+ }
306
+ this.instanceAiService.initGateway(userId, parsed.data);
307
+ this.push.sendToUsers({
308
+ type: 'instanceAiGatewayStateChanged',
309
+ data: {
310
+ connected: true,
311
+ directory: parsed.data.rootPath,
312
+ hostIdentifier: parsed.data.hostIdentifier ?? null,
313
+ toolCategories: parsed.data.toolCategories ?? [],
314
+ },
315
+ }, [userId]);
316
+ const sessionKey = key ? this.instanceAiService.consumePairingToken(userId, key) : null;
317
+ if (sessionKey) {
318
+ return { ok: true, sessionKey };
319
+ }
320
+ return { ok: true };
321
+ }
322
+ gatewayDisconnect(req) {
323
+ const userId = this.validateGatewayApiKey(this.getGatewayKeyHeader(req));
324
+ this.instanceAiService.clearDisconnectTimer(userId);
325
+ this.instanceAiService.disconnectGateway(userId);
326
+ this.instanceAiService.clearActiveSessionKey(userId);
327
+ this.push.sendToUsers({
328
+ type: 'instanceAiGatewayStateChanged',
329
+ data: { connected: false, directory: null, hostIdentifier: null, toolCategories: [] },
330
+ }, [userId]);
331
+ return { ok: true };
332
+ }
333
+ gatewayResponse(req, _res, requestId) {
334
+ const userId = this.validateGatewayApiKey(this.getGatewayKeyHeader(req));
335
+ const parsed = api_types_1.instanceAiFilesystemResponseSchema.safeParse(req.body);
336
+ if (!parsed.success) {
337
+ throw new bad_request_error_1.BadRequestError(parsed.error.message);
338
+ }
339
+ const resolved = this.instanceAiService.resolveGatewayRequest(userId, requestId, parsed.data.result, parsed.data.error);
340
+ if (!resolved) {
341
+ throw new not_found_error_1.NotFoundError('Gateway request not found or already resolved');
342
+ }
343
+ return { ok: true };
344
+ }
345
+ async gatewayStatus(req) {
346
+ return this.instanceAiService.getGatewayStatus(req.user.id);
347
+ }
348
+ async assertThreadAccess(userId, threadId, options) {
349
+ const ownership = await this.memoryService.checkThreadOwnership(userId, threadId);
350
+ if (ownership === 'other_user') {
351
+ throw new forbidden_error_1.ForbiddenError('Not authorized for this thread');
352
+ }
353
+ if (!options?.allowNew && ownership === 'not_found') {
354
+ throw new not_found_error_1.NotFoundError('Thread not found');
355
+ }
356
+ }
357
+ getGatewayKeyHeader(req) {
358
+ const raw = req.headers['x-gateway-key'];
359
+ const value = Array.isArray(raw) ? raw[0] : raw;
360
+ const parsed = api_types_1.instanceAiGatewayKeySchema.safeParse(value);
361
+ return parsed.success ? parsed.data : undefined;
362
+ }
363
+ validateGatewayApiKey(key) {
364
+ if (!key) {
365
+ throw new forbidden_error_1.ForbiddenError('Missing API key');
366
+ }
367
+ const actual = Buffer.from(key);
368
+ if (this.gatewayApiKey) {
369
+ const expected = Buffer.from(this.gatewayApiKey);
370
+ if (expected.length === actual.length && (0, node_crypto_1.timingSafeEqual)(expected, actual)) {
371
+ return 'env-gateway';
372
+ }
373
+ }
374
+ const userId = this.instanceAiService.getUserIdForApiKey(key);
375
+ if (userId)
376
+ return userId;
377
+ throw new forbidden_error_1.ForbiddenError('Invalid API key');
378
+ }
379
+ writeSseEvent(res, stored) {
380
+ res.write(`id: ${stored.id}\ndata: ${JSON.stringify(stored.event)}\n\n`);
381
+ res.flush?.();
382
+ }
383
+ };
384
+ exports.InstanceAiController = InstanceAiController;
385
+ __decorate([
386
+ (0, decorators_1.Post)('/chat/:threadId'),
387
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
388
+ __param(2, (0, decorators_1.Param)('threadId')),
389
+ __param(3, decorators_1.Body),
390
+ __metadata("design:type", Function),
391
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.InstanceAiSendMessageRequest]),
392
+ __metadata("design:returntype", Promise)
393
+ ], InstanceAiController.prototype, "chat", null);
394
+ __decorate([
395
+ (0, decorators_1.Get)('/events/:threadId', { usesTemplates: true }),
396
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
397
+ __param(2, (0, decorators_1.Param)('threadId')),
398
+ __param(3, decorators_1.Query),
399
+ __metadata("design:type", Function),
400
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.InstanceAiEventsQuery]),
401
+ __metadata("design:returntype", Promise)
402
+ ], InstanceAiController.prototype, "events", null);
403
+ __decorate([
404
+ (0, decorators_1.Post)('/confirm/:requestId'),
405
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
406
+ __param(2, (0, decorators_1.Param)('requestId')),
407
+ __param(3, decorators_1.Body),
408
+ __metadata("design:type", Function),
409
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.InstanceAiConfirmRequestDto]),
410
+ __metadata("design:returntype", Promise)
411
+ ], InstanceAiController.prototype, "confirm", null);
412
+ __decorate([
413
+ (0, decorators_1.Post)('/chat/:threadId/cancel'),
414
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
415
+ __param(2, (0, decorators_1.Param)('threadId')),
416
+ __metadata("design:type", Function),
417
+ __metadata("design:paramtypes", [Object, Object, String]),
418
+ __metadata("design:returntype", Promise)
419
+ ], InstanceAiController.prototype, "cancel", null);
420
+ __decorate([
421
+ (0, decorators_1.Post)('/chat/:threadId/tasks/:taskId/cancel'),
422
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
423
+ __param(2, (0, decorators_1.Param)('threadId')),
424
+ __param(3, (0, decorators_1.Param)('taskId')),
425
+ __metadata("design:type", Function),
426
+ __metadata("design:paramtypes", [Object, Object, String, String]),
427
+ __metadata("design:returntype", Promise)
428
+ ], InstanceAiController.prototype, "cancelTask", null);
429
+ __decorate([
430
+ (0, decorators_1.Post)('/chat/:threadId/tasks/:taskId/correct'),
431
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
432
+ __param(2, (0, decorators_1.Param)('threadId')),
433
+ __param(3, (0, decorators_1.Param)('taskId')),
434
+ __param(4, decorators_1.Body),
435
+ __metadata("design:type", Function),
436
+ __metadata("design:paramtypes", [Object, Object, String, String, api_types_1.InstanceAiCorrectTaskRequest]),
437
+ __metadata("design:returntype", Promise)
438
+ ], InstanceAiController.prototype, "correctTask", null);
439
+ __decorate([
440
+ (0, decorators_1.Get)('/credits'),
441
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
442
+ __metadata("design:type", Function),
443
+ __metadata("design:paramtypes", [Object]),
444
+ __metadata("design:returntype", Promise)
445
+ ], InstanceAiController.prototype, "getCredits", null);
446
+ __decorate([
447
+ (0, decorators_1.Get)('/settings'),
448
+ (0, decorators_1.GlobalScope)('instanceAi:manage'),
449
+ __metadata("design:type", Function),
450
+ __metadata("design:paramtypes", [Object]),
451
+ __metadata("design:returntype", Promise)
452
+ ], InstanceAiController.prototype, "getAdminSettings", null);
453
+ __decorate([
454
+ (0, decorators_1.Put)('/settings'),
455
+ (0, decorators_1.GlobalScope)('instanceAi:manage'),
456
+ __param(2, decorators_1.Body),
457
+ __metadata("design:type", Function),
458
+ __metadata("design:paramtypes", [Object, Object, api_types_1.InstanceAiAdminSettingsUpdateRequest]),
459
+ __metadata("design:returntype", Promise)
460
+ ], InstanceAiController.prototype, "updateAdminSettings", null);
461
+ __decorate([
462
+ (0, decorators_1.Get)('/preferences'),
463
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
464
+ __metadata("design:type", Function),
465
+ __metadata("design:paramtypes", [Object]),
466
+ __metadata("design:returntype", Promise)
467
+ ], InstanceAiController.prototype, "getUserPreferences", null);
468
+ __decorate([
469
+ (0, decorators_1.Put)('/preferences'),
470
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
471
+ __param(2, decorators_1.Body),
472
+ __metadata("design:type", Function),
473
+ __metadata("design:paramtypes", [Object, Object, api_types_1.InstanceAiUserPreferencesUpdateRequest]),
474
+ __metadata("design:returntype", Promise)
475
+ ], InstanceAiController.prototype, "updateUserPreferences", null);
476
+ __decorate([
477
+ (0, decorators_1.Get)('/settings/credentials'),
478
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
479
+ __metadata("design:type", Function),
480
+ __metadata("design:paramtypes", [Object]),
481
+ __metadata("design:returntype", Promise)
482
+ ], InstanceAiController.prototype, "listModelCredentials", null);
483
+ __decorate([
484
+ (0, decorators_1.Get)('/settings/service-credentials'),
485
+ (0, decorators_1.GlobalScope)('instanceAi:manage'),
486
+ __metadata("design:type", Function),
487
+ __metadata("design:paramtypes", [Object]),
488
+ __metadata("design:returntype", Promise)
489
+ ], InstanceAiController.prototype, "listServiceCredentials", null);
490
+ __decorate([
491
+ (0, decorators_1.Get)('/memory/:threadId'),
492
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
493
+ __param(2, (0, decorators_1.Param)('threadId')),
494
+ __metadata("design:type", Function),
495
+ __metadata("design:paramtypes", [Object, Object, String]),
496
+ __metadata("design:returntype", Promise)
497
+ ], InstanceAiController.prototype, "getMemory", null);
498
+ __decorate([
499
+ (0, decorators_1.Put)('/memory/:threadId'),
500
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
501
+ __param(2, (0, decorators_1.Param)('threadId')),
502
+ __param(3, decorators_1.Body),
503
+ __metadata("design:type", Function),
504
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.InstanceAiUpdateMemoryRequest]),
505
+ __metadata("design:returntype", Promise)
506
+ ], InstanceAiController.prototype, "updateMemory", null);
507
+ __decorate([
508
+ (0, decorators_1.Get)('/threads'),
509
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
510
+ __metadata("design:type", Function),
511
+ __metadata("design:paramtypes", [Object]),
512
+ __metadata("design:returntype", Promise)
513
+ ], InstanceAiController.prototype, "listThreads", null);
514
+ __decorate([
515
+ (0, decorators_1.Post)('/threads'),
516
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
517
+ __param(2, decorators_1.Body),
518
+ __metadata("design:type", Function),
519
+ __metadata("design:paramtypes", [Object, Object, api_types_1.InstanceAiEnsureThreadRequest]),
520
+ __metadata("design:returntype", Promise)
521
+ ], InstanceAiController.prototype, "ensureThread", null);
522
+ __decorate([
523
+ (0, decorators_1.Delete)('/threads/:threadId'),
524
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
525
+ __param(2, (0, decorators_1.Param)('threadId')),
526
+ __metadata("design:type", Function),
527
+ __metadata("design:paramtypes", [Object, Object, String]),
528
+ __metadata("design:returntype", Promise)
529
+ ], InstanceAiController.prototype, "deleteThread", null);
530
+ __decorate([
531
+ (0, decorators_1.Patch)('/threads/:threadId'),
532
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
533
+ __param(2, (0, decorators_1.Param)('threadId')),
534
+ __param(3, decorators_1.Body),
535
+ __metadata("design:type", Function),
536
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.InstanceAiRenameThreadRequestDto]),
537
+ __metadata("design:returntype", Promise)
538
+ ], InstanceAiController.prototype, "renameThread", null);
539
+ __decorate([
540
+ (0, decorators_1.Get)('/threads/:threadId/messages'),
541
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
542
+ __param(2, (0, decorators_1.Param)('threadId')),
543
+ __param(3, decorators_1.Query),
544
+ __metadata("design:type", Function),
545
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.InstanceAiThreadMessagesQuery]),
546
+ __metadata("design:returntype", Promise)
547
+ ], InstanceAiController.prototype, "getThreadMessages", null);
548
+ __decorate([
549
+ (0, decorators_1.Get)('/threads/:threadId/status'),
550
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
551
+ __param(2, (0, decorators_1.Param)('threadId')),
552
+ __metadata("design:type", Function),
553
+ __metadata("design:paramtypes", [Object, Object, String]),
554
+ __metadata("design:returntype", Promise)
555
+ ], InstanceAiController.prototype, "getThreadStatus", null);
556
+ __decorate([
557
+ (0, decorators_1.Get)('/threads/:threadId/context'),
558
+ (0, decorators_1.GlobalScope)('instanceAi:message'),
559
+ __param(2, (0, decorators_1.Param)('threadId')),
560
+ __metadata("design:type", Function),
561
+ __metadata("design:paramtypes", [Object, Object, String]),
562
+ __metadata("design:returntype", Promise)
563
+ ], InstanceAiController.prototype, "getThreadContext", null);
564
+ __decorate([
565
+ (0, decorators_1.Post)('/gateway/create-link'),
566
+ (0, decorators_1.GlobalScope)('instanceAi:gateway'),
567
+ __metadata("design:type", Function),
568
+ __metadata("design:paramtypes", [Object]),
569
+ __metadata("design:returntype", Promise)
570
+ ], InstanceAiController.prototype, "createGatewayLink", null);
571
+ __decorate([
572
+ (0, decorators_1.Get)('/gateway/events', { usesTemplates: true, skipAuth: true }),
573
+ __metadata("design:type", Function),
574
+ __metadata("design:paramtypes", [Object, Object]),
575
+ __metadata("design:returntype", Promise)
576
+ ], InstanceAiController.prototype, "gatewayEvents", null);
577
+ __decorate([
578
+ (0, decorators_1.Post)('/gateway/init', { skipAuth: true }),
579
+ __metadata("design:type", Function),
580
+ __metadata("design:paramtypes", [Object]),
581
+ __metadata("design:returntype", void 0)
582
+ ], InstanceAiController.prototype, "gatewayInit", null);
583
+ __decorate([
584
+ (0, decorators_1.Post)('/gateway/disconnect', { skipAuth: true }),
585
+ __metadata("design:type", Function),
586
+ __metadata("design:paramtypes", [Object]),
587
+ __metadata("design:returntype", void 0)
588
+ ], InstanceAiController.prototype, "gatewayDisconnect", null);
589
+ __decorate([
590
+ (0, decorators_1.Post)('/gateway/response/:requestId', { skipAuth: true }),
591
+ __param(2, (0, decorators_1.Param)('requestId')),
592
+ __metadata("design:type", Function),
593
+ __metadata("design:paramtypes", [Object, Object, String]),
594
+ __metadata("design:returntype", void 0)
595
+ ], InstanceAiController.prototype, "gatewayResponse", null);
596
+ __decorate([
597
+ (0, decorators_1.Get)('/gateway/status'),
598
+ (0, decorators_1.GlobalScope)('instanceAi:gateway'),
599
+ __metadata("design:type", Function),
600
+ __metadata("design:paramtypes", [Object]),
601
+ __metadata("design:returntype", Promise)
602
+ ], InstanceAiController.prototype, "gatewayStatus", null);
603
+ exports.InstanceAiController = InstanceAiController = __decorate([
604
+ (0, decorators_1.RestController)('/instance-ai'),
605
+ __metadata("design:paramtypes", [instance_ai_service_1.InstanceAiService,
606
+ instance_ai_memory_service_1.InstanceAiMemoryService,
607
+ instance_ai_settings_service_1.InstanceAiSettingsService,
608
+ in_process_event_bus_1.InProcessEventBus,
609
+ backend_common_1.ModuleRegistry,
610
+ push_1.Push,
611
+ config_1.GlobalConfig])
612
+ ], InstanceAiController);
613
+ //# sourceMappingURL=instance-ai.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-ai.controller.js","sourceRoot":"","sources":["../../../src/modules/instance-ai/instance-ai.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ModuleInterface } from '@n8n/decorators';
2
+ export declare class InstanceAiModule implements ModuleInterface {
3
+ init(): Promise<void>;
4
+ settings(): Promise<{
5
+ enabled: boolean;
6
+ localGateway: boolean;
7
+ localGatewayDisabled: boolean;
8
+ localGatewayFallbackDirectory: string | null;
9
+ proxyEnabled: boolean;
10
+ }>;
11
+ entities(): Promise<(typeof import("./entities/instance-ai-message.entity").InstanceAiMessage | typeof import("./entities/instance-ai-observational-memory.entity").InstanceAiObservationalMemory | typeof import("./entities/instance-ai-thread.entity").InstanceAiThread | typeof import("./entities/instance-ai-resource.entity").InstanceAiResource | typeof import("./entities/instance-ai-run-snapshot.entity").InstanceAiRunSnapshot | typeof import("./entities/instance-ai-workflow-snapshot.entity").InstanceAiWorkflowSnapshot | typeof import("./entities/instance-ai-iteration-log.entity").InstanceAiIterationLog)[]>;
12
+ shutdown(): Promise<void>;
13
+ }