@hexabot-ai/api 3.2.2-alpha.9 → 3.2.2-beta.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 (311) hide show
  1. package/dist/actions/actions.service.d.ts +1 -0
  2. package/dist/actions/actions.service.js +19 -1
  3. package/dist/actions/actions.service.js.map +1 -1
  4. package/dist/actions/types.d.ts +3 -1
  5. package/dist/app.controller.d.ts +1 -0
  6. package/dist/app.controller.js +1 -0
  7. package/dist/app.controller.js.map +1 -1
  8. package/dist/app.module.js +13 -1
  9. package/dist/app.module.js.map +1 -1
  10. package/dist/config/index.js +14 -2
  11. package/dist/config/index.js.map +1 -1
  12. package/dist/config/types.d.ts +9 -0
  13. package/dist/extensions/actions/ai/agent.action.d.ts +1 -1
  14. package/dist/extensions/actions/ai/agent.action.js +6 -3
  15. package/dist/extensions/actions/ai/agent.action.js.map +1 -1
  16. package/dist/extensions/actions/ai/ai-base.action.d.ts +1 -1
  17. package/dist/extensions/actions/ai/ai-base.action.js +18 -5
  18. package/dist/extensions/actions/ai/ai-base.action.js.map +1 -1
  19. package/dist/extensions/actions/ai/generate-object.base.action.d.ts +1 -1
  20. package/dist/extensions/actions/ai/generate-object.base.action.js +3 -2
  21. package/dist/extensions/actions/ai/generate-object.base.action.js.map +1 -1
  22. package/dist/extensions/actions/ai/generate-text.base.action.d.ts +1 -1
  23. package/dist/extensions/actions/ai/generate-text.base.action.js +3 -2
  24. package/dist/extensions/actions/ai/generate-text.base.action.js.map +1 -1
  25. package/dist/extensions/actions/ai/mcp.binding.js +2 -0
  26. package/dist/extensions/actions/ai/mcp.binding.js.map +1 -1
  27. package/dist/extensions/actions/ai/memory.binding.js +2 -0
  28. package/dist/extensions/actions/ai/memory.binding.js.map +1 -1
  29. package/dist/extensions/actions/ai/retrieve-content-rag.action.js +2 -0
  30. package/dist/extensions/actions/ai/retrieve-content-rag.action.js.map +1 -1
  31. package/dist/extensions/actions/messaging/list.action.d.ts +2 -2
  32. package/dist/extensions/actions/messaging/list.action.js +7 -0
  33. package/dist/extensions/actions/messaging/list.action.js.map +1 -1
  34. package/dist/extensions/actions/subscriber/update-labels.action.js +3 -0
  35. package/dist/extensions/actions/subscriber/update-labels.action.js.map +1 -1
  36. package/dist/extensions/actions/web/http-request.action.js +12 -1
  37. package/dist/extensions/actions/web/http-request.action.js.map +1 -1
  38. package/dist/extensions/actions/workflow/call-workflow.action.d.ts +19 -0
  39. package/dist/extensions/actions/workflow/call-workflow.action.js +83 -0
  40. package/dist/extensions/actions/workflow/call-workflow.action.js.map +1 -0
  41. package/dist/extensions/actions/workflow/i18n/en.translations.json +9 -0
  42. package/dist/extensions/actions/workflow/i18n/fr.translations.json +9 -0
  43. package/dist/extensions/index.d.ts +1 -0
  44. package/dist/extensions/index.js +1 -0
  45. package/dist/extensions/index.js.map +1 -1
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.js +1 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/mcp/controllers/mcp-token.controller.d.ts +47 -0
  50. package/dist/mcp/controllers/mcp-token.controller.js +70 -0
  51. package/dist/mcp/controllers/mcp-token.controller.js.map +1 -0
  52. package/dist/mcp/decorators/mcp-permission.decorator.d.ts +8 -0
  53. package/dist/mcp/decorators/mcp-permission.decorator.js +11 -0
  54. package/dist/mcp/decorators/mcp-permission.decorator.js.map +1 -0
  55. package/dist/mcp/dto/mcp-token.dto.d.ts +17 -0
  56. package/dist/mcp/dto/mcp-token.dto.js +40 -0
  57. package/dist/mcp/dto/mcp-token.dto.js.map +1 -0
  58. package/dist/mcp/entities/mcp-token.entity.d.ts +111 -0
  59. package/dist/mcp/entities/mcp-token.entity.js +69 -0
  60. package/dist/mcp/entities/mcp-token.entity.js.map +1 -0
  61. package/dist/mcp/guards/hexabot-mcp-token.guard.d.ts +9 -0
  62. package/dist/mcp/guards/hexabot-mcp-token.guard.js +49 -0
  63. package/dist/mcp/guards/hexabot-mcp-token.guard.js.map +1 -0
  64. package/dist/mcp/guards/mcp-permission.guard.d.ts +9 -0
  65. package/dist/mcp/guards/mcp-permission.guard.js +47 -0
  66. package/dist/mcp/guards/mcp-permission.guard.js.map +1 -0
  67. package/dist/mcp/mcp-api.module.d.ts +2 -0
  68. package/dist/mcp/mcp-api.module.js +65 -0
  69. package/dist/mcp/mcp-api.module.js.map +1 -0
  70. package/dist/mcp/repositories/mcp-token.repository.d.ts +8 -0
  71. package/dist/mcp/repositories/mcp-token.repository.js +41 -0
  72. package/dist/mcp/repositories/mcp-token.repository.js.map +1 -0
  73. package/dist/mcp/services/mcp-token.service.d.ts +24 -0
  74. package/dist/mcp/services/mcp-token.service.js +106 -0
  75. package/dist/mcp/services/mcp-token.service.js.map +1 -0
  76. package/dist/mcp/tools/catalog-mcp.tools.d.ts +63 -0
  77. package/dist/mcp/tools/catalog-mcp.tools.js +135 -0
  78. package/dist/mcp/tools/catalog-mcp.tools.js.map +1 -0
  79. package/dist/mcp/tools/cms-mcp.tools.d.ts +128 -0
  80. package/dist/mcp/tools/cms-mcp.tools.js +242 -0
  81. package/dist/mcp/tools/cms-mcp.tools.js.map +1 -0
  82. package/dist/mcp/tools/credential-mcp.tools.d.ts +19 -0
  83. package/dist/mcp/tools/credential-mcp.tools.js +82 -0
  84. package/dist/mcp/tools/credential-mcp.tools.js.map +1 -0
  85. package/dist/mcp/tools/hexabot-mcp-tool.base.d.ts +22 -0
  86. package/dist/mcp/tools/hexabot-mcp-tool.base.js +48 -0
  87. package/dist/mcp/tools/hexabot-mcp-tool.base.js.map +1 -0
  88. package/dist/mcp/tools/hexabot-mcp.schemas.d.ts +41 -0
  89. package/dist/mcp/tools/hexabot-mcp.schemas.js +36 -0
  90. package/dist/mcp/tools/hexabot-mcp.schemas.js.map +1 -0
  91. package/dist/mcp/tools/hexabot-mcp.tools.d.ts +1 -0
  92. package/dist/mcp/tools/hexabot-mcp.tools.js +18 -0
  93. package/dist/mcp/tools/hexabot-mcp.tools.js.map +1 -0
  94. package/dist/mcp/tools/hexabot-mcp.utils.d.ts +2 -0
  95. package/dist/mcp/tools/hexabot-mcp.utils.js +21 -0
  96. package/dist/mcp/tools/hexabot-mcp.utils.js.map +1 -0
  97. package/dist/mcp/tools/index.d.ts +22 -0
  98. package/dist/mcp/tools/index.js +50 -0
  99. package/dist/mcp/tools/index.js.map +1 -0
  100. package/dist/mcp/tools/mcp-server-mcp.tools.d.ts +77 -0
  101. package/dist/mcp/tools/mcp-server-mcp.tools.js +130 -0
  102. package/dist/mcp/tools/mcp-server-mcp.tools.js.map +1 -0
  103. package/dist/mcp/tools/memory-definition-mcp.tools.d.ts +57 -0
  104. package/dist/mcp/tools/memory-definition-mcp.tools.js +128 -0
  105. package/dist/mcp/tools/memory-definition-mcp.tools.js.map +1 -0
  106. package/dist/mcp/tools/workflow-mcp.helper.d.ts +156 -0
  107. package/dist/mcp/tools/workflow-mcp.helper.js +128 -0
  108. package/dist/mcp/tools/workflow-mcp.helper.js.map +1 -0
  109. package/dist/mcp/tools/workflow-mcp.tools.d.ts +790 -0
  110. package/dist/mcp/tools/workflow-mcp.tools.js +227 -0
  111. package/dist/mcp/tools/workflow-mcp.tools.js.map +1 -0
  112. package/dist/mcp/tools/workflow-run-mcp.tools.d.ts +349 -0
  113. package/dist/mcp/tools/workflow-run-mcp.tools.js +242 -0
  114. package/dist/mcp/tools/workflow-run-mcp.tools.js.map +1 -0
  115. package/dist/mcp/tools/workflow-version-mcp.tools.d.ts +238 -0
  116. package/dist/mcp/tools/workflow-version-mcp.tools.js +368 -0
  117. package/dist/mcp/tools/workflow-version-mcp.tools.js.map +1 -0
  118. package/dist/mcp/types.d.ts +7 -0
  119. package/dist/mcp/types.js +3 -0
  120. package/dist/mcp/types.js.map +1 -0
  121. package/dist/static/assets/{browser-ponyfill-Qk7qpw-i.js → browser-ponyfill-AQYxeOz6.js} +1 -1
  122. package/dist/static/assets/{cssMode-CdhvY6oD.js → cssMode-CU7XHFDD.js} +1 -1
  123. package/dist/static/assets/{freemarker2-BPoURZH1.js → freemarker2-DA_oH4Qs.js} +1 -1
  124. package/dist/static/assets/{handlebars-C4oubER1.js → handlebars-DXFzBSlw.js} +1 -1
  125. package/dist/static/assets/{html-CDE5RgVN.js → html-CnQNXujK.js} +1 -1
  126. package/dist/static/assets/{htmlMode-C8edIUUq.js → htmlMode-BpX8KTMR.js} +1 -1
  127. package/dist/static/assets/{index-C1NxBXuS.js → index-BIqNbcu4.js} +2379 -2330
  128. package/dist/static/assets/{index-BI1BtkYv.css → index-D-b9KTZd.css} +1 -1
  129. package/dist/static/assets/{javascript-Wp5m7adK.js → javascript-DeoOxUBN.js} +1 -1
  130. package/dist/static/assets/{jsonMode-0eww5Srr.js → jsonMode-YGmaNoOG.js} +1 -1
  131. package/dist/static/assets/{liquid-DTktXITv.js → liquid-K6wF5n3k.js} +1 -1
  132. package/dist/static/assets/{lspLanguageFeatures-BzIRlKhn.js → lspLanguageFeatures-DFIoRPyQ.js} +1 -1
  133. package/dist/static/assets/{mdx-D508emqD.js → mdx-CWEgpRjI.js} +1 -1
  134. package/dist/static/assets/{python-BfhIq2kX.js → python-22vBz2Ov.js} +1 -1
  135. package/dist/static/assets/{razor-C7F8fOds.js → razor-CEUwDwv_.js} +1 -1
  136. package/dist/static/assets/{tsMode-B8zPu6Wl.js → tsMode-kpHfzhoP.js} +1 -1
  137. package/dist/static/assets/{typescript-Dew3VavZ.js → typescript-PCkEoDOe.js} +1 -1
  138. package/dist/static/assets/{xml-B_2tc6Mh.js → xml-OzOqd-hy.js} +1 -1
  139. package/dist/static/assets/{yaml-pHcw4KrS.js → yaml-B3P_vvCy.js} +1 -1
  140. package/dist/static/index.html +2 -2
  141. package/dist/static/locales/en/translation.json +89 -4
  142. package/dist/static/locales/fr/translation.json +90 -5
  143. package/dist/transfer/adapters/content-type-transfer.adapter.d.ts +14 -0
  144. package/dist/transfer/adapters/content-type-transfer.adapter.js +102 -0
  145. package/dist/transfer/adapters/content-type-transfer.adapter.js.map +1 -0
  146. package/dist/transfer/adapters/credential-transfer.adapter.d.ts +13 -0
  147. package/dist/transfer/adapters/credential-transfer.adapter.js +110 -0
  148. package/dist/transfer/adapters/credential-transfer.adapter.js.map +1 -0
  149. package/dist/transfer/adapters/label-transfer.adapter.d.ts +15 -0
  150. package/dist/transfer/adapters/label-transfer.adapter.js +189 -0
  151. package/dist/transfer/adapters/label-transfer.adapter.js.map +1 -0
  152. package/dist/transfer/adapters/mcp-server-transfer.adapter.d.ts +16 -0
  153. package/dist/transfer/adapters/mcp-server-transfer.adapter.js +169 -0
  154. package/dist/transfer/adapters/mcp-server-transfer.adapter.js.map +1 -0
  155. package/dist/transfer/adapters/memory-definition-transfer.adapter.d.ts +14 -0
  156. package/dist/transfer/adapters/memory-definition-transfer.adapter.js +111 -0
  157. package/dist/transfer/adapters/memory-definition-transfer.adapter.js.map +1 -0
  158. package/dist/transfer/index.d.ts +7 -0
  159. package/dist/transfer/index.js +24 -0
  160. package/dist/transfer/index.js.map +1 -0
  161. package/dist/transfer/workflow-transfer-adapter.registry.d.ts +27 -0
  162. package/dist/transfer/workflow-transfer-adapter.registry.js +164 -0
  163. package/dist/transfer/workflow-transfer-adapter.registry.js.map +1 -0
  164. package/dist/transfer/workflow-transfer-definition.service.d.ts +40 -0
  165. package/dist/transfer/workflow-transfer-definition.service.js +353 -0
  166. package/dist/transfer/workflow-transfer-definition.service.js.map +1 -0
  167. package/dist/transfer/workflow-transfer-resource-adapter.d.ts +33 -0
  168. package/dist/transfer/workflow-transfer-resource-adapter.js +81 -0
  169. package/dist/transfer/workflow-transfer-resource-adapter.js.map +1 -0
  170. package/dist/transfer/workflow-transfer.controller.d.ts +9 -0
  171. package/dist/transfer/workflow-transfer.controller.js +63 -0
  172. package/dist/transfer/workflow-transfer.controller.js.map +1 -0
  173. package/dist/transfer/workflow-transfer.module.d.ts +2 -0
  174. package/dist/transfer/workflow-transfer.module.js +47 -0
  175. package/dist/transfer/workflow-transfer.module.js.map +1 -0
  176. package/dist/transfer/workflow-transfer.service.d.ts +51 -0
  177. package/dist/transfer/workflow-transfer.service.js +509 -0
  178. package/dist/transfer/workflow-transfer.service.js.map +1 -0
  179. package/dist/transfer/workflow-transfer.types.d.ts +31 -0
  180. package/dist/transfer/workflow-transfer.types.js +35 -0
  181. package/dist/transfer/workflow-transfer.types.js.map +1 -0
  182. package/dist/tsconfig.build.tsbuildinfo +1 -1
  183. package/dist/types/event-emitter.d.ts +12 -5
  184. package/dist/user/dto/user.dto.d.ts +1 -1
  185. package/dist/user/guards/ability.guard.js +12 -2
  186. package/dist/user/guards/ability.guard.js.map +1 -1
  187. package/dist/utils/test/fixtures/label-group.d.ts +1 -1
  188. package/dist/utils/test/fixtures/label.d.ts +1 -1
  189. package/dist/utils/test/fixtures/subscriber.d.ts +1 -1
  190. package/dist/utils/test/fixtures/workflow-run.js +4 -1
  191. package/dist/utils/test/fixtures/workflow-run.js.map +1 -1
  192. package/dist/utils/test/port.d.ts +8 -0
  193. package/dist/utils/test/port.js +34 -0
  194. package/dist/utils/test/port.js.map +1 -0
  195. package/dist/websocket/websocket.gateway.d.ts +2 -1
  196. package/dist/websocket/websocket.gateway.js.map +1 -1
  197. package/dist/workflow/contexts/workflow-runtime.context.d.ts +3 -1
  198. package/dist/workflow/contexts/workflow-runtime.context.js +5 -0
  199. package/dist/workflow/contexts/workflow-runtime.context.js.map +1 -1
  200. package/dist/workflow/controllers/workflow-run.controller.js +2 -0
  201. package/dist/workflow/controllers/workflow-run.controller.js.map +1 -1
  202. package/dist/workflow/dto/workflow-run.dto.d.ts +1 -0
  203. package/dist/workflow/dto/workflow-run.dto.js +11 -0
  204. package/dist/workflow/dto/workflow-run.dto.js.map +1 -1
  205. package/dist/workflow/entities/memory-record.entity.d.ts +2 -0
  206. package/dist/workflow/entities/workflow-run.entity.d.ts +62 -0
  207. package/dist/workflow/entities/workflow-run.entity.js +15 -1
  208. package/dist/workflow/entities/workflow-run.entity.js.map +1 -1
  209. package/dist/workflow/index.d.ts +7 -0
  210. package/dist/workflow/index.js +7 -0
  211. package/dist/workflow/index.js.map +1 -1
  212. package/dist/workflow/repositories/workflow-run.repository.js +7 -1
  213. package/dist/workflow/repositories/workflow-run.repository.js.map +1 -1
  214. package/dist/workflow/resource-refs.d.ts +17 -0
  215. package/dist/workflow/resource-refs.js +15 -0
  216. package/dist/workflow/resource-refs.js.map +1 -0
  217. package/dist/workflow/services/agentic.service.d.ts +9 -2
  218. package/dist/workflow/services/agentic.service.js +142 -19
  219. package/dist/workflow/services/agentic.service.js.map +1 -1
  220. package/dist/workflow/services/workflow-run.service.d.ts +3 -0
  221. package/dist/workflow/services/workflow-run.service.js +75 -3
  222. package/dist/workflow/services/workflow-run.service.js.map +1 -1
  223. package/dist/workflow/services/workflow-version.service.d.ts +2 -0
  224. package/dist/workflow/services/workflow-version.service.js +19 -0
  225. package/dist/workflow/services/workflow-version.service.js.map +1 -1
  226. package/dist/workflow/services/workflow.service.d.ts +13 -9
  227. package/dist/workflow/services/workflow.service.js +64 -35
  228. package/dist/workflow/services/workflow.service.js.map +1 -1
  229. package/dist/workflow/types.d.ts +31 -0
  230. package/dist/workflow/types.js +2 -1
  231. package/dist/workflow/types.js.map +1 -1
  232. package/dist/workflow/workflow.module.js +3 -0
  233. package/dist/workflow/workflow.module.js.map +1 -1
  234. package/package.json +7 -5
  235. package/src/actions/actions.service.ts +34 -4
  236. package/src/actions/types.ts +6 -5
  237. package/src/app.controller.ts +1 -0
  238. package/src/app.module.ts +17 -1
  239. package/src/config/index.ts +17 -2
  240. package/src/config/types.ts +9 -0
  241. package/src/extensions/actions/ai/agent.action.ts +6 -1
  242. package/src/extensions/actions/ai/ai-base.action.ts +39 -5
  243. package/src/extensions/actions/ai/generate-object.base.action.ts +3 -0
  244. package/src/extensions/actions/ai/generate-text.base.action.ts +3 -0
  245. package/src/extensions/actions/ai/mcp.binding.ts +2 -0
  246. package/src/extensions/actions/ai/memory.binding.ts +2 -0
  247. package/src/extensions/actions/ai/retrieve-content-rag.action.ts +2 -0
  248. package/src/extensions/actions/messaging/list.action.ts +7 -0
  249. package/src/extensions/actions/subscriber/update-labels.action.ts +3 -0
  250. package/src/extensions/actions/web/http-request.action.ts +17 -1
  251. package/src/extensions/actions/workflow/call-workflow.action.ts +112 -0
  252. package/src/extensions/actions/workflow/i18n/en.translations.json +9 -0
  253. package/src/extensions/actions/workflow/i18n/fr.translations.json +9 -0
  254. package/src/extensions/index.ts +2 -0
  255. package/src/index.ts +2 -0
  256. package/src/mcp/README.md +277 -0
  257. package/src/mcp/controllers/mcp-token.controller.ts +64 -0
  258. package/src/mcp/decorators/mcp-permission.decorator.ts +23 -0
  259. package/src/mcp/dto/mcp-token.dto.ts +48 -0
  260. package/src/mcp/entities/mcp-token.entity.ts +60 -0
  261. package/src/mcp/guards/hexabot-mcp-token.guard.ts +55 -0
  262. package/src/mcp/guards/mcp-permission.guard.ts +61 -0
  263. package/src/mcp/mcp-api.module.ts +61 -0
  264. package/src/mcp/repositories/mcp-token.repository.ts +34 -0
  265. package/src/mcp/services/mcp-token.service.ts +138 -0
  266. package/src/mcp/tools/catalog-mcp.tools.ts +122 -0
  267. package/src/mcp/tools/cms-mcp.tools.ts +239 -0
  268. package/src/mcp/tools/credential-mcp.tools.ts +81 -0
  269. package/src/mcp/tools/hexabot-mcp-tool.base.ts +74 -0
  270. package/src/mcp/tools/hexabot-mcp.schemas.ts +55 -0
  271. package/src/mcp/tools/hexabot-mcp.tools.ts +7 -0
  272. package/src/mcp/tools/hexabot-mcp.utils.ts +29 -0
  273. package/src/mcp/tools/index.ts +51 -0
  274. package/src/mcp/tools/mcp-server-mcp.tools.ts +135 -0
  275. package/src/mcp/tools/memory-definition-mcp.tools.ts +125 -0
  276. package/src/mcp/tools/workflow-mcp.helper.ts +219 -0
  277. package/src/mcp/tools/workflow-mcp.tools.ts +271 -0
  278. package/src/mcp/tools/workflow-run-mcp.tools.ts +292 -0
  279. package/src/mcp/tools/workflow-version-mcp.tools.ts +459 -0
  280. package/src/mcp/types.ts +14 -0
  281. package/src/transfer/adapters/content-type-transfer.adapter.ts +154 -0
  282. package/src/transfer/adapters/credential-transfer.adapter.ts +158 -0
  283. package/src/transfer/adapters/label-transfer.adapter.ts +291 -0
  284. package/src/transfer/adapters/mcp-server-transfer.adapter.ts +255 -0
  285. package/src/transfer/adapters/memory-definition-transfer.adapter.ts +167 -0
  286. package/src/transfer/index.ts +19 -0
  287. package/src/transfer/workflow-transfer-adapter.registry.ts +250 -0
  288. package/src/transfer/workflow-transfer-definition.service.ts +587 -0
  289. package/src/transfer/workflow-transfer-resource-adapter.ts +132 -0
  290. package/src/transfer/workflow-transfer.controller.ts +86 -0
  291. package/src/transfer/workflow-transfer.module.ts +46 -0
  292. package/src/transfer/workflow-transfer.service.ts +858 -0
  293. package/src/transfer/workflow-transfer.types.ts +98 -0
  294. package/src/user/guards/ability.guard.ts +15 -3
  295. package/src/utils/test/fixtures/workflow-run.ts +4 -1
  296. package/src/utils/test/port.ts +48 -0
  297. package/src/websocket/websocket.gateway.ts +2 -1
  298. package/src/workflow/contexts/workflow-runtime.context.ts +12 -1
  299. package/src/workflow/controllers/workflow-run.controller.ts +2 -0
  300. package/src/workflow/dto/workflow-run.dto.ts +10 -0
  301. package/src/workflow/entities/workflow-run.entity.ts +22 -1
  302. package/src/workflow/index.ts +14 -0
  303. package/src/workflow/repositories/workflow-run.repository.ts +7 -1
  304. package/src/workflow/resource-refs.ts +44 -0
  305. package/src/workflow/services/agentic.service.ts +271 -30
  306. package/src/workflow/services/workflow-run.service.ts +120 -7
  307. package/src/workflow/services/workflow-version.service.ts +33 -0
  308. package/src/workflow/services/workflow.service.ts +86 -31
  309. package/src/workflow/types.ts +52 -0
  310. package/src/workflow/workflow.module.ts +3 -0
  311. package/types/event-emitter.d.ts +12 -5
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkflowVersionService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const base_orm_service_1 = require("../../utils/generics/base-orm.service");
15
+ const workflow_version_entity_1 = require("../entities/workflow-version.entity");
15
16
  const workflow_version_repository_1 = require("../repositories/workflow-version.repository");
16
17
  const types_1 = require("../types");
17
18
  const workflow_service_1 = require("./workflow.service");
@@ -39,6 +40,24 @@ let WorkflowVersionService = class WorkflowVersionService extends base_orm_servi
39
40
  createdBy: params.createdBy,
40
41
  });
41
42
  }
43
+ async createSnapshotWithManager(manager, params) {
44
+ const latestVersion = await manager.findOne(workflow_version_entity_1.WorkflowVersionOrmEntity, {
45
+ where: { workflow: { id: params.workflow } },
46
+ order: { version: 'DESC' },
47
+ });
48
+ const nextVersion = latestVersion ? latestVersion.version + 1 : 1;
49
+ return await manager.save(workflow_version_entity_1.WorkflowVersionOrmEntity, manager.create(workflow_version_entity_1.WorkflowVersionOrmEntity, {
50
+ workflow: { id: params.workflow },
51
+ version: nextVersion,
52
+ definitionYml: params.definitionYml,
53
+ action: params.action,
54
+ message: params.message,
55
+ parentVersion: params.parentVersion
56
+ ? { id: params.parentVersion }
57
+ : null,
58
+ createdBy: params.createdBy ? { id: params.createdBy } : null,
59
+ }));
60
+ }
42
61
  async restoreVersion(workflowId, versionId, payload) {
43
62
  const targetVersion = await this.findOne({
44
63
  where: { id: versionId, workflow: { id: workflowId } },
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-version.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow-version.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,2CAA+D;AAE/D,4EAAmE;AAInE,6FAAwF;AACxF,oCAAiD;AAEjD,yDAAqD;AAG9C,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,iCAAwC;IAKlF,YACW,UAAqC,EAC7B,eAAgC;QAEjD,KAAK,CAAC,UAAU,CAAC,CAAC;QAHT,eAAU,GAAV,UAAU,CAA2B;QAC7B,oBAAe,GAAf,eAAe,CAAiB;IAGnD,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;YAC/B,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAOM,KAAK,CAAC,cAAc,CACzB,MAA6B;QAE7B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;YAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC;YACvB,GAAG,MAAM;YACT,OAAO,EAAE,WAAW;YACpB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAUD,KAAK,CAAC,cAAc,CAClB,UAAkB,EAClB,SAAiB,EACjB,OAGC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YACvC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;SACvD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,0BAAiB,CACzB,4BAA4B,SAAS,YAAY,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YAChD,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS;YACtC,MAAM,EAAE,6BAAqB,CAAC,OAAO;YACrC,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACrC,aAAa,EAAE,aAAa,CAAC,EAAE;SAChC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE;YAC/C,cAAc,EAAE,eAAe,CAAC,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IACzB,CAAC;CACF,CAAA;AAvFY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAOY,uDAAyB;QACZ,kCAAe;GAPxC,sBAAsB,CAuFlC"}
1
+ {"version":3,"file":"workflow-version.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow-version.service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { WorkflowEventMap } from '@hexabot-ai/agentic';
1
+ import type { WorkflowEventMap } from '@hexabot-ai/agentic';
2
2
  import { WorkflowFull, Workflow } from '@hexabot-ai/types';
3
- import { FindOneOptions } from 'typeorm';
3
+ import { EntityManager, FindOneOptions } from 'typeorm';
4
4
  import { UpdateOneOptions } from "../../utils/generics/base-orm.repository";
5
5
  import { BaseOrmService } from "../../utils/generics/base-orm.service";
6
+ import { InferCreateDto } from "../../utils/types/dto.types";
6
7
  import { SocketRequest, SocketResponse, WebsocketGateway } from "../../websocket";
7
8
  import { WorkflowUpdateDto } from '../dto/workflow.dto';
8
9
  import { WorkflowOrmEntity } from '../entities/workflow.entity';
@@ -15,6 +16,7 @@ export declare class WorkflowService extends BaseOrmService<WorkflowOrmEntity> {
15
16
  private readonly MANUAL_INPUT_VALIDATION_ERROR;
16
17
  constructor(repository: WorkflowRepository, gateway: WebsocketGateway, workflowRunService: WorkflowRunService);
17
18
  pickWorkflow(): Promise<WorkflowFull | null>;
19
+ createWithManager(manager: EntityManager, payload: InferCreateDto<WorkflowOrmEntity>): Promise<WorkflowOrmEntity>;
18
20
  updateOne(idOrOptions: string | FindOneOptions<WorkflowOrmEntity>, payload: WorkflowUpdateDto, options?: UpdateOneOptions): Promise<Workflow>;
19
21
  validateManualInput(input: unknown, inputSchema: WorkflowOrmEntity['inputSchema']): Record<string, unknown>;
20
22
  subscribe(req: SocketRequest, res: SocketResponse): Promise<{
@@ -22,11 +24,13 @@ export declare class WorkflowService extends BaseOrmService<WorkflowOrmEntity> {
22
24
  subscribe: `Workflow_${string}`;
23
25
  }>;
24
26
  private sendWorkflowEvent;
25
- sendWorkflowStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
26
- sendWorkflowFinish(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
27
- sendWorkflowFailure(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
28
- sendWorkflowStepStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
29
- sendWorkflowStepSuspended(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
30
- sendWorkflowStepSuccess(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
31
- sendWorkflowStepError(payload: WorkflowEventMap[keyof WorkflowEventMap]): void;
27
+ sendWorkflowStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
28
+ sendWorkflowFinish(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
29
+ sendWorkflowSuspended(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
30
+ sendWorkflowFailure(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
31
+ sendWorkflowStepStart(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
32
+ sendWorkflowStepSuspended(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
33
+ sendWorkflowStepSuccess(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
34
+ sendWorkflowStepError(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
35
+ sendWorkflowStepCancelled(payload: WorkflowEventMap[keyof WorkflowEventMap]): Promise<void>;
32
36
  }
@@ -18,8 +18,8 @@ const event_emitter_1 = require("@nestjs/event-emitter");
18
18
  const zod_1 = require("zod");
19
19
  const base_orm_service_1 = require("../../utils/generics/base-orm.service");
20
20
  const websocket_1 = require("../../websocket");
21
+ const workflow_entity_1 = require("../entities/workflow.entity");
21
22
  const workflow_repository_1 = require("../repositories/workflow.repository");
22
- const types_1 = require("../types");
23
23
  const workflow_run_service_1 = require("./workflow-run.service");
24
24
  let WorkflowService = class WorkflowService extends base_orm_service_1.BaseOrmService {
25
25
  constructor(repository, gateway, workflowRunService) {
@@ -40,6 +40,10 @@ let WorkflowService = class WorkflowService extends base_orm_service_1.BaseOrmSe
40
40
  });
41
41
  return latest ?? null;
42
42
  }
43
+ async createWithManager(manager, payload) {
44
+ const entity = manager.create(workflow_entity_1.WorkflowOrmEntity, this.repository.actionDtoToEntity(payload));
45
+ return await manager.save(workflow_entity_1.WorkflowOrmEntity, entity);
46
+ }
43
47
  async updateOne(idOrOptions, payload, options) {
44
48
  const workflow = await this.findOne(idOrOptions);
45
49
  const { type, ...rest } = payload;
@@ -105,42 +109,55 @@ let WorkflowService = class WorkflowService extends base_orm_service_1.BaseOrmSe
105
109
  this.logger.error('workflowRun context is required');
106
110
  return;
107
111
  }
108
- const { initiatorId, workflowId, threadId } = workflowRun?.context;
112
+ const { initiatorId, workflowId, threadId } = workflowRun.context;
113
+ if (typeof initiatorId !== 'string' ||
114
+ !initiatorId ||
115
+ typeof workflowId !== 'string' ||
116
+ !workflowId) {
117
+ this.logger.error('workflowRun context requires initiatorId and workflowId');
118
+ return;
119
+ }
109
120
  const workflow = await this.findOne(workflowId);
110
- const canBroadcastEvents = initiatorId &&
111
- workflow?.type &&
112
- [types_1.WorkflowType.conversational].includes(workflow.type);
113
- if (canBroadcastEvents) {
114
- this.gateway.broadcastWorkflowEvent({
115
- ...payload,
116
- t,
117
- workflowId,
118
- initiatorId,
119
- threadId: typeof threadId === 'string' ? threadId : undefined,
120
- workflowEvent: workflowEvent.replace('hook:', ''),
121
- });
121
+ if (!workflow?.type) {
122
+ this.logger.error('workflow is required');
123
+ return;
122
124
  }
125
+ this.gateway.broadcastWorkflowEvent({
126
+ ...payload,
127
+ t,
128
+ workflowRun,
129
+ workflowId,
130
+ initiatorId,
131
+ threadId: typeof threadId === 'string' ? threadId : undefined,
132
+ workflowEvent: workflowEvent.replace('hook:', ''),
133
+ });
123
134
  }
124
- sendWorkflowStart(payload) {
125
- this.sendWorkflowEvent('hook:workflow:start', payload);
135
+ async sendWorkflowStart(payload) {
136
+ await this.sendWorkflowEvent('hook:workflow:start', payload);
126
137
  }
127
- sendWorkflowFinish(payload) {
128
- this.sendWorkflowEvent('hook:workflow:finish', payload);
138
+ async sendWorkflowFinish(payload) {
139
+ await this.sendWorkflowEvent('hook:workflow:finish', payload);
129
140
  }
130
- sendWorkflowFailure(payload) {
131
- this.sendWorkflowEvent('hook:workflow:failure', payload);
141
+ async sendWorkflowSuspended(payload) {
142
+ await this.sendWorkflowEvent('hook:workflow:suspended', payload);
132
143
  }
133
- sendWorkflowStepStart(payload) {
134
- this.sendWorkflowEvent('hook:step:start', payload);
144
+ async sendWorkflowFailure(payload) {
145
+ await this.sendWorkflowEvent('hook:workflow:failure', payload);
135
146
  }
136
- sendWorkflowStepSuspended(payload) {
137
- this.sendWorkflowEvent('hook:step:suspended', payload);
147
+ async sendWorkflowStepStart(payload) {
148
+ await this.sendWorkflowEvent('hook:step:start', payload);
138
149
  }
139
- sendWorkflowStepSuccess(payload) {
140
- this.sendWorkflowEvent('hook:step:success', payload);
150
+ async sendWorkflowStepSuspended(payload) {
151
+ await this.sendWorkflowEvent('hook:step:suspended', payload);
141
152
  }
142
- sendWorkflowStepError(payload) {
143
- this.sendWorkflowEvent('hook:step:error', payload);
153
+ async sendWorkflowStepSuccess(payload) {
154
+ await this.sendWorkflowEvent('hook:step:success', payload);
155
+ }
156
+ async sendWorkflowStepError(payload) {
157
+ await this.sendWorkflowEvent('hook:step:error', payload);
158
+ }
159
+ async sendWorkflowStepCancelled(payload) {
160
+ await this.sendWorkflowEvent('hook:step:cancelled', payload);
144
161
  }
145
162
  };
146
163
  exports.WorkflowService = WorkflowService;
@@ -158,44 +175,56 @@ __decorate([
158
175
  (0, event_emitter_1.OnEvent)('hook:workflow:start'),
159
176
  __metadata("design:type", Function),
160
177
  __metadata("design:paramtypes", [Object]),
161
- __metadata("design:returntype", void 0)
178
+ __metadata("design:returntype", Promise)
162
179
  ], WorkflowService.prototype, "sendWorkflowStart", null);
163
180
  __decorate([
164
181
  (0, event_emitter_1.OnEvent)('hook:workflow:finish'),
165
182
  __metadata("design:type", Function),
166
183
  __metadata("design:paramtypes", [Object]),
167
- __metadata("design:returntype", void 0)
184
+ __metadata("design:returntype", Promise)
168
185
  ], WorkflowService.prototype, "sendWorkflowFinish", null);
186
+ __decorate([
187
+ (0, event_emitter_1.OnEvent)('hook:workflow:suspended'),
188
+ __metadata("design:type", Function),
189
+ __metadata("design:paramtypes", [Object]),
190
+ __metadata("design:returntype", Promise)
191
+ ], WorkflowService.prototype, "sendWorkflowSuspended", null);
169
192
  __decorate([
170
193
  (0, event_emitter_1.OnEvent)('hook:workflow:failure'),
171
194
  __metadata("design:type", Function),
172
195
  __metadata("design:paramtypes", [Object]),
173
- __metadata("design:returntype", void 0)
196
+ __metadata("design:returntype", Promise)
174
197
  ], WorkflowService.prototype, "sendWorkflowFailure", null);
175
198
  __decorate([
176
199
  (0, event_emitter_1.OnEvent)('hook:step:start'),
177
200
  __metadata("design:type", Function),
178
201
  __metadata("design:paramtypes", [Object]),
179
- __metadata("design:returntype", void 0)
202
+ __metadata("design:returntype", Promise)
180
203
  ], WorkflowService.prototype, "sendWorkflowStepStart", null);
181
204
  __decorate([
182
205
  (0, event_emitter_1.OnEvent)('hook:step:suspended'),
183
206
  __metadata("design:type", Function),
184
207
  __metadata("design:paramtypes", [Object]),
185
- __metadata("design:returntype", void 0)
208
+ __metadata("design:returntype", Promise)
186
209
  ], WorkflowService.prototype, "sendWorkflowStepSuspended", null);
187
210
  __decorate([
188
211
  (0, event_emitter_1.OnEvent)('hook:step:success'),
189
212
  __metadata("design:type", Function),
190
213
  __metadata("design:paramtypes", [Object]),
191
- __metadata("design:returntype", void 0)
214
+ __metadata("design:returntype", Promise)
192
215
  ], WorkflowService.prototype, "sendWorkflowStepSuccess", null);
193
216
  __decorate([
194
217
  (0, event_emitter_1.OnEvent)('hook:step:error'),
195
218
  __metadata("design:type", Function),
196
219
  __metadata("design:paramtypes", [Object]),
197
- __metadata("design:returntype", void 0)
220
+ __metadata("design:returntype", Promise)
198
221
  ], WorkflowService.prototype, "sendWorkflowStepError", null);
222
+ __decorate([
223
+ (0, event_emitter_1.OnEvent)('hook:step:cancelled'),
224
+ __metadata("design:type", Function),
225
+ __metadata("design:paramtypes", [Object]),
226
+ __metadata("design:returntype", Promise)
227
+ ], WorkflowService.prototype, "sendWorkflowStepCancelled", null);
199
228
  exports.WorkflowService = WorkflowService = __decorate([
200
229
  (0, common_1.Injectable)(),
201
230
  __metadata("design:paramtypes", [workflow_repository_1.WorkflowRepository,
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow.service.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,49 @@
1
1
  import { WorkflowResumeResult, WorkflowRunner, WorkflowSnapshot, WorkflowStartResult } from '@hexabot-ai/agentic';
2
2
  import { DirectionType, McpServerTransport, MemoryScope, WorkflowType, WorkflowVersionAction, MemoryDefinition, WorkflowRunFull, WorkflowFull } from '@hexabot-ai/types';
3
+ import type { WorkflowRuntimeContext } from './contexts/workflow-runtime.context';
3
4
  import { TriggerEventWrapper } from './lib/trigger-event-wrapper';
4
5
  import { SchemaInstance } from './utils/schema-instance';
5
6
  export { DirectionType, McpServerTransport, MemoryScope, WorkflowType, WorkflowVersionAction, };
6
7
  export type MemoryValue = Record<string, unknown>;
7
8
  export type WorkflowResult = WorkflowStartResult | WorkflowResumeResult;
9
+ export type CallWorkflowFinishedResult = {
10
+ status: 'finished';
11
+ workflow_id: string;
12
+ workflow_run_id: string;
13
+ output: Record<string, unknown>;
14
+ };
15
+ export type CallWorkflowSuspendedResult = {
16
+ status: 'suspended';
17
+ workflow_id: string;
18
+ workflow_run_id: string;
19
+ };
20
+ export type CallWorkflowFailedResult = {
21
+ status: 'failed';
22
+ workflow_id: string;
23
+ workflow_run_id: string;
24
+ error: string;
25
+ };
26
+ export type CallWorkflowResult = CallWorkflowFinishedResult | CallWorkflowSuspendedResult | CallWorkflowFailedResult;
27
+ export type CallWorkflowOptions = {
28
+ workflowId: string;
29
+ input?: Record<string, unknown>;
30
+ parentContext: WorkflowRuntimeContext;
31
+ };
32
+ export interface WorkflowCallService {
33
+ callWorkflow(options: CallWorkflowOptions): Promise<CallWorkflowResult>;
34
+ }
35
+ export declare const WORKFLOW_CALL_SERVICE: unique symbol;
8
36
  export type RunWorkflowOptions = {
9
37
  mode: 'start';
10
38
  workflow: WorkflowFull;
11
39
  event: TriggerEventWrapper;
40
+ parentRun?: WorkflowRunFull;
41
+ input?: Record<string, unknown>;
12
42
  } | {
13
43
  mode: 'resume';
14
44
  run: WorkflowRunFull;
15
45
  event: TriggerEventWrapper;
46
+ resumeData?: unknown;
16
47
  };
17
48
  export type MarkRunningInput = {
18
49
  snapshot?: WorkflowSnapshot | null;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkflowVersionAction = exports.WorkflowType = exports.MemoryScope = exports.McpServerTransport = exports.DirectionType = void 0;
3
+ exports.WORKFLOW_CALL_SERVICE = exports.WorkflowVersionAction = exports.WorkflowType = exports.MemoryScope = exports.McpServerTransport = exports.DirectionType = void 0;
4
4
  const types_1 = require("@hexabot-ai/types");
5
5
  Object.defineProperty(exports, "DirectionType", { enumerable: true, get: function () { return types_1.DirectionType; } });
6
6
  Object.defineProperty(exports, "McpServerTransport", { enumerable: true, get: function () { return types_1.McpServerTransport; } });
7
7
  Object.defineProperty(exports, "MemoryScope", { enumerable: true, get: function () { return types_1.MemoryScope; } });
8
8
  Object.defineProperty(exports, "WorkflowType", { enumerable: true, get: function () { return types_1.WorkflowType; } });
9
9
  Object.defineProperty(exports, "WorkflowVersionAction", { enumerable: true, get: function () { return types_1.WorkflowVersionAction; } });
10
+ exports.WORKFLOW_CALL_SERVICE = Symbol('WORKFLOW_CALL_SERVICE');
10
11
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":";;;AAYA,6CAS2B;AAMzB,8FAdA,qBAAa,OAcA;AACb,mGAdA,0BAAkB,OAcA;AAClB,4FAdA,mBAAW,OAcA;AACX,6FAdA,oBAAY,OAcA;AACZ,sGAdA,6BAAqB,OAcA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":";;;AAYA,6CAS2B;AAOzB,8FAfA,qBAAa,OAeA;AACb,mGAfA,0BAAkB,OAeA;AAClB,4FAfA,mBAAW,OAeA;AACX,6FAfA,oBAAY,OAeA;AACZ,sGAfA,6BAAqB,OAeA;AAkDV,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
@@ -47,6 +47,7 @@ const workflow_run_service_1 = require("./services/workflow-run.service");
47
47
  const workflow_scheduler_service_1 = require("./services/workflow-scheduler.service");
48
48
  const workflow_version_service_1 = require("./services/workflow-version.service");
49
49
  const workflow_service_1 = require("./services/workflow.service");
50
+ const types_1 = require("./types");
50
51
  let WorkflowModule = class WorkflowModule {
51
52
  };
52
53
  exports.WorkflowModule = WorkflowModule;
@@ -97,6 +98,7 @@ exports.WorkflowModule = WorkflowModule = __decorate([
97
98
  scheduled_workflow_context_1.ScheduledWorkflowContext,
98
99
  workflow_context_factory_1.WorkflowContextFactory,
99
100
  agentic_service_1.AgenticService,
101
+ { provide: types_1.WORKFLOW_CALL_SERVICE, useExisting: agentic_service_1.AgenticService },
100
102
  ],
101
103
  exports: [
102
104
  workflow_repository_1.WorkflowRepository,
@@ -115,6 +117,7 @@ exports.WorkflowModule = WorkflowModule = __decorate([
115
117
  mcp_client_pool_service_1.McpClientPoolService,
116
118
  conversational_workflow_context_1.ConversationalWorkflowContext,
117
119
  agentic_service_1.AgenticService,
120
+ types_1.WORKFLOW_CALL_SERVICE,
118
121
  ],
119
122
  })
120
123
  ], WorkflowModule);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.module.js","sourceRoot":"","sources":["../../src/workflow/workflow.module.ts"],"names":[],"mappings":";;;;;;;;;AAMA,2CAAoD;AACpD,+CAAqD;AACrD,6CAAgD;AAEhD,qDAAgD;AAChD,kEAAgE;AAChE,kDAA6C;AAC7C,qDAAgD;AAEhD,gGAA2F;AAC3F,gFAA2E;AAC3E,sFAAiF;AACjF,kFAA6E;AAC7E,+EAA0E;AAC1E,6FAAwF;AACxF,mFAA8E;AAC9E,2FAAsF;AACtF,2EAAuE;AACvE,oEAAkE;AAClE,kFAAgF;AAChF,0EAAwE;AACxE,wEAAsE;AACtE,gFAA8E;AAC9E,gEAA+D;AAC/D,gFAA2E;AAC3E,8FAAyF;AACzF,sFAAiF;AACjF,oFAA+E;AAC/E,4FAAuF;AACvF,4EAAwE;AACxE,2EAAwE;AACxE,yDAAuD;AACvD,gEAA4D;AAC5D,gFAA0E;AAC1E,sEAAiE;AACjE,oFAA+E;AAC/E,4EAAuE;AACvE,8DAA0D;AAC1D,0EAAqE;AACrE,sFAAiF;AACjF,kFAA6E;AAC7E,kEAA8D;AAoEvD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAlE1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,mCAAiB;gBACjB,kDAAwB;gBACxB,0CAAoB;gBACpB,oDAAyB;gBACzB,4CAAqB;gBACrB,sCAAkB;gBAClB,+BAAe;aAChB,CAAC;YACF,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;YAC3B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,wBAAU;SACX;QACD,WAAW,EAAE;YACX,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,2CAAmB;SACpB;QACD,SAAS,EAAE;YACT,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,iDAAsB;YACtB,2CAAmB;YACnB,+CAAsB;YACtB,8BAAc;YACd,kCAAe;YACf,iDAAsB;YACtB,yCAAkB;YAClB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,qCAAgB;YAChB,8CAAoB;YACpB,4BAAiB;YACjB,qDAAwB;YACxB,+DAA6B;YAC7B,+CAAqB;YACrB,qDAAwB;YACxB,iDAAsB;YACtB,gCAAc;SACf;QACD,OAAO,EAAE;YACP,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,iDAAsB;YACtB,2CAAmB;YACnB,kCAAe;YACf,iDAAsB;YACtB,yCAAkB;YAClB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,qCAAgB;YAChB,8CAAoB;YACpB,+DAA6B;YAC7B,gCAAc;SACf;KACF,CAAC;GACW,cAAc,CAAG"}
1
+ {"version":3,"file":"workflow.module.js","sourceRoot":"","sources":["../../src/workflow/workflow.module.ts"],"names":[],"mappings":";;;;;;;;;AAMA,2CAAoD;AACpD,+CAAqD;AACrD,6CAAgD;AAEhD,qDAAgD;AAChD,kEAAgE;AAChE,kDAA6C;AAC7C,qDAAgD;AAEhD,gGAA2F;AAC3F,gFAA2E;AAC3E,sFAAiF;AACjF,kFAA6E;AAC7E,+EAA0E;AAC1E,6FAAwF;AACxF,mFAA8E;AAC9E,2FAAsF;AACtF,2EAAuE;AACvE,oEAAkE;AAClE,kFAAgF;AAChF,0EAAwE;AACxE,wEAAsE;AACtE,gFAA8E;AAC9E,gEAA+D;AAC/D,gFAA2E;AAC3E,8FAAyF;AACzF,sFAAiF;AACjF,oFAA+E;AAC/E,4FAAuF;AACvF,4EAAwE;AACxE,2EAAwE;AACxE,yDAAuD;AACvD,gEAA4D;AAC5D,gFAA0E;AAC1E,sEAAiE;AACjE,oFAA+E;AAC/E,4EAAuE;AACvE,8DAA0D;AAC1D,0EAAqE;AACrE,sFAAiF;AACjF,kFAA6E;AAC7E,kEAA8D;AAC9D,mCAAgD;AAsEzC,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IApE1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,mCAAiB;gBACjB,kDAAwB;gBACxB,0CAAoB;gBACpB,oDAAyB;gBACzB,4CAAqB;gBACrB,sCAAkB;gBAClB,+BAAe;aAChB,CAAC;YACF,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,sBAAS,CAAC;YAC3B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,wBAAU;SACX;QACD,WAAW,EAAE;YACX,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,2CAAmB;SACpB;QACD,SAAS,EAAE;YACT,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,iDAAsB;YACtB,2CAAmB;YACnB,+CAAsB;YACtB,8BAAc;YACd,kCAAe;YACf,iDAAsB;YACtB,yCAAkB;YAClB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,qCAAgB;YAChB,8CAAoB;YACpB,4BAAiB;YACjB,qDAAwB;YACxB,+DAA6B;YAC7B,+CAAqB;YACrB,qDAAwB;YACxB,iDAAsB;YACtB,gCAAc;YACd,EAAE,OAAO,EAAE,6BAAqB,EAAE,WAAW,EAAE,gCAAc,EAAE;SAChE;QACD,OAAO,EAAE;YACP,wCAAkB;YAClB,uDAAyB;YACzB,+CAAqB;YACrB,yDAA0B;YAC1B,iDAAsB;YACtB,2CAAmB;YACnB,kCAAe;YACf,iDAAsB;YACtB,yCAAkB;YAClB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,qCAAgB;YAChB,8CAAoB;YACpB,+DAA6B;YAC7B,gCAAc;YACd,6BAAqB;SACtB;KACF,CAAC;GACW,cAAc,CAAG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hexabot-ai/api",
3
3
  "private": false,
4
- "version": "3.2.2-alpha.9",
4
+ "version": "3.2.2-beta.0",
5
5
  "description": "Hexabot is a solution for creating and managing chatbots across multiple channels, leveraging AI for advanced conversational capabilities. It provides a user-friendly interface for building, training, and deploying chatbots with integrated support for various messaging platforms.",
6
6
  "author": "Hexastack",
7
7
  "license": "FCL-1.0-ALv2",
@@ -31,6 +31,7 @@
31
31
  "@keyv/redis": "^5.1.3",
32
32
  "@llamaindex/openai": "0.4.22",
33
33
  "@llamaindex/postgres": "0.0.65",
34
+ "@modelcontextprotocol/sdk": "^1.29.0",
34
35
  "@nestjs/axios": "^4.0.1",
35
36
  "@nestjs/cache-manager": "^3.1.2",
36
37
  "@nestjs/common": "^11.1.19",
@@ -46,13 +47,14 @@
46
47
  "@nestjs/swagger": "^11.4.2",
47
48
  "@nestjs/typeorm": "^11.0.1",
48
49
  "@nestjs/websockets": "^11.1.19",
50
+ "@rekog/mcp-nest": "^1.9.9",
49
51
  "@resvg/resvg-js": "^2.6.2",
50
52
  "@socket.io/redis-adapter": "^8.3.0",
51
53
  "ai": "^6.0.17",
52
54
  "async-mutex": "^0.5.0",
53
55
  "axios": "^1.15.2",
54
- "better-sqlite3": "^12.9.0",
55
56
  "bcryptjs": "^3.0.2",
57
+ "better-sqlite3": "^12.9.0",
56
58
  "cache-manager": "^7.2.4",
57
59
  "cacheable": "^2.1.0",
58
60
  "class-transformer": "^0.5.1",
@@ -90,8 +92,8 @@
90
92
  "typeorm": "^0.3.28",
91
93
  "yaml": "^2.8.3",
92
94
  "zod": "^4.3.6",
93
- "@hexabot-ai/agentic": "3.1.2-alpha.9",
94
- "@hexabot-ai/types": "3.0.2-alpha.9"
95
+ "@hexabot-ai/agentic": "3.1.2-beta.0",
96
+ "@hexabot-ai/types": "3.0.2-beta.0"
95
97
  },
96
98
  "devDependencies": {
97
99
  "@compodoc/compodoc": "^1.1.31",
@@ -142,7 +144,7 @@
142
144
  "tsconfig-paths": "^4.2.0",
143
145
  "tsconfig-paths-jest": "^0.0.1",
144
146
  "typescript": "^5.1.3",
145
- "@hexabot-ai/frontend": "3.2.2-alpha.9"
147
+ "@hexabot-ai/frontend": "3.2.2-beta.0"
146
148
  },
147
149
  "optionalDependencies": {
148
150
  "@css-inline/css-inline-linux-arm64-musl": "^0.14.1",
@@ -66,6 +66,12 @@ export class ActionService {
66
66
  const name = action.getName();
67
67
  const localizationOptions =
68
68
  this.i18nService.getJsonSchemaLocalizationOptions(name, lang);
69
+ const inputSchema = toDraft07JsonSchema(
70
+ action.inputSchema,
71
+ localizationOptions,
72
+ );
73
+
74
+ this.applyActionSchemaContext(inputSchema, name, workflowType);
69
75
 
70
76
  return {
71
77
  name,
@@ -75,10 +81,7 @@ export class ActionService {
75
81
  group: action.group,
76
82
  workflowTypes: action.workflowTypes,
77
83
  supportedBindings: action.supportedBindings ?? [],
78
- inputSchema: toDraft07JsonSchema(
79
- action.inputSchema,
80
- localizationOptions,
81
- ),
84
+ inputSchema,
82
85
  outputSchema: toDraft07JsonSchema(
83
86
  action.outputSchema,
84
87
  localizationOptions,
@@ -91,6 +94,33 @@ export class ActionService {
91
94
  });
92
95
  }
93
96
 
97
+ private applyActionSchemaContext(
98
+ inputSchema: Record<string, any>,
99
+ actionName: string,
100
+ workflowType?: WorkflowType,
101
+ ): void {
102
+ if (actionName !== 'call_workflow' || !workflowType) {
103
+ return;
104
+ }
105
+
106
+ const workflowIdSchema = inputSchema.properties?.workflow_id;
107
+ if (!workflowIdSchema || typeof workflowIdSchema !== 'object') {
108
+ return;
109
+ }
110
+
111
+ // The same call_workflow action is available to every workflow type, but a
112
+ // specific workflow can only call another workflow with the same trigger
113
+ // type. The catalog endpoint has the active type, so it can scope the UI
114
+ // picker before the action is saved.
115
+ workflowIdSchema['ui:options'] = {
116
+ ...(workflowIdSchema['ui:options'] ?? {}),
117
+ where: {
118
+ ...(workflowIdSchema['ui:options']?.where ?? {}),
119
+ type: workflowType,
120
+ },
121
+ };
122
+ }
123
+
94
124
  getRegistry(): Record<
95
125
  ActionName,
96
126
  BaseAction<any, any, BaseWorkflowContext, any>
@@ -56,8 +56,9 @@ export type ActionRegistry<
56
56
  A extends Action<unknown, unknown, BaseWorkflowContext, unknown> = AnyAction,
57
57
  > = Map<ActionName, A>;
58
58
 
59
- export type ExecArgs<
60
- I,
61
- C extends BaseWorkflowContext,
62
- S = unknown,
63
- > = ActionExecutionArgs<I, C, S, RuntimeBindings>;
59
+ export type ExecArgs<I, C extends BaseWorkflowContext, S = unknown> = Omit<
60
+ ActionExecutionArgs<I, C, S, RuntimeBindings>,
61
+ 'signal'
62
+ > & {
63
+ signal?: AbortSignal;
64
+ };
@@ -33,6 +33,7 @@ export class AppController {
33
33
  return {
34
34
  apiUrl: config.apiBaseUrl,
35
35
  ssoEnabled: config.ssoEnabled,
36
+ mcpEnabled: config.mcp.enabled,
36
37
  maxUploadSize: config.parameters.maxUploadSize,
37
38
  hasUserSession: !!req.session.passport?.user,
38
39
  };
package/src/app.module.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  import { existsSync } from 'fs';
8
+ import { createRequire } from 'node:module';
8
9
  import path, { join } from 'path';
9
10
 
10
11
  import KeyvRedis from '@keyv/redis';
@@ -45,6 +46,7 @@ import { LoggerModule } from './logger/logger.module';
45
46
  import { MailerModule } from './mailer/mailer.module';
46
47
  import { MigrationModule } from './migration/migration.module';
47
48
  import { SettingModule } from './setting/setting.module';
49
+ import { WorkflowTransferModule } from './transfer/workflow-transfer.module';
48
50
  import { Ability } from './user/guards/ability.guard';
49
51
  import { UserModule } from './user/user.module';
50
52
  import { WebsocketModule } from './websocket/websocket.module';
@@ -57,6 +59,18 @@ const workspaceFrontendPath = join(__dirname, '..', '..', 'frontend', 'dist');
57
59
  const frontendStaticPath = existsSync(compiledFrontendPath)
58
60
  ? compiledFrontendPath
59
61
  : workspaceFrontendPath;
62
+ const requireModule = createRequire(__filename);
63
+ const getMcpModuleImports = (): ModuleImports => {
64
+ if (!config.mcp.enabled) {
65
+ return [];
66
+ }
67
+
68
+ const { McpApiModule } = requireModule(
69
+ './mcp/mcp-api.module',
70
+ ) as typeof import('./mcp/mcp-api.module');
71
+
72
+ return [McpApiModule];
73
+ };
60
74
  // I18N options
61
75
  const i18nOptions: I18nOptions = {
62
76
  fallbackLanguage: 'en',
@@ -68,7 +82,7 @@ const i18nOptions: I18nOptions = {
68
82
  path.join(__dirname, '/extensions/helpers/'),
69
83
  path.join(__dirname, '/extensions/channels/'),
70
84
  ],
71
- watch: true,
85
+ watch: config.env.toLowerCase() !== 'test',
72
86
  },
73
87
  resolvers: [
74
88
  { use: QueryResolver, options: ['lang'] },
@@ -102,6 +116,7 @@ export const HEXABOT_MODULE_IMPORTS: ModuleImports = [
102
116
  ActionsModule,
103
117
  BindingsModule,
104
118
  WorkflowModule,
119
+ WorkflowTransferModule,
105
120
  HelperModule,
106
121
  LoggerModule,
107
122
  WebsocketModule,
@@ -123,6 +138,7 @@ export const HEXABOT_MODULE_IMPORTS: ModuleImports = [
123
138
  ignoreErrors: false,
124
139
  }),
125
140
  I18nModule.forRoot(i18nOptions),
141
+ ...getMcpModuleImports(),
126
142
  CacheModule.registerAsync({
127
143
  isGlobal: true,
128
144
  useFactory: async () => ({
@@ -82,23 +82,37 @@ const sessionLimitSubquery =
82
82
  ? true
83
83
  : process.env.SESSION_LIMIT_SUBQUERY === 'true';
84
84
  const sessionTtlSeconds = parseOptionalInt(process.env.SESSION_TTL_SECONDS);
85
+ const apiBaseUrl = process.env.API_ORIGIN || 'http://localhost:3000/api';
85
86
 
86
87
  export const config: Config = {
87
88
  i18n: {
88
89
  translationFilename: process.env.I18N_TRANSLATION_FILENAME || 'messages',
89
90
  },
90
91
  appPath: process.cwd(),
91
- apiBaseUrl: process.env.API_ORIGIN || 'http://localhost:3000/api',
92
+ apiBaseUrl,
92
93
  uiBaseUrl: process.env.FRONTEND_BASE_URL
93
94
  ? process.env.FRONTEND_BASE_URL
94
95
  : 'http://localhost:3000', // default to local dev
95
96
  ssoEnabled: process.env.SSO_ENABLED === 'true',
97
+ mcp: {
98
+ enabled: process.env.MCP_ENABLED === 'true',
99
+ serverName: process.env.MCP_SERVER_NAME || 'hexabot-api',
100
+ serverTitle: process.env.MCP_SERVER_TITLE || 'Hexabot API MCP Server',
101
+ serverVersion: process.env.MCP_SERVER_VERSION || '1.0.0',
102
+ serverDescription:
103
+ process.env.MCP_SERVER_DESCRIPTION ||
104
+ 'Manage Hexabot workflows, runs, memory, credentials, actions, and CMS content.',
105
+ serverInstructions:
106
+ process.env.MCP_SERVER_INSTRUCTIONS ||
107
+ 'Use these tools to inspect and manage Hexabot API resources. Credential values are never exposed.',
108
+ },
96
109
  security: {
97
110
  httpsEnabled: process.env.HTTPS_ENABLED === 'true',
98
111
  trustProxy: process.env.HTTPS_ENABLED === 'true', // Nginx in use ?
99
112
  cors: {
100
113
  allRoutes: true,
101
- headers: 'content-type,x-xsrf-token,x-csrf-token',
114
+ headers:
115
+ 'content-type,x-xsrf-token,x-csrf-token,authorization,mcp-session-id,last-event-id',
102
116
  methods: ['GET', 'PATCH', 'POST', 'DELETE', 'OPTIONS', 'HEAD'],
103
117
  allowOrigins: process.env.FRONTEND_ORIGIN
104
118
  ? process.env.FRONTEND_ORIGIN.split(',').map((origin) => origin.trim())
@@ -109,6 +123,7 @@ export const config: Config = {
109
123
  csrfExclude: [
110
124
  /^\/auth\/local$/, // login
111
125
  /^\/auth\/logout$/, // logout
126
+ /^\/mcp$/, // MCP Streamable HTTP endpoint
112
127
  /^\/webhook\//, // Any webhook channel
113
128
  /^\/reset(\/[^\/]+)?$/, // Reset request / Change password
114
129
  ],