@hotmeshio/long-tail 0.4.18 → 0.4.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/build/api/auth-sso.d.ts +12 -0
- package/build/api/auth-sso.js +54 -0
- package/build/api/escalations/bulk.js +2 -2
- package/build/api/escalations/claim.js +3 -13
- package/build/api/escalations/create.js +3 -2
- package/build/api/escalations/helpers.d.ts +1 -0
- package/build/api/escalations/helpers.js +6 -4
- package/build/api/escalations/list.d.ts +1 -0
- package/build/api/escalations/list.js +1 -0
- package/build/api/escalations/metadata.js +4 -4
- package/build/api/escalations/single.js +3 -2
- package/build/api/settings.js +5 -0
- package/build/api/topics.d.ts +9 -0
- package/build/api/topics.js +31 -2
- package/build/lib/events/index.d.ts +1 -0
- package/build/lib/events/index.js +4 -0
- package/build/lib/events/publish.d.ts +12 -9
- package/build/lib/events/publish.js +27 -17
- package/build/modules/auth.d.ts +7 -0
- package/build/modules/auth.js +104 -2
- package/build/modules/sso.d.ts +6 -0
- package/build/modules/sso.js +20 -0
- package/build/routes/auth-sso.d.ts +2 -0
- package/build/routes/auth-sso.js +51 -0
- package/build/routes/bot-accounts.js +1 -1
- package/build/routes/controlplane.js +6 -6
- package/build/routes/escalations/list.js +1 -0
- package/build/routes/index.js +2 -0
- package/build/routes/mcp-endpoint.d.ts +17 -0
- package/build/routes/mcp-endpoint.js +70 -0
- package/build/routes/roles.js +5 -5
- package/build/routes/topics.js +2 -0
- package/build/routes/users.js +31 -5
- package/build/sdk/index.d.ts +1 -0
- package/build/services/agent/input-mapper.js +17 -1
- package/build/services/escalation/crud.js +14 -1
- package/build/services/escalation/queries.d.ts +1 -0
- package/build/services/escalation/queries.js +7 -0
- package/build/services/mcp/exposure.d.ts +15 -0
- package/build/services/mcp/exposure.js +18 -0
- package/build/services/mcp/external-server.d.ts +15 -0
- package/build/services/mcp/external-server.js +125 -0
- package/build/services/mcp/seed-service-account.d.ts +11 -0
- package/build/services/mcp/seed-service-account.js +77 -0
- package/build/services/role/index.d.ts +1 -1
- package/build/services/role/index.js +2 -2
- package/build/services/topics/system-topics.js +29 -25
- package/build/services/user/index.d.ts +1 -1
- package/build/services/user/index.js +2 -1
- package/build/services/user/rbac.d.ts +11 -0
- package/build/services/user/rbac.js +17 -0
- package/build/services/user/sso-provision.d.ts +19 -0
- package/build/services/user/sso-provision.js +62 -0
- package/build/services/workflow-invocation.js +5 -3
- package/build/start/config.js +6 -0
- package/build/start/server.js +2 -0
- package/build/start/workers.js +15 -0
- package/build/system/index.js +53 -35
- package/build/system/mcp-servers/admin/agent-subscriptions.d.ts +5 -0
- package/build/system/mcp-servers/admin/agent-subscriptions.js +78 -0
- package/build/system/mcp-servers/admin/agents.d.ts +5 -0
- package/build/system/mcp-servers/admin/agents.js +103 -0
- package/build/system/mcp-servers/admin/bot-accounts.d.ts +5 -0
- package/build/system/mcp-servers/admin/bot-accounts.js +126 -0
- package/build/system/mcp-servers/admin/controlplane.d.ts +5 -0
- package/build/system/mcp-servers/admin/controlplane.js +107 -0
- package/build/system/mcp-servers/admin/escalations.js +88 -0
- package/build/system/mcp-servers/admin/exports.d.ts +5 -0
- package/build/system/mcp-servers/admin/exports.js +101 -0
- package/build/system/mcp-servers/admin/index.d.ts +16 -8
- package/build/system/mcp-servers/admin/index.js +36 -21
- package/build/system/mcp-servers/admin/pipelines.d.ts +5 -0
- package/build/system/mcp-servers/admin/pipelines.js +96 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +614 -6
- package/build/system/mcp-servers/admin/schemas.js +239 -1
- package/build/system/mcp-servers/admin/settings.d.ts +5 -0
- package/build/system/mcp-servers/admin/settings.js +53 -0
- package/build/system/mcp-servers/admin/topics.d.ts +5 -0
- package/build/system/mcp-servers/admin/topics.js +101 -0
- package/build/system/seed/tool-manifests-admin.d.ts +5077 -188
- package/build/system/seed/tool-manifests-admin.js +79 -30
- package/build/system/seed/tool-manifests-data.d.ts +20 -0
- package/build/system/seed/tool-manifests-data.js +24 -6
- package/build/system/seed/tool-manifests-escalation.d.ts +5 -0
- package/build/system/seed/tool-manifests-escalation.js +5 -0
- package/build/system/seed/tool-manifests-events.d.ts +4 -0
- package/build/system/seed/tool-manifests-events.js +4 -0
- package/build/system/seed/tool-manifests-knowledge.d.ts +6 -0
- package/build/system/seed/tool-manifests-knowledge.js +7 -0
- package/build/system/seed/tool-manifests-workflows.d.ts +8 -0
- package/build/system/seed/tool-manifests-workflows.js +8 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/auth.d.ts +71 -0
- package/build/types/events.d.ts +17 -6
- package/build/types/index.d.ts +1 -1
- package/build/types/startup.d.ts +22 -1
- package/dashboard/dist/assets/{AdminDashboard-Cfo0mwL2.js → AdminDashboard-BwUGcCxQ.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-Cfo0mwL2.js.map → AdminDashboard-BwUGcCxQ.js.map} +1 -1
- package/dashboard/dist/assets/AgentConfigPage-DgrYzLwq.js +16 -0
- package/dashboard/dist/assets/AgentConfigPage-DgrYzLwq.js.map +1 -0
- package/dashboard/dist/assets/{AgentDetailPage-3mZA7SOb.js → AgentDetailPage-XJpl7wfJ.js} +4 -4
- package/dashboard/dist/assets/AgentDetailPage-XJpl7wfJ.js.map +1 -0
- package/dashboard/dist/assets/{AgentsPage-CTVocfBb.js → AgentsPage-CGpVG6r8.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-CTVocfBb.js.map → AgentsPage-CGpVG6r8.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-DR1e0TQZ.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-CA9x9o5s.js.map → AvailableEscalationsPage-DR1e0TQZ.js.map} +1 -1
- package/dashboard/dist/assets/BotPicker-BKtjl6IL.js +2 -0
- package/dashboard/dist/assets/{BotPicker-BQp_Vs73.js.map → BotPicker-BKtjl6IL.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-wpVtkGeU.js → CapabilitiesPage-kCB8fyOj.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-wpVtkGeU.js.map → CapabilitiesPage-kCB8fyOj.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-2eZMMZiG.js → CollapsibleSection-C3tU61hB.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-2eZMMZiG.js.map → CollapsibleSection-C3tU61hB.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-DJGLssm0.js → CredentialsPage-Dt4nJs_B.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-DJGLssm0.js.map → CredentialsPage-Dt4nJs_B.js.map} +1 -1
- package/dashboard/dist/assets/CronLabel-BdE6mHyA.js +2 -0
- package/dashboard/dist/assets/CronLabel-BdE6mHyA.js.map +1 -0
- package/dashboard/dist/assets/{CustomDurationPicker-DbyqfK35.js → CustomDurationPicker-B_Yxfb-u.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-DbyqfK35.js.map → CustomDurationPicker-B_Yxfb-u.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-BkfRoUcm.js → DropZone-CptiQ0wc.js} +2 -2
- package/dashboard/dist/assets/{DropZone-BkfRoUcm.js.map → DropZone-CptiQ0wc.js.map} +1 -1
- package/dashboard/dist/assets/ElapsedCell-tcGx5PFI.js +2 -0
- package/dashboard/dist/assets/{ElapsedCell-BPYm8RA7.js.map → ElapsedCell-tcGx5PFI.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-kYGHfnLf.js → EscalationsOverview-1KO5dXzk.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-kYGHfnLf.js.map → EscalationsOverview-1KO5dXzk.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-DSDzJMer.js → EventTable-DnpsQ6Ew.js} +2 -2
- package/dashboard/dist/assets/{EventTable-DSDzJMer.js.map → EventTable-DnpsQ6Ew.js.map} +1 -1
- package/dashboard/dist/assets/HomePage-B2Jgo1J1.js +2 -0
- package/dashboard/dist/assets/HomePage-B2Jgo1J1.js.map +1 -0
- package/dashboard/dist/assets/ListToolbar-jrVba7QN.js +2 -0
- package/dashboard/dist/assets/{ListToolbar-DEef1_-T.js.map → ListToolbar-jrVba7QN.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-CZFW5qMb.js → McpOverview-BzyxJyc9.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-CZFW5qMb.js.map → McpOverview-BzyxJyc9.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-q9xH-QRo.js → McpQueryDetailPage-DXNseeKl.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-q9xH-QRo.js.map → McpQueryDetailPage-DXNseeKl.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-D14466yi.js → McpQueryPage-WZfTY43_.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-D14466yi.js.map → McpQueryPage-WZfTY43_.js.map} +1 -1
- package/dashboard/dist/assets/McpRunDetailPage-DKZp-p7S.js +2 -0
- package/dashboard/dist/assets/McpRunDetailPage-DKZp-p7S.js.map +1 -0
- package/dashboard/dist/assets/McpRunsPage-SXyiwc0d.js +2 -0
- package/dashboard/dist/assets/{McpRunsPage-aZg057y3.js.map → McpRunsPage-SXyiwc0d.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-Cy7ySMXj.js +2 -0
- package/dashboard/dist/assets/OperatorDashboard-Cy7ySMXj.js.map +1 -0
- package/dashboard/dist/assets/{PageHeader-CR6TpJG_.js → PageHeader-BuJpMxyu.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-CR6TpJG_.js.map → PageHeader-BuJpMxyu.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-CRcQEAO1.js → PageHeaderWithStats-yD_PTbOl.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-CRcQEAO1.js.map → PageHeaderWithStats-yD_PTbOl.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-DyzNjwu8.js → ProcessDetailPage-DYIfvWyc.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-DyzNjwu8.js.map → ProcessDetailPage-DYIfvWyc.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-CT_3b5Wt.js → ProcessesListPage-DR1RGaMl.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-CT_3b5Wt.js.map → ProcessesListPage-DR1RGaMl.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-BC54Vn-U.js → RolePill-SasQKc_B.js} +2 -2
- package/dashboard/dist/assets/{RolePill-BC54Vn-U.js.map → RolePill-SasQKc_B.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-CpRJq-sg.js → RolesPage-pMERxj15.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-CpRJq-sg.js.map → RolesPage-pMERxj15.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-C20rdNsC.js → RunAsSelector-B-ksMoEj.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-C20rdNsC.js.map → RunAsSelector-B-ksMoEj.js.map} +1 -1
- package/dashboard/dist/assets/ServerName-CHspudaC.js +2 -0
- package/dashboard/dist/assets/{ServerName-Q6okiv4f.js.map → ServerName-CHspudaC.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-CbFaU4bq.js → SwimlaneTimeline-Cr_K5qpu.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-CbFaU4bq.js.map → SwimlaneTimeline-Cr_K5qpu.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-D6l1SPWd.js → TagInput-DvF3j8MA.js} +2 -2
- package/dashboard/dist/assets/{TagInput-D6l1SPWd.js.map → TagInput-DvF3j8MA.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-22cJsFmM.js → TaskDetailPage-BO5p7AEe.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-22cJsFmM.js.map → TaskDetailPage-BO5p7AEe.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-iDBVCEQQ.js → TaskQueuePill-BCQrS2oK.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-iDBVCEQQ.js.map → TaskQueuePill-BCQrS2oK.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-BDmaUIKu.js → TasksListPage-BRg-uFtF.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-BDmaUIKu.js.map → TasksListPage-BRg-uFtF.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-7wqEp87-.js → TimeAgo-BSzN6rAH.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-7wqEp87-.js.map → TimeAgo-BSzN6rAH.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BBCf8zsN.js → TimestampCell-DL6zMNEQ.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BBCf8zsN.js.map → TimestampCell-DL6zMNEQ.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-HcRTggHo.js → ToolPill-1aTqYtzp.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-HcRTggHo.js.map → ToolPill-1aTqYtzp.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-Dosq1cqG.js → ToolTestPanel-fLzNp79U.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-Dosq1cqG.js.map → ToolTestPanel-fLzNp79U.js.map} +1 -1
- package/dashboard/dist/assets/TopicDetailPage-D7gCsPKB.js +9 -0
- package/dashboard/dist/assets/TopicDetailPage-D7gCsPKB.js.map +1 -0
- package/dashboard/dist/assets/{TopicsPage-tVPdz-k0.js → TopicsPage-B3Aa8Haz.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-tVPdz-k0.js.map → TopicsPage-B3Aa8Haz.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-DX7IBjFn.js → UserName-BjHIJWgh.js} +2 -2
- package/dashboard/dist/assets/{UserName-DX7IBjFn.js.map → UserName-BjHIJWgh.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BjC0j9_L.js → WorkflowExecutionPage-BQ7AYlQA.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BjC0j9_L.js.map → WorkflowExecutionPage-BQ7AYlQA.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-54px0YiY.js → WorkflowPill-Z-zHRKOK.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-54px0YiY.js.map → WorkflowPill-Z-zHRKOK.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowsDashboard-D-G8Xudz.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-D-G8Xudz.js.map +1 -0
- package/dashboard/dist/assets/{WorkflowsOverview-DaJRDkNy.js → WorkflowsOverview-B4DUcVxs.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-DaJRDkNy.js.map → WorkflowsOverview-B4DUcVxs.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-CkpQaUmz.js → YamlWorkflowsPage-CnTNOku0.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-CkpQaUmz.js.map → YamlWorkflowsPage-CnTNOku0.js.map} +1 -1
- package/dashboard/dist/assets/{agents-B-P5MlEx.js → agents-CkvQDr9b.js} +2 -2
- package/dashboard/dist/assets/{agents-B-P5MlEx.js.map → agents-CkvQDr9b.js.map} +1 -1
- package/dashboard/dist/assets/{bots-CZz9iVys.js → bots-CzuMCVgU.js} +2 -2
- package/dashboard/dist/assets/{bots-CZz9iVys.js.map → bots-CzuMCVgU.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-DrZ8Vw_v.js → capabilities-CbGmS0ty.js} +2 -2
- package/dashboard/dist/assets/{capabilities-DrZ8Vw_v.js.map → capabilities-CbGmS0ty.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-cj-1c-1C.js → controlplane-DGvwkuYx.js} +2 -2
- package/dashboard/dist/assets/{controlplane-cj-1c-1C.js.map → controlplane-DGvwkuYx.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-BEVFyQnE.js → escalation-B7ysVToF.js} +2 -2
- package/dashboard/dist/assets/{escalation-BEVFyQnE.js.map → escalation-B7ysVToF.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-Beox3TXH.js → escalation-columns-CHQEJU1j.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-Beox3TXH.js.map → escalation-columns-CHQEJU1j.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-B4gzNq9h.js → helpers-BFOjXa4r.js} +2 -2
- package/dashboard/dist/assets/{helpers-B4gzNq9h.js.map → helpers-BFOjXa4r.js.map} +1 -1
- package/dashboard/dist/assets/index-B9_1AZaG.js +2 -0
- package/dashboard/dist/assets/{index-3n5VREXN.js.map → index-B9_1AZaG.js.map} +1 -1
- package/dashboard/dist/assets/{index-BCQ65lNu.js → index-BFaDxPxA.js} +2 -2
- package/dashboard/dist/assets/{index-BCQ65lNu.js.map → index-BFaDxPxA.js.map} +1 -1
- package/dashboard/dist/assets/index-BduDiGcw.js +15 -0
- package/dashboard/dist/assets/{index-UtAfnStw.js.map → index-BduDiGcw.js.map} +1 -1
- package/dashboard/dist/assets/{index-Bh-PnP17.js → index-BeLphL59.js} +2 -2
- package/dashboard/dist/assets/{index-Bh-PnP17.js.map → index-BeLphL59.js.map} +1 -1
- package/dashboard/dist/assets/index-C--SEsU7.css +1 -0
- package/dashboard/dist/assets/{index-_DfbFHXk.js → index-CRiBkHPb.js} +2 -2
- package/dashboard/dist/assets/{index-_DfbFHXk.js.map → index-CRiBkHPb.js.map} +1 -1
- package/dashboard/dist/assets/{index-DdKbIZNE.js → index-CbrMW-gM.js} +2 -2
- package/dashboard/dist/assets/{index-DdKbIZNE.js.map → index-CbrMW-gM.js.map} +1 -1
- package/dashboard/dist/assets/{index-aJRDh4zW.js → index-CvOGgvzP.js} +2 -2
- package/dashboard/dist/assets/{index-aJRDh4zW.js.map → index-CvOGgvzP.js.map} +1 -1
- package/dashboard/dist/assets/{index-D1MywQ2z.js → index-DDlrQeTj.js} +2 -2
- package/dashboard/dist/assets/{index-D1MywQ2z.js.map → index-DDlrQeTj.js.map} +1 -1
- package/dashboard/dist/assets/{index-BYXiz05a.js → index-DQHmfTPo.js} +2 -2
- package/dashboard/dist/assets/{index-BYXiz05a.js.map → index-DQHmfTPo.js.map} +1 -1
- package/dashboard/dist/assets/{index-BpN31nuC.js → index-_BRA9uFL.js} +25 -25
- package/dashboard/dist/assets/index-_BRA9uFL.js.map +1 -0
- package/dashboard/dist/assets/index-a98qWLB-.js +2 -0
- package/dashboard/dist/assets/index-a98qWLB-.js.map +1 -0
- package/dashboard/dist/assets/index-l_8R6U4r.js +6 -0
- package/dashboard/dist/assets/index-l_8R6U4r.js.map +1 -0
- package/dashboard/dist/assets/{index-D4KGadbW.js → index-v0OQpgXS.js} +2 -2
- package/dashboard/dist/assets/{index-D4KGadbW.js.map → index-v0OQpgXS.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-DhtKWMON.js → knowledge-BlF8UMrk.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DhtKWMON.js.map → knowledge-BlF8UMrk.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BXN7-wGF.js → mcp-MtXuky8q.js} +2 -2
- package/dashboard/dist/assets/{mcp-BXN7-wGF.js.map → mcp-MtXuky8q.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-BIJP4mQJ.js → mcp-query-DQ-J1Q0K.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-BIJP4mQJ.js.map → mcp-query-DQ-J1Q0K.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-ne_yDQZX.js → namespaces-DtsT_GoV.js} +2 -2
- package/dashboard/dist/assets/{namespaces-ne_yDQZX.js.map → namespaces-DtsT_GoV.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-Bcz62DoS.js → pipelines-BjlCm9VH.js} +2 -2
- package/dashboard/dist/assets/{pipelines-Bcz62DoS.js.map → pipelines-BjlCm9VH.js.map} +1 -1
- package/dashboard/dist/assets/{roles-De2CzGCy.js → roles-D-LhJ82d.js} +2 -2
- package/dashboard/dist/assets/{roles-De2CzGCy.js.map → roles-D-LhJ82d.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-4yL5EfxI.js → tasks-BrP_8uEN.js} +2 -2
- package/dashboard/dist/assets/{tasks-4yL5EfxI.js.map → tasks-BrP_8uEN.js.map} +1 -1
- package/dashboard/dist/assets/topics-DUk-zX5D.js +2 -0
- package/dashboard/dist/assets/{topics-DDKHpRwP.js.map → topics-DUk-zX5D.js.map} +1 -1
- package/dashboard/dist/assets/useEventHooks-XNNzwADV.js +2 -0
- package/dashboard/dist/assets/useEventHooks-XNNzwADV.js.map +1 -0
- package/dashboard/dist/assets/{useYamlActivityEvents-Dv6GhDkh.js → useYamlActivityEvents-DANQ5jIY.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Dv6GhDkh.js.map → useYamlActivityEvents-DANQ5jIY.js.map} +1 -1
- package/dashboard/dist/assets/{users-pSMWP58G.js → users-vj0JgOkA.js} +2 -2
- package/dashboard/dist/assets/{users-pSMWP58G.js.map → users-vj0JgOkA.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-CrrAvF2g.js → vendor-icons-Doy0g69_.js} +116 -111
- package/dashboard/dist/assets/vendor-icons-Doy0g69_.js.map +1 -0
- package/dashboard/dist/assets/{workflows-COYPOe2I.js → workflows-CmqgGPzI.js} +2 -2
- package/dashboard/dist/assets/{workflows-COYPOe2I.js.map → workflows-CmqgGPzI.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-1dF3ig6u.js → yaml-workflows-DNFyjBXH.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-1dF3ig6u.js.map → yaml-workflows-DNFyjBXH.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/api/http/controlplane.md +1 -1
- package/docs/api/http/mcp-endpoint.md +133 -0
- package/docs/api/http/roles.md +46 -0
- package/docs/api/http/service-accounts.md +15 -0
- package/docs/api/http/settings.md +6 -0
- package/docs/api/mcp/admin.md +1187 -0
- package/docs/api/mcp/claude-code.md +47 -0
- package/docs/api/mcp/docs.md +54 -0
- package/docs/api/mcp/events.md +80 -0
- package/docs/api/mcp/file-storage.md +76 -0
- package/docs/api/mcp/http-fetch.md +64 -0
- package/docs/api/mcp/human-queue.md +101 -0
- package/docs/api/mcp/index.md +52 -0
- package/docs/api/mcp/knowledge.md +125 -0
- package/docs/api/mcp/oauth.md +62 -0
- package/docs/api/mcp/schema-exchange.md +56 -0
- package/docs/api/mcp/translation.md +28 -0
- package/docs/api/mcp/vision.md +46 -0
- package/docs/api/sdk/settings.md +3 -1
- package/docs/auth.md +109 -0
- package/docs/dashboard.md +1 -1
- package/package.json +1 -1
- package/build/system/mcp-servers/playwright/browser-lifecycle.d.ts +0 -26
- package/build/system/mcp-servers/playwright/browser-lifecycle.js +0 -125
- package/build/system/mcp-servers/playwright/index.d.ts +0 -25
- package/build/system/mcp-servers/playwright/index.js +0 -42
- package/build/system/mcp-servers/playwright/schemas.d.ts +0 -394
- package/build/system/mcp-servers/playwright/schemas.js +0 -90
- package/build/system/mcp-servers/playwright/tools-atomic.d.ts +0 -2
- package/build/system/mcp-servers/playwright/tools-atomic.js +0 -9
- package/build/system/mcp-servers/playwright/tools-navigation.d.ts +0 -2
- package/build/system/mcp-servers/playwright/tools-navigation.js +0 -153
- package/build/system/mcp-servers/playwright/tools-page-interaction.d.ts +0 -2
- package/build/system/mcp-servers/playwright/tools-page-interaction.js +0 -162
- package/build/system/mcp-servers/playwright/tools-run-script.d.ts +0 -2
- package/build/system/mcp-servers/playwright/tools-run-script.js +0 -207
- package/build/system/mcp-servers/playwright/types.d.ts +0 -8
- package/build/system/mcp-servers/playwright/types.js +0 -30
- package/build/system/mcp-servers/playwright/vision-helper.d.ts +0 -12
- package/build/system/mcp-servers/playwright/vision-helper.js +0 -81
- package/build/system/mcp-servers/playwright-cli/helpers.d.ts +0 -11
- package/build/system/mcp-servers/playwright-cli/helpers.js +0 -20
- package/build/system/mcp-servers/playwright-cli/index.d.ts +0 -4
- package/build/system/mcp-servers/playwright-cli/index.js +0 -15
- package/build/system/mcp-servers/playwright-cli/schemas.d.ts +0 -219
- package/build/system/mcp-servers/playwright-cli/schemas.js +0 -75
- package/build/system/mcp-servers/playwright-cli/tools-auth.d.ts +0 -2
- package/build/system/mcp-servers/playwright-cli/tools-auth.js +0 -183
- package/build/system/mcp-servers/playwright-cli/tools-capture.d.ts +0 -2
- package/build/system/mcp-servers/playwright-cli/tools-capture.js +0 -273
- package/build/system/seed/tool-manifests-browser.d.ts +0 -577
- package/build/system/seed/tool-manifests-browser.js +0 -158
- package/dashboard/dist/assets/AgentConfigPage-DBtvb2x5.js +0 -16
- package/dashboard/dist/assets/AgentConfigPage-DBtvb2x5.js.map +0 -1
- package/dashboard/dist/assets/AgentDetailPage-3mZA7SOb.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-CA9x9o5s.js +0 -2
- package/dashboard/dist/assets/BotPicker-BQp_Vs73.js +0 -2
- package/dashboard/dist/assets/CronLabel-DY8VdTS9.js +0 -2
- package/dashboard/dist/assets/CronLabel-DY8VdTS9.js.map +0 -1
- package/dashboard/dist/assets/ElapsedCell-BPYm8RA7.js +0 -2
- package/dashboard/dist/assets/EventTopicPill-CCWCs07y.js +0 -2
- package/dashboard/dist/assets/EventTopicPill-CCWCs07y.js.map +0 -1
- package/dashboard/dist/assets/HomePage-CwRebzmO.js +0 -2
- package/dashboard/dist/assets/HomePage-CwRebzmO.js.map +0 -1
- package/dashboard/dist/assets/ListToolbar-DEef1_-T.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-X0sfRFTk.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-X0sfRFTk.js.map +0 -1
- package/dashboard/dist/assets/McpRunsPage-aZg057y3.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-iZEHnndU.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-iZEHnndU.js.map +0 -1
- package/dashboard/dist/assets/ServerName-Q6okiv4f.js +0 -2
- package/dashboard/dist/assets/TopicDetailPage-DW97-YHQ.js +0 -9
- package/dashboard/dist/assets/TopicDetailPage-DW97-YHQ.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-eCH4gpAk.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-eCH4gpAk.js.map +0 -1
- package/dashboard/dist/assets/index-3n5VREXN.js +0 -2
- package/dashboard/dist/assets/index-BAXzN-QB.js +0 -6
- package/dashboard/dist/assets/index-BAXzN-QB.js.map +0 -1
- package/dashboard/dist/assets/index-BpN31nuC.js.map +0 -1
- package/dashboard/dist/assets/index-C37LMzJa.css +0 -1
- package/dashboard/dist/assets/index-C5dHozmW.js +0 -2
- package/dashboard/dist/assets/index-C5dHozmW.js.map +0 -1
- package/dashboard/dist/assets/index-UtAfnStw.js +0 -15
- package/dashboard/dist/assets/topics-DDKHpRwP.js +0 -2
- package/dashboard/dist/assets/useEventHooks-NzIyvoGY.js +0 -2
- package/dashboard/dist/assets/useEventHooks-NzIyvoGY.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-CrrAvF2g.js.map +0 -1
package/build/start/server.js
CHANGED
|
@@ -10,6 +10,7 @@ const express_1 = __importDefault(require("express"));
|
|
|
10
10
|
const config_1 = require("../modules/config");
|
|
11
11
|
const logger_1 = require("../lib/logger");
|
|
12
12
|
const routes_1 = __importDefault(require("../routes"));
|
|
13
|
+
const mcp_endpoint_1 = __importDefault(require("../routes/mcp-endpoint"));
|
|
13
14
|
/**
|
|
14
15
|
* Create and start the embedded Express server with health check,
|
|
15
16
|
* API routes, and optional dashboard static assets.
|
|
@@ -24,6 +25,7 @@ function startServer() {
|
|
|
24
25
|
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
|
25
26
|
});
|
|
26
27
|
app.use('/api', routes_1.default);
|
|
28
|
+
app.use('/mcp', mcp_endpoint_1.default);
|
|
27
29
|
// Serve dashboard static assets
|
|
28
30
|
// Resolves correctly in both dev (ts-node from root) and prod (node build/)
|
|
29
31
|
const devDist = path_1.default.join(__dirname, '..', 'dashboard', 'dist');
|
package/build/start/workers.js
CHANGED
|
@@ -111,6 +111,9 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
111
111
|
return undefined;
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
|
+
// Seed MCP service account (idempotent)
|
|
115
|
+
const { seedMcpServiceAccount } = await Promise.resolve().then(() => __importStar(require('../services/mcp/seed-service-account')));
|
|
116
|
+
await seedMcpServiceAccount();
|
|
114
117
|
const connection = buildConnection();
|
|
115
118
|
// Readonly mode: all user-provided workers are observers — skip crons, triggers, and agent seeding.
|
|
116
119
|
// System workers (mcpQuery, etc.) are always added by collectWorkers, so check the original config.
|
|
@@ -217,6 +220,9 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
217
220
|
registerBuiltinServer(name, entry.factory);
|
|
218
221
|
}
|
|
219
222
|
logger_1.loggerRegistry.info(`[long-tail] ${Object.keys(allFactories).length} MCP server factories registered`);
|
|
223
|
+
// Set exposure config for the /mcp endpoint
|
|
224
|
+
const { setExposureConfig } = await Promise.resolve().then(() => __importStar(require('../services/mcp/exposure')));
|
|
225
|
+
setExposureConfig(startConfig.mcp?.exposure);
|
|
220
226
|
// 2. Seed MCP server configs (insert-if-absent + drift log)
|
|
221
227
|
for (const [name, entry] of Object.entries(allFactories)) {
|
|
222
228
|
if (entry.config) {
|
|
@@ -240,6 +246,15 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
240
246
|
await seedSystemTopics();
|
|
241
247
|
if (startConfig.topics?.length)
|
|
242
248
|
await seedConfigTopics(startConfig.topics);
|
|
249
|
+
// Seed example topics when examples are enabled
|
|
250
|
+
if (startConfig.examples) {
|
|
251
|
+
try {
|
|
252
|
+
const { EXAMPLE_TOPICS } = await Promise.resolve().then(() => __importStar(require('../examples')));
|
|
253
|
+
if (EXAMPLE_TOPICS?.length)
|
|
254
|
+
await seedConfigTopics(EXAMPLE_TOPICS);
|
|
255
|
+
}
|
|
256
|
+
catch { /* examples not available */ }
|
|
257
|
+
}
|
|
243
258
|
// Seed agents (from startConfig + example system agents when enabled)
|
|
244
259
|
const systemAgents = startConfig.examples
|
|
245
260
|
? (await Promise.resolve().then(() => __importStar(require('../system')))).getSystemAgents()
|
package/build/system/index.js
CHANGED
|
@@ -45,7 +45,17 @@ exports.getSystemAgents = getSystemAgents;
|
|
|
45
45
|
// ── Tool manifests (static JSON schema data) ────────────────────────────────
|
|
46
46
|
const tool_manifests_escalation_1 = require("./seed/tool-manifests-escalation");
|
|
47
47
|
const tool_manifests_data_1 = require("./seed/tool-manifests-data");
|
|
48
|
-
|
|
48
|
+
// Playwright is an example connector — loaded conditionally (not in npm package)
|
|
49
|
+
let PLAYWRIGHT_TOOLS = [];
|
|
50
|
+
try {
|
|
51
|
+
PLAYWRIGHT_TOOLS = require('../examples/seed/tool-manifests-browser').PLAYWRIGHT_TOOLS;
|
|
52
|
+
}
|
|
53
|
+
catch { /* not available */ }
|
|
54
|
+
let PLAYWRIGHT_CLI_TOOLS = [];
|
|
55
|
+
try {
|
|
56
|
+
PLAYWRIGHT_CLI_TOOLS = require('../examples/seed/tool-manifests-browser').PLAYWRIGHT_CLI_TOOLS;
|
|
57
|
+
}
|
|
58
|
+
catch { /* not available */ }
|
|
49
59
|
const tool_manifests_workflows_1 = require("./seed/tool-manifests-workflows");
|
|
50
60
|
const tool_manifests_admin_1 = require("./seed/tool-manifests-admin");
|
|
51
61
|
const tool_manifests_knowledge_1 = require("./seed/tool-manifests-knowledge");
|
|
@@ -173,6 +183,7 @@ exports.builtinMcpServerFactories = {
|
|
|
173
183
|
description: 'Text translation using LLM. Translates content between languages with automatic source language detection.',
|
|
174
184
|
tags: ['translation', 'language', 'text-processing'],
|
|
175
185
|
category: 'Analysis',
|
|
186
|
+
aiRequired: true,
|
|
176
187
|
credentialProviders: ['anthropic'],
|
|
177
188
|
toolManifest: tool_manifests_data_1.TRANSLATION_TOOLS,
|
|
178
189
|
},
|
|
@@ -183,6 +194,7 @@ exports.builtinMcpServerFactories = {
|
|
|
183
194
|
description: 'Image analysis and description using LLM vision. Analyzes images to extract structured data, text content, and descriptions.',
|
|
184
195
|
tags: ['vision', 'image-analysis', 'multimodal'],
|
|
185
196
|
category: 'Analysis',
|
|
197
|
+
aiRequired: true,
|
|
186
198
|
compileHints: [
|
|
187
199
|
'Vision tools process one image at a time.',
|
|
188
200
|
'The argument name is `image` (NOT `image_path`). It accepts a storage path, data URI, or https:// URL.',
|
|
@@ -193,34 +205,6 @@ exports.builtinMcpServerFactories = {
|
|
|
193
205
|
toolManifest: tool_manifests_data_1.VISION_ANALYSIS_TOOLS,
|
|
194
206
|
},
|
|
195
207
|
},
|
|
196
|
-
'long-tail-playwright': {
|
|
197
|
-
factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/playwright'))).then((m) => m.createPlaywrightServer()),
|
|
198
|
-
config: {
|
|
199
|
-
description: 'Low-level browser automation via Playwright. Fine-grained control: navigate, click, fill, wait_for, evaluate, run_script.',
|
|
200
|
-
tags: ['browser-automation', 'testing', 'screenshots'],
|
|
201
|
-
category: 'Automation',
|
|
202
|
-
compileHints: [
|
|
203
|
-
'Session fields (_handle, page_id) MUST be threaded from the step that created them to EVERY subsequent browser step.',
|
|
204
|
-
'run_script accepts a `steps` array — fixed implementation detail, never a dynamic input.',
|
|
205
|
-
'run_script exposes `screenshots` (array) and `last_screenshot_path` (string) as output fields.',
|
|
206
|
-
].join(' '),
|
|
207
|
-
toolManifest: tool_manifests_browser_1.PLAYWRIGHT_TOOLS,
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
'long-tail-playwright-cli': {
|
|
211
|
-
factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/playwright-cli'))).then((m) => m.createPlaywrightCliServer()),
|
|
212
|
-
config: {
|
|
213
|
-
description: 'High-level browser automation. Intent-based tools that handle session management, timing, and error recovery internally.',
|
|
214
|
-
tags: ['browser-automation', 'screenshots', 'scraping', 'forms'],
|
|
215
|
-
category: 'Automation',
|
|
216
|
-
compileHints: [
|
|
217
|
-
'Session fields (_handle, page_id) MUST be threaded from producing step to ALL subsequent browser steps.',
|
|
218
|
-
'extract_content returns `links` (structured array) and `script_result` (raw). Use `links` as the source field.',
|
|
219
|
-
'capture_page screenshot_path MUST include a file extension (.png).',
|
|
220
|
-
].join(' '),
|
|
221
|
-
toolManifest: tool_manifests_browser_1.PLAYWRIGHT_CLI_TOOLS,
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
208
|
'long-tail-docs': {
|
|
225
209
|
factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/docs'))).then((m) => m.createDocsServer()),
|
|
226
210
|
config: {
|
|
@@ -265,6 +249,7 @@ exports.builtinMcpServerFactories = {
|
|
|
265
249
|
description: 'Agentic coding assistant via Claude Code CLI. Execute development tasks: code generation, refactoring, file analysis, and multi-step workflows.',
|
|
266
250
|
tags: ['development', 'coding', 'ai-agent', 'terminal', 'code-generation'],
|
|
267
251
|
category: 'Development',
|
|
252
|
+
aiRequired: true,
|
|
268
253
|
compileHints: 'execute_task runs Claude Code as a subprocess. The `prompt` parameter is ALWAYS a dynamic trigger input. ' +
|
|
269
254
|
'Keep prompts self-contained. For read-only analysis, restrict with allowed_tools: ["Read", "Grep", "Glob"].',
|
|
270
255
|
credentialProviders: ['anthropic'],
|
|
@@ -274,8 +259,8 @@ exports.builtinMcpServerFactories = {
|
|
|
274
259
|
'long-tail-admin': {
|
|
275
260
|
factory: () => Promise.resolve().then(() => __importStar(require('./mcp-servers/admin'))).then((m) => m.createAdminServer()),
|
|
276
261
|
config: {
|
|
277
|
-
description: '
|
|
278
|
-
tags: ['admin', 'system', 'configuration'],
|
|
262
|
+
description: 'Unified system management — tasks, escalations, workflows, agents, bot accounts, control plane, pipelines, topics, users, roles, and settings.',
|
|
263
|
+
tags: ['admin', 'system', 'configuration', 'agents', 'bot-accounts', 'controlplane', 'pipelines', 'topics'],
|
|
279
264
|
category: 'System',
|
|
280
265
|
compileHints: 'Admin tools modify system configuration. certify_workflow and decertify_workflow change interceptor behavior.',
|
|
281
266
|
toolManifest: tool_manifests_admin_1.ADMIN_TOOLS,
|
|
@@ -318,6 +303,39 @@ exports.builtinMcpServerFactories = {
|
|
|
318
303
|
},
|
|
319
304
|
},
|
|
320
305
|
};
|
|
306
|
+
// Playwright is an example connector — only register when available (not in npm package)
|
|
307
|
+
if (PLAYWRIGHT_TOOLS.length > 0) {
|
|
308
|
+
exports.builtinMcpServerFactories['long-tail-playwright'] = {
|
|
309
|
+
factory: () => Promise.resolve().then(() => __importStar(require('../examples/mcp-servers/playwright'))).then((m) => m.createPlaywrightServer()),
|
|
310
|
+
config: {
|
|
311
|
+
description: 'Low-level browser automation via Playwright. Fine-grained control: navigate, click, fill, wait_for, evaluate, run_script.',
|
|
312
|
+
tags: ['browser-automation', 'testing', 'screenshots'],
|
|
313
|
+
category: 'Automation',
|
|
314
|
+
compileHints: [
|
|
315
|
+
'Session fields (_handle, page_id) MUST be threaded from the step that created them to EVERY subsequent browser step.',
|
|
316
|
+
'run_script accepts a `steps` array — fixed implementation detail, never a dynamic input.',
|
|
317
|
+
'run_script exposes `screenshots` (array) and `last_screenshot_path` (string) as output fields.',
|
|
318
|
+
].join(' '),
|
|
319
|
+
toolManifest: PLAYWRIGHT_TOOLS,
|
|
320
|
+
},
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
if (PLAYWRIGHT_CLI_TOOLS.length > 0) {
|
|
324
|
+
exports.builtinMcpServerFactories['long-tail-playwright-cli'] = {
|
|
325
|
+
factory: () => Promise.resolve().then(() => __importStar(require('../examples/mcp-servers/playwright-cli'))).then((m) => m.createPlaywrightCliServer()),
|
|
326
|
+
config: {
|
|
327
|
+
description: 'High-level browser automation. Intent-based tools that handle session management, timing, and error recovery internally.',
|
|
328
|
+
tags: ['browser-automation', 'screenshots', 'scraping', 'forms'],
|
|
329
|
+
category: 'Automation',
|
|
330
|
+
compileHints: [
|
|
331
|
+
'Session fields (_handle, page_id) MUST be threaded from producing step to ALL subsequent browser steps.',
|
|
332
|
+
'extract_content returns `links` (structured array) and `script_result` (raw). Use `links` as the source field.',
|
|
333
|
+
'capture_page screenshot_path MUST include a file extension (.png).',
|
|
334
|
+
].join(' '),
|
|
335
|
+
toolManifest: PLAYWRIGHT_CLI_TOOLS,
|
|
336
|
+
},
|
|
337
|
+
};
|
|
338
|
+
}
|
|
321
339
|
// Gmail is an example connector — only register when available (not in npm package)
|
|
322
340
|
if (GMAIL_TOOLS.length > 0) {
|
|
323
341
|
exports.builtinMcpServerFactories['long-tail-gmail'] = {
|
|
@@ -360,8 +378,8 @@ function getSystemAgents() {
|
|
|
360
378
|
{ cron: '0 * * * *', workflow_type: 'basicEcho' },
|
|
361
379
|
],
|
|
362
380
|
subscriptions: [
|
|
363
|
-
{ topic: 'workflow
|
|
364
|
-
{ topic: 'activity
|
|
381
|
+
{ topic: 'system.workflow.*.failed', reaction_type: 'durable', workflow_type: 'basicEcho', input_mapping: { data: { error: '{event.status}', workflowId: '{event.workflowId}' } } },
|
|
382
|
+
{ topic: 'system.activity.*.*.failed', reaction_type: 'durable', workflow_type: 'basicEcho', input_mapping: { data: { activity: '{event.activityName}', workflowId: '{event.workflowId}' } } },
|
|
365
383
|
{ topic: 'app.*.*.error', reaction_type: 'durable', workflow_type: 'basicEcho', input_mapping: { data: { error: '{event.data}', source: '{event.source}' } } },
|
|
366
384
|
],
|
|
367
385
|
},
|
|
@@ -374,7 +392,7 @@ function getSystemAgents() {
|
|
|
374
392
|
knowledge_domain: 'event-routing',
|
|
375
393
|
subscriptions: [
|
|
376
394
|
{ topic: 'app.>', reaction_type: 'durable', workflow_type: 'basicEcho', input_mapping: { data: { topic: '{event.type}', source: '{event.source}', payload: '{event.data}' } } },
|
|
377
|
-
{ topic: 'knowledge
|
|
395
|
+
{ topic: 'system.knowledge.*.stored', reaction_type: 'durable', workflow_type: 'basicEcho', input_mapping: { data: { domain: '{event.data.domain}', key: '{event.data.key}' } } },
|
|
378
396
|
],
|
|
379
397
|
},
|
|
380
398
|
{
|
|
@@ -388,7 +406,7 @@ function getSystemAgents() {
|
|
|
388
406
|
{ cron: '*/15 * * * *', workflow_type: 'reviewContent' },
|
|
389
407
|
],
|
|
390
408
|
subscriptions: [
|
|
391
|
-
{ topic: 'escalation
|
|
409
|
+
{ topic: 'system.escalation.*.created', reaction_type: 'durable', workflow_type: 'reviewContent', filter: { workflowName: 'reviewContent' }, input_mapping: { data: { escalationId: '{event.escalationId}', workflowId: '{event.workflowId}' } } },
|
|
392
410
|
],
|
|
393
411
|
},
|
|
394
412
|
];
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerAgentSubscriptionTools = registerAgentSubscriptionTools;
|
|
37
|
+
const api = __importStar(require("../../../api/agent-subscriptions"));
|
|
38
|
+
const schemas_1 = require("./schemas");
|
|
39
|
+
function registerAgentSubscriptionTools(server) {
|
|
40
|
+
// mirrors GET /api/agents/:agentId/subscriptions
|
|
41
|
+
server.registerTool('list_agent_subscriptions', {
|
|
42
|
+
title: 'List Agent Subscriptions',
|
|
43
|
+
description: 'List all event subscriptions for an agent automation.',
|
|
44
|
+
inputSchema: schemas_1.listAgentSubscriptionsSchema,
|
|
45
|
+
}, async (args) => {
|
|
46
|
+
const result = await api.listSubscriptions({ agentId: args.agent_id });
|
|
47
|
+
if (result.error) {
|
|
48
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
49
|
+
}
|
|
50
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
51
|
+
});
|
|
52
|
+
// mirrors POST /api/agents/:agentId/subscriptions
|
|
53
|
+
server.registerTool('create_agent_subscription', {
|
|
54
|
+
title: 'Create Agent Subscription',
|
|
55
|
+
description: 'Create an event subscription for an agent. When events match the ' +
|
|
56
|
+
'topic pattern, the configured reaction is triggered.',
|
|
57
|
+
inputSchema: schemas_1.createAgentSubscriptionSchema,
|
|
58
|
+
}, async (args) => {
|
|
59
|
+
const { agent_id, ...body } = args;
|
|
60
|
+
const result = await api.createSubscription({ agentId: agent_id, ...body });
|
|
61
|
+
if (result.error) {
|
|
62
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
63
|
+
}
|
|
64
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
65
|
+
});
|
|
66
|
+
// mirrors DELETE /api/agents/:agentId/subscriptions/:subId
|
|
67
|
+
server.registerTool('delete_agent_subscription', {
|
|
68
|
+
title: 'Delete Agent Subscription',
|
|
69
|
+
description: 'Delete an event subscription by ID.',
|
|
70
|
+
inputSchema: schemas_1.deleteAgentSubscriptionSchema,
|
|
71
|
+
}, async (args) => {
|
|
72
|
+
const result = await api.deleteSubscription({ id: args.id });
|
|
73
|
+
if (result.error) {
|
|
74
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
75
|
+
}
|
|
76
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
77
|
+
});
|
|
78
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerAgentTools = registerAgentTools;
|
|
37
|
+
const api = __importStar(require("../../../api/agents"));
|
|
38
|
+
const schemas_1 = require("./schemas");
|
|
39
|
+
function registerAgentTools(server) {
|
|
40
|
+
// mirrors GET /api/agents
|
|
41
|
+
server.registerTool('list_agents', {
|
|
42
|
+
title: 'List Agents',
|
|
43
|
+
description: 'List agent automations with optional status and knowledge domain filters. ' +
|
|
44
|
+
'Returns agents with subscription counts and topic lists.',
|
|
45
|
+
inputSchema: schemas_1.listAgentsSchema,
|
|
46
|
+
}, async (args) => {
|
|
47
|
+
const result = await api.listAgents(args);
|
|
48
|
+
if (result.error) {
|
|
49
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
50
|
+
}
|
|
51
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
52
|
+
});
|
|
53
|
+
// mirrors GET /api/agents/:id
|
|
54
|
+
server.registerTool('get_agent', {
|
|
55
|
+
title: 'Get Agent',
|
|
56
|
+
description: 'Get a single agent automation by ID, including aggregated stats ' +
|
|
57
|
+
'(knowledge entry count, escalation count).',
|
|
58
|
+
inputSchema: schemas_1.getAgentSchema,
|
|
59
|
+
}, async (args) => {
|
|
60
|
+
const result = await api.getAgent(args);
|
|
61
|
+
if (result.error) {
|
|
62
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
63
|
+
}
|
|
64
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
65
|
+
});
|
|
66
|
+
// mirrors POST /api/agents
|
|
67
|
+
server.registerTool('create_agent', {
|
|
68
|
+
title: 'Create Agent',
|
|
69
|
+
description: 'Create a new agent automation with identity, goals, rules, ' +
|
|
70
|
+
'optional schedules, and event subscriptions.',
|
|
71
|
+
inputSchema: schemas_1.createAgentSchema,
|
|
72
|
+
}, async (args) => {
|
|
73
|
+
const result = await api.createAgent(args);
|
|
74
|
+
if (result.error) {
|
|
75
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
76
|
+
}
|
|
77
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
78
|
+
});
|
|
79
|
+
// mirrors PUT /api/agents/:id
|
|
80
|
+
server.registerTool('update_agent', {
|
|
81
|
+
title: 'Update Agent',
|
|
82
|
+
description: 'Update an existing agent automation.',
|
|
83
|
+
inputSchema: schemas_1.updateAgentSchema,
|
|
84
|
+
}, async (args) => {
|
|
85
|
+
const result = await api.updateAgent(args);
|
|
86
|
+
if (result.error) {
|
|
87
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
88
|
+
}
|
|
89
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
90
|
+
});
|
|
91
|
+
// mirrors DELETE /api/agents/:id
|
|
92
|
+
server.registerTool('delete_agent', {
|
|
93
|
+
title: 'Delete Agent',
|
|
94
|
+
description: 'Delete an agent automation and all its subscriptions.',
|
|
95
|
+
inputSchema: schemas_1.deleteAgentSchema,
|
|
96
|
+
}, async (args) => {
|
|
97
|
+
const result = await api.deleteAgent(args);
|
|
98
|
+
if (result.error) {
|
|
99
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
100
|
+
}
|
|
101
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
102
|
+
});
|
|
103
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerBotAccountTools = registerBotAccountTools;
|
|
37
|
+
const api = __importStar(require("../../../api/bot-accounts"));
|
|
38
|
+
const schemas_1 = require("./schemas");
|
|
39
|
+
function registerBotAccountTools(server) {
|
|
40
|
+
// mirrors GET /api/bot-accounts
|
|
41
|
+
server.registerTool('list_bot_accounts', {
|
|
42
|
+
title: 'List Bot Accounts',
|
|
43
|
+
description: 'List all bot (service) accounts with pagination.',
|
|
44
|
+
inputSchema: schemas_1.listBotsSchema,
|
|
45
|
+
}, async (args) => {
|
|
46
|
+
const result = await api.listBots(args);
|
|
47
|
+
if (result.error) {
|
|
48
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
49
|
+
}
|
|
50
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
51
|
+
});
|
|
52
|
+
// mirrors GET /api/bot-accounts/:id
|
|
53
|
+
server.registerTool('get_bot_account', {
|
|
54
|
+
title: 'Get Bot Account',
|
|
55
|
+
description: 'Get a single bot account by ID.',
|
|
56
|
+
inputSchema: schemas_1.getBotSchema,
|
|
57
|
+
}, async (args) => {
|
|
58
|
+
const result = await api.getBot(args);
|
|
59
|
+
if (result.error) {
|
|
60
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
61
|
+
}
|
|
62
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
63
|
+
});
|
|
64
|
+
// mirrors POST /api/bot-accounts
|
|
65
|
+
server.registerTool('create_bot_account', {
|
|
66
|
+
title: 'Create Bot Account',
|
|
67
|
+
description: 'Create a new bot (service) account with optional roles. ' +
|
|
68
|
+
'Bot accounts can run workflows and hold API keys.',
|
|
69
|
+
inputSchema: schemas_1.createBotSchema,
|
|
70
|
+
}, async (args) => {
|
|
71
|
+
const result = await api.createBot(args);
|
|
72
|
+
if (result.error) {
|
|
73
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
74
|
+
}
|
|
75
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
76
|
+
});
|
|
77
|
+
// mirrors PUT /api/bot-accounts/:id
|
|
78
|
+
server.registerTool('update_bot_account', {
|
|
79
|
+
title: 'Update Bot Account',
|
|
80
|
+
description: 'Update a bot account (display name, description, status).',
|
|
81
|
+
inputSchema: schemas_1.updateBotSchema,
|
|
82
|
+
}, async (args) => {
|
|
83
|
+
const result = await api.updateBot(args);
|
|
84
|
+
if (result.error) {
|
|
85
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
86
|
+
}
|
|
87
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
88
|
+
});
|
|
89
|
+
// mirrors DELETE /api/bot-accounts/:id
|
|
90
|
+
server.registerTool('delete_bot_account', {
|
|
91
|
+
title: 'Delete Bot Account',
|
|
92
|
+
description: 'Delete a bot account and all its API keys.',
|
|
93
|
+
inputSchema: schemas_1.deleteBotSchema,
|
|
94
|
+
}, async (args) => {
|
|
95
|
+
const result = await api.deleteBot(args);
|
|
96
|
+
if (result.error) {
|
|
97
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
98
|
+
}
|
|
99
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
100
|
+
});
|
|
101
|
+
// mirrors POST /api/bot-accounts/:id/api-keys
|
|
102
|
+
server.registerTool('create_bot_api_key', {
|
|
103
|
+
title: 'Create Bot API Key',
|
|
104
|
+
description: 'Generate a new API key for a bot account. Returns the raw key ' +
|
|
105
|
+
'ONCE — it cannot be retrieved again.',
|
|
106
|
+
inputSchema: schemas_1.createBotApiKeySchema,
|
|
107
|
+
}, async (args) => {
|
|
108
|
+
const result = await api.createBotKey(args);
|
|
109
|
+
if (result.error) {
|
|
110
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
111
|
+
}
|
|
112
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
113
|
+
});
|
|
114
|
+
// mirrors DELETE /api/bot-accounts/:id/api-keys/:keyId
|
|
115
|
+
server.registerTool('revoke_bot_api_key', {
|
|
116
|
+
title: 'Revoke Bot API Key',
|
|
117
|
+
description: 'Revoke (delete) an API key for a bot account.',
|
|
118
|
+
inputSchema: schemas_1.revokeBotKeySchema,
|
|
119
|
+
}, async (args) => {
|
|
120
|
+
const result = await api.revokeBotKey({ keyId: args.key_id });
|
|
121
|
+
if (result.error) {
|
|
122
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
123
|
+
}
|
|
124
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
125
|
+
});
|
|
126
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.registerControlPlaneTools = registerControlPlaneTools;
|
|
37
|
+
const api = __importStar(require("../../../api/controlplane"));
|
|
38
|
+
const schemas_1 = require("./schemas");
|
|
39
|
+
function registerControlPlaneTools(server) {
|
|
40
|
+
// mirrors GET /api/controlplane/apps
|
|
41
|
+
server.registerTool('list_apps', {
|
|
42
|
+
title: 'List Apps',
|
|
43
|
+
description: 'List available HotMesh application namespaces.',
|
|
44
|
+
inputSchema: schemas_1.listAppsSchema,
|
|
45
|
+
}, async (_args) => {
|
|
46
|
+
const result = await api.listApps();
|
|
47
|
+
if (result.error) {
|
|
48
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
49
|
+
}
|
|
50
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
51
|
+
});
|
|
52
|
+
// mirrors GET /api/controlplane/rollcall
|
|
53
|
+
server.registerTool('rollcall', {
|
|
54
|
+
title: 'Roll Call',
|
|
55
|
+
description: 'Execute a roll call — discovers all engines and workers in the mesh. ' +
|
|
56
|
+
'Returns topology of active participants.',
|
|
57
|
+
inputSchema: schemas_1.rollCallSchema,
|
|
58
|
+
}, async (args) => {
|
|
59
|
+
const result = await api.rollCall({
|
|
60
|
+
appId: args.app_id || 'durable',
|
|
61
|
+
delay: args.delay,
|
|
62
|
+
});
|
|
63
|
+
if (result.error) {
|
|
64
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
65
|
+
}
|
|
66
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
67
|
+
});
|
|
68
|
+
// mirrors POST /api/controlplane/throttle
|
|
69
|
+
server.registerTool('apply_throttle', {
|
|
70
|
+
title: 'Apply Throttle',
|
|
71
|
+
description: 'Apply a throttle to the mesh. Values: -1 = pause, 0 = resume, ' +
|
|
72
|
+
'>0 = delay in ms per message.',
|
|
73
|
+
inputSchema: schemas_1.applyThrottleSchema,
|
|
74
|
+
}, async (args) => {
|
|
75
|
+
const result = await api.applyThrottle(args);
|
|
76
|
+
if (result.error) {
|
|
77
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
78
|
+
}
|
|
79
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
80
|
+
});
|
|
81
|
+
// mirrors GET /api/controlplane/streams
|
|
82
|
+
server.registerTool('get_stream_stats', {
|
|
83
|
+
title: 'Get Stream Stats',
|
|
84
|
+
description: 'Stream processing statistics — pending count and processed volume ' +
|
|
85
|
+
'by time range.',
|
|
86
|
+
inputSchema: schemas_1.getStreamStatsSchema,
|
|
87
|
+
}, async (args) => {
|
|
88
|
+
const result = await api.getStreamStats(args);
|
|
89
|
+
if (result.error) {
|
|
90
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
91
|
+
}
|
|
92
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
93
|
+
});
|
|
94
|
+
// mirrors GET /api/controlplane/stream-messages
|
|
95
|
+
server.registerTool('list_stream_messages', {
|
|
96
|
+
title: 'List Stream Messages',
|
|
97
|
+
description: 'Browse stream messages with pagination, filtering, and sorting. ' +
|
|
98
|
+
'Both namespace and source are required.',
|
|
99
|
+
inputSchema: schemas_1.listStreamMessagesSchema,
|
|
100
|
+
}, async (args) => {
|
|
101
|
+
const result = await api.listStreamMessages(args);
|
|
102
|
+
if (result.error) {
|
|
103
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: result.error }) }], isError: true };
|
|
104
|
+
}
|
|
105
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.data) }] };
|
|
106
|
+
});
|
|
107
|
+
}
|