n8n 2.0.1 → 2.1.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 (349) hide show
  1. package/dist/active-executions.js +7 -1
  2. package/dist/active-executions.js.map +1 -1
  3. package/dist/active-workflow-manager.d.ts +0 -1
  4. package/dist/active-workflow-manager.js +5 -8
  5. package/dist/active-workflow-manager.js.map +1 -1
  6. package/dist/auth/auth.service.js +1 -7
  7. package/dist/auth/auth.service.js.map +1 -1
  8. package/dist/build.tsbuildinfo +1 -1
  9. package/dist/commands/base-command.js +1 -2
  10. package/dist/commands/base-command.js.map +1 -1
  11. package/dist/commands/start.js +3 -0
  12. package/dist/commands/start.js.map +1 -1
  13. package/dist/commands/user-management/reset.js +1 -1
  14. package/dist/commands/user-management/reset.js.map +1 -1
  15. package/dist/commands/worker.js +3 -0
  16. package/dist/commands/worker.js.map +1 -1
  17. package/dist/concurrency/concurrency-control.service.js +2 -1
  18. package/dist/concurrency/concurrency-control.service.js.map +1 -1
  19. package/dist/config/schema.js.map +1 -1
  20. package/dist/config/types.d.ts +0 -1
  21. package/dist/controllers/ai.controller.d.ts +3 -0
  22. package/dist/controllers/ai.controller.js +2 -1
  23. package/dist/controllers/ai.controller.js.map +1 -1
  24. package/dist/controllers/api-keys.controller.js +5 -0
  25. package/dist/controllers/api-keys.controller.js.map +1 -1
  26. package/dist/controllers/e2e.controller.d.ts +1 -0
  27. package/dist/controllers/e2e.controller.js +10 -11
  28. package/dist/controllers/e2e.controller.js.map +1 -1
  29. package/dist/controllers/invitation.controller.d.ts +3 -1
  30. package/dist/controllers/invitation.controller.js +6 -7
  31. package/dist/controllers/invitation.controller.js.map +1 -1
  32. package/dist/controllers/oauth/oauth1-credential.controller.d.ts +6 -3
  33. package/dist/controllers/oauth/oauth1-credential.controller.js +39 -57
  34. package/dist/controllers/oauth/oauth1-credential.controller.js.map +1 -1
  35. package/dist/controllers/oauth/oauth2-credential.controller.d.ts +8 -5
  36. package/dist/controllers/oauth/oauth2-credential.controller.js +41 -179
  37. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  38. package/dist/controllers/owner.controller.d.ts +4 -10
  39. package/dist/controllers/owner.controller.js +6 -42
  40. package/dist/controllers/owner.controller.js.map +1 -1
  41. package/dist/controllers/project.controller.d.ts +4 -0
  42. package/dist/credentials/credential-resolution-provider.interface.d.ts +12 -0
  43. package/dist/credentials/credential-resolution-provider.interface.js +3 -0
  44. package/dist/credentials/credential-resolution-provider.interface.js.map +1 -0
  45. package/dist/credentials/credentials-finder.service.d.ts +4 -0
  46. package/dist/credentials/credentials-finder.service.js +3 -0
  47. package/dist/credentials/credentials-finder.service.js.map +1 -1
  48. package/dist/credentials/credentials.controller.d.ts +12 -4
  49. package/dist/credentials/credentials.controller.js +9 -6
  50. package/dist/credentials/credentials.controller.js.map +1 -1
  51. package/dist/credentials/credentials.service.d.ts +13 -0
  52. package/dist/credentials/credentials.service.ee.d.ts +9 -2
  53. package/dist/credentials/credentials.service.ee.js +4 -1
  54. package/dist/credentials/credentials.service.ee.js.map +1 -1
  55. package/dist/credentials/credentials.service.js +10 -6
  56. package/dist/credentials/credentials.service.js.map +1 -1
  57. package/dist/credentials/dynamic-credential-storage.interface.d.ts +11 -0
  58. package/dist/credentials/dynamic-credential-storage.interface.js +3 -0
  59. package/dist/credentials/dynamic-credential-storage.interface.js.map +1 -0
  60. package/dist/credentials/dynamic-credentials-proxy.d.ts +14 -0
  61. package/dist/credentials/dynamic-credentials-proxy.js +50 -0
  62. package/dist/credentials/dynamic-credentials-proxy.js.map +1 -0
  63. package/dist/credentials-helper.d.ts +5 -2
  64. package/dist/credentials-helper.js +25 -7
  65. package/dist/credentials-helper.js.map +1 -1
  66. package/dist/environments.ee/source-control/source-control-import.service.ee.js.map +1 -1
  67. package/dist/environments.ee/source-control/source-control-status.service.ee.d.ts +2 -2
  68. package/dist/environments.ee/source-control/source-control.controller.ee.d.ts +4 -4
  69. package/dist/environments.ee/source-control/source-control.service.ee.d.ts +2 -2
  70. package/dist/environments.ee/source-control/source-control.service.ee.js +67 -39
  71. package/dist/environments.ee/source-control/source-control.service.ee.js.map +1 -1
  72. package/dist/errors/single-webhook-trigger.error.d.ts +4 -0
  73. package/dist/errors/single-webhook-trigger.error.js +11 -0
  74. package/dist/errors/single-webhook-trigger.error.js.map +1 -0
  75. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  76. package/dist/eventbus/event-message-classes/index.js +1 -0
  77. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  78. package/dist/events/maps/relay.event-map.d.ts +6 -1
  79. package/dist/events/relays/log-streaming.event-relay.d.ts +1 -0
  80. package/dist/events/relays/log-streaming.event-relay.js +12 -0
  81. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  82. package/dist/events/relays/telemetry.event-relay.js +14 -3
  83. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  84. package/dist/execution-lifecycle/execution-lifecycle-hooks.d.ts +2 -2
  85. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +15 -3
  86. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  87. package/dist/license.d.ts +6 -0
  88. package/dist/license.js +27 -0
  89. package/dist/license.js.map +1 -1
  90. package/dist/load-nodes-and-credentials.d.ts +2 -0
  91. package/dist/load-nodes-and-credentials.js +97 -86
  92. package/dist/load-nodes-and-credentials.js.map +1 -1
  93. package/dist/modules/breaking-changes/rules/index.d.ts +1 -1
  94. package/dist/modules/breaking-changes/rules/v2/index.d.ts +2 -1
  95. package/dist/modules/breaking-changes/rules/v2/index.js +2 -0
  96. package/dist/modules/breaking-changes/rules/v2/index.js.map +1 -1
  97. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js +2 -1
  98. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js.map +1 -1
  99. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.d.ts +3 -3
  100. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js +11 -4
  101. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js.map +1 -1
  102. package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.d.ts +11 -0
  103. package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.js +63 -0
  104. package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.js.map +1 -0
  105. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.d.ts +3 -0
  106. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js +15 -2
  107. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js.map +1 -1
  108. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.d.ts +3 -2
  109. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js +11 -2
  110. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js.map +1 -1
  111. package/dist/modules/chat-hub/chat-hub-agent.entity.d.ts +4 -3
  112. package/dist/modules/chat-hub/chat-hub-agent.entity.js +4 -0
  113. package/dist/modules/chat-hub/chat-hub-agent.entity.js.map +1 -1
  114. package/dist/modules/chat-hub/chat-hub-agent.service.d.ts +5 -21
  115. package/dist/modules/chat-hub/chat-hub-agent.service.js +17 -11
  116. package/dist/modules/chat-hub/chat-hub-agent.service.js.map +1 -1
  117. package/dist/modules/chat-hub/chat-hub-credentials.service.js +4 -2
  118. package/dist/modules/chat-hub/chat-hub-credentials.service.js.map +1 -1
  119. package/dist/modules/chat-hub/chat-hub-message.entity.js +1 -1
  120. package/dist/modules/chat-hub/chat-hub-message.entity.js.map +1 -1
  121. package/dist/modules/chat-hub/chat-hub-session.entity.d.ts +2 -0
  122. package/dist/modules/chat-hub/chat-hub-session.entity.js +6 -1
  123. package/dist/modules/chat-hub/chat-hub-session.entity.js.map +1 -1
  124. package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +17 -4
  125. package/dist/modules/chat-hub/chat-hub-workflow.service.js +161 -31
  126. package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
  127. package/dist/modules/chat-hub/chat-hub.attachment.service.d.ts +2 -0
  128. package/dist/modules/chat-hub/chat-hub.attachment.service.js +12 -0
  129. package/dist/modules/chat-hub/chat-hub.attachment.service.js.map +1 -1
  130. package/dist/modules/chat-hub/chat-hub.constants.d.ts +7 -3
  131. package/dist/modules/chat-hub/chat-hub.constants.js +468 -10
  132. package/dist/modules/chat-hub/chat-hub.constants.js.map +1 -1
  133. package/dist/modules/chat-hub/chat-hub.controller.d.ts +3 -1
  134. package/dist/modules/chat-hub/chat-hub.controller.js +7 -14
  135. package/dist/modules/chat-hub/chat-hub.controller.js.map +1 -1
  136. package/dist/modules/chat-hub/chat-hub.models.service.d.ts +35 -0
  137. package/dist/modules/chat-hub/chat-hub.models.service.js +640 -0
  138. package/dist/modules/chat-hub/chat-hub.models.service.js.map +1 -0
  139. package/dist/modules/chat-hub/chat-hub.module.js +0 -8
  140. package/dist/modules/chat-hub/chat-hub.module.js.map +1 -1
  141. package/dist/modules/chat-hub/chat-hub.service.d.ts +13 -26
  142. package/dist/modules/chat-hub/chat-hub.service.js +162 -760
  143. package/dist/modules/chat-hub/chat-hub.service.js.map +1 -1
  144. package/dist/modules/chat-hub/chat-hub.types.d.ts +27 -6
  145. package/dist/modules/chat-hub/chat-hub.types.js +11 -3
  146. package/dist/modules/chat-hub/chat-hub.types.js.map +1 -1
  147. package/dist/modules/chat-hub/chat-session.repository.js +17 -2
  148. package/dist/modules/chat-hub/chat-session.repository.js.map +1 -1
  149. package/dist/modules/chat-hub/context-limits.js +62 -5
  150. package/dist/modules/chat-hub/context-limits.js.map +1 -1
  151. package/dist/modules/data-table/data-table-column.repository.d.ts +15 -0
  152. package/dist/modules/data-table/data-table-column.repository.js +33 -17
  153. package/dist/modules/data-table/data-table-column.repository.js.map +1 -1
  154. package/dist/modules/data-table/data-table-ddl.service.d.ts +1 -0
  155. package/dist/modules/data-table/data-table-ddl.service.js +5 -0
  156. package/dist/modules/data-table/data-table-ddl.service.js.map +1 -1
  157. package/dist/modules/data-table/data-table-rows.repository.js +1 -1
  158. package/dist/modules/data-table/data-table-rows.repository.js.map +1 -1
  159. package/dist/modules/data-table/data-table.controller.d.ts +16 -1
  160. package/dist/modules/data-table/data-table.controller.js +39 -35
  161. package/dist/modules/data-table/data-table.controller.js.map +1 -1
  162. package/dist/modules/data-table/data-table.repository.d.ts +4 -1
  163. package/dist/modules/data-table/data-table.repository.js +12 -2
  164. package/dist/modules/data-table/data-table.repository.js.map +1 -1
  165. package/dist/modules/data-table/data-table.service.d.ts +13 -1
  166. package/dist/modules/data-table/data-table.service.js +13 -1
  167. package/dist/modules/data-table/data-table.service.js.map +1 -1
  168. package/dist/modules/data-table/errors/data-table-column-not-found.error.d.ts +2 -2
  169. package/dist/modules/data-table/errors/data-table-column-not-found.error.js +3 -5
  170. package/dist/modules/data-table/errors/data-table-column-not-found.error.js.map +1 -1
  171. package/dist/modules/data-table/errors/data-table-not-found.error.d.ts +2 -2
  172. package/dist/modules/data-table/errors/data-table-not-found.error.js +3 -5
  173. package/dist/modules/data-table/errors/data-table-not-found.error.js.map +1 -1
  174. package/dist/modules/data-table/utils/sql-utils.d.ts +1 -0
  175. package/dist/modules/data-table/utils/sql-utils.js +10 -0
  176. package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
  177. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.d.ts +9 -0
  178. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.js +42 -0
  179. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.js.map +1 -0
  180. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.d.ts +9 -0
  181. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.js +141 -0
  182. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.js.map +1 -0
  183. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.d.ts +2 -0
  184. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.js +5 -0
  185. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.js.map +1 -0
  186. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.d.ts +7 -0
  187. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.js +7 -0
  188. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.js.map +1 -0
  189. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +78 -0
  190. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +223 -0
  191. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -0
  192. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.d.ts +37 -0
  193. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +160 -0
  194. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -0
  195. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.d.ts +13 -0
  196. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js +17 -0
  197. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js.map +1 -0
  198. package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.d.ts +2 -0
  199. package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.js +5 -0
  200. package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.js.map +1 -0
  201. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.d.ts +103 -0
  202. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js +174 -0
  203. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js.map +1 -0
  204. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.d.ts +9 -0
  205. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.js +56 -0
  206. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.js.map +1 -0
  207. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.d.ts +5 -0
  208. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js +3 -0
  209. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js.map +1 -0
  210. package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.d.ts +28 -0
  211. package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js +86 -0
  212. package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js.map +1 -0
  213. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +16 -0
  214. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +172 -0
  215. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -0
  216. package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.d.ts +8 -0
  217. package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.js +33 -0
  218. package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.js.map +1 -0
  219. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.d.ts +11 -0
  220. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.js +60 -0
  221. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.js.map +1 -0
  222. package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.d.ts +5 -0
  223. package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.js +26 -0
  224. package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.js.map +1 -0
  225. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.d.ts +5 -0
  226. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.js +26 -0
  227. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.js.map +1 -0
  228. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +9 -0
  229. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +61 -0
  230. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -0
  231. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +6 -0
  232. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +91 -0
  233. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -0
  234. package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.d.ts +6 -0
  235. package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.js +12 -0
  236. package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.js.map +1 -0
  237. package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.d.ts +4 -0
  238. package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.js +11 -0
  239. package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.js.map +1 -0
  240. package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.d.ts +6 -0
  241. package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.js +12 -0
  242. package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.js.map +1 -0
  243. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.d.ts +11 -0
  244. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.js +64 -0
  245. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.js.map +1 -0
  246. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.d.ts +22 -0
  247. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +150 -0
  248. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -0
  249. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +33 -0
  250. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +118 -0
  251. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -0
  252. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.d.ts +18 -0
  253. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +94 -0
  254. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js.map +1 -0
  255. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +20 -0
  256. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +146 -0
  257. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -0
  258. package/dist/modules/dynamic-credentials.ee/services/index.d.ts +5 -0
  259. package/dist/modules/dynamic-credentials.ee/services/index.js +22 -0
  260. package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -0
  261. package/dist/modules/dynamic-credentials.ee/services/shared-fields.d.ts +2 -0
  262. package/dist/modules/dynamic-credentials.ee/services/shared-fields.js +13 -0
  263. package/dist/modules/dynamic-credentials.ee/services/shared-fields.js.map +1 -0
  264. package/dist/modules/dynamic-credentials.ee/workflow-status.controller.d.ts +8 -0
  265. package/dist/modules/dynamic-credentials.ee/workflow-status.controller.js +62 -0
  266. package/dist/modules/dynamic-credentials.ee/workflow-status.controller.js.map +1 -0
  267. package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js +40 -24
  268. package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js.map +1 -1
  269. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +2 -2
  270. package/dist/modules/insights/insights-collection.service.d.ts +2 -0
  271. package/dist/modules/insights/insights-collection.service.js +30 -6
  272. package/dist/modules/insights/insights-collection.service.js.map +1 -1
  273. package/dist/modules/insights/insights.service.d.ts +1 -1
  274. package/dist/modules/workflow-index/workflow-index.service.js +17 -10
  275. package/dist/modules/workflow-index/workflow-index.service.js.map +1 -1
  276. package/dist/oauth/oauth.service.d.ts +52 -0
  277. package/dist/oauth/oauth.service.js +416 -0
  278. package/dist/oauth/oauth.service.js.map +1 -0
  279. package/dist/oauth/types.d.ts +28 -0
  280. package/dist/oauth/types.js +16 -0
  281. package/dist/oauth/types.js.map +1 -0
  282. package/dist/public-api/v1/handlers/credentials/credentials.service.js +6 -8
  283. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
  284. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +2 -1
  285. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  286. package/dist/public-api/v1/openapi.yml +4 -0
  287. package/dist/requests.d.ts +1 -0
  288. package/dist/scaling/job-processor.js +8 -2
  289. package/dist/scaling/job-processor.js.map +1 -1
  290. package/dist/scaling/worker-status.service.ee.js +20 -2
  291. package/dist/scaling/worker-status.service.ee.js.map +1 -1
  292. package/dist/server.js +5 -3
  293. package/dist/server.js.map +1 -1
  294. package/dist/services/ai-workflow-builder.service.d.ts +1 -0
  295. package/dist/services/ai-workflow-builder.service.js +5 -3
  296. package/dist/services/ai-workflow-builder.service.js.map +1 -1
  297. package/dist/services/ai.service.js +3 -0
  298. package/dist/services/ai.service.js.map +1 -1
  299. package/dist/services/cache/cache.service.d.ts +1 -0
  300. package/dist/services/cache/cache.service.js +4 -0
  301. package/dist/services/cache/cache.service.js.map +1 -1
  302. package/dist/services/frontend.service.d.ts +6 -4
  303. package/dist/services/frontend.service.js +14 -9
  304. package/dist/services/frontend.service.js.map +1 -1
  305. package/dist/services/ownership.service.d.ts +13 -3
  306. package/dist/services/ownership.service.js +59 -4
  307. package/dist/services/ownership.service.js.map +1 -1
  308. package/dist/services/project.service.ee.js +1 -1
  309. package/dist/services/project.service.ee.js.map +1 -1
  310. package/dist/services/public-api-key.service.d.ts +1 -0
  311. package/dist/services/public-api-key.service.js +8 -0
  312. package/dist/services/public-api-key.service.js.map +1 -1
  313. package/dist/services/user.service.d.ts +4 -3
  314. package/dist/services/user.service.js +50 -4
  315. package/dist/services/user.service.js.map +1 -1
  316. package/dist/telemetry/index.js +1 -0
  317. package/dist/telemetry/index.js.map +1 -1
  318. package/dist/webhooks/test-webhook-registrations.service.d.ts +5 -3
  319. package/dist/webhooks/test-webhook-registrations.service.js +25 -6
  320. package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
  321. package/dist/webhooks/test-webhooks.d.ts +1 -0
  322. package/dist/webhooks/test-webhooks.js +17 -10
  323. package/dist/webhooks/test-webhooks.js.map +1 -1
  324. package/dist/webhooks/waiting-forms.js +2 -0
  325. package/dist/webhooks/waiting-forms.js.map +1 -1
  326. package/dist/webhooks/webhook-helpers.js +12 -3
  327. package/dist/webhooks/webhook-helpers.js.map +1 -1
  328. package/dist/workflow-execute-additional-data.d.ts +2 -1
  329. package/dist/workflow-execute-additional-data.js +5 -3
  330. package/dist/workflow-execute-additional-data.js.map +1 -1
  331. package/dist/workflow-runner.js +1 -0
  332. package/dist/workflow-runner.js.map +1 -1
  333. package/dist/workflows/workflow-execution.service.js +3 -0
  334. package/dist/workflows/workflow-execution.service.js.map +1 -1
  335. package/dist/workflows/workflow-history/workflow-history.service.d.ts +1 -1
  336. package/dist/workflows/workflow-history/workflow-history.service.js +2 -1
  337. package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
  338. package/dist/workflows/workflow.request.d.ts +2 -0
  339. package/dist/workflows/workflow.service.d.ts +2 -0
  340. package/dist/workflows/workflow.service.js +4 -2
  341. package/dist/workflows/workflow.service.js.map +1 -1
  342. package/dist/workflows/workflows.controller.js +15 -17
  343. package/dist/workflows/workflows.controller.js.map +1 -1
  344. package/package.json +18 -18
  345. package/templates/form-trigger-completion.handlebars +1 -4
  346. package/templates/form-trigger.handlebars +1 -2
  347. package/dist/controllers/oauth/abstract-oauth.controller.d.ts +0 -47
  348. package/dist/controllers/oauth/abstract-oauth.controller.js +0 -185
  349. package/dist/controllers/oauth/abstract-oauth.controller.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ import { type ChatHubLLMProvider, type ChatModelDto, type ChatModelsResponse } from '@n8n/api-types';
2
+ import { WorkflowRepository, type User, type WorkflowEntity } from '@n8n/db';
3
+ import { ChatHubAgentService } from './chat-hub-agent.service';
4
+ import { ChatHubWorkflowService } from './chat-hub-workflow.service';
5
+ import { CredentialsFinderService } from '../../credentials/credentials-finder.service';
6
+ import { DynamicNodeParametersService } from '../../services/dynamic-node-parameters.service';
7
+ import { WorkflowService } from '../../workflows/workflow.service';
8
+ export declare class ChatHubModelsService {
9
+ private readonly nodeParametersService;
10
+ private readonly workflowService;
11
+ private readonly workflowRepository;
12
+ private readonly credentialsFinderService;
13
+ private readonly chatHubAgentService;
14
+ private readonly chatHubWorkflowService;
15
+ constructor(nodeParametersService: DynamicNodeParametersService, workflowService: WorkflowService, workflowRepository: WorkflowRepository, credentialsFinderService: CredentialsFinderService, chatHubAgentService: ChatHubAgentService, chatHubWorkflowService: ChatHubWorkflowService);
16
+ getModels(user: User, credentialIds: Record<ChatHubLLMProvider, string | null>): Promise<ChatModelsResponse>;
17
+ private fetchModelsForProvider;
18
+ private fetchOpenAiModels;
19
+ private fetchAnthropicModels;
20
+ private fetchGoogleModels;
21
+ private fetchOllamaModels;
22
+ private fetchAzureOpenAiModels;
23
+ private fetchAzureEntraIdModels;
24
+ private fetchAwsBedrockModels;
25
+ private fetchMistralCloudModels;
26
+ private fetchCohereModels;
27
+ private fetchDeepSeekModels;
28
+ private fetchOpenRouterModels;
29
+ private fetchGroqModels;
30
+ private fetchXAiGrokModels;
31
+ private fetchVercelAiGatewayModels;
32
+ private fetchAgentWorkflowsAsModels;
33
+ extractModelFromWorkflow({ name, activeVersion, id, shared, }: WorkflowEntity): ChatModelDto | null;
34
+ private transformAndFilterModels;
35
+ }
@@ -0,0 +1,640 @@
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.ChatHubModelsService = void 0;
13
+ const api_types_1 = require("@n8n/api-types");
14
+ const db_1 = require("@n8n/db");
15
+ const di_1 = require("@n8n/di");
16
+ const n8n_workflow_1 = require("n8n-workflow");
17
+ const chat_hub_agent_service_1 = require("./chat-hub-agent.service");
18
+ const chat_hub_workflow_service_1 = require("./chat-hub-workflow.service");
19
+ const chat_hub_constants_1 = require("./chat-hub.constants");
20
+ const chat_hub_types_1 = require("./chat-hub.types");
21
+ const credentials_finder_service_1 = require("../../credentials/credentials-finder.service");
22
+ const dynamic_node_parameters_service_1 = require("../../services/dynamic-node-parameters.service");
23
+ const workflow_execute_additional_data_1 = require("../../workflow-execute-additional-data");
24
+ const workflow_service_1 = require("../../workflows/workflow.service");
25
+ let ChatHubModelsService = class ChatHubModelsService {
26
+ constructor(nodeParametersService, workflowService, workflowRepository, credentialsFinderService, chatHubAgentService, chatHubWorkflowService) {
27
+ this.nodeParametersService = nodeParametersService;
28
+ this.workflowService = workflowService;
29
+ this.workflowRepository = workflowRepository;
30
+ this.credentialsFinderService = credentialsFinderService;
31
+ this.chatHubAgentService = chatHubAgentService;
32
+ this.chatHubWorkflowService = chatHubWorkflowService;
33
+ }
34
+ async getModels(user, credentialIds) {
35
+ const additionalData = await (0, workflow_execute_additional_data_1.getBase)({ userId: user.id });
36
+ const providers = api_types_1.chatHubProviderSchema.options;
37
+ const allCredentials = await this.credentialsFinderService.findCredentialsForUser(user, [
38
+ 'credential:read',
39
+ ]);
40
+ const responses = await Promise.all(providers.map(async (provider) => {
41
+ const credentials = {};
42
+ if (provider !== 'n8n' && provider !== 'custom-agent') {
43
+ const credentialId = credentialIds[provider];
44
+ if (!credentialId) {
45
+ return [provider, { models: [] }];
46
+ }
47
+ if (!allCredentials.some((credential) => credential.id === credentialId)) {
48
+ return [
49
+ provider,
50
+ { models: [], error: 'Could not retrieve models. Verify credentials.' },
51
+ ];
52
+ }
53
+ credentials[api_types_1.PROVIDER_CREDENTIAL_TYPE_MAP[provider]] = { name: '', id: credentialId };
54
+ }
55
+ try {
56
+ return [
57
+ provider,
58
+ await this.fetchModelsForProvider(user, provider, credentials, additionalData),
59
+ ];
60
+ }
61
+ catch {
62
+ return [
63
+ provider,
64
+ { models: [], error: 'Could not retrieve models. Verify credentials.' },
65
+ ];
66
+ }
67
+ }));
68
+ return responses.reduce((acc, [provider, res]) => {
69
+ acc[provider] = res;
70
+ return acc;
71
+ }, { ...api_types_1.emptyChatModelsResponse });
72
+ }
73
+ async fetchModelsForProvider(user, provider, credentials, additionalData) {
74
+ switch (provider) {
75
+ case 'openai': {
76
+ const rawModels = await this.fetchOpenAiModels(credentials, additionalData);
77
+ return { models: this.transformAndFilterModels(rawModels, 'openai') };
78
+ }
79
+ case 'anthropic': {
80
+ const rawModels = await this.fetchAnthropicModels(credentials, additionalData);
81
+ return { models: this.transformAndFilterModels(rawModels, 'anthropic') };
82
+ }
83
+ case 'google': {
84
+ const rawModels = await this.fetchGoogleModels(credentials, additionalData);
85
+ return { models: this.transformAndFilterModels(rawModels, 'google') };
86
+ }
87
+ case 'ollama': {
88
+ const rawModels = await this.fetchOllamaModels(credentials, additionalData);
89
+ return { models: this.transformAndFilterModels(rawModels, 'ollama') };
90
+ }
91
+ case 'azureOpenAi': {
92
+ const rawModels = this.fetchAzureOpenAiModels(credentials, additionalData);
93
+ return { models: this.transformAndFilterModels(rawModels, 'azureOpenAi') };
94
+ }
95
+ case 'azureEntraId': {
96
+ const rawModels = this.fetchAzureEntraIdModels(credentials, additionalData);
97
+ return { models: this.transformAndFilterModels(rawModels, 'azureEntraId') };
98
+ }
99
+ case 'awsBedrock': {
100
+ const rawModels = await this.fetchAwsBedrockModels(credentials, additionalData);
101
+ return { models: this.transformAndFilterModels(rawModels, 'awsBedrock') };
102
+ }
103
+ case 'vercelAiGateway': {
104
+ const rawModels = await this.fetchVercelAiGatewayModels(credentials, additionalData);
105
+ return { models: this.transformAndFilterModels(rawModels, 'vercelAiGateway') };
106
+ }
107
+ case 'xAiGrok': {
108
+ const rawModels = await this.fetchXAiGrokModels(credentials, additionalData);
109
+ return { models: this.transformAndFilterModels(rawModels, 'xAiGrok') };
110
+ }
111
+ case 'groq': {
112
+ const rawModels = await this.fetchGroqModels(credentials, additionalData);
113
+ return { models: this.transformAndFilterModels(rawModels, 'groq') };
114
+ }
115
+ case 'openRouter': {
116
+ const rawModels = await this.fetchOpenRouterModels(credentials, additionalData);
117
+ return { models: this.transformAndFilterModels(rawModels, 'openRouter') };
118
+ }
119
+ case 'deepSeek': {
120
+ const rawModels = await this.fetchDeepSeekModels(credentials, additionalData);
121
+ return { models: this.transformAndFilterModels(rawModels, 'deepSeek') };
122
+ }
123
+ case 'cohere': {
124
+ const rawModels = await this.fetchCohereModels(credentials, additionalData);
125
+ return { models: this.transformAndFilterModels(rawModels, 'cohere') };
126
+ }
127
+ case 'mistralCloud': {
128
+ const rawModels = await this.fetchMistralCloudModels(credentials, additionalData);
129
+ return { models: this.transformAndFilterModels(rawModels, 'mistralCloud') };
130
+ }
131
+ case 'n8n':
132
+ return { models: await this.fetchAgentWorkflowsAsModels(user) };
133
+ case 'custom-agent':
134
+ return { models: await this.chatHubAgentService.getAgentsByUserIdAsModels(user.id) };
135
+ }
136
+ }
137
+ async fetchOpenAiModels(credentials, additionalData) {
138
+ const resourceLocatorResults = await this.nodeParametersService.getResourceLocatorResults('searchModels', 'parameters.model', additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.openai, {}, credentials);
139
+ return resourceLocatorResults.results;
140
+ }
141
+ async fetchAnthropicModels(credentials, additionalData) {
142
+ const resourceLocatorResults = await this.nodeParametersService.getResourceLocatorResults('searchModels', 'parameters.model', additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.anthropic, {}, credentials);
143
+ return resourceLocatorResults.results;
144
+ }
145
+ async fetchGoogleModels(credentials, additionalData) {
146
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
147
+ routing: {
148
+ request: {
149
+ method: 'GET',
150
+ url: '/v1beta/models',
151
+ },
152
+ output: {
153
+ postReceive: [
154
+ {
155
+ type: 'rootProperty',
156
+ properties: {
157
+ property: 'models',
158
+ },
159
+ },
160
+ {
161
+ type: 'filter',
162
+ properties: {
163
+ pass: "={{ !$responseItem.name.includes('embedding') }}",
164
+ },
165
+ },
166
+ {
167
+ type: 'setKeyValue',
168
+ properties: {
169
+ name: '={{$responseItem.name}}',
170
+ value: '={{$responseItem.name}}',
171
+ description: '={{$responseItem.description}}',
172
+ },
173
+ },
174
+ {
175
+ type: 'sort',
176
+ properties: {
177
+ key: 'name',
178
+ },
179
+ },
180
+ ],
181
+ },
182
+ },
183
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.google, {}, credentials);
184
+ }
185
+ async fetchOllamaModels(credentials, additionalData) {
186
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
187
+ routing: {
188
+ request: {
189
+ method: 'GET',
190
+ url: '/api/tags',
191
+ },
192
+ output: {
193
+ postReceive: [
194
+ {
195
+ type: 'rootProperty',
196
+ properties: {
197
+ property: 'models',
198
+ },
199
+ },
200
+ {
201
+ type: 'setKeyValue',
202
+ properties: {
203
+ name: '={{$responseItem.name}}',
204
+ value: '={{$responseItem.name}}',
205
+ },
206
+ },
207
+ {
208
+ type: 'sort',
209
+ properties: {
210
+ key: 'name',
211
+ },
212
+ },
213
+ ],
214
+ },
215
+ },
216
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.ollama, {}, credentials);
217
+ }
218
+ fetchAzureOpenAiModels(_credentials, _additionalData) {
219
+ return [];
220
+ }
221
+ fetchAzureEntraIdModels(_credentials, _additionalData) {
222
+ return [];
223
+ }
224
+ async fetchAwsBedrockModels(credentials, additionalData) {
225
+ const foundationModelsRequest = this.nodeParametersService.getOptionsViaLoadOptions({
226
+ routing: {
227
+ request: {
228
+ method: 'GET',
229
+ url: '/foundation-models?&byOutputModality=TEXT&byInferenceType=ON_DEMAND',
230
+ },
231
+ output: {
232
+ postReceive: [
233
+ {
234
+ type: 'rootProperty',
235
+ properties: {
236
+ property: 'modelSummaries',
237
+ },
238
+ },
239
+ {
240
+ type: 'setKeyValue',
241
+ properties: {
242
+ name: '={{$responseItem.modelName}}',
243
+ description: '={{$responseItem.modelArn}}',
244
+ value: '={{$responseItem.modelId}}',
245
+ },
246
+ },
247
+ {
248
+ type: 'sort',
249
+ properties: {
250
+ key: 'name',
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ },
256
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.awsBedrock, {}, credentials);
257
+ const inferenceProfileModelsRequest = this.nodeParametersService.getOptionsViaLoadOptions({
258
+ routing: {
259
+ request: {
260
+ method: 'GET',
261
+ url: '/inference-profiles?maxResults=1000',
262
+ },
263
+ output: {
264
+ postReceive: [
265
+ {
266
+ type: 'rootProperty',
267
+ properties: {
268
+ property: 'inferenceProfileSummaries',
269
+ },
270
+ },
271
+ {
272
+ type: 'setKeyValue',
273
+ properties: {
274
+ name: '={{$responseItem.inferenceProfileName}}',
275
+ description: '={{$responseItem.description || $responseItem.inferenceProfileArn}}',
276
+ value: '={{$responseItem.inferenceProfileId}}',
277
+ },
278
+ },
279
+ {
280
+ type: 'sort',
281
+ properties: {
282
+ key: 'name',
283
+ },
284
+ },
285
+ ],
286
+ },
287
+ },
288
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.awsBedrock, {}, credentials);
289
+ const [foundationModels, inferenceProfileModels] = await Promise.all([
290
+ foundationModelsRequest,
291
+ inferenceProfileModelsRequest,
292
+ ]);
293
+ return foundationModels.concat(inferenceProfileModels);
294
+ }
295
+ async fetchMistralCloudModels(credentials, additionalData) {
296
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
297
+ routing: {
298
+ request: {
299
+ method: 'GET',
300
+ url: '/models',
301
+ },
302
+ output: {
303
+ postReceive: [
304
+ {
305
+ type: 'rootProperty',
306
+ properties: {
307
+ property: 'data',
308
+ },
309
+ },
310
+ {
311
+ type: 'filter',
312
+ properties: {
313
+ pass: "={{ !$responseItem.id.includes('embed') }}",
314
+ },
315
+ },
316
+ {
317
+ type: 'setKeyValue',
318
+ properties: {
319
+ name: '={{ $responseItem.id }}',
320
+ value: '={{ $responseItem.id }}',
321
+ },
322
+ },
323
+ {
324
+ type: 'sort',
325
+ properties: {
326
+ key: 'name',
327
+ },
328
+ },
329
+ ],
330
+ },
331
+ },
332
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.mistralCloud, {}, credentials);
333
+ }
334
+ async fetchCohereModels(credentials, additionalData) {
335
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
336
+ routing: {
337
+ request: {
338
+ method: 'GET',
339
+ url: '/v1/models?page_size=100&endpoint=chat',
340
+ },
341
+ output: {
342
+ postReceive: [
343
+ {
344
+ type: 'rootProperty',
345
+ properties: {
346
+ property: 'models',
347
+ },
348
+ },
349
+ {
350
+ type: 'setKeyValue',
351
+ properties: {
352
+ name: '={{$responseItem.name}}',
353
+ value: '={{$responseItem.name}}',
354
+ description: '={{$responseItem.description}}',
355
+ },
356
+ },
357
+ {
358
+ type: 'sort',
359
+ properties: {
360
+ key: 'name',
361
+ },
362
+ },
363
+ ],
364
+ },
365
+ },
366
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.cohere, {}, credentials);
367
+ }
368
+ async fetchDeepSeekModels(credentials, additionalData) {
369
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
370
+ routing: {
371
+ request: {
372
+ method: 'GET',
373
+ url: '/models',
374
+ },
375
+ output: {
376
+ postReceive: [
377
+ {
378
+ type: 'rootProperty',
379
+ properties: {
380
+ property: 'data',
381
+ },
382
+ },
383
+ {
384
+ type: 'setKeyValue',
385
+ properties: {
386
+ name: '={{$responseItem.id}}',
387
+ value: '={{$responseItem.id}}',
388
+ },
389
+ },
390
+ {
391
+ type: 'sort',
392
+ properties: {
393
+ key: 'name',
394
+ },
395
+ },
396
+ ],
397
+ },
398
+ },
399
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.deepSeek, {}, credentials);
400
+ }
401
+ async fetchOpenRouterModels(credentials, additionalData) {
402
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
403
+ routing: {
404
+ request: {
405
+ method: 'GET',
406
+ url: '/models',
407
+ },
408
+ output: {
409
+ postReceive: [
410
+ {
411
+ type: 'rootProperty',
412
+ properties: {
413
+ property: 'data',
414
+ },
415
+ },
416
+ {
417
+ type: 'setKeyValue',
418
+ properties: {
419
+ name: '={{$responseItem.id}}',
420
+ value: '={{$responseItem.id}}',
421
+ },
422
+ },
423
+ {
424
+ type: 'sort',
425
+ properties: {
426
+ key: 'name',
427
+ },
428
+ },
429
+ ],
430
+ },
431
+ },
432
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.openRouter, {}, credentials);
433
+ }
434
+ async fetchGroqModels(credentials, additionalData) {
435
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
436
+ routing: {
437
+ request: {
438
+ method: 'GET',
439
+ url: '/models',
440
+ },
441
+ output: {
442
+ postReceive: [
443
+ {
444
+ type: 'rootProperty',
445
+ properties: {
446
+ property: 'data',
447
+ },
448
+ },
449
+ {
450
+ type: 'filter',
451
+ properties: {
452
+ pass: '={{ $responseItem.active === true && $responseItem.object === "model" }}',
453
+ },
454
+ },
455
+ {
456
+ type: 'setKeyValue',
457
+ properties: {
458
+ name: '={{$responseItem.id}}',
459
+ value: '={{$responseItem.id}}',
460
+ },
461
+ },
462
+ ],
463
+ },
464
+ },
465
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.groq, {}, credentials);
466
+ }
467
+ async fetchXAiGrokModels(credentials, additionalData) {
468
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
469
+ routing: {
470
+ request: {
471
+ method: 'GET',
472
+ url: '/models',
473
+ },
474
+ output: {
475
+ postReceive: [
476
+ {
477
+ type: 'rootProperty',
478
+ properties: {
479
+ property: 'data',
480
+ },
481
+ },
482
+ {
483
+ type: 'setKeyValue',
484
+ properties: {
485
+ name: '={{$responseItem.id}}',
486
+ value: '={{$responseItem.id}}',
487
+ },
488
+ },
489
+ {
490
+ type: 'sort',
491
+ properties: {
492
+ key: 'name',
493
+ },
494
+ },
495
+ ],
496
+ },
497
+ },
498
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.xAiGrok, {}, credentials);
499
+ }
500
+ async fetchVercelAiGatewayModels(credentials, additionalData) {
501
+ return await this.nodeParametersService.getOptionsViaLoadOptions({
502
+ routing: {
503
+ request: {
504
+ method: 'GET',
505
+ url: '/models',
506
+ },
507
+ output: {
508
+ postReceive: [
509
+ {
510
+ type: 'rootProperty',
511
+ properties: {
512
+ property: 'data',
513
+ },
514
+ },
515
+ {
516
+ type: 'setKeyValue',
517
+ properties: {
518
+ name: '={{$responseItem.id}}',
519
+ value: '={{$responseItem.id}}',
520
+ },
521
+ },
522
+ {
523
+ type: 'sort',
524
+ properties: {
525
+ key: 'name',
526
+ },
527
+ },
528
+ ],
529
+ },
530
+ },
531
+ }, additionalData, chat_hub_constants_1.PROVIDER_NODE_TYPE_MAP.vercelAiGateway, {}, credentials);
532
+ }
533
+ async fetchAgentWorkflowsAsModels(user) {
534
+ const workflowsWithChatTrigger = await this.workflowService.getWorkflowsWithNodesIncluded(user, [n8n_workflow_1.CHAT_TRIGGER_NODE_TYPE], true);
535
+ const activeWorkflows = workflowsWithChatTrigger
536
+ .filter((workflow) => workflow.scopes.includes('workflow:execute-chat'))
537
+ .filter((workflow) => !!workflow.activeVersionId);
538
+ if (activeWorkflows.length === 0) {
539
+ return [];
540
+ }
541
+ const workflows = await this.workflowRepository.find({
542
+ select: {
543
+ id: true,
544
+ name: true,
545
+ shared: {
546
+ role: true,
547
+ project: {
548
+ id: true,
549
+ icon: { type: true, value: true },
550
+ },
551
+ },
552
+ },
553
+ where: { id: (0, db_1.In)(activeWorkflows.map((workflow) => workflow.id)) },
554
+ relations: {
555
+ activeVersion: true,
556
+ shared: {
557
+ project: true,
558
+ },
559
+ },
560
+ });
561
+ return workflows.flatMap((workflow) => {
562
+ const model = this.extractModelFromWorkflow(workflow);
563
+ return model ? [model] : [];
564
+ });
565
+ }
566
+ extractModelFromWorkflow({ name, activeVersion, id, shared, }) {
567
+ if (!activeVersion) {
568
+ return null;
569
+ }
570
+ const chatTrigger = activeVersion.nodes?.find((node) => node.type === n8n_workflow_1.CHAT_TRIGGER_NODE_TYPE);
571
+ if (!chatTrigger) {
572
+ return null;
573
+ }
574
+ const chatTriggerParams = chat_hub_types_1.chatTriggerParamsShape.safeParse(chatTrigger.parameters).data;
575
+ if (!chatTriggerParams?.availableInChat) {
576
+ return null;
577
+ }
578
+ const inputModalities = this.chatHubWorkflowService.parseInputModalities(chatTriggerParams.options);
579
+ const agentName = chatTriggerParams.agentName && chatTriggerParams.agentName.trim().length > 0
580
+ ? chatTriggerParams.agentName
581
+ : name;
582
+ const ownerSharedWorkflow = shared?.find((sw) => sw.role === 'workflow:owner');
583
+ return {
584
+ name: agentName,
585
+ description: chatTriggerParams.agentDescription ?? null,
586
+ icon: ownerSharedWorkflow?.project?.icon ?? null,
587
+ model: {
588
+ provider: 'n8n',
589
+ workflowId: id,
590
+ },
591
+ createdAt: activeVersion.createdAt ? activeVersion.createdAt.toISOString() : null,
592
+ updatedAt: activeVersion.updatedAt ? activeVersion.updatedAt.toISOString() : null,
593
+ metadata: {
594
+ inputModalities,
595
+ capabilities: {
596
+ functionCalling: false,
597
+ },
598
+ available: true,
599
+ },
600
+ };
601
+ }
602
+ transformAndFilterModels(rawModels, provider) {
603
+ const seen = new Set();
604
+ return rawModels.flatMap((model) => {
605
+ const id = String(model.value);
606
+ const metadata = (0, chat_hub_constants_1.getModelMetadata)(provider, id);
607
+ if (!metadata.available)
608
+ return [];
609
+ if (seen.has(id))
610
+ return [];
611
+ seen.add(id);
612
+ return [
613
+ {
614
+ id,
615
+ name: model.name,
616
+ description: model.description ?? null,
617
+ icon: null,
618
+ model: {
619
+ provider,
620
+ model: id,
621
+ },
622
+ createdAt: null,
623
+ updatedAt: null,
624
+ metadata,
625
+ },
626
+ ];
627
+ });
628
+ }
629
+ };
630
+ exports.ChatHubModelsService = ChatHubModelsService;
631
+ exports.ChatHubModelsService = ChatHubModelsService = __decorate([
632
+ (0, di_1.Service)(),
633
+ __metadata("design:paramtypes", [dynamic_node_parameters_service_1.DynamicNodeParametersService,
634
+ workflow_service_1.WorkflowService,
635
+ db_1.WorkflowRepository,
636
+ credentials_finder_service_1.CredentialsFinderService,
637
+ chat_hub_agent_service_1.ChatHubAgentService,
638
+ chat_hub_workflow_service_1.ChatHubWorkflowService])
639
+ ], ChatHubModelsService);
640
+ //# sourceMappingURL=chat-hub.models.service.js.map