@hotmeshio/long-tail 0.1.13 → 0.1.15

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 (424) hide show
  1. package/README.md +15 -0
  2. package/build/api/escalations/bulk.d.ts +78 -0
  3. package/build/api/escalations/bulk.js +279 -0
  4. package/build/api/escalations/claim.d.ts +30 -0
  5. package/build/api/escalations/claim.js +121 -0
  6. package/build/api/escalations/create.d.ts +29 -0
  7. package/build/api/escalations/create.js +101 -0
  8. package/build/api/escalations/helpers.d.ts +10 -0
  9. package/build/api/escalations/helpers.js +80 -0
  10. package/build/api/escalations/index.d.ts +6 -0
  11. package/build/api/escalations/index.js +26 -0
  12. package/build/api/escalations/list.d.ts +75 -0
  13. package/build/api/escalations/list.js +170 -0
  14. package/build/api/escalations/resolve.d.ts +18 -0
  15. package/build/api/escalations/resolve.js +243 -0
  16. package/build/api/escalations/single.d.ts +37 -0
  17. package/build/api/escalations/single.js +123 -0
  18. package/build/api/files.d.ts +16 -0
  19. package/build/api/files.js +61 -0
  20. package/build/api/knowledge.d.ts +36 -0
  21. package/build/api/knowledge.js +112 -0
  22. package/build/api/mcp/index.d.ts +2 -0
  23. package/build/api/mcp/index.js +16 -0
  24. package/build/api/{mcp.d.ts → mcp/servers.d.ts} +1 -33
  25. package/build/api/{mcp.js → mcp/servers.js} +4 -65
  26. package/build/api/mcp/tools.d.ts +33 -0
  27. package/build/api/mcp/tools.js +64 -0
  28. package/build/api/mcp-runs.d.ts +2 -0
  29. package/build/api/mcp-runs.js +2 -0
  30. package/build/api/settings.js +9 -1
  31. package/build/api/workflow-sets.d.ts +11 -0
  32. package/build/api/workflow-sets.js +62 -0
  33. package/build/api/workflows/config.d.ts +64 -0
  34. package/build/api/workflows/config.js +142 -0
  35. package/build/api/workflows/discovery.d.ts +29 -0
  36. package/build/api/workflows/discovery.js +153 -0
  37. package/build/api/workflows/index.d.ts +3 -0
  38. package/build/api/workflows/index.js +18 -0
  39. package/build/api/workflows/invocation.d.ts +67 -0
  40. package/build/api/workflows/invocation.js +188 -0
  41. package/build/api/yaml-workflows/cron.d.ts +39 -0
  42. package/build/api/yaml-workflows/cron.js +127 -0
  43. package/build/api/{yaml-workflows.d.ts → yaml-workflows/crud.d.ts} +22 -137
  44. package/build/api/{yaml-workflows.js → yaml-workflows/crud.js} +86 -358
  45. package/build/api/yaml-workflows/deploy.d.ts +71 -0
  46. package/build/api/yaml-workflows/deploy.js +223 -0
  47. package/build/api/yaml-workflows/helpers.d.ts +2 -0
  48. package/build/api/yaml-workflows/helpers.js +8 -0
  49. package/build/api/yaml-workflows/index.d.ts +4 -0
  50. package/build/api/yaml-workflows/index.js +27 -0
  51. package/build/api/yaml-workflows/versions.d.ts +43 -0
  52. package/build/api/yaml-workflows/versions.js +124 -0
  53. package/build/bin/ltc.d.ts +2 -0
  54. package/build/bin/ltc.js +220 -0
  55. package/build/examples/seed-data.d.ts +55 -0
  56. package/build/examples/seed-data.js +161 -0
  57. package/build/examples/seed.js +7 -164
  58. package/build/lib/cli/auth.d.ts +23 -0
  59. package/build/lib/cli/auth.js +167 -0
  60. package/build/lib/cli/client.d.ts +6 -0
  61. package/build/lib/cli/client.js +31 -0
  62. package/build/lib/cli/commands/escalations.d.ts +19 -0
  63. package/build/lib/cli/commands/escalations.js +69 -0
  64. package/build/lib/cli/commands/knowledge.d.ts +18 -0
  65. package/build/lib/cli/commands/knowledge.js +87 -0
  66. package/build/lib/cli/commands/mcp.d.ts +8 -0
  67. package/build/lib/cli/commands/mcp.js +33 -0
  68. package/build/lib/cli/commands/pipelines.d.ts +16 -0
  69. package/build/lib/cli/commands/pipelines.js +67 -0
  70. package/build/lib/cli/commands/status.d.ts +1 -0
  71. package/build/lib/cli/commands/status.js +28 -0
  72. package/build/lib/cli/commands/users.d.ts +7 -0
  73. package/build/lib/cli/commands/users.js +25 -0
  74. package/build/lib/cli/commands/workflows.d.ts +16 -0
  75. package/build/lib/cli/commands/workflows.js +104 -0
  76. package/build/lib/cli/compile.d.ts +2 -0
  77. package/build/lib/cli/compile.js +165 -0
  78. package/build/lib/cli/format.d.ts +23 -0
  79. package/build/lib/cli/format.js +94 -0
  80. package/build/lib/cli/init.d.ts +1 -0
  81. package/build/lib/cli/init.js +61 -0
  82. package/build/lib/cli/output.d.ts +27 -0
  83. package/build/lib/cli/output.js +126 -0
  84. package/build/lib/cli/scanner.d.ts +10 -0
  85. package/build/lib/cli/scanner.js +164 -0
  86. package/build/lib/cli/types.d.ts +16 -0
  87. package/build/lib/cli/types.js +2 -0
  88. package/build/lib/logger/index.d.ts +0 -9
  89. package/build/lib/logger/index.js +9 -4
  90. package/build/lib/storage/index.js +2 -2
  91. package/build/lib/storage/local.d.ts +15 -0
  92. package/build/lib/storage/local.js +63 -0
  93. package/build/lib/storage/mime.d.ts +4 -0
  94. package/build/lib/storage/mime.js +31 -0
  95. package/build/lib/storage/s3.d.ts +16 -0
  96. package/build/lib/storage/s3.js +70 -0
  97. package/build/lib/storage/types.d.ts +18 -0
  98. package/build/modules/utils.d.ts +73 -0
  99. package/build/modules/utils.js +84 -0
  100. package/build/routes/file-browser.d.ts +2 -0
  101. package/build/routes/file-browser.js +126 -0
  102. package/build/routes/files.js +25 -17
  103. package/build/routes/index.js +4 -0
  104. package/build/routes/knowledge.d.ts +2 -0
  105. package/build/routes/knowledge.js +141 -0
  106. package/build/routes/mcp-runs.js +2 -0
  107. package/build/routes/workflow-sets.js +9 -0
  108. package/build/routes/yaml-workflows/crud.js +9 -0
  109. package/build/routes/yaml-workflows/deployment.js +8 -0
  110. package/build/sdk/index.d.ts +17 -0
  111. package/build/sdk/index.js +19 -0
  112. package/build/services/insight/index.d.ts +13 -0
  113. package/build/services/insight/index.js +4 -7
  114. package/build/services/insight/prompts.d.ts +1 -1
  115. package/build/services/insight/prompts.js +1 -1
  116. package/build/services/mcp/client/connection-dispatch.d.ts +18 -0
  117. package/build/services/mcp/client/connection-dispatch.js +78 -0
  118. package/build/services/mcp/client/connection-lifecycle.d.ts +48 -0
  119. package/build/services/mcp/client/connection-lifecycle.js +296 -0
  120. package/build/services/mcp/client/connection-test.d.ts +10 -0
  121. package/build/services/mcp/client/connection-test.js +49 -0
  122. package/build/services/mcp/client/connection.d.ts +3 -68
  123. package/build/services/mcp/client/connection.js +15 -393
  124. package/build/services/mcp/server-lifecycle.d.ts +27 -0
  125. package/build/services/mcp/server-lifecycle.js +49 -0
  126. package/build/services/mcp/server-tools.d.ts +13 -0
  127. package/build/services/mcp/server-tools.js +287 -0
  128. package/build/services/mcp/server.d.ts +2 -26
  129. package/build/services/mcp/server.js +7 -315
  130. package/build/services/mcp-runs/queries.d.ts +2 -0
  131. package/build/services/mcp-runs/queries.js +11 -1
  132. package/build/services/mcp-runs/sql.d.ts +1 -1
  133. package/build/services/mcp-runs/sql.js +2 -2
  134. package/build/services/workflow-sets/db.d.ts +1 -0
  135. package/build/services/workflow-sets/db.js +6 -0
  136. package/build/services/workflow-sets/index.d.ts +1 -1
  137. package/build/services/workflow-sets/index.js +2 -1
  138. package/build/services/workflow-sets/sql.d.ts +1 -0
  139. package/build/services/workflow-sets/sql.js +6 -1
  140. package/build/services/yaml-workflow/builder-regenerate.d.ts +25 -0
  141. package/build/services/yaml-workflow/builder-regenerate.js +111 -0
  142. package/build/services/yaml-workflow/db-versions.d.ts +17 -0
  143. package/build/services/yaml-workflow/db-versions.js +76 -0
  144. package/build/services/yaml-workflow/db.d.ts +14 -12
  145. package/build/services/yaml-workflow/db.js +32 -70
  146. package/build/services/yaml-workflow/deployer-helpers.js +48 -17
  147. package/build/services/yaml-workflow/durable-compiler/index.d.ts +22 -0
  148. package/build/services/yaml-workflow/durable-compiler/index.js +168 -0
  149. package/build/services/yaml-workflow/durable-compiler/parser.d.ts +12 -0
  150. package/build/services/yaml-workflow/durable-compiler/parser.js +110 -0
  151. package/build/services/yaml-workflow/durable-compiler/prompts.d.ts +18 -0
  152. package/build/services/yaml-workflow/durable-compiler/prompts.js +570 -0
  153. package/build/services/yaml-workflow/durable-compiler/types.d.ts +51 -0
  154. package/build/services/yaml-workflow/durable-compiler/types.js +5 -0
  155. package/build/services/yaml-workflow/generator.js +4 -4
  156. package/build/services/yaml-workflow/pipeline/build/dag-assembly.d.ts +17 -0
  157. package/build/services/yaml-workflow/pipeline/build/dag-assembly.js +192 -0
  158. package/build/services/yaml-workflow/pipeline/build/dag.d.ts +4 -13
  159. package/build/services/yaml-workflow/pipeline/build/dag.js +9 -185
  160. package/build/services/yaml-workflow/pipeline/build/index.d.ts +2 -1
  161. package/build/services/yaml-workflow/pipeline/build/index.js +3 -2
  162. package/build/services/yaml-workflow/pipeline/build/utils.d.ts +0 -2
  163. package/build/services/yaml-workflow/pipeline/build/utils.js +0 -8
  164. package/build/services/yaml-workflow/pipeline/prompt-templates.d.ts +10 -0
  165. package/build/services/yaml-workflow/pipeline/prompt-templates.js +270 -0
  166. package/build/services/yaml-workflow/pipeline/prompts.d.ts +3 -6
  167. package/build/services/yaml-workflow/pipeline/prompts.js +8 -263
  168. package/build/services/yaml-workflow/sql.d.ts +2 -1
  169. package/build/services/yaml-workflow/sql.js +10 -3
  170. package/build/start/workers.js +6 -5
  171. package/build/system/activities/file-storage.d.ts +4 -0
  172. package/build/system/activities/file-storage.js +7 -1
  173. package/build/system/activities/knowledge.d.ts +23 -0
  174. package/build/system/activities/knowledge.js +50 -10
  175. package/build/system/activities/schema-exchange.d.ts +50 -0
  176. package/build/system/activities/schema-exchange.js +210 -0
  177. package/build/system/activities/sql.d.ts +4 -1
  178. package/build/system/activities/sql.js +37 -2
  179. package/build/system/index.js +1 -0
  180. package/build/system/mcp-servers/file-storage.js +3 -1
  181. package/build/system/mcp-servers/human-queue-schemas.d.ts +91 -0
  182. package/build/system/mcp-servers/human-queue-schemas.js +42 -0
  183. package/build/system/mcp-servers/human-queue.d.ts +2 -6
  184. package/build/system/mcp-servers/human-queue.js +9 -51
  185. package/build/system/mcp-servers/knowledge.js +69 -6
  186. package/build/system/mcp-servers/schema-exchange.d.ts +4 -0
  187. package/build/system/mcp-servers/schema-exchange.js +93 -0
  188. package/build/system/mcp-servers/workflow-compiler.js +54 -0
  189. package/build/system/seed/server-definitions.d.ts +112 -1
  190. package/build/system/seed/server-definitions.js +37 -0
  191. package/build/system/seed/tool-manifests-data.d.ts +87 -0
  192. package/build/system/seed/tool-manifests-data.js +37 -1
  193. package/build/system/seed/tool-manifests-knowledge.d.ts +9 -1
  194. package/build/system/seed/tool-manifests-knowledge.js +6 -5
  195. package/build/system/workflows/mcp-triage/activities-proxy.d.ts +21 -0
  196. package/build/system/workflows/mcp-triage/activities-proxy.js +70 -0
  197. package/build/system/workflows/mcp-triage/index.js +17 -75
  198. package/build/system/workflows/mcp-workflow-builder/prompts.d.ts +1 -1
  199. package/build/system/workflows/mcp-workflow-builder/prompts.js +21 -20
  200. package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +2 -1
  201. package/build/system/workflows/mcp-workflow-planner/activities/persist.js +4 -3
  202. package/build/system/workflows/mcp-workflow-planner/index.js +41 -5
  203. package/build/system/workflows/mcp-workflow-planner/prompts.d.ts +1 -1
  204. package/build/system/workflows/mcp-workflow-planner/prompts.js +3 -3
  205. package/build/tsconfig.tsbuildinfo +1 -1
  206. package/dashboard/dist/assets/{AdminDashboard-DUrSBQOl.js → AdminDashboard-NLryl1_B.js} +2 -2
  207. package/dashboard/dist/assets/{AdminDashboard-DUrSBQOl.js.map → AdminDashboard-NLryl1_B.js.map} +1 -1
  208. package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js +2 -0
  209. package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js.map +1 -0
  210. package/dashboard/dist/assets/{BotPicker-Cg5iNEkm.js → BotPicker-DWhn0tr1.js} +2 -2
  211. package/dashboard/dist/assets/{BotPicker-Cg5iNEkm.js.map → BotPicker-DWhn0tr1.js.map} +1 -1
  212. package/dashboard/dist/assets/{CollapsibleSection-Kd9UIyeU.js → CollapsibleSection-CgYgQiOc.js} +2 -2
  213. package/dashboard/dist/assets/{CollapsibleSection-Kd9UIyeU.js.map → CollapsibleSection-CgYgQiOc.js.map} +1 -1
  214. package/dashboard/dist/assets/{ConfirmDeleteModal-DZMgmlof.js → ConfirmDeleteModal-DCKAPXD3.js} +2 -2
  215. package/dashboard/dist/assets/{ConfirmDeleteModal-DZMgmlof.js.map → ConfirmDeleteModal-DCKAPXD3.js.map} +1 -1
  216. package/dashboard/dist/assets/{CopyableId-cPFTRm8q.js → CopyableId-DXkaAOYk.js} +2 -2
  217. package/dashboard/dist/assets/{CopyableId-cPFTRm8q.js.map → CopyableId-DXkaAOYk.js.map} +1 -1
  218. package/dashboard/dist/assets/CredentialsPage-B361BOfU.js +2 -0
  219. package/dashboard/dist/assets/{CredentialsPage-DJablIbs.js.map → CredentialsPage-B361BOfU.js.map} +1 -1
  220. package/dashboard/dist/assets/{CustomDurationPicker-NgIP6YDW.js → CustomDurationPicker-D2G1ldiF.js} +2 -2
  221. package/dashboard/dist/assets/{CustomDurationPicker-NgIP6YDW.js.map → CustomDurationPicker-D2G1ldiF.js.map} +1 -1
  222. package/dashboard/dist/assets/{DataTable-CTRhTAfT.js → DataTable-DXSUbA26.js} +2 -2
  223. package/dashboard/dist/assets/{DataTable-CTRhTAfT.js.map → DataTable-DXSUbA26.js.map} +1 -1
  224. package/dashboard/dist/assets/{ElapsedCell-HcSJ_MMs.js → ElapsedCell-CQGqkXP_.js} +2 -2
  225. package/dashboard/dist/assets/{ElapsedCell-HcSJ_MMs.js.map → ElapsedCell-CQGqkXP_.js.map} +1 -1
  226. package/dashboard/dist/assets/{EmptyState-joNbd4gg.js → EmptyState-Dep92Wkg.js} +2 -2
  227. package/dashboard/dist/assets/{EmptyState-joNbd4gg.js.map → EmptyState-Dep92Wkg.js.map} +1 -1
  228. package/dashboard/dist/assets/{EscalationsOverview-DpXDnQux.js → EscalationsOverview-DVEFVjs7.js} +2 -2
  229. package/dashboard/dist/assets/{EscalationsOverview-DpXDnQux.js.map → EscalationsOverview-DVEFVjs7.js.map} +1 -1
  230. package/dashboard/dist/assets/{EventTable-CYem3v8n.js → EventTable-BMJAPkMi.js} +2 -2
  231. package/dashboard/dist/assets/{EventTable-CYem3v8n.js.map → EventTable-BMJAPkMi.js.map} +1 -1
  232. package/dashboard/dist/assets/{FilterBar-BiO8SOzc.js → FilterBar-DbVbCzH2.js} +2 -2
  233. package/dashboard/dist/assets/{FilterBar-BiO8SOzc.js.map → FilterBar-DbVbCzH2.js.map} +1 -1
  234. package/dashboard/dist/assets/{ListToolbar-6yRDh2e9.js → ListToolbar-0XNuXj0M.js} +2 -2
  235. package/dashboard/dist/assets/{ListToolbar-6yRDh2e9.js.map → ListToolbar-0XNuXj0M.js.map} +1 -1
  236. package/dashboard/dist/assets/{McpOverview-CUgSxkQe.js → McpOverview-CeYnCzBN.js} +2 -2
  237. package/dashboard/dist/assets/{McpOverview-CUgSxkQe.js.map → McpOverview-CeYnCzBN.js.map} +1 -1
  238. package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js +5 -0
  239. package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js.map +1 -0
  240. package/dashboard/dist/assets/McpQueryPage-CfUcdzaj.js +2 -0
  241. package/dashboard/dist/assets/{McpQueryPage-lV6kfDG5.js.map → McpQueryPage-CfUcdzaj.js.map} +1 -1
  242. package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js +2 -0
  243. package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js.map +1 -0
  244. package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js +2 -0
  245. package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js.map +1 -0
  246. package/dashboard/dist/assets/{Modal-BuTvD0pz.js → Modal-yyhUeKoA.js} +2 -2
  247. package/dashboard/dist/assets/{Modal-BuTvD0pz.js.map → Modal-yyhUeKoA.js.map} +1 -1
  248. package/dashboard/dist/assets/OperatorDashboard-Ceh7OQtZ.js +2 -0
  249. package/dashboard/dist/assets/{OperatorDashboard-C9SSV96T.js.map → OperatorDashboard-Ceh7OQtZ.js.map} +1 -1
  250. package/dashboard/dist/assets/{PageHeader-BcTVF9ul.js → PageHeader-CZ9a8cpr.js} +2 -2
  251. package/dashboard/dist/assets/{PageHeader-BcTVF9ul.js.map → PageHeader-CZ9a8cpr.js.map} +1 -1
  252. package/dashboard/dist/assets/{PageHeaderWithStats-BI7JG5x6.js → PageHeaderWithStats-BJuNs5NM.js} +2 -2
  253. package/dashboard/dist/assets/{PageHeaderWithStats-BI7JG5x6.js.map → PageHeaderWithStats-BJuNs5NM.js.map} +1 -1
  254. package/dashboard/dist/assets/{PriorityBadge-DqVaOU65.js → PriorityBadge-BrPikMFy.js} +2 -2
  255. package/dashboard/dist/assets/{PriorityBadge-DqVaOU65.js.map → PriorityBadge-BrPikMFy.js.map} +1 -1
  256. package/dashboard/dist/assets/{ProcessDetailPage-hFMhf9qa.js → ProcessDetailPage-2miaYd8G.js} +2 -2
  257. package/dashboard/dist/assets/{ProcessDetailPage-hFMhf9qa.js.map → ProcessDetailPage-2miaYd8G.js.map} +1 -1
  258. package/dashboard/dist/assets/{ProcessesListPage-ByVoBCQ3.js → ProcessesListPage-DqpRDqjk.js} +2 -2
  259. package/dashboard/dist/assets/{ProcessesListPage-ByVoBCQ3.js.map → ProcessesListPage-DqpRDqjk.js.map} +1 -1
  260. package/dashboard/dist/assets/{RolePill-D9ZIkYiu.js → RolePill-DxbJMfJu.js} +2 -2
  261. package/dashboard/dist/assets/{RolePill-D9ZIkYiu.js.map → RolePill-DxbJMfJu.js.map} +1 -1
  262. package/dashboard/dist/assets/{RolesPage-SMedMuqa.js → RolesPage-CYHRo21-.js} +2 -2
  263. package/dashboard/dist/assets/{RolesPage-SMedMuqa.js.map → RolesPage-CYHRo21-.js.map} +1 -1
  264. package/dashboard/dist/assets/{RowActions-yDhwwDbU.js → RowActions-DurFwIwe.js} +2 -2
  265. package/dashboard/dist/assets/{RowActions-yDhwwDbU.js.map → RowActions-DurFwIwe.js.map} +1 -1
  266. package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js +2 -0
  267. package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js.map +1 -0
  268. package/dashboard/dist/assets/{StatCard-BrBnQFxh.js → StatCard-CKplpK3w.js} +2 -2
  269. package/dashboard/dist/assets/{StatCard-BrBnQFxh.js.map → StatCard-CKplpK3w.js.map} +1 -1
  270. package/dashboard/dist/assets/{StatusBadge-xgb-lZku.js → StatusBadge-Dm0V1dNN.js} +2 -2
  271. package/dashboard/dist/assets/{StatusBadge-xgb-lZku.js.map → StatusBadge-Dm0V1dNN.js.map} +1 -1
  272. package/dashboard/dist/assets/{StepIndicator-B9ps2SvM.js → StepIndicator-Dicx0WTZ.js} +2 -2
  273. package/dashboard/dist/assets/{StepIndicator-B9ps2SvM.js.map → StepIndicator-Dicx0WTZ.js.map} +1 -1
  274. package/dashboard/dist/assets/{StickyPagination-DTIjBKN3.js → StickyPagination-B2jYvU3-.js} +2 -2
  275. package/dashboard/dist/assets/{StickyPagination-DTIjBKN3.js.map → StickyPagination-B2jYvU3-.js.map} +1 -1
  276. package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js +2 -0
  277. package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js.map +1 -0
  278. package/dashboard/dist/assets/{TagInput-CdNUuqk4.js → TagInput-CypDZ6Kl.js} +2 -2
  279. package/dashboard/dist/assets/{TagInput-CdNUuqk4.js.map → TagInput-CypDZ6Kl.js.map} +1 -1
  280. package/dashboard/dist/assets/{TaskDetailPage-C-nzaNea.js → TaskDetailPage-DooDNJGT.js} +2 -2
  281. package/dashboard/dist/assets/{TaskDetailPage-C-nzaNea.js.map → TaskDetailPage-DooDNJGT.js.map} +1 -1
  282. package/dashboard/dist/assets/{TaskQueuePill-Lvr2-NzS.js → TaskQueuePill-C1hZ-j31.js} +2 -2
  283. package/dashboard/dist/assets/{TaskQueuePill-Lvr2-NzS.js.map → TaskQueuePill-C1hZ-j31.js.map} +1 -1
  284. package/dashboard/dist/assets/{TasksListPage-DSUmD84y.js → TasksListPage-D7CdkAeg.js} +2 -2
  285. package/dashboard/dist/assets/{TasksListPage-DSUmD84y.js.map → TasksListPage-D7CdkAeg.js.map} +1 -1
  286. package/dashboard/dist/assets/{TimeAgo-BZdLdrIh.js → TimeAgo-B5LXB2aj.js} +2 -2
  287. package/dashboard/dist/assets/{TimeAgo-BZdLdrIh.js.map → TimeAgo-B5LXB2aj.js.map} +1 -1
  288. package/dashboard/dist/assets/{TimestampCell-QX_0i5FK.js → TimestampCell-Crb9b0Gw.js} +2 -2
  289. package/dashboard/dist/assets/{TimestampCell-QX_0i5FK.js.map → TimestampCell-Crb9b0Gw.js.map} +1 -1
  290. package/dashboard/dist/assets/{UserName-DyZMXcBm.js → UserName-OPg-nkRa.js} +2 -2
  291. package/dashboard/dist/assets/{UserName-DyZMXcBm.js.map → UserName-OPg-nkRa.js.map} +1 -1
  292. package/dashboard/dist/assets/{WorkflowExecutionPage-DjVxfZaF.js → WorkflowExecutionPage-CcLVrs9b.js} +2 -2
  293. package/dashboard/dist/assets/{WorkflowExecutionPage-DjVxfZaF.js.map → WorkflowExecutionPage-CcLVrs9b.js.map} +1 -1
  294. package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js +2 -0
  295. package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js.map +1 -0
  296. package/dashboard/dist/assets/{WorkflowsDashboard-DZjuiFZ0.js → WorkflowsDashboard-DB1SncBi.js} +2 -2
  297. package/dashboard/dist/assets/{WorkflowsDashboard-DZjuiFZ0.js.map → WorkflowsDashboard-DB1SncBi.js.map} +1 -1
  298. package/dashboard/dist/assets/{WorkflowsOverview-CLnLRpOu.js → WorkflowsOverview-DvShiYJV.js} +2 -2
  299. package/dashboard/dist/assets/{WorkflowsOverview-CLnLRpOu.js.map → WorkflowsOverview-DvShiYJV.js.map} +1 -1
  300. package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js +2 -0
  301. package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js.map +1 -0
  302. package/dashboard/dist/assets/{bots-DIM6lBoY.js → bots-Dqos20NE.js} +2 -2
  303. package/dashboard/dist/assets/{bots-DIM6lBoY.js.map → bots-Dqos20NE.js.map} +1 -1
  304. package/dashboard/dist/assets/{escalation-JOTuOqjq.js → escalation-A0CsbvNV.js} +2 -2
  305. package/dashboard/dist/assets/{escalation-JOTuOqjq.js.map → escalation-A0CsbvNV.js.map} +1 -1
  306. package/dashboard/dist/assets/escalation-columns-BpBJN6k4.js +2 -0
  307. package/dashboard/dist/assets/{escalation-columns-Cyg58nkg.js.map → escalation-columns-BpBJN6k4.js.map} +1 -1
  308. package/dashboard/dist/assets/{helpers-B1BDxBZd.js → helpers-CmznCuAx.js} +2 -2
  309. package/dashboard/dist/assets/{helpers-B1BDxBZd.js.map → helpers-CmznCuAx.js.map} +1 -1
  310. package/dashboard/dist/assets/index-BIeYV5QK.js +2 -0
  311. package/dashboard/dist/assets/index-BIeYV5QK.js.map +1 -0
  312. package/dashboard/dist/assets/index-BYwD3kHN.js +5 -0
  313. package/dashboard/dist/assets/index-BYwD3kHN.js.map +1 -0
  314. package/dashboard/dist/assets/index-C5TUqJu0.css +1 -0
  315. package/dashboard/dist/assets/index-C8-UaN4N.js +2 -0
  316. package/dashboard/dist/assets/{index-Cg5nfiYX.js.map → index-C8-UaN4N.js.map} +1 -1
  317. package/dashboard/dist/assets/index-CAj5LT9H.js +15 -0
  318. package/dashboard/dist/assets/index-CAj5LT9H.js.map +1 -0
  319. package/dashboard/dist/assets/index-CjxHCVxl.js +2 -0
  320. package/dashboard/dist/assets/{index-Cf60K3x9.js.map → index-CjxHCVxl.js.map} +1 -1
  321. package/dashboard/dist/assets/index-Cr0Rqsj7.js +2 -0
  322. package/dashboard/dist/assets/index-Cr0Rqsj7.js.map +1 -0
  323. package/dashboard/dist/assets/index-DZHNte4o.js +2 -0
  324. package/dashboard/dist/assets/{index-Di12t56M.js.map → index-DZHNte4o.js.map} +1 -1
  325. package/dashboard/dist/assets/{index-Ds0JoXS2.js → index-VnYkWW8r.js} +2 -2
  326. package/dashboard/dist/assets/{index-Ds0JoXS2.js.map → index-VnYkWW8r.js.map} +1 -1
  327. package/dashboard/dist/assets/{index-BcR6PfpY.js → index-XGOmZ117.js} +2 -2
  328. package/dashboard/dist/assets/{index-BcR6PfpY.js.map → index-XGOmZ117.js.map} +1 -1
  329. package/dashboard/dist/assets/index-ZjOUzWhc.js +2 -0
  330. package/dashboard/dist/assets/index-ZjOUzWhc.js.map +1 -0
  331. package/dashboard/dist/assets/{index-BYZX9tOb.js → index-puKKZ5l8.js} +77 -77
  332. package/dashboard/dist/assets/index-puKKZ5l8.js.map +1 -0
  333. package/dashboard/dist/assets/{index-BizfauqT.js → index-t5frSddy.js} +4 -4
  334. package/dashboard/dist/assets/{index-BizfauqT.js.map → index-t5frSddy.js.map} +1 -1
  335. package/dashboard/dist/assets/{mcp-B_xbczAt.js → mcp-DrWymhSu.js} +2 -2
  336. package/dashboard/dist/assets/{mcp-B_xbczAt.js.map → mcp-DrWymhSu.js.map} +1 -1
  337. package/dashboard/dist/assets/mcp-query-BhUxVEMS.js +2 -0
  338. package/dashboard/dist/assets/mcp-query-BhUxVEMS.js.map +1 -0
  339. package/dashboard/dist/assets/mcp-runs-DUfz4mLd.js +2 -0
  340. package/dashboard/dist/assets/mcp-runs-DUfz4mLd.js.map +1 -0
  341. package/dashboard/dist/assets/{namespaces-C3WtdO_9.js → namespaces-Cm6AY5sh.js} +2 -2
  342. package/dashboard/dist/assets/{namespaces-C3WtdO_9.js.map → namespaces-Cm6AY5sh.js.map} +1 -1
  343. package/dashboard/dist/assets/{roles-BDAsPpZG.js → roles-2v1Kc7BJ.js} +2 -2
  344. package/dashboard/dist/assets/{roles-BDAsPpZG.js.map → roles-2v1Kc7BJ.js.map} +1 -1
  345. package/dashboard/dist/assets/{settings-Ife_UwAp.js → settings-DTQNp6tH.js} +2 -2
  346. package/dashboard/dist/assets/{settings-Ife_UwAp.js.map → settings-DTQNp6tH.js.map} +1 -1
  347. package/dashboard/dist/assets/{tasks-BquNDHDI.js → tasks-CS1rgG1s.js} +2 -2
  348. package/dashboard/dist/assets/{tasks-BquNDHDI.js.map → tasks-CS1rgG1s.js.map} +1 -1
  349. package/dashboard/dist/assets/useEventHooks-BjXX8x3a.js +2 -0
  350. package/dashboard/dist/assets/{useEventHooks-anv_B2Yy.js.map → useEventHooks-BjXX8x3a.js.map} +1 -1
  351. package/dashboard/dist/assets/useFilterParams-CGRYFw_A.js +2 -0
  352. package/dashboard/dist/assets/useFilterParams-CGRYFw_A.js.map +1 -0
  353. package/dashboard/dist/assets/useYamlActivityEvents-BeR-nVWQ.js +2 -0
  354. package/dashboard/dist/assets/useYamlActivityEvents-BeR-nVWQ.js.map +1 -0
  355. package/dashboard/dist/assets/{users-CFcxB4v6.js → users-DYsdQ7Md.js} +2 -2
  356. package/dashboard/dist/assets/{users-CFcxB4v6.js.map → users-DYsdQ7Md.js.map} +1 -1
  357. package/dashboard/dist/assets/{vendor-icons-T4r2DSPD.js → vendor-icons-CWl44VA6.js} +132 -82
  358. package/dashboard/dist/assets/vendor-icons-CWl44VA6.js.map +1 -0
  359. package/dashboard/dist/assets/{workflows-CeRci9z3.js → workflows-2QAXh3UD.js} +2 -2
  360. package/dashboard/dist/assets/{workflows-CeRci9z3.js.map → workflows-2QAXh3UD.js.map} +1 -1
  361. package/dashboard/dist/assets/yaml-workflows-sx8-UEE3.js +2 -0
  362. package/dashboard/dist/assets/yaml-workflows-sx8-UEE3.js.map +1 -0
  363. package/dashboard/dist/index.html +3 -3
  364. package/docs/api/http/file-browser.md +101 -0
  365. package/docs/api/http/knowledge.md +203 -0
  366. package/docs/api/http/settings.md +6 -4
  367. package/docs/api/sdk/files.md +68 -0
  368. package/docs/api/sdk/knowledge.md +126 -0
  369. package/docs/api/sdk/settings.md +3 -2
  370. package/docs/cli.md +171 -0
  371. package/docs/compilation.md +16 -0
  372. package/docs/compiler.md +311 -0
  373. package/docs/events.md +19 -0
  374. package/docs/schema-exchange.md +173 -0
  375. package/docs/self-test.md +106 -0
  376. package/docs/workflows.md +19 -0
  377. package/package.json +15 -2
  378. package/build/api/escalations.d.ts +0 -271
  379. package/build/api/escalations.js +0 -932
  380. package/build/api/workflows.d.ts +0 -158
  381. package/build/api/workflows.js +0 -414
  382. package/dashboard/dist/assets/AvailableEscalationsPage-Dbd1qUK_.js +0 -2
  383. package/dashboard/dist/assets/AvailableEscalationsPage-Dbd1qUK_.js.map +0 -1
  384. package/dashboard/dist/assets/CredentialsPage-DJablIbs.js +0 -2
  385. package/dashboard/dist/assets/McpQueryDetailPage-BWbinTM_.js +0 -5
  386. package/dashboard/dist/assets/McpQueryDetailPage-BWbinTM_.js.map +0 -1
  387. package/dashboard/dist/assets/McpQueryPage-lV6kfDG5.js +0 -2
  388. package/dashboard/dist/assets/McpRunDetailPage-D6gaxH3_.js +0 -2
  389. package/dashboard/dist/assets/McpRunDetailPage-D6gaxH3_.js.map +0 -1
  390. package/dashboard/dist/assets/McpRunsPage-DKvTklh9.js +0 -2
  391. package/dashboard/dist/assets/McpRunsPage-DKvTklh9.js.map +0 -1
  392. package/dashboard/dist/assets/OperatorDashboard-C9SSV96T.js +0 -2
  393. package/dashboard/dist/assets/SwimlaneTimeline-RK4Yu66z.js +0 -2
  394. package/dashboard/dist/assets/SwimlaneTimeline-RK4Yu66z.js.map +0 -1
  395. package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js +0 -2
  396. package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js.map +0 -1
  397. package/dashboard/dist/assets/YamlWorkflowsPage-VjdhnLmO.js +0 -2
  398. package/dashboard/dist/assets/YamlWorkflowsPage-VjdhnLmO.js.map +0 -1
  399. package/dashboard/dist/assets/escalation-columns-Cyg58nkg.js +0 -2
  400. package/dashboard/dist/assets/helpers-BCix9c_m.js +0 -2
  401. package/dashboard/dist/assets/helpers-BCix9c_m.js.map +0 -1
  402. package/dashboard/dist/assets/index-BUK3qR-1.js +0 -2
  403. package/dashboard/dist/assets/index-BUK3qR-1.js.map +0 -1
  404. package/dashboard/dist/assets/index-BYZX9tOb.js.map +0 -1
  405. package/dashboard/dist/assets/index-Cf60K3x9.js +0 -2
  406. package/dashboard/dist/assets/index-Cg5nfiYX.js +0 -2
  407. package/dashboard/dist/assets/index-D1wVX50Z.js +0 -15
  408. package/dashboard/dist/assets/index-D1wVX50Z.js.map +0 -1
  409. package/dashboard/dist/assets/index-DDYFpi4l.js +0 -5
  410. package/dashboard/dist/assets/index-DDYFpi4l.js.map +0 -1
  411. package/dashboard/dist/assets/index-DcIKW-cZ.css +0 -1
  412. package/dashboard/dist/assets/index-Di12t56M.js +0 -2
  413. package/dashboard/dist/assets/mcp-query-B8-P_QoG.js +0 -2
  414. package/dashboard/dist/assets/mcp-query-B8-P_QoG.js.map +0 -1
  415. package/dashboard/dist/assets/mcp-runs-CWeZinoF.js +0 -2
  416. package/dashboard/dist/assets/mcp-runs-CWeZinoF.js.map +0 -1
  417. package/dashboard/dist/assets/useEventHooks-anv_B2Yy.js +0 -2
  418. package/dashboard/dist/assets/useFilterParams-BUyLHcx_.js +0 -2
  419. package/dashboard/dist/assets/useFilterParams-BUyLHcx_.js.map +0 -1
  420. package/dashboard/dist/assets/useYamlActivityEvents-DN-PTgVx.js +0 -2
  421. package/dashboard/dist/assets/useYamlActivityEvents-DN-PTgVx.js.map +0 -1
  422. package/dashboard/dist/assets/vendor-icons-T4r2DSPD.js.map +0 -1
  423. package/dashboard/dist/assets/yaml-workflows-DLwd2BOX.js +0 -2
  424. package/dashboard/dist/assets/yaml-workflows-DLwd2BOX.js.map +0 -1
@@ -6,8 +6,10 @@ exports.getWorkflowSet = getWorkflowSet;
6
6
  exports.updateWorkflowSetPlanApi = updateWorkflowSetPlanApi;
7
7
  exports.buildWorkflowSet = buildWorkflowSet;
8
8
  exports.deployWorkflowSet = deployWorkflowSet;
9
+ exports.addToWorkflowSet = addToWorkflowSet;
9
10
  const workflow_sets_1 = require("../services/workflow-sets");
10
11
  const insight_1 = require("../services/insight");
12
+ const yaml_workflows_1 = require("./yaml-workflows");
11
13
  /**
12
14
  * Create a new workflow set and kick off the LLM-powered planner.
13
15
  *
@@ -168,3 +170,63 @@ async function deployWorkflowSet(input) {
168
170
  return { status: 500, error: err.message };
169
171
  }
170
172
  }
173
+ /**
174
+ * Add additional workflows to an existing set.
175
+ *
176
+ * Invokes the planner with the new specification and existing set context.
177
+ * The planner appends new plan items (offset build_order) and builds them
178
+ * with sibling schema awareness so composition wiring works.
179
+ */
180
+ async function addToWorkflowSet(input, auth) {
181
+ try {
182
+ if (!input.specification || typeof input.specification !== 'string') {
183
+ return { status: 400, error: 'specification is required' };
184
+ }
185
+ if (!process.env.OPENAI_API_KEY && !process.env.ANTHROPIC_API_KEY) {
186
+ return { status: 503, error: 'Workflow planner requires an LLM API key' };
187
+ }
188
+ const set = await (0, workflow_sets_1.getWorkflowSet)(input.id);
189
+ if (!set) {
190
+ return { status: 404, error: 'Workflow set not found' };
191
+ }
192
+ // Gather existing plan items and built workflow schemas
193
+ const existingPlan = (set.plan || []).map(p => ({
194
+ name: p.name,
195
+ description: p.description,
196
+ namespace: p.namespace,
197
+ }));
198
+ const yamlResult = await (0, yaml_workflows_1.listYamlWorkflows)({ set_id: input.id, limit: 100 });
199
+ const workflows = yamlResult.data?.workflows || [];
200
+ const existingSchemas = workflows
201
+ .filter((w) => w.status === 'active' || w.status === 'draft')
202
+ .map((w) => ({
203
+ name: w.name,
204
+ input_schema: w.input_schema || {},
205
+ output_schema: w.output_schema || {},
206
+ graph_topic: w.graph_topic,
207
+ }));
208
+ // Append the new spec to the set's specification field so the full
209
+ // history of what was pasted is preserved and visible on step 1.
210
+ await (0, workflow_sets_1.appendWorkflowSetSpecification)(input.id, input.specification);
211
+ const plannerResult = await (0, insight_1.startWorkflowPlanner)({
212
+ specification: input.specification,
213
+ setId: input.id,
214
+ wait: false,
215
+ userId: auth?.userId,
216
+ existingPlan,
217
+ existingSchemas,
218
+ });
219
+ await (0, workflow_sets_1.updateWorkflowSetSourceWorkflow)(input.id, plannerResult.workflow_id);
220
+ return {
221
+ status: 200,
222
+ data: {
223
+ ...set,
224
+ source_workflow_id: plannerResult.workflow_id,
225
+ planner_workflow_id: plannerResult.workflow_id,
226
+ },
227
+ };
228
+ }
229
+ catch (err) {
230
+ return { status: 500, error: err.message };
231
+ }
232
+ }
@@ -0,0 +1,64 @@
1
+ import type { LTApiResult } from '../../types/sdk';
2
+ /**
3
+ * List all registered workflow configurations.
4
+ *
5
+ * @returns `{ status: 200, data: { workflows: LTWorkflowConfig[] } }`
6
+ */
7
+ export declare function listWorkflowConfigs(): Promise<LTApiResult>;
8
+ /**
9
+ * Get a single workflow configuration by type.
10
+ *
11
+ * @param input.type — workflow type name (e.g. `"reviewContent"`)
12
+ * @returns `{ status: 200, data: <config> }` or 404
13
+ */
14
+ export declare function getWorkflowConfig(input: {
15
+ type: string;
16
+ }): Promise<LTApiResult>;
17
+ /**
18
+ * Create or replace a workflow configuration.
19
+ *
20
+ * Invalidates the config cache and restarts the cron schedule if one
21
+ * is defined. Idempotent — safe to call repeatedly with the same input.
22
+ *
23
+ * @param input.type — workflow type name
24
+ * @param input.invocable — whether the workflow can be started via the API
25
+ * @param input.task_queue — HotMesh task queue
26
+ * @param input.default_role — default escalation role
27
+ * @param input.description — human-readable description
28
+ * @param input.execute_as — service account for proxy invocation
29
+ * @param input.roles — roles that can resolve escalations
30
+ * @param input.invocation_roles — roles that can invoke this workflow
31
+ * @param input.consumes — workflow types whose data this workflow consumes
32
+ * @param input.tool_tags — MCP tool tags for discovery
33
+ * @param input.envelope_schema — JSON Schema for envelope.data validation
34
+ * @param input.resolver_schema — JSON Schema for resolver payload validation
35
+ * @param input.cron_schedule — cron expression for scheduled execution
36
+ * @returns `{ status: 200, data: <saved config> }`
37
+ */
38
+ export declare function upsertWorkflowConfig(input: {
39
+ type: string;
40
+ invocable?: boolean;
41
+ task_queue?: string | null;
42
+ default_role?: string;
43
+ description?: string | null;
44
+ execute_as?: string | null;
45
+ roles?: string[];
46
+ invocation_roles?: string[];
47
+ consumes?: string[];
48
+ tool_tags?: string[];
49
+ envelope_schema?: any;
50
+ resolver_schema?: any;
51
+ cron_schedule?: string | null;
52
+ }): Promise<LTApiResult>;
53
+ /**
54
+ * Delete a workflow configuration.
55
+ *
56
+ * Removes the config record and invalidates the cache. Active workers
57
+ * continue running — this only removes the config/interceptor binding.
58
+ *
59
+ * @param input.type — workflow type name
60
+ * @returns `{ status: 200, data: { deleted: true, workflow_type } }` or 404
61
+ */
62
+ export declare function deleteWorkflowConfig(input: {
63
+ type: string;
64
+ }): Promise<LTApiResult>;
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.listWorkflowConfigs = listWorkflowConfigs;
37
+ exports.getWorkflowConfig = getWorkflowConfig;
38
+ exports.upsertWorkflowConfig = upsertWorkflowConfig;
39
+ exports.deleteWorkflowConfig = deleteWorkflowConfig;
40
+ const configService = __importStar(require("../../services/config"));
41
+ const cron_1 = require("../../services/cron");
42
+ const ltconfig_1 = require("../../modules/ltconfig");
43
+ /**
44
+ * List all registered workflow configurations.
45
+ *
46
+ * @returns `{ status: 200, data: { workflows: LTWorkflowConfig[] } }`
47
+ */
48
+ async function listWorkflowConfigs() {
49
+ try {
50
+ const configs = await configService.listWorkflowConfigs();
51
+ return { status: 200, data: { workflows: configs } };
52
+ }
53
+ catch (err) {
54
+ return { status: 500, error: err.message };
55
+ }
56
+ }
57
+ /**
58
+ * Get a single workflow configuration by type.
59
+ *
60
+ * @param input.type — workflow type name (e.g. `"reviewContent"`)
61
+ * @returns `{ status: 200, data: <config> }` or 404
62
+ */
63
+ async function getWorkflowConfig(input) {
64
+ try {
65
+ const config = await configService.getWorkflowConfig(input.type);
66
+ if (!config) {
67
+ return { status: 404, error: 'Workflow config not found' };
68
+ }
69
+ return { status: 200, data: config };
70
+ }
71
+ catch (err) {
72
+ return { status: 500, error: err.message };
73
+ }
74
+ }
75
+ /**
76
+ * Create or replace a workflow configuration.
77
+ *
78
+ * Invalidates the config cache and restarts the cron schedule if one
79
+ * is defined. Idempotent — safe to call repeatedly with the same input.
80
+ *
81
+ * @param input.type — workflow type name
82
+ * @param input.invocable — whether the workflow can be started via the API
83
+ * @param input.task_queue — HotMesh task queue
84
+ * @param input.default_role — default escalation role
85
+ * @param input.description — human-readable description
86
+ * @param input.execute_as — service account for proxy invocation
87
+ * @param input.roles — roles that can resolve escalations
88
+ * @param input.invocation_roles — roles that can invoke this workflow
89
+ * @param input.consumes — workflow types whose data this workflow consumes
90
+ * @param input.tool_tags — MCP tool tags for discovery
91
+ * @param input.envelope_schema — JSON Schema for envelope.data validation
92
+ * @param input.resolver_schema — JSON Schema for resolver payload validation
93
+ * @param input.cron_schedule — cron expression for scheduled execution
94
+ * @returns `{ status: 200, data: <saved config> }`
95
+ */
96
+ async function upsertWorkflowConfig(input) {
97
+ try {
98
+ const config = await configService.upsertWorkflowConfig({
99
+ workflow_type: input.type,
100
+ invocable: input.invocable ?? false,
101
+ task_queue: input.task_queue ?? null,
102
+ default_role: input.default_role ?? 'reviewer',
103
+ description: input.description ?? null,
104
+ execute_as: input.execute_as ?? null,
105
+ roles: input.roles ?? [],
106
+ invocation_roles: input.invocation_roles ?? [],
107
+ consumes: input.consumes ?? [],
108
+ tool_tags: input.tool_tags ?? [],
109
+ envelope_schema: input.envelope_schema ?? null,
110
+ resolver_schema: input.resolver_schema ?? null,
111
+ cron_schedule: input.cron_schedule ?? null,
112
+ });
113
+ ltconfig_1.ltConfig.invalidate();
114
+ await cron_1.cronRegistry.restartCron(config);
115
+ return { status: 200, data: config };
116
+ }
117
+ catch (err) {
118
+ return { status: 500, error: err.message };
119
+ }
120
+ }
121
+ /**
122
+ * Delete a workflow configuration.
123
+ *
124
+ * Removes the config record and invalidates the cache. Active workers
125
+ * continue running — this only removes the config/interceptor binding.
126
+ *
127
+ * @param input.type — workflow type name
128
+ * @returns `{ status: 200, data: { deleted: true, workflow_type } }` or 404
129
+ */
130
+ async function deleteWorkflowConfig(input) {
131
+ try {
132
+ const deleted = await configService.deleteWorkflowConfig(input.type);
133
+ if (!deleted) {
134
+ return { status: 404, error: 'Workflow config not found' };
135
+ }
136
+ ltconfig_1.ltConfig.invalidate();
137
+ return { status: 200, data: { deleted: true, workflow_type: input.type } };
138
+ }
139
+ catch (err) {
140
+ return { status: 500, error: err.message };
141
+ }
142
+ }
@@ -0,0 +1,29 @@
1
+ import type { LTApiResult } from '../../types/sdk';
2
+ /**
3
+ * List active workflow workers with their registration status.
4
+ *
5
+ * @param input.include_system — include system workflows (default: false)
6
+ * @returns `{ status: 200, data: { workers: [{ name, task_queue, registered, system }] } }`
7
+ */
8
+ export declare function listWorkers(input: {
9
+ include_system?: boolean;
10
+ }): Promise<LTApiResult>;
11
+ /**
12
+ * Discover all known workflow types from workers, history, and config.
13
+ *
14
+ * Merges three sources: active in-memory workers, historical entities
15
+ * from the durable jobs table, and registered workflow configs. Returns
16
+ * a unified list with status flags for each type.
17
+ *
18
+ * @param input.include_system — include system workflows (default: false)
19
+ * @returns `{ status: 200, data: { workflows: [{ workflow_type, task_queue, registered, active, invocable, ... }] } }`
20
+ */
21
+ export declare function listDiscoveredWorkflows(input: {
22
+ include_system?: boolean;
23
+ }): Promise<LTApiResult>;
24
+ /**
25
+ * List all cron-scheduled workflows and their active state.
26
+ *
27
+ * @returns `{ status: 200, data: { schedules: [{ workflow_type, cron_schedule, active, ... }] } }`
28
+ */
29
+ export declare function getCronStatus(): Promise<LTApiResult>;
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.listWorkers = listWorkers;
37
+ exports.listDiscoveredWorkflows = listDiscoveredWorkflows;
38
+ exports.getCronStatus = getCronStatus;
39
+ const configService = __importStar(require("../../services/config"));
40
+ const cron_1 = require("../../services/cron");
41
+ const db_1 = require("../../lib/db");
42
+ const registry_1 = require("../../services/workers/registry");
43
+ const sql_1 = require("../../services/mcp-runs/sql");
44
+ /**
45
+ * List active workflow workers with their registration status.
46
+ *
47
+ * @param input.include_system — include system workflows (default: false)
48
+ * @returns `{ status: 200, data: { workers: [{ name, task_queue, registered, system }] } }`
49
+ */
50
+ async function listWorkers(input) {
51
+ try {
52
+ const activeWorkers = (0, registry_1.getRegisteredWorkers)();
53
+ const configs = await configService.listWorkflowConfigs();
54
+ const registeredTypes = new Set(configs.map((c) => c.workflow_type));
55
+ const workers = [...activeWorkers.entries()]
56
+ .filter(([name]) => input.include_system || !registry_1.SYSTEM_WORKFLOWS.has(name))
57
+ .sort(([a], [b]) => a.localeCompare(b))
58
+ .map(([name, { taskQueue }]) => ({
59
+ name,
60
+ task_queue: taskQueue,
61
+ registered: registeredTypes.has(name),
62
+ system: registry_1.SYSTEM_WORKFLOWS.has(name),
63
+ }));
64
+ return { status: 200, data: { workers } };
65
+ }
66
+ catch (err) {
67
+ return { status: 500, error: err.message };
68
+ }
69
+ }
70
+ /**
71
+ * Discover all known workflow types from workers, history, and config.
72
+ *
73
+ * Merges three sources: active in-memory workers, historical entities
74
+ * from the durable jobs table, and registered workflow configs. Returns
75
+ * a unified list with status flags for each type.
76
+ *
77
+ * @param input.include_system — include system workflows (default: false)
78
+ * @returns `{ status: 200, data: { workflows: [{ workflow_type, task_queue, registered, active, invocable, ... }] } }`
79
+ */
80
+ async function listDiscoveredWorkflows(input) {
81
+ try {
82
+ // 1. Active workers from in-memory registry
83
+ const activeWorkers = (0, registry_1.getRegisteredWorkers)();
84
+ // 2. Historical entities from durable.jobs
85
+ const pool = (0, db_1.getPool)();
86
+ const { rows: entityRows } = await pool.query(sql_1.DISTINCT_ENTITIES_DURABLE);
87
+ const historicalEntities = new Set(entityRows.map((r) => r.entity));
88
+ // 3. Registered configs
89
+ const configs = await configService.listWorkflowConfigs();
90
+ const configMap = new Map(configs.map((c) => [c.workflow_type, c]));
91
+ // Build unified set of all workflow types
92
+ const allTypes = new Set();
93
+ for (const [name] of activeWorkers)
94
+ allTypes.add(name);
95
+ for (const entity of historicalEntities)
96
+ allTypes.add(entity);
97
+ for (const c of configs)
98
+ allTypes.add(c.workflow_type);
99
+ const workflows = [...allTypes]
100
+ .filter((t) => input.include_system || !registry_1.SYSTEM_WORKFLOWS.has(t))
101
+ .sort()
102
+ .map((workflowType) => {
103
+ const config = configMap.get(workflowType);
104
+ const worker = activeWorkers.get(workflowType);
105
+ const hasCertification = !!(config &&
106
+ ((config.roles?.length ?? 0) > 0 ||
107
+ (config.consumes?.length ?? 0) > 0));
108
+ const tier = !config ? 'durable' : hasCertification ? 'certified' : 'configured';
109
+ return {
110
+ workflow_type: workflowType,
111
+ task_queue: config?.task_queue ?? worker?.taskQueue ?? null,
112
+ tier,
113
+ registered: !!config,
114
+ active: !!worker,
115
+ invocable: config?.invocable ?? !!worker,
116
+ system: registry_1.SYSTEM_WORKFLOWS.has(workflowType),
117
+ description: config?.description ?? null,
118
+ roles: config?.roles ?? [],
119
+ invocation_roles: config?.invocation_roles ?? [],
120
+ execute_as: config?.execute_as ?? null,
121
+ };
122
+ });
123
+ return { status: 200, data: { workflows } };
124
+ }
125
+ catch (err) {
126
+ return { status: 500, error: err.message };
127
+ }
128
+ }
129
+ /**
130
+ * List all cron-scheduled workflows and their active state.
131
+ *
132
+ * @returns `{ status: 200, data: { schedules: [{ workflow_type, cron_schedule, active, ... }] } }`
133
+ */
134
+ async function getCronStatus() {
135
+ try {
136
+ const configs = await configService.listWorkflowConfigs();
137
+ const cronConfigs = configs.filter((c) => c.cron_schedule);
138
+ const activeTypes = cron_1.cronRegistry.activeWorkflowTypes;
139
+ const schedules = cronConfigs.map((c) => ({
140
+ workflow_type: c.workflow_type,
141
+ cron_schedule: c.cron_schedule,
142
+ description: c.description,
143
+ task_queue: c.task_queue,
144
+ invocable: c.invocable,
145
+ active: activeTypes.includes(c.workflow_type),
146
+ envelope_schema: c.envelope_schema,
147
+ }));
148
+ return { status: 200, data: { schedules } };
149
+ }
150
+ catch (err) {
151
+ return { status: 500, error: err.message };
152
+ }
153
+ }
@@ -0,0 +1,3 @@
1
+ export { invokeWorkflow, getWorkflowStatus, getWorkflowResult, terminateWorkflow, exportWorkflow, } from './invocation';
2
+ export { listWorkers, listDiscoveredWorkflows, getCronStatus, } from './discovery';
3
+ export { listWorkflowConfigs, getWorkflowConfig, upsertWorkflowConfig, deleteWorkflowConfig, } from './config';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteWorkflowConfig = exports.upsertWorkflowConfig = exports.getWorkflowConfig = exports.listWorkflowConfigs = exports.getCronStatus = exports.listDiscoveredWorkflows = exports.listWorkers = exports.exportWorkflow = exports.terminateWorkflow = exports.getWorkflowResult = exports.getWorkflowStatus = exports.invokeWorkflow = void 0;
4
+ var invocation_1 = require("./invocation");
5
+ Object.defineProperty(exports, "invokeWorkflow", { enumerable: true, get: function () { return invocation_1.invokeWorkflow; } });
6
+ Object.defineProperty(exports, "getWorkflowStatus", { enumerable: true, get: function () { return invocation_1.getWorkflowStatus; } });
7
+ Object.defineProperty(exports, "getWorkflowResult", { enumerable: true, get: function () { return invocation_1.getWorkflowResult; } });
8
+ Object.defineProperty(exports, "terminateWorkflow", { enumerable: true, get: function () { return invocation_1.terminateWorkflow; } });
9
+ Object.defineProperty(exports, "exportWorkflow", { enumerable: true, get: function () { return invocation_1.exportWorkflow; } });
10
+ var discovery_1 = require("./discovery");
11
+ Object.defineProperty(exports, "listWorkers", { enumerable: true, get: function () { return discovery_1.listWorkers; } });
12
+ Object.defineProperty(exports, "listDiscoveredWorkflows", { enumerable: true, get: function () { return discovery_1.listDiscoveredWorkflows; } });
13
+ Object.defineProperty(exports, "getCronStatus", { enumerable: true, get: function () { return discovery_1.getCronStatus; } });
14
+ var config_1 = require("./config");
15
+ Object.defineProperty(exports, "listWorkflowConfigs", { enumerable: true, get: function () { return config_1.listWorkflowConfigs; } });
16
+ Object.defineProperty(exports, "getWorkflowConfig", { enumerable: true, get: function () { return config_1.getWorkflowConfig; } });
17
+ Object.defineProperty(exports, "upsertWorkflowConfig", { enumerable: true, get: function () { return config_1.upsertWorkflowConfig; } });
18
+ Object.defineProperty(exports, "deleteWorkflowConfig", { enumerable: true, get: function () { return config_1.deleteWorkflowConfig; } });
@@ -0,0 +1,67 @@
1
+ import type { LTApiResult, LTApiAuth } from '../../types/sdk';
2
+ /**
3
+ * Start a workflow — proxy for `Durable.Client.workflow.start()`.
4
+ *
5
+ * Resolves the task queue, enforces auth/role constraints, builds the
6
+ * LTEnvelope with IAM context, and delegates to the Durable client.
7
+ * Any WorkflowOptions field (workflowId, expire, entity, namespace,
8
+ * search, signalIn, pending, etc.) can be passed via `options` and
9
+ * flows through to the Durable client unchanged.
10
+ *
11
+ * @see https://docs.hotmesh.io/types/types_durable.WorkflowOptions.html
12
+ */
13
+ export declare function invokeWorkflow(input: {
14
+ type: string;
15
+ data?: Record<string, any>;
16
+ metadata?: Record<string, any>;
17
+ execute_as?: string;
18
+ /** Passthrough to Durable WorkflowOptions. */
19
+ options?: Record<string, any>;
20
+ }, auth: LTApiAuth): Promise<LTApiResult>;
21
+ /**
22
+ * Get the execution status of a workflow.
23
+ *
24
+ * Returns the HotMesh status code (0 = completed, 1 = running).
25
+ * Resolves the workflow handle via task record or worker registry.
26
+ *
27
+ * @param input.workflowId — HotMesh workflow ID
28
+ * @returns `{ status: 200, data: { workflowId, status } }` or 404
29
+ */
30
+ export declare function getWorkflowStatus(input: {
31
+ workflowId: string;
32
+ }): Promise<LTApiResult>;
33
+ /**
34
+ * Get the result of a completed workflow.
35
+ *
36
+ * Returns 202 if the workflow is still running, 200 with the result
37
+ * payload when complete. Never blocks — always returns immediately.
38
+ *
39
+ * @param input.workflowId — HotMesh workflow ID
40
+ * @returns `{ status: 200, data: { workflowId, result } }` or 202 if running
41
+ */
42
+ export declare function getWorkflowResult(input: {
43
+ workflowId: string;
44
+ }): Promise<LTApiResult>;
45
+ /**
46
+ * Terminate a running workflow.
47
+ *
48
+ * Interrupts the workflow execution immediately via HotMesh.
49
+ *
50
+ * @param input.workflowId — HotMesh workflow ID
51
+ * @returns `{ status: 200, data: { terminated: true, workflowId } }` or 404
52
+ */
53
+ export declare function terminateWorkflow(input: {
54
+ workflowId: string;
55
+ }): Promise<LTApiResult>;
56
+ /**
57
+ * Export the full state of a workflow.
58
+ *
59
+ * Returns the serialized workflow state including all activity
60
+ * results, signals, and metadata.
61
+ *
62
+ * @param input.workflowId — HotMesh workflow ID
63
+ * @returns `{ status: 200, data: <exported state> }` or 404
64
+ */
65
+ export declare function exportWorkflow(input: {
66
+ workflowId: string;
67
+ }): Promise<LTApiResult>;