@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.
- package/README.md +3 -1
- package/build/api/auth.d.ts +11 -0
- package/build/api/auth.js +11 -0
- package/build/api/bot-accounts.d.ts +87 -0
- package/build/api/bot-accounts.js +87 -0
- package/build/api/controlplane.d.ts +48 -0
- package/build/api/controlplane.js +48 -0
- package/build/api/dba.d.ts +27 -0
- package/build/api/dba.js +27 -0
- package/build/api/escalations.d.ts +201 -0
- package/build/api/escalations.js +276 -5
- package/build/api/exports.d.ts +58 -0
- package/build/api/exports.js +58 -0
- package/build/api/insight.d.ts +57 -0
- package/build/api/insight.js +57 -0
- package/build/api/maintenance.d.ts +15 -0
- package/build/api/maintenance.js +15 -0
- package/build/api/mcp-runs.d.ts +27 -0
- package/build/api/mcp-runs.js +27 -0
- package/build/api/mcp.d.ts +108 -0
- package/build/api/mcp.js +108 -0
- package/build/api/namespaces.d.ts +13 -0
- package/build/api/namespaces.js +13 -0
- package/build/api/roles.d.ts +63 -0
- package/build/api/roles.js +63 -5
- package/build/api/settings.d.ts +8 -0
- package/build/api/settings.js +8 -0
- package/build/api/tasks.d.ts +68 -1
- package/build/api/tasks.js +92 -0
- package/build/api/users.d.ts +71 -0
- package/build/api/users.js +71 -5
- package/build/api/workflow-sets.d.ts +51 -0
- package/build/api/workflow-sets.js +51 -0
- package/build/api/workflows.d.ts +110 -0
- package/build/api/workflows.js +117 -1
- package/build/api/yaml-workflows.d.ts +195 -0
- package/build/api/yaml-workflows.js +195 -0
- package/build/examples/seed.js +18 -0
- package/build/examples/types/envelopes.d.ts +35 -0
- package/build/examples/types/index.d.ts +1 -1
- package/build/examples/workers.js +10 -0
- package/build/examples/workflows/assembly-line/activities.d.ts +28 -0
- package/build/examples/workflows/assembly-line/activities.js +53 -0
- package/build/examples/workflows/assembly-line/index.d.ts +17 -0
- package/build/examples/workflows/assembly-line/index.js +60 -0
- package/build/examples/workflows/assembly-line/iterator.d.ts +12 -0
- package/build/examples/workflows/assembly-line/iterator.js +54 -0
- package/build/examples/workflows/assembly-line/reverter.d.ts +18 -0
- package/build/examples/workflows/assembly-line/reverter.js +89 -0
- package/build/examples/workflows/assembly-line/types.d.ts +25 -0
- package/build/examples/workflows/assembly-line/types.js +8 -0
- package/build/examples/workflows/assembly-line/worker.d.ts +13 -0
- package/build/examples/workflows/assembly-line/worker.js +81 -0
- package/build/examples/workflows/basic-signal/activities.d.ts +17 -0
- package/build/examples/workflows/basic-signal/activities.js +18 -0
- package/build/examples/workflows/basic-signal/index.d.ts +17 -0
- package/build/examples/workflows/basic-signal/index.js +116 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +4 -1
- package/build/lib/db/schemas/002_seed.sql +9 -1
- package/build/modules/ltconfig.d.ts +8 -1
- package/build/modules/ltconfig.js +12 -2
- package/build/routes/escalations/list.js +22 -0
- package/build/routes/tasks.js +23 -0
- package/build/routes/workflows/invocation.js +16 -10
- package/build/sdk/index.d.ts +26 -0
- package/build/sdk/index.js +2 -0
- package/build/services/interceptor/index.js +9 -3
- package/build/services/orchestrator/condition.d.ts +34 -0
- package/build/services/orchestrator/condition.js +92 -0
- package/build/services/workflow-invocation.d.ts +16 -3
- package/build/services/workflow-invocation.js +15 -7
- package/build/start/index.d.ts +24 -0
- package/build/start/index.js +24 -0
- package/build/start/workers.d.ts +6 -8
- package/build/start/workers.js +25 -2
- package/build/system/mcp-servers/admin/workflows.js +5 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/envelope.d.ts +7 -0
- package/build/types/sdk.d.ts +2 -0
- package/build/types/startup.d.ts +29 -2
- package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js → AdminDashboard-DUrSBQOl.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DRjkRSjJ.js.map → AdminDashboard-DUrSBQOl.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js → AvailableEscalationsPage-Dbd1qUK_.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-CnivX4Tz.js.map → AvailableEscalationsPage-Dbd1qUK_.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js → BotPicker-Cg5iNEkm.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-DwwaBhTH.js.map → BotPicker-Cg5iNEkm.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js → CollapsibleSection-Kd9UIyeU.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-DQpaVA0M.js.map → CollapsibleSection-Kd9UIyeU.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js → ConfirmDeleteModal-DZMgmlof.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-B7JoDNvt.js.map → ConfirmDeleteModal-DZMgmlof.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-AqoZayBG.js → CopyableId-cPFTRm8q.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-AqoZayBG.js.map → CopyableId-cPFTRm8q.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js → CredentialsPage-DJablIbs.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-qGw1kQzi.js.map → CredentialsPage-DJablIbs.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js → CustomDurationPicker-NgIP6YDW.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-D1HUQcd0.js.map → CustomDurationPicker-NgIP6YDW.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-DKvSKoVG.js → DataTable-CTRhTAfT.js} +2 -2
- package/dashboard/dist/assets/{DataTable-DKvSKoVG.js.map → DataTable-CTRhTAfT.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js → ElapsedCell-HcSJ_MMs.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-B0yrReGQ.js.map → ElapsedCell-HcSJ_MMs.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-X0fIzYID.js → EmptyState-joNbd4gg.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-X0fIzYID.js.map → EmptyState-joNbd4gg.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js → EscalationsOverview-DpXDnQux.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BQAT9W7r.js.map → EscalationsOverview-DpXDnQux.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js → EventTable-CYem3v8n.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CX1KNLhZ.js.map → EventTable-CYem3v8n.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js → FilterBar-BiO8SOzc.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-DMTvuQy-.js.map → FilterBar-BiO8SOzc.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js → ListToolbar-6yRDh2e9.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-DTOSxoEy.js.map → ListToolbar-6yRDh2e9.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js → McpOverview-CUgSxkQe.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-BaKTIWrG.js.map → McpOverview-CUgSxkQe.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js → McpQueryDetailPage-BWbinTM_.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-CC08T5k8.js.map → McpQueryDetailPage-BWbinTM_.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js → McpQueryPage-lV6kfDG5.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-CVfF9dYg.js.map → McpQueryPage-lV6kfDG5.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js → McpRunDetailPage-D6gaxH3_.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-CKs1RWeV.js.map → McpRunDetailPage-D6gaxH3_.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js → McpRunsPage-DKvTklh9.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-CcPD_tY1.js.map → McpRunsPage-DKvTklh9.js.map} +1 -1
- package/dashboard/dist/assets/{Modal-_2AbWxJT.js → Modal-BuTvD0pz.js} +2 -2
- package/dashboard/dist/assets/{Modal-_2AbWxJT.js.map → Modal-BuTvD0pz.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js → OperatorDashboard-C9SSV96T.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-BGiRaRDr.js.map → OperatorDashboard-C9SSV96T.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js → PageHeader-BcTVF9ul.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-DVr5Qyzm.js.map → PageHeader-BcTVF9ul.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js → PageHeaderWithStats-BI7JG5x6.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-D0KRASML.js.map → PageHeaderWithStats-BI7JG5x6.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js → PriorityBadge-DqVaOU65.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-Bx2559OU.js.map → PriorityBadge-DqVaOU65.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js → ProcessDetailPage-hFMhf9qa.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-69I--sry.js.map → ProcessDetailPage-hFMhf9qa.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js → ProcessesListPage-ByVoBCQ3.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-BDpUbua2.js.map → ProcessesListPage-ByVoBCQ3.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-CcAqEaSt.js → RolePill-D9ZIkYiu.js} +2 -2
- package/dashboard/dist/assets/{RolePill-CcAqEaSt.js.map → RolePill-D9ZIkYiu.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js → RolesPage-SMedMuqa.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-Cl23Hjet.js.map → RolesPage-SMedMuqa.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js → RowActions-yDhwwDbU.js} +2 -2
- package/dashboard/dist/assets/{RowActions-B4mqIt3Z.js.map → RowActions-yDhwwDbU.js.map} +1 -1
- package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js → StatCard-BrBnQFxh.js} +2 -2
- package/dashboard/dist/assets/{StatCard-Cz_2OjAZ.js.map → StatCard-BrBnQFxh.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js → StatusBadge-xgb-lZku.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-Wi2FJZsn.js.map → StatusBadge-xgb-lZku.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js → StepIndicator-B9ps2SvM.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-PW5NRDMb.js.map → StepIndicator-B9ps2SvM.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js → StickyPagination-DTIjBKN3.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-Bl2Uzz65.js.map → StickyPagination-DTIjBKN3.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js → SwimlaneTimeline-RK4Yu66z.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-CUPqMd0z.js.map → SwimlaneTimeline-RK4Yu66z.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-BLtf86Ly.js → TagInput-CdNUuqk4.js} +2 -2
- package/dashboard/dist/assets/{TagInput-BLtf86Ly.js.map → TagInput-CdNUuqk4.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js → TaskDetailPage-C-nzaNea.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-BXJFX74D.js.map → TaskDetailPage-C-nzaNea.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js → TaskQueuePill-Lvr2-NzS.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-CWYj3xKe.js.map → TaskQueuePill-Lvr2-NzS.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js → TasksListPage-DSUmD84y.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-C3cX94Mw.js.map → TasksListPage-DSUmD84y.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js → TimeAgo-BZdLdrIh.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-B_5yDDHV.js.map → TimeAgo-BZdLdrIh.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-DRX724uU.js → TimestampCell-QX_0i5FK.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-DRX724uU.js.map → TimestampCell-QX_0i5FK.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Ca8FA469.js → UserName-DyZMXcBm.js} +2 -2
- package/dashboard/dist/assets/{UserName-Ca8FA469.js.map → UserName-DyZMXcBm.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js → WorkflowExecutionPage-DjVxfZaF.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BBYWEV2P.js.map → WorkflowExecutionPage-DjVxfZaF.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DZjuiFZ0.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-DZjuiFZ0.js.map +1 -0
- package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js → WorkflowsOverview-CLnLRpOu.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-03IRrDLg.js.map → WorkflowsOverview-CLnLRpOu.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js → YamlWorkflowsPage-VjdhnLmO.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-DC2cLxVi.js.map → YamlWorkflowsPage-VjdhnLmO.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DZEXcgiJ.js → bots-DIM6lBoY.js} +2 -2
- package/dashboard/dist/assets/{bots-DZEXcgiJ.js.map → bots-DIM6lBoY.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-Cw48lNaF.js → escalation-JOTuOqjq.js} +2 -2
- package/dashboard/dist/assets/{escalation-Cw48lNaF.js.map → escalation-JOTuOqjq.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js → escalation-columns-Cyg58nkg.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-NINpo3qf.js.map → escalation-columns-Cyg58nkg.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-fk_qr729.js → helpers-B1BDxBZd.js} +2 -2
- package/dashboard/dist/assets/{helpers-fk_qr729.js.map → helpers-B1BDxBZd.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-Cuu3xKfr.js → helpers-BCix9c_m.js} +2 -2
- package/dashboard/dist/assets/{helpers-Cuu3xKfr.js.map → helpers-BCix9c_m.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dj-z-x8M.js → index-BUK3qR-1.js} +2 -2
- package/dashboard/dist/assets/{index-Dj-z-x8M.js.map → index-BUK3qR-1.js.map} +1 -1
- package/dashboard/dist/assets/{index-BwN3KP_L.js → index-BYZX9tOb.js} +8 -8
- package/dashboard/dist/assets/index-BYZX9tOb.js.map +1 -0
- package/dashboard/dist/assets/{index-BIG3KooI.js → index-BcR6PfpY.js} +2 -2
- package/dashboard/dist/assets/{index-BIG3KooI.js.map → index-BcR6PfpY.js.map} +1 -1
- package/dashboard/dist/assets/index-BizfauqT.js +6 -0
- package/dashboard/dist/assets/index-BizfauqT.js.map +1 -0
- package/dashboard/dist/assets/{index-aRvL-dXp.js → index-Cf60K3x9.js} +2 -2
- package/dashboard/dist/assets/{index-aRvL-dXp.js.map → index-Cf60K3x9.js.map} +1 -1
- package/dashboard/dist/assets/{index-b03HlbnH.js → index-Cg5nfiYX.js} +2 -2
- package/dashboard/dist/assets/{index-b03HlbnH.js.map → index-Cg5nfiYX.js.map} +1 -1
- package/dashboard/dist/assets/index-D1wVX50Z.js +15 -0
- package/dashboard/dist/assets/index-D1wVX50Z.js.map +1 -0
- package/dashboard/dist/assets/{index-DwRytW9O.js → index-DDYFpi4l.js} +4 -4
- package/dashboard/dist/assets/index-DDYFpi4l.js.map +1 -0
- package/dashboard/dist/assets/{index-B98ipWxE.js → index-Di12t56M.js} +2 -2
- package/dashboard/dist/assets/{index-B98ipWxE.js.map → index-Di12t56M.js.map} +1 -1
- package/dashboard/dist/assets/{index-CORHB0WC.js → index-Ds0JoXS2.js} +2 -2
- package/dashboard/dist/assets/{index-CORHB0WC.js.map → index-Ds0JoXS2.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BZoFryNc.js → mcp-B_xbczAt.js} +2 -2
- package/dashboard/dist/assets/{mcp-BZoFryNc.js.map → mcp-B_xbczAt.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js → mcp-query-B8-P_QoG.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-wiw1kwm8.js.map → mcp-query-B8-P_QoG.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js → mcp-runs-CWeZinoF.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-BaEKnf5v.js.map → mcp-runs-CWeZinoF.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-BwnZI4_A.js → namespaces-C3WtdO_9.js} +2 -2
- package/dashboard/dist/assets/{namespaces-BwnZI4_A.js.map → namespaces-C3WtdO_9.js.map} +1 -1
- package/dashboard/dist/assets/{roles-Bgn1K8zU.js → roles-BDAsPpZG.js} +2 -2
- package/dashboard/dist/assets/{roles-Bgn1K8zU.js.map → roles-BDAsPpZG.js.map} +1 -1
- package/dashboard/dist/assets/{settings-CizYiutL.js → settings-Ife_UwAp.js} +2 -2
- package/dashboard/dist/assets/{settings-CizYiutL.js.map → settings-Ife_UwAp.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Bmte_hc4.js → tasks-BquNDHDI.js} +2 -2
- package/dashboard/dist/assets/{tasks-Bmte_hc4.js.map → tasks-BquNDHDI.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js → useEventHooks-anv_B2Yy.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-CUCxpiI2.js.map → useEventHooks-anv_B2Yy.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js → useYamlActivityEvents-DN-PTgVx.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Cum02Ej9.js.map → useYamlActivityEvents-DN-PTgVx.js.map} +1 -1
- package/dashboard/dist/assets/{users-NSDgTt-z.js → users-CFcxB4v6.js} +2 -2
- package/dashboard/dist/assets/{users-NSDgTt-z.js.map → users-CFcxB4v6.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-D1DdudfH.js → vendor-icons-T4r2DSPD.js} +2 -2
- package/dashboard/dist/assets/{vendor-icons-D1DdudfH.js.map → vendor-icons-T4r2DSPD.js.map} +1 -1
- package/dashboard/dist/assets/{workflows-k0XRdGXx.js → workflows-CeRci9z3.js} +2 -2
- package/dashboard/dist/assets/{workflows-k0XRdGXx.js.map → workflows-CeRci9z3.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js → yaml-workflows-DLwd2BOX.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DAre8I78.js.map → yaml-workflows-DLwd2BOX.js.map} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/docs/api/{escalations.md → http/escalations.md} +99 -0
- package/docs/api/{tasks.md → http/tasks.md} +47 -0
- package/docs/api/sdk/auth.md +27 -0
- package/docs/api/sdk/bot-accounts.md +243 -0
- package/docs/api/sdk/controlplane.md +103 -0
- package/docs/api/sdk/dba.md +52 -0
- package/docs/api/sdk/escalations.md +511 -0
- package/docs/api/sdk/events.md +68 -0
- package/docs/api/sdk/exports.md +124 -0
- package/docs/api/sdk/insight.md +112 -0
- package/docs/api/sdk/maintenance.md +54 -0
- package/docs/api/sdk/mcp-runs.md +71 -0
- package/docs/api/sdk/mcp.md +250 -0
- package/docs/api/sdk/namespaces.md +43 -0
- package/docs/api/sdk/roles.md +183 -0
- package/docs/api/sdk/settings.md +24 -0
- package/docs/api/sdk/tasks.md +159 -0
- package/docs/api/sdk/users.md +196 -0
- package/docs/api/sdk/workflow-sets.md +135 -0
- package/docs/api/sdk/workflows.md +271 -0
- package/docs/api/sdk/yaml-workflows.md +408 -0
- package/package.json +1 -1
- package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BXifAuLi.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-Drl3juz9.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-Drl3juz9.js.map +0 -1
- package/dashboard/dist/assets/index-BwN3KP_L.js.map +0 -1
- package/dashboard/dist/assets/index-Bxe8h1x4.js +0 -17
- package/dashboard/dist/assets/index-Bxe8h1x4.js.map +0 -1
- package/dashboard/dist/assets/index-CNI7k7oB.js +0 -6
- package/dashboard/dist/assets/index-CNI7k7oB.js.map +0 -1
- package/dashboard/dist/assets/index-DwRytW9O.js.map +0 -1
- package/docs/epic-integration.md +0 -224
- package/docs/workflow-builder.md +0 -371
- /package/docs/api/{dba.md → http/dba.md} +0 -0
- /package/docs/api/{exports.md → http/exports.md} +0 -0
- /package/docs/api/{maintenance.md → http/maintenance.md} +0 -0
- /package/docs/api/{mcp-runs.md → http/mcp-runs.md} +0 -0
- /package/docs/api/{mcp-servers.md → http/mcp-servers.md} +0 -0
- /package/docs/api/{namespaces.md → http/namespaces.md} +0 -0
- /package/docs/api/{roles.md → http/roles.md} +0 -0
- /package/docs/api/{service-accounts.md → http/service-accounts.md} +0 -0
- /package/docs/api/{settings.md → http/settings.md} +0 -0
- /package/docs/api/{users.md → http/users.md} +0 -0
- /package/docs/api/{workflows.md → http/workflows.md} +0 -0
- /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
|
|
package/build/api/auth.d.ts
CHANGED
|
@@ -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';
|
package/build/api/dba.d.ts
CHANGED
|
@@ -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();
|