@hotmeshio/long-tail 0.7.5 → 0.8.1
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/workflows/config.d.ts +7 -1
- package/build/api/workflows/config.js +7 -1
- package/build/api/workflows/discovery.js +1 -4
- package/build/lib/db/schemas/020_workflow_certified.sql +34 -0
- package/build/modules/ltconfig.d.ts +3 -2
- package/build/modules/ltconfig.js +4 -4
- package/build/routes/workflows/config.js +1 -0
- package/build/services/config/cache.js +1 -0
- package/build/services/config/read.js +2 -0
- package/build/services/config/sql.d.ts +2 -2
- package/build/services/config/sql.js +6 -5
- package/build/services/config/write.js +13 -0
- package/build/services/escalation/bulk.d.ts +3 -1
- package/build/services/escalation/bulk.js +3 -1
- package/build/services/escalation/crud.d.ts +4 -3
- package/build/services/escalation/crud.js +4 -3
- package/build/start/workers.js +1 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +3 -0
- package/build/system/mcp-servers/admin/schemas.js +3 -1
- package/build/system/mcp-servers/admin/workflow-config.js +1 -0
- package/build/types/config.d.ts +16 -0
- package/build/types/startup.d.ts +11 -1
- package/dashboard/dist/assets/AdminDashboard-Ck5-jV9T.js +2 -0
- package/dashboard/dist/assets/{AdminDashboard-Bgomc_jH.js.map → AdminDashboard-Ck5-jV9T.js.map} +1 -1
- package/dashboard/dist/assets/AgentConfigPage-DFiXRBWs.js +16 -0
- package/dashboard/dist/assets/AgentConfigPage-DFiXRBWs.js.map +1 -0
- package/dashboard/dist/assets/AgentDetailPage-BBgM_pMe.js +4 -0
- package/dashboard/dist/assets/AgentDetailPage-BBgM_pMe.js.map +1 -0
- package/dashboard/dist/assets/AgentsPage-DxwFuedf.js +2 -0
- package/dashboard/dist/assets/AgentsPage-DxwFuedf.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DNQbeIcn.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-C9DAtNGp.js.map → AvailableEscalationsPage-DNQbeIcn.js.map} +1 -1
- package/dashboard/dist/assets/BotPicker-mqwKVOE3.js +2 -0
- package/dashboard/dist/assets/{BotPicker-MnI3OyE7.js.map → BotPicker-mqwKVOE3.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-Biffm0kW.js +2 -0
- package/dashboard/dist/assets/CapabilitiesPage-Biffm0kW.js.map +1 -0
- package/dashboard/dist/assets/CollapsibleSection-Bn6Ks79X.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-Ne-Q3QFM.js.map → CollapsibleSection-Bn6Ks79X.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-no0-c_1G.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-D9_1b4MW.js.map → ConfirmDeleteModal-no0-c_1G.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-DS6IDMIX.js +2 -0
- package/dashboard/dist/assets/{CopyableId-blg-gZvT.js.map → CopyableId-DS6IDMIX.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-C3NyncEB.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-C3NyncEB.js.map +1 -0
- package/dashboard/dist/assets/CronLabel-DQWBx57H.js +2 -0
- package/dashboard/dist/assets/CronLabel-DQWBx57H.js.map +1 -0
- package/dashboard/dist/assets/CustomDurationPicker-DV42oZ1G.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-Cp1fgzPX.js.map → CustomDurationPicker-DV42oZ1G.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-Bf4dgxll.js +2 -0
- package/dashboard/dist/assets/{DataTable-ZWgVQg7F.js.map → DataTable-Bf4dgxll.js.map} +1 -1
- package/dashboard/dist/assets/DropZone-CTSXBb3c.js +2 -0
- package/dashboard/dist/assets/{DropZone-CZDmNBn-.js.map → DropZone-CTSXBb3c.js.map} +1 -1
- package/dashboard/dist/assets/ElapsedCell-roy4G5SQ.js +2 -0
- package/dashboard/dist/assets/{ElapsedCell-Gr5UlUbn.js.map → ElapsedCell-roy4G5SQ.js.map} +1 -1
- package/dashboard/dist/assets/EmptyState-CLVm9KmA.js +2 -0
- package/dashboard/dist/assets/{EmptyState-BcsfPq9T.js.map → EmptyState-CLVm9KmA.js.map} +1 -1
- package/dashboard/dist/assets/EscalationSchemaPage-DulCCxea.js +9 -0
- package/dashboard/dist/assets/EscalationSchemaPage-DulCCxea.js.map +1 -0
- package/dashboard/dist/assets/EscalationsOverview-DDwxn_mT.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-BIZVnSBF.js.map → EscalationsOverview-DDwxn_mT.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-BaLNvCew.js +2 -0
- package/dashboard/dist/assets/EventTable-BaLNvCew.js.map +1 -0
- package/dashboard/dist/assets/FilterBar-DEAbNQqp.js +2 -0
- package/dashboard/dist/assets/FilterBar-DEAbNQqp.js.map +1 -0
- package/dashboard/dist/assets/GraphInvokePage-BmM8r0R3.js +2 -0
- package/dashboard/dist/assets/GraphInvokePage-BmM8r0R3.js.map +1 -0
- package/dashboard/dist/assets/HomePage-Ds3PzWWr.js +2 -0
- package/dashboard/dist/assets/HomePage-Ds3PzWWr.js.map +1 -0
- package/dashboard/dist/assets/ListToolbar-Dviaskni.js +2 -0
- package/dashboard/dist/assets/{ListToolbar-CdmIvEIF.js.map → ListToolbar-Dviaskni.js.map} +1 -1
- package/dashboard/dist/assets/McpOverview-BBm66wbF.js +2 -0
- package/dashboard/dist/assets/{McpOverview-C-Ypezuv.js.map → McpOverview-BBm66wbF.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-B6GJOMcz.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-B6GJOMcz.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-C-8nIdBL.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-C-8nIdBL.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-CSq_0qqi.js +2 -0
- package/dashboard/dist/assets/{McpRunDetailPage-B1sCxKLD.js.map → McpRunDetailPage-CSq_0qqi.js.map} +1 -1
- package/dashboard/dist/assets/McpRunsPage-BdK8ahX7.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-BdK8ahX7.js.map +1 -0
- package/dashboard/dist/assets/Modal-C6HI6btY.js +2 -0
- package/dashboard/dist/assets/{Modal-CSrxpXeM.js.map → Modal-C6HI6btY.js.map} +1 -1
- package/dashboard/dist/assets/NamespacePill-eGsbJBFa.js +2 -0
- package/dashboard/dist/assets/{NamespacePill-DlqBTvFR.js.map → NamespacePill-eGsbJBFa.js.map} +1 -1
- package/dashboard/dist/assets/OperationsPage-DODPFmf2.js +2 -0
- package/dashboard/dist/assets/OperationsPage-DODPFmf2.js.map +1 -0
- package/dashboard/dist/assets/OperatorDashboard-BbmgsOmQ.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-YP6kP-f_.js.map → OperatorDashboard-BbmgsOmQ.js.map} +1 -1
- package/dashboard/dist/assets/PageHeader-DcgGV0Y2.js +2 -0
- package/dashboard/dist/assets/{PageHeader-CFta2VaS.js.map → PageHeader-DcgGV0Y2.js.map} +1 -1
- package/dashboard/dist/assets/PageHeaderWithStats-Cf8TYFRh.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-Cf8TYFRh.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-a7u8C9uY.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-B4ykBH7f.js.map → PriorityBadge-a7u8C9uY.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-D80w44rV.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-D80w44rV.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-BjW5xUkv.js +2 -0
- package/dashboard/dist/assets/{ProcessesListPage-BNhFwTLl.js.map → ProcessesListPage-BjW5xUkv.js.map} +1 -1
- package/dashboard/dist/assets/RoleDetailPage-oahg0cdT.js +11 -0
- package/dashboard/dist/assets/RoleDetailPage-oahg0cdT.js.map +1 -0
- package/dashboard/dist/assets/RolePill-BAeaQUXX.js +2 -0
- package/dashboard/dist/assets/RolePill-BAeaQUXX.js.map +1 -0
- package/dashboard/dist/assets/RolesPage-BI1Xtqq_.js +2 -0
- package/dashboard/dist/assets/RolesPage-BI1Xtqq_.js.map +1 -0
- package/dashboard/dist/assets/RowActions--m4F6GW8.js +2 -0
- package/dashboard/dist/assets/{RowActions-BA9L9djf.js.map → RowActions--m4F6GW8.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-DiGzSfiG.js +2 -0
- package/dashboard/dist/assets/{RunAsSelector-CokM3Ifp.js.map → RunAsSelector-DiGzSfiG.js.map} +1 -1
- package/dashboard/dist/assets/StatCard-DCPGFzCv.js +2 -0
- package/dashboard/dist/assets/StatCard-DCPGFzCv.js.map +1 -0
- package/dashboard/dist/assets/StatusBadge-mk-dJwPT.js +2 -0
- package/dashboard/dist/assets/{StatusBadge-D9MeQHrh.js.map → StatusBadge-mk-dJwPT.js.map} +1 -1
- package/dashboard/dist/assets/StickyPagination-Clm9H840.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-_H2j2CAH.js.map → StickyPagination-Clm9H840.js.map} +1 -1
- package/dashboard/dist/assets/StreamMessageDetail-Bikvs1Cz.js +2 -0
- package/dashboard/dist/assets/StreamMessageDetail-Bikvs1Cz.js.map +1 -0
- package/dashboard/dist/assets/SwimlaneTimeline-C9X3IVqI.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-C9X3IVqI.js.map +1 -0
- package/dashboard/dist/assets/TagInput-DmJLnghg.js +2 -0
- package/dashboard/dist/assets/{TagInput-CQg-TrV9.js.map → TagInput-DmJLnghg.js.map} +1 -1
- package/dashboard/dist/assets/TaskDetailPage-C0tbiUi7.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-C0tbiUi7.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill--1OX6egx.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-DyvtL8X4.js.map → TaskQueuePill--1OX6egx.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-DcYV-GMA.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-B71FxvrY.js.map → TasksListPage-DcYV-GMA.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-pYn3T9IZ.js +2 -0
- package/dashboard/dist/assets/{TimeAgo-JgT0U_sd.js.map → TimeAgo-pYn3T9IZ.js.map} +1 -1
- package/dashboard/dist/assets/TimestampCell-BPMCscic.js +2 -0
- package/dashboard/dist/assets/{TimestampCell-gEreK8Nn.js.map → TimestampCell-BPMCscic.js.map} +1 -1
- package/dashboard/dist/assets/ToolPill-BnF9lCUX.js +2 -0
- package/dashboard/dist/assets/{ToolPill-miuRcj1Q.js.map → ToolPill-BnF9lCUX.js.map} +1 -1
- package/dashboard/dist/assets/ToolTestPanel-Bw4z_Tya.js +2 -0
- package/dashboard/dist/assets/{ToolTestPanel-ChfHw9Aq.js.map → ToolTestPanel-Bw4z_Tya.js.map} +1 -1
- package/dashboard/dist/assets/TopicDetailPage-CtFztOnn.js +9 -0
- package/dashboard/dist/assets/TopicDetailPage-CtFztOnn.js.map +1 -0
- package/dashboard/dist/assets/TopicsPage-BXdc6pAU.js +2 -0
- package/dashboard/dist/assets/TopicsPage-BXdc6pAU.js.map +1 -0
- package/dashboard/dist/assets/UserName-R96NG6xB.js +2 -0
- package/dashboard/dist/assets/{UserName-uncbaKYf.js.map → UserName-R96NG6xB.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DmRJabMQ.js +2 -0
- package/dashboard/dist/assets/{WorkflowExecutionPage-DwzLKTkt.js.map → WorkflowExecutionPage-DmRJabMQ.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-Cc2MlYbB.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-Cc2MlYbB.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-uLU5ZToY.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-uLU5ZToY.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-BhgE0RS8.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-ihhW8DiS.js.map → WorkflowsOverview-BhgE0RS8.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowDetailPage-CvIgB5y7.js +33 -0
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-C61-8y-E.js.map → YamlWorkflowDetailPage-CvIgB5y7.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-DWnsgl2v.js +2 -0
- package/dashboard/dist/assets/{YamlWorkflowsPage-CMpgsLEo.js.map → YamlWorkflowsPage-DWnsgl2v.js.map} +1 -1
- package/dashboard/dist/assets/{agents-27sErp5R.js → agents-BpYMwrsB.js} +2 -2
- package/dashboard/dist/assets/{agents-27sErp5R.js.map → agents-BpYMwrsB.js.map} +1 -1
- package/dashboard/dist/assets/{bots-CPHuAvjW.js → bots-DI6Wqp5X.js} +2 -2
- package/dashboard/dist/assets/{bots-CPHuAvjW.js.map → bots-DI6Wqp5X.js.map} +1 -1
- package/dashboard/dist/assets/capabilities-BKZZb8eM.js +2 -0
- package/dashboard/dist/assets/{capabilities-BBTPqF-V.js.map → capabilities-BKZZb8eM.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-C9j2mwX8.js → controlplane-Djshb7fm.js} +2 -2
- package/dashboard/dist/assets/{controlplane-C9j2mwX8.js.map → controlplane-Djshb7fm.js.map} +1 -1
- package/dashboard/dist/assets/escalation-D8mrXtjS.js +2 -0
- package/dashboard/dist/assets/{escalation-CyJ_wz-f.js.map → escalation-D8mrXtjS.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-CyLzgPkz.js +2 -0
- package/dashboard/dist/assets/escalation-columns-CyLzgPkz.js.map +1 -0
- package/dashboard/dist/assets/index-B5MAG4Uv.js +2 -0
- package/dashboard/dist/assets/{index-CCHGKErT.js.map → index-B5MAG4Uv.js.map} +1 -1
- package/dashboard/dist/assets/index-BfxiRwk2.js +6 -0
- package/dashboard/dist/assets/index-BfxiRwk2.js.map +1 -0
- package/dashboard/dist/assets/index-C71I-f5G.js +2 -0
- package/dashboard/dist/assets/{index-D9pi0fs6.js.map → index-C71I-f5G.js.map} +1 -1
- package/dashboard/dist/assets/index-CC4g-6QE.css +1 -0
- package/dashboard/dist/assets/index-CJb3dXku.js +2 -0
- package/dashboard/dist/assets/index-CJb3dXku.js.map +1 -0
- package/dashboard/dist/assets/index-CQtv2rj6.js +2 -0
- package/dashboard/dist/assets/index-CQtv2rj6.js.map +1 -0
- package/dashboard/dist/assets/index-CphzO7b8.js +2 -0
- package/dashboard/dist/assets/{index-CNprOGuS.js.map → index-CphzO7b8.js.map} +1 -1
- package/dashboard/dist/assets/index-CwAmiy_j.js +2 -0
- package/dashboard/dist/assets/index-CwAmiy_j.js.map +1 -0
- package/dashboard/dist/assets/index-DgCS2Frb.js +281 -0
- package/dashboard/dist/assets/index-DgCS2Frb.js.map +1 -0
- package/dashboard/dist/assets/index-DkbnD-Te.js +2 -0
- package/dashboard/dist/assets/{index-Dzqt3g-K.js.map → index-DkbnD-Te.js.map} +1 -1
- package/dashboard/dist/assets/index-Y6yj36QR.js +9 -0
- package/dashboard/dist/assets/index-Y6yj36QR.js.map +1 -0
- package/dashboard/dist/assets/index-eshNd6NY.js +6 -0
- package/dashboard/dist/assets/{index-BiLZJ43R.js.map → index-eshNd6NY.js.map} +1 -1
- package/dashboard/dist/assets/index-xn9fmkHC.js +2 -0
- package/dashboard/dist/assets/index-xn9fmkHC.js.map +1 -0
- package/dashboard/dist/assets/index-yxnQew1X.js +2 -0
- package/dashboard/dist/assets/index-yxnQew1X.js.map +1 -0
- package/dashboard/dist/assets/{knowledge-BErJA3Je.js → knowledge-C_1r0faY.js} +2 -2
- package/dashboard/dist/assets/{knowledge-BErJA3Je.js.map → knowledge-C_1r0faY.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-Cx9L42EN.js → mcp-BtG54ZAx.js} +2 -2
- package/dashboard/dist/assets/{mcp-Cx9L42EN.js.map → mcp-BtG54ZAx.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-Cf6kcBoW.js → mcp-query-CSdQWxmv.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-Cf6kcBoW.js.map → mcp-query-CSdQWxmv.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-CFctrv71.js → pipelines-DVkwxN64.js} +2 -2
- package/dashboard/dist/assets/{pipelines-CFctrv71.js.map → pipelines-DVkwxN64.js.map} +1 -1
- package/dashboard/dist/assets/{roles-CCXZtqDr.js → roles-CpRcUIMm.js} +2 -2
- package/dashboard/dist/assets/{roles-CCXZtqDr.js.map → roles-CpRcUIMm.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-BPNj8ZWL.js → tasks-DNdvW5H6.js} +2 -2
- package/dashboard/dist/assets/{tasks-BPNj8ZWL.js.map → tasks-DNdvW5H6.js.map} +1 -1
- package/dashboard/dist/assets/{topics-CR4UBuSV.js → topics-DNC77Chw.js} +2 -2
- package/dashboard/dist/assets/{topics-CR4UBuSV.js.map → topics-DNC77Chw.js.map} +1 -1
- package/dashboard/dist/assets/{useCollapsedSections-BU5HULGs.js → useCollapsedSections-CGNA5oKV.js} +2 -2
- package/dashboard/dist/assets/{useCollapsedSections-BU5HULGs.js.map → useCollapsedSections-CGNA5oKV.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-BA5S7V54.js → useDebouncedValue-DmL3uNt_.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-BA5S7V54.js.map → useDebouncedValue-DmL3uNt_.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-BgdnN8Rj.js → useEventHooks-CUUeBSH1.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-BgdnN8Rj.js.map → useEventHooks-CUUeBSH1.js.map} +1 -1
- package/dashboard/dist/assets/{useFilterParams-x-Dg0Vgz.js → useFilterParams-Ch-a71bE.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-x-Dg0Vgz.js.map → useFilterParams-Ch-a71bE.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-BDsKfT0f.js → useNamespace-D-AjLnPK.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-BDsKfT0f.js.map → useNamespace-D-AjLnPK.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CWZwHIlR.js → useYamlActivityEvents-DRdetOb_.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CWZwHIlR.js.map → useYamlActivityEvents-DRdetOb_.js.map} +1 -1
- package/dashboard/dist/assets/{users-BqmKVXR1.js → users-BUgdEsec.js} +2 -2
- package/dashboard/dist/assets/{users-BqmKVXR1.js.map → users-BUgdEsec.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-BaQqUm-e.js → vendor-icons-CNyYGNsk.js} +3 -3
- package/dashboard/dist/assets/{vendor-icons-BaQqUm-e.js.map → vendor-icons-CNyYGNsk.js.map} +1 -1
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-zA2lQFDs.js +26 -0
- package/dashboard/dist/assets/vendor-react-zA2lQFDs.js.map +1 -0
- package/dashboard/dist/assets/{workflows-Dps45zjk.js → workflows-BfyR5VJt.js} +2 -2
- package/dashboard/dist/assets/workflows-BfyR5VJt.js.map +1 -0
- package/dashboard/dist/assets/{yaml-workflows-DhlTkbvY.js → yaml-workflows-Bz7yEnhl.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-DhlTkbvY.js.map → yaml-workflows-Bz7yEnhl.js.map} +1 -1
- package/dashboard/dist/index.html +5 -5
- package/docs/api/http/escalations.md +3 -3
- package/docs/api/http/workflows.md +2 -1
- package/docs/api/mcp/admin.md +13 -7
- package/docs/api/sdk/escalations.md +3 -1
- package/docs/api/sdk/workflows.md +3 -2
- package/docs/architecture.md +2 -2
- package/docs/dashboard.md +6 -5
- package/docs/iam.md +3 -3
- package/docs/workflows.md +7 -5
- package/package.json +2 -2
- package/dashboard/dist/assets/AdminDashboard-Bgomc_jH.js +0 -2
- package/dashboard/dist/assets/AgentConfigPage-C6gDgz21.js +0 -16
- package/dashboard/dist/assets/AgentConfigPage-C6gDgz21.js.map +0 -1
- package/dashboard/dist/assets/AgentDetailPage-0rrH5FmV.js +0 -4
- package/dashboard/dist/assets/AgentDetailPage-0rrH5FmV.js.map +0 -1
- package/dashboard/dist/assets/AgentsPage-DkIU2zed.js +0 -2
- package/dashboard/dist/assets/AgentsPage-DkIU2zed.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-C9DAtNGp.js +0 -2
- package/dashboard/dist/assets/BotPicker-MnI3OyE7.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-Cv_AD_5i.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-Cv_AD_5i.js.map +0 -1
- package/dashboard/dist/assets/CollapsibleSection-Ne-Q3QFM.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-D9_1b4MW.js +0 -2
- package/dashboard/dist/assets/CopyableId-blg-gZvT.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-B3Mfwl22.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-B3Mfwl22.js.map +0 -1
- package/dashboard/dist/assets/CronLabel-CtjUBRPo.js +0 -2
- package/dashboard/dist/assets/CronLabel-CtjUBRPo.js.map +0 -1
- package/dashboard/dist/assets/CustomDurationPicker-Cp1fgzPX.js +0 -2
- package/dashboard/dist/assets/DataTable-ZWgVQg7F.js +0 -2
- package/dashboard/dist/assets/DropZone-CZDmNBn-.js +0 -2
- package/dashboard/dist/assets/ElapsedCell-Gr5UlUbn.js +0 -2
- package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +0 -2
- package/dashboard/dist/assets/EscalationSchemaPage-C5tuV6SJ.js +0 -9
- package/dashboard/dist/assets/EscalationSchemaPage-C5tuV6SJ.js.map +0 -1
- package/dashboard/dist/assets/EscalationsOverview-BIZVnSBF.js +0 -2
- package/dashboard/dist/assets/EventTable-90aUfsNr.js +0 -2
- package/dashboard/dist/assets/EventTable-90aUfsNr.js.map +0 -1
- package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js +0 -2
- package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js.map +0 -1
- package/dashboard/dist/assets/GraphInvokePage-Io5ZucT8.js +0 -2
- package/dashboard/dist/assets/GraphInvokePage-Io5ZucT8.js.map +0 -1
- package/dashboard/dist/assets/HomePage-Cu0vUzTF.js +0 -2
- package/dashboard/dist/assets/HomePage-Cu0vUzTF.js.map +0 -1
- package/dashboard/dist/assets/ListToolbar-CdmIvEIF.js +0 -2
- package/dashboard/dist/assets/McpOverview-C-Ypezuv.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-DdontKcj.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-DdontKcj.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-D-1TaOGG.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-D-1TaOGG.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-B1sCxKLD.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-eWJ7cDa3.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-eWJ7cDa3.js.map +0 -1
- package/dashboard/dist/assets/Modal-CSrxpXeM.js +0 -2
- package/dashboard/dist/assets/NamespacePill-DlqBTvFR.js +0 -2
- package/dashboard/dist/assets/OperationsPage-C5phWL0O.js +0 -2
- package/dashboard/dist/assets/OperationsPage-C5phWL0O.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-YP6kP-f_.js +0 -2
- package/dashboard/dist/assets/PageHeader-CFta2VaS.js +0 -2
- package/dashboard/dist/assets/PageHeaderWithStats-CcVAji-7.js +0 -2
- package/dashboard/dist/assets/PageHeaderWithStats-CcVAji-7.js.map +0 -1
- package/dashboard/dist/assets/PriorityBadge-B4ykBH7f.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-C_BXQvBs.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-C_BXQvBs.js.map +0 -1
- package/dashboard/dist/assets/ProcessesListPage-BNhFwTLl.js +0 -2
- package/dashboard/dist/assets/RoleDetailPage-8GLNjj9I.js +0 -11
- package/dashboard/dist/assets/RoleDetailPage-8GLNjj9I.js.map +0 -1
- package/dashboard/dist/assets/RolePill-CXEyPMqb.js +0 -2
- package/dashboard/dist/assets/RolePill-CXEyPMqb.js.map +0 -1
- package/dashboard/dist/assets/RolesPage-B59tE2lZ.js +0 -2
- package/dashboard/dist/assets/RolesPage-B59tE2lZ.js.map +0 -1
- package/dashboard/dist/assets/RowActions-BA9L9djf.js +0 -2
- package/dashboard/dist/assets/RunAsSelector-CokM3Ifp.js +0 -2
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js.map +0 -1
- package/dashboard/dist/assets/StatusBadge-D9MeQHrh.js +0 -2
- package/dashboard/dist/assets/StickyPagination-_H2j2CAH.js +0 -2
- package/dashboard/dist/assets/StreamMessageDetail-sSfHDYIa.js +0 -2
- package/dashboard/dist/assets/StreamMessageDetail-sSfHDYIa.js.map +0 -1
- package/dashboard/dist/assets/SwimlaneTimeline-LZWtfBK3.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-LZWtfBK3.js.map +0 -1
- package/dashboard/dist/assets/TagInput-CQg-TrV9.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-CHBV2V6R.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-CHBV2V6R.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-DyvtL8X4.js +0 -2
- package/dashboard/dist/assets/TasksListPage-B71FxvrY.js +0 -2
- package/dashboard/dist/assets/TimeAgo-JgT0U_sd.js +0 -2
- package/dashboard/dist/assets/TimestampCell-gEreK8Nn.js +0 -2
- package/dashboard/dist/assets/ToolPill-miuRcj1Q.js +0 -2
- package/dashboard/dist/assets/ToolTestPanel-ChfHw9Aq.js +0 -2
- package/dashboard/dist/assets/TopicDetailPage-DigI0HGt.js +0 -9
- package/dashboard/dist/assets/TopicDetailPage-DigI0HGt.js.map +0 -1
- package/dashboard/dist/assets/TopicsPage-BHjlFpPN.js +0 -2
- package/dashboard/dist/assets/TopicsPage-BHjlFpPN.js.map +0 -1
- package/dashboard/dist/assets/UserName-uncbaKYf.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-DwzLKTkt.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BegV-iRF.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BegV-iRF.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-rpnGhGnl.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-rpnGhGnl.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsOverview-ihhW8DiS.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowDetailPage-C61-8y-E.js +0 -33
- package/dashboard/dist/assets/YamlWorkflowsPage-CMpgsLEo.js +0 -2
- package/dashboard/dist/assets/capabilities-BBTPqF-V.js +0 -2
- package/dashboard/dist/assets/escalation-CyJ_wz-f.js +0 -2
- package/dashboard/dist/assets/escalation-columns-DU4Jyxxo.js +0 -2
- package/dashboard/dist/assets/escalation-columns-DU4Jyxxo.js.map +0 -1
- package/dashboard/dist/assets/index-BBQggGcf.js +0 -2
- package/dashboard/dist/assets/index-BBQggGcf.js.map +0 -1
- package/dashboard/dist/assets/index-BHS-ubrT.js +0 -6
- package/dashboard/dist/assets/index-BHS-ubrT.js.map +0 -1
- package/dashboard/dist/assets/index-BVHXREYZ.js +0 -2
- package/dashboard/dist/assets/index-BVHXREYZ.js.map +0 -1
- package/dashboard/dist/assets/index-BiLZJ43R.js +0 -6
- package/dashboard/dist/assets/index-BoZydcaW.js +0 -63
- package/dashboard/dist/assets/index-BoZydcaW.js.map +0 -1
- package/dashboard/dist/assets/index-CCHGKErT.js +0 -2
- package/dashboard/dist/assets/index-CNprOGuS.js +0 -2
- package/dashboard/dist/assets/index-CZ6-l8_0.css +0 -1
- package/dashboard/dist/assets/index-CgeFUhUr.js +0 -2
- package/dashboard/dist/assets/index-CgeFUhUr.js.map +0 -1
- package/dashboard/dist/assets/index-ChniBGqD.js +0 -9
- package/dashboard/dist/assets/index-ChniBGqD.js.map +0 -1
- package/dashboard/dist/assets/index-CjXzZ19T.js +0 -2
- package/dashboard/dist/assets/index-CjXzZ19T.js.map +0 -1
- package/dashboard/dist/assets/index-D9pi0fs6.js +0 -2
- package/dashboard/dist/assets/index-DoivEaUZ.js +0 -2
- package/dashboard/dist/assets/index-DoivEaUZ.js.map +0 -1
- package/dashboard/dist/assets/index-Dzqt3g-K.js +0 -2
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-CXumBFUA.js +0 -22
- package/dashboard/dist/assets/vendor-react-CXumBFUA.js.map +0 -1
- package/dashboard/dist/assets/workflows-Dps45zjk.js.map +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{u as L,j as e,c as R,N as W}from"./index-DgCS2Frb.js";import{a as v}from"./vendor-query-DLp59M9_.js";import{a as M,b as K,c as U}from"./agents-BpYMwrsB.js";import{u as I,E as w,C as k}from"./CronLabel-DQWBx57H.js";import{j as F}from"./useEventHooks-CUUeBSH1.js";import{W as E}from"./WorkflowPill-Cc2MlYbB.js";import{b as H,B as O,Q as z,P as G,aM as J,p as Q,aN as X,R as $,a6 as Y,e as Z,aO as ee,aP as ae}from"./vendor-icons-CNyYGNsk.js";import{e as se,c as S}from"./vendor-react-zA2lQFDs.js";function te(t){return new Date(t).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function p({icon:t,color:i,children:n,actions:N}){return e.jsxDEV("div",{className:"flex items-center justify-between mb-3 pb-2 border-b border-surface-border",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(t,{className:`w-4 h-4 ${i}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:27,columnNumber:9},this),e.jsxDEV("h2",{className:"section-h2",children:n},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:28,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:26,columnNumber:7},this),N]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:25,columnNumber:5},this)}function x({text:t}){return e.jsxDEV("p",{className:"text-[11px] text-text-quaternary py-2",children:t},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:36,columnNumber:10},this)}function h({to:t,label:i}){const n=S();return e.jsxDEV("button",{onClick:()=>n(t),className:"text-text-quaternary hover:text-accent transition-colors",title:`View ${i}`,"aria-label":`View ${i}`,children:e.jsxDEV(ae,{className:"w-3.5 h-3.5",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:49,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:43,columnNumber:5},this)}let ie=0;function ne(t){const[i,n]=v.useState([]),[N,c]=v.useState(!1),a=v.useCallback(l=>{var g,b,u;if((g=l.type)!=null&&g.startsWith("mesh."))return;const d=l.activityName||((b=l.data)==null?void 0:b.domain)||((u=l.workflowId)==null?void 0:u.slice(0,16))||"";n(f=>[{id:++ie,type:l.type,timestamp:l.timestamp,label:d},...f].slice(0,10)),c(!0),setTimeout(()=>c(!1),2e3)},[]);return R(t?`${W}.system.agent.${t}.>`:"",a),{events:i,pulse:N}}function pe(){var A,P,j,V,y;const{id:t}=se(),i=S(),{data:n}=L(),c=!!((A=n==null?void 0:n.ai)!=null&&A.enabled)?"Agent":"Automation",{data:a,isLoading:l}=M(t??null),{data:d}=I(t??null),g=K(),b=U(),{events:u,pulse:f}=ne(t);if(F(),l)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/agents/AgentDetailPage.tsx",lineNumber:92,columnNumber:53},this),e.jsxDEV("div",{className:"h-40 bg-surface-sunken rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:92,columnNumber:107},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:92,columnNumber:12},this);if(!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[e.jsxDEV(H,{className:"w-12 h-12 text-text-quaternary mb-4",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:98,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium text-text-primary mb-2",children:[c," not found"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:99,columnNumber:9},this),e.jsxDEV("button",{onClick:()=>i("/agents"),className:"text-sm text-accent hover:text-accent-hover transition-colors",children:["Back to ",c.toLowerCase(),"s"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:100,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:97,columnNumber:7},this);const C=a.status==="active"?"bg-status-success":a.status==="paused"?"bg-status-warning":a.status==="error"?"bg-status-error":"bg-surface-border",r=(d==null?void 0:d.subscriptions)??[],_=a.status==="active"?"Active":a.status==="paused"?"Paused":a.status==="error"?"Error":"Inactive",o=(P=a.behaviors)==null?void 0:P.schedules,D=(j=a.behaviors)==null?void 0:j.cron,m=(o==null?void 0:o.length)||(D?1:0),q=()=>{const s=[`Pause "${a.id}"?`,"","This will:",r.length>0?`• Stop ${r.length} event subscription${r.length!==1?"s":""}`:null,m>0?`• Stop ${m} schedule${m!==1?"s":""}`:null,"","Knowledge and workflow history are preserved. You can reactivate anytime."].filter(Boolean).join(`
|
|
2
|
+
`);confirm(s)&&g.mutate({id:a.id,status:"paused"})},T=()=>{const s=[`Delete "${a.id}"?`,"","This permanently removes:","• The agent configuration",r.length>0?`• ${r.length} event subscription${r.length!==1?"s":""}`:null,m>0?`• ${m} schedule${m!==1?"s":""}`:null,"","Knowledge entries and workflow history are preserved."].filter(Boolean).join(`
|
|
3
|
+
`);confirm(s)&&b.mutate(a.id,{onSuccess:()=>i("/agents")})};return e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-start justify-between mb-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("h1",{className:"text-3xl font-light text-text-primary",children:[c,": ",a.id]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:144,columnNumber:11},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:agents.md"},className:"text-text-quaternary hover:text-accent transition-colors mt-1",title:"Docs",children:e.jsxDEV(O,{className:"w-4 h-4",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:146,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:145,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:143,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("div",{className:"flex items-center gap-1.5 mr-2",children:[e.jsxDEV("span",{className:`w-2 h-2 rounded-full dot-ring ${C}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:151,columnNumber:13},this),e.jsxDEV("span",{className:"text-xs text-text-secondary capitalize",children:_},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:152,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:150,columnNumber:11},this),e.jsxDEV("button",{onClick:()=>i(`/agents/${a.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",children:[e.jsxDEV(z,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:155,columnNumber:13},this)," Edit"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:154,columnNumber:11},this),a.status!=="active"&&e.jsxDEV("button",{onClick:()=>g.mutate({id:a.id,status:"active"}),className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-status-success hover:bg-status-success/10 transition-colors",children:[e.jsxDEV(G,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:159,columnNumber:15},this)," Activate"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:158,columnNumber:13},this),a.status==="active"&&e.jsxDEV("button",{onClick:q,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(J,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:164,columnNumber:15},this)," Pause"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:163,columnNumber:13},this),e.jsxDEV("button",{onClick:T,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-status-error/60 hover:text-status-error hover:bg-status-error/10 transition-colors",children:[e.jsxDEV(Q,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:168,columnNumber:13},this)," Delete"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:167,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:149,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:142,columnNumber:7},this),a.description&&e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-4 py-1 mb-10",children:e.jsxDEV("p",{className:"text-[13px] text-text-secondary italic leading-relaxed",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:176,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:175,columnNumber:9},this),(a.goals||a.rules)&&e.jsxDEV("div",{className:"mb-10",children:[e.jsxDEV(p,{icon:X,color:"text-accent",actions:e.jsxDEV(h,{to:`/agents/${a.id}/edit?step=2`,label:"Motivation"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:186,columnNumber:22},this),children:"Motivation"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:183,columnNumber:11},this),e.jsxDEV("div",{className:"grid grid-cols-2 gap-x-14 bg-surface-sunken/20 rounded-lg px-5 py-4",children:[a.goals&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5",children:"Goals"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:191,columnNumber:17},this),e.jsxDEV("p",{className:"text-[13px] text-text-primary leading-relaxed",children:a.goals},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:192,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:190,columnNumber:15},this),a.rules&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] text-text-quaternary uppercase tracking-widest mb-1.5",children:"Rules"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:197,columnNumber:17},this),e.jsxDEV("p",{className:"text-[13px] text-text-primary leading-relaxed",children:a.rules},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:198,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:196,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:188,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:182,columnNumber:9},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-10",children:[e.jsxDEV("div",{children:[e.jsxDEV(p,{icon:$,color:"text-accent",actions:e.jsxDEV(h,{to:`/agents/${a.id}/edit?step=4`,label:"Subscriptions"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:213,columnNumber:22},this),children:["Subscriptions (",r.length,")"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:210,columnNumber:11},this),r.length===0?e.jsxDEV(x,{text:"No event subscriptions"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:218,columnNumber:13},this):e.jsxDEV("div",{className:"divide-y divide-surface-border/30",children:r.map(s=>e.jsxDEV("div",{className:"flex items-center py-2",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(w,{topic:s.topic},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:223,columnNumber:51},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:223,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:225,columnNumber:21},this),e.jsxDEV(E,{type:s.reaction_type==="capability"?s.tool_name:s.workflow_type||s.reaction_type,variant:s.reaction_type==="pipeline"?"pipeline":s.reaction_type==="capability"?"capability":"durable"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:226,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:224,columnNumber:19},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:222,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:220,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:209,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV(p,{icon:Y,color:"text-accent",actions:e.jsxDEV(h,{to:`/agents/${a.id}/edit?step=5`,label:"Schedules"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:242,columnNumber:22},this),children:["Schedules (",m,")"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:239,columnNumber:11},this),o!=null&&o.length?e.jsxDEV("div",{className:"divide-y divide-surface-border/30",children:o.map((s,B)=>e.jsxDEV("div",{className:"flex items-center py-2",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(k,{cron:s.cron},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:248,columnNumber:51},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:248,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:249,columnNumber:71},this),e.jsxDEV(E,{type:s.workflow_type||"workflow"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:249,columnNumber:130},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:249,columnNumber:19},this)]},B,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:247,columnNumber:17},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:245,columnNumber:13},this):D?e.jsxDEV("div",{className:"flex items-center py-1",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:e.jsxDEV(k,{cron:D},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:255,columnNumber:47},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:255,columnNumber:15},this),a.workflow_type&&e.jsxDEV("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsxDEV("span",{className:"text-text-quaternary text-[10px]",children:"→"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:256,columnNumber:91},this),e.jsxDEV(E,{type:a.workflow_type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:256,columnNumber:150},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:256,columnNumber:39},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:254,columnNumber:13},this):e.jsxDEV(x,{text:"No schedules configured"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:259,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:238,columnNumber:9},this),e.jsxDEV("div",{className:"space-y-10",children:[e.jsxDEV("div",{children:[e.jsxDEV(p,{icon:Z,color:"text-accent",actions:e.jsxDEV(h,{to:a.knowledge_domain?`/knowledge?domain=${a.knowledge_domain}`:`/agents/${a.id}/edit?step=3`,label:"Knowledge"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:270,columnNumber:17},this),children:"Knowledge"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:266,columnNumber:13},this),a.knowledge_domain?e.jsxDEV("button",{onClick:()=>i(`/knowledge?domain=${a.knowledge_domain}`),className:"group text-left flex items-center gap-3",children:[e.jsxDEV("span",{className:"text-sm font-mono text-text-primary group-hover:text-accent transition-colors",children:a.knowledge_domain},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:278,columnNumber:17},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:[((y=(V=a.stats)==null?void 0:V.knowledge_count)==null?void 0:y.toLocaleString())??0," entries"]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:279,columnNumber:17},this),e.jsxDEV(ee,{className:"w-3 h-3 text-accent opacity-0 group-hover:opacity-100 transition-opacity"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:280,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:277,columnNumber:15},this):e.jsxDEV(x,{text:"No knowledge domain"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:283,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:265,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV(p,{icon:$,color:"text-accent",actions:e.jsxDEV("div",{className:"flex items-center gap-1.5",children:[e.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full dot-ring transition-colors duration-500 ${f?"bg-status-success":"bg-surface-border"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:291,columnNumber:19},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:"live"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:292,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:290,columnNumber:17},this),children:"Activity"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:288,columnNumber:13},this),u.length===0?e.jsxDEV(x,{text:"Events appear here as the agent runs"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:299,columnNumber:15},this):e.jsxDEV("div",{className:"space-y-1.5",children:u.map(s=>e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-center justify-between mb-0.5",children:[e.jsxDEV("span",{className:"text-[11px] text-text-primary font-mono truncate flex-1",children:s.label||"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:305,columnNumber:23},this),e.jsxDEV("span",{className:"text-[10px] text-text-quaternary shrink-0 ml-2",children:te(s.timestamp)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:306,columnNumber:23},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:304,columnNumber:21},this),e.jsxDEV(w,{topic:s.type},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:308,columnNumber:21},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:303,columnNumber:19},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:301,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:287,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:264,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:206,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentDetailPage.tsx",lineNumber:140,columnNumber:5},this)}export{pe as AgentDetailPage};
|
|
4
|
+
//# sourceMappingURL=AgentDetailPage-BBgM_pMe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentDetailPage-BBgM_pMe.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, ArrowUpRight, Pencil, BookOpen,\n Radio, Clock, Brain, Compass,\n} from 'lucide-react';\nimport { useAgent, useUpdateAgent, useDeleteAgent } from '../../api/agents';\nimport { useSettings } from '../../api/settings';\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=\"section-h2\">{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/** Per-section deeplink — jumps straight to that section instead of Edit → navigate. */\nfunction SectionViewLink({ to, label }: { to: string; label: 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={`View ${label}`}\n aria-label={`View ${label}`}\n >\n <ArrowUpRight className=\"w-3.5 h-3.5\" strokeWidth={1.5} />\n </button>\n );\n}\n\n// ── Live feed ───────────────────────────────────────────────────────────────\n\ninterface FeedEvent { id: number; type: string; timestamp: string; label: string; }\nlet feedCounter = 0;\n\nfunction useAgentFeed(agentName?: 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 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 }, []);\n useEventSubscription(\n agentName ? `${NATS_SUBJECT_PREFIX}.system.agent.${agentName}.>` : '',\n handler,\n );\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: settings } = useSettings();\n const aiEnabled = !!settings?.ai?.enabled;\n const label = aiEnabled ? 'Agent' : 'Automation';\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(id);\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\">{label} not found</h2>\n <button onClick={() => navigate('/agents')} className=\"text-sm text-accent hover:text-accent-hover transition-colors\">Back to {label.toLowerCase()}s</button>\n </div>\n );\n }\n\n const statusDot = agent.status === 'active' ? 'bg-status-success' : agent.status === 'paused' ? 'bg-status-warning' : agent.status === 'error' ? 'bg-status-error' : 'bg-surface-border';\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.id}\"?`,\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.id}\"?`,\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\">{label}: {agent.id}</h1>\n <button onClick={() => { window.location.hash = '#docs:agents.md'; }} className=\"text-text-quaternary hover:text-accent transition-colors mt-1\" title=\"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 dot-ring ${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-status-success hover:bg-status-success/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-status-error/60 hover:text-status-error hover:bg-status-error/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\n icon={Compass}\n color=\"text-accent\"\n actions={<SectionViewLink to={`/agents/${agent.id}/edit?step=2`} label=\"Motivation\" />}\n >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\n icon={Radio}\n color=\"text-accent\"\n actions={<SectionViewLink to={`/agents/${agent.id}/edit?step=4`} label=\"Subscriptions\" />}\n >\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\n type={sub.reaction_type === 'capability' ? sub.tool_name : sub.workflow_type || sub.reaction_type}\n variant={sub.reaction_type === 'pipeline' ? 'pipeline' : sub.reaction_type === 'capability' ? 'capability' : 'durable'}\n />\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Col 2: Schedules */}\n <div>\n <SectionHeader\n icon={Clock}\n color=\"text-accent\"\n actions={<SectionViewLink to={`/agents/${agent.id}/edit?step=5`} label=\"Schedules\" />}\n >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\n icon={Brain}\n color=\"text-accent\"\n actions={\n <SectionViewLink\n to={agent.knowledge_domain ? `/knowledge?domain=${agent.knowledge_domain}` : `/agents/${agent.id}/edit?step=3`}\n label=\"Knowledge\"\n />\n }\n >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-accent\"\n actions={\n <div className=\"flex items-center gap-1.5\">\n <span className={`w-1.5 h-1.5 rounded-full dot-ring transition-colors duration-500 ${pulse ? 'bg-status-success' : 'bg-surface-border'}`} />\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","SectionViewLink","to","label","navigate","useNavigate","ArrowUpRight","feedCounter","useAgentFeed","agentName","events","setEvents","useState","pulse","setPulse","handler","useCallback","event","_a","_b","_c","prev","useEventSubscription","NATS_SUBJECT_PREFIX","AgentDetailPage","id","useParams","settings","useSettings","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","_e","_d","ArrowRight","ev"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{u as f,j as a,b as N}from"./index-DgCS2Frb.js";import{u as x}from"./agents-BpYMwrsB.js";import{j as h}from"./useEventHooks-CUUeBSH1.js";import{u as v}from"./useFilterParams-Ch-a71bE.js";import{b as P}from"./api-path-u2Jf9QXS.js";import{D as A}from"./DataTable-Bf4dgxll.js";import{S as D}from"./StickyPagination-Clm9H840.js";import{F as E,b as j}from"./FilterBar-DEAbNQqp.js";import{P as V}from"./PageHeader-DcgGV0Y2.js";import{L as y}from"./ListToolbar-Dviaskni.js";import{l as w}from"./vendor-icons-CNyYGNsk.js";import{c as S}from"./vendor-react-zA2lQFDs.js";import"./vendor-query-DLp59M9_.js";import"./EmptyState-CLVm9KmA.js";const k=[{value:"active",label:"Active"},{value:"inactive",label:"Inactive"},{value:"paused",label:"Paused"},{value:"error",label:"Error"}],_=[{key:"name",label:"Agent",render:e=>a.jsxDEV("div",{className:"flex items-center gap-2.5 min-w-0",children:[a.jsxDEV("span",{className:`w-1.5 h-1.5 rounded-full dot-ring shrink-0 ${e.status==="active"?"bg-status-success":e.status==="paused"?"bg-status-warning":e.status==="error"?"bg-status-error":"bg-surface-border"}`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:28,columnNumber:9},void 0),a.jsxDEV("span",{className:"text-xs font-medium text-text-primary whitespace-nowrap",children:e.id},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:29,columnNumber:9},void 0),e.description&&a.jsxDEV("p",{className:"flex-1 min-w-0 truncate text-[10px] text-text-tertiary",children:e.description},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:31,columnNumber:11},void 0)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:27,columnNumber:7},void 0)},{key:"knowledge_domain",label:"Knowledge",render:e=>e.knowledge_domain?a.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:e.knowledge_domain},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:40,columnNumber:9},void 0):a.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:41,columnNumber:9},void 0),className:"w-28"},{key:"schedules",label:"Schedules",render:e=>{var i,r;const s=(i=e.behaviors)==null?void 0:i.schedules,t=s!=null&&s.length?s.map(o=>o.cron):(r=e.behaviors)!=null&&r.cron?[e.behaviors.cron]:[];return t.length?a.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:[t[0],t.length>1?` +${t.length-1}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:51,columnNumber:14},void 0):a.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:50,columnNumber:33},void 0)},className:"w-28"},{key:"subscriptions",label:"Subscriptions",render:e=>{var r;const s=e.subscription_count??0,t=e.sub_topics??[];if(!s)return a.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:61,columnNumber:26},void 0);const i=((r=t[0])==null?void 0:r.replace(/^lt\.events\./,""))??"";return a.jsxDEV("span",{className:"text-[10px] font-mono text-text-secondary whitespace-nowrap",children:[i,s>1?` +${s-1}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:63,columnNumber:14},void 0)},className:"w-36"},{key:"last_run_at",label:"Last Run",render:e=>e.last_run_at?a.jsxDEV("span",{className:"whitespace-nowrap",children:a.jsxDEV(N,{date:e.last_run_at},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:71,columnNumber:45},void 0)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:71,columnNumber:9},void 0):a.jsxDEV("span",{className:"text-text-quaternary",children:"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:72,columnNumber:9},void 0),className:"w-32"}];function U(){var d;const e=S(),{data:s}=f(),t=!!((d=s==null?void 0:s.ai)!=null&&d.enabled),i=t?"Agent":"Automation",r=t?"Agents":"Automations";h();const{filters:o,setFilter:c,pagination:n}=v({filters:{status:""}}),{data:l,isLoading:g,refetch:p,isFetching:b}=x({status:o.status||void 0,limit:n.pageSize,offset:n.offset}),u=(l==null?void 0:l.total)??0;return a.jsxDEV("div",{children:[a.jsxDEV(V,{title:r,docsHash:"#docs:agents.md",actions:a.jsxDEV("button",{onClick:()=>e("/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:[a.jsxDEV(w,{className:"w-4 h-4"},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:107,columnNumber:13},this)," Create ",i]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:103,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:99,columnNumber:7},this),a.jsxDEV(E,{actions:a.jsxDEV(y,{onRefresh:()=>p(),isFetching:b,apiPath:P("/agents",{limit:n.pageSize,offset:n.offset,status:o.status||void 0})},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:113,columnNumber:9},this),children:a.jsxDEV(j,{label:"Status",value:o.status,onChange:m=>c("status",m),options:k},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:123,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:112,columnNumber:7},this),a.jsxDEV(A,{columns:_,data:(l==null?void 0:l.agents)??[],keyFn:m=>m.id,onRowClick:m=>e(`/agents/${m.id}`),isLoading:g,emptyMessage:`No ${r.toLowerCase()} found`},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:131,columnNumber:7},this),a.jsxDEV(D,{page:n.page,totalPages:n.totalPages(u),onPageChange:n.setPage,total:u,pageSize:n.pageSize,onPageSizeChange:n.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:140,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/agents/AgentsPage.tsx",lineNumber:98,columnNumber:5},this)}export{U as AgentsPage};
|
|
2
|
+
//# sourceMappingURL=AgentsPage-DxwFuedf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsPage-DxwFuedf.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 { useSettings } from '../../api/settings';\nimport { useAgentEvents } from '../../hooks/useEventHooks';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { buildApiPath } from '../../lib/api-path';\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.5 min-w-0\">\n <span className={`w-1.5 h-1.5 rounded-full dot-ring shrink-0 ${row.status === 'active' ? 'bg-status-success' : row.status === 'paused' ? 'bg-status-warning' : row.status === 'error' ? 'bg-status-error' : 'bg-surface-border'}`} />\n <span className=\"text-xs font-medium text-text-primary whitespace-nowrap\">{row.id}</span>\n {row.description && (\n <p className=\"flex-1 min-w-0 truncate text-[10px] text-text-tertiary\">{row.description}</p>\n )}\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 const { data: settings } = useSettings();\n const aiEnabled = !!settings?.ai?.enabled;\n const label = aiEnabled ? 'Agent' : 'Automation';\n const labelPlural = aiEnabled ? 'Agents' : 'Automations';\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={labelPlural}\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 {label}\n </button>\n }\n />\n\n <FilterBar actions={\n <ListToolbar\n onRefresh={() => refetch()}\n isFetching={isFetching}\n apiPath={buildApiPath('/agents', {\n limit: pagination.pageSize,\n offset: pagination.offset,\n status: filters.status || undefined,\n })}\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 ${labelPlural.toLowerCase()} 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","settings","useSettings","aiEnabled","label","labelPlural","useAgentEvents","filters","setFilter","pagination","useFilterParams","data","isLoading","refetch","isFetching","useAgents","total","PageHeader","Plus","FilterBar","ListToolbar","buildApiPath","FilterSelect","v","DataTable","StickyPagination"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e,u as ze,k as Le,l as Ie,g as $e,m as Ue,n as He,o as Je,p as qe,q as Ge,r as Qe,s as Ye,t as Ke,v as Xe,w as We}from"./index-DgCS2Frb.js";import{a as x}from"./vendor-query-DLp59M9_.js";import{c as Ze,f as ea,a as aa}from"./vendor-react-zA2lQFDs.js";import{f as sa}from"./useEventHooks-CUUeBSH1.js";import{u as ae,C as Ne,a as ta}from"./CustomDurationPicker-DV42oZ1G.js";import{u as la}from"./roles-CpRcUIMm.js";import{u as oa}from"./useFilterParams-Ch-a71bE.js";import{u as xe}from"./useDebouncedValue-DmL3uNt_.js";import{b as ra}from"./api-path-u2Jf9QXS.js";import{D as ia}from"./DataTable-Bf4dgxll.js";import{S as na}from"./StickyPagination-Clm9H840.js";import{P as ca}from"./PageHeader-DcgGV0Y2.js";import{P as ma}from"./constants-BHkpVaqx.js";import{M as se}from"./Modal-C6HI6btY.js";import{u as da}from"./users-BUgdEsec.js";import{E as ua,a as pa}from"./escalation-columns-CyLzgPkz.js";import{R as ba,a as ha}from"./RowActions--m4F6GW8.js";import{L as Na}from"./ListToolbar-Dviaskni.js";import{a4 as xa,S as fa,X as ga}from"./vendor-icons-CNyYGNsk.js";import"./EmptyState-CLVm9KmA.js";import"./FilterBar-DEAbNQqp.js";import"./PriorityBadge-a7u8C9uY.js";import"./RolePill-BAeaQUXX.js";import"./WorkflowPill-Cc2MlYbB.js";import"./escalation-D8mrXtjS.js";const M=a=>{if(a)try{return JSON.parse(a)}catch{return}},C=a=>a==null||Array.isArray(a)&&a.length===0||typeof a=="object"&&!Array.isArray(a)&&Object.keys(a).length===0;function va(a){const s={},n=M(a.get("facets"));C(n)||(s.facets=n);const c=M(a.get("block"));C(c)||(s.block=c);const u=M(a.get("range"));C(u)||(s.range=u);const N=M(a.get("exists"));C(N)||(s.exists=N);const b=M(a.get("roles"));C(b)||(s.roles=b);const o=M(a.get("orderBy"));return C(o)||(s.orderBy=o),a.get("available")!=null&&(s.available=a.get("available")==="true"),s}function Ea(a,s){const n=(c,u)=>C(u)?a.delete(c):a.set(c,JSON.stringify(u));n("facets",s.facets),n("block",s.block),n("range",s.range),n("exists",s.exists),n("roles",s.roles),n("orderBy",s.orderBy),s.available==null?a.delete("available"):a.set("available",String(s.available))}function ya(a){var s,n,c,u;return Object.keys(a.facets??{}).length+(((s=a.block)==null?void 0:s.length)??0)+(((n=a.range)==null?void 0:n.length)??0)+(((c=a.exists)==null?void 0:c.length)??0)+(((u=a.orderBy)==null?void 0:u.length)??0)+(a.available!=null?1:0)}const ka=["<","<=",">",">=","="],ja=["priority","created_at","updated_at","status","role"],V="h-7 rounded border border-surface-border bg-surface px-2 text-xs text-text-primary focus:border-accent focus:outline-none",U="text-text-tertiary hover:text-text-primary transition-colors";function he(a){return a==="true"?!0:a==="false"?!1:a.trim()!==""&&!Number.isNaN(Number(a))?Number(a):a}const Da=a=>Object.entries(a??{}).map(([s,n])=>({key:s,value:String(n)})),Va=a=>(a??[]).map(s=>{const[n,c]=Object.entries(s)[0]??["",""];return{key:n,value:String(c)}});function w({title:a,hint:s,children:n}){return e.jsxDEV("div",{className:"border-t border-surface-border/50 py-3 first:border-t-0 first:pt-1",children:[e.jsxDEV("div",{className:"mb-1.5 flex items-baseline justify-between",children:[e.jsxDEV("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-tertiary",children:a},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:31,columnNumber:9},this),s&&e.jsxDEV("span",{className:"text-[10px] font-mono text-text-tertiary/70",children:s},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:32,columnNumber:18},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:30,columnNumber:7},this),n]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:29,columnNumber:5},this)}function H({value:a,onChange:s,placeholder:n}){return e.jsxDEV("input",{list:"lt-facet-keys",className:`${V} w-40`,placeholder:n,value:a,onChange:c=>s(c.target.value)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:43,columnNumber:5},this)}function Pa({value:a,onChange:s,facetKeys:n=[],search:c="",onSearchChange:u}){const N=Da(a.facets),b=Va(a.block),o=a.range??[],d=a.exists??[],f=a.orderBy??[],v=t=>{const r={};for(const l of t)l.key&&(r[l.key]=he(l.value));s({...a,facets:Object.keys(r).length?r:void 0})},j=t=>{const r=t.filter(l=>l.key).map(l=>({[l.key]:he(l.value)}));s({...a,block:r.length?r:void 0})},k=t=>s({...a,range:t.length?t:void 0}),D=t=>s({...a,exists:t.length?t:void 0}),y=t=>s({...a,orderBy:t.length?t:void 0});return e.jsxDEV("div",{className:"text-xs",children:[e.jsxDEV("datalist",{id:"lt-facet-keys",children:n.map(t=>e.jsxDEV("option",{value:t},t,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:89,columnNumber:31},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:88,columnNumber:7},this),e.jsxDEV("datalist",{id:"lt-sort-fields",children:[ja.map(t=>e.jsxDEV("option",{value:t},t,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:92,columnNumber:34},this)),n.map(t=>e.jsxDEV("option",{value:`metadata.${t}`},t,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:93,columnNumber:31},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:91,columnNumber:7},this),u&&e.jsxDEV(w,{title:"Match id",hint:"id · workflow · origin",children:e.jsxDEV("input",{className:`${V} w-full`,placeholder:"Exact escalation, workflow, or origin id…",value:c,onChange:t=>u(t.target.value)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:98,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:97,columnNumber:9},this),e.jsxDEV(w,{title:"Has facet",hint:"metadata @>",children:[...N,{key:"",value:""}].map((t,r)=>e.jsxDEV("div",{className:"mb-1 flex items-center gap-1",children:[e.jsxDEV(H,{value:t.key,placeholder:"key",onChange:l=>{const i=[...N];i[r]={...t,key:l},v(i)}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:110,columnNumber:13},this),e.jsxDEV("span",{className:"text-text-tertiary",children:"="},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:112,columnNumber:13},this),e.jsxDEV("input",{className:`${V} w-40`,placeholder:"value",value:t.value,onChange:l=>{const i=[...N];i[r]={...t,value:l.target.value},v(i)}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:113,columnNumber:13},this),r<N.length&&e.jsxDEV("button",{className:U,onClick:()=>v(N.filter((l,i)=>i!==r)),children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:116,columnNumber:15},this)]},r,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:109,columnNumber:11},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:107,columnNumber:7},this),e.jsxDEV(w,{title:"Range",hint:"numeric",children:[...o,{facet:"",op:"<=",value:0}].map((t,r)=>e.jsxDEV("div",{className:"mb-1 flex items-center gap-1",children:[e.jsxDEV(H,{value:t.facet,placeholder:"numeric facet",onChange:l=>{const i=[...o];i[r]={...t,facet:l},k(i.filter(g=>g.facet))}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:125,columnNumber:13},this),e.jsxDEV("select",{className:V,value:t.op,onChange:l=>{const i=[...o];i[r]={...t,op:l.target.value},k(i.filter(g=>g.facet))},children:ka.map(l=>e.jsxDEV("option",{value:l,children:l},l,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:129,columnNumber:37},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:127,columnNumber:13},this),e.jsxDEV("input",{type:"number",className:`${V} w-24`,value:t.value,onChange:l=>{const i=[...o];i[r]={...t,value:Number(l.target.value)},k(i.filter(g=>g.facet))}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:131,columnNumber:13},this),r<o.length&&e.jsxDEV("button",{className:U,onClick:()=>k(o.filter((l,i)=>i!==r)),children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:134,columnNumber:15},this)]},r,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:124,columnNumber:11},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:122,columnNumber:7},this),e.jsxDEV(w,{title:"Has key",hint:"metadata ? key",children:e.jsxDEV("div",{className:"flex flex-wrap items-center gap-1",children:[d.map(t=>e.jsxDEV("span",{className:"flex items-center gap-1 rounded bg-accent/15 px-1.5 py-0.5 text-accent",children:[t,e.jsxDEV("button",{className:"text-accent/70 hover:text-accent",onClick:()=>D(d.filter(r=>r!==t)),children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:144,columnNumber:18},this)]},t,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:143,columnNumber:13},this)),e.jsxDEV(H,{value:"",placeholder:"+ key",onChange:t=>{t&&!d.includes(t)&&D([...d,t])}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:147,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:141,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:140,columnNumber:7},this),e.jsxDEV(w,{title:"Exclude",hint:"NOT @>",children:[...b,{key:"",value:""}].map((t,r)=>e.jsxDEV("div",{className:"mb-1 flex items-center gap-1",children:[e.jsxDEV(H,{value:t.key,placeholder:"key",onChange:l=>{const i=[...b];i[r]={...t,key:l},j(i)}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:155,columnNumber:13},this),e.jsxDEV("span",{className:"text-text-tertiary",children:"="},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:157,columnNumber:13},this),e.jsxDEV("input",{className:`${V} w-40`,placeholder:"value",value:t.value,onChange:l=>{const i=[...b];i[r]={...t,value:l.target.value},j(i)}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:158,columnNumber:13},this),r<b.length&&e.jsxDEV("button",{className:U,onClick:()=>j(b.filter((l,i)=>i!==r)),children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:161,columnNumber:15},this)]},r,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:154,columnNumber:11},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:152,columnNumber:7},this),e.jsxDEV(w,{title:"Sort by",children:[...f,{field:"",direction:"asc"}].map((t,r)=>e.jsxDEV("div",{className:"mb-1 flex items-center gap-1",children:[e.jsxDEV("input",{list:"lt-sort-fields",className:`${V} w-44`,placeholder:"column or metadata.key",value:t.field,onChange:l=>{const i=[...f];i[r]={...t,field:l.target.value},y(i.filter(g=>g.field))}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:170,columnNumber:13},this),e.jsxDEV("select",{className:V,value:t.direction??"asc",onChange:l=>{const i=[...f];i[r]={...t,direction:l.target.value},y(i.filter(g=>g.field))},children:[e.jsxDEV("option",{value:"asc",children:"asc"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:175,columnNumber:15},this),e.jsxDEV("option",{value:"desc",children:"desc"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:175,columnNumber:47},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:173,columnNumber:13},this),e.jsxDEV("label",{className:"flex items-center gap-1 text-text-tertiary",children:[e.jsxDEV("input",{type:"checkbox",checked:!!t.numeric,onChange:l=>{const i=[...f];i[r]={...t,numeric:l.target.checked},y(i.filter(g=>g.field))}},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:178,columnNumber:15},this),"num"]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:177,columnNumber:13},this),r<f.length&&e.jsxDEV("button",{className:U,onClick:()=>y(f.filter((l,i)=>i!==r)),children:"×"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:183,columnNumber:15},this)]},r,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:169,columnNumber:11},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:167,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/FacetedFilterPanel.tsx",lineNumber:86,columnNumber:5},this)}const Ca=a=>a.isPriorityPending||a.isClaimPending||a.isAssignPending||a.isEscalatePending||a.isTriagePending||a.isCancelPending,ee="inline-flex items-center h-7 px-2.5 text-[11px] font-medium text-text-secondary bg-surface border border-surface-border rounded-[4px] hover:border-accent/50 hover:text-text-primary transition-colors disabled:opacity-50 disabled:hover:border-surface-border",Z=`${ee} appearance-none cursor-pointer`,Fa="inline-flex items-center h-7 px-2.5 text-[11px] font-medium text-status-error bg-surface border border-status-error/30 rounded-[4px] hover:border-status-error hover:bg-status-error/5 transition-colors disabled:opacity-50";function Aa(a){var b;const s=Ca(a),n=ae(),{data:c}=ze(),u=((b=c==null?void 0:c.ai)==null?void 0:b.enabled)===!0,N=a.selectedCount>0;return e.jsxDEV("div",{className:`grid transition-all duration-200 ease-in-out ${N?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0 pointer-events-none"}`,children:e.jsxDEV("div",{className:"overflow-hidden",children:e.jsxDEV("div",{className:"flex flex-wrap items-center gap-2 py-2.5 pl-3 pr-2 mt-4 mb-3 bg-surface-sunken/60 border-l-2 border-l-accent",children:[e.jsxDEV("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-accent tabular-nums",children:[a.selectedCount," selected"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:57,columnNumber:7},this),e.jsxDEV("div",{className:"mx-1 h-4 w-px bg-surface-border"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:61,columnNumber:7},this),e.jsxDEV("select",{onChange:o=>{o.target.value&&(a.onSetPriority(parseInt(o.target.value)),o.target.value="")},disabled:s,className:Z,defaultValue:"",children:[e.jsxDEV("option",{value:"",disabled:!0,children:"Priority…"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:74,columnNumber:9},this),ma.map(o=>e.jsxDEV("option",{value:o.value,children:o.label},o.value,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:76,columnNumber:11},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:64,columnNumber:7},this),e.jsxDEV("select",{onChange:o=>{o.target.value&&(a.onClaim(parseInt(o.target.value)),o.target.value="")},disabled:s,className:Z,defaultValue:"",children:[e.jsxDEV("option",{value:"",disabled:!0,children:"Claim for…"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:91,columnNumber:9},this),n.map(o=>e.jsxDEV("option",{value:o.value,children:o.label},o.value,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:93,columnNumber:11},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:81,columnNumber:7},this),e.jsxDEV("button",{onClick:a.onAssign,disabled:s,className:ee,children:a.isAssignPending?"Assigning…":"Assign to…"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:98,columnNumber:7},this),a.availableRoles.length>0&&e.jsxDEV("select",{onChange:o=>{o.target.value&&(a.onEscalate(o.target.value),o.target.value="")},disabled:s,className:Z,defaultValue:"",children:[e.jsxDEV("option",{value:"",disabled:!0,children:"Escalate to…"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:114,columnNumber:11},this),a.availableRoles.map(o=>e.jsxDEV("option",{value:o,children:o},o,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:116,columnNumber:13},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:104,columnNumber:9},this),u&&e.jsxDEV("button",{onClick:a.onTriage,disabled:s,className:ee,children:a.isTriagePending?"Triaging…":"Triage"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:123,columnNumber:9},this),e.jsxDEV("button",{onClick:a.onCancel,disabled:s,className:Fa,children:a.isCancelPending?"Cancelling…":"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:129,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:133,columnNumber:7},this),s&&e.jsxDEV("span",{className:"text-[11px] text-text-tertiary animate-pulse",children:"Processing…"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:136,columnNumber:9},this),e.jsxDEV("button",{onClick:a.onClearSelection,className:"px-1 text-[11px] font-medium text-text-tertiary hover:text-text-primary transition-colors",children:"Clear"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:140,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:56,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:53,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkActionBar.tsx",lineNumber:48,columnNumber:5},this)}function Ba({open:a,onClose:s,selectedCount:n,selectedRoles:c,onSubmit:u,isPending:N}){const{isSuperAdmin:b}=Le(),o=ae(),[d,f]=x.useState("user"),[v,j]=x.useState(null),[k,D]=x.useState(""),[y,t]=x.useState("30"),[r,l]=x.useState(0),i=x.useCallback(p=>l(p),[]),g=!b&&c.length===1?c[0]:void 0,L=xe(k,250),{data:h,isLoading:O}=da({role:g,status:"active",search:L.trim()||void 0,limit:200}),F=(h==null?void 0:h.users)??[],A=()=>{f("user"),j(null),D(""),t("30"),l(0),s()},J=p=>{j(p),f("duration")},R=()=>{f("user")},q=()=>{if(!v)return;const p=y==="custom"?r:parseInt(y);!p||p<=0||u(v.id,p)};return e.jsxDEV(se,{open:a,onClose:A,title:"Assign Escalations",children:e.jsxDEV("div",{className:"space-y-4",children:[d==="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:n},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:85,columnNumber:15},this)," ","escalation(s) to:"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:83,columnNumber:13},this),e.jsxDEV("input",{type:"text",value:k,onChange:p=>D(p.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:91,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:[O&&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:102,columnNumber:17},this),!O&&F.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:107,columnNumber:17},this),F.map(p=>e.jsxDEV("button",{onClick:()=>J(p),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:p.display_name||p.external_id},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:117,columnNumber:19},this),p.email&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary",children:p.email},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:121,columnNumber:21},this)]},p.id,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:112,columnNumber:17},this))]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:100,columnNumber:13},this),e.jsxDEV("div",{className:"flex justify-end pt-2",children:e.jsxDEV("button",{onClick:A,className:"btn-secondary text-xs",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:130,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:129,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:82,columnNumber:11},this),d==="duration"&&v&&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:v.display_name||v.external_id},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:141,columnNumber:15},this)," ","for:"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:139,columnNumber:13},this),e.jsxDEV("select",{value:y,onChange:p=>{t(p.target.value),l(0)},className:"select w-full text-sm",children:[o.map(p=>e.jsxDEV("option",{value:p.value,children:p.label},p.value,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:153,columnNumber:17},this)),e.jsxDEV("option",{value:"custom",children:"Other..."},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:157,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:147,columnNumber:13},this),y==="custom"&&e.jsxDEV(Ne,{onChange:i,autoFocus:!0},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:160,columnNumber:15},this),e.jsxDEV("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsxDEV("button",{onClick:R,className:"btn-secondary text-xs",children:"Back"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:164,columnNumber:15},this),e.jsxDEV("button",{onClick:q,disabled:N,className:"btn-primary text-xs",children:N?"Assigning...":"Assign"},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:167,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:163,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:138,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:80,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/modal/BulkAssignModal.tsx",lineNumber:79,columnNumber:5},this)}function Sa({open:a,onClose:s,selectedCount:n,onSubmit:c,isPending:u}){const[N,b]=x.useState(""),o=()=>{c(N||void 0)};return e.jsxDEV(se,{open:a,onClose:s,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:n},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:N,onChange:d=>b(d.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:s,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:o,disabled:u,className:"btn-primary text-xs",children:u?"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 T(a,s,n){return c=>{a.mutate(c,{onSuccess:()=>{s(),n==null||n()}})}}function Ma(a){const s=()=>[...a.selectedIds];return{handleSetPriority:d=>{T(a.setPriority,a.clearSelection)({ids:s(),priority:d})},handleBulkClaim:d=>{T(a.bulkClaim,a.clearSelection)({ids:s(),durationMinutes:d})},handleBulkEscalate:d=>{T(a.bulkEscalate,a.clearSelection)({ids:s(),targetRole:d})},handleBulkTriage:d=>{T(a.bulkTriage,a.clearSelection,a.closeTriageModal)({ids:s(),hint:d})},handleBulkAssign:(d,f)=>{T(a.bulkAssign,a.clearSelection,a.closeAssignModal)({ids:s(),targetUserId:d,durationMinutes:f})},handleBulkCancel:()=>{T(a.bulkCancel,a.clearSelection,a.closeCancelModal)({ids:s()})}}}function wa({claimTarget:a,onClose:s,claimDuration:n,onDurationChange:c,claimDurations:u,onCustomClaimChange:N,onClaim:b,isPending:o}){return e.jsxDEV(se,{open:!!a,onClose:s,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:a==null?void 0:a.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:n,onChange:d=>{c(d.target.value)},className:"select w-full text-sm",children:[u.map(d=>e.jsxDEV("option",{value:d.value,children:d.label},d.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),n==="custom"&&e.jsxDEV(Ne,{onChange:N,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:s,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:b,className:"btn-primary text-xs",disabled:o,children:o?"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 rs(){var me,de,ue,pe,be;sa();const a=Ze(),{filters:s,setFilter:n,pagination:c,sort:u,setSort:N}=oa({filters:{role:"",type:"",priority:"",status:"available",search:""}}),b=xe(s.search,300),o=ae(),[d,f]=x.useState(null),[v,j]=x.useState("30"),[k,D]=x.useState(0),y=x.useCallback(m=>D(m),[]),[t,r]=x.useState(new Set),[l,i]=x.useState(!1),[g,L]=ea(),h=x.useMemo(()=>va(g),[g]),O=x.useCallback(m=>{L(E=>{const W=new URLSearchParams(E);return Ea(W,m),W.delete("page"),W},{replace:!0})},[L]),{data:F}=Ie(l),A=ya(h)+(s.search?1:0),[J,R]=x.useState(!1),[q,p]=x.useState(!1),[fe,G]=x.useState(!1),te=$e(),le=Ue(),oe=He(),Q=Je(),re=qe(),Y=Ge(),I=Qe(),{data:B}=la(),{data:K}=Ye();x.useEffect(()=>{r(new Set)},[s.role,s.type,s.priority,s.status,b,c.page,c.pageSize]);const _=s.status||"",z=_==="available",X=_==="claimed",ie=X?"pending":_==="resolved"?"resolved":_==="cancelled"?"cancelled":_==="expired"?"expired":void 0,ne={role:s.role||void 0,type:s.type||void 0,priority:s.priority?parseInt(s.priority):void 0,limit:c.pageSize,offset:c.offset,sort_by:u.sort_by||"created_at",order:u.order||"desc",search:b||void 0,...h},ge=Ke({...ne,enabled:z}),ve=Xe({status:ie,claimed:X||void 0,...ne,enabled:!z}),Ee=z?ge:ve,{data:S,isLoading:ye,error:$,refetch:ke,isFetching:je}=Ee,De=ra(`/escalations${z?"/available":""}`,{status:ie,claimed:X||void 0,role:s.role||void 0,type:s.type||void 0,priority:s.priority||void 0,search:b||void 0,sort_by:u.sort_by||"created_at",order:u.order||"desc",limit:c.pageSize,offset:c.offset,facets:h.facets&&Object.keys(h.facets).length?JSON.stringify(h.facets):void 0,block:(me=h.block)!=null&&me.length?JSON.stringify(h.block):void 0,range:(de=h.range)!=null&&de.length?JSON.stringify(h.range):void 0,exists:(ue=h.exists)!=null&&ue.length?JSON.stringify(h.exists):void 0,roles:(pe=h.roles)!=null&&pe.length?JSON.stringify(h.roles):void 0,orderBy:(be=h.orderBy)!=null&&be.length?JSON.stringify(h.orderBy):void 0,available:h.available!=null?String(h.available):void 0}),P=(S==null?void 0:S.escalations)??[],ce=(S==null?void 0:S.total)??0,{canBulk:Ve}=We(),Pe=x.useMemo(()=>{const m=new Set;for(const E of P)t.has(E.id)&&m.add(E.role);return[...m]},[P,t]),Ce=x.useCallback(()=>r(new Set),[]),Fe=()=>{if(!d)return;const m=v==="custom"?k:parseInt(v);!m||m<=0||te.mutate({id:d.id,durationMinutes:m},{onSuccess:()=>{f(null),a(`/escalations/detail/${d.id}`)}})},{handleSetPriority:Ae,handleBulkClaim:Be,handleBulkEscalate:Se,handleBulkTriage:Me,handleBulkAssign:we,handleBulkCancel:Te}=Ma({selectedIds:t,clearSelection:Ce,setPriority:le,bulkClaim:oe,bulkEscalate:re,bulkTriage:Y,bulkAssign:Q,bulkCancel:I,closeTriageModal:()=>R(!1),closeAssignModal:()=>p(!1),closeCancelModal:()=>G(!1)}),Oe=m=>{const E=new Set(t);E.has(m)?E.delete(m):E.add(m),r(E)},Re=()=>{t.size===P.length?r(new Set):r(new Set(P.map(m=>m.id)))},_e=[Ve?{key:"select",label:e.jsxDEV("input",{type:"checkbox",checked:P.length>0&&t.size===P.length,onChange:Re,className:"rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:227,columnNumber:9},this),render:m=>e.jsxDEV("input",{type:"checkbox",checked:t.has(m.id),onChange:E=>{E.stopPropagation(),Oe(m.id)},onClick:E=>E.stopPropagation(),className:"rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:235,columnNumber:9},this),className:"w-10"}:{key:"spacer",label:"",render:()=>null,className:"w-10"},...ua,{key:"actions",label:"",render:m=>e.jsxDEV(ba,{children:e.jsxDEV(ha,{icon:xa,title:"Claim escalation",onClick:()=>f(m),colorClass:"text-accent/75 hover:text-accent",size:"sm"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:259,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:258,columnNumber:9},this),className:"w-10 text-right"}];return e.jsxDEV("div",{children:[e.jsxDEV(ca,{title:"Available Escalations",docsHash:"#docs:dashboard.md:all-escalations"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:274,columnNumber:7},this),e.jsxDEV(pa,{filters:s,setFilter:n,roles:(B==null?void 0:B.roles)??[],types:(K==null?void 0:K.types)??[],showStatus:!0,showSearch:!1,actions:e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Na,{onRefresh:()=>ke(),isFetching:je,apiPath:De},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:285,columnNumber:13},this),e.jsxDEV("button",{onClick:()=>i(m=>!m),className:"relative ml-2 inline-flex h-7 w-7 items-center justify-center rounded text-text-tertiary hover:bg-surface-hover hover:text-text-primary transition-colors",title:"Faceted query",children:[e.jsxDEV(fa,{className:"w-4 h-4"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:295,columnNumber:15},this),A>0&&e.jsxDEV("span",{className:"absolute -right-1 -top-1 flex h-3.5 min-w-[14px] items-center justify-center rounded-full bg-accent px-0.5 text-[9px] font-medium text-white",children:A},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:297,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:290,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:284,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:276,columnNumber:7},this),aa.createPortal(e.jsxDEV("div",{className:`fixed right-0 bottom-0 w-[420px] z-40 border-l border-surface-border bg-surface overflow-y-auto shadow-lg transition-transform duration-200 ease-out ${l?"translate-x-0":"pointer-events-none translate-x-full"}`,style:{top:"3.5rem"},"aria-hidden":!l,children:[e.jsxDEV("div",{className:"sticky top-0 z-10 flex items-center justify-between px-4 py-3 bg-surface border-b border-surface-border/50",children:[e.jsxDEV("span",{className:"text-xs font-medium text-text-primary",children:"Faceted query"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:315,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[A>0&&e.jsxDEV("button",{onClick:()=>{O({}),n("search","")},className:"text-[11px] text-text-tertiary hover:text-text-primary transition-colors",children:"Clear"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:318,columnNumber:17},this),e.jsxDEV("button",{onClick:()=>i(!1),className:"p-1 rounded hover:bg-surface-hover text-text-tertiary hover:text-text-primary transition-colors",title:"Close",children:e.jsxDEV(ga,{className:"w-4 h-4"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:330,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:325,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:316,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:314,columnNumber:11},this),e.jsxDEV("div",{className:"px-4 py-2",children:[e.jsxDEV("p",{className:"mb-2 text-[11px] leading-snug text-text-tertiary",children:["Precise metadata facets plus exact correlation-id lookup — they compose in one SQL query. Facet keys are the ones that actually exist in your visible escalations. Set status to ",e.jsxDEV("span",{className:"font-medium",children:"All"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:338,columnNumber:29},this)," to find an order across every status; the whole query is shareable via the URL."]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:335,columnNumber:13},this),e.jsxDEV(Pa,{value:h,onChange:O,facetKeys:(F==null?void 0:F.keys)??[],search:s.search??"",onSearchChange:m=>n("search",m)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:341,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:334,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:309,columnNumber:9},this),document.body),e.jsxDEV(Aa,{selectedCount:t.size,onClearSelection:()=>r(new Set),onSetPriority:Ae,onClaim:Be,onAssign:()=>p(!0),onEscalate:Se,onTriage:()=>R(!0),onCancel:()=>G(!0),isPriorityPending:le.isPending,isClaimPending:oe.isPending,isAssignPending:Q.isPending,isEscalatePending:re.isPending,isTriagePending:Y.isPending,isCancelPending:I.isPending,availableRoles:(B==null?void 0:B.roles)??[]},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:354,columnNumber:7},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:373,columnNumber:9},this),e.jsxDEV(ia,{columns:_e,data:P,keyFn:m=>m.id,onRowClick:m=>a(`/escalations/detail/${m.id}`,{state:{from:"/escalations/available"}}),isLoading:ye,emptyMessage:$?"Unable to load data":"No available escalations",sort:u,onSort:N},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:380,columnNumber:7},this),e.jsxDEV(na,{page:c.page,totalPages:c.totalPages(ce),onPageChange:c.setPage,total:ce,pageSize:c.pageSize,onPageSizeChange:c.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:391,columnNumber:7},this),e.jsxDEV(wa,{claimTarget:d,onClose:()=>f(null),claimDuration:v,onDurationChange:m=>{j(m),D(0)},claimDurations:o,customClaimMinutes:k,onCustomClaimChange:y,onClaim:Fe,isPending:te.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:400,columnNumber:7},this),e.jsxDEV(Sa,{open:J,onClose:()=>R(!1),selectedCount:t.size,onSubmit:Me,isPending:Y.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:412,columnNumber:7},this),e.jsxDEV(Ba,{open:q,onClose:()=>p(!1),selectedCount:t.size,selectedRoles:Pe,onSubmit:we,isPending:Q.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:420,columnNumber:7},this),e.jsxDEV(ta,{open:fe,onClose:()=>G(!1),onConfirm:Te,selectedCount:t.size,isPending:I.isPending,error:I.error},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:429,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/AvailableEscalationsPage.tsx",lineNumber:273,columnNumber:5},this)}export{rs as AvailableEscalationsPage};
|
|
2
|
+
//# sourceMappingURL=AvailableEscalationsPage-DNQbeIcn.js.map
|