@hotmeshio/long-tail 0.3.2 → 0.3.3
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 +109 -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-CbeSejVX.js → AdminDashboard-BBWJAsjl.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-CbeSejVX.js.map → AdminDashboard-BBWJAsjl.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-CFJNOrlg.js → AgentConfigPage-Br2O6NDa.js} +3 -3
- package/dashboard/dist/assets/AgentConfigPage-Br2O6NDa.js.map +1 -0
- package/dashboard/dist/assets/AgentDetailPage-DjgOR62z.js +4 -0
- package/dashboard/dist/assets/AgentDetailPage-DjgOR62z.js.map +1 -0
- package/dashboard/dist/assets/AgentsPage-CASVGEvY.js +2 -0
- package/dashboard/dist/assets/AgentsPage-CASVGEvY.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-Dl9ZmjKA.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-DdrzePy4.js.map → AvailableEscalationsPage-Dl9ZmjKA.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-kKBifD1w.js → BotPicker-wEoqL3HR.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-kKBifD1w.js.map → BotPicker-wEoqL3HR.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-DYkx5aa4.js +2 -0
- package/dashboard/dist/assets/{CapabilitiesPage-Ch5qY0I7.js.map → CapabilitiesPage-DYkx5aa4.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-kYTBL7dT.js → CollapsibleSection-DN1aF5HO.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-kYTBL7dT.js.map → CollapsibleSection-DN1aF5HO.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-CcaAapMl.js → ConfirmDeleteModal-v8ufrnX5.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-CcaAapMl.js.map → ConfirmDeleteModal-v8ufrnX5.js.map} +1 -1
- package/dashboard/dist/assets/{CopyableId-B4CL12pv.js → CopyableId-D94R2n6C.js} +2 -2
- package/dashboard/dist/assets/{CopyableId-B4CL12pv.js.map → CopyableId-D94R2n6C.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-D1VAlwid.js → CredentialsPage-CSSjAEx6.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-D1VAlwid.js.map → CredentialsPage-CSSjAEx6.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-DRmO5rH0.js → CronLabel-fYpkTnEd.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-DRmO5rH0.js.map → CronLabel-fYpkTnEd.js.map} +1 -1
- package/dashboard/dist/assets/{CustomDurationPicker-C06QDDir.js → CustomDurationPicker-CSarfbO1.js} +2 -2
- package/dashboard/dist/assets/{CustomDurationPicker-C06QDDir.js.map → CustomDurationPicker-CSarfbO1.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-J5R6mepB.js → DataTable-VKt4pvC-.js} +2 -2
- package/dashboard/dist/assets/{DataTable-J5R6mepB.js.map → DataTable-VKt4pvC-.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-DwNj3GiG.js → DropZone-Bl4j-AID.js} +2 -2
- package/dashboard/dist/assets/{DropZone-DwNj3GiG.js.map → DropZone-Bl4j-AID.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-ChyMzl9n.js → ElapsedCell-Y4UmrII0.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-ChyMzl9n.js.map → ElapsedCell-Y4UmrII0.js.map} +1 -1
- package/dashboard/dist/assets/{EmptyState-BXGvOADa.js → EmptyState-Di6_NfbP.js} +2 -2
- package/dashboard/dist/assets/{EmptyState-BXGvOADa.js.map → EmptyState-Di6_NfbP.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-DM6zmE4g.js → EscalationsOverview-D0Ry84FE.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DM6zmE4g.js.map → EscalationsOverview-D0Ry84FE.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-CvJ98E8s.js → EventTable-BzPleN3Y.js} +2 -2
- package/dashboard/dist/assets/{EventTable-CvJ98E8s.js.map → EventTable-BzPleN3Y.js.map} +1 -1
- package/dashboard/dist/assets/{EventTopicPill-CB_rIGlL.js → EventTopicPill-DCqcr7N7.js} +2 -2
- package/dashboard/dist/assets/{EventTopicPill-CB_rIGlL.js.map → EventTopicPill-DCqcr7N7.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-Bdssa-Xn.js → FilterBar-BoRQss2J.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-Bdssa-Xn.js.map → FilterBar-BoRQss2J.js.map} +1 -1
- package/dashboard/dist/assets/HomePage-CGH_dYSo.js +2 -0
- package/dashboard/dist/assets/HomePage-CGH_dYSo.js.map +1 -0
- package/dashboard/dist/assets/{ListToolbar-jy8NL6ll.js → ListToolbar-BMWttsi2.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-jy8NL6ll.js.map → ListToolbar-BMWttsi2.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-xkaKuHbX.js → McpOverview-DpC-BbBV.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-xkaKuHbX.js.map → McpOverview-DpC-BbBV.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-D5ICn6cR.js → McpQueryDetailPage-CZSzX-cI.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-D5ICn6cR.js.map → McpQueryDetailPage-CZSzX-cI.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-C46fzfm5.js → McpQueryPage-B4KsvBGo.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-C46fzfm5.js.map → McpQueryPage-B4KsvBGo.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-Znsl4Yc-.js → McpRunDetailPage-_owlNUzp.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-Znsl4Yc-.js.map → McpRunDetailPage-_owlNUzp.js.map} +1 -1
- package/dashboard/dist/assets/McpRunsPage-C3A1fU3h.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-C3A1fU3h.js.map +1 -0
- package/dashboard/dist/assets/{Modal-C6k6_5KB.js → Modal-IsEbA4rW.js} +2 -2
- package/dashboard/dist/assets/{Modal-C6k6_5KB.js.map → Modal-IsEbA4rW.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-B8MOtt_p.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-e5N3_dVl.js.map → OperatorDashboard-B8MOtt_p.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-COcgWWf-.js → PageHeader-C4DNgZKA.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-COcgWWf-.js.map → PageHeader-C4DNgZKA.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-C0PCY3aJ.js → PageHeaderWithStats-Fy6tGBaa.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-C0PCY3aJ.js.map → PageHeaderWithStats-Fy6tGBaa.js.map} +1 -1
- package/dashboard/dist/assets/{PriorityBadge-BQCsYMpM.js → PriorityBadge-kSpsF-Zm.js} +2 -2
- package/dashboard/dist/assets/{PriorityBadge-BQCsYMpM.js.map → PriorityBadge-kSpsF-Zm.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-C03LOgI0.js → ProcessDetailPage-CZjjs4jE.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-C03LOgI0.js.map → ProcessDetailPage-CZjjs4jE.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-iyPsmlhm.js → ProcessesListPage-Ds7y71o8.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-iyPsmlhm.js.map → ProcessesListPage-Ds7y71o8.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-CHwys1f9.js → RolePill-DmdF9L9Q.js} +2 -2
- package/dashboard/dist/assets/{RolePill-CHwys1f9.js.map → RolePill-DmdF9L9Q.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-Bmc3XaUk.js → RolesPage-CCmK38yn.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-Bmc3XaUk.js.map → RolesPage-CCmK38yn.js.map} +1 -1
- package/dashboard/dist/assets/{RowActions-Bs4PF-Gd.js → RowActions-uGuPBEWb.js} +2 -2
- package/dashboard/dist/assets/{RowActions-Bs4PF-Gd.js.map → RowActions-uGuPBEWb.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-DXzAr2WW.js → RunAsSelector-BsO-uSh9.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-DXzAr2WW.js.map → RunAsSelector-BsO-uSh9.js.map} +1 -1
- package/dashboard/dist/assets/{ServerName-BIdLC1Ay.js → ServerName-BHl8nLOV.js} +2 -2
- package/dashboard/dist/assets/{ServerName-BIdLC1Ay.js.map → ServerName-BHl8nLOV.js.map} +1 -1
- package/dashboard/dist/assets/{StatCard-OKzRSSx4.js → StatCard-DI4ZQ-Zi.js} +2 -2
- package/dashboard/dist/assets/{StatCard-OKzRSSx4.js.map → StatCard-DI4ZQ-Zi.js.map} +1 -1
- package/dashboard/dist/assets/{StatusBadge-CQlF46RR.js → StatusBadge-TV20Ulgl.js} +2 -2
- package/dashboard/dist/assets/{StatusBadge-CQlF46RR.js.map → StatusBadge-TV20Ulgl.js.map} +1 -1
- package/dashboard/dist/assets/{StepIndicator-CP7eycjI.js → StepIndicator-ziIED3Pz.js} +2 -2
- package/dashboard/dist/assets/{StepIndicator-CP7eycjI.js.map → StepIndicator-ziIED3Pz.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-CGk8VAKt.js → StickyPagination-CXBDS1ka.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-CGk8VAKt.js.map → StickyPagination-CXBDS1ka.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-MEUPc3yJ.js → SwimlaneTimeline-Dc_a4-D5.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-MEUPc3yJ.js.map → SwimlaneTimeline-Dc_a4-D5.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-BGxXKiWD.js → TagInput-BYEjEPsa.js} +2 -2
- package/dashboard/dist/assets/{TagInput-BGxXKiWD.js.map → TagInput-BYEjEPsa.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-pN5BXzYA.js → TaskDetailPage-Cu0XLEA4.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-pN5BXzYA.js.map → TaskDetailPage-Cu0XLEA4.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-bw8ieKsf.js → TaskQueuePill-yBqQ-piu.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-bw8ieKsf.js.map → TaskQueuePill-yBqQ-piu.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-D1INzcrA.js → TasksListPage-Dl0quVgM.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-D1INzcrA.js.map → TasksListPage-Dl0quVgM.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-CywLVIBA.js → TimeAgo-BAs-HL55.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-CywLVIBA.js.map → TimeAgo-BAs-HL55.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-B4Pc6f3A.js → TimestampCell-zFm6ze1U.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-B4Pc6f3A.js.map → TimestampCell-zFm6ze1U.js.map} +1 -1
- package/dashboard/dist/assets/ToolPill-DiM3hgAB.js +2 -0
- package/dashboard/dist/assets/{ToolPill-DdLN3JOT.js.map → ToolPill-DiM3hgAB.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-DusbUka5.js → ToolTestPanel-C3vWUW2p.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-DusbUka5.js.map → ToolTestPanel-C3vWUW2p.js.map} +1 -1
- package/dashboard/dist/assets/TopicDetailPage-wjwRE5eI.js +9 -0
- package/dashboard/dist/assets/TopicDetailPage-wjwRE5eI.js.map +1 -0
- package/dashboard/dist/assets/{TopicsPage-DbtrnQON.js → TopicsPage-D3AONwHP.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-DbtrnQON.js.map → TopicsPage-D3AONwHP.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-CLbusknU.js → UserName-0vrAWvND.js} +2 -2
- package/dashboard/dist/assets/{UserName-CLbusknU.js.map → UserName-0vrAWvND.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-C61R-3Gg.js → WorkflowExecutionPage-CBbWToVN.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-C61R-3Gg.js.map → WorkflowExecutionPage-CBbWToVN.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-7vt2F6wR.js → WorkflowPill-C7jE0e1g.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-7vt2F6wR.js.map → WorkflowPill-C7jE0e1g.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowsDashboard-1GVHYLlw.js +2 -0
- package/dashboard/dist/assets/{WorkflowsDashboard-BWiUNvyl.js.map → WorkflowsDashboard-1GVHYLlw.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-DA2ZOs7D.js → WorkflowsOverview-2POOJzat.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-DA2ZOs7D.js.map → WorkflowsOverview-2POOJzat.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-BcRKxz3P.js +2 -0
- package/dashboard/dist/assets/{YamlWorkflowsPage-CLebf2eL.js.map → YamlWorkflowsPage-BcRKxz3P.js.map} +1 -1
- package/dashboard/dist/assets/{agents-Dga6NU7U.js → agents-Bd6SNUID.js} +2 -2
- package/dashboard/dist/assets/agents-Bd6SNUID.js.map +1 -0
- package/dashboard/dist/assets/{bots-CtU4i4OQ.js → bots-DEsg-T8t.js} +2 -2
- package/dashboard/dist/assets/{bots-CtU4i4OQ.js.map → bots-DEsg-T8t.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-BVoALhbL.js → controlplane-B3m1kIWb.js} +2 -2
- package/dashboard/dist/assets/{controlplane-BVoALhbL.js.map → controlplane-B3m1kIWb.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-_N5GfuIi.js → escalation-CJQPC0gm.js} +2 -2
- package/dashboard/dist/assets/{escalation-_N5GfuIi.js.map → escalation-CJQPC0gm.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-CoTmTpHp.js → escalation-columns-DEE62U3_.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-CoTmTpHp.js.map → escalation-columns-DEE62U3_.js.map} +1 -1
- package/dashboard/dist/assets/{helpers-Dz2U3Ctb.js → helpers-BveI_035.js} +2 -2
- package/dashboard/dist/assets/{helpers-Dz2U3Ctb.js.map → helpers-BveI_035.js.map} +1 -1
- package/dashboard/dist/assets/index-B7zv_NKJ.js +2 -0
- package/dashboard/dist/assets/index-B7zv_NKJ.js.map +1 -0
- package/dashboard/dist/assets/index-BVVdr9s0.js +2 -0
- package/dashboard/dist/assets/{index-6Kd78p_v.js.map → index-BVVdr9s0.js.map} +1 -1
- package/dashboard/dist/assets/{index-D_H_Prht.js → index-BXIwxi_u.js} +2 -2
- package/dashboard/dist/assets/{index-D_H_Prht.js.map → index-BXIwxi_u.js.map} +1 -1
- package/dashboard/dist/assets/{index-B9ealjkt.js → index-CEPo8tn_.js} +2 -2
- package/dashboard/dist/assets/{index-B9ealjkt.js.map → index-CEPo8tn_.js.map} +1 -1
- package/dashboard/dist/assets/{index-BYwPVJv0.js → index-CTKfvoGj.js} +2 -2
- package/dashboard/dist/assets/{index-BYwPVJv0.js.map → index-CTKfvoGj.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dpjguclc.js → index-CZVprWC6.js} +2 -2
- package/dashboard/dist/assets/{index-Dpjguclc.js.map → index-CZVprWC6.js.map} +1 -1
- package/dashboard/dist/assets/{index-CtbG3UN-.js → index-ChNwlMdo.js} +2 -2
- package/dashboard/dist/assets/{index-CtbG3UN-.js.map → index-ChNwlMdo.js.map} +1 -1
- package/dashboard/dist/assets/{index-QicYdUsl.js → index-Cpq83bZq.js} +2 -2
- package/dashboard/dist/assets/{index-QicYdUsl.js.map → index-Cpq83bZq.js.map} +1 -1
- package/dashboard/dist/assets/{index-CS61sh5q.js → index-Csts1D-x.js} +2 -2
- package/dashboard/dist/assets/{index-CS61sh5q.js.map → index-Csts1D-x.js.map} +1 -1
- package/dashboard/dist/assets/{index-dM-OgCY3.js → index-D4v-EUTe.js} +2 -2
- package/dashboard/dist/assets/{index-dM-OgCY3.js.map → index-D4v-EUTe.js.map} +1 -1
- package/dashboard/dist/assets/{index-DWUunWxh.js → index-DI36hw6W.js} +2 -2
- package/dashboard/dist/assets/{index-DWUunWxh.js.map → index-DI36hw6W.js.map} +1 -1
- package/dashboard/dist/assets/{index-CCOSf1PY.js → index-MnRuwfHN.js} +59 -59
- package/dashboard/dist/assets/index-MnRuwfHN.js.map +1 -0
- package/dashboard/dist/assets/index-dp_Q2Hha.css +1 -0
- package/dashboard/dist/assets/{index-BWHDW_CF.js → index-wQaJXZYX.js} +2 -2
- package/dashboard/dist/assets/{index-BWHDW_CF.js.map → index-wQaJXZYX.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-DJlebU82.js → knowledge-krdvn5bg.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DJlebU82.js.map → knowledge-krdvn5bg.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-CsLJ5SRm.js → mcp-BTZ2ex4x.js} +2 -2
- package/dashboard/dist/assets/{mcp-CsLJ5SRm.js.map → mcp-BTZ2ex4x.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-WNK1ItRV.js → mcp-query-BzqJu709.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-WNK1ItRV.js.map → mcp-query-BzqJu709.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-runs-DtTTsuPH.js → mcp-runs-BBUaY28a.js} +2 -2
- package/dashboard/dist/assets/{mcp-runs-DtTTsuPH.js.map → mcp-runs-BBUaY28a.js.map} +1 -1
- package/dashboard/dist/assets/{namespaces-iRejH3_A.js → namespaces-DJVfgGst.js} +2 -2
- package/dashboard/dist/assets/{namespaces-iRejH3_A.js.map → namespaces-DJVfgGst.js.map} +1 -1
- package/dashboard/dist/assets/{roles-3Jm5KtKc.js → roles-DogkRzK2.js} +2 -2
- package/dashboard/dist/assets/{roles-3Jm5KtKc.js.map → roles-DogkRzK2.js.map} +1 -1
- package/dashboard/dist/assets/{settings-DmN2I-c6.js → settings-D2sLRpie.js} +2 -2
- package/dashboard/dist/assets/{settings-DmN2I-c6.js.map → settings-D2sLRpie.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Cc-QoITQ.js → tasks-CIuWkHLG.js} +2 -2
- package/dashboard/dist/assets/{tasks-Cc-QoITQ.js.map → tasks-CIuWkHLG.js.map} +1 -1
- package/dashboard/dist/assets/{topics-p8anbgi0.js → topics-DxMDwZFs.js} +2 -2
- package/dashboard/dist/assets/topics-DxMDwZFs.js.map +1 -0
- package/dashboard/dist/assets/{useEventHooks-VaJ52jMm.js → useEventHooks-xXspN8_9.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-VaJ52jMm.js.map → useEventHooks-xXspN8_9.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-BU4Uhksl.js → useYamlActivityEvents-2hdnnML7.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-BU4Uhksl.js.map → useYamlActivityEvents-2hdnnML7.js.map} +1 -1
- package/dashboard/dist/assets/{users-oXOlnold.js → users-DWQ-ojf9.js} +2 -2
- package/dashboard/dist/assets/{users-oXOlnold.js.map → users-DWQ-ojf9.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-CBOM6Es0.js → vendor-icons-YdqUbzg6.js} +110 -100
- package/dashboard/dist/assets/vendor-icons-YdqUbzg6.js.map +1 -0
- package/dashboard/dist/assets/{workflows-Yq7cK-vR.js → workflows-BvGU8_fj.js} +2 -2
- package/dashboard/dist/assets/{workflows-Yq7cK-vR.js.map → workflows-BvGU8_fj.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-Ch53yD43.js → yaml-workflows-DNgb7krQ.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-Ch53yD43.js.map → yaml-workflows-DNgb7krQ.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- 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/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/CapabilitiesPage-Ch5qY0I7.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/McpRunsPage-DT-armx5.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-DT-armx5.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-e5N3_dVl.js +0 -2
- package/dashboard/dist/assets/ToolPill-DdLN3JOT.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/WorkflowsDashboard-BWiUNvyl.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/index-6Kd78p_v.js +0 -2
- package/dashboard/dist/assets/index-BIUHY2Jz.css +0 -1
- package/dashboard/dist/assets/index-CCOSf1PY.js.map +0 -1
- package/dashboard/dist/assets/topics-p8anbgi0.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-CBOM6Es0.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetailPage-Dbx2t-Uk.js","sources":["../../src/pages/agents/AgentDetailPage.tsx"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport {\n Bot, Play, Pause, Trash2, ArrowRight, Pencil, BookOpen,\n Radio, Clock, Brain, Compass,\n} from 'lucide-react';\nimport { useAgent, useUpdateAgent, useDeleteAgent } from '../../api/agents';\nimport { useAgentSubscriptions } from '../../api/agent-subscriptions';\nimport { useAgentEvents } from '../../hooks/useEventHooks';\nimport { useEventSubscription } from '../../hooks/useEventContext';\nimport { NATS_SUBJECT_PREFIX } from '../../lib/nats/config';\nimport { EventTopicPill } from '../../components/common/display/EventTopicPill';\nimport { CronLabel } from '../../components/common/display/CronLabel';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\n\n// ── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction formatTime(iso: string): string {\n return new Date(iso).toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' });\n}\n\nfunction SectionHeader({ icon: Icon, color, children, actions }: { icon: React.ElementType; color: string; children: React.ReactNode; actions?: React.ReactNode }) {\n return (\n <div className=\"flex items-center justify-between mb-3 pb-2 border-b border-surface-border\">\n <div className=\"flex items-center gap-2\">\n <Icon className={`w-4 h-4 ${color}`} strokeWidth={1.5} />\n <h2 className=\"text-xs font-semibold uppercase tracking-widest text-accent/80\">{children}</h2>\n </div>\n {actions}\n </div>\n );\n}\n\nfunction EmptyHint({ text }: { text: string }) {\n return <p className=\"text-[11px] text-text-quaternary py-2\">{text}</p>;\n}\n\n// ── Live feed ───────────────────────────────────────────────────────────────\n\ninterface FeedEvent { id: number; type: string; timestamp: string; label: string; }\nlet feedCounter = 0;\n\nfunction useAgentFeed(workflowName?: string) {\n const [events, setEvents] = useState<FeedEvent[]>([]);\n const [pulse, setPulse] = useState(false);\n const handler = useCallback((event: any) => {\n if (event.type?.startsWith('mesh.')) return;\n if (workflowName && event.workflowName !== workflowName) return;\n const label = event.activityName || event.data?.domain || event.workflowId?.slice(0, 16) || '';\n setEvents((prev) => [{ id: ++feedCounter, type: event.type, timestamp: event.timestamp, label }, ...prev].slice(0, 10));\n setPulse(true);\n setTimeout(() => setPulse(false), 2000);\n }, [workflowName]);\n useEventSubscription(`${NATS_SUBJECT_PREFIX}.>`, handler);\n return { events, pulse };\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function AgentDetailPage() {\n const { id } = useParams<{ id: string }>();\n const navigate = useNavigate();\n const { data: agent, isLoading } = useAgent(id ?? null);\n const { data: subsData } = useAgentSubscriptions(id ?? null);\n const updateMutation = useUpdateAgent();\n const deleteMutation = useDeleteAgent();\n const { events: liveEvents, pulse } = useAgentFeed(agent?.workflow_type ?? undefined);\n useAgentEvents();\n\n if (isLoading) {\n return <div className=\"animate-pulse space-y-4\"><div className=\"h-8 bg-surface-sunken rounded w-48\" /><div className=\"h-40 bg-surface-sunken rounded\" /></div>;\n }\n\n if (!agent) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <Bot className=\"w-12 h-12 text-text-quaternary mb-4\" strokeWidth={1} />\n <h2 className=\"text-lg font-medium text-text-primary mb-2\">Agent not found</h2>\n <button onClick={() => navigate('/agents')} className=\"text-sm text-accent hover:text-accent-hover transition-colors\">Back to agents</button>\n </div>\n );\n }\n\n const statusDot = agent.status === 'active' ? 'bg-emerald-400' : agent.status === 'paused' ? 'bg-amber-400' : agent.status === 'error' ? 'bg-red-400' : 'bg-zinc-500';\n const subs = subsData?.subscriptions ?? [];\n const statusLabel = agent.status === 'active' ? 'Active' : agent.status === 'paused' ? 'Paused' : agent.status === 'error' ? 'Error' : 'Inactive';\n const schedules = (agent.behaviors as any)?.schedules as any[] | undefined;\n const legacyCron = agent.behaviors?.cron;\n const schedCount = schedules?.length || (legacyCron ? 1 : 0);\n\n const handlePause = () => {\n const msg = [\n `Pause \"${agent.name}\"?`,\n '',\n 'This will:',\n subs.length > 0 ? `• Stop ${subs.length} event subscription${subs.length !== 1 ? 's' : ''}` : null,\n schedCount > 0 ? `• Stop ${schedCount} schedule${schedCount !== 1 ? 's' : ''}` : null,\n '',\n 'Knowledge and workflow history are preserved. You can reactivate anytime.',\n ].filter(Boolean).join('\\n');\n if (confirm(msg)) updateMutation.mutate({ id: agent.id, status: 'paused' as any });\n };\n\n const handleDelete = () => {\n const msg = [\n `Delete \"${agent.name}\"?`,\n '',\n 'This permanently removes:',\n '• The agent configuration',\n subs.length > 0 ? `• ${subs.length} event subscription${subs.length !== 1 ? 's' : ''}` : null,\n schedCount > 0 ? `• ${schedCount} schedule${schedCount !== 1 ? 's' : ''}` : null,\n '',\n 'Knowledge entries and workflow history are preserved.',\n ].filter(Boolean).join('\\n');\n if (confirm(msg)) deleteMutation.mutate(agent.id, { onSuccess: () => navigate('/agents') });\n };\n\n return (\n <div>\n {/* ── Hero ──────────────────────────────────────────────────────────── */}\n <div className=\"flex items-start justify-between mb-3\">\n <div className=\"flex items-center gap-2\">\n <h1 className=\"text-3xl font-light text-text-primary\">Agent: {agent.name}</h1>\n <button onClick={() => { window.location.hash = '#docs:agents.md'; }} className=\"text-text-quaternary hover:text-accent transition-colors mt-1\" title=\"Agent docs\">\n <BookOpen className=\"w-4 h-4\" strokeWidth={1.5} />\n </button>\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"flex items-center gap-1.5 mr-2\">\n <span className={`w-2 h-2 rounded-full ${statusDot}`} />\n <span className=\"text-xs text-text-secondary capitalize\">{statusLabel}</span>\n </div>\n <button onClick={() => navigate(`/agents/${agent.id}/edit`)} className=\"flex items-center gap-1.5 px-4 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors\">\n <Pencil className=\"w-3 h-3\" /> Edit\n </button>\n {agent.status !== 'active' && (\n <button onClick={() => updateMutation.mutate({ id: agent.id, status: 'active' as any })} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-emerald-400 hover:bg-emerald-600/10 transition-colors\">\n <Play className=\"w-3 h-3\" /> Activate\n </button>\n )}\n {agent.status === 'active' && (\n <button onClick={handlePause} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-text-tertiary hover:text-text-primary hover:bg-surface-hover transition-colors\">\n <Pause className=\"w-3 h-3\" /> Pause\n </button>\n )}\n <button onClick={handleDelete} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-red-400/60 hover:text-red-400 hover:bg-red-600/10 transition-colors\">\n <Trash2 className=\"w-3 h-3\" /> Delete\n </button>\n </div>\n </div>\n\n {/* Description callout */}\n {agent.description && (\n <div className=\"border-l-2 border-accent/30 pl-4 py-1 mb-10\">\n <p className=\"text-[13px] text-text-secondary italic leading-relaxed\">{agent.description}</p>\n </div>\n )}\n\n {/* Motivation */}\n {(agent.goals || agent.rules) && (\n <div className=\"mb-10\">\n <SectionHeader icon={Compass} color=\"text-rose-400\">Motivation</SectionHeader>\n <div className=\"grid grid-cols-2 gap-x-14 bg-surface-sunken/20 rounded-lg px-5 py-4\">\n {agent.goals && (\n <div>\n <p className=\"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5\">Goals</p>\n <p className=\"text-[13px] text-text-primary leading-relaxed\">{agent.goals}</p>\n </div>\n )}\n {agent.rules && (\n <div>\n <p className=\"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5\">Rules</p>\n <p className=\"text-[13px] text-text-primary leading-relaxed\">{agent.rules}</p>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* ── 3-column grid ─────────────────────────────────────────────────── */}\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-10\">\n\n {/* Col 1: Subscriptions */}\n <div>\n <SectionHeader icon={Radio} color=\"text-cyan-400\">\n Subscriptions ({subs.length})\n </SectionHeader>\n {subs.length === 0 ? (\n <EmptyHint text=\"No event subscriptions\" />\n ) : (\n <div className=\"divide-y divide-surface-border/30\">\n {subs.map((sub: any) => (\n <div key={sub.id} className=\"flex items-center py-2\">\n <div className=\"flex-1 min-w-0\"><EventTopicPill topic={sub.topic} /></div>\n <div className=\"flex items-center gap-1.5 shrink-0\">\n <span className=\"text-text-quaternary text-[10px]\">→</span>\n <WorkflowPill type={sub.workflow_type || 'mcp-query'} variant={sub.reaction_type === 'pipeline' ? 'pipeline' : 'durable'} />\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Col 2: Schedules */}\n <div>\n <SectionHeader icon={Clock} color=\"text-amber-400\">Schedules ({schedCount})</SectionHeader>\n {schedules?.length ? (\n <div className=\"divide-y divide-surface-border/30\">\n {schedules.map((s: any, i: number) => (\n <div key={i} className=\"flex items-center py-2\">\n <div className=\"flex-1 min-w-0\"><CronLabel cron={s.cron} /></div>\n <div className=\"flex items-center gap-1.5 shrink-0\"><span className=\"text-text-quaternary text-[10px]\">→</span><WorkflowPill type={s.workflow_type || 'workflow'} /></div>\n </div>\n ))}\n </div>\n ) : legacyCron ? (\n <div className=\"flex items-center py-1\">\n <div className=\"flex-1 min-w-0\"><CronLabel cron={legacyCron} /></div>\n {agent.workflow_type && <div className=\"flex items-center gap-1.5 shrink-0\"><span className=\"text-text-quaternary text-[10px]\">→</span><WorkflowPill type={agent.workflow_type} /></div>}\n </div>\n ) : (\n <EmptyHint text=\"No schedules configured\" />\n )}\n </div>\n\n {/* Col 3: Knowledge + Activity */}\n <div className=\"space-y-10\">\n <div>\n <SectionHeader icon={Brain} color=\"text-emerald-400\">Knowledge</SectionHeader>\n {agent.knowledge_domain ? (\n <button onClick={() => navigate(`/knowledge?domain=${agent.knowledge_domain}`)} className=\"group text-left flex items-center gap-3\">\n <span className=\"text-sm font-mono text-text-primary group-hover:text-accent transition-colors\">{agent.knowledge_domain}</span>\n <span className=\"text-[10px] text-text-quaternary\">{agent.stats?.knowledge_count?.toLocaleString() ?? 0} entries</span>\n <ArrowRight className=\"w-3 h-3 text-accent opacity-0 group-hover:opacity-100 transition-opacity\" />\n </button>\n ) : (\n <EmptyHint text=\"No knowledge domain\" />\n )}\n </div>\n\n <div>\n <SectionHeader icon={Radio} color=\"text-cyan-400\"\n actions={\n <div className=\"flex items-center gap-1.5\">\n <span className={`w-1.5 h-1.5 rounded-full transition-colors duration-500 ${pulse ? 'bg-emerald-400' : 'bg-zinc-600'}`} />\n <span className=\"text-[10px] text-text-quaternary\">live</span>\n </div>\n }\n >\n Activity\n </SectionHeader>\n {liveEvents.length === 0 ? (\n <EmptyHint text=\"Events appear here as the agent runs\" />\n ) : (\n <div className=\"space-y-1.5\">\n {liveEvents.map((ev) => (\n <div key={ev.id}>\n <div className=\"flex items-center justify-between mb-0.5\">\n <span className=\"text-[11px] text-text-primary font-mono truncate flex-1\">{ev.label || '—'}</span>\n <span className=\"text-[10px] text-text-quaternary shrink-0 ml-2\">{formatTime(ev.timestamp)}</span>\n </div>\n <EventTopicPill topic={ev.type} />\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["formatTime","iso","SectionHeader","Icon","color","children","actions","jsxDEV","EmptyHint","text","feedCounter","useAgentFeed","workflowName","events","setEvents","useState","pulse","setPulse","handler","useCallback","event","_a","label","_b","_c","prev","useEventSubscription","NATS_SUBJECT_PREFIX","AgentDetailPage","id","useParams","navigate","useNavigate","agent","isLoading","useAgent","subsData","useAgentSubscriptions","updateMutation","useUpdateAgent","deleteMutation","useDeleteAgent","liveEvents","useAgentEvents","Bot","statusDot","subs","statusLabel","schedules","legacyCron","schedCount","handlePause","msg","handleDelete","BookOpen","Pencil","Play","Pause","Trash2","Compass","Radio","sub","EventTopicPill","WorkflowPill","Clock","i","CronLabel","Brain","_d","ArrowRight","ev"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,c as u}from"./index-CCOSf1PY.js";import{u as g}from"./agents-Dga6NU7U.js";import{i as c}from"./useEventHooks-VaJ52jMm.js";import{u as p}from"./useFilterParams-CGRYFw_A.js";import{D as b}from"./DataTable-J5R6mepB.js";import{S as N}from"./StickyPagination-CGk8VAKt.js";import{F as f,b as x}from"./FilterBar-Bdssa-Xn.js";import{P as h}from"./PageHeader-COcgWWf-.js";import{L as v}from"./ListToolbar-jy8NL6ll.js";import{O as P}from"./vendor-icons-CBOM6Es0.js";import{c as A}from"./vendor-react-Co3Y8ikm.js";import"./vendor-query-DLp59M9_.js";import"./EmptyState-BXGvOADa.js";const D=[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"},{value:"paused",label:"Paused"},{value:"error",label:"Error"}],E=[{key:"name",label:"Agent",render:a=>e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${a.status==="active"?"bg-emerald-400":a.status==="paused"?"bg-amber-400":a.status==="error"?"bg-red-400":"bg-zinc-500"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:26,columnNumber:9},void 0),e.jsxDEV("div",{className:"min-w-0",children:[e.jsxDEV("span",{className:"text-xs font-medium text-text-primary block",children:a.name},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:28,columnNumber:11},void 0),a.description&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary truncate",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:29,columnNumber:31},void 0)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:27,columnNumber:9},void 0)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:25,columnNumber:7},void 0)},{key:"knowledge_domain",label:"Knowledge",render:a=>a.knowledge_domain?e.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:a.knowledge_domain},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:38,columnNumber:9},void 0):e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:39,columnNumber:9},void 0),className:"w-28"},{key:"schedules",label:"Schedules",render:a=>{var s,n;const t=(s=a.behaviors)==null?void 0:s.schedules,r=t!=null&&t.length?t.map(l=>l.cron):(n=a.behaviors)!=null&&n.cron?[a.behaviors.cron]:[];return r.length?e.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:[r[0],r.length>1?` +${r.length-1}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:49,columnNumber:14},void 0):e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:48,columnNumber:33},void 0)},className:"w-28"},{key:"subscriptions",label:"Subscriptions",render:a=>{var n;const t=a.subscription_count??0,r=a.sub_topics??[];if(!t)return e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:59,columnNumber:26},void 0);const s=((n=r[0])==null?void 0:n.replace(/^lt\.events\./,""))??"";return e.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:[s,t>1?` +${t-1}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:61,columnNumber:14},void 0)},className:"w-36"},{key:"last_run_at",label:"Last Run",render:a=>a.last_run_at?e.jsxDEV("span",{className:"whitespace-nowrap",children:e.jsxDEV(u,{date:a.last_run_at},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:69,columnNumber:45},void 0)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:69,columnNumber:9},void 0):e.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:70,columnNumber:9},void 0),className:"w-32"}];function L(){const a=A();c();const{filters:t,setFilter:r,pagination:s}=p({filters:{status:""}}),{data:n,isLoading:l,refetch:m,isFetching:d}=g({status:t.status||void 0,limit:s.pageSize,offset:s.offset}),o=(n==null?void 0:n.total)??0;return e.jsxDEV("div",{children:[e.jsxDEV(h,{title:"Agents",docsHash:"#docs:agents.md",actions:e.jsxDEV("button",{onClick:()=>a("/agents/new"),className:"flex items-center gap-2 px-4 py-2 text-sm rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(P,{className:"w-4 h-4"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:101,columnNumber:13},this)," Create Agent"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:97,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:93,columnNumber:7},this),e.jsxDEV(f,{actions:e.jsxDEV(v,{onRefresh:()=>m(),isFetching:d,apiPath:`/agents?limit=${s.pageSize}&offset=${s.offset}${t.status?`&status=${t.status}`:""}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:107,columnNumber:9},this),children:e.jsxDEV(x,{label:"Status",value:t.status,onChange:i=>r("status",i),options:D},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:113,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:106,columnNumber:7},this),e.jsxDEV(b,{columns:E,data:(n==null?void 0:n.agents)??[],keyFn:i=>i.id,onRowClick:i=>a(`/agents/${i.id}`),isLoading:l,emptyMessage:"No agents found"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:121,columnNumber:7},this),e.jsxDEV(N,{page:s.page,totalPages:s.totalPages(o),onPageChange:s.setPage,total:o,pageSize:s.pageSize,onPageSizeChange:s.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:130,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:92,columnNumber:5},this)}export{L as AgentsPage};
|
|
2
|
-
//# sourceMappingURL=AgentsPage-Bz61Nl-x.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AgentsPage-Bz61Nl-x.js","sources":["../../src/pages/agents/AgentsPage.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport { Plus } from 'lucide-react';\nimport { useAgents, type Agent } from '../../api/agents';\nimport { useAgentEvents } from '../../hooks/useEventHooks';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { DataTable, type Column } from '../../components/common/data/DataTable';\nimport { StickyPagination } from '../../components/common/data/StickyPagination';\nimport { FilterBar, FilterSelect } from '../../components/common/data/FilterBar';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { ListToolbar } from '../../components/common/data/ListToolbar';\nimport { DateValue } from '../../components/common/display/DateValue';\n\nconst STATUS_OPTIONS = [\n { value: 'active', label: 'Active' },\n { value: 'inactive', label: 'Inactive' },\n { value: 'paused', label: 'Paused' },\n { value: 'error', label: 'Error' },\n];\n\nconst columns: Column<Agent>[] = [\n {\n key: 'name',\n label: 'Agent',\n render: (row) => (\n <div className=\"flex items-center gap-2\">\n <span className={`w-1.5 h-1.5 rounded-full shrink-0 ${row.status === 'active' ? 'bg-emerald-400' : row.status === 'paused' ? 'bg-amber-400' : row.status === 'error' ? 'bg-red-400' : 'bg-zinc-500'}`} />\n <div className=\"min-w-0\">\n <span className=\"text-xs font-medium text-text-primary block\">{row.name}</span>\n {row.description && <p className=\"text-[10px] text-text-tertiary truncate\">{row.description}</p>}\n </div>\n </div>\n ),\n },\n {\n key: 'knowledge_domain',\n label: 'Knowledge',\n render: (row) => row.knowledge_domain\n ? <span className=\"text-[10px] font-mono text-text-secondary whitespace-nowrap\">{row.knowledge_domain}</span>\n : <span className=\"text-text-quaternary\">—</span>,\n className: 'w-28',\n },\n {\n key: 'schedules',\n label: 'Schedules',\n render: (row) => {\n const scheds = (row.behaviors as any)?.schedules as any[] | undefined;\n const crons = scheds?.length ? scheds.map((s: any) => s.cron) : row.behaviors?.cron ? [row.behaviors.cron] : [];\n if (!crons.length) return <span className=\"text-text-quaternary\">—</span>;\n return <span className=\"text-[10px] font-mono text-text-secondary whitespace-nowrap\">{crons[0]}{crons.length > 1 ? ` +${crons.length - 1}` : ''}</span>;\n },\n className: 'w-28',\n },\n {\n key: 'subscriptions',\n label: 'Subscriptions',\n render: (row) => {\n const count = row.subscription_count ?? 0;\n const topics = row.sub_topics ?? [];\n if (!count) return <span className=\"text-text-quaternary\">—</span>;\n const first = topics[0]?.replace(/^lt\\.events\\./, '') ?? '';\n return <span className=\"text-[10px] font-mono text-text-secondary whitespace-nowrap\">{first}{count > 1 ? ` +${count - 1}` : ''}</span>;\n },\n className: 'w-36',\n },\n {\n key: 'last_run_at',\n label: 'Last Run',\n render: (row) => row.last_run_at\n ? <span className=\"whitespace-nowrap\"><DateValue date={row.last_run_at} /></span>\n : <span className=\"text-text-quaternary\">—</span>,\n className: 'w-32',\n },\n];\n\nexport function AgentsPage() {\n const navigate = useNavigate();\n useAgentEvents();\n\n const { filters, setFilter, pagination } = useFilterParams({\n filters: { status: '' },\n });\n\n const { data, isLoading, refetch, isFetching } = useAgents({\n status: filters.status || undefined,\n limit: pagination.pageSize,\n offset: pagination.offset,\n });\n\n const total = data?.total ?? 0;\n\n return (\n <div>\n <PageHeader\n title=\"Agents\"\n docsHash=\"#docs:agents.md\"\n actions={\n <button\n onClick={() => navigate('/agents/new')}\n className=\"flex items-center gap-2 px-4 py-2 text-sm rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors\"\n >\n <Plus className=\"w-4 h-4\" /> Create Agent\n </button>\n }\n />\n\n <FilterBar actions={\n <ListToolbar\n onRefresh={() => refetch()}\n isFetching={isFetching}\n apiPath={`/agents?limit=${pagination.pageSize}&offset=${pagination.offset}${filters.status ? `&status=${filters.status}` : ''}`}\n />\n }>\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={STATUS_OPTIONS}\n />\n </FilterBar>\n\n <DataTable\n columns={columns}\n data={data?.agents ?? []}\n keyFn={(row) => row.id}\n onRowClick={(row) => navigate(`/agents/${row.id}`)}\n isLoading={isLoading}\n emptyMessage=\"No agents found\"\n />\n\n <StickyPagination\n page={pagination.page}\n totalPages={pagination.totalPages(total)}\n onPageChange={pagination.setPage}\n total={total}\n pageSize={pagination.pageSize}\n onPageSizeChange={pagination.setPageSize}\n />\n </div>\n );\n}\n"],"names":["STATUS_OPTIONS","columns","row","jsxDEV","this","scheds","_a","crons","s","_b","count","topics","first","DateValue","AgentsPage","navigate","useNavigate","useAgentEvents","filters","setFilter","pagination","useFilterParams","data","isLoading","refetch","isFetching","useAgents","total","PageHeader","Plus","FilterBar","ListToolbar","FilterSelect","v","DataTable","StickyPagination"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,i as Q,e as pe,k as be,l as he,m as Ne,n as xe,o as ge,p as fe,q as ve,r as Ee}from"./index-CCOSf1PY.js";import{a as r}from"./vendor-query-DLp59M9_.js";import{f as ke}from"./useEventHooks-VaJ52jMm.js";import{u as ye}from"./roles-3Jm5KtKc.js";import{u as Be}from"./useFilterParams-CGRYFw_A.js";import{D as Ce}from"./DataTable-J5R6mepB.js";import{S as Ae}from"./StickyPagination-CGk8VAKt.js";import{P as je}from"./PageHeader-COcgWWf-.js";import{P as De}from"./constants-BHkpVaqx.js";import{u as R,C as G}from"./CustomDurationPicker-C06QDDir.js";import{M as O}from"./Modal-C6k6_5KB.js";import{u as Ve}from"./users-oXOlnold.js";import{E as Me,a as Pe}from"./escalation-columns-CoTmTpHp.js";import{R as Se,a as Te}from"./RowActions-Bs4PF-Gd.js";import{L as we}from"./ListToolbar-jy8NL6ll.js";import{_ as _e}from"./vendor-icons-CBOM6Es0.js";import{c as Fe}from"./vendor-react-Co3Y8ikm.js";import"./EmptyState-BXGvOADa.js";import"./settings-DmN2I-c6.js";import"./FilterBar-Bdssa-Xn.js";import"./PriorityBadge-BQCsYMpM.js";import"./RolePill-CHwys1f9.js";import"./WorkflowPill-7vt2F6wR.js";import"./TimestampCell-B4Pc6f3A.js";import"./escalation-_N5GfuIi.js";const Ie=s=>s.isPriorityPending||s.isClaimPending||s.isAssignPending||s.isEscalatePending||s.isTriagePending;function $e(s){const t=Ie(s),m=R();return e.jsxDEV("div",{className:"flex flex-wrap items-center gap-3 px-4 py-3 bg-accent/5 border border-accent/20 rounded-lg mb-4",children:[e.jsxDEV("span",{className:"text-xs font-medium text-accent",children:[s.selectedCount," selected"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:29,columnNumber:7},this),e.jsxDEV("div",{className:"w-px h-5 bg-surface-border"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:33,columnNumber:7},this),e.jsxDEV("select",{onChange:a=>{a.target.value&&(s.onSetPriority(parseInt(a.target.value)),a.target.value="")},disabled:t,className:"select text-xs py-1.5",defaultValue:"",children:[e.jsxDEV("option",{value:"",disabled:!0,children:"Priority..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:46,columnNumber:9},this),De.map(a=>e.jsxDEV("option",{value:a.value,children:a.label},a.value,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:48,columnNumber:11},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:36,columnNumber:7},this),e.jsxDEV("select",{onChange:a=>{a.target.value&&(s.onClaim(parseInt(a.target.value)),a.target.value="")},disabled:t,className:"select text-xs py-1.5",defaultValue:"",children:[e.jsxDEV("option",{value:"",disabled:!0,children:"Claim for..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:63,columnNumber:9},this),m.map(a=>e.jsxDEV("option",{value:a.value,children:a.label},a.value,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:65,columnNumber:11},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:53,columnNumber:7},this),e.jsxDEV("button",{onClick:s.onAssign,disabled:t,className:"btn-secondary text-xs py-1.5",children:s.isAssignPending?"Assigning...":"Assign to..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:70,columnNumber:7},this),s.availableRoles.length>0&&e.jsxDEV("select",{onChange:a=>{a.target.value&&(s.onEscalate(a.target.value),a.target.value="")},disabled:t,className:"select text-xs py-1.5",defaultValue:"",children:[e.jsxDEV("option",{value:"",disabled:!0,children:"Escalate to..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:90,columnNumber:11},this),s.availableRoles.map(a=>e.jsxDEV("option",{value:a,children:a},a,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:92,columnNumber:13},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:80,columnNumber:9},this),e.jsxDEV("button",{onClick:s.onTriage,disabled:t,className:"btn-secondary text-xs py-1.5",children:s.isTriagePending?"Triaging...":"Triage"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:98,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:106,columnNumber:7},this),e.jsxDEV("button",{onClick:s.onClearSelection,className:"text-xs text-text-tertiary hover:text-text-primary transition-colors",children:"Clear"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:109,columnNumber:7},this),t&&e.jsxDEV("span",{className:"text-xs text-text-tertiary animate-pulse",children:"Processing..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:117,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:28,columnNumber:5},this)}function ze({open:s,onClose:t,selectedCount:m,selectedRoles:a,onSubmit:h,isPending:i}){const{isSuperAdmin:u}=Q(),n=R(),[c,g]=r.useState("user"),[N,B]=r.useState(null),[C,V]=r.useState(""),[y,_]=r.useState("30"),[d,b]=r.useState(0),z=r.useCallback(l=>b(l),[]),M=!u&&a.length===1?a[0]:void 0,{data:f,isLoading:A}=Ve({role:M,status:"active",limit:200}),P=r.useMemo(()=>{const l=(f==null?void 0:f.users)??[];if(!C.trim())return l;const x=C.toLowerCase();return l.filter(j=>{var v,E;return((v=j.display_name)==null?void 0:v.toLowerCase().includes(x))||((E=j.email)==null?void 0:E.toLowerCase().includes(x))})},[f==null?void 0:f.users,C]),S=()=>{g("user"),B(null),V(""),_("30"),b(0),t()},F=l=>{B(l),g("duration")},T=()=>{g("user")},I=()=>{if(!N)return;const l=y==="custom"?d:parseInt(y);!l||l<=0||h(N.id,l)};return e.jsxDEV(O,{open:s,onClose:S,title:"Assign Escalations",children:e.jsxDEV("div",{className:"space-y-4",children:[c==="user"&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("p",{className:"text-sm text-text-secondary",children:["Select a user to assign"," ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:m},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:89,columnNumber:15},this)," ","escalation(s) to:"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:87,columnNumber:13},this),e.jsxDEV("input",{type:"text",value:C,onChange:l=>V(l.target.value),placeholder:"Search by name or email...",className:"input text-xs w-full",autoFocus:!0},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:95,columnNumber:13},this),e.jsxDEV("div",{className:"max-h-60 overflow-y-auto border border-surface-border rounded-lg divide-y divide-surface-border",children:[A&&e.jsxDEV("p",{className:"text-xs text-text-tertiary p-3",children:"Loading users..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:106,columnNumber:17},this),!A&&P.length===0&&e.jsxDEV("p",{className:"text-xs text-text-tertiary p-3",children:"No users found"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:111,columnNumber:17},this),P.map(l=>e.jsxDEV("button",{onClick:()=>F(l),className:"w-full text-left px-3 py-2 hover:bg-surface-hover transition-colors",children:[e.jsxDEV("p",{className:"text-xs font-medium text-text-primary",children:l.display_name||l.external_id},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:121,columnNumber:19},this),l.email&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary",children:l.email},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:125,columnNumber:21},this)]},l.id,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:116,columnNumber:17},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:104,columnNumber:13},this),e.jsxDEV("div",{className:"flex justify-end pt-2",children:e.jsxDEV("button",{onClick:S,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:134,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:133,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:86,columnNumber:11},this),c==="duration"&&N&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("p",{className:"text-sm text-text-secondary",children:["Assign to"," ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:N.display_name||N.external_id},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:145,columnNumber:15},this)," ","for:"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:143,columnNumber:13},this),e.jsxDEV("select",{value:y,onChange:l=>{_(l.target.value),b(0)},className:"select w-full text-sm",children:[n.map(l=>e.jsxDEV("option",{value:l.value,children:l.label},l.value,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:157,columnNumber:17},this)),e.jsxDEV("option",{value:"custom",children:"Other..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:161,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:151,columnNumber:13},this),y==="custom"&&e.jsxDEV(G,{onChange:z,autoFocus:!0},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:164,columnNumber:15},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:T,className:"btn-secondary text-xs",children:"Back"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:168,columnNumber:15},this),e.jsxDEV("button",{onClick:I,disabled:i,className:"btn-primary text-xs",children:i?"Assigning...":"Assign"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:171,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:167,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:142,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:84,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:83,columnNumber:5},this)}function Le({open:s,onClose:t,selectedCount:m,onSubmit:a,isPending:h}){const[i,u]=r.useState(""),n=()=>{a(i||void 0)};return e.jsxDEV(O,{open:s,onClose:t,title:"Submit for AI Triage",children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("p",{className:"text-sm text-text-secondary",children:["Submit ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:m},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:29,columnNumber:18},this)," escalation(s) for AI triage? The triage orchestrator will take over resolution."]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:28,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"text-xs font-medium text-text-secondary block mb-1",children:["Triage hint ",e.jsxDEV("span",{className:"text-text-tertiary",children:"(optional)"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:35,columnNumber:25},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:34,columnNumber:11},this),e.jsxDEV("input",{type:"text",value:i,onChange:c=>u(c.target.value),placeholder:"e.g., image_orientation",className:"input text-xs font-mono w-full"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:37,columnNumber:11},this),e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-1",children:"Guides the triage workflow on what remediation to apply"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:44,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:33,columnNumber:9},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:t,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:50,columnNumber:11},this),e.jsxDEV("button",{onClick:n,disabled:h,className:"btn-primary text-xs",children:h?"Submitting...":"Submit for Triage"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:53,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:49,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:27,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkTriageModal.tsx",lineNumber:26,columnNumber:5},this)}function w(s,t,m){return a=>{s.mutate(a,{onSuccess:()=>{t(),m==null||m()}})}}function Re(s){const t=()=>[...s.selectedIds];return{handleSetPriority:n=>{w(s.setPriority,s.clearSelection)({ids:t(),priority:n})},handleBulkClaim:n=>{w(s.bulkClaim,s.clearSelection)({ids:t(),durationMinutes:n})},handleBulkEscalate:n=>{w(s.bulkEscalate,s.clearSelection)({ids:t(),targetRole:n})},handleBulkTriage:n=>{w(s.bulkTriage,s.clearSelection,s.closeTriageModal)({ids:t(),hint:n})},handleBulkAssign:(n,c)=>{w(s.bulkAssign,s.clearSelection,s.closeAssignModal)({ids:t(),targetUserId:n,durationMinutes:c})}}}function Oe({claimTarget:s,onClose:t,claimDuration:m,onDurationChange:a,claimDurations:h,onCustomClaimChange:i,onClaim:u,isPending:n}){return e.jsxDEV(O,{open:!!s,onClose:t,title:"Claim Escalation",children:e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("p",{className:"text-sm text-text-secondary",children:["Claim ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:s==null?void 0:s.type},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:35,columnNumber:17},this)," for:"]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:34,columnNumber:9},this),e.jsxDEV("select",{value:m,onChange:c=>{a(c.target.value)},className:"select w-full text-sm",children:[h.map(c=>e.jsxDEV("option",{value:c.value,children:c.label},c.value,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:43,columnNumber:13},this)),e.jsxDEV("option",{value:"custom",children:"Other..."},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:45,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:37,columnNumber:9},this),m==="custom"&&e.jsxDEV(G,{onChange:i,autoFocus:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:48,columnNumber:11},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:t,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:51,columnNumber:11},this),e.jsxDEV("button",{onClick:u,className:"btn-primary text-xs",disabled:n,children:n?"Claiming...":"Claim"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:54,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:50,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:33,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/ClaimModal.tsx",lineNumber:28,columnNumber:5},this)}function ba(){ke();const s=Fe(),{user:t,isSuperAdmin:m}=Q(),{filters:a,setFilter:h,pagination:i,sort:u,setSort:n}=Be({filters:{role:"",type:"",priority:"",status:"available"}}),c=R(),[g,N]=r.useState(null),[B,C]=r.useState("30"),[V,y]=r.useState(0),_=r.useCallback(o=>y(o),[]),[d,b]=r.useState(new Set),[z,M]=r.useState(!1),[f,A]=r.useState(!1),P=pe(),S=be(),F=he(),T=Ne(),I=xe(),l=ge(),{data:x}=ye(),{data:j}=fe();r.useEffect(()=>{b(new Set)},[a.role,a.type,a.priority,a.status,i.page,i.pageSize]);const v=a.status||"",E=v==="available",L=v==="claimed"?"pending":v==="resolved"?"resolved":void 0,U={role:a.role||void 0,type:a.type||void 0,priority:a.priority?parseInt(a.priority):void 0,limit:i.pageSize,offset:i.offset,sort_by:u.sort_by||void 0,order:u.sort_by?u.order:void 0},Y=ve({...U,enabled:E}),J=Ee({status:L,...U,enabled:!E}),K=E?Y:J,{data:D,isLoading:W,error:$,refetch:X,isFetching:Z}=K,ee=new Date,H=(D==null?void 0:D.escalations)??[],k=v==="claimed"?H.filter(o=>o.assigned_to&&o.assigned_until&&new Date(o.assigned_until)>ee):H,q=v==="claimed"?k.length:(D==null?void 0:D.total)??0,ae=m||(t==null?void 0:t.roles.some(o=>o.type==="admin")),se=r.useMemo(()=>{const o=new Set;for(const p of k)d.has(p.id)&&o.add(p.role);return[...o]},[k,d]),oe=r.useCallback(()=>b(new Set),[]),le=()=>{if(!g)return;const o=B==="custom"?V:parseInt(B);!o||o<=0||P.mutate({id:g.id,durationMinutes:o},{onSuccess:()=>{N(null),s(`/escalations/detail/${g.id}`)}})},{handleSetPriority:te,handleBulkClaim:ie,handleBulkEscalate:ne,handleBulkTriage:re,handleBulkAssign:me}=Re({selectedIds:d,clearSelection:oe,setPriority:S,bulkClaim:F,bulkEscalate:I,bulkTriage:l,bulkAssign:T,closeTriageModal:()=>M(!1),closeAssignModal:()=>A(!1)}),ce=o=>{const p=new Set(d);p.has(o)?p.delete(o):p.add(o),b(p)},de=()=>{d.size===k.length?b(new Set):b(new Set(k.map(o=>o.id)))},ue=[ae?{key:"select",label:e.jsxDEV("input",{type:"checkbox",checked:k.length>0&&d.size===k.length,onChange:de,className:"rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:166,columnNumber:9},this),render:o=>e.jsxDEV("input",{type:"checkbox",checked:d.has(o.id),onChange:p=>{p.stopPropagation(),ce(o.id)},onClick:p=>p.stopPropagation(),className:"rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:174,columnNumber:9},this),className:"w-10"}:{key:"spacer",label:"",render:()=>null,className:"w-10"},...Me,{key:"actions",label:"",render:o=>e.jsxDEV(Se,{children:e.jsxDEV(Te,{icon:_e,title:"Claim escalation",onClick:()=>N(o)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:198,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:197,columnNumber:9},this),className:"w-16 text-right"}];return e.jsxDEV("div",{children:[e.jsxDEV(je,{title:"All Escalations",docsHash:"#docs:dashboard.md:all-escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:211,columnNumber:7},this),e.jsxDEV(Pe,{filters:a,setFilter:h,roles:(x==null?void 0:x.roles)??[],types:(j==null?void 0:j.types)??[],showStatus:!0,actions:e.jsxDEV(we,{onRefresh:()=>X(),isFetching:Z,apiPath:`/escalations${E?"/available":""}?limit=${i.pageSize}&offset=${i.offset}${L?`&status=${L}`:""}${a.role?`&role=${a.role}`:""}${a.type?`&type=${a.type}`:""}${a.priority?`&priority=${a.priority}`:""}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:220,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:213,columnNumber:7},this),d.size>0&&e.jsxDEV($e,{selectedCount:d.size,onClearSelection:()=>b(new Set),onSetPriority:te,onClaim:ie,onAssign:()=>A(!0),onEscalate:ne,onTriage:()=>M(!0),isPriorityPending:S.isPending,isClaimPending:F.isPending,isAssignPending:T.isPending,isEscalatePending:I.isPending,isTriagePending:l.isPending,availableRoles:(x==null?void 0:x.roles)??[]},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:229,columnNumber:9},this),$&&e.jsxDEV("div",{className:"mb-4 px-4 py-3 rounded-md bg-status-error/10 border border-status-error/20 text-xs text-status-error",children:$.message==="Session expired"?"Your session has expired. Please log in again.":`Failed to load escalations: ${$.message}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:247,columnNumber:9},this),e.jsxDEV(Ce,{columns:ue,data:k,keyFn:o=>o.id,onRowClick:o=>s(`/escalations/detail/${o.id}`,{state:{from:"/escalations/available"}}),isLoading:W,emptyMessage:$?"Unable to load data":"No available escalations",sort:u,onSort:n},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:254,columnNumber:7},this),e.jsxDEV(Ae,{page:i.page,totalPages:i.totalPages(q),onPageChange:i.setPage,total:q,pageSize:i.pageSize,onPageSizeChange:i.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:265,columnNumber:7},this),e.jsxDEV(Oe,{claimTarget:g,onClose:()=>N(null),claimDuration:B,onDurationChange:o=>{C(o),y(0)},claimDurations:c,customClaimMinutes:V,onCustomClaimChange:_,onClaim:le,isPending:P.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:274,columnNumber:7},this),e.jsxDEV(Le,{open:z,onClose:()=>M(!1),selectedCount:d.size,onSubmit:re,isPending:l.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:286,columnNumber:7},this),e.jsxDEV(ze,{open:f,onClose:()=>A(!1),selectedCount:d.size,selectedRoles:se,onSubmit:me,isPending:T.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:294,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:210,columnNumber:5},this)}export{ba as AvailableEscalationsPage};
|
|
2
|
-
//# sourceMappingURL=AvailableEscalationsPage-DdrzePy4.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as g,j as e}from"./index-CCOSf1PY.js";import{u as v,a as d}from"./vendor-query-DLp59M9_.js";import{T as C}from"./ToolTestPanel-DusbUka5.js";import{T as P}from"./ToolPill-DdLN3JOT.js";import{S as E}from"./ServerName-BIdLC1Ay.js";import{P as D}from"./PageHeader-COcgWWf-.js";import{aD as x,B as j,aE as V,aF as y,aG as w,aw as k,an as S,a8 as T,t as q,aH as I,P as A}from"./vendor-icons-CBOM6Es0.js";import"./vendor-react-Co3Y8ikm.js";import"./mcp-CsLJ5SRm.js";import"./RunAsSelector-DXzAr2WW.js";import"./BotPicker-kKBifD1w.js";import"./bots-CtU4i4OQ.js";function $(){return v({queryKey:["capabilities"],queryFn:()=>g("/capabilities")})}const u={Communication:{icon:q,color:"text-blue-400"},Analysis:{icon:T,color:"text-violet-400"},Media:{icon:S,color:"text-pink-400"},Data:{icon:k,color:"text-emerald-400"},Automation:{icon:w,color:"text-amber-400"},Development:{icon:y,color:"text-cyan-400"},System:{icon:V,color:"text-red-400"},Reference:{icon:j,color:"text-text-tertiary"},Other:{icon:x,color:"text-text-tertiary"}};function Y(){const{data:s,isLoading:c}=$(),[r,m]=d.useState(""),[t,n]=d.useState(null),[o,N]=d.useState(null),b=(s==null?void 0:s.categories)??[],f=(s==null?void 0:s.totalTools)??0,h=d.useMemo(()=>{let a=b;if(t&&(a=a.filter(l=>l.name===t)),!r.trim())return a;const p=r.toLowerCase();return a.map(l=>({...l,tools:l.tools.filter(i=>i.name.toLowerCase().includes(p)||i.description.toLowerCase().includes(p)||i.serverName.toLowerCase().includes(p))})).filter(l=>l.tools.length>0)},[b,r,t]);return e.jsxDEV("div",{children:[e.jsxDEV(D,{title:"Capabilities"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:66,columnNumber:7},this),!c&&b.length>0&&e.jsxDEV("div",{className:"flex items-center gap-5 mb-10",children:[e.jsxDEV("button",{onClick:()=>n(null),className:`flex flex-col items-center gap-1 transition-colors ${t===null?"text-accent":"text-text-quaternary hover:text-text-secondary"}`,children:[e.jsxDEV(x,{className:"w-5 h-5",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:77,columnNumber:13},this),e.jsxDEV("span",{className:"text-[9px] font-medium",children:"All"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:78,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:71,columnNumber:11},this),b.map(a=>{const p=u[a.name]??u.Other,l=p.icon,i=t===a.name;return e.jsxDEV("button",{onClick:()=>n(i?null:a.name),className:`flex flex-col items-center gap-1 transition-colors ${i?p.color:"text-text-quaternary hover:text-text-secondary"}`,children:[e.jsxDEV(l,{className:"w-5 h-5",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:92,columnNumber:17},this),e.jsxDEV("span",{className:"text-[9px] font-medium",children:a.name},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:93,columnNumber:17},this)]},a.name,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:85,columnNumber:15},this)}),e.jsxDEV("span",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:97,columnNumber:11},this),e.jsxDEV("div",{className:"relative",children:[e.jsxDEV(I,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-text-quaternary"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:99,columnNumber:13},this),e.jsxDEV("input",{type:"text",value:r,onChange:a=>m(a.target.value),placeholder:`Search ${f} capabilities...`,className:"pl-9 pr-3 py-1.5 text-sm bg-surface-sunken border border-surface-border rounded-md text-text-primary placeholder:text-text-quaternary focus:outline-none focus:ring-1 focus:ring-accent/50 w-56"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:100,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:98,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:70,columnNumber:9},this),e.jsxDEV("div",{className:"flex gap-0",children:[e.jsxDEV("div",{className:`${o?"flex-1 min-w-0":"w-full"} transition-all`,children:c?e.jsxDEV("div",{className:"animate-pulse space-y-6",children:[1,2,3].map(a=>e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"h-5 bg-surface-sunken rounded w-32 mb-4"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:118,columnNumber:19},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("div",{className:"h-4 bg-surface-sunken rounded w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:120,columnNumber:21},this),e.jsxDEV("div",{className:"h-4 bg-surface-sunken rounded w-3/4"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:121,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:119,columnNumber:19},this)]},a,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:117,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:115,columnNumber:13},this):h.length===0?e.jsxDEV("p",{className:"text-sm text-text-tertiary mt-8",children:r||t?"No capabilities match your filter.":"No capabilities registered yet."},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:127,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-10",children:h.map(a=>{const p=u[a.name]??u.Other,l=p.icon;return e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-4 pb-2 border-b border-surface-border",children:[e.jsxDEV(l,{className:`w-4.5 h-4.5 ${p.color}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:138,columnNumber:23},this),e.jsxDEV("h2",{className:"text-sm font-semibold uppercase tracking-widest text-accent/80",children:a.name},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:139,columnNumber:23},this),e.jsxDEV("span",{className:"text-xs text-text-quaternary",children:a.tools.length},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:140,columnNumber:23},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:137,columnNumber:21},this),e.jsxDEV("div",{className:"space-y-0.5",children:a.tools.map(i=>e.jsxDEV(L,{tool:i,onTry:()=>N({serverId:i.serverId,serverName:i.serverName,tool:{name:i.name,description:i.description,inputSchema:i.inputSchema}})},`${i.serverId}-${i.name}`,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:144,columnNumber:25},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:142,columnNumber:21},this)]},a.name,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:136,columnNumber:19},this)})},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:131,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:113,columnNumber:9},this),o&&e.jsxDEV("div",{className:"w-[380px] shrink-0 sticky top-0 max-h-screen overflow-y-auto",children:e.jsxDEV(C,{serverId:o.serverId,serverName:o.serverName,tool:o.tool,onClose:()=>N(null)},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:168,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:167,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:111,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:65,columnNumber:5},this)}function L({tool:s,onTry:c}){var m;const r=Object.keys(((m=s.inputSchema)==null?void 0:m.properties)??{});return e.jsxDEV("button",{onClick:c,className:"group w-full py-2 px-2 rounded-md hover:bg-surface-hover transition-colors text-left flex gap-4 items-start",children:[e.jsxDEV("div",{className:"w-56 shrink-0",children:e.jsxDEV(P,{name:s.name,size:"md"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:199,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:198,columnNumber:7},this),e.jsxDEV("div",{className:"w-44 shrink-0 pt-0.5",children:r.length>0&&e.jsxDEV("p",{className:"text-[9px] font-mono text-text-quaternary/70 leading-relaxed",children:r.map((t,n)=>n<r.length-1?e.jsxDEV("span",{children:[e.jsxDEV("span",{className:"whitespace-nowrap",children:[t," ·"]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:206,columnNumber:31},this)," "]},t,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:206,columnNumber:17},this):e.jsxDEV("span",{children:t},t,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:207,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:204,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:202,columnNumber:7},this),e.jsxDEV("p",{className:"text-[11px] text-text-tertiary leading-relaxed flex-1 pt-0.5",children:s.description},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:213,columnNumber:7},this),e.jsxDEV("div",{className:"shrink-0 flex items-center gap-1.5 pt-0.5",children:[e.jsxDEV(E,{name:s.serverName,serverId:s.serverId},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:216,columnNumber:9},this),e.jsxDEV(A,{className:"w-2.5 h-2.5 text-accent opacity-0 group-hover:opacity-100 transition-opacity"},void 0,!1,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:217,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:215,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/capabilities/CapabilitiesPage.tsx",lineNumber:193,columnNumber:5},this)}export{Y as CapabilitiesPage};
|
|
2
|
-
//# sourceMappingURL=CapabilitiesPage-Ch5qY0I7.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as Z,r as I,j as e,c as P,u as ee,N as se,J as ae}from"./index-CCOSf1PY.js";import{a as c}from"./vendor-query-DLp59M9_.js";import{b as oe}from"./workflows-Yq7cK-vR.js";import{u as te}from"./mcp-runs-DtTTsuPH.js";import{a as re}from"./controlplane-BVoALhbL.js";import{u as ie}from"./tasks-Cc-QoITQ.js";import{e as me,b as le,u as ne}from"./useEventHooks-VaJ52jMm.js";import{R as T}from"./RolePill-CHwys1f9.js";import{W as x}from"./WorkflowPill-7vt2F6wR.js";import{L as f}from"./ListToolbar-jy8NL6ll.js";import{E as ce}from"./EventTopicPill-CB_rIGlL.js";import{s as z,a0 as p,L as B,W as M,C as Q,I as J,R as O,B as de,h as pe}from"./vendor-icons-CBOM6Es0.js";import{c as G,f as ue}from"./vendor-react-Co3Y8ikm.js";const he={completed:"bg-status-success",active:"bg-status-active",running:"bg-status-active",pending:"bg-status-pending",error:"bg-status-error",failed:"bg-status-error"};function U(a){return he[a]??"bg-text-tertiary"}let be=0;function Ne(a=5){const[o,t]=c.useState([]),[r,i]=c.useState(!1),n=c.useRef(null),m=c.useCallback(l=>{var d,N,v;if((d=l.type)!=null&&d.startsWith("mesh."))return;const b=l.activityName||l.workflowName||((N=l.data)==null?void 0:N.domain)||((v=l.workflowId)==null?void 0:v.slice(0,16))||"";t(D=>[{id:++be,type:l.type,timestamp:l.timestamp,label:b,data:l},...D].slice(0,a)),i(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>i(!1),2e3)},[a]);return ee(`${se}.>`,m),{events:o,pulse:r}}function u({icon:a,color:o,docsHash:t,children:r,actions:i}){return e.jsxDEV("div",{className:"flex items-center justify-between mb-4 pb-2 border-b border-surface-border",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(a,{className:`w-4.5 h-4.5 ${o||"text-accent/60"}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:66,columnNumber:9},this),e.jsxDEV("h2",{className:"text-sm font-semibold uppercase tracking-widest text-accent/80",children:r},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:67,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:65,columnNumber:7},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[t&&e.jsxDEV("button",{onClick:()=>{window.location.hash=t},className:"text-text-quaternary hover:text-accent transition-colors",title:"Docs",children:e.jsxDEV(de,{className:"w-2.5 h-2.5",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:72,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:71,columnNumber:11},this),i]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:69,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:64,columnNumber:5},this)}function h({icon:a,text:o}){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-10 text-center",children:[e.jsxDEV(a,{className:"w-6 h-6 text-text-quaternary/50 mb-2",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:84,columnNumber:7},this),e.jsxDEV("p",{className:"text-xs text-text-quaternary",children:o},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:85,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:83,columnNumber:5},this)}function xe(a,o=37){if(!a||a.length<=o)return a;const t=Math.floor((o-3)/2);return`${a.slice(0,t)}...${a.slice(-t)}`}function y({dot:a,pill:o,id:t,date:r,onClick:i}){return e.jsxDEV("button",{onClick:i,className:"w-full text-left hover:bg-surface-hover/50 rounded-md px-1 py-1.5 transition-colors",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-0.5",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full shrink-0 ${a}`},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:108,columnNumber:9},this),e.jsxDEV("span",{className:"text-[12px] text-text-primary font-mono truncate max-w-[60%]",children:xe(t)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:109,columnNumber:9},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary shrink-0 ml-auto whitespace-nowrap",children:e.jsxDEV(P,{date:r},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:110,columnNumber:95},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:110,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:107,columnNumber:7},this),e.jsxDEV("div",{className:"pl-3.5 flex items-center gap-1 overflow-hidden",children:o},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:112,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:106,columnNumber:5},this)}function g({to:a,icon:o,title:t}){const r=G();return e.jsxDEV("button",{onClick:()=>r(a),className:"text-text-quaternary hover:text-accent transition-colors",title:t,children:e.jsxDEV(o,{className:"w-2.5 h-2.5",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:125,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:120,columnNumber:5},this)}function X({appIds:a,selected:o,onSelect:t}){const[r,i]=c.useState(!1),n=c.useRef(null);return c.useEffect(()=>{if(!r)return;const m=l=>{n.current&&!n.current.contains(l.target)&&i(!1)};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[r]),a.length<=1?null:e.jsxDEV("div",{className:"relative mb-3 -mt-2",ref:n,children:[e.jsxDEV("button",{onClick:()=>i(m=>!m),className:"flex items-center gap-1 px-2 py-0.5 text-[10px] rounded bg-accent/10 text-accent hover:bg-accent/20 transition-colors",children:[o,e.jsxDEV("svg",{className:`w-2.5 h-2.5 transition-transform ${r?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:159,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:158,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:153,columnNumber:7},this),r&&e.jsxDEV("div",{className:"absolute top-full left-0 mt-1 bg-surface-raised border border-surface-border rounded-md shadow-lg z-30 py-1 min-w-[120px]",children:a.map(m=>e.jsxDEV("button",{onClick:()=>{t(m),i(!1)},className:`w-full text-left px-3 py-1.5 text-[11px] transition-colors ${o===m?"text-accent bg-accent/5":"text-text-secondary hover:bg-surface-hover"}`,children:m},m,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:165,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:163,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:152,columnNumber:5},this)}function fe({event:a}){const[o,t]=c.useState(!1);return e.jsxDEV("div",{children:[e.jsxDEV("button",{onClick:()=>t(!o),className:"w-full text-left px-1 py-2 hover:bg-surface-hover/50 rounded-md transition-colors flex items-center gap-2",children:[e.jsxDEV(pe,{className:`w-2.5 h-2.5 text-text-quaternary shrink-0 transition-transform ${o?"rotate-0":"-rotate-90"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:188,columnNumber:9},this),e.jsxDEV(ce,{topic:a.type},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:189,columnNumber:9},this),e.jsxDEV("span",{className:"text-[11px] text-text-secondary font-mono truncate flex-1",children:a.label||"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:190,columnNumber:9},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary shrink-0",children:e.jsxDEV(P,{date:a.timestamp,format:"time"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:191,columnNumber:69},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:191,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:187,columnNumber:7},this),o&&e.jsxDEV("div",{className:"pl-5 pb-2",children:e.jsxDEV(ae,{data:a.data,defaultCollapsed:!1},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:195,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:194,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:186,columnNumber:5},this)}function Se(){var $,q,A,F,L;const a=G(),{user:o}=Z(),[t,r]=ue(),i=t.get("pipelinenamespace")||"longtail",n=t.get("durablenamespace")||"durable",m=c.useCallback((s,E)=>{r(Y=>{const W=new URLSearchParams(Y);return W.set(s,E),W},{replace:!1})},[r]);me(),le(),ne();const l=ie({limit:5}),b=oe({limit:5,sort_by:"updated_at",order:"desc",namespace:n}),{data:d}=re(),N=((d==null?void 0:d.apps)??[]).map(s=>s.appId),v=N,D=N,H=te({limit:5,app_id:i,sort_by:"updated_at",order:"desc"}),j=I({status:"pending",limit:5,sort_by:"updated_at",order:"desc"}),V=I({assigned_to:o==null?void 0:o.userId,status:"pending",limit:5,sort_by:"updated_at",order:"desc"}),{events:w,pulse:K}=Ne(),k=(($=l.data)==null?void 0:$.processes)??[],_=((q=b.data)==null?void 0:q.jobs)??[],C=((A=H.data)==null?void 0:A.jobs)??[],S=((F=j.data)==null?void 0:F.escalations)??[],R=((L=V.data)==null?void 0:L.escalations)??[];return e.jsxDEV("div",{children:[e.jsxDEV("h1",{className:"text-3xl font-light text-text-primary mb-10",children:"Recent Activity"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:240,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-14",children:[e.jsxDEV("div",{children:[e.jsxDEV(u,{icon:z,color:"text-emerald-400",docsHash:"#docs:dashboard.md:processes-overview",actions:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(f,{onRefresh:()=>l.refetch(),isFetching:l.isFetching,apiPath:"/tasks/processes?limit=5"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:249,columnNumber:15},this),e.jsxDEV(g,{to:"/processes/all",icon:p,title:"All processes"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:250,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:248,columnNumber:13},this),children:"Certified Processes"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:247,columnNumber:11},this),e.jsxDEV("div",{className:"mb-3 -mt-2",children:e.jsxDEV("span",{className:"px-2 py-0.5 text-[10px] rounded text-text-quaternary uppercase tracking-widest",children:"all namespaces"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:256,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:255,columnNumber:11},this),k.length===0?e.jsxDEV(h,{icon:z,text:"No recent processes"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:259,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-1",children:k.map(s=>e.jsxDEV(y,{dot:(s.task_count??0)>0&&(s.completed??0)>=(s.task_count??0)?"bg-status-success":(s.escalated??0)>0?"border border-status-error":"bg-status-active",pill:e.jsxDEV(e.Fragment,{children:(s.workflow_types??[s.workflow_type]).filter(Boolean).map(E=>e.jsxDEV(x,{type:E,size:"xs"},E,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:266,columnNumber:104},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:266,columnNumber:25},this),id:s.origin_id,date:s.last_activity??s.started_at,onClick:()=>a(`/processes/detail/${s.origin_id}`)},s.origin_id,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:263,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:261,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:246,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV(u,{icon:B,color:"text-blue-400",docsHash:"#docs:dashboard.md:durable-executions",actions:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(f,{onRefresh:()=>b.refetch(),isFetching:b.isFetching,apiPath:`/workflow-states/jobs?namespace=${n}&limit=5`},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:280,columnNumber:15},this),e.jsxDEV(g,{to:"/workflows/executions",icon:p,title:"All durable executions"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:281,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:279,columnNumber:13},this),children:"Durable Executions"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:278,columnNumber:11},this),e.jsxDEV(X,{appIds:v,selected:n,onSelect:s=>m("durablenamespace",s)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:286,columnNumber:11},this),_.length===0?e.jsxDEV(h,{icon:B,text:"No recent executions"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:288,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-1",children:_.map(s=>e.jsxDEV(y,{dot:U(s.status),pill:e.jsxDEV(x,{type:s.entity||s.type||"workflow",size:"xs"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:295,columnNumber:25},this),id:s.workflow_id,date:s.updated_at??s.created_at,onClick:()=>a(`/workflows/executions/${s.workflow_id}`)},s.workflow_id,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:292,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:290,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:277,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV(u,{icon:M,color:"text-violet-400",docsHash:"#docs:dashboard.md:mcp-pipeline-tools",actions:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(f,{onRefresh:()=>H.refetch(),isFetching:H.isFetching,apiPath:`/mcp-runs?app_id=${i}&limit=5`},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:309,columnNumber:15},this),e.jsxDEV(g,{to:"/mcp/executions",icon:p,title:"All pipeline executions"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:310,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:308,columnNumber:13},this),children:"Pipeline Executions"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:307,columnNumber:11},this),e.jsxDEV(X,{appIds:D,selected:i,onSelect:s=>m("pipelinenamespace",s)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:315,columnNumber:11},this),C.length===0?e.jsxDEV(h,{icon:M,text:"No recent pipeline runs"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:317,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-1",children:C.map(s=>e.jsxDEV(y,{dot:U(s.status),pill:e.jsxDEV(x,{type:s.entity||s.workflow_name||"pipeline",variant:"pipeline",size:"xs"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:324,columnNumber:25},this),id:s.workflow_id,date:s.updated_at??s.created_at,onClick:()=>a(`/mcp/executions/${s.workflow_id}?namespace=${i}`)},s.workflow_id,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:321,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:319,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:306,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:243,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-x-14 mt-14",children:[e.jsxDEV("div",{children:[e.jsxDEV(u,{icon:Q,color:"text-amber-400",docsHash:"#docs:dashboard.md:all-escalations",actions:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(f,{onRefresh:()=>j.refetch(),isFetching:j.isFetching,apiPath:"/escalations?status=pending&limit=5&sort_by=priority&order=asc"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:342,columnNumber:15},this),e.jsxDEV(g,{to:"/escalations/available",icon:p,title:"All available escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:343,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:341,columnNumber:13},this),children:"All Escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:340,columnNumber:11},this),S.length===0?e.jsxDEV(h,{icon:Q,text:"No pending escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:349,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-1",children:S.map(s=>e.jsxDEV("button",{onClick:()=>a(`/escalations/detail/${s.id}`),className:"w-full text-left hover:bg-surface-hover/50 rounded-md px-1 py-1.5 transition-colors",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-0.5",children:[e.jsxDEV("span",{className:"text-[9px] text-text-quaternary font-medium shrink-0",children:["P",s.priority??2]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:359,columnNumber:21},this),e.jsxDEV("span",{className:"text-[12px] text-text-primary truncate flex-1 max-w-[65%]",children:s.description||s.subtype||s.type},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:360,columnNumber:21},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary shrink-0 ml-auto",children:e.jsxDEV(P,{date:s.updated_at??s.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:361,columnNumber:89},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:361,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:358,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-2 pl-5",children:[e.jsxDEV(x,{type:s.type||"unknown",size:"xs"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:364,columnNumber:21},this),e.jsxDEV("span",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:365,columnNumber:21},this),e.jsxDEV(T,{role:s.role},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:366,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:363,columnNumber:19},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:353,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:351,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:339,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV(u,{icon:J,color:"text-orange-400",docsHash:"#docs:dashboard.md:escalations-overview",actions:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(f,{onRefresh:()=>V.refetch(),isFetching:V.isFetching,apiPath:`/escalations?assigned_to=${(o==null?void 0:o.userId)??""}&status=pending&limit=5`},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:378,columnNumber:15},this),e.jsxDEV(g,{to:"/escalations/queue",icon:p,title:"My escalation queue"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:379,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:377,columnNumber:13},this),children:"My Escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:376,columnNumber:11},this),R.length===0?e.jsxDEV(h,{icon:J,text:"No assigned escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:385,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-1",children:R.map(s=>e.jsxDEV("button",{onClick:()=>a(`/escalations/detail/${s.id}`),className:"w-full text-left hover:bg-surface-hover/50 rounded-md px-1 py-1.5 transition-colors",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-0.5",children:[e.jsxDEV("span",{className:"text-[9px] text-text-quaternary font-medium shrink-0",children:["P",s.priority??2]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:395,columnNumber:21},this),e.jsxDEV("span",{className:"text-[12px] text-text-primary truncate flex-1 max-w-[65%]",children:s.description||s.subtype||s.type},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:396,columnNumber:21},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary shrink-0 ml-auto",children:e.jsxDEV(P,{date:s.updated_at??s.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:397,columnNumber:89},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:397,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:394,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-2 pl-5",children:[e.jsxDEV(x,{type:s.type||"unknown",size:"xs"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:400,columnNumber:21},this),e.jsxDEV("span",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:401,columnNumber:21},this),e.jsxDEV(T,{role:s.role},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:402,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:399,columnNumber:19},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:389,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:387,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:375,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV(u,{icon:O,color:"text-emerald-400",actions:e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full transition-colors duration-500 ${K?"bg-emerald-400":"bg-zinc-600"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:415,columnNumber:17},this),e.jsxDEV("button",{onClick:()=>{const s=document.querySelector('[title="Fullscreen"]');s==null||s.click()},className:"text-text-quaternary hover:text-accent transition-colors",title:"View all events",children:e.jsxDEV(p,{className:"w-2.5 h-2.5",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:421,columnNumber:19},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:416,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:414,columnNumber:15},this),children:"Event Stream"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:412,columnNumber:11},this),w.length===0?e.jsxDEV(h,{icon:O,text:"Events appear here in real time"},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:429,columnNumber:13},this):e.jsxDEV("div",{className:"divide-y divide-surface-border/20",children:w.map(s=>e.jsxDEV(fe,{event:s},s.id,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:433,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:431,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:411,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:336,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/home/HomePage.tsx",lineNumber:239,columnNumber:5},this)}export{Se as HomePage};
|
|
2
|
-
//# sourceMappingURL=HomePage-BuZkdXZt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage-BuZkdXZt.js","sources":["../../src/pages/home/HomePage.tsx"],"sourcesContent":["import { useState, useRef, useCallback, useEffect } from 'react';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\nimport {\n AlertCircle, Inbox, ListChecks, Wand2, Layers, Radio, ExternalLink, BookOpen, ChevronDown,\n} from 'lucide-react';\nimport { useEscalations } from '../../api/escalations';\nimport { useJobs } from '../../api/workflows';\nimport { useMcpRuns } from '../../api/mcp-runs';\nimport { useControlPlaneApps } from '../../api/controlplane';\nimport { useProcesses } from '../../api/tasks';\nimport { useAuth } from '../../hooks/useAuth';\nimport { useEscalationStatsEvents, useWorkflowListEvents, useProcessListEvents } from '../../hooks/useEventHooks';\nimport { useEventSubscription } from '../../hooks/useEventContext';\nimport { NATS_SUBJECT_PREFIX } from '../../lib/nats/config';\nimport { DateValue } from '../../components/common/display/DateValue';\nimport { RolePill } from '../../components/common/display/RolePill';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\nimport { ListToolbar } from '../../components/common/data/ListToolbar';\nimport { EventTopicPill } from '../../components/common/display/EventTopicPill';\nimport { JsonViewer } from '../../components/common/data/JsonViewer';\n\nconst STATUS_DOT: Record<string, string> = {\n completed: 'bg-status-success',\n active: 'bg-status-active',\n running: 'bg-status-active',\n pending: 'bg-status-pending',\n error: 'bg-status-error',\n failed: 'bg-status-error',\n};\nfunction statusDotClass(status: string): string {\n return STATUS_DOT[status] ?? 'bg-text-tertiary';\n}\n\n// ── Event colors ────────────────────────────────────────────────────────────\n\n\n// ── Live Feed ───────────────────────────────────────────────────────────────\n\ninterface FeedEvent { id: number; type: string; timestamp: string; label: string; data: Record<string, unknown>; }\nlet feedCounter = 0;\n\nfunction useLiveFeed(maxItems = 5) {\n const [events, setEvents] = useState<FeedEvent[]>([]);\n const [pulse, setPulse] = useState(false);\n const pulseTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const handler = useCallback((event: any) => {\n if (event.type?.startsWith('mesh.')) return;\n const label = event.activityName || event.workflowName || event.data?.domain || event.workflowId?.slice(0, 16) || '';\n setEvents((prev) => [{ id: ++feedCounter, type: event.type, timestamp: event.timestamp, label, data: event }, ...prev].slice(0, maxItems));\n setPulse(true);\n if (pulseTimer.current) clearTimeout(pulseTimer.current);\n pulseTimer.current = setTimeout(() => setPulse(false), 2000);\n }, [maxItems]);\n\n useEventSubscription(`${NATS_SUBJECT_PREFIX}.>`, handler);\n return { events, pulse };\n}\n\n// ── Section header ──────────────────────────────────────────────────────────\n\nfunction SectionHeader({ icon: Icon, color, docsHash, children, actions }: { icon: React.ElementType; color?: string; docsHash?: string; children: React.ReactNode; actions?: React.ReactNode }) {\n return (\n <div className=\"flex items-center justify-between mb-4 pb-2 border-b border-surface-border\">\n <div className=\"flex items-center gap-2\">\n <Icon className={`w-4.5 h-4.5 ${color || 'text-accent/60'}`} strokeWidth={1.5} />\n <h2 className=\"text-sm font-semibold uppercase tracking-widest text-accent/80\">{children}</h2>\n </div>\n <div className=\"flex items-center gap-2\">\n {docsHash && (\n <button onClick={() => { window.location.hash = docsHash; }} className=\"text-text-quaternary hover:text-accent transition-colors\" title=\"Docs\">\n <BookOpen className=\"w-2.5 h-2.5\" strokeWidth={1.5} />\n </button>\n )}\n {actions}\n </div>\n </div>\n );\n}\n\nfunction EmptyPanel({ icon: Icon, text }: { icon: React.ElementType; text: string }) {\n return (\n <div className=\"flex flex-col items-center justify-center py-10 text-center\">\n <Icon className=\"w-6 h-6 text-text-quaternary/50 mb-2\" strokeWidth={1} />\n <p className=\"text-xs text-text-quaternary\">{text}</p>\n </div>\n );\n}\n\n/** Middle-ellipsis: keep first N and last N chars with ... in between */\nfunction midEllipsis(s: string, maxLen = 37): string {\n if (!s || s.length <= maxLen) return s;\n const keep = Math.floor((maxLen - 3) / 2);\n return `${s.slice(0, keep)}...${s.slice(-keep)}`;\n}\n\n/** Consistent row for all execution lists in row 1 */\nfunction ExecutionRow({ dot, pill, id, date, onClick }: {\n dot: string;\n pill: React.ReactNode;\n id: string;\n date: string;\n onClick: () => void;\n}) {\n return (\n <button onClick={onClick} className=\"w-full text-left hover:bg-surface-hover/50 rounded-md px-1 py-1.5 transition-colors\">\n <div className=\"flex items-center gap-2 mb-0.5\">\n <span className={`w-1.5 h-1.5 rounded-full shrink-0 ${dot}`} />\n <span className=\"text-[12px] text-text-primary font-mono truncate max-w-[60%]\">{midEllipsis(id)}</span>\n <span className=\"text-[10px] text-text-quaternary shrink-0 ml-auto whitespace-nowrap\"><DateValue date={date} /></span>\n </div>\n <div className=\"pl-3.5 flex items-center gap-1 overflow-hidden\">{pill}</div>\n </button>\n );\n}\n\nfunction NavIcon({ to, icon: Icon, title }: { to: string; icon: React.ElementType; title: string }) {\n const navigate = useNavigate();\n return (\n <button\n onClick={() => navigate(to)}\n className=\"text-text-quaternary hover:text-accent transition-colors\"\n title={title}\n >\n <Icon className=\"w-2.5 h-2.5\" strokeWidth={1.5} />\n </button>\n );\n}\n\n// ── Namespace Picker ────────────────────────────────────────────────────────\n\nfunction AppPicker({ appIds, selected, onSelect }: {\n appIds: string[];\n selected: string;\n onSelect: (id: string) => void;\n}) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) return;\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [open]);\n\n if (appIds.length <= 1) return null;\n\n return (\n <div className=\"relative mb-3 -mt-2\" ref={ref}>\n <button\n onClick={() => setOpen((v) => !v)}\n className=\"flex items-center gap-1 px-2 py-0.5 text-[10px] rounded bg-accent/10 text-accent hover:bg-accent/20 transition-colors\"\n >\n {selected}\n <svg className={`w-2.5 h-2.5 transition-transform ${open ? 'rotate-180' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n {open && (\n <div className=\"absolute top-full left-0 mt-1 bg-surface-raised border border-surface-border rounded-md shadow-lg z-30 py-1 min-w-[120px]\">\n {appIds.map((id) => (\n <button\n key={id}\n onClick={() => { onSelect(id); setOpen(false); }}\n className={`w-full text-left px-3 py-1.5 text-[11px] transition-colors ${\n selected === id ? 'text-accent bg-accent/5' : 'text-text-secondary hover:bg-surface-hover'\n }`}\n >\n {id}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n\n// ── Event stream row (expandable) ───────────────────────────────────────────\n\nfunction EventStreamRow({ event }: { event: FeedEvent }) {\n const [expanded, setExpanded] = useState(false);\n return (\n <div>\n <button onClick={() => setExpanded(!expanded)} className=\"w-full text-left px-1 py-2 hover:bg-surface-hover/50 rounded-md transition-colors flex items-center gap-2\">\n <ChevronDown className={`w-2.5 h-2.5 text-text-quaternary shrink-0 transition-transform ${expanded ? 'rotate-0' : '-rotate-90'}`} />\n <EventTopicPill topic={event.type} />\n <span className=\"text-[11px] text-text-secondary font-mono truncate flex-1\">{event.label || '—'}</span>\n <span className=\"text-[10px] text-text-quaternary shrink-0\"><DateValue date={event.timestamp} format=\"time\" /></span>\n </button>\n {expanded && (\n <div className=\"pl-5 pb-2\">\n <JsonViewer data={event.data} defaultCollapsed={false} />\n </div>\n )}\n </div>\n );\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function HomePage() {\n const navigate = useNavigate();\n const { user } = useAuth();\n const [searchParams, setSearchParams] = useSearchParams();\n const pipelineNs = searchParams.get('pipelinenamespace') || 'longtail';\n const durableNs = searchParams.get('durablenamespace') || 'durable';\n const setNs = useCallback((key: string, ns: string) => {\n setSearchParams((prev) => {\n const next = new URLSearchParams(prev);\n next.set(key, ns);\n return next;\n }, { replace: false });\n }, [setSearchParams]);\n useEscalationStatsEvents();\n useWorkflowListEvents();\n useProcessListEvents();\n\n const procQ = useProcesses({ limit: 5 });\n const jobsQ = useJobs({ limit: 5, sort_by: 'updated_at', order: 'desc', namespace: durableNs });\n const { data: cpData } = useControlPlaneApps();\n const allAppIds = (cpData?.apps ?? []).map((a: any) => a.appId);\n const durableAppIds = allAppIds;\n const pipelineAppIds = allAppIds;\n const mcpQ = useMcpRuns({ limit: 5, app_id: pipelineNs, sort_by: 'updated_at', order: 'desc' });\n const allEscQ = useEscalations({ status: 'pending', limit: 5, sort_by: 'updated_at', order: 'desc' });\n const myEscQ = useEscalations({ assigned_to: user?.userId, status: 'pending', limit: 5, sort_by: 'updated_at', order: 'desc' });\n const { events: liveEvents, pulse } = useLiveFeed();\n\n const processes = procQ.data?.processes ?? [];\n const jobs = jobsQ.data?.jobs ?? [];\n const mcpRuns = (mcpQ.data as any)?.jobs ?? [];\n const allEscalations = allEscQ.data?.escalations ?? [];\n const myEscalations = myEscQ.data?.escalations ?? [];\n\n return (\n <div>\n <h1 className=\"text-3xl font-light text-text-primary mb-10\">Recent Activity</h1>\n\n {/* ── Row 1: Processes | Durable Executions | Pipeline Executions ──── */}\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-14\">\n\n {/* Col 1: Processes */}\n <div>\n <SectionHeader icon={Layers} color=\"text-emerald-400\" docsHash=\"#docs:dashboard.md:processes-overview\" actions={\n <div className=\"flex items-center gap-2\">\n <ListToolbar onRefresh={() => procQ.refetch()} isFetching={procQ.isFetching} apiPath=\"/tasks/processes?limit=5\" />\n <NavIcon to=\"/processes/all\" icon={ExternalLink} title=\"All processes\" />\n </div>\n }>\n Certified Processes\n </SectionHeader>\n <div className=\"mb-3 -mt-2\">\n <span className=\"px-2 py-0.5 text-[10px] rounded text-text-quaternary uppercase tracking-widest\">all namespaces</span>\n </div>\n {processes.length === 0 ? (\n <EmptyPanel icon={Layers} text=\"No recent processes\" />\n ) : (\n <div className=\"space-y-1\">\n {processes.map((p: any) => (\n <ExecutionRow\n key={p.origin_id}\n dot={(p.task_count ?? 0) > 0 && (p.completed ?? 0) >= (p.task_count ?? 0) ? 'bg-status-success' : (p.escalated ?? 0) > 0 ? 'border border-status-error' : 'bg-status-active'}\n pill={<>{(p.workflow_types ?? [p.workflow_type]).filter(Boolean).map((wt: string) => <WorkflowPill key={wt} type={wt} size=\"xs\" />)}</>}\n id={p.origin_id}\n date={p.last_activity ?? p.started_at}\n onClick={() => navigate(`/processes/detail/${p.origin_id}`)}\n />\n ))}\n </div>\n )}\n </div>\n\n {/* Col 2: Durable Executions */}\n <div>\n <SectionHeader icon={ListChecks} color=\"text-blue-400\" docsHash=\"#docs:dashboard.md:durable-executions\" actions={\n <div className=\"flex items-center gap-2\">\n <ListToolbar onRefresh={() => jobsQ.refetch()} isFetching={jobsQ.isFetching} apiPath={`/workflow-states/jobs?namespace=${durableNs}&limit=5`} />\n <NavIcon to=\"/workflows/executions\" icon={ExternalLink} title=\"All durable executions\" />\n </div>\n }>\n Durable Executions\n </SectionHeader>\n <AppPicker appIds={durableAppIds} selected={durableNs} onSelect={(ns) => setNs('durablenamespace', ns)} />\n {jobs.length === 0 ? (\n <EmptyPanel icon={ListChecks} text=\"No recent executions\" />\n ) : (\n <div className=\"space-y-1\">\n {jobs.map((job: any) => (\n <ExecutionRow\n key={job.workflow_id}\n dot={statusDotClass(job.status)}\n pill={<WorkflowPill type={job.entity || job.type || 'workflow'} size=\"xs\" />}\n id={job.workflow_id}\n date={job.updated_at ?? job.created_at}\n onClick={() => navigate(`/workflows/executions/${job.workflow_id}`)}\n />\n ))}\n </div>\n )}\n </div>\n\n {/* Col 3: Pipeline Executions */}\n <div>\n <SectionHeader icon={Wand2} color=\"text-violet-400\" docsHash=\"#docs:dashboard.md:mcp-pipeline-tools\" actions={\n <div className=\"flex items-center gap-2\">\n <ListToolbar onRefresh={() => mcpQ.refetch()} isFetching={mcpQ.isFetching} apiPath={`/mcp-runs?app_id=${pipelineNs}&limit=5`} />\n <NavIcon to=\"/mcp/executions\" icon={ExternalLink} title=\"All pipeline executions\" />\n </div>\n }>\n Pipeline Executions\n </SectionHeader>\n <AppPicker appIds={pipelineAppIds} selected={pipelineNs} onSelect={(ns) => setNs('pipelinenamespace', ns)} />\n {mcpRuns.length === 0 ? (\n <EmptyPanel icon={Wand2} text=\"No recent pipeline runs\" />\n ) : (\n <div className=\"space-y-1\">\n {mcpRuns.map((run: any) => (\n <ExecutionRow\n key={run.workflow_id}\n dot={statusDotClass(run.status)}\n pill={<WorkflowPill type={run.entity || run.workflow_name || 'pipeline'} variant=\"pipeline\" size=\"xs\" />}\n id={run.workflow_id}\n date={run.updated_at ?? run.created_at}\n onClick={() => navigate(`/mcp/executions/${run.workflow_id}?namespace=${pipelineNs}`)}\n />\n ))}\n </div>\n )}\n </div>\n </div>\n\n {/* ── Row 2: All Escalations | My Escalations | Event Stream ──────── */}\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-x-14 mt-14\">\n\n {/* Col 1: All Escalations */}\n <div>\n <SectionHeader icon={AlertCircle} color=\"text-amber-400\" docsHash=\"#docs:dashboard.md:all-escalations\" actions={\n <div className=\"flex items-center gap-2\">\n <ListToolbar onRefresh={() => allEscQ.refetch()} isFetching={allEscQ.isFetching} apiPath=\"/escalations?status=pending&limit=5&sort_by=priority&order=asc\" />\n <NavIcon to=\"/escalations/available\" icon={ExternalLink} title=\"All available escalations\" />\n </div>\n }>\n All Escalations\n </SectionHeader>\n {allEscalations.length === 0 ? (\n <EmptyPanel icon={AlertCircle} text=\"No pending escalations\" />\n ) : (\n <div className=\"space-y-1\">\n {allEscalations.map((esc: any) => (\n <button\n key={esc.id}\n onClick={() => navigate(`/escalations/detail/${esc.id}`)}\n className=\"w-full text-left hover:bg-surface-hover/50 rounded-md px-1 py-1.5 transition-colors\"\n >\n <div className=\"flex items-center gap-2 mb-0.5\">\n <span className=\"text-[9px] text-text-quaternary font-medium shrink-0\">P{esc.priority ?? 2}</span>\n <span className=\"text-[12px] text-text-primary truncate flex-1 max-w-[65%]\">{esc.description || esc.subtype || esc.type}</span>\n <span className=\"text-[10px] text-text-quaternary shrink-0 ml-auto\"><DateValue date={esc.updated_at ?? esc.created_at} /></span>\n </div>\n <div className=\"flex items-center gap-2 pl-5\">\n <WorkflowPill type={esc.type || 'unknown'} size=\"xs\" />\n <span className=\"flex-1\" />\n <RolePill role={esc.role} />\n </div>\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Col 2: My Escalations */}\n <div>\n <SectionHeader icon={Inbox} color=\"text-orange-400\" docsHash=\"#docs:dashboard.md:escalations-overview\" actions={\n <div className=\"flex items-center gap-2\">\n <ListToolbar onRefresh={() => myEscQ.refetch()} isFetching={myEscQ.isFetching} apiPath={`/escalations?assigned_to=${user?.userId ?? ''}&status=pending&limit=5`} />\n <NavIcon to=\"/escalations/queue\" icon={ExternalLink} title=\"My escalation queue\" />\n </div>\n }>\n My Escalations\n </SectionHeader>\n {myEscalations.length === 0 ? (\n <EmptyPanel icon={Inbox} text=\"No assigned escalations\" />\n ) : (\n <div className=\"space-y-1\">\n {myEscalations.map((esc: any) => (\n <button\n key={esc.id}\n onClick={() => navigate(`/escalations/detail/${esc.id}`)}\n className=\"w-full text-left hover:bg-surface-hover/50 rounded-md px-1 py-1.5 transition-colors\"\n >\n <div className=\"flex items-center gap-2 mb-0.5\">\n <span className=\"text-[9px] text-text-quaternary font-medium shrink-0\">P{esc.priority ?? 2}</span>\n <span className=\"text-[12px] text-text-primary truncate flex-1 max-w-[65%]\">{esc.description || esc.subtype || esc.type}</span>\n <span className=\"text-[10px] text-text-quaternary shrink-0 ml-auto\"><DateValue date={esc.updated_at ?? esc.created_at} /></span>\n </div>\n <div className=\"flex items-center gap-2 pl-5\">\n <WorkflowPill type={esc.type || 'unknown'} size=\"xs\" />\n <span className=\"flex-1\" />\n <RolePill role={esc.role} />\n </div>\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Col 3: Event Stream */}\n <div>\n <SectionHeader icon={Radio} color=\"text-emerald-400\"\n actions={\n <div className=\"flex items-center gap-2\">\n <span className={`w-1.5 h-1.5 rounded-full transition-colors duration-500 ${pulse ? 'bg-emerald-400' : 'bg-zinc-600'}`} />\n <button\n onClick={() => { const btn = document.querySelector('[title=\"Fullscreen\"]') as HTMLButtonElement; btn?.click(); }}\n className=\"text-text-quaternary hover:text-accent transition-colors\"\n title=\"View all events\"\n >\n <ExternalLink className=\"w-2.5 h-2.5\" strokeWidth={1.5} />\n </button>\n </div>\n }\n >\n Event Stream\n </SectionHeader>\n {liveEvents.length === 0 ? (\n <EmptyPanel icon={Radio} text=\"Events appear here in real time\" />\n ) : (\n <div className=\"divide-y divide-surface-border/20\">\n {liveEvents.map((ev) => (\n <EventStreamRow key={ev.id} event={ev} />\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["STATUS_DOT","statusDotClass","status","feedCounter","useLiveFeed","maxItems","events","setEvents","useState","pulse","setPulse","pulseTimer","useRef","handler","useCallback","event","_a","label","_b","_c","prev","useEventSubscription","NATS_SUBJECT_PREFIX","SectionHeader","Icon","color","docsHash","children","actions","jsxDEV","BookOpen","EmptyPanel","text","midEllipsis","s","maxLen","keep","ExecutionRow","dot","pill","id","date","onClick","DateValue","NavIcon","to","title","navigate","useNavigate","AppPicker","appIds","selected","onSelect","open","setOpen","ref","useEffect","e","v","EventStreamRow","expanded","setExpanded","ChevronDown","EventTopicPill","JsonViewer","HomePage","user","useAuth","searchParams","setSearchParams","useSearchParams","pipelineNs","durableNs","setNs","key","ns","next","useEscalationStatsEvents","useWorkflowListEvents","useProcessListEvents","procQ","useProcesses","jobsQ","useJobs","cpData","useControlPlaneApps","allAppIds","a","durableAppIds","pipelineAppIds","mcpQ","useMcpRuns","allEscQ","useEscalations","myEscQ","liveEvents","processes","jobs","mcpRuns","allEscalations","_d","myEscalations","_e","Layers","ListToolbar","ExternalLink","p","wt","WorkflowPill","ListChecks","job","Wand2","run","AlertCircle","esc","RolePill","Inbox","Radio","btn","ev"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as a}from"./index-CCOSf1PY.js";import{a as u}from"./vendor-query-DLp59M9_.js";import{a as _,u as k}from"./mcp-runs-DtTTsuPH.js";import{a as C}from"./yaml-workflows-Ch53yD43.js";import{u as $}from"./namespaces-iRejH3_A.js";import{u as w}from"./useFilterParams-CGRYFw_A.js";import{D as T}from"./DataTable-J5R6mepB.js";import{W as F}from"./WorkflowPill-7vt2F6wR.js";import{T as x}from"./TimestampCell-B4Pc6f3A.js";import{E as z}from"./ElapsedCell-ChyMzl9n.js";import{P as A}from"./PageHeader-COcgWWf-.js";import{F as L,b as N}from"./FilterBar-Bdssa-Xn.js";import{S as U}from"./StickyPagination-CGk8VAKt.js";import{L as I}from"./ListToolbar-jy8NL6ll.js";import{R as O,a as W}from"./RowActions-Bs4PF-Gd.js";import{q}from"./vendor-icons-CBOM6Es0.js";import{c as B}from"./vendor-react-Co3Y8ikm.js";import"./EmptyState-BXGvOADa.js";const H={running:"in_progress",completed:"completed",failed:"failed"},G={in_progress:"bg-status-active",completed:"bg-status-success",failed:"bg-status-error"},Y={running:"text-status-active",completed:"text-status-success",failed:"text-status-error"};function J(f,t){return[{key:"workflow_id",label:"Run ID / Tool",render:e=>{const m=G[H[e.status]??e.status]??"bg-status-pending",i=e.status==="running"?" animate-pulse":"";return a.jsxDEV("div",{className:"flex items-start gap-2 min-w-0",children:[a.jsxDEV("span",{className:`w-1.5 h-1.5 shrink-0 rounded-full mt-1.5 ${m}${i}`,title:e.status},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:50,columnNumber:13},this),a.jsxDEV("div",{className:"min-w-0",children:[a.jsxDEV("span",{className:"font-mono text-xs text-text-primary truncate block",children:e.workflow_id},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:52,columnNumber:15},this),a.jsxDEV("div",{className:"mt-0.5",children:e.entity?a.jsxDEV(F,{type:e.entity,variant:"pipeline",size:"xs"},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:57,columnNumber:21},this):a.jsxDEV("span",{className:"text-[10px] text-text-tertiary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:58,columnNumber:21},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:55,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:51,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:49,columnNumber:11},this)}},{key:"created_at",label:"Created",sortable:!0,render:e=>a.jsxDEV(x,{date:e.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:69,columnNumber:24},this),className:"w-40"},{key:"updated_at",label:"Updated",sortable:!0,render:e=>a.jsxDEV(x,{date:e.updated_at},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:76,columnNumber:24},this),className:"w-40"},{key:"duration",label:"Duration",render:e=>a.jsxDEV(z,{startDate:e.created_at,endDate:e.status==="running"?null:e.updated_at,isLive:e.status==="running"},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:83,columnNumber:9},this),className:"w-28"},{key:"actions",label:"",render:e=>a.jsxDEV(O,{children:[a.jsxDEV(W,{icon:q,title:`Filter by ${e.entity}`,onClick:()=>f(e.entity)},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:96,columnNumber:11},this),a.jsxDEV("button",{onClick:m=>{m.stopPropagation(),t(e.status)},className:"opacity-0 group-hover/row:opacity-100 transition-opacity",title:`Filter by ${e.status}`,children:a.jsxDEV("svg",{className:`w-[18px] h-[18px] ${Y[e.status]??"text-text-tertiary"} hover:opacity-70`,viewBox:"0 0 24 24",fill:"currentColor",children:a.jsxDEV("circle",{cx:"12",cy:"12",r:"6"},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:107,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:106,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:101,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:95,columnNumber:9},this),className:"w-24 text-right"}]}function be(){const f=B(),{filters:t,setFilter:e,setFilters:m,pagination:i,sort:g,setSort:v}=w({filters:{search:"",entity:"",status:"",namespace:""}}),[d,y]=u.useState(t.search);u.useEffect(()=>{if(d===t.search)return;const s=setTimeout(()=>e("search",d),300);return()=>clearTimeout(s)},[d,e,t.search]);const{data:o}=C(),{data:l}=$(),b=u.useMemo(()=>{const s=new Set((o==null?void 0:o.app_ids)??[]);for(const n of(l==null?void 0:l.namespaces)??[])s.add(n.name);return[...s].sort()},[o==null?void 0:o.app_ids,l==null?void 0:l.namespaces]),P=b.includes("longtail")?"longtail":b[0]??"",r=t.namespace||P,{data:p}=_(r),{data:c,isLoading:R,refetch:M,isFetching:E}=k({app_id:r,limit:i.pageSize,offset:i.offset,entity:t.entity||void 0,search:t.search||void 0,status:t.status||void 0,sort_by:g.sort_by||void 0,order:g.order||void 0}),h=(c==null?void 0:c.total)??0,j=(c==null?void 0:c.jobs)??[],V=J(s=>e("entity",s),s=>e("status",s)),S=u.useMemo(()=>{const s=new Set(b);return r&&s.add(r),[...s].sort().map(n=>({value:n,label:n}))},[b,r]),D=u.useMemo(()=>{const s=new Set((p==null?void 0:p.entities)??[]);return t.entity&&!s.has(t.entity)&&s.add(t.entity),[...s].sort().map(n=>({value:n,label:n}))},[p==null?void 0:p.entities,t.entity]);return a.jsxDEV("div",{children:[a.jsxDEV(A,{title:"Pipeline Executions",docsHash:"#docs:dashboard.md:pipeline-executions"},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:182,columnNumber:7},this),a.jsxDEV(L,{actions:a.jsxDEV(I,{onRefresh:()=>M(),isFetching:E,apiPath:`/mcp-runs?app_id=${r||"longtail"}&limit=${i.pageSize}&offset=${i.offset}${t.entity?`&entity=${t.entity}`:""}${t.status?`&status=${t.status}`:""}${t.search?`&search=${t.search}`:""}`},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:185,columnNumber:9},this),children:[a.jsxDEV(N,{label:"Namespace",value:r,onChange:s=>{m({namespace:s,entity:""})},options:S,required:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:191,columnNumber:9},this),a.jsxDEV("input",{type:"text",placeholder:"Search run ID...",value:d,onChange:s=>y(s.target.value),className:"input text-[11px] py-1 px-2 w-56"},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:200,columnNumber:9},this),a.jsxDEV(N,{label:"Tool",value:t.entity,onChange:s=>e("entity",s),options:D},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:207,columnNumber:9},this),a.jsxDEV(N,{label:"Status",value:t.status,onChange:s=>e("status",s),options:[{value:"running",label:"Running"},{value:"completed",label:"Completed"},{value:"failed",label:"Failed"}]},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:213,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:184,columnNumber:7},this),a.jsxDEV(T,{columns:V,data:j,keyFn:s=>s.workflow_id,onRowClick:s=>f(`/mcp/executions/${encodeURIComponent(s.workflow_id)}?namespace=${r}`),isLoading:R,emptyMessage:"No pipeline executions found",sort:g,onSort:v},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:225,columnNumber:7},this),a.jsxDEV(U,{page:i.page,totalPages:i.totalPages(h),onPageChange:i.setPage,total:h,pageSize:i.pageSize,onPageSizeChange:i.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:236,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/mcp/McpRunsPage.tsx",lineNumber:181,columnNumber:5},this)}export{be as McpRunsPage};
|
|
2
|
-
//# sourceMappingURL=McpRunsPage-DT-armx5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"McpRunsPage-DT-armx5.js","sources":["../../src/pages/mcp/McpRunsPage.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Filter } from 'lucide-react';\nimport { useMcpRuns, useMcpEntities } from '../../api/mcp-runs';\nimport { useYamlWorkflowAppIds } from '../../api/yaml-workflows';\nimport { useNamespaces } from '../../api/namespaces';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { DataTable, type Column } from '../../components/common/data/DataTable';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\nimport { TimestampCell } from '../../components/common/display/TimestampCell';\nimport { ElapsedCell } from '../../components/common/display/ElapsedCell';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { FilterBar, FilterSelect } from '../../components/common/data/FilterBar';\nimport { StickyPagination } from '../../components/common/data/StickyPagination';\nimport { ListToolbar } from '../../components/common/data/ListToolbar';\nimport { RowAction, RowActionGroup } from '../../components/common/layout/RowActions';\nimport type { LTJob } from '../../api/types';\n\nconst statusMap: Record<string, string> = {\n running: 'in_progress',\n completed: 'completed',\n failed: 'failed',\n};\n\nconst STATUS_DOT: Record<string, string> = {\n in_progress: 'bg-status-active',\n completed: 'bg-status-success',\n failed: 'bg-status-error',\n};\n\nconst STATUS_COLORS: Record<string, string> = {\n running: 'text-status-active',\n completed: 'text-status-success',\n failed: 'text-status-error',\n};\n\nfunction buildColumns(\n onFilterEntity: (entity: string) => void,\n onFilterStatus: (status: string) => void,\n): Column<LTJob>[] {\n return [\n {\n key: 'workflow_id',\n label: 'Run ID / Tool',\n render: (row) => {\n const dotClass = STATUS_DOT[statusMap[row.status] ?? row.status] ?? 'bg-status-pending';\n const pulseClass = row.status === 'running' ? ' animate-pulse' : '';\n return (\n <div className=\"flex items-start gap-2 min-w-0\">\n <span className={`w-1.5 h-1.5 shrink-0 rounded-full mt-1.5 ${dotClass}${pulseClass}`} title={row.status} />\n <div className=\"min-w-0\">\n <span className=\"font-mono text-xs text-text-primary truncate block\">\n {row.workflow_id}\n </span>\n <div className=\"mt-0.5\">\n {row.entity\n ? <WorkflowPill type={row.entity} variant=\"pipeline\" size=\"xs\" />\n : <span className=\"text-[10px] text-text-tertiary\">—</span>}\n </div>\n </div>\n </div>\n );\n },\n },\n {\n key: 'created_at',\n label: 'Created',\n sortable: true,\n render: (row) => <TimestampCell date={row.created_at} />,\n className: 'w-40',\n },\n {\n key: 'updated_at',\n label: 'Updated',\n sortable: true,\n render: (row) => <TimestampCell date={row.updated_at} />,\n className: 'w-40',\n },\n {\n key: 'duration',\n label: 'Duration',\n render: (row) => (\n <ElapsedCell\n startDate={row.created_at}\n endDate={row.status === 'running' ? null : row.updated_at}\n isLive={row.status === 'running'}\n />\n ),\n className: 'w-28',\n },\n {\n key: 'actions',\n label: '',\n render: (row) => (\n <RowActionGroup>\n <RowAction\n icon={Filter}\n title={`Filter by ${row.entity}`}\n onClick={() => onFilterEntity(row.entity)}\n />\n <button\n onClick={(e) => { e.stopPropagation(); onFilterStatus(row.status); }}\n className=\"opacity-0 group-hover/row:opacity-100 transition-opacity\"\n title={`Filter by ${row.status}`}\n >\n <svg className={`w-[18px] h-[18px] ${STATUS_COLORS[row.status] ?? 'text-text-tertiary'} hover:opacity-70`} viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <circle cx=\"12\" cy=\"12\" r=\"6\" />\n </svg>\n </button>\n </RowActionGroup>\n ),\n className: 'w-24 text-right',\n },\n ];\n}\n\nexport function McpRunsPage() {\n const navigate = useNavigate();\n const { filters, setFilter, setFilters, pagination, sort, setSort } = useFilterParams({\n filters: { search: '', entity: '', status: '', namespace: '' },\n });\n\n const [searchInput, setSearchInput] = useState(filters.search);\n\n useEffect(() => {\n if (searchInput === filters.search) return;\n const timer = setTimeout(() => setFilter('search', searchInput), 300);\n return () => clearTimeout(timer);\n }, [searchInput, setFilter, filters.search]);\n\n const { data: appIdData } = useYamlWorkflowAppIds();\n const { data: nsData } = useNamespaces();\n\n const allNamespaceNames = useMemo(() => {\n const set = new Set(appIdData?.app_ids ?? []);\n for (const ns of nsData?.namespaces ?? []) {\n set.add(ns.name);\n }\n return [...set].sort();\n }, [appIdData?.app_ids, nsData?.namespaces]);\n\n // Default: URL param > 'longtail' (if exists) > first in list\n const defaultNamespace = allNamespaceNames.includes('longtail')\n ? 'longtail'\n : allNamespaceNames[0] ?? '';\n const activeNamespace = filters.namespace || defaultNamespace;\n const { data: entitiesData } = useMcpEntities(activeNamespace);\n\n const { data: runsData, isLoading, refetch, isFetching } = useMcpRuns({\n app_id: activeNamespace,\n limit: pagination.pageSize,\n offset: pagination.offset,\n entity: filters.entity || undefined,\n search: filters.search || undefined,\n status: filters.status || undefined,\n sort_by: sort.sort_by || undefined,\n order: sort.order || undefined,\n });\n\n const total = runsData?.total ?? 0;\n const jobs = runsData?.jobs ?? [];\n\n const columns = buildColumns(\n (entity) => setFilter('entity', entity),\n (status) => setFilter('status', status),\n );\n\n const namespaces = useMemo(() => {\n const set = new Set(allNamespaceNames);\n if (activeNamespace) set.add(activeNamespace);\n return [...set].sort().map((id) => ({ value: id, label: id }));\n }, [allNamespaceNames, activeNamespace]);\n\n const entities = useMemo(() => {\n const known = new Set(entitiesData?.entities ?? []);\n if (filters.entity && !known.has(filters.entity)) known.add(filters.entity);\n return [...known].sort().map((e) => ({ value: e, label: e }));\n }, [entitiesData?.entities, filters.entity]);\n\n return (\n <div>\n <PageHeader title=\"Pipeline Executions\" docsHash=\"#docs:dashboard.md:pipeline-executions\" />\n\n <FilterBar actions={\n <ListToolbar\n onRefresh={() => refetch()}\n isFetching={isFetching}\n apiPath={`/mcp-runs?app_id=${activeNamespace || 'longtail'}&limit=${pagination.pageSize}&offset=${pagination.offset}${filters.entity ? `&entity=${filters.entity}` : ''}${filters.status ? `&status=${filters.status}` : ''}${filters.search ? `&search=${filters.search}` : ''}`}\n />\n }>\n <FilterSelect\n label=\"Namespace\"\n value={activeNamespace}\n onChange={(v) => {\n setFilters({ namespace: v, entity: '' });\n }}\n options={namespaces}\n required\n />\n <input\n type=\"text\"\n placeholder=\"Search run ID...\"\n value={searchInput}\n onChange={(e) => setSearchInput(e.target.value)}\n className=\"input text-[11px] py-1 px-2 w-56\"\n />\n <FilterSelect\n label=\"Tool\"\n value={filters.entity}\n onChange={(v) => setFilter('entity', v)}\n options={entities}\n />\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={[\n { value: 'running', label: 'Running' },\n { value: 'completed', label: 'Completed' },\n { value: 'failed', label: 'Failed' },\n ]}\n />\n </FilterBar>\n\n <DataTable\n columns={columns}\n data={jobs}\n keyFn={(row) => row.workflow_id}\n onRowClick={(row) => navigate(`/mcp/executions/${encodeURIComponent(row.workflow_id)}?namespace=${activeNamespace}`)}\n isLoading={isLoading}\n emptyMessage=\"No pipeline executions found\"\n sort={sort}\n onSort={setSort}\n />\n\n <StickyPagination\n page={pagination.page}\n totalPages={pagination.totalPages(total)}\n onPageChange={pagination.setPage}\n total={total}\n pageSize={pagination.pageSize}\n onPageSizeChange={pagination.setPageSize}\n />\n </div>\n );\n}\n"],"names":["statusMap","STATUS_DOT","STATUS_COLORS","buildColumns","onFilterEntity","onFilterStatus","row","dotClass","pulseClass","jsxDEV","WorkflowPill","TimestampCell","ElapsedCell","RowActionGroup","RowAction","Filter","e","McpRunsPage","navigate","useNavigate","filters","setFilter","setFilters","pagination","sort","setSort","useFilterParams","searchInput","setSearchInput","useState","useEffect","timer","appIdData","useYamlWorkflowAppIds","nsData","useNamespaces","allNamespaceNames","useMemo","set","ns","defaultNamespace","activeNamespace","entitiesData","useMcpEntities","runsData","isLoading","refetch","isFetching","useMcpRuns","total","jobs","columns","entity","status","namespaces","id","entities","known","PageHeader","FilterBar","ListToolbar","FilterSelect","v","DataTable","StickyPagination"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as v,s as D,p as E,r as O,j as s}from"./index-CCOSf1PY.js";import{f as S}from"./useEventHooks-VaJ52jMm.js";import{u as P}from"./roles-3Jm5KtKc.js";import{u as j}from"./useFilterParams-CGRYFw_A.js";import{D as $}from"./DataTable-J5R6mepB.js";import{P as C}from"./PageHeader-COcgWWf-.js";import{S as L}from"./StickyPagination-CGk8VAKt.js";import{R,a as V}from"./RowActions-Bs4PF-Gd.js";import{a as _,T as w,E as F}from"./escalation-columns-CoTmTpHp.js";import{L as T}from"./ListToolbar-jy8NL6ll.js";import{$ as k}from"./vendor-icons-CBOM6Es0.js";import{c as z}from"./vendor-react-Co3Y8ikm.js";import"./vendor-query-DLp59M9_.js";import"./EmptyState-BXGvOADa.js";import"./FilterBar-Bdssa-Xn.js";import"./PriorityBadge-BQCsYMpM.js";import"./RolePill-CHwys1f9.js";import"./WorkflowPill-7vt2F6wR.js";import"./TimestampCell-B4Pc6f3A.js";import"./escalation-_N5GfuIi.js";function te(){S();const d=z(),{user:p}=v(),{filters:e,setFilter:c,pagination:a,sort:t,setSort:u}=j({filters:{role:"",type:"",priority:""}}),b=D(),{data:l}=P(),{data:n}=E(),{data:r,isLoading:f,error:i,refetch:g,isFetching:h}=O({assigned_to:p==null?void 0:p.userId,status:"pending",role:e.role||void 0,type:e.type||void 0,priority:e.priority?parseInt(e.priority):void 0,limit:a.pageSize,offset:a.offset,sort_by:t.sort_by||void 0,order:t.sort_by?t.order:void 0}),N=((r==null?void 0:r.escalations)??[]).filter(o=>o.assigned_until&&new Date(o.assigned_until)>new Date),m=(r==null?void 0:r.total)??0,x={key:"actions",label:"",render:o=>s.jsxDEV(R,{children:s.jsxDEV(V,{icon:k,title:"Release escalation",onClick:()=>b.mutate(o.id),colorClass:"text-text-tertiary hover:text-status-warning"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:50,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:49,columnNumber:7},this),className:"w-16 text-right"},y=[w,...F,x];return s.jsxDEV("div",{children:[s.jsxDEV(C,{title:"My Escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:70,columnNumber:7},this),s.jsxDEV(_,{filters:e,setFilter:c,roles:(l==null?void 0:l.roles)??[],types:(n==null?void 0:n.types)??[],actions:s.jsxDEV(T,{onRefresh:()=>g(),isFetching:h,apiPath:`/escalations?status=claimed&limit=${a.pageSize}&offset=${a.offset}${e.role?`&role=${e.role}`:""}${e.type?`&type=${e.type}`:""}${e.priority?`&priority=${e.priority}`:""}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:72,columnNumber:7},this),i&&s.jsxDEV("div",{className:"mb-4 px-4 py-3 rounded-md bg-status-error/10 border border-status-error/20 text-xs text-status-error",children:i.message==="Session expired"?"Your session has expired. Please log in again.":`Failed to load escalations: ${i.message}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:87,columnNumber:9},this),s.jsxDEV($,{columns:y,data:N,keyFn:o=>o.id,onRowClick:o=>d(`/escalations/detail/${o.id}`,{state:{from:"/escalations/queue"}}),isLoading:f,emptyMessage:i?"Unable to load data":"No assigned escalations",sort:t,onSort:u},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:94,columnNumber:7},this),s.jsxDEV(L,{page:a.page,totalPages:a.totalPages(m),onPageChange:a.setPage,total:m,pageSize:a.pageSize,onPageSizeChange:a.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:105,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/OperatorDashboard.tsx",lineNumber:69,columnNumber:5},this)}export{te as OperatorDashboard};
|
|
2
|
-
//# sourceMappingURL=OperatorDashboard-e5N3_dVl.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as r}from"./index-CCOSf1PY.js";import{f as a}from"./vendor-icons-CBOM6Es0.js";const m=["Describe","Discover","Compile","Deploy","Test","Verify"];function c(t){return t?t.status==="completed"?"completed":t.status==="failed"?"failed":"in_progress":"pending"}function f(t){const e=t.match(/```json\s*([\s\S]*?)```/)||t.match(/\{[\s\S]*?\n\}/);if(!e)return null;try{return JSON.parse((e[1]??e[0]).trim())}catch{return null}}const l=new Set(["token","authorization","bearer_token","access_token","api_token"]);function d(t){if(!(t!=null&&t.properties))return{};const e={},o=sessionStorage.getItem("lt_token")||"";for(const[s,i]of Object.entries(t.properties)){const n=i;n.default!==void 0?e[s]=n.default:l.has(s.toLowerCase())&&n.type==="string"?e[s]=o:n.type==="string"?e[s]="":n.type==="number"||n.type==="integer"?e[s]=n.minimum??0:n.type==="boolean"?e[s]=!1:n.type==="object"?e[s]={}:n.type==="array"?e[s]=[]:e[s]=null}return e}function x({name:t,size:e="sm"}){const o=e==="md"?"px-2 py-0.5 text-[12px] gap-1.5":"px-1.5 py-px text-[11px] gap-1",s=e==="md"?"w-2.5 h-2.5":"w-2 h-2";return r.jsxDEV("span",{className:`inline-flex items-center ${o} font-mono text-text-secondary bg-surface-sunken/50 rounded-md`,children:[r.jsxDEV(a,{className:`${s} shrink-0 text-text-quaternary`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/ToolPill.tsx",lineNumber:20,columnNumber:7},this),t]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/ToolPill.tsx",lineNumber:19,columnNumber:5},this)}export{m as S,x as T,d as b,f as e,c as m};
|
|
2
|
-
//# sourceMappingURL=ToolPill-DdLN3JOT.js.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{j as e,c as b,J as V}from"./index-CCOSf1PY.js";import{a as i}from"./vendor-query-DLp59M9_.js";import{a as F,b as I,c as U}from"./topics-p8anbgi0.js";import{L as $}from"./ListToolbar-jy8NL6ll.js";import{R as o,B,D as L,m as z,aI as A,X as M,T as G,a as y}from"./vendor-icons-CBOM6Es0.js";import{e as H,c as K}from"./vendor-react-Co3Y8ikm.js";const X={task:"bg-blue-400/15 text-blue-400",workflow:"bg-accent/15 text-accent",escalation:"bg-amber-400/15 text-amber-400",activity:"bg-cyan-400/15 text-cyan-400",knowledge:"bg-violet-400/15 text-violet-400",agent:"bg-emerald-400/15 text-emerald-400",app:"bg-rose-400/15 text-rose-400",milestone:"bg-violet-400/15 text-violet-400"};function p({icon:r,color:m,children:c}){return e.jsxDEV("div",{className:"flex items-center gap-2 mb-3 pb-2 border-b border-surface-border",children:[e.jsxDEV(r,{className:`w-4 h-4 ${m}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:23,columnNumber:7},this),e.jsxDEV("h2",{className:"text-xs font-semibold uppercase tracking-widest text-accent/80",children:c},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:24,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:22,columnNumber:5},this)}function te(){var E,P,j;const{topic:r}=H(),m=r?decodeURIComponent(r):null,c=K(),{data:a,isLoading:w,refetch:N,isFetching:S}=F(m),h=I(),k=U(),[t,n]=i.useState(!1),[x,g]=i.useState(""),[f,D]=i.useState(""),[d,v]=i.useState(""),[T,l]=i.useState("");if(w)return e.jsxDEV("div",{className:"animate-pulse space-y-4",children:[e.jsxDEV("div",{className:"h-8 bg-surface-sunken rounded w-48"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:44,columnNumber:53},this),e.jsxDEV("div",{className:"h-40 bg-surface-sunken rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:44,columnNumber:107},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:44,columnNumber:12},this);if(!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[e.jsxDEV(o,{className:"w-12 h-12 text-text-quaternary mb-4",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:50,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium text-text-primary mb-2",children:"Topic not found"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:51,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:49,columnNumber:7},this);const C=a.source==="system",_=X[a.category]??"bg-zinc-400/15 text-zinc-400",q=()=>{g(a.description??""),D((a.tags??[]).join(", ")),v(a.payload_schema?JSON.stringify(a.payload_schema,null,2):""),l(""),n(!0)},O=()=>n(!1),R=()=>{const s=f.split(",").map(J=>J.trim()).filter(Boolean);let u;if(d.trim())try{u=JSON.parse(d),l("")}catch{l("Invalid JSON");return}h.mutate({topic:a.topic,description:x,tags:s,...u!==void 0?{payload_schema:u}:{}},{onSuccess:()=>{n(!1),N()}})},W=()=>{confirm(`Delete topic "${a.topic}"?
|
|
2
|
-
|
|
3
|
-
This removes it from the catalog. Active subscriptions are not affected.`)&&k.mutate(a.topic,{onSuccess:()=>c("/topics")})};return e.jsxDEV("div",{className:"max-w-3xl",children:[e.jsxDEV("div",{className:"flex items-start justify-between mb-6",children:[e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-center gap-3 mb-2",children:[e.jsxDEV(o,{className:"w-5 h-5 text-accent",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:99,columnNumber:13},this),e.jsxDEV("h1",{className:"text-lg font-mono font-medium text-text-primary",children:a.topic},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:100,columnNumber:13},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:topics.md"},className:"text-text-quaternary hover:text-accent transition-colors",title:"Topic docs",children:e.jsxDEV(B,{className:"w-4 h-4",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:102,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:101,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:98,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-medium ${_}`,children:a.category},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:106,columnNumber:13},this),e.jsxDEV("span",{className:"text-[10px] font-mono text-text-quaternary",children:["source: ",a.source]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:107,columnNumber:13},this),a.last_seen_at&&e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:["last seen ",e.jsxDEV(b,{date:a.last_seen_at},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:109,columnNumber:76},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:109,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:105,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:97,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV($,{onRefresh:()=>N(),isFetching:S,apiPath:`/topics/by-name/${encodeURIComponent(a.topic)}`},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:115,columnNumber:11},this),!t&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:q,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(L,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:123,columnNumber:17},this)," Edit"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:122,columnNumber:15},this),!C&&e.jsxDEV("button",{onClick:W,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-red-400/60 hover:text-red-400 hover:bg-red-600/10 transition-colors",children:[e.jsxDEV(z,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:127,columnNumber:19},this)," Delete"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:126,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:121,columnNumber:13},this),t&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:R,disabled:h.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(A,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:135,columnNumber:17},this)," Save"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:134,columnNumber:15},this),e.jsxDEV("button",{onClick:O,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-text-tertiary hover:text-text-primary hover:bg-surface-hover transition-colors",children:[e.jsxDEV(M,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:138,columnNumber:17},this)," Cancel"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:137,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:133,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:114,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:96,columnNumber:7},this),e.jsxDEV("div",{className:"mb-8",children:t?e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"section-header",children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:149,columnNumber:13},this),e.jsxDEV("textarea",{value:x,onChange:s=>g(s.target.value),rows:3,className:"input resize-none",placeholder:"What this topic represents"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:150,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:148,columnNumber:11},this):a.description?e.jsxDEV("p",{className:"text-sm text-text-secondary leading-relaxed",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:160,columnNumber:15},this):e.jsxDEV("p",{className:"text-sm text-text-quaternary italic",children:"No description"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:161,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:146,columnNumber:7},this),e.jsxDEV("div",{className:"mb-8",children:t?e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"section-header",children:"Tags"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:169,columnNumber:13},this),e.jsxDEV("input",{type:"text",value:f,onChange:s=>D(s.target.value),placeholder:"lifecycle, core, error",className:"input font-mono"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:170,columnNumber:13},this),e.jsxDEV("p",{className:"hint",children:"Comma-separated. Used for filtering in the catalog."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:177,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:168,columnNumber:11},this):((E=a.tags)==null?void 0:E.length)>0?e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(G,{className:"w-3 h-3 text-text-quaternary",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:181,columnNumber:13},this),a.tags.map(s=>e.jsxDEV("span",{className:"inline-flex items-center px-2 py-0.5 rounded text-[10px] font-mono text-text-tertiary bg-surface-sunken",children:s},s,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:183,columnNumber:15},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:180,columnNumber:11},this):null},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:166,columnNumber:7},this),e.jsxDEV("div",{className:"mb-8",children:t?e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"section-header",children:"Payload Schema"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:195,columnNumber:13},this),e.jsxDEV("textarea",{value:d,onChange:s=>{v(s.target.value),l("")},rows:12,className:"input-json w-full",placeholder:`{
|
|
4
|
-
"type": "object",
|
|
5
|
-
"properties": {
|
|
6
|
-
"orderId": { "type": "string" }
|
|
7
|
-
}
|
|
8
|
-
}`},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:196,columnNumber:13},this),T&&e.jsxDEV("p",{className:"text-[10px] text-red-400 mt-1",children:T},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:203,columnNumber:29},this),e.jsxDEV("p",{className:"hint",children:"JSON Schema describing the event.data shape. Shown in subscription editor as field reference."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:204,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:194,columnNumber:11},this):a.payload_schema?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(p,{icon:o,color:"text-accent",children:"Payload Schema"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:208,columnNumber:13},this),e.jsxDEV(V,{data:a.payload_schema},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:209,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:207,columnNumber:11},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(p,{icon:o,color:"text-accent",children:"Payload Schema"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:213,columnNumber:13},this),e.jsxDEV("p",{className:"text-[11px] text-text-quaternary",children:"No schema defined. Click Edit to add one."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:214,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:212,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:192,columnNumber:7},this),a.example_payload&&e.jsxDEV("div",{className:"mb-8",children:[e.jsxDEV(p,{icon:o,color:"text-cyan-400",children:"Example Payload"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:222,columnNumber:11},this),e.jsxDEV(V,{data:a.example_payload},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:223,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:221,columnNumber:9},this),e.jsxDEV("div",{className:"mb-8",children:[e.jsxDEV(p,{icon:y,color:"text-emerald-400",children:["Subscribers (",((P=a.subscribers)==null?void 0:P.length)??0,")"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:229,columnNumber:9},this),(j=a.subscribers)!=null&&j.length?e.jsxDEV("div",{className:"space-y-1",children:a.subscribers.map(s=>e.jsxDEV("div",{className:"flex items-center justify-between py-2 px-3 rounded-md hover:bg-surface-hover transition-colors",children:[e.jsxDEV("button",{onClick:()=>c(`/agents/${s.agent_id}`),className:"flex items-center gap-2 text-left min-w-0",children:[e.jsxDEV(y,{className:"w-3 h-3 text-emerald-400 shrink-0",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:240,columnNumber:19},this),e.jsxDEV("span",{className:"text-xs text-text-primary hover:text-accent transition-colors",children:s.agent_name},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:241,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:236,columnNumber:17},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("span",{className:"text-[10px] font-mono text-text-quaternary",children:s.topic},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:244,columnNumber:19},this),e.jsxDEV("span",{className:"text-[10px] text-text-tertiary",children:s.reaction_type},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:245,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:243,columnNumber:17},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:235,columnNumber:15},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:233,columnNumber:11},this):e.jsxDEV("p",{className:"text-[11px] text-text-quaternary py-2",children:"No agents are subscribed to this topic."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:251,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:228,columnNumber:7},this),e.jsxDEV("div",{className:"text-[10px] text-text-quaternary space-y-1 pt-4 border-t border-surface-border",children:[e.jsxDEV("p",{children:["Created ",e.jsxDEV(b,{date:a.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:257,columnNumber:20},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:257,columnNumber:9},this),e.jsxDEV("p",{children:["Updated ",e.jsxDEV(b,{date:a.updated_at},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:258,columnNumber:20},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:258,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:256,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:94,columnNumber:5},this)}export{te as TopicDetailPage};
|
|
9
|
-
//# sourceMappingURL=TopicDetailPage-DadwM52Y.js.map
|