@hexabot-ai/api 3.2.2-alpha.8 → 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 (329) 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/channel/lib/__test__/label.mock.js +0 -24
  11. package/dist/channel/lib/__test__/label.mock.js.map +1 -1
  12. package/dist/chat/dto/label.dto.d.ts +0 -1
  13. package/dist/chat/dto/label.dto.js +0 -6
  14. package/dist/chat/dto/label.dto.js.map +1 -1
  15. package/dist/chat/entities/label-group.entity.d.ts +0 -2
  16. package/dist/chat/entities/label.entity.d.ts +0 -4
  17. package/dist/chat/entities/label.entity.js +0 -5
  18. package/dist/chat/entities/label.entity.js.map +1 -1
  19. package/dist/chat/services/subscriber.service.d.ts +0 -1
  20. package/dist/config/index.js +14 -2
  21. package/dist/config/index.js.map +1 -1
  22. package/dist/config/types.d.ts +9 -0
  23. package/dist/extensions/actions/ai/agent.action.d.ts +1 -1
  24. package/dist/extensions/actions/ai/agent.action.js +6 -3
  25. package/dist/extensions/actions/ai/agent.action.js.map +1 -1
  26. package/dist/extensions/actions/ai/ai-base.action.d.ts +1 -1
  27. package/dist/extensions/actions/ai/ai-base.action.js +18 -5
  28. package/dist/extensions/actions/ai/ai-base.action.js.map +1 -1
  29. package/dist/extensions/actions/ai/generate-object.base.action.d.ts +1 -1
  30. package/dist/extensions/actions/ai/generate-object.base.action.js +3 -2
  31. package/dist/extensions/actions/ai/generate-object.base.action.js.map +1 -1
  32. package/dist/extensions/actions/ai/generate-text.base.action.d.ts +1 -1
  33. package/dist/extensions/actions/ai/generate-text.base.action.js +3 -2
  34. package/dist/extensions/actions/ai/generate-text.base.action.js.map +1 -1
  35. package/dist/extensions/actions/ai/mcp.binding.js +2 -0
  36. package/dist/extensions/actions/ai/mcp.binding.js.map +1 -1
  37. package/dist/extensions/actions/ai/memory.binding.js +2 -0
  38. package/dist/extensions/actions/ai/memory.binding.js.map +1 -1
  39. package/dist/extensions/actions/ai/retrieve-content-rag.action.js +2 -0
  40. package/dist/extensions/actions/ai/retrieve-content-rag.action.js.map +1 -1
  41. package/dist/extensions/actions/messaging/list.action.d.ts +2 -2
  42. package/dist/extensions/actions/messaging/list.action.js +7 -0
  43. package/dist/extensions/actions/messaging/list.action.js.map +1 -1
  44. package/dist/extensions/actions/subscriber/update-labels.action.js +3 -0
  45. package/dist/extensions/actions/subscriber/update-labels.action.js.map +1 -1
  46. package/dist/extensions/actions/web/http-request.action.js +12 -1
  47. package/dist/extensions/actions/web/http-request.action.js.map +1 -1
  48. package/dist/extensions/actions/workflow/call-workflow.action.d.ts +19 -0
  49. package/dist/extensions/actions/workflow/call-workflow.action.js +83 -0
  50. package/dist/extensions/actions/workflow/call-workflow.action.js.map +1 -0
  51. package/dist/extensions/actions/workflow/i18n/en.translations.json +9 -0
  52. package/dist/extensions/actions/workflow/i18n/fr.translations.json +9 -0
  53. package/dist/extensions/index.d.ts +1 -0
  54. package/dist/extensions/index.js +1 -0
  55. package/dist/extensions/index.js.map +1 -1
  56. package/dist/index.d.ts +1 -0
  57. package/dist/index.js +1 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/mcp/controllers/mcp-token.controller.d.ts +47 -0
  60. package/dist/mcp/controllers/mcp-token.controller.js +70 -0
  61. package/dist/mcp/controllers/mcp-token.controller.js.map +1 -0
  62. package/dist/mcp/decorators/mcp-permission.decorator.d.ts +8 -0
  63. package/dist/mcp/decorators/mcp-permission.decorator.js +11 -0
  64. package/dist/mcp/decorators/mcp-permission.decorator.js.map +1 -0
  65. package/dist/mcp/dto/mcp-token.dto.d.ts +17 -0
  66. package/dist/mcp/dto/mcp-token.dto.js +40 -0
  67. package/dist/mcp/dto/mcp-token.dto.js.map +1 -0
  68. package/dist/mcp/entities/mcp-token.entity.d.ts +111 -0
  69. package/dist/mcp/entities/mcp-token.entity.js +69 -0
  70. package/dist/mcp/entities/mcp-token.entity.js.map +1 -0
  71. package/dist/mcp/guards/hexabot-mcp-token.guard.d.ts +9 -0
  72. package/dist/mcp/guards/hexabot-mcp-token.guard.js +49 -0
  73. package/dist/mcp/guards/hexabot-mcp-token.guard.js.map +1 -0
  74. package/dist/mcp/guards/mcp-permission.guard.d.ts +9 -0
  75. package/dist/mcp/guards/mcp-permission.guard.js +47 -0
  76. package/dist/mcp/guards/mcp-permission.guard.js.map +1 -0
  77. package/dist/mcp/mcp-api.module.d.ts +2 -0
  78. package/dist/mcp/mcp-api.module.js +65 -0
  79. package/dist/mcp/mcp-api.module.js.map +1 -0
  80. package/dist/mcp/repositories/mcp-token.repository.d.ts +8 -0
  81. package/dist/mcp/repositories/mcp-token.repository.js +41 -0
  82. package/dist/mcp/repositories/mcp-token.repository.js.map +1 -0
  83. package/dist/mcp/services/mcp-token.service.d.ts +24 -0
  84. package/dist/mcp/services/mcp-token.service.js +106 -0
  85. package/dist/mcp/services/mcp-token.service.js.map +1 -0
  86. package/dist/mcp/tools/catalog-mcp.tools.d.ts +63 -0
  87. package/dist/mcp/tools/catalog-mcp.tools.js +135 -0
  88. package/dist/mcp/tools/catalog-mcp.tools.js.map +1 -0
  89. package/dist/mcp/tools/cms-mcp.tools.d.ts +128 -0
  90. package/dist/mcp/tools/cms-mcp.tools.js +242 -0
  91. package/dist/mcp/tools/cms-mcp.tools.js.map +1 -0
  92. package/dist/mcp/tools/credential-mcp.tools.d.ts +19 -0
  93. package/dist/mcp/tools/credential-mcp.tools.js +82 -0
  94. package/dist/mcp/tools/credential-mcp.tools.js.map +1 -0
  95. package/dist/mcp/tools/hexabot-mcp-tool.base.d.ts +22 -0
  96. package/dist/mcp/tools/hexabot-mcp-tool.base.js +48 -0
  97. package/dist/mcp/tools/hexabot-mcp-tool.base.js.map +1 -0
  98. package/dist/mcp/tools/hexabot-mcp.schemas.d.ts +41 -0
  99. package/dist/mcp/tools/hexabot-mcp.schemas.js +36 -0
  100. package/dist/mcp/tools/hexabot-mcp.schemas.js.map +1 -0
  101. package/dist/mcp/tools/hexabot-mcp.tools.d.ts +1 -0
  102. package/dist/mcp/tools/hexabot-mcp.tools.js +18 -0
  103. package/dist/mcp/tools/hexabot-mcp.tools.js.map +1 -0
  104. package/dist/mcp/tools/hexabot-mcp.utils.d.ts +2 -0
  105. package/dist/mcp/tools/hexabot-mcp.utils.js +21 -0
  106. package/dist/mcp/tools/hexabot-mcp.utils.js.map +1 -0
  107. package/dist/mcp/tools/index.d.ts +22 -0
  108. package/dist/mcp/tools/index.js +50 -0
  109. package/dist/mcp/tools/index.js.map +1 -0
  110. package/dist/mcp/tools/mcp-server-mcp.tools.d.ts +77 -0
  111. package/dist/mcp/tools/mcp-server-mcp.tools.js +130 -0
  112. package/dist/mcp/tools/mcp-server-mcp.tools.js.map +1 -0
  113. package/dist/mcp/tools/memory-definition-mcp.tools.d.ts +57 -0
  114. package/dist/mcp/tools/memory-definition-mcp.tools.js +128 -0
  115. package/dist/mcp/tools/memory-definition-mcp.tools.js.map +1 -0
  116. package/dist/mcp/tools/workflow-mcp.helper.d.ts +156 -0
  117. package/dist/mcp/tools/workflow-mcp.helper.js +128 -0
  118. package/dist/mcp/tools/workflow-mcp.helper.js.map +1 -0
  119. package/dist/mcp/tools/workflow-mcp.tools.d.ts +790 -0
  120. package/dist/mcp/tools/workflow-mcp.tools.js +227 -0
  121. package/dist/mcp/tools/workflow-mcp.tools.js.map +1 -0
  122. package/dist/mcp/tools/workflow-run-mcp.tools.d.ts +349 -0
  123. package/dist/mcp/tools/workflow-run-mcp.tools.js +242 -0
  124. package/dist/mcp/tools/workflow-run-mcp.tools.js.map +1 -0
  125. package/dist/mcp/tools/workflow-version-mcp.tools.d.ts +238 -0
  126. package/dist/mcp/tools/workflow-version-mcp.tools.js +368 -0
  127. package/dist/mcp/tools/workflow-version-mcp.tools.js.map +1 -0
  128. package/dist/mcp/types.d.ts +7 -0
  129. package/dist/mcp/types.js +3 -0
  130. package/dist/mcp/types.js.map +1 -0
  131. package/dist/static/assets/{browser-ponyfill-IkrOfrbH.js → browser-ponyfill-AQYxeOz6.js} +1 -1
  132. package/dist/static/assets/{cssMode-BVh8Ojbf.js → cssMode-CU7XHFDD.js} +1 -1
  133. package/dist/static/assets/{freemarker2-Cnk90W15.js → freemarker2-DA_oH4Qs.js} +1 -1
  134. package/dist/static/assets/{handlebars-DDmCOyIG.js → handlebars-DXFzBSlw.js} +1 -1
  135. package/dist/static/assets/{html-cDkAkcNZ.js → html-CnQNXujK.js} +1 -1
  136. package/dist/static/assets/{htmlMode-BKekdtGx.js → htmlMode-BpX8KTMR.js} +1 -1
  137. package/dist/static/assets/{index-CnXiX03v.js → index-BIqNbcu4.js} +2379 -2330
  138. package/dist/static/assets/{index-BI1BtkYv.css → index-D-b9KTZd.css} +1 -1
  139. package/dist/static/assets/{javascript-bO_Y-MtP.js → javascript-DeoOxUBN.js} +1 -1
  140. package/dist/static/assets/{jsonMode-p7oe1x6a.js → jsonMode-YGmaNoOG.js} +1 -1
  141. package/dist/static/assets/{liquid-DehK5Toi.js → liquid-K6wF5n3k.js} +1 -1
  142. package/dist/static/assets/{lspLanguageFeatures-C8ni2Y8s.js → lspLanguageFeatures-DFIoRPyQ.js} +1 -1
  143. package/dist/static/assets/{mdx-BqE3GcoU.js → mdx-CWEgpRjI.js} +1 -1
  144. package/dist/static/assets/{python-DYGyqTrT.js → python-22vBz2Ov.js} +1 -1
  145. package/dist/static/assets/{razor-CTOqYwI_.js → razor-CEUwDwv_.js} +1 -1
  146. package/dist/static/assets/{tsMode-n7ps72jb.js → tsMode-kpHfzhoP.js} +1 -1
  147. package/dist/static/assets/{typescript-B0sRB56_.js → typescript-PCkEoDOe.js} +1 -1
  148. package/dist/static/assets/{xml-C4I4RxHC.js → xml-OzOqd-hy.js} +1 -1
  149. package/dist/static/assets/{yaml-V_o23lNz.js → yaml-B3P_vvCy.js} +1 -1
  150. package/dist/static/index.html +2 -2
  151. package/dist/static/locales/en/translation.json +89 -5
  152. package/dist/static/locales/fr/translation.json +90 -6
  153. package/dist/transfer/adapters/content-type-transfer.adapter.d.ts +14 -0
  154. package/dist/transfer/adapters/content-type-transfer.adapter.js +102 -0
  155. package/dist/transfer/adapters/content-type-transfer.adapter.js.map +1 -0
  156. package/dist/transfer/adapters/credential-transfer.adapter.d.ts +13 -0
  157. package/dist/transfer/adapters/credential-transfer.adapter.js +110 -0
  158. package/dist/transfer/adapters/credential-transfer.adapter.js.map +1 -0
  159. package/dist/transfer/adapters/label-transfer.adapter.d.ts +15 -0
  160. package/dist/transfer/adapters/label-transfer.adapter.js +189 -0
  161. package/dist/transfer/adapters/label-transfer.adapter.js.map +1 -0
  162. package/dist/transfer/adapters/mcp-server-transfer.adapter.d.ts +16 -0
  163. package/dist/transfer/adapters/mcp-server-transfer.adapter.js +169 -0
  164. package/dist/transfer/adapters/mcp-server-transfer.adapter.js.map +1 -0
  165. package/dist/transfer/adapters/memory-definition-transfer.adapter.d.ts +14 -0
  166. package/dist/transfer/adapters/memory-definition-transfer.adapter.js +111 -0
  167. package/dist/transfer/adapters/memory-definition-transfer.adapter.js.map +1 -0
  168. package/dist/transfer/index.d.ts +7 -0
  169. package/dist/transfer/index.js +24 -0
  170. package/dist/transfer/index.js.map +1 -0
  171. package/dist/transfer/workflow-transfer-adapter.registry.d.ts +27 -0
  172. package/dist/transfer/workflow-transfer-adapter.registry.js +164 -0
  173. package/dist/transfer/workflow-transfer-adapter.registry.js.map +1 -0
  174. package/dist/transfer/workflow-transfer-definition.service.d.ts +40 -0
  175. package/dist/transfer/workflow-transfer-definition.service.js +353 -0
  176. package/dist/transfer/workflow-transfer-definition.service.js.map +1 -0
  177. package/dist/transfer/workflow-transfer-resource-adapter.d.ts +33 -0
  178. package/dist/transfer/workflow-transfer-resource-adapter.js +81 -0
  179. package/dist/transfer/workflow-transfer-resource-adapter.js.map +1 -0
  180. package/dist/transfer/workflow-transfer.controller.d.ts +9 -0
  181. package/dist/transfer/workflow-transfer.controller.js +63 -0
  182. package/dist/transfer/workflow-transfer.controller.js.map +1 -0
  183. package/dist/transfer/workflow-transfer.module.d.ts +2 -0
  184. package/dist/transfer/workflow-transfer.module.js +47 -0
  185. package/dist/transfer/workflow-transfer.module.js.map +1 -0
  186. package/dist/transfer/workflow-transfer.service.d.ts +51 -0
  187. package/dist/transfer/workflow-transfer.service.js +509 -0
  188. package/dist/transfer/workflow-transfer.service.js.map +1 -0
  189. package/dist/transfer/workflow-transfer.types.d.ts +31 -0
  190. package/dist/transfer/workflow-transfer.types.js +35 -0
  191. package/dist/transfer/workflow-transfer.types.js.map +1 -0
  192. package/dist/tsconfig.build.tsbuildinfo +1 -1
  193. package/dist/types/event-emitter.d.ts +12 -5
  194. package/dist/user/controllers/user.controller.d.ts +0 -2
  195. package/dist/user/dto/user.dto.d.ts +1 -1
  196. package/dist/user/entities/user.entity.d.ts +0 -2
  197. package/dist/user/guards/ability.guard.js +12 -2
  198. package/dist/user/guards/ability.guard.js.map +1 -1
  199. package/dist/utils/test/fixtures/label-group.d.ts +1 -2
  200. package/dist/utils/test/fixtures/label.d.ts +1 -2
  201. package/dist/utils/test/fixtures/label.js +0 -19
  202. package/dist/utils/test/fixtures/label.js.map +1 -1
  203. package/dist/utils/test/fixtures/subscriber.d.ts +1 -1
  204. package/dist/utils/test/fixtures/workflow-run.js +4 -1
  205. package/dist/utils/test/fixtures/workflow-run.js.map +1 -1
  206. package/dist/utils/test/port.d.ts +8 -0
  207. package/dist/utils/test/port.js +34 -0
  208. package/dist/utils/test/port.js.map +1 -0
  209. package/dist/websocket/websocket.gateway.d.ts +2 -1
  210. package/dist/websocket/websocket.gateway.js.map +1 -1
  211. package/dist/workflow/contexts/workflow-runtime.context.d.ts +3 -1
  212. package/dist/workflow/contexts/workflow-runtime.context.js +5 -0
  213. package/dist/workflow/contexts/workflow-runtime.context.js.map +1 -1
  214. package/dist/workflow/controllers/workflow-run.controller.js +2 -0
  215. package/dist/workflow/controllers/workflow-run.controller.js.map +1 -1
  216. package/dist/workflow/dto/workflow-run.dto.d.ts +1 -0
  217. package/dist/workflow/dto/workflow-run.dto.js +11 -0
  218. package/dist/workflow/dto/workflow-run.dto.js.map +1 -1
  219. package/dist/workflow/entities/memory-record.entity.d.ts +2 -0
  220. package/dist/workflow/entities/workflow-run.entity.d.ts +62 -0
  221. package/dist/workflow/entities/workflow-run.entity.js +15 -1
  222. package/dist/workflow/entities/workflow-run.entity.js.map +1 -1
  223. package/dist/workflow/index.d.ts +7 -0
  224. package/dist/workflow/index.js +7 -0
  225. package/dist/workflow/index.js.map +1 -1
  226. package/dist/workflow/repositories/workflow-run.repository.js +7 -1
  227. package/dist/workflow/repositories/workflow-run.repository.js.map +1 -1
  228. package/dist/workflow/resource-refs.d.ts +17 -0
  229. package/dist/workflow/resource-refs.js +15 -0
  230. package/dist/workflow/resource-refs.js.map +1 -0
  231. package/dist/workflow/services/agentic.service.d.ts +9 -2
  232. package/dist/workflow/services/agentic.service.js +142 -19
  233. package/dist/workflow/services/agentic.service.js.map +1 -1
  234. package/dist/workflow/services/workflow-run.service.d.ts +3 -0
  235. package/dist/workflow/services/workflow-run.service.js +75 -3
  236. package/dist/workflow/services/workflow-run.service.js.map +1 -1
  237. package/dist/workflow/services/workflow-version.service.d.ts +2 -0
  238. package/dist/workflow/services/workflow-version.service.js +19 -0
  239. package/dist/workflow/services/workflow-version.service.js.map +1 -1
  240. package/dist/workflow/services/workflow.service.d.ts +13 -9
  241. package/dist/workflow/services/workflow.service.js +64 -35
  242. package/dist/workflow/services/workflow.service.js.map +1 -1
  243. package/dist/workflow/types.d.ts +31 -0
  244. package/dist/workflow/types.js +2 -1
  245. package/dist/workflow/types.js.map +1 -1
  246. package/dist/workflow/workflow.module.js +3 -0
  247. package/dist/workflow/workflow.module.js.map +1 -1
  248. package/package.json +7 -5
  249. package/src/actions/actions.service.ts +34 -4
  250. package/src/actions/types.ts +6 -5
  251. package/src/app.controller.ts +1 -0
  252. package/src/app.module.ts +17 -1
  253. package/src/channel/lib/__test__/label.mock.ts +0 -24
  254. package/src/chat/dto/label.dto.ts +1 -12
  255. package/src/chat/entities/label.entity.ts +0 -4
  256. package/src/config/index.ts +17 -2
  257. package/src/config/types.ts +9 -0
  258. package/src/extensions/actions/ai/agent.action.ts +6 -1
  259. package/src/extensions/actions/ai/ai-base.action.ts +39 -5
  260. package/src/extensions/actions/ai/generate-object.base.action.ts +3 -0
  261. package/src/extensions/actions/ai/generate-text.base.action.ts +3 -0
  262. package/src/extensions/actions/ai/mcp.binding.ts +2 -0
  263. package/src/extensions/actions/ai/memory.binding.ts +2 -0
  264. package/src/extensions/actions/ai/retrieve-content-rag.action.ts +2 -0
  265. package/src/extensions/actions/messaging/list.action.ts +7 -0
  266. package/src/extensions/actions/subscriber/update-labels.action.ts +3 -0
  267. package/src/extensions/actions/web/http-request.action.ts +17 -1
  268. package/src/extensions/actions/workflow/call-workflow.action.ts +112 -0
  269. package/src/extensions/actions/workflow/i18n/en.translations.json +9 -0
  270. package/src/extensions/actions/workflow/i18n/fr.translations.json +9 -0
  271. package/src/extensions/index.ts +2 -0
  272. package/src/index.ts +2 -0
  273. package/src/mcp/README.md +277 -0
  274. package/src/mcp/controllers/mcp-token.controller.ts +64 -0
  275. package/src/mcp/decorators/mcp-permission.decorator.ts +23 -0
  276. package/src/mcp/dto/mcp-token.dto.ts +48 -0
  277. package/src/mcp/entities/mcp-token.entity.ts +60 -0
  278. package/src/mcp/guards/hexabot-mcp-token.guard.ts +55 -0
  279. package/src/mcp/guards/mcp-permission.guard.ts +61 -0
  280. package/src/mcp/mcp-api.module.ts +61 -0
  281. package/src/mcp/repositories/mcp-token.repository.ts +34 -0
  282. package/src/mcp/services/mcp-token.service.ts +138 -0
  283. package/src/mcp/tools/catalog-mcp.tools.ts +122 -0
  284. package/src/mcp/tools/cms-mcp.tools.ts +239 -0
  285. package/src/mcp/tools/credential-mcp.tools.ts +81 -0
  286. package/src/mcp/tools/hexabot-mcp-tool.base.ts +74 -0
  287. package/src/mcp/tools/hexabot-mcp.schemas.ts +55 -0
  288. package/src/mcp/tools/hexabot-mcp.tools.ts +7 -0
  289. package/src/mcp/tools/hexabot-mcp.utils.ts +29 -0
  290. package/src/mcp/tools/index.ts +51 -0
  291. package/src/mcp/tools/mcp-server-mcp.tools.ts +135 -0
  292. package/src/mcp/tools/memory-definition-mcp.tools.ts +125 -0
  293. package/src/mcp/tools/workflow-mcp.helper.ts +219 -0
  294. package/src/mcp/tools/workflow-mcp.tools.ts +271 -0
  295. package/src/mcp/tools/workflow-run-mcp.tools.ts +292 -0
  296. package/src/mcp/tools/workflow-version-mcp.tools.ts +459 -0
  297. package/src/mcp/types.ts +14 -0
  298. package/src/transfer/adapters/content-type-transfer.adapter.ts +154 -0
  299. package/src/transfer/adapters/credential-transfer.adapter.ts +158 -0
  300. package/src/transfer/adapters/label-transfer.adapter.ts +291 -0
  301. package/src/transfer/adapters/mcp-server-transfer.adapter.ts +255 -0
  302. package/src/transfer/adapters/memory-definition-transfer.adapter.ts +167 -0
  303. package/src/transfer/index.ts +19 -0
  304. package/src/transfer/workflow-transfer-adapter.registry.ts +250 -0
  305. package/src/transfer/workflow-transfer-definition.service.ts +587 -0
  306. package/src/transfer/workflow-transfer-resource-adapter.ts +132 -0
  307. package/src/transfer/workflow-transfer.controller.ts +86 -0
  308. package/src/transfer/workflow-transfer.module.ts +46 -0
  309. package/src/transfer/workflow-transfer.service.ts +858 -0
  310. package/src/transfer/workflow-transfer.types.ts +98 -0
  311. package/src/user/guards/ability.guard.ts +15 -3
  312. package/src/utils/test/fixtures/label.ts +0 -19
  313. package/src/utils/test/fixtures/workflow-run.ts +4 -1
  314. package/src/utils/test/port.ts +48 -0
  315. package/src/websocket/websocket.gateway.ts +2 -1
  316. package/src/workflow/contexts/workflow-runtime.context.ts +12 -1
  317. package/src/workflow/controllers/workflow-run.controller.ts +2 -0
  318. package/src/workflow/dto/workflow-run.dto.ts +10 -0
  319. package/src/workflow/entities/workflow-run.entity.ts +22 -1
  320. package/src/workflow/index.ts +14 -0
  321. package/src/workflow/repositories/workflow-run.repository.ts +7 -1
  322. package/src/workflow/resource-refs.ts +44 -0
  323. package/src/workflow/services/agentic.service.ts +271 -30
  324. package/src/workflow/services/workflow-run.service.ts +120 -7
  325. package/src/workflow/services/workflow-version.service.ts +33 -0
  326. package/src/workflow/services/workflow.service.ts +86 -31
  327. package/src/workflow/types.ts +52 -0
  328. package/src/workflow/workflow.module.ts +3 -0
  329. package/types/event-emitter.d.ts +12 -5
@@ -10,9 +10,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkflowRunService = void 0;
13
+ const agentic_1 = require("@hexabot-ai/agentic");
13
14
  const common_1 = require("@nestjs/common");
15
+ const typeorm_1 = require("typeorm");
14
16
  const base_orm_service_1 = require("../../utils/generics/base-orm.service");
15
17
  const workflow_run_repository_1 = require("../repositories/workflow-run.repository");
18
+ const ACTIVE_WORKFLOW_RUN_STATUSES = [
19
+ agentic_1.EWorkflowRunStatus.IDLE,
20
+ agentic_1.EWorkflowRunStatus.RUNNING,
21
+ agentic_1.EWorkflowRunStatus.SUSPENDED,
22
+ ];
16
23
  let WorkflowRunService = class WorkflowRunService extends base_orm_service_1.BaseOrmService {
17
24
  constructor(repository) {
18
25
  super(repository);
@@ -55,15 +62,80 @@ let WorkflowRunService = class WorkflowRunService extends base_orm_service_1.Bas
55
62
  });
56
63
  }
57
64
  async findSuspendedRunByInitiator(triggeredById, threadId, workflowId) {
58
- return await this.findOneAndPopulate({
65
+ const runs = await this.findAndPopulate({
59
66
  where: {
60
67
  triggeredBy: { id: triggeredById },
61
68
  ...(threadId ? { thread: { id: threadId } } : {}),
62
- status: 'suspended',
63
- ...(workflowId ? { workflow: { id: workflowId } } : {}),
69
+ status: (0, typeorm_1.In)(ACTIVE_WORKFLOW_RUN_STATUSES),
64
70
  },
65
71
  order: { suspendedAt: 'DESC', createdAt: 'DESC' },
66
72
  });
73
+ if (runs.length === 0) {
74
+ return null;
75
+ }
76
+ const runsById = new Map(runs.map((run) => [run.id, run]));
77
+ const parentRunIds = new Set(runs
78
+ .map((run) => this.resolveRunId(run.parentRun))
79
+ .filter((value) => typeof value === 'string'));
80
+ const leaves = runs.filter((run) => !parentRunIds.has(run.id));
81
+ const candidates = (leaves.length > 0 ? leaves : runs)
82
+ .filter((run) => run.status === agentic_1.EWorkflowRunStatus.SUSPENDED)
83
+ .filter((run) => workflowId
84
+ ? this.isRunInWorkflowStack(run, workflowId, runsById)
85
+ : true);
86
+ return this.pickDeepestSuspendedRun(candidates, runsById);
87
+ }
88
+ resolveRunId(run) {
89
+ if (typeof run === 'string') {
90
+ return run;
91
+ }
92
+ return run?.id ?? null;
93
+ }
94
+ isRunInWorkflowStack(run, workflowId, runsById) {
95
+ let current = run;
96
+ const visited = new Set();
97
+ while (current && !visited.has(current.id)) {
98
+ visited.add(current.id);
99
+ if (current.workflow.id === workflowId) {
100
+ return true;
101
+ }
102
+ const parentRunId = this.resolveRunId(current.parentRun);
103
+ current = parentRunId ? runsById.get(parentRunId) : undefined;
104
+ }
105
+ return false;
106
+ }
107
+ pickDeepestSuspendedRun(runs, runsById) {
108
+ if (runs.length === 0) {
109
+ return null;
110
+ }
111
+ const getDepth = (run) => {
112
+ let depth = 0;
113
+ let current = run;
114
+ const visited = new Set();
115
+ while (current && !visited.has(current.id)) {
116
+ visited.add(current.id);
117
+ depth += 1;
118
+ const parentRunId = this.resolveRunId(current.parentRun);
119
+ current = parentRunId ? runsById.get(parentRunId) : undefined;
120
+ }
121
+ return depth;
122
+ };
123
+ const getTime = (value) => {
124
+ if (!value) {
125
+ return 0;
126
+ }
127
+ const date = value instanceof Date ? value : new Date(value);
128
+ const timestamp = date.getTime();
129
+ return Number.isNaN(timestamp) ? 0 : timestamp;
130
+ };
131
+ return [...runs].sort((a, b) => {
132
+ const depthDiff = getDepth(b) - getDepth(a);
133
+ if (depthDiff !== 0) {
134
+ return depthDiff;
135
+ }
136
+ return (getTime(b.suspendedAt) - getTime(a.suspendedAt) ||
137
+ getTime(b.createdAt) - getTime(a.createdAt));
138
+ })[0];
67
139
  }
68
140
  };
69
141
  exports.WorkflowRunService = WorkflowRunService;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-run.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow-run.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,2CAA4C;AAE5C,4EAAmE;AAGnE,qFAAgF;AAQzE,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,iCAAoC;IAM1E,YAAqB,UAAiC;QACpD,KAAK,CAAC,UAAU,CAAC,CAAC;QADC,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IASD,KAAK,CAAC,WAAW,CACf,KAAa,EACb,OAAmD;QAEnD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACjC,MAAM,EAAE,SAAS;YACjB,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IASD,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,OASe;QAEf,MAAM,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,GAAG,KAAK,EACT,GAAG,OAAO,CAAC;QAEZ,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACjC,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,MAAM,IAAI,IAAI;YAC7B,gBAAgB,EAAE,MAAM,IAAI,IAAI;YAChC,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE,UAAU,IAAI,IAAI;YACxC,eAAe,EAAE,YAAY,IAAI,IAAI;YACrC,aAAa,EAAE,UAAU,IAAI,IAAI;YACjC,sBAAsB,EAAE,YAAY,IAAI,IAAI;YAC5C,cAAc;YACd,WAAW,EAAE,IAAI,IAAI,EAAE;YACvB,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IASD,KAAK,CAAC,YAAY,CAChB,KAAa,EACb,OAAkE;QAElE,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACjC,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IASD,KAAK,CAAC,UAAU,CACd,KAAa,EACb,OAAgD;QAEhD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACjC,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IASD,KAAK,CAAC,2BAA2B,CAC/B,aAAqB,EACrB,QAAiB,EACjB,UAAmB;QAEnB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACnC,KAAK,EAAE;gBACL,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;gBAClC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,EAAE,WAAW;gBACnB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD;YACD,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApIY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAOsB,+CAAqB;GAN3C,kBAAkB,CAoI9B"}
1
+ {"version":3,"file":"workflow-run.service.js","sourceRoot":"","sources":["../../../src/workflow/services/workflow-run.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { WorkflowVersion } from '@hexabot-ai/types';
2
+ import { EntityManager } from 'typeorm';
2
3
  import { BaseOrmService } from "../../utils/generics/base-orm.service";
3
4
  import { WorkflowNewVersionDto } from '../dto/workflow-version.dto';
4
5
  import { WorkflowVersionOrmEntity } from '../entities/workflow-version.entity';
@@ -23,6 +24,7 @@ export declare class WorkflowVersionService extends BaseOrmService<WorkflowVersi
23
24
  createdBy: string | null;
24
25
  }>;
25
26
  createSnapshot(params: WorkflowNewVersionDto): Promise<WorkflowVersion>;
27
+ createSnapshotWithManager(manager: EntityManager, params: WorkflowNewVersionDto): Promise<WorkflowVersionOrmEntity>;
26
28
  restoreVersion(workflowId: string, versionId: string, payload: {
27
29
  updatedBy: string;
28
30
  message?: string | null;
@@ -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.8",
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/types": "3.0.2-alpha.8",
94
- "@hexabot-ai/agentic": "3.1.2-alpha.8"
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.8"
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>