@hotmeshio/long-tail 0.23.2 → 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/metadata.js +3 -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/scan-codes/choice.js +31 -7
- package/build/api/settings.js +9 -0
- 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/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 +2 -2
- package/build/routes/escalations/list.d.ts +1 -1
- package/build/routes/escalations/metadata.d.ts +1 -1
- package/build/routes/escalations/related.d.ts +1 -1
- 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/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/queries.js +7 -2
- 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/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/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 +31 -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 +3 -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/startup.d.ts +15 -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-BPWsgMfZ.js → AdminDashboard-B3mkMIOT.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-BPWsgMfZ.js.map → AdminDashboard-B3mkMIOT.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-De9imyo5.js → AgentConfigPage-CQj2B678.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-De9imyo5.js.map → AgentConfigPage-CQj2B678.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-B6o96Y5G.js → AgentDetailPage-CzrD8JJI.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-B6o96Y5G.js.map → AgentDetailPage-CzrD8JJI.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-DMEmiK_W.js → AgentsPage-jg2OFwyW.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-DMEmiK_W.js.map → AgentsPage-jg2OFwyW.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-DeYMngwE.js → AvailableEscalationsPage-IS28XBRe.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-DeYMngwE.js.map → AvailableEscalationsPage-IS28XBRe.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-DDmpgGHZ.js → BotPicker-DvEJFpwS.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-DDmpgGHZ.js.map → BotPicker-DvEJFpwS.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-BqlklomG.js → BulkAssignModal-BoQCi-YC.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-BqlklomG.js.map → BulkAssignModal-BoQCi-YC.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-DOtjDTbK.js → CapabilitiesPage-kwlrcb_t.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-DOtjDTbK.js.map → CapabilitiesPage-kwlrcb_t.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-CLr8LP0V.js → CollapsibleSection-UMIV4KIj.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-CLr8LP0V.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-DxX72PwV.js → CountdownTimer-LG03dVgR.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-DxX72PwV.js.map → CountdownTimer-LG03dVgR.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-CObc9Rs5.js → CredentialsPage-CaFQ6vLb.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-CObc9Rs5.js.map → CredentialsPage-CaFQ6vLb.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-Bb8GoNY5.js → CronLabel-Co5j7tzW.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-Bb8GoNY5.js.map → CronLabel-Co5j7tzW.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-CmGhVlYl.js → ElapsedCell-WJyE9G0T.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-CmGhVlYl.js.map → ElapsedCell-WJyE9G0T.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-B4Jwy1w3.js → EntityTimelinePanel-CDFFfX9d.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-B4Jwy1w3.js.map → EntityTimelinePanel-CDFFfX9d.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-CZZbZ4Aa.js → EscalationListSchemaPage-CMrUlaKI.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-CZZbZ4Aa.js.map → EscalationListSchemaPage-CMrUlaKI.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-D0ko59_S.js → EscalationSchemaPage-Dx2Lyfrz.js} +2 -2
- package/dashboard/dist/assets/{EscalationSchemaPage-D0ko59_S.js.map → EscalationSchemaPage-Dx2Lyfrz.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTimeline-BcnJEKFD.js → EscalationTimeline-d3nvshOk.js} +2 -2
- package/dashboard/dist/assets/{EscalationTimeline-BcnJEKFD.js.map → EscalationTimeline-d3nvshOk.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTitleSelect-P0q5sck4.js → EscalationTitleSelect-DWQieOM9.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-P0q5sck4.js.map → EscalationTitleSelect-DWQieOM9.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BLPmh4AF.js → EscalationsOverview-BX8Cpi0X.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BLPmh4AF.js.map → EscalationsOverview-BX8Cpi0X.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-gBzi5tIS.js → EventTable-D1-ITVXS.js} +2 -2
- package/dashboard/dist/assets/{EventTable-gBzi5tIS.js.map → EventTable-D1-ITVXS.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-BulSsWb2.js → FilterBar-ABC9ctin.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-BulSsWb2.js.map → FilterBar-ABC9ctin.js.map} +1 -1
- package/dashboard/dist/assets/{FormattedValue-BMHRrvrL.js → FormattedValue-k27T4bG7.js} +2 -2
- package/dashboard/dist/assets/{FormattedValue-BMHRrvrL.js.map → FormattedValue-k27T4bG7.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage--997yNRr.js → GraphInvokePage-DKUErxWc.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage--997yNRr.js.map → GraphInvokePage-DKUErxWc.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-CwXFz--v.js → HomePage-C6u9dIpR.js} +2 -2
- package/dashboard/dist/assets/{HomePage-CwXFz--v.js.map → HomePage-C6u9dIpR.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-Df4qZryJ.js → ListToolbar-gA5rFzkz.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-Df4qZryJ.js.map → ListToolbar-gA5rFzkz.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-DrogIAKJ.js → McpOverview-BOPo3J_i.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-DrogIAKJ.js.map → McpOverview-BOPo3J_i.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-CJmvCAE6.js → McpQueryDetailPage-BRVVi0Zh.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-CJmvCAE6.js.map → McpQueryDetailPage-BRVVi0Zh.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-lygo4Yq0.js → McpQueryPage-Dmbb6SAc.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-lygo4Yq0.js.map → McpQueryPage-Dmbb6SAc.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-hvns2sCm.js → McpRunDetailPage-bMXNO-6V.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-hvns2sCm.js.map → McpRunDetailPage-bMXNO-6V.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-C2_7spTX.js → McpRunsPage-Bi9AMWja.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-C2_7spTX.js.map → McpRunsPage-Bi9AMWja.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-BlK8WlsY.js → OperationsPage-CvR74ZUJ.js} +3 -3
- package/dashboard/dist/assets/{OperationsPage-BlK8WlsY.js.map → OperationsPage-CvR74ZUJ.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-BeWBiMGX.js → OperatorDashboard-DctmZw10.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-BeWBiMGX.js.map → OperatorDashboard-DctmZw10.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-CNHpsX_i.js → PersonaDetailPage-Ubqm2rQH.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-CNHpsX_i.js.map → PersonaDetailPage-Ubqm2rQH.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-ChASEZRg.js → PersonasPage-BpFL2rpo.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-ChASEZRg.js.map → PersonasPage-BpFL2rpo.js.map} +1 -1
- package/dashboard/dist/assets/{PortalPage-D5Lk-PKF.js → PortalPage-Dfc_Q02R.js} +2 -2
- package/dashboard/dist/assets/{PortalPage-D5Lk-PKF.js.map → PortalPage-Dfc_Q02R.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-liJspvQh.js +2 -0
- package/dashboard/dist/assets/{ProcessDetailPage-DNgCIwRl.js.map → ProcessDetailPage-liJspvQh.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-pRjWuWlH.js → ProcessesListPage-C3OM5ZUy.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-pRjWuWlH.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-Bh_UcfYY.js → RoleDetailPage-CrlYCh-R.js} +2 -2
- package/dashboard/dist/assets/{RoleDetailPage-Bh_UcfYY.js.map → RoleDetailPage-CrlYCh-R.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-CK17N7zz.js → RolesPage-BaazL_pt.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-CK17N7zz.js.map → RolesPage-BaazL_pt.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-BEKUP0p2.js → RunAsSelector-DxuV0fa1.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-BEKUP0p2.js.map → RunAsSelector-DxuV0fa1.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-Bd0Pflqx.js → ScanCodesPage-C0mvmYTq.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-Bd0Pflqx.js.map → ScanCodesPage-C0mvmYTq.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-CnuhozmJ.js → ScanSchemeDetailPage-CiJgt5dZ.js} +2 -2
- package/dashboard/dist/assets/{ScanSchemeDetailPage-CnuhozmJ.js.map → ScanSchemeDetailPage-CiJgt5dZ.js.map} +1 -1
- package/dashboard/dist/assets/{ScanStationPage-CoLc-q3h.js → ScanStationPage-DzGaXc40.js} +2 -2
- package/dashboard/dist/assets/{ScanStationPage-CoLc-q3h.js.map → ScanStationPage-DzGaXc40.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-COrfvkBi.js → StickyPagination-CqbjVY6T.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-COrfvkBi.js.map → StickyPagination-CqbjVY6T.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-Cif2egLy.js → StreamMessageDetail-wX3i0aqs.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-Cif2egLy.js.map → StreamMessageDetail-wX3i0aqs.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-BnZYTrAh.js → SwimlaneTimeline-C50PsFoV.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-BnZYTrAh.js.map → SwimlaneTimeline-C50PsFoV.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-DEz_dqyR.js → TaskDetailPage-bbNSv4Ae.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-DEz_dqyR.js.map → TaskDetailPage-bbNSv4Ae.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-oEfEGj0_.js → TasksListPage-CDWnm_d9.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-oEfEGj0_.js.map → TasksListPage-CDWnm_d9.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-Dz5TgZZZ.js → TimeAgo-BLjqlfoX.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-Dz5TgZZZ.js.map → TimeAgo-BLjqlfoX.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BUTgE244.js → TimestampCell-CnW0ENb5.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BUTgE244.js.map → TimestampCell-CnW0ENb5.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-BS4g6vt-.js → ToolTestPanel-DkMgCB-k.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-BS4g6vt-.js.map → ToolTestPanel-DkMgCB-k.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-C_I6JIVD.js → TopicDetailPage-g3pljKKX.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-C_I6JIVD.js.map → TopicDetailPage-g3pljKKX.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-Cr6-wfhJ.js → TopicsPage-CVcCYdy-.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-Cr6-wfhJ.js.map → TopicsPage-CVcCYdy-.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-ZFpWMaFF.js → UserName-D6zGIK2i.js} +2 -2
- package/dashboard/dist/assets/{UserName-ZFpWMaFF.js.map → UserName-D6zGIK2i.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-ByPixDZW.js → WorkflowExecutionPage-B8g81FCJ.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-ByPixDZW.js.map → WorkflowExecutionPage-B8g81FCJ.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-CWsJdMdR.js → WorkflowsDashboard-nxT3bv6W.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-CWsJdMdR.js.map → WorkflowsDashboard-nxT3bv6W.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-Dk9gyqZN.js → WorkflowsOverview-grI-KAI2.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-Dk9gyqZN.js.map → WorkflowsOverview-grI-KAI2.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-CHwcrsaT.js → YamlWorkflowDetailPage-BoZ-hfBE.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-CHwcrsaT.js.map → YamlWorkflowDetailPage-BoZ-hfBE.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-B5jRX2Ph.js → YamlWorkflowsPage-Bf04rwRv.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-B5jRX2Ph.js.map → YamlWorkflowsPage-Bf04rwRv.js.map} +1 -1
- package/dashboard/dist/assets/{agents-Dd7E-27d.js → agents-Dphpdi8l.js} +2 -2
- package/dashboard/dist/assets/{agents-Dd7E-27d.js.map → agents-Dphpdi8l.js.map} +1 -1
- package/dashboard/dist/assets/{bots-CpaYjZTk.js → bots-DIFE298x.js} +2 -2
- package/dashboard/dist/assets/{bots-CpaYjZTk.js.map → bots-DIFE298x.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-CNjg_qv1.js → capabilities-D7Y7LClY.js} +2 -2
- package/dashboard/dist/assets/{capabilities-CNjg_qv1.js.map → capabilities-D7Y7LClY.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-DgmvnAtU.js → controlplane-D1TGcYsS.js} +2 -2
- package/dashboard/dist/assets/{controlplane-DgmvnAtU.js.map → controlplane-D1TGcYsS.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-Uj4U9g5H.js → escalation-columns-cwZE6xyo.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-Uj4U9g5H.js.map → escalation-columns-cwZE6xyo.js.map} +1 -1
- package/dashboard/dist/assets/{index-x5z73M9N.js → index-BzYcUPdD.js} +2 -2
- package/dashboard/dist/assets/{index-x5z73M9N.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-RIFT3RlO.js → index-ChV7pBjM.js} +2 -2
- package/dashboard/dist/assets/{index-RIFT3RlO.js.map → index-ChV7pBjM.js.map} +1 -1
- package/dashboard/dist/assets/{index-OfO0173w.js → index-CniRa65p.js} +2 -2
- package/dashboard/dist/assets/{index-OfO0173w.js.map → index-CniRa65p.js.map} +1 -1
- package/dashboard/dist/assets/{index-ByBy9M3L.js → index-CxdjT1Yk.js} +2 -2
- package/dashboard/dist/assets/{index-ByBy9M3L.js.map → index-CxdjT1Yk.js.map} +1 -1
- package/dashboard/dist/assets/{index-C_K7OlzT.js → index-DAvi5_2T.js} +2 -2
- package/dashboard/dist/assets/{index-C_K7OlzT.js.map → index-DAvi5_2T.js.map} +1 -1
- package/dashboard/dist/assets/{index-BrwqtXRh.js → index-DN-kX7hL.js} +2 -2
- package/dashboard/dist/assets/{index-BrwqtXRh.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-D4Dlznn9.js → index-DpKOr311.js} +2 -2
- package/dashboard/dist/assets/{index-D4Dlznn9.js.map → index-DpKOr311.js.map} +1 -1
- package/dashboard/dist/assets/{index-CnOvJz6U.js → index-Dy1wWu2e.js} +2 -2
- package/dashboard/dist/assets/{index-CnOvJz6U.js.map → index-Dy1wWu2e.js.map} +1 -1
- package/dashboard/dist/assets/{index-BT1Ms5Q5.js → index-HLu98Sqh.js} +2 -2
- package/dashboard/dist/assets/{index-BT1Ms5Q5.js.map → index-HLu98Sqh.js.map} +1 -1
- package/dashboard/dist/assets/{index-BFASQ7_X.js → index-ag2pCAPu.js} +2 -2
- package/dashboard/dist/assets/{index-BFASQ7_X.js.map → index-ag2pCAPu.js.map} +1 -1
- package/dashboard/dist/assets/{index-BsHVgWH6.js → index-gkxPN7Vx.js} +2 -2
- package/dashboard/dist/assets/{index-BsHVgWH6.js.map → index-gkxPN7Vx.js.map} +1 -1
- package/dashboard/dist/assets/index-m9A3UYst.css +1 -0
- package/dashboard/dist/assets/{knowledge-Cci_r6Kl.js → knowledge-DnMs-SOJ.js} +2 -2
- package/dashboard/dist/assets/{knowledge-Cci_r6Kl.js.map → knowledge-DnMs-SOJ.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-NY4iL0L-.js → mcp-CwW-K3r4.js} +2 -2
- package/dashboard/dist/assets/{mcp-NY4iL0L-.js.map → mcp-CwW-K3r4.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-CbvZo_I_.js → mcp-query-BZt5e8_Q.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-CbvZo_I_.js.map → mcp-query-BZt5e8_Q.js.map} +1 -1
- package/dashboard/dist/assets/{personas-Fy-f7QQd.js → personas-UA-Xn60f.js} +2 -2
- package/dashboard/dist/assets/{personas-Fy-f7QQd.js.map → personas-UA-Xn60f.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-DKiuozxV.js → pipelines-Cu3PARum.js} +2 -2
- package/dashboard/dist/assets/{pipelines-DKiuozxV.js.map → pipelines-Cu3PARum.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-CdM1Rkk9.js → tasks-BO6h8GJE.js} +2 -2
- package/dashboard/dist/assets/{tasks-CdM1Rkk9.js.map → tasks-BO6h8GJE.js.map} +1 -1
- package/dashboard/dist/assets/{topics-XNy2mf3n.js → topics-CWjCR-17.js} +2 -2
- package/dashboard/dist/assets/{topics-XNy2mf3n.js.map → topics-CWjCR-17.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-CyGcU3_S.js → useDebouncedValue-6t0jx1RB.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-CyGcU3_S.js.map → useDebouncedValue-6t0jx1RB.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-C2RIh_IN.js → useNamespace-CqpoQx6D.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-C2RIh_IN.js.map → useNamespace-CqpoQx6D.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CDiV5fjf.js → useYamlActivityEvents-hmCQQwzB.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CDiV5fjf.js.map → useYamlActivityEvents-hmCQQwzB.js.map} +1 -1
- package/dashboard/dist/assets/{validate-DcGWN82Y.js → validate-BIRn4a6d.js} +2 -2
- package/dashboard/dist/assets/{validate-DcGWN82Y.js.map → validate-BIRn4a6d.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-CH8UrouH.js → yaml-workflows-ziUdZhKY.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-CH8UrouH.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 +3 -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 +2 -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/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/iam.md +7 -5
- package/docs/mcp.md +159 -210
- package/docs/oauth-and-delegation.md +32 -21
- package/docs/topics.md +2 -0
- package/docs/workflows.md +14 -112
- package/package.json +5 -3
- package/dashboard/dist/assets/ConfirmDeleteModal-DW4DrPur.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-DW4DrPur.js.map +0 -1
- package/dashboard/dist/assets/ProcessDetailPage-DNgCIwRl.js +0 -2
- package/dashboard/dist/assets/ResolverForm-CKIOAGtY.js +0 -8
- package/dashboard/dist/assets/ResolverForm-CKIOAGtY.js.map +0 -1
- package/dashboard/dist/assets/index-CtlBjl8o.js +0 -2
- package/dashboard/dist/assets/index-CtlBjl8o.js.map +0 -1
- package/dashboard/dist/assets/index-LRYC__mE.js +0 -67
- package/dashboard/dist/assets/index-LRYC__mE.js.map +0 -1
- package/dashboard/dist/assets/index-MYI2_Xb3.css +0 -1
|
@@ -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`.
|
package/docs/api/mcp/admin.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Admin
|
|
2
2
|
|
|
3
|
-
Unified system management
|
|
3
|
+
Unified system management: tasks, escalations, workflows, diagnostics, agents, bot accounts, control plane, pipelines, topics, users, roles, personas, scan codes, announcements, and settings.
|
|
4
4
|
|
|
5
5
|
| Property | Value |
|
|
6
6
|
|----------|-------|
|
|
@@ -11,7 +11,7 @@ Unified system management — tasks, escalations, workflows, diagnostics, agents
|
|
|
11
11
|
|
|
12
12
|
## Access
|
|
13
13
|
|
|
14
|
-
Each tool below is marked **Read-safe**. A service-account key scoped `mcp:read` can call the Read-safe tools; the rest (Read-safe: No) change state and require an `mcp:full` key, and the account's role must permit the action on the target. See the MCP guide's [Access](../../mcp.md#access-which-tools-and-which-records) section for the full model.
|
|
14
|
+
Each tool below is marked **Read-safe**. A service-account key scoped `mcp:read` can call the Read-safe tools; the rest (Read-safe: No) change state and require an `mcp:full` key, and the account's role must permit the action on the target. Each tool also declares a role gate (`caller`, `admin`, `builder`, or `roleManager`); a tool appears only to accounts that hold it. See the MCP guide's [Access](../../mcp.md#access-which-tools-and-which-records) section for the full model.
|
|
15
15
|
|
|
16
16
|
## Compile Hints
|
|
17
17
|
|
|
@@ -189,6 +189,57 @@ and want to skip the id lookup.
|
|
|
189
189
|
| signalKey | string | Yes | Deterministic signal key of the escalation |
|
|
190
190
|
| resolverPayload | object | Yes | Resolution payload |
|
|
191
191
|
|
|
192
|
+
### accumulate_item
|
|
193
|
+
|
|
194
|
+
Add one item to an open accumulator escalation. Interim adds return outcome `accepted` with the count held and the remaining slots. The add that reaches max completes the row and wakes the waiting workflow with the ordered collection. A reciprocal row is written in the same statement, both or neither.
|
|
195
|
+
|
|
196
|
+
| | |
|
|
197
|
+
|---|---|
|
|
198
|
+
| Read-safe | No |
|
|
199
|
+
|
|
200
|
+
**Parameters:**
|
|
201
|
+
|
|
202
|
+
| Field | Type | Required | Description |
|
|
203
|
+
|-------|------|----------|-------------|
|
|
204
|
+
| id | string | Yes | Accumulator escalation UUID (the container) |
|
|
205
|
+
| itemKey | string | Yes | Key the item is held under |
|
|
206
|
+
| payload | object | No | Item payload, delivered inside `$accumulated` |
|
|
207
|
+
| metadata | object | No | Merge patch for the container metadata, same statement |
|
|
208
|
+
| reciprocal | object | No | A second accumulator row written in the same statement. Exactly one of `id`, `signalKey`, or `key`/`value` |
|
|
209
|
+
| initiatedBy | string | No | `lt_users.id` of the person the add is for, recorded as the entry actor (attribution only) |
|
|
210
|
+
|
|
211
|
+
### remove_item
|
|
212
|
+
|
|
213
|
+
Remove one held item from a pending open accumulator escalation. The row stays pending and the waiting workflow stays asleep.
|
|
214
|
+
|
|
215
|
+
| | |
|
|
216
|
+
|---|---|
|
|
217
|
+
| Read-safe | No |
|
|
218
|
+
|
|
219
|
+
**Parameters:**
|
|
220
|
+
|
|
221
|
+
| Field | Type | Required | Description |
|
|
222
|
+
|-------|------|----------|-------------|
|
|
223
|
+
| id | string | Yes | Accumulator escalation UUID |
|
|
224
|
+
| itemKey | string | Yes | Held item key to remove |
|
|
225
|
+
| reciprocal | object | No | A second accumulator row written in the same statement. Exactly one of `id`, `signalKey`, or `key`/`value` |
|
|
226
|
+
| initiatedBy | string | No | `lt_users.id` of the person the removal is for, recorded as the entry actor (attribution only) |
|
|
227
|
+
|
|
228
|
+
### get_escalation_items
|
|
229
|
+
|
|
230
|
+
The held items of an accumulator or batch escalation in arrival order, with the count and max. Select by `id` or by `signalKey`.
|
|
231
|
+
|
|
232
|
+
| | |
|
|
233
|
+
|---|---|
|
|
234
|
+
| Read-safe | Yes |
|
|
235
|
+
|
|
236
|
+
**Parameters:**
|
|
237
|
+
|
|
238
|
+
| Field | Type | Required | Description |
|
|
239
|
+
|-------|------|----------|-------------|
|
|
240
|
+
| id | string | No | Accumulator or batch escalation UUID |
|
|
241
|
+
| signalKey | string | No | The row's `signal_key`, when the caller knows the signal id rather than the row id |
|
|
242
|
+
|
|
192
243
|
### escalate_escalation
|
|
193
244
|
|
|
194
245
|
Route a pending escalation to a different role per the escalation chain.
|
|
@@ -333,6 +384,20 @@ Assign multiple escalations to a specific user.
|
|
|
333
384
|
| targetUserId | string | Yes | User to assign to |
|
|
334
385
|
| durationMinutes | integer | No | Lock duration |
|
|
335
386
|
|
|
387
|
+
### bulk_unassign
|
|
388
|
+
|
|
389
|
+
Return claimed escalations to the available pool. This is the admin override of a live claim; a claimant returning their own row uses `release_escalation`. Unclaimed and terminal rows are skipped.
|
|
390
|
+
|
|
391
|
+
| | |
|
|
392
|
+
|---|---|
|
|
393
|
+
| Read-safe | No |
|
|
394
|
+
|
|
395
|
+
**Parameters:**
|
|
396
|
+
|
|
397
|
+
| Field | Type | Required | Description |
|
|
398
|
+
|-------|------|----------|-------------|
|
|
399
|
+
| ids | string[] | Yes | Escalation UUIDs to return to the pool |
|
|
400
|
+
|
|
336
401
|
### bulk_escalate
|
|
337
402
|
|
|
338
403
|
Escalate multiple escalations to a different role.
|
|
@@ -377,6 +442,78 @@ Update the priority of multiple escalations.
|
|
|
377
442
|
| ids | string[] | Yes | Escalation IDs |
|
|
378
443
|
| priority | integer | Yes | New priority value |
|
|
379
444
|
|
|
445
|
+
### resolve_by_ids
|
|
446
|
+
|
|
447
|
+
Resolve a set of escalations by id in one guarded statement, for rows woken collectively (no per-row signal delivery). Callers may resolve only rows whose role they hold.
|
|
448
|
+
|
|
449
|
+
| | |
|
|
450
|
+
|---|---|
|
|
451
|
+
| Read-safe | No |
|
|
452
|
+
|
|
453
|
+
**Parameters:**
|
|
454
|
+
|
|
455
|
+
| Field | Type | Required | Description |
|
|
456
|
+
|-------|------|----------|-------------|
|
|
457
|
+
| ids | string[] | Yes | Escalation ids to resolve as one set |
|
|
458
|
+
| resolverPayload | object | Yes | Resolution payload applied to every row |
|
|
459
|
+
| metadata | object | No | Outcome patch merged into each row |
|
|
460
|
+
|
|
461
|
+
### search_by_facets
|
|
462
|
+
|
|
463
|
+
Faceted search over a pond, scoped to the caller's role. Filter by type, status, availability, and metadata facets; sort by columns; page with `limit`/`offset`.
|
|
464
|
+
|
|
465
|
+
| | |
|
|
466
|
+
|---|---|
|
|
467
|
+
| Read-safe | Yes |
|
|
468
|
+
|
|
469
|
+
**Parameters:**
|
|
470
|
+
|
|
471
|
+
| Field | Type | Required | Description |
|
|
472
|
+
|-------|------|----------|-------------|
|
|
473
|
+
| role | string | Yes | Pond role to target (the escalation role) |
|
|
474
|
+
| types | string[] | No | Only rows whose escalation type is one of these |
|
|
475
|
+
| subtypes | string[] | No | Only rows whose escalation subtype is one of these |
|
|
476
|
+
| status | string | No | Status filter (e.g. `pending`) |
|
|
477
|
+
| available | boolean | No | Only rows not currently claimed |
|
|
478
|
+
| facets | object | No | Metadata facet equality filters |
|
|
479
|
+
| orderBy | object[] | No | Sort order over columns |
|
|
480
|
+
| limit | integer | No | Max results |
|
|
481
|
+
| offset | integer | No | Pagination offset |
|
|
482
|
+
|
|
483
|
+
### claim_groups
|
|
484
|
+
|
|
485
|
+
Batch-claim complete origin groups (orders) in priority order over a pond, assigned to the calling principal. Scoped to the pond role.
|
|
486
|
+
|
|
487
|
+
| | |
|
|
488
|
+
|---|---|
|
|
489
|
+
| Read-safe | No |
|
|
490
|
+
|
|
491
|
+
**Parameters:**
|
|
492
|
+
|
|
493
|
+
| Field | Type | Required | Description |
|
|
494
|
+
|-------|------|----------|-------------|
|
|
495
|
+
| query | object | Yes | Facet query selecting the pond |
|
|
496
|
+
| limit | integer | No | Max groups to claim |
|
|
497
|
+
| durationMinutes | integer | No | Claim TTL in minutes |
|
|
498
|
+
| sizeFacet | string | No | Metadata key holding the group size |
|
|
499
|
+
|
|
500
|
+
### claim_by_facets
|
|
501
|
+
|
|
502
|
+
Batch-claim individual rows matching a facet query (`FOR UPDATE SKIP LOCKED`), assigned to the calling principal. Scoped to the pond role.
|
|
503
|
+
|
|
504
|
+
| | |
|
|
505
|
+
|---|---|
|
|
506
|
+
| Read-safe | No |
|
|
507
|
+
|
|
508
|
+
**Parameters:**
|
|
509
|
+
|
|
510
|
+
| Field | Type | Required | Description |
|
|
511
|
+
|-------|------|----------|-------------|
|
|
512
|
+
| query | object | Yes | Facet query selecting the rows |
|
|
513
|
+
| limit | integer | No | Max rows to claim |
|
|
514
|
+
| durationMinutes | integer | No | Claim TTL in minutes |
|
|
515
|
+
| allOrNone | boolean | No | Commit only if the full limit was acquired |
|
|
516
|
+
|
|
380
517
|
### aggregate_by_facets
|
|
381
518
|
|
|
382
519
|
Grouped analytics over the escalation intervals. Every escalation is one open
|
|
@@ -555,7 +692,8 @@ Start a workflow registered read-safe (side-effect-free). Same contract as `invo
|
|
|
555
692
|
Check workflow status and result. Returns status (`running` | `complete` | `failed`)
|
|
556
693
|
and the result when complete; a failed run carries `terminated` (true when an
|
|
557
694
|
interrupt ended it) and `error`. Resolution is namespace-aware — pass `app_id` to read a
|
|
558
|
-
workflow (e.g. a child) running in a non-default HotMesh namespace.
|
|
695
|
+
workflow (e.g. a child) running in a non-default HotMesh namespace. Readable by a builder,
|
|
696
|
+
or by the person who started the run or the account it runs as.
|
|
559
697
|
|
|
560
698
|
| | |
|
|
561
699
|
|---|---|
|
|
@@ -568,6 +706,20 @@ workflow (e.g. a child) running in a non-default HotMesh namespace.
|
|
|
568
706
|
| workflow_id | string | Yes | Workflow ID to check |
|
|
569
707
|
| app_id | string | No | HotMesh namespace for resolution (default: durable) |
|
|
570
708
|
|
|
709
|
+
### terminate_workflow
|
|
710
|
+
|
|
711
|
+
Terminate a workflow: kills the durable handle and cancels the workflow's pending escalations. Use this to stop a workflow. `interrupt_pipeline_job` is an engine-level interrupt that leaves escalation rows stranded as orphans.
|
|
712
|
+
|
|
713
|
+
| | |
|
|
714
|
+
|---|---|
|
|
715
|
+
| Read-safe | No |
|
|
716
|
+
|
|
717
|
+
**Parameters:**
|
|
718
|
+
|
|
719
|
+
| Field | Type | Required | Description |
|
|
720
|
+
|-------|------|----------|-------------|
|
|
721
|
+
| workflow_id | string | Yes | HotMesh workflow ID to terminate |
|
|
722
|
+
|
|
571
723
|
## MCP Servers
|
|
572
724
|
|
|
573
725
|
### list_mcp_servers
|
|
@@ -905,6 +1057,155 @@ Define an escalation path from one role to another.
|
|
|
905
1057
|
| source_role | string | Yes | Source role |
|
|
906
1058
|
| target_role | string | Yes | Target role |
|
|
907
1059
|
|
|
1060
|
+
## Personas
|
|
1061
|
+
|
|
1062
|
+
A persona is a named role bundle: each linked role carries a relationship scope, and assigning the persona to a user adds the user to every linked role at that scope. Holder memberships are reconciled whenever a link changes.
|
|
1063
|
+
|
|
1064
|
+
### list_personas
|
|
1065
|
+
|
|
1066
|
+
List all personas with their role links and holder counts.
|
|
1067
|
+
|
|
1068
|
+
| | |
|
|
1069
|
+
|---|---|
|
|
1070
|
+
| Read-safe | Yes |
|
|
1071
|
+
|
|
1072
|
+
**Parameters:** None.
|
|
1073
|
+
|
|
1074
|
+
### get_persona
|
|
1075
|
+
|
|
1076
|
+
Fetch one persona with its role links and current assignees.
|
|
1077
|
+
|
|
1078
|
+
| | |
|
|
1079
|
+
|---|---|
|
|
1080
|
+
| Read-safe | Yes |
|
|
1081
|
+
|
|
1082
|
+
**Parameters:**
|
|
1083
|
+
|
|
1084
|
+
| Field | Type | Required | Description |
|
|
1085
|
+
|-------|------|----------|-------------|
|
|
1086
|
+
| key | string | Yes | Persona key |
|
|
1087
|
+
|
|
1088
|
+
### create_persona
|
|
1089
|
+
|
|
1090
|
+
Create a persona. Link roles with `link_persona_role`, then assign users with `assign_persona`.
|
|
1091
|
+
|
|
1092
|
+
| | |
|
|
1093
|
+
|---|---|
|
|
1094
|
+
| Read-safe | No |
|
|
1095
|
+
|
|
1096
|
+
**Parameters:**
|
|
1097
|
+
|
|
1098
|
+
| Field | Type | Required | Description |
|
|
1099
|
+
|-------|------|----------|-------------|
|
|
1100
|
+
| key | string | Yes | Stable key (a-z, 0-9, hyphens, underscores; starts with a letter) |
|
|
1101
|
+
| title | string | No | Display title, e.g. "Print Manager" |
|
|
1102
|
+
| description | string | No | One-paragraph description of the persona's day |
|
|
1103
|
+
|
|
1104
|
+
### update_persona
|
|
1105
|
+
|
|
1106
|
+
Update a persona's title or description with PATCH semantics: omitted fields keep their values, `null` clears.
|
|
1107
|
+
|
|
1108
|
+
| | |
|
|
1109
|
+
|---|---|
|
|
1110
|
+
| Read-safe | No |
|
|
1111
|
+
|
|
1112
|
+
**Parameters:**
|
|
1113
|
+
|
|
1114
|
+
| Field | Type | Required | Description |
|
|
1115
|
+
|-------|------|----------|-------------|
|
|
1116
|
+
| key | string | Yes | Persona key to update |
|
|
1117
|
+
| title | string \| null | No | New display title (`null` clears) |
|
|
1118
|
+
| description | string \| null | No | New description (`null` clears) |
|
|
1119
|
+
|
|
1120
|
+
### delete_persona
|
|
1121
|
+
|
|
1122
|
+
Delete a persona. Memberships it sustains are removed, or re-homed to a sibling persona the user still holds. Direct grants stay as they are.
|
|
1123
|
+
|
|
1124
|
+
| | |
|
|
1125
|
+
|---|---|
|
|
1126
|
+
| Read-safe | No |
|
|
1127
|
+
|
|
1128
|
+
**Parameters:**
|
|
1129
|
+
|
|
1130
|
+
| Field | Type | Required | Description |
|
|
1131
|
+
|-------|------|----------|-------------|
|
|
1132
|
+
| key | string | Yes | Persona key to delete |
|
|
1133
|
+
|
|
1134
|
+
### link_persona_role
|
|
1135
|
+
|
|
1136
|
+
Link a role to a persona, or change an existing link's relationship. Every current holder's memberships are reconciled in the same transaction.
|
|
1137
|
+
|
|
1138
|
+
| | |
|
|
1139
|
+
|---|---|
|
|
1140
|
+
| Read-safe | No |
|
|
1141
|
+
|
|
1142
|
+
**Parameters:**
|
|
1143
|
+
|
|
1144
|
+
| Field | Type | Required | Description |
|
|
1145
|
+
|-------|------|----------|-------------|
|
|
1146
|
+
| key | string | Yes | Persona key |
|
|
1147
|
+
| role | string | Yes | Role to link (created if absent) |
|
|
1148
|
+
| relationship | string | Yes | `write-all` (full worker), `write-self` (acts on own assignments), `read-all` (observer), or `write-none` (same as `read-all`) |
|
|
1149
|
+
|
|
1150
|
+
### unlink_persona_role
|
|
1151
|
+
|
|
1152
|
+
Remove a role link from a persona and reconcile every holder's memberships.
|
|
1153
|
+
|
|
1154
|
+
| | |
|
|
1155
|
+
|---|---|
|
|
1156
|
+
| Read-safe | No |
|
|
1157
|
+
|
|
1158
|
+
**Parameters:**
|
|
1159
|
+
|
|
1160
|
+
| Field | Type | Required | Description |
|
|
1161
|
+
|-------|------|----------|-------------|
|
|
1162
|
+
| key | string | Yes | Persona key |
|
|
1163
|
+
| role | string | Yes | Role link to remove |
|
|
1164
|
+
|
|
1165
|
+
### assign_persona
|
|
1166
|
+
|
|
1167
|
+
Assign a persona to a user, adding the user to each linked role at the linked scope. Idempotent: re-assigning overlays fresh from the persona's current links. When bundles overlap the highest allowance wins, and direct grants are only raised.
|
|
1168
|
+
|
|
1169
|
+
| | |
|
|
1170
|
+
|---|---|
|
|
1171
|
+
| Read-safe | No |
|
|
1172
|
+
|
|
1173
|
+
**Parameters:**
|
|
1174
|
+
|
|
1175
|
+
| Field | Type | Required | Description |
|
|
1176
|
+
|-------|------|----------|-------------|
|
|
1177
|
+
| user_id | string | Yes | User UUID |
|
|
1178
|
+
| key | string | Yes | Persona key |
|
|
1179
|
+
|
|
1180
|
+
### unassign_persona
|
|
1181
|
+
|
|
1182
|
+
Unassign a persona from a user. Removes only the memberships the persona sustains; rows another held persona still grants are re-homed to it, and direct grants stay as they are.
|
|
1183
|
+
|
|
1184
|
+
| | |
|
|
1185
|
+
|---|---|
|
|
1186
|
+
| Read-safe | No |
|
|
1187
|
+
|
|
1188
|
+
**Parameters:**
|
|
1189
|
+
|
|
1190
|
+
| Field | Type | Required | Description |
|
|
1191
|
+
|-------|------|----------|-------------|
|
|
1192
|
+
| user_id | string | Yes | User UUID |
|
|
1193
|
+
| key | string | Yes | Persona key |
|
|
1194
|
+
|
|
1195
|
+
### get_user_personas
|
|
1196
|
+
|
|
1197
|
+
The personas a user holds plus the composed role and scope map their memberships form. Each row names its sustaining persona, or `null` for a direct grant.
|
|
1198
|
+
|
|
1199
|
+
| | |
|
|
1200
|
+
|---|---|
|
|
1201
|
+
| Read-safe | Yes |
|
|
1202
|
+
|
|
1203
|
+
**Parameters:**
|
|
1204
|
+
|
|
1205
|
+
| Field | Type | Required | Description |
|
|
1206
|
+
|-------|------|----------|-------------|
|
|
1207
|
+
| user_id | string | Yes | User UUID |
|
|
1208
|
+
|
|
908
1209
|
## Maintenance
|
|
909
1210
|
|
|
910
1211
|
### prune
|
|
@@ -1569,7 +1870,7 @@ Export the full workflow state using HotMesh durable export.
|
|
|
1569
1870
|
|
|
1570
1871
|
### export_workflow_execution
|
|
1571
1872
|
|
|
1572
|
-
Export workflow state as a structured execution event history.
|
|
1873
|
+
Export workflow state as a structured execution event history. Readable by a builder, or by the person who started the run or the account it runs as.
|
|
1573
1874
|
|
|
1574
1875
|
| | |
|
|
1575
1876
|
|---|---|
|
|
@@ -1613,36 +1914,27 @@ Return the numeric status semaphore for a workflow.
|
|
|
1613
1914
|
|-------|------|----------|-------------|
|
|
1614
1915
|
| workflow_id | string | Yes | Workflow ID |
|
|
1615
1916
|
|
|
1616
|
-
##
|
|
1917
|
+
## Overview
|
|
1617
1918
|
|
|
1618
|
-
|
|
1919
|
+
### get_system_overview
|
|
1619
1920
|
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
### ortho_submit
|
|
1623
|
-
|
|
1624
|
-
Start a new orthotic manufacturing order through the 8-stage pipeline.
|
|
1921
|
+
Triage-ready system state in one call: escalation queue pressure (aging, unclaimed, by role), task throughput (created, completed, failed), hourly trends, infrastructure status (MCP servers, agents, compiled workflows), and a business process summary.
|
|
1625
1922
|
|
|
1626
1923
|
| | |
|
|
1627
1924
|
|---|---|
|
|
1628
|
-
| Read-safe |
|
|
1925
|
+
| Read-safe | Yes |
|
|
1629
1926
|
|
|
1630
1927
|
**Parameters:**
|
|
1631
1928
|
|
|
1632
1929
|
| Field | Type | Required | Description |
|
|
1633
1930
|
|-------|------|----------|-------------|
|
|
1634
|
-
|
|
|
1635
|
-
| `item_type` | `string` | Yes | Item type (e.g. `"insole-standard"`, `"insole-diabetic"`) |
|
|
1636
|
-
| `stages` | `string[]` | No | Override the stage sequence. Default: `["design","review","print","grind","glue","finish","qa","ship"]` |
|
|
1637
|
-
| `metadata` | `object` | No | Additional order metadata passed through to each stage escalation |
|
|
1931
|
+
| period | string | No | Time window for trends and throughput: `1h`, `24h` (default), or `7d` |
|
|
1638
1932
|
|
|
1639
|
-
|
|
1933
|
+
## Domain Context
|
|
1640
1934
|
|
|
1641
|
-
|
|
1935
|
+
### get_domain_context
|
|
1642
1936
|
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
List open ortho-pipeline stage escalations waiting to be completed.
|
|
1937
|
+
The deployment's domain dictionary merged with live platform state: how the operation's jargon maps to roles, workflows, escalations, and metadata facets. With no arguments it returns the overview and index; `{ topic, name }` returns specific entries. Topic `term` looks a word or alias up across every kind. With no dictionary registered it serves a view derived from the live registries. See [Domain Dictionary](../../domain-dictionary.md).
|
|
1646
1938
|
|
|
1647
1939
|
| | |
|
|
1648
1940
|
|---|---|
|
|
@@ -1652,16 +1944,16 @@ List open ortho-pipeline stage escalations waiting to be completed.
|
|
|
1652
1944
|
|
|
1653
1945
|
| Field | Type | Required | Description |
|
|
1654
1946
|
|-------|------|----------|-------------|
|
|
1655
|
-
|
|
|
1656
|
-
|
|
|
1947
|
+
| topic | string | No | `term`, `entity`, `role`, `workflow`, `facet`, `action`, `rule`, or `runbook`. Omit for the overview and index |
|
|
1948
|
+
| name | string | No | One entry: a term or alias (case-insensitive), a live role name, a workflow type, or a runbook name |
|
|
1657
1949
|
|
|
1658
|
-
|
|
1950
|
+
## Scan Codes
|
|
1659
1951
|
|
|
1660
|
-
|
|
1952
|
+
Scan codes have the form `version:category:target`. A scheme defines how a code parses and which metadata facet the target resolves against; a rule defines the steps a category runs. See [Scan Codes](../../scan-codes.md).
|
|
1661
1953
|
|
|
1662
|
-
###
|
|
1954
|
+
### execute_scan_code
|
|
1663
1955
|
|
|
1664
|
-
|
|
1956
|
+
Execute a raw scan code. Parses it against the configured schemes, walks the rule's condition and action steps, and returns a structured outcome (`executed`, `confirm_required`, `matched_list`, `no_match_fallback`, `unconfigured`, `invalid_code`, `forbidden`, `conflict`). Identity schemes mint an acting-identity grant.
|
|
1665
1957
|
|
|
1666
1958
|
| | |
|
|
1667
1959
|
|---|---|
|
|
@@ -1671,46 +1963,114 @@ Complete a pending ortho pipeline stage. Claims the escalation and resolves it w
|
|
|
1671
1963
|
|
|
1672
1964
|
| Field | Type | Required | Description |
|
|
1673
1965
|
|-------|------|----------|-------------|
|
|
1674
|
-
|
|
|
1675
|
-
|
|
|
1676
|
-
|
|
|
1966
|
+
| code | string | Yes | Raw scan string, e.g. `10:1:SN123` or `10175433211` |
|
|
1967
|
+
| actingToken | string | No | Acting-identity grant (`eph:v1:acting_identity:*`); verbs run as the badged person |
|
|
1968
|
+
| previousActingToken | string | No | The grant an identity scan replaces, revoked on mint (best effort) |
|
|
1969
|
+
|
|
1970
|
+
### execute_scan_choice
|
|
1971
|
+
|
|
1972
|
+
Execute one choice presented by a PRESENT step. The pointer (scheme, category, step, choice, escalation) is re-validated against live config, the row's current state, the acting-identity gate, and RBAC before the verb runs.
|
|
1973
|
+
|
|
1974
|
+
| | |
|
|
1975
|
+
|---|---|
|
|
1976
|
+
| Read-safe | No |
|
|
1677
1977
|
|
|
1678
|
-
**
|
|
1978
|
+
**Parameters:**
|
|
1679
1979
|
|
|
1680
|
-
|
|
1980
|
+
| Field | Type | Required | Description |
|
|
1981
|
+
|-------|------|----------|-------------|
|
|
1982
|
+
| schemeVersion | integer | Yes | Scheme version of the presented choice |
|
|
1983
|
+
| category | string | Yes | Rule category |
|
|
1984
|
+
| stepIndex | integer | Yes | Index of the PRESENT step |
|
|
1985
|
+
| choiceIndex | integer | Yes | Index of the chosen option |
|
|
1986
|
+
| escalationId | string | Yes | Escalation the choice screen presented |
|
|
1987
|
+
| actingToken | string | No | Acting-identity grant; the choice attributes to the badged person |
|
|
1681
1988
|
|
|
1682
|
-
###
|
|
1989
|
+
### list_scan_schemes
|
|
1683
1990
|
|
|
1684
|
-
|
|
1991
|
+
List all scan-code schemes: version, name, target facet, and encoding.
|
|
1685
1992
|
|
|
1686
1993
|
| | |
|
|
1687
1994
|
|---|---|
|
|
1688
1995
|
| Read-safe | Yes |
|
|
1689
1996
|
|
|
1997
|
+
**Parameters:** None.
|
|
1998
|
+
|
|
1999
|
+
### upsert_scan_scheme
|
|
2000
|
+
|
|
2001
|
+
Create or replace a scan scheme: which metadata facet the scanned target resolves against and how the code string parses (fixed digits or delimited text). `kind: identity` makes the scheme a badge layer that mints acting-identity grants.
|
|
2002
|
+
|
|
2003
|
+
| | |
|
|
2004
|
+
|---|---|
|
|
2005
|
+
| Read-safe | No |
|
|
2006
|
+
|
|
2007
|
+
**Parameters:**
|
|
2008
|
+
|
|
2009
|
+
| Field | Type | Required | Description |
|
|
2010
|
+
|-------|------|----------|-------------|
|
|
2011
|
+
| version | integer | Yes | Two-digit scheme version (10-99) |
|
|
2012
|
+
| name | string | Yes | Scheme display name |
|
|
2013
|
+
| description | string | No | Scheme description |
|
|
2014
|
+
| target_facet | string | Yes | Metadata key the target resolves against: an escalation metadata key for action schemes, an `lt_users.metadata` key (e.g. `badge_id`) for identity schemes |
|
|
2015
|
+
| encoding | string | No | `fixed` (digits only, UPC) or `delimited` (text with separators) |
|
|
2016
|
+
| delimiter | string | No | Separator for delimited encoding (default `:`) |
|
|
2017
|
+
| target_length | integer | No | Target digit count for fixed encoding |
|
|
2018
|
+
| kind | string | No | `action` (steps over escalations, default) or `identity` (a badge that mints a short-lived acting-identity grant) |
|
|
2019
|
+
| grant_ttl_seconds | integer | No | Identity kind: lifetime of a minted grant |
|
|
2020
|
+
| grant_max_uses | integer | No | Identity kind: `0` = TTL-bound; `n` = the grant covers n scan requests |
|
|
2021
|
+
| enabled | boolean | No | Whether the scheme is active |
|
|
2022
|
+
|
|
2023
|
+
### upsert_scan_rule
|
|
2024
|
+
|
|
2025
|
+
Create or replace a scan rule for a scheme category: a friendly name, ordered condition and action steps (the first matching query wins), a fallback screen when nothing matches, and a not-primed screen for identity-required steps.
|
|
2026
|
+
|
|
2027
|
+
| | |
|
|
2028
|
+
|---|---|
|
|
2029
|
+
| Read-safe | No |
|
|
2030
|
+
|
|
1690
2031
|
**Parameters:**
|
|
1691
2032
|
|
|
1692
2033
|
| Field | Type | Required | Description |
|
|
1693
2034
|
|-------|------|----------|-------------|
|
|
1694
|
-
|
|
|
2035
|
+
| scheme_version | integer | Yes | Scheme version |
|
|
2036
|
+
| category | string | Yes | Single-digit category (0-9) |
|
|
2037
|
+
| name | string | Yes | Friendly label printed next to the physical code |
|
|
2038
|
+
| steps | object[] | Yes | Ordered condition/action steps; first match wins |
|
|
2039
|
+
| fallback | object | No | Screen rendered when no step matches (identity schemes: the unknown-badge screen) |
|
|
2040
|
+
| notPrimed | object | No | "Scan your badge" screen, rendered when an acting identity is required and absent |
|
|
2041
|
+
| enabled | boolean | No | Whether the rule is active |
|
|
2042
|
+
|
|
2043
|
+
### delete_scan_rule
|
|
2044
|
+
|
|
2045
|
+
Delete one scan rule by scheme version and category.
|
|
2046
|
+
|
|
2047
|
+
| | |
|
|
2048
|
+
|---|---|
|
|
2049
|
+
| Read-safe | No |
|
|
1695
2050
|
|
|
1696
|
-
**
|
|
2051
|
+
**Parameters:**
|
|
1697
2052
|
|
|
1698
|
-
|
|
2053
|
+
| Field | Type | Required | Description |
|
|
2054
|
+
|-------|------|----------|-------------|
|
|
2055
|
+
| scheme_version | integer | Yes | Scheme version |
|
|
2056
|
+
| category | string | Yes | Rule category |
|
|
1699
2057
|
|
|
1700
|
-
|
|
2058
|
+
## Announcements
|
|
1701
2059
|
|
|
1702
|
-
|
|
1703
|
-
ortho_submit({ order_id: "ORD-042", item_type: "insole-diabetic" })
|
|
1704
|
-
→ { workflow_id: "wf-abc123", stages: ["design", "review", ...] }
|
|
2060
|
+
### publish_announcement
|
|
1705
2061
|
|
|
1706
|
-
|
|
1707
|
-
→ [{ id: "esc-001", stage: "design", order_id: "ORD-042" }]
|
|
2062
|
+
Publish a dashboard announcement: a banner every targeted user sees live and on their next load until it expires or they dismiss it. Bodies broadcast to all authenticated subscribers, so keep secrets out of them.
|
|
1708
2063
|
|
|
1709
|
-
|
|
1710
|
-
|
|
2064
|
+
| | |
|
|
2065
|
+
|---|---|
|
|
2066
|
+
| Read-safe | No |
|
|
1711
2067
|
|
|
1712
|
-
|
|
2068
|
+
**Parameters:**
|
|
1713
2069
|
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
2070
|
+
| Field | Type | Required | Description |
|
|
2071
|
+
|-------|------|----------|-------------|
|
|
2072
|
+
| body | string | Yes | Markdown body |
|
|
2073
|
+
| title | string | No | Headline shown on the collapsed banner |
|
|
2074
|
+
| layout | string | No | Presentation form (default `banner`) |
|
|
2075
|
+
| roles | string[] | No | Target roles; omitted = everyone |
|
|
2076
|
+
| expires_at | string | No | ISO timestamp; omitted = 24 hours from now |
|
|
@@ -9,6 +9,10 @@ Managed file storage for reading, writing, listing, and deleting files.
|
|
|
9
9
|
| AI required | No |
|
|
10
10
|
| Credential providers | — |
|
|
11
11
|
|
|
12
|
+
## Access
|
|
13
|
+
|
|
14
|
+
Every tool on this server requires builder access (superadmin or the `engineer` role).
|
|
15
|
+
|
|
12
16
|
## Compile Hints
|
|
13
17
|
|
|
14
18
|
None.
|