@hotmeshio/long-tail 0.1.6 → 0.1.7

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 (335) hide show
  1. package/README.md +44 -4
  2. package/build/api/auth.d.ts +5 -0
  3. package/build/api/auth.js +42 -0
  4. package/build/api/bot-accounts.d.ts +50 -0
  5. package/build/api/bot-accounts.js +215 -0
  6. package/build/api/controlplane.d.ts +20 -0
  7. package/build/api/controlplane.js +110 -0
  8. package/build/api/dba.d.ts +15 -0
  9. package/build/api/dba.js +68 -0
  10. package/build/api/escalations.d.ts +70 -0
  11. package/build/api/escalations.js +656 -0
  12. package/build/api/exports.d.ts +32 -0
  13. package/build/api/exports.js +146 -0
  14. package/build/api/index.d.ts +18 -0
  15. package/build/api/index.js +54 -0
  16. package/build/api/insight.d.ts +29 -0
  17. package/build/api/insight.js +90 -0
  18. package/build/api/maintenance.d.ts +7 -0
  19. package/build/api/maintenance.js +28 -0
  20. package/build/api/mcp-runs.d.ts +16 -0
  21. package/build/api/mcp-runs.js +62 -0
  22. package/build/api/mcp.d.ts +52 -0
  23. package/build/api/mcp.js +212 -0
  24. package/build/api/namespaces.d.ts +7 -0
  25. package/build/{routes/escalations/helpers.js → api/namespaces.js} +24 -12
  26. package/build/api/roles.d.ts +25 -0
  27. package/build/api/roles.js +159 -0
  28. package/build/api/settings.d.ts +2 -0
  29. package/build/api/settings.js +35 -0
  30. package/build/api/tasks.d.ts +27 -0
  31. package/build/api/tasks.js +96 -0
  32. package/build/api/users.d.ts +44 -0
  33. package/build/api/users.js +162 -0
  34. package/build/api/workflow-sets.d.ts +26 -0
  35. package/build/api/workflow-sets.js +119 -0
  36. package/build/api/workflows.d.ts +48 -0
  37. package/build/api/workflows.js +298 -0
  38. package/build/api/yaml-workflows.d.ts +87 -0
  39. package/build/api/yaml-workflows.js +556 -0
  40. package/build/index.d.ts +4 -0
  41. package/build/index.js +6 -1
  42. package/build/lib/db/schemas/004_workflow_sets.sql +29 -0
  43. package/build/lib/db/schemas/005_unique_graph_topic.sql +7 -0
  44. package/build/lib/db/schemas/011_system_workflow_configs.sql +7 -0
  45. package/build/lib/events/callback.d.ts +41 -0
  46. package/build/lib/events/callback.js +98 -0
  47. package/build/modules/config.js +1 -1
  48. package/build/routes/auth.js +37 -36
  49. package/build/routes/bot-accounts.js +34 -164
  50. package/build/routes/controlplane.js +20 -60
  51. package/build/routes/dba.js +18 -28
  52. package/build/routes/escalations/bulk.js +17 -192
  53. package/build/routes/escalations/list.js +29 -75
  54. package/build/routes/escalations/resolve.js +3 -193
  55. package/build/routes/escalations/single.js +13 -122
  56. package/build/routes/exports.js +44 -95
  57. package/build/routes/index.js +2 -0
  58. package/build/routes/insight.js +46 -88
  59. package/build/routes/maintenance.js +41 -17
  60. package/build/routes/mcp-runs.js +52 -60
  61. package/build/routes/mcp.js +49 -177
  62. package/build/routes/namespaces.js +9 -20
  63. package/build/routes/roles.js +23 -97
  64. package/build/routes/settings.js +37 -25
  65. package/build/routes/tasks.js +28 -64
  66. package/build/routes/users.js +24 -113
  67. package/build/routes/workflow-sets.d.ts +2 -0
  68. package/build/routes/workflow-sets.js +98 -0
  69. package/build/routes/workflows/config.js +23 -57
  70. package/build/routes/workflows/discovery.js +11 -85
  71. package/build/routes/workflows/invocation.js +16 -84
  72. package/build/routes/yaml-workflows/cron.js +12 -61
  73. package/build/routes/yaml-workflows/crud.js +30 -223
  74. package/build/routes/yaml-workflows/deployment.js +15 -115
  75. package/build/routes/yaml-workflows/versions.js +20 -58
  76. package/build/sdk/index.d.ts +327 -0
  77. package/build/sdk/index.js +298 -0
  78. package/build/services/controlplane/index.d.ts +1 -2
  79. package/build/services/controlplane/index.js +3 -3
  80. package/build/services/controlplane/sql.d.ts +2 -2
  81. package/build/services/controlplane/sql.js +4 -5
  82. package/build/services/controlplane/types.d.ts +1 -0
  83. package/build/services/export/index.js +6 -1
  84. package/build/services/hotmesh-utils.js +2 -4
  85. package/build/services/insight/index.d.ts +7 -0
  86. package/build/services/insight/index.js +30 -0
  87. package/build/services/mcp/client/tools.js +13 -1
  88. package/build/services/mcp-runs/sql.js +1 -1
  89. package/build/services/workflow-sets/db.d.ts +16 -0
  90. package/build/services/workflow-sets/db.js +78 -0
  91. package/build/services/workflow-sets/index.d.ts +1 -0
  92. package/build/services/workflow-sets/index.js +11 -0
  93. package/build/services/workflow-sets/sql.d.ts +6 -0
  94. package/build/services/workflow-sets/sql.js +24 -0
  95. package/build/services/yaml-workflow/db-utils.d.ts +1 -0
  96. package/build/services/yaml-workflow/db-utils.js +4 -0
  97. package/build/services/yaml-workflow/db.d.ts +5 -0
  98. package/build/services/yaml-workflow/db.js +17 -0
  99. package/build/services/yaml-workflow/pipeline/build/wiring.js +14 -1
  100. package/build/services/yaml-workflow/pipeline/prompts.d.ts +1 -1
  101. package/build/services/yaml-workflow/pipeline/prompts.js +1 -1
  102. package/build/services/yaml-workflow/sql.d.ts +2 -1
  103. package/build/services/yaml-workflow/sql.js +8 -3
  104. package/build/services/yaml-workflow/types.d.ts +3 -0
  105. package/build/services/yaml-workflow/workers/callbacks.js +7 -1
  106. package/build/services/yaml-workflow/workers/register.js +7 -0
  107. package/build/start/adapters.js +4 -0
  108. package/build/system/index.js +6 -0
  109. package/build/system/mcp-servers/knowledge.js +1 -1
  110. package/build/system/seed/server-definitions.js +2 -1
  111. package/build/system/workflows/mcp-workflow-builder/activities/index.d.ts +1 -1
  112. package/build/system/workflows/mcp-workflow-builder/activities/index.js +2 -1
  113. package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.d.ts +6 -0
  114. package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.js +26 -0
  115. package/build/system/workflows/mcp-workflow-builder/index.js +26 -2
  116. package/build/system/workflows/mcp-workflow-builder/prompts.js +104 -35
  117. package/build/system/workflows/mcp-workflow-planner/activities/analyze.d.ts +11 -0
  118. package/build/system/workflows/mcp-workflow-planner/activities/analyze.js +36 -0
  119. package/build/system/workflows/mcp-workflow-planner/activities/index.d.ts +3 -0
  120. package/build/system/workflows/mcp-workflow-planner/activities/index.js +12 -0
  121. package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +19 -0
  122. package/build/system/workflows/mcp-workflow-planner/activities/persist.js +55 -0
  123. package/build/system/workflows/mcp-workflow-planner/activities/plan.d.ts +10 -0
  124. package/build/system/workflows/mcp-workflow-planner/activities/plan.js +43 -0
  125. package/build/system/workflows/mcp-workflow-planner/index.d.ts +7 -0
  126. package/build/system/workflows/mcp-workflow-planner/index.js +152 -0
  127. package/build/system/workflows/mcp-workflow-planner/prompts.d.ts +7 -0
  128. package/build/system/workflows/mcp-workflow-planner/prompts.js +77 -0
  129. package/build/tsconfig.tsbuildinfo +1 -1
  130. package/build/types/index.d.ts +1 -0
  131. package/build/types/sdk.d.ts +27 -0
  132. package/build/types/sdk.js +2 -0
  133. package/build/types/workflow-set.d.ts +44 -0
  134. package/build/types/workflow-set.js +5 -0
  135. package/dashboard/dist/assets/{AdminDashboard-BXkKGkb5.js → AdminDashboard-DRjkRSjJ.js} +2 -2
  136. package/dashboard/dist/assets/{AdminDashboard-BXkKGkb5.js.map → AdminDashboard-DRjkRSjJ.js.map} +1 -1
  137. package/dashboard/dist/assets/{AvailableEscalationsPage-DcH592mc.js → AvailableEscalationsPage-CnivX4Tz.js} +2 -2
  138. package/dashboard/dist/assets/{AvailableEscalationsPage-DcH592mc.js.map → AvailableEscalationsPage-CnivX4Tz.js.map} +1 -1
  139. package/dashboard/dist/assets/BotPicker-DwwaBhTH.js +2 -0
  140. package/dashboard/dist/assets/{BotPicker-A6LtzyuO.js.map → BotPicker-DwwaBhTH.js.map} +1 -1
  141. package/dashboard/dist/assets/{CollapsibleSection-C7nL2_mv.js → CollapsibleSection-DQpaVA0M.js} +2 -2
  142. package/dashboard/dist/assets/{CollapsibleSection-C7nL2_mv.js.map → CollapsibleSection-DQpaVA0M.js.map} +1 -1
  143. package/dashboard/dist/assets/{ConfirmDeleteModal-CWFwJrSl.js → ConfirmDeleteModal-B7JoDNvt.js} +2 -2
  144. package/dashboard/dist/assets/{ConfirmDeleteModal-CWFwJrSl.js.map → ConfirmDeleteModal-B7JoDNvt.js.map} +1 -1
  145. package/dashboard/dist/assets/{CopyableId-DbZ5c3jh.js → CopyableId-AqoZayBG.js} +2 -2
  146. package/dashboard/dist/assets/{CopyableId-DbZ5c3jh.js.map → CopyableId-AqoZayBG.js.map} +1 -1
  147. package/dashboard/dist/assets/{CredentialsPage-ClWkmLPu.js → CredentialsPage-qGw1kQzi.js} +2 -2
  148. package/dashboard/dist/assets/{CredentialsPage-ClWkmLPu.js.map → CredentialsPage-qGw1kQzi.js.map} +1 -1
  149. package/dashboard/dist/assets/{CustomDurationPicker-CtH2hReF.js → CustomDurationPicker-D1HUQcd0.js} +2 -2
  150. package/dashboard/dist/assets/{CustomDurationPicker-CtH2hReF.js.map → CustomDurationPicker-D1HUQcd0.js.map} +1 -1
  151. package/dashboard/dist/assets/{DataTable-CM5ZcpPi.js → DataTable-DKvSKoVG.js} +2 -2
  152. package/dashboard/dist/assets/{DataTable-CM5ZcpPi.js.map → DataTable-DKvSKoVG.js.map} +1 -1
  153. package/dashboard/dist/assets/{ElapsedCell-CwqavyeC.js → ElapsedCell-B0yrReGQ.js} +2 -2
  154. package/dashboard/dist/assets/{ElapsedCell-CwqavyeC.js.map → ElapsedCell-B0yrReGQ.js.map} +1 -1
  155. package/dashboard/dist/assets/{EmptyState-BBn78pmm.js → EmptyState-X0fIzYID.js} +2 -2
  156. package/dashboard/dist/assets/{EmptyState-BBn78pmm.js.map → EmptyState-X0fIzYID.js.map} +1 -1
  157. package/dashboard/dist/assets/{EscalationsOverview-BcJ2E3X7.js → EscalationsOverview-BQAT9W7r.js} +2 -2
  158. package/dashboard/dist/assets/{EscalationsOverview-BcJ2E3X7.js.map → EscalationsOverview-BQAT9W7r.js.map} +1 -1
  159. package/dashboard/dist/assets/{EventTable-C1en_KZ0.js → EventTable-CX1KNLhZ.js} +2 -2
  160. package/dashboard/dist/assets/{EventTable-C1en_KZ0.js.map → EventTable-CX1KNLhZ.js.map} +1 -1
  161. package/dashboard/dist/assets/{FilterBar-CZTlrLQT.js → FilterBar-DMTvuQy-.js} +2 -2
  162. package/dashboard/dist/assets/{FilterBar-CZTlrLQT.js.map → FilterBar-DMTvuQy-.js.map} +1 -1
  163. package/dashboard/dist/assets/{ListToolbar-Cdbsapig.js → ListToolbar-DTOSxoEy.js} +2 -2
  164. package/dashboard/dist/assets/{ListToolbar-Cdbsapig.js.map → ListToolbar-DTOSxoEy.js.map} +1 -1
  165. package/dashboard/dist/assets/{McpOverview-CSpEJxKa.js → McpOverview-BaKTIWrG.js} +2 -2
  166. package/dashboard/dist/assets/{McpOverview-CSpEJxKa.js.map → McpOverview-BaKTIWrG.js.map} +1 -1
  167. package/dashboard/dist/assets/McpQueryDetailPage-CC08T5k8.js +5 -0
  168. package/dashboard/dist/assets/McpQueryDetailPage-CC08T5k8.js.map +1 -0
  169. package/dashboard/dist/assets/McpQueryPage-CVfF9dYg.js +2 -0
  170. package/dashboard/dist/assets/McpQueryPage-CVfF9dYg.js.map +1 -0
  171. package/dashboard/dist/assets/{McpRunDetailPage-9xdxgG4d.js → McpRunDetailPage-CKs1RWeV.js} +2 -2
  172. package/dashboard/dist/assets/{McpRunDetailPage-9xdxgG4d.js.map → McpRunDetailPage-CKs1RWeV.js.map} +1 -1
  173. package/dashboard/dist/assets/{McpRunsPage-wWLqHsd4.js → McpRunsPage-CcPD_tY1.js} +2 -2
  174. package/dashboard/dist/assets/{McpRunsPage-wWLqHsd4.js.map → McpRunsPage-CcPD_tY1.js.map} +1 -1
  175. package/dashboard/dist/assets/{Modal-kB_P7ZOr.js → Modal-_2AbWxJT.js} +2 -2
  176. package/dashboard/dist/assets/{Modal-kB_P7ZOr.js.map → Modal-_2AbWxJT.js.map} +1 -1
  177. package/dashboard/dist/assets/OperatorDashboard-BGiRaRDr.js +2 -0
  178. package/dashboard/dist/assets/{OperatorDashboard-jc0vrgDI.js.map → OperatorDashboard-BGiRaRDr.js.map} +1 -1
  179. package/dashboard/dist/assets/{PageHeader-NkOeBR05.js → PageHeader-DVr5Qyzm.js} +2 -2
  180. package/dashboard/dist/assets/{PageHeader-NkOeBR05.js.map → PageHeader-DVr5Qyzm.js.map} +1 -1
  181. package/dashboard/dist/assets/{PageHeaderWithStats-ywNhrmFK.js → PageHeaderWithStats-D0KRASML.js} +2 -2
  182. package/dashboard/dist/assets/{PageHeaderWithStats-ywNhrmFK.js.map → PageHeaderWithStats-D0KRASML.js.map} +1 -1
  183. package/dashboard/dist/assets/{PriorityBadge-B2MQbSxy.js → PriorityBadge-Bx2559OU.js} +2 -2
  184. package/dashboard/dist/assets/{PriorityBadge-B2MQbSxy.js.map → PriorityBadge-Bx2559OU.js.map} +1 -1
  185. package/dashboard/dist/assets/{ProcessDetailPage-B7z7IdqE.js → ProcessDetailPage-69I--sry.js} +2 -2
  186. package/dashboard/dist/assets/{ProcessDetailPage-B7z7IdqE.js.map → ProcessDetailPage-69I--sry.js.map} +1 -1
  187. package/dashboard/dist/assets/{ProcessesListPage-C-uHadO6.js → ProcessesListPage-BDpUbua2.js} +2 -2
  188. package/dashboard/dist/assets/{ProcessesListPage-C-uHadO6.js.map → ProcessesListPage-BDpUbua2.js.map} +1 -1
  189. package/dashboard/dist/assets/{RolePill-C1dgC-fK.js → RolePill-CcAqEaSt.js} +2 -2
  190. package/dashboard/dist/assets/{RolePill-C1dgC-fK.js.map → RolePill-CcAqEaSt.js.map} +1 -1
  191. package/dashboard/dist/assets/{RolesPage-BSxrD1vm.js → RolesPage-Cl23Hjet.js} +2 -2
  192. package/dashboard/dist/assets/{RolesPage-BSxrD1vm.js.map → RolesPage-Cl23Hjet.js.map} +1 -1
  193. package/dashboard/dist/assets/{RowActions-lYaHGI-v.js → RowActions-B4mqIt3Z.js} +2 -2
  194. package/dashboard/dist/assets/{RowActions-lYaHGI-v.js.map → RowActions-B4mqIt3Z.js.map} +1 -1
  195. package/dashboard/dist/assets/{StatCard-v2TiITVr.js → StatCard-Cz_2OjAZ.js} +2 -2
  196. package/dashboard/dist/assets/{StatCard-v2TiITVr.js.map → StatCard-Cz_2OjAZ.js.map} +1 -1
  197. package/dashboard/dist/assets/{StatusBadge-DWlxevgG.js → StatusBadge-Wi2FJZsn.js} +2 -2
  198. package/dashboard/dist/assets/{StatusBadge-DWlxevgG.js.map → StatusBadge-Wi2FJZsn.js.map} +1 -1
  199. package/dashboard/dist/assets/{StepIndicator-CRM4ft28.js → StepIndicator-PW5NRDMb.js} +2 -2
  200. package/dashboard/dist/assets/{StepIndicator-CRM4ft28.js.map → StepIndicator-PW5NRDMb.js.map} +1 -1
  201. package/dashboard/dist/assets/{StickyPagination-CF0EToEU.js → StickyPagination-Bl2Uzz65.js} +2 -2
  202. package/dashboard/dist/assets/{StickyPagination-CF0EToEU.js.map → StickyPagination-Bl2Uzz65.js.map} +1 -1
  203. package/dashboard/dist/assets/{SwimlaneTimeline-CNlj7fgg.js → SwimlaneTimeline-CUPqMd0z.js} +2 -2
  204. package/dashboard/dist/assets/{SwimlaneTimeline-CNlj7fgg.js.map → SwimlaneTimeline-CUPqMd0z.js.map} +1 -1
  205. package/dashboard/dist/assets/{TagInput-CH8qMGhC.js → TagInput-BLtf86Ly.js} +2 -2
  206. package/dashboard/dist/assets/{TagInput-CH8qMGhC.js.map → TagInput-BLtf86Ly.js.map} +1 -1
  207. package/dashboard/dist/assets/{TaskDetailPage-CdWo-6mu.js → TaskDetailPage-BXJFX74D.js} +2 -2
  208. package/dashboard/dist/assets/{TaskDetailPage-CdWo-6mu.js.map → TaskDetailPage-BXJFX74D.js.map} +1 -1
  209. package/dashboard/dist/assets/{TaskQueuePill-BPj4ogVG.js → TaskQueuePill-CWYj3xKe.js} +2 -2
  210. package/dashboard/dist/assets/{TaskQueuePill-BPj4ogVG.js.map → TaskQueuePill-CWYj3xKe.js.map} +1 -1
  211. package/dashboard/dist/assets/{TasksListPage-CtRkMpKU.js → TasksListPage-C3cX94Mw.js} +2 -2
  212. package/dashboard/dist/assets/{TasksListPage-CtRkMpKU.js.map → TasksListPage-C3cX94Mw.js.map} +1 -1
  213. package/dashboard/dist/assets/{TimeAgo-Di1a3X5P.js → TimeAgo-B_5yDDHV.js} +2 -2
  214. package/dashboard/dist/assets/{TimeAgo-Di1a3X5P.js.map → TimeAgo-B_5yDDHV.js.map} +1 -1
  215. package/dashboard/dist/assets/{TimestampCell-CqrXql-S.js → TimestampCell-DRX724uU.js} +2 -2
  216. package/dashboard/dist/assets/{TimestampCell-CqrXql-S.js.map → TimestampCell-DRX724uU.js.map} +1 -1
  217. package/dashboard/dist/assets/{UserName-BUFYCnRa.js → UserName-Ca8FA469.js} +2 -2
  218. package/dashboard/dist/assets/{UserName-BUFYCnRa.js.map → UserName-Ca8FA469.js.map} +1 -1
  219. package/dashboard/dist/assets/{WorkflowExecutionPage-25iusMml.js → WorkflowExecutionPage-BBYWEV2P.js} +2 -2
  220. package/dashboard/dist/assets/{WorkflowExecutionPage-25iusMml.js.map → WorkflowExecutionPage-BBYWEV2P.js.map} +1 -1
  221. package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js +2 -0
  222. package/dashboard/dist/assets/{WorkflowPill-DPKOcbf4.js.map → WorkflowPill-BXifAuLi.js.map} +1 -1
  223. package/dashboard/dist/assets/{WorkflowsDashboard-BgxslssH.js → WorkflowsDashboard-Drl3juz9.js} +2 -2
  224. package/dashboard/dist/assets/{WorkflowsDashboard-BgxslssH.js.map → WorkflowsDashboard-Drl3juz9.js.map} +1 -1
  225. package/dashboard/dist/assets/{WorkflowsOverview-Doe5L-Re.js → WorkflowsOverview-03IRrDLg.js} +2 -2
  226. package/dashboard/dist/assets/{WorkflowsOverview-Doe5L-Re.js.map → WorkflowsOverview-03IRrDLg.js.map} +1 -1
  227. package/dashboard/dist/assets/YamlWorkflowsPage-DC2cLxVi.js +2 -0
  228. package/dashboard/dist/assets/YamlWorkflowsPage-DC2cLxVi.js.map +1 -0
  229. package/dashboard/dist/assets/{bots-Bi2_O1Ts.js → bots-DZEXcgiJ.js} +2 -2
  230. package/dashboard/dist/assets/{bots-Bi2_O1Ts.js.map → bots-DZEXcgiJ.js.map} +1 -1
  231. package/dashboard/dist/assets/{escalation-Ck1KlLkT.js → escalation-Cw48lNaF.js} +2 -2
  232. package/dashboard/dist/assets/{escalation-Ck1KlLkT.js.map → escalation-Cw48lNaF.js.map} +1 -1
  233. package/dashboard/dist/assets/{escalation-columns-ohDsj2eJ.js → escalation-columns-NINpo3qf.js} +2 -2
  234. package/dashboard/dist/assets/{escalation-columns-ohDsj2eJ.js.map → escalation-columns-NINpo3qf.js.map} +1 -1
  235. package/dashboard/dist/assets/helpers-Cuu3xKfr.js +2 -0
  236. package/dashboard/dist/assets/helpers-Cuu3xKfr.js.map +1 -0
  237. package/dashboard/dist/assets/{helpers-BoD2SgUY.js → helpers-fk_qr729.js} +2 -2
  238. package/dashboard/dist/assets/{helpers-BoD2SgUY.js.map → helpers-fk_qr729.js.map} +1 -1
  239. package/dashboard/dist/assets/index-B98ipWxE.js +2 -0
  240. package/dashboard/dist/assets/{index-D7zYZOnH.js.map → index-B98ipWxE.js.map} +1 -1
  241. package/dashboard/dist/assets/{index-BEtLIsML.js → index-BIG3KooI.js} +2 -2
  242. package/dashboard/dist/assets/{index-BEtLIsML.js.map → index-BIG3KooI.js.map} +1 -1
  243. package/dashboard/dist/assets/{index-DYyLF-Qb.js → index-BwN3KP_L.js} +5 -5
  244. package/dashboard/dist/assets/{index-DYyLF-Qb.js.map → index-BwN3KP_L.js.map} +1 -1
  245. package/dashboard/dist/assets/index-Bxe8h1x4.js +17 -0
  246. package/dashboard/dist/assets/{index-DOkHXmyf.js.map → index-Bxe8h1x4.js.map} +1 -1
  247. package/dashboard/dist/assets/{index-FuohTtaM.js → index-CNI7k7oB.js} +3 -3
  248. package/dashboard/dist/assets/{index-FuohTtaM.js.map → index-CNI7k7oB.js.map} +1 -1
  249. package/dashboard/dist/assets/{index-CZrJ09p-.js → index-CORHB0WC.js} +2 -2
  250. package/dashboard/dist/assets/{index-CZrJ09p-.js.map → index-CORHB0WC.js.map} +1 -1
  251. package/dashboard/dist/assets/{index-PyCTS05D.css → index-DcIKW-cZ.css} +1 -1
  252. package/dashboard/dist/assets/{index-D3NyVADW.js → index-Dj-z-x8M.js} +2 -2
  253. package/dashboard/dist/assets/index-Dj-z-x8M.js.map +1 -0
  254. package/dashboard/dist/assets/{index-Bn2xHDr8.js → index-DwRytW9O.js} +3 -3
  255. package/dashboard/dist/assets/{index-Bn2xHDr8.js.map → index-DwRytW9O.js.map} +1 -1
  256. package/dashboard/dist/assets/index-aRvL-dXp.js +2 -0
  257. package/dashboard/dist/assets/{index-Dk2Q51o0.js.map → index-aRvL-dXp.js.map} +1 -1
  258. package/dashboard/dist/assets/index-b03HlbnH.js +2 -0
  259. package/dashboard/dist/assets/{index-BpT-6WgJ.js.map → index-b03HlbnH.js.map} +1 -1
  260. package/dashboard/dist/assets/{mcp-CJtYjA7A.js → mcp-BZoFryNc.js} +2 -2
  261. package/dashboard/dist/assets/{mcp-CJtYjA7A.js.map → mcp-BZoFryNc.js.map} +1 -1
  262. package/dashboard/dist/assets/mcp-query-wiw1kwm8.js +2 -0
  263. package/dashboard/dist/assets/mcp-query-wiw1kwm8.js.map +1 -0
  264. package/dashboard/dist/assets/{mcp-runs-DUWm9Z4V.js → mcp-runs-BaEKnf5v.js} +2 -2
  265. package/dashboard/dist/assets/{mcp-runs-DUWm9Z4V.js.map → mcp-runs-BaEKnf5v.js.map} +1 -1
  266. package/dashboard/dist/assets/{namespaces-BM5P2qmL.js → namespaces-BwnZI4_A.js} +2 -2
  267. package/dashboard/dist/assets/{namespaces-BM5P2qmL.js.map → namespaces-BwnZI4_A.js.map} +1 -1
  268. package/dashboard/dist/assets/{roles-lv0shpjJ.js → roles-Bgn1K8zU.js} +2 -2
  269. package/dashboard/dist/assets/{roles-lv0shpjJ.js.map → roles-Bgn1K8zU.js.map} +1 -1
  270. package/dashboard/dist/assets/{settings-Wlq92mRo.js → settings-CizYiutL.js} +2 -2
  271. package/dashboard/dist/assets/{settings-Wlq92mRo.js.map → settings-CizYiutL.js.map} +1 -1
  272. package/dashboard/dist/assets/{tasks-BFGm4PuE.js → tasks-Bmte_hc4.js} +2 -2
  273. package/dashboard/dist/assets/{tasks-BFGm4PuE.js.map → tasks-Bmte_hc4.js.map} +1 -1
  274. package/dashboard/dist/assets/{useEventHooks-DIE6ue4x.js → useEventHooks-CUCxpiI2.js} +2 -2
  275. package/dashboard/dist/assets/{useEventHooks-DIE6ue4x.js.map → useEventHooks-CUCxpiI2.js.map} +1 -1
  276. package/dashboard/dist/assets/{useYamlActivityEvents-DCwSO73t.js → useYamlActivityEvents-Cum02Ej9.js} +2 -2
  277. package/dashboard/dist/assets/{useYamlActivityEvents-DCwSO73t.js.map → useYamlActivityEvents-Cum02Ej9.js.map} +1 -1
  278. package/dashboard/dist/assets/{users-tA5-K0wA.js → users-NSDgTt-z.js} +2 -2
  279. package/dashboard/dist/assets/{users-tA5-K0wA.js.map → users-NSDgTt-z.js.map} +1 -1
  280. package/dashboard/dist/assets/{vendor-icons-BiIug1SK.js → vendor-icons-D1DdudfH.js} +93 -73
  281. package/dashboard/dist/assets/vendor-icons-D1DdudfH.js.map +1 -0
  282. package/dashboard/dist/assets/{workflows-CfLc15Wr.js → workflows-k0XRdGXx.js} +2 -2
  283. package/dashboard/dist/assets/{workflows-CfLc15Wr.js.map → workflows-k0XRdGXx.js.map} +1 -1
  284. package/dashboard/dist/assets/yaml-workflows-DAre8I78.js +2 -0
  285. package/dashboard/dist/assets/yaml-workflows-DAre8I78.js.map +1 -0
  286. package/dashboard/dist/index.html +3 -3
  287. package/docs/epic-integration.md +224 -0
  288. package/docs/events.md +28 -0
  289. package/docs/sdk.md +177 -0
  290. package/docs/story.md +157 -0
  291. package/docs/workflow-builder.md +371 -0
  292. package/package.json +3 -2
  293. package/build/routes/escalations/helpers.d.ts +0 -5
  294. package/build/routes/resolve.d.ts +0 -9
  295. package/build/routes/resolve.js +0 -19
  296. package/build/routes/yaml-workflows/helpers.d.ts +0 -2
  297. package/build/routes/yaml-workflows/helpers.js +0 -8
  298. package/dashboard/dist/assets/BotPicker-A6LtzyuO.js +0 -2
  299. package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js +0 -5
  300. package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js.map +0 -1
  301. package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js +0 -2
  302. package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js.map +0 -1
  303. package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js +0 -2
  304. package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js +0 -2
  305. package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js.map +0 -1
  306. package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js +0 -2
  307. package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js +0 -2
  308. package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js.map +0 -1
  309. package/dashboard/dist/assets/index-BpT-6WgJ.js +0 -2
  310. package/dashboard/dist/assets/index-D3NyVADW.js.map +0 -1
  311. package/dashboard/dist/assets/index-D7zYZOnH.js +0 -2
  312. package/dashboard/dist/assets/index-DOkHXmyf.js +0 -17
  313. package/dashboard/dist/assets/index-Dk2Q51o0.js +0 -2
  314. package/dashboard/dist/assets/mcp-query-jQJQrs_7.js +0 -2
  315. package/dashboard/dist/assets/mcp-query-jQJQrs_7.js.map +0 -1
  316. package/dashboard/dist/assets/vendor-icons-BiIug1SK.js.map +0 -1
  317. package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js +0 -2
  318. package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js.map +0 -1
  319. package/docs/img/01-login.png +0 -0
  320. package/docs/img/02-dashboard-home.png +0 -0
  321. package/docs/img/03-processes-list.png +0 -0
  322. package/docs/img/04-escalations-list.png +0 -0
  323. package/docs/img/05-mcp-servers.png +0 -0
  324. package/docs/img/06-mcp-pipelines.png +0 -0
  325. package/docs/img/07-workflows-list.png +0 -0
  326. package/docs/img/compilation/01-query-submit.png +0 -0
  327. package/docs/img/compilation/02-mcp-servers.png +0 -0
  328. package/docs/img/compilation/03-query-completed.png +0 -0
  329. package/docs/img/compilation/04-wizard-original.png +0 -0
  330. package/docs/img/compilation/05-wizard-timeline.png +0 -0
  331. package/docs/img/compilation/06-wizard-profile.png +0 -0
  332. package/docs/img/compilation/07-wizard-deploy.png +0 -0
  333. package/docs/img/compilation/08-wizard-test-modal.png +0 -0
  334. package/docs/img/compilation/09-wizard-test-compare.png +0 -0
  335. package/docs/img/compilation/10-wizard-verify.png +0 -0
@@ -0,0 +1,212 @@
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.listMcpServers = listMcpServers;
37
+ exports.createMcpServer = createMcpServer;
38
+ exports.testConnection = testConnection;
39
+ exports.getMcpServer = getMcpServer;
40
+ exports.updateMcpServer = updateMcpServer;
41
+ exports.deleteMcpServer = deleteMcpServer;
42
+ exports.connectMcpServer = connectMcpServer;
43
+ exports.disconnectMcpServer = disconnectMcpServer;
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");
49
+ async function listMcpServers(input) {
50
+ try {
51
+ const result = await mcpDbService.listMcpServers(input);
52
+ return { status: 200, data: result };
53
+ }
54
+ catch (err) {
55
+ return { status: 500, error: err.message };
56
+ }
57
+ }
58
+ async function createMcpServer(input) {
59
+ try {
60
+ if (!input.name || !input.transport_type || !input.transport_config) {
61
+ return { status: 400, error: 'name, transport_type, and transport_config are required' };
62
+ }
63
+ const server = await mcpDbService.createMcpServer(input);
64
+ return { status: 201, data: server };
65
+ }
66
+ catch (err) {
67
+ if (err.message?.includes('duplicate key') || err.code === '23505') {
68
+ return { status: 409, error: 'MCP server with that name already exists' };
69
+ }
70
+ return { status: 500, error: err.message };
71
+ }
72
+ }
73
+ async function testConnection(input) {
74
+ try {
75
+ if (!input.transport_type || !input.transport_config) {
76
+ return { status: 400, error: 'transport_type and transport_config are required' };
77
+ }
78
+ const { testConnection: testConn } = await Promise.resolve().then(() => __importStar(require('../services/mcp/client/connection')));
79
+ const result = await testConn(input.transport_type, input.transport_config);
80
+ return { status: 200, data: result };
81
+ }
82
+ catch (err) {
83
+ return { status: 200, data: { success: false, error: err.message, tools: [] } };
84
+ }
85
+ }
86
+ async function getMcpServer(input) {
87
+ try {
88
+ const server = await mcpDbService.getMcpServer(input.id);
89
+ if (!server) {
90
+ return { status: 404, error: 'MCP server not found' };
91
+ }
92
+ return { status: 200, data: server };
93
+ }
94
+ catch (err) {
95
+ return { status: 500, error: err.message };
96
+ }
97
+ }
98
+ async function updateMcpServer(input) {
99
+ try {
100
+ const { id, ...fields } = input;
101
+ const server = await mcpDbService.updateMcpServer(id, fields);
102
+ if (!server) {
103
+ return { status: 404, error: 'MCP server not found' };
104
+ }
105
+ return { status: 200, data: server };
106
+ }
107
+ catch (err) {
108
+ return { status: 500, error: err.message };
109
+ }
110
+ }
111
+ async function deleteMcpServer(input) {
112
+ try {
113
+ const deleted = await mcpDbService.deleteMcpServer(input.id);
114
+ if (!deleted) {
115
+ return { status: 404, error: 'MCP server not found' };
116
+ }
117
+ return { status: 200, data: { deleted: true } };
118
+ }
119
+ catch (err) {
120
+ return { status: 500, error: err.message };
121
+ }
122
+ }
123
+ async function connectMcpServer(input) {
124
+ try {
125
+ const adapter = mcp_1.mcpRegistry.current;
126
+ if (!adapter) {
127
+ return { status: 400, error: 'MCP adapter not registered' };
128
+ }
129
+ await adapter.connectClient(input.id);
130
+ return { status: 200, data: { connected: true, serverId: input.id } };
131
+ }
132
+ catch (err) {
133
+ return { status: 500, error: err.message };
134
+ }
135
+ }
136
+ async function disconnectMcpServer(input) {
137
+ try {
138
+ const adapter = mcp_1.mcpRegistry.current;
139
+ if (!adapter) {
140
+ return { status: 400, error: 'MCP adapter not registered' };
141
+ }
142
+ await adapter.disconnectClient(input.id);
143
+ return { status: 200, data: { disconnected: true, serverId: input.id } };
144
+ }
145
+ catch (err) {
146
+ return { status: 500, error: err.message };
147
+ }
148
+ }
149
+ async function getCredentialStatus(input, auth) {
150
+ try {
151
+ const server = await mcpDbService.getMcpServer(input.id);
152
+ if (!server) {
153
+ return { status: 404, error: 'MCP server not found' };
154
+ }
155
+ const required = server.credential_providers ?? [];
156
+ const registered = [];
157
+ const missing = [];
158
+ if (auth?.userId && required.length > 0) {
159
+ const { resolveCredential } = await Promise.resolve().then(() => __importStar(require('../services/iam/credentials')));
160
+ for (const provider of required) {
161
+ const cred = await resolveCredential({ id: auth.userId, type: 'user', roles: [] }, provider);
162
+ if (cred)
163
+ registered.push(provider);
164
+ else
165
+ missing.push(provider);
166
+ }
167
+ }
168
+ else {
169
+ missing.push(...required);
170
+ }
171
+ return { status: 200, data: { required, registered, missing } };
172
+ }
173
+ catch (err) {
174
+ return { status: 500, error: err.message };
175
+ }
176
+ }
177
+ async function listMcpServerTools(input) {
178
+ try {
179
+ const adapter = mcp_1.mcpRegistry.current;
180
+ if (!adapter) {
181
+ return { status: 400, error: 'MCP adapter not registered' };
182
+ }
183
+ const tools = await adapter.listTools(input.id);
184
+ return { status: 200, data: { tools } };
185
+ }
186
+ catch (err) {
187
+ return { status: 500, error: err.message };
188
+ }
189
+ }
190
+ async function callMcpTool(input, auth) {
191
+ try {
192
+ const adapter = mcp_1.mcpRegistry.current;
193
+ if (!adapter) {
194
+ return { status: 400, error: 'MCP adapter not registered' };
195
+ }
196
+ const authContext = (input.execute_as || auth?.userId)
197
+ ? { userId: input.execute_as || auth?.userId }
198
+ : undefined;
199
+ const result = await adapter.callTool(input.id, input.toolName, input.arguments || {}, authContext);
200
+ return { status: 200, data: { result } };
201
+ }
202
+ catch (err) {
203
+ if (err.name === 'MissingCredentialError') {
204
+ return {
205
+ status: 422,
206
+ error: 'missing_credential',
207
+ ...{ provider: err.provider, message: err.message },
208
+ };
209
+ }
210
+ return { status: 500, error: err.message };
211
+ }
212
+ }
@@ -0,0 +1,7 @@
1
+ import type { LTApiResult } from '../types/sdk';
2
+ export declare function listNamespaces(): Promise<LTApiResult>;
3
+ export declare function registerNamespace(input: {
4
+ name: string;
5
+ description?: string;
6
+ metadata?: Record<string, unknown>;
7
+ }): Promise<LTApiResult>;
@@ -33,16 +33,28 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getVisibleRoles = getVisibleRoles;
37
- const userService = __importStar(require("../../services/user"));
38
- /**
39
- * Return the role names visible to a user, or undefined if superadmin (no filter).
40
- * Returns an empty array when the user holds no roles at all.
41
- */
42
- async function getVisibleRoles(userId) {
43
- const isSuperAdminUser = await userService.isSuperAdmin(userId);
44
- if (isSuperAdminUser)
45
- return undefined;
46
- const userRoles = await userService.getUserRoles(userId);
47
- return userRoles.map((r) => r.role);
36
+ exports.listNamespaces = listNamespaces;
37
+ exports.registerNamespace = registerNamespace;
38
+ const namespaceService = __importStar(require("../services/namespace"));
39
+ async function listNamespaces() {
40
+ try {
41
+ const namespaces = await namespaceService.listNamespaces();
42
+ return { status: 200, data: { namespaces } };
43
+ }
44
+ catch (err) {
45
+ return { status: 500, error: err.message };
46
+ }
47
+ }
48
+ async function registerNamespace(input) {
49
+ try {
50
+ const { name, description, metadata } = input;
51
+ if (!name || typeof name !== 'string') {
52
+ return { status: 400, error: 'name is required' };
53
+ }
54
+ const namespace = await namespaceService.registerNamespace(name, description, metadata);
55
+ return { status: 200, data: namespace };
56
+ }
57
+ catch (err) {
58
+ return { status: 500, error: err.message };
59
+ }
48
60
  }
@@ -0,0 +1,25 @@
1
+ import type { LTApiResult } from '../types/sdk';
2
+ export declare function listRoles(): Promise<LTApiResult>;
3
+ export declare function listRolesWithDetails(): Promise<LTApiResult>;
4
+ export declare function createRole(input: {
5
+ role: string;
6
+ }): Promise<LTApiResult>;
7
+ export declare function getEscalationChains(): Promise<LTApiResult>;
8
+ export declare function addEscalationChain(input: {
9
+ source_role: string;
10
+ target_role: string;
11
+ }): Promise<LTApiResult>;
12
+ export declare function removeEscalationChain(input: {
13
+ source_role: string;
14
+ target_role: string;
15
+ }): Promise<LTApiResult>;
16
+ export declare function getEscalationTargets(input: {
17
+ role: string;
18
+ }): Promise<LTApiResult>;
19
+ export declare function replaceEscalationTargets(input: {
20
+ role: string;
21
+ targets: string[];
22
+ }): Promise<LTApiResult>;
23
+ export declare function deleteRole(input: {
24
+ role: string;
25
+ }): Promise<LTApiResult>;
@@ -0,0 +1,159 @@
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.listRoles = listRoles;
37
+ exports.listRolesWithDetails = listRolesWithDetails;
38
+ exports.createRole = createRole;
39
+ exports.getEscalationChains = getEscalationChains;
40
+ exports.addEscalationChain = addEscalationChain;
41
+ exports.removeEscalationChain = removeEscalationChain;
42
+ exports.getEscalationTargets = getEscalationTargets;
43
+ exports.replaceEscalationTargets = replaceEscalationTargets;
44
+ exports.deleteRole = deleteRole;
45
+ const roleService = __importStar(require("../services/role"));
46
+ async function listRoles() {
47
+ try {
48
+ const roles = await roleService.listDistinctRoles();
49
+ return { status: 200, data: { roles } };
50
+ }
51
+ catch (err) {
52
+ return { status: 500, error: err.message };
53
+ }
54
+ }
55
+ async function listRolesWithDetails() {
56
+ try {
57
+ const roles = await roleService.listRolesWithDetails();
58
+ return { status: 200, data: { roles } };
59
+ }
60
+ catch (err) {
61
+ return { status: 500, error: err.message };
62
+ }
63
+ }
64
+ // Admin-required
65
+ async function createRole(input) {
66
+ try {
67
+ if (!input.role || typeof input.role !== 'string' || !input.role.trim()) {
68
+ return { status: 400, error: 'role is required' };
69
+ }
70
+ const trimmed = input.role.trim().toLowerCase();
71
+ if (!/^[a-z][a-z0-9_-]*$/.test(trimmed)) {
72
+ return {
73
+ status: 400,
74
+ error: 'Role must start with a letter and contain only lowercase letters, numbers, hyphens, and underscores',
75
+ };
76
+ }
77
+ await roleService.createRole(trimmed);
78
+ return { status: 201, data: { role: trimmed } };
79
+ }
80
+ catch (err) {
81
+ return { status: 500, error: err.message };
82
+ }
83
+ }
84
+ async function getEscalationChains() {
85
+ try {
86
+ const chains = await roleService.getAllEscalationChains();
87
+ return { status: 200, data: { chains } };
88
+ }
89
+ catch (err) {
90
+ return { status: 500, error: err.message };
91
+ }
92
+ }
93
+ // Admin-required
94
+ async function addEscalationChain(input) {
95
+ try {
96
+ if (!input.source_role || !input.target_role) {
97
+ return { status: 400, error: 'source_role and target_role are required' };
98
+ }
99
+ await roleService.addEscalationChain(input.source_role, input.target_role);
100
+ return {
101
+ status: 201,
102
+ data: { source_role: input.source_role, target_role: input.target_role },
103
+ };
104
+ }
105
+ catch (err) {
106
+ return { status: 500, error: err.message };
107
+ }
108
+ }
109
+ // Admin-required
110
+ async function removeEscalationChain(input) {
111
+ try {
112
+ if (!input.source_role || !input.target_role) {
113
+ return { status: 400, error: 'source_role and target_role are required' };
114
+ }
115
+ const removed = await roleService.removeEscalationChain(input.source_role, input.target_role);
116
+ if (!removed) {
117
+ return { status: 404, error: 'Chain entry not found' };
118
+ }
119
+ return { status: 200, data: { removed: true } };
120
+ }
121
+ catch (err) {
122
+ return { status: 500, error: err.message };
123
+ }
124
+ }
125
+ async function getEscalationTargets(input) {
126
+ try {
127
+ const targets = await roleService.getEscalationTargets(input.role);
128
+ return { status: 200, data: { targets } };
129
+ }
130
+ catch (err) {
131
+ return { status: 500, error: err.message };
132
+ }
133
+ }
134
+ // Admin-required
135
+ async function replaceEscalationTargets(input) {
136
+ try {
137
+ if (!Array.isArray(input.targets)) {
138
+ return { status: 400, error: 'targets must be an array of strings' };
139
+ }
140
+ await roleService.replaceEscalationTargets(input.role, input.targets);
141
+ return { status: 200, data: { role: input.role, targets: input.targets } };
142
+ }
143
+ catch (err) {
144
+ return { status: 500, error: err.message };
145
+ }
146
+ }
147
+ // Admin-required
148
+ async function deleteRole(input) {
149
+ try {
150
+ const result = await roleService.deleteRole(input.role);
151
+ if (!result.deleted) {
152
+ return { status: 409, error: result.error || 'Cannot delete role' };
153
+ }
154
+ return { status: 200, data: { deleted: true } };
155
+ }
156
+ catch (err) {
157
+ return { status: 500, error: err.message };
158
+ }
159
+ }
@@ -0,0 +1,2 @@
1
+ import type { LTApiResult } from '../types/sdk';
2
+ export declare function getSettings(): Promise<LTApiResult>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSettings = getSettings;
4
+ const telemetry_1 = require("../lib/telemetry");
5
+ const events_1 = require("../lib/events");
6
+ const nats_1 = require("../lib/events/nats");
7
+ const socketio_1 = require("../lib/events/socketio");
8
+ const defaults_1 = require("../modules/defaults");
9
+ async function getSettings() {
10
+ try {
11
+ const hasSocketIO = !!events_1.eventRegistry.getAdapter(socketio_1.SocketIOEventAdapter);
12
+ const hasNats = !!events_1.eventRegistry.getAdapter(nats_1.NatsEventAdapter);
13
+ const transport = hasSocketIO ? 'socketio' : hasNats ? 'nats' : 'none';
14
+ return {
15
+ status: 200,
16
+ data: {
17
+ telemetry: {
18
+ traceUrl: telemetry_1.telemetryRegistry.traceUrl ?? null,
19
+ },
20
+ escalation: {
21
+ claimDurations: defaults_1.CLAIM_DURATION_OPTIONS,
22
+ },
23
+ events: {
24
+ transport,
25
+ natsWsUrl: hasNats
26
+ ? (process.env.VITE_NATS_WS_URL || process.env.NATS_WS_URL || null)
27
+ : null,
28
+ },
29
+ },
30
+ };
31
+ }
32
+ catch (err) {
33
+ return { status: 500, error: err.message };
34
+ }
35
+ }
@@ -0,0 +1,27 @@
1
+ import type { LTApiResult } from '../types/sdk';
2
+ export declare function listTasks(input: {
3
+ status?: string;
4
+ lt_type?: string;
5
+ workflow_type?: string;
6
+ workflow_id?: string;
7
+ parent_workflow_id?: string;
8
+ origin_id?: string;
9
+ limit?: number;
10
+ offset?: number;
11
+ }): Promise<LTApiResult>;
12
+ export declare function getProcessStats(input: {
13
+ period?: string;
14
+ }): Promise<LTApiResult>;
15
+ export declare function listProcesses(input: {
16
+ limit?: number;
17
+ offset?: number;
18
+ workflow_type?: string;
19
+ status?: string;
20
+ search?: string;
21
+ }): Promise<LTApiResult>;
22
+ export declare function getProcess(input: {
23
+ originId: string;
24
+ }): Promise<LTApiResult>;
25
+ export declare function getTask(input: {
26
+ id: string;
27
+ }): Promise<LTApiResult>;
@@ -0,0 +1,96 @@
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.listTasks = listTasks;
37
+ exports.getProcessStats = getProcessStats;
38
+ exports.listProcesses = listProcesses;
39
+ exports.getProcess = getProcess;
40
+ exports.getTask = getTask;
41
+ const taskService = __importStar(require("../services/task"));
42
+ const escalationService = __importStar(require("../services/escalation"));
43
+ async function listTasks(input) {
44
+ try {
45
+ const result = await taskService.listTasks(input);
46
+ return { status: 200, data: result };
47
+ }
48
+ catch (err) {
49
+ return { status: 500, error: err.message };
50
+ }
51
+ }
52
+ async function getProcessStats(input) {
53
+ try {
54
+ const stats = await taskService.getProcessStats(input.period);
55
+ return { status: 200, data: stats };
56
+ }
57
+ catch (err) {
58
+ return { status: 500, error: err.message };
59
+ }
60
+ }
61
+ async function listProcesses(input) {
62
+ try {
63
+ const result = await taskService.listProcesses(input);
64
+ return { status: 200, data: result };
65
+ }
66
+ catch (err) {
67
+ return { status: 500, error: err.message };
68
+ }
69
+ }
70
+ async function getProcess(input) {
71
+ try {
72
+ const [tasks, escalations] = await Promise.all([
73
+ taskService.getProcessTasks(input.originId),
74
+ escalationService.getEscalationsByOriginId(input.originId),
75
+ ]);
76
+ return {
77
+ status: 200,
78
+ data: { origin_id: input.originId, tasks, escalations },
79
+ };
80
+ }
81
+ catch (err) {
82
+ return { status: 500, error: err.message };
83
+ }
84
+ }
85
+ async function getTask(input) {
86
+ try {
87
+ const task = await taskService.getTask(input.id);
88
+ if (!task) {
89
+ return { status: 404, error: 'Task not found' };
90
+ }
91
+ return { status: 200, data: task };
92
+ }
93
+ catch (err) {
94
+ return { status: 500, error: err.message };
95
+ }
96
+ }
@@ -0,0 +1,44 @@
1
+ import type { LTApiResult } from '../types/sdk';
2
+ import type { LTRoleType } from '../types';
3
+ export declare function listUsers(input: {
4
+ role?: string;
5
+ roleType?: LTRoleType;
6
+ status?: string;
7
+ limit?: number;
8
+ offset?: number;
9
+ }): Promise<LTApiResult>;
10
+ export declare function getUser(input: {
11
+ id: string;
12
+ }): Promise<LTApiResult>;
13
+ export declare function createUser(input: {
14
+ external_id?: string;
15
+ email?: string;
16
+ display_name?: string;
17
+ roles?: {
18
+ role: string;
19
+ type: string;
20
+ }[];
21
+ metadata?: Record<string, any>;
22
+ }): Promise<LTApiResult>;
23
+ export declare function updateUser(input: {
24
+ id: string;
25
+ email?: string;
26
+ display_name?: string;
27
+ status?: string;
28
+ metadata?: Record<string, any>;
29
+ }): Promise<LTApiResult>;
30
+ export declare function deleteUser(input: {
31
+ id: string;
32
+ }): Promise<LTApiResult>;
33
+ export declare function getUserRoles(input: {
34
+ id: string;
35
+ }): Promise<LTApiResult>;
36
+ export declare function addUserRole(input: {
37
+ id: string;
38
+ role: string;
39
+ type: string;
40
+ }): Promise<LTApiResult>;
41
+ export declare function removeUserRole(input: {
42
+ id: string;
43
+ role: string;
44
+ }): Promise<LTApiResult>;