@hotmeshio/long-tail 0.23.1 → 0.24.0
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/build/adapters/express.d.ts +9 -1
- package/build/adapters/express.js +32 -41
- package/build/api/auth-sso.d.ts +1 -1
- package/build/api/bot-accounts.d.ts +2 -0
- package/build/api/bot-accounts.js +4 -0
- package/build/api/capabilities.d.ts +7 -2
- package/build/api/capabilities.js +13 -2
- package/build/api/escalations/analytics.js +5 -0
- package/build/api/escalations/bulk.d.ts +2 -0
- package/build/api/escalations/bulk.js +9 -4
- package/build/api/escalations/helpers.d.ts +5 -0
- package/build/api/escalations/helpers.js +7 -0
- package/build/api/escalations/index.d.ts +1 -0
- package/build/api/escalations/index.js +4 -1
- package/build/api/escalations/list.d.ts +5 -0
- package/build/api/escalations/list.js +19 -5
- package/build/api/escalations/metadata.js +3 -0
- package/build/api/escalations/related.d.ts +18 -0
- package/build/api/escalations/related.js +205 -0
- package/build/api/escalations/single.d.ts +3 -2
- package/build/api/escalations/single.js +8 -3
- package/build/api/mcp/tools.d.ts +12 -0
- package/build/api/mcp/tools.js +113 -9
- package/build/api/roles.js +4 -0
- package/build/api/scan-codes/choice.js +31 -7
- package/build/api/scan-codes/present.js +5 -1
- package/build/api/settings.d.ts +1 -1
- package/build/api/settings.js +12 -1
- package/build/api/tasks.d.ts +3 -3
- package/build/api/tasks.js +30 -7
- package/build/api/workflows/input-lookups.js +1 -1
- package/build/api/workflows/invocable.js +2 -2
- package/build/api/workflows/invocation.js +1 -1
- package/build/api/yaml-workflows/deploy.d.ts +10 -2
- package/build/api/yaml-workflows/deploy.js +42 -2
- package/build/lib/db/schemas/038_oauth_server.sql +46 -0
- package/build/lib/events/browser-view.d.ts +15 -0
- package/build/lib/events/browser-view.js +101 -0
- package/build/lib/events/nats-ws-filter.d.ts +29 -0
- package/build/lib/events/nats-ws-filter.js +94 -0
- package/build/lib/events/nats-ws-proxy.d.ts +2 -0
- package/build/lib/events/nats-ws-proxy.js +39 -5
- package/build/lib/events/nats-ws-server-filter.d.ts +16 -0
- package/build/lib/events/nats-ws-server-filter.js +56 -0
- package/build/lib/events/nats-ws-ticket.d.ts +10 -0
- package/build/lib/events/nats-ws-ticket.js +42 -0
- package/build/lib/events/socketio.d.ts +10 -1
- package/build/lib/events/socketio.js +10 -3
- package/build/lib/http/index.d.ts +27 -0
- package/build/lib/http/index.js +55 -0
- package/build/modules/auth.d.ts +15 -24
- package/build/modules/auth.js +43 -126
- package/build/modules/capabilities.d.ts +62 -0
- package/build/modules/capabilities.js +188 -0
- package/build/modules/config.d.ts +14 -0
- package/build/modules/config.js +20 -0
- package/build/modules/defaults.d.ts +10 -0
- package/build/modules/defaults.js +12 -1
- package/build/modules/display.d.ts +15 -0
- package/build/modules/display.js +27 -0
- package/build/modules/mcp-auth.d.ts +11 -0
- package/build/modules/mcp-auth.js +56 -0
- package/build/modules/oauth-server.d.ts +18 -0
- package/build/modules/oauth-server.js +40 -0
- package/build/routes/agents.js +46 -14
- package/build/routes/announcements.js +2 -2
- package/build/routes/auth-sso.js +2 -2
- package/build/routes/auth.js +2 -2
- package/build/routes/bot-accounts.js +26 -3
- package/build/routes/capabilities.js +4 -4
- package/build/routes/controlplane.js +2 -2
- package/build/routes/dba.js +2 -2
- package/build/routes/delegation.js +2 -2
- package/build/routes/diagnostics.js +2 -2
- package/build/routes/docs.js +2 -2
- package/build/routes/domain.js +2 -2
- package/build/routes/escalations/accumulate.d.ts +1 -1
- package/build/routes/escalations/acting.d.ts +1 -1
- package/build/routes/escalations/analytics.d.ts +1 -1
- package/build/routes/escalations/bulk.d.ts +1 -1
- package/build/routes/escalations/facets.d.ts +1 -1
- package/build/routes/escalations/index.js +5 -2
- package/build/routes/escalations/list.d.ts +1 -1
- package/build/routes/escalations/list.js +2 -0
- package/build/routes/escalations/metadata.d.ts +1 -1
- package/build/routes/escalations/related.d.ts +7 -0
- package/build/routes/escalations/related.js +60 -0
- package/build/routes/escalations/resolve.d.ts +1 -1
- package/build/routes/escalations/single.d.ts +1 -1
- package/build/routes/escalations/single.js +1 -1
- package/build/routes/exports.js +14 -13
- package/build/routes/file-browser.js +9 -8
- package/build/routes/files.js +2 -2
- package/build/routes/index.js +4 -2
- package/build/routes/insight.js +5 -4
- package/build/routes/knowledge.js +2 -2
- package/build/routes/maintenance.js +2 -2
- package/build/routes/mcp-endpoint.d.ts +3 -1
- package/build/routes/mcp-endpoint.js +18 -8
- package/build/routes/mcp.js +35 -15
- package/build/routes/me.js +2 -2
- package/build/routes/namespaces.js +4 -3
- package/build/routes/nats-credentials.js +27 -3
- package/build/routes/oauth-server/authorize.d.ts +2 -0
- package/build/routes/oauth-server/authorize.js +108 -0
- package/build/routes/oauth-server/grants.d.ts +2 -0
- package/build/routes/oauth-server/grants.js +35 -0
- package/build/routes/oauth-server/index.d.ts +8 -0
- package/build/routes/oauth-server/index.js +52 -0
- package/build/routes/oauth-server/registration.d.ts +2 -0
- package/build/routes/oauth-server/registration.js +38 -0
- package/build/routes/oauth-server/token.d.ts +2 -0
- package/build/routes/oauth-server/token.js +100 -0
- package/build/routes/oauth-well-known.d.ts +8 -0
- package/build/routes/oauth-well-known.js +31 -0
- package/build/routes/oauth.js +2 -2
- package/build/routes/overview.js +2 -2
- package/build/routes/personas.js +2 -2
- package/build/routes/pipelines.js +6 -5
- package/build/routes/roles.js +2 -2
- package/build/routes/scan-codes.js +2 -2
- package/build/routes/settings.js +2 -2
- package/build/routes/tasks.js +5 -5
- package/build/routes/topics.js +21 -9
- package/build/routes/users.js +25 -22
- package/build/routes/workflow-sets.js +13 -12
- package/build/routes/workflows/config.js +15 -2
- package/build/routes/workflows/discovery.js +2 -2
- package/build/routes/workflows/index.js +2 -2
- package/build/routes/workflows/invocation.js +11 -10
- package/build/routes/yaml-workflows/cron.js +19 -6
- package/build/routes/yaml-workflows/crud.js +13 -12
- package/build/routes/yaml-workflows/deployment.js +11 -10
- package/build/routes/yaml-workflows/index.js +2 -2
- package/build/routes/yaml-workflows/versions.js +2 -2
- package/build/scripts/consolidation-sim.d.ts +25 -0
- package/build/scripts/consolidation-sim.js +141 -0
- package/build/sdk/index.d.ts +12 -0
- package/build/sdk/index.js +2 -0
- package/build/services/agent/authority.d.ts +14 -0
- package/build/services/agent/authority.js +53 -0
- package/build/services/auth/bot-api-key.d.ts +2 -0
- package/build/services/auth/bot-api-key.js +10 -0
- package/build/services/auth/oauth-server/access-token.d.ts +36 -0
- package/build/services/auth/oauth-server/access-token.js +80 -0
- package/build/services/auth/oauth-server/authorization.d.ts +47 -0
- package/build/services/auth/oauth-server/authorization.js +54 -0
- package/build/services/auth/oauth-server/constants.d.ts +11 -0
- package/build/services/auth/oauth-server/constants.js +16 -0
- package/build/services/auth/oauth-server/index.d.ts +3 -0
- package/build/services/auth/oauth-server/index.js +26 -0
- package/build/services/auth/oauth-server/metadata.d.ts +21 -0
- package/build/services/auth/oauth-server/metadata.js +53 -0
- package/build/services/auth/oauth-server/registration.d.ts +42 -0
- package/build/services/auth/oauth-server/registration.js +134 -0
- package/build/services/auth/oauth-server/sql.d.ts +34 -0
- package/build/services/auth/oauth-server/sql.js +123 -0
- package/build/services/auth/oauth-server/store.d.ts +74 -0
- package/build/services/auth/oauth-server/store.js +151 -0
- package/build/services/auth/sql.d.ts +1 -0
- package/build/services/auth/sql.js +3 -1
- package/build/services/escalation/grouped-list.d.ts +19 -0
- package/build/services/escalation/grouped-list.js +54 -0
- package/build/services/escalation/index.d.ts +4 -0
- package/build/services/escalation/index.js +9 -1
- package/build/services/escalation/queries.d.ts +17 -13
- package/build/services/escalation/queries.js +38 -42
- package/build/services/escalation/read-scope-sql.d.ts +13 -0
- package/build/services/escalation/read-scope-sql.js +19 -0
- package/build/services/escalation/related.d.ts +58 -0
- package/build/services/escalation/related.js +196 -0
- package/build/services/export/index.d.ts +10 -0
- package/build/services/export/index.js +27 -0
- package/build/services/invocation-access.d.ts +25 -4
- package/build/services/invocation-access.js +39 -7
- package/build/services/mcp/client/connection-dispatch.d.ts +6 -1
- package/build/services/mcp/client/connection-dispatch.js +3 -2
- package/build/services/mcp/client/connection-lifecycle.d.ts +10 -2
- package/build/services/mcp/client/connection-lifecycle.js +45 -7
- package/build/services/mcp/client/connection-test.js +2 -6
- package/build/services/mcp/client/connection.d.ts +1 -1
- package/build/services/mcp/client/connection.js +3 -1
- package/build/services/mcp/client/index.d.ts +2 -2
- package/build/services/mcp/client/index.js +4 -1
- package/build/services/mcp/client/network-transport.d.ts +12 -0
- package/build/services/mcp/client/network-transport.js +20 -0
- package/build/services/mcp/client/tools.d.ts +13 -0
- package/build/services/mcp/client/tools.js +18 -0
- package/build/services/mcp/db-server/index.js +2 -1
- package/build/services/mcp/external-server.d.ts +9 -4
- package/build/services/mcp/external-server.js +34 -11
- package/build/services/mcp/playwright-server/index.js +2 -1
- package/build/services/mcp/registered-tools.d.ts +3 -0
- package/build/services/mcp/registered-tools.js +7 -0
- package/build/services/mcp/server-lifecycle.js +2 -1
- package/build/services/role/index.js +6 -0
- package/build/services/role/seed.js +4 -0
- package/build/services/scan-code/validate-facts.d.ts +1 -1
- package/build/services/scan-code/validate-facts.js +12 -1
- package/build/services/workflow-invocation.d.ts +16 -3
- package/build/services/workflow-invocation.js +42 -10
- package/build/services/yaml-workflow/deployer.d.ts +10 -2
- package/build/services/yaml-workflow/deployer.js +17 -5
- package/build/services/yaml-workflow/invoke.js +27 -26
- package/build/shared/form-validation/x-lt-scan.d.ts +8 -0
- package/build/shared/form-validation/x-lt-scan.js +20 -1
- package/build/shared/list-schema/index.d.ts +3 -0
- package/build/shared/list-schema/index.js +27 -0
- package/build/shared/list-schema/template.d.ts +14 -0
- package/build/shared/list-schema/template.js +85 -0
- package/build/shared/list-schema/types.d.ts +154 -0
- package/build/shared/list-schema/types.js +55 -0
- package/build/shared/list-schema/validate.d.ts +12 -0
- package/build/shared/list-schema/validate.js +204 -0
- package/build/shared/roles/segment.d.ts +22 -0
- package/build/shared/roles/segment.js +42 -0
- package/build/start/adapters.js +2 -0
- package/build/start/config.js +7 -0
- package/build/start/index.js +4 -22
- package/build/start/server.d.ts +6 -4
- package/build/start/server.js +11 -35
- package/build/start/socket-auth.js +2 -1
- package/build/start/workers.js +1 -1
- package/build/system/mcp-servers/admin/agent-subscriptions.js +24 -1
- package/build/system/mcp-servers/admin/agents.js +25 -2
- package/build/system/mcp-servers/admin/announcements.js +3 -2
- package/build/system/mcp-servers/admin/bot-accounts.js +37 -5
- package/build/system/mcp-servers/admin/escalations.d.ts +3 -5
- package/build/system/mcp-servers/admin/escalations.js +74 -70
- package/build/system/mcp-servers/admin/exports.js +7 -1
- package/build/system/mcp-servers/admin/index.js +24 -25
- package/build/system/mcp-servers/admin/overview.d.ts +2 -2
- package/build/system/mcp-servers/admin/run-read.d.ts +2 -0
- package/build/system/mcp-servers/admin/run-read.js +5 -0
- package/build/system/mcp-servers/admin/scan-codes.d.ts +2 -2
- package/build/system/mcp-servers/admin/scan-codes.js +5 -11
- package/build/system/mcp-servers/admin/schemas.d.ts +20 -20
- package/build/system/mcp-servers/admin/tasks.js +7 -2
- package/build/system/mcp-servers/admin/users.js +39 -4
- package/build/system/mcp-servers/admin/workflow-config.js +12 -1
- package/build/system/mcp-servers/admin/workflows.js +27 -5
- package/build/system/mcp-servers/admin/yaml-workflows.js +7 -1
- package/build/system/mcp-servers/caller-auth.d.ts +18 -0
- package/build/system/mcp-servers/caller-auth.js +29 -0
- package/build/system/mcp-servers/claude-code.js +2 -1
- package/build/system/mcp-servers/db-query/index.js +2 -1
- package/build/system/mcp-servers/file-storage.js +2 -1
- package/build/system/mcp-servers/http-fetch.js +2 -1
- package/build/system/mcp-servers/human-queue.js +7 -3
- package/build/system/mcp-servers/oauth.js +31 -4
- package/build/system/mcp-servers/schema-exchange.js +2 -1
- package/build/system/mcp-servers/vision.d.ts +1 -0
- package/build/system/mcp-servers/vision.js +17 -7
- package/build/system/seed/tool-manifests-admin.d.ts +2 -17985
- package/build/system/seed/tool-manifests-admin.js +121 -121
- package/build/system/seed/tool-manifests-data.d.ts +8 -374
- package/build/system/seed/tool-manifests-data.js +22 -4
- package/build/system/seed/tool-manifests-escalation.d.ts +2 -352
- package/build/system/seed/tool-manifests-escalation.js +11 -1
- package/build/system/seed/tool-manifests-events.d.ts +2 -116
- package/build/system/seed/tool-manifests-events.js +6 -2
- package/build/system/seed/tool-manifests-knowledge.d.ts +2 -221
- package/build/system/seed/tool-manifests-knowledge.js +41 -1
- package/build/system/seed/tool-manifests-workflows.d.ts +2 -71
- package/build/system/seed/tool-manifests-workflows.js +3 -1
- package/build/system/workflows/shared/principal-tools.d.ts +20 -0
- package/build/system/workflows/shared/principal-tools.js +64 -0
- package/build/system/workflows/shared/tool-executor.js +21 -11
- package/build/system/workflows/shared/tool-loader.js +8 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/auth.d.ts +1 -1
- package/build/types/capability.d.ts +14 -0
- package/build/types/capability.js +2 -0
- package/build/types/events.d.ts +1 -1
- package/build/types/index.d.ts +5 -3
- package/build/types/index.js +2 -1
- package/build/types/mcp.d.ts +3 -1
- package/build/types/oauth-server.d.ts +52 -0
- package/build/types/oauth-server.js +2 -0
- package/build/types/scan-code/constants.d.ts +7 -0
- package/build/types/scan-code/constants.js +7 -1
- package/build/types/scan-code/response.d.ts +3 -2
- package/build/types/scan-code/rule.d.ts +6 -1
- package/build/types/startup.d.ts +23 -7
- package/build/vitest.config.js +2 -1
- package/build/vitest.fast.config.d.ts +2 -0
- package/build/vitest.fast.config.js +20 -0
- package/build/vitest.llm.config.d.ts +2 -0
- package/build/vitest.llm.config.js +16 -0
- package/dashboard/dist/assets/{AdminDashboard-DKrqLGjn.js → AdminDashboard-B3mkMIOT.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DKrqLGjn.js.map → AdminDashboard-B3mkMIOT.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-BoQhRW6U.js → AgentConfigPage-CQj2B678.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-BoQhRW6U.js.map → AgentConfigPage-CQj2B678.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-DZhzuZmO.js → AgentDetailPage-CzrD8JJI.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-DZhzuZmO.js.map → AgentDetailPage-CzrD8JJI.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-5MynmbWX.js → AgentsPage-jg2OFwyW.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-5MynmbWX.js.map → AgentsPage-jg2OFwyW.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-IS28XBRe.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-IS28XBRe.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-C3LR6Sqy.js → BotPicker-DvEJFpwS.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-C3LR6Sqy.js.map → BotPicker-DvEJFpwS.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-COjoOIIH.js → BulkAssignModal-BoQCi-YC.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-COjoOIIH.js.map → BulkAssignModal-BoQCi-YC.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-kwlrcb_t.js +2 -0
- package/dashboard/dist/assets/{CapabilitiesPage-DKxLvOfB.js.map → CapabilitiesPage-kwlrcb_t.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-Cz5sRx-r.js → CollapsibleSection-UMIV4KIj.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-Cz5sRx-r.js.map → CollapsibleSection-UMIV4KIj.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js +2 -0
- package/dashboard/dist/assets/ConfirmDeleteModal-C5puwMg7.js.map +1 -0
- package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js +2 -0
- package/dashboard/dist/assets/ConnectedAppsPage-drZa65kP.js.map +1 -0
- package/dashboard/dist/assets/CountdownTimer-LG03dVgR.js +2 -0
- package/dashboard/dist/assets/CountdownTimer-LG03dVgR.js.map +1 -0
- package/dashboard/dist/assets/{CredentialsPage-DhiHiPsG.js → CredentialsPage-CaFQ6vLb.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-DhiHiPsG.js.map → CredentialsPage-CaFQ6vLb.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-C9SkawB-.js → CronLabel-Co5j7tzW.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-C9SkawB-.js.map → CronLabel-Co5j7tzW.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-FjFhx0SE.js +2 -0
- package/dashboard/dist/assets/DataTable-FjFhx0SE.js.map +1 -0
- package/dashboard/dist/assets/{ElapsedCell-BeK1SUDK.js → ElapsedCell-WJyE9G0T.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-BeK1SUDK.js.map → ElapsedCell-WJyE9G0T.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-BThdefKj.js → EntityTimelinePanel-CDFFfX9d.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-BThdefKj.js.map → EntityTimelinePanel-CDFFfX9d.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-DlDIYb-p.js → EscalationListSchemaPage-CMrUlaKI.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-DlDIYb-p.js.map → EscalationListSchemaPage-CMrUlaKI.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-CQt-Embr.js → EscalationSchemaPage-Dx2Lyfrz.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-CQt-Embr.js.map → EscalationSchemaPage-Dx2Lyfrz.js.map} +1 -1
- package/dashboard/dist/assets/EscalationTimeline-d3nvshOk.js +2 -0
- package/dashboard/dist/assets/EscalationTimeline-d3nvshOk.js.map +1 -0
- package/dashboard/dist/assets/{EscalationTitleSelect-Dewrv8wX.js → EscalationTitleSelect-DWQieOM9.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-Dewrv8wX.js.map → EscalationTitleSelect-DWQieOM9.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BzH-Y-5x.js → EscalationsOverview-BX8Cpi0X.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BzH-Y-5x.js.map → EscalationsOverview-BX8Cpi0X.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-C97m6IZv.js → EventTable-D1-ITVXS.js} +2 -2
- package/dashboard/dist/assets/{EventTable-C97m6IZv.js.map → EventTable-D1-ITVXS.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-D-6xVHIw.js → FilterBar-ABC9ctin.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-D-6xVHIw.js.map → FilterBar-ABC9ctin.js.map} +1 -1
- package/dashboard/dist/assets/FormattedValue-k27T4bG7.js +2 -0
- package/dashboard/dist/assets/FormattedValue-k27T4bG7.js.map +1 -0
- package/dashboard/dist/assets/{GraphInvokePage-Bwi8EF9Y.js → GraphInvokePage-DKUErxWc.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-Bwi8EF9Y.js.map → GraphInvokePage-DKUErxWc.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-Z_Q03C0z.js → HomePage-C6u9dIpR.js} +2 -2
- package/dashboard/dist/assets/{HomePage-Z_Q03C0z.js.map → HomePage-C6u9dIpR.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-_jWTw5no.js → ListToolbar-gA5rFzkz.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-_jWTw5no.js.map → ListToolbar-gA5rFzkz.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-CjqTuP0N.js → McpOverview-BOPo3J_i.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-CjqTuP0N.js.map → McpOverview-BOPo3J_i.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-leCsje1U.js → McpQueryDetailPage-BRVVi0Zh.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-leCsje1U.js.map → McpQueryDetailPage-BRVVi0Zh.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-C-PyXYX4.js → McpQueryPage-Dmbb6SAc.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-C-PyXYX4.js.map → McpQueryPage-Dmbb6SAc.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-JDrr3uUQ.js → McpRunDetailPage-bMXNO-6V.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-JDrr3uUQ.js.map → McpRunDetailPage-bMXNO-6V.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-DERXQLgZ.js → McpRunsPage-Bi9AMWja.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-DERXQLgZ.js.map → McpRunsPage-Bi9AMWja.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-B2DA7n9m.js → OperationsPage-CvR74ZUJ.js} +3 -3
- package/dashboard/dist/assets/OperationsPage-CvR74ZUJ.js.map +1 -0
- package/dashboard/dist/assets/OperatorDashboard-DctmZw10.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-DctmZw10.js.map +1 -0
- package/dashboard/dist/assets/{PersonaDetailPage-ChXwJ6u5.js → PersonaDetailPage-Ubqm2rQH.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-ChXwJ6u5.js.map → PersonaDetailPage-Ubqm2rQH.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-BFFxncSE.js → PersonasPage-BpFL2rpo.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-BFFxncSE.js.map → PersonasPage-BpFL2rpo.js.map} +1 -1
- package/dashboard/dist/assets/PortalPage-Dfc_Q02R.js +2 -0
- package/dashboard/dist/assets/PortalPage-Dfc_Q02R.js.map +1 -0
- package/dashboard/dist/assets/ProcessDetailPage-liJspvQh.js +2 -0
- package/dashboard/dist/assets/{ProcessDetailPage-D7EYwW-j.js.map → ProcessDetailPage-liJspvQh.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-CakYRtnE.js → ProcessesListPage-C3OM5ZUy.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-CakYRtnE.js.map → ProcessesListPage-C3OM5ZUy.js.map} +1 -1
- package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js +8 -0
- package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js.map +1 -0
- package/dashboard/dist/assets/{RoleDetailPage-CKbGwezP.js → RoleDetailPage-CrlYCh-R.js} +2 -2
- package/dashboard/dist/assets/{RoleDetailPage-CKbGwezP.js.map → RoleDetailPage-CrlYCh-R.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-Czu7Zku4.js → RolesPage-BaazL_pt.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-Czu7Zku4.js.map → RolesPage-BaazL_pt.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-6BLScYTX.js → RunAsSelector-DxuV0fa1.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-6BLScYTX.js.map → RunAsSelector-DxuV0fa1.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-Cv9q8Bvt.js → ScanCodesPage-C0mvmYTq.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-Cv9q8Bvt.js.map → ScanCodesPage-C0mvmYTq.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-BxazXYIc.js → ScanSchemeDetailPage-CiJgt5dZ.js} +2 -2
- package/dashboard/dist/assets/{ScanSchemeDetailPage-BxazXYIc.js.map → ScanSchemeDetailPage-CiJgt5dZ.js.map} +1 -1
- package/dashboard/dist/assets/ScanStationPage-DzGaXc40.js +2 -0
- package/dashboard/dist/assets/ScanStationPage-DzGaXc40.js.map +1 -0
- package/dashboard/dist/assets/{StickyPagination-DsdtYoXR.js → StickyPagination-CqbjVY6T.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-DsdtYoXR.js.map → StickyPagination-CqbjVY6T.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-CT3FQoT3.js → StreamMessageDetail-wX3i0aqs.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-CT3FQoT3.js.map → StreamMessageDetail-wX3i0aqs.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-C8TjkJ10.js → SwimlaneTimeline-C50PsFoV.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-C8TjkJ10.js.map → SwimlaneTimeline-C50PsFoV.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-DGUzdBFN.js → TaskDetailPage-bbNSv4Ae.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-DGUzdBFN.js.map → TaskDetailPage-bbNSv4Ae.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-BVIP6-EZ.js → TasksListPage-CDWnm_d9.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-BVIP6-EZ.js.map → TasksListPage-CDWnm_d9.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-C-rd9F9g.js → TimeAgo-BLjqlfoX.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-C-rd9F9g.js.map → TimeAgo-BLjqlfoX.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-DPbchDOI.js → TimestampCell-CnW0ENb5.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-DPbchDOI.js.map → TimestampCell-CnW0ENb5.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-DAUC8DHK.js → ToolTestPanel-DkMgCB-k.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-DAUC8DHK.js.map → ToolTestPanel-DkMgCB-k.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-70mMKBzG.js → TopicDetailPage-g3pljKKX.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-70mMKBzG.js.map → TopicDetailPage-g3pljKKX.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-CE3hBthn.js → TopicsPage-CVcCYdy-.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-CE3hBthn.js.map → TopicsPage-CVcCYdy-.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-BDBDA-LR.js → UserName-D6zGIK2i.js} +2 -2
- package/dashboard/dist/assets/{UserName-BDBDA-LR.js.map → UserName-D6zGIK2i.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BbkLZ1co.js → WorkflowExecutionPage-B8g81FCJ.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BbkLZ1co.js.map → WorkflowExecutionPage-B8g81FCJ.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-Bp1L7Ggz.js → WorkflowsDashboard-nxT3bv6W.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-Bp1L7Ggz.js.map → WorkflowsDashboard-nxT3bv6W.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-IeTKHAi4.js → WorkflowsOverview-grI-KAI2.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-IeTKHAi4.js.map → WorkflowsOverview-grI-KAI2.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DtKCXnKt.js → YamlWorkflowDetailPage-BoZ-hfBE.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DtKCXnKt.js.map → YamlWorkflowDetailPage-BoZ-hfBE.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-CEcZBV_3.js → YamlWorkflowsPage-Bf04rwRv.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-CEcZBV_3.js.map → YamlWorkflowsPage-Bf04rwRv.js.map} +1 -1
- package/dashboard/dist/assets/{agents-BT-sEk81.js → agents-Dphpdi8l.js} +2 -2
- package/dashboard/dist/assets/{agents-BT-sEk81.js.map → agents-Dphpdi8l.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DRoAdLek.js → bots-DIFE298x.js} +2 -2
- package/dashboard/dist/assets/{bots-DRoAdLek.js.map → bots-DIFE298x.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-Bc-nJk6y.js → capabilities-D7Y7LClY.js} +2 -2
- package/dashboard/dist/assets/{capabilities-Bc-nJk6y.js.map → capabilities-D7Y7LClY.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-aXceSIRf.js → controlplane-D1TGcYsS.js} +2 -2
- package/dashboard/dist/assets/{controlplane-aXceSIRf.js.map → controlplane-D1TGcYsS.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-cwZE6xyo.js +2 -0
- package/dashboard/dist/assets/escalation-columns-cwZE6xyo.js.map +1 -0
- package/dashboard/dist/assets/{index-CuBGGwXf.js → index-BzYcUPdD.js} +2 -2
- package/dashboard/dist/assets/{index-CuBGGwXf.js.map → index-BzYcUPdD.js.map} +1 -1
- package/dashboard/dist/assets/index-CeCtqujG.js +67 -0
- package/dashboard/dist/assets/index-CeCtqujG.js.map +1 -0
- package/dashboard/dist/assets/{index-h2gX31B2.js → index-ChV7pBjM.js} +2 -2
- package/dashboard/dist/assets/{index-h2gX31B2.js.map → index-ChV7pBjM.js.map} +1 -1
- package/dashboard/dist/assets/index-CniRa65p.js +3 -0
- package/dashboard/dist/assets/index-CniRa65p.js.map +1 -0
- package/dashboard/dist/assets/index-CxdjT1Yk.js +2 -0
- package/dashboard/dist/assets/{index-BCFEQEMC.js.map → index-CxdjT1Yk.js.map} +1 -1
- package/dashboard/dist/assets/{index-CZyO9hRb.js → index-DAvi5_2T.js} +2 -2
- package/dashboard/dist/assets/{index-CZyO9hRb.js.map → index-DAvi5_2T.js.map} +1 -1
- package/dashboard/dist/assets/{index-Djsoi8DI.js → index-DN-kX7hL.js} +2 -2
- package/dashboard/dist/assets/{index-Djsoi8DI.js.map → index-DN-kX7hL.js.map} +1 -1
- package/dashboard/dist/assets/index-Dl_8hbYI.js +2 -0
- package/dashboard/dist/assets/index-Dl_8hbYI.js.map +1 -0
- package/dashboard/dist/assets/{index-DBxpyIw5.js → index-DpKOr311.js} +2 -2
- package/dashboard/dist/assets/{index-DBxpyIw5.js.map → index-DpKOr311.js.map} +1 -1
- package/dashboard/dist/assets/{index-Ba-s5Yb5.js → index-Dy1wWu2e.js} +2 -2
- package/dashboard/dist/assets/{index-Ba-s5Yb5.js.map → index-Dy1wWu2e.js.map} +1 -1
- package/dashboard/dist/assets/{index-DH03y-UT.js → index-HLu98Sqh.js} +2 -2
- package/dashboard/dist/assets/{index-DH03y-UT.js.map → index-HLu98Sqh.js.map} +1 -1
- package/dashboard/dist/assets/{index-C3VTJcrp.js → index-ag2pCAPu.js} +2 -2
- package/dashboard/dist/assets/{index-C3VTJcrp.js.map → index-ag2pCAPu.js.map} +1 -1
- package/dashboard/dist/assets/index-gkxPN7Vx.js +13 -0
- package/dashboard/dist/assets/{index-BEPKAjna.js.map → index-gkxPN7Vx.js.map} +1 -1
- package/dashboard/dist/assets/index-m9A3UYst.css +1 -0
- package/dashboard/dist/assets/{knowledge-BhW8V-Hq.js → knowledge-DnMs-SOJ.js} +2 -2
- package/dashboard/dist/assets/{knowledge-BhW8V-Hq.js.map → knowledge-DnMs-SOJ.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BYfSMQzh.js → mcp-CwW-K3r4.js} +2 -2
- package/dashboard/dist/assets/{mcp-BYfSMQzh.js.map → mcp-CwW-K3r4.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-DUJoOk_q.js → mcp-query-BZt5e8_Q.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-DUJoOk_q.js.map → mcp-query-BZt5e8_Q.js.map} +1 -1
- package/dashboard/dist/assets/{personas-jT1O_SB4.js → personas-UA-Xn60f.js} +2 -2
- package/dashboard/dist/assets/{personas-jT1O_SB4.js.map → personas-UA-Xn60f.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-Bp-wIaz2.js → pipelines-Cu3PARum.js} +2 -2
- package/dashboard/dist/assets/{pipelines-Bp-wIaz2.js.map → pipelines-Cu3PARum.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-CCrvnXbz.js → tasks-BO6h8GJE.js} +2 -2
- package/dashboard/dist/assets/{tasks-CCrvnXbz.js.map → tasks-BO6h8GJE.js.map} +1 -1
- package/dashboard/dist/assets/{topics-Blft0I1L.js → topics-CWjCR-17.js} +2 -2
- package/dashboard/dist/assets/{topics-Blft0I1L.js.map → topics-CWjCR-17.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-BYqbcism.js → useDebouncedValue-6t0jx1RB.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-BYqbcism.js.map → useDebouncedValue-6t0jx1RB.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-BfxJAUgG.js → useNamespace-CqpoQx6D.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-BfxJAUgG.js.map → useNamespace-CqpoQx6D.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BukJuWpb.js → useYamlActivityEvents-hmCQQwzB.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-BukJuWpb.js.map → useYamlActivityEvents-hmCQQwzB.js.map} +1 -1
- package/dashboard/dist/assets/validate-BIRn4a6d.js +2 -0
- package/dashboard/dist/assets/validate-BIRn4a6d.js.map +1 -0
- package/dashboard/dist/assets/{yaml-workflows-DeRWqMGk.js → yaml-workflows-ziUdZhKY.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DeRWqMGk.js.map → yaml-workflows-ziUdZhKY.js.map} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/docs/agents.md +3 -1
- package/docs/api/http/agents.md +15 -1
- package/docs/api/http/escalations.md +49 -3
- package/docs/api/http/exports.md +3 -1
- package/docs/api/http/file-browser.md +3 -1
- package/docs/api/http/mcp-endpoint.md +5 -2
- package/docs/api/http/mcp-servers.md +34 -4
- package/docs/api/http/namespaces.md +2 -0
- package/docs/api/http/pipelines.md +2 -0
- package/docs/api/http/roles.md +11 -8
- package/docs/api/http/service-accounts.md +8 -2
- package/docs/api/http/settings.md +29 -2
- package/docs/api/http/tasks.md +3 -1
- package/docs/api/http/topics.md +7 -1
- package/docs/api/http/users.md +8 -2
- package/docs/api/http/workflows.md +25 -10
- package/docs/api/http/yaml-workflows.md +21 -0
- package/docs/api/mcp/admin.md +409 -49
- package/docs/api/mcp/file-storage.md +4 -0
- package/docs/api/mcp/http-fetch.md +6 -2
- package/docs/api/mcp/human-queue.md +53 -0
- package/docs/api/mcp/index.md +13 -10
- package/docs/api/mcp/knowledge.md +34 -0
- package/docs/api/mcp/oauth.md +1 -1
- package/docs/api/mcp/ortho.md +113 -0
- package/docs/api/mcp/vision.md +1 -1
- package/docs/api/sdk/bot-accounts.md +1 -0
- package/docs/api/sdk/escalations.md +18 -2
- package/docs/api/sdk/mcp.md +2 -2
- package/docs/api/sdk/settings.md +1 -1
- package/docs/api/sdk/tasks.md +2 -2
- package/docs/api/sdk/workflows.md +2 -2
- package/docs/api/sdk/yaml-workflows.md +1 -1
- package/docs/architecture.md +3 -1
- package/docs/auth.md +3 -2
- package/docs/cloud.md +7 -2
- package/docs/code-owned-configuration.md +12 -0
- package/docs/dashboard.md +16 -7
- package/docs/data.md +1 -1
- package/docs/escalation-strategies.md +9 -20
- package/docs/events.md +6 -0
- package/docs/hitl/portal.md +2 -0
- package/docs/hitl/x-lt-list-schema.md +88 -1
- package/docs/hitl/x-lt-scan.md +4 -1
- package/docs/iam.md +7 -5
- package/docs/mcp.md +159 -210
- package/docs/oauth-and-delegation.md +32 -21
- package/docs/scan-codes.md +7 -1
- package/docs/topics.md +2 -0
- package/docs/workflows.md +14 -112
- package/package.json +6 -3
- package/dashboard/dist/assets/AvailableEscalationsPage-CWMyy3IL.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-CWMyy3IL.js.map +0 -1
- package/dashboard/dist/assets/CapabilitiesPage-DKxLvOfB.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-Beq1vQtY.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-Beq1vQtY.js.map +0 -1
- package/dashboard/dist/assets/CountdownTimer-BUBl_4mP.js +0 -2
- package/dashboard/dist/assets/CountdownTimer-BUBl_4mP.js.map +0 -1
- package/dashboard/dist/assets/DataTable-spX1dFyb.js +0 -2
- package/dashboard/dist/assets/DataTable-spX1dFyb.js.map +0 -1
- package/dashboard/dist/assets/EscalationListView-DTIVuym4.js +0 -2
- package/dashboard/dist/assets/EscalationListView-DTIVuym4.js.map +0 -1
- package/dashboard/dist/assets/EscalationTimeline-DNKNp6pL.js +0 -2
- package/dashboard/dist/assets/EscalationTimeline-DNKNp6pL.js.map +0 -1
- package/dashboard/dist/assets/OperationsPage-B2DA7n9m.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-C8RtPv8P.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-C8RtPv8P.js.map +0 -1
- package/dashboard/dist/assets/PortalPage-Xk1zVneM.js +0 -2
- package/dashboard/dist/assets/PortalPage-Xk1zVneM.js.map +0 -1
- package/dashboard/dist/assets/ProcessDetailPage-D7EYwW-j.js +0 -2
- package/dashboard/dist/assets/ResolverForm-BwVOJUpJ.js +0 -8
- package/dashboard/dist/assets/ResolverForm-BwVOJUpJ.js.map +0 -1
- package/dashboard/dist/assets/ScanStationPage-Cg8LCFR7.js +0 -2
- package/dashboard/dist/assets/ScanStationPage-Cg8LCFR7.js.map +0 -1
- package/dashboard/dist/assets/escalation-columns-Bf09Q89t.js +0 -2
- package/dashboard/dist/assets/escalation-columns-Bf09Q89t.js.map +0 -1
- package/dashboard/dist/assets/index-BCFEQEMC.js +0 -2
- package/dashboard/dist/assets/index-BEPKAjna.js +0 -13
- package/dashboard/dist/assets/index-BUYokcrl.js +0 -67
- package/dashboard/dist/assets/index-BUYokcrl.js.map +0 -1
- package/dashboard/dist/assets/index-CcgmR-7-.js +0 -2
- package/dashboard/dist/assets/index-CcgmR-7-.js.map +0 -1
- package/dashboard/dist/assets/index-D1mKf_qz.js +0 -3
- package/dashboard/dist/assets/index-D1mKf_qz.js.map +0 -1
- package/dashboard/dist/assets/index-DcppjzP5.css +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# MCP Servers API
|
|
2
2
|
|
|
3
|
-
Manage MCP server registrations, connections, and tool invocations. All endpoints require authentication.
|
|
3
|
+
Manage MCP server registrations, connections, and tool invocations. All endpoints require authentication. Registering, testing, updating, deleting, connecting, and disconnecting servers require builder access (superadmin or the `engineer` role).
|
|
4
|
+
|
|
5
|
+
A `stdio` server is a command Long Tail starts on its own host, with that host's environment and network. Builder access therefore includes running commands on the host: grant the `engineer` role with the same care as host access.
|
|
4
6
|
|
|
5
7
|
## List servers
|
|
6
8
|
|
|
@@ -8,6 +10,8 @@ Manage MCP server registrations, connections, and tool invocations. All endpoint
|
|
|
8
10
|
GET /api/mcp/servers
|
|
9
11
|
```
|
|
10
12
|
|
|
13
|
+
`transport_config` is included only for builders.
|
|
14
|
+
|
|
11
15
|
**Query parameters:**
|
|
12
16
|
|
|
13
17
|
| Parameter | Type | Description |
|
|
@@ -53,6 +57,8 @@ GET /api/mcp/servers
|
|
|
53
57
|
POST /api/mcp/servers
|
|
54
58
|
```
|
|
55
59
|
|
|
60
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
61
|
+
|
|
56
62
|
**Request body:**
|
|
57
63
|
|
|
58
64
|
| Field | Type | Required | Description |
|
|
@@ -76,15 +82,17 @@ POST /api/mcp/servers
|
|
|
76
82
|
**Transport config for `sse`:**
|
|
77
83
|
|
|
78
84
|
```json
|
|
79
|
-
{ "url": "http://localhost:3001/sse" }
|
|
85
|
+
{ "url": "http://localhost:3001/sse", "headers": { "Authorization": "Bearer <token>" } }
|
|
80
86
|
```
|
|
81
87
|
|
|
82
88
|
**Transport config for `streamable-http`:**
|
|
83
89
|
|
|
84
90
|
```json
|
|
85
|
-
{ "url": "http://localhost:3001/mcp" }
|
|
91
|
+
{ "url": "http://localhost:3001/mcp", "headers": { "Authorization": "Bearer <token>" } }
|
|
86
92
|
```
|
|
87
93
|
|
|
94
|
+
`headers` is optional and is sent with every request to the server, the SSE stream included. Like the rest of `transport_config`, it is returned only to builders.
|
|
95
|
+
|
|
88
96
|
**Response 201:** Created server record.
|
|
89
97
|
|
|
90
98
|
**Response 409:** Server name already exists.
|
|
@@ -95,6 +103,8 @@ POST /api/mcp/servers
|
|
|
95
103
|
GET /api/mcp/servers/:id
|
|
96
104
|
```
|
|
97
105
|
|
|
106
|
+
`transport_config` is included only for builders.
|
|
107
|
+
|
|
98
108
|
**Response 200:** Server record.
|
|
99
109
|
|
|
100
110
|
**Response 404:** Server not found.
|
|
@@ -105,6 +115,8 @@ GET /api/mcp/servers/:id
|
|
|
105
115
|
PUT /api/mcp/servers/:id
|
|
106
116
|
```
|
|
107
117
|
|
|
118
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
119
|
+
|
|
108
120
|
**Request body:** Any fields from the registration (partial update), including `tags`, `compile_hints`, and `credential_providers`.
|
|
109
121
|
|
|
110
122
|
**Response 200:** Updated server record.
|
|
@@ -117,6 +129,8 @@ PUT /api/mcp/servers/:id
|
|
|
117
129
|
DELETE /api/mcp/servers/:id
|
|
118
130
|
```
|
|
119
131
|
|
|
132
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
133
|
+
|
|
120
134
|
**Response 200:**
|
|
121
135
|
|
|
122
136
|
```json
|
|
@@ -131,6 +145,8 @@ DELETE /api/mcp/servers/:id
|
|
|
131
145
|
POST /api/mcp/servers/test-connection
|
|
132
146
|
```
|
|
133
147
|
|
|
148
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
149
|
+
|
|
134
150
|
Test connectivity to an MCP server without persisting a registration. Creates a temporary client, connects, lists tools, then disconnects.
|
|
135
151
|
|
|
136
152
|
**Request body:**
|
|
@@ -167,6 +183,8 @@ On failure:
|
|
|
167
183
|
POST /api/mcp/servers/:id/connect
|
|
168
184
|
```
|
|
169
185
|
|
|
186
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
187
|
+
|
|
170
188
|
Establishes a connection to the registered MCP server and caches its tool manifest.
|
|
171
189
|
|
|
172
190
|
**Response 200:**
|
|
@@ -181,6 +199,8 @@ Establishes a connection to the registered MCP server and caches its tool manife
|
|
|
181
199
|
POST /api/mcp/servers/:id/disconnect
|
|
182
200
|
```
|
|
183
201
|
|
|
202
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
203
|
+
|
|
184
204
|
**Response 200:**
|
|
185
205
|
|
|
186
206
|
```json
|
|
@@ -222,16 +242,24 @@ POST /api/mcp/servers/:id/tools/:toolName/call
|
|
|
222
242
|
|
|
223
243
|
Invoke a tool on a connected MCP server.
|
|
224
244
|
|
|
245
|
+
**Auth:** The tool runs as the caller, or as the `execute_as` account when given. A built-in tool requires the capability its manifest `gate` declares, checked for the acting account; a built-in tool with no gate requires builder access. A tool on an external server (any registered network or local-process server) requires builder access, since it runs on the credential stored with that server. `execute_as` follows the act-as rule: a superadmin may act as anyone, and a caller holding an `admin`-type grant may act as an account that holds no superadmin grant and whose every role the caller holds at the same or higher type.
|
|
246
|
+
|
|
225
247
|
**Request body:**
|
|
226
248
|
|
|
227
249
|
```json
|
|
228
250
|
{
|
|
229
251
|
"arguments": {
|
|
230
252
|
"image_url": "https://example.com/image.png"
|
|
231
|
-
}
|
|
253
|
+
},
|
|
254
|
+
"execute_as": "optional-account-id"
|
|
232
255
|
}
|
|
233
256
|
```
|
|
234
257
|
|
|
258
|
+
| Field | Type | Required | Description |
|
|
259
|
+
|-------|------|----------|-------------|
|
|
260
|
+
| `arguments` | `object` | No | Tool arguments |
|
|
261
|
+
| `execute_as` | `string` | No | Account id or `external_id` to run the tool as |
|
|
262
|
+
|
|
235
263
|
**Response 200:**
|
|
236
264
|
|
|
237
265
|
```json
|
|
@@ -242,6 +270,8 @@ Invoke a tool on a connected MCP server.
|
|
|
242
270
|
}
|
|
243
271
|
```
|
|
244
272
|
|
|
273
|
+
**Response 403:** The caller may not act as `execute_as`, or the acting account lacks the tool's capability.
|
|
274
|
+
|
|
245
275
|
**Response 422** (missing credential):
|
|
246
276
|
|
|
247
277
|
```json
|
|
@@ -114,6 +114,8 @@ Returns full execution detail for a specific run, including inflated activity ev
|
|
|
114
114
|
POST /api/pipelines/:jobId/interrupt
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
118
|
+
|
|
117
119
|
Immediately terminates a running pipeline job via `HotMesh.interrupt()`. The job is marked as interrupted and its state is expired.
|
|
118
120
|
|
|
119
121
|
**Body:**
|
package/docs/api/http/roles.md
CHANGED
|
@@ -71,10 +71,11 @@ Certain API endpoints require builder access (`superadmin` or `engineer` role):
|
|
|
71
71
|
|
|
72
72
|
| Endpoint | Access |
|
|
73
73
|
|----------|--------|
|
|
74
|
-
| `POST/PUT/DELETE /api/users` | Builder |
|
|
75
|
-
| `POST /api/users/:id/roles` | Admin (scoped
|
|
74
|
+
| `POST/PUT/PATCH/DELETE /api/users` | Builder |
|
|
75
|
+
| `POST /api/users/:id/roles` | Admin (scoped, see below) |
|
|
76
|
+
| `DELETE /api/users/:id/roles/:role` | Admin (scoped, see below) |
|
|
76
77
|
| All `/api/bot-accounts` | Builder |
|
|
77
|
-
| All `/api/roles` mutations |
|
|
78
|
+
| All `/api/roles` mutations | Admin access or the `engineer` role |
|
|
78
79
|
| All `/api/controlplane` | Builder |
|
|
79
80
|
|
|
80
81
|
### Scoped Role Assignment
|
|
@@ -87,6 +88,8 @@ When assigning roles via `POST /api/users/:id/roles`, the caller's own roles det
|
|
|
87
88
|
| `engineer` | Any role up to `admin` type (never `superadmin` type) |
|
|
88
89
|
| `*/admin` (non-builder) | `member` or `admin` type for roles they themselves hold |
|
|
89
90
|
|
|
91
|
+
Removing a role follows the same rule for the role at the type the account holds it. Only a superadmin may change, remove roles from, or mint keys for an account that holds a superadmin grant; others receive `403`.
|
|
92
|
+
|
|
90
93
|
A caller who may assign a role may set any work-surface scope (`read_scope`/`write_scope`) on it. Scope is a refinement of a `member` grant; it is ignored for `admin`/`superadmin`, which always act on the whole queue.
|
|
91
94
|
|
|
92
95
|
## List roles for a user
|
|
@@ -289,7 +292,7 @@ Returns all roles with metadata and usage counts.
|
|
|
289
292
|
POST /api/roles
|
|
290
293
|
```
|
|
291
294
|
|
|
292
|
-
Create a standalone role. Requires admin.
|
|
295
|
+
Create a standalone role. Requires role manager (admin type, superadmin, or engineer).
|
|
293
296
|
|
|
294
297
|
**Request body:**
|
|
295
298
|
|
|
@@ -325,7 +328,7 @@ Create a standalone role. Requires admin.
|
|
|
325
328
|
DELETE /api/roles/:role
|
|
326
329
|
```
|
|
327
330
|
|
|
328
|
-
Delete a role if it has no references. Requires admin.
|
|
331
|
+
Delete a role if it has no references. Requires role manager (admin type, superadmin, or engineer).
|
|
329
332
|
|
|
330
333
|
**Path parameters:**
|
|
331
334
|
|
|
@@ -494,7 +497,7 @@ Returns all escalation chain pairs.
|
|
|
494
497
|
POST /api/roles/escalation-chains
|
|
495
498
|
```
|
|
496
499
|
|
|
497
|
-
Add a single escalation chain entry. Requires admin.
|
|
500
|
+
Add a single escalation chain entry. Requires role manager (admin type, superadmin, or engineer).
|
|
498
501
|
|
|
499
502
|
**Request body:**
|
|
500
503
|
|
|
@@ -527,7 +530,7 @@ Add a single escalation chain entry. Requires admin.
|
|
|
527
530
|
DELETE /api/roles/escalation-chains
|
|
528
531
|
```
|
|
529
532
|
|
|
530
|
-
Remove a single escalation chain entry. Requires admin.
|
|
533
|
+
Remove a single escalation chain entry. Requires role manager (admin type, superadmin, or engineer).
|
|
531
534
|
|
|
532
535
|
**Request body:**
|
|
533
536
|
|
|
@@ -576,7 +579,7 @@ Returns the allowed escalation targets for a specific role.
|
|
|
576
579
|
PUT /api/roles/:role/escalation-targets
|
|
577
580
|
```
|
|
578
581
|
|
|
579
|
-
Replace all escalation targets for a role. Requires admin.
|
|
582
|
+
Replace all escalation targets for a role. Requires role manager (admin type, superadmin, or engineer).
|
|
580
583
|
|
|
581
584
|
**Path parameters:**
|
|
582
585
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Service Accounts API
|
|
2
2
|
|
|
3
|
-
Service accounts are named identities that authenticate with API keys instead of passwords. They share the same role-based access control as human users. All endpoints require
|
|
3
|
+
Service accounts are named identities that authenticate with API keys instead of passwords. They share the same role-based access control as human users. All endpoints require builder access (superadmin or the `engineer` role). Role assignments follow the [scoped role assignment](roles.md#scoped-role-assignment) rules, and only a superadmin may change, delete, assign or remove roles on, or create or revoke keys for an account that holds a superadmin grant.
|
|
4
4
|
|
|
5
5
|
## List service accounts
|
|
6
6
|
|
|
@@ -107,7 +107,7 @@ Deletes the service account and all its API keys (cascade).
|
|
|
107
107
|
|
|
108
108
|
## Service account roles
|
|
109
109
|
|
|
110
|
-
Roles work identically to user roles.
|
|
110
|
+
Roles work identically to user roles, including the [scoped role assignment](roles.md#scoped-role-assignment) rules.
|
|
111
111
|
|
|
112
112
|
```
|
|
113
113
|
GET /api/bot-accounts/:id/roles
|
|
@@ -191,6 +191,12 @@ DELETE /api/bot-accounts/:id/api-keys/:keyId
|
|
|
191
191
|
{ "revoked": true }
|
|
192
192
|
```
|
|
193
193
|
|
|
194
|
+
**Response 404:** The key does not exist or belongs to a different service account than `:id`.
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{ "error": "API key not found" }
|
|
198
|
+
```
|
|
199
|
+
|
|
194
200
|
## Using a service account API key
|
|
195
201
|
|
|
196
202
|
Include the raw key as a Bearer token in any API request:
|
|
@@ -21,7 +21,7 @@ GET /api/settings
|
|
|
21
21
|
"events": {
|
|
22
22
|
"transport": "socketio",
|
|
23
23
|
"natsWsUrl": null,
|
|
24
|
-
"
|
|
24
|
+
"reconnect": { "initialDelayMs": 1000, "maxDelayMs": 60000, "noticeAfterMs": 30000, "spreadMs": 5000 }
|
|
25
25
|
},
|
|
26
26
|
"auth": {
|
|
27
27
|
"sso": false,
|
|
@@ -42,8 +42,35 @@ GET /api/settings
|
|
|
42
42
|
| `escalation.claimDurations` | `number[]` | Available claim duration options in minutes. Used by the frontend to populate duration selectors. Configurable via the `LT_CLAIM_DURATION_OPTIONS` environment variable (JSON array). |
|
|
43
43
|
| `events.transport` | `'socketio' \| 'nats' \| 'none'` | Dashboard event transport. Defaults to `socketio`. Reports `nats` only when `EVENT_TRANSPORT=nats` is set and a NATS adapter is registered. |
|
|
44
44
|
| `events.natsWsUrl` | `string \| null` | NATS WebSocket URL for browser connections. Only present when a NATS adapter is registered. Read from `NATS_WS_URL`. |
|
|
45
|
-
| `events.
|
|
45
|
+
| `events.reconnect.initialDelayMs` | `number` | First delay before the dashboard retries a dropped event connection. Read from `NATS_RECONNECT_INITIAL_MS` (default `1000`). |
|
|
46
|
+
| `events.reconnect.maxDelayMs` | `number` | Upper bound on the retry delay as it backs off. Read from `NATS_RECONNECT_MAX_MS` (default `60000`). |
|
|
47
|
+
| `events.reconnect.noticeAfterMs` | `number` | How long the connection may stay down before the dashboard shows a notice. Read from `NATS_LIVE_NOTICE_AFTER_MS` (default `30000`). |
|
|
48
|
+
| `events.reconnect.spreadMs` | `number` | Window the first retry after a drop, and the catch-up refetch after reconnecting, are spread across, so tabs return gradually after a deploy. Read from `NATS_RECONNECT_SPREAD_MS` (default `5000`). |
|
|
46
49
|
| `auth.sso` | `boolean` | Whether SSO is configured for embedded deployments. When `true`, the dashboard auto-exchanges host auth for an LT JWT instead of showing the login form. |
|
|
47
50
|
| `auth.ssoLogoutUrl` | `string \| null` | URL to redirect the browser on logout. Set by the host via `sso.logoutUrl` in the startup config. When `null`, the dashboard shows its own login page on logout. |
|
|
48
51
|
| `ai.enabled` | `boolean` | Whether an LLM API key is configured. When `false`, the dashboard hides AI-specific features (pipelines designer, AI assistant, triage). |
|
|
49
52
|
| `branding.appName` | `string` | The product name shown in the dashboard header. Configured via `branding.appName` in the startup config; defaults to `"LongTail"`. |
|
|
53
|
+
|
|
54
|
+
## Get NATS credentials
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
GET /api/nats-credentials
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Auth:** Requires authentication.
|
|
61
|
+
|
|
62
|
+
Returns the connection details the dashboard uses to subscribe to NATS events.
|
|
63
|
+
|
|
64
|
+
**Response 200:**
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"natsWsUrl": "wss://example.com/nats?ticket=...",
|
|
69
|
+
"natsToken": null
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
| Field | Type | Description |
|
|
74
|
+
|-------|------|-------------|
|
|
75
|
+
| `natsWsUrl` | `string \| null` | NATS WebSocket URL. Behind the WebSocket proxy, the URL carries a `ticket` query parameter for the caller, valid for `NATS_WS_TICKET_TTL_SECONDS` (default `300`). `null` when no NATS adapter is registered. |
|
|
76
|
+
| `natsToken` | `string \| null` | `null` behind the WebSocket proxy, since the proxy holds the NATS credential and the ticket allows subscribing only. For direct connections, `NATS_DASHBOARD_TOKEN` when set, else `NATS_TOKEN`. |
|
package/docs/api/http/tasks.md
CHANGED
|
@@ -49,6 +49,8 @@ POST /api/tasks
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
+
**Run data.** A task row carries its run's input (`envelope`), output (`data`) and `metadata`. A builder, and the person who started the run or the account it runs as, receive them; for any other caller those three fields are omitted from list, process and single-task responses.
|
|
53
|
+
|
|
52
54
|
## List tasks
|
|
53
55
|
|
|
54
56
|
```
|
|
@@ -169,7 +171,7 @@ List distinct `origin_id` values with summary stats. Each origin ID represents a
|
|
|
169
171
|
GET /api/tasks/processes/:originId
|
|
170
172
|
```
|
|
171
173
|
|
|
172
|
-
Returns all tasks
|
|
174
|
+
Returns all tasks for a process (identified by `origin_id`), and the escalations in that process the caller may read (the same read-scope rule as `GET /api/escalations/by-workflow/:workflowId`).
|
|
173
175
|
|
|
174
176
|
**Path parameters:**
|
|
175
177
|
|
package/docs/api/http/topics.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Browse, register, and manage the topic catalog — a persistent registry of known event topics with descriptions, payload schemas, and subscriber counts.
|
|
4
4
|
|
|
5
|
-
All endpoints require authentication.
|
|
5
|
+
All endpoints require authentication. Registering, updating, deleting, and publishing (`POST /api/topics/by-name/:topic/publish`) require builder access (superadmin or the `engineer` role). Publishing a subject that starts with `system.` or `agent.` requires superadmin.
|
|
6
6
|
|
|
7
7
|
## List topics
|
|
8
8
|
|
|
@@ -94,6 +94,8 @@ Subscribers are matched using NATS-style pattern matching — an agent subscribe
|
|
|
94
94
|
POST /api/topics
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
+
**Auth:** Requires builder access.
|
|
98
|
+
|
|
97
99
|
Manually register a topic in the catalog. Use this to pre-declare topics before first publish.
|
|
98
100
|
|
|
99
101
|
**Body:**
|
|
@@ -134,6 +136,8 @@ Manually register a topic in the catalog. Use this to pre-declare topics before
|
|
|
134
136
|
PUT /api/topics/by-name/:topic
|
|
135
137
|
```
|
|
136
138
|
|
|
139
|
+
**Auth:** Requires builder access.
|
|
140
|
+
|
|
137
141
|
Partial update — only include fields to change. System topics (`source: 'system'`) can be updated (description, tags) but not deleted.
|
|
138
142
|
|
|
139
143
|
**Body:**
|
|
@@ -155,6 +159,8 @@ Partial update — only include fields to change. System topics (`source: 'syste
|
|
|
155
159
|
DELETE /api/topics/by-name/:topic
|
|
156
160
|
```
|
|
157
161
|
|
|
162
|
+
**Auth:** Requires builder access.
|
|
163
|
+
|
|
158
164
|
Permanently removes a topic from the catalog. System topics are protected.
|
|
159
165
|
|
|
160
166
|
**Response 200:** `{ "deleted": true }`
|
package/docs/api/http/users.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Users API
|
|
2
2
|
|
|
3
|
-
Users represent the humans who claim and resolve escalations. Each user has a unique `external_id` that maps to your application's identity system. All endpoints require authentication.
|
|
3
|
+
Users represent the humans who claim and resolve escalations. Each user has a unique `external_id` that maps to your application's identity system. All endpoints require authentication. Creating, updating, patching, and deleting users require builder access (superadmin or the `engineer` role). Adding and removing roles require admin access and follow the assignment rules in the [Roles API](roles.md#scoped-role-assignment). Only a superadmin may grant the `superadmin` type or change a superadmin account.
|
|
4
4
|
|
|
5
5
|
For service identities (CI bots, schedulers, automated agents), use the [Service Accounts API](service-accounts.md) instead. Service accounts share the same RBAC system but authenticate with API keys rather than passwords or OAuth.
|
|
6
6
|
|
|
@@ -76,6 +76,8 @@ GET /api/users/:id
|
|
|
76
76
|
POST /api/users
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
**Auth:** Requires builder access. Every initial role must be one the caller may assign (see [Roles API](roles.md#scoped-role-assignment)); otherwise `403`.
|
|
80
|
+
|
|
79
81
|
**Request body:**
|
|
80
82
|
|
|
81
83
|
| Field | Type | Required | Description |
|
|
@@ -140,6 +142,8 @@ Each element in `roles`:
|
|
|
140
142
|
PUT /api/users/:id
|
|
141
143
|
```
|
|
142
144
|
|
|
145
|
+
**Auth:** Requires builder access. Changing a superadmin account requires superadmin (`403` otherwise).
|
|
146
|
+
|
|
143
147
|
Partial update — only the fields you include are changed.
|
|
144
148
|
|
|
145
149
|
**Request body:**
|
|
@@ -174,7 +178,7 @@ Partial update — only the fields you include are changed.
|
|
|
174
178
|
PATCH /api/users/:id/properties
|
|
175
179
|
```
|
|
176
180
|
|
|
177
|
-
Atomically patch the user's properties dictionary (`metadata`) — one statement, never read-merge-write. Editing one property can never clobber another; a rename preserves its value with no key-absent window.
|
|
181
|
+
Atomically patch the user's properties dictionary (`metadata`) — one statement, never read-merge-write. Editing one property can never clobber another; a rename preserves its value with no key-absent window. Requires builder access, the same gate as every other user write. Changing a superadmin account requires superadmin.
|
|
178
182
|
|
|
179
183
|
**Request body:**
|
|
180
184
|
|
|
@@ -226,6 +230,8 @@ The property keys the platform itself resolves identities against — every enab
|
|
|
226
230
|
DELETE /api/users/:id
|
|
227
231
|
```
|
|
228
232
|
|
|
233
|
+
**Auth:** Requires builder access. Changing a superadmin account requires superadmin (`403` otherwise).
|
|
234
|
+
|
|
229
235
|
Deletes the user and all associated role assignments (cascade).
|
|
230
236
|
|
|
231
237
|
**Response 200:**
|
|
@@ -232,7 +232,7 @@ Start a workflow by its registered type. The workflow must have `invocable: true
|
|
|
232
232
|
|-------|------|----------|-------------|
|
|
233
233
|
| `data` | `object` | yes | Business data passed to the workflow as `envelope.data` |
|
|
234
234
|
| `metadata` | `object` | no | Control flow metadata passed as `envelope.metadata` |
|
|
235
|
-
| `execute_as` | `string` | no |
|
|
235
|
+
| `execute_as` | `string` | no | Account `external_id` or id to run as. Requires admin access and must satisfy the act-as rule below. |
|
|
236
236
|
|
|
237
237
|
The input gate validates against the `metadata` in the request; the dashboard sends the config's `envelope_schema.metadata` with every invoke it starts.
|
|
238
238
|
|
|
@@ -268,12 +268,16 @@ The workflow starts on its configured `task_queue` with a generated workflow ID
|
|
|
268
268
|
| `403` | `{ "error": "Workflow is not invocable" }` | `invocable` is `false` |
|
|
269
269
|
| `403` | `{ "error": "User not registered" }` | RBAC check failed — no matching user |
|
|
270
270
|
| `403` | `{ "error": "Insufficient role for invocation" }` | User lacks a required invocation role |
|
|
271
|
+
| `403` | `{ "error": "execute_as may not exceed your own authority" }` | The caller may not act as the `execute_as` account |
|
|
272
|
+
| `404` | `{ "error": "execute_as principal \"...\" not found" }` | No account matches `execute_as` |
|
|
271
273
|
| `404` | `{ "error": "Workflow not found" }` | No config exists for this type |
|
|
272
274
|
| `422` | `{ "error": "data failed input schema validation (n violations)", "code": "schema_validation", "violations": [{ "field", "message" }], "role": null, "schemaVersion": null, "workflowType" }` | The config declares `input_schema` and `data` violates it; `x-lt-options` over pinned `input_lookups` constrains values to the resolved edition |
|
|
273
275
|
|
|
274
276
|
**Authorization:**
|
|
275
277
|
|
|
276
|
-
When `invocation_roles` is empty, any authenticated user can invoke. When set, the user must hold at least one of the listed roles
|
|
278
|
+
When `invocation_roles` is empty, any authenticated user can invoke. When set, the user must hold at least one of the listed roles. Roles are read from the caller's current grants in `lt_user_roles`, not from token claims. A superadmin grant, or the `admin` role held with `admin` type, invokes any workflow. `capabilityInvoke` requires a superadmin grant.
|
|
279
|
+
|
|
280
|
+
`execute_as` follows the act-as rule: a superadmin may act as anyone. A caller holding an `admin`-type grant may act as an account that holds no superadmin grant and whose every role the caller holds at the same or higher type. Nobody else may.
|
|
277
281
|
|
|
278
282
|
### List the caller's invokable workflows
|
|
279
283
|
|
|
@@ -307,6 +311,8 @@ These endpoints let you check on running or completed workflows. The `workflowId
|
|
|
307
311
|
GET /api/workflows/:workflowId/status
|
|
308
312
|
```
|
|
309
313
|
|
|
314
|
+
**Auth:** Requires builder access (superadmin or the `engineer` role).
|
|
315
|
+
|
|
310
316
|
**Response 200:**
|
|
311
317
|
|
|
312
318
|
```json
|
|
@@ -330,6 +336,8 @@ GET /api/workflows/:workflowId/result
|
|
|
330
336
|
|
|
331
337
|
Returns the result if the workflow is complete, or `202` if it's still running. Never blocks.
|
|
332
338
|
|
|
339
|
+
**Auth:** Requires builder access, or being the person who started the run or the account it runs as (read from the run's start envelope: `lt.userId`, or `lt.initiatedBy` when it runs under `execute_as`). Others receive `403`.
|
|
340
|
+
|
|
333
341
|
**Response 200** (complete):
|
|
334
342
|
|
|
335
343
|
```json
|
|
@@ -361,6 +369,8 @@ Returns the result if the workflow is complete, or `202` if it's still running.
|
|
|
361
369
|
|
|
362
370
|
## Execution History Export
|
|
363
371
|
|
|
372
|
+
Every `/api/workflow-states` endpoint requires builder access, except `/:workflowId/execution`, which follows the same rule as `GET /api/workflows/:workflowId/result`.
|
|
373
|
+
|
|
364
374
|
Every workflow's full execution history is exportable in JSON. Two formats are available: a raw state export (HotMesh-native) and a structured execution event history with typed events, ISO timestamps, durations, and cross-references.
|
|
365
375
|
|
|
366
376
|
Because workflows are durably executed — state is transactionally checkpointed to Postgres after every step — the export is a complete, faithful record of everything that happened. Every activity scheduled, every result returned, every signal received, every child workflow spawned. Nothing is reconstructed or approximated.
|
|
@@ -371,6 +381,8 @@ Because workflows are durably executed — state is transactionally checkpointed
|
|
|
371
381
|
GET /api/workflows/:workflowId/export
|
|
372
382
|
```
|
|
373
383
|
|
|
384
|
+
**Auth:** Requires builder access.
|
|
385
|
+
|
|
374
386
|
Returns the raw workflow state from HotMesh. For full control over facet filtering and execution format, use the dedicated `/api/workflow-states` endpoints below.
|
|
375
387
|
|
|
376
388
|
**Response 200:** Raw workflow state object (data, state, status, timeline, transitions).
|
|
@@ -658,6 +670,8 @@ POST /api/workflows/:workflowId/terminate
|
|
|
658
670
|
|
|
659
671
|
Interrupt a running workflow. The workflow is immediately terminated.
|
|
660
672
|
|
|
673
|
+
**Auth:** Requires builder access.
|
|
674
|
+
|
|
661
675
|
**Path parameters:**
|
|
662
676
|
|
|
663
677
|
| Parameter | Description |
|
|
@@ -688,16 +702,17 @@ Interrupt a running workflow. The workflow is immediately terminated.
|
|
|
688
702
|
| `DELETE` | `/:type/config` | admin | Delete a workflow configuration (cascade) |
|
|
689
703
|
| `GET` | `/:type/input-lookups` | RBAC | Resolve the config's pinned knowledge lookups (invoke predicate) |
|
|
690
704
|
| `POST` | `/:type/invoke` | RBAC | Invoke a workflow (requires `invocable: true`) |
|
|
691
|
-
| `GET` | `/:workflowId/status` |
|
|
692
|
-
| `GET` | `/:workflowId/result` |
|
|
693
|
-
| `POST` | `/:workflowId/terminate` |
|
|
694
|
-
| `GET` | `/:workflowId/export` |
|
|
705
|
+
| `GET` | `/:workflowId/status` | builder | Workflow status |
|
|
706
|
+
| `GET` | `/:workflowId/result` | builder or run owner | Get workflow result (200 if complete, 202 if running) |
|
|
707
|
+
| `POST` | `/:workflowId/terminate` | builder | Terminate a running workflow |
|
|
708
|
+
| `GET` | `/:workflowId/export` | builder | Raw state export (convenience alias) |
|
|
695
709
|
|
|
696
710
|
### `/api/workflow-states`
|
|
697
711
|
|
|
698
712
|
| Method | Path | Auth | Description |
|
|
699
713
|
|--------|------|------|-------------|
|
|
700
|
-
| `GET` | `/:workflowId` |
|
|
701
|
-
| `GET` | `/:workflowId/execution` |
|
|
702
|
-
| `GET` | `/:workflowId/
|
|
703
|
-
| `GET` | `/:workflowId/
|
|
714
|
+
| `GET` | `/:workflowId` | builder | Raw state export with facet filtering |
|
|
715
|
+
| `GET` | `/:workflowId/execution` | builder or run owner | Structured execution history |
|
|
716
|
+
| `GET` | `/:workflowId/envelopes` | builder | Input and output envelopes |
|
|
717
|
+
| `GET` | `/:workflowId/status` | builder | Status semaphore |
|
|
718
|
+
| `GET` | `/:workflowId/state` | builder | Current workflow state snapshot |
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Manage YAML workflow definitions — the compiled deterministic pipelines generated from successful MCP triage executions. Each namespace (`app_id`) acts as a process server; each workflow is a tool within that server. All endpoints require authentication.
|
|
4
4
|
|
|
5
|
+
**Auth:** Creating, updating, regenerating, deleting, deploying, activating, archiving, and restoring workflows, and setting or clearing a cron schedule (`PUT`/`DELETE /api/yaml-workflows/:id/cron`), require builder access (superadmin or the `engineer` role). Reads and invoke are open to any authenticated caller.
|
|
6
|
+
|
|
7
|
+
An `execute_as` on invoke or on a cron schedule follows the act-as rule: a superadmin may act as anyone, and a caller holding an `admin`-type grant may act as an account that holds no superadmin grant and whose every role the caller holds at the same or higher type.
|
|
8
|
+
|
|
5
9
|
## List workflows
|
|
6
10
|
|
|
7
11
|
```
|
|
@@ -68,6 +72,8 @@ GET /api/yaml-workflows
|
|
|
68
72
|
POST /api/yaml-workflows
|
|
69
73
|
```
|
|
70
74
|
|
|
75
|
+
**Auth:** Requires builder access.
|
|
76
|
+
|
|
71
77
|
Generates a YAML workflow from a completed MCP triage execution.
|
|
72
78
|
|
|
73
79
|
**Request body:**
|
|
@@ -108,6 +114,8 @@ GET /api/yaml-workflows/:id
|
|
|
108
114
|
PUT /api/yaml-workflows/:id
|
|
109
115
|
```
|
|
110
116
|
|
|
117
|
+
**Auth:** Requires builder access.
|
|
118
|
+
|
|
111
119
|
**Request body:** Partial update — `yaml_content`, `name`, `description`.
|
|
112
120
|
|
|
113
121
|
**Response 200:** Updated workflow record.
|
|
@@ -120,6 +128,8 @@ PUT /api/yaml-workflows/:id
|
|
|
120
128
|
DELETE /api/yaml-workflows/:id
|
|
121
129
|
```
|
|
122
130
|
|
|
131
|
+
**Auth:** Requires builder access.
|
|
132
|
+
|
|
123
133
|
Only allowed for `draft` or `archived` workflows.
|
|
124
134
|
|
|
125
135
|
**Response 200:**
|
|
@@ -138,6 +148,8 @@ Only allowed for `draft` or `archived` workflows.
|
|
|
138
148
|
POST /api/yaml-workflows/:id/deploy
|
|
139
149
|
```
|
|
140
150
|
|
|
151
|
+
**Auth:** Requires builder access.
|
|
152
|
+
|
|
141
153
|
Deploys all YAML workflows sharing this workflow's `app_id` as a merged version. Bumps the version, marks all non-archived siblings as `active`, and registers HotMesh workers for the deployed workflows.
|
|
142
154
|
|
|
143
155
|
**Response 200:** Updated workflow record (with new version).
|
|
@@ -150,6 +162,8 @@ Deploys all YAML workflows sharing this workflow's `app_id` as a merged version.
|
|
|
150
162
|
POST /api/yaml-workflows/:id/activate
|
|
151
163
|
```
|
|
152
164
|
|
|
165
|
+
**Auth:** Requires builder access.
|
|
166
|
+
|
|
153
167
|
Activates the deployed version and registers workers for all workflows in the same `app_id`. Requires status `deployed` or `active`.
|
|
154
168
|
|
|
155
169
|
**Response 200:** Updated workflow record.
|
|
@@ -173,6 +187,9 @@ Invoke an active YAML workflow with parameters.
|
|
|
173
187
|
| `data` | `object` | No | Input data matching the workflow's `input_schema` |
|
|
174
188
|
| `sync` | `boolean` | No | Wait for result (default: false) |
|
|
175
189
|
| `timeout` | `integer` | No | Timeout in ms for sync invocations (default: 120000) |
|
|
190
|
+
| `execute_as` | `string` | No | Account id or `external_id` to run as. Must satisfy the act-as rule. |
|
|
191
|
+
|
|
192
|
+
The server sets the workflow's `_scope` identity context. A `_scope` key in `data` is ignored.
|
|
176
193
|
|
|
177
194
|
**Async response 200:**
|
|
178
195
|
|
|
@@ -202,6 +219,8 @@ Invoke an active YAML workflow with parameters.
|
|
|
202
219
|
POST /api/yaml-workflows/:id/regenerate
|
|
203
220
|
```
|
|
204
221
|
|
|
222
|
+
**Auth:** Requires builder access.
|
|
223
|
+
|
|
205
224
|
Re-generate the YAML from the original source execution. Allowed for `draft`, `deployed`, and `active` workflows (not `archived`).
|
|
206
225
|
|
|
207
226
|
**Request body:**
|
|
@@ -223,6 +242,8 @@ Re-generate the YAML from the original source execution. Allowed for `draft`, `d
|
|
|
223
242
|
POST /api/yaml-workflows/:id/archive
|
|
224
243
|
```
|
|
225
244
|
|
|
245
|
+
**Auth:** Requires builder access.
|
|
246
|
+
|
|
226
247
|
Stops accepting invocations. If active, stops the engine.
|
|
227
248
|
|
|
228
249
|
**Response 200:** Updated workflow record with status `archived`.
|