@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,123 @@
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.getEscalation = getEscalation;
37
+ exports.getEscalationsByWorkflowId = getEscalationsByWorkflowId;
38
+ exports.escalateToRole = escalateToRole;
39
+ const escalationService = __importStar(require("../../services/escalation"));
40
+ const userService = __importStar(require("../../services/user"));
41
+ const roleService = __importStar(require("../../services/role"));
42
+ // ── Single-escalation routes ───────────────────────────────────────────────
43
+ /**
44
+ * Get a single escalation by ID.
45
+ *
46
+ * Non-superadmin users must hold the escalation's assigned role.
47
+ *
48
+ * @param input.id — escalation UUID
49
+ * @param auth — authenticated user context
50
+ * @returns `{ status: 200, data: <escalation record> }` or 403/404
51
+ */
52
+ async function getEscalation(input, auth) {
53
+ try {
54
+ const escalation = await escalationService.getEscalation(input.id);
55
+ if (!escalation) {
56
+ return { status: 404, error: 'Escalation not found' };
57
+ }
58
+ const isSuperAdminUser = await userService.isSuperAdmin(auth.userId);
59
+ if (!isSuperAdminUser) {
60
+ const userHasRole = await userService.hasRole(auth.userId, escalation.role);
61
+ if (!userHasRole) {
62
+ return { status: 403, error: 'Not authorized to view this escalation' };
63
+ }
64
+ }
65
+ return { status: 200, data: escalation };
66
+ }
67
+ catch (err) {
68
+ return { status: 500, error: err.message };
69
+ }
70
+ }
71
+ /**
72
+ * List all escalations for a given workflow ID.
73
+ *
74
+ * @param input.workflowId — HotMesh workflow ID
75
+ * @returns `{ status: 200, data: { escalations } }`
76
+ */
77
+ async function getEscalationsByWorkflowId(input) {
78
+ try {
79
+ const escalations = await escalationService.getEscalationsByWorkflowId(input.workflowId);
80
+ return { status: 200, data: { escalations } };
81
+ }
82
+ catch (err) {
83
+ return { status: 500, error: err.message };
84
+ }
85
+ }
86
+ /**
87
+ * Route a pending escalation to a different role.
88
+ *
89
+ * The user must be authorized to escalate from the current role to the
90
+ * target role (checked via escalation chain configuration).
91
+ *
92
+ * @param input.id — escalation UUID
93
+ * @param input.targetRole — destination role
94
+ * @param auth — authenticated user context
95
+ * @returns `{ status: 200, data: <updated escalation> }` or 403/404/409
96
+ */
97
+ async function escalateToRole(input, auth) {
98
+ try {
99
+ const { id, targetRole } = input;
100
+ if (!targetRole || typeof targetRole !== 'string') {
101
+ return { status: 400, error: 'targetRole is required' };
102
+ }
103
+ const escalation = await escalationService.getEscalation(id);
104
+ if (!escalation) {
105
+ return { status: 404, error: 'Escalation not found' };
106
+ }
107
+ if (escalation.status !== 'pending') {
108
+ return { status: 409, error: 'Escalation is not pending' };
109
+ }
110
+ const canEscalate = await roleService.canEscalateTo(auth.userId, escalation.role, targetRole);
111
+ if (!canEscalate) {
112
+ return { status: 403, error: 'Not authorized to escalate to this role' };
113
+ }
114
+ const updated = await escalationService.escalateToRole(id, targetRole);
115
+ if (!updated) {
116
+ return { status: 409, error: 'Escalation could not be updated' };
117
+ }
118
+ return { status: 200, data: updated };
119
+ }
120
+ catch (err) {
121
+ return { status: 500, error: err.message };
122
+ }
123
+ }
@@ -7,6 +7,9 @@ export declare function browseFiles(input: {
7
7
  export declare function getFileMetadata(input: {
8
8
  filePath: string;
9
9
  }): Promise<LTApiResult>;
10
+ export declare function deleteFile(input: {
11
+ filePath: string;
12
+ }): Promise<LTApiResult>;
10
13
  export declare function generateSignedUrl(input: {
11
14
  filePath: string;
12
15
  expiresIn: number;
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.browseFiles = browseFiles;
4
4
  exports.getFileMetadata = getFileMetadata;
5
+ exports.deleteFile = deleteFile;
5
6
  exports.generateSignedUrl = generateSignedUrl;
6
7
  const storage_1 = require("../lib/storage");
8
+ const mime_1 = require("../lib/storage/mime");
7
9
  const ALLOWED_EXPIRY = [3600, 21600, 86400, 604800, 2592000]; // 1h, 6h, 24h, 7d, 30d
8
10
  async function browseFiles(input) {
9
11
  try {
@@ -17,7 +19,10 @@ async function browseFiles(input) {
17
19
  async function getFileMetadata(input) {
18
20
  try {
19
21
  const metadata = await (0, storage_1.getStorageBackend)().getMetadata(input.filePath);
20
- return { status: 200, data: { path: input.filePath, ...metadata } };
22
+ const contentType = (!metadata.content_type || metadata.content_type === 'application/octet-stream')
23
+ ? (0, mime_1.mimeFromPath)(input.filePath)
24
+ : metadata.content_type;
25
+ return { status: 200, data: { path: input.filePath, ...metadata, content_type: contentType } };
21
26
  }
22
27
  catch (err) {
23
28
  if (err.message?.includes('not found') || err.name === 'NotFound') {
@@ -26,6 +31,18 @@ async function getFileMetadata(input) {
26
31
  return { status: 500, error: err.message };
27
32
  }
28
33
  }
34
+ async function deleteFile(input) {
35
+ try {
36
+ const result = await (0, storage_1.getStorageBackend)().delete(input.filePath);
37
+ if (!result.deleted) {
38
+ return { status: 404, error: 'File not found' };
39
+ }
40
+ return { status: 200, data: { deleted: true, path: input.filePath } };
41
+ }
42
+ catch (err) {
43
+ return { status: 500, error: err.message };
44
+ }
45
+ }
29
46
  async function generateSignedUrl(input) {
30
47
  if (!ALLOWED_EXPIRY.includes(input.expiresIn)) {
31
48
  return {
@@ -0,0 +1,36 @@
1
+ import type { LTApiResult } from '../types/sdk';
2
+ export declare function listDomains(): Promise<LTApiResult>;
3
+ export declare function listEntries(input: {
4
+ domain: string;
5
+ tags?: string[];
6
+ search?: string;
7
+ limit?: number;
8
+ offset?: number;
9
+ }): Promise<LTApiResult>;
10
+ export declare function getEntry(input: {
11
+ domain: string;
12
+ key: string;
13
+ }): Promise<LTApiResult>;
14
+ export declare function storeEntry(input: {
15
+ domain: string;
16
+ key: string;
17
+ data: Record<string, any>;
18
+ tags?: string[];
19
+ replace?: boolean;
20
+ }): Promise<LTApiResult>;
21
+ export declare function setField(input: {
22
+ domain: string;
23
+ key: string;
24
+ path: string;
25
+ value: any;
26
+ tags?: string[];
27
+ }): Promise<LTApiResult>;
28
+ export declare function removeField(input: {
29
+ domain: string;
30
+ key: string;
31
+ path: string;
32
+ }): Promise<LTApiResult>;
33
+ export declare function deleteEntry(input: {
34
+ domain: string;
35
+ key: string;
36
+ }): Promise<LTApiResult>;
@@ -0,0 +1,112 @@
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.listDomains = listDomains;
37
+ exports.listEntries = listEntries;
38
+ exports.getEntry = getEntry;
39
+ exports.storeEntry = storeEntry;
40
+ exports.setField = setField;
41
+ exports.removeField = removeField;
42
+ exports.deleteEntry = deleteEntry;
43
+ const knowledgeActivity = __importStar(require("../system/activities/knowledge"));
44
+ async function listDomains() {
45
+ try {
46
+ const result = await knowledgeActivity.listDomains();
47
+ return { status: 200, data: result };
48
+ }
49
+ catch (err) {
50
+ return { status: 500, error: err.message };
51
+ }
52
+ }
53
+ async function listEntries(input) {
54
+ try {
55
+ const result = await knowledgeActivity.listKnowledge(input);
56
+ return { status: 200, data: result };
57
+ }
58
+ catch (err) {
59
+ return { status: 500, error: err.message };
60
+ }
61
+ }
62
+ async function getEntry(input) {
63
+ try {
64
+ const result = await knowledgeActivity.getKnowledge(input);
65
+ return { status: 200, data: result };
66
+ }
67
+ catch (err) {
68
+ return { status: 500, error: err.message };
69
+ }
70
+ }
71
+ async function storeEntry(input) {
72
+ try {
73
+ const result = await knowledgeActivity.storeKnowledge(input);
74
+ return { status: 200, data: result };
75
+ }
76
+ catch (err) {
77
+ return { status: 500, error: err.message };
78
+ }
79
+ }
80
+ async function setField(input) {
81
+ try {
82
+ const result = await knowledgeActivity.setKnowledgeField(input);
83
+ return { status: 200, data: result };
84
+ }
85
+ catch (err) {
86
+ return { status: 500, error: err.message };
87
+ }
88
+ }
89
+ async function removeField(input) {
90
+ try {
91
+ const result = await knowledgeActivity.removeKnowledgeField(input);
92
+ if (!result.removed) {
93
+ return { status: 404, error: 'Field not found' };
94
+ }
95
+ return { status: 200, data: result };
96
+ }
97
+ catch (err) {
98
+ return { status: 500, error: err.message };
99
+ }
100
+ }
101
+ async function deleteEntry(input) {
102
+ try {
103
+ const result = await knowledgeActivity.deleteKnowledge(input);
104
+ if (!result.deleted) {
105
+ return { status: 404, error: 'Entry not found' };
106
+ }
107
+ return { status: 200, data: { deleted: true, domain: input.domain, key: input.key } };
108
+ }
109
+ catch (err) {
110
+ return { status: 500, error: err.message };
111
+ }
112
+ }
@@ -0,0 +1,2 @@
1
+ export { listMcpServers, createMcpServer, testConnection, getMcpServer, updateMcpServer, deleteMcpServer, connectMcpServer, disconnectMcpServer, getCredentialStatus, } from './servers';
2
+ export { listMcpServerTools, callMcpTool, } from './tools';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callMcpTool = exports.listMcpServerTools = exports.getCredentialStatus = exports.disconnectMcpServer = exports.connectMcpServer = exports.deleteMcpServer = exports.updateMcpServer = exports.getMcpServer = exports.testConnection = exports.createMcpServer = exports.listMcpServers = void 0;
4
+ var servers_1 = require("./servers");
5
+ Object.defineProperty(exports, "listMcpServers", { enumerable: true, get: function () { return servers_1.listMcpServers; } });
6
+ Object.defineProperty(exports, "createMcpServer", { enumerable: true, get: function () { return servers_1.createMcpServer; } });
7
+ Object.defineProperty(exports, "testConnection", { enumerable: true, get: function () { return servers_1.testConnection; } });
8
+ Object.defineProperty(exports, "getMcpServer", { enumerable: true, get: function () { return servers_1.getMcpServer; } });
9
+ Object.defineProperty(exports, "updateMcpServer", { enumerable: true, get: function () { return servers_1.updateMcpServer; } });
10
+ Object.defineProperty(exports, "deleteMcpServer", { enumerable: true, get: function () { return servers_1.deleteMcpServer; } });
11
+ Object.defineProperty(exports, "connectMcpServer", { enumerable: true, get: function () { return servers_1.connectMcpServer; } });
12
+ Object.defineProperty(exports, "disconnectMcpServer", { enumerable: true, get: function () { return servers_1.disconnectMcpServer; } });
13
+ Object.defineProperty(exports, "getCredentialStatus", { enumerable: true, get: function () { return servers_1.getCredentialStatus; } });
14
+ var tools_1 = require("./tools");
15
+ Object.defineProperty(exports, "listMcpServerTools", { enumerable: true, get: function () { return tools_1.listMcpServerTools; } });
16
+ Object.defineProperty(exports, "callMcpTool", { enumerable: true, get: function () { return tools_1.callMcpTool; } });
@@ -1,4 +1,4 @@
1
- import type { LTApiResult, LTApiAuth } from '../types/sdk';
1
+ import type { LTApiResult, LTApiAuth } from '../../types/sdk';
2
2
  /**
3
3
  * List registered MCP servers with optional filtering and pagination.
4
4
  *
@@ -126,35 +126,3 @@ export declare function disconnectMcpServer(input: {
126
126
  export declare function getCredentialStatus(input: {
127
127
  id: string;
128
128
  }, auth?: LTApiAuth): Promise<LTApiResult>;
129
- /**
130
- * List all tools exposed by a connected MCP server.
131
- *
132
- * Requires the MCP adapter to be registered and the server to be connected.
133
- *
134
- * @param input.id — the MCP server identifier
135
- * @returns `{ status: 200, data: { tools } }` array of tool descriptors
136
- */
137
- export declare function listMcpServerTools(input: {
138
- id: string;
139
- }): Promise<LTApiResult>;
140
- /**
141
- * Invoke a specific tool on a connected MCP server.
142
- *
143
- * Passes the tool arguments and an optional auth context (derived from
144
- * `execute_as` or the authenticated user) to the MCP adapter. Returns
145
- * 422 with `missing_credential` if the tool requires a credential the
146
- * user has not registered.
147
- *
148
- * @param input.id — the MCP server identifier
149
- * @param input.toolName — name of the tool to invoke
150
- * @param input.arguments — key-value arguments to pass to the tool
151
- * @param input.execute_as — optional user ID to impersonate for the tool call
152
- * @param auth — authenticated user context
153
- * @returns `{ status: 200, data: { result } }` the tool execution result
154
- */
155
- export declare function callMcpTool(input: {
156
- id: string;
157
- toolName: string;
158
- arguments?: Record<string, any>;
159
- execute_as?: string;
160
- }, auth?: LTApiAuth): Promise<LTApiResult>;
@@ -42,10 +42,8 @@ exports.deleteMcpServer = deleteMcpServer;
42
42
  exports.connectMcpServer = connectMcpServer;
43
43
  exports.disconnectMcpServer = disconnectMcpServer;
44
44
  exports.getCredentialStatus = getCredentialStatus;
45
- exports.listMcpServerTools = listMcpServerTools;
46
- exports.callMcpTool = callMcpTool;
47
- const mcpDbService = __importStar(require("../services/mcp/db"));
48
- const mcp_1 = require("../services/mcp");
45
+ const mcpDbService = __importStar(require("../../services/mcp/db"));
46
+ const mcp_1 = require("../../services/mcp");
49
47
  /**
50
48
  * List registered MCP servers with optional filtering and pagination.
51
49
  *
@@ -113,7 +111,7 @@ async function testConnection(input) {
113
111
  if (!input.transport_type || !input.transport_config) {
114
112
  return { status: 400, error: 'transport_type and transport_config are required' };
115
113
  }
116
- const { testConnection: testConn } = await Promise.resolve().then(() => __importStar(require('../services/mcp/client/connection')));
114
+ const { testConnection: testConn } = await Promise.resolve().then(() => __importStar(require('../../services/mcp/client/connection')));
117
115
  const result = await testConn(input.transport_type, input.transport_config);
118
116
  return { status: 200, data: result };
119
117
  }
@@ -241,7 +239,7 @@ async function getCredentialStatus(input, auth) {
241
239
  const registered = [];
242
240
  const missing = [];
243
241
  if (auth?.userId && required.length > 0) {
244
- const { resolveCredential } = await Promise.resolve().then(() => __importStar(require('../services/iam/credentials')));
242
+ const { resolveCredential } = await Promise.resolve().then(() => __importStar(require('../../services/iam/credentials')));
245
243
  for (const provider of required) {
246
244
  const cred = await resolveCredential({ id: auth.userId, type: 'user', roles: [] }, provider);
247
245
  if (cred)
@@ -259,62 +257,3 @@ async function getCredentialStatus(input, auth) {
259
257
  return { status: 500, error: err.message };
260
258
  }
261
259
  }
262
- /**
263
- * List all tools exposed by a connected MCP server.
264
- *
265
- * Requires the MCP adapter to be registered and the server to be connected.
266
- *
267
- * @param input.id — the MCP server identifier
268
- * @returns `{ status: 200, data: { tools } }` array of tool descriptors
269
- */
270
- async function listMcpServerTools(input) {
271
- try {
272
- const adapter = mcp_1.mcpRegistry.current;
273
- if (!adapter) {
274
- return { status: 400, error: 'MCP adapter not registered' };
275
- }
276
- const tools = await adapter.listTools(input.id);
277
- return { status: 200, data: { tools } };
278
- }
279
- catch (err) {
280
- return { status: 500, error: err.message };
281
- }
282
- }
283
- /**
284
- * Invoke a specific tool on a connected MCP server.
285
- *
286
- * Passes the tool arguments and an optional auth context (derived from
287
- * `execute_as` or the authenticated user) to the MCP adapter. Returns
288
- * 422 with `missing_credential` if the tool requires a credential the
289
- * user has not registered.
290
- *
291
- * @param input.id — the MCP server identifier
292
- * @param input.toolName — name of the tool to invoke
293
- * @param input.arguments — key-value arguments to pass to the tool
294
- * @param input.execute_as — optional user ID to impersonate for the tool call
295
- * @param auth — authenticated user context
296
- * @returns `{ status: 200, data: { result } }` the tool execution result
297
- */
298
- async function callMcpTool(input, auth) {
299
- try {
300
- const adapter = mcp_1.mcpRegistry.current;
301
- if (!adapter) {
302
- return { status: 400, error: 'MCP adapter not registered' };
303
- }
304
- const authContext = (input.execute_as || auth?.userId)
305
- ? { userId: input.execute_as || auth?.userId }
306
- : undefined;
307
- const result = await adapter.callTool(input.id, input.toolName, input.arguments || {}, authContext);
308
- return { status: 200, data: { result } };
309
- }
310
- catch (err) {
311
- if (err.name === 'MissingCredentialError') {
312
- return {
313
- status: 422,
314
- error: 'missing_credential',
315
- ...{ provider: err.provider, message: err.message },
316
- };
317
- }
318
- return { status: 500, error: err.message };
319
- }
320
- }
@@ -0,0 +1,33 @@
1
+ import type { LTApiResult, LTApiAuth } from '../../types/sdk';
2
+ /**
3
+ * List all tools exposed by a connected MCP server.
4
+ *
5
+ * Requires the MCP adapter to be registered and the server to be connected.
6
+ *
7
+ * @param input.id — the MCP server identifier
8
+ * @returns `{ status: 200, data: { tools } }` array of tool descriptors
9
+ */
10
+ export declare function listMcpServerTools(input: {
11
+ id: string;
12
+ }): Promise<LTApiResult>;
13
+ /**
14
+ * Invoke a specific tool on a connected MCP server.
15
+ *
16
+ * Passes the tool arguments and an optional auth context (derived from
17
+ * `execute_as` or the authenticated user) to the MCP adapter. Returns
18
+ * 422 with `missing_credential` if the tool requires a credential the
19
+ * user has not registered.
20
+ *
21
+ * @param input.id — the MCP server identifier
22
+ * @param input.toolName — name of the tool to invoke
23
+ * @param input.arguments — key-value arguments to pass to the tool
24
+ * @param input.execute_as — optional user ID to impersonate for the tool call
25
+ * @param auth — authenticated user context
26
+ * @returns `{ status: 200, data: { result } }` the tool execution result
27
+ */
28
+ export declare function callMcpTool(input: {
29
+ id: string;
30
+ toolName: string;
31
+ arguments?: Record<string, any>;
32
+ execute_as?: string;
33
+ }, auth?: LTApiAuth): Promise<LTApiResult>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listMcpServerTools = listMcpServerTools;
4
+ exports.callMcpTool = callMcpTool;
5
+ const mcp_1 = require("../../services/mcp");
6
+ /**
7
+ * List all tools exposed by a connected MCP server.
8
+ *
9
+ * Requires the MCP adapter to be registered and the server to be connected.
10
+ *
11
+ * @param input.id — the MCP server identifier
12
+ * @returns `{ status: 200, data: { tools } }` array of tool descriptors
13
+ */
14
+ async function listMcpServerTools(input) {
15
+ try {
16
+ const adapter = mcp_1.mcpRegistry.current;
17
+ if (!adapter) {
18
+ return { status: 400, error: 'MCP adapter not registered' };
19
+ }
20
+ const tools = await adapter.listTools(input.id);
21
+ return { status: 200, data: { tools } };
22
+ }
23
+ catch (err) {
24
+ return { status: 500, error: err.message };
25
+ }
26
+ }
27
+ /**
28
+ * Invoke a specific tool on a connected MCP server.
29
+ *
30
+ * Passes the tool arguments and an optional auth context (derived from
31
+ * `execute_as` or the authenticated user) to the MCP adapter. Returns
32
+ * 422 with `missing_credential` if the tool requires a credential the
33
+ * user has not registered.
34
+ *
35
+ * @param input.id — the MCP server identifier
36
+ * @param input.toolName — name of the tool to invoke
37
+ * @param input.arguments — key-value arguments to pass to the tool
38
+ * @param input.execute_as — optional user ID to impersonate for the tool call
39
+ * @param auth — authenticated user context
40
+ * @returns `{ status: 200, data: { result } }` the tool execution result
41
+ */
42
+ async function callMcpTool(input, auth) {
43
+ try {
44
+ const adapter = mcp_1.mcpRegistry.current;
45
+ if (!adapter) {
46
+ return { status: 400, error: 'MCP adapter not registered' };
47
+ }
48
+ const authContext = (input.execute_as || auth?.userId)
49
+ ? { userId: input.execute_as || auth?.userId }
50
+ : undefined;
51
+ const result = await adapter.callTool(input.id, input.toolName, input.arguments || {}, authContext);
52
+ return { status: 200, data: { result } };
53
+ }
54
+ catch (err) {
55
+ if (err.name === 'MissingCredentialError') {
56
+ return {
57
+ status: 422,
58
+ error: 'missing_credential',
59
+ ...{ provider: err.provider, message: err.message },
60
+ };
61
+ }
62
+ return { status: 500, error: err.message };
63
+ }
64
+ }
@@ -18,7 +18,12 @@ async function getSettings() {
18
18
  try {
19
19
  const hasSocketIO = !!events_1.eventRegistry.getAdapter(socketio_1.SocketIOEventAdapter);
20
20
  const hasNats = !!events_1.eventRegistry.getAdapter(nats_1.NatsEventAdapter);
21
- const transport = hasSocketIO ? 'socketio' : hasNats ? 'nats' : 'none';
21
+ // Dashboard transport: Socket.IO is the default (works in-process, zero config).
22
+ // NATS is only reported when explicitly opted in via EVENT_TRANSPORT=nats,
23
+ // which a multi-container deployment sets when it wants the dashboard to
24
+ // connect via NATS instead of Socket.IO.
25
+ const forceNats = process.env.EVENT_TRANSPORT === 'nats';
26
+ const transport = forceNats && hasNats ? 'nats' : hasSocketIO ? 'socketio' : hasNats ? 'nats' : 'none';
22
27
  return {
23
28
  status: 200,
24
29
  data: {
@@ -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>;