@hotmeshio/long-tail 0.1.13 → 0.1.15
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 +15 -0
- package/build/api/escalations/bulk.d.ts +78 -0
- package/build/api/escalations/bulk.js +279 -0
- package/build/api/escalations/claim.d.ts +30 -0
- package/build/api/escalations/claim.js +121 -0
- package/build/api/escalations/create.d.ts +29 -0
- package/build/api/escalations/create.js +101 -0
- package/build/api/escalations/helpers.d.ts +10 -0
- package/build/api/escalations/helpers.js +80 -0
- package/build/api/escalations/index.d.ts +6 -0
- package/build/api/escalations/index.js +26 -0
- package/build/api/escalations/list.d.ts +75 -0
- package/build/api/escalations/list.js +170 -0
- package/build/api/escalations/resolve.d.ts +18 -0
- package/build/api/escalations/resolve.js +243 -0
- package/build/api/escalations/single.d.ts +37 -0
- package/build/api/escalations/single.js +123 -0
- package/build/api/files.d.ts +16 -0
- package/build/api/files.js +61 -0
- package/build/api/knowledge.d.ts +36 -0
- package/build/api/knowledge.js +112 -0
- package/build/api/mcp/index.d.ts +2 -0
- package/build/api/mcp/index.js +16 -0
- package/build/api/{mcp.d.ts → mcp/servers.d.ts} +1 -33
- package/build/api/{mcp.js → mcp/servers.js} +4 -65
- package/build/api/mcp/tools.d.ts +33 -0
- package/build/api/mcp/tools.js +64 -0
- package/build/api/mcp-runs.d.ts +2 -0
- package/build/api/mcp-runs.js +2 -0
- package/build/api/settings.js +9 -1
- package/build/api/workflow-sets.d.ts +11 -0
- package/build/api/workflow-sets.js +62 -0
- package/build/api/workflows/config.d.ts +64 -0
- package/build/api/workflows/config.js +142 -0
- package/build/api/workflows/discovery.d.ts +29 -0
- package/build/api/workflows/discovery.js +153 -0
- package/build/api/workflows/index.d.ts +3 -0
- package/build/api/workflows/index.js +18 -0
- package/build/api/workflows/invocation.d.ts +67 -0
- package/build/api/workflows/invocation.js +188 -0
- package/build/api/yaml-workflows/cron.d.ts +39 -0
- package/build/api/yaml-workflows/cron.js +127 -0
- package/build/api/{yaml-workflows.d.ts → yaml-workflows/crud.d.ts} +22 -137
- package/build/api/{yaml-workflows.js → yaml-workflows/crud.js} +86 -358
- package/build/api/yaml-workflows/deploy.d.ts +71 -0
- package/build/api/yaml-workflows/deploy.js +223 -0
- package/build/api/yaml-workflows/helpers.d.ts +2 -0
- package/build/api/yaml-workflows/helpers.js +8 -0
- package/build/api/yaml-workflows/index.d.ts +4 -0
- package/build/api/yaml-workflows/index.js +27 -0
- package/build/api/yaml-workflows/versions.d.ts +43 -0
- package/build/api/yaml-workflows/versions.js +124 -0
- package/build/bin/ltc.d.ts +2 -0
- package/build/bin/ltc.js +220 -0
- package/build/examples/seed-data.d.ts +55 -0
- package/build/examples/seed-data.js +161 -0
- package/build/examples/seed.js +7 -164
- package/build/lib/cli/auth.d.ts +23 -0
- package/build/lib/cli/auth.js +167 -0
- package/build/lib/cli/client.d.ts +6 -0
- package/build/lib/cli/client.js +31 -0
- package/build/lib/cli/commands/escalations.d.ts +19 -0
- package/build/lib/cli/commands/escalations.js +69 -0
- package/build/lib/cli/commands/knowledge.d.ts +18 -0
- package/build/lib/cli/commands/knowledge.js +87 -0
- package/build/lib/cli/commands/mcp.d.ts +8 -0
- package/build/lib/cli/commands/mcp.js +33 -0
- package/build/lib/cli/commands/pipelines.d.ts +16 -0
- package/build/lib/cli/commands/pipelines.js +67 -0
- package/build/lib/cli/commands/status.d.ts +1 -0
- package/build/lib/cli/commands/status.js +28 -0
- package/build/lib/cli/commands/users.d.ts +7 -0
- package/build/lib/cli/commands/users.js +25 -0
- package/build/lib/cli/commands/workflows.d.ts +16 -0
- package/build/lib/cli/commands/workflows.js +104 -0
- package/build/lib/cli/compile.d.ts +2 -0
- package/build/lib/cli/compile.js +165 -0
- package/build/lib/cli/format.d.ts +23 -0
- package/build/lib/cli/format.js +94 -0
- package/build/lib/cli/init.d.ts +1 -0
- package/build/lib/cli/init.js +61 -0
- package/build/lib/cli/output.d.ts +27 -0
- package/build/lib/cli/output.js +126 -0
- package/build/lib/cli/scanner.d.ts +10 -0
- package/build/lib/cli/scanner.js +164 -0
- package/build/lib/cli/types.d.ts +16 -0
- package/build/lib/cli/types.js +2 -0
- package/build/lib/logger/index.d.ts +0 -9
- package/build/lib/logger/index.js +9 -4
- package/build/lib/storage/index.js +2 -2
- package/build/lib/storage/local.d.ts +15 -0
- package/build/lib/storage/local.js +63 -0
- package/build/lib/storage/mime.d.ts +4 -0
- package/build/lib/storage/mime.js +31 -0
- package/build/lib/storage/s3.d.ts +16 -0
- package/build/lib/storage/s3.js +70 -0
- package/build/lib/storage/types.d.ts +18 -0
- package/build/modules/utils.d.ts +73 -0
- package/build/modules/utils.js +84 -0
- package/build/routes/file-browser.d.ts +2 -0
- package/build/routes/file-browser.js +126 -0
- package/build/routes/files.js +25 -17
- package/build/routes/index.js +4 -0
- package/build/routes/knowledge.d.ts +2 -0
- package/build/routes/knowledge.js +141 -0
- package/build/routes/mcp-runs.js +2 -0
- package/build/routes/workflow-sets.js +9 -0
- package/build/routes/yaml-workflows/crud.js +9 -0
- package/build/routes/yaml-workflows/deployment.js +8 -0
- package/build/sdk/index.d.ts +17 -0
- package/build/sdk/index.js +19 -0
- package/build/services/insight/index.d.ts +13 -0
- package/build/services/insight/index.js +4 -7
- package/build/services/insight/prompts.d.ts +1 -1
- package/build/services/insight/prompts.js +1 -1
- package/build/services/mcp/client/connection-dispatch.d.ts +18 -0
- package/build/services/mcp/client/connection-dispatch.js +78 -0
- package/build/services/mcp/client/connection-lifecycle.d.ts +48 -0
- package/build/services/mcp/client/connection-lifecycle.js +296 -0
- package/build/services/mcp/client/connection-test.d.ts +10 -0
- package/build/services/mcp/client/connection-test.js +49 -0
- package/build/services/mcp/client/connection.d.ts +3 -68
- package/build/services/mcp/client/connection.js +15 -393
- package/build/services/mcp/server-lifecycle.d.ts +27 -0
- package/build/services/mcp/server-lifecycle.js +49 -0
- package/build/services/mcp/server-tools.d.ts +13 -0
- package/build/services/mcp/server-tools.js +287 -0
- package/build/services/mcp/server.d.ts +2 -26
- package/build/services/mcp/server.js +7 -315
- package/build/services/mcp-runs/queries.d.ts +2 -0
- package/build/services/mcp-runs/queries.js +11 -1
- package/build/services/mcp-runs/sql.d.ts +1 -1
- package/build/services/mcp-runs/sql.js +2 -2
- package/build/services/workflow-sets/db.d.ts +1 -0
- package/build/services/workflow-sets/db.js +6 -0
- package/build/services/workflow-sets/index.d.ts +1 -1
- package/build/services/workflow-sets/index.js +2 -1
- package/build/services/workflow-sets/sql.d.ts +1 -0
- package/build/services/workflow-sets/sql.js +6 -1
- package/build/services/yaml-workflow/builder-regenerate.d.ts +25 -0
- package/build/services/yaml-workflow/builder-regenerate.js +111 -0
- package/build/services/yaml-workflow/db-versions.d.ts +17 -0
- package/build/services/yaml-workflow/db-versions.js +76 -0
- package/build/services/yaml-workflow/db.d.ts +14 -12
- package/build/services/yaml-workflow/db.js +32 -70
- package/build/services/yaml-workflow/deployer-helpers.js +48 -17
- package/build/services/yaml-workflow/durable-compiler/index.d.ts +22 -0
- package/build/services/yaml-workflow/durable-compiler/index.js +168 -0
- package/build/services/yaml-workflow/durable-compiler/parser.d.ts +12 -0
- package/build/services/yaml-workflow/durable-compiler/parser.js +110 -0
- package/build/services/yaml-workflow/durable-compiler/prompts.d.ts +18 -0
- package/build/services/yaml-workflow/durable-compiler/prompts.js +570 -0
- package/build/services/yaml-workflow/durable-compiler/types.d.ts +51 -0
- package/build/services/yaml-workflow/durable-compiler/types.js +5 -0
- package/build/services/yaml-workflow/generator.js +4 -4
- package/build/services/yaml-workflow/pipeline/build/dag-assembly.d.ts +17 -0
- package/build/services/yaml-workflow/pipeline/build/dag-assembly.js +192 -0
- package/build/services/yaml-workflow/pipeline/build/dag.d.ts +4 -13
- package/build/services/yaml-workflow/pipeline/build/dag.js +9 -185
- package/build/services/yaml-workflow/pipeline/build/index.d.ts +2 -1
- package/build/services/yaml-workflow/pipeline/build/index.js +3 -2
- package/build/services/yaml-workflow/pipeline/build/utils.d.ts +0 -2
- package/build/services/yaml-workflow/pipeline/build/utils.js +0 -8
- package/build/services/yaml-workflow/pipeline/prompt-templates.d.ts +10 -0
- package/build/services/yaml-workflow/pipeline/prompt-templates.js +270 -0
- package/build/services/yaml-workflow/pipeline/prompts.d.ts +3 -6
- package/build/services/yaml-workflow/pipeline/prompts.js +8 -263
- package/build/services/yaml-workflow/sql.d.ts +2 -1
- package/build/services/yaml-workflow/sql.js +10 -3
- package/build/start/workers.js +6 -5
- package/build/system/activities/file-storage.d.ts +4 -0
- package/build/system/activities/file-storage.js +7 -1
- package/build/system/activities/knowledge.d.ts +23 -0
- package/build/system/activities/knowledge.js +50 -10
- package/build/system/activities/schema-exchange.d.ts +50 -0
- package/build/system/activities/schema-exchange.js +210 -0
- package/build/system/activities/sql.d.ts +4 -1
- package/build/system/activities/sql.js +37 -2
- package/build/system/index.js +1 -0
- package/build/system/mcp-servers/file-storage.js +3 -1
- package/build/system/mcp-servers/human-queue-schemas.d.ts +91 -0
- package/build/system/mcp-servers/human-queue-schemas.js +42 -0
- package/build/system/mcp-servers/human-queue.d.ts +2 -6
- package/build/system/mcp-servers/human-queue.js +9 -51
- package/build/system/mcp-servers/knowledge.js +69 -6
- package/build/system/mcp-servers/schema-exchange.d.ts +4 -0
- package/build/system/mcp-servers/schema-exchange.js +93 -0
- package/build/system/mcp-servers/workflow-compiler.js +54 -0
- package/build/system/seed/server-definitions.d.ts +112 -1
- package/build/system/seed/server-definitions.js +37 -0
- package/build/system/seed/tool-manifests-data.d.ts +87 -0
- package/build/system/seed/tool-manifests-data.js +37 -1
- package/build/system/seed/tool-manifests-knowledge.d.ts +9 -1
- package/build/system/seed/tool-manifests-knowledge.js +6 -5
- package/build/system/workflows/mcp-triage/activities-proxy.d.ts +21 -0
- package/build/system/workflows/mcp-triage/activities-proxy.js +70 -0
- package/build/system/workflows/mcp-triage/index.js +17 -75
- package/build/system/workflows/mcp-workflow-builder/prompts.d.ts +1 -1
- package/build/system/workflows/mcp-workflow-builder/prompts.js +21 -20
- package/build/system/workflows/mcp-workflow-planner/activities/persist.d.ts +2 -1
- package/build/system/workflows/mcp-workflow-planner/activities/persist.js +4 -3
- package/build/system/workflows/mcp-workflow-planner/index.js +41 -5
- package/build/system/workflows/mcp-workflow-planner/prompts.d.ts +1 -1
- package/build/system/workflows/mcp-workflow-planner/prompts.js +3 -3
- package/build/tsconfig.tsbuildinfo +1 -1
- package/dashboard/dist/assets/{AdminDashboard-DUrSBQOl.js → AdminDashboard-NLryl1_B.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DUrSBQOl.js.map → AdminDashboard-NLryl1_B.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-6vexlrk3.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-Cg5iNEkm.js → BotPicker-DWhn0tr1.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-Cg5iNEkm.js.map → BotPicker-DWhn0tr1.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-Kd9UIyeU.js → CollapsibleSection-CgYgQiOc.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-Kd9UIyeU.js.map → CollapsibleSection-CgYgQiOc.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-DZMgmlof.js → ConfirmDeleteModal-DCKAPXD3.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-DZMgmlof.js.map → ConfirmDeleteModal-DCKAPXD3.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-cPFTRm8q.js → CopyableId-DXkaAOYk.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-cPFTRm8q.js.map → CopyableId-DXkaAOYk.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-B361BOfU.js +2 -0
- package/dashboard/dist/assets/{CredentialsPage-DJablIbs.js.map → CredentialsPage-B361BOfU.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-NgIP6YDW.js → CustomDurationPicker-D2G1ldiF.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-NgIP6YDW.js.map → CustomDurationPicker-D2G1ldiF.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-CTRhTAfT.js → DataTable-DXSUbA26.js} +2 -2
- package/dashboard/dist/assets/{DataTable-CTRhTAfT.js.map → DataTable-DXSUbA26.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-HcSJ_MMs.js → ElapsedCell-CQGqkXP_.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-HcSJ_MMs.js.map → ElapsedCell-CQGqkXP_.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-joNbd4gg.js → EmptyState-Dep92Wkg.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-joNbd4gg.js.map → EmptyState-Dep92Wkg.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-DpXDnQux.js → EscalationsOverview-DVEFVjs7.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DpXDnQux.js.map → EscalationsOverview-DVEFVjs7.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CYem3v8n.js → EventTable-BMJAPkMi.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CYem3v8n.js.map → EventTable-BMJAPkMi.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-BiO8SOzc.js → FilterBar-DbVbCzH2.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-BiO8SOzc.js.map → FilterBar-DbVbCzH2.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-6yRDh2e9.js → ListToolbar-0XNuXj0M.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-6yRDh2e9.js.map → ListToolbar-0XNuXj0M.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-CUgSxkQe.js → McpOverview-CeYnCzBN.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-CUgSxkQe.js.map → McpOverview-CeYnCzBN.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-t3qW3QNa.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-CfUcdzaj.js +2 -0
- package/dashboard/dist/assets/{McpQueryPage-lV6kfDG5.js.map → McpQueryPage-CfUcdzaj.js.map} +1 -1
- package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-CZtodW_Z.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-Dzgq7HGt.js.map +1 -0
- package/dashboard/dist/assets/{Modal-BuTvD0pz.js → Modal-yyhUeKoA.js} +2 -2
- package/dashboard/dist/assets/{Modal-BuTvD0pz.js.map → Modal-yyhUeKoA.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-Ceh7OQtZ.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-C9SSV96T.js.map → OperatorDashboard-Ceh7OQtZ.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-BcTVF9ul.js → PageHeader-CZ9a8cpr.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-BcTVF9ul.js.map → PageHeader-CZ9a8cpr.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-BI7JG5x6.js → PageHeaderWithStats-BJuNs5NM.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-BI7JG5x6.js.map → PageHeaderWithStats-BJuNs5NM.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-DqVaOU65.js → PriorityBadge-BrPikMFy.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-DqVaOU65.js.map → PriorityBadge-BrPikMFy.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-hFMhf9qa.js → ProcessDetailPage-2miaYd8G.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-hFMhf9qa.js.map → ProcessDetailPage-2miaYd8G.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-ByVoBCQ3.js → ProcessesListPage-DqpRDqjk.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-ByVoBCQ3.js.map → ProcessesListPage-DqpRDqjk.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-D9ZIkYiu.js → RolePill-DxbJMfJu.js} +2 -2
- package/dashboard/dist/assets/{RolePill-D9ZIkYiu.js.map → RolePill-DxbJMfJu.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-SMedMuqa.js → RolesPage-CYHRo21-.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-SMedMuqa.js.map → RolesPage-CYHRo21-.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-yDhwwDbU.js → RowActions-DurFwIwe.js} +2 -2
- package/dashboard/dist/assets/{RowActions-yDhwwDbU.js.map → RowActions-DurFwIwe.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js +2 -0
- package/dashboard/dist/assets/RunAsSelector-CNKraP6u.js.map +1 -0
- package/dashboard/dist/assets/{StatCard-BrBnQFxh.js → StatCard-CKplpK3w.js} +2 -2
- package/dashboard/dist/assets/{StatCard-BrBnQFxh.js.map → StatCard-CKplpK3w.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-xgb-lZku.js → StatusBadge-Dm0V1dNN.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-xgb-lZku.js.map → StatusBadge-Dm0V1dNN.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-B9ps2SvM.js → StepIndicator-Dicx0WTZ.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-B9ps2SvM.js.map → StepIndicator-Dicx0WTZ.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-DTIjBKN3.js → StickyPagination-B2jYvU3-.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-DTIjBKN3.js.map → StickyPagination-B2jYvU3-.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-ClwumkT1.js.map +1 -0
- package/dashboard/dist/assets/{TagInput-CdNUuqk4.js → TagInput-CypDZ6Kl.js} +2 -2
- package/dashboard/dist/assets/{TagInput-CdNUuqk4.js.map → TagInput-CypDZ6Kl.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-C-nzaNea.js → TaskDetailPage-DooDNJGT.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-C-nzaNea.js.map → TaskDetailPage-DooDNJGT.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-Lvr2-NzS.js → TaskQueuePill-C1hZ-j31.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-Lvr2-NzS.js.map → TaskQueuePill-C1hZ-j31.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-DSUmD84y.js → TasksListPage-D7CdkAeg.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-DSUmD84y.js.map → TasksListPage-D7CdkAeg.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-BZdLdrIh.js → TimeAgo-B5LXB2aj.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-BZdLdrIh.js.map → TimeAgo-B5LXB2aj.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-QX_0i5FK.js → TimestampCell-Crb9b0Gw.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-QX_0i5FK.js.map → TimestampCell-Crb9b0Gw.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-DyZMXcBm.js → UserName-OPg-nkRa.js} +2 -2
- package/dashboard/dist/assets/{UserName-DyZMXcBm.js.map → UserName-OPg-nkRa.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-DjVxfZaF.js → WorkflowExecutionPage-CcLVrs9b.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-DjVxfZaF.js.map → WorkflowExecutionPage-CcLVrs9b.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-CCV4MMj7.js.map +1 -0
- package/dashboard/dist/assets/{WorkflowsDashboard-DZjuiFZ0.js → WorkflowsDashboard-DB1SncBi.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-DZjuiFZ0.js.map → WorkflowsDashboard-DB1SncBi.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-CLnLRpOu.js → WorkflowsOverview-DvShiYJV.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-CLnLRpOu.js.map → WorkflowsOverview-DvShiYJV.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js +2 -0
- package/dashboard/dist/assets/YamlWorkflowsPage-DCBoMeGI.js.map +1 -0
- package/dashboard/dist/assets/{bots-DIM6lBoY.js → bots-Dqos20NE.js} +2 -2
- package/dashboard/dist/assets/{bots-DIM6lBoY.js.map → bots-Dqos20NE.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-JOTuOqjq.js → escalation-A0CsbvNV.js} +2 -2
- package/dashboard/dist/assets/{escalation-JOTuOqjq.js.map → escalation-A0CsbvNV.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-BpBJN6k4.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-Cyg58nkg.js.map → escalation-columns-BpBJN6k4.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-B1BDxBZd.js → helpers-CmznCuAx.js} +2 -2
- package/dashboard/dist/assets/{helpers-B1BDxBZd.js.map → helpers-CmznCuAx.js.map} +1 -1
- package/dashboard/dist/assets/index-BIeYV5QK.js +2 -0
- package/dashboard/dist/assets/index-BIeYV5QK.js.map +1 -0
- package/dashboard/dist/assets/index-BYwD3kHN.js +5 -0
- package/dashboard/dist/assets/index-BYwD3kHN.js.map +1 -0
- package/dashboard/dist/assets/index-C5TUqJu0.css +1 -0
- package/dashboard/dist/assets/index-C8-UaN4N.js +2 -0
- package/dashboard/dist/assets/{index-Cg5nfiYX.js.map → index-C8-UaN4N.js.map} +1 -1
- package/dashboard/dist/assets/index-CAj5LT9H.js +15 -0
- package/dashboard/dist/assets/index-CAj5LT9H.js.map +1 -0
- package/dashboard/dist/assets/index-CjxHCVxl.js +2 -0
- package/dashboard/dist/assets/{index-Cf60K3x9.js.map → index-CjxHCVxl.js.map} +1 -1
- package/dashboard/dist/assets/index-Cr0Rqsj7.js +2 -0
- package/dashboard/dist/assets/index-Cr0Rqsj7.js.map +1 -0
- package/dashboard/dist/assets/index-DZHNte4o.js +2 -0
- package/dashboard/dist/assets/{index-Di12t56M.js.map → index-DZHNte4o.js.map} +1 -1
- package/dashboard/dist/assets/{index-Ds0JoXS2.js → index-VnYkWW8r.js} +2 -2
- package/dashboard/dist/assets/{index-Ds0JoXS2.js.map → index-VnYkWW8r.js.map} +1 -1
- package/dashboard/dist/assets/{index-BcR6PfpY.js → index-XGOmZ117.js} +2 -2
- package/dashboard/dist/assets/{index-BcR6PfpY.js.map → index-XGOmZ117.js.map} +1 -1
- package/dashboard/dist/assets/index-ZjOUzWhc.js +2 -0
- package/dashboard/dist/assets/index-ZjOUzWhc.js.map +1 -0
- package/dashboard/dist/assets/{index-BYZX9tOb.js → index-puKKZ5l8.js} +77 -77
- package/dashboard/dist/assets/index-puKKZ5l8.js.map +1 -0
- package/dashboard/dist/assets/{index-BizfauqT.js → index-t5frSddy.js} +4 -4
- package/dashboard/dist/assets/{index-BizfauqT.js.map → index-t5frSddy.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-B_xbczAt.js → mcp-DrWymhSu.js} +2 -2
- package/dashboard/dist/assets/{mcp-B_xbczAt.js.map → mcp-DrWymhSu.js.map} +1 -1
- package/dashboard/dist/assets/mcp-query-BhUxVEMS.js +2 -0
- package/dashboard/dist/assets/mcp-query-BhUxVEMS.js.map +1 -0
- package/dashboard/dist/assets/mcp-runs-DUfz4mLd.js +2 -0
- package/dashboard/dist/assets/mcp-runs-DUfz4mLd.js.map +1 -0
- package/dashboard/dist/assets/{namespaces-C3WtdO_9.js → namespaces-Cm6AY5sh.js} +2 -2
- package/dashboard/dist/assets/{namespaces-C3WtdO_9.js.map → namespaces-Cm6AY5sh.js.map} +1 -1
- package/dashboard/dist/assets/{roles-BDAsPpZG.js → roles-2v1Kc7BJ.js} +2 -2
- package/dashboard/dist/assets/{roles-BDAsPpZG.js.map → roles-2v1Kc7BJ.js.map} +1 -1
- package/dashboard/dist/assets/{settings-Ife_UwAp.js → settings-DTQNp6tH.js} +2 -2
- package/dashboard/dist/assets/{settings-Ife_UwAp.js.map → settings-DTQNp6tH.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-BquNDHDI.js → tasks-CS1rgG1s.js} +2 -2
- package/dashboard/dist/assets/{tasks-BquNDHDI.js.map → tasks-CS1rgG1s.js.map} +1 -1
- package/dashboard/dist/assets/useEventHooks-BjXX8x3a.js +2 -0
- package/dashboard/dist/assets/{useEventHooks-anv_B2Yy.js.map → useEventHooks-BjXX8x3a.js.map} +1 -1
- package/dashboard/dist/assets/useFilterParams-CGRYFw_A.js +2 -0
- package/dashboard/dist/assets/useFilterParams-CGRYFw_A.js.map +1 -0
- package/dashboard/dist/assets/useYamlActivityEvents-BeR-nVWQ.js +2 -0
- package/dashboard/dist/assets/useYamlActivityEvents-BeR-nVWQ.js.map +1 -0
- package/dashboard/dist/assets/{users-CFcxB4v6.js → users-DYsdQ7Md.js} +2 -2
- package/dashboard/dist/assets/{users-CFcxB4v6.js.map → users-DYsdQ7Md.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-T4r2DSPD.js → vendor-icons-CWl44VA6.js} +132 -82
- package/dashboard/dist/assets/vendor-icons-CWl44VA6.js.map +1 -0
- package/dashboard/dist/assets/{workflows-CeRci9z3.js → workflows-2QAXh3UD.js} +2 -2
- package/dashboard/dist/assets/{workflows-CeRci9z3.js.map → workflows-2QAXh3UD.js.map} +1 -1
- package/dashboard/dist/assets/yaml-workflows-sx8-UEE3.js +2 -0
- package/dashboard/dist/assets/yaml-workflows-sx8-UEE3.js.map +1 -0
- package/dashboard/dist/index.html +3 -3
- package/docs/api/http/file-browser.md +101 -0
- package/docs/api/http/knowledge.md +203 -0
- package/docs/api/http/settings.md +6 -4
- package/docs/api/sdk/files.md +68 -0
- package/docs/api/sdk/knowledge.md +126 -0
- package/docs/api/sdk/settings.md +3 -2
- package/docs/cli.md +171 -0
- package/docs/compilation.md +16 -0
- package/docs/compiler.md +311 -0
- package/docs/events.md +19 -0
- package/docs/schema-exchange.md +173 -0
- package/docs/self-test.md +106 -0
- package/docs/workflows.md +19 -0
- package/package.json +15 -2
- package/build/api/escalations.d.ts +0 -271
- package/build/api/escalations.js +0 -932
- package/build/api/workflows.d.ts +0 -158
- package/build/api/workflows.js +0 -414
- package/dashboard/dist/assets/AvailableEscalationsPage-Dbd1qUK_.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-Dbd1qUK_.js.map +0 -1
- package/dashboard/dist/assets/CredentialsPage-DJablIbs.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-BWbinTM_.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-BWbinTM_.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-lV6kfDG5.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-D6gaxH3_.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-D6gaxH3_.js.map +0 -1
- package/dashboard/dist/assets/McpRunsPage-DKvTklh9.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-DKvTklh9.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-C9SSV96T.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-RK4Yu66z.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-RK4Yu66z.js.map +0 -1
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-CZqGslD6.js.map +0 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-VjdhnLmO.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-VjdhnLmO.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-Cyg58nkg.js +0 -2
- package/dashboard/dist/assets/helpers-BCix9c_m.js +0 -2
- package/dashboard/dist/assets/helpers-BCix9c_m.js.map +0 -1
- package/dashboard/dist/assets/index-BUK3qR-1.js +0 -2
- package/dashboard/dist/assets/index-BUK3qR-1.js.map +0 -1
- package/dashboard/dist/assets/index-BYZX9tOb.js.map +0 -1
- package/dashboard/dist/assets/index-Cf60K3x9.js +0 -2
- package/dashboard/dist/assets/index-Cg5nfiYX.js +0 -2
- package/dashboard/dist/assets/index-D1wVX50Z.js +0 -15
- package/dashboard/dist/assets/index-D1wVX50Z.js.map +0 -1
- package/dashboard/dist/assets/index-DDYFpi4l.js +0 -5
- package/dashboard/dist/assets/index-DDYFpi4l.js.map +0 -1
- package/dashboard/dist/assets/index-DcIKW-cZ.css +0 -1
- package/dashboard/dist/assets/index-Di12t56M.js +0 -2
- package/dashboard/dist/assets/mcp-query-B8-P_QoG.js +0 -2
- package/dashboard/dist/assets/mcp-query-B8-P_QoG.js.map +0 -1
- package/dashboard/dist/assets/mcp-runs-CWeZinoF.js +0 -2
- package/dashboard/dist/assets/mcp-runs-CWeZinoF.js.map +0 -1
- package/dashboard/dist/assets/useEventHooks-anv_B2Yy.js +0 -2
- package/dashboard/dist/assets/useFilterParams-BUyLHcx_.js +0 -2
- package/dashboard/dist/assets/useFilterParams-BUyLHcx_.js.map +0 -1
- package/dashboard/dist/assets/useYamlActivityEvents-DN-PTgVx.js +0 -2
- package/dashboard/dist/assets/useYamlActivityEvents-DN-PTgVx.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-T4r2DSPD.js.map +0 -1
- package/dashboard/dist/assets/yaml-workflows-DLwd2BOX.js +0 -2
- package/dashboard/dist/assets/yaml-workflows-DLwd2BOX.js.map +0 -1
|
@@ -0,0 +1,123 @@
|
|
|
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.getEscalation = getEscalation;
|
|
37
|
+
exports.getEscalationsByWorkflowId = getEscalationsByWorkflowId;
|
|
38
|
+
exports.escalateToRole = escalateToRole;
|
|
39
|
+
const escalationService = __importStar(require("../../services/escalation"));
|
|
40
|
+
const userService = __importStar(require("../../services/user"));
|
|
41
|
+
const roleService = __importStar(require("../../services/role"));
|
|
42
|
+
// ── Single-escalation routes ───────────────────────────────────────────────
|
|
43
|
+
/**
|
|
44
|
+
* Get a single escalation by ID.
|
|
45
|
+
*
|
|
46
|
+
* Non-superadmin users must hold the escalation's assigned role.
|
|
47
|
+
*
|
|
48
|
+
* @param input.id — escalation UUID
|
|
49
|
+
* @param auth — authenticated user context
|
|
50
|
+
* @returns `{ status: 200, data: <escalation record> }` or 403/404
|
|
51
|
+
*/
|
|
52
|
+
async function getEscalation(input, auth) {
|
|
53
|
+
try {
|
|
54
|
+
const escalation = await escalationService.getEscalation(input.id);
|
|
55
|
+
if (!escalation) {
|
|
56
|
+
return { status: 404, error: 'Escalation not found' };
|
|
57
|
+
}
|
|
58
|
+
const isSuperAdminUser = await userService.isSuperAdmin(auth.userId);
|
|
59
|
+
if (!isSuperAdminUser) {
|
|
60
|
+
const userHasRole = await userService.hasRole(auth.userId, escalation.role);
|
|
61
|
+
if (!userHasRole) {
|
|
62
|
+
return { status: 403, error: 'Not authorized to view this escalation' };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return { status: 200, data: escalation };
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return { status: 500, error: err.message };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* List all escalations for a given workflow ID.
|
|
73
|
+
*
|
|
74
|
+
* @param input.workflowId — HotMesh workflow ID
|
|
75
|
+
* @returns `{ status: 200, data: { escalations } }`
|
|
76
|
+
*/
|
|
77
|
+
async function getEscalationsByWorkflowId(input) {
|
|
78
|
+
try {
|
|
79
|
+
const escalations = await escalationService.getEscalationsByWorkflowId(input.workflowId);
|
|
80
|
+
return { status: 200, data: { escalations } };
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
return { status: 500, error: err.message };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Route a pending escalation to a different role.
|
|
88
|
+
*
|
|
89
|
+
* The user must be authorized to escalate from the current role to the
|
|
90
|
+
* target role (checked via escalation chain configuration).
|
|
91
|
+
*
|
|
92
|
+
* @param input.id — escalation UUID
|
|
93
|
+
* @param input.targetRole — destination role
|
|
94
|
+
* @param auth — authenticated user context
|
|
95
|
+
* @returns `{ status: 200, data: <updated escalation> }` or 403/404/409
|
|
96
|
+
*/
|
|
97
|
+
async function escalateToRole(input, auth) {
|
|
98
|
+
try {
|
|
99
|
+
const { id, targetRole } = input;
|
|
100
|
+
if (!targetRole || typeof targetRole !== 'string') {
|
|
101
|
+
return { status: 400, error: 'targetRole is required' };
|
|
102
|
+
}
|
|
103
|
+
const escalation = await escalationService.getEscalation(id);
|
|
104
|
+
if (!escalation) {
|
|
105
|
+
return { status: 404, error: 'Escalation not found' };
|
|
106
|
+
}
|
|
107
|
+
if (escalation.status !== 'pending') {
|
|
108
|
+
return { status: 409, error: 'Escalation is not pending' };
|
|
109
|
+
}
|
|
110
|
+
const canEscalate = await roleService.canEscalateTo(auth.userId, escalation.role, targetRole);
|
|
111
|
+
if (!canEscalate) {
|
|
112
|
+
return { status: 403, error: 'Not authorized to escalate to this role' };
|
|
113
|
+
}
|
|
114
|
+
const updated = await escalationService.escalateToRole(id, targetRole);
|
|
115
|
+
if (!updated) {
|
|
116
|
+
return { status: 409, error: 'Escalation could not be updated' };
|
|
117
|
+
}
|
|
118
|
+
return { status: 200, data: updated };
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
return { status: 500, error: err.message };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LTApiResult } from '../types/sdk';
|
|
2
|
+
export declare function browseFiles(input: {
|
|
3
|
+
prefix?: string;
|
|
4
|
+
pageSize?: number;
|
|
5
|
+
continuationToken?: string;
|
|
6
|
+
}): Promise<LTApiResult>;
|
|
7
|
+
export declare function getFileMetadata(input: {
|
|
8
|
+
filePath: string;
|
|
9
|
+
}): Promise<LTApiResult>;
|
|
10
|
+
export declare function deleteFile(input: {
|
|
11
|
+
filePath: string;
|
|
12
|
+
}): Promise<LTApiResult>;
|
|
13
|
+
export declare function generateSignedUrl(input: {
|
|
14
|
+
filePath: string;
|
|
15
|
+
expiresIn: number;
|
|
16
|
+
}): Promise<LTApiResult>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.browseFiles = browseFiles;
|
|
4
|
+
exports.getFileMetadata = getFileMetadata;
|
|
5
|
+
exports.deleteFile = deleteFile;
|
|
6
|
+
exports.generateSignedUrl = generateSignedUrl;
|
|
7
|
+
const storage_1 = require("../lib/storage");
|
|
8
|
+
const mime_1 = require("../lib/storage/mime");
|
|
9
|
+
const ALLOWED_EXPIRY = [3600, 21600, 86400, 604800, 2592000]; // 1h, 6h, 24h, 7d, 30d
|
|
10
|
+
async function browseFiles(input) {
|
|
11
|
+
try {
|
|
12
|
+
const result = await (0, storage_1.getStorageBackend)().listWithPrefixes(input.prefix, input.pageSize || 100, input.continuationToken);
|
|
13
|
+
return { status: 200, data: result };
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
return { status: 500, error: err.message };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function getFileMetadata(input) {
|
|
20
|
+
try {
|
|
21
|
+
const metadata = await (0, storage_1.getStorageBackend)().getMetadata(input.filePath);
|
|
22
|
+
const contentType = (!metadata.content_type || metadata.content_type === 'application/octet-stream')
|
|
23
|
+
? (0, mime_1.mimeFromPath)(input.filePath)
|
|
24
|
+
: metadata.content_type;
|
|
25
|
+
return { status: 200, data: { path: input.filePath, ...metadata, content_type: contentType } };
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (err.message?.includes('not found') || err.name === 'NotFound') {
|
|
29
|
+
return { status: 404, error: 'File not found' };
|
|
30
|
+
}
|
|
31
|
+
return { status: 500, error: err.message };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function deleteFile(input) {
|
|
35
|
+
try {
|
|
36
|
+
const result = await (0, storage_1.getStorageBackend)().delete(input.filePath);
|
|
37
|
+
if (!result.deleted) {
|
|
38
|
+
return { status: 404, error: 'File not found' };
|
|
39
|
+
}
|
|
40
|
+
return { status: 200, data: { deleted: true, path: input.filePath } };
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
return { status: 500, error: err.message };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function generateSignedUrl(input) {
|
|
47
|
+
if (!ALLOWED_EXPIRY.includes(input.expiresIn)) {
|
|
48
|
+
return {
|
|
49
|
+
status: 400,
|
|
50
|
+
error: `expiresIn must be one of: ${ALLOWED_EXPIRY.join(', ')} (seconds)`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const url = await (0, storage_1.getStorageBackend)().getSignedUrl(input.filePath, input.expiresIn);
|
|
55
|
+
const expiresAt = new Date(Date.now() + input.expiresIn * 1000).toISOString();
|
|
56
|
+
return { status: 200, data: { url, expiresAt } };
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
return { status: 500, error: err.message };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { LTApiResult } from '../types/sdk';
|
|
2
|
+
export declare function listDomains(): Promise<LTApiResult>;
|
|
3
|
+
export declare function listEntries(input: {
|
|
4
|
+
domain: string;
|
|
5
|
+
tags?: string[];
|
|
6
|
+
search?: string;
|
|
7
|
+
limit?: number;
|
|
8
|
+
offset?: number;
|
|
9
|
+
}): Promise<LTApiResult>;
|
|
10
|
+
export declare function getEntry(input: {
|
|
11
|
+
domain: string;
|
|
12
|
+
key: string;
|
|
13
|
+
}): Promise<LTApiResult>;
|
|
14
|
+
export declare function storeEntry(input: {
|
|
15
|
+
domain: string;
|
|
16
|
+
key: string;
|
|
17
|
+
data: Record<string, any>;
|
|
18
|
+
tags?: string[];
|
|
19
|
+
replace?: boolean;
|
|
20
|
+
}): Promise<LTApiResult>;
|
|
21
|
+
export declare function setField(input: {
|
|
22
|
+
domain: string;
|
|
23
|
+
key: string;
|
|
24
|
+
path: string;
|
|
25
|
+
value: any;
|
|
26
|
+
tags?: string[];
|
|
27
|
+
}): Promise<LTApiResult>;
|
|
28
|
+
export declare function removeField(input: {
|
|
29
|
+
domain: string;
|
|
30
|
+
key: string;
|
|
31
|
+
path: string;
|
|
32
|
+
}): Promise<LTApiResult>;
|
|
33
|
+
export declare function deleteEntry(input: {
|
|
34
|
+
domain: string;
|
|
35
|
+
key: string;
|
|
36
|
+
}): Promise<LTApiResult>;
|
|
@@ -0,0 +1,112 @@
|
|
|
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.listDomains = listDomains;
|
|
37
|
+
exports.listEntries = listEntries;
|
|
38
|
+
exports.getEntry = getEntry;
|
|
39
|
+
exports.storeEntry = storeEntry;
|
|
40
|
+
exports.setField = setField;
|
|
41
|
+
exports.removeField = removeField;
|
|
42
|
+
exports.deleteEntry = deleteEntry;
|
|
43
|
+
const knowledgeActivity = __importStar(require("../system/activities/knowledge"));
|
|
44
|
+
async function listDomains() {
|
|
45
|
+
try {
|
|
46
|
+
const result = await knowledgeActivity.listDomains();
|
|
47
|
+
return { status: 200, data: result };
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
return { status: 500, error: err.message };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function listEntries(input) {
|
|
54
|
+
try {
|
|
55
|
+
const result = await knowledgeActivity.listKnowledge(input);
|
|
56
|
+
return { status: 200, data: result };
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
return { status: 500, error: err.message };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function getEntry(input) {
|
|
63
|
+
try {
|
|
64
|
+
const result = await knowledgeActivity.getKnowledge(input);
|
|
65
|
+
return { status: 200, data: result };
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return { status: 500, error: err.message };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async function storeEntry(input) {
|
|
72
|
+
try {
|
|
73
|
+
const result = await knowledgeActivity.storeKnowledge(input);
|
|
74
|
+
return { status: 200, data: result };
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return { status: 500, error: err.message };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function setField(input) {
|
|
81
|
+
try {
|
|
82
|
+
const result = await knowledgeActivity.setKnowledgeField(input);
|
|
83
|
+
return { status: 200, data: result };
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
return { status: 500, error: err.message };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function removeField(input) {
|
|
90
|
+
try {
|
|
91
|
+
const result = await knowledgeActivity.removeKnowledgeField(input);
|
|
92
|
+
if (!result.removed) {
|
|
93
|
+
return { status: 404, error: 'Field not found' };
|
|
94
|
+
}
|
|
95
|
+
return { status: 200, data: result };
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
return { status: 500, error: err.message };
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function deleteEntry(input) {
|
|
102
|
+
try {
|
|
103
|
+
const result = await knowledgeActivity.deleteKnowledge(input);
|
|
104
|
+
if (!result.deleted) {
|
|
105
|
+
return { status: 404, error: 'Entry not found' };
|
|
106
|
+
}
|
|
107
|
+
return { status: 200, data: { deleted: true, domain: input.domain, key: input.key } };
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return { status: 500, error: err.message };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.callMcpTool = exports.listMcpServerTools = exports.getCredentialStatus = exports.disconnectMcpServer = exports.connectMcpServer = exports.deleteMcpServer = exports.updateMcpServer = exports.getMcpServer = exports.testConnection = exports.createMcpServer = exports.listMcpServers = void 0;
|
|
4
|
+
var servers_1 = require("./servers");
|
|
5
|
+
Object.defineProperty(exports, "listMcpServers", { enumerable: true, get: function () { return servers_1.listMcpServers; } });
|
|
6
|
+
Object.defineProperty(exports, "createMcpServer", { enumerable: true, get: function () { return servers_1.createMcpServer; } });
|
|
7
|
+
Object.defineProperty(exports, "testConnection", { enumerable: true, get: function () { return servers_1.testConnection; } });
|
|
8
|
+
Object.defineProperty(exports, "getMcpServer", { enumerable: true, get: function () { return servers_1.getMcpServer; } });
|
|
9
|
+
Object.defineProperty(exports, "updateMcpServer", { enumerable: true, get: function () { return servers_1.updateMcpServer; } });
|
|
10
|
+
Object.defineProperty(exports, "deleteMcpServer", { enumerable: true, get: function () { return servers_1.deleteMcpServer; } });
|
|
11
|
+
Object.defineProperty(exports, "connectMcpServer", { enumerable: true, get: function () { return servers_1.connectMcpServer; } });
|
|
12
|
+
Object.defineProperty(exports, "disconnectMcpServer", { enumerable: true, get: function () { return servers_1.disconnectMcpServer; } });
|
|
13
|
+
Object.defineProperty(exports, "getCredentialStatus", { enumerable: true, get: function () { return servers_1.getCredentialStatus; } });
|
|
14
|
+
var tools_1 = require("./tools");
|
|
15
|
+
Object.defineProperty(exports, "listMcpServerTools", { enumerable: true, get: function () { return tools_1.listMcpServerTools; } });
|
|
16
|
+
Object.defineProperty(exports, "callMcpTool", { enumerable: true, get: function () { return tools_1.callMcpTool; } });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LTApiResult, LTApiAuth } from '
|
|
1
|
+
import type { LTApiResult, LTApiAuth } from '../../types/sdk';
|
|
2
2
|
/**
|
|
3
3
|
* List registered MCP servers with optional filtering and pagination.
|
|
4
4
|
*
|
|
@@ -126,35 +126,3 @@ export declare function disconnectMcpServer(input: {
|
|
|
126
126
|
export declare function getCredentialStatus(input: {
|
|
127
127
|
id: string;
|
|
128
128
|
}, auth?: LTApiAuth): Promise<LTApiResult>;
|
|
129
|
-
/**
|
|
130
|
-
* List all tools exposed by a connected MCP server.
|
|
131
|
-
*
|
|
132
|
-
* Requires the MCP adapter to be registered and the server to be connected.
|
|
133
|
-
*
|
|
134
|
-
* @param input.id — the MCP server identifier
|
|
135
|
-
* @returns `{ status: 200, data: { tools } }` array of tool descriptors
|
|
136
|
-
*/
|
|
137
|
-
export declare function listMcpServerTools(input: {
|
|
138
|
-
id: string;
|
|
139
|
-
}): Promise<LTApiResult>;
|
|
140
|
-
/**
|
|
141
|
-
* Invoke a specific tool on a connected MCP server.
|
|
142
|
-
*
|
|
143
|
-
* Passes the tool arguments and an optional auth context (derived from
|
|
144
|
-
* `execute_as` or the authenticated user) to the MCP adapter. Returns
|
|
145
|
-
* 422 with `missing_credential` if the tool requires a credential the
|
|
146
|
-
* user has not registered.
|
|
147
|
-
*
|
|
148
|
-
* @param input.id — the MCP server identifier
|
|
149
|
-
* @param input.toolName — name of the tool to invoke
|
|
150
|
-
* @param input.arguments — key-value arguments to pass to the tool
|
|
151
|
-
* @param input.execute_as — optional user ID to impersonate for the tool call
|
|
152
|
-
* @param auth — authenticated user context
|
|
153
|
-
* @returns `{ status: 200, data: { result } }` the tool execution result
|
|
154
|
-
*/
|
|
155
|
-
export declare function callMcpTool(input: {
|
|
156
|
-
id: string;
|
|
157
|
-
toolName: string;
|
|
158
|
-
arguments?: Record<string, any>;
|
|
159
|
-
execute_as?: string;
|
|
160
|
-
}, auth?: LTApiAuth): Promise<LTApiResult>;
|
|
@@ -42,10 +42,8 @@ exports.deleteMcpServer = deleteMcpServer;
|
|
|
42
42
|
exports.connectMcpServer = connectMcpServer;
|
|
43
43
|
exports.disconnectMcpServer = disconnectMcpServer;
|
|
44
44
|
exports.getCredentialStatus = getCredentialStatus;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const mcpDbService = __importStar(require("../services/mcp/db"));
|
|
48
|
-
const mcp_1 = require("../services/mcp");
|
|
45
|
+
const mcpDbService = __importStar(require("../../services/mcp/db"));
|
|
46
|
+
const mcp_1 = require("../../services/mcp");
|
|
49
47
|
/**
|
|
50
48
|
* List registered MCP servers with optional filtering and pagination.
|
|
51
49
|
*
|
|
@@ -113,7 +111,7 @@ async function testConnection(input) {
|
|
|
113
111
|
if (!input.transport_type || !input.transport_config) {
|
|
114
112
|
return { status: 400, error: 'transport_type and transport_config are required' };
|
|
115
113
|
}
|
|
116
|
-
const { testConnection: testConn } = await Promise.resolve().then(() => __importStar(require('
|
|
114
|
+
const { testConnection: testConn } = await Promise.resolve().then(() => __importStar(require('../../services/mcp/client/connection')));
|
|
117
115
|
const result = await testConn(input.transport_type, input.transport_config);
|
|
118
116
|
return { status: 200, data: result };
|
|
119
117
|
}
|
|
@@ -241,7 +239,7 @@ async function getCredentialStatus(input, auth) {
|
|
|
241
239
|
const registered = [];
|
|
242
240
|
const missing = [];
|
|
243
241
|
if (auth?.userId && required.length > 0) {
|
|
244
|
-
const { resolveCredential } = await Promise.resolve().then(() => __importStar(require('
|
|
242
|
+
const { resolveCredential } = await Promise.resolve().then(() => __importStar(require('../../services/iam/credentials')));
|
|
245
243
|
for (const provider of required) {
|
|
246
244
|
const cred = await resolveCredential({ id: auth.userId, type: 'user', roles: [] }, provider);
|
|
247
245
|
if (cred)
|
|
@@ -259,62 +257,3 @@ async function getCredentialStatus(input, auth) {
|
|
|
259
257
|
return { status: 500, error: err.message };
|
|
260
258
|
}
|
|
261
259
|
}
|
|
262
|
-
/**
|
|
263
|
-
* List all tools exposed by a connected MCP server.
|
|
264
|
-
*
|
|
265
|
-
* Requires the MCP adapter to be registered and the server to be connected.
|
|
266
|
-
*
|
|
267
|
-
* @param input.id — the MCP server identifier
|
|
268
|
-
* @returns `{ status: 200, data: { tools } }` array of tool descriptors
|
|
269
|
-
*/
|
|
270
|
-
async function listMcpServerTools(input) {
|
|
271
|
-
try {
|
|
272
|
-
const adapter = mcp_1.mcpRegistry.current;
|
|
273
|
-
if (!adapter) {
|
|
274
|
-
return { status: 400, error: 'MCP adapter not registered' };
|
|
275
|
-
}
|
|
276
|
-
const tools = await adapter.listTools(input.id);
|
|
277
|
-
return { status: 200, data: { tools } };
|
|
278
|
-
}
|
|
279
|
-
catch (err) {
|
|
280
|
-
return { status: 500, error: err.message };
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Invoke a specific tool on a connected MCP server.
|
|
285
|
-
*
|
|
286
|
-
* Passes the tool arguments and an optional auth context (derived from
|
|
287
|
-
* `execute_as` or the authenticated user) to the MCP adapter. Returns
|
|
288
|
-
* 422 with `missing_credential` if the tool requires a credential the
|
|
289
|
-
* user has not registered.
|
|
290
|
-
*
|
|
291
|
-
* @param input.id — the MCP server identifier
|
|
292
|
-
* @param input.toolName — name of the tool to invoke
|
|
293
|
-
* @param input.arguments — key-value arguments to pass to the tool
|
|
294
|
-
* @param input.execute_as — optional user ID to impersonate for the tool call
|
|
295
|
-
* @param auth — authenticated user context
|
|
296
|
-
* @returns `{ status: 200, data: { result } }` the tool execution result
|
|
297
|
-
*/
|
|
298
|
-
async function callMcpTool(input, auth) {
|
|
299
|
-
try {
|
|
300
|
-
const adapter = mcp_1.mcpRegistry.current;
|
|
301
|
-
if (!adapter) {
|
|
302
|
-
return { status: 400, error: 'MCP adapter not registered' };
|
|
303
|
-
}
|
|
304
|
-
const authContext = (input.execute_as || auth?.userId)
|
|
305
|
-
? { userId: input.execute_as || auth?.userId }
|
|
306
|
-
: undefined;
|
|
307
|
-
const result = await adapter.callTool(input.id, input.toolName, input.arguments || {}, authContext);
|
|
308
|
-
return { status: 200, data: { result } };
|
|
309
|
-
}
|
|
310
|
-
catch (err) {
|
|
311
|
-
if (err.name === 'MissingCredentialError') {
|
|
312
|
-
return {
|
|
313
|
-
status: 422,
|
|
314
|
-
error: 'missing_credential',
|
|
315
|
-
...{ provider: err.provider, message: err.message },
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
return { status: 500, error: err.message };
|
|
319
|
-
}
|
|
320
|
-
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { LTApiResult, LTApiAuth } from '../../types/sdk';
|
|
2
|
+
/**
|
|
3
|
+
* List all tools exposed by a connected MCP server.
|
|
4
|
+
*
|
|
5
|
+
* Requires the MCP adapter to be registered and the server to be connected.
|
|
6
|
+
*
|
|
7
|
+
* @param input.id — the MCP server identifier
|
|
8
|
+
* @returns `{ status: 200, data: { tools } }` array of tool descriptors
|
|
9
|
+
*/
|
|
10
|
+
export declare function listMcpServerTools(input: {
|
|
11
|
+
id: string;
|
|
12
|
+
}): Promise<LTApiResult>;
|
|
13
|
+
/**
|
|
14
|
+
* Invoke a specific tool on a connected MCP server.
|
|
15
|
+
*
|
|
16
|
+
* Passes the tool arguments and an optional auth context (derived from
|
|
17
|
+
* `execute_as` or the authenticated user) to the MCP adapter. Returns
|
|
18
|
+
* 422 with `missing_credential` if the tool requires a credential the
|
|
19
|
+
* user has not registered.
|
|
20
|
+
*
|
|
21
|
+
* @param input.id — the MCP server identifier
|
|
22
|
+
* @param input.toolName — name of the tool to invoke
|
|
23
|
+
* @param input.arguments — key-value arguments to pass to the tool
|
|
24
|
+
* @param input.execute_as — optional user ID to impersonate for the tool call
|
|
25
|
+
* @param auth — authenticated user context
|
|
26
|
+
* @returns `{ status: 200, data: { result } }` the tool execution result
|
|
27
|
+
*/
|
|
28
|
+
export declare function callMcpTool(input: {
|
|
29
|
+
id: string;
|
|
30
|
+
toolName: string;
|
|
31
|
+
arguments?: Record<string, any>;
|
|
32
|
+
execute_as?: string;
|
|
33
|
+
}, auth?: LTApiAuth): Promise<LTApiResult>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listMcpServerTools = listMcpServerTools;
|
|
4
|
+
exports.callMcpTool = callMcpTool;
|
|
5
|
+
const mcp_1 = require("../../services/mcp");
|
|
6
|
+
/**
|
|
7
|
+
* List all tools exposed by a connected MCP server.
|
|
8
|
+
*
|
|
9
|
+
* Requires the MCP adapter to be registered and the server to be connected.
|
|
10
|
+
*
|
|
11
|
+
* @param input.id — the MCP server identifier
|
|
12
|
+
* @returns `{ status: 200, data: { tools } }` array of tool descriptors
|
|
13
|
+
*/
|
|
14
|
+
async function listMcpServerTools(input) {
|
|
15
|
+
try {
|
|
16
|
+
const adapter = mcp_1.mcpRegistry.current;
|
|
17
|
+
if (!adapter) {
|
|
18
|
+
return { status: 400, error: 'MCP adapter not registered' };
|
|
19
|
+
}
|
|
20
|
+
const tools = await adapter.listTools(input.id);
|
|
21
|
+
return { status: 200, data: { tools } };
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
return { status: 500, error: err.message };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Invoke a specific tool on a connected MCP server.
|
|
29
|
+
*
|
|
30
|
+
* Passes the tool arguments and an optional auth context (derived from
|
|
31
|
+
* `execute_as` or the authenticated user) to the MCP adapter. Returns
|
|
32
|
+
* 422 with `missing_credential` if the tool requires a credential the
|
|
33
|
+
* user has not registered.
|
|
34
|
+
*
|
|
35
|
+
* @param input.id — the MCP server identifier
|
|
36
|
+
* @param input.toolName — name of the tool to invoke
|
|
37
|
+
* @param input.arguments — key-value arguments to pass to the tool
|
|
38
|
+
* @param input.execute_as — optional user ID to impersonate for the tool call
|
|
39
|
+
* @param auth — authenticated user context
|
|
40
|
+
* @returns `{ status: 200, data: { result } }` the tool execution result
|
|
41
|
+
*/
|
|
42
|
+
async function callMcpTool(input, auth) {
|
|
43
|
+
try {
|
|
44
|
+
const adapter = mcp_1.mcpRegistry.current;
|
|
45
|
+
if (!adapter) {
|
|
46
|
+
return { status: 400, error: 'MCP adapter not registered' };
|
|
47
|
+
}
|
|
48
|
+
const authContext = (input.execute_as || auth?.userId)
|
|
49
|
+
? { userId: input.execute_as || auth?.userId }
|
|
50
|
+
: undefined;
|
|
51
|
+
const result = await adapter.callTool(input.id, input.toolName, input.arguments || {}, authContext);
|
|
52
|
+
return { status: 200, data: { result } };
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
if (err.name === 'MissingCredentialError') {
|
|
56
|
+
return {
|
|
57
|
+
status: 422,
|
|
58
|
+
error: 'missing_credential',
|
|
59
|
+
...{ provider: err.provider, message: err.message },
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return { status: 500, error: err.message };
|
|
63
|
+
}
|
|
64
|
+
}
|
package/build/api/mcp-runs.d.ts
CHANGED
package/build/api/mcp-runs.js
CHANGED
package/build/api/settings.js
CHANGED
|
@@ -18,7 +18,12 @@ async function getSettings() {
|
|
|
18
18
|
try {
|
|
19
19
|
const hasSocketIO = !!events_1.eventRegistry.getAdapter(socketio_1.SocketIOEventAdapter);
|
|
20
20
|
const hasNats = !!events_1.eventRegistry.getAdapter(nats_1.NatsEventAdapter);
|
|
21
|
-
|
|
21
|
+
// Dashboard transport: Socket.IO is the default (works in-process, zero config).
|
|
22
|
+
// NATS is only reported when explicitly opted in via EVENT_TRANSPORT=nats,
|
|
23
|
+
// which a multi-container deployment sets when it wants the dashboard to
|
|
24
|
+
// connect via NATS instead of Socket.IO.
|
|
25
|
+
const forceNats = process.env.EVENT_TRANSPORT === 'nats';
|
|
26
|
+
const transport = forceNats && hasNats ? 'nats' : hasSocketIO ? 'socketio' : hasNats ? 'nats' : 'none';
|
|
22
27
|
return {
|
|
23
28
|
status: 200,
|
|
24
29
|
data: {
|
|
@@ -33,6 +38,9 @@ async function getSettings() {
|
|
|
33
38
|
natsWsUrl: hasNats
|
|
34
39
|
? (process.env.VITE_NATS_WS_URL || process.env.NATS_WS_URL || null)
|
|
35
40
|
: null,
|
|
41
|
+
natsToken: hasNats
|
|
42
|
+
? (process.env.NATS_TOKEN || null)
|
|
43
|
+
: null,
|
|
36
44
|
},
|
|
37
45
|
},
|
|
38
46
|
};
|
|
@@ -75,3 +75,14 @@ export declare function buildWorkflowSet(input: {
|
|
|
75
75
|
export declare function deployWorkflowSet(input: {
|
|
76
76
|
id: string;
|
|
77
77
|
}): Promise<LTApiResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Add additional workflows to an existing set.
|
|
80
|
+
*
|
|
81
|
+
* Invokes the planner with the new specification and existing set context.
|
|
82
|
+
* The planner appends new plan items (offset build_order) and builds them
|
|
83
|
+
* with sibling schema awareness so composition wiring works.
|
|
84
|
+
*/
|
|
85
|
+
export declare function addToWorkflowSet(input: {
|
|
86
|
+
id: string;
|
|
87
|
+
specification: string;
|
|
88
|
+
}, auth?: LTApiAuth): Promise<LTApiResult>;
|