@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,271 @@
|
|
|
1
|
+
# lt.workflows
|
|
2
|
+
|
|
3
|
+
Invoke, inspect, and configure HotMesh Durable workflows.
|
|
4
|
+
|
|
5
|
+
## invoke
|
|
6
|
+
|
|
7
|
+
Start a workflow execution.
|
|
8
|
+
|
|
9
|
+
Resolves the task queue, enforces auth/role constraints, builds the LTEnvelope with IAM context, and delegates to the Durable client. Any `WorkflowOptions` field (`workflowId`, `expire`, `entity`, `namespace`, `search`, `signalIn`, `pending`, etc.) can be passed via `options`.
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
const result = await lt.workflows.invoke({
|
|
13
|
+
type: 'reviewContent',
|
|
14
|
+
data: { url: 'https://example.com/page' },
|
|
15
|
+
metadata: { source: 'dashboard' },
|
|
16
|
+
});
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Parameters:**
|
|
20
|
+
|
|
21
|
+
| Field | Type | Required | Description |
|
|
22
|
+
|-------|------|----------|-------------|
|
|
23
|
+
| `type` | `string` | Yes | Workflow function name |
|
|
24
|
+
| `data` | `Record<string, any>` | No | Envelope data payload |
|
|
25
|
+
| `metadata` | `Record<string, any>` | No | Envelope metadata |
|
|
26
|
+
| `execute_as` | `string` | No | Service account for proxy invocation |
|
|
27
|
+
| `options` | `Record<string, any>` | No | Passthrough to Durable WorkflowOptions |
|
|
28
|
+
|
|
29
|
+
**Returns:** `LTApiResult<{ workflowId, message }>` (status 202)
|
|
30
|
+
|
|
31
|
+
**Auth:** Required
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## getStatus
|
|
36
|
+
|
|
37
|
+
Get the execution status of a workflow.
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
const result = await lt.workflows.getStatus({ workflowId: 'wf_abc' });
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Parameters:**
|
|
44
|
+
|
|
45
|
+
| Field | Type | Required | Description |
|
|
46
|
+
|-------|------|----------|-------------|
|
|
47
|
+
| `workflowId` | `string` | Yes | HotMesh workflow ID |
|
|
48
|
+
|
|
49
|
+
**Returns:** `LTApiResult<{ workflowId, status }>` -- status 0 = completed, 1 = running. Returns 404 if not found.
|
|
50
|
+
|
|
51
|
+
**Auth:** Not required
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## getResult
|
|
56
|
+
|
|
57
|
+
Get the result of a completed workflow.
|
|
58
|
+
|
|
59
|
+
Returns 202 if the workflow is still running. Never blocks.
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
const result = await lt.workflows.getResult({ workflowId: 'wf_abc' });
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Parameters:**
|
|
66
|
+
|
|
67
|
+
| Field | Type | Required | Description |
|
|
68
|
+
|-------|------|----------|-------------|
|
|
69
|
+
| `workflowId` | `string` | Yes | HotMesh workflow ID |
|
|
70
|
+
|
|
71
|
+
**Returns:** `LTApiResult<{ workflowId, result }>` (status 200 when complete) or `LTApiResult<{ workflowId, status: 'running' }>` (status 202 when still running). Returns 404 if not found.
|
|
72
|
+
|
|
73
|
+
**Auth:** Not required
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## terminate
|
|
78
|
+
|
|
79
|
+
Terminate a running workflow.
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
const result = await lt.workflows.terminate({ workflowId: 'wf_abc' });
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Parameters:**
|
|
86
|
+
|
|
87
|
+
| Field | Type | Required | Description |
|
|
88
|
+
|-------|------|----------|-------------|
|
|
89
|
+
| `workflowId` | `string` | Yes | HotMesh workflow ID |
|
|
90
|
+
|
|
91
|
+
**Returns:** `LTApiResult<{ terminated: true, workflowId }>` -- returns 404 if not found.
|
|
92
|
+
|
|
93
|
+
**Auth:** Not required
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## export
|
|
98
|
+
|
|
99
|
+
Export the full state of a workflow.
|
|
100
|
+
|
|
101
|
+
Returns the serialized workflow state including all activity results, signals, and metadata.
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
const result = await lt.workflows.export({ workflowId: 'wf_abc' });
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Parameters:**
|
|
108
|
+
|
|
109
|
+
| Field | Type | Required | Description |
|
|
110
|
+
|-------|------|----------|-------------|
|
|
111
|
+
| `workflowId` | `string` | Yes | HotMesh workflow ID |
|
|
112
|
+
|
|
113
|
+
**Returns:** `LTApiResult<ExportedState>` -- returns 404 if not found.
|
|
114
|
+
|
|
115
|
+
**Auth:** Not required
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## listWorkers
|
|
120
|
+
|
|
121
|
+
List active workflow workers with their registration status.
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
const result = await lt.workflows.listWorkers({ include_system: false });
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Parameters:**
|
|
128
|
+
|
|
129
|
+
| Field | Type | Required | Description |
|
|
130
|
+
|-------|------|----------|-------------|
|
|
131
|
+
| `include_system` | `boolean` | No | Include system workflows (default: false) |
|
|
132
|
+
|
|
133
|
+
**Returns:** `LTApiResult<{ workers: [{ name, task_queue, registered, system }] }>`
|
|
134
|
+
|
|
135
|
+
**Auth:** Not required
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## listDiscovered
|
|
140
|
+
|
|
141
|
+
Discover all known workflow types from workers, history, and config.
|
|
142
|
+
|
|
143
|
+
Merges three sources: active in-memory workers, historical entities from the durable jobs table, and registered workflow configs.
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
const result = await lt.workflows.listDiscovered({ include_system: false });
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Parameters:**
|
|
150
|
+
|
|
151
|
+
| Field | Type | Required | Description |
|
|
152
|
+
|-------|------|----------|-------------|
|
|
153
|
+
| `include_system` | `boolean` | No | Include system workflows (default: false) |
|
|
154
|
+
|
|
155
|
+
**Returns:** `LTApiResult<{ workflows: [{ workflow_type, task_queue, registered, active, invocable, system, description, roles, invocation_roles, execute_as }] }>`
|
|
156
|
+
|
|
157
|
+
**Auth:** Not required
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## getCronStatus
|
|
162
|
+
|
|
163
|
+
List all cron-scheduled workflows and their active state.
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
const result = await lt.workflows.getCronStatus();
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Parameters:** None (pass `{}` or `undefined`).
|
|
170
|
+
|
|
171
|
+
**Returns:** `LTApiResult<{ schedules: [{ workflow_type, cron_schedule, description, task_queue, invocable, active, envelope_schema }] }>`
|
|
172
|
+
|
|
173
|
+
**Auth:** Not required
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## listConfigs
|
|
178
|
+
|
|
179
|
+
List all registered workflow configurations.
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
const result = await lt.workflows.listConfigs();
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Parameters:** None (pass `{}` or `undefined`).
|
|
186
|
+
|
|
187
|
+
**Returns:** `LTApiResult<{ workflows: LTWorkflowConfig[] }>`
|
|
188
|
+
|
|
189
|
+
**Auth:** Not required
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## getConfig
|
|
194
|
+
|
|
195
|
+
Get a single workflow configuration by type.
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
const result = await lt.workflows.getConfig({ type: 'reviewContent' });
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Parameters:**
|
|
202
|
+
|
|
203
|
+
| Field | Type | Required | Description |
|
|
204
|
+
|-------|------|----------|-------------|
|
|
205
|
+
| `type` | `string` | Yes | Workflow type name |
|
|
206
|
+
|
|
207
|
+
**Returns:** `LTApiResult<LTWorkflowConfig>` -- returns 404 if not found.
|
|
208
|
+
|
|
209
|
+
**Auth:** Not required
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## upsertConfig
|
|
214
|
+
|
|
215
|
+
Create or replace a workflow configuration.
|
|
216
|
+
|
|
217
|
+
Invalidates the config cache and restarts the cron schedule if one is defined. Idempotent.
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
const result = await lt.workflows.upsertConfig({
|
|
221
|
+
type: 'reviewContent',
|
|
222
|
+
invocable: true,
|
|
223
|
+
task_queue: 'content-review',
|
|
224
|
+
default_role: 'reviewer',
|
|
225
|
+
description: 'Review flagged content',
|
|
226
|
+
});
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Parameters:**
|
|
230
|
+
|
|
231
|
+
| Field | Type | Required | Description |
|
|
232
|
+
|-------|------|----------|-------------|
|
|
233
|
+
| `type` | `string` | Yes | Workflow type name |
|
|
234
|
+
| `invocable` | `boolean` | No | Whether the workflow can be started via the API |
|
|
235
|
+
| `task_queue` | `string \| null` | No | HotMesh task queue |
|
|
236
|
+
| `default_role` | `string` | No | Default escalation role |
|
|
237
|
+
| `description` | `string \| null` | No | Human-readable description |
|
|
238
|
+
| `execute_as` | `string \| null` | No | Service account for proxy invocation |
|
|
239
|
+
| `roles` | `string[]` | No | Roles that can resolve escalations |
|
|
240
|
+
| `invocation_roles` | `string[]` | No | Roles that can invoke this workflow |
|
|
241
|
+
| `consumes` | `string[]` | No | Workflow types whose data this workflow consumes |
|
|
242
|
+
| `tool_tags` | `string[]` | No | MCP tool tags for discovery |
|
|
243
|
+
| `envelope_schema` | `any` | No | JSON Schema for envelope.data validation |
|
|
244
|
+
| `resolver_schema` | `any` | No | JSON Schema for resolver payload validation |
|
|
245
|
+
| `cron_schedule` | `string \| null` | No | Cron expression for scheduled execution |
|
|
246
|
+
|
|
247
|
+
**Returns:** `LTApiResult<LTWorkflowConfig>`
|
|
248
|
+
|
|
249
|
+
**Auth:** Not required
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## deleteConfig
|
|
254
|
+
|
|
255
|
+
Delete a workflow configuration.
|
|
256
|
+
|
|
257
|
+
Removes the config record and invalidates the cache. Active workers continue running.
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
const result = await lt.workflows.deleteConfig({ type: 'reviewContent' });
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Parameters:**
|
|
264
|
+
|
|
265
|
+
| Field | Type | Required | Description |
|
|
266
|
+
|-------|------|----------|-------------|
|
|
267
|
+
| `type` | `string` | Yes | Workflow type name |
|
|
268
|
+
|
|
269
|
+
**Returns:** `LTApiResult<{ deleted: true, workflow_type }>` -- returns 404 if not found.
|
|
270
|
+
|
|
271
|
+
**Auth:** Not required
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
# lt.yamlWorkflows
|
|
2
|
+
|
|
3
|
+
Manage YAML workflow lifecycle: create, deploy, invoke, version, and schedule cron jobs.
|
|
4
|
+
|
|
5
|
+
## list
|
|
6
|
+
|
|
7
|
+
List YAML workflows with optional filtering and pagination.
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
const result = await lt.yamlWorkflows.list({ status: 'active', app_id: 'longtail', limit: 20 });
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Parameters:**
|
|
14
|
+
|
|
15
|
+
| Field | Type | Required | Description |
|
|
16
|
+
|-------|------|----------|-------------|
|
|
17
|
+
| `status` | `string` | No | Lifecycle filter (`draft`, `deployed`, `active`, `archived`) |
|
|
18
|
+
| `graph_topic` | `string` | No | Filter by HotMesh subscription topic |
|
|
19
|
+
| `app_id` | `string` | No | Filter by namespace (MCP server name) |
|
|
20
|
+
| `search` | `string` | No | Free-text search across name/description |
|
|
21
|
+
| `source_workflow_id` | `string` | No | Filter by source execution trace ID |
|
|
22
|
+
| `set_id` | `string` | No | Filter by compositional set membership |
|
|
23
|
+
| `limit` | `number` | No | Max rows to return |
|
|
24
|
+
| `offset` | `number` | No | Pagination offset |
|
|
25
|
+
|
|
26
|
+
**Returns:** `LTApiResult<YamlWorkflow[]>`
|
|
27
|
+
|
|
28
|
+
**Auth:** Not required
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## create
|
|
33
|
+
|
|
34
|
+
Compile an execution trace into a new YAML workflow draft via the LLM-based generator.
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
const result = await lt.yamlWorkflows.create({
|
|
38
|
+
workflow_id: 'wf_abc',
|
|
39
|
+
task_queue: 'v1',
|
|
40
|
+
workflow_name: 'screenshot_analyze',
|
|
41
|
+
name: 'screenshot_analyze_store',
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Parameters:**
|
|
46
|
+
|
|
47
|
+
| Field | Type | Required | Description |
|
|
48
|
+
|-------|------|----------|-------------|
|
|
49
|
+
| `workflow_id` | `string` | Yes | ID of the source execution trace to compile from |
|
|
50
|
+
| `task_queue` | `string` | Yes | HotMesh task queue the source execution ran on |
|
|
51
|
+
| `workflow_name` | `string` | Yes | Type name of the source workflow |
|
|
52
|
+
| `name` | `string` | Yes | Tool name for the new workflow (no dashes) |
|
|
53
|
+
| `description` | `string` | No | Human-readable description passed to the generator |
|
|
54
|
+
| `app_id` | `string` | No | Target namespace (defaults to `"longtail"`) |
|
|
55
|
+
| `subscribes` | `string` | No | Explicit subscription topic override |
|
|
56
|
+
| `tags` | `string[]` | No | Additional tags merged with auto-derived tags |
|
|
57
|
+
| `compilation_feedback` | `string` | No | Natural-language feedback to steer the LLM compilation |
|
|
58
|
+
|
|
59
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
60
|
+
|
|
61
|
+
**Auth:** Not required
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## createDirect
|
|
66
|
+
|
|
67
|
+
Create a YAML workflow directly from user-supplied YAML content (no compilation).
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
const result = await lt.yamlWorkflows.createDirect({
|
|
71
|
+
name: 'my_tool',
|
|
72
|
+
yaml_content: yamlString,
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Parameters:**
|
|
77
|
+
|
|
78
|
+
| Field | Type | Required | Description |
|
|
79
|
+
|-------|------|----------|-------------|
|
|
80
|
+
| `name` | `string` | Yes | Tool name (sanitized to lowercase alphanumeric, periods, dashes, underscores) |
|
|
81
|
+
| `description` | `string` | No | Human-readable description |
|
|
82
|
+
| `yaml_content` | `string` | Yes | Raw HotMesh YAML definition |
|
|
83
|
+
| `input_schema` | `object` | No | JSON Schema describing the workflow's input (defaults to `{}`) |
|
|
84
|
+
| `activity_manifest` | `any[]` | No | List of activity declarations (defaults to `[]`) |
|
|
85
|
+
| `tags` | `string[]` | No | Classification tags (defaults to `[]`) |
|
|
86
|
+
| `app_id` | `string` | No | Target namespace (defaults to `"longtail"`) |
|
|
87
|
+
| `graph_topic` | `string` | No | Subscription topic override (defaults to sanitized name) |
|
|
88
|
+
|
|
89
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
90
|
+
|
|
91
|
+
**Auth:** Not required
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## getAppIds
|
|
96
|
+
|
|
97
|
+
Retrieve all distinct app_id namespaces that have at least one YAML workflow.
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
const result = await lt.yamlWorkflows.getAppIds({});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Parameters:** None (pass `{}`).
|
|
104
|
+
|
|
105
|
+
**Returns:** `LTApiResult<{ app_ids: string[] }>`
|
|
106
|
+
|
|
107
|
+
**Auth:** Not required
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## get
|
|
112
|
+
|
|
113
|
+
Fetch a single YAML workflow by its primary key.
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
const result = await lt.yamlWorkflows.get({ id: 'uuid-here' });
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Parameters:**
|
|
120
|
+
|
|
121
|
+
| Field | Type | Required | Description |
|
|
122
|
+
|-------|------|----------|-------------|
|
|
123
|
+
| `id` | `string` | Yes | UUID of the workflow record |
|
|
124
|
+
|
|
125
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
126
|
+
|
|
127
|
+
**Auth:** Not required
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## update
|
|
132
|
+
|
|
133
|
+
Partially update a YAML workflow record.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
const result = await lt.yamlWorkflows.update({ id: 'uuid-here', name: 'new_name', tags: ['updated'] });
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Parameters:**
|
|
140
|
+
|
|
141
|
+
| Field | Type | Required | Description |
|
|
142
|
+
|-------|------|----------|-------------|
|
|
143
|
+
| `id` | `string` | Yes | UUID of the workflow to update |
|
|
144
|
+
| `[key]` | `any` | No | Any mutable workflow field (name, description, yaml_content, tags, etc.) |
|
|
145
|
+
|
|
146
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
147
|
+
|
|
148
|
+
**Auth:** Not required
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## regenerate
|
|
153
|
+
|
|
154
|
+
Re-compile an existing YAML workflow from its original execution trace.
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
const result = await lt.yamlWorkflows.regenerate({
|
|
158
|
+
id: 'uuid-here',
|
|
159
|
+
compilation_feedback: 'Add error handling for the upload step',
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Parameters:**
|
|
164
|
+
|
|
165
|
+
| Field | Type | Required | Description |
|
|
166
|
+
|-------|------|----------|-------------|
|
|
167
|
+
| `id` | `string` | Yes | UUID of the workflow to regenerate |
|
|
168
|
+
| `task_queue` | `string` | No | Override the task queue (otherwise resolved from source task) |
|
|
169
|
+
| `compilation_feedback` | `string` | No | Natural-language feedback to steer the re-compilation |
|
|
170
|
+
|
|
171
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
172
|
+
|
|
173
|
+
**Auth:** Not required
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## delete
|
|
178
|
+
|
|
179
|
+
Permanently delete a YAML workflow record. Only draft or archived workflows can be deleted.
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
const result = await lt.yamlWorkflows.delete({ id: 'uuid-here' });
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Parameters:**
|
|
186
|
+
|
|
187
|
+
| Field | Type | Required | Description |
|
|
188
|
+
|-------|------|----------|-------------|
|
|
189
|
+
| `id` | `string` | Yes | UUID of the workflow to delete |
|
|
190
|
+
|
|
191
|
+
**Returns:** `LTApiResult<{ deleted: true }>`
|
|
192
|
+
|
|
193
|
+
**Auth:** Not required
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## deploy
|
|
198
|
+
|
|
199
|
+
Deploy a YAML workflow and all sibling workflows sharing its app_id namespace.
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
const result = await lt.yamlWorkflows.deploy({ id: 'uuid-here' });
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Parameters:**
|
|
206
|
+
|
|
207
|
+
| Field | Type | Required | Description |
|
|
208
|
+
|-------|------|----------|-------------|
|
|
209
|
+
| `id` | `string` | Yes | UUID of the workflow to deploy |
|
|
210
|
+
|
|
211
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
212
|
+
|
|
213
|
+
**Auth:** Not required
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## activate
|
|
218
|
+
|
|
219
|
+
Activate a previously deployed YAML workflow and its app_id siblings.
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
const result = await lt.yamlWorkflows.activate({ id: 'uuid-here' });
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Parameters:**
|
|
226
|
+
|
|
227
|
+
| Field | Type | Required | Description |
|
|
228
|
+
|-------|------|----------|-------------|
|
|
229
|
+
| `id` | `string` | Yes | UUID of the workflow to activate |
|
|
230
|
+
|
|
231
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
232
|
+
|
|
233
|
+
**Auth:** Not required
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## invoke
|
|
238
|
+
|
|
239
|
+
Invoke an active YAML workflow, executing its DAG pipeline.
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
const result = await lt.yamlWorkflows.invoke({
|
|
243
|
+
id: 'uuid-here',
|
|
244
|
+
data: { url: 'https://example.com' },
|
|
245
|
+
sync: true,
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Parameters:**
|
|
250
|
+
|
|
251
|
+
| Field | Type | Required | Description |
|
|
252
|
+
|-------|------|----------|-------------|
|
|
253
|
+
| `id` | `string` | Yes | UUID of the workflow to invoke |
|
|
254
|
+
| `data` | `any` | No | Input payload passed to the workflow's entry point |
|
|
255
|
+
| `sync` | `boolean` | No | When true, block until the workflow completes and return its output |
|
|
256
|
+
| `timeout` | `number` | No | Max milliseconds to wait when `sync` is true |
|
|
257
|
+
| `execute_as` | `string` | No | Override identity for the execution context |
|
|
258
|
+
|
|
259
|
+
**Returns:** `LTApiResult<any>`
|
|
260
|
+
|
|
261
|
+
**Auth:** Optional (userId forwarded to invoke service when provided)
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## archive
|
|
266
|
+
|
|
267
|
+
Archive a YAML workflow, removing it from active service.
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
const result = await lt.yamlWorkflows.archive({ id: 'uuid-here' });
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**Parameters:**
|
|
274
|
+
|
|
275
|
+
| Field | Type | Required | Description |
|
|
276
|
+
|-------|------|----------|-------------|
|
|
277
|
+
| `id` | `string` | Yes | UUID of the workflow to archive |
|
|
278
|
+
|
|
279
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
280
|
+
|
|
281
|
+
**Auth:** Not required
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## getVersionHistory
|
|
286
|
+
|
|
287
|
+
Retrieve the version history for a YAML workflow.
|
|
288
|
+
|
|
289
|
+
```typescript
|
|
290
|
+
const result = await lt.yamlWorkflows.getVersionHistory({ id: 'uuid-here', limit: 10 });
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**Parameters:**
|
|
294
|
+
|
|
295
|
+
| Field | Type | Required | Description |
|
|
296
|
+
|-------|------|----------|-------------|
|
|
297
|
+
| `id` | `string` | Yes | UUID of the workflow |
|
|
298
|
+
| `limit` | `number` | No | Max versions to return (default 20) |
|
|
299
|
+
| `offset` | `number` | No | Pagination offset (default 0) |
|
|
300
|
+
|
|
301
|
+
**Returns:** `LTApiResult<VersionSnapshot[]>`
|
|
302
|
+
|
|
303
|
+
**Auth:** Not required
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## getVersionSnapshot
|
|
308
|
+
|
|
309
|
+
Retrieve a specific version snapshot of a YAML workflow.
|
|
310
|
+
|
|
311
|
+
```typescript
|
|
312
|
+
const result = await lt.yamlWorkflows.getVersionSnapshot({ id: 'uuid-here', version: 3 });
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**Parameters:**
|
|
316
|
+
|
|
317
|
+
| Field | Type | Required | Description |
|
|
318
|
+
|-------|------|----------|-------------|
|
|
319
|
+
| `id` | `string` | Yes | UUID of the workflow |
|
|
320
|
+
| `version` | `number` | Yes | 1-based version number to retrieve |
|
|
321
|
+
|
|
322
|
+
**Returns:** `LTApiResult<VersionSnapshot>`
|
|
323
|
+
|
|
324
|
+
**Auth:** Not required
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## getYamlContent
|
|
329
|
+
|
|
330
|
+
Retrieve the raw YAML content for a workflow, optionally at a specific version.
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
const result = await lt.yamlWorkflows.getYamlContent({ id: 'uuid-here' });
|
|
334
|
+
const result = await lt.yamlWorkflows.getYamlContent({ id: 'uuid-here', version: 2 });
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Parameters:**
|
|
338
|
+
|
|
339
|
+
| Field | Type | Required | Description |
|
|
340
|
+
|-------|------|----------|-------------|
|
|
341
|
+
| `id` | `string` | Yes | UUID of the workflow |
|
|
342
|
+
| `version` | `number` | No | Version number; when omitted, returns the current content |
|
|
343
|
+
|
|
344
|
+
**Returns:** `LTApiResult<string>`
|
|
345
|
+
|
|
346
|
+
**Auth:** Not required
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## setCronSchedule
|
|
351
|
+
|
|
352
|
+
Set or update the cron schedule for a YAML workflow.
|
|
353
|
+
|
|
354
|
+
```typescript
|
|
355
|
+
const result = await lt.yamlWorkflows.setCronSchedule({
|
|
356
|
+
id: 'uuid-here',
|
|
357
|
+
cron_schedule: '0 * * * *',
|
|
358
|
+
});
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Parameters:**
|
|
362
|
+
|
|
363
|
+
| Field | Type | Required | Description |
|
|
364
|
+
|-------|------|----------|-------------|
|
|
365
|
+
| `id` | `string` | Yes | UUID of the workflow to schedule |
|
|
366
|
+
| `cron_schedule` | `string` | Yes | Cron expression (e.g. `"0 * * * *"`) |
|
|
367
|
+
| `cron_envelope` | `any` | No | Payload passed to each scheduled invocation |
|
|
368
|
+
| `execute_as` | `string` | No | Identity override for scheduled executions |
|
|
369
|
+
|
|
370
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
371
|
+
|
|
372
|
+
**Auth:** Not required
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## clearCronSchedule
|
|
377
|
+
|
|
378
|
+
Remove the cron schedule from a YAML workflow.
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
const result = await lt.yamlWorkflows.clearCronSchedule({ id: 'uuid-here' });
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**Parameters:**
|
|
385
|
+
|
|
386
|
+
| Field | Type | Required | Description |
|
|
387
|
+
|-------|------|----------|-------------|
|
|
388
|
+
| `id` | `string` | Yes | UUID of the workflow to unschedule |
|
|
389
|
+
|
|
390
|
+
**Returns:** `LTApiResult<YamlWorkflow>`
|
|
391
|
+
|
|
392
|
+
**Auth:** Not required
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## getCronStatus
|
|
397
|
+
|
|
398
|
+
List all YAML workflows that have a cron schedule, with their live timer status.
|
|
399
|
+
|
|
400
|
+
```typescript
|
|
401
|
+
const result = await lt.yamlWorkflows.getCronStatus({});
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Parameters:** None (pass `{}`).
|
|
405
|
+
|
|
406
|
+
**Returns:** `LTApiResult<{ schedules: Array<{ id, name, graph_topic, app_id, cron_schedule, execute_as, active }> }>`
|
|
407
|
+
|
|
408
|
+
**Auth:** Not required
|
package/docs/events.md
CHANGED
|
@@ -133,6 +133,34 @@ await eventRegistry.connect();
|
|
|
133
133
|
|
|
134
134
|
On disconnect, the adapter calls `drain()` on the NATS connection, ensuring in-flight publishes complete before closing.
|
|
135
135
|
|
|
136
|
+
## Callback Adapter
|
|
137
|
+
|
|
138
|
+
`CallbackEventAdapter` delivers events via registered callbacks. Use it when Long Tail runs as an embedded package and you want event subscriptions without socket.io or NATS.
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { eventRegistry, CallbackEventAdapter } from '@hotmeshio/long-tail';
|
|
142
|
+
|
|
143
|
+
const adapter = new CallbackEventAdapter();
|
|
144
|
+
eventRegistry.register(adapter);
|
|
145
|
+
await adapter.connect();
|
|
146
|
+
|
|
147
|
+
// Exact match
|
|
148
|
+
const unsub = adapter.on('escalation.claimed', (event) => {
|
|
149
|
+
console.log('claimed:', event.escalationId);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Category wildcard — matches all task.* events
|
|
153
|
+
adapter.on('task.*', (event) => { ... });
|
|
154
|
+
|
|
155
|
+
// Global wildcard
|
|
156
|
+
adapter.on('*', (event) => { ... });
|
|
157
|
+
|
|
158
|
+
// Unsubscribe
|
|
159
|
+
unsub();
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The adapter is registered automatically by `start()`. If you use `createClient()`, the SDK exposes it as `lt.events.on()` — see the [SDK guide](sdk.md) for details.
|
|
163
|
+
|
|
136
164
|
## In-Memory Adapter
|
|
137
165
|
|
|
138
166
|
`InMemoryEventAdapter` captures events in an array. It exists for testing.
|