@hotmeshio/long-tail 0.1.6 → 0.1.8

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 (384) hide show
  1. package/README.md +47 -5
  2. package/build/api/auth.d.ts +16 -0
  3. package/build/api/auth.js +53 -0
  4. package/build/api/bot-accounts.d.ts +137 -0
  5. package/build/api/bot-accounts.js +302 -0
  6. package/build/api/controlplane.d.ts +68 -0
  7. package/build/api/controlplane.js +158 -0
  8. package/build/api/dba.d.ts +42 -0
  9. package/build/api/dba.js +95 -0
  10. package/build/api/escalations.d.ts +271 -0
  11. package/build/api/escalations.js +892 -0
  12. package/build/api/exports.d.ts +90 -0
  13. package/build/api/exports.js +204 -0
  14. package/build/api/index.d.ts +18 -0
  15. package/build/api/index.js +54 -0
  16. package/build/api/insight.d.ts +86 -0
  17. package/build/api/insight.js +147 -0
  18. package/build/api/maintenance.d.ts +22 -0
  19. package/build/api/maintenance.js +43 -0
  20. package/build/api/mcp-runs.d.ts +43 -0
  21. package/build/api/mcp-runs.js +89 -0
  22. package/build/api/mcp.d.ts +160 -0
  23. package/build/api/mcp.js +320 -0
  24. package/build/api/namespaces.d.ts +20 -0
  25. package/build/{routes/escalations/helpers.js → api/namespaces.js} +35 -10
  26. package/build/api/roles.d.ts +88 -0
  27. package/build/api/roles.js +217 -0
  28. package/build/api/settings.d.ts +10 -0
  29. package/build/api/settings.js +43 -0
  30. package/build/api/tasks.d.ts +70 -0
  31. package/build/api/tasks.js +139 -0
  32. package/build/api/users.d.ts +115 -0
  33. package/build/api/users.js +228 -0
  34. package/build/api/workflow-sets.d.ts +77 -0
  35. package/build/api/workflow-sets.js +170 -0
  36. package/build/api/workflows.d.ts +158 -0
  37. package/build/api/workflows.js +407 -0
  38. package/build/api/yaml-workflows.d.ts +282 -0
  39. package/build/api/yaml-workflows.js +751 -0
  40. package/build/examples/types/envelopes.d.ts +27 -0
  41. package/build/examples/types/index.d.ts +1 -1
  42. package/build/examples/workers.js +8 -0
  43. package/build/examples/workflows/assembly-line/activities.d.ts +28 -0
  44. package/build/examples/workflows/assembly-line/activities.js +53 -0
  45. package/build/examples/workflows/assembly-line/index.d.ts +17 -0
  46. package/build/examples/workflows/assembly-line/index.js +60 -0
  47. package/build/examples/workflows/assembly-line/iterator.d.ts +12 -0
  48. package/build/examples/workflows/assembly-line/iterator.js +54 -0
  49. package/build/examples/workflows/assembly-line/reverter.d.ts +18 -0
  50. package/build/examples/workflows/assembly-line/reverter.js +89 -0
  51. package/build/examples/workflows/assembly-line/types.d.ts +25 -0
  52. package/build/examples/workflows/assembly-line/types.js +8 -0
  53. package/build/examples/workflows/assembly-line/worker.d.ts +13 -0
  54. package/build/examples/workflows/assembly-line/worker.js +81 -0
  55. package/build/index.d.ts +4 -0
  56. package/build/index.js +6 -1
  57. package/build/lib/db/schemas/004_workflow_sets.sql +29 -0
  58. package/build/lib/db/schemas/005_unique_graph_topic.sql +7 -0
  59. package/build/lib/db/schemas/011_system_workflow_configs.sql +7 -0
  60. package/build/lib/events/callback.d.ts +41 -0
  61. package/build/lib/events/callback.js +98 -0
  62. package/build/modules/config.js +1 -1
  63. package/build/routes/auth.js +37 -36
  64. package/build/routes/bot-accounts.js +34 -164
  65. package/build/routes/controlplane.js +20 -60
  66. package/build/routes/dba.js +18 -28
  67. package/build/routes/escalations/bulk.js +17 -192
  68. package/build/routes/escalations/list.js +51 -75
  69. package/build/routes/escalations/resolve.js +3 -193
  70. package/build/routes/escalations/single.js +13 -122
  71. package/build/routes/exports.js +44 -95
  72. package/build/routes/index.js +2 -0
  73. package/build/routes/insight.js +46 -88
  74. package/build/routes/maintenance.js +41 -17
  75. package/build/routes/mcp-runs.js +52 -60
  76. package/build/routes/mcp.js +49 -177
  77. package/build/routes/namespaces.js +9 -20
  78. package/build/routes/roles.js +23 -97
  79. package/build/routes/settings.js +37 -25
  80. package/build/routes/tasks.js +28 -64
  81. package/build/routes/users.js +24 -113
  82. package/build/routes/workflow-sets.d.ts +2 -0
  83. package/build/routes/workflow-sets.js +98 -0
  84. package/build/routes/workflows/config.js +23 -57
  85. package/build/routes/workflows/discovery.js +11 -85
  86. package/build/routes/workflows/invocation.js +28 -90
  87. package/build/routes/yaml-workflows/cron.js +12 -61
  88. package/build/routes/yaml-workflows/crud.js +30 -223
  89. package/build/routes/yaml-workflows/deployment.js +15 -115
  90. package/build/routes/yaml-workflows/versions.js +20 -58
  91. package/build/sdk/index.d.ts +338 -0
  92. package/build/sdk/index.js +299 -0
  93. package/build/services/controlplane/index.d.ts +1 -2
  94. package/build/services/controlplane/index.js +3 -3
  95. package/build/services/controlplane/sql.d.ts +2 -2
  96. package/build/services/controlplane/sql.js +4 -5
  97. package/build/services/controlplane/types.d.ts +1 -0
  98. package/build/services/export/index.js +6 -1
  99. package/build/services/hotmesh-utils.js +2 -4
  100. package/build/services/insight/index.d.ts +7 -0
  101. package/build/services/insight/index.js +30 -0
  102. package/build/services/mcp/client/tools.js +13 -1
  103. package/build/services/mcp-runs/sql.js +1 -1
  104. package/build/services/workflow-invocation.d.ts +15 -2
  105. package/build/services/workflow-invocation.js +11 -6
  106. package/build/services/workflow-sets/db.d.ts +16 -0
  107. package/build/services/workflow-sets/db.js +78 -0
  108. package/build/services/workflow-sets/index.d.ts +1 -0
  109. package/build/services/workflow-sets/index.js +11 -0
  110. package/build/services/workflow-sets/sql.d.ts +6 -0
  111. package/build/services/workflow-sets/sql.js +24 -0
  112. package/build/services/yaml-workflow/db-utils.d.ts +1 -0
  113. package/build/services/yaml-workflow/db-utils.js +4 -0
  114. package/build/services/yaml-workflow/db.d.ts +5 -0
  115. package/build/services/yaml-workflow/db.js +17 -0
  116. package/build/services/yaml-workflow/pipeline/build/wiring.js +14 -1
  117. package/build/services/yaml-workflow/pipeline/prompts.d.ts +1 -1
  118. package/build/services/yaml-workflow/pipeline/prompts.js +1 -1
  119. package/build/services/yaml-workflow/sql.d.ts +2 -1
  120. package/build/services/yaml-workflow/sql.js +8 -3
  121. package/build/services/yaml-workflow/types.d.ts +3 -0
  122. package/build/services/yaml-workflow/workers/callbacks.js +7 -1
  123. package/build/services/yaml-workflow/workers/register.js +7 -0
  124. package/build/start/adapters.js +4 -0
  125. package/build/system/index.js +6 -0
  126. package/build/system/mcp-servers/knowledge.js +1 -1
  127. package/build/system/seed/server-definitions.js +2 -1
  128. package/build/system/workflows/mcp-workflow-builder/activities/index.d.ts +1 -1
  129. package/build/system/workflows/mcp-workflow-builder/activities/index.js +2 -1
  130. package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.d.ts +6 -0
  131. package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.js +26 -0
  132. package/build/system/workflows/mcp-workflow-builder/index.js +26 -2
  133. package/build/system/workflows/mcp-workflow-builder/prompts.js +104 -35
  134. package/build/system/workflows/mcp-workflow-planner/activities/analyze.d.ts +11 -0
  135. package/build/system/workflows/mcp-workflow-planner/activities/analyze.js +36 -0
  136. package/build/system/workflows/mcp-workflow-planner/activities/index.d.ts +3 -0
  137. package/build/system/workflows/mcp-workflow-planner/activities/index.js +12 -0
  138. package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +19 -0
  139. package/build/system/workflows/mcp-workflow-planner/activities/persist.js +55 -0
  140. package/build/system/workflows/mcp-workflow-planner/activities/plan.d.ts +10 -0
  141. package/build/system/workflows/mcp-workflow-planner/activities/plan.js +43 -0
  142. package/build/system/workflows/mcp-workflow-planner/index.d.ts +7 -0
  143. package/build/system/workflows/mcp-workflow-planner/index.js +152 -0
  144. package/build/system/workflows/mcp-workflow-planner/prompts.d.ts +7 -0
  145. package/build/system/workflows/mcp-workflow-planner/prompts.js +77 -0
  146. package/build/tsconfig.tsbuildinfo +1 -1
  147. package/build/types/index.d.ts +1 -0
  148. package/build/types/sdk.d.ts +27 -0
  149. package/build/types/sdk.js +2 -0
  150. package/build/types/workflow-set.d.ts +44 -0
  151. package/build/types/workflow-set.js +5 -0
  152. package/dashboard/dist/assets/{AdminDashboard-BXkKGkb5.js → AdminDashboard-B15jSEV2.js} +2 -2
  153. package/dashboard/dist/assets/{AdminDashboard-BXkKGkb5.js.map → AdminDashboard-B15jSEV2.js.map} +1 -1
  154. package/dashboard/dist/assets/{AvailableEscalationsPage-DcH592mc.js → AvailableEscalationsPage-0V2yvKak.js} +2 -2
  155. package/dashboard/dist/assets/{AvailableEscalationsPage-DcH592mc.js.map → AvailableEscalationsPage-0V2yvKak.js.map} +1 -1
  156. package/dashboard/dist/assets/BotPicker-B4UxHcek.js +2 -0
  157. package/dashboard/dist/assets/{BotPicker-A6LtzyuO.js.map → BotPicker-B4UxHcek.js.map} +1 -1
  158. package/dashboard/dist/assets/{CollapsibleSection-C7nL2_mv.js → CollapsibleSection-BBexNWVd.js} +2 -2
  159. package/dashboard/dist/assets/{CollapsibleSection-C7nL2_mv.js.map → CollapsibleSection-BBexNWVd.js.map} +1 -1
  160. package/dashboard/dist/assets/{ConfirmDeleteModal-CWFwJrSl.js → ConfirmDeleteModal-DlPDJSq_.js} +2 -2
  161. package/dashboard/dist/assets/{ConfirmDeleteModal-CWFwJrSl.js.map → ConfirmDeleteModal-DlPDJSq_.js.map} +1 -1
  162. package/dashboard/dist/assets/{CopyableId-DbZ5c3jh.js → CopyableId-BxHW1ahb.js} +2 -2
  163. package/dashboard/dist/assets/{CopyableId-DbZ5c3jh.js.map → CopyableId-BxHW1ahb.js.map} +1 -1
  164. package/dashboard/dist/assets/{CredentialsPage-ClWkmLPu.js → CredentialsPage-Bp_Y1Szk.js} +2 -2
  165. package/dashboard/dist/assets/{CredentialsPage-ClWkmLPu.js.map → CredentialsPage-Bp_Y1Szk.js.map} +1 -1
  166. package/dashboard/dist/assets/{CustomDurationPicker-CtH2hReF.js → CustomDurationPicker-ByBFqXSO.js} +2 -2
  167. package/dashboard/dist/assets/{CustomDurationPicker-CtH2hReF.js.map → CustomDurationPicker-ByBFqXSO.js.map} +1 -1
  168. package/dashboard/dist/assets/{DataTable-CM5ZcpPi.js → DataTable-DyIXg-tQ.js} +2 -2
  169. package/dashboard/dist/assets/{DataTable-CM5ZcpPi.js.map → DataTable-DyIXg-tQ.js.map} +1 -1
  170. package/dashboard/dist/assets/{ElapsedCell-CwqavyeC.js → ElapsedCell-BgnA0qpS.js} +2 -2
  171. package/dashboard/dist/assets/{ElapsedCell-CwqavyeC.js.map → ElapsedCell-BgnA0qpS.js.map} +1 -1
  172. package/dashboard/dist/assets/{EmptyState-BBn78pmm.js → EmptyState-DlMImvgm.js} +2 -2
  173. package/dashboard/dist/assets/{EmptyState-BBn78pmm.js.map → EmptyState-DlMImvgm.js.map} +1 -1
  174. package/dashboard/dist/assets/{EscalationsOverview-BcJ2E3X7.js → EscalationsOverview-D90kdfw1.js} +2 -2
  175. package/dashboard/dist/assets/{EscalationsOverview-BcJ2E3X7.js.map → EscalationsOverview-D90kdfw1.js.map} +1 -1
  176. package/dashboard/dist/assets/{EventTable-C1en_KZ0.js → EventTable-BNxtlgNz.js} +2 -2
  177. package/dashboard/dist/assets/{EventTable-C1en_KZ0.js.map → EventTable-BNxtlgNz.js.map} +1 -1
  178. package/dashboard/dist/assets/{FilterBar-CZTlrLQT.js → FilterBar-BTiaAhCx.js} +2 -2
  179. package/dashboard/dist/assets/{FilterBar-CZTlrLQT.js.map → FilterBar-BTiaAhCx.js.map} +1 -1
  180. package/dashboard/dist/assets/{ListToolbar-Cdbsapig.js → ListToolbar-BUcagSCn.js} +2 -2
  181. package/dashboard/dist/assets/{ListToolbar-Cdbsapig.js.map → ListToolbar-BUcagSCn.js.map} +1 -1
  182. package/dashboard/dist/assets/{McpOverview-CSpEJxKa.js → McpOverview-B-tCvz8C.js} +2 -2
  183. package/dashboard/dist/assets/{McpOverview-CSpEJxKa.js.map → McpOverview-B-tCvz8C.js.map} +1 -1
  184. package/dashboard/dist/assets/McpQueryDetailPage-DPlF1wYb.js +5 -0
  185. package/dashboard/dist/assets/McpQueryDetailPage-DPlF1wYb.js.map +1 -0
  186. package/dashboard/dist/assets/McpQueryPage-Bz7AdcfR.js +2 -0
  187. package/dashboard/dist/assets/McpQueryPage-Bz7AdcfR.js.map +1 -0
  188. package/dashboard/dist/assets/{McpRunDetailPage-9xdxgG4d.js → McpRunDetailPage-Di_qpL2V.js} +2 -2
  189. package/dashboard/dist/assets/{McpRunDetailPage-9xdxgG4d.js.map → McpRunDetailPage-Di_qpL2V.js.map} +1 -1
  190. package/dashboard/dist/assets/{McpRunsPage-wWLqHsd4.js → McpRunsPage-BBgybBEa.js} +2 -2
  191. package/dashboard/dist/assets/{McpRunsPage-wWLqHsd4.js.map → McpRunsPage-BBgybBEa.js.map} +1 -1
  192. package/dashboard/dist/assets/{Modal-kB_P7ZOr.js → Modal-CaJ0gTEa.js} +2 -2
  193. package/dashboard/dist/assets/{Modal-kB_P7ZOr.js.map → Modal-CaJ0gTEa.js.map} +1 -1
  194. package/dashboard/dist/assets/OperatorDashboard-DDfMmrmR.js +2 -0
  195. package/dashboard/dist/assets/{OperatorDashboard-jc0vrgDI.js.map → OperatorDashboard-DDfMmrmR.js.map} +1 -1
  196. package/dashboard/dist/assets/{PageHeader-NkOeBR05.js → PageHeader-C5D-G5rp.js} +2 -2
  197. package/dashboard/dist/assets/{PageHeader-NkOeBR05.js.map → PageHeader-C5D-G5rp.js.map} +1 -1
  198. package/dashboard/dist/assets/{PageHeaderWithStats-ywNhrmFK.js → PageHeaderWithStats-DCa2eZh2.js} +2 -2
  199. package/dashboard/dist/assets/{PageHeaderWithStats-ywNhrmFK.js.map → PageHeaderWithStats-DCa2eZh2.js.map} +1 -1
  200. package/dashboard/dist/assets/{PriorityBadge-B2MQbSxy.js → PriorityBadge-DTHq6OUZ.js} +2 -2
  201. package/dashboard/dist/assets/{PriorityBadge-B2MQbSxy.js.map → PriorityBadge-DTHq6OUZ.js.map} +1 -1
  202. package/dashboard/dist/assets/{ProcessDetailPage-B7z7IdqE.js → ProcessDetailPage-fC4dhrd0.js} +2 -2
  203. package/dashboard/dist/assets/{ProcessDetailPage-B7z7IdqE.js.map → ProcessDetailPage-fC4dhrd0.js.map} +1 -1
  204. package/dashboard/dist/assets/{ProcessesListPage-C-uHadO6.js → ProcessesListPage-CL2MY8uD.js} +2 -2
  205. package/dashboard/dist/assets/{ProcessesListPage-C-uHadO6.js.map → ProcessesListPage-CL2MY8uD.js.map} +1 -1
  206. package/dashboard/dist/assets/{RolePill-C1dgC-fK.js → RolePill-kgKPANly.js} +2 -2
  207. package/dashboard/dist/assets/{RolePill-C1dgC-fK.js.map → RolePill-kgKPANly.js.map} +1 -1
  208. package/dashboard/dist/assets/{RolesPage-BSxrD1vm.js → RolesPage-Be2lXTHD.js} +2 -2
  209. package/dashboard/dist/assets/{RolesPage-BSxrD1vm.js.map → RolesPage-Be2lXTHD.js.map} +1 -1
  210. package/dashboard/dist/assets/{RowActions-lYaHGI-v.js → RowActions-DIzJCwqR.js} +2 -2
  211. package/dashboard/dist/assets/{RowActions-lYaHGI-v.js.map → RowActions-DIzJCwqR.js.map} +1 -1
  212. package/dashboard/dist/assets/{StatCard-v2TiITVr.js → StatCard-CRi2Jy6t.js} +2 -2
  213. package/dashboard/dist/assets/{StatCard-v2TiITVr.js.map → StatCard-CRi2Jy6t.js.map} +1 -1
  214. package/dashboard/dist/assets/{StatusBadge-DWlxevgG.js → StatusBadge-BETI_8Mr.js} +2 -2
  215. package/dashboard/dist/assets/{StatusBadge-DWlxevgG.js.map → StatusBadge-BETI_8Mr.js.map} +1 -1
  216. package/dashboard/dist/assets/{StepIndicator-CRM4ft28.js → StepIndicator-DjpMqCjz.js} +2 -2
  217. package/dashboard/dist/assets/{StepIndicator-CRM4ft28.js.map → StepIndicator-DjpMqCjz.js.map} +1 -1
  218. package/dashboard/dist/assets/{StickyPagination-CF0EToEU.js → StickyPagination-BZbExQ9t.js} +2 -2
  219. package/dashboard/dist/assets/{StickyPagination-CF0EToEU.js.map → StickyPagination-BZbExQ9t.js.map} +1 -1
  220. package/dashboard/dist/assets/{SwimlaneTimeline-CNlj7fgg.js → SwimlaneTimeline-DZthQyhR.js} +2 -2
  221. package/dashboard/dist/assets/{SwimlaneTimeline-CNlj7fgg.js.map → SwimlaneTimeline-DZthQyhR.js.map} +1 -1
  222. package/dashboard/dist/assets/{TagInput-CH8qMGhC.js → TagInput-CukbOfYn.js} +2 -2
  223. package/dashboard/dist/assets/{TagInput-CH8qMGhC.js.map → TagInput-CukbOfYn.js.map} +1 -1
  224. package/dashboard/dist/assets/{TaskDetailPage-CdWo-6mu.js → TaskDetailPage-CIZHIKo9.js} +2 -2
  225. package/dashboard/dist/assets/{TaskDetailPage-CdWo-6mu.js.map → TaskDetailPage-CIZHIKo9.js.map} +1 -1
  226. package/dashboard/dist/assets/{TaskQueuePill-BPj4ogVG.js → TaskQueuePill-Q7DGoysj.js} +2 -2
  227. package/dashboard/dist/assets/{TaskQueuePill-BPj4ogVG.js.map → TaskQueuePill-Q7DGoysj.js.map} +1 -1
  228. package/dashboard/dist/assets/{TasksListPage-CtRkMpKU.js → TasksListPage-CsC9wjb0.js} +2 -2
  229. package/dashboard/dist/assets/{TasksListPage-CtRkMpKU.js.map → TasksListPage-CsC9wjb0.js.map} +1 -1
  230. package/dashboard/dist/assets/{TimeAgo-Di1a3X5P.js → TimeAgo-BcOOnJeH.js} +2 -2
  231. package/dashboard/dist/assets/{TimeAgo-Di1a3X5P.js.map → TimeAgo-BcOOnJeH.js.map} +1 -1
  232. package/dashboard/dist/assets/{TimestampCell-CqrXql-S.js → TimestampCell-CEMapYDQ.js} +2 -2
  233. package/dashboard/dist/assets/{TimestampCell-CqrXql-S.js.map → TimestampCell-CEMapYDQ.js.map} +1 -1
  234. package/dashboard/dist/assets/{UserName-BUFYCnRa.js → UserName-BHoN7iRL.js} +2 -2
  235. package/dashboard/dist/assets/{UserName-BUFYCnRa.js.map → UserName-BHoN7iRL.js.map} +1 -1
  236. package/dashboard/dist/assets/{WorkflowExecutionPage-25iusMml.js → WorkflowExecutionPage-DawKl1LT.js} +2 -2
  237. package/dashboard/dist/assets/{WorkflowExecutionPage-25iusMml.js.map → WorkflowExecutionPage-DawKl1LT.js.map} +1 -1
  238. package/dashboard/dist/assets/WorkflowPill-CP84Vqeg.js +2 -0
  239. package/dashboard/dist/assets/{WorkflowPill-DPKOcbf4.js.map → WorkflowPill-CP84Vqeg.js.map} +1 -1
  240. package/dashboard/dist/assets/{WorkflowsDashboard-BgxslssH.js → WorkflowsDashboard-QrvVFxtQ.js} +2 -2
  241. package/dashboard/dist/assets/{WorkflowsDashboard-BgxslssH.js.map → WorkflowsDashboard-QrvVFxtQ.js.map} +1 -1
  242. package/dashboard/dist/assets/{WorkflowsOverview-Doe5L-Re.js → WorkflowsOverview-DuhAi_OY.js} +2 -2
  243. package/dashboard/dist/assets/{WorkflowsOverview-Doe5L-Re.js.map → WorkflowsOverview-DuhAi_OY.js.map} +1 -1
  244. package/dashboard/dist/assets/YamlWorkflowsPage-Dc9xw82a.js +2 -0
  245. package/dashboard/dist/assets/YamlWorkflowsPage-Dc9xw82a.js.map +1 -0
  246. package/dashboard/dist/assets/{bots-Bi2_O1Ts.js → bots-Dny-rmmI.js} +2 -2
  247. package/dashboard/dist/assets/{bots-Bi2_O1Ts.js.map → bots-Dny-rmmI.js.map} +1 -1
  248. package/dashboard/dist/assets/{escalation-Ck1KlLkT.js → escalation-CV0sKNH5.js} +2 -2
  249. package/dashboard/dist/assets/{escalation-Ck1KlLkT.js.map → escalation-CV0sKNH5.js.map} +1 -1
  250. package/dashboard/dist/assets/{escalation-columns-ohDsj2eJ.js → escalation-columns-30CKyoWI.js} +2 -2
  251. package/dashboard/dist/assets/{escalation-columns-ohDsj2eJ.js.map → escalation-columns-30CKyoWI.js.map} +1 -1
  252. package/dashboard/dist/assets/{helpers-BoD2SgUY.js → helpers-C1-30CzH.js} +2 -2
  253. package/dashboard/dist/assets/{helpers-BoD2SgUY.js.map → helpers-C1-30CzH.js.map} +1 -1
  254. package/dashboard/dist/assets/helpers-C1jaRD-d.js +2 -0
  255. package/dashboard/dist/assets/helpers-C1jaRD-d.js.map +1 -0
  256. package/dashboard/dist/assets/{index-FuohTtaM.js → index-BUVQ6wmy.js} +3 -3
  257. package/dashboard/dist/assets/{index-FuohTtaM.js.map → index-BUVQ6wmy.js.map} +1 -1
  258. package/dashboard/dist/assets/index-CxVB7F4X.js +2 -0
  259. package/dashboard/dist/assets/{index-Dk2Q51o0.js.map → index-CxVB7F4X.js.map} +1 -1
  260. package/dashboard/dist/assets/{index-BEtLIsML.js → index-D-oCWCAS.js} +2 -2
  261. package/dashboard/dist/assets/{index-BEtLIsML.js.map → index-D-oCWCAS.js.map} +1 -1
  262. package/dashboard/dist/assets/index-D0wPM3Ck.js +2 -0
  263. package/dashboard/dist/assets/{index-BpT-6WgJ.js.map → index-D0wPM3Ck.js.map} +1 -1
  264. package/dashboard/dist/assets/{index-Bn2xHDr8.js → index-DHgnkykj.js} +3 -3
  265. package/dashboard/dist/assets/{index-Bn2xHDr8.js.map → index-DHgnkykj.js.map} +1 -1
  266. package/dashboard/dist/assets/{index-D3NyVADW.js → index-D_aJBEAG.js} +2 -2
  267. package/dashboard/dist/assets/index-D_aJBEAG.js.map +1 -0
  268. package/dashboard/dist/assets/{index-PyCTS05D.css → index-DcIKW-cZ.css} +1 -1
  269. package/dashboard/dist/assets/{index-CZrJ09p-.js → index-Dd_U4mLm.js} +2 -2
  270. package/dashboard/dist/assets/{index-CZrJ09p-.js.map → index-Dd_U4mLm.js.map} +1 -1
  271. package/dashboard/dist/assets/{index-DYyLF-Qb.js → index-DnmZbNxk.js} +8 -8
  272. package/dashboard/dist/assets/index-DnmZbNxk.js.map +1 -0
  273. package/dashboard/dist/assets/index-_RBvi7s6.js +2 -0
  274. package/dashboard/dist/assets/{index-D7zYZOnH.js.map → index-_RBvi7s6.js.map} +1 -1
  275. package/dashboard/dist/assets/index-n7td8zgX.js +17 -0
  276. package/dashboard/dist/assets/{index-DOkHXmyf.js.map → index-n7td8zgX.js.map} +1 -1
  277. package/dashboard/dist/assets/{mcp-CJtYjA7A.js → mcp-CRFr4L9W.js} +2 -2
  278. package/dashboard/dist/assets/{mcp-CJtYjA7A.js.map → mcp-CRFr4L9W.js.map} +1 -1
  279. package/dashboard/dist/assets/mcp-query-DHY2mZBQ.js +2 -0
  280. package/dashboard/dist/assets/mcp-query-DHY2mZBQ.js.map +1 -0
  281. package/dashboard/dist/assets/{mcp-runs-DUWm9Z4V.js → mcp-runs-BqPHqwAO.js} +2 -2
  282. package/dashboard/dist/assets/{mcp-runs-DUWm9Z4V.js.map → mcp-runs-BqPHqwAO.js.map} +1 -1
  283. package/dashboard/dist/assets/{namespaces-BM5P2qmL.js → namespaces-TG1aIpo_.js} +2 -2
  284. package/dashboard/dist/assets/{namespaces-BM5P2qmL.js.map → namespaces-TG1aIpo_.js.map} +1 -1
  285. package/dashboard/dist/assets/{roles-lv0shpjJ.js → roles-DhhLTvXg.js} +2 -2
  286. package/dashboard/dist/assets/{roles-lv0shpjJ.js.map → roles-DhhLTvXg.js.map} +1 -1
  287. package/dashboard/dist/assets/{settings-Wlq92mRo.js → settings-D9MBzEeB.js} +2 -2
  288. package/dashboard/dist/assets/{settings-Wlq92mRo.js.map → settings-D9MBzEeB.js.map} +1 -1
  289. package/dashboard/dist/assets/{tasks-BFGm4PuE.js → tasks-BxmcZoev.js} +2 -2
  290. package/dashboard/dist/assets/{tasks-BFGm4PuE.js.map → tasks-BxmcZoev.js.map} +1 -1
  291. package/dashboard/dist/assets/{useEventHooks-DIE6ue4x.js → useEventHooks-BylecvvI.js} +2 -2
  292. package/dashboard/dist/assets/{useEventHooks-DIE6ue4x.js.map → useEventHooks-BylecvvI.js.map} +1 -1
  293. package/dashboard/dist/assets/{useYamlActivityEvents-DCwSO73t.js → useYamlActivityEvents-ocmj11e_.js} +2 -2
  294. package/dashboard/dist/assets/{useYamlActivityEvents-DCwSO73t.js.map → useYamlActivityEvents-ocmj11e_.js.map} +1 -1
  295. package/dashboard/dist/assets/{users-tA5-K0wA.js → users-Ce5r-JAv.js} +2 -2
  296. package/dashboard/dist/assets/{users-tA5-K0wA.js.map → users-Ce5r-JAv.js.map} +1 -1
  297. package/dashboard/dist/assets/{vendor-icons-BiIug1SK.js → vendor-icons-D1DdudfH.js} +93 -73
  298. package/dashboard/dist/assets/vendor-icons-D1DdudfH.js.map +1 -0
  299. package/dashboard/dist/assets/{workflows-CfLc15Wr.js → workflows-ykIeVbRJ.js} +2 -2
  300. package/dashboard/dist/assets/{workflows-CfLc15Wr.js.map → workflows-ykIeVbRJ.js.map} +1 -1
  301. package/dashboard/dist/assets/yaml-workflows-WypmKYht.js +2 -0
  302. package/dashboard/dist/assets/yaml-workflows-WypmKYht.js.map +1 -0
  303. package/dashboard/dist/index.html +3 -3
  304. package/docs/api/sdk/auth.md +27 -0
  305. package/docs/api/sdk/bot-accounts.md +243 -0
  306. package/docs/api/sdk/controlplane.md +103 -0
  307. package/docs/api/sdk/dba.md +52 -0
  308. package/docs/api/sdk/escalations.md +374 -0
  309. package/docs/api/sdk/events.md +68 -0
  310. package/docs/api/sdk/exports.md +124 -0
  311. package/docs/api/sdk/insight.md +112 -0
  312. package/docs/api/sdk/maintenance.md +54 -0
  313. package/docs/api/sdk/mcp-runs.md +71 -0
  314. package/docs/api/sdk/mcp.md +250 -0
  315. package/docs/api/sdk/namespaces.md +43 -0
  316. package/docs/api/sdk/roles.md +183 -0
  317. package/docs/api/sdk/settings.md +24 -0
  318. package/docs/api/sdk/tasks.md +120 -0
  319. package/docs/api/sdk/users.md +196 -0
  320. package/docs/api/sdk/workflow-sets.md +135 -0
  321. package/docs/api/sdk/workflows.md +271 -0
  322. package/docs/api/sdk/yaml-workflows.md +408 -0
  323. package/docs/events.md +28 -0
  324. package/docs/sdk.md +177 -0
  325. package/docs/story.md +157 -0
  326. package/package.json +3 -2
  327. package/build/routes/escalations/helpers.d.ts +0 -5
  328. package/build/routes/resolve.d.ts +0 -9
  329. package/build/routes/resolve.js +0 -19
  330. package/build/routes/yaml-workflows/helpers.d.ts +0 -2
  331. package/build/routes/yaml-workflows/helpers.js +0 -8
  332. package/dashboard/dist/assets/BotPicker-A6LtzyuO.js +0 -2
  333. package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js +0 -5
  334. package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js.map +0 -1
  335. package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js +0 -2
  336. package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js.map +0 -1
  337. package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js +0 -2
  338. package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js +0 -2
  339. package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js.map +0 -1
  340. package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js +0 -2
  341. package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js +0 -2
  342. package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js.map +0 -1
  343. package/dashboard/dist/assets/index-BpT-6WgJ.js +0 -2
  344. package/dashboard/dist/assets/index-D3NyVADW.js.map +0 -1
  345. package/dashboard/dist/assets/index-D7zYZOnH.js +0 -2
  346. package/dashboard/dist/assets/index-DOkHXmyf.js +0 -17
  347. package/dashboard/dist/assets/index-DYyLF-Qb.js.map +0 -1
  348. package/dashboard/dist/assets/index-Dk2Q51o0.js +0 -2
  349. package/dashboard/dist/assets/mcp-query-jQJQrs_7.js +0 -2
  350. package/dashboard/dist/assets/mcp-query-jQJQrs_7.js.map +0 -1
  351. package/dashboard/dist/assets/vendor-icons-BiIug1SK.js.map +0 -1
  352. package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js +0 -2
  353. package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js.map +0 -1
  354. package/docs/img/01-login.png +0 -0
  355. package/docs/img/02-dashboard-home.png +0 -0
  356. package/docs/img/03-processes-list.png +0 -0
  357. package/docs/img/04-escalations-list.png +0 -0
  358. package/docs/img/05-mcp-servers.png +0 -0
  359. package/docs/img/06-mcp-pipelines.png +0 -0
  360. package/docs/img/07-workflows-list.png +0 -0
  361. package/docs/img/compilation/01-query-submit.png +0 -0
  362. package/docs/img/compilation/02-mcp-servers.png +0 -0
  363. package/docs/img/compilation/03-query-completed.png +0 -0
  364. package/docs/img/compilation/04-wizard-original.png +0 -0
  365. package/docs/img/compilation/05-wizard-timeline.png +0 -0
  366. package/docs/img/compilation/06-wizard-profile.png +0 -0
  367. package/docs/img/compilation/07-wizard-deploy.png +0 -0
  368. package/docs/img/compilation/08-wizard-test-modal.png +0 -0
  369. package/docs/img/compilation/09-wizard-test-compare.png +0 -0
  370. package/docs/img/compilation/10-wizard-verify.png +0 -0
  371. /package/docs/api/{dba.md → http/dba.md} +0 -0
  372. /package/docs/api/{escalations.md → http/escalations.md} +0 -0
  373. /package/docs/api/{exports.md → http/exports.md} +0 -0
  374. /package/docs/api/{maintenance.md → http/maintenance.md} +0 -0
  375. /package/docs/api/{mcp-runs.md → http/mcp-runs.md} +0 -0
  376. /package/docs/api/{mcp-servers.md → http/mcp-servers.md} +0 -0
  377. /package/docs/api/{namespaces.md → http/namespaces.md} +0 -0
  378. /package/docs/api/{roles.md → http/roles.md} +0 -0
  379. /package/docs/api/{service-accounts.md → http/service-accounts.md} +0 -0
  380. /package/docs/api/{settings.md → http/settings.md} +0 -0
  381. /package/docs/api/{tasks.md → http/tasks.md} +0 -0
  382. /package/docs/api/{users.md → http/users.md} +0 -0
  383. /package/docs/api/{workflows.md → http/workflows.md} +0 -0
  384. /package/docs/api/{yaml-workflows.md → http/yaml-workflows.md} +0 -0
@@ -34,35 +34,24 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const express_1 = require("express");
37
- const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
38
- const yamlGenerator = __importStar(require("../../services/yaml-workflow/generator"));
39
- const task_1 = require("../../services/task");
40
- const helpers_1 = require("./helpers");
37
+ const api = __importStar(require("../../api/yaml-workflows"));
41
38
  const router = (0, express_1.Router)();
42
39
  /**
43
40
  * GET /api/yaml-workflows
44
41
  * List YAML workflows with optional status filter.
45
42
  */
46
43
  router.get('/', async (req, res) => {
47
- try {
48
- const result = await yamlDb.listYamlWorkflows({
49
- status: req.query.status,
50
- graph_topic: req.query.graph_topic,
51
- app_id: req.query.app_id,
52
- search: req.query.search,
53
- source_workflow_id: req.query.source_workflow_id,
54
- limit: req.query.limit ? parseInt(req.query.limit, 10) : undefined,
55
- offset: req.query.offset ? parseInt(req.query.offset, 10) : undefined,
56
- });
57
- res.json(result);
58
- }
59
- catch (err) {
60
- if ((0, helpers_1.isNotFoundError)(err)) {
61
- res.status(404).json({ error: 'YAML workflow not found' });
62
- return;
63
- }
64
- res.status(500).json({ error: err.message });
65
- }
44
+ const result = await api.listYamlWorkflows({
45
+ status: req.query.status,
46
+ graph_topic: req.query.graph_topic,
47
+ app_id: req.query.app_id,
48
+ search: req.query.search,
49
+ source_workflow_id: req.query.source_workflow_id,
50
+ set_id: req.query.set_id,
51
+ limit: req.query.limit ? parseInt(req.query.limit, 10) : undefined,
52
+ offset: req.query.offset ? parseInt(req.query.offset, 10) : undefined,
53
+ });
54
+ res.status(result.status).json(result.data ?? { error: result.error });
66
55
  });
67
56
  /**
68
57
  * POST /api/yaml-workflows
@@ -70,82 +59,16 @@ router.get('/', async (req, res) => {
70
59
  * Body: { workflow_id, task_queue, workflow_name, name, description? }
71
60
  */
72
61
  router.post('/', async (req, res) => {
73
- try {
74
- const { workflow_id, task_queue, workflow_name, name, description, app_id, subscribes, tags: userTags, compilation_feedback } = req.body;
75
- if (!workflow_id || !task_queue || !workflow_name || !name) {
76
- res.status(400).json({
77
- error: 'workflow_id, task_queue, workflow_name, and name are required',
78
- });
79
- return;
80
- }
81
- // Reject compilation of executions that exhausted their tool rounds —
82
- // the trace is incomplete and would produce a broken workflow.
83
- const task = await (0, task_1.getTaskByWorkflowId)(workflow_id);
84
- if (task) {
85
- const milestones = task.milestones ?? [];
86
- const roundsExhausted = milestones.some((m) => m.name === 'rounds_exhausted');
87
- if (roundsExhausted) {
88
- res.status(422).json({
89
- error: 'Cannot compile: the source execution exhausted its tool rounds without completing the task. Resolve the escalation and resubmit.',
90
- });
91
- return;
92
- }
93
- }
94
- // Generate YAML from execution
95
- const result = await yamlGenerator.generateYamlFromExecution({
96
- workflowId: workflow_id,
97
- taskQueue: task_queue,
98
- workflowName: workflow_name,
99
- name,
100
- description,
101
- appId: app_id,
102
- subscribes,
103
- compilationFeedback: compilation_feedback,
104
- });
105
- // Merge auto-derived tags with user-provided tags
106
- const mergedTags = [...new Set([...(result.tags || []), ...(Array.isArray(userTags) ? userTags : [])])];
107
- // Store in DB
108
- const record = await yamlDb.createYamlWorkflow({
109
- name,
110
- description,
111
- app_id: result.appId,
112
- yaml_content: result.yaml,
113
- graph_topic: result.graphTopic,
114
- input_schema: result.inputSchema,
115
- output_schema: result.outputSchema,
116
- activity_manifest: result.activityManifest,
117
- tags: mergedTags,
118
- source_workflow_id: workflow_id,
119
- source_workflow_type: workflow_name,
120
- original_prompt: result.originalPrompt || undefined,
121
- category: result.category || undefined,
122
- metadata: {
123
- input_field_meta: result.inputFieldMeta,
124
- ...(result.validationIssues?.length ? { validation_warnings: result.validationIssues } : {}),
125
- },
126
- });
127
- res.status(201).json(record);
128
- }
129
- catch (err) {
130
- if (err.message?.includes('duplicate key') || err.code === '23505') {
131
- res.status(409).json({ error: 'A tool with that name already exists' });
132
- return;
133
- }
134
- res.status(500).json({ error: err.message });
135
- }
62
+ const result = await api.createYamlWorkflow(req.body);
63
+ res.status(result.status).json(result.data ?? { error: result.error });
136
64
  });
137
65
  /**
138
66
  * GET /api/yaml-workflows/app-ids
139
67
  * Return distinct app_id values from non-archived workflows.
140
68
  */
141
69
  router.get('/app-ids', async (_req, res) => {
142
- try {
143
- const appIds = await yamlDb.getDistinctAppIds();
144
- res.json({ app_ids: appIds });
145
- }
146
- catch (err) {
147
- res.status(500).json({ error: err.message });
148
- }
70
+ const result = await api.getAppIds();
71
+ res.status(result.status).json(result.data ?? { error: result.error });
149
72
  });
150
73
  /**
151
74
  * POST /api/yaml-workflows/direct
@@ -154,36 +77,8 @@ router.get('/app-ids', async (_req, res) => {
154
77
  * Body: { name, description?, yaml_content, input_schema?, activity_manifest?, tags?, app_id? }
155
78
  */
156
79
  router.post('/direct', async (req, res) => {
157
- try {
158
- const { name, description, yaml_content, input_schema, activity_manifest, tags, app_id, graph_topic } = req.body;
159
- if (!name || !yaml_content) {
160
- res.status(400).json({ error: 'name and yaml_content are required' });
161
- return;
162
- }
163
- // Extract subscribes topic from YAML content, or fall back to name-derived slug
164
- let graphTopic = graph_topic || name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
165
- const subscribesMatch = yaml_content.match(/subscribes:\s*(.+)/);
166
- if (subscribesMatch) {
167
- graphTopic = subscribesMatch[1].trim().replace(/^['"]|['"]$/g, '');
168
- }
169
- const wf = await yamlDb.createYamlWorkflow({
170
- name,
171
- description,
172
- app_id: app_id || 'longtail',
173
- yaml_content,
174
- graph_topic: graphTopic,
175
- input_schema: input_schema || {},
176
- output_schema: {},
177
- activity_manifest: activity_manifest || [],
178
- tags: tags || [],
179
- original_prompt: description,
180
- category: 'builder',
181
- });
182
- res.json(wf);
183
- }
184
- catch (err) {
185
- res.status(500).json({ error: err.message });
186
- }
80
+ const result = await api.createYamlWorkflowDirect(req.body);
81
+ res.status(result.status).json(result.data ?? { error: result.error });
187
82
  });
188
83
  // -- Parameterized routes --
189
84
  /**
@@ -191,42 +86,16 @@ router.post('/direct', async (req, res) => {
191
86
  * Get a single YAML workflow.
192
87
  */
193
88
  router.get('/:id', async (req, res) => {
194
- try {
195
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
196
- if (!wf) {
197
- res.status(404).json({ error: 'YAML workflow not found' });
198
- return;
199
- }
200
- res.json(wf);
201
- }
202
- catch (err) {
203
- if ((0, helpers_1.isNotFoundError)(err)) {
204
- res.status(404).json({ error: 'YAML workflow not found' });
205
- return;
206
- }
207
- res.status(500).json({ error: err.message });
208
- }
89
+ const result = await api.getYamlWorkflow({ id: req.params.id });
90
+ res.status(result.status).json(result.data ?? { error: result.error });
209
91
  });
210
92
  /**
211
93
  * PUT /api/yaml-workflows/:id
212
94
  * Update a YAML workflow's metadata.
213
95
  */
214
96
  router.put('/:id', async (req, res) => {
215
- try {
216
- const wf = await yamlDb.updateYamlWorkflow(req.params.id, req.body);
217
- if (!wf) {
218
- res.status(404).json({ error: 'YAML workflow not found' });
219
- return;
220
- }
221
- res.json(wf);
222
- }
223
- catch (err) {
224
- if ((0, helpers_1.isNotFoundError)(err)) {
225
- res.status(404).json({ error: 'YAML workflow not found' });
226
- return;
227
- }
228
- res.status(500).json({ error: err.message });
229
- }
97
+ const result = await api.updateYamlWorkflow({ id: req.params.id, ...req.body });
98
+ res.status(result.status).json(result.data ?? { error: result.error });
230
99
  });
231
100
  /**
232
101
  * POST /api/yaml-workflows/:id/regenerate
@@ -234,81 +103,19 @@ router.put('/:id', async (req, res) => {
234
103
  * Only allowed for non-archived workflows.
235
104
  */
236
105
  router.post('/:id/regenerate', async (req, res) => {
237
- try {
238
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
239
- if (!wf) {
240
- res.status(404).json({ error: 'YAML workflow not found' });
241
- return;
242
- }
243
- if (wf.status === 'archived') {
244
- res.status(400).json({ error: 'Archived workflows cannot be regenerated' });
245
- return;
246
- }
247
- if (!wf.source_workflow_id || !wf.source_workflow_type) {
248
- res.status(400).json({ error: 'Missing source workflow reference — cannot regenerate' });
249
- return;
250
- }
251
- // Look up task queue from the source task record, or use body override
252
- let taskQueue = req.body.task_queue;
253
- if (!taskQueue) {
254
- const sourceTask = await (0, task_1.getTaskByWorkflowId)(wf.source_workflow_id);
255
- taskQueue = sourceTask?.task_queue || 'v1';
256
- }
257
- const feedback = req.body.compilation_feedback;
258
- const result = await yamlGenerator.generateYamlFromExecution({
259
- workflowId: wf.source_workflow_id,
260
- taskQueue,
261
- workflowName: wf.source_workflow_type,
262
- name: wf.name,
263
- description: wf.description || undefined,
264
- appId: wf.app_id,
265
- compilationFeedback: feedback || undefined,
266
- priorFailedYaml: feedback ? wf.yaml_content : undefined,
267
- });
268
- const updated = await yamlDb.updateYamlWorkflow(wf.id, {
269
- app_id: result.appId,
270
- graph_topic: result.graphTopic,
271
- yaml_content: result.yaml,
272
- input_schema: result.inputSchema,
273
- output_schema: result.outputSchema,
274
- activity_manifest: result.activityManifest,
275
- tags: result.tags,
276
- metadata: { input_field_meta: result.inputFieldMeta },
277
- });
278
- res.json(updated);
279
- }
280
- catch (err) {
281
- if ((0, helpers_1.isNotFoundError)(err)) {
282
- res.status(404).json({ error: 'YAML workflow not found' });
283
- return;
284
- }
285
- res.status(500).json({ error: err.message });
286
- }
106
+ const result = await api.regenerateYamlWorkflow({
107
+ id: req.params.id,
108
+ task_queue: req.body.task_queue,
109
+ compilation_feedback: req.body.compilation_feedback,
110
+ });
111
+ res.status(result.status).json(result.data ?? { error: result.error });
287
112
  });
288
113
  /**
289
114
  * DELETE /api/yaml-workflows/:id
290
115
  * Delete a YAML workflow (must be draft or archived).
291
116
  */
292
117
  router.delete('/:id', async (req, res) => {
293
- try {
294
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
295
- if (!wf) {
296
- res.status(404).json({ error: 'YAML workflow not found' });
297
- return;
298
- }
299
- if (wf.status === 'active' || wf.status === 'deployed') {
300
- res.status(400).json({ error: 'Cannot delete an active or deployed workflow. Archive it first.' });
301
- return;
302
- }
303
- await yamlDb.deleteYamlWorkflow(req.params.id);
304
- res.json({ deleted: true });
305
- }
306
- catch (err) {
307
- if ((0, helpers_1.isNotFoundError)(err)) {
308
- res.status(404).json({ error: 'YAML workflow not found' });
309
- return;
310
- }
311
- res.status(500).json({ error: err.message });
312
- }
118
+ const result = await api.deleteYamlWorkflow({ id: req.params.id });
119
+ res.status(result.status).json(result.data ?? { error: result.error });
313
120
  });
314
121
  exports.default = router;
@@ -34,11 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const express_1 = require("express");
37
- const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
38
- const yamlDeployer = __importStar(require("../../services/yaml-workflow/deployer"));
39
- const yamlWorkers = __importStar(require("../../services/yaml-workflow/workers"));
40
- const invoke_1 = require("../../services/yaml-workflow/invoke");
41
- const helpers_1 = require("./helpers");
37
+ const api = __importStar(require("../../api/yaml-workflows"));
42
38
  const router = (0, express_1.Router)();
43
39
  /**
44
40
  * POST /api/yaml-workflows/:id/deploy
@@ -46,77 +42,16 @@ const router = (0, express_1.Router)();
46
42
  * Bumps the version and deploys all graphs together.
47
43
  */
48
44
  router.post('/:id/deploy', async (req, res) => {
49
- try {
50
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
51
- if (!wf) {
52
- res.status(404).json({ error: 'YAML workflow not found' });
53
- return;
54
- }
55
- // Use the version declared in the YAML (like package.json)
56
- const deployVersion = wf.app_version || '1';
57
- // Deploy + activate merged YAML for the full app_id
58
- const siblings = await yamlDb.listYamlWorkflowsByAppId(wf.app_id);
59
- await yamlDeployer.deployAppId(wf.app_id, deployVersion);
60
- // Register workers and mark all non-archived siblings as active
61
- for (const sibling of siblings) {
62
- await yamlDb.updateYamlWorkflowVersion(sibling.id, deployVersion);
63
- await yamlWorkers.registerWorkersForWorkflow(sibling);
64
- if (sibling.status === 'draft' || sibling.status === 'deployed') {
65
- await yamlDb.updateYamlWorkflowStatus(sibling.id, 'active');
66
- }
67
- }
68
- // Mark content as deployed for the entire app_id
69
- await yamlDb.markAppIdContentDeployed(wf.app_id);
70
- const updated = await yamlDb.getYamlWorkflow(req.params.id);
71
- res.json(updated);
72
- }
73
- catch (err) {
74
- if ((0, helpers_1.isNotFoundError)(err)) {
75
- res.status(404).json({ error: 'YAML workflow not found' });
76
- return;
77
- }
78
- res.status(500).json({
79
- error: err.message,
80
- hint: err.message.includes('Duplicate activity id')
81
- ? 'Colliding activity IDs across workflows. A Claude Code repair was attempted — check server logs. You may need to archive conflicting workflows and recompile.'
82
- : undefined,
83
- });
84
- }
45
+ const result = await api.deployYamlWorkflow({ id: req.params.id });
46
+ res.status(result.status).json(result.data ?? { error: result.error });
85
47
  });
86
48
  /**
87
49
  * POST /api/yaml-workflows/:id/activate
88
50
  * Activate the deployed version for this workflow's app_id and register all workers.
89
51
  */
90
52
  router.post('/:id/activate', async (req, res) => {
91
- try {
92
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
93
- if (!wf) {
94
- res.status(404).json({ error: 'YAML workflow not found' });
95
- return;
96
- }
97
- if (wf.status !== 'deployed' && wf.status !== 'active') {
98
- res.status(400).json({ error: 'Workflow must be deployed before activation' });
99
- return;
100
- }
101
- await yamlDeployer.activateYamlWorkflow(wf.app_id, wf.app_version);
102
- // Register workers for ALL workflows sharing this app_id
103
- const siblings = await yamlDb.listYamlWorkflowsByAppId(wf.app_id);
104
- for (const sibling of siblings) {
105
- await yamlWorkers.registerWorkersForWorkflow(sibling);
106
- if (sibling.status === 'deployed') {
107
- await yamlDb.updateYamlWorkflowStatus(sibling.id, 'active');
108
- }
109
- }
110
- const updated = await yamlDb.getYamlWorkflow(req.params.id);
111
- res.json(updated);
112
- }
113
- catch (err) {
114
- if ((0, helpers_1.isNotFoundError)(err)) {
115
- res.status(404).json({ error: 'YAML workflow not found' });
116
- return;
117
- }
118
- res.status(500).json({ error: err.message });
119
- }
53
+ const result = await api.activateYamlWorkflow({ id: req.params.id });
54
+ res.status(result.status).json(result.data ?? { error: result.error });
120
55
  });
121
56
  /**
122
57
  * POST /api/yaml-workflows/:id/invoke
@@ -124,56 +59,21 @@ router.post('/:id/activate', async (req, res) => {
124
59
  * Body: { data, sync?: boolean }
125
60
  */
126
61
  router.post('/:id/invoke', async (req, res) => {
127
- try {
128
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
129
- if (!wf) {
130
- res.status(404).json({ error: 'YAML workflow not found' });
131
- return;
132
- }
133
- if (wf.status !== 'active') {
134
- res.status(400).json({ error: 'Workflow must be active to invoke' });
135
- return;
136
- }
137
- const result = await (0, invoke_1.invokeYamlWorkflow)(wf, {
138
- data: req.body.data,
139
- sync: req.body.sync,
140
- timeout: req.body.timeout,
141
- execute_as: req.body.execute_as,
142
- userId: req.auth?.userId,
143
- });
144
- res.json(result);
145
- }
146
- catch (err) {
147
- if ((0, helpers_1.isNotFoundError)(err)) {
148
- res.status(404).json({ error: 'YAML workflow not found' });
149
- return;
150
- }
151
- res.status(500).json({ error: err.message });
152
- }
62
+ const result = await api.invokeYamlWorkflow({
63
+ id: req.params.id,
64
+ data: req.body.data,
65
+ sync: req.body.sync,
66
+ timeout: req.body.timeout,
67
+ execute_as: req.body.execute_as,
68
+ }, req.auth?.userId ? { userId: req.auth.userId } : undefined);
69
+ res.status(result.status).json(result.data ?? { error: result.error });
153
70
  });
154
71
  /**
155
72
  * POST /api/yaml-workflows/:id/archive
156
73
  * Archive a YAML workflow (stops accepting new invocations).
157
74
  */
158
75
  router.post('/:id/archive', async (req, res) => {
159
- try {
160
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
161
- if (!wf) {
162
- res.status(404).json({ error: 'YAML workflow not found' });
163
- return;
164
- }
165
- if (wf.status === 'active') {
166
- await yamlDeployer.stopEngine(wf.app_id);
167
- }
168
- const updated = await yamlDb.updateYamlWorkflowStatus(wf.id, 'archived');
169
- res.json(updated);
170
- }
171
- catch (err) {
172
- if ((0, helpers_1.isNotFoundError)(err)) {
173
- res.status(404).json({ error: 'YAML workflow not found' });
174
- return;
175
- }
176
- res.status(500).json({ error: err.message });
177
- }
76
+ const result = await api.archiveYamlWorkflow({ id: req.params.id });
77
+ res.status(result.status).json(result.data ?? { error: result.error });
178
78
  });
179
79
  exports.default = router;
@@ -34,83 +34,45 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const express_1 = require("express");
37
- const yamlDb = __importStar(require("../../services/yaml-workflow/db"));
38
- const helpers_1 = require("./helpers");
37
+ const api = __importStar(require("../../api/yaml-workflows"));
39
38
  const router = (0, express_1.Router)();
40
39
  /**
41
40
  * GET /api/yaml-workflows/:id/versions
42
41
  * Return version history for a YAML workflow.
43
42
  */
44
43
  router.get('/:id/versions', async (req, res) => {
45
- try {
46
- const limit = req.query.limit ? parseInt(req.query.limit, 10) : 20;
47
- const offset = req.query.offset ? parseInt(req.query.offset, 10) : 0;
48
- const result = await yamlDb.getVersionHistory(req.params.id, limit, offset);
49
- res.json(result);
50
- }
51
- catch (err) {
52
- if ((0, helpers_1.isNotFoundError)(err)) {
53
- res.status(404).json({ error: 'YAML workflow not found' });
54
- return;
55
- }
56
- res.status(500).json({ error: err.message });
57
- }
44
+ const result = await api.getVersionHistory({
45
+ id: req.params.id,
46
+ limit: req.query.limit ? parseInt(req.query.limit, 10) : undefined,
47
+ offset: req.query.offset ? parseInt(req.query.offset, 10) : undefined,
48
+ });
49
+ res.status(result.status).json(result.data ?? { error: result.error });
58
50
  });
59
51
  /**
60
52
  * GET /api/yaml-workflows/:id/versions/:version
61
53
  * Return a single version snapshot with YAML, schemas, and manifest.
62
54
  */
63
55
  router.get('/:id/versions/:version', async (req, res) => {
64
- try {
65
- const version = parseInt(req.params.version, 10);
66
- if (isNaN(version) || version < 1) {
67
- res.status(400).json({ error: 'Invalid version number' });
68
- return;
69
- }
70
- const snapshot = await yamlDb.getVersionSnapshot(req.params.id, version);
71
- if (!snapshot) {
72
- res.status(404).json({ error: `Version ${version} not found` });
73
- return;
74
- }
75
- res.json(snapshot);
76
- }
77
- catch (err) {
78
- if ((0, helpers_1.isNotFoundError)(err)) {
79
- res.status(404).json({ error: 'YAML workflow not found' });
80
- return;
81
- }
82
- res.status(500).json({ error: err.message });
83
- }
56
+ const result = await api.getVersionSnapshot({
57
+ id: req.params.id,
58
+ version: parseInt(req.params.version, 10),
59
+ });
60
+ res.status(result.status).json(result.data ?? { error: result.error });
84
61
  });
85
62
  /**
86
63
  * GET /api/yaml-workflows/:id/yaml
87
64
  * Return raw YAML content. Supports ?version=N query param.
88
65
  */
89
66
  router.get('/:id/yaml', async (req, res) => {
90
- try {
91
- const versionParam = req.query.version ? parseInt(req.query.version, 10) : null;
92
- if (versionParam) {
93
- const snapshot = await yamlDb.getVersionSnapshot(req.params.id, versionParam);
94
- if (!snapshot) {
95
- res.status(404).json({ error: `Version ${versionParam} not found` });
96
- return;
97
- }
98
- res.type('text/yaml').send(snapshot.yaml_content);
99
- return;
100
- }
101
- const wf = await yamlDb.getYamlWorkflow(req.params.id);
102
- if (!wf) {
103
- res.status(404).json({ error: 'YAML workflow not found' });
104
- return;
105
- }
106
- res.type('text/yaml').send(wf.yaml_content);
67
+ const result = await api.getYamlContent({
68
+ id: req.params.id,
69
+ version: req.query.version ? parseInt(req.query.version, 10) : undefined,
70
+ });
71
+ if (result.status === 200) {
72
+ res.type('text/yaml').send(result.data);
107
73
  }
108
- catch (err) {
109
- if ((0, helpers_1.isNotFoundError)(err)) {
110
- res.status(404).json({ error: 'YAML workflow not found' });
111
- return;
112
- }
113
- res.status(500).json({ error: err.message });
74
+ else {
75
+ res.status(result.status).json({ error: result.error });
114
76
  }
115
77
  });
116
78
  exports.default = router;