@hotmeshio/long-tail 0.3.2 → 0.4.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/api/agents.d.ts +1 -1
- package/build/api/agents.js +1 -1
- package/build/api/controlplane.d.ts +33 -0
- package/build/api/controlplane.js +46 -0
- package/build/bin/ltc.js +16 -0
- package/build/lib/cli/commands/streams.d.ts +20 -0
- package/build/lib/cli/commands/streams.js +134 -0
- package/build/lib/db/schemas/003_agents.sql +1 -2
- package/build/lib/db/schemas/004_agent_subscriptions.sql +1 -1
- package/build/routes/agents.js +3 -3
- package/build/routes/controlplane.js +28 -0
- package/build/sdk/index.d.ts +1 -0
- package/build/sdk/index.js +1 -0
- package/build/services/agent/index.d.ts +2 -3
- package/build/services/agent/index.js +5 -12
- package/build/services/agent/sql.d.ts +3 -4
- package/build/services/agent/sql.js +16 -20
- package/build/services/agent/subscription-sql.d.ts +1 -1
- package/build/services/agent/subscription-sql.js +1 -1
- package/build/services/agent/trigger-registry.js +1 -1
- package/build/services/controlplane/index.d.ts +9 -1
- package/build/services/controlplane/index.js +39 -0
- package/build/services/controlplane/stream-messages-sql.d.ts +21 -0
- package/build/services/controlplane/stream-messages-sql.js +108 -0
- package/build/services/controlplane/types.d.ts +44 -0
- package/build/services/cron/index.js +5 -5
- package/build/services/export/post-process.js +14 -6
- package/build/services/mcp-runs/execution-builder.js +9 -4
- package/build/services/topics/index.js +1 -4
- package/build/services/topics/sql.d.ts +2 -2
- package/build/services/topics/sql.js +9 -2
- package/build/services/topics/system-topics.js +2 -3
- package/build/start/workers.js +11 -14
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/agent.d.ts +1 -1
- package/dashboard/dist/assets/AdminDashboard-CR0FtTE6.js +2 -0
- package/dashboard/dist/assets/{AdminDashboard-CbeSejVX.js.map → AdminDashboard-CR0FtTE6.js.map} +1 -1
- package/dashboard/dist/assets/AgentConfigPage-BVypgq9m.js +13 -0
- package/dashboard/dist/assets/AgentConfigPage-BVypgq9m.js.map +1 -0
- package/dashboard/dist/assets/AgentDetailPage-D64ath8c.js +4 -0
- package/dashboard/dist/assets/AgentDetailPage-D64ath8c.js.map +1 -0
- package/dashboard/dist/assets/AgentsPage-j-zblMNR.js +2 -0
- package/dashboard/dist/assets/AgentsPage-j-zblMNR.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DmUid1h0.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-DdrzePy4.js.map → AvailableEscalationsPage-DmUid1h0.js.map} +1 -1
- package/dashboard/dist/assets/BotPicker-DCScT8BN.js +2 -0
- package/dashboard/dist/assets/{BotPicker-kKBifD1w.js.map → BotPicker-DCScT8BN.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-g5iUvHRL.js +2 -0
- package/dashboard/dist/assets/{CapabilitiesPage-Ch5qY0I7.js.map → CapabilitiesPage-g5iUvHRL.js.map} +1 -1
- package/dashboard/dist/assets/CollapsibleSection-Dj1YOsVG.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-kYTBL7dT.js.map → CollapsibleSection-Dj1YOsVG.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-dOxidrSR.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-CcaAapMl.js.map → ConfirmDeleteModal-dOxidrSR.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-DmLF-RqZ.js +2 -0
- package/dashboard/dist/assets/{CopyableId-B4CL12pv.js.map → CopyableId-DmLF-RqZ.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-Dvb4QelY.js +2 -0
- package/dashboard/dist/assets/{CredentialsPage-D1VAlwid.js.map → CredentialsPage-Dvb4QelY.js.map} +1 -1
- package/dashboard/dist/assets/CronLabel-sk1BkcJd.js +2 -0
- package/dashboard/dist/assets/{CronLabel-DRmO5rH0.js.map → CronLabel-sk1BkcJd.js.map} +1 -1
- package/dashboard/dist/assets/CustomDurationPicker-C0MV2Q06.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-C06QDDir.js.map → CustomDurationPicker-C0MV2Q06.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-D9yuBv0w.js +2 -0
- package/dashboard/dist/assets/{DataTable-J5R6mepB.js.map → DataTable-D9yuBv0w.js.map} +1 -1
- package/dashboard/dist/assets/DropZone-DN8uwUtf.js +2 -0
- package/dashboard/dist/assets/{DropZone-DwNj3GiG.js.map → DropZone-DN8uwUtf.js.map} +1 -1
- package/dashboard/dist/assets/ElapsedCell-CFXhhKKc.js +2 -0
- package/dashboard/dist/assets/{ElapsedCell-ChyMzl9n.js.map → ElapsedCell-CFXhhKKc.js.map} +1 -1
- package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +2 -0
- package/dashboard/dist/assets/{EmptyState-BXGvOADa.js.map → EmptyState-BcsfPq9T.js.map} +1 -1
- package/dashboard/dist/assets/EscalationsOverview-BEuUFGwC.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-DM6zmE4g.js.map → EscalationsOverview-BEuUFGwC.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-DcwVWOKb.js +2 -0
- package/dashboard/dist/assets/{EventTable-CvJ98E8s.js.map → EventTable-DcwVWOKb.js.map} +1 -1
- package/dashboard/dist/assets/EventTopicPill-CWCP1v1O.js +2 -0
- package/dashboard/dist/assets/{EventTopicPill-CB_rIGlL.js.map → EventTopicPill-CWCP1v1O.js.map} +1 -1
- package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
- package/dashboard/dist/assets/{FilterBar-Bdssa-Xn.js.map → FilterBar-Ck4K4rzu.js.map} +1 -1
- package/dashboard/dist/assets/HomePage-BH-F5ws9.js +2 -0
- package/dashboard/dist/assets/HomePage-BH-F5ws9.js.map +1 -0
- package/dashboard/dist/assets/ListToolbar-CUxJlz__.js +2 -0
- package/dashboard/dist/assets/{ListToolbar-jy8NL6ll.js.map → ListToolbar-CUxJlz__.js.map} +1 -1
- package/dashboard/dist/assets/McpOverview-O8XrOzy0.js +2 -0
- package/dashboard/dist/assets/{McpOverview-xkaKuHbX.js.map → McpOverview-O8XrOzy0.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-DhiR0Xrx.js +5 -0
- package/dashboard/dist/assets/{McpQueryDetailPage-D5ICn6cR.js.map → McpQueryDetailPage-DhiR0Xrx.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryPage-Czot0nfl.js +2 -0
- package/dashboard/dist/assets/{McpQueryPage-C46fzfm5.js.map → McpQueryPage-Czot0nfl.js.map} +1 -1
- package/dashboard/dist/assets/McpRunDetailPage-B1kNnD_t.js +2 -0
- package/dashboard/dist/assets/{McpRunDetailPage-Znsl4Yc-.js.map → McpRunDetailPage-B1kNnD_t.js.map} +1 -1
- package/dashboard/dist/assets/McpRunsPage-QUY3pWp9.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-QUY3pWp9.js.map +1 -0
- package/dashboard/dist/assets/Modal-DEODGeqx.js +2 -0
- package/dashboard/dist/assets/{Modal-C6k6_5KB.js.map → Modal-DEODGeqx.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-BG1Q9qZk.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-e5N3_dVl.js.map → OperatorDashboard-BG1Q9qZk.js.map} +1 -1
- package/dashboard/dist/assets/PageHeader-DlzOOM4Y.js +2 -0
- package/dashboard/dist/assets/{PageHeader-COcgWWf-.js.map → PageHeader-DlzOOM4Y.js.map} +1 -1
- package/dashboard/dist/assets/PageHeaderWithStats-C5cZ3IOO.js +2 -0
- package/dashboard/dist/assets/{PageHeaderWithStats-C0PCY3aJ.js.map → PageHeaderWithStats-C5cZ3IOO.js.map} +1 -1
- package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-BQCsYMpM.js.map → PriorityBadge-DfQY9St9.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-DS1AwTso.js +2 -0
- package/dashboard/dist/assets/{ProcessDetailPage-C03LOgI0.js.map → ProcessDetailPage-DS1AwTso.js.map} +1 -1
- package/dashboard/dist/assets/ProcessesListPage-CAmVcn1P.js +2 -0
- package/dashboard/dist/assets/{ProcessesListPage-iyPsmlhm.js.map → ProcessesListPage-CAmVcn1P.js.map} +1 -1
- package/dashboard/dist/assets/RolePill-BZaUpkHg.js +2 -0
- package/dashboard/dist/assets/{RolePill-CHwys1f9.js.map → RolePill-BZaUpkHg.js.map} +1 -1
- package/dashboard/dist/assets/RolesPage-CFdIXfmv.js +2 -0
- package/dashboard/dist/assets/{RolesPage-Bmc3XaUk.js.map → RolesPage-CFdIXfmv.js.map} +1 -1
- package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
- package/dashboard/dist/assets/{RowActions-Bs4PF-Gd.js.map → RowActions-Dg-Fsm5O.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-BGww9lta.js +2 -0
- package/dashboard/dist/assets/{RunAsSelector-DXzAr2WW.js.map → RunAsSelector-BGww9lta.js.map} +1 -1
- package/dashboard/dist/assets/ServerName-DfS3pfon.js +2 -0
- package/dashboard/dist/assets/{ServerName-BIdLC1Ay.js.map → ServerName-DfS3pfon.js.map} +1 -1
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
- package/dashboard/dist/assets/{StatCard-OKzRSSx4.js.map → StatCard-DlgF0CJC.js.map} +1 -1
- package/dashboard/dist/assets/StatusBadge-XQlNFwmH.js +2 -0
- package/dashboard/dist/assets/{StatusBadge-CQlF46RR.js.map → StatusBadge-XQlNFwmH.js.map} +1 -1
- package/dashboard/dist/assets/StepIndicator-CuUIGxKk.js +2 -0
- package/dashboard/dist/assets/{StepIndicator-CP7eycjI.js.map → StepIndicator-CuUIGxKk.js.map} +1 -1
- package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-CGk8VAKt.js.map → StickyPagination-F9FZsRy9.js.map} +1 -1
- package/dashboard/dist/assets/SwimlaneTimeline-C2hGjy0V.js +2 -0
- package/dashboard/dist/assets/{SwimlaneTimeline-MEUPc3yJ.js.map → SwimlaneTimeline-C2hGjy0V.js.map} +1 -1
- package/dashboard/dist/assets/TagInput-D21mrQx6.js +2 -0
- package/dashboard/dist/assets/{TagInput-BGxXKiWD.js.map → TagInput-D21mrQx6.js.map} +1 -1
- package/dashboard/dist/assets/TaskDetailPage-B49WQj8W.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-B49WQj8W.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill-D8UMH1rd.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-bw8ieKsf.js.map → TaskQueuePill-D8UMH1rd.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-CJB-EvKX.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-D1INzcrA.js.map → TasksListPage-CJB-EvKX.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-CnjY3XDt.js +2 -0
- package/dashboard/dist/assets/{TimeAgo-CywLVIBA.js.map → TimeAgo-CnjY3XDt.js.map} +1 -1
- package/dashboard/dist/assets/TimestampCell-u1YA8eA3.js +2 -0
- package/dashboard/dist/assets/{TimestampCell-B4Pc6f3A.js.map → TimestampCell-u1YA8eA3.js.map} +1 -1
- package/dashboard/dist/assets/ToolPill-Dmcwmqh2.js +2 -0
- package/dashboard/dist/assets/{ToolPill-DdLN3JOT.js.map → ToolPill-Dmcwmqh2.js.map} +1 -1
- package/dashboard/dist/assets/ToolTestPanel-B1T4Hk0t.js +2 -0
- package/dashboard/dist/assets/{ToolTestPanel-DusbUka5.js.map → ToolTestPanel-B1T4Hk0t.js.map} +1 -1
- package/dashboard/dist/assets/TopicDetailPage-ClibbST4.js +9 -0
- package/dashboard/dist/assets/TopicDetailPage-ClibbST4.js.map +1 -0
- package/dashboard/dist/assets/TopicsPage-KjODhitc.js +2 -0
- package/dashboard/dist/assets/{TopicsPage-DbtrnQON.js.map → TopicsPage-KjODhitc.js.map} +1 -1
- package/dashboard/dist/assets/UserName-DVqimwsO.js +2 -0
- package/dashboard/dist/assets/{UserName-CLbusknU.js.map → UserName-DVqimwsO.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DYNPy7Gk.js +2 -0
- package/dashboard/dist/assets/{WorkflowExecutionPage-C61R-3Gg.js.map → WorkflowExecutionPage-DYNPy7Gk.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-h43nlUmM.js +2 -0
- package/dashboard/dist/assets/{WorkflowPill-7vt2F6wR.js.map → WorkflowPill-h43nlUmM.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowsDashboard-DdJm6X7x.js +2 -0
- package/dashboard/dist/assets/{WorkflowsDashboard-BWiUNvyl.js.map → WorkflowsDashboard-DdJm6X7x.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowsOverview-CBOYkfpD.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-DA2ZOs7D.js.map → WorkflowsOverview-CBOYkfpD.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-BZnD_hMw.js +2 -0
- package/dashboard/dist/assets/{YamlWorkflowsPage-CLebf2eL.js.map → YamlWorkflowsPage-BZnD_hMw.js.map} +1 -1
- package/dashboard/dist/assets/{agents-Dga6NU7U.js → agents-oHMkS1GD.js} +2 -2
- package/dashboard/dist/assets/agents-oHMkS1GD.js.map +1 -0
- package/dashboard/dist/assets/{bots-CtU4i4OQ.js → bots-BispbsY3.js} +2 -2
- package/dashboard/dist/assets/{bots-CtU4i4OQ.js.map → bots-BispbsY3.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-BVoALhbL.js → controlplane-CIbrx5rX.js} +2 -2
- package/dashboard/dist/assets/{controlplane-BVoALhbL.js.map → controlplane-CIbrx5rX.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-Dh_0iVTH.js +2 -0
- package/dashboard/dist/assets/{escalation-columns-CoTmTpHp.js.map → escalation-columns-Dh_0iVTH.js.map} +1 -1
- package/dashboard/dist/assets/escalation-qhj4TxA3.js +2 -0
- package/dashboard/dist/assets/{escalation-_N5GfuIi.js.map → escalation-qhj4TxA3.js.map} +1 -1
- package/dashboard/dist/assets/helpers-BYw1qqKV.js +2 -0
- package/dashboard/dist/assets/{helpers-Dz2U3Ctb.js.map → helpers-BYw1qqKV.js.map} +1 -1
- package/dashboard/dist/assets/index-B9t_vpam.js +2 -0
- package/dashboard/dist/assets/{index-Dpjguclc.js.map → index-B9t_vpam.js.map} +1 -1
- package/dashboard/dist/assets/index-Bh9g-EOF.js +2 -0
- package/dashboard/dist/assets/{index-CS61sh5q.js.map → index-Bh9g-EOF.js.map} +1 -1
- package/dashboard/dist/assets/index-BhhWCADo.js +63 -0
- package/dashboard/dist/assets/index-BhhWCADo.js.map +1 -0
- package/dashboard/dist/assets/index-Bn-VSH41.js +2 -0
- package/dashboard/dist/assets/index-Bn-VSH41.js.map +1 -0
- package/dashboard/dist/assets/index-C2yJWps6.js +6 -0
- package/dashboard/dist/assets/{index-B9ealjkt.js.map → index-C2yJWps6.js.map} +1 -1
- package/dashboard/dist/assets/index-C4W1_Rfk.js +5 -0
- package/dashboard/dist/assets/{index-CtbG3UN-.js.map → index-C4W1_Rfk.js.map} +1 -1
- package/dashboard/dist/assets/index-CEF3Idec.js +2 -0
- package/dashboard/dist/assets/{index-6Kd78p_v.js.map → index-CEF3Idec.js.map} +1 -1
- package/dashboard/dist/assets/index-CHxvfc97.css +1 -0
- package/dashboard/dist/assets/index-CVRVw3g_.js +2 -0
- package/dashboard/dist/assets/{index-dM-OgCY3.js.map → index-CVRVw3g_.js.map} +1 -1
- package/dashboard/dist/assets/index-CY3EhrEA.js +2 -0
- package/dashboard/dist/assets/{index-QicYdUsl.js.map → index-CY3EhrEA.js.map} +1 -1
- package/dashboard/dist/assets/index-D-q2lzup.js +2 -0
- package/dashboard/dist/assets/{index-DWUunWxh.js.map → index-D-q2lzup.js.map} +1 -1
- package/dashboard/dist/assets/index-D6YjH5uG.js +15 -0
- package/dashboard/dist/assets/{index-BYwPVJv0.js.map → index-D6YjH5uG.js.map} +1 -1
- package/dashboard/dist/assets/index-ht5r_7jQ.js +2 -0
- package/dashboard/dist/assets/index-ht5r_7jQ.js.map +1 -0
- package/dashboard/dist/assets/index-zHicKKh9.js +2 -0
- package/dashboard/dist/assets/{index-D_H_Prht.js.map → index-zHicKKh9.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-DJlebU82.js → knowledge-B23TU6JN.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DJlebU82.js.map → knowledge-B23TU6JN.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-CsLJ5SRm.js → mcp-Cew_Sb-Q.js} +2 -2
- package/dashboard/dist/assets/{mcp-CsLJ5SRm.js.map → mcp-Cew_Sb-Q.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-WNK1ItRV.js → mcp-query-So0Oz5Lx.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-WNK1ItRV.js.map → mcp-query-So0Oz5Lx.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-DtTTsuPH.js → mcp-runs-4176y3SA.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-DtTTsuPH.js.map → mcp-runs-4176y3SA.js.map} +1 -1
- package/dashboard/dist/assets/namespaces-CqBbWsJx.js +2 -0
- package/dashboard/dist/assets/{namespaces-iRejH3_A.js.map → namespaces-CqBbWsJx.js.map} +1 -1
- package/dashboard/dist/assets/{roles-3Jm5KtKc.js → roles-BTxMgLE6.js} +2 -2
- package/dashboard/dist/assets/{roles-3Jm5KtKc.js.map → roles-BTxMgLE6.js.map} +1 -1
- package/dashboard/dist/assets/settings-CtQNxacL.js +2 -0
- package/dashboard/dist/assets/{settings-DmN2I-c6.js.map → settings-CtQNxacL.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Cc-QoITQ.js → tasks-CIRlUTbo.js} +2 -2
- package/dashboard/dist/assets/{tasks-Cc-QoITQ.js.map → tasks-CIRlUTbo.js.map} +1 -1
- package/dashboard/dist/assets/{topics-p8anbgi0.js → topics-C8YmK_j2.js} +2 -2
- package/dashboard/dist/assets/topics-C8YmK_j2.js.map +1 -0
- package/dashboard/dist/assets/{useEventHooks-VaJ52jMm.js → useEventHooks-BvMUy36X.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-VaJ52jMm.js.map → useEventHooks-BvMUy36X.js.map} +1 -1
- package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js → useExpandedRows-CkcEntB-.js} +2 -2
- package/dashboard/dist/assets/{useExpandedRows-Cg9iq6Vy.js.map → useExpandedRows-CkcEntB-.js.map} +1 -1
- package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js → useFilterParams-DZCAaBC7.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-CGRYFw_A.js.map → useFilterParams-DZCAaBC7.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BU4Uhksl.js → useYamlActivityEvents-DLEzqv-z.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-BU4Uhksl.js.map → useYamlActivityEvents-DLEzqv-z.js.map} +1 -1
- package/dashboard/dist/assets/{users-oXOlnold.js → users-C_bD6mzW.js} +2 -2
- package/dashboard/dist/assets/{users-oXOlnold.js.map → users-C_bD6mzW.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-CBOM6Es0.js → vendor-icons-DY1ctJgc.js} +111 -101
- package/dashboard/dist/assets/vendor-icons-DY1ctJgc.js.map +1 -0
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-CX88sFS5.js +22 -0
- package/dashboard/dist/assets/vendor-react-CX88sFS5.js.map +1 -0
- package/dashboard/dist/assets/{workflows-Yq7cK-vR.js → workflows-DFR0-hI3.js} +2 -2
- package/dashboard/dist/assets/{workflows-Yq7cK-vR.js.map → workflows-DFR0-hI3.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-Ch53yD43.js → yaml-workflows-wXURdyjP.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-Ch53yD43.js.map → yaml-workflows-wXURdyjP.js.map} +1 -1
- package/dashboard/dist/index.html +5 -5
- package/docs/agents.md +1 -1
- package/docs/api/http/agents.md +5 -7
- package/docs/api/http/controlplane.md +193 -0
- package/docs/api/sdk/agents.md +5 -5
- package/docs/api/sdk/controlplane.md +36 -0
- package/docs/dashboard.md +13 -0
- package/package.json +2 -2
- package/dashboard/dist/assets/AdminDashboard-CbeSejVX.js +0 -2
- package/dashboard/dist/assets/AgentConfigPage-CFJNOrlg.js +0 -13
- package/dashboard/dist/assets/AgentConfigPage-CFJNOrlg.js.map +0 -1
- package/dashboard/dist/assets/AgentDetailPage-Dbx2t-Uk.js +0 -4
- package/dashboard/dist/assets/AgentDetailPage-Dbx2t-Uk.js.map +0 -1
- package/dashboard/dist/assets/AgentsPage-Bz61Nl-x.js +0 -2
- package/dashboard/dist/assets/AgentsPage-Bz61Nl-x.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-DdrzePy4.js +0 -2
- package/dashboard/dist/assets/BotPicker-kKBifD1w.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-Ch5qY0I7.js +0 -2
- package/dashboard/dist/assets/CollapsibleSection-kYTBL7dT.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-CcaAapMl.js +0 -2
- package/dashboard/dist/assets/CopyableId-B4CL12pv.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-D1VAlwid.js +0 -2
- package/dashboard/dist/assets/CronLabel-DRmO5rH0.js +0 -2
- package/dashboard/dist/assets/CustomDurationPicker-C06QDDir.js +0 -2
- package/dashboard/dist/assets/DataTable-J5R6mepB.js +0 -2
- package/dashboard/dist/assets/DropZone-DwNj3GiG.js +0 -2
- package/dashboard/dist/assets/ElapsedCell-ChyMzl9n.js +0 -2
- package/dashboard/dist/assets/EmptyState-BXGvOADa.js +0 -2
- package/dashboard/dist/assets/EscalationsOverview-DM6zmE4g.js +0 -2
- package/dashboard/dist/assets/EventTable-CvJ98E8s.js +0 -2
- package/dashboard/dist/assets/EventTopicPill-CB_rIGlL.js +0 -2
- package/dashboard/dist/assets/FilterBar-Bdssa-Xn.js +0 -2
- package/dashboard/dist/assets/HomePage-BuZkdXZt.js +0 -2
- package/dashboard/dist/assets/HomePage-BuZkdXZt.js.map +0 -1
- package/dashboard/dist/assets/ListToolbar-jy8NL6ll.js +0 -2
- package/dashboard/dist/assets/McpOverview-xkaKuHbX.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-D5ICn6cR.js +0 -5
- package/dashboard/dist/assets/McpQueryPage-C46fzfm5.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-Znsl4Yc-.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-DT-armx5.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-DT-armx5.js.map +0 -1
- package/dashboard/dist/assets/Modal-C6k6_5KB.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-e5N3_dVl.js +0 -2
- package/dashboard/dist/assets/PageHeader-COcgWWf-.js +0 -2
- package/dashboard/dist/assets/PageHeaderWithStats-C0PCY3aJ.js +0 -2
- package/dashboard/dist/assets/PriorityBadge-BQCsYMpM.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-C03LOgI0.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-iyPsmlhm.js +0 -2
- package/dashboard/dist/assets/RolePill-CHwys1f9.js +0 -2
- package/dashboard/dist/assets/RolesPage-Bmc3XaUk.js +0 -2
- package/dashboard/dist/assets/RowActions-Bs4PF-Gd.js +0 -2
- package/dashboard/dist/assets/RunAsSelector-DXzAr2WW.js +0 -2
- package/dashboard/dist/assets/ServerName-BIdLC1Ay.js +0 -2
- package/dashboard/dist/assets/StatCard-OKzRSSx4.js +0 -2
- package/dashboard/dist/assets/StatusBadge-CQlF46RR.js +0 -2
- package/dashboard/dist/assets/StepIndicator-CP7eycjI.js +0 -2
- package/dashboard/dist/assets/StickyPagination-CGk8VAKt.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-MEUPc3yJ.js +0 -2
- package/dashboard/dist/assets/TagInput-BGxXKiWD.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-pN5BXzYA.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-pN5BXzYA.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-bw8ieKsf.js +0 -2
- package/dashboard/dist/assets/TasksListPage-D1INzcrA.js +0 -2
- package/dashboard/dist/assets/TimeAgo-CywLVIBA.js +0 -2
- package/dashboard/dist/assets/TimestampCell-B4Pc6f3A.js +0 -2
- package/dashboard/dist/assets/ToolPill-DdLN3JOT.js +0 -2
- package/dashboard/dist/assets/ToolTestPanel-DusbUka5.js +0 -2
- package/dashboard/dist/assets/TopicDetailPage-DadwM52Y.js +0 -9
- package/dashboard/dist/assets/TopicDetailPage-DadwM52Y.js.map +0 -1
- package/dashboard/dist/assets/TopicsPage-DbtrnQON.js +0 -2
- package/dashboard/dist/assets/UserName-CLbusknU.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-C61R-3Gg.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-7vt2F6wR.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-BWiUNvyl.js +0 -2
- package/dashboard/dist/assets/WorkflowsOverview-DA2ZOs7D.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowsPage-CLebf2eL.js +0 -2
- package/dashboard/dist/assets/agents-Dga6NU7U.js.map +0 -1
- package/dashboard/dist/assets/escalation-_N5GfuIi.js +0 -2
- package/dashboard/dist/assets/escalation-columns-CoTmTpHp.js +0 -2
- package/dashboard/dist/assets/helpers-Dz2U3Ctb.js +0 -2
- package/dashboard/dist/assets/index-6Kd78p_v.js +0 -2
- package/dashboard/dist/assets/index-B9ealjkt.js +0 -6
- package/dashboard/dist/assets/index-BIUHY2Jz.css +0 -1
- package/dashboard/dist/assets/index-BWHDW_CF.js +0 -2
- package/dashboard/dist/assets/index-BWHDW_CF.js.map +0 -1
- package/dashboard/dist/assets/index-BYwPVJv0.js +0 -15
- package/dashboard/dist/assets/index-CCOSf1PY.js +0 -281
- package/dashboard/dist/assets/index-CCOSf1PY.js.map +0 -1
- package/dashboard/dist/assets/index-CS61sh5q.js +0 -2
- package/dashboard/dist/assets/index-CtbG3UN-.js +0 -5
- package/dashboard/dist/assets/index-DWUunWxh.js +0 -2
- package/dashboard/dist/assets/index-D_H_Prht.js +0 -2
- package/dashboard/dist/assets/index-Dpjguclc.js +0 -2
- package/dashboard/dist/assets/index-QicYdUsl.js +0 -2
- package/dashboard/dist/assets/index-dM-OgCY3.js +0 -2
- package/dashboard/dist/assets/namespaces-iRejH3_A.js +0 -2
- package/dashboard/dist/assets/settings-DmN2I-c6.js +0 -2
- package/dashboard/dist/assets/topics-p8anbgi0.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-CBOM6Es0.js.map +0 -1
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +0 -35
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js +0 -26
- package/dashboard/dist/assets/vendor-react-Co3Y8ikm.js.map +0 -1
|
@@ -5,11 +5,13 @@ exports.listApps = listApps;
|
|
|
5
5
|
exports.rollCall = rollCall;
|
|
6
6
|
exports.applyThrottle = applyThrottle;
|
|
7
7
|
exports.getStreamStats = getStreamStats;
|
|
8
|
+
exports.getStreamMessages = getStreamMessages;
|
|
8
9
|
exports.subscribeMesh = subscribeMesh;
|
|
9
10
|
exports.isBridgeActive = isBridgeActive;
|
|
10
11
|
const hotmesh_1 = require("@hotmeshio/hotmesh");
|
|
11
12
|
const db_1 = require("../../lib/db");
|
|
12
13
|
const sql_1 = require("./sql");
|
|
14
|
+
const stream_messages_sql_1 = require("./stream-messages-sql");
|
|
13
15
|
const quorum_bridge_1 = require("./quorum-bridge");
|
|
14
16
|
// ─── Engine cache ───────────────────────────────────────────────────────────
|
|
15
17
|
/** Cached read-only HotMesh engines keyed by appId */
|
|
@@ -100,6 +102,43 @@ async function getStreamStats(schema, duration = '1h', streamName) {
|
|
|
100
102
|
byStream: byStreamRes.rows,
|
|
101
103
|
};
|
|
102
104
|
}
|
|
105
|
+
// ─── Stream message browsing ────────────────────────────────────────────
|
|
106
|
+
/**
|
|
107
|
+
* Browse stream messages across engine_streams and worker_streams tables
|
|
108
|
+
* with pagination, filtering, and sorting.
|
|
109
|
+
*
|
|
110
|
+
* @param schema — the Postgres schema (namespace, e.g. "durable")
|
|
111
|
+
* @param params — pagination, filter, and sort options
|
|
112
|
+
*/
|
|
113
|
+
async function getStreamMessages(schema, params) {
|
|
114
|
+
const limit = Math.min(Math.max(params.limit ?? 25, 1), 100);
|
|
115
|
+
const offset = Math.max(params.offset ?? 0, 0);
|
|
116
|
+
const sortColumn = stream_messages_sql_1.VALID_SORT_COLUMNS[params.sort_by ?? 'created_at'];
|
|
117
|
+
if (!sortColumn)
|
|
118
|
+
throw new Error(`Invalid sort_by: ${params.sort_by}`);
|
|
119
|
+
const sortOrder = (params.order ?? 'desc').toLowerCase();
|
|
120
|
+
if (!stream_messages_sql_1.VALID_SORT_ORDERS.has(sortOrder))
|
|
121
|
+
throw new Error(`Invalid order: ${params.order}`);
|
|
122
|
+
const { source } = params;
|
|
123
|
+
const streamName = params.stream_name ? `%${params.stream_name}%` : null;
|
|
124
|
+
const status = params.status ?? null;
|
|
125
|
+
const msgType = params.msg_type ?? null;
|
|
126
|
+
const topic = params.topic ?? null;
|
|
127
|
+
const workflowName = params.workflow_name ?? null;
|
|
128
|
+
const jid = params.jid ?? null;
|
|
129
|
+
const aid = params.aid ?? null;
|
|
130
|
+
const pool = (0, db_1.getPool)();
|
|
131
|
+
const queryParams = [streamName, status, msgType, topic, workflowName, jid, aid, limit, offset];
|
|
132
|
+
const countParams = [streamName, status, msgType, topic, workflowName, jid, aid];
|
|
133
|
+
const [messagesRes, countRes] = await Promise.all([
|
|
134
|
+
pool.query((0, stream_messages_sql_1.LIST_STREAM_MESSAGES)(schema, sortColumn, sortOrder, source), queryParams),
|
|
135
|
+
pool.query((0, stream_messages_sql_1.COUNT_STREAM_MESSAGES)(schema, source), countParams),
|
|
136
|
+
]);
|
|
137
|
+
return {
|
|
138
|
+
messages: messagesRes.rows,
|
|
139
|
+
total: countRes.rows[0]?.count ?? 0,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
103
142
|
// ─── Quorum bridge ──────────────────────────────────────────────────────────
|
|
104
143
|
/** Track which appIds have active quorum bridges */
|
|
105
144
|
const activeBridges = new Set();
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Allowed sort columns — whitelist prevents injection. */
|
|
2
|
+
export declare const VALID_SORT_COLUMNS: Record<string, string>;
|
|
3
|
+
/** Allowed sort directions. */
|
|
4
|
+
export declare const VALID_SORT_ORDERS: Set<string>;
|
|
5
|
+
/**
|
|
6
|
+
* List stream messages with pagination, filtering, and sorting.
|
|
7
|
+
*
|
|
8
|
+
* Source is required — engine and worker streams are separate tables
|
|
9
|
+
* with different schemas and must never be commingled in a single query.
|
|
10
|
+
*
|
|
11
|
+
* Parameters: $1 = stream_name, $2 = status, $3 = msg_type,
|
|
12
|
+
* $4 = topic, $5 = workflow_name, $6 = jid, $7 = aid,
|
|
13
|
+
* $8 = limit, $9 = offset
|
|
14
|
+
*/
|
|
15
|
+
export declare function LIST_STREAM_MESSAGES(schema: string, sortColumn: string, sortOrder: string, source: 'engine' | 'worker'): string;
|
|
16
|
+
/**
|
|
17
|
+
* Count stream messages matching the filter criteria.
|
|
18
|
+
*
|
|
19
|
+
* Parameters: $1 = stream_name, $2 = status, $3 = msg_type
|
|
20
|
+
*/
|
|
21
|
+
export declare function COUNT_STREAM_MESSAGES(schema: string, source: 'engine' | 'worker'): string;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ─── Stream message browsing ───────────────────────────────────────────────
|
|
3
|
+
//
|
|
4
|
+
// Paginated queries across engine_streams and worker_streams tables.
|
|
5
|
+
// Both tables are HASH-partitioned on stream_name (8 partitions each).
|
|
6
|
+
// Status is derived from timestamp columns:
|
|
7
|
+
// dead_lettered_at IS NOT NULL → 'dead_lettered'
|
|
8
|
+
// expired_at IS NOT NULL → 'processed'
|
|
9
|
+
// reserved_at IS NOT NULL → 'claimed'
|
|
10
|
+
// else → 'pending'
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.VALID_SORT_ORDERS = exports.VALID_SORT_COLUMNS = void 0;
|
|
13
|
+
exports.LIST_STREAM_MESSAGES = LIST_STREAM_MESSAGES;
|
|
14
|
+
exports.COUNT_STREAM_MESSAGES = COUNT_STREAM_MESSAGES;
|
|
15
|
+
/** Allowed sort columns — whitelist prevents injection. */
|
|
16
|
+
exports.VALID_SORT_COLUMNS = {
|
|
17
|
+
created_at: 'created_at',
|
|
18
|
+
stream_name: 'stream_name',
|
|
19
|
+
priority: 'priority',
|
|
20
|
+
id: 'id',
|
|
21
|
+
};
|
|
22
|
+
/** Allowed sort directions. */
|
|
23
|
+
exports.VALID_SORT_ORDERS = new Set(['asc', 'desc']);
|
|
24
|
+
/**
|
|
25
|
+
* Status derivation CASE expression, reused by both list and count queries.
|
|
26
|
+
*/
|
|
27
|
+
const STATUS_CASE = `
|
|
28
|
+
CASE
|
|
29
|
+
WHEN dead_lettered_at IS NOT NULL THEN 'dead_lettered'
|
|
30
|
+
WHEN expired_at IS NOT NULL THEN 'processed'
|
|
31
|
+
WHEN reserved_at IS NOT NULL THEN 'claimed'
|
|
32
|
+
ELSE 'pending'
|
|
33
|
+
END`;
|
|
34
|
+
/**
|
|
35
|
+
* Shared WHERE clause for stream message filtering.
|
|
36
|
+
*
|
|
37
|
+
* Parameters:
|
|
38
|
+
* $1 = stream_name filter (NULL = all, otherwise ILIKE pattern)
|
|
39
|
+
* $2 = status filter (NULL = all, otherwise exact match)
|
|
40
|
+
* $3 = msg_type filter (NULL = all, worker-only)
|
|
41
|
+
* $4 = topic filter (NULL = all, worker-only)
|
|
42
|
+
* $5 = workflow_name filter (NULL = all, worker-only)
|
|
43
|
+
* $6 = jid filter (NULL = all, worker-only)
|
|
44
|
+
* $7 = aid filter (NULL = all, worker-only)
|
|
45
|
+
*/
|
|
46
|
+
/** Engine WHERE: supports stream_name, status, and jid (v0.18.0). */
|
|
47
|
+
const ENGINE_WHERE_CLAUSE = `
|
|
48
|
+
WHERE ($1::text IS NULL OR stream_name ILIKE $1)
|
|
49
|
+
AND ($2::text IS NULL OR ${STATUS_CASE} = $2)
|
|
50
|
+
AND ($3::text IS NULL)
|
|
51
|
+
AND ($4::text IS NULL)
|
|
52
|
+
AND ($5::text IS NULL)
|
|
53
|
+
AND ($6::text IS NULL OR jid = $6)
|
|
54
|
+
AND ($7::text IS NULL)`;
|
|
55
|
+
const WORKER_WHERE_CLAUSE = `
|
|
56
|
+
WHERE ($1::text IS NULL OR stream_name ILIKE $1)
|
|
57
|
+
AND ($2::text IS NULL OR ${STATUS_CASE} = $2)
|
|
58
|
+
AND ($3::text IS NULL OR msg_type = $3)
|
|
59
|
+
AND ($4::text IS NULL OR topic = $4)
|
|
60
|
+
AND ($5::text IS NULL OR workflow_name = $5)
|
|
61
|
+
AND ($6::text IS NULL OR jid = $6)
|
|
62
|
+
AND ($7::text IS NULL OR aid = $7)`;
|
|
63
|
+
/**
|
|
64
|
+
* List stream messages with pagination, filtering, and sorting.
|
|
65
|
+
*
|
|
66
|
+
* Source is required — engine and worker streams are separate tables
|
|
67
|
+
* with different schemas and must never be commingled in a single query.
|
|
68
|
+
*
|
|
69
|
+
* Parameters: $1 = stream_name, $2 = status, $3 = msg_type,
|
|
70
|
+
* $4 = topic, $5 = workflow_name, $6 = jid, $7 = aid,
|
|
71
|
+
* $8 = limit, $9 = offset
|
|
72
|
+
*/
|
|
73
|
+
function LIST_STREAM_MESSAGES(schema, sortColumn, sortOrder, source) {
|
|
74
|
+
const select = source === 'engine'
|
|
75
|
+
? `SELECT
|
|
76
|
+
id, 'engine' AS source, stream_name,
|
|
77
|
+
message, ${STATUS_CASE} AS status,
|
|
78
|
+
created_at, reserved_at, reserved_by, expired_at,
|
|
79
|
+
dead_lettered_at, priority, visible_at,
|
|
80
|
+
retry_attempt, max_retry_attempts,
|
|
81
|
+
NULL AS workflow_name, jid, NULL AS aid,
|
|
82
|
+
NULL AS dad, NULL AS msg_type, NULL AS topic
|
|
83
|
+
FROM "${schema}".engine_streams
|
|
84
|
+
${ENGINE_WHERE_CLAUSE}`
|
|
85
|
+
: `SELECT
|
|
86
|
+
id, 'worker' AS source, stream_name,
|
|
87
|
+
message, ${STATUS_CASE} AS status,
|
|
88
|
+
created_at, reserved_at, reserved_by, expired_at,
|
|
89
|
+
dead_lettered_at, priority, visible_at,
|
|
90
|
+
retry_attempt, max_retry_attempts,
|
|
91
|
+
workflow_name, jid, aid, dad, msg_type, topic
|
|
92
|
+
FROM "${schema}".worker_streams
|
|
93
|
+
${WORKER_WHERE_CLAUSE}`;
|
|
94
|
+
return `
|
|
95
|
+
SELECT * FROM (${select}) AS q
|
|
96
|
+
ORDER BY ${sortColumn} ${sortOrder}, id DESC
|
|
97
|
+
LIMIT $8::int OFFSET $9::int`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Count stream messages matching the filter criteria.
|
|
101
|
+
*
|
|
102
|
+
* Parameters: $1 = stream_name, $2 = status, $3 = msg_type
|
|
103
|
+
*/
|
|
104
|
+
function COUNT_STREAM_MESSAGES(schema, source) {
|
|
105
|
+
const table = source === 'engine' ? 'engine_streams' : 'worker_streams';
|
|
106
|
+
const where = source === 'engine' ? ENGINE_WHERE_CLAUSE : WORKER_WHERE_CLAUSE;
|
|
107
|
+
return `SELECT COUNT(*)::int AS count FROM "${schema}".${table} ${where}`;
|
|
108
|
+
}
|
|
@@ -12,3 +12,47 @@ export interface StreamStats {
|
|
|
12
12
|
count: number;
|
|
13
13
|
}>;
|
|
14
14
|
}
|
|
15
|
+
export type StreamMessageStatus = 'pending' | 'claimed' | 'processed' | 'dead_lettered';
|
|
16
|
+
export type StreamMessageSource = 'engine' | 'worker';
|
|
17
|
+
export interface StreamMessage {
|
|
18
|
+
id: string;
|
|
19
|
+
source: StreamMessageSource;
|
|
20
|
+
stream_name: string;
|
|
21
|
+
message: string;
|
|
22
|
+
status: StreamMessageStatus;
|
|
23
|
+
created_at: string;
|
|
24
|
+
reserved_at: string | null;
|
|
25
|
+
reserved_by: string | null;
|
|
26
|
+
expired_at: string | null;
|
|
27
|
+
dead_lettered_at: string | null;
|
|
28
|
+
priority: number;
|
|
29
|
+
visible_at: string | null;
|
|
30
|
+
retry_attempt: number;
|
|
31
|
+
max_retry_attempts: number;
|
|
32
|
+
/** Worker-only fields (null for engine messages) */
|
|
33
|
+
workflow_name: string | null;
|
|
34
|
+
jid: string | null;
|
|
35
|
+
aid: string | null;
|
|
36
|
+
dad: string | null;
|
|
37
|
+
msg_type: string | null;
|
|
38
|
+
topic: string | null;
|
|
39
|
+
}
|
|
40
|
+
export interface StreamMessagesParams {
|
|
41
|
+
source: StreamMessageSource;
|
|
42
|
+
limit?: number;
|
|
43
|
+
offset?: number;
|
|
44
|
+
sort_by?: string;
|
|
45
|
+
order?: 'asc' | 'desc';
|
|
46
|
+
stream_name?: string | null;
|
|
47
|
+
status?: StreamMessageStatus | null;
|
|
48
|
+
msg_type?: string | null;
|
|
49
|
+
/** Worker-only filters */
|
|
50
|
+
topic?: string | null;
|
|
51
|
+
workflow_name?: string | null;
|
|
52
|
+
jid?: string | null;
|
|
53
|
+
aid?: string | null;
|
|
54
|
+
}
|
|
55
|
+
export interface StreamMessagesResult {
|
|
56
|
+
messages: StreamMessage[];
|
|
57
|
+
total: number;
|
|
58
|
+
}
|
|
@@ -327,10 +327,10 @@ class LTCronRegistry {
|
|
|
327
327
|
if (!principal) {
|
|
328
328
|
principal = this.systemPrincipal ?? undefined;
|
|
329
329
|
}
|
|
330
|
-
logger_1.loggerRegistry.info(`[lt-cron] agent ${agent.
|
|
330
|
+
logger_1.loggerRegistry.info(`[lt-cron] agent ${agent.id} principal: ${principal?.id ?? 'NONE'} (executeAs=${executeAs ?? 'unset'})`);
|
|
331
331
|
const envelope = {
|
|
332
332
|
data: schedule.envelope ?? {},
|
|
333
|
-
metadata: { source: 'agent-cron', agentId: agent.id, agentName: agent.
|
|
333
|
+
metadata: { source: 'agent-cron', agentId: agent.id, agentName: agent.id, certified: true },
|
|
334
334
|
lt: {
|
|
335
335
|
userId: principal?.id ?? 'lt-system',
|
|
336
336
|
principal,
|
|
@@ -371,7 +371,7 @@ class LTCronRegistry {
|
|
|
371
371
|
// Expected — deterministic ID dedup when cron fires multiple consumers
|
|
372
372
|
}
|
|
373
373
|
else {
|
|
374
|
-
logger_1.loggerRegistry.error(`[lt-cron] agent ${agent.
|
|
374
|
+
logger_1.loggerRegistry.error(`[lt-cron] agent ${agent.id}/${targetLabel} failed: ${msg}`);
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
},
|
|
@@ -379,7 +379,7 @@ class LTCronRegistry {
|
|
|
379
379
|
options: { id: cronId, interval: schedule.cron },
|
|
380
380
|
});
|
|
381
381
|
this.activeCrons.set(key, cronId);
|
|
382
|
-
logger_1.loggerRegistry.info(`[lt-cron] agent schedule started: ${agent.
|
|
382
|
+
logger_1.loggerRegistry.info(`[lt-cron] agent schedule started: ${agent.id}/${targetLabel} (${schedule.cron})`);
|
|
383
383
|
}
|
|
384
384
|
/**
|
|
385
385
|
* Stop all cron schedules for an agent.
|
|
@@ -436,7 +436,7 @@ class LTCronRegistry {
|
|
|
436
436
|
armed++;
|
|
437
437
|
}
|
|
438
438
|
catch (err) {
|
|
439
|
-
logger_1.loggerRegistry.warn(`[lt-cron] agent schedule failed: ${agent.
|
|
439
|
+
logger_1.loggerRegistry.warn(`[lt-cron] agent schedule failed: ${agent.id}/${sched.cron}: ${err.message}`);
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
442
|
}
|
|
@@ -108,14 +108,22 @@ function postProcessExecution(execution) {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
if (toAdd.length
|
|
112
|
-
|
|
113
|
-
if (toAdd.length === 0) {
|
|
114
|
-
return { ...execution, events };
|
|
111
|
+
if (toAdd.length > 0) {
|
|
112
|
+
events.push(...toAdd);
|
|
115
113
|
}
|
|
116
|
-
|
|
117
|
-
//
|
|
114
|
+
// Sort by execution_index first — it reflects the true workflow sequence.
|
|
115
|
+
// Timestamps are unreliable for ordering (e.g. signal_wait_started gets
|
|
116
|
+
// the workflow start time). Fall back to timestamp only when index is absent.
|
|
118
117
|
events.sort((a, b) => {
|
|
118
|
+
const idxA = a.attributes.execution_index ?? -1;
|
|
119
|
+
const idxB = b.attributes.execution_index ?? -1;
|
|
120
|
+
if (idxA !== -1 && idxB !== -1 && idxA !== idxB)
|
|
121
|
+
return idxA - idxB;
|
|
122
|
+
if (idxA !== -1 && idxB === -1)
|
|
123
|
+
return 1; // indexed after non-indexed (workflow_started)
|
|
124
|
+
if (idxA === -1 && idxB !== -1)
|
|
125
|
+
return -1;
|
|
126
|
+
// Same index (scheduled/completed pairs) — sort by timestamp
|
|
119
127
|
const cmp = a.event_time.localeCompare(b.event_time);
|
|
120
128
|
return cmp !== 0 ? cmp : a.event_id - b.event_id;
|
|
121
129
|
});
|
|
@@ -72,9 +72,14 @@ function assembleExport(ctx, events, activities) {
|
|
|
72
72
|
const workerCount = ctx.activities.filter((a) => a.type !== 'trigger').length;
|
|
73
73
|
const completed = events.filter((e) => e.event_type === 'activity_task_completed').length;
|
|
74
74
|
const failed = events.filter((e) => e.event_type === 'activity_task_failed').length;
|
|
75
|
+
// Derive close_time from the last event when available — meta.ju (job updated)
|
|
76
|
+
// often equals meta.jc (job created), producing 0ms duration.
|
|
77
|
+
const lastEventTime = events.length > 0 ? events[events.length - 1].event_time : null;
|
|
78
|
+
const closeTime = lastEventTime || ctx.closeTime || null;
|
|
79
|
+
const startTime = ctx.startTime || null;
|
|
75
80
|
let durationMs = null;
|
|
76
|
-
if (
|
|
77
|
-
const diff = new Date(
|
|
81
|
+
if (startTime && closeTime) {
|
|
82
|
+
const diff = new Date(closeTime).getTime() - new Date(startTime).getTime();
|
|
78
83
|
if (diff >= 0)
|
|
79
84
|
durationMs = diff;
|
|
80
85
|
}
|
|
@@ -84,8 +89,8 @@ function assembleExport(ctx, events, activities) {
|
|
|
84
89
|
workflow_name: ctx.workflowName,
|
|
85
90
|
task_queue: ctx.appId,
|
|
86
91
|
status: ctx.job.status > 0 ? 'running' : ctx.job.status === 0 ? 'completed' : 'failed',
|
|
87
|
-
start_time:
|
|
88
|
-
close_time:
|
|
92
|
+
start_time: startTime,
|
|
93
|
+
close_time: closeTime,
|
|
89
94
|
duration_ms: durationMs,
|
|
90
95
|
trace_id: ctx.traceId,
|
|
91
96
|
result: ctx.workflowResult,
|
|
@@ -9,7 +9,6 @@ exports.upsertTopicOnPublish = upsertTopicOnPublish;
|
|
|
9
9
|
exports.seedTopic = seedTopic;
|
|
10
10
|
exports.resetTopic = resetTopic;
|
|
11
11
|
const db_1 = require("../../lib/db");
|
|
12
|
-
const matching_1 = require("../../lib/events/matching");
|
|
13
12
|
const sql_1 = require("./sql");
|
|
14
13
|
async function listTopics(filters = {}) {
|
|
15
14
|
const pool = (0, db_1.getPool)();
|
|
@@ -31,9 +30,7 @@ async function getTopic(topic) {
|
|
|
31
30
|
const { rows } = await pool.query(sql_1.GET_TOPIC, [topic]);
|
|
32
31
|
if (!rows[0])
|
|
33
32
|
return null;
|
|
34
|
-
|
|
35
|
-
const { rows: allSubs } = await pool.query(sql_1.LIST_SUBSCRIBERS);
|
|
36
|
-
const subscribers = allSubs.filter((sub) => (0, matching_1.subjectMatchesPattern)(topic, sub.topic));
|
|
33
|
+
const { rows: subscribers } = await pool.query(sql_1.LIST_SUBSCRIBERS, [topic]);
|
|
37
34
|
return { ...rows[0], subscribers };
|
|
38
35
|
}
|
|
39
36
|
async function createTopic(data) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIST_TOPICS = "\n SELECT t.*,\n COALESCE(s.sub_count, 0)::int AS subscriber_count\n FROM lt_topic_catalog t\n LEFT JOIN LATERAL (\n SELECT COUNT(*)::int AS sub_count\n FROM lt_agent_subscriptions\n WHERE enabled = true\n AND (topic = t.topic
|
|
1
|
+
export declare const LIST_TOPICS = "\n SELECT t.*,\n COALESCE(s.sub_count, 0)::int AS subscriber_count\n FROM lt_topic_catalog t\n LEFT JOIN LATERAL (\n SELECT COUNT(*)::int AS sub_count\n FROM lt_agent_subscriptions\n WHERE enabled = true\n AND (\n topic = t.topic\n OR t.topic LIKE REPLACE(REPLACE(topic, '*', '%'), '>', '%')\n )\n ) s ON true\n WHERE ($1::text IS NULL OR t.category = $1)\n AND ($2::text IS NULL OR t.topic ILIKE '%' || $2 || '%' OR t.description ILIKE '%' || $2 || '%')\n ORDER BY t.category, t.topic\n LIMIT $3 OFFSET $4\n";
|
|
2
2
|
export declare const COUNT_TOPICS = "\n SELECT COUNT(*)::int AS total FROM lt_topic_catalog\n WHERE ($1::text IS NULL OR category = $1)\n AND ($2::text IS NULL OR topic ILIKE '%' || $2 || '%' OR description ILIKE '%' || $2 || '%')\n";
|
|
3
3
|
export declare const GET_TOPIC = "\n SELECT * FROM lt_topic_catalog WHERE topic = $1\n";
|
|
4
4
|
export declare const INSERT_TOPIC = "\n INSERT INTO lt_topic_catalog\n (topic, description, category, payload_schema, example_payload, source, tags)\n VALUES ($1, $2, $3, $4, $5, $6, $7)\n RETURNING *\n";
|
|
@@ -7,4 +7,4 @@ export declare const DELETE_TOPIC = "\n DELETE FROM lt_topic_catalog WHERE topi
|
|
|
7
7
|
export declare const UPSERT_ON_PUBLISH = "\n INSERT INTO lt_topic_catalog\n (topic, category, source, example_payload, last_seen_at)\n VALUES ($1, $2, $3, $4, NOW())\n ON CONFLICT (topic) DO UPDATE SET\n last_seen_at = NOW(),\n example_payload = COALESCE(EXCLUDED.example_payload, lt_topic_catalog.example_payload)\n";
|
|
8
8
|
export declare const SEED_TOPIC = "\n INSERT INTO lt_topic_catalog\n (topic, description, category, payload_schema, example_payload, source, tags)\n VALUES ($1, $2, $3, $4, $5, $6, $7)\n ON CONFLICT (topic) DO NOTHING\n";
|
|
9
9
|
export declare const RESET_TOPIC = "\n INSERT INTO lt_topic_catalog\n (topic, description, category, payload_schema, example_payload, source, tags, managed)\n VALUES ($1, $2, $3, $4, $5, $6, $7, true)\n ON CONFLICT (topic) DO UPDATE SET\n description = EXCLUDED.description,\n category = EXCLUDED.category,\n payload_schema = EXCLUDED.payload_schema,\n example_payload = EXCLUDED.example_payload,\n source = EXCLUDED.source,\n tags = EXCLUDED.tags,\n managed = true\n";
|
|
10
|
-
export declare const LIST_SUBSCRIBERS = "\n SELECT s.id, s.agent_id, s.topic, s.reaction_type,\n a.
|
|
10
|
+
export declare const LIST_SUBSCRIBERS = "\n SELECT s.id, s.agent_id, s.topic, s.reaction_type,\n a.id AS agent_name\n FROM lt_agent_subscriptions s\n JOIN lt_agents a ON s.agent_id = a.id\n WHERE s.enabled = true AND a.status = 'active'\n AND (\n s.topic = $1\n OR $1 LIKE REPLACE(REPLACE(s.topic, '*', '%'), '>', '%')\n )\n ORDER BY s.created_at\n";
|
|
@@ -9,7 +9,10 @@ exports.LIST_TOPICS = `
|
|
|
9
9
|
SELECT COUNT(*)::int AS sub_count
|
|
10
10
|
FROM lt_agent_subscriptions
|
|
11
11
|
WHERE enabled = true
|
|
12
|
-
AND (
|
|
12
|
+
AND (
|
|
13
|
+
topic = t.topic
|
|
14
|
+
OR t.topic LIKE REPLACE(REPLACE(topic, '*', '%'), '>', '%')
|
|
15
|
+
)
|
|
13
16
|
) s ON true
|
|
14
17
|
WHERE ($1::text IS NULL OR t.category = $1)
|
|
15
18
|
AND ($2::text IS NULL OR t.topic ILIKE '%' || $2 || '%' OR t.description ILIKE '%' || $2 || '%')
|
|
@@ -72,9 +75,13 @@ exports.RESET_TOPIC = `
|
|
|
72
75
|
`;
|
|
73
76
|
exports.LIST_SUBSCRIBERS = `
|
|
74
77
|
SELECT s.id, s.agent_id, s.topic, s.reaction_type,
|
|
75
|
-
a.
|
|
78
|
+
a.id AS agent_name
|
|
76
79
|
FROM lt_agent_subscriptions s
|
|
77
80
|
JOIN lt_agents a ON s.agent_id = a.id
|
|
78
81
|
WHERE s.enabled = true AND a.status = 'active'
|
|
82
|
+
AND (
|
|
83
|
+
s.topic = $1
|
|
84
|
+
OR $1 LIKE REPLACE(REPLACE(s.topic, '*', '%'), '>', '%')
|
|
85
|
+
)
|
|
79
86
|
ORDER BY s.created_at
|
|
80
87
|
`;
|
|
@@ -220,7 +220,7 @@ function inferCategory(topic) {
|
|
|
220
220
|
async function seedSystemTopics() {
|
|
221
221
|
for (const def of SYSTEM_TOPICS) {
|
|
222
222
|
try {
|
|
223
|
-
|
|
223
|
+
await (0, index_1.resetTopic)({
|
|
224
224
|
topic: def.topic,
|
|
225
225
|
description: def.description ?? '',
|
|
226
226
|
category: def.category ?? inferCategory(def.topic),
|
|
@@ -229,8 +229,7 @@ async function seedSystemTopics() {
|
|
|
229
229
|
source: 'system',
|
|
230
230
|
tags: def.tags ?? [],
|
|
231
231
|
});
|
|
232
|
-
|
|
233
|
-
logger_1.loggerRegistry.info(`[long-tail] topic seeded: ${def.topic}`);
|
|
232
|
+
logger_1.loggerRegistry.info(`[long-tail] topic seeded: ${def.topic}`);
|
|
234
233
|
}
|
|
235
234
|
catch (err) {
|
|
236
235
|
logger_1.loggerRegistry.warn(`[long-tail] topic seed failed for ${def.topic}: ${err.message}`);
|
package/build/start/workers.js
CHANGED
|
@@ -237,7 +237,7 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
237
237
|
: [];
|
|
238
238
|
const allAgentConfigs = [...(startConfig.agents ?? []), ...systemAgents];
|
|
239
239
|
if (allAgentConfigs.length > 0) {
|
|
240
|
-
const { seedAgent
|
|
240
|
+
const { seedAgent } = await Promise.resolve().then(() => __importStar(require('../services/agent')));
|
|
241
241
|
const { seedSubscription } = await Promise.resolve().then(() => __importStar(require('../services/agent/subscriptions')));
|
|
242
242
|
for (const agentConfig of allAgentConfigs) {
|
|
243
243
|
try {
|
|
@@ -248,7 +248,7 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
248
248
|
behaviors.cron = agentConfig.schedules[0].cron;
|
|
249
249
|
}
|
|
250
250
|
const inserted = await seedAgent({
|
|
251
|
-
|
|
251
|
+
id: agentConfig.name,
|
|
252
252
|
description: agentConfig.description,
|
|
253
253
|
goals: agentConfig.goals,
|
|
254
254
|
rules: agentConfig.rules,
|
|
@@ -259,19 +259,16 @@ async function startWorkers(startConfig, workers, builtinMcpServerFactories) {
|
|
|
259
259
|
});
|
|
260
260
|
if (inserted)
|
|
261
261
|
logger_1.loggerRegistry.info(`[long-tail] agent seeded: ${agentConfig.name}`);
|
|
262
|
-
// Seed subscriptions for this agent
|
|
262
|
+
// Seed subscriptions for this agent — id IS the name
|
|
263
263
|
if (agentConfig.subscriptions?.length) {
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
}
|
|
272
|
-
catch (subErr) {
|
|
273
|
-
logger_1.loggerRegistry.warn(`[long-tail] subscription seed failed: ${agentConfig.name}/${sub.topic}: ${subErr.message}`);
|
|
274
|
-
}
|
|
264
|
+
for (const sub of agentConfig.subscriptions) {
|
|
265
|
+
try {
|
|
266
|
+
const subInserted = await seedSubscription(agentConfig.name, sub);
|
|
267
|
+
if (subInserted)
|
|
268
|
+
logger_1.loggerRegistry.info(`[long-tail] subscription seeded: ${agentConfig.name}/${sub.topic}`);
|
|
269
|
+
}
|
|
270
|
+
catch (subErr) {
|
|
271
|
+
logger_1.loggerRegistry.warn(`[long-tail] subscription seed failed: ${agentConfig.name}/${sub.topic}: ${subErr.message}`);
|
|
275
272
|
}
|
|
276
273
|
}
|
|
277
274
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/mcp-runs.ts","../api/namespaces.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/bulk.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/status.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/config.ts","../modules/defaults.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/utils.ts","../routes/agents.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/docs.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-runs.ts","../routes/mcp.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/roles.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/bulk.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/workflow-invocation.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/escalation/bulk.ts","../services/escalation/crud.ts","../services/escalation/index.ts","../services/escalation/queries.ts","../services/escalation/sql.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/mcp-runs/enrichment.ts","../services/mcp-runs/events.ts","../services/mcp-runs/execution-builder.ts","../services/mcp-runs/index.ts","../services/mcp-runs/queries.ts","../services/mcp-runs/sql.ts","../services/mcp-runs/types.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/role/index.ts","../services/role/sql.ts","../services/role/types.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/sql.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../start/adapters.ts","../start/config.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/mcp-servers/playwright/browser-lifecycle.ts","../system/mcp-servers/playwright/index.ts","../system/mcp-servers/playwright/schemas.ts","../system/mcp-servers/playwright/tools-atomic.ts","../system/mcp-servers/playwright/tools-navigation.ts","../system/mcp-servers/playwright/tools-page-interaction.ts","../system/mcp-servers/playwright/tools-run-script.ts","../system/mcp-servers/playwright/types.ts","../system/mcp-servers/playwright/vision-helper.ts","../system/mcp-servers/playwright-cli/helpers.ts","../system/mcp-servers/playwright-cli/index.ts","../system/mcp-servers/playwright-cli/schemas.ts","../system/mcp-servers/playwright-cli/tools-auth.ts","../system/mcp-servers/playwright-cli/tools-capture.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-browser.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../types/agent.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../workers/index.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../index.ts","../vitest.config.ts","../vitest.integration.config.ts","../api/agent-subscriptions.ts","../api/agents.ts","../api/auth.ts","../api/bot-accounts.ts","../api/capabilities.ts","../api/controlplane.ts","../api/dba.ts","../api/exports.ts","../api/files.ts","../api/index.ts","../api/insight.ts","../api/knowledge.ts","../api/maintenance.ts","../api/mcp-runs.ts","../api/namespaces.ts","../api/roles.ts","../api/settings.ts","../api/tasks.ts","../api/topics.ts","../api/users.ts","../api/workflow-sets.ts","../api/escalations/bulk.ts","../api/escalations/claim.ts","../api/escalations/create.ts","../api/escalations/helpers.ts","../api/escalations/index.ts","../api/escalations/list.ts","../api/escalations/resolve.ts","../api/escalations/single.ts","../api/mcp/index.ts","../api/mcp/servers.ts","../api/mcp/tools.ts","../api/workflows/config.ts","../api/workflows/discovery.ts","../api/workflows/index.ts","../api/workflows/invocation.ts","../api/yaml-workflows/cron.ts","../api/yaml-workflows/crud.ts","../api/yaml-workflows/deploy.ts","../api/yaml-workflows/helpers.ts","../api/yaml-workflows/index.ts","../api/yaml-workflows/versions.ts","../bin/ltc.ts","../lib/cli/auth.ts","../lib/cli/client.ts","../lib/cli/compile.ts","../lib/cli/format.ts","../lib/cli/init.ts","../lib/cli/output.ts","../lib/cli/scanner.ts","../lib/cli/types.ts","../lib/cli/commands/escalations.ts","../lib/cli/commands/knowledge.ts","../lib/cli/commands/mcp.ts","../lib/cli/commands/pipelines.ts","../lib/cli/commands/status.ts","../lib/cli/commands/streams.ts","../lib/cli/commands/users.ts","../lib/cli/commands/workflows.ts","../lib/db/index.ts","../lib/db/migrate.ts","../lib/events/callback.ts","../lib/events/index.ts","../lib/events/matching.ts","../lib/events/memory.ts","../lib/events/nats.ts","../lib/events/publish.ts","../lib/events/socketio.ts","../lib/logger/index.ts","../lib/logger/pino.ts","../lib/storage/index.ts","../lib/storage/local.ts","../lib/storage/mime.ts","../lib/storage/s3.ts","../lib/storage/types.ts","../lib/telemetry/honeycomb.ts","../lib/telemetry/index.ts","../modules/auth.ts","../modules/config.ts","../modules/defaults.ts","../modules/ltconfig.ts","../modules/maintenance.ts","../modules/utils.ts","../routes/agents.ts","../routes/auth.ts","../routes/bot-accounts.ts","../routes/capabilities.ts","../routes/controlplane.ts","../routes/dba.ts","../routes/delegation.ts","../routes/docs.ts","../routes/exports.ts","../routes/file-browser.ts","../routes/files.ts","../routes/index.ts","../routes/insight.ts","../routes/knowledge.ts","../routes/maintenance.ts","../routes/mcp-runs.ts","../routes/mcp.ts","../routes/namespaces.ts","../routes/nats-credentials.ts","../routes/oauth.ts","../routes/roles.ts","../routes/settings.ts","../routes/tasks.ts","../routes/topics.ts","../routes/users.ts","../routes/workflow-sets.ts","../routes/escalations/bulk.ts","../routes/escalations/index.ts","../routes/escalations/list.ts","../routes/escalations/resolve.ts","../routes/escalations/single.ts","../routes/workflows/config.ts","../routes/workflows/discovery.ts","../routes/workflows/index.ts","../routes/workflows/invocation.ts","../routes/yaml-workflows/cron.ts","../routes/yaml-workflows/crud.ts","../routes/yaml-workflows/deployment.ts","../routes/yaml-workflows/index.ts","../routes/yaml-workflows/versions.ts","../scripts/process-helpers.ts","../scripts/process.ts","../scripts/token.ts","../sdk/index.ts","../services/dba.ts","../services/hotmesh-utils.ts","../services/workflow-invocation.ts","../services/agent/index.ts","../services/agent/input-mapper.ts","../services/agent/sql.ts","../services/agent/subscription-sql.ts","../services/agent/subscriptions.ts","../services/agent/trigger-registry.ts","../services/auth/bot-api-key.ts","../services/auth/delegation.ts","../services/auth/index.ts","../services/auth/service-token.ts","../services/config/cache.ts","../services/config/index.ts","../services/config/provider.ts","../services/config/read.ts","../services/config/sql.ts","../services/config/write.ts","../services/controlplane/index.ts","../services/controlplane/quorum-bridge.ts","../services/controlplane/sql.ts","../services/controlplane/stream-messages-sql.ts","../services/controlplane/types.ts","../services/cron/index.ts","../services/escalation/bulk.ts","../services/escalation/crud.ts","../services/escalation/index.ts","../services/escalation/queries.ts","../services/escalation/sql.ts","../services/escalation/types.ts","../services/escalation-strategy/default.ts","../services/escalation-strategy/index.ts","../services/escalation-strategy/mcp.ts","../services/export/client.ts","../services/export/index.ts","../services/export/post-process.ts","../services/export/types.ts","../services/iam/activity.ts","../services/iam/bots.ts","../services/iam/context.ts","../services/iam/credentials.ts","../services/iam/envelope.ts","../services/iam/ephemeral.ts","../services/iam/index.ts","../services/iam/principal.ts","../services/iam/resolve.ts","../services/iam/sql.ts","../services/insight/index.ts","../services/insight/prompts.ts","../services/interceptor/activity-interceptor.ts","../services/interceptor/completion.ts","../services/interceptor/context.ts","../services/interceptor/escalation.ts","../services/interceptor/index.ts","../services/interceptor/lifecycle.ts","../services/interceptor/state.ts","../services/interceptor/types.ts","../services/interceptor/activities/config.ts","../services/interceptor/activities/escalation.ts","../services/interceptor/activities/index.ts","../services/interceptor/activities/task.ts","../services/interceptor/activities/workflow.ts","../services/llm/detect.ts","../services/llm/index.ts","../services/llm/translate.ts","../services/llm/types.ts","../services/llm/providers/anthropic.ts","../services/llm/providers/openai.ts","../services/maintenance/index.ts","../services/mcp/adapter.ts","../services/mcp/db.ts","../services/mcp/index.ts","../services/mcp/register-tool.ts","../services/mcp/server-lifecycle.ts","../services/mcp/server-tools.ts","../services/mcp/server.ts","../services/mcp/sql.ts","../services/mcp/types.ts","../services/mcp/workflow-compiler-server.ts","../services/mcp/workflow-server.ts","../services/mcp/client/connection-dispatch.ts","../services/mcp/client/connection-lifecycle.ts","../services/mcp/client/connection-test.ts","../services/mcp/client/connection.ts","../services/mcp/client/index.ts","../services/mcp/client/tools.ts","../services/mcp/db-server/index.ts","../services/mcp/db-server/schemas.ts","../services/mcp/db-server/tools.ts","../services/mcp/playwright-server/index.ts","../services/mcp/playwright-server/lifecycle.ts","../services/mcp/playwright-server/schemas.ts","../services/mcp/playwright-server/tools.ts","../services/mcp-runs/enrichment.ts","../services/mcp-runs/events.ts","../services/mcp-runs/execution-builder.ts","../services/mcp-runs/index.ts","../services/mcp-runs/queries.ts","../services/mcp-runs/sql.ts","../services/mcp-runs/types.ts","../services/namespace/index.ts","../services/namespace/sql.ts","../services/namespace/types.ts","../services/oauth/crypto.ts","../services/oauth/db.ts","../services/oauth/index.ts","../services/oauth/sql.ts","../services/oauth/state.ts","../services/oauth/providers/anthropic.ts","../services/oauth/providers/github.ts","../services/oauth/providers/google.ts","../services/oauth/providers/index.ts","../services/oauth/providers/microsoft.ts","../services/oauth/providers/mock.ts","../services/oauth/providers/registry.ts","../services/oauth/providers/types.ts","../services/orchestrator/condition.ts","../services/orchestrator/index.ts","../services/orchestrator/types.ts","../services/role/index.ts","../services/role/sql.ts","../services/role/types.ts","../services/task/crud.ts","../services/task/index.ts","../services/task/process.ts","../services/task/resolve.ts","../services/task/sql.ts","../services/task/types.ts","../services/topics/index.ts","../services/topics/sql.ts","../services/topics/system-topics.ts","../services/user/auth.ts","../services/user/crud.ts","../services/user/index.ts","../services/user/rbac.ts","../services/user/roles.ts","../services/user/sql.ts","../services/user/types.ts","../services/workers/registry.ts","../services/workflow-sets/db.ts","../services/workflow-sets/index.ts","../services/workflow-sets/sql.ts","../services/yaml-workflow/builder-regenerate.ts","../services/yaml-workflow/db-utils.ts","../services/yaml-workflow/db-versions.ts","../services/yaml-workflow/db.ts","../services/yaml-workflow/deployer-helpers.ts","../services/yaml-workflow/deployer.ts","../services/yaml-workflow/generator.ts","../services/yaml-workflow/index.ts","../services/yaml-workflow/input-analyzer-helpers.ts","../services/yaml-workflow/input-analyzer.ts","../services/yaml-workflow/invoke.ts","../services/yaml-workflow/sql.ts","../services/yaml-workflow/types.ts","../services/yaml-workflow/durable-compiler/index.ts","../services/yaml-workflow/durable-compiler/parser.ts","../services/yaml-workflow/durable-compiler/prompts.ts","../services/yaml-workflow/durable-compiler/types.ts","../services/yaml-workflow/pattern-detector/array-source.ts","../services/yaml-workflow/pattern-detector/collapse.ts","../services/yaml-workflow/pattern-detector/index.ts","../services/yaml-workflow/pattern-detector/run-detection.ts","../services/yaml-workflow/pattern-detector/types.ts","../services/yaml-workflow/pipeline/analyze.ts","../services/yaml-workflow/pipeline/extract-helpers.ts","../services/yaml-workflow/pipeline/extract.ts","../services/yaml-workflow/pipeline/index.ts","../services/yaml-workflow/pipeline/prompt-templates.ts","../services/yaml-workflow/pipeline/prompts.ts","../services/yaml-workflow/pipeline/validate.ts","../services/yaml-workflow/pipeline/build/dag-assembly.ts","../services/yaml-workflow/pipeline/build/dag.ts","../services/yaml-workflow/pipeline/build/index.ts","../services/yaml-workflow/pipeline/build/iteration.ts","../services/yaml-workflow/pipeline/build/metadata.ts","../services/yaml-workflow/pipeline/build/transform.ts","../services/yaml-workflow/pipeline/build/utils.ts","../services/yaml-workflow/pipeline/build/wiring.ts","../services/yaml-workflow/pipeline/compile/index.ts","../services/yaml-workflow/pipeline/compile/llm-call.ts","../services/yaml-workflow/pipeline/compile/parse-plan.ts","../services/yaml-workflow/pipeline/compile/summarize.ts","../services/yaml-workflow/workers/callbacks.ts","../services/yaml-workflow/workers/events.ts","../services/yaml-workflow/workers/index.ts","../services/yaml-workflow/workers/register.ts","../services/yaml-workflow/workers/scope.ts","../start/adapters.ts","../start/config.ts","../start/index.ts","../start/server.ts","../start/socket-auth.ts","../start/workers.ts","../system/index.ts","../system/activities/claude-code.ts","../system/activities/file-storage.ts","../system/activities/http.ts","../system/activities/knowledge.ts","../system/activities/oauth.ts","../system/activities/schema-exchange.ts","../system/activities/sql.ts","../system/activities/triage/cache.ts","../system/activities/triage/context.ts","../system/activities/triage/discovery.ts","../system/activities/triage/index.ts","../system/activities/triage/llm.ts","../system/activities/triage/tools.ts","../system/mcp-servers/claude-code.ts","../system/mcp-servers/docs.ts","../system/mcp-servers/events.ts","../system/mcp-servers/file-storage.ts","../system/mcp-servers/http-fetch.ts","../system/mcp-servers/human-queue-schemas.ts","../system/mcp-servers/human-queue.ts","../system/mcp-servers/knowledge.ts","../system/mcp-servers/oauth.ts","../system/mcp-servers/schema-exchange.ts","../system/mcp-servers/translation.ts","../system/mcp-servers/vision-prompts.ts","../system/mcp-servers/vision.ts","../system/mcp-servers/workflow-compiler.ts","../system/mcp-servers/workflow.ts","../system/mcp-servers/admin/escalations.ts","../system/mcp-servers/admin/index.ts","../system/mcp-servers/admin/maintenance.ts","../system/mcp-servers/admin/mcp-servers.ts","../system/mcp-servers/admin/schemas.ts","../system/mcp-servers/admin/tasks.ts","../system/mcp-servers/admin/users.ts","../system/mcp-servers/admin/workflow-config.ts","../system/mcp-servers/admin/workflows.ts","../system/mcp-servers/admin/yaml-workflows.ts","../system/mcp-servers/db-query/index.ts","../system/mcp-servers/db-query/schemas.ts","../system/mcp-servers/db-query/tools.ts","../system/mcp-servers/playwright/browser-lifecycle.ts","../system/mcp-servers/playwright/index.ts","../system/mcp-servers/playwright/schemas.ts","../system/mcp-servers/playwright/tools-atomic.ts","../system/mcp-servers/playwright/tools-navigation.ts","../system/mcp-servers/playwright/tools-page-interaction.ts","../system/mcp-servers/playwright/tools-run-script.ts","../system/mcp-servers/playwright/types.ts","../system/mcp-servers/playwright/vision-helper.ts","../system/mcp-servers/playwright-cli/helpers.ts","../system/mcp-servers/playwright-cli/index.ts","../system/mcp-servers/playwright-cli/schemas.ts","../system/mcp-servers/playwright-cli/tools-auth.ts","../system/mcp-servers/playwright-cli/tools-capture.ts","../system/seed/index.ts","../system/seed/tool-manifests-admin.ts","../system/seed/tool-manifests-browser.ts","../system/seed/tool-manifests-data.ts","../system/seed/tool-manifests-escalation.ts","../system/seed/tool-manifests-events.ts","../system/seed/tool-manifests-knowledge.ts","../system/seed/tool-manifests-workflows.ts","../system/workflows/tool-result-guard.ts","../system/workflows/mcp-deterministic/activities.ts","../system/workflows/mcp-deterministic/index.ts","../system/workflows/mcp-query/index.ts","../system/workflows/mcp-query/prompts.ts","../system/workflows/mcp-query/strategy-advisors.ts","../system/workflows/mcp-query/types.ts","../system/workflows/mcp-query/activities/caches.ts","../system/workflows/mcp-query/activities/discovery.ts","../system/workflows/mcp-query/activities/index.ts","../system/workflows/mcp-query/activities/llm.ts","../system/workflows/mcp-query/activities/tool-executor.ts","../system/workflows/mcp-query/activities/tool-loader.ts","../system/workflows/mcp-query-router/activities.ts","../system/workflows/mcp-query-router/index.ts","../system/workflows/mcp-query-router/prompts.ts","../system/workflows/mcp-triage/activities-proxy.ts","../system/workflows/mcp-triage/index.ts","../system/workflows/mcp-triage/prompts.ts","../system/workflows/mcp-triage/response-builders.ts","../system/workflows/mcp-triage/response.ts","../system/workflows/mcp-triage/types.ts","../system/workflows/mcp-triage-deterministic/activities.ts","../system/workflows/mcp-triage-deterministic/index.ts","../system/workflows/mcp-triage-router/activities.ts","../system/workflows/mcp-triage-router/index.ts","../system/workflows/mcp-workflow-builder/index.ts","../system/workflows/mcp-workflow-builder/prompts.ts","../system/workflows/mcp-workflow-builder/activities/caches.ts","../system/workflows/mcp-workflow-builder/activities/index.ts","../system/workflows/mcp-workflow-builder/activities/llm.ts","../system/workflows/mcp-workflow-builder/activities/tool-loader.ts","../system/workflows/mcp-workflow-planner/index.ts","../system/workflows/mcp-workflow-planner/prompts.ts","../system/workflows/mcp-workflow-planner/activities/analyze.ts","../system/workflows/mcp-workflow-planner/activities/index.ts","../system/workflows/mcp-workflow-planner/activities/persist.ts","../system/workflows/mcp-workflow-planner/activities/plan.ts","../system/workflows/shared/discovery.ts","../system/workflows/shared/index.ts","../system/workflows/shared/llm-caller.ts","../system/workflows/shared/prompts.ts","../system/workflows/shared/strategy-advisors.ts","../system/workflows/shared/tool-executor.ts","../system/workflows/shared/tool-loader.ts","../system/workflows/shared/types.ts","../types/agent.ts","../types/auth.ts","../types/config.ts","../types/delegation.ts","../types/discovery.ts","../types/envelope.ts","../types/escalation-strategy.ts","../types/escalation.ts","../types/events.ts","../types/export.ts","../types/express.d.ts","../types/index.ts","../types/logger.ts","../types/maintenance.ts","../types/mcp.ts","../types/oauth.ts","../types/sdk.ts","../types/startup.ts","../types/task.ts","../types/telemetry.ts","../types/tool-context.ts","../types/user.ts","../types/workflow-set.ts","../types/workflow.ts","../types/yaml-workflow.ts","../workers/index.ts"],"version":"5.9.3"}
|
package/build/types/agent.d.ts
CHANGED
|
@@ -40,8 +40,8 @@ export interface AgentBehaviors {
|
|
|
40
40
|
escalationRules?: Record<string, any>;
|
|
41
41
|
}
|
|
42
42
|
export interface LTAgent {
|
|
43
|
+
/** Agent identifier — a human-readable kebab-case name (e.g. 'content-triage') */
|
|
43
44
|
id: string;
|
|
44
|
-
name: string;
|
|
45
45
|
description?: string;
|
|
46
46
|
status: LTAgentStatus;
|
|
47
47
|
/** Service account (bot user) this agent runs as */
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as o}from"./vendor-query-B2UbickB.js";import{c as n}from"./tasks-CIRlUTbo.js";import{q as m}from"./index-BhhWCADo.js";import{f as c}from"./useEventHooks-BvMUy36X.js";import{u}from"./mcp-Cew_Sb-Q.js";import{P as d}from"./PageHeaderWithStats-C5cZ3IOO.js";import"./vendor-react-CX88sFS5.js";import"./vendor-icons-DY1ctJgc.js";function j(){var a;c();const{data:s}=n({limit:1}),{data:e}=m({status:"pending",limit:1}),{data:t}=u(),r=((a=t==null?void 0:t.servers)==null?void 0:a.filter(i=>i.status==="connected").length)??0,l=t?`${r}/${t.total}`:"—";return o.jsx("div",{children:o.jsx(d,{title:"Admin",stats:[{label:"Tasks",value:(s==null?void 0:s.total)??"—"},{label:"Pending Escalations",value:(e==null?void 0:e.total)??"—",dotClass:"bg-status-pending"},{label:"MCP Servers",value:l},{label:"System",value:"Healthy",dotClass:"bg-status-success"}]})})}export{j as AdminDashboard};
|
|
2
|
+
//# sourceMappingURL=AdminDashboard-CR0FtTE6.js.map
|
package/dashboard/dist/assets/{AdminDashboard-CbeSejVX.js.map → AdminDashboard-CR0FtTE6.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminDashboard-
|
|
1
|
+
{"version":3,"file":"AdminDashboard-CR0FtTE6.js","sources":["../../src/pages/admin/AdminDashboard.tsx"],"sourcesContent":["import { useTasks } from '../../api/tasks';\nimport { useEscalations } from '../../api/escalations';\nimport { useEscalationListEvents } from '../../hooks/useEventHooks';\nimport { useMcpServers } from '../../api/mcp';\nimport { PageHeaderWithStats } from '../../components/common/layout/PageHeaderWithStats';\n\nexport function AdminDashboard() {\n useEscalationListEvents();\n const { data: taskData } = useTasks({ limit: 1 });\n const { data: pendingEsc } = useEscalations({ status: 'pending', limit: 1 });\n const { data: mcpData } = useMcpServers();\n\n const connectedServers =\n mcpData?.servers?.filter((s) => s.status === 'connected').length ?? 0;\n const mcpLabel = mcpData ? `${connectedServers}/${mcpData.total}` : '—';\n\n return (\n <div>\n <PageHeaderWithStats\n title=\"Admin\"\n stats={[\n { label: 'Tasks', value: taskData?.total ?? '—' },\n { label: 'Pending Escalations', value: pendingEsc?.total ?? '—', dotClass: 'bg-status-pending' },\n { label: 'MCP Servers', value: mcpLabel },\n { label: 'System', value: 'Healthy', dotClass: 'bg-status-success' },\n ]}\n />\n </div>\n );\n}\n"],"names":["AdminDashboard","useEscalationListEvents","taskData","useTasks","pendingEsc","useEscalations","mcpData","useMcpServers","connectedServers","_a","s","mcpLabel","jsx","PageHeaderWithStats"],"mappings":"4UAMO,SAASA,GAAiB,OAC/BC,EAAA,EACA,KAAM,CAAE,KAAMC,CAAA,EAAaC,EAAS,CAAE,MAAO,EAAG,EAC1C,CAAE,KAAMC,CAAA,EAAeC,EAAe,CAAE,OAAQ,UAAW,MAAO,EAAG,EACrE,CAAE,KAAMC,CAAA,EAAYC,EAAA,EAEpBC,IACJC,EAAAH,GAAA,YAAAA,EAAS,UAAT,YAAAG,EAAkB,OAAQC,GAAMA,EAAE,SAAW,aAAa,SAAU,EAChEC,EAAWL,EAAU,GAAGE,CAAgB,IAAIF,EAAQ,KAAK,GAAK,IAEpE,aACG,MAAA,CACC,SAAAM,EAAAA,IAACC,EAAA,CACC,MAAM,QACN,MAAO,CACL,CAAE,MAAO,QAAS,OAAOX,GAAA,YAAAA,EAAU,QAAS,GAAA,EAC5C,CAAE,MAAO,sBAAuB,OAAOE,GAAA,YAAAA,EAAY,QAAS,IAAK,SAAU,mBAAA,EAC3E,CAAE,MAAO,cAAe,MAAOO,CAAA,EAC/B,CAAE,MAAO,SAAU,MAAO,UAAW,SAAU,mBAAA,CAAoB,CACrE,CAAA,EAEJ,CAEJ"}
|