@hotmeshio/long-tail 0.1.6 → 0.1.8
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 +47 -5
- package/build/api/auth.d.ts +16 -0
- package/build/api/auth.js +53 -0
- package/build/api/bot-accounts.d.ts +137 -0
- package/build/api/bot-accounts.js +302 -0
- package/build/api/controlplane.d.ts +68 -0
- package/build/api/controlplane.js +158 -0
- package/build/api/dba.d.ts +42 -0
- package/build/api/dba.js +95 -0
- package/build/api/escalations.d.ts +271 -0
- package/build/api/escalations.js +892 -0
- package/build/api/exports.d.ts +90 -0
- package/build/api/exports.js +204 -0
- package/build/api/index.d.ts +18 -0
- package/build/api/index.js +54 -0
- package/build/api/insight.d.ts +86 -0
- package/build/api/insight.js +147 -0
- package/build/api/maintenance.d.ts +22 -0
- package/build/api/maintenance.js +43 -0
- package/build/api/mcp-runs.d.ts +43 -0
- package/build/api/mcp-runs.js +89 -0
- package/build/api/mcp.d.ts +160 -0
- package/build/api/mcp.js +320 -0
- package/build/api/namespaces.d.ts +20 -0
- package/build/{routes/escalations/helpers.js → api/namespaces.js} +35 -10
- package/build/api/roles.d.ts +88 -0
- package/build/api/roles.js +217 -0
- package/build/api/settings.d.ts +10 -0
- package/build/api/settings.js +43 -0
- package/build/api/tasks.d.ts +70 -0
- package/build/api/tasks.js +139 -0
- package/build/api/users.d.ts +115 -0
- package/build/api/users.js +228 -0
- package/build/api/workflow-sets.d.ts +77 -0
- package/build/api/workflow-sets.js +170 -0
- package/build/api/workflows.d.ts +158 -0
- package/build/api/workflows.js +407 -0
- package/build/api/yaml-workflows.d.ts +282 -0
- package/build/api/yaml-workflows.js +751 -0
- package/build/examples/types/envelopes.d.ts +27 -0
- package/build/examples/types/index.d.ts +1 -1
- package/build/examples/workers.js +8 -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/index.d.ts +4 -0
- package/build/index.js +6 -1
- package/build/lib/db/schemas/004_workflow_sets.sql +29 -0
- package/build/lib/db/schemas/005_unique_graph_topic.sql +7 -0
- package/build/lib/db/schemas/011_system_workflow_configs.sql +7 -0
- package/build/lib/events/callback.d.ts +41 -0
- package/build/lib/events/callback.js +98 -0
- package/build/modules/config.js +1 -1
- package/build/routes/auth.js +37 -36
- package/build/routes/bot-accounts.js +34 -164
- package/build/routes/controlplane.js +20 -60
- package/build/routes/dba.js +18 -28
- package/build/routes/escalations/bulk.js +17 -192
- package/build/routes/escalations/list.js +51 -75
- package/build/routes/escalations/resolve.js +3 -193
- package/build/routes/escalations/single.js +13 -122
- package/build/routes/exports.js +44 -95
- package/build/routes/index.js +2 -0
- package/build/routes/insight.js +46 -88
- package/build/routes/maintenance.js +41 -17
- package/build/routes/mcp-runs.js +52 -60
- package/build/routes/mcp.js +49 -177
- package/build/routes/namespaces.js +9 -20
- package/build/routes/roles.js +23 -97
- package/build/routes/settings.js +37 -25
- package/build/routes/tasks.js +28 -64
- package/build/routes/users.js +24 -113
- package/build/routes/workflow-sets.d.ts +2 -0
- package/build/routes/workflow-sets.js +98 -0
- package/build/routes/workflows/config.js +23 -57
- package/build/routes/workflows/discovery.js +11 -85
- package/build/routes/workflows/invocation.js +28 -90
- package/build/routes/yaml-workflows/cron.js +12 -61
- package/build/routes/yaml-workflows/crud.js +30 -223
- package/build/routes/yaml-workflows/deployment.js +15 -115
- package/build/routes/yaml-workflows/versions.js +20 -58
- package/build/sdk/index.d.ts +338 -0
- package/build/sdk/index.js +299 -0
- package/build/services/controlplane/index.d.ts +1 -2
- package/build/services/controlplane/index.js +3 -3
- package/build/services/controlplane/sql.d.ts +2 -2
- package/build/services/controlplane/sql.js +4 -5
- package/build/services/controlplane/types.d.ts +1 -0
- package/build/services/export/index.js +6 -1
- package/build/services/hotmesh-utils.js +2 -4
- package/build/services/insight/index.d.ts +7 -0
- package/build/services/insight/index.js +30 -0
- package/build/services/mcp/client/tools.js +13 -1
- package/build/services/mcp-runs/sql.js +1 -1
- package/build/services/workflow-invocation.d.ts +15 -2
- package/build/services/workflow-invocation.js +11 -6
- package/build/services/workflow-sets/db.d.ts +16 -0
- package/build/services/workflow-sets/db.js +78 -0
- package/build/services/workflow-sets/index.d.ts +1 -0
- package/build/services/workflow-sets/index.js +11 -0
- package/build/services/workflow-sets/sql.d.ts +6 -0
- package/build/services/workflow-sets/sql.js +24 -0
- package/build/services/yaml-workflow/db-utils.d.ts +1 -0
- package/build/services/yaml-workflow/db-utils.js +4 -0
- package/build/services/yaml-workflow/db.d.ts +5 -0
- package/build/services/yaml-workflow/db.js +17 -0
- package/build/services/yaml-workflow/pipeline/build/wiring.js +14 -1
- package/build/services/yaml-workflow/pipeline/prompts.d.ts +1 -1
- package/build/services/yaml-workflow/pipeline/prompts.js +1 -1
- package/build/services/yaml-workflow/sql.d.ts +2 -1
- package/build/services/yaml-workflow/sql.js +8 -3
- package/build/services/yaml-workflow/types.d.ts +3 -0
- package/build/services/yaml-workflow/workers/callbacks.js +7 -1
- package/build/services/yaml-workflow/workers/register.js +7 -0
- package/build/start/adapters.js +4 -0
- package/build/system/index.js +6 -0
- package/build/system/mcp-servers/knowledge.js +1 -1
- package/build/system/seed/server-definitions.js +2 -1
- package/build/system/workflows/mcp-workflow-builder/activities/index.d.ts +1 -1
- package/build/system/workflows/mcp-workflow-builder/activities/index.js +2 -1
- package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.d.ts +6 -0
- package/build/system/workflows/mcp-workflow-builder/activities/tool-loader.js +26 -0
- package/build/system/workflows/mcp-workflow-builder/index.js +26 -2
- package/build/system/workflows/mcp-workflow-builder/prompts.js +104 -35
- package/build/system/workflows/mcp-workflow-planner/activities/analyze.d.ts +11 -0
- package/build/system/workflows/mcp-workflow-planner/activities/analyze.js +36 -0
- package/build/system/workflows/mcp-workflow-planner/activities/index.d.ts +3 -0
- package/build/system/workflows/mcp-workflow-planner/activities/index.js +12 -0
- package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +19 -0
- package/build/system/workflows/mcp-workflow-planner/activities/persist.js +55 -0
- package/build/system/workflows/mcp-workflow-planner/activities/plan.d.ts +10 -0
- package/build/system/workflows/mcp-workflow-planner/activities/plan.js +43 -0
- package/build/system/workflows/mcp-workflow-planner/index.d.ts +7 -0
- package/build/system/workflows/mcp-workflow-planner/index.js +152 -0
- package/build/system/workflows/mcp-workflow-planner/prompts.d.ts +7 -0
- package/build/system/workflows/mcp-workflow-planner/prompts.js +77 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/sdk.d.ts +27 -0
- package/build/types/sdk.js +2 -0
- package/build/types/workflow-set.d.ts +44 -0
- package/build/types/workflow-set.js +5 -0
- package/dashboard/dist/assets/{AdminDashboard-BXkKGkb5.js → AdminDashboard-B15jSEV2.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-BXkKGkb5.js.map → AdminDashboard-B15jSEV2.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-DcH592mc.js → AvailableEscalationsPage-0V2yvKak.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-DcH592mc.js.map → AvailableEscalationsPage-0V2yvKak.js.map} +1 -1
- package/dashboard/dist/assets/BotPicker-B4UxHcek.js +2 -0
- package/dashboard/dist/assets/{BotPicker-A6LtzyuO.js.map → BotPicker-B4UxHcek.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-C7nL2_mv.js → CollapsibleSection-BBexNWVd.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-C7nL2_mv.js.map → CollapsibleSection-BBexNWVd.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-CWFwJrSl.js → ConfirmDeleteModal-DlPDJSq_.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-CWFwJrSl.js.map → ConfirmDeleteModal-DlPDJSq_.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-DbZ5c3jh.js → CopyableId-BxHW1ahb.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-DbZ5c3jh.js.map → CopyableId-BxHW1ahb.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-ClWkmLPu.js → CredentialsPage-Bp_Y1Szk.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-ClWkmLPu.js.map → CredentialsPage-Bp_Y1Szk.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-CtH2hReF.js → CustomDurationPicker-ByBFqXSO.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-CtH2hReF.js.map → CustomDurationPicker-ByBFqXSO.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-CM5ZcpPi.js → DataTable-DyIXg-tQ.js} +2 -2
- package/dashboard/dist/assets/{DataTable-CM5ZcpPi.js.map → DataTable-DyIXg-tQ.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-CwqavyeC.js → ElapsedCell-BgnA0qpS.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-CwqavyeC.js.map → ElapsedCell-BgnA0qpS.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-BBn78pmm.js → EmptyState-DlMImvgm.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-BBn78pmm.js.map → EmptyState-DlMImvgm.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BcJ2E3X7.js → EscalationsOverview-D90kdfw1.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BcJ2E3X7.js.map → EscalationsOverview-D90kdfw1.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-C1en_KZ0.js → EventTable-BNxtlgNz.js} +2 -2
- package/dashboard/dist/assets/{EventTable-C1en_KZ0.js.map → EventTable-BNxtlgNz.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-CZTlrLQT.js → FilterBar-BTiaAhCx.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-CZTlrLQT.js.map → FilterBar-BTiaAhCx.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-Cdbsapig.js → ListToolbar-BUcagSCn.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-Cdbsapig.js.map → ListToolbar-BUcagSCn.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-CSpEJxKa.js → McpOverview-B-tCvz8C.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-CSpEJxKa.js.map → McpOverview-B-tCvz8C.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-DPlF1wYb.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-DPlF1wYb.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-Bz7AdcfR.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-Bz7AdcfR.js.map +1 -0
- package/dashboard/dist/assets/{McpRunDetailPage-9xdxgG4d.js → McpRunDetailPage-Di_qpL2V.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-9xdxgG4d.js.map → McpRunDetailPage-Di_qpL2V.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-wWLqHsd4.js → McpRunsPage-BBgybBEa.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-wWLqHsd4.js.map → McpRunsPage-BBgybBEa.js.map} +1 -1
- package/dashboard/dist/assets/{Modal-kB_P7ZOr.js → Modal-CaJ0gTEa.js} +2 -2
- package/dashboard/dist/assets/{Modal-kB_P7ZOr.js.map → Modal-CaJ0gTEa.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-DDfMmrmR.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-jc0vrgDI.js.map → OperatorDashboard-DDfMmrmR.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-NkOeBR05.js → PageHeader-C5D-G5rp.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-NkOeBR05.js.map → PageHeader-C5D-G5rp.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-ywNhrmFK.js → PageHeaderWithStats-DCa2eZh2.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-ywNhrmFK.js.map → PageHeaderWithStats-DCa2eZh2.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-B2MQbSxy.js → PriorityBadge-DTHq6OUZ.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-B2MQbSxy.js.map → PriorityBadge-DTHq6OUZ.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-B7z7IdqE.js → ProcessDetailPage-fC4dhrd0.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-B7z7IdqE.js.map → ProcessDetailPage-fC4dhrd0.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-C-uHadO6.js → ProcessesListPage-CL2MY8uD.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-C-uHadO6.js.map → ProcessesListPage-CL2MY8uD.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-C1dgC-fK.js → RolePill-kgKPANly.js} +2 -2
- package/dashboard/dist/assets/{RolePill-C1dgC-fK.js.map → RolePill-kgKPANly.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-BSxrD1vm.js → RolesPage-Be2lXTHD.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-BSxrD1vm.js.map → RolesPage-Be2lXTHD.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-lYaHGI-v.js → RowActions-DIzJCwqR.js} +2 -2
- package/dashboard/dist/assets/{RowActions-lYaHGI-v.js.map → RowActions-DIzJCwqR.js.map} +1 -1
- package/dashboard/dist/assets/{StatCard-v2TiITVr.js → StatCard-CRi2Jy6t.js} +2 -2
- package/dashboard/dist/assets/{StatCard-v2TiITVr.js.map → StatCard-CRi2Jy6t.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-DWlxevgG.js → StatusBadge-BETI_8Mr.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-DWlxevgG.js.map → StatusBadge-BETI_8Mr.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-CRM4ft28.js → StepIndicator-DjpMqCjz.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-CRM4ft28.js.map → StepIndicator-DjpMqCjz.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-CF0EToEU.js → StickyPagination-BZbExQ9t.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-CF0EToEU.js.map → StickyPagination-BZbExQ9t.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-CNlj7fgg.js → SwimlaneTimeline-DZthQyhR.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-CNlj7fgg.js.map → SwimlaneTimeline-DZthQyhR.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-CH8qMGhC.js → TagInput-CukbOfYn.js} +2 -2
- package/dashboard/dist/assets/{TagInput-CH8qMGhC.js.map → TagInput-CukbOfYn.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-CdWo-6mu.js → TaskDetailPage-CIZHIKo9.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-CdWo-6mu.js.map → TaskDetailPage-CIZHIKo9.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-BPj4ogVG.js → TaskQueuePill-Q7DGoysj.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-BPj4ogVG.js.map → TaskQueuePill-Q7DGoysj.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-CtRkMpKU.js → TasksListPage-CsC9wjb0.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-CtRkMpKU.js.map → TasksListPage-CsC9wjb0.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-Di1a3X5P.js → TimeAgo-BcOOnJeH.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-Di1a3X5P.js.map → TimeAgo-BcOOnJeH.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-CqrXql-S.js → TimestampCell-CEMapYDQ.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-CqrXql-S.js.map → TimestampCell-CEMapYDQ.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-BUFYCnRa.js → UserName-BHoN7iRL.js} +2 -2
- package/dashboard/dist/assets/{UserName-BUFYCnRa.js.map → UserName-BHoN7iRL.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-25iusMml.js → WorkflowExecutionPage-DawKl1LT.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-25iusMml.js.map → WorkflowExecutionPage-DawKl1LT.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-CP84Vqeg.js +2 -0
- package/dashboard/dist/assets/{WorkflowPill-DPKOcbf4.js.map → WorkflowPill-CP84Vqeg.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-BgxslssH.js → WorkflowsDashboard-QrvVFxtQ.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-BgxslssH.js.map → WorkflowsDashboard-QrvVFxtQ.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-Doe5L-Re.js → WorkflowsOverview-DuhAi_OY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-Doe5L-Re.js.map → WorkflowsOverview-DuhAi_OY.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-Dc9xw82a.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-Dc9xw82a.js.map +1 -0
- package/dashboard/dist/assets/{bots-Bi2_O1Ts.js → bots-Dny-rmmI.js} +2 -2
- package/dashboard/dist/assets/{bots-Bi2_O1Ts.js.map → bots-Dny-rmmI.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-Ck1KlLkT.js → escalation-CV0sKNH5.js} +2 -2
- package/dashboard/dist/assets/{escalation-Ck1KlLkT.js.map → escalation-CV0sKNH5.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-ohDsj2eJ.js → escalation-columns-30CKyoWI.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-ohDsj2eJ.js.map → escalation-columns-30CKyoWI.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-BoD2SgUY.js → helpers-C1-30CzH.js} +2 -2
- package/dashboard/dist/assets/{helpers-BoD2SgUY.js.map → helpers-C1-30CzH.js.map} +1 -1
- package/dashboard/dist/assets/helpers-C1jaRD-d.js +2 -0
- package/dashboard/dist/assets/helpers-C1jaRD-d.js.map +1 -0
- package/dashboard/dist/assets/{index-FuohTtaM.js → index-BUVQ6wmy.js} +3 -3
- package/dashboard/dist/assets/{index-FuohTtaM.js.map → index-BUVQ6wmy.js.map} +1 -1
- package/dashboard/dist/assets/index-CxVB7F4X.js +2 -0
- package/dashboard/dist/assets/{index-Dk2Q51o0.js.map → index-CxVB7F4X.js.map} +1 -1
- package/dashboard/dist/assets/{index-BEtLIsML.js → index-D-oCWCAS.js} +2 -2
- package/dashboard/dist/assets/{index-BEtLIsML.js.map → index-D-oCWCAS.js.map} +1 -1
- package/dashboard/dist/assets/index-D0wPM3Ck.js +2 -0
- package/dashboard/dist/assets/{index-BpT-6WgJ.js.map → index-D0wPM3Ck.js.map} +1 -1
- package/dashboard/dist/assets/{index-Bn2xHDr8.js → index-DHgnkykj.js} +3 -3
- package/dashboard/dist/assets/{index-Bn2xHDr8.js.map → index-DHgnkykj.js.map} +1 -1
- package/dashboard/dist/assets/{index-D3NyVADW.js → index-D_aJBEAG.js} +2 -2
- package/dashboard/dist/assets/index-D_aJBEAG.js.map +1 -0
- package/dashboard/dist/assets/{index-PyCTS05D.css → index-DcIKW-cZ.css} +1 -1
- package/dashboard/dist/assets/{index-CZrJ09p-.js → index-Dd_U4mLm.js} +2 -2
- package/dashboard/dist/assets/{index-CZrJ09p-.js.map → index-Dd_U4mLm.js.map} +1 -1
- package/dashboard/dist/assets/{index-DYyLF-Qb.js → index-DnmZbNxk.js} +8 -8
- package/dashboard/dist/assets/index-DnmZbNxk.js.map +1 -0
- package/dashboard/dist/assets/index-_RBvi7s6.js +2 -0
- package/dashboard/dist/assets/{index-D7zYZOnH.js.map → index-_RBvi7s6.js.map} +1 -1
- package/dashboard/dist/assets/index-n7td8zgX.js +17 -0
- package/dashboard/dist/assets/{index-DOkHXmyf.js.map → index-n7td8zgX.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-CJtYjA7A.js → mcp-CRFr4L9W.js} +2 -2
- package/dashboard/dist/assets/{mcp-CJtYjA7A.js.map → mcp-CRFr4L9W.js.map} +1 -1
- package/dashboard/dist/assets/mcp-query-DHY2mZBQ.js +2 -0
- package/dashboard/dist/assets/mcp-query-DHY2mZBQ.js.map +1 -0
- package/dashboard/dist/assets/{mcp-runs-DUWm9Z4V.js → mcp-runs-BqPHqwAO.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-DUWm9Z4V.js.map → mcp-runs-BqPHqwAO.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-BM5P2qmL.js → namespaces-TG1aIpo_.js} +2 -2
- package/dashboard/dist/assets/{namespaces-BM5P2qmL.js.map → namespaces-TG1aIpo_.js.map} +1 -1
- package/dashboard/dist/assets/{roles-lv0shpjJ.js → roles-DhhLTvXg.js} +2 -2
- package/dashboard/dist/assets/{roles-lv0shpjJ.js.map → roles-DhhLTvXg.js.map} +1 -1
- package/dashboard/dist/assets/{settings-Wlq92mRo.js → settings-D9MBzEeB.js} +2 -2
- package/dashboard/dist/assets/{settings-Wlq92mRo.js.map → settings-D9MBzEeB.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-BFGm4PuE.js → tasks-BxmcZoev.js} +2 -2
- package/dashboard/dist/assets/{tasks-BFGm4PuE.js.map → tasks-BxmcZoev.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-DIE6ue4x.js → useEventHooks-BylecvvI.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-DIE6ue4x.js.map → useEventHooks-BylecvvI.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-DCwSO73t.js → useYamlActivityEvents-ocmj11e_.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-DCwSO73t.js.map → useYamlActivityEvents-ocmj11e_.js.map} +1 -1
- package/dashboard/dist/assets/{users-tA5-K0wA.js → users-Ce5r-JAv.js} +2 -2
- package/dashboard/dist/assets/{users-tA5-K0wA.js.map → users-Ce5r-JAv.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-BiIug1SK.js → vendor-icons-D1DdudfH.js} +93 -73
- package/dashboard/dist/assets/vendor-icons-D1DdudfH.js.map +1 -0
- package/dashboard/dist/assets/{workflows-CfLc15Wr.js → workflows-ykIeVbRJ.js} +2 -2
- package/dashboard/dist/assets/{workflows-CfLc15Wr.js.map → workflows-ykIeVbRJ.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-WypmKYht.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-WypmKYht.js.map +1 -0
- package/dashboard/dist/index.html +3 -3
- 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 +374 -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 +120 -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/docs/events.md +28 -0
- package/docs/sdk.md +177 -0
- package/docs/story.md +157 -0
- package/package.json +3 -2
- package/build/routes/escalations/helpers.d.ts +0 -5
- package/build/routes/resolve.d.ts +0 -9
- package/build/routes/resolve.js +0 -19
- package/build/routes/yaml-workflows/helpers.d.ts +0 -2
- package/build/routes/yaml-workflows/helpers.js +0 -8
- package/dashboard/dist/assets/BotPicker-A6LtzyuO.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-DhqEI180.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-CIiVMlqo.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-jc0vrgDI.js +0 -2
- package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js +0 -2
- package/dashboard/dist/assets/RunAsSelector-CJDnyp93.js.map +0 -1
- package/dashboard/dist/assets/WorkflowPill-DPKOcbf4.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-BliAckJ6.js.map +0 -1
- package/dashboard/dist/assets/index-BpT-6WgJ.js +0 -2
- package/dashboard/dist/assets/index-D3NyVADW.js.map +0 -1
- package/dashboard/dist/assets/index-D7zYZOnH.js +0 -2
- package/dashboard/dist/assets/index-DOkHXmyf.js +0 -17
- package/dashboard/dist/assets/index-DYyLF-Qb.js.map +0 -1
- package/dashboard/dist/assets/index-Dk2Q51o0.js +0 -2
- package/dashboard/dist/assets/mcp-query-jQJQrs_7.js +0 -2
- package/dashboard/dist/assets/mcp-query-jQJQrs_7.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-BiIug1SK.js.map +0 -1
- package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js +0 -2
- package/dashboard/dist/assets/yaml-workflows-D7JXNqbM.js.map +0 -1
- package/docs/img/01-login.png +0 -0
- package/docs/img/02-dashboard-home.png +0 -0
- package/docs/img/03-processes-list.png +0 -0
- package/docs/img/04-escalations-list.png +0 -0
- package/docs/img/05-mcp-servers.png +0 -0
- package/docs/img/06-mcp-pipelines.png +0 -0
- package/docs/img/07-workflows-list.png +0 -0
- package/docs/img/compilation/01-query-submit.png +0 -0
- package/docs/img/compilation/02-mcp-servers.png +0 -0
- package/docs/img/compilation/03-query-completed.png +0 -0
- package/docs/img/compilation/04-wizard-original.png +0 -0
- package/docs/img/compilation/05-wizard-timeline.png +0 -0
- package/docs/img/compilation/06-wizard-profile.png +0 -0
- package/docs/img/compilation/07-wizard-deploy.png +0 -0
- package/docs/img/compilation/08-wizard-test-modal.png +0 -0
- package/docs/img/compilation/09-wizard-test-compare.png +0 -0
- package/docs/img/compilation/10-wizard-verify.png +0 -0
- /package/docs/api/{dba.md → http/dba.md} +0 -0
- /package/docs/api/{escalations.md → http/escalations.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/{tasks.md → http/tasks.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
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.listApps = listApps;
|
|
37
|
+
exports.rollCall = rollCall;
|
|
38
|
+
exports.applyThrottle = applyThrottle;
|
|
39
|
+
exports.getStreamStats = getStreamStats;
|
|
40
|
+
exports.subscribeMesh = subscribeMesh;
|
|
41
|
+
const controlplane = __importStar(require("../services/controlplane"));
|
|
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
|
+
*/
|
|
48
|
+
async function listApps() {
|
|
49
|
+
try {
|
|
50
|
+
const apps = await controlplane.listApps();
|
|
51
|
+
return { status: 200, data: { apps } };
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return { status: 500, error: err.message };
|
|
55
|
+
}
|
|
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
|
+
*/
|
|
67
|
+
async function rollCall(input) {
|
|
68
|
+
try {
|
|
69
|
+
const appId = input.appId || 'durable';
|
|
70
|
+
const profiles = await controlplane.rollCall(appId, input.delay);
|
|
71
|
+
return { status: 200, data: { profiles } };
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
return { status: 500, error: err.message };
|
|
75
|
+
}
|
|
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
|
+
*/
|
|
90
|
+
async function applyThrottle(input) {
|
|
91
|
+
try {
|
|
92
|
+
const appId = input.appId || 'durable';
|
|
93
|
+
if (typeof input.throttle !== 'number') {
|
|
94
|
+
return { status: 400, error: 'throttle (number) is required' };
|
|
95
|
+
}
|
|
96
|
+
const result = await controlplane.applyThrottle(appId, {
|
|
97
|
+
throttle: input.throttle,
|
|
98
|
+
topic: input.topic,
|
|
99
|
+
guid: input.guid,
|
|
100
|
+
});
|
|
101
|
+
// Publish a synthetic event so the dashboard event stream sees it
|
|
102
|
+
const throttleEvent = {
|
|
103
|
+
type: 'mesh.throttle',
|
|
104
|
+
source: 'controlplane',
|
|
105
|
+
workflowId: input.guid || '',
|
|
106
|
+
workflowName: '',
|
|
107
|
+
taskQueue: appId,
|
|
108
|
+
data: { throttle: input.throttle, topic: input.topic, guid: input.guid, appId },
|
|
109
|
+
timestamp: new Date().toISOString(),
|
|
110
|
+
};
|
|
111
|
+
events_1.eventRegistry.publish(throttleEvent).catch(() => { });
|
|
112
|
+
return { status: 200, data: { success: result } };
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
return { status: 500, error: err.message };
|
|
116
|
+
}
|
|
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
|
+
*/
|
|
129
|
+
async function getStreamStats(input) {
|
|
130
|
+
try {
|
|
131
|
+
const schema = input.app_id || 'durable';
|
|
132
|
+
const duration = input.duration || '1h';
|
|
133
|
+
const stats = await controlplane.getStreamStats(schema, duration, input.stream);
|
|
134
|
+
return { status: 200, data: stats };
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
return { status: 500, error: err.message };
|
|
138
|
+
}
|
|
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
|
+
*/
|
|
149
|
+
async function subscribeMesh(input) {
|
|
150
|
+
try {
|
|
151
|
+
const appId = input.appId || 'durable';
|
|
152
|
+
await controlplane.subscribeMesh(appId);
|
|
153
|
+
return { status: 200, data: { subscribed: true, appId } };
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
return { status: 500, error: err.message };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
*/
|
|
21
|
+
export declare function prune(input: {
|
|
22
|
+
expire?: string;
|
|
23
|
+
jobs?: boolean;
|
|
24
|
+
streams?: boolean;
|
|
25
|
+
engineStreams?: boolean;
|
|
26
|
+
engineStreamsExpire?: string;
|
|
27
|
+
workerStreams?: boolean;
|
|
28
|
+
workerStreamsExpire?: string;
|
|
29
|
+
attributes?: boolean;
|
|
30
|
+
entities?: string[];
|
|
31
|
+
pruneTransient?: boolean;
|
|
32
|
+
keepHmark?: boolean;
|
|
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
|
+
*/
|
|
42
|
+
export declare function deploy(): Promise<LTApiResult>;
|
package/build/api/dba.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.prune = prune;
|
|
37
|
+
exports.deploy = deploy;
|
|
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
|
+
*/
|
|
58
|
+
async function prune(input) {
|
|
59
|
+
try {
|
|
60
|
+
const result = await dbaService.prune({
|
|
61
|
+
expire: input.expire,
|
|
62
|
+
jobs: input.jobs,
|
|
63
|
+
streams: input.streams,
|
|
64
|
+
engineStreams: input.engineStreams,
|
|
65
|
+
engineStreamsExpire: input.engineStreamsExpire,
|
|
66
|
+
workerStreams: input.workerStreams,
|
|
67
|
+
workerStreamsExpire: input.workerStreamsExpire,
|
|
68
|
+
attributes: input.attributes,
|
|
69
|
+
entities: input.entities,
|
|
70
|
+
pruneTransient: input.pruneTransient,
|
|
71
|
+
keepHmark: input.keepHmark,
|
|
72
|
+
});
|
|
73
|
+
return { status: 200, data: result };
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
return { status: 500, error: err.message };
|
|
77
|
+
}
|
|
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
|
+
*/
|
|
87
|
+
async function deploy() {
|
|
88
|
+
try {
|
|
89
|
+
await dbaService.deploy();
|
|
90
|
+
return { status: 200, data: { ok: true } };
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
return { status: 500, error: err.message };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import type { LTApiResult, LTApiAuth } from '../types/sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Create a standalone escalation (not tied to a workflow).
|
|
4
|
+
*
|
|
5
|
+
* Useful for manual work items, support tickets, or approval requests
|
|
6
|
+
* that originate outside the durable workflow engine. The caller must
|
|
7
|
+
* hold the target role or be a superadmin.
|
|
8
|
+
*
|
|
9
|
+
* @param input.type — escalation category (e.g. `"support"`, `"approval"`)
|
|
10
|
+
* @param input.subtype — subcategory for finer routing
|
|
11
|
+
* @param input.role — role responsible for resolving this escalation
|
|
12
|
+
* @param input.description — human-readable summary
|
|
13
|
+
* @param input.priority — 1 (critical) through 4 (low), default 2
|
|
14
|
+
* @param input.envelope — serialized context for the resolver
|
|
15
|
+
* @param input.metadata — arbitrary key-value data (e.g. signal_routing)
|
|
16
|
+
* @param input.escalation_payload — serialized payload for the resolver UI
|
|
17
|
+
* @param auth — authenticated user context (must hold target role or be superadmin)
|
|
18
|
+
* @returns `{ status: 201, data: <escalation record> }`
|
|
19
|
+
*/
|
|
20
|
+
export declare function createEscalation(input: {
|
|
21
|
+
type: string;
|
|
22
|
+
subtype?: string;
|
|
23
|
+
role: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
priority?: number;
|
|
26
|
+
envelope?: string;
|
|
27
|
+
metadata?: Record<string, any>;
|
|
28
|
+
escalation_payload?: string;
|
|
29
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
30
|
+
/**
|
|
31
|
+
* List escalations with optional filters.
|
|
32
|
+
*
|
|
33
|
+
* Results are scoped to the authenticated user's roles unless the user
|
|
34
|
+
* is a superadmin (who sees all roles).
|
|
35
|
+
*
|
|
36
|
+
* @param input.status — filter by `pending`, `resolved`, or `cancelled`
|
|
37
|
+
* @param input.role — filter by assigned role
|
|
38
|
+
* @param input.type — filter by workflow type
|
|
39
|
+
* @param input.subtype — filter by subtype
|
|
40
|
+
* @param input.assigned_to — filter by assigned user ID
|
|
41
|
+
* @param input.priority — filter by priority (1–4)
|
|
42
|
+
* @param input.limit — max results (default: 50)
|
|
43
|
+
* @param input.offset — pagination offset
|
|
44
|
+
* @param input.sort_by — column to sort by (e.g. `created_at`, `priority`)
|
|
45
|
+
* @param input.order — `asc` or `desc`
|
|
46
|
+
* @param auth — authenticated user context (required for role scoping)
|
|
47
|
+
* @returns `{ status: 200, data: { escalations, total } }`
|
|
48
|
+
*/
|
|
49
|
+
export declare function listEscalations(input: {
|
|
50
|
+
status?: string;
|
|
51
|
+
role?: string;
|
|
52
|
+
type?: string;
|
|
53
|
+
subtype?: string;
|
|
54
|
+
assigned_to?: string;
|
|
55
|
+
priority?: number;
|
|
56
|
+
limit?: number;
|
|
57
|
+
offset?: number;
|
|
58
|
+
sort_by?: string;
|
|
59
|
+
order?: string;
|
|
60
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
61
|
+
/**
|
|
62
|
+
* List escalations available for claim (pending and not actively claimed).
|
|
63
|
+
*
|
|
64
|
+
* Similar to `listEscalations` but excludes escalations with active claims.
|
|
65
|
+
* Scoped to the authenticated user's roles.
|
|
66
|
+
*
|
|
67
|
+
* @param input.role — filter by role
|
|
68
|
+
* @param input.type — filter by workflow type
|
|
69
|
+
* @param input.subtype — filter by subtype
|
|
70
|
+
* @param input.priority — filter by priority (1–4)
|
|
71
|
+
* @param input.limit — max results (default: 50)
|
|
72
|
+
* @param input.offset — pagination offset
|
|
73
|
+
* @param input.sort_by — column to sort by
|
|
74
|
+
* @param input.order — `asc` or `desc`
|
|
75
|
+
* @param auth — authenticated user context
|
|
76
|
+
* @returns `{ status: 200, data: { escalations, total } }`
|
|
77
|
+
*/
|
|
78
|
+
export declare function listAvailableEscalations(input: {
|
|
79
|
+
role?: string;
|
|
80
|
+
type?: string;
|
|
81
|
+
subtype?: string;
|
|
82
|
+
priority?: number;
|
|
83
|
+
limit?: number;
|
|
84
|
+
offset?: number;
|
|
85
|
+
sort_by?: string;
|
|
86
|
+
order?: string;
|
|
87
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
88
|
+
/**
|
|
89
|
+
* List all distinct escalation type values.
|
|
90
|
+
*
|
|
91
|
+
* @returns `{ status: 200, data: { types: string[] } }`
|
|
92
|
+
*/
|
|
93
|
+
export declare function listDistinctTypes(): Promise<LTApiResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Get aggregate escalation statistics scoped to the user's roles.
|
|
96
|
+
*
|
|
97
|
+
* @param input.period — time window (`1h`, `24h`, `7d`, `30d`)
|
|
98
|
+
* @param auth — authenticated user context
|
|
99
|
+
* @returns `{ status: 200, data: { pending, claimed, created, resolved, by_role, by_type } }`
|
|
100
|
+
*/
|
|
101
|
+
export declare function getEscalationStats(input: {
|
|
102
|
+
period?: string;
|
|
103
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
104
|
+
/**
|
|
105
|
+
* Get a single escalation by ID.
|
|
106
|
+
*
|
|
107
|
+
* Non-superadmin users must hold the escalation's assigned role.
|
|
108
|
+
*
|
|
109
|
+
* @param input.id — escalation UUID
|
|
110
|
+
* @param auth — authenticated user context
|
|
111
|
+
* @returns `{ status: 200, data: <escalation record> }` or 403/404
|
|
112
|
+
*/
|
|
113
|
+
export declare function getEscalation(input: {
|
|
114
|
+
id: string;
|
|
115
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
116
|
+
/**
|
|
117
|
+
* List all escalations for a given workflow ID.
|
|
118
|
+
*
|
|
119
|
+
* @param input.workflowId — HotMesh workflow ID
|
|
120
|
+
* @returns `{ status: 200, data: { escalations } }`
|
|
121
|
+
*/
|
|
122
|
+
export declare function getEscalationsByWorkflowId(input: {
|
|
123
|
+
workflowId: string;
|
|
124
|
+
}): Promise<LTApiResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Route a pending escalation to a different role.
|
|
127
|
+
*
|
|
128
|
+
* The user must be authorized to escalate from the current role to the
|
|
129
|
+
* target role (checked via escalation chain configuration).
|
|
130
|
+
*
|
|
131
|
+
* @param input.id — escalation UUID
|
|
132
|
+
* @param input.targetRole — destination role
|
|
133
|
+
* @param auth — authenticated user context
|
|
134
|
+
* @returns `{ status: 200, data: <updated escalation> }` or 403/404/409
|
|
135
|
+
*/
|
|
136
|
+
export declare function escalateToRole(input: {
|
|
137
|
+
id: string;
|
|
138
|
+
targetRole: string;
|
|
139
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
140
|
+
/**
|
|
141
|
+
* Claim a pending escalation for the authenticated user.
|
|
142
|
+
*
|
|
143
|
+
* Sets `assigned_to` and `assigned_until` on the escalation (soft lock).
|
|
144
|
+
* Non-superadmin users must hold the escalation's role. Publishes a
|
|
145
|
+
* `escalation.claimed` event.
|
|
146
|
+
*
|
|
147
|
+
* @param input.id — escalation UUID
|
|
148
|
+
* @param input.durationMinutes — claim duration (default: 30)
|
|
149
|
+
* @param auth — authenticated user context
|
|
150
|
+
* @returns `{ status: 200, data: { escalation, isExtension } }` or 403/404/409
|
|
151
|
+
*/
|
|
152
|
+
export declare function claimEscalation(input: {
|
|
153
|
+
id: string;
|
|
154
|
+
durationMinutes?: number;
|
|
155
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
156
|
+
/**
|
|
157
|
+
* Release a claimed escalation back to the pool.
|
|
158
|
+
*
|
|
159
|
+
* Only the user who holds the claim can release it. Publishes a
|
|
160
|
+
* `escalation.released` event.
|
|
161
|
+
*
|
|
162
|
+
* @param input.id — escalation UUID
|
|
163
|
+
* @param auth — authenticated user context
|
|
164
|
+
* @returns `{ status: 200, data: { escalation } }` or 409
|
|
165
|
+
*/
|
|
166
|
+
export declare function releaseEscalation(input: {
|
|
167
|
+
id: string;
|
|
168
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
169
|
+
/**
|
|
170
|
+
* Release all escalation claims past their `assigned_until` deadline.
|
|
171
|
+
*
|
|
172
|
+
* Typically called on a maintenance schedule. Returns the count of
|
|
173
|
+
* released claims.
|
|
174
|
+
*
|
|
175
|
+
* @returns `{ status: 200, data: { released: number } }`
|
|
176
|
+
*/
|
|
177
|
+
export declare function releaseExpiredClaims(): Promise<LTApiResult>;
|
|
178
|
+
/**
|
|
179
|
+
* Update priority for one or more escalations.
|
|
180
|
+
*
|
|
181
|
+
* @param input.ids — array of escalation UUIDs
|
|
182
|
+
* @param input.priority — new priority (1=critical, 2=high, 3=medium, 4=low)
|
|
183
|
+
* @param auth — authenticated user context (admin or role-holder required)
|
|
184
|
+
* @returns `{ status: 200, data: { updated: number } }`
|
|
185
|
+
*/
|
|
186
|
+
export declare function updatePriority(input: {
|
|
187
|
+
ids: string[];
|
|
188
|
+
priority: number;
|
|
189
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
190
|
+
/**
|
|
191
|
+
* Claim multiple escalations at once for the authenticated user.
|
|
192
|
+
*
|
|
193
|
+
* @param input.ids — array of escalation UUIDs
|
|
194
|
+
* @param input.durationMinutes — claim duration (default: 30)
|
|
195
|
+
* @param auth — authenticated user context
|
|
196
|
+
* @returns `{ status: 200, data: { claimed, skipped } }`
|
|
197
|
+
*/
|
|
198
|
+
export declare function bulkClaim(input: {
|
|
199
|
+
ids: string[];
|
|
200
|
+
durationMinutes?: number;
|
|
201
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
202
|
+
/**
|
|
203
|
+
* Assign multiple escalations to a specific user.
|
|
204
|
+
*
|
|
205
|
+
* Non-superadmin callers must verify the target user holds each
|
|
206
|
+
* escalation's role. Publishes claim events for assigned items.
|
|
207
|
+
*
|
|
208
|
+
* @param input.ids — array of escalation UUIDs
|
|
209
|
+
* @param input.targetUserId — user to assign to
|
|
210
|
+
* @param input.durationMinutes — assignment duration (default: 30)
|
|
211
|
+
* @param auth — authenticated user context
|
|
212
|
+
* @returns `{ status: 200, data: { assigned, skipped } }`
|
|
213
|
+
*/
|
|
214
|
+
export declare function bulkAssign(input: {
|
|
215
|
+
ids: string[];
|
|
216
|
+
targetUserId: string;
|
|
217
|
+
durationMinutes?: number;
|
|
218
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
219
|
+
/**
|
|
220
|
+
* Route multiple escalations to a different role.
|
|
221
|
+
*
|
|
222
|
+
* @param input.ids — array of escalation UUIDs
|
|
223
|
+
* @param input.targetRole — destination role
|
|
224
|
+
* @param auth — authenticated user context
|
|
225
|
+
* @returns `{ status: 200, data: { updated: number } }`
|
|
226
|
+
*/
|
|
227
|
+
export declare function bulkEscalate(input: {
|
|
228
|
+
ids: string[];
|
|
229
|
+
targetRole: string;
|
|
230
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Trigger AI triage for multiple escalations.
|
|
233
|
+
*
|
|
234
|
+
* Resolves each escalation and starts a triage workflow that uses MCP
|
|
235
|
+
* tools to analyze and potentially auto-resolve the issue.
|
|
236
|
+
*
|
|
237
|
+
* @param input.ids — array of escalation UUIDs
|
|
238
|
+
* @param input.hint — optional natural-language guidance for the triage AI
|
|
239
|
+
* @param auth — authenticated user context
|
|
240
|
+
* @returns `{ status: 200, data: { triaged, workflows } }`
|
|
241
|
+
*/
|
|
242
|
+
export declare function bulkTriage(input: {
|
|
243
|
+
ids: string[];
|
|
244
|
+
hint?: string;
|
|
245
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|
|
246
|
+
/**
|
|
247
|
+
* Resolve a pending escalation with a human-provided payload.
|
|
248
|
+
*
|
|
249
|
+
* Handles two resolution paths:
|
|
250
|
+
* 1. **Signal-routed** — if the escalation has `signal_routing` metadata,
|
|
251
|
+
* the resolver payload is sent directly to the paused workflow via
|
|
252
|
+
* `handle.signal()`. Supports both Durable and YAML engines.
|
|
253
|
+
* 2. **Re-run** — the original workflow is re-started with the resolver
|
|
254
|
+
* payload injected into `envelope.resolver`. The interceptor detects
|
|
255
|
+
* the re-run and skips to the resolution branch.
|
|
256
|
+
*
|
|
257
|
+
* Password fields in the resolver payload are replaced with ephemeral
|
|
258
|
+
* tokens (15-minute TTL) so plaintext never enters the signal store.
|
|
259
|
+
*
|
|
260
|
+
* Supports optional escalation strategy execution after resolution.
|
|
261
|
+
*
|
|
262
|
+
* @param input.id — escalation UUID
|
|
263
|
+
* @param input.resolverPayload — human decision data
|
|
264
|
+
* @param auth — authenticated user context
|
|
265
|
+
* @returns `{ status: 200, data: { signaled, escalationId, workflowId } }` (signal path)
|
|
266
|
+
* or `{ status: 200, data: { workflowId, resumed, escalationId } }` (re-run path)
|
|
267
|
+
*/
|
|
268
|
+
export declare function resolveEscalation(input: {
|
|
269
|
+
id: string;
|
|
270
|
+
resolverPayload: Record<string, any>;
|
|
271
|
+
}, auth: LTApiAuth): Promise<LTApiResult>;
|