@hotmeshio/long-tail 0.1.7 → 0.1.9

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 (278) hide show
  1. package/README.md +3 -1
  2. package/build/api/auth.d.ts +11 -0
  3. package/build/api/auth.js +11 -0
  4. package/build/api/bot-accounts.d.ts +87 -0
  5. package/build/api/bot-accounts.js +87 -0
  6. package/build/api/controlplane.d.ts +48 -0
  7. package/build/api/controlplane.js +48 -0
  8. package/build/api/dba.d.ts +27 -0
  9. package/build/api/dba.js +27 -0
  10. package/build/api/escalations.d.ts +201 -0
  11. package/build/api/escalations.js +276 -5
  12. package/build/api/exports.d.ts +58 -0
  13. package/build/api/exports.js +58 -0
  14. package/build/api/insight.d.ts +57 -0
  15. package/build/api/insight.js +57 -0
  16. package/build/api/maintenance.d.ts +15 -0
  17. package/build/api/maintenance.js +15 -0
  18. package/build/api/mcp-runs.d.ts +27 -0
  19. package/build/api/mcp-runs.js +27 -0
  20. package/build/api/mcp.d.ts +108 -0
  21. package/build/api/mcp.js +108 -0
  22. package/build/api/namespaces.d.ts +13 -0
  23. package/build/api/namespaces.js +13 -0
  24. package/build/api/roles.d.ts +63 -0
  25. package/build/api/roles.js +63 -5
  26. package/build/api/settings.d.ts +8 -0
  27. package/build/api/settings.js +8 -0
  28. package/build/api/tasks.d.ts +68 -1
  29. package/build/api/tasks.js +92 -0
  30. package/build/api/users.d.ts +71 -0
  31. package/build/api/users.js +71 -5
  32. package/build/api/workflow-sets.d.ts +51 -0
  33. package/build/api/workflow-sets.js +51 -0
  34. package/build/api/workflows.d.ts +110 -0
  35. package/build/api/workflows.js +117 -1
  36. package/build/api/yaml-workflows.d.ts +195 -0
  37. package/build/api/yaml-workflows.js +195 -0
  38. package/build/examples/seed.js +18 -0
  39. package/build/examples/types/envelopes.d.ts +35 -0
  40. package/build/examples/types/index.d.ts +1 -1
  41. package/build/examples/workers.js +10 -0
  42. package/build/examples/workflows/assembly-line/activities.d.ts +28 -0
  43. package/build/examples/workflows/assembly-line/activities.js +53 -0
  44. package/build/examples/workflows/assembly-line/index.d.ts +17 -0
  45. package/build/examples/workflows/assembly-line/index.js +60 -0
  46. package/build/examples/workflows/assembly-line/iterator.d.ts +12 -0
  47. package/build/examples/workflows/assembly-line/iterator.js +54 -0
  48. package/build/examples/workflows/assembly-line/reverter.d.ts +18 -0
  49. package/build/examples/workflows/assembly-line/reverter.js +89 -0
  50. package/build/examples/workflows/assembly-line/types.d.ts +25 -0
  51. package/build/examples/workflows/assembly-line/types.js +8 -0
  52. package/build/examples/workflows/assembly-line/worker.d.ts +13 -0
  53. package/build/examples/workflows/assembly-line/worker.js +81 -0
  54. package/build/examples/workflows/basic-signal/activities.d.ts +17 -0
  55. package/build/examples/workflows/basic-signal/activities.js +18 -0
  56. package/build/examples/workflows/basic-signal/index.d.ts +17 -0
  57. package/build/examples/workflows/basic-signal/index.js +116 -0
  58. package/build/index.d.ts +1 -0
  59. package/build/index.js +4 -1
  60. package/build/lib/db/schemas/002_seed.sql +9 -1
  61. package/build/modules/ltconfig.d.ts +8 -1
  62. package/build/modules/ltconfig.js +12 -2
  63. package/build/routes/escalations/list.js +22 -0
  64. package/build/routes/tasks.js +23 -0
  65. package/build/routes/workflows/invocation.js +16 -10
  66. package/build/sdk/index.d.ts +26 -0
  67. package/build/sdk/index.js +2 -0
  68. package/build/services/interceptor/index.js +9 -3
  69. package/build/services/orchestrator/condition.d.ts +34 -0
  70. package/build/services/orchestrator/condition.js +92 -0
  71. package/build/services/workflow-invocation.d.ts +16 -3
  72. package/build/services/workflow-invocation.js +15 -7
  73. package/build/start/index.d.ts +24 -0
  74. package/build/start/index.js +24 -0
  75. package/build/start/workers.d.ts +6 -8
  76. package/build/start/workers.js +25 -2
  77. package/build/system/mcp-servers/admin/workflows.js +5 -0
  78. package/build/tsconfig.tsbuildinfo +1 -1
  79. package/build/types/envelope.d.ts +7 -0
  80. package/build/types/sdk.d.ts +2 -0
  81. package/build/types/startup.d.ts +29 -2
  82. package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js → AdminDashboard-DUrSBQOl.js} +2 -2
  83. package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js.map → AdminDashboard-DUrSBQOl.js.map} +1 -1
  84. package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js → AvailableEscalationsPage-Dbd1qUK_.js} +2 -2
  85. package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js.map → AvailableEscalationsPage-Dbd1qUK_.js.map} +1 -1
  86. package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js → BotPicker-Cg5iNEkm.js} +2 -2
  87. package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js.map → BotPicker-Cg5iNEkm.js.map} +1 -1
  88. package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js → CollapsibleSection-Kd9UIyeU.js} +2 -2
  89. package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js.map → CollapsibleSection-Kd9UIyeU.js.map} +1 -1
  90. package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js → ConfirmDeleteModal-DZMgmlof.js} +2 -2
  91. package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js.map → ConfirmDeleteModal-DZMgmlof.js.map} +1 -1
  92. package/dashboard/dist/assets/{CopyableId-AqoZayBG.js → CopyableId-cPFTRm8q.js} +2 -2
  93. package/dashboard/dist/assets/{CopyableId-AqoZayBG.js.map → CopyableId-cPFTRm8q.js.map} +1 -1
  94. package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js → CredentialsPage-DJablIbs.js} +2 -2
  95. package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js.map → CredentialsPage-DJablIbs.js.map} +1 -1
  96. package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js → CustomDurationPicker-NgIP6YDW.js} +2 -2
  97. package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js.map → CustomDurationPicker-NgIP6YDW.js.map} +1 -1
  98. package/dashboard/dist/assets/{DataTable-DKvSKoVG.js → DataTable-CTRhTAfT.js} +2 -2
  99. package/dashboard/dist/assets/{DataTable-DKvSKoVG.js.map → DataTable-CTRhTAfT.js.map} +1 -1
  100. package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js → ElapsedCell-HcSJ_MMs.js} +2 -2
  101. package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js.map → ElapsedCell-HcSJ_MMs.js.map} +1 -1
  102. package/dashboard/dist/assets/{EmptyState-X0fIzYID.js → EmptyState-joNbd4gg.js} +2 -2
  103. package/dashboard/dist/assets/{EmptyState-X0fIzYID.js.map → EmptyState-joNbd4gg.js.map} +1 -1
  104. package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js → EscalationsOverview-DpXDnQux.js} +2 -2
  105. package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js.map → EscalationsOverview-DpXDnQux.js.map} +1 -1
  106. package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js → EventTable-CYem3v8n.js} +2 -2
  107. package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js.map → EventTable-CYem3v8n.js.map} +1 -1
  108. package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js → FilterBar-BiO8SOzc.js} +2 -2
  109. package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js.map → FilterBar-BiO8SOzc.js.map} +1 -1
  110. package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js → ListToolbar-6yRDh2e9.js} +2 -2
  111. package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js.map → ListToolbar-6yRDh2e9.js.map} +1 -1
  112. package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js → McpOverview-CUgSxkQe.js} +2 -2
  113. package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js.map → McpOverview-CUgSxkQe.js.map} +1 -1
  114. package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js → McpQueryDetailPage-BWbinTM_.js} +2 -2
  115. package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js.map → McpQueryDetailPage-BWbinTM_.js.map} +1 -1
  116. package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js → McpQueryPage-lV6kfDG5.js} +2 -2
  117. package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js.map → McpQueryPage-lV6kfDG5.js.map} +1 -1
  118. package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js → McpRunDetailPage-D6gaxH3_.js} +2 -2
  119. package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js.map → McpRunDetailPage-D6gaxH3_.js.map} +1 -1
  120. package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js → McpRunsPage-DKvTklh9.js} +2 -2
  121. package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js.map → McpRunsPage-DKvTklh9.js.map} +1 -1
  122. package/dashboard/dist/assets/{Modal-_2AbWxJT.js → Modal-BuTvD0pz.js} +2 -2
  123. package/dashboard/dist/assets/{Modal-_2AbWxJT.js.map → Modal-BuTvD0pz.js.map} +1 -1
  124. package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js → OperatorDashboard-C9SSV96T.js} +2 -2
  125. package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js.map → OperatorDashboard-C9SSV96T.js.map} +1 -1
  126. package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js → PageHeader-BcTVF9ul.js} +2 -2
  127. package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js.map → PageHeader-BcTVF9ul.js.map} +1 -1
  128. package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js → PageHeaderWithStats-BI7JG5x6.js} +2 -2
  129. package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js.map → PageHeaderWithStats-BI7JG5x6.js.map} +1 -1
  130. package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js → PriorityBadge-DqVaOU65.js} +2 -2
  131. package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js.map → PriorityBadge-DqVaOU65.js.map} +1 -1
  132. package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js → ProcessDetailPage-hFMhf9qa.js} +2 -2
  133. package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js.map → ProcessDetailPage-hFMhf9qa.js.map} +1 -1
  134. package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js → ProcessesListPage-ByVoBCQ3.js} +2 -2
  135. package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js.map → ProcessesListPage-ByVoBCQ3.js.map} +1 -1
  136. package/dashboard/dist/assets/{RolePill-CcAqEaSt.js → RolePill-D9ZIkYiu.js} +2 -2
  137. package/dashboard/dist/assets/{RolePill-CcAqEaSt.js.map → RolePill-D9ZIkYiu.js.map} +1 -1
  138. package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js → RolesPage-SMedMuqa.js} +2 -2
  139. package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js.map → RolesPage-SMedMuqa.js.map} +1 -1
  140. package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js → RowActions-yDhwwDbU.js} +2 -2
  141. package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js.map → RowActions-yDhwwDbU.js.map} +1 -1
  142. package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js → StatCard-BrBnQFxh.js} +2 -2
  143. package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js.map → StatCard-BrBnQFxh.js.map} +1 -1
  144. package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js → StatusBadge-xgb-lZku.js} +2 -2
  145. package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js.map → StatusBadge-xgb-lZku.js.map} +1 -1
  146. package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js → StepIndicator-B9ps2SvM.js} +2 -2
  147. package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js.map → StepIndicator-B9ps2SvM.js.map} +1 -1
  148. package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js → StickyPagination-DTIjBKN3.js} +2 -2
  149. package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js.map → StickyPagination-DTIjBKN3.js.map} +1 -1
  150. package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js → SwimlaneTimeline-RK4Yu66z.js} +2 -2
  151. package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js.map → SwimlaneTimeline-RK4Yu66z.js.map} +1 -1
  152. package/dashboard/dist/assets/{TagInput-BLtf86Ly.js → TagInput-CdNUuqk4.js} +2 -2
  153. package/dashboard/dist/assets/{TagInput-BLtf86Ly.js.map → TagInput-CdNUuqk4.js.map} +1 -1
  154. package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js → TaskDetailPage-C-nzaNea.js} +2 -2
  155. package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js.map → TaskDetailPage-C-nzaNea.js.map} +1 -1
  156. package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js → TaskQueuePill-Lvr2-NzS.js} +2 -2
  157. package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js.map → TaskQueuePill-Lvr2-NzS.js.map} +1 -1
  158. package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js → TasksListPage-DSUmD84y.js} +2 -2
  159. package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js.map → TasksListPage-DSUmD84y.js.map} +1 -1
  160. package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js → TimeAgo-BZdLdrIh.js} +2 -2
  161. package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js.map → TimeAgo-BZdLdrIh.js.map} +1 -1
  162. package/dashboard/dist/assets/{TimestampCell-DRX724uU.js → TimestampCell-QX_0i5FK.js} +2 -2
  163. package/dashboard/dist/assets/{TimestampCell-DRX724uU.js.map → TimestampCell-QX_0i5FK.js.map} +1 -1
  164. package/dashboard/dist/assets/{UserName-Ca8FA469.js → UserName-DyZMXcBm.js} +2 -2
  165. package/dashboard/dist/assets/{UserName-Ca8FA469.js.map → UserName-DyZMXcBm.js.map} +1 -1
  166. package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js → WorkflowExecutionPage-DjVxfZaF.js} +2 -2
  167. package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js.map → WorkflowExecutionPage-DjVxfZaF.js.map} +1 -1
  168. package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js +2 -0
  169. package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js.map +1 -0
  170. package/dashboard/dist/assets/WorkflowsDashboard-DZjuiFZ0.js +2 -0
  171. package/dashboard/dist/assets/WorkflowsDashboard-DZjuiFZ0.js.map +1 -0
  172. package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js → WorkflowsOverview-CLnLRpOu.js} +2 -2
  173. package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js.map → WorkflowsOverview-CLnLRpOu.js.map} +1 -1
  174. package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js → YamlWorkflowsPage-VjdhnLmO.js} +2 -2
  175. package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js.map → YamlWorkflowsPage-VjdhnLmO.js.map} +1 -1
  176. package/dashboard/dist/assets/{bots-DZEXcgiJ.js → bots-DIM6lBoY.js} +2 -2
  177. package/dashboard/dist/assets/{bots-DZEXcgiJ.js.map → bots-DIM6lBoY.js.map} +1 -1
  178. package/dashboard/dist/assets/{escalation-Cw48lNaF.js → escalation-JOTuOqjq.js} +2 -2
  179. package/dashboard/dist/assets/{escalation-Cw48lNaF.js.map → escalation-JOTuOqjq.js.map} +1 -1
  180. package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js → escalation-columns-Cyg58nkg.js} +2 -2
  181. package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js.map → escalation-columns-Cyg58nkg.js.map} +1 -1
  182. package/dashboard/dist/assets/{helpers-fk_qr729.js → helpers-B1BDxBZd.js} +2 -2
  183. package/dashboard/dist/assets/{helpers-fk_qr729.js.map → helpers-B1BDxBZd.js.map} +1 -1
  184. package/dashboard/dist/assets/{helpers-Cuu3xKfr.js → helpers-BCix9c_m.js} +2 -2
  185. package/dashboard/dist/assets/{helpers-Cuu3xKfr.js.map → helpers-BCix9c_m.js.map} +1 -1
  186. package/dashboard/dist/assets/{index-Dj-z-x8M.js → index-BUK3qR-1.js} +2 -2
  187. package/dashboard/dist/assets/{index-Dj-z-x8M.js.map → index-BUK3qR-1.js.map} +1 -1
  188. package/dashboard/dist/assets/{index-BwN3KP_L.js → index-BYZX9tOb.js} +8 -8
  189. package/dashboard/dist/assets/index-BYZX9tOb.js.map +1 -0
  190. package/dashboard/dist/assets/{index-BIG3KooI.js → index-BcR6PfpY.js} +2 -2
  191. package/dashboard/dist/assets/{index-BIG3KooI.js.map → index-BcR6PfpY.js.map} +1 -1
  192. package/dashboard/dist/assets/index-BizfauqT.js +6 -0
  193. package/dashboard/dist/assets/index-BizfauqT.js.map +1 -0
  194. package/dashboard/dist/assets/{index-aRvL-dXp.js → index-Cf60K3x9.js} +2 -2
  195. package/dashboard/dist/assets/{index-aRvL-dXp.js.map → index-Cf60K3x9.js.map} +1 -1
  196. package/dashboard/dist/assets/{index-b03HlbnH.js → index-Cg5nfiYX.js} +2 -2
  197. package/dashboard/dist/assets/{index-b03HlbnH.js.map → index-Cg5nfiYX.js.map} +1 -1
  198. package/dashboard/dist/assets/index-D1wVX50Z.js +15 -0
  199. package/dashboard/dist/assets/index-D1wVX50Z.js.map +1 -0
  200. package/dashboard/dist/assets/{index-DwRytW9O.js → index-DDYFpi4l.js} +4 -4
  201. package/dashboard/dist/assets/index-DDYFpi4l.js.map +1 -0
  202. package/dashboard/dist/assets/{index-B98ipWxE.js → index-Di12t56M.js} +2 -2
  203. package/dashboard/dist/assets/{index-B98ipWxE.js.map → index-Di12t56M.js.map} +1 -1
  204. package/dashboard/dist/assets/{index-CORHB0WC.js → index-Ds0JoXS2.js} +2 -2
  205. package/dashboard/dist/assets/{index-CORHB0WC.js.map → index-Ds0JoXS2.js.map} +1 -1
  206. package/dashboard/dist/assets/{mcp-BZoFryNc.js → mcp-B_xbczAt.js} +2 -2
  207. package/dashboard/dist/assets/{mcp-BZoFryNc.js.map → mcp-B_xbczAt.js.map} +1 -1
  208. package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js → mcp-query-B8-P_QoG.js} +2 -2
  209. package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js.map → mcp-query-B8-P_QoG.js.map} +1 -1
  210. package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js → mcp-runs-CWeZinoF.js} +2 -2
  211. package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js.map → mcp-runs-CWeZinoF.js.map} +1 -1
  212. package/dashboard/dist/assets/{namespaces-BwnZI4_A.js → namespaces-C3WtdO_9.js} +2 -2
  213. package/dashboard/dist/assets/{namespaces-BwnZI4_A.js.map → namespaces-C3WtdO_9.js.map} +1 -1
  214. package/dashboard/dist/assets/{roles-Bgn1K8zU.js → roles-BDAsPpZG.js} +2 -2
  215. package/dashboard/dist/assets/{roles-Bgn1K8zU.js.map → roles-BDAsPpZG.js.map} +1 -1
  216. package/dashboard/dist/assets/{settings-CizYiutL.js → settings-Ife_UwAp.js} +2 -2
  217. package/dashboard/dist/assets/{settings-CizYiutL.js.map → settings-Ife_UwAp.js.map} +1 -1
  218. package/dashboard/dist/assets/{tasks-Bmte_hc4.js → tasks-BquNDHDI.js} +2 -2
  219. package/dashboard/dist/assets/{tasks-Bmte_hc4.js.map → tasks-BquNDHDI.js.map} +1 -1
  220. package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js → useEventHooks-anv_B2Yy.js} +2 -2
  221. package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js.map → useEventHooks-anv_B2Yy.js.map} +1 -1
  222. package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js → useYamlActivityEvents-DN-PTgVx.js} +2 -2
  223. package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js.map → useYamlActivityEvents-DN-PTgVx.js.map} +1 -1
  224. package/dashboard/dist/assets/{users-NSDgTt-z.js → users-CFcxB4v6.js} +2 -2
  225. package/dashboard/dist/assets/{users-NSDgTt-z.js.map → users-CFcxB4v6.js.map} +1 -1
  226. package/dashboard/dist/assets/{vendor-icons-D1DdudfH.js → vendor-icons-T4r2DSPD.js} +2 -2
  227. package/dashboard/dist/assets/{vendor-icons-D1DdudfH.js.map → vendor-icons-T4r2DSPD.js.map} +1 -1
  228. package/dashboard/dist/assets/{workflows-k0XRdGXx.js → workflows-CeRci9z3.js} +2 -2
  229. package/dashboard/dist/assets/{workflows-k0XRdGXx.js.map → workflows-CeRci9z3.js.map} +1 -1
  230. package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js → yaml-workflows-DLwd2BOX.js} +2 -2
  231. package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js.map → yaml-workflows-DLwd2BOX.js.map} +1 -1
  232. package/dashboard/dist/index.html +2 -2
  233. package/docs/api/{escalations.md → http/escalations.md} +99 -0
  234. package/docs/api/{tasks.md → http/tasks.md} +47 -0
  235. package/docs/api/sdk/auth.md +27 -0
  236. package/docs/api/sdk/bot-accounts.md +243 -0
  237. package/docs/api/sdk/controlplane.md +103 -0
  238. package/docs/api/sdk/dba.md +52 -0
  239. package/docs/api/sdk/escalations.md +511 -0
  240. package/docs/api/sdk/events.md +68 -0
  241. package/docs/api/sdk/exports.md +124 -0
  242. package/docs/api/sdk/insight.md +112 -0
  243. package/docs/api/sdk/maintenance.md +54 -0
  244. package/docs/api/sdk/mcp-runs.md +71 -0
  245. package/docs/api/sdk/mcp.md +250 -0
  246. package/docs/api/sdk/namespaces.md +43 -0
  247. package/docs/api/sdk/roles.md +183 -0
  248. package/docs/api/sdk/settings.md +24 -0
  249. package/docs/api/sdk/tasks.md +159 -0
  250. package/docs/api/sdk/users.md +196 -0
  251. package/docs/api/sdk/workflow-sets.md +135 -0
  252. package/docs/api/sdk/workflows.md +271 -0
  253. package/docs/api/sdk/yaml-workflows.md +408 -0
  254. package/package.json +1 -1
  255. package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js +0 -2
  256. package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js.map +0 -1
  257. package/dashboard/dist/assets/WorkflowsDashboard-Drl3juz9.js +0 -2
  258. package/dashboard/dist/assets/WorkflowsDashboard-Drl3juz9.js.map +0 -1
  259. package/dashboard/dist/assets/index-BwN3KP_L.js.map +0 -1
  260. package/dashboard/dist/assets/index-Bxe8h1x4.js +0 -17
  261. package/dashboard/dist/assets/index-Bxe8h1x4.js.map +0 -1
  262. package/dashboard/dist/assets/index-CNI7k7oB.js +0 -6
  263. package/dashboard/dist/assets/index-CNI7k7oB.js.map +0 -1
  264. package/dashboard/dist/assets/index-DwRytW9O.js.map +0 -1
  265. package/docs/epic-integration.md +0 -224
  266. package/docs/workflow-builder.md +0 -371
  267. /package/docs/api/{dba.md → http/dba.md} +0 -0
  268. /package/docs/api/{exports.md → http/exports.md} +0 -0
  269. /package/docs/api/{maintenance.md → http/maintenance.md} +0 -0
  270. /package/docs/api/{mcp-runs.md → http/mcp-runs.md} +0 -0
  271. /package/docs/api/{mcp-servers.md → http/mcp-servers.md} +0 -0
  272. /package/docs/api/{namespaces.md → http/namespaces.md} +0 -0
  273. /package/docs/api/{roles.md → http/roles.md} +0 -0
  274. /package/docs/api/{service-accounts.md → http/service-accounts.md} +0 -0
  275. /package/docs/api/{settings.md → http/settings.md} +0 -0
  276. /package/docs/api/{users.md → http/users.md} +0 -0
  277. /package/docs/api/{workflows.md → http/workflows.md} +0 -0
  278. /package/docs/api/{yaml-workflows.md → http/yaml-workflows.md} +0 -0
package/README.md CHANGED
@@ -251,7 +251,9 @@ All modes share PostgreSQL and scale independently. See [Cloud Deployment](docs/
251
251
 
252
252
  **Adapters:** [Auth](docs/auth.md) · [Events](docs/events.md) · [Telemetry](docs/telemetry.md) · [Logging](docs/logging.md) · [Maintenance](docs/maintenance.md) · [OAuth](docs/oauth-and-delegation.md)
253
253
 
254
- **API:** [Workflows](docs/api/workflows.md) · [Tasks](docs/api/tasks.md) · [Escalations](docs/api/escalations.md) · [YAML Workflows](docs/api/yaml-workflows.md) · [Users](docs/api/users.md) · [Roles](docs/api/roles.md) · [Service Accounts](docs/api/service-accounts.md) · [MCP Servers](docs/api/mcp-servers.md) · [MCP Runs](docs/api/mcp-runs.md) · [Exports](docs/api/exports.md)
254
+ **HTTP API:** [Workflows](docs/api/http/workflows.md) · [Tasks](docs/api/http/tasks.md) · [Escalations](docs/api/http/escalations.md) · [YAML Workflows](docs/api/http/yaml-workflows.md) · [Users](docs/api/http/users.md) · [Roles](docs/api/http/roles.md) · [Service Accounts](docs/api/http/service-accounts.md) · [MCP Servers](docs/api/http/mcp-servers.md) · [MCP Runs](docs/api/http/mcp-runs.md) · [Exports](docs/api/http/exports.md)
255
+
256
+ **SDK:** [Overview](docs/sdk.md) · [Workflows](docs/api/sdk/workflows.md) · [Tasks](docs/api/sdk/tasks.md) · [Escalations](docs/api/sdk/escalations.md) · [YAML Workflows](docs/api/sdk/yaml-workflows.md) · [MCP](docs/api/sdk/mcp.md) · [Events](docs/api/sdk/events.md)
255
257
 
256
258
  ## Contributing
257
259
 
@@ -1,4 +1,15 @@
1
1
  import type { LTApiResult } from '../types/sdk';
2
+ /**
3
+ * Authenticate a user by username and password.
4
+ *
5
+ * Verifies credentials against the user store and returns a signed JWT
6
+ * with the user's roles and highest privilege level. The token is valid
7
+ * for 24 hours.
8
+ *
9
+ * @param input.username — login identifier (external_id)
10
+ * @param input.password — plaintext password
11
+ * @returns `{ status: 200, data: { token, user: { id, external_id, display_name, roles } } }`
12
+ */
2
13
  export declare function login(input: {
3
14
  username: string;
4
15
  password: string;
package/build/api/auth.js CHANGED
@@ -3,6 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.login = login;
4
4
  const user_1 = require("../services/user");
5
5
  const auth_1 = require("../modules/auth");
6
+ /**
7
+ * Authenticate a user by username and password.
8
+ *
9
+ * Verifies credentials against the user store and returns a signed JWT
10
+ * with the user's roles and highest privilege level. The token is valid
11
+ * for 24 hours.
12
+ *
13
+ * @param input.username — login identifier (external_id)
14
+ * @param input.password — plaintext password
15
+ * @returns `{ status: 200, data: { token, user: { id, external_id, display_name, roles } } }`
16
+ */
6
17
  async function login(input) {
7
18
  try {
8
19
  const { username, password } = input;
@@ -1,11 +1,37 @@
1
1
  import type { LTApiResult, LTApiAuth } from '../types/sdk';
2
+ /**
3
+ * List all bot accounts with pagination.
4
+ *
5
+ * @param input.limit — maximum number of bots to return (default 50)
6
+ * @param input.offset — number of bots to skip for pagination (default 0)
7
+ * @returns `{ status: 200, data: Bot[] }` paginated list of bots
8
+ */
2
9
  export declare function listBots(input: {
3
10
  limit?: number;
4
11
  offset?: number;
5
12
  }): Promise<LTApiResult>;
13
+ /**
14
+ * Retrieve a single bot account by ID.
15
+ *
16
+ * @param input.id — unique identifier of the bot
17
+ * @returns `{ status: 200, data: Bot }` the bot record, or 404 if not found
18
+ */
6
19
  export declare function getBot(input: {
7
20
  id: string;
8
21
  }): Promise<LTApiResult>;
22
+ /**
23
+ * Create a new bot account with optional roles.
24
+ *
25
+ * Validates that each provided role has a valid type (superadmin, admin, member).
26
+ * Returns 409 if a bot with the same name already exists.
27
+ *
28
+ * @param input.name — unique bot name (required)
29
+ * @param input.description — optional text description of the bot
30
+ * @param input.display_name — optional human-friendly display name
31
+ * @param input.roles — optional list of roles to assign at creation, each with a role name and type
32
+ * @param auth — authenticated user context; userId is recorded as the bot creator
33
+ * @returns `{ status: 201, data: Bot }` the newly created bot record
34
+ */
9
35
  export declare function createBot(input: {
10
36
  name: string;
11
37
  description?: string;
@@ -15,36 +41,97 @@ export declare function createBot(input: {
15
41
  type: string;
16
42
  }[];
17
43
  }, auth?: LTApiAuth): Promise<LTApiResult>;
44
+ /**
45
+ * Update mutable fields on an existing bot account.
46
+ *
47
+ * @param input.id — unique identifier of the bot to update
48
+ * @param input.display_name — new display name
49
+ * @param input.description — new description
50
+ * @param input.status — new status value
51
+ * @returns `{ status: 200, data: Bot }` the updated bot record, or 404 if not found
52
+ */
18
53
  export declare function updateBot(input: {
19
54
  id: string;
20
55
  display_name?: string;
21
56
  description?: string;
22
57
  status?: string;
23
58
  }): Promise<LTApiResult>;
59
+ /**
60
+ * Delete a bot account by ID.
61
+ *
62
+ * @param input.id — unique identifier of the bot to delete
63
+ * @returns `{ status: 200, data: { deleted: true } }` on success, or 404 if not found
64
+ */
24
65
  export declare function deleteBot(input: {
25
66
  id: string;
26
67
  }): Promise<LTApiResult>;
68
+ /**
69
+ * List all roles assigned to a bot account.
70
+ *
71
+ * @param input.id — unique identifier of the bot
72
+ * @returns `{ status: 200, data: { roles: Role[] } }` the bot's roles, or 404 if bot not found
73
+ */
27
74
  export declare function getBotRoles(input: {
28
75
  id: string;
29
76
  }): Promise<LTApiResult>;
77
+ /**
78
+ * Assign a role to a bot account.
79
+ *
80
+ * Validates that the role type is one of superadmin, admin, or member.
81
+ *
82
+ * @param input.id — unique identifier of the bot
83
+ * @param input.role — role name to assign
84
+ * @param input.type — role type (superadmin, admin, or member)
85
+ * @returns `{ status: 201, data: Role }` the newly assigned role, or 404 if bot not found
86
+ */
30
87
  export declare function addBotRole(input: {
31
88
  id: string;
32
89
  role: string;
33
90
  type: string;
34
91
  }): Promise<LTApiResult>;
92
+ /**
93
+ * Remove a role from a bot account.
94
+ *
95
+ * @param input.id — unique identifier of the bot
96
+ * @param input.role — role name to remove
97
+ * @returns `{ status: 200, data: { removed: true } }` on success, or 404 if role not found
98
+ */
35
99
  export declare function removeBotRole(input: {
36
100
  id: string;
37
101
  role: string;
38
102
  }): Promise<LTApiResult>;
103
+ /**
104
+ * List all API keys for a bot account.
105
+ *
106
+ * @param input.id — unique identifier of the bot
107
+ * @returns `{ status: 200, data: { keys: ApiKey[] } }` the bot's API keys, or 404 if bot not found
108
+ */
39
109
  export declare function listBotKeys(input: {
40
110
  id: string;
41
111
  }): Promise<LTApiResult>;
112
+ /**
113
+ * Create a new API key for a bot account.
114
+ *
115
+ * Returns 409 if an API key with the same name already exists for this bot.
116
+ *
117
+ * @param input.id — unique identifier of the bot
118
+ * @param input.name — human-readable name for the API key (required)
119
+ * @param input.scopes — optional list of permission scopes to restrict the key
120
+ * @param input.expires_at — optional ISO 8601 expiration timestamp
121
+ * @returns `{ status: 201, data: ApiKey }` the newly created API key (includes the secret)
122
+ */
42
123
  export declare function createBotKey(input: {
43
124
  id: string;
44
125
  name: string;
45
126
  scopes?: string[];
46
127
  expires_at?: string;
47
128
  }): Promise<LTApiResult>;
129
+ /**
130
+ * Revoke an existing bot API key.
131
+ *
132
+ * @param input.keyId — unique identifier of the API key to revoke
133
+ * @returns `{ status: 200, data: { revoked: true } }` on success, or 404 if key not found
134
+ */
48
135
  export declare function revokeBotKey(input: {
49
136
  keyId: string;
50
137
  }): Promise<LTApiResult>;
@@ -46,6 +46,13 @@ exports.createBotKey = createBotKey;
46
46
  exports.revokeBotKey = revokeBotKey;
47
47
  const iam = __importStar(require("../services/iam"));
48
48
  const user_1 = require("../services/user");
49
+ /**
50
+ * List all bot accounts with pagination.
51
+ *
52
+ * @param input.limit — maximum number of bots to return (default 50)
53
+ * @param input.offset — number of bots to skip for pagination (default 0)
54
+ * @returns `{ status: 200, data: Bot[] }` paginated list of bots
55
+ */
49
56
  async function listBots(input) {
50
57
  try {
51
58
  const limit = input.limit ?? 50;
@@ -57,6 +64,12 @@ async function listBots(input) {
57
64
  return { status: 500, error: err.message };
58
65
  }
59
66
  }
67
+ /**
68
+ * Retrieve a single bot account by ID.
69
+ *
70
+ * @param input.id — unique identifier of the bot
71
+ * @returns `{ status: 200, data: Bot }` the bot record, or 404 if not found
72
+ */
60
73
  async function getBot(input) {
61
74
  try {
62
75
  const bot = await iam.getBot(input.id);
@@ -69,6 +82,19 @@ async function getBot(input) {
69
82
  return { status: 500, error: err.message };
70
83
  }
71
84
  }
85
+ /**
86
+ * Create a new bot account with optional roles.
87
+ *
88
+ * Validates that each provided role has a valid type (superadmin, admin, member).
89
+ * Returns 409 if a bot with the same name already exists.
90
+ *
91
+ * @param input.name — unique bot name (required)
92
+ * @param input.description — optional text description of the bot
93
+ * @param input.display_name — optional human-friendly display name
94
+ * @param input.roles — optional list of roles to assign at creation, each with a role name and type
95
+ * @param auth — authenticated user context; userId is recorded as the bot creator
96
+ * @returns `{ status: 201, data: Bot }` the newly created bot record
97
+ */
72
98
  async function createBot(input, auth) {
73
99
  try {
74
100
  if (!input.name) {
@@ -100,6 +126,15 @@ async function createBot(input, auth) {
100
126
  return { status: 500, error: err.message };
101
127
  }
102
128
  }
129
+ /**
130
+ * Update mutable fields on an existing bot account.
131
+ *
132
+ * @param input.id — unique identifier of the bot to update
133
+ * @param input.display_name — new display name
134
+ * @param input.description — new description
135
+ * @param input.status — new status value
136
+ * @returns `{ status: 200, data: Bot }` the updated bot record, or 404 if not found
137
+ */
103
138
  async function updateBot(input) {
104
139
  try {
105
140
  const { id, ...fields } = input;
@@ -113,6 +148,12 @@ async function updateBot(input) {
113
148
  return { status: 500, error: err.message };
114
149
  }
115
150
  }
151
+ /**
152
+ * Delete a bot account by ID.
153
+ *
154
+ * @param input.id — unique identifier of the bot to delete
155
+ * @returns `{ status: 200, data: { deleted: true } }` on success, or 404 if not found
156
+ */
116
157
  async function deleteBot(input) {
117
158
  try {
118
159
  const deleted = await iam.deleteBot(input.id);
@@ -125,6 +166,12 @@ async function deleteBot(input) {
125
166
  return { status: 500, error: err.message };
126
167
  }
127
168
  }
169
+ /**
170
+ * List all roles assigned to a bot account.
171
+ *
172
+ * @param input.id — unique identifier of the bot
173
+ * @returns `{ status: 200, data: { roles: Role[] } }` the bot's roles, or 404 if bot not found
174
+ */
128
175
  async function getBotRoles(input) {
129
176
  try {
130
177
  const bot = await iam.getBot(input.id);
@@ -138,6 +185,16 @@ async function getBotRoles(input) {
138
185
  return { status: 500, error: err.message };
139
186
  }
140
187
  }
188
+ /**
189
+ * Assign a role to a bot account.
190
+ *
191
+ * Validates that the role type is one of superadmin, admin, or member.
192
+ *
193
+ * @param input.id — unique identifier of the bot
194
+ * @param input.role — role name to assign
195
+ * @param input.type — role type (superadmin, admin, or member)
196
+ * @returns `{ status: 201, data: Role }` the newly assigned role, or 404 if bot not found
197
+ */
141
198
  async function addBotRole(input) {
142
199
  try {
143
200
  if (!input.role || !input.type) {
@@ -157,6 +214,13 @@ async function addBotRole(input) {
157
214
  return { status: 500, error: err.message };
158
215
  }
159
216
  }
217
+ /**
218
+ * Remove a role from a bot account.
219
+ *
220
+ * @param input.id — unique identifier of the bot
221
+ * @param input.role — role name to remove
222
+ * @returns `{ status: 200, data: { removed: true } }` on success, or 404 if role not found
223
+ */
160
224
  async function removeBotRole(input) {
161
225
  try {
162
226
  const removed = await iam.removeBotRole(input.id, input.role);
@@ -169,6 +233,12 @@ async function removeBotRole(input) {
169
233
  return { status: 500, error: err.message };
170
234
  }
171
235
  }
236
+ /**
237
+ * List all API keys for a bot account.
238
+ *
239
+ * @param input.id — unique identifier of the bot
240
+ * @returns `{ status: 200, data: { keys: ApiKey[] } }` the bot's API keys, or 404 if bot not found
241
+ */
172
242
  async function listBotKeys(input) {
173
243
  try {
174
244
  const bot = await iam.getBot(input.id);
@@ -182,6 +252,17 @@ async function listBotKeys(input) {
182
252
  return { status: 500, error: err.message };
183
253
  }
184
254
  }
255
+ /**
256
+ * Create a new API key for a bot account.
257
+ *
258
+ * Returns 409 if an API key with the same name already exists for this bot.
259
+ *
260
+ * @param input.id — unique identifier of the bot
261
+ * @param input.name — human-readable name for the API key (required)
262
+ * @param input.scopes — optional list of permission scopes to restrict the key
263
+ * @param input.expires_at — optional ISO 8601 expiration timestamp
264
+ * @returns `{ status: 201, data: ApiKey }` the newly created API key (includes the secret)
265
+ */
185
266
  async function createBotKey(input) {
186
267
  try {
187
268
  if (!input.name) {
@@ -201,6 +282,12 @@ async function createBotKey(input) {
201
282
  return { status: 500, error: err.message };
202
283
  }
203
284
  }
285
+ /**
286
+ * Revoke an existing bot API key.
287
+ *
288
+ * @param input.keyId — unique identifier of the API key to revoke
289
+ * @returns `{ status: 200, data: { revoked: true } }` on success, or 404 if key not found
290
+ */
204
291
  async function revokeBotKey(input) {
205
292
  try {
206
293
  const revoked = await iam.revokeBotKey(input.keyId);
@@ -1,20 +1,68 @@
1
1
  import type { LTApiResult } from '../types/sdk';
2
+ /**
3
+ * List all registered application namespaces.
4
+ *
5
+ * @returns `{ status: 200, data: { apps } }` array of known app identifiers
6
+ */
2
7
  export declare function listApps(): Promise<LTApiResult>;
8
+ /**
9
+ * Query active worker profiles for an application.
10
+ *
11
+ * Sends a roll-call request to the mesh and collects responses from
12
+ * all running workers within the optional delay window.
13
+ *
14
+ * @param input.appId — application namespace to query (defaults to 'durable')
15
+ * @param input.delay — milliseconds to wait for worker responses before returning
16
+ * @returns `{ status: 200, data: { profiles } }` array of worker profile objects
17
+ */
3
18
  export declare function rollCall(input: {
4
19
  appId?: string;
5
20
  delay?: number;
6
21
  }): Promise<LTApiResult>;
22
+ /**
23
+ * Apply a throttle rate to workflow execution.
24
+ *
25
+ * Sets the throttle value for a specific topic or workflow within an app
26
+ * namespace. Also publishes a synthetic `mesh.throttle` event so the
27
+ * dashboard event stream reflects the change.
28
+ *
29
+ * @param input.appId — application namespace (defaults to 'durable')
30
+ * @param input.throttle — throttle value to apply (required, must be a number)
31
+ * @param input.topic — optional topic to scope the throttle to
32
+ * @param input.guid — optional workflow GUID to scope the throttle to
33
+ * @returns `{ status: 200, data: { success } }` boolean indicating the throttle was applied
34
+ */
7
35
  export declare function applyThrottle(input: {
8
36
  appId?: string;
9
37
  throttle: number;
10
38
  topic?: string;
11
39
  guid?: string;
12
40
  }): Promise<LTApiResult>;
41
+ /**
42
+ * Retrieve stream statistics for an application.
43
+ *
44
+ * Returns throughput and backlog metrics for Redis streams backing the
45
+ * given app namespace over the specified time window.
46
+ *
47
+ * @param input.app_id — application namespace (defaults to 'durable')
48
+ * @param input.duration — time window for stats aggregation, e.g. '1h', '30m' (defaults to '1h')
49
+ * @param input.stream — optional specific stream name to filter results
50
+ * @returns `{ status: 200, data: { ... } }` stream statistics object
51
+ */
13
52
  export declare function getStreamStats(input: {
14
53
  app_id?: string;
15
54
  duration?: string;
16
55
  stream?: string;
17
56
  }): Promise<LTApiResult>;
57
+ /**
58
+ * Subscribe to mesh events for an application.
59
+ *
60
+ * Establishes a subscription to the event stream of the given app
61
+ * namespace so that mesh events are captured and forwarded.
62
+ *
63
+ * @param input.appId — application namespace to subscribe to (defaults to 'durable')
64
+ * @returns `{ status: 200, data: { subscribed, appId } }` confirmation with the subscribed app ID
65
+ */
18
66
  export declare function subscribeMesh(input: {
19
67
  appId?: string;
20
68
  }): Promise<LTApiResult>;
@@ -40,6 +40,11 @@ exports.getStreamStats = getStreamStats;
40
40
  exports.subscribeMesh = subscribeMesh;
41
41
  const controlplane = __importStar(require("../services/controlplane"));
42
42
  const events_1 = require("../lib/events");
43
+ /**
44
+ * List all registered application namespaces.
45
+ *
46
+ * @returns `{ status: 200, data: { apps } }` array of known app identifiers
47
+ */
43
48
  async function listApps() {
44
49
  try {
45
50
  const apps = await controlplane.listApps();
@@ -49,6 +54,16 @@ async function listApps() {
49
54
  return { status: 500, error: err.message };
50
55
  }
51
56
  }
57
+ /**
58
+ * Query active worker profiles for an application.
59
+ *
60
+ * Sends a roll-call request to the mesh and collects responses from
61
+ * all running workers within the optional delay window.
62
+ *
63
+ * @param input.appId — application namespace to query (defaults to 'durable')
64
+ * @param input.delay — milliseconds to wait for worker responses before returning
65
+ * @returns `{ status: 200, data: { profiles } }` array of worker profile objects
66
+ */
52
67
  async function rollCall(input) {
53
68
  try {
54
69
  const appId = input.appId || 'durable';
@@ -59,6 +74,19 @@ async function rollCall(input) {
59
74
  return { status: 500, error: err.message };
60
75
  }
61
76
  }
77
+ /**
78
+ * Apply a throttle rate to workflow execution.
79
+ *
80
+ * Sets the throttle value for a specific topic or workflow within an app
81
+ * namespace. Also publishes a synthetic `mesh.throttle` event so the
82
+ * dashboard event stream reflects the change.
83
+ *
84
+ * @param input.appId — application namespace (defaults to 'durable')
85
+ * @param input.throttle — throttle value to apply (required, must be a number)
86
+ * @param input.topic — optional topic to scope the throttle to
87
+ * @param input.guid — optional workflow GUID to scope the throttle to
88
+ * @returns `{ status: 200, data: { success } }` boolean indicating the throttle was applied
89
+ */
62
90
  async function applyThrottle(input) {
63
91
  try {
64
92
  const appId = input.appId || 'durable';
@@ -87,6 +115,17 @@ async function applyThrottle(input) {
87
115
  return { status: 500, error: err.message };
88
116
  }
89
117
  }
118
+ /**
119
+ * Retrieve stream statistics for an application.
120
+ *
121
+ * Returns throughput and backlog metrics for Redis streams backing the
122
+ * given app namespace over the specified time window.
123
+ *
124
+ * @param input.app_id — application namespace (defaults to 'durable')
125
+ * @param input.duration — time window for stats aggregation, e.g. '1h', '30m' (defaults to '1h')
126
+ * @param input.stream — optional specific stream name to filter results
127
+ * @returns `{ status: 200, data: { ... } }` stream statistics object
128
+ */
90
129
  async function getStreamStats(input) {
91
130
  try {
92
131
  const schema = input.app_id || 'durable';
@@ -98,6 +137,15 @@ async function getStreamStats(input) {
98
137
  return { status: 500, error: err.message };
99
138
  }
100
139
  }
140
+ /**
141
+ * Subscribe to mesh events for an application.
142
+ *
143
+ * Establishes a subscription to the event stream of the given app
144
+ * namespace so that mesh events are captured and forwarded.
145
+ *
146
+ * @param input.appId — application namespace to subscribe to (defaults to 'durable')
147
+ * @returns `{ status: 200, data: { subscribed, appId } }` confirmation with the subscribed app ID
148
+ */
101
149
  async function subscribeMesh(input) {
102
150
  try {
103
151
  const appId = input.appId || 'durable';
@@ -1,4 +1,23 @@
1
1
  import type { LTApiResult } from '../types/sdk';
2
+ /**
3
+ * Prune stale HotMesh data from Redis.
4
+ *
5
+ * Selectively removes completed jobs, stream entries, engine/worker
6
+ * streams, and search attributes. Delegates to the HotMesh DBA service.
7
+ *
8
+ * @param input.expire — Redis TTL expression for pruned keys
9
+ * @param input.jobs — prune completed job hashes
10
+ * @param input.streams — prune activity streams
11
+ * @param input.engineStreams — prune engine consumer streams
12
+ * @param input.engineStreamsExpire — TTL for engine stream entries
13
+ * @param input.workerStreams — prune worker consumer streams
14
+ * @param input.workerStreamsExpire — TTL for worker stream entries
15
+ * @param input.attributes — prune FT.SEARCH attributes
16
+ * @param input.entities — limit pruning to these entity types
17
+ * @param input.pruneTransient — include transient keys
18
+ * @param input.keepHmark — preserve hmark keys
19
+ * @returns `{ status: 200, data: <prune result summary> }`
20
+ */
2
21
  export declare function prune(input: {
3
22
  expire?: string;
4
23
  jobs?: boolean;
@@ -12,4 +31,12 @@ export declare function prune(input: {
12
31
  pruneTransient?: boolean;
13
32
  keepHmark?: boolean;
14
33
  }): Promise<LTApiResult>;
34
+ /**
35
+ * Deploy (or redeploy) all HotMesh workflow schemas.
36
+ *
37
+ * Triggers a full schema deployment across all registered entities,
38
+ * updating the Redis execution graph. Safe to call repeatedly.
39
+ *
40
+ * @returns `{ status: 200, data: { ok: true } }`
41
+ */
15
42
  export declare function deploy(): Promise<LTApiResult>;
package/build/api/dba.js CHANGED
@@ -36,6 +36,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.prune = prune;
37
37
  exports.deploy = deploy;
38
38
  const dbaService = __importStar(require("../services/dba"));
39
+ /**
40
+ * Prune stale HotMesh data from Redis.
41
+ *
42
+ * Selectively removes completed jobs, stream entries, engine/worker
43
+ * streams, and search attributes. Delegates to the HotMesh DBA service.
44
+ *
45
+ * @param input.expire — Redis TTL expression for pruned keys
46
+ * @param input.jobs — prune completed job hashes
47
+ * @param input.streams — prune activity streams
48
+ * @param input.engineStreams — prune engine consumer streams
49
+ * @param input.engineStreamsExpire — TTL for engine stream entries
50
+ * @param input.workerStreams — prune worker consumer streams
51
+ * @param input.workerStreamsExpire — TTL for worker stream entries
52
+ * @param input.attributes — prune FT.SEARCH attributes
53
+ * @param input.entities — limit pruning to these entity types
54
+ * @param input.pruneTransient — include transient keys
55
+ * @param input.keepHmark — preserve hmark keys
56
+ * @returns `{ status: 200, data: <prune result summary> }`
57
+ */
39
58
  async function prune(input) {
40
59
  try {
41
60
  const result = await dbaService.prune({
@@ -57,6 +76,14 @@ async function prune(input) {
57
76
  return { status: 500, error: err.message };
58
77
  }
59
78
  }
79
+ /**
80
+ * Deploy (or redeploy) all HotMesh workflow schemas.
81
+ *
82
+ * Triggers a full schema deployment across all registered entities,
83
+ * updating the Redis execution graph. Safe to call repeatedly.
84
+ *
85
+ * @returns `{ status: 200, data: { ok: true } }`
86
+ */
60
87
  async function deploy() {
61
88
  try {
62
89
  await dbaService.deploy();