@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
|
@@ -38,20 +38,9 @@ const escalationService = __importStar(require("../../../services/escalation"));
|
|
|
38
38
|
const escalationApi = __importStar(require("../../../api/escalations"));
|
|
39
39
|
const escalationMetaApi = __importStar(require("../../../api/escalations/metadata"));
|
|
40
40
|
const escalationBulkApi = __importStar(require("../../../api/escalations/bulk"));
|
|
41
|
-
const
|
|
41
|
+
const caller_auth_1 = require("../caller-auth");
|
|
42
|
+
const helpers_1 = require("../../../api/escalations/helpers");
|
|
42
43
|
const schemas_1 = require("./schemas");
|
|
43
|
-
let systemPrincipalId = null;
|
|
44
|
-
/**
|
|
45
|
-
* Resolve (and cache) the lt-system bot's real UUID. The escalation RBAC helpers
|
|
46
|
-
* query the uuid `user_id` column, so the external_id string 'lt-system' would
|
|
47
|
-
* raise `invalid input syntax for type uuid`. The bot is a superadmin, so it has
|
|
48
|
-
* global escalation access.
|
|
49
|
-
*/
|
|
50
|
-
async function systemAuth() {
|
|
51
|
-
if (!systemPrincipalId)
|
|
52
|
-
systemPrincipalId = await (0, iam_1.ensureSystemBot)();
|
|
53
|
-
return { userId: systemPrincipalId, role: 'superadmin' };
|
|
54
|
-
}
|
|
55
44
|
/** Project the full escalation record to the MCP-facing shape, including metadata. */
|
|
56
45
|
function projectEscalation(e) {
|
|
57
46
|
return {
|
|
@@ -87,7 +76,7 @@ function registerEscalationTools(server) {
|
|
|
87
76
|
'(no status filter required). Returns full records including metadata, workflow linkage, ' +
|
|
88
77
|
'assignment, and signal_key.',
|
|
89
78
|
inputSchema: schemas_1.findEscalationsSchema,
|
|
90
|
-
}, async (args) => {
|
|
79
|
+
}, async (args, extra) => {
|
|
91
80
|
const result = await escalationApi.listEscalations({
|
|
92
81
|
status: args.status,
|
|
93
82
|
role: args.role,
|
|
@@ -108,7 +97,7 @@ function registerEscalationTools(server) {
|
|
|
108
97
|
exists: args.exists,
|
|
109
98
|
available: args.available,
|
|
110
99
|
orderBy: args.orderBy,
|
|
111
|
-
}, await
|
|
100
|
+
}, await (0, caller_auth_1.callerAuth)(extra));
|
|
112
101
|
if (result.error) {
|
|
113
102
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
114
103
|
}
|
|
@@ -130,8 +119,8 @@ function registerEscalationTools(server) {
|
|
|
130
119
|
description: 'Get a single escalation by ID — the full record including metadata, envelope ' +
|
|
131
120
|
'linkage, resolver/escalation payloads, signal_key, and assignment state.',
|
|
132
121
|
inputSchema: schemas_1.getEscalationSchema,
|
|
133
|
-
}, async (args) => {
|
|
134
|
-
const result = await escalationApi.getEscalation({ id: args.id }, await
|
|
122
|
+
}, async (args, extra) => {
|
|
123
|
+
const result = await escalationApi.getEscalation({ id: args.id }, await (0, caller_auth_1.callerAuth)(extra));
|
|
135
124
|
if (result.error) {
|
|
136
125
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
137
126
|
}
|
|
@@ -143,8 +132,8 @@ function registerEscalationTools(server) {
|
|
|
143
132
|
description: 'List all escalations linked to a specific workflow ID, newest first. Returns ' +
|
|
144
133
|
'full records including metadata.',
|
|
145
134
|
inputSchema: schemas_1.getEscalationsByWorkflowSchema,
|
|
146
|
-
}, async (args) => {
|
|
147
|
-
const result = await escalationApi.getEscalationsByWorkflowId({ workflowId: args.workflow_id });
|
|
135
|
+
}, async (args, extra) => {
|
|
136
|
+
const result = await escalationApi.getEscalationsByWorkflowId({ workflowId: args.workflow_id }, (0, caller_auth_1.externalCaller)(extra));
|
|
148
137
|
if (result.error) {
|
|
149
138
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
150
139
|
}
|
|
@@ -156,7 +145,15 @@ function registerEscalationTools(server) {
|
|
|
156
145
|
description: 'Aggregated escalation statistics: pending, claimed, created, ' +
|
|
157
146
|
'resolved counts with breakdown by role and type.',
|
|
158
147
|
inputSchema: schemas_1.getEscalationStatsSchema,
|
|
159
|
-
}, async (args) => {
|
|
148
|
+
}, async (args, extra) => {
|
|
149
|
+
const caller = (0, caller_auth_1.externalCaller)(extra);
|
|
150
|
+
if (caller) {
|
|
151
|
+
const result = await escalationApi.getEscalationStats({ period: args.period }, caller);
|
|
152
|
+
if (result.error) {
|
|
153
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
154
|
+
}
|
|
155
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
156
|
+
}
|
|
160
157
|
const stats = await escalationService.getEscalationStats(undefined, args.period);
|
|
161
158
|
return {
|
|
162
159
|
content: [{ type: 'text', text: JSON.stringify(stats) }],
|
|
@@ -168,8 +165,8 @@ function registerEscalationTools(server) {
|
|
|
168
165
|
description: 'Find escalations by a metadata key-value pair (e.g. a correlation key written ' +
|
|
169
166
|
'into metadata when the escalation was raised).',
|
|
170
167
|
inputSchema: schemas_1.findByMetadataSchema,
|
|
171
|
-
}, async (args) => {
|
|
172
|
-
const result = await escalationMetaApi.findByMetadata(args, await
|
|
168
|
+
}, async (args, extra) => {
|
|
169
|
+
const result = await escalationMetaApi.findByMetadata(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
173
170
|
if (result.error) {
|
|
174
171
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
175
172
|
}
|
|
@@ -183,8 +180,8 @@ function registerEscalationTools(server) {
|
|
|
183
180
|
'reserved so no one else picks it up. If the claim expires, ' +
|
|
184
181
|
'the escalation returns to the queue.',
|
|
185
182
|
inputSchema: schemas_1.claimEscalationSchema,
|
|
186
|
-
}, async (args) => {
|
|
187
|
-
const result = await escalationApi.claimEscalation({ id: args.id, durationMinutes: args.duration_minutes }, await
|
|
183
|
+
}, async (args, extra) => {
|
|
184
|
+
const result = await escalationApi.claimEscalation({ id: args.id, durationMinutes: args.duration_minutes }, await (0, caller_auth_1.callerAuth)(extra));
|
|
188
185
|
if (result.error) {
|
|
189
186
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
190
187
|
}
|
|
@@ -196,8 +193,8 @@ function registerEscalationTools(server) {
|
|
|
196
193
|
description: 'Release a claimed escalation back to the available pool. Reverses a ' +
|
|
197
194
|
'claim_escalation so another holder can pick it up.',
|
|
198
195
|
inputSchema: schemas_1.releaseEscalationSchema,
|
|
199
|
-
}, async (args) => {
|
|
200
|
-
const result = await escalationApi.releaseEscalation({ id: args.id }, await
|
|
196
|
+
}, async (args, extra) => {
|
|
197
|
+
const result = await escalationApi.releaseEscalation({ id: args.id }, await (0, caller_auth_1.callerAuth)(extra));
|
|
201
198
|
if (result.error) {
|
|
202
199
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
203
200
|
}
|
|
@@ -211,8 +208,8 @@ function registerEscalationTools(server) {
|
|
|
211
208
|
'legacy paths signal via routing metadata or re-run the original workflow. ' +
|
|
212
209
|
'Password fields in the payload are replaced with ephemeral tokens.',
|
|
213
210
|
inputSchema: schemas_1.resolveEscalationSchema,
|
|
214
|
-
}, async (args) => {
|
|
215
|
-
const result = await escalationApi.resolveEscalation({ id: args.id, resolverPayload: args.resolverPayload }, await
|
|
211
|
+
}, async (args, extra) => {
|
|
212
|
+
const result = await escalationApi.resolveEscalation({ id: args.id, resolverPayload: args.resolverPayload }, await (0, caller_auth_1.callerAuth)(extra));
|
|
216
213
|
if (result.error) {
|
|
217
214
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
218
215
|
}
|
|
@@ -226,11 +223,11 @@ function registerEscalationTools(server) {
|
|
|
226
223
|
'workflow with the ordered collection. A reciprocal row is written in the same statement, both or neither. ' +
|
|
227
224
|
'initiatedBy credits the person the add is for.',
|
|
228
225
|
inputSchema: schemas_1.accumulateItemSchema,
|
|
229
|
-
}, async (args) => {
|
|
226
|
+
}, async (args, extra) => {
|
|
230
227
|
const result = await escalationApi.accumulateItem({
|
|
231
228
|
id: args.id, itemKey: args.itemKey, payload: args.payload, metadata: args.metadata,
|
|
232
229
|
reciprocal: args.reciprocal, initiatedBy: args.initiatedBy,
|
|
233
|
-
}, await
|
|
230
|
+
}, await (0, caller_auth_1.callerAuth)(extra));
|
|
234
231
|
if (result.error) {
|
|
235
232
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error, ...(result.data ?? {}) }) }], isError: true };
|
|
236
233
|
}
|
|
@@ -242,8 +239,8 @@ function registerEscalationTools(server) {
|
|
|
242
239
|
description: 'Remove ONE held item from a pending open accumulator escalation. The row stays pending and the ' +
|
|
243
240
|
'waiting workflow is never woken. initiatedBy credits the person the removal is for.',
|
|
244
241
|
inputSchema: schemas_1.removeItemSchema,
|
|
245
|
-
}, async (args) => {
|
|
246
|
-
const result = await escalationApi.removeItem({ id: args.id, itemKey: args.itemKey, reciprocal: args.reciprocal, initiatedBy: args.initiatedBy }, await
|
|
242
|
+
}, async (args, extra) => {
|
|
243
|
+
const result = await escalationApi.removeItem({ id: args.id, itemKey: args.itemKey, reciprocal: args.reciprocal, initiatedBy: args.initiatedBy }, await (0, caller_auth_1.callerAuth)(extra));
|
|
247
244
|
if (result.error) {
|
|
248
245
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error, ...(result.data ?? {}) }) }], isError: true };
|
|
249
246
|
}
|
|
@@ -254,13 +251,13 @@ function registerEscalationTools(server) {
|
|
|
254
251
|
title: 'Get Escalation Items',
|
|
255
252
|
description: 'The held items of an accumulator or batch escalation in arrival order, with the count and max.',
|
|
256
253
|
inputSchema: schemas_1.getEscalationItemsSchema,
|
|
257
|
-
}, async (args) => {
|
|
254
|
+
}, async (args, extra) => {
|
|
258
255
|
if (!args.id && !args.signalKey) {
|
|
259
256
|
return { content: [{ type: 'text', text: JSON.stringify({ error: 'id or signalKey is required' }) }], isError: true };
|
|
260
257
|
}
|
|
261
258
|
const result = args.id
|
|
262
|
-
? await escalationApi.getEscalationItems({ id: args.id }, await
|
|
263
|
-
: await escalationApi.getEscalationItemsBySignalKey({ signalKey: args.signalKey }, await
|
|
259
|
+
? await escalationApi.getEscalationItems({ id: args.id }, await (0, caller_auth_1.callerAuth)(extra))
|
|
260
|
+
: await escalationApi.getEscalationItemsBySignalKey({ signalKey: args.signalKey }, await (0, caller_auth_1.callerAuth)(extra));
|
|
264
261
|
if (result.error) {
|
|
265
262
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
266
263
|
}
|
|
@@ -273,8 +270,8 @@ function registerEscalationTools(server) {
|
|
|
273
270
|
'waiting workflow in place. For callers that know the deterministic signal id and want ' +
|
|
274
271
|
'to skip the id lookup.',
|
|
275
272
|
inputSchema: schemas_1.resolveBySignalKeySchema,
|
|
276
|
-
}, async (args) => {
|
|
277
|
-
const result = await escalationApi.resolveBySignalKey({ signalKey: args.signalKey, resolverPayload: args.resolverPayload }, await
|
|
273
|
+
}, async (args, extra) => {
|
|
274
|
+
const result = await escalationApi.resolveBySignalKey({ signalKey: args.signalKey, resolverPayload: args.resolverPayload }, await (0, caller_auth_1.callerAuth)(extra));
|
|
278
275
|
if (result.error) {
|
|
279
276
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
280
277
|
}
|
|
@@ -287,8 +284,8 @@ function registerEscalationTools(server) {
|
|
|
287
284
|
'callers may only resolve rows whose role they hold. For bookkeeping rows woken ' +
|
|
288
285
|
'collectively (no per-row signal delivery).',
|
|
289
286
|
inputSchema: schemas_1.resolveByIdsSchema,
|
|
290
|
-
}, async (args) => {
|
|
291
|
-
const result = await escalationApi.resolveByIds({ ids: args.ids, resolverPayload: args.resolverPayload, metadata: args.metadata }, await
|
|
287
|
+
}, async (args, extra) => {
|
|
288
|
+
const result = await escalationApi.resolveByIds({ ids: args.ids, resolverPayload: args.resolverPayload, metadata: args.metadata }, await (0, caller_auth_1.callerAuth)(extra));
|
|
292
289
|
if (result.error) {
|
|
293
290
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
294
291
|
}
|
|
@@ -300,8 +297,8 @@ function registerEscalationTools(server) {
|
|
|
300
297
|
description: 'Faceted search over a pond, scoped to the caller\'s role. Filter by status, ' +
|
|
301
298
|
'availability, and metadata facets; sort by columns; page with limit/offset.',
|
|
302
299
|
inputSchema: schemas_1.searchByFacetsSchema,
|
|
303
|
-
}, async (args) => {
|
|
304
|
-
const result = await escalationApi.searchByFacets(args, await
|
|
300
|
+
}, async (args, extra) => {
|
|
301
|
+
const result = await escalationApi.searchByFacets(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
305
302
|
if (result.error) {
|
|
306
303
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
307
304
|
}
|
|
@@ -318,8 +315,8 @@ function registerEscalationTools(server) {
|
|
|
318
315
|
'each group. One call replaces N per-filter count round-trips. The filter takes the WHAT ' +
|
|
319
316
|
'fields only — status/available/jeopardy are rejected (liveness derives from the measure).',
|
|
320
317
|
inputSchema: schemas_1.aggregateByFacetsSchema,
|
|
321
|
-
}, async (args) => {
|
|
322
|
-
const result = await escalationApi.aggregateByFacets(args, await
|
|
318
|
+
}, async (args, extra) => {
|
|
319
|
+
const result = await escalationApi.aggregateByFacets(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
323
320
|
if (result.error) {
|
|
324
321
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
325
322
|
}
|
|
@@ -334,8 +331,8 @@ function registerEscalationTools(server) {
|
|
|
334
331
|
'intervals are untracked time and are preserved, not filled. The entity facet value ' +
|
|
335
332
|
'must be stored as a JSON string (GIN containment match).',
|
|
336
333
|
inputSchema: schemas_1.timelineByFacetSchema,
|
|
337
|
-
}, async (args) => {
|
|
338
|
-
const result = await escalationApi.timelineByFacet(args, await
|
|
334
|
+
}, async (args, extra) => {
|
|
335
|
+
const result = await escalationApi.timelineByFacet(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
339
336
|
if (result.error) {
|
|
340
337
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
341
338
|
}
|
|
@@ -347,8 +344,8 @@ function registerEscalationTools(server) {
|
|
|
347
344
|
description: 'Batch-claim complete origin groups (orders) in priority order over a pond, ' +
|
|
348
345
|
'assigned to the calling principal. RBAC-scoped to the pond role.',
|
|
349
346
|
inputSchema: schemas_1.claimGroupsSchema,
|
|
350
|
-
}, async (args) => {
|
|
351
|
-
const result = await escalationApi.claimGroups({ query: args.query, limit: args.limit, durationMinutes: args.durationMinutes, sizeFacet: args.sizeFacet }, await
|
|
347
|
+
}, async (args, extra) => {
|
|
348
|
+
const result = await escalationApi.claimGroups({ query: args.query, limit: args.limit, durationMinutes: args.durationMinutes, sizeFacet: args.sizeFacet }, await (0, caller_auth_1.callerAuth)(extra));
|
|
352
349
|
if (result.error) {
|
|
353
350
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
354
351
|
}
|
|
@@ -361,8 +358,8 @@ function registerEscalationTools(server) {
|
|
|
361
358
|
'assigned to the calling principal. With allOrNone, commits only the full set. ' +
|
|
362
359
|
'RBAC-scoped to the pond role.',
|
|
363
360
|
inputSchema: schemas_1.claimByFacetsSchema,
|
|
364
|
-
}, async (args) => {
|
|
365
|
-
const result = await escalationApi.claimByFacets({ query: args.query, limit: args.limit, durationMinutes: args.durationMinutes, allOrNone: args.allOrNone }, await
|
|
361
|
+
}, async (args, extra) => {
|
|
362
|
+
const result = await escalationApi.claimByFacets({ query: args.query, limit: args.limit, durationMinutes: args.durationMinutes, allOrNone: args.allOrNone }, await (0, caller_auth_1.callerAuth)(extra));
|
|
366
363
|
if (result.error) {
|
|
367
364
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
368
365
|
}
|
|
@@ -374,8 +371,8 @@ function registerEscalationTools(server) {
|
|
|
374
371
|
description: 'Route a pending escalation to a different role (per the escalation chain). The new ' +
|
|
375
372
|
'role becomes responsible for resolving it.',
|
|
376
373
|
inputSchema: schemas_1.escalateEscalationSchema,
|
|
377
|
-
}, async (args) => {
|
|
378
|
-
const result = await escalationApi.escalateToRole({ id: args.id, targetRole: args.targetRole }, await
|
|
374
|
+
}, async (args, extra) => {
|
|
375
|
+
const result = await escalationApi.escalateToRole({ id: args.id, targetRole: args.targetRole }, await (0, caller_auth_1.callerAuth)(extra));
|
|
379
376
|
if (result.error) {
|
|
380
377
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
381
378
|
}
|
|
@@ -387,8 +384,8 @@ function registerEscalationTools(server) {
|
|
|
387
384
|
description: 'Permanently cancel a pending escalation — used when the tied workflow has ' +
|
|
388
385
|
'terminated and can never receive the resolution signal. Preserved for audit.',
|
|
389
386
|
inputSchema: schemas_1.cancelEscalationSchema,
|
|
390
|
-
}, async (args) => {
|
|
391
|
-
const result = await escalationApi.cancelSingleEscalation({ id: args.id }, await
|
|
387
|
+
}, async (args, extra) => {
|
|
388
|
+
const result = await escalationApi.cancelSingleEscalation({ id: args.id }, await (0, caller_auth_1.callerAuth)(extra));
|
|
392
389
|
if (result.error) {
|
|
393
390
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
394
391
|
}
|
|
@@ -413,7 +410,14 @@ function registerEscalationTools(server) {
|
|
|
413
410
|
'Each escalation is marked resolved with needsTriage=true, then ' +
|
|
414
411
|
'a triage workflow is started to remediate the issue.',
|
|
415
412
|
inputSchema: schemas_1.bulkTriageSchema,
|
|
416
|
-
}, async (args) => {
|
|
413
|
+
}, async (args, extra) => {
|
|
414
|
+
const caller = (0, caller_auth_1.externalCaller)(extra);
|
|
415
|
+
if (caller) {
|
|
416
|
+
const perm = await (0, helpers_1.checkBulkPermission)(caller.userId, args.ids);
|
|
417
|
+
if (!perm.allowed) {
|
|
418
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: perm.error }) }], isError: true };
|
|
419
|
+
}
|
|
420
|
+
}
|
|
417
421
|
const resolved = await escalationService.bulkResolveForTriage(args.ids, args.hint);
|
|
418
422
|
return {
|
|
419
423
|
content: [{
|
|
@@ -430,8 +434,8 @@ function registerEscalationTools(server) {
|
|
|
430
434
|
title: 'Claim by Metadata',
|
|
431
435
|
description: 'Find and claim an escalation by metadata key-value pair.',
|
|
432
436
|
inputSchema: schemas_1.claimByMetadataSchema,
|
|
433
|
-
}, async (args) => {
|
|
434
|
-
const result = await escalationMetaApi.claimByMetadata(args, await
|
|
437
|
+
}, async (args, extra) => {
|
|
438
|
+
const result = await escalationMetaApi.claimByMetadata(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
435
439
|
if (result.error) {
|
|
436
440
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
437
441
|
}
|
|
@@ -442,8 +446,8 @@ function registerEscalationTools(server) {
|
|
|
442
446
|
title: 'Resolve by Metadata',
|
|
443
447
|
description: 'Find and resolve an escalation by metadata key-value pair.',
|
|
444
448
|
inputSchema: schemas_1.resolveByMetadataSchema,
|
|
445
|
-
}, async (args) => {
|
|
446
|
-
const result = await escalationMetaApi.resolveByMetadata(args, await
|
|
449
|
+
}, async (args, extra) => {
|
|
450
|
+
const result = await escalationMetaApi.resolveByMetadata(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
447
451
|
if (result.error) {
|
|
448
452
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
449
453
|
}
|
|
@@ -455,8 +459,8 @@ function registerEscalationTools(server) {
|
|
|
455
459
|
title: 'Bulk Claim',
|
|
456
460
|
description: 'Claim multiple escalations in a single operation.',
|
|
457
461
|
inputSchema: schemas_1.bulkClaimSchema,
|
|
458
|
-
}, async (args) => {
|
|
459
|
-
const result = await escalationBulkApi.bulkClaim(args, await
|
|
462
|
+
}, async (args, extra) => {
|
|
463
|
+
const result = await escalationBulkApi.bulkClaim(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
460
464
|
if (result.error) {
|
|
461
465
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
462
466
|
}
|
|
@@ -467,8 +471,8 @@ function registerEscalationTools(server) {
|
|
|
467
471
|
title: 'Bulk Assign',
|
|
468
472
|
description: 'Assign multiple escalations to a specific user. Rows under a live claim are skipped unless reassign=true (the admin takeover).',
|
|
469
473
|
inputSchema: schemas_1.bulkAssignSchema,
|
|
470
|
-
}, async (args) => {
|
|
471
|
-
const result = await escalationBulkApi.bulkAssign(args, await
|
|
474
|
+
}, async (args, extra) => {
|
|
475
|
+
const result = await escalationBulkApi.bulkAssign(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
472
476
|
if (result.error) {
|
|
473
477
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
474
478
|
}
|
|
@@ -479,8 +483,8 @@ function registerEscalationTools(server) {
|
|
|
479
483
|
title: 'Bulk Unassign',
|
|
480
484
|
description: 'Return claimed escalations to the available pool — the admin override of a live claim. Unclaimed and terminal rows are skipped.',
|
|
481
485
|
inputSchema: schemas_1.bulkUnassignSchema,
|
|
482
|
-
}, async (args) => {
|
|
483
|
-
const result = await escalationBulkApi.bulkUnassign(args, await
|
|
486
|
+
}, async (args, extra) => {
|
|
487
|
+
const result = await escalationBulkApi.bulkUnassign(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
484
488
|
if (result.error) {
|
|
485
489
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
486
490
|
}
|
|
@@ -491,8 +495,8 @@ function registerEscalationTools(server) {
|
|
|
491
495
|
title: 'Bulk Escalate',
|
|
492
496
|
description: 'Escalate multiple escalations to a different role.',
|
|
493
497
|
inputSchema: schemas_1.bulkEscalateSchema,
|
|
494
|
-
}, async (args) => {
|
|
495
|
-
const result = await escalationBulkApi.bulkEscalate(args, await
|
|
498
|
+
}, async (args, extra) => {
|
|
499
|
+
const result = await escalationBulkApi.bulkEscalate(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
496
500
|
if (result.error) {
|
|
497
501
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
498
502
|
}
|
|
@@ -503,8 +507,8 @@ function registerEscalationTools(server) {
|
|
|
503
507
|
title: 'Bulk Cancel',
|
|
504
508
|
description: 'Cancel multiple pending escalations in a single operation.',
|
|
505
509
|
inputSchema: schemas_1.bulkCancelSchema,
|
|
506
|
-
}, async (args) => {
|
|
507
|
-
const result = await escalationApi.bulkCancel(args, await
|
|
510
|
+
}, async (args, extra) => {
|
|
511
|
+
const result = await escalationApi.bulkCancel(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
508
512
|
if (result.error) {
|
|
509
513
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
510
514
|
}
|
|
@@ -515,8 +519,8 @@ function registerEscalationTools(server) {
|
|
|
515
519
|
title: 'Update Priority',
|
|
516
520
|
description: 'Update the priority of multiple escalations.',
|
|
517
521
|
inputSchema: schemas_1.updatePrioritySchema,
|
|
518
|
-
}, async (args) => {
|
|
519
|
-
const result = await escalationBulkApi.updatePriority(args, await
|
|
522
|
+
}, async (args, extra) => {
|
|
523
|
+
const result = await escalationBulkApi.updatePriority(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
520
524
|
if (result.error) {
|
|
521
525
|
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
522
526
|
}
|
|
@@ -36,6 +36,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.registerExportTools = registerExportTools;
|
|
37
37
|
const api = __importStar(require("../../../api/exports"));
|
|
38
38
|
const pick_1 = require("../../../lib/json-path/pick");
|
|
39
|
+
const capabilities_1 = require("../../../modules/capabilities");
|
|
40
|
+
const caller_auth_1 = require("../caller-auth");
|
|
41
|
+
const run_read_1 = require("./run-read");
|
|
39
42
|
const schemas_1 = require("./schemas");
|
|
40
43
|
function registerExportTools(server) {
|
|
41
44
|
// mirrors GET /api/workflow-states/jobs
|
|
@@ -76,7 +79,10 @@ function registerExportTools(server) {
|
|
|
76
79
|
'Useful for debugging and workflow compilation. Histories run large — ' +
|
|
77
80
|
'pass select (dot paths) to return only what you need.',
|
|
78
81
|
inputSchema: schemas_1.exportWorkflowExecutionSchema,
|
|
79
|
-
}, async (args) => {
|
|
82
|
+
}, async (args, extra) => {
|
|
83
|
+
if (!(await (0, capabilities_1.mayReadWorkflowRun)(await (0, caller_auth_1.callerAuth)(extra), args.workflow_id))) {
|
|
84
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: run_read_1.RUN_READ_DENIED }) }], isError: true };
|
|
85
|
+
}
|
|
80
86
|
const result = await api.exportWorkflowExecution({
|
|
81
87
|
workflowId: args.workflow_id,
|
|
82
88
|
excludeSystem: args.excludeSystem,
|
|
@@ -39,6 +39,7 @@ exports.stopAdminServer = stopAdminServer;
|
|
|
39
39
|
*/
|
|
40
40
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
41
41
|
const logger_1 = require("../../../lib/logger");
|
|
42
|
+
const registered_tools_1 = require("../../../services/mcp/registered-tools");
|
|
42
43
|
const tasks_1 = require("./tasks");
|
|
43
44
|
const escalations_1 = require("./escalations");
|
|
44
45
|
const workflow_config_1 = require("./workflow-config");
|
|
@@ -61,7 +62,6 @@ const diagnostics_1 = require("./diagnostics");
|
|
|
61
62
|
const scan_codes_1 = require("./scan-codes");
|
|
62
63
|
const domain_context_1 = require("./domain-context");
|
|
63
64
|
const announcements_1 = require("./announcements");
|
|
64
|
-
const TOOL_COUNT = 105;
|
|
65
65
|
let server = null;
|
|
66
66
|
async function createAdminServer(options) {
|
|
67
67
|
if (server && !options?.fresh)
|
|
@@ -71,30 +71,29 @@ async function createAdminServer(options) {
|
|
|
71
71
|
if (!options?.fresh) {
|
|
72
72
|
server = instance;
|
|
73
73
|
}
|
|
74
|
-
(0, tasks_1.registerTaskTools)(instance);
|
|
75
|
-
(0, escalations_1.registerEscalationTools)(instance);
|
|
76
|
-
(0, workflow_config_1.registerWorkflowConfigTools)(instance);
|
|
77
|
-
(0, workflows_1.registerWorkflowTools)(instance);
|
|
78
|
-
(0, mcp_servers_1.registerMcpServerTools)(instance);
|
|
79
|
-
(0, yaml_workflows_1.registerYamlWorkflowTools)(instance);
|
|
80
|
-
(0, users_1.registerUserTools)(instance);
|
|
81
|
-
(0, personas_1.registerPersonaTools)(instance);
|
|
82
|
-
(0, maintenance_1.registerMaintenanceTools)(instance);
|
|
83
|
-
(0, agents_1.registerAgentTools)(instance);
|
|
84
|
-
(0, agent_subscriptions_1.registerAgentSubscriptionTools)(instance);
|
|
85
|
-
(0, bot_accounts_1.registerBotAccountTools)(instance);
|
|
86
|
-
(0, controlplane_1.registerControlPlaneTools)(instance);
|
|
87
|
-
(0, pipelines_1.registerPipelineTools)(instance);
|
|
88
|
-
(0, topics_1.registerTopicTools)(instance);
|
|
89
|
-
(0, settings_1.registerSettingsTools)(instance);
|
|
90
|
-
(0, exports_1.registerExportTools)(instance);
|
|
91
|
-
(0, overview_1.registerOverviewTools)(instance);
|
|
92
|
-
(0, diagnostics_1.registerDiagnosticsTools)(instance);
|
|
93
|
-
(0, scan_codes_1.registerScanCodeTools)(instance);
|
|
94
|
-
(0, domain_context_1.registerDomainContextTools)(instance);
|
|
95
|
-
(0, announcements_1.registerAnnouncementTools)(instance);
|
|
96
|
-
|
|
97
|
-
logger_1.loggerRegistry.info(`[lt-mcp:admin] ${name} ready (${TOOL_COUNT} tools registered)`);
|
|
74
|
+
(0, tasks_1.registerTaskTools)(instance);
|
|
75
|
+
(0, escalations_1.registerEscalationTools)(instance);
|
|
76
|
+
(0, workflow_config_1.registerWorkflowConfigTools)(instance);
|
|
77
|
+
(0, workflows_1.registerWorkflowTools)(instance);
|
|
78
|
+
(0, mcp_servers_1.registerMcpServerTools)(instance);
|
|
79
|
+
(0, yaml_workflows_1.registerYamlWorkflowTools)(instance);
|
|
80
|
+
(0, users_1.registerUserTools)(instance);
|
|
81
|
+
(0, personas_1.registerPersonaTools)(instance);
|
|
82
|
+
(0, maintenance_1.registerMaintenanceTools)(instance);
|
|
83
|
+
(0, agents_1.registerAgentTools)(instance);
|
|
84
|
+
(0, agent_subscriptions_1.registerAgentSubscriptionTools)(instance);
|
|
85
|
+
(0, bot_accounts_1.registerBotAccountTools)(instance);
|
|
86
|
+
(0, controlplane_1.registerControlPlaneTools)(instance);
|
|
87
|
+
(0, pipelines_1.registerPipelineTools)(instance);
|
|
88
|
+
(0, topics_1.registerTopicTools)(instance);
|
|
89
|
+
(0, settings_1.registerSettingsTools)(instance);
|
|
90
|
+
(0, exports_1.registerExportTools)(instance);
|
|
91
|
+
(0, overview_1.registerOverviewTools)(instance);
|
|
92
|
+
(0, diagnostics_1.registerDiagnosticsTools)(instance);
|
|
93
|
+
(0, scan_codes_1.registerScanCodeTools)(instance);
|
|
94
|
+
(0, domain_context_1.registerDomainContextTools)(instance);
|
|
95
|
+
(0, announcements_1.registerAnnouncementTools)(instance);
|
|
96
|
+
logger_1.loggerRegistry.info(`[lt-mcp:admin] ${name} ready (${(0, registered_tools_1.registeredToolCount)(instance)} tools registered)`);
|
|
98
97
|
return instance;
|
|
99
98
|
}
|
|
100
99
|
function getAdminServer() {
|
|
@@ -6,8 +6,8 @@ import { z } from 'zod';
|
|
|
6
6
|
export declare const systemOverviewSchema: z.ZodObject<{
|
|
7
7
|
period: z.ZodDefault<z.ZodOptional<z.ZodEnum<["1h", "24h", "7d"]>>>;
|
|
8
8
|
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
period: "
|
|
9
|
+
period: "1h" | "24h" | "7d";
|
|
10
10
|
}, {
|
|
11
|
-
period?: "
|
|
11
|
+
period?: "1h" | "24h" | "7d" | undefined;
|
|
12
12
|
}>;
|
|
13
13
|
export declare function registerOverviewTools(server: McpServer): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RUN_READ_DENIED = void 0;
|
|
4
|
+
/** The refusal a run read gives a caller who neither builds nor started or runs as the run. */
|
|
5
|
+
exports.RUN_READ_DENIED = 'Forbidden: only a builder, or the person who started the run or it runs as, may read it';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Schemes map a code's leading two digits (10-99) to a target metadata facet
|
|
5
5
|
* and parse shape; rules map a single-digit category (0-9) to ordered
|
|
6
|
-
* condition/action steps over the escalation surface. execute_scan_code
|
|
7
|
-
* the lt-system
|
|
6
|
+
* condition/action steps over the escalation surface. execute_scan_code and
|
|
7
|
+
* execute_scan_choice run as the `/mcp` caller, or as lt-system for internal calls.
|
|
8
8
|
*/
|
|
9
9
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
10
10
|
export declare function registerScanCodeTools(server: McpServer): void;
|
|
@@ -35,14 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.registerScanCodeTools = registerScanCodeTools;
|
|
37
37
|
const scanCodesApi = __importStar(require("../../../api/scan-codes"));
|
|
38
|
-
const
|
|
38
|
+
const caller_auth_1 = require("../caller-auth");
|
|
39
39
|
const schemas_1 = require("./schemas");
|
|
40
|
-
let systemPrincipalId = null;
|
|
41
|
-
async function systemAuth() {
|
|
42
|
-
if (!systemPrincipalId)
|
|
43
|
-
systemPrincipalId = await (0, iam_1.ensureSystemBot)();
|
|
44
|
-
return { userId: systemPrincipalId, role: 'superadmin' };
|
|
45
|
-
}
|
|
46
40
|
function asText(payload) {
|
|
47
41
|
return { content: [{ type: 'text', text: JSON.stringify(payload) }] };
|
|
48
42
|
}
|
|
@@ -58,14 +52,14 @@ function registerScanCodeTools(server) {
|
|
|
58
52
|
'subject_stale, no_open_container, no_match_fallback, not_primed, ' +
|
|
59
53
|
'identity_primed, identity_unknown, unconfigured, invalid_code, forbidden, conflict.',
|
|
60
54
|
inputSchema: schemas_1.executeScanCodeSchema,
|
|
61
|
-
}, async (args) => {
|
|
55
|
+
}, async (args, extra) => {
|
|
62
56
|
const result = await scanCodesApi.executeScanCode({
|
|
63
57
|
code: args.code,
|
|
64
58
|
actingToken: args.actingToken,
|
|
65
59
|
previousActingToken: args.previousActingToken,
|
|
66
60
|
subject: args.subject,
|
|
67
61
|
stationRole: args.stationRole,
|
|
68
|
-
}, await
|
|
62
|
+
}, await (0, caller_auth_1.callerAuth)(extra));
|
|
69
63
|
return asText(result.data ?? { error: result.error });
|
|
70
64
|
});
|
|
71
65
|
// mirrors POST /api/scan-codes/execute-choice
|
|
@@ -76,8 +70,8 @@ function registerScanCodeTools(server) {
|
|
|
76
70
|
'against live config, the row\'s current state, the acting-identity gate, ' +
|
|
77
71
|
'and RBAC before the verb runs.',
|
|
78
72
|
inputSchema: schemas_1.executeScanChoiceSchema,
|
|
79
|
-
}, async (args) => {
|
|
80
|
-
const result = await scanCodesApi.executeScanChoice(args, await
|
|
73
|
+
}, async (args, extra) => {
|
|
74
|
+
const result = await scanCodesApi.executeScanChoice(args, await (0, caller_auth_1.callerAuth)(extra));
|
|
81
75
|
return asText(result.data ?? { error: result.error });
|
|
82
76
|
});
|
|
83
77
|
// mirrors GET /api/scan-codes/schemes
|