@hotmeshio/long-tail 0.28.2 → 0.28.4
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/services/machines/gateway/dispatcher.js +18 -6
- package/build/services/machines/gateway/executor.d.ts +6 -1
- package/build/services/machines/gateway/executor.js +19 -2
- package/build/services/machines/gateway/plan-escalation.js +21 -3
- package/build/services/machines/gateway/plan-machine.js +1 -1
- package/build/services/machines/gateway/plan-shared.d.ts +8 -0
- package/build/services/machines/gateway/plan-shared.js +15 -1
- package/build/services/machines/gateway/state.d.ts +4 -0
- package/build/services/machines/gateway/state.js +1 -1
- package/dashboard/dist/assets/{AdminDashboard-Bm7VG65H.js → AdminDashboard-DRE0hSDS.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-Bm7VG65H.js.map → AdminDashboard-DRE0hSDS.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-aJF7Sdbc.js → AgentConfigPage-BuflQGgy.js} +2 -2
- package/dashboard/dist/assets/{AgentConfigPage-aJF7Sdbc.js.map → AgentConfigPage-BuflQGgy.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-GwwghhxT.js → AgentDetailPage-BiL9FB7i.js} +2 -2
- package/dashboard/dist/assets/{AgentDetailPage-GwwghhxT.js.map → AgentDetailPage-BiL9FB7i.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-DVvCzZyg.js → AgentsPage-C4ZxCNxt.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-DVvCzZyg.js.map → AgentsPage-C4ZxCNxt.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-Cxmcji_K.js → AvailableEscalationsPage-B5p8QJvI.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-Cxmcji_K.js.map → AvailableEscalationsPage-B5p8QJvI.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-CofRxk4L.js → BotPicker-B7V77PnY.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-CofRxk4L.js.map → BotPicker-B7V77PnY.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-BARWuz4L.js → BulkAssignModal-DcGVMQqm.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-BARWuz4L.js.map → BulkAssignModal-DcGVMQqm.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-BJAWVNEx.js → CapabilitiesPage-DmbC1pEs.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-BJAWVNEx.js.map → CapabilitiesPage-DmbC1pEs.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-CtgoaG75.js → CollapsibleSection-C81S1qic.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-CtgoaG75.js.map → CollapsibleSection-C81S1qic.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-BYXXBWs6.js → ConfirmDeleteModal-3RFyWN9Q.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-BYXXBWs6.js.map → ConfirmDeleteModal-3RFyWN9Q.js.map} +1 -1
- package/dashboard/dist/assets/{ConnectedAppsPage-D0JkzWa7.js → ConnectedAppsPage-B0D2OvTD.js} +2 -2
- package/dashboard/dist/assets/{ConnectedAppsPage-D0JkzWa7.js.map → ConnectedAppsPage-B0D2OvTD.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-BcFxdZYN.js → CountdownTimer-iAG28fzG.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-BcFxdZYN.js.map → CountdownTimer-iAG28fzG.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-DPSY20rV.js → CredentialsPage-DoFwNvFv.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-DPSY20rV.js.map → CredentialsPage-DoFwNvFv.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-Dg_Oew_Y.js → CronLabel-C1Bb2wo4.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-Dg_Oew_Y.js.map → CronLabel-C1Bb2wo4.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-Dm3G5fK2.js → ElapsedCell-DZs1I1JW.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-Dm3G5fK2.js.map → ElapsedCell-DZs1I1JW.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-CrEEP04e.js → EntityTimelinePanel-Du1O6Oly.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-CrEEP04e.js.map → EntityTimelinePanel-Du1O6Oly.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-wOInXcjs.js → EscalationListSchemaPage-CrpBhC0e.js} +2 -2
- package/dashboard/dist/assets/{EscalationListSchemaPage-wOInXcjs.js.map → EscalationListSchemaPage-CrpBhC0e.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-CrIj_g9d.js → EscalationSchemaPage-Co59lcuD.js} +2 -2
- package/dashboard/dist/assets/{EscalationSchemaPage-CrIj_g9d.js.map → EscalationSchemaPage-Co59lcuD.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTimeline-CeAsl5IT.js → EscalationTimeline-B_fzNsX5.js} +2 -2
- package/dashboard/dist/assets/{EscalationTimeline-CeAsl5IT.js.map → EscalationTimeline-B_fzNsX5.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTitleSelect-D8qpCYiy.js → EscalationTitleSelect-C2Goebjo.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-D8qpCYiy.js.map → EscalationTitleSelect-C2Goebjo.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-CvaqVPsr.js → EscalationsOverview-Cgmrl8Zc.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-CvaqVPsr.js.map → EscalationsOverview-Cgmrl8Zc.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-Be0JuEl6.js → EventTable-BdEiu3Fv.js} +2 -2
- package/dashboard/dist/assets/{EventTable-Be0JuEl6.js.map → EventTable-BdEiu3Fv.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-BVyAjIgv.js → FilterBar-CzKYBOMC.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-BVyAjIgv.js.map → FilterBar-CzKYBOMC.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-D_QigJeD.js → GraphInvokePage-CcDFhY53.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-D_QigJeD.js.map → GraphInvokePage-CcDFhY53.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-C1haeuNy.js → HomePage-Xahqcdu9.js} +2 -2
- package/dashboard/dist/assets/{HomePage-C1haeuNy.js.map → HomePage-Xahqcdu9.js.map} +1 -1
- package/dashboard/dist/assets/{LinePage-CWD5pv1g.js → LinePage-DKwhGunp.js} +2 -2
- package/dashboard/dist/assets/{LinePage-CWD5pv1g.js.map → LinePage-DKwhGunp.js.map} +1 -1
- package/dashboard/dist/assets/{LinesPage-NqChsKcO.js → LinesPage-BXZVO4MC.js} +2 -2
- package/dashboard/dist/assets/{LinesPage-NqChsKcO.js.map → LinesPage-BXZVO4MC.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-BZCNrTh6.js → ListToolbar-orQsOdl_.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-BZCNrTh6.js.map → ListToolbar-orQsOdl_.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-yJTYnh1z.js → McpOverview-pSnadtSM.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-yJTYnh1z.js.map → McpOverview-pSnadtSM.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-ChuLpJ4u.js → McpQueryDetailPage-BCAJ3rKO.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-ChuLpJ4u.js.map → McpQueryDetailPage-BCAJ3rKO.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-9S-v9soF.js → McpQueryPage-CRyXeRp5.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-9S-v9soF.js.map → McpQueryPage-CRyXeRp5.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-BhrcfxD5.js → McpRunDetailPage-BHppCztI.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-BhrcfxD5.js.map → McpRunDetailPage-BHppCztI.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-C5_i8_Zx.js → McpRunsPage-Cd9yCT-_.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-C5_i8_Zx.js.map → McpRunsPage-Cd9yCT-_.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-C03CeU5P.js → OperationsPage-BtnthZgj.js} +2 -2
- package/dashboard/dist/assets/{OperationsPage-C03CeU5P.js.map → OperationsPage-BtnthZgj.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-BzC134Jt.js → OperatorDashboard-B4_OBhYh.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-BzC134Jt.js.map → OperatorDashboard-B4_OBhYh.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-D0mY9L6j.js → PersonaDetailPage-BAYjM9qf.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-D0mY9L6j.js.map → PersonaDetailPage-BAYjM9qf.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-FFlm5Eug.js → PersonasPage-6HsOp-1y.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-FFlm5Eug.js.map → PersonasPage-6HsOp-1y.js.map} +1 -1
- package/dashboard/dist/assets/{PortalPage-Cpc25uO-.js → PortalPage-6OMr7KtJ.js} +2 -2
- package/dashboard/dist/assets/{PortalPage-Cpc25uO-.js.map → PortalPage-6OMr7KtJ.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-Di2J7KwY.js → ProcessDetailPage-AidH_h7z.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-Di2J7KwY.js.map → ProcessDetailPage-AidH_h7z.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-BEXwU3Z0.js → ProcessesListPage-BWKoKbXk.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-BEXwU3Z0.js.map → ProcessesListPage-BWKoKbXk.js.map} +1 -1
- package/dashboard/dist/assets/{ResolverForm-2ks-3jXC.js → ResolverForm-BaSvhLoT.js} +2 -2
- package/dashboard/dist/assets/ResolverForm-BaSvhLoT.js.map +1 -0
- package/dashboard/dist/assets/{RoleDetailPage-DqoOk0xc.js → RoleDetailPage-D_30TDVh.js} +2 -2
- package/dashboard/dist/assets/{RoleDetailPage-DqoOk0xc.js.map → RoleDetailPage-D_30TDVh.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-CPmo8Srr.js → RolesPage-T2hH_MV5.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-CPmo8Srr.js.map → RolesPage-T2hH_MV5.js.map} +1 -1
- package/dashboard/dist/assets/{RosterWidget-D2yovCKw.js → RosterWidget-DG6Rcx4P.js} +2 -2
- package/dashboard/dist/assets/{RosterWidget-D2yovCKw.js.map → RosterWidget-DG6Rcx4P.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-CMv96On6.js → RunAsSelector-M2h9U6PP.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-CMv96On6.js.map → RunAsSelector-M2h9U6PP.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-CA6cTT-M.js → ScanCodesPage-lB_WxoZw.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-CA6cTT-M.js.map → ScanCodesPage-lB_WxoZw.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-DnctN5-H.js → ScanSchemeDetailPage-C3VLg61H.js} +2 -2
- package/dashboard/dist/assets/{ScanSchemeDetailPage-DnctN5-H.js.map → ScanSchemeDetailPage-C3VLg61H.js.map} +1 -1
- package/dashboard/dist/assets/{ScanStationPage-Bk8RwkKL.js → ScanStationPage-CVET1_4r.js} +2 -2
- package/dashboard/dist/assets/{ScanStationPage-Bk8RwkKL.js.map → ScanStationPage-CVET1_4r.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-B0FSuUgs.js → StickyPagination-BdjseWXr.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-B0FSuUgs.js.map → StickyPagination-BdjseWXr.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-BwZEvMpP.js → StreamMessageDetail-DJCBxETh.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-BwZEvMpP.js.map → StreamMessageDetail-DJCBxETh.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-BDVQEaMw.js → SwimlaneTimeline-DiXm9jIk.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-BDVQEaMw.js.map → SwimlaneTimeline-DiXm9jIk.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-BOlv3iGB.js → TaskDetailPage-m8CQFN4w.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-BOlv3iGB.js.map → TaskDetailPage-m8CQFN4w.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-e2teY0bD.js → TasksListPage-DHBSUhZC.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-e2teY0bD.js.map → TasksListPage-DHBSUhZC.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-Cvkpf_b3.js → TimeAgo-Cq3bKUd-.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-Cvkpf_b3.js.map → TimeAgo-Cq3bKUd-.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-B3btAV0N.js → TimestampCell-e5gRR_FY.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-B3btAV0N.js.map → TimestampCell-e5gRR_FY.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-B03nebR7.js → ToolTestPanel-Bg0ss9oN.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-B03nebR7.js.map → ToolTestPanel-Bg0ss9oN.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-DBRWne3O.js → TopicDetailPage-DhPiCfOO.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-DBRWne3O.js.map → TopicDetailPage-DhPiCfOO.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-CVe2M9HD.js → TopicsPage-BqZaVv3d.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-CVe2M9HD.js.map → TopicsPage-BqZaVv3d.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-B_q_qp6V.js → UserName-C6ZNHHKN.js} +2 -2
- package/dashboard/dist/assets/{UserName-B_q_qp6V.js.map → UserName-C6ZNHHKN.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-Bh_dr9tM.js → WorkflowExecutionPage-BUqIhtcr.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-Bh_dr9tM.js.map → WorkflowExecutionPage-BUqIhtcr.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-DA6Mj7qH.js → WorkflowsDashboard-BKxhC_hT.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-DA6Mj7qH.js.map → WorkflowsDashboard-BKxhC_hT.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-B1kBLj-a.js → WorkflowsOverview-018s2q_p.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-B1kBLj-a.js.map → WorkflowsOverview-018s2q_p.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-6GJM8QIX.js → YamlWorkflowDetailPage-C2zcXDr1.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-6GJM8QIX.js.map → YamlWorkflowDetailPage-C2zcXDr1.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-Bu811C7f.js → YamlWorkflowsPage-aVcNZNu6.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-Bu811C7f.js.map → YamlWorkflowsPage-aVcNZNu6.js.map} +1 -1
- package/dashboard/dist/assets/{agents-MPk_GnYz.js → agents-DRaaJUue.js} +2 -2
- package/dashboard/dist/assets/{agents-MPk_GnYz.js.map → agents-DRaaJUue.js.map} +1 -1
- package/dashboard/dist/assets/{bots-2RihE2Tc.js → bots-C4N90NCj.js} +2 -2
- package/dashboard/dist/assets/{bots-2RihE2Tc.js.map → bots-C4N90NCj.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-CC4iwJ1P.js → capabilities-BoRWifSC.js} +2 -2
- package/dashboard/dist/assets/{capabilities-CC4iwJ1P.js.map → capabilities-BoRWifSC.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-Bmkic8BH.js → controlplane-DGZAxi7J.js} +2 -2
- package/dashboard/dist/assets/{controlplane-Bmkic8BH.js.map → controlplane-DGZAxi7J.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-B0lhUUrQ.js → escalation-columns-DJbfsH_m.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-B0lhUUrQ.js.map → escalation-columns-DJbfsH_m.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-items-7WFpPo46.js → escalation-items-C8iJZEA8.js} +2 -2
- package/dashboard/dist/assets/{escalation-items-7WFpPo46.js.map → escalation-items-C8iJZEA8.js.map} +1 -1
- package/dashboard/dist/assets/{index-CvJsvqIc.js → index-3HaFP00M.js} +2 -2
- package/dashboard/dist/assets/{index-CvJsvqIc.js.map → index-3HaFP00M.js.map} +1 -1
- package/dashboard/dist/assets/{index-CmsmwCyv.js → index-BFxHIfQ_.js} +2 -2
- package/dashboard/dist/assets/{index-CmsmwCyv.js.map → index-BFxHIfQ_.js.map} +1 -1
- package/dashboard/dist/assets/{index-C2CLfGwL.js → index-BhS9XSy8.js} +2 -2
- package/dashboard/dist/assets/{index-C2CLfGwL.js.map → index-BhS9XSy8.js.map} +1 -1
- package/dashboard/dist/assets/{index-DSUtfDXx.js → index-BuSUevzO.js} +2 -2
- package/dashboard/dist/assets/{index-DSUtfDXx.js.map → index-BuSUevzO.js.map} +1 -1
- package/dashboard/dist/assets/{index-Da6ycKyf.js → index-CXXc9sUr.js} +2 -2
- package/dashboard/dist/assets/index-CXXc9sUr.js.map +1 -0
- package/dashboard/dist/assets/{index-D-ilRyfy.js → index-CeeSFnl-.js} +2 -2
- package/dashboard/dist/assets/{index-D-ilRyfy.js.map → index-CeeSFnl-.js.map} +1 -1
- package/dashboard/dist/assets/{index-CcArGkzI.js → index-CjjRxpVe.js} +2 -2
- package/dashboard/dist/assets/index-CjjRxpVe.js.map +1 -0
- package/dashboard/dist/assets/{index-CRWsB7ZC.js → index-CyL-6CAa.js} +2 -2
- package/dashboard/dist/assets/{index-CRWsB7ZC.js.map → index-CyL-6CAa.js.map} +1 -1
- package/dashboard/dist/assets/{index-C3AeFihz.js → index-DIU89TX3.js} +2 -2
- package/dashboard/dist/assets/{index-C3AeFihz.js.map → index-DIU89TX3.js.map} +1 -1
- package/dashboard/dist/assets/{index-B_XV1rwu.js → index-DMKLnxt8.js} +2 -2
- package/dashboard/dist/assets/{index-B_XV1rwu.js.map → index-DMKLnxt8.js.map} +1 -1
- package/dashboard/dist/assets/{index-CTOv3G7a.js → index-DeyA88jq.js} +2 -2
- package/dashboard/dist/assets/{index-CTOv3G7a.js.map → index-DeyA88jq.js.map} +1 -1
- package/dashboard/dist/assets/{index-CBri8fYM.js → index-DhKGp4QK.js} +2 -2
- package/dashboard/dist/assets/{index-CBri8fYM.js.map → index-DhKGp4QK.js.map} +1 -1
- package/dashboard/dist/assets/{index-CkMHS-hG.js → index-pzbGpihI.js} +3 -3
- package/dashboard/dist/assets/{index-CkMHS-hG.js.map → index-pzbGpihI.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-Bpbg20DC.js → knowledge-BWo3OCJc.js} +2 -2
- package/dashboard/dist/assets/{knowledge-Bpbg20DC.js.map → knowledge-BWo3OCJc.js.map} +1 -1
- package/dashboard/dist/assets/{machines-BqOZZU-3.js → machines-LEYY_yar.js} +2 -2
- package/dashboard/dist/assets/{machines-BqOZZU-3.js.map → machines-LEYY_yar.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-CmcUXYce.js → mcp-_0kFRcyT.js} +2 -2
- package/dashboard/dist/assets/{mcp-CmcUXYce.js.map → mcp-_0kFRcyT.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-C8buQxN9.js → mcp-query-BzmN0lc5.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-C8buQxN9.js.map → mcp-query-BzmN0lc5.js.map} +1 -1
- package/dashboard/dist/assets/{personas-C2n5oDmY.js → personas-kE4PMrgo.js} +2 -2
- package/dashboard/dist/assets/{personas-C2n5oDmY.js.map → personas-kE4PMrgo.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-RKpSkFz7.js → pipelines-DYDNaypF.js} +2 -2
- package/dashboard/dist/assets/{pipelines-RKpSkFz7.js.map → pipelines-DYDNaypF.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Dab4hExW.js → tasks-ClJ-mbj9.js} +2 -2
- package/dashboard/dist/assets/{tasks-Dab4hExW.js.map → tasks-ClJ-mbj9.js.map} +1 -1
- package/dashboard/dist/assets/{topics-FTMNP7r3.js → topics-oHX4vbqe.js} +2 -2
- package/dashboard/dist/assets/{topics-FTMNP7r3.js.map → topics-oHX4vbqe.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-B_1u1YIk.js → useDebouncedValue-C97KADrj.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-B_1u1YIk.js.map → useDebouncedValue-C97KADrj.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-HUeAI7Qb.js → useNamespace-Kje0Rn7j.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-HUeAI7Qb.js.map → useNamespace-Kje0Rn7j.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-Cax54qHH.js → useYamlActivityEvents-DMz-HKFv.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-Cax54qHH.js.map → useYamlActivityEvents-DMz-HKFv.js.map} +1 -1
- package/dashboard/dist/assets/{validate-DxOaV7QS.js → validate-hUqjWN63.js} +2 -2
- package/dashboard/dist/assets/{validate-DxOaV7QS.js.map → validate-hUqjWN63.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-BgY1XHJx.js → yaml-workflows-64vfmKJx.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-BgY1XHJx.js.map → yaml-workflows-64vfmKJx.js.map} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/docs/machines.md +2 -2
- package/package.json +1 -1
- package/dashboard/dist/assets/ResolverForm-2ks-3jXC.js.map +0 -1
- package/dashboard/dist/assets/index-CcArGkzI.js.map +0 -1
- package/dashboard/dist/assets/index-Da6ycKyf.js.map +0 -1
package/dashboard/dist/assets/{YamlWorkflowsPage-Bu811C7f.js → YamlWorkflowsPage-aVcNZNu6.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e}from"./vendor-query-DvWWuNIB.js";import{u as h}from"./yaml-workflows-
|
|
2
|
-
//# sourceMappingURL=YamlWorkflowsPage-
|
|
1
|
+
import{j as e}from"./vendor-query-DvWWuNIB.js";import{u as h}from"./yaml-workflows-64vfmKJx.js";import{c as u}from"./index-pzbGpihI.js";import{u as f}from"./useFilterParams-DBRw1Hcv.js";import{P as d}from"./PageHeader-Hx8APPwE.js";import{F as g,a as w,b as j}from"./FilterBar-CzKYBOMC.js";import{E as p}from"./EmptyState-DgC_6njU.js";import{T as b}from"./ToolPill-GsKQ80CO.js";import{N as v}from"./NamespacePill-OTZD2hzt.js";import{S as y}from"./StatusBadge-DHVwxre2.js";import{n as N,W as k}from"./vendor-icons-fxBvvHBi.js";import{u as F}from"./vendor-react-_9U4mKFr.js";function O(){var c;const a=F(),{data:r}=u(),o=!!((c=r==null?void 0:r.ai)!=null&&c.enabled),{filters:t,setFilter:l}=f({filters:{status:"",search:""}}),{data:i,isLoading:m}=h({status:t.status||void 0,search:t.search||void 0,limit:200,offset:0}),n=(i==null?void 0:i.workflows)??[];return m?e.jsxs("div",{children:[e.jsx(d,{title:"Configure",docsHash:"#docs:dashboard.md:graph-workflows"}),e.jsx("div",{className:"animate-pulse space-y-0",children:Array.from({length:4}).map((s,x)=>e.jsx("div",{className:"h-14 border-b last:border-b-0 px-6 flex items-center",children:e.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})},x))})]}):e.jsxs("div",{children:[e.jsx(d,{title:"Configure",docsHash:"#docs:dashboard.md:graph-workflows",actions:o?e.jsx("button",{onClick:()=>a("/mcp/queries/new"),className:"btn-primary text-xs",children:"Design Flow"}):void 0}),e.jsxs("p",{className:"text-sm text-text-secondary mb-6 max-w-2xl leading-relaxed",children:["The compiled form of a durable workflow — the same guarantees at roughly 3× the speed. Each flow is a graph the router discovers and runs on demand. Open one to inspect or run it",o?", or design a new one from a description.":"."]}),e.jsxs(g,{children:[e.jsx(w,{label:"Search",value:t.search,onChange:s=>l("search",s),placeholder:"Flow or namespace…"}),e.jsx(j,{label:"Status",value:t.status,onChange:s=>l("status",s),options:[{value:"draft",label:"Draft"},{value:"deployed",label:"Deployed"},{value:"active",label:"Active"},{value:"archived",label:"Archived"}]})]}),n.length===0?o?e.jsx("div",{className:"cursor-pointer",onClick:()=>a("/mcp/queries/new"),children:e.jsx(p,{icon:N,title:"No graph flows yet",description:"Open the Designer to compile your first flow from a description, or register flows at startup with the graphWorkflows config."})}):e.jsx(p,{icon:k,title:"No graph flows yet",description:"Register graph flows at startup with the graphWorkflows config — see the docs for an example."}):e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"px-6 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:"Flow"}),e.jsx("th",{className:"px-4 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-40",children:"Namespace"}),e.jsx("th",{className:"px-4 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-20",children:"Version"}),e.jsx("th",{className:"px-4 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-28",children:"Status"})]})}),e.jsx("tbody",{children:n.map(s=>e.jsxs("tr",{onClick:()=>a(`/mcp/workflows/${s.id}`),className:"border-b border-surface-border/50 hover:bg-surface-hover/40 transition-colors duration-100 cursor-pointer",children:[e.jsxs("td",{className:"px-6 py-2.5",children:[e.jsx(b,{name:s.graph_topic,size:"md"}),s.description&&e.jsx("p",{className:"text-2xs leading-snug text-text-quaternary mt-0.5",children:s.description})]}),e.jsx("td",{className:"px-4 py-2.5",children:e.jsx(v,{namespace:s.app_id})}),e.jsxs("td",{className:"px-4 py-2.5 text-2xs text-text-quaternary font-mono whitespace-nowrap",children:["v",s.content_version]}),e.jsx("td",{className:"px-4 py-2.5 whitespace-nowrap",children:e.jsx(y,{status:s.status})})]},s.id))})]})]})}export{O as YamlWorkflowsPage};
|
|
2
|
+
//# sourceMappingURL=YamlWorkflowsPage-aVcNZNu6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YamlWorkflowsPage-
|
|
1
|
+
{"version":3,"file":"YamlWorkflowsPage-aVcNZNu6.js","sources":["../../src/pages/workflows/YamlWorkflowsPage.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport { Wand2, Workflow } from 'lucide-react';\nimport { useYamlWorkflows } from '../../api/yaml-workflows';\nimport { useSettings } from '../../api/settings';\nimport { useFilterParams } from '../../hooks/useFilterParams';\n\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { FilterBar, FilterSelect, FilterInput } from '../../components/common/data/FilterBar';\nimport { EmptyState } from '../../components/common/display/EmptyState';\nimport { ToolPill } from '../../components/common/display/ToolPill';\nimport { NamespacePill } from '../../components/common/display/NamespacePill';\nimport { StatusBadge } from '../../components/common/display/StatusBadge';\n\n// ── Page: Graph › Configure ─────────────────────────────────────────────────\n\nexport function YamlWorkflowsPage() {\n const navigate = useNavigate();\n const { data: settings } = useSettings();\n const aiEnabled = !!settings?.ai?.enabled;\n const { filters, setFilter } = useFilterParams({\n filters: { status: '', search: '' },\n });\n\n const { data, isLoading } = useYamlWorkflows({\n status: (filters.status || undefined) as any,\n search: filters.search || undefined,\n limit: 200,\n offset: 0,\n });\n\n const flows = data?.workflows ?? [];\n\n if (isLoading) {\n return (\n <div>\n <PageHeader title=\"Configure\" docsHash=\"#docs:dashboard.md:graph-workflows\" />\n <div className=\"animate-pulse space-y-0\">\n {Array.from({ length: 4 }).map((_, i) => (\n <div key={i} className=\"h-14 border-b last:border-b-0 px-6 flex items-center\">\n <div className=\"h-3 bg-surface-sunken rounded w-full\" />\n </div>\n ))}\n </div>\n </div>\n );\n }\n\n return (\n <div>\n <PageHeader\n title=\"Configure\"\n docsHash=\"#docs:dashboard.md:graph-workflows\"\n actions={\n aiEnabled ? (\n <button onClick={() => navigate('/mcp/queries/new')} className=\"btn-primary text-xs\">\n Design Flow\n </button>\n ) : undefined\n }\n />\n\n <p className=\"text-sm text-text-secondary mb-6 max-w-2xl leading-relaxed\">\n The compiled form of a durable workflow — the same guarantees at roughly 3× the speed. Each\n flow is a graph the router discovers and runs on demand. Open one to inspect or run it\n {aiEnabled ? ', or design a new one from a description.' : '.'}\n </p>\n\n <FilterBar>\n <FilterInput\n label=\"Search\"\n value={filters.search}\n onChange={(v) => setFilter('search', v)}\n placeholder=\"Flow or namespace…\"\n />\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={[\n { value: 'draft', label: 'Draft' },\n { value: 'deployed', label: 'Deployed' },\n { value: 'active', label: 'Active' },\n { value: 'archived', label: 'Archived' },\n ]}\n />\n </FilterBar>\n\n {flows.length === 0 ? (\n aiEnabled ? (\n <div className=\"cursor-pointer\" onClick={() => navigate('/mcp/queries/new')}>\n <EmptyState\n icon={Wand2}\n title=\"No graph flows yet\"\n description=\"Open the Designer to compile your first flow from a description, or register flows at startup with the graphWorkflows config.\"\n />\n </div>\n ) : (\n <EmptyState\n icon={Workflow}\n title=\"No graph flows yet\"\n description=\"Register graph flows at startup with the graphWorkflows config — see the docs for an example.\"\n />\n )\n ) : (\n <table className=\"w-full\">\n <thead>\n <tr className=\"border-b\">\n <th className=\"px-6 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary\">\n Flow\n </th>\n <th className=\"px-4 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-40\">\n Namespace\n </th>\n <th className=\"px-4 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-20\">\n Version\n </th>\n <th className=\"px-4 py-3 text-left text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-28\">\n Status\n </th>\n </tr>\n </thead>\n <tbody>\n {flows.map((flow) => (\n <tr\n key={flow.id}\n onClick={() => navigate(`/mcp/workflows/${flow.id}`)}\n className=\"border-b border-surface-border/50 hover:bg-surface-hover/40 transition-colors duration-100 cursor-pointer\"\n >\n <td className=\"px-6 py-2.5\">\n <ToolPill name={flow.graph_topic} size=\"md\" />\n {flow.description && (\n <p className=\"text-2xs leading-snug text-text-quaternary mt-0.5\">{flow.description}</p>\n )}\n </td>\n <td className=\"px-4 py-2.5\">\n <NamespacePill namespace={flow.app_id} />\n </td>\n <td className=\"px-4 py-2.5 text-2xs text-text-quaternary font-mono whitespace-nowrap\">\n v{flow.content_version}\n </td>\n <td className=\"px-4 py-2.5 whitespace-nowrap\">\n <StatusBadge status={flow.status} />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n </div>\n );\n}\n"],"names":["YamlWorkflowsPage","navigate","useNavigate","settings","useSettings","aiEnabled","_a","filters","setFilter","useFilterParams","data","isLoading","useYamlWorkflows","flows","jsx","PageHeader","_","i","jsxs","FilterBar","FilterInput","v","FilterSelect","EmptyState","Wand2","Workflow","flow","ToolPill","NamespacePill","StatusBadge"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as o,b as u,c as a}from"./vendor-query-DvWWuNIB.js";import{m as t}from"./index-
|
|
2
|
-
//# sourceMappingURL=agents-
|
|
1
|
+
import{u as o,b as u,c as a}from"./vendor-query-DvWWuNIB.js";import{m as t}from"./index-pzbGpihI.js";function g(e={}){const n=new URLSearchParams;e.status&&n.set("status",e.status),e.knowledge_domain&&n.set("knowledge_domain",e.knowledge_domain),e.limit!=null&&n.set("limit",String(e.limit)),e.offset!=null&&n.set("offset",String(e.offset));const s=n.toString();return o({queryKey:["agents",e],queryFn:()=>t(`/agents${s?`?${s}`:""}`)})}function y(e){return o({queryKey:["agents",e],queryFn:()=>t(`/agents/${e}`),enabled:!!e})}function c(){const e=u();return a({mutationFn:n=>t("/agents",{method:"POST",body:JSON.stringify(n)}),onSuccess:()=>{e.invalidateQueries({queryKey:["agents"]})}})}function m(){const e=u();return a({mutationFn:({id:n,...s})=>t(`/agents/${n}`,{method:"PUT",body:JSON.stringify(s)}),onSuccess:()=>{e.invalidateQueries({queryKey:["agents"]})}})}function d(){const e=u();return a({mutationFn:n=>t(`/agents/${n}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["agents"]})}})}export{y as a,m as b,d as c,c as d,g as u};
|
|
2
|
+
//# sourceMappingURL=agents-DRaaJUue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-
|
|
1
|
+
{"version":3,"file":"agents-DRaaJUue.js","sources":["../../src/api/agents.ts"],"sourcesContent":["import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\n\nexport interface AgentCapability {\n serverId: string;\n toolNames?: string[];\n}\n\nexport interface AgentTrigger {\n event: string;\n filter?: Record<string, any>;\n}\n\nexport interface AgentSchedule {\n cron: string;\n workflow_type: string;\n envelope?: Record<string, any>;\n execute_as?: string;\n}\n\nexport interface AgentBehaviors {\n cron?: string;\n triggers?: AgentTrigger[];\n schedules?: AgentSchedule[];\n escalationRules?: Record<string, any>;\n}\n\nexport interface Agent {\n /** Agent identifier — human-readable kebab-case name (e.g. 'content-triage') */\n id: string;\n description?: string;\n status: 'inactive' | 'active' | 'paused' | 'error';\n user_id?: string;\n knowledge_domain?: string;\n capabilities: AgentCapability[];\n behaviors: AgentBehaviors;\n goals?: string;\n rules?: string;\n workflow_type?: string;\n pipeline_id?: string;\n metadata: Record<string, any>;\n last_run_at?: string;\n subscription_count?: number;\n sub_topics?: string[];\n created_at: string;\n updated_at: string;\n stats?: {\n knowledge_count: number;\n escalation_count: number;\n last_execution_at?: string;\n };\n}\n\ninterface AgentListResponse {\n agents: Agent[];\n total: number;\n}\n\ninterface AgentFilters {\n status?: string;\n knowledge_domain?: string;\n limit?: number;\n offset?: number;\n}\n\nexport function useAgents(filters: AgentFilters = {}) {\n const params = new URLSearchParams();\n if (filters.status) params.set('status', filters.status);\n if (filters.knowledge_domain) params.set('knowledge_domain', filters.knowledge_domain);\n if (filters.limit != null) params.set('limit', String(filters.limit));\n if (filters.offset != null) params.set('offset', String(filters.offset));\n const qs = params.toString();\n\n return useQuery<AgentListResponse>({\n queryKey: ['agents', filters],\n queryFn: () => apiFetch(`/agents${qs ? `?${qs}` : ''}`),\n });\n}\n\nexport function useAgent(id: string | null) {\n return useQuery<Agent>({\n queryKey: ['agents', id],\n queryFn: () => apiFetch(`/agents/${id}`),\n enabled: !!id,\n });\n}\n\nexport function useCreateAgent() {\n const queryClient = useQueryClient();\n return useMutation<Agent, Error, Partial<Agent> & { id: string }>({\n mutationFn: (body) =>\n apiFetch('/agents', {\n method: 'POST',\n body: JSON.stringify(body),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['agents'] });\n },\n });\n}\n\nexport function useUpdateAgent() {\n const queryClient = useQueryClient();\n return useMutation<Agent, Error, { id: string } & Partial<Agent>>({\n mutationFn: ({ id, ...body }) =>\n apiFetch(`/agents/${id}`, {\n method: 'PUT',\n body: JSON.stringify(body),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['agents'] });\n },\n });\n}\n\nexport function useDeleteAgent() {\n const queryClient = useQueryClient();\n return useMutation<{ deleted: boolean }, Error, string>({\n mutationFn: (id) =>\n apiFetch(`/agents/${id}`, { method: 'DELETE' }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['agents'] });\n },\n });\n}\n"],"names":["useAgents","filters","params","qs","useQuery","apiFetch","useAgent","id","useCreateAgent","queryClient","useQueryClient","useMutation","body","useUpdateAgent","useDeleteAgent"],"mappings":"qGAiEO,SAASA,EAAUC,EAAwB,GAAI,CACpD,MAAMC,EAAS,IAAI,gBACfD,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,kBAAkBC,EAAO,IAAI,mBAAoBD,EAAQ,gBAAgB,EACjFA,EAAQ,OAAS,MAAMC,EAAO,IAAI,QAAS,OAAOD,EAAQ,KAAK,CAAC,EAChEA,EAAQ,QAAU,MAAMC,EAAO,IAAI,SAAU,OAAOD,EAAQ,MAAM,CAAC,EACvE,MAAME,EAAKD,EAAO,SAAA,EAElB,OAAOE,EAA4B,CACjC,SAAU,CAAC,SAAUH,CAAO,EAC5B,QAAS,IAAMI,EAAS,UAAUF,EAAK,IAAIA,CAAE,GAAK,EAAE,EAAE,CAAA,CACvD,CACH,CAEO,SAASG,EAASC,EAAmB,CAC1C,OAAOH,EAAgB,CACrB,SAAU,CAAC,SAAUG,CAAE,EACvB,QAAS,IAAMF,EAAS,WAAWE,CAAE,EAAE,EACvC,QAAS,CAAC,CAACA,CAAA,CACZ,CACH,CAEO,SAASC,GAAiB,CAC/B,MAAMC,EAAcC,EAAA,EACpB,OAAOC,EAA2D,CAChE,WAAaC,GACXP,EAAS,UAAW,CAClB,OAAQ,OACR,KAAM,KAAK,UAAUO,CAAI,CAAA,CAC1B,EACH,UAAW,IAAM,CACfH,EAAY,kBAAkB,CAAE,SAAU,CAAC,QAAQ,EAAG,CACxD,CAAA,CACD,CACH,CAEO,SAASI,GAAiB,CAC/B,MAAMJ,EAAcC,EAAA,EACpB,OAAOC,EAA2D,CAChE,WAAY,CAAC,CAAE,GAAAJ,EAAI,GAAGK,KACpBP,EAAS,WAAWE,CAAE,GAAI,CACxB,OAAQ,MACR,KAAM,KAAK,UAAUK,CAAI,CAAA,CAC1B,EACH,UAAW,IAAM,CACfH,EAAY,kBAAkB,CAAE,SAAU,CAAC,QAAQ,EAAG,CACxD,CAAA,CACD,CACH,CAEO,SAASK,GAAiB,CAC/B,MAAML,EAAcC,EAAA,EACpB,OAAOC,EAAiD,CACtD,WAAaJ,GACXF,EAAS,WAAWE,CAAE,GAAI,CAAE,OAAQ,SAAU,EAChD,UAAW,IAAM,CACfE,EAAY,kBAAkB,CAAE,SAAU,CAAC,QAAQ,EAAG,CACxD,CAAA,CACD,CACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as i,b as n,c as u}from"./vendor-query-DvWWuNIB.js";import{m as s}from"./index-
|
|
2
|
-
//# sourceMappingURL=bots-
|
|
1
|
+
import{u as i,b as n,c as u}from"./vendor-query-DvWWuNIB.js";import{m as s}from"./index-pzbGpihI.js";function y(e={}){const t=new URLSearchParams;return e.status&&t.set("status",e.status),e.search&&t.set("search",e.search),e.limit&&t.set("limit",String(e.limit)),e.offset!==void 0&&t.set("offset",String(e.offset)),i({queryKey:["bots",e],queryFn:()=>s(`/bot-accounts?${t}`)})}function d(e){return i({queryKey:["bots",e,"api-keys"],queryFn:()=>s(`/bot-accounts/${e}/api-keys`),enabled:!!e})}function m(){const e=n();return u({mutationFn:t=>s("/bot-accounts",{method:"POST",body:JSON.stringify(t)}),onSuccess:()=>{e.invalidateQueries({queryKey:["bots"]})}})}function b(){const e=n();return u({mutationFn:({id:t,...o})=>s(`/bot-accounts/${t}`,{method:"PUT",body:JSON.stringify(o)}),onSuccess:()=>{e.invalidateQueries({queryKey:["bots"]})}})}function f(){const e=n();return u({mutationFn:t=>s(`/bot-accounts/${t}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["bots"]})}})}function q(){const e=n();return u({mutationFn:({botId:t,name:o,scopes:a})=>s(`/bot-accounts/${t}/api-keys`,{method:"POST",body:JSON.stringify({name:o,scopes:a})}),onSuccess:(t,o)=>{e.invalidateQueries({queryKey:["bots",o.botId,"api-keys"]})}})}function S(){const e=n();return u({mutationFn:({botId:t,keyId:o})=>s(`/bot-accounts/${t}/api-keys/${o}`,{method:"DELETE"}),onSuccess:(t,o)=>{e.invalidateQueries({queryKey:["bots",o.botId,"api-keys"]})}})}function l(){const e=n();return u({mutationFn:({botId:t,role:o,type:a})=>s(`/bot-accounts/${t}/roles`,{method:"POST",body:JSON.stringify({role:o,type:a})}),onSuccess:()=>{e.invalidateQueries({queryKey:["bots"]})}})}function p(){const e=n();return u({mutationFn:({botId:t,role:o})=>s(`/bot-accounts/${t}/roles/${encodeURIComponent(o)}`,{method:"DELETE"}),onSuccess:()=>{e.invalidateQueries({queryKey:["bots"]})}})}export{b as a,d as b,q as c,S as d,l as e,p as f,f as g,y as h,m as u};
|
|
2
|
+
//# sourceMappingURL=bots-C4N90NCj.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bots-
|
|
1
|
+
{"version":3,"file":"bots-C4N90NCj.js","sources":["../../src/api/bots.ts"],"sourcesContent":["import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\nimport type { BotRecord, BotApiKeyRecord } from './types';\nimport type { LTRoleType } from './types';\n\ninterface BotListResponse {\n bots: BotRecord[];\n total: number;\n}\n\ninterface BotFilters {\n status?: string;\n search?: string;\n limit?: number;\n offset?: number;\n}\n\n// ── Query hooks ──────────────────────────────────────────────────────────────\n\nexport function useBots(filters: BotFilters = {}) {\n const params = new URLSearchParams();\n if (filters.status) params.set('status', filters.status);\n if (filters.search) params.set('search', filters.search);\n if (filters.limit) params.set('limit', String(filters.limit));\n if (filters.offset !== undefined) params.set('offset', String(filters.offset));\n\n return useQuery<BotListResponse>({\n queryKey: ['bots', filters],\n queryFn: () => apiFetch(`/bot-accounts?${params}`),\n });\n}\n\nexport function useBotApiKeys(botId: string) {\n return useQuery<{ keys: BotApiKeyRecord[] }>({\n queryKey: ['bots', botId, 'api-keys'],\n queryFn: () => apiFetch(`/bot-accounts/${botId}/api-keys`),\n enabled: !!botId,\n });\n}\n\n// ── Mutation hooks ───────────────────────────────────────────────────────────\n\nexport function useCreateBot() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (data: {\n name: string;\n description?: string;\n display_name?: string;\n roles?: { role: string; type: LTRoleType }[];\n }) =>\n apiFetch('/bot-accounts', {\n method: 'POST',\n body: JSON.stringify(data),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['bots'] });\n },\n });\n}\n\nexport function useUpdateBot() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({\n id,\n ...data\n }: {\n id: string;\n display_name?: string;\n description?: string;\n status?: string;\n }) =>\n apiFetch(`/bot-accounts/${id}`, {\n method: 'PUT',\n body: JSON.stringify(data),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['bots'] });\n },\n });\n}\n\nexport function useDeleteBot() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch(`/bot-accounts/${id}`, { method: 'DELETE' }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['bots'] });\n },\n });\n}\n\nexport function useCreateBotApiKey() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({\n botId,\n name,\n scopes,\n }: {\n botId: string;\n name: string;\n scopes?: string[];\n }) =>\n apiFetch<{ id: string; rawKey: string }>(`/bot-accounts/${botId}/api-keys`, {\n method: 'POST',\n body: JSON.stringify({ name, scopes }),\n }),\n onSuccess: (_data, vars) => {\n queryClient.invalidateQueries({ queryKey: ['bots', vars.botId, 'api-keys'] });\n },\n });\n}\n\nexport function useRevokeBotApiKey() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ botId, keyId }: { botId: string; keyId: string }) =>\n apiFetch(`/bot-accounts/${botId}/api-keys/${keyId}`, { method: 'DELETE' }),\n onSuccess: (_data, vars) => {\n queryClient.invalidateQueries({ queryKey: ['bots', vars.botId, 'api-keys'] });\n },\n });\n}\n\nexport function useAddBotRole() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({\n botId,\n role,\n type,\n }: {\n botId: string;\n role: string;\n type: LTRoleType;\n }) =>\n apiFetch(`/bot-accounts/${botId}/roles`, {\n method: 'POST',\n body: JSON.stringify({ role, type }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['bots'] });\n },\n });\n}\n\nexport function useRemoveBotRole() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ botId, role }: { botId: string; role: string }) =>\n apiFetch(`/bot-accounts/${botId}/roles/${encodeURIComponent(role)}`, {\n method: 'DELETE',\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['bots'] });\n },\n });\n}\n"],"names":["useBots","filters","params","useQuery","apiFetch","useBotApiKeys","botId","useCreateBot","queryClient","useQueryClient","useMutation","data","useUpdateBot","id","useDeleteBot","useCreateBotApiKey","name","scopes","_data","vars","useRevokeBotApiKey","keyId","useAddBotRole","role","type","useRemoveBotRole"],"mappings":"qGAmBO,SAASA,EAAQC,EAAsB,GAAI,CAChD,MAAMC,EAAS,IAAI,gBACnB,OAAID,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,QAAQC,EAAO,IAAI,SAAUD,EAAQ,MAAM,EACnDA,EAAQ,OAAOC,EAAO,IAAI,QAAS,OAAOD,EAAQ,KAAK,CAAC,EACxDA,EAAQ,SAAW,QAAWC,EAAO,IAAI,SAAU,OAAOD,EAAQ,MAAM,CAAC,EAEtEE,EAA0B,CAC/B,SAAU,CAAC,OAAQF,CAAO,EAC1B,QAAS,IAAMG,EAAS,iBAAiBF,CAAM,EAAE,CAAA,CAClD,CACH,CAEO,SAASG,EAAcC,EAAe,CAC3C,OAAOH,EAAsC,CAC3C,SAAU,CAAC,OAAQG,EAAO,UAAU,EACpC,QAAS,IAAMF,EAAS,iBAAiBE,CAAK,WAAW,EACzD,QAAS,CAAC,CAACA,CAAA,CACZ,CACH,CAIO,SAASC,GAAe,CAC7B,MAAMC,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaC,GAMXP,EAAS,gBAAiB,CACxB,OAAQ,OACR,KAAM,KAAK,UAAUO,CAAI,CAAA,CAC1B,EACH,UAAW,IAAM,CACfH,EAAY,kBAAkB,CAAE,SAAU,CAAC,MAAM,EAAG,CACtD,CAAA,CACD,CACH,CAEO,SAASI,GAAe,CAC7B,MAAMJ,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CACX,GAAAG,EACA,GAAGF,CAAA,IAOHP,EAAS,iBAAiBS,CAAE,GAAI,CAC9B,OAAQ,MACR,KAAM,KAAK,UAAUF,CAAI,CAAA,CAC1B,EACH,UAAW,IAAM,CACfH,EAAY,kBAAkB,CAAE,SAAU,CAAC,MAAM,EAAG,CACtD,CAAA,CACD,CACH,CAEO,SAASM,GAAe,CAC7B,MAAMN,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAaG,GACXT,EAAS,iBAAiBS,CAAE,GAAI,CAAE,OAAQ,SAAU,EACtD,UAAW,IAAM,CACfL,EAAY,kBAAkB,CAAE,SAAU,CAAC,MAAM,EAAG,CACtD,CAAA,CACD,CACH,CAEO,SAASO,GAAqB,CACnC,MAAMP,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CACX,MAAAJ,EACA,KAAAU,EACA,OAAAC,CAAA,IAMAb,EAAyC,iBAAiBE,CAAK,YAAa,CAC1E,OAAQ,OACR,KAAM,KAAK,UAAU,CAAE,KAAAU,EAAM,OAAAC,EAAQ,CAAA,CACtC,EACH,UAAW,CAACC,EAAOC,IAAS,CAC1BX,EAAY,kBAAkB,CAAE,SAAU,CAAC,OAAQW,EAAK,MAAO,UAAU,EAAG,CAC9E,CAAA,CACD,CACH,CAEO,SAASC,GAAqB,CACnC,MAAMZ,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CAAE,MAAAJ,EAAO,MAAAe,KACpBjB,EAAS,iBAAiBE,CAAK,aAAae,CAAK,GAAI,CAAE,OAAQ,SAAU,EAC3E,UAAW,CAACH,EAAOC,IAAS,CAC1BX,EAAY,kBAAkB,CAAE,SAAU,CAAC,OAAQW,EAAK,MAAO,UAAU,EAAG,CAC9E,CAAA,CACD,CACH,CAEO,SAASG,GAAgB,CAC9B,MAAMd,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CACX,MAAAJ,EACA,KAAAiB,EACA,KAAAC,CAAA,IAMApB,EAAS,iBAAiBE,CAAK,SAAU,CACvC,OAAQ,OACR,KAAM,KAAK,UAAU,CAAE,KAAAiB,EAAM,KAAAC,EAAM,CAAA,CACpC,EACH,UAAW,IAAM,CACfhB,EAAY,kBAAkB,CAAE,SAAU,CAAC,MAAM,EAAG,CACtD,CAAA,CACD,CACH,CAEO,SAASiB,GAAmB,CACjC,MAAMjB,EAAcC,EAAA,EACpB,OAAOC,EAAY,CACjB,WAAY,CAAC,CAAE,MAAAJ,EAAO,KAAAiB,CAAA,IACpBnB,EAAS,iBAAiBE,CAAK,UAAU,mBAAmBiB,CAAI,CAAC,GAAI,CACnE,OAAQ,QAAA,CACT,EACH,UAAW,IAAM,CACff,EAAY,kBAAkB,CAAE,SAAU,CAAC,MAAM,EAAG,CACtD,CAAA,CACD,CACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as i}from"./vendor-query-DvWWuNIB.js";import{m as e}from"./index-
|
|
2
|
-
//# sourceMappingURL=capabilities-
|
|
1
|
+
import{u as i}from"./vendor-query-DvWWuNIB.js";import{m as e}from"./index-pzbGpihI.js";function t(){return i({queryKey:["capabilities"],queryFn:()=>e("/capabilities")})}export{t as u};
|
|
2
|
+
//# sourceMappingURL=capabilities-BoRWifSC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities-
|
|
1
|
+
{"version":3,"file":"capabilities-BoRWifSC.js","sources":["../../src/api/capabilities.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from './client';\n\nexport interface CapabilityTool {\n name: string;\n description: string;\n inputSchema: Record<string, any>;\n serverName: string;\n serverId: string;\n}\n\nexport interface CapabilityCategory {\n name: string;\n tools: CapabilityTool[];\n}\n\nexport interface CapabilitiesResponse {\n categories: CapabilityCategory[];\n totalTools: number;\n}\n\nexport function useCapabilities() {\n return useQuery<CapabilitiesResponse>({\n queryKey: ['capabilities'],\n queryFn: () => apiFetch('/capabilities'),\n });\n}\n"],"names":["useCapabilities","useQuery","apiFetch"],"mappings":"uFAqBO,SAASA,GAAkB,CAChC,OAAOC,EAA+B,CACpC,SAAU,CAAC,cAAc,EACzB,QAAS,IAAMC,EAAS,eAAe,CAAA,CACxC,CACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as o,c as l,b as a}from"./vendor-query-DvWWuNIB.js";import{m as n}from"./index-
|
|
2
|
-
//# sourceMappingURL=controlplane-
|
|
1
|
+
import{u as o,c as l,b as a}from"./vendor-query-DvWWuNIB.js";import{m as n}from"./index-pzbGpihI.js";function s(){return n("/controlplane/apps")}function c(e){return n(`/controlplane/rollcall?app_id=${encodeURIComponent(e)}`)}function i(e){return n("/controlplane/throttle",{method:"POST",body:JSON.stringify(e)})}function m(e){return n("/controlplane/subscribe",{method:"POST",body:JSON.stringify(e)})}function f(e,t,u){let r=`/controlplane/streams?app_id=${encodeURIComponent(e)}&duration=${encodeURIComponent(t)}`;return n(r)}function b(e){return o({queryKey:["controlplane","apps"],queryFn:s,staleTime:6e4,enabled:(e==null?void 0:e.enabled)??!0})}function h(e,t){return o({queryKey:["controlplane","rollcall",e],queryFn:()=>c(e),enabled:!!e,refetchInterval:t})}function d(){const e=a();return l({mutationFn:i,onSuccess:()=>{setTimeout(()=>{e.invalidateQueries({queryKey:["controlplane","rollcall"]})},1500)}})}function S(e,t,u,r){return o({queryKey:["controlplane","streams",e,t,""],queryFn:()=>f(e,t),enabled:!!e,staleTime:15e3,refetchInterval:r})}function q(){return l({mutationFn:m})}export{d as a,q as b,h as c,S as d,b as u};
|
|
2
|
+
//# sourceMappingURL=controlplane-DGZAxi7J.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controlplane-
|
|
1
|
+
{"version":3,"file":"controlplane-DGZAxi7J.js","sources":["../../src/api/controlplane.ts"],"sourcesContent":["import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\n\n// ── Types ───────────────────────────────────────────────────────────────────\n\nexport interface ControlPlaneApp {\n appId: string;\n version: string;\n}\n\nexport interface QuorumProfile {\n namespace: string;\n app_id: string;\n engine_id: string;\n entity?: string;\n worker_topic?: string;\n stream?: string;\n stream_depth?: number;\n counts?: Record<string, number>;\n inited?: string;\n timestamp?: string;\n throttle?: number;\n reclaimDelay?: number;\n reclaimCount?: number;\n system?: {\n TotalMemoryGB: string;\n FreeMemoryGB: string;\n UsedMemoryGB: string;\n CPULoad: Array<Record<string, string>>;\n NetworkStats: Array<Record<string, unknown>>;\n };\n is_scout?: boolean;\n signature?: string;\n}\n\n// ── API functions ───────────────────────────────────────────────────────────\n\nfunction fetchApps() {\n return apiFetch<{ apps: ControlPlaneApp[] }>('/controlplane/apps');\n}\n\nfunction fetchRollCall(appId: string) {\n return apiFetch<{ profiles: QuorumProfile[] }>(`/controlplane/rollcall?app_id=${encodeURIComponent(appId)}`);\n}\n\nfunction postThrottle(body: { appId: string; throttle: number; topic?: string; guid?: string; scope?: 'engines' | 'workers' | 'all' }) {\n return apiFetch<{ success: boolean }>('/controlplane/throttle', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nfunction postSubscribe(body: { appId: string }) {\n return apiFetch<{ subscribed: boolean; appId: string }>('/controlplane/subscribe', {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport interface StreamStats {\n pending: number;\n processed: number;\n byStream: Array<{ stream_type: 'engine' | 'worker'; stream_name: string; count: number }>;\n}\n\nfunction fetchStreamStats(appId: string, duration: string, stream?: string) {\n let url = `/controlplane/streams?app_id=${encodeURIComponent(appId)}&duration=${encodeURIComponent(duration)}`;\n if (stream) url += `&stream=${encodeURIComponent(stream)}`;\n return apiFetch<StreamStats>(url);\n}\n\n// ── Hooks ───────────────────────────────────────────────────────────────────\n\nexport function useControlPlaneApps(options?: { enabled?: boolean }) {\n return useQuery({\n queryKey: ['controlplane', 'apps'],\n queryFn: fetchApps,\n staleTime: 60_000,\n enabled: options?.enabled ?? true,\n });\n}\n\nexport function useRollCall(appId: string, refetchInterval?: number | false) {\n return useQuery({\n queryKey: ['controlplane', 'rollcall', appId],\n queryFn: () => fetchRollCall(appId),\n enabled: !!appId,\n refetchInterval: refetchInterval ?? false,\n });\n}\n\nexport function useThrottle() {\n const qc = useQueryClient();\n return useMutation({\n mutationFn: postThrottle,\n onSuccess: () => {\n // Delay refetch so mesh members have time to process the throttle message\n setTimeout(() => {\n qc.invalidateQueries({ queryKey: ['controlplane', 'rollcall'] });\n }, 1500);\n },\n });\n}\n\nexport function useStreamStats(appId: string, duration: string, stream?: string, refetchInterval?: number | false) {\n return useQuery({\n queryKey: ['controlplane', 'streams', appId, duration, stream ?? ''],\n queryFn: () => fetchStreamStats(appId, duration, stream),\n enabled: !!appId,\n staleTime: 15_000,\n refetchInterval: refetchInterval ?? false,\n });\n}\n\nexport function useSubscribeMesh() {\n return useMutation({\n mutationFn: postSubscribe,\n });\n}\n"],"names":["fetchApps","apiFetch","fetchRollCall","appId","postThrottle","body","postSubscribe","fetchStreamStats","duration","stream","url","useControlPlaneApps","options","useQuery","useRollCall","refetchInterval","useThrottle","qc","useQueryClient","useMutation","useStreamStats","useSubscribeMesh"],"mappings":"qGAqCA,SAASA,GAAY,CACnB,OAAOC,EAAsC,oBAAoB,CACnE,CAEA,SAASC,EAAcC,EAAe,CACpC,OAAOF,EAAwC,iCAAiC,mBAAmBE,CAAK,CAAC,EAAE,CAC7G,CAEA,SAASC,EAAaC,EAAiH,CACrI,OAAOJ,EAA+B,yBAA0B,CAC9D,OAAQ,OACR,KAAM,KAAK,UAAUI,CAAI,CAAA,CAC1B,CACH,CAEA,SAASC,EAAcD,EAAyB,CAC9C,OAAOJ,EAAiD,0BAA2B,CACjF,OAAQ,OACR,KAAM,KAAK,UAAUI,CAAI,CAAA,CAC1B,CACH,CAQA,SAASE,EAAiBJ,EAAeK,EAAkBC,EAAiB,CAC1E,IAAIC,EAAM,gCAAgC,mBAAmBP,CAAK,CAAC,aAAa,mBAAmBK,CAAQ,CAAC,GAE5G,OAAOP,EAAsBS,CAAG,CAClC,CAIO,SAASC,EAAoBC,EAAiC,CACnE,OAAOC,EAAS,CACd,SAAU,CAAC,eAAgB,MAAM,EACjC,QAASb,EACT,UAAW,IACX,SAASY,GAAA,YAAAA,EAAS,UAAW,EAAA,CAC9B,CACH,CAEO,SAASE,EAAYX,EAAeY,EAAkC,CAC3E,OAAOF,EAAS,CACd,SAAU,CAAC,eAAgB,WAAYV,CAAK,EAC5C,QAAS,IAAMD,EAAcC,CAAK,EAClC,QAAS,CAAC,CAACA,EACX,gBAAiBY,CAAmB,CACrC,CACH,CAEO,SAASC,GAAc,CAC5B,MAAMC,EAAKC,EAAA,EACX,OAAOC,EAAY,CACjB,WAAYf,EACZ,UAAW,IAAM,CAEf,WAAW,IAAM,CACfa,EAAG,kBAAkB,CAAE,SAAU,CAAC,eAAgB,UAAU,EAAG,CACjE,EAAG,IAAI,CACT,CAAA,CACD,CACH,CAEO,SAASG,EAAejB,EAAeK,EAAkBC,EAAiBM,EAAkC,CACjH,OAAOF,EAAS,CACd,SAAU,CAAC,eAAgB,UAAWV,EAAOK,EAAoB,EAAE,EACnE,QAAS,IAAMD,EAAiBJ,EAAOK,CAAgB,EACvD,QAAS,CAAC,CAACL,EACX,UAAW,KACX,gBAAiBY,CAAmB,CACrC,CACH,CAEO,SAASM,GAAmB,CACjC,OAAOF,EAAY,CACjB,WAAYb,CAAA,CACb,CACH"}
|
package/dashboard/dist/assets/{escalation-columns-B0lhUUrQ.js → escalation-columns-DJbfsH_m.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as E,j as e,u as oe}from"./vendor-query-DvWWuNIB.js";import{a as O,H as Oe,g as ce,E as _,F as D,j as Ee,k as Le,f as _e}from"./escalation-items-7WFpPo46.js";import{M as Fe,be as B,m as de,a0 as Me,bf as $e,ah as G,a9 as Ie,g as Pe,b0 as Re,a_ as Ae,ai as ee}from"./index-CkMHS-hG.js";import{S as te}from"./StickyPagination-B0FSuUgs.js";import{b as xe,ad as qe,e as De,az as Ke,aE as We,bH as A,at as He,aD as Ue}from"./vendor-icons-fxBvvHBi.js";import{c as ue,d as Ve,S as J,r as $,G as I,f as Be,b as Ge,e as me,I as Je,g as se,R as pe,h as Y,j as ze,k as Ye,M as Qe,l as Xe,i as Ze}from"./validate-DxOaV7QS.js";import{D as he}from"./DataTable-FjFhx0SE.js";import{L as z,u as Q}from"./vendor-react-_9U4mKFr.js";import{E as et}from"./EntityTimelinePanel-CrEEP04e.js";import{F as tt,b as W,c as H,a as st}from"./FilterBar-BVyAjIgv.js";import{P as at}from"./PriorityBadge-r33mpDju.js";import{R as nt}from"./RolePill-R5_ctGFy.js";import{W as rt}from"./WorkflowPill-D7244fKp.js";import{U as it}from"./UserName-B_q_qp6V.js";import{C as lt}from"./CountdownTimer-BcFxdZYN.js";const ae=[{text:"text-rose-400",bg:"bg-rose-400/[0.08]"},{text:"text-pink-400",bg:"bg-pink-400/[0.08]"},{text:"text-fuchsia-400",bg:"bg-fuchsia-400/[0.08]"},{text:"text-purple-400",bg:"bg-purple-400/[0.08]"},{text:"text-violet-400",bg:"bg-violet-400/[0.08]"},{text:"text-indigo-400",bg:"bg-indigo-400/[0.08]"},{text:"text-blue-400",bg:"bg-blue-400/[0.08]"},{text:"text-sky-400",bg:"bg-sky-400/[0.08]"},{text:"text-cyan-400",bg:"bg-cyan-400/[0.08]"},{text:"text-teal-400",bg:"bg-teal-400/[0.08]"},{text:"text-emerald-400",bg:"bg-emerald-400/[0.08]"},{text:"text-green-400",bg:"bg-green-400/[0.08]"},{text:"text-lime-400",bg:"bg-lime-400/[0.08]"},{text:"text-yellow-400",bg:"bg-yellow-400/[0.08]"},{text:"text-amber-400",bg:"bg-amber-400/[0.08]"},{text:"text-orange-400",bg:"bg-orange-400/[0.08]"},{text:"text-red-400",bg:"bg-red-400/[0.08]"},{text:"text-stone-400",bg:"bg-stone-400/[0.08]"},{text:"text-rose-300",bg:"bg-rose-300/[0.08]"},{text:"text-violet-300",bg:"bg-violet-300/[0.08]"},{text:"text-sky-300",bg:"bg-sky-300/[0.08]"},{text:"text-teal-300",bg:"bg-teal-300/[0.08]"},{text:"text-amber-300",bg:"bg-amber-300/[0.08]"},{text:"text-pink-300",bg:"bg-pink-300/[0.08]"}];function ot(t){let s=0;for(let n=0;n<t.length;n++)s=(s<<5)-s+t.charCodeAt(n)|0;return Math.abs(s)}function ct(t){return ae[ot(t)%ae.length]}const dt=6;function fe({open:t,onClose:s,role:n,pairs:a,onNavigate:r,onAddFacet:i}){const[l,p]=E.useState(new Set),[x,o]=E.useState(""),[u,h]=E.useState(t);if(t!==u&&(h(t),t)){const d=a.filter(N=>N.bound),y=d.length===1?[d[0].key]:a.length===1?[a[0].key]:[];p(new Set(y)),o("")}const f=x.trim().toLowerCase(),g=f?a.filter(d=>[d.label,d.key,String(d.value)].some(y=>y.toLowerCase().includes(f))):a,w=d=>{p(y=>{const N=new Set(y);return N.has(d)?N.delete(d):N.add(d),N})},j=a.filter(d=>l.has(d.key)),v=Object.fromEntries(j.map(d=>[d.key,d.value])),m=j.length===0,b=d=>{s(),r(d)};return e.jsx(Fe,{open:t,onClose:s,title:"Refine",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-2xs text-text-tertiary",children:"Pick the facts to match — several combine into one narrower query."}),a.length>dt&&e.jsxs("label",{className:"flex items-center gap-2 input text-xs py-1.5",children:[e.jsx(xe,{className:"w-3.5 h-3.5 shrink-0 text-text-quaternary",strokeWidth:1.5}),e.jsx("input",{type:"text",value:x,onChange:d=>o(d.target.value),placeholder:"Find a fact…",className:"flex-1 min-w-0 bg-transparent outline-none placeholder:text-text-quaternary","aria-label":"Find a fact","data-testid":"refine-find"}),e.jsxs("span",{className:"text-2xs tabular-nums text-text-quaternary",children:[g.length,"/",a.length]})]}),e.jsx("div",{className:"divide-y divide-surface-border/40 -mx-1 max-h-[50vh] overflow-y-auto",children:g.map(d=>{const y=l.has(d.key);return e.jsxs("button",{type:"button",onClick:()=>w(d.key),"aria-pressed":y,className:"w-full flex items-center gap-3 px-1 py-2.5 text-left group min-w-0","data-testid":"refine-pair",children:[e.jsx("span",{className:`w-4 h-4 rounded-[3px] border flex items-center justify-center shrink-0 transition-colors ${y?"bg-accent border-accent":"border-surface-border group-hover:border-accent/50"}`,"aria-hidden":!0,children:y&&e.jsx(qe,{className:"w-3 h-3 text-text-inverse",strokeWidth:3})}),e.jsx("span",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-28 shrink-0 truncate",title:d.key,children:d.label}),e.jsx("span",{className:"text-xs text-text-primary truncate flex-1 min-w-0",title:String(d.value),children:String(d.value)})]},d.key)})}),e.jsxs("div",{className:"flex items-center justify-end gap-3 pt-2 flex-wrap",children:[i&&e.jsx("button",{onClick:()=>{j.forEach(d=>i(d.key,d.value)),s()},disabled:m,className:"text-xs text-text-secondary hover:text-accent transition-colors disabled:opacity-40 disabled:cursor-not-allowed mr-auto","data-testid":"refine-add-filters",children:"Add to filters"}),e.jsx("button",{onClick:()=>b(B(v)),disabled:m,className:"btn-secondary text-xs disabled:opacity-40 disabled:cursor-not-allowed","data-testid":"refine-search-all",children:"Search everywhere"}),e.jsxs("button",{onClick:()=>b(B(v,n)),disabled:m,className:"btn-primary text-xs disabled:opacity-40 disabled:cursor-not-allowed","data-testid":"refine-filter-role",children:["Filter ",n]})]})]})})}function xt(t,s,n,a=!0){const r=[...s].sort();return oe({queryKey:["escalations","related",t,n??"latest",r],queryFn:()=>de("/escalations/related",{method:"POST",body:JSON.stringify({role:t,ids:r,...n!=null?{version:n}:{}})}),enabled:a&&!!t&&r.length>0,placeholderData:i=>i})}function ut(t,s,n,a,r,i=!0){return oe({queryKey:["escalations","related-rows",t,a??"latest",s,n,r??null],queryFn:()=>de("/escalations/related/rows",{method:"POST",body:JSON.stringify({role:t,id:s,set:n,...a!=null?{version:a}:{},...r?{limit:r}:{}})}),enabled:i&&!!t&&!!s&&!!n})}const mt=/^\{\{\s*([^{}]+?)\s*\}\}$/,pt=/\{\{\s*[^{}]+?\s*\}\}/,ht="—";function V(t){if(t&&typeof t=="object")return t;if(typeof t!="string"||!t)return null;try{const s=JSON.parse(t);return s&&typeof s=="object"?s:null}catch{return null}}function be(t){return{escalation:t,metadata:t.metadata??{},envelope:V(t.envelope)??{},payload:V(t.escalation_payload)??{},resolver:V(t.resolver_payload)??{}}}function ft(t,s){const n=t.indexOf("."),a=n===-1?t:t.slice(0,n);if(!Oe.includes(a))return;const r=s[a];if(n===-1)return r??void 0;try{return ce(r,t.slice(n+1))}catch{return}}function ne(t,s){if(typeof t!="string")return t;const n=t.match(mt);if(n){const r=ft(n[1],s);return r===null||r===""?void 0:r}if(!pt.test(t))return t;const a=O(t,s);return a.includes(ht)?void 0:a}function ye(t,s,n){const a={};for(const[r,i]of Object.entries(t)){const l=ne(i,s);if(l===void 0)return null;a[r]=l}for(const[r,i]of Object.entries(n??{})){const l=ne(i,s);l!==void 0&&(a[r]=l)}return a}function bt(t,s,n){var a,r;return(a=s.labels)!=null&&a[t]?s.labels[t]:s.splitBy===J.ROLE&&((r=n==null?void 0:n.roleLabels)!=null&&r[t])?n.roleLabels[t]:t===""?"None":t}function yt({col:t,set:s,agg:n,drillUrl:a}){if(!n||n.unresolved)return e.jsx("span",{className:"text-text-quaternary",children:_});if(ue(t.aggregate))return n.value===void 0?e.jsx("span",{className:"text-text-quaternary",children:_}):e.jsx("span",{className:"tabular-nums text-text-primary","data-testid":"related-cell",children:e.jsx(D,{raw:String(n.value),format:t.format})});const r=Ve(t.display,n.count),i=t.splitBy===J.ROLE&&(s!=null&&s.roles)?s.roles:null,l=Object.entries(n.splits??{}).filter(([,o])=>o>0).sort(([o,u],[h,f])=>i?i.indexOf(o)-i.indexOf(h):f-u),p=t.splitBy===J.ROLE?(s==null?void 0:s.restricted)??[]:[],x=[r!==null?String(n.count):"",n.hidden?`${n.hidden} not readable by you`:"",p.length?`Not counted (outside your view): ${p.map(o=>{var u;return((u=s==null?void 0:s.roleLabels)==null?void 0:u[o])??o}).join(", ")}`:""].filter(Boolean).join(" · ");return e.jsxs("span",{className:"inline-flex flex-wrap items-center gap-1 min-w-0",title:x||void 0,"data-testid":"related-cell",children:[e.jsx("span",{className:"tabular-nums font-medium text-text-primary","data-testid":"related-count",children:r??n.count}),l.map(([o,u])=>{const h=`${bt(o,t,s)} ${u}`,f=i&&a?a(o):null,g="px-1.5 py-0.5 rounded bg-surface-sunken text-2xs text-text-secondary whitespace-nowrap tabular-nums";return f?e.jsx(z,{to:f,onClick:w=>w.stopPropagation(),className:`${g} hover:text-accent`,"data-testid":"related-chip",children:h},o):e.jsx("span",{className:g,"data-testid":"related-chip",children:h},o)}),(n.hidden||p.length>0)&&e.jsx("span",{className:"text-2xs text-text-quaternary italic","data-testid":"related-restricted",children:n.hidden&&!l.length?"split restricted":"partial"})]})}const gt="role";function re(t,s){const n=s.escalation?$(s.escalation):{};return Ee(t,s.item,n)}function jt({role:t,host:s,version:n,section:a,roleLabels:r}){var w,j,v;const i=Q(),l=ut(t,s.id,a.related,n,a.limit),p=((w=l.data)==null?void 0:w.rows)??[],x=((j=l.data)==null?void 0:j.roleLabels)??r??{},o=((v=l.data)==null?void 0:v.restricted)??[],u=new Set(Object.values(s.metadata??{}).filter(m=>typeof m=="string"&&m!==""||typeof m=="number"||typeof m=="boolean").map(String)),f=a.columns.filter((m,b)=>{if(b===0||p.length===0)return!0;const d=new Set(p.map(y=>re(m.value,y)));return!(d.size===1&&u.has([...d][0]))}).map((m,b)=>({key:`d-${b}`,label:m.label,priority:m.priority??(b===0?1:2),render:d=>{const y=re(m.value,d);return m.format===gt&&y!==_?e.jsx("span",{className:"block truncate",children:x[y]??Me({role:y})}):e.jsx("span",{className:"block truncate",title:y!==_?y:void 0,children:e.jsx(D,{raw:y,format:m.format})})}})),g=m=>{var b,d;return((b=m.escalation)==null?void 0:b.id)??((d=m.item)==null?void 0:d.reciprocalId)??null};return e.jsxs("div",{"data-testid":"row-detail-section",children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary pt-3 pb-1",children:[a.label??a.related,l.data&&e.jsx("span",{className:"ml-2 font-normal normal-case tracking-normal tabular-nums",children:l.data.total})]}),l.isLoading?e.jsx("p",{className:"text-2xs text-text-tertiary italic pb-2",children:"Loading…"}):e.jsx(he,{columns:f,data:p,keyFn:m=>{var b,d;return((b=m.item)==null?void 0:b.itemKey)??String((d=m.escalation)==null?void 0:d.id)},onRowClick:m=>{const b=g(m);b&&i(`/escalations/detail/${b}`)},layout:"fixed",density:"compact",inline:!0,emptyMessage:""}),!l.isLoading&&p.length===0&&e.jsx("p",{className:"text-2xs text-text-quaternary italic pb-2",children:"None."}),l.data&&l.data.total>p.length&&e.jsxs("p",{className:"text-2xs text-text-quaternary pb-2",children:["Showing ",p.length," of ",l.data.total,"."]}),o.length>0&&e.jsxs("p",{className:"text-2xs text-text-quaternary italic pb-2",children:["Not shown (outside your view): ",o.map(m=>x[m]??m).join(", ")]})]})}function vt({role:t,host:s,version:n,sections:a}){return e.jsx("div",{className:"space-y-1","data-testid":"row-detail",children:a.map((r,i)=>e.jsx(jt,{role:t,host:s,version:n,section:r},i))})}function wt(t,s){return t.flatMap(n=>{if(n.rows.length<2||!s.has(n.key))return[n];const a=n.rows.map((r,i)=>({key:`${n.key}/${r.id}`,rows:[r],groupKey:n.groupKey,depth:1,lastChild:i===n.rows.length-1,parent:n}));return[n,...a]})}function Nt(t,s){if(!s)return t.map(a=>({key:a.id,rows:[a],groupKey:null}));const n=new Map(t.map(a=>[a.id,a]));return s.map(a=>({key:a.key!=null?`group:${a.key}`:a.ids[0],rows:a.ids.map(r=>n.get(r)).filter(r=>!!r),groupKey:a.key})).filter(a=>a.rows.length>0)}function kt(t){const s=t.map(n=>Number(n));return s.every(n=>Number.isFinite(n))?s:null}function ie(t,s){const n=t.group??I.FIRST;if(n===I.COUNT)return String(s.length);const a=s.map(l=>O(t.value,$(l))).filter(l=>l&&l!==_);if(n===I.DISTINCT)return a.length?[...new Set(a)].join(", "):_;if(n===I.FIRST||s.length===1)return a[0]??_;if(!a.length)return _;const r=kt(a);if(n===I.SUM)return r?String(r.reduce((l,p)=>l+p,0)):_;if(r)return String(n===I.MIN?Math.min(...r):Math.max(...r));const i=[...a].sort();return n===I.MIN?i[0]:i[i.length-1]}function St(t,s){const n=t.filter(r=>!!r);if(!n.length)return;if(n.every(r=>r.unresolved))return{count:0,unresolved:!0};const a={count:0};for(const r of n)if(!r.unresolved&&(a.count+=r.count,r.hidden&&(a.hidden=(a.hidden??0)+r.hidden),r.splits)){a.splits??(a.splits={});for(const[i,l]of Object.entries(r.splits))a.splits[i]=(a.splits[i]??0)+l}if(ue(s)){const r=Be(s,n.flatMap(i=>i.value===void 0?[]:[i.value]));r!==void 0&&(a.value=r)}return a}function Tt(t,s,n){const a=new Set;return t.filter(r=>{const i=ye(s,be(r),n);if(!i)return!0;const l=JSON.stringify(i);return a.has(l)?!1:(a.add(l),!0)})}function Ct(t){try{return Ge(t)}catch{return null}}function Ot(t){var a;const s=xt(t.role,t.rows.map(r=>r.id),t.version),n=((a=s.data)==null?void 0:a.sets)??{};return $e(Object.values(n).flatMap(r=>r.roles??[])),e.jsx(ge,{...t,sets:n,setsLoading:s.isLoading})}function Et(t){const s=E.useMemo(()=>Ct(t.schema),[t.schema]);return s&&Object.keys(s.sets).length>0?e.jsx(Ot,{...t,relations:s}):e.jsx(ge,{...t,relations:s,sets:{},setsLoading:!1})}function ge({schema:t,rows:s,groups:n,role:a,version:r,onRowClick:i,onAddFacet:l,forceView:p,relations:x,sets:o,setsLoading:u}){const h=Q(),f=t["x-lt-columns"]??[],g=t["x-lt-row-action"],w=(x==null?void 0:x.rowDetail)??[],[j,v]=E.useState(null),[m,b]=E.useState(()=>new Set),d=E.useMemo(()=>Nt(s,n),[s,n]),y=E.useMemo(()=>wt(d,m),[d,m]),N=!!n,C=w.length>0||N,k=c=>c.rows.length>1||w.length>0,K=c=>b(T=>{const S=new Set(T);return S.has(c)?S.delete(c):S.add(c),S}),P=(c,T)=>{var X,Z;const S=c.related,F=o[S],L=(X=x==null?void 0:x.sets[S])==null?void 0:X.query,ke=L!=null&&L.facets?Tt(T,L.facets,L.narrow):T,Se=Ye(c,((Z=x==null?void 0:x.sets[S])==null?void 0:Z.source)??""),Te=St(ke.map(U=>{var R;return(R=F==null?void 0:F.aggregates[Se])==null?void 0:R[U.id]}),c.aggregate),Ce=L!=null&&L.facets&&T.length===1?U=>{const R=ye(L.facets,be(T[0]),L.narrow);return R?B(R,U):null}:void 0;return e.jsx(yt,{col:c,set:F,agg:u?void 0:Te,drillUrl:Ce})},je=(g==null?void 0:g.label)??(p?"View":"Claim"),M=c=>c.rows[0],ve=[...C?[{key:"_expand",label:"",priority:1,className:"w-12 px-1",render:c=>e.jsx("span",{className:`flex ${c.depth?"pl-5":""}`,children:k(c)&&e.jsx("button",{type:"button",onClick:T=>{T.stopPropagation(),K(c.key)},className:"p-1 rounded icon-link hover:bg-surface-hover transition-colors","aria-expanded":m.has(c.key),"aria-label":m.has(c.key)?"Collapse row":"Expand row","data-testid":"row-expand",children:e.jsx(De,{className:`w-3.5 h-3.5 transition-transform ${m.has(c.key)?"rotate-90":""}`,strokeWidth:1.75})})})}]:[],{key:"_status",label:"",priority:1,className:"w-8",render:c=>e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:`w-2.5 h-2.5 inline-block rounded-full dot-ring ${me(M(c))}`,title:M(c).status}),c.rows.length>1&&e.jsx("span",{className:"text-2xs tabular-nums text-text-tertiary",title:`${c.rows.length} rows in this group`,"data-testid":"group-size",children:c.rows.length})]})},...f.map((c,T)=>({key:`col-${T}`,label:c.label,priority:c.priority??(T===0?1:2),width:c.width??(T===0&&!f.some(S=>S.width)?Je:void 0),render:S=>{if(c.related)return P(c,S.rows);const F=S.rows.length>1?ie(c,S.rows):O(c.value,$(M(S)));if(S.parent&&F===ie(c,S.parent.rows))return null;const L=T===0&&S.depth?"pl-4":"";return e.jsx("span",{className:`block truncate ${L}`,title:F&&F!==_?F:void 0,children:e.jsx(D,{raw:F,format:c.format})})}})),{key:"_refine",label:"",priority:1,className:"w-8 px-1",render:c=>c.rows.length===1&&se(M(c),f).length>0?e.jsx(pe,{onOpen:()=>v(M(c))}):null},{key:"_action",label:"",priority:1,width:ze(je),className:"text-right whitespace-nowrap",render:c=>c.rows.length===1?e.jsx(Y,{row:M(c),def:g,onView:()=>i==null?void 0:i(M(c)),forceView:p}):null}],we=c=>c.depth?"bg-surface-sunken border-b-surface-border/40":m.has(c.key)&&k(c)?"bg-surface-sunken/50 border-b-surface-border/40":"",Ne=c=>!m.has(c.key)||c.rows.length>1||w.length===0?null:e.jsx("div",{onClick:T=>T.stopPropagation(),className:`${c.depth?"bg-surface-sunken pl-20":"bg-surface-sunken/50 pl-12"} pr-3 pt-1 pb-4`,"data-testid":"row-detail-block",children:e.jsx(vt,{role:a,host:M(c),version:r,sections:w})});return e.jsxs(e.Fragment,{children:[e.jsx(he,{columns:ve,data:y,layout:"fixed",density:"dense",keyFn:c=>c.key,onRowClick:i?c=>c.rows.length===1?i(M(c)):K(c.key):void 0,rowClassName:C?we:void 0,emptyMessage:"No pending items.",renderExpansion:C?Ne:void 0}),e.jsx(fe,{open:!!j,onClose:()=>v(null),role:a,pairs:j?se(j,f):[],onNavigate:h,onAddFacet:l})]})}function Lt(t){const[,s]=E.useState(0);E.useEffect(()=>{if(!t)return;const n=window.setInterval(()=>s(a=>a+1),6e4);return()=>window.clearInterval(n)},[t])}function _t(t){var s;return[...t["x-lt-columns"]??[],...((s=t["x-lt-card"])==null?void 0:s.fields)??[]].some(n=>Le(n.format))}function Ft({esc:t,card:s,rowAction:n,onOpen:a,forceView:r}){const i=$(t),l=s.title?O(s.title,i):t.type;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-start justify-between gap-6",children:[e.jsxs("button",{onClick:a,className:"text-left group min-w-0",children:[e.jsx("h3",{className:"heading-2 group-hover:text-accent transition-colors leading-tight",children:l}),s.subtitle&&e.jsx("p",{className:"text-xs text-text-tertiary mt-1.5",children:O(s.subtitle,i)})]}),e.jsx(Y,{row:t,def:n,onView:a,prominent:!0,forceView:r})]}),s.fields&&s.fields.length>0&&e.jsx("dl",{className:"flex flex-wrap gap-x-10 gap-y-4 mt-6",children:s.fields.map((p,x)=>e.jsxs("div",{children:[e.jsx("dt",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:p.label}),e.jsx("dd",{className:"text-xs text-text-primary mt-1",children:e.jsx(D,{raw:O(p.value,i)})})]},x))}),s.body&&e.jsx("div",{className:"mt-7 pt-6 border-t border-surface-border/50",children:e.jsx(G,{content:O(s.body,i)})})]})}function Mt({role:t,def:s,onRowClick:n}){var o,u;const[a,r]=E.useState(!1),i=Ie({role:t,status:s.status??"resolved",sort_by:"resolved_at",order:"desc",limit:s.limit??25,enabled:a,include:_e(s)?"envelope":void 0}),l=((o=i.data)==null?void 0:o.escalations)??[],p=((u=i.data)==null?void 0:u.total)??0,x=s.row??{};return a?i.isLoading?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"Loading history…"}):l.length===0?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No past revisions."}):e.jsxs("div",{children:[e.jsx("div",{className:"divide-y divide-surface-border/40",children:l.map(h=>{const f=$(h);return e.jsxs("button",{onClick:()=>n==null?void 0:n(h),className:"w-full text-left py-2.5 group flex items-center gap-3",children:[e.jsx("span",{className:`w-2.5 h-2.5 shrink-0 rounded-full dot-ring ${me(h)}`,title:h.status}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block text-xs text-text-primary group-hover:text-accent transition-colors truncate",children:x.title?O(x.title,f):h.type}),x.subtitle&&e.jsx("span",{className:"block text-2xs text-text-tertiary truncate",children:O(x.subtitle,f)})]}),x.meta?e.jsx("span",{className:"text-2xs text-text-tertiary shrink-0",children:O(x.meta,f)}):h.resolved_at&&e.jsx(Pe,{date:h.resolved_at,format:"relative",className:"text-2xs text-text-tertiary shrink-0 whitespace-nowrap"})]},h.id)})}),p>l.length&&e.jsxs("p",{className:"text-2xs text-text-quaternary mt-3",children:["Showing ",l.length," of ",p,"."]})]}):e.jsx("button",{onClick:()=>r(!0),className:"text-xs text-accent hover:underline","data-testid":"load-history",children:"Load full history →"})}function le({children:t}){return e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-3",children:t})}function $t(t,s){var i;const n=s.indexOf("."),a=s.startsWith("metadata.")?s.slice(9):null,r=new Map;for(const l of t){const p=$(l);let x;try{x=n===-1?p[s]:ce(p[s.slice(0,n)],s.slice(n+1))}catch{x=void 0}if(x==null||x==="")continue;const o=String(x),u=a?((i=l.metadata)==null?void 0:i[a])??x:x,h=r.get(o);h?(h.count+=1,new Date(l.created_at)>new Date(h.latest.created_at)&&(h.latest=l)):r.set(o,{key:o,rawValue:u,latest:l,count:1})}return[...r.values()].sort((l,p)=>l.key.localeCompare(p.key))}function It({schema:t,rows:s,role:n,onOpenDetail:a,onOpenGroup:r,onAddFacet:i,forceView:l}){const p=Q(),x=t["x-lt-group-by"],o=t["x-lt-card"]??{},u=t["x-lt-row-action"],[h,f]=E.useState(null);if(!x)return e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"facet-board needs an x-lt-group-by path."});const g=x.startsWith("metadata.")?x.slice(9):null,w=$t(s,x);if(w.length===0)return e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No entities in scope."});const j=v=>{var d,y;const m=[];g&&m.push({key:g,label:g,value:v.rawValue});const b=new Set(m.map(N=>N.key));for(const N of o.fields??[]){const C=(d=N.value.match(Qe))==null?void 0:d[1];if(!C||b.has(C))continue;const k=(y=v.latest.metadata)==null?void 0:y[C];k==null||k===""||(b.add(C),m.push({key:C,label:N.label,value:k}))}return m};return e.jsxs("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(15rem,1fr))] gap-4","data-testid":"facet-board",children:[w.map(v=>{const m=$(v.latest),b=o.title?O(o.title,m):v.key,d=o.state?O(o.state,m):v.latest.subtype||v.latest.status,y=ct(d),N=j(v).length>0,C=k=>{if(k.shiftKey&&g&&i){i(g,v.rawValue);return}a==null||a(v.latest)};return e.jsxs("div",{role:"button",tabIndex:0,onClick:C,onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),C(k))},title:g?"Open the latest item · ⇧ click to filter the board":"Open the latest item",className:"group/card border-l-2 border-accent/30 bg-surface-sunken/40 rounded-[0.125em] px-4 py-3.5 cursor-pointer transition-colors hover:bg-surface-sunken/70 focus:outline-none focus-visible:ring-1 focus-visible:ring-accent/40","data-testid":"facet-board-card",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-2.5",children:[e.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary truncate",children:b}),e.jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("span",{className:"px-1.5 py-0.5 rounded text-2xs font-mono font-medium",style:{color:y.text,backgroundColor:y.bg},title:d,children:d}),N&&e.jsx(pe,{onOpen:()=>f(v),className:"-my-1 -mr-1"})]})]}),o.fields&&o.fields.length>0&&e.jsx("dl",{className:"space-y-1",children:o.fields.map((k,K)=>{const P=O(k.value,m);return e.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[e.jsx("dt",{className:"text-2xs uppercase tracking-wider text-text-quaternary shrink-0",children:k.label}),e.jsx("dd",{className:"min-w-0 truncate text-2xs text-text-primary",title:P&&P!==_?P:void 0,children:e.jsx(D,{raw:P,format:k.format})})]},K)})}),e.jsx("div",{className:"mt-3 flex justify-end",children:e.jsx(Y,{row:v.latest,def:u,onView:()=>a==null?void 0:a(v.latest),forceView:l})})]},v.key)}),e.jsx(fe,{open:!!h,onClose:()=>f(null),role:n,pairs:h?j(h):[],onNavigate:r??p,onAddFacet:i})]})}function ss({role:t,listSchema:s,listSchemaVersion:n,activeEscalations:a,groups:r,onRowClick:i,onOpenGroup:l,onAddFacet:p,forceViewAction:x,total:o,page:u,totalPages:h,pageSize:f,onPageChange:g,onPageSizeChange:w}){const j=s["x-lt-layout"],v=s["x-lt-active"]??{},m=s["x-lt-row-action"],b=a[0],d=s["x-lt-help"];Lt(_t(s));const y=e.jsxs("div",{className:"border border-surface-border/60 bg-surface-sunken rounded-[0.25em] p-4",children:[e.jsx(le,{children:"Active"}),b?e.jsx(Ft,{esc:b,card:v,rowAction:m,onOpen:()=>i==null?void 0:i(b),forceView:x}):e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No active item right now."})]}),N=d&&b?e.jsx("div",{className:"mb-8",children:e.jsx(G,{content:O(d,$(b))})}):d?e.jsx("div",{className:"mb-8",children:e.jsx(G,{content:d})}):null;if(j==="facet-table"){const C=o??a.length;return e.jsxs("div",{children:[e.jsx(Et,{schema:s,rows:a,groups:r,role:t,version:n,onRowClick:i,onAddFacet:p,forceView:x}),u!==void 0&&h!==void 0&&g&&e.jsx(te,{page:u,totalPages:h,onPageChange:g,total:C,pageSize:f??25,onPageSizeChange:w})]})}return j==="facet-board"?e.jsxs("div",{children:[N,e.jsx(It,{schema:s,rows:a,role:t,onOpenDetail:i,onOpenGroup:l,onAddFacet:p,forceView:x}),u!==void 0&&h!==void 0&&g&&h>1&&e.jsx(te,{page:u,totalPages:h,onPageChange:g,total:o??a.length,pageSize:f??25,onPageSizeChange:w})]}):j==="active-history"?e.jsxs("div",{children:[N,e.jsxs("div",{className:"grid grid-cols-1 @split:grid-cols-[1.6fr_1fr] gap-8 @split:gap-12 items-start",children:[y,e.jsxs("div",{className:"@split:pt-4",children:[e.jsx(le,{children:"History"}),e.jsx(Mt,{role:t,def:s["x-lt-history"]??{},onRowClick:i})]})]})]}):e.jsxs("div",{children:[N,y]})}const q="text-text-secondary transition-colors group-hover/row:text-text-primary";function Pt({row:t}){if(Xe(t)){const s=t.status==="resolved"?"text-status-success":"text-text-tertiary";return e.jsx(We,{className:`w-3 h-3 shrink-0 ${s}`})}return t.status==="resolved"?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-success",strokeWidth:2.5}):t.status==="cancelled"?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-error",strokeWidth:2.5}):t.status==="expired"?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-text-tertiary",strokeWidth:2.5}):Ze(t)?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-warning",strokeWidth:2.5}):e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-active",strokeWidth:2.5})}function Rt({metadata:t,role:s,highlightKeys:n}){const[a,r]=E.useState(!1),i=Ae();if(!t||Object.keys(t).length===0)return e.jsx("span",{className:"text-2xs text-text-tertiary",children:"—"});const l=n??[],p=[...l.filter(u=>u in t),...Object.keys(t).filter(u=>!l.includes(u))],x=a?p:p.slice(0,1),o=p.length-1;return e.jsx("div",{className:"w-full",onClick:u=>u.stopPropagation(),children:e.jsx("div",{className:"space-y-px",children:x.map((u,h)=>{const f=typeof t[u]=="object"&&t[u]!==null?JSON.stringify(t[u]):String(t[u]),g=l.includes(u),w=h===x.length-1;return e.jsxs("div",{className:"group/mrow flex items-center gap-1 min-w-0",children:[e.jsx("span",{className:`shrink-0 w-14 text-2xs font-mono uppercase tracking-wide truncate ${g?"text-accent":"text-text-tertiary"}`,title:u,children:u}),e.jsx("span",{className:`flex-1 min-w-0 text-2xs font-medium truncate ${g?"text-text-primary":"text-text-secondary"}`,title:f,children:f}),e.jsxs("span",{className:"flex items-center gap-px shrink-0 opacity-50 group-hover/mrow:opacity-100 transition-opacity",children:[e.jsx(z,{to:ee(u,t[u],s),className:"p-0.5 rounded text-text-quaternary hover:text-accent transition-colors",title:`Filter ${s}: ${u} = ${f}`,onClick:j=>j.stopPropagation(),children:e.jsx(He,{className:"w-3 h-3"})}),e.jsx(z,{to:ee(u,t[u]),className:"p-0.5 rounded text-text-quaternary hover:text-accent transition-colors",title:`Search all: ${u} = ${f}`,onClick:j=>j.stopPropagation(),children:e.jsx(xe,{className:"w-3 h-3"})}),i&&typeof t[u]=="string"&&e.jsx("button",{className:"p-0.5 rounded text-text-quaternary hover:text-accent transition-colors",title:`Timeline: every station ${f} has moved through`,onClick:j=>{j.stopPropagation(),i.setPanel(e.jsx(et,{facetKey:u,value:t[u],role:s}),{key:"entity-timeline",width:420})},children:e.jsx(Ue,{className:"w-3 h-3"})})]}),!a&&o>0&&e.jsxs("button",{onClick:j=>{j.stopPropagation(),r(!0)},className:"shrink-0 text-2xs text-text-quaternary hover:text-accent transition-colors font-mono",title:`Show ${o} more fields`,children:["+",o]}),a&&w&&o>0&&e.jsx("button",{onClick:j=>{j.stopPropagation(),r(!1)},className:"shrink-0 text-2xs text-text-quaternary hover:text-accent transition-colors",title:"Show less",children:"↑"})]},u)})})})}function At(t={}){return[{key:"description",label:"Summary",priority:1,render:s=>e.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[e.jsx("span",{className:"shrink-0",children:e.jsx(Pt,{row:s})}),e.jsx("span",{className:`truncate text-xs ${q}`,children:s.description||s.type})]}),className:"max-w-0"},{key:"assigned_to",label:"Assignee",priority:2,render:s=>s.assigned_to?e.jsx(it,{userId:s.assigned_to,className:`block truncate text-xs ${q}`}):e.jsx("span",{className:"text-xs text-text-quaternary",children:"—"}),className:"w-36 max-w-[9rem]"},{key:"role",label:"Role",priority:2,render:s=>e.jsx("span",{className:q,children:e.jsx(nt,{role:s.role,size:"md",tone:"inherit"})}),className:"w-44 min-w-[11rem]"},{key:"priority",label:"Pri",priority:2,render:s=>e.jsx("span",{className:q,children:e.jsx(at,{priority:s.priority,size:"sm",tone:"inherit"})}),className:"w-10"},{key:"workflow_type",label:"Workflow",priority:2,showFrom:"split",render:s=>e.jsx(rt,{type:s.workflow_type||s.type}),className:"w-40 whitespace-nowrap"},{key:"metadata",label:"Metadata",priority:2,showFrom:"wall",render:s=>e.jsx(Rt,{metadata:s.metadata,role:s.role,highlightKeys:t.highlightKeys}),className:"w-80 max-w-[19rem] align-top"},{key:"created_at",label:"Ago",priority:1,render:s=>e.jsx("span",{className:`text-xs tabular-nums ${q}`,title:s.created_at,children:Re(s.created_at)}),className:"w-14 whitespace-nowrap"}]}const as=At(),ns={key:"expires",label:e.jsx(Ke,{className:"w-3.5 h-3.5 text-text-tertiary"}),render:t=>t.assigned_until?e.jsx(lt,{until:t.assigned_until}):e.jsx("span",{className:"text-xs text-text-tertiary",children:"—"}),className:"w-16 whitespace-nowrap",priority:1},qt=[{value:"1",label:"P1"},{value:"2",label:"P2"},{value:"3",label:"P3"},{value:"4",label:"P4"}],Dt=[{value:"all",label:"All"},{value:"available",label:"Available"},{value:"claimed",label:"Claimed"},{value:"resolved",label:"Resolved"},{value:"cancelled",label:"Cancelled"},{value:"expired",label:"Expired"}];function rs({filters:t,setFilter:s,roles:n,types:a,showStatus:r=!1,showSearch:i=!0,showRole:l=!0,actions:p}){const x=[t.role,t.type,t.priority,t.status&&t.status!=="all"?t.status:"",t.search??""].filter(Boolean).length;return e.jsxs(tt,{actions:p,activeFilterCount:x,children:[r&&e.jsxs(e.Fragment,{children:[e.jsx(W,{label:"Status",value:t.status??"",onChange:o=>s("status",o),options:Dt}),e.jsx(H,{})]}),l&&e.jsxs(e.Fragment,{children:[e.jsx(W,{label:"Role",value:t.role,onChange:o=>s("role",o),options:n.map(o=>({value:o,label:o}))}),e.jsx(H,{})]}),e.jsx(W,{label:"Priority",value:t.priority,onChange:o=>s("priority",o),options:qt}),e.jsx(H,{}),e.jsx(W,{label:"Workflow Type",value:t.type,onChange:o=>s("type",o),options:a.map(o=>({value:o,label:o}))}),i&&e.jsxs(e.Fragment,{children:[e.jsx(H,{}),e.jsx(st,{label:"Search",value:t.search??"",onChange:o=>s("search",o),placeholder:"ID, workflow, origin…"})]})]})}export{rs as E,ns as T,ss as a,as as b,At as m};
|
|
2
|
-
//# sourceMappingURL=escalation-columns-
|
|
1
|
+
import{a as E,j as e,u as oe}from"./vendor-query-DvWWuNIB.js";import{a as O,H as Oe,g as ce,E as _,F as D,j as Ee,k as Le,f as _e}from"./escalation-items-C8iJZEA8.js";import{M as Fe,be as B,m as de,a0 as Me,bf as $e,ah as G,a9 as Ie,g as Pe,b0 as Re,a_ as Ae,ai as ee}from"./index-pzbGpihI.js";import{S as te}from"./StickyPagination-BdjseWXr.js";import{b as xe,ad as qe,e as De,az as Ke,aE as We,bH as A,at as He,aD as Ue}from"./vendor-icons-fxBvvHBi.js";import{c as ue,d as Ve,S as J,r as $,G as I,f as Be,b as Ge,e as me,I as Je,g as se,R as pe,h as Y,j as ze,k as Ye,M as Qe,l as Xe,i as Ze}from"./validate-hUqjWN63.js";import{D as he}from"./DataTable-FjFhx0SE.js";import{L as z,u as Q}from"./vendor-react-_9U4mKFr.js";import{E as et}from"./EntityTimelinePanel-Du1O6Oly.js";import{F as tt,b as W,c as H,a as st}from"./FilterBar-CzKYBOMC.js";import{P as at}from"./PriorityBadge-r33mpDju.js";import{R as nt}from"./RolePill-R5_ctGFy.js";import{W as rt}from"./WorkflowPill-D7244fKp.js";import{U as it}from"./UserName-C6ZNHHKN.js";import{C as lt}from"./CountdownTimer-iAG28fzG.js";const ae=[{text:"text-rose-400",bg:"bg-rose-400/[0.08]"},{text:"text-pink-400",bg:"bg-pink-400/[0.08]"},{text:"text-fuchsia-400",bg:"bg-fuchsia-400/[0.08]"},{text:"text-purple-400",bg:"bg-purple-400/[0.08]"},{text:"text-violet-400",bg:"bg-violet-400/[0.08]"},{text:"text-indigo-400",bg:"bg-indigo-400/[0.08]"},{text:"text-blue-400",bg:"bg-blue-400/[0.08]"},{text:"text-sky-400",bg:"bg-sky-400/[0.08]"},{text:"text-cyan-400",bg:"bg-cyan-400/[0.08]"},{text:"text-teal-400",bg:"bg-teal-400/[0.08]"},{text:"text-emerald-400",bg:"bg-emerald-400/[0.08]"},{text:"text-green-400",bg:"bg-green-400/[0.08]"},{text:"text-lime-400",bg:"bg-lime-400/[0.08]"},{text:"text-yellow-400",bg:"bg-yellow-400/[0.08]"},{text:"text-amber-400",bg:"bg-amber-400/[0.08]"},{text:"text-orange-400",bg:"bg-orange-400/[0.08]"},{text:"text-red-400",bg:"bg-red-400/[0.08]"},{text:"text-stone-400",bg:"bg-stone-400/[0.08]"},{text:"text-rose-300",bg:"bg-rose-300/[0.08]"},{text:"text-violet-300",bg:"bg-violet-300/[0.08]"},{text:"text-sky-300",bg:"bg-sky-300/[0.08]"},{text:"text-teal-300",bg:"bg-teal-300/[0.08]"},{text:"text-amber-300",bg:"bg-amber-300/[0.08]"},{text:"text-pink-300",bg:"bg-pink-300/[0.08]"}];function ot(t){let s=0;for(let n=0;n<t.length;n++)s=(s<<5)-s+t.charCodeAt(n)|0;return Math.abs(s)}function ct(t){return ae[ot(t)%ae.length]}const dt=6;function fe({open:t,onClose:s,role:n,pairs:a,onNavigate:r,onAddFacet:i}){const[l,p]=E.useState(new Set),[x,o]=E.useState(""),[u,h]=E.useState(t);if(t!==u&&(h(t),t)){const d=a.filter(N=>N.bound),y=d.length===1?[d[0].key]:a.length===1?[a[0].key]:[];p(new Set(y)),o("")}const f=x.trim().toLowerCase(),g=f?a.filter(d=>[d.label,d.key,String(d.value)].some(y=>y.toLowerCase().includes(f))):a,w=d=>{p(y=>{const N=new Set(y);return N.has(d)?N.delete(d):N.add(d),N})},j=a.filter(d=>l.has(d.key)),v=Object.fromEntries(j.map(d=>[d.key,d.value])),m=j.length===0,b=d=>{s(),r(d)};return e.jsx(Fe,{open:t,onClose:s,title:"Refine",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-2xs text-text-tertiary",children:"Pick the facts to match — several combine into one narrower query."}),a.length>dt&&e.jsxs("label",{className:"flex items-center gap-2 input text-xs py-1.5",children:[e.jsx(xe,{className:"w-3.5 h-3.5 shrink-0 text-text-quaternary",strokeWidth:1.5}),e.jsx("input",{type:"text",value:x,onChange:d=>o(d.target.value),placeholder:"Find a fact…",className:"flex-1 min-w-0 bg-transparent outline-none placeholder:text-text-quaternary","aria-label":"Find a fact","data-testid":"refine-find"}),e.jsxs("span",{className:"text-2xs tabular-nums text-text-quaternary",children:[g.length,"/",a.length]})]}),e.jsx("div",{className:"divide-y divide-surface-border/40 -mx-1 max-h-[50vh] overflow-y-auto",children:g.map(d=>{const y=l.has(d.key);return e.jsxs("button",{type:"button",onClick:()=>w(d.key),"aria-pressed":y,className:"w-full flex items-center gap-3 px-1 py-2.5 text-left group min-w-0","data-testid":"refine-pair",children:[e.jsx("span",{className:`w-4 h-4 rounded-[3px] border flex items-center justify-center shrink-0 transition-colors ${y?"bg-accent border-accent":"border-surface-border group-hover:border-accent/50"}`,"aria-hidden":!0,children:y&&e.jsx(qe,{className:"w-3 h-3 text-text-inverse",strokeWidth:3})}),e.jsx("span",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary w-28 shrink-0 truncate",title:d.key,children:d.label}),e.jsx("span",{className:"text-xs text-text-primary truncate flex-1 min-w-0",title:String(d.value),children:String(d.value)})]},d.key)})}),e.jsxs("div",{className:"flex items-center justify-end gap-3 pt-2 flex-wrap",children:[i&&e.jsx("button",{onClick:()=>{j.forEach(d=>i(d.key,d.value)),s()},disabled:m,className:"text-xs text-text-secondary hover:text-accent transition-colors disabled:opacity-40 disabled:cursor-not-allowed mr-auto","data-testid":"refine-add-filters",children:"Add to filters"}),e.jsx("button",{onClick:()=>b(B(v)),disabled:m,className:"btn-secondary text-xs disabled:opacity-40 disabled:cursor-not-allowed","data-testid":"refine-search-all",children:"Search everywhere"}),e.jsxs("button",{onClick:()=>b(B(v,n)),disabled:m,className:"btn-primary text-xs disabled:opacity-40 disabled:cursor-not-allowed","data-testid":"refine-filter-role",children:["Filter ",n]})]})]})})}function xt(t,s,n,a=!0){const r=[...s].sort();return oe({queryKey:["escalations","related",t,n??"latest",r],queryFn:()=>de("/escalations/related",{method:"POST",body:JSON.stringify({role:t,ids:r,...n!=null?{version:n}:{}})}),enabled:a&&!!t&&r.length>0,placeholderData:i=>i})}function ut(t,s,n,a,r,i=!0){return oe({queryKey:["escalations","related-rows",t,a??"latest",s,n,r??null],queryFn:()=>de("/escalations/related/rows",{method:"POST",body:JSON.stringify({role:t,id:s,set:n,...a!=null?{version:a}:{},...r?{limit:r}:{}})}),enabled:i&&!!t&&!!s&&!!n})}const mt=/^\{\{\s*([^{}]+?)\s*\}\}$/,pt=/\{\{\s*[^{}]+?\s*\}\}/,ht="—";function V(t){if(t&&typeof t=="object")return t;if(typeof t!="string"||!t)return null;try{const s=JSON.parse(t);return s&&typeof s=="object"?s:null}catch{return null}}function be(t){return{escalation:t,metadata:t.metadata??{},envelope:V(t.envelope)??{},payload:V(t.escalation_payload)??{},resolver:V(t.resolver_payload)??{}}}function ft(t,s){const n=t.indexOf("."),a=n===-1?t:t.slice(0,n);if(!Oe.includes(a))return;const r=s[a];if(n===-1)return r??void 0;try{return ce(r,t.slice(n+1))}catch{return}}function ne(t,s){if(typeof t!="string")return t;const n=t.match(mt);if(n){const r=ft(n[1],s);return r===null||r===""?void 0:r}if(!pt.test(t))return t;const a=O(t,s);return a.includes(ht)?void 0:a}function ye(t,s,n){const a={};for(const[r,i]of Object.entries(t)){const l=ne(i,s);if(l===void 0)return null;a[r]=l}for(const[r,i]of Object.entries(n??{})){const l=ne(i,s);l!==void 0&&(a[r]=l)}return a}function bt(t,s,n){var a,r;return(a=s.labels)!=null&&a[t]?s.labels[t]:s.splitBy===J.ROLE&&((r=n==null?void 0:n.roleLabels)!=null&&r[t])?n.roleLabels[t]:t===""?"None":t}function yt({col:t,set:s,agg:n,drillUrl:a}){if(!n||n.unresolved)return e.jsx("span",{className:"text-text-quaternary",children:_});if(ue(t.aggregate))return n.value===void 0?e.jsx("span",{className:"text-text-quaternary",children:_}):e.jsx("span",{className:"tabular-nums text-text-primary","data-testid":"related-cell",children:e.jsx(D,{raw:String(n.value),format:t.format})});const r=Ve(t.display,n.count),i=t.splitBy===J.ROLE&&(s!=null&&s.roles)?s.roles:null,l=Object.entries(n.splits??{}).filter(([,o])=>o>0).sort(([o,u],[h,f])=>i?i.indexOf(o)-i.indexOf(h):f-u),p=t.splitBy===J.ROLE?(s==null?void 0:s.restricted)??[]:[],x=[r!==null?String(n.count):"",n.hidden?`${n.hidden} not readable by you`:"",p.length?`Not counted (outside your view): ${p.map(o=>{var u;return((u=s==null?void 0:s.roleLabels)==null?void 0:u[o])??o}).join(", ")}`:""].filter(Boolean).join(" · ");return e.jsxs("span",{className:"inline-flex flex-wrap items-center gap-1 min-w-0",title:x||void 0,"data-testid":"related-cell",children:[e.jsx("span",{className:"tabular-nums font-medium text-text-primary","data-testid":"related-count",children:r??n.count}),l.map(([o,u])=>{const h=`${bt(o,t,s)} ${u}`,f=i&&a?a(o):null,g="px-1.5 py-0.5 rounded bg-surface-sunken text-2xs text-text-secondary whitespace-nowrap tabular-nums";return f?e.jsx(z,{to:f,onClick:w=>w.stopPropagation(),className:`${g} hover:text-accent`,"data-testid":"related-chip",children:h},o):e.jsx("span",{className:g,"data-testid":"related-chip",children:h},o)}),(n.hidden||p.length>0)&&e.jsx("span",{className:"text-2xs text-text-quaternary italic","data-testid":"related-restricted",children:n.hidden&&!l.length?"split restricted":"partial"})]})}const gt="role";function re(t,s){const n=s.escalation?$(s.escalation):{};return Ee(t,s.item,n)}function jt({role:t,host:s,version:n,section:a,roleLabels:r}){var w,j,v;const i=Q(),l=ut(t,s.id,a.related,n,a.limit),p=((w=l.data)==null?void 0:w.rows)??[],x=((j=l.data)==null?void 0:j.roleLabels)??r??{},o=((v=l.data)==null?void 0:v.restricted)??[],u=new Set(Object.values(s.metadata??{}).filter(m=>typeof m=="string"&&m!==""||typeof m=="number"||typeof m=="boolean").map(String)),f=a.columns.filter((m,b)=>{if(b===0||p.length===0)return!0;const d=new Set(p.map(y=>re(m.value,y)));return!(d.size===1&&u.has([...d][0]))}).map((m,b)=>({key:`d-${b}`,label:m.label,priority:m.priority??(b===0?1:2),render:d=>{const y=re(m.value,d);return m.format===gt&&y!==_?e.jsx("span",{className:"block truncate",children:x[y]??Me({role:y})}):e.jsx("span",{className:"block truncate",title:y!==_?y:void 0,children:e.jsx(D,{raw:y,format:m.format})})}})),g=m=>{var b,d;return((b=m.escalation)==null?void 0:b.id)??((d=m.item)==null?void 0:d.reciprocalId)??null};return e.jsxs("div",{"data-testid":"row-detail-section",children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary pt-3 pb-1",children:[a.label??a.related,l.data&&e.jsx("span",{className:"ml-2 font-normal normal-case tracking-normal tabular-nums",children:l.data.total})]}),l.isLoading?e.jsx("p",{className:"text-2xs text-text-tertiary italic pb-2",children:"Loading…"}):e.jsx(he,{columns:f,data:p,keyFn:m=>{var b,d;return((b=m.item)==null?void 0:b.itemKey)??String((d=m.escalation)==null?void 0:d.id)},onRowClick:m=>{const b=g(m);b&&i(`/escalations/detail/${b}`)},layout:"fixed",density:"compact",inline:!0,emptyMessage:""}),!l.isLoading&&p.length===0&&e.jsx("p",{className:"text-2xs text-text-quaternary italic pb-2",children:"None."}),l.data&&l.data.total>p.length&&e.jsxs("p",{className:"text-2xs text-text-quaternary pb-2",children:["Showing ",p.length," of ",l.data.total,"."]}),o.length>0&&e.jsxs("p",{className:"text-2xs text-text-quaternary italic pb-2",children:["Not shown (outside your view): ",o.map(m=>x[m]??m).join(", ")]})]})}function vt({role:t,host:s,version:n,sections:a}){return e.jsx("div",{className:"space-y-1","data-testid":"row-detail",children:a.map((r,i)=>e.jsx(jt,{role:t,host:s,version:n,section:r},i))})}function wt(t,s){return t.flatMap(n=>{if(n.rows.length<2||!s.has(n.key))return[n];const a=n.rows.map((r,i)=>({key:`${n.key}/${r.id}`,rows:[r],groupKey:n.groupKey,depth:1,lastChild:i===n.rows.length-1,parent:n}));return[n,...a]})}function Nt(t,s){if(!s)return t.map(a=>({key:a.id,rows:[a],groupKey:null}));const n=new Map(t.map(a=>[a.id,a]));return s.map(a=>({key:a.key!=null?`group:${a.key}`:a.ids[0],rows:a.ids.map(r=>n.get(r)).filter(r=>!!r),groupKey:a.key})).filter(a=>a.rows.length>0)}function kt(t){const s=t.map(n=>Number(n));return s.every(n=>Number.isFinite(n))?s:null}function ie(t,s){const n=t.group??I.FIRST;if(n===I.COUNT)return String(s.length);const a=s.map(l=>O(t.value,$(l))).filter(l=>l&&l!==_);if(n===I.DISTINCT)return a.length?[...new Set(a)].join(", "):_;if(n===I.FIRST||s.length===1)return a[0]??_;if(!a.length)return _;const r=kt(a);if(n===I.SUM)return r?String(r.reduce((l,p)=>l+p,0)):_;if(r)return String(n===I.MIN?Math.min(...r):Math.max(...r));const i=[...a].sort();return n===I.MIN?i[0]:i[i.length-1]}function St(t,s){const n=t.filter(r=>!!r);if(!n.length)return;if(n.every(r=>r.unresolved))return{count:0,unresolved:!0};const a={count:0};for(const r of n)if(!r.unresolved&&(a.count+=r.count,r.hidden&&(a.hidden=(a.hidden??0)+r.hidden),r.splits)){a.splits??(a.splits={});for(const[i,l]of Object.entries(r.splits))a.splits[i]=(a.splits[i]??0)+l}if(ue(s)){const r=Be(s,n.flatMap(i=>i.value===void 0?[]:[i.value]));r!==void 0&&(a.value=r)}return a}function Tt(t,s,n){const a=new Set;return t.filter(r=>{const i=ye(s,be(r),n);if(!i)return!0;const l=JSON.stringify(i);return a.has(l)?!1:(a.add(l),!0)})}function Ct(t){try{return Ge(t)}catch{return null}}function Ot(t){var a;const s=xt(t.role,t.rows.map(r=>r.id),t.version),n=((a=s.data)==null?void 0:a.sets)??{};return $e(Object.values(n).flatMap(r=>r.roles??[])),e.jsx(ge,{...t,sets:n,setsLoading:s.isLoading})}function Et(t){const s=E.useMemo(()=>Ct(t.schema),[t.schema]);return s&&Object.keys(s.sets).length>0?e.jsx(Ot,{...t,relations:s}):e.jsx(ge,{...t,relations:s,sets:{},setsLoading:!1})}function ge({schema:t,rows:s,groups:n,role:a,version:r,onRowClick:i,onAddFacet:l,forceView:p,relations:x,sets:o,setsLoading:u}){const h=Q(),f=t["x-lt-columns"]??[],g=t["x-lt-row-action"],w=(x==null?void 0:x.rowDetail)??[],[j,v]=E.useState(null),[m,b]=E.useState(()=>new Set),d=E.useMemo(()=>Nt(s,n),[s,n]),y=E.useMemo(()=>wt(d,m),[d,m]),N=!!n,C=w.length>0||N,k=c=>c.rows.length>1||w.length>0,K=c=>b(T=>{const S=new Set(T);return S.has(c)?S.delete(c):S.add(c),S}),P=(c,T)=>{var X,Z;const S=c.related,F=o[S],L=(X=x==null?void 0:x.sets[S])==null?void 0:X.query,ke=L!=null&&L.facets?Tt(T,L.facets,L.narrow):T,Se=Ye(c,((Z=x==null?void 0:x.sets[S])==null?void 0:Z.source)??""),Te=St(ke.map(U=>{var R;return(R=F==null?void 0:F.aggregates[Se])==null?void 0:R[U.id]}),c.aggregate),Ce=L!=null&&L.facets&&T.length===1?U=>{const R=ye(L.facets,be(T[0]),L.narrow);return R?B(R,U):null}:void 0;return e.jsx(yt,{col:c,set:F,agg:u?void 0:Te,drillUrl:Ce})},je=(g==null?void 0:g.label)??(p?"View":"Claim"),M=c=>c.rows[0],ve=[...C?[{key:"_expand",label:"",priority:1,className:"w-12 px-1",render:c=>e.jsx("span",{className:`flex ${c.depth?"pl-5":""}`,children:k(c)&&e.jsx("button",{type:"button",onClick:T=>{T.stopPropagation(),K(c.key)},className:"p-1 rounded icon-link hover:bg-surface-hover transition-colors","aria-expanded":m.has(c.key),"aria-label":m.has(c.key)?"Collapse row":"Expand row","data-testid":"row-expand",children:e.jsx(De,{className:`w-3.5 h-3.5 transition-transform ${m.has(c.key)?"rotate-90":""}`,strokeWidth:1.75})})})}]:[],{key:"_status",label:"",priority:1,className:"w-8",render:c=>e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:`w-2.5 h-2.5 inline-block rounded-full dot-ring ${me(M(c))}`,title:M(c).status}),c.rows.length>1&&e.jsx("span",{className:"text-2xs tabular-nums text-text-tertiary",title:`${c.rows.length} rows in this group`,"data-testid":"group-size",children:c.rows.length})]})},...f.map((c,T)=>({key:`col-${T}`,label:c.label,priority:c.priority??(T===0?1:2),width:c.width??(T===0&&!f.some(S=>S.width)?Je:void 0),render:S=>{if(c.related)return P(c,S.rows);const F=S.rows.length>1?ie(c,S.rows):O(c.value,$(M(S)));if(S.parent&&F===ie(c,S.parent.rows))return null;const L=T===0&&S.depth?"pl-4":"";return e.jsx("span",{className:`block truncate ${L}`,title:F&&F!==_?F:void 0,children:e.jsx(D,{raw:F,format:c.format})})}})),{key:"_refine",label:"",priority:1,className:"w-8 px-1",render:c=>c.rows.length===1&&se(M(c),f).length>0?e.jsx(pe,{onOpen:()=>v(M(c))}):null},{key:"_action",label:"",priority:1,width:ze(je),className:"text-right whitespace-nowrap",render:c=>c.rows.length===1?e.jsx(Y,{row:M(c),def:g,onView:()=>i==null?void 0:i(M(c)),forceView:p}):null}],we=c=>c.depth?"bg-surface-sunken border-b-surface-border/40":m.has(c.key)&&k(c)?"bg-surface-sunken/50 border-b-surface-border/40":"",Ne=c=>!m.has(c.key)||c.rows.length>1||w.length===0?null:e.jsx("div",{onClick:T=>T.stopPropagation(),className:`${c.depth?"bg-surface-sunken pl-20":"bg-surface-sunken/50 pl-12"} pr-3 pt-1 pb-4`,"data-testid":"row-detail-block",children:e.jsx(vt,{role:a,host:M(c),version:r,sections:w})});return e.jsxs(e.Fragment,{children:[e.jsx(he,{columns:ve,data:y,layout:"fixed",density:"dense",keyFn:c=>c.key,onRowClick:i?c=>c.rows.length===1?i(M(c)):K(c.key):void 0,rowClassName:C?we:void 0,emptyMessage:"No pending items.",renderExpansion:C?Ne:void 0}),e.jsx(fe,{open:!!j,onClose:()=>v(null),role:a,pairs:j?se(j,f):[],onNavigate:h,onAddFacet:l})]})}function Lt(t){const[,s]=E.useState(0);E.useEffect(()=>{if(!t)return;const n=window.setInterval(()=>s(a=>a+1),6e4);return()=>window.clearInterval(n)},[t])}function _t(t){var s;return[...t["x-lt-columns"]??[],...((s=t["x-lt-card"])==null?void 0:s.fields)??[]].some(n=>Le(n.format))}function Ft({esc:t,card:s,rowAction:n,onOpen:a,forceView:r}){const i=$(t),l=s.title?O(s.title,i):t.type;return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-start justify-between gap-6",children:[e.jsxs("button",{onClick:a,className:"text-left group min-w-0",children:[e.jsx("h3",{className:"heading-2 group-hover:text-accent transition-colors leading-tight",children:l}),s.subtitle&&e.jsx("p",{className:"text-xs text-text-tertiary mt-1.5",children:O(s.subtitle,i)})]}),e.jsx(Y,{row:t,def:n,onView:a,prominent:!0,forceView:r})]}),s.fields&&s.fields.length>0&&e.jsx("dl",{className:"flex flex-wrap gap-x-10 gap-y-4 mt-6",children:s.fields.map((p,x)=>e.jsxs("div",{children:[e.jsx("dt",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:p.label}),e.jsx("dd",{className:"text-xs text-text-primary mt-1",children:e.jsx(D,{raw:O(p.value,i)})})]},x))}),s.body&&e.jsx("div",{className:"mt-7 pt-6 border-t border-surface-border/50",children:e.jsx(G,{content:O(s.body,i)})})]})}function Mt({role:t,def:s,onRowClick:n}){var o,u;const[a,r]=E.useState(!1),i=Ie({role:t,status:s.status??"resolved",sort_by:"resolved_at",order:"desc",limit:s.limit??25,enabled:a,include:_e(s)?"envelope":void 0}),l=((o=i.data)==null?void 0:o.escalations)??[],p=((u=i.data)==null?void 0:u.total)??0,x=s.row??{};return a?i.isLoading?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"Loading history…"}):l.length===0?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No past revisions."}):e.jsxs("div",{children:[e.jsx("div",{className:"divide-y divide-surface-border/40",children:l.map(h=>{const f=$(h);return e.jsxs("button",{onClick:()=>n==null?void 0:n(h),className:"w-full text-left py-2.5 group flex items-center gap-3",children:[e.jsx("span",{className:`w-2.5 h-2.5 shrink-0 rounded-full dot-ring ${me(h)}`,title:h.status}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block text-xs text-text-primary group-hover:text-accent transition-colors truncate",children:x.title?O(x.title,f):h.type}),x.subtitle&&e.jsx("span",{className:"block text-2xs text-text-tertiary truncate",children:O(x.subtitle,f)})]}),x.meta?e.jsx("span",{className:"text-2xs text-text-tertiary shrink-0",children:O(x.meta,f)}):h.resolved_at&&e.jsx(Pe,{date:h.resolved_at,format:"relative",className:"text-2xs text-text-tertiary shrink-0 whitespace-nowrap"})]},h.id)})}),p>l.length&&e.jsxs("p",{className:"text-2xs text-text-quaternary mt-3",children:["Showing ",l.length," of ",p,"."]})]}):e.jsx("button",{onClick:()=>r(!0),className:"text-xs text-accent hover:underline","data-testid":"load-history",children:"Load full history →"})}function le({children:t}){return e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-3",children:t})}function $t(t,s){var i;const n=s.indexOf("."),a=s.startsWith("metadata.")?s.slice(9):null,r=new Map;for(const l of t){const p=$(l);let x;try{x=n===-1?p[s]:ce(p[s.slice(0,n)],s.slice(n+1))}catch{x=void 0}if(x==null||x==="")continue;const o=String(x),u=a?((i=l.metadata)==null?void 0:i[a])??x:x,h=r.get(o);h?(h.count+=1,new Date(l.created_at)>new Date(h.latest.created_at)&&(h.latest=l)):r.set(o,{key:o,rawValue:u,latest:l,count:1})}return[...r.values()].sort((l,p)=>l.key.localeCompare(p.key))}function It({schema:t,rows:s,role:n,onOpenDetail:a,onOpenGroup:r,onAddFacet:i,forceView:l}){const p=Q(),x=t["x-lt-group-by"],o=t["x-lt-card"]??{},u=t["x-lt-row-action"],[h,f]=E.useState(null);if(!x)return e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"facet-board needs an x-lt-group-by path."});const g=x.startsWith("metadata.")?x.slice(9):null,w=$t(s,x);if(w.length===0)return e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No entities in scope."});const j=v=>{var d,y;const m=[];g&&m.push({key:g,label:g,value:v.rawValue});const b=new Set(m.map(N=>N.key));for(const N of o.fields??[]){const C=(d=N.value.match(Qe))==null?void 0:d[1];if(!C||b.has(C))continue;const k=(y=v.latest.metadata)==null?void 0:y[C];k==null||k===""||(b.add(C),m.push({key:C,label:N.label,value:k}))}return m};return e.jsxs("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(15rem,1fr))] gap-4","data-testid":"facet-board",children:[w.map(v=>{const m=$(v.latest),b=o.title?O(o.title,m):v.key,d=o.state?O(o.state,m):v.latest.subtype||v.latest.status,y=ct(d),N=j(v).length>0,C=k=>{if(k.shiftKey&&g&&i){i(g,v.rawValue);return}a==null||a(v.latest)};return e.jsxs("div",{role:"button",tabIndex:0,onClick:C,onKeyDown:k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),C(k))},title:g?"Open the latest item · ⇧ click to filter the board":"Open the latest item",className:"group/card border-l-2 border-accent/30 bg-surface-sunken/40 rounded-[0.125em] px-4 py-3.5 cursor-pointer transition-colors hover:bg-surface-sunken/70 focus:outline-none focus-visible:ring-1 focus-visible:ring-accent/40","data-testid":"facet-board-card",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-2.5",children:[e.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary truncate",children:b}),e.jsxs("span",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("span",{className:"px-1.5 py-0.5 rounded text-2xs font-mono font-medium",style:{color:y.text,backgroundColor:y.bg},title:d,children:d}),N&&e.jsx(pe,{onOpen:()=>f(v),className:"-my-1 -mr-1"})]})]}),o.fields&&o.fields.length>0&&e.jsx("dl",{className:"space-y-1",children:o.fields.map((k,K)=>{const P=O(k.value,m);return e.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[e.jsx("dt",{className:"text-2xs uppercase tracking-wider text-text-quaternary shrink-0",children:k.label}),e.jsx("dd",{className:"min-w-0 truncate text-2xs text-text-primary",title:P&&P!==_?P:void 0,children:e.jsx(D,{raw:P,format:k.format})})]},K)})}),e.jsx("div",{className:"mt-3 flex justify-end",children:e.jsx(Y,{row:v.latest,def:u,onView:()=>a==null?void 0:a(v.latest),forceView:l})})]},v.key)}),e.jsx(fe,{open:!!h,onClose:()=>f(null),role:n,pairs:h?j(h):[],onNavigate:r??p,onAddFacet:i})]})}function ss({role:t,listSchema:s,listSchemaVersion:n,activeEscalations:a,groups:r,onRowClick:i,onOpenGroup:l,onAddFacet:p,forceViewAction:x,total:o,page:u,totalPages:h,pageSize:f,onPageChange:g,onPageSizeChange:w}){const j=s["x-lt-layout"],v=s["x-lt-active"]??{},m=s["x-lt-row-action"],b=a[0],d=s["x-lt-help"];Lt(_t(s));const y=e.jsxs("div",{className:"border border-surface-border/60 bg-surface-sunken rounded-[0.25em] p-4",children:[e.jsx(le,{children:"Active"}),b?e.jsx(Ft,{esc:b,card:v,rowAction:m,onOpen:()=>i==null?void 0:i(b),forceView:x}):e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No active item right now."})]}),N=d&&b?e.jsx("div",{className:"mb-8",children:e.jsx(G,{content:O(d,$(b))})}):d?e.jsx("div",{className:"mb-8",children:e.jsx(G,{content:d})}):null;if(j==="facet-table"){const C=o??a.length;return e.jsxs("div",{children:[e.jsx(Et,{schema:s,rows:a,groups:r,role:t,version:n,onRowClick:i,onAddFacet:p,forceView:x}),u!==void 0&&h!==void 0&&g&&e.jsx(te,{page:u,totalPages:h,onPageChange:g,total:C,pageSize:f??25,onPageSizeChange:w})]})}return j==="facet-board"?e.jsxs("div",{children:[N,e.jsx(It,{schema:s,rows:a,role:t,onOpenDetail:i,onOpenGroup:l,onAddFacet:p,forceView:x}),u!==void 0&&h!==void 0&&g&&h>1&&e.jsx(te,{page:u,totalPages:h,onPageChange:g,total:o??a.length,pageSize:f??25,onPageSizeChange:w})]}):j==="active-history"?e.jsxs("div",{children:[N,e.jsxs("div",{className:"grid grid-cols-1 @split:grid-cols-[1.6fr_1fr] gap-8 @split:gap-12 items-start",children:[y,e.jsxs("div",{className:"@split:pt-4",children:[e.jsx(le,{children:"History"}),e.jsx(Mt,{role:t,def:s["x-lt-history"]??{},onRowClick:i})]})]})]}):e.jsxs("div",{children:[N,y]})}const q="text-text-secondary transition-colors group-hover/row:text-text-primary";function Pt({row:t}){if(Xe(t)){const s=t.status==="resolved"?"text-status-success":"text-text-tertiary";return e.jsx(We,{className:`w-3 h-3 shrink-0 ${s}`})}return t.status==="resolved"?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-success",strokeWidth:2.5}):t.status==="cancelled"?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-error",strokeWidth:2.5}):t.status==="expired"?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-text-tertiary",strokeWidth:2.5}):Ze(t)?e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-warning",strokeWidth:2.5}):e.jsx(A,{className:"w-2.5 h-2.5 shrink-0 text-status-active",strokeWidth:2.5})}function Rt({metadata:t,role:s,highlightKeys:n}){const[a,r]=E.useState(!1),i=Ae();if(!t||Object.keys(t).length===0)return e.jsx("span",{className:"text-2xs text-text-tertiary",children:"—"});const l=n??[],p=[...l.filter(u=>u in t),...Object.keys(t).filter(u=>!l.includes(u))],x=a?p:p.slice(0,1),o=p.length-1;return e.jsx("div",{className:"w-full",onClick:u=>u.stopPropagation(),children:e.jsx("div",{className:"space-y-px",children:x.map((u,h)=>{const f=typeof t[u]=="object"&&t[u]!==null?JSON.stringify(t[u]):String(t[u]),g=l.includes(u),w=h===x.length-1;return e.jsxs("div",{className:"group/mrow flex items-center gap-1 min-w-0",children:[e.jsx("span",{className:`shrink-0 w-14 text-2xs font-mono uppercase tracking-wide truncate ${g?"text-accent":"text-text-tertiary"}`,title:u,children:u}),e.jsx("span",{className:`flex-1 min-w-0 text-2xs font-medium truncate ${g?"text-text-primary":"text-text-secondary"}`,title:f,children:f}),e.jsxs("span",{className:"flex items-center gap-px shrink-0 opacity-50 group-hover/mrow:opacity-100 transition-opacity",children:[e.jsx(z,{to:ee(u,t[u],s),className:"p-0.5 rounded text-text-quaternary hover:text-accent transition-colors",title:`Filter ${s}: ${u} = ${f}`,onClick:j=>j.stopPropagation(),children:e.jsx(He,{className:"w-3 h-3"})}),e.jsx(z,{to:ee(u,t[u]),className:"p-0.5 rounded text-text-quaternary hover:text-accent transition-colors",title:`Search all: ${u} = ${f}`,onClick:j=>j.stopPropagation(),children:e.jsx(xe,{className:"w-3 h-3"})}),i&&typeof t[u]=="string"&&e.jsx("button",{className:"p-0.5 rounded text-text-quaternary hover:text-accent transition-colors",title:`Timeline: every station ${f} has moved through`,onClick:j=>{j.stopPropagation(),i.setPanel(e.jsx(et,{facetKey:u,value:t[u],role:s}),{key:"entity-timeline",width:420})},children:e.jsx(Ue,{className:"w-3 h-3"})})]}),!a&&o>0&&e.jsxs("button",{onClick:j=>{j.stopPropagation(),r(!0)},className:"shrink-0 text-2xs text-text-quaternary hover:text-accent transition-colors font-mono",title:`Show ${o} more fields`,children:["+",o]}),a&&w&&o>0&&e.jsx("button",{onClick:j=>{j.stopPropagation(),r(!1)},className:"shrink-0 text-2xs text-text-quaternary hover:text-accent transition-colors",title:"Show less",children:"↑"})]},u)})})})}function At(t={}){return[{key:"description",label:"Summary",priority:1,render:s=>e.jsxs("div",{className:"flex items-center gap-2 overflow-hidden",children:[e.jsx("span",{className:"shrink-0",children:e.jsx(Pt,{row:s})}),e.jsx("span",{className:`truncate text-xs ${q}`,children:s.description||s.type})]}),className:"max-w-0"},{key:"assigned_to",label:"Assignee",priority:2,render:s=>s.assigned_to?e.jsx(it,{userId:s.assigned_to,className:`block truncate text-xs ${q}`}):e.jsx("span",{className:"text-xs text-text-quaternary",children:"—"}),className:"w-36 max-w-[9rem]"},{key:"role",label:"Role",priority:2,render:s=>e.jsx("span",{className:q,children:e.jsx(nt,{role:s.role,size:"md",tone:"inherit"})}),className:"w-44 min-w-[11rem]"},{key:"priority",label:"Pri",priority:2,render:s=>e.jsx("span",{className:q,children:e.jsx(at,{priority:s.priority,size:"sm",tone:"inherit"})}),className:"w-10"},{key:"workflow_type",label:"Workflow",priority:2,showFrom:"split",render:s=>e.jsx(rt,{type:s.workflow_type||s.type}),className:"w-40 whitespace-nowrap"},{key:"metadata",label:"Metadata",priority:2,showFrom:"wall",render:s=>e.jsx(Rt,{metadata:s.metadata,role:s.role,highlightKeys:t.highlightKeys}),className:"w-80 max-w-[19rem] align-top"},{key:"created_at",label:"Ago",priority:1,render:s=>e.jsx("span",{className:`text-xs tabular-nums ${q}`,title:s.created_at,children:Re(s.created_at)}),className:"w-14 whitespace-nowrap"}]}const as=At(),ns={key:"expires",label:e.jsx(Ke,{className:"w-3.5 h-3.5 text-text-tertiary"}),render:t=>t.assigned_until?e.jsx(lt,{until:t.assigned_until}):e.jsx("span",{className:"text-xs text-text-tertiary",children:"—"}),className:"w-16 whitespace-nowrap",priority:1},qt=[{value:"1",label:"P1"},{value:"2",label:"P2"},{value:"3",label:"P3"},{value:"4",label:"P4"}],Dt=[{value:"all",label:"All"},{value:"available",label:"Available"},{value:"claimed",label:"Claimed"},{value:"resolved",label:"Resolved"},{value:"cancelled",label:"Cancelled"},{value:"expired",label:"Expired"}];function rs({filters:t,setFilter:s,roles:n,types:a,showStatus:r=!1,showSearch:i=!0,showRole:l=!0,actions:p}){const x=[t.role,t.type,t.priority,t.status&&t.status!=="all"?t.status:"",t.search??""].filter(Boolean).length;return e.jsxs(tt,{actions:p,activeFilterCount:x,children:[r&&e.jsxs(e.Fragment,{children:[e.jsx(W,{label:"Status",value:t.status??"",onChange:o=>s("status",o),options:Dt}),e.jsx(H,{})]}),l&&e.jsxs(e.Fragment,{children:[e.jsx(W,{label:"Role",value:t.role,onChange:o=>s("role",o),options:n.map(o=>({value:o,label:o}))}),e.jsx(H,{})]}),e.jsx(W,{label:"Priority",value:t.priority,onChange:o=>s("priority",o),options:qt}),e.jsx(H,{}),e.jsx(W,{label:"Workflow Type",value:t.type,onChange:o=>s("type",o),options:a.map(o=>({value:o,label:o}))}),i&&e.jsxs(e.Fragment,{children:[e.jsx(H,{}),e.jsx(st,{label:"Search",value:t.search??"",onChange:o=>s("search",o),placeholder:"ID, workflow, origin…"})]})]})}export{rs as E,ns as T,ss as a,as as b,At as m};
|
|
2
|
+
//# sourceMappingURL=escalation-columns-DJbfsH_m.js.map
|