@hotmeshio/long-tail 0.1.14 → 0.1.16

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 (360) 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 +3 -0
  19. package/build/api/files.js +18 -1
  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/settings.js +6 -1
  29. package/build/api/workflows/config.d.ts +64 -0
  30. package/build/api/workflows/config.js +142 -0
  31. package/build/api/workflows/discovery.d.ts +29 -0
  32. package/build/api/workflows/discovery.js +153 -0
  33. package/build/api/workflows/index.d.ts +3 -0
  34. package/build/api/workflows/index.js +18 -0
  35. package/build/api/workflows/invocation.d.ts +67 -0
  36. package/build/api/workflows/invocation.js +188 -0
  37. package/build/api/yaml-workflows/cron.d.ts +39 -0
  38. package/build/api/yaml-workflows/cron.js +127 -0
  39. package/build/api/{yaml-workflows.d.ts → yaml-workflows/crud.d.ts} +22 -146
  40. package/build/api/{yaml-workflows.js → yaml-workflows/crud.js} +99 -380
  41. package/build/api/yaml-workflows/deploy.d.ts +71 -0
  42. package/build/api/yaml-workflows/deploy.js +223 -0
  43. package/build/api/yaml-workflows/helpers.d.ts +2 -0
  44. package/build/api/yaml-workflows/helpers.js +8 -0
  45. package/build/api/yaml-workflows/index.d.ts +4 -0
  46. package/build/api/yaml-workflows/index.js +27 -0
  47. package/build/api/yaml-workflows/versions.d.ts +43 -0
  48. package/build/api/yaml-workflows/versions.js +124 -0
  49. package/build/bin/ltc.d.ts +2 -0
  50. package/build/bin/ltc.js +220 -0
  51. package/build/examples/seed-data.d.ts +55 -0
  52. package/build/examples/seed-data.js +161 -0
  53. package/build/examples/seed.js +7 -164
  54. package/build/index.d.ts +1 -1
  55. package/build/lib/cli/auth.d.ts +23 -0
  56. package/build/lib/cli/auth.js +167 -0
  57. package/build/lib/cli/client.d.ts +6 -0
  58. package/build/lib/cli/client.js +31 -0
  59. package/build/lib/cli/commands/escalations.d.ts +19 -0
  60. package/build/lib/cli/commands/escalations.js +69 -0
  61. package/build/lib/cli/commands/knowledge.d.ts +18 -0
  62. package/build/lib/cli/commands/knowledge.js +87 -0
  63. package/build/lib/cli/commands/mcp.d.ts +8 -0
  64. package/build/lib/cli/commands/mcp.js +33 -0
  65. package/build/lib/cli/commands/pipelines.d.ts +16 -0
  66. package/build/lib/cli/commands/pipelines.js +67 -0
  67. package/build/lib/cli/commands/status.d.ts +1 -0
  68. package/build/lib/cli/commands/status.js +28 -0
  69. package/build/lib/cli/commands/users.d.ts +7 -0
  70. package/build/lib/cli/commands/users.js +25 -0
  71. package/build/lib/cli/commands/workflows.d.ts +16 -0
  72. package/build/lib/cli/commands/workflows.js +104 -0
  73. package/build/lib/cli/compile.d.ts +2 -0
  74. package/build/lib/cli/compile.js +165 -0
  75. package/build/lib/cli/format.d.ts +23 -0
  76. package/build/lib/cli/format.js +94 -0
  77. package/build/lib/cli/init.d.ts +1 -0
  78. package/build/lib/cli/init.js +61 -0
  79. package/build/lib/cli/output.d.ts +27 -0
  80. package/build/lib/cli/output.js +126 -0
  81. package/build/lib/cli/scanner.d.ts +10 -0
  82. package/build/lib/cli/scanner.js +164 -0
  83. package/build/lib/cli/types.d.ts +16 -0
  84. package/build/lib/cli/types.js +2 -0
  85. package/build/lib/db/schemas/schemas/001_schema.sql +485 -0
  86. package/build/lib/db/schemas/schemas/002_seed.sql +92 -0
  87. package/build/lib/events/socketio.d.ts +12 -0
  88. package/build/lib/events/socketio.js +24 -1
  89. package/build/lib/logger/index.d.ts +0 -9
  90. package/build/lib/logger/index.js +9 -4
  91. package/build/lib/storage/index.js +2 -2
  92. package/build/routes/file-browser.js +14 -0
  93. package/build/routes/index.js +4 -0
  94. package/build/routes/knowledge.d.ts +2 -0
  95. package/build/routes/knowledge.js +141 -0
  96. package/build/routes/nats-credentials.d.ts +2 -0
  97. package/build/routes/nats-credentials.js +22 -0
  98. package/build/routes/yaml-workflows/crud.js +9 -0
  99. package/build/sdk/index.d.ts +17 -0
  100. package/build/sdk/index.js +19 -0
  101. package/build/services/mcp/client/connection-dispatch.d.ts +18 -0
  102. package/build/services/mcp/client/connection-dispatch.js +78 -0
  103. package/build/services/mcp/client/connection-lifecycle.d.ts +48 -0
  104. package/build/services/mcp/client/connection-lifecycle.js +296 -0
  105. package/build/services/mcp/client/connection-test.d.ts +10 -0
  106. package/build/services/mcp/client/connection-test.js +49 -0
  107. package/build/services/mcp/client/connection.d.ts +3 -68
  108. package/build/services/mcp/client/connection.js +15 -393
  109. package/build/services/mcp/server-lifecycle.d.ts +27 -0
  110. package/build/services/mcp/server-lifecycle.js +49 -0
  111. package/build/services/mcp/server-tools.d.ts +13 -0
  112. package/build/services/mcp/server-tools.js +287 -0
  113. package/build/services/mcp/server.d.ts +2 -26
  114. package/build/services/mcp/server.js +7 -315
  115. package/build/services/yaml-workflow/builder-regenerate.d.ts +25 -0
  116. package/build/services/yaml-workflow/builder-regenerate.js +111 -0
  117. package/build/services/yaml-workflow/db-versions.d.ts +17 -0
  118. package/build/services/yaml-workflow/db-versions.js +76 -0
  119. package/build/services/yaml-workflow/db.d.ts +3 -13
  120. package/build/services/yaml-workflow/db.js +15 -71
  121. package/build/services/yaml-workflow/deployer-helpers.js +48 -17
  122. package/build/services/yaml-workflow/durable-compiler/index.d.ts +22 -0
  123. package/build/services/yaml-workflow/durable-compiler/index.js +168 -0
  124. package/build/services/yaml-workflow/durable-compiler/parser.d.ts +12 -0
  125. package/build/services/yaml-workflow/durable-compiler/parser.js +110 -0
  126. package/build/services/yaml-workflow/durable-compiler/prompts.d.ts +18 -0
  127. package/build/services/yaml-workflow/durable-compiler/prompts.js +570 -0
  128. package/build/services/yaml-workflow/durable-compiler/types.d.ts +51 -0
  129. package/build/services/yaml-workflow/durable-compiler/types.js +5 -0
  130. package/build/services/yaml-workflow/pipeline/build/dag-assembly.d.ts +17 -0
  131. package/build/services/yaml-workflow/pipeline/build/dag-assembly.js +192 -0
  132. package/build/services/yaml-workflow/pipeline/build/dag.d.ts +4 -13
  133. package/build/services/yaml-workflow/pipeline/build/dag.js +9 -185
  134. package/build/services/yaml-workflow/pipeline/prompt-templates.d.ts +10 -0
  135. package/build/services/yaml-workflow/pipeline/prompt-templates.js +270 -0
  136. package/build/services/yaml-workflow/pipeline/prompts.d.ts +3 -6
  137. package/build/services/yaml-workflow/pipeline/prompts.js +8 -263
  138. package/build/services/yaml-workflow/workers/register.js +4 -2
  139. package/build/start/adapters.js +4 -1
  140. package/build/start/socket-auth.d.ts +13 -0
  141. package/build/start/socket-auth.js +32 -0
  142. package/build/start/workers.js +6 -5
  143. package/build/system/activities/file-storage.d.ts +4 -0
  144. package/build/system/activities/file-storage.js +7 -1
  145. package/build/system/activities/knowledge.d.ts +23 -0
  146. package/build/system/activities/knowledge.js +50 -10
  147. package/build/system/activities/sql.d.ts +3 -0
  148. package/build/system/activities/sql.js +25 -1
  149. package/build/system/mcp-servers/file-storage.js +3 -1
  150. package/build/system/mcp-servers/human-queue-schemas.d.ts +91 -0
  151. package/build/system/mcp-servers/human-queue-schemas.js +42 -0
  152. package/build/system/mcp-servers/human-queue.d.ts +2 -6
  153. package/build/system/mcp-servers/human-queue.js +9 -51
  154. package/build/system/mcp-servers/knowledge.js +43 -9
  155. package/build/system/mcp-servers/workflow-compiler.js +54 -0
  156. package/build/system/workflows/mcp-triage/activities-proxy.d.ts +21 -0
  157. package/build/system/workflows/mcp-triage/activities-proxy.js +70 -0
  158. package/build/system/workflows/mcp-triage/index.js +17 -75
  159. package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +1 -0
  160. package/build/system/workflows/mcp-workflow-planner/activities/persist.js +1 -0
  161. package/build/system/workflows/mcp-workflow-planner/index.js +2 -0
  162. package/build/tsconfig.tsbuildinfo +1 -1
  163. package/dashboard/dist/assets/{AdminDashboard-Cngijp4Q.js → AdminDashboard-Bprul9Eb.js} +2 -2
  164. package/dashboard/dist/assets/{AdminDashboard-Cngijp4Q.js.map → AdminDashboard-Bprul9Eb.js.map} +1 -1
  165. package/dashboard/dist/assets/AvailableEscalationsPage-H_z5mC10.js +2 -0
  166. package/dashboard/dist/assets/AvailableEscalationsPage-H_z5mC10.js.map +1 -0
  167. package/dashboard/dist/assets/{BotPicker-B8Uvw9Si.js → BotPicker-DcvILNUf.js} +2 -2
  168. package/dashboard/dist/assets/{BotPicker-B8Uvw9Si.js.map → BotPicker-DcvILNUf.js.map} +1 -1
  169. package/dashboard/dist/assets/{CollapsibleSection-DiFPuWOY.js → CollapsibleSection-BWPbzgEe.js} +2 -2
  170. package/dashboard/dist/assets/{CollapsibleSection-DiFPuWOY.js.map → CollapsibleSection-BWPbzgEe.js.map} +1 -1
  171. package/dashboard/dist/assets/{ConfirmDeleteModal-CpXG9uyu.js → ConfirmDeleteModal-Cy6KVLfC.js} +2 -2
  172. package/dashboard/dist/assets/{ConfirmDeleteModal-CpXG9uyu.js.map → ConfirmDeleteModal-Cy6KVLfC.js.map} +1 -1
  173. package/dashboard/dist/assets/{CopyableId-DKsTR9lK.js → CopyableId-CRED8hvk.js} +2 -2
  174. package/dashboard/dist/assets/{CopyableId-DKsTR9lK.js.map → CopyableId-CRED8hvk.js.map} +1 -1
  175. package/dashboard/dist/assets/{CredentialsPage-DlS7Kf40.js → CredentialsPage-BUdvxiE3.js} +2 -2
  176. package/dashboard/dist/assets/{CredentialsPage-DlS7Kf40.js.map → CredentialsPage-BUdvxiE3.js.map} +1 -1
  177. package/dashboard/dist/assets/{CustomDurationPicker-B-9eW3pm.js → CustomDurationPicker-eOk2EqQ5.js} +2 -2
  178. package/dashboard/dist/assets/{CustomDurationPicker-B-9eW3pm.js.map → CustomDurationPicker-eOk2EqQ5.js.map} +1 -1
  179. package/dashboard/dist/assets/{DataTable-DkOokbtL.js → DataTable-bd2PTBJd.js} +2 -2
  180. package/dashboard/dist/assets/{DataTable-DkOokbtL.js.map → DataTable-bd2PTBJd.js.map} +1 -1
  181. package/dashboard/dist/assets/{ElapsedCell-DVtHqM-5.js → ElapsedCell-BGo8vyus.js} +2 -2
  182. package/dashboard/dist/assets/{ElapsedCell-DVtHqM-5.js.map → ElapsedCell-BGo8vyus.js.map} +1 -1
  183. package/dashboard/dist/assets/{EmptyState-C7KIMIbE.js → EmptyState-BygtU-Rh.js} +2 -2
  184. package/dashboard/dist/assets/{EmptyState-C7KIMIbE.js.map → EmptyState-BygtU-Rh.js.map} +1 -1
  185. package/dashboard/dist/assets/{EscalationsOverview-BMKBlkPx.js → EscalationsOverview-DUEcN5MP.js} +2 -2
  186. package/dashboard/dist/assets/{EscalationsOverview-BMKBlkPx.js.map → EscalationsOverview-DUEcN5MP.js.map} +1 -1
  187. package/dashboard/dist/assets/{EventTable-BYZ5OVdQ.js → EventTable-CmFhswLW.js} +2 -2
  188. package/dashboard/dist/assets/{EventTable-BYZ5OVdQ.js.map → EventTable-CmFhswLW.js.map} +1 -1
  189. package/dashboard/dist/assets/{FilterBar-C5r3n6YO.js → FilterBar-BQNzsd3A.js} +2 -2
  190. package/dashboard/dist/assets/{FilterBar-C5r3n6YO.js.map → FilterBar-BQNzsd3A.js.map} +1 -1
  191. package/dashboard/dist/assets/{ListToolbar-BGUajIsW.js → ListToolbar-OWOn-HiC.js} +2 -2
  192. package/dashboard/dist/assets/{ListToolbar-BGUajIsW.js.map → ListToolbar-OWOn-HiC.js.map} +1 -1
  193. package/dashboard/dist/assets/{McpOverview-B_kJYHea.js → McpOverview-OkEzvClD.js} +2 -2
  194. package/dashboard/dist/assets/{McpOverview-B_kJYHea.js.map → McpOverview-OkEzvClD.js.map} +1 -1
  195. package/dashboard/dist/assets/McpQueryDetailPage-C6Ih5sC_.js +5 -0
  196. package/dashboard/dist/assets/McpQueryDetailPage-C6Ih5sC_.js.map +1 -0
  197. package/dashboard/dist/assets/{McpQueryPage-BgAq_bQg.js → McpQueryPage-BAuOf5TL.js} +2 -2
  198. package/dashboard/dist/assets/{McpQueryPage-BgAq_bQg.js.map → McpQueryPage-BAuOf5TL.js.map} +1 -1
  199. package/dashboard/dist/assets/{McpRunDetailPage-B8c0OszR.js → McpRunDetailPage-DMeiG4i_.js} +2 -2
  200. package/dashboard/dist/assets/{McpRunDetailPage-B8c0OszR.js.map → McpRunDetailPage-DMeiG4i_.js.map} +1 -1
  201. package/dashboard/dist/assets/{McpRunsPage-BY8C6k78.js → McpRunsPage-CG3cNJh8.js} +2 -2
  202. package/dashboard/dist/assets/{McpRunsPage-BY8C6k78.js.map → McpRunsPage-CG3cNJh8.js.map} +1 -1
  203. package/dashboard/dist/assets/{Modal-E1yRnCeW.js → Modal-Dir9Rlnx.js} +2 -2
  204. package/dashboard/dist/assets/{Modal-E1yRnCeW.js.map → Modal-Dir9Rlnx.js.map} +1 -1
  205. package/dashboard/dist/assets/{OperatorDashboard-C8MSTzey.js → OperatorDashboard-OqWC6Azy.js} +2 -2
  206. package/dashboard/dist/assets/{OperatorDashboard-C8MSTzey.js.map → OperatorDashboard-OqWC6Azy.js.map} +1 -1
  207. package/dashboard/dist/assets/{PageHeader-Cm5HBQF_.js → PageHeader-FJIemmrC.js} +2 -2
  208. package/dashboard/dist/assets/{PageHeader-Cm5HBQF_.js.map → PageHeader-FJIemmrC.js.map} +1 -1
  209. package/dashboard/dist/assets/{PageHeaderWithStats-CNmWJFSN.js → PageHeaderWithStats-Br5y9qNO.js} +2 -2
  210. package/dashboard/dist/assets/{PageHeaderWithStats-CNmWJFSN.js.map → PageHeaderWithStats-Br5y9qNO.js.map} +1 -1
  211. package/dashboard/dist/assets/{PriorityBadge-HSI4RVhs.js → PriorityBadge-C7D5d_HY.js} +2 -2
  212. package/dashboard/dist/assets/{PriorityBadge-HSI4RVhs.js.map → PriorityBadge-C7D5d_HY.js.map} +1 -1
  213. package/dashboard/dist/assets/{ProcessDetailPage-Dln8622H.js → ProcessDetailPage-DZIP6grw.js} +2 -2
  214. package/dashboard/dist/assets/{ProcessDetailPage-Dln8622H.js.map → ProcessDetailPage-DZIP6grw.js.map} +1 -1
  215. package/dashboard/dist/assets/{ProcessesListPage-bIsd9N_h.js → ProcessesListPage-BQoPYkeB.js} +2 -2
  216. package/dashboard/dist/assets/{ProcessesListPage-bIsd9N_h.js.map → ProcessesListPage-BQoPYkeB.js.map} +1 -1
  217. package/dashboard/dist/assets/{RolePill-BVUp2bF0.js → RolePill-D6nMxMvp.js} +2 -2
  218. package/dashboard/dist/assets/{RolePill-BVUp2bF0.js.map → RolePill-D6nMxMvp.js.map} +1 -1
  219. package/dashboard/dist/assets/RolesPage-CwLnJFhy.js +2 -0
  220. package/dashboard/dist/assets/{RolesPage-kH-Njt25.js.map → RolesPage-CwLnJFhy.js.map} +1 -1
  221. package/dashboard/dist/assets/{RowActions-DbUJPfaW.js → RowActions-JqgAB0p3.js} +2 -2
  222. package/dashboard/dist/assets/{RowActions-DbUJPfaW.js.map → RowActions-JqgAB0p3.js.map} +1 -1
  223. package/dashboard/dist/assets/RunAsSelector-KAlKtitB.js +2 -0
  224. package/dashboard/dist/assets/RunAsSelector-KAlKtitB.js.map +1 -0
  225. package/dashboard/dist/assets/{StatCard-Bs3JbyAz.js → StatCard-B-WLhOaH.js} +2 -2
  226. package/dashboard/dist/assets/{StatCard-Bs3JbyAz.js.map → StatCard-B-WLhOaH.js.map} +1 -1
  227. package/dashboard/dist/assets/{StatusBadge-CakDdsCw.js → StatusBadge-DVCf2ncM.js} +2 -2
  228. package/dashboard/dist/assets/{StatusBadge-CakDdsCw.js.map → StatusBadge-DVCf2ncM.js.map} +1 -1
  229. package/dashboard/dist/assets/{StepIndicator-Cd_SG_yA.js → StepIndicator-D9Xvdf18.js} +2 -2
  230. package/dashboard/dist/assets/{StepIndicator-Cd_SG_yA.js.map → StepIndicator-D9Xvdf18.js.map} +1 -1
  231. package/dashboard/dist/assets/{StickyPagination-Bz0C18nC.js → StickyPagination-CJHMzYJj.js} +2 -2
  232. package/dashboard/dist/assets/{StickyPagination-Bz0C18nC.js.map → StickyPagination-CJHMzYJj.js.map} +1 -1
  233. package/dashboard/dist/assets/SwimlaneTimeline-YiXPDyEL.js +2 -0
  234. package/dashboard/dist/assets/SwimlaneTimeline-YiXPDyEL.js.map +1 -0
  235. package/dashboard/dist/assets/{TagInput-ClFhXG-U.js → TagInput-DcPnUnSJ.js} +2 -2
  236. package/dashboard/dist/assets/{TagInput-ClFhXG-U.js.map → TagInput-DcPnUnSJ.js.map} +1 -1
  237. package/dashboard/dist/assets/{TaskDetailPage-SuMBdARt.js → TaskDetailPage-DftmYWD7.js} +2 -2
  238. package/dashboard/dist/assets/{TaskDetailPage-SuMBdARt.js.map → TaskDetailPage-DftmYWD7.js.map} +1 -1
  239. package/dashboard/dist/assets/{TaskQueuePill-lJR1JW_W.js → TaskQueuePill-BzduBqwy.js} +2 -2
  240. package/dashboard/dist/assets/{TaskQueuePill-lJR1JW_W.js.map → TaskQueuePill-BzduBqwy.js.map} +1 -1
  241. package/dashboard/dist/assets/{TasksListPage-Dkq1Vtbt.js → TasksListPage-DeewV4Gp.js} +2 -2
  242. package/dashboard/dist/assets/{TasksListPage-Dkq1Vtbt.js.map → TasksListPage-DeewV4Gp.js.map} +1 -1
  243. package/dashboard/dist/assets/{TimeAgo-DgfDZ1pl.js → TimeAgo-DJZq-e4R.js} +2 -2
  244. package/dashboard/dist/assets/{TimeAgo-DgfDZ1pl.js.map → TimeAgo-DJZq-e4R.js.map} +1 -1
  245. package/dashboard/dist/assets/{TimestampCell-MpHZ1hMD.js → TimestampCell-Dx5uwGfS.js} +2 -2
  246. package/dashboard/dist/assets/{TimestampCell-MpHZ1hMD.js.map → TimestampCell-Dx5uwGfS.js.map} +1 -1
  247. package/dashboard/dist/assets/{UserName-DqsosA4B.js → UserName-CnGk7MgL.js} +2 -2
  248. package/dashboard/dist/assets/{UserName-DqsosA4B.js.map → UserName-CnGk7MgL.js.map} +1 -1
  249. package/dashboard/dist/assets/{WorkflowExecutionPage-CVlg38C3.js → WorkflowExecutionPage-CPQ0fIwf.js} +2 -2
  250. package/dashboard/dist/assets/{WorkflowExecutionPage-CVlg38C3.js.map → WorkflowExecutionPage-CPQ0fIwf.js.map} +1 -1
  251. package/dashboard/dist/assets/{WorkflowPill-CRpZhjGR.js → WorkflowPill-BrD5d1AG.js} +2 -2
  252. package/dashboard/dist/assets/{WorkflowPill-CRpZhjGR.js.map → WorkflowPill-BrD5d1AG.js.map} +1 -1
  253. package/dashboard/dist/assets/{WorkflowsDashboard-Ugzbs8mV.js → WorkflowsDashboard-BzjhABZP.js} +2 -2
  254. package/dashboard/dist/assets/{WorkflowsDashboard-Ugzbs8mV.js.map → WorkflowsDashboard-BzjhABZP.js.map} +1 -1
  255. package/dashboard/dist/assets/{WorkflowsOverview-CIp_lTNl.js → WorkflowsOverview-lBp2E6rN.js} +2 -2
  256. package/dashboard/dist/assets/{WorkflowsOverview-CIp_lTNl.js.map → WorkflowsOverview-lBp2E6rN.js.map} +1 -1
  257. package/dashboard/dist/assets/YamlWorkflowsPage-C_MkAp2i.js +2 -0
  258. package/dashboard/dist/assets/YamlWorkflowsPage-C_MkAp2i.js.map +1 -0
  259. package/dashboard/dist/assets/{bots-DPfUpVqI.js → bots-fc_O_YIq.js} +2 -2
  260. package/dashboard/dist/assets/{bots-DPfUpVqI.js.map → bots-fc_O_YIq.js.map} +1 -1
  261. package/dashboard/dist/assets/{escalation-RrCDbMC3.js → escalation-BYhLYHBz.js} +2 -2
  262. package/dashboard/dist/assets/{escalation-RrCDbMC3.js.map → escalation-BYhLYHBz.js.map} +1 -1
  263. package/dashboard/dist/assets/{escalation-columns-CDGa9wsD.js → escalation-columns-DjJyuC1g.js} +2 -2
  264. package/dashboard/dist/assets/{escalation-columns-CDGa9wsD.js.map → escalation-columns-DjJyuC1g.js.map} +1 -1
  265. package/dashboard/dist/assets/{helpers-ZSKqdkdS.js → helpers-CQG3Rh2y.js} +2 -2
  266. package/dashboard/dist/assets/{helpers-ZSKqdkdS.js.map → helpers-CQG3Rh2y.js.map} +1 -1
  267. package/dashboard/dist/assets/{index-DX6zxr6t.js → index-2nBhR7Dg.js} +2 -2
  268. package/dashboard/dist/assets/{index-DX6zxr6t.js.map → index-2nBhR7Dg.js.map} +1 -1
  269. package/dashboard/dist/assets/index-4IUoh_hd.js +2 -0
  270. package/dashboard/dist/assets/{index-K40Qw1tk.js.map → index-4IUoh_hd.js.map} +1 -1
  271. package/dashboard/dist/assets/index-B2CqPzLK.js +2 -0
  272. package/dashboard/dist/assets/index-B2CqPzLK.js.map +1 -0
  273. package/dashboard/dist/assets/index-B78xalb4.js +2 -0
  274. package/dashboard/dist/assets/index-B78xalb4.js.map +1 -0
  275. package/dashboard/dist/assets/index-BI8r69O_.js +2 -0
  276. package/dashboard/dist/assets/{index-C90ZPzXk.js.map → index-BI8r69O_.js.map} +1 -1
  277. package/dashboard/dist/assets/index-C5TUqJu0.css +1 -0
  278. package/dashboard/dist/assets/{index-BmVCyB6C.js → index-CUqCBBZG.js} +2 -2
  279. package/dashboard/dist/assets/{index-BmVCyB6C.js.map → index-CUqCBBZG.js.map} +1 -1
  280. package/dashboard/dist/assets/index-D51PaQZY.js +2 -0
  281. package/dashboard/dist/assets/index-D51PaQZY.js.map +1 -0
  282. package/dashboard/dist/assets/{index-BbI2dzhJ.js → index-DNtXXy1o.js} +2 -2
  283. package/dashboard/dist/assets/{index-BbI2dzhJ.js.map → index-DNtXXy1o.js.map} +1 -1
  284. package/dashboard/dist/assets/{index-DNytWfSZ.js → index-DR4qQvlW.js} +2 -2
  285. package/dashboard/dist/assets/{index-DNytWfSZ.js.map → index-DR4qQvlW.js.map} +1 -1
  286. package/dashboard/dist/assets/index-Dh0PCbR-.js +15 -0
  287. package/dashboard/dist/assets/index-Dh0PCbR-.js.map +1 -0
  288. package/dashboard/dist/assets/index-KYpLvJKB.js +5 -0
  289. package/dashboard/dist/assets/index-KYpLvJKB.js.map +1 -0
  290. package/dashboard/dist/assets/{index-Cmgrk7PQ.js → index-sNrqYt0Q.js} +73 -73
  291. package/dashboard/dist/assets/index-sNrqYt0Q.js.map +1 -0
  292. package/dashboard/dist/assets/{mcp-CNE44TSp.js → mcp-D2XfRh8v.js} +2 -2
  293. package/dashboard/dist/assets/{mcp-CNE44TSp.js.map → mcp-D2XfRh8v.js.map} +1 -1
  294. package/dashboard/dist/assets/{mcp-query-RQX0uN-5.js → mcp-query-CIx_mIC7.js} +2 -2
  295. package/dashboard/dist/assets/{mcp-query-RQX0uN-5.js.map → mcp-query-CIx_mIC7.js.map} +1 -1
  296. package/dashboard/dist/assets/{mcp-runs-0w40bdz-.js → mcp-runs-C9_J4LIH.js} +2 -2
  297. package/dashboard/dist/assets/{mcp-runs-0w40bdz-.js.map → mcp-runs-C9_J4LIH.js.map} +1 -1
  298. package/dashboard/dist/assets/{namespaces-BbmdXuPp.js → namespaces-BwMljx6f.js} +2 -2
  299. package/dashboard/dist/assets/{namespaces-BbmdXuPp.js.map → namespaces-BwMljx6f.js.map} +1 -1
  300. package/dashboard/dist/assets/{roles-DoHYlhWH.js → roles-Bd_sTV6I.js} +2 -2
  301. package/dashboard/dist/assets/{roles-DoHYlhWH.js.map → roles-Bd_sTV6I.js.map} +1 -1
  302. package/dashboard/dist/assets/{settings-BAiJiCHS.js → settings-BCb8eFyA.js} +2 -2
  303. package/dashboard/dist/assets/{settings-BAiJiCHS.js.map → settings-BCb8eFyA.js.map} +1 -1
  304. package/dashboard/dist/assets/{tasks-CvroqHtm.js → tasks-Bq54qGGq.js} +2 -2
  305. package/dashboard/dist/assets/{tasks-CvroqHtm.js.map → tasks-Bq54qGGq.js.map} +1 -1
  306. package/dashboard/dist/assets/useEventHooks-BTbGf536.js +2 -0
  307. package/dashboard/dist/assets/{useEventHooks-BHMbzR_y.js.map → useEventHooks-BTbGf536.js.map} +1 -1
  308. package/dashboard/dist/assets/useYamlActivityEvents-CsYP09W5.js +2 -0
  309. package/dashboard/dist/assets/{useYamlActivityEvents-D56KV14X.js.map → useYamlActivityEvents-CsYP09W5.js.map} +1 -1
  310. package/dashboard/dist/assets/{users-CxIMy_xw.js → users-BTBhafGc.js} +2 -2
  311. package/dashboard/dist/assets/{users-CxIMy_xw.js.map → users-BTBhafGc.js.map} +1 -1
  312. package/dashboard/dist/assets/{vendor-icons-AFGxSeQS.js → vendor-icons-CWl44VA6.js} +77 -77
  313. package/dashboard/dist/assets/vendor-icons-CWl44VA6.js.map +1 -0
  314. package/dashboard/dist/assets/{workflows-yR9yais7.js → workflows-BkzA4ahe.js} +2 -2
  315. package/dashboard/dist/assets/{workflows-yR9yais7.js.map → workflows-BkzA4ahe.js.map} +1 -1
  316. package/dashboard/dist/assets/{yaml-workflows-QVF2MZ0l.js → yaml-workflows-Cs0EYp0F.js} +2 -2
  317. package/dashboard/dist/assets/{yaml-workflows-QVF2MZ0l.js.map → yaml-workflows-Cs0EYp0F.js.map} +1 -1
  318. package/dashboard/dist/index.html +3 -3
  319. package/docs/api/http/file-browser.md +101 -0
  320. package/docs/api/http/knowledge.md +203 -0
  321. package/docs/api/http/settings.md +6 -4
  322. package/docs/api/sdk/files.md +68 -0
  323. package/docs/api/sdk/knowledge.md +126 -0
  324. package/docs/api/sdk/settings.md +3 -2
  325. package/docs/cli.md +171 -0
  326. package/docs/compilation.md +16 -0
  327. package/docs/compiler.md +311 -0
  328. package/docs/events.md +19 -0
  329. package/docs/workflows.md +19 -0
  330. package/package.json +13 -2
  331. package/build/api/escalations.d.ts +0 -271
  332. package/build/api/escalations.js +0 -932
  333. package/build/api/workflows.d.ts +0 -158
  334. package/build/api/workflows.js +0 -414
  335. package/dashboard/dist/assets/AvailableEscalationsPage-CpBfGV1h.js +0 -2
  336. package/dashboard/dist/assets/AvailableEscalationsPage-CpBfGV1h.js.map +0 -1
  337. package/dashboard/dist/assets/McpQueryDetailPage-Czsmovqw.js +0 -5
  338. package/dashboard/dist/assets/McpQueryDetailPage-Czsmovqw.js.map +0 -1
  339. package/dashboard/dist/assets/RolesPage-kH-Njt25.js +0 -2
  340. package/dashboard/dist/assets/SwimlaneTimeline-Cfe-xQRX.js +0 -2
  341. package/dashboard/dist/assets/SwimlaneTimeline-Cfe-xQRX.js.map +0 -1
  342. package/dashboard/dist/assets/YamlWorkflowsPage-BICF0fRO.js +0 -2
  343. package/dashboard/dist/assets/YamlWorkflowsPage-BICF0fRO.js.map +0 -1
  344. package/dashboard/dist/assets/helpers-rMEcLwKs.js +0 -2
  345. package/dashboard/dist/assets/helpers-rMEcLwKs.js.map +0 -1
  346. package/dashboard/dist/assets/index-ABcJHHlN.js +0 -5
  347. package/dashboard/dist/assets/index-ABcJHHlN.js.map +0 -1
  348. package/dashboard/dist/assets/index-B91h_jZ0.js +0 -15
  349. package/dashboard/dist/assets/index-B91h_jZ0.js.map +0 -1
  350. package/dashboard/dist/assets/index-C1E5GTs9.js +0 -2
  351. package/dashboard/dist/assets/index-C1E5GTs9.js.map +0 -1
  352. package/dashboard/dist/assets/index-C90ZPzXk.js +0 -2
  353. package/dashboard/dist/assets/index-Cmgrk7PQ.js.map +0 -1
  354. package/dashboard/dist/assets/index-DeX-ezqf.css +0 -1
  355. package/dashboard/dist/assets/index-K40Qw1tk.js +0 -2
  356. package/dashboard/dist/assets/index-lCyNr5Xk.js +0 -2
  357. package/dashboard/dist/assets/index-lCyNr5Xk.js.map +0 -1
  358. package/dashboard/dist/assets/useEventHooks-BHMbzR_y.js +0 -2
  359. package/dashboard/dist/assets/useYamlActivityEvents-D56KV14X.js +0 -2
  360. package/dashboard/dist/assets/vendor-icons-AFGxSeQS.js.map +0 -1
@@ -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>;
@@ -0,0 +1,188 @@
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.invokeWorkflow = invokeWorkflow;
37
+ exports.getWorkflowStatus = getWorkflowStatus;
38
+ exports.getWorkflowResult = getWorkflowResult;
39
+ exports.terminateWorkflow = terminateWorkflow;
40
+ exports.exportWorkflow = exportWorkflow;
41
+ const workers_1 = require("../../workers");
42
+ const exportService = __importStar(require("../../services/export"));
43
+ const task_1 = require("../../services/task");
44
+ const workflow_invocation_1 = require("../../services/workflow-invocation");
45
+ function isResolveError(err) {
46
+ return err?.message?.includes('Cannot resolve workflow');
47
+ }
48
+ /**
49
+ * Start a workflow — proxy for `Durable.Client.workflow.start()`.
50
+ *
51
+ * Resolves the task queue, enforces auth/role constraints, builds the
52
+ * LTEnvelope with IAM context, and delegates to the Durable client.
53
+ * Any WorkflowOptions field (workflowId, expire, entity, namespace,
54
+ * search, signalIn, pending, etc.) can be passed via `options` and
55
+ * flows through to the Durable client unchanged.
56
+ *
57
+ * @see https://docs.hotmesh.io/types/types_durable.WorkflowOptions.html
58
+ */
59
+ async function invokeWorkflow(input, auth) {
60
+ try {
61
+ await (0, workflow_invocation_1.checkInvocationRoles)(input.type, auth.userId, auth.role);
62
+ const result = await (0, workflow_invocation_1.invokeWorkflow)({
63
+ workflowType: input.type,
64
+ data: input.data || {},
65
+ metadata: input.metadata,
66
+ executeAs: input.execute_as,
67
+ options: input.options,
68
+ auth: {
69
+ userId: auth.userId,
70
+ role: auth.role,
71
+ scopes: auth.scopes,
72
+ },
73
+ });
74
+ return {
75
+ status: 202,
76
+ data: { workflowId: result.workflowId, message: 'Workflow started' },
77
+ };
78
+ }
79
+ catch (err) {
80
+ const status = err instanceof workflow_invocation_1.InvocationError ? err.statusCode : 500;
81
+ return { status, error: err.message };
82
+ }
83
+ }
84
+ /**
85
+ * Get the execution status of a workflow.
86
+ *
87
+ * Returns the HotMesh status code (0 = completed, 1 = running).
88
+ * Resolves the workflow handle via task record or worker registry.
89
+ *
90
+ * @param input.workflowId — HotMesh workflow ID
91
+ * @returns `{ status: 200, data: { workflowId, status } }` or 404
92
+ */
93
+ async function getWorkflowStatus(input) {
94
+ try {
95
+ const resolved = await (0, task_1.resolveWorkflowHandle)(input.workflowId);
96
+ const client = (0, workers_1.createClient)();
97
+ const handle = await client.workflow.getHandle(resolved.taskQueue, resolved.workflowName, input.workflowId);
98
+ const status = await handle.status();
99
+ return {
100
+ status: 200,
101
+ data: { workflowId: input.workflowId, status },
102
+ };
103
+ }
104
+ catch (err) {
105
+ if (isResolveError(err))
106
+ return { status: 404, error: err.message };
107
+ return { status: 500, error: err.message };
108
+ }
109
+ }
110
+ /**
111
+ * Get the result of a completed workflow.
112
+ *
113
+ * Returns 202 if the workflow is still running, 200 with the result
114
+ * payload when complete. Never blocks — always returns immediately.
115
+ *
116
+ * @param input.workflowId — HotMesh workflow ID
117
+ * @returns `{ status: 200, data: { workflowId, result } }` or 202 if running
118
+ */
119
+ async function getWorkflowResult(input) {
120
+ try {
121
+ const resolved = await (0, task_1.resolveWorkflowHandle)(input.workflowId);
122
+ const client = (0, workers_1.createClient)();
123
+ const handle = await client.workflow.getHandle(resolved.taskQueue, resolved.workflowName, input.workflowId);
124
+ const status = await handle.status();
125
+ if (status !== 0) {
126
+ return {
127
+ status: 202,
128
+ data: { workflowId: input.workflowId, status: 'running' },
129
+ };
130
+ }
131
+ const result = await handle.result();
132
+ return {
133
+ status: 200,
134
+ data: { workflowId: input.workflowId, result },
135
+ };
136
+ }
137
+ catch (err) {
138
+ if (isResolveError(err))
139
+ return { status: 404, error: err.message };
140
+ return { status: 500, error: err.message };
141
+ }
142
+ }
143
+ /**
144
+ * Terminate a running workflow.
145
+ *
146
+ * Interrupts the workflow execution immediately via HotMesh.
147
+ *
148
+ * @param input.workflowId — HotMesh workflow ID
149
+ * @returns `{ status: 200, data: { terminated: true, workflowId } }` or 404
150
+ */
151
+ async function terminateWorkflow(input) {
152
+ try {
153
+ const resolved = await (0, task_1.resolveWorkflowHandle)(input.workflowId);
154
+ const client = (0, workers_1.createClient)();
155
+ const handle = await client.workflow.getHandle(resolved.taskQueue, resolved.workflowName, input.workflowId);
156
+ await handle.terminate();
157
+ return {
158
+ status: 200,
159
+ data: { terminated: true, workflowId: input.workflowId },
160
+ };
161
+ }
162
+ catch (err) {
163
+ if (isResolveError(err))
164
+ return { status: 404, error: err.message };
165
+ return { status: 500, error: err.message };
166
+ }
167
+ }
168
+ /**
169
+ * Export the full state of a workflow.
170
+ *
171
+ * Returns the serialized workflow state including all activity
172
+ * results, signals, and metadata.
173
+ *
174
+ * @param input.workflowId — HotMesh workflow ID
175
+ * @returns `{ status: 200, data: <exported state> }` or 404
176
+ */
177
+ async function exportWorkflow(input) {
178
+ try {
179
+ const resolved = await (0, task_1.resolveWorkflowHandle)(input.workflowId);
180
+ const exported = await exportService.exportWorkflow(input.workflowId, resolved.taskQueue, resolved.workflowName);
181
+ return { status: 200, data: exported };
182
+ }
183
+ catch (err) {
184
+ if (isResolveError(err))
185
+ return { status: 404, error: err.message };
186
+ return { status: 500, error: err.message };
187
+ }
188
+ }
@@ -0,0 +1,39 @@
1
+ import type { LTApiResult } from '../../types/sdk';
2
+ /**
3
+ * Set or update the cron schedule for a YAML workflow.
4
+ *
5
+ * Persists the schedule in the DB and restarts the in-process cron timer via the
6
+ * cron registry so the change takes effect immediately.
7
+ *
8
+ * @param input.id — UUID of the workflow to schedule
9
+ * @param input.cron_schedule — cron expression (e.g. "0 * * * *")
10
+ * @param input.cron_envelope — optional payload passed to each scheduled invocation
11
+ * @param input.execute_as — optional identity override for scheduled executions
12
+ * @returns `{ status: 200, data: YamlWorkflow }` the updated workflow record with cron fields set
13
+ */
14
+ export declare function setCronSchedule(input: {
15
+ id: string;
16
+ cron_schedule: string;
17
+ cron_envelope?: any;
18
+ execute_as?: string;
19
+ }): Promise<LTApiResult>;
20
+ /**
21
+ * Remove the cron schedule from a YAML workflow.
22
+ *
23
+ * Stops the in-process cron timer first, then clears the schedule fields in the DB.
24
+ *
25
+ * @param input.id — UUID of the workflow to unschedule
26
+ * @returns `{ status: 200, data: YamlWorkflow }` the updated workflow record with cron fields cleared
27
+ */
28
+ export declare function clearCronSchedule(input: {
29
+ id: string;
30
+ }): Promise<LTApiResult>;
31
+ /**
32
+ * List all YAML workflows that have a cron schedule, with their live timer status.
33
+ *
34
+ * Fetches all cron-scheduled workflows from the DB and cross-references with the
35
+ * in-process cron registry to determine which timers are actually running.
36
+ *
37
+ * @returns `{ status: 200, data: { schedules: Array<{ id, name, graph_topic, app_id, cron_schedule, execute_as, active }> } }`
38
+ */
39
+ export declare function getCronStatus(): Promise<LTApiResult>;