@hotmeshio/long-tail 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/dist/assets/AdminDashboard-Ck5-jV9T.js +2 -0
- package/dashboard/dist/assets/{AdminDashboard-9JLg41f-.js.map → AdminDashboard-Ck5-jV9T.js.map} +1 -1
- package/dashboard/dist/assets/AgentConfigPage-DFiXRBWs.js +16 -0
- package/dashboard/dist/assets/AgentConfigPage-DFiXRBWs.js.map +1 -0
- package/dashboard/dist/assets/AgentDetailPage-BBgM_pMe.js +4 -0
- package/dashboard/dist/assets/AgentDetailPage-BBgM_pMe.js.map +1 -0
- package/dashboard/dist/assets/AgentsPage-DxwFuedf.js +2 -0
- package/dashboard/dist/assets/AgentsPage-DxwFuedf.js.map +1 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-DNQbeIcn.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-CoZ4Lufr.js.map → AvailableEscalationsPage-DNQbeIcn.js.map} +1 -1
- package/dashboard/dist/assets/BotPicker-mqwKVOE3.js +2 -0
- package/dashboard/dist/assets/{BotPicker-xGUCxJo-.js.map → BotPicker-mqwKVOE3.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-Biffm0kW.js +2 -0
- package/dashboard/dist/assets/CapabilitiesPage-Biffm0kW.js.map +1 -0
- package/dashboard/dist/assets/CollapsibleSection-Bn6Ks79X.js +2 -0
- package/dashboard/dist/assets/{CollapsibleSection-CXMPecjj.js.map → CollapsibleSection-Bn6Ks79X.js.map} +1 -1
- package/dashboard/dist/assets/ConfirmDeleteModal-no0-c_1G.js +2 -0
- package/dashboard/dist/assets/{ConfirmDeleteModal-D9_1b4MW.js.map → ConfirmDeleteModal-no0-c_1G.js.map} +1 -1
- package/dashboard/dist/assets/CopyableId-DS6IDMIX.js +2 -0
- package/dashboard/dist/assets/{CopyableId-blg-gZvT.js.map → CopyableId-DS6IDMIX.js.map} +1 -1
- package/dashboard/dist/assets/CredentialsPage-C3NyncEB.js +2 -0
- package/dashboard/dist/assets/CredentialsPage-C3NyncEB.js.map +1 -0
- package/dashboard/dist/assets/CronLabel-DQWBx57H.js +2 -0
- package/dashboard/dist/assets/CronLabel-DQWBx57H.js.map +1 -0
- package/dashboard/dist/assets/CustomDurationPicker-DV42oZ1G.js +2 -0
- package/dashboard/dist/assets/{CustomDurationPicker-id6Tq64R.js.map → CustomDurationPicker-DV42oZ1G.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-Bf4dgxll.js +2 -0
- package/dashboard/dist/assets/{DataTable-ZWgVQg7F.js.map → DataTable-Bf4dgxll.js.map} +1 -1
- package/dashboard/dist/assets/DropZone-CTSXBb3c.js +2 -0
- package/dashboard/dist/assets/{DropZone-CZDmNBn-.js.map → DropZone-CTSXBb3c.js.map} +1 -1
- package/dashboard/dist/assets/ElapsedCell-roy4G5SQ.js +2 -0
- package/dashboard/dist/assets/{ElapsedCell-B8TrnyT5.js.map → ElapsedCell-roy4G5SQ.js.map} +1 -1
- package/dashboard/dist/assets/EmptyState-CLVm9KmA.js +2 -0
- package/dashboard/dist/assets/{EmptyState-BcsfPq9T.js.map → EmptyState-CLVm9KmA.js.map} +1 -1
- package/dashboard/dist/assets/EscalationSchemaPage-DulCCxea.js +9 -0
- package/dashboard/dist/assets/EscalationSchemaPage-DulCCxea.js.map +1 -0
- package/dashboard/dist/assets/EscalationsOverview-DDwxn_mT.js +2 -0
- package/dashboard/dist/assets/{EscalationsOverview-CjLyujJ3.js.map → EscalationsOverview-DDwxn_mT.js.map} +1 -1
- package/dashboard/dist/assets/EventTable-BaLNvCew.js +2 -0
- package/dashboard/dist/assets/EventTable-BaLNvCew.js.map +1 -0
- package/dashboard/dist/assets/FilterBar-DEAbNQqp.js +2 -0
- package/dashboard/dist/assets/FilterBar-DEAbNQqp.js.map +1 -0
- package/dashboard/dist/assets/GraphInvokePage-BmM8r0R3.js +2 -0
- package/dashboard/dist/assets/GraphInvokePage-BmM8r0R3.js.map +1 -0
- package/dashboard/dist/assets/HomePage-Ds3PzWWr.js +2 -0
- package/dashboard/dist/assets/HomePage-Ds3PzWWr.js.map +1 -0
- package/dashboard/dist/assets/ListToolbar-Dviaskni.js +2 -0
- package/dashboard/dist/assets/{ListToolbar--FkPpYDY.js.map → ListToolbar-Dviaskni.js.map} +1 -1
- package/dashboard/dist/assets/McpOverview-BBm66wbF.js +2 -0
- package/dashboard/dist/assets/{McpOverview-CtAFXv-T.js.map → McpOverview-BBm66wbF.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryDetailPage-B6GJOMcz.js +5 -0
- package/dashboard/dist/assets/McpQueryDetailPage-B6GJOMcz.js.map +1 -0
- package/dashboard/dist/assets/McpQueryPage-C-8nIdBL.js +2 -0
- package/dashboard/dist/assets/McpQueryPage-C-8nIdBL.js.map +1 -0
- package/dashboard/dist/assets/McpRunDetailPage-CSq_0qqi.js +2 -0
- package/dashboard/dist/assets/{McpRunDetailPage-BYIxBcA7.js.map → McpRunDetailPage-CSq_0qqi.js.map} +1 -1
- package/dashboard/dist/assets/McpRunsPage-BdK8ahX7.js +2 -0
- package/dashboard/dist/assets/McpRunsPage-BdK8ahX7.js.map +1 -0
- package/dashboard/dist/assets/Modal-C6HI6btY.js +2 -0
- package/dashboard/dist/assets/{Modal-CSrxpXeM.js.map → Modal-C6HI6btY.js.map} +1 -1
- package/dashboard/dist/assets/NamespacePill-eGsbJBFa.js +2 -0
- package/dashboard/dist/assets/{NamespacePill-DlqBTvFR.js.map → NamespacePill-eGsbJBFa.js.map} +1 -1
- package/dashboard/dist/assets/OperationsPage-DODPFmf2.js +2 -0
- package/dashboard/dist/assets/OperationsPage-DODPFmf2.js.map +1 -0
- package/dashboard/dist/assets/OperatorDashboard-BbmgsOmQ.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-DMQwodfo.js.map → OperatorDashboard-BbmgsOmQ.js.map} +1 -1
- package/dashboard/dist/assets/PageHeader-DcgGV0Y2.js +2 -0
- package/dashboard/dist/assets/{PageHeader-CFta2VaS.js.map → PageHeader-DcgGV0Y2.js.map} +1 -1
- package/dashboard/dist/assets/PageHeaderWithStats-Cf8TYFRh.js +2 -0
- package/dashboard/dist/assets/PageHeaderWithStats-Cf8TYFRh.js.map +1 -0
- package/dashboard/dist/assets/PriorityBadge-a7u8C9uY.js +2 -0
- package/dashboard/dist/assets/{PriorityBadge-B4ykBH7f.js.map → PriorityBadge-a7u8C9uY.js.map} +1 -1
- package/dashboard/dist/assets/ProcessDetailPage-D80w44rV.js +2 -0
- package/dashboard/dist/assets/ProcessDetailPage-D80w44rV.js.map +1 -0
- package/dashboard/dist/assets/ProcessesListPage-BjW5xUkv.js +2 -0
- package/dashboard/dist/assets/{ProcessesListPage-BVtkWVLY.js.map → ProcessesListPage-BjW5xUkv.js.map} +1 -1
- package/dashboard/dist/assets/RoleDetailPage-oahg0cdT.js +11 -0
- package/dashboard/dist/assets/RoleDetailPage-oahg0cdT.js.map +1 -0
- package/dashboard/dist/assets/RolePill-BAeaQUXX.js +2 -0
- package/dashboard/dist/assets/RolePill-BAeaQUXX.js.map +1 -0
- package/dashboard/dist/assets/RolesPage-BI1Xtqq_.js +2 -0
- package/dashboard/dist/assets/RolesPage-BI1Xtqq_.js.map +1 -0
- package/dashboard/dist/assets/RowActions--m4F6GW8.js +2 -0
- package/dashboard/dist/assets/{RowActions-BA9L9djf.js.map → RowActions--m4F6GW8.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-DiGzSfiG.js +2 -0
- package/dashboard/dist/assets/{RunAsSelector-Cc1i017Z.js.map → RunAsSelector-DiGzSfiG.js.map} +1 -1
- package/dashboard/dist/assets/StatCard-DCPGFzCv.js +2 -0
- package/dashboard/dist/assets/StatCard-DCPGFzCv.js.map +1 -0
- package/dashboard/dist/assets/StatusBadge-mk-dJwPT.js +2 -0
- package/dashboard/dist/assets/{StatusBadge-D9MeQHrh.js.map → StatusBadge-mk-dJwPT.js.map} +1 -1
- package/dashboard/dist/assets/StickyPagination-Clm9H840.js +2 -0
- package/dashboard/dist/assets/{StickyPagination-GQKFFTjL.js.map → StickyPagination-Clm9H840.js.map} +1 -1
- package/dashboard/dist/assets/StreamMessageDetail-Bikvs1Cz.js +2 -0
- package/dashboard/dist/assets/StreamMessageDetail-Bikvs1Cz.js.map +1 -0
- package/dashboard/dist/assets/SwimlaneTimeline-C9X3IVqI.js +2 -0
- package/dashboard/dist/assets/SwimlaneTimeline-C9X3IVqI.js.map +1 -0
- package/dashboard/dist/assets/TagInput-DmJLnghg.js +2 -0
- package/dashboard/dist/assets/{TagInput-CQg-TrV9.js.map → TagInput-DmJLnghg.js.map} +1 -1
- package/dashboard/dist/assets/TaskDetailPage-C0tbiUi7.js +2 -0
- package/dashboard/dist/assets/TaskDetailPage-C0tbiUi7.js.map +1 -0
- package/dashboard/dist/assets/TaskQueuePill--1OX6egx.js +2 -0
- package/dashboard/dist/assets/{TaskQueuePill-DyvtL8X4.js.map → TaskQueuePill--1OX6egx.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-DcYV-GMA.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-DpqevgTz.js.map → TasksListPage-DcYV-GMA.js.map} +1 -1
- package/dashboard/dist/assets/TimeAgo-pYn3T9IZ.js +2 -0
- package/dashboard/dist/assets/{TimeAgo-CftB8aJE.js.map → TimeAgo-pYn3T9IZ.js.map} +1 -1
- package/dashboard/dist/assets/TimestampCell-BPMCscic.js +2 -0
- package/dashboard/dist/assets/{TimestampCell-BSKj1jqT.js.map → TimestampCell-BPMCscic.js.map} +1 -1
- package/dashboard/dist/assets/ToolPill-BnF9lCUX.js +2 -0
- package/dashboard/dist/assets/{ToolPill-miuRcj1Q.js.map → ToolPill-BnF9lCUX.js.map} +1 -1
- package/dashboard/dist/assets/ToolTestPanel-Bw4z_Tya.js +2 -0
- package/dashboard/dist/assets/{ToolTestPanel-DVQICZUQ.js.map → ToolTestPanel-Bw4z_Tya.js.map} +1 -1
- package/dashboard/dist/assets/TopicDetailPage-CtFztOnn.js +9 -0
- package/dashboard/dist/assets/TopicDetailPage-CtFztOnn.js.map +1 -0
- package/dashboard/dist/assets/TopicsPage-BXdc6pAU.js +2 -0
- package/dashboard/dist/assets/TopicsPage-BXdc6pAU.js.map +1 -0
- package/dashboard/dist/assets/UserName-R96NG6xB.js +2 -0
- package/dashboard/dist/assets/{UserName-Ce9gvlT5.js.map → UserName-R96NG6xB.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-DmRJabMQ.js +2 -0
- package/dashboard/dist/assets/{WorkflowExecutionPage-BI9NzeaH.js.map → WorkflowExecutionPage-DmRJabMQ.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowPill-Cc2MlYbB.js +2 -0
- package/dashboard/dist/assets/WorkflowPill-Cc2MlYbB.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsDashboard-uLU5ZToY.js +2 -0
- package/dashboard/dist/assets/WorkflowsDashboard-uLU5ZToY.js.map +1 -0
- package/dashboard/dist/assets/WorkflowsOverview-BhgE0RS8.js +2 -0
- package/dashboard/dist/assets/{WorkflowsOverview-CjBWlwlH.js.map → WorkflowsOverview-BhgE0RS8.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowDetailPage-CvIgB5y7.js +33 -0
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-Ds5o1UK9.js.map → YamlWorkflowDetailPage-CvIgB5y7.js.map} +1 -1
- package/dashboard/dist/assets/YamlWorkflowsPage-DWnsgl2v.js +2 -0
- package/dashboard/dist/assets/{YamlWorkflowsPage-ChwvZS4Z.js.map → YamlWorkflowsPage-DWnsgl2v.js.map} +1 -1
- package/dashboard/dist/assets/{agents-A1U43853.js → agents-BpYMwrsB.js} +2 -2
- package/dashboard/dist/assets/{agents-A1U43853.js.map → agents-BpYMwrsB.js.map} +1 -1
- package/dashboard/dist/assets/{bots-CyzN6Uxi.js → bots-DI6Wqp5X.js} +2 -2
- package/dashboard/dist/assets/{bots-CyzN6Uxi.js.map → bots-DI6Wqp5X.js.map} +1 -1
- package/dashboard/dist/assets/capabilities-BKZZb8eM.js +2 -0
- package/dashboard/dist/assets/{capabilities-BE1X5FVI.js.map → capabilities-BKZZb8eM.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-BrwK_MT8.js → controlplane-Djshb7fm.js} +2 -2
- package/dashboard/dist/assets/{controlplane-BrwK_MT8.js.map → controlplane-Djshb7fm.js.map} +1 -1
- package/dashboard/dist/assets/escalation-D8mrXtjS.js +2 -0
- package/dashboard/dist/assets/{escalation-DDdt7UdU.js.map → escalation-D8mrXtjS.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-CyLzgPkz.js +2 -0
- package/dashboard/dist/assets/escalation-columns-CyLzgPkz.js.map +1 -0
- package/dashboard/dist/assets/index-B5MAG4Uv.js +2 -0
- package/dashboard/dist/assets/{index-BNWKksZ6.js.map → index-B5MAG4Uv.js.map} +1 -1
- package/dashboard/dist/assets/index-BfxiRwk2.js +6 -0
- package/dashboard/dist/assets/index-BfxiRwk2.js.map +1 -0
- package/dashboard/dist/assets/index-C71I-f5G.js +2 -0
- package/dashboard/dist/assets/{index-BtrNxebh.js.map → index-C71I-f5G.js.map} +1 -1
- package/dashboard/dist/assets/index-CC4g-6QE.css +1 -0
- package/dashboard/dist/assets/index-CJb3dXku.js +2 -0
- package/dashboard/dist/assets/index-CJb3dXku.js.map +1 -0
- package/dashboard/dist/assets/index-CQtv2rj6.js +2 -0
- package/dashboard/dist/assets/index-CQtv2rj6.js.map +1 -0
- package/dashboard/dist/assets/index-CphzO7b8.js +2 -0
- package/dashboard/dist/assets/{index-D4U--3Xo.js.map → index-CphzO7b8.js.map} +1 -1
- package/dashboard/dist/assets/index-CwAmiy_j.js +2 -0
- package/dashboard/dist/assets/index-CwAmiy_j.js.map +1 -0
- package/dashboard/dist/assets/index-DgCS2Frb.js +281 -0
- package/dashboard/dist/assets/index-DgCS2Frb.js.map +1 -0
- package/dashboard/dist/assets/index-DkbnD-Te.js +2 -0
- package/dashboard/dist/assets/{index-C-rJQ-vB.js.map → index-DkbnD-Te.js.map} +1 -1
- package/dashboard/dist/assets/index-Y6yj36QR.js +9 -0
- package/dashboard/dist/assets/index-Y6yj36QR.js.map +1 -0
- package/dashboard/dist/assets/index-eshNd6NY.js +6 -0
- package/dashboard/dist/assets/{index-CGUBekEU.js.map → index-eshNd6NY.js.map} +1 -1
- package/dashboard/dist/assets/index-xn9fmkHC.js +2 -0
- package/dashboard/dist/assets/index-xn9fmkHC.js.map +1 -0
- package/dashboard/dist/assets/index-yxnQew1X.js +2 -0
- package/dashboard/dist/assets/index-yxnQew1X.js.map +1 -0
- package/dashboard/dist/assets/{knowledge-B3ZIRTeu.js → knowledge-C_1r0faY.js} +2 -2
- package/dashboard/dist/assets/{knowledge-B3ZIRTeu.js.map → knowledge-C_1r0faY.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-BJjWiHdc.js → mcp-BtG54ZAx.js} +2 -2
- package/dashboard/dist/assets/{mcp-BJjWiHdc.js.map → mcp-BtG54ZAx.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-ksjBztwq.js → mcp-query-CSdQWxmv.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-ksjBztwq.js.map → mcp-query-CSdQWxmv.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-DT1astmP.js → pipelines-DVkwxN64.js} +2 -2
- package/dashboard/dist/assets/{pipelines-DT1astmP.js.map → pipelines-DVkwxN64.js.map} +1 -1
- package/dashboard/dist/assets/{roles-UboiQxXT.js → roles-CpRcUIMm.js} +2 -2
- package/dashboard/dist/assets/{roles-UboiQxXT.js.map → roles-CpRcUIMm.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-aL0K8WW3.js → tasks-DNdvW5H6.js} +2 -2
- package/dashboard/dist/assets/{tasks-aL0K8WW3.js.map → tasks-DNdvW5H6.js.map} +1 -1
- package/dashboard/dist/assets/{topics-CZO06VJl.js → topics-DNC77Chw.js} +2 -2
- package/dashboard/dist/assets/{topics-CZO06VJl.js.map → topics-DNC77Chw.js.map} +1 -1
- package/dashboard/dist/assets/{useCollapsedSections-BU5HULGs.js → useCollapsedSections-CGNA5oKV.js} +2 -2
- package/dashboard/dist/assets/{useCollapsedSections-BU5HULGs.js.map → useCollapsedSections-CGNA5oKV.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-BA5S7V54.js → useDebouncedValue-DmL3uNt_.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-BA5S7V54.js.map → useDebouncedValue-DmL3uNt_.js.map} +1 -1
- package/dashboard/dist/assets/{useEventHooks-DlWkui_n.js → useEventHooks-CUUeBSH1.js} +2 -2
- package/dashboard/dist/assets/{useEventHooks-DlWkui_n.js.map → useEventHooks-CUUeBSH1.js.map} +1 -1
- package/dashboard/dist/assets/{useFilterParams-x-Dg0Vgz.js → useFilterParams-Ch-a71bE.js} +2 -2
- package/dashboard/dist/assets/{useFilterParams-x-Dg0Vgz.js.map → useFilterParams-Ch-a71bE.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-BBzCmCIN.js → useNamespace-D-AjLnPK.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-BBzCmCIN.js.map → useNamespace-D-AjLnPK.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-ZS6wRSSc.js → useYamlActivityEvents-DRdetOb_.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-ZS6wRSSc.js.map → useYamlActivityEvents-DRdetOb_.js.map} +1 -1
- package/dashboard/dist/assets/{users-Dzh04pRB.js → users-BUgdEsec.js} +2 -2
- package/dashboard/dist/assets/{users-Dzh04pRB.js.map → users-BUgdEsec.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-BaQqUm-e.js → vendor-icons-CNyYGNsk.js} +3 -3
- package/dashboard/dist/assets/{vendor-icons-BaQqUm-e.js.map → vendor-icons-CNyYGNsk.js.map} +1 -1
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
- package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
- package/dashboard/dist/assets/vendor-react-zA2lQFDs.js +26 -0
- package/dashboard/dist/assets/vendor-react-zA2lQFDs.js.map +1 -0
- package/dashboard/dist/assets/{workflows-BTkHs6VT.js → workflows-BfyR5VJt.js} +2 -2
- package/dashboard/dist/assets/{workflows-BTkHs6VT.js.map → workflows-BfyR5VJt.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-Df8u3lgx.js → yaml-workflows-Bz7yEnhl.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-Df8u3lgx.js.map → yaml-workflows-Bz7yEnhl.js.map} +1 -1
- package/dashboard/dist/index.html +5 -5
- package/package.json +1 -1
- package/dashboard/dist/assets/AdminDashboard-9JLg41f-.js +0 -2
- package/dashboard/dist/assets/AgentConfigPage-D5P1hcOc.js +0 -16
- package/dashboard/dist/assets/AgentConfigPage-D5P1hcOc.js.map +0 -1
- package/dashboard/dist/assets/AgentDetailPage-DrijeAV8.js +0 -4
- package/dashboard/dist/assets/AgentDetailPage-DrijeAV8.js.map +0 -1
- package/dashboard/dist/assets/AgentsPage-BW5d0JOt.js +0 -2
- package/dashboard/dist/assets/AgentsPage-BW5d0JOt.js.map +0 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-CoZ4Lufr.js +0 -2
- package/dashboard/dist/assets/BotPicker-xGUCxJo-.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-ChaRJiyg.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-ChaRJiyg.js.map +0 -1
- package/dashboard/dist/assets/CollapsibleSection-CXMPecjj.js +0 -2
- package/dashboard/dist/assets/ConfirmDeleteModal-D9_1b4MW.js +0 -2
- package/dashboard/dist/assets/CopyableId-blg-gZvT.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-BbdfZh1D.js +0 -2
- package/dashboard/dist/assets/CredentialsPage-BbdfZh1D.js.map +0 -1
- package/dashboard/dist/assets/CronLabel-CJUL50eO.js +0 -2
- package/dashboard/dist/assets/CronLabel-CJUL50eO.js.map +0 -1
- package/dashboard/dist/assets/CustomDurationPicker-id6Tq64R.js +0 -2
- package/dashboard/dist/assets/DataTable-ZWgVQg7F.js +0 -2
- package/dashboard/dist/assets/DropZone-CZDmNBn-.js +0 -2
- package/dashboard/dist/assets/ElapsedCell-B8TrnyT5.js +0 -2
- package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +0 -2
- package/dashboard/dist/assets/EscalationSchemaPage-C6UuZgCD.js +0 -9
- package/dashboard/dist/assets/EscalationSchemaPage-C6UuZgCD.js.map +0 -1
- package/dashboard/dist/assets/EscalationsOverview-CjLyujJ3.js +0 -2
- package/dashboard/dist/assets/EventTable-D_rNmyGG.js +0 -2
- package/dashboard/dist/assets/EventTable-D_rNmyGG.js.map +0 -1
- package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js +0 -2
- package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js.map +0 -1
- package/dashboard/dist/assets/GraphInvokePage-BMyrTnI6.js +0 -2
- package/dashboard/dist/assets/GraphInvokePage-BMyrTnI6.js.map +0 -1
- package/dashboard/dist/assets/HomePage-MBv6pwk4.js +0 -2
- package/dashboard/dist/assets/HomePage-MBv6pwk4.js.map +0 -1
- package/dashboard/dist/assets/ListToolbar--FkPpYDY.js +0 -2
- package/dashboard/dist/assets/McpOverview-CtAFXv-T.js +0 -2
- package/dashboard/dist/assets/McpQueryDetailPage-5Jzz2q2g.js +0 -5
- package/dashboard/dist/assets/McpQueryDetailPage-5Jzz2q2g.js.map +0 -1
- package/dashboard/dist/assets/McpQueryPage-DveeRF5I.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-DveeRF5I.js.map +0 -1
- package/dashboard/dist/assets/McpRunDetailPage-BYIxBcA7.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-Cgke6ask.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-Cgke6ask.js.map +0 -1
- package/dashboard/dist/assets/Modal-CSrxpXeM.js +0 -2
- package/dashboard/dist/assets/NamespacePill-DlqBTvFR.js +0 -2
- package/dashboard/dist/assets/OperationsPage-D2i7xrAI.js +0 -2
- package/dashboard/dist/assets/OperationsPage-D2i7xrAI.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-DMQwodfo.js +0 -2
- package/dashboard/dist/assets/PageHeader-CFta2VaS.js +0 -2
- package/dashboard/dist/assets/PageHeaderWithStats-CcVAji-7.js +0 -2
- package/dashboard/dist/assets/PageHeaderWithStats-CcVAji-7.js.map +0 -1
- package/dashboard/dist/assets/PriorityBadge-B4ykBH7f.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-Dodrk5-z.js +0 -2
- package/dashboard/dist/assets/ProcessDetailPage-Dodrk5-z.js.map +0 -1
- package/dashboard/dist/assets/ProcessesListPage-BVtkWVLY.js +0 -2
- package/dashboard/dist/assets/RoleDetailPage-8NldZI49.js +0 -11
- package/dashboard/dist/assets/RoleDetailPage-8NldZI49.js.map +0 -1
- package/dashboard/dist/assets/RolePill-CXEyPMqb.js +0 -2
- package/dashboard/dist/assets/RolePill-CXEyPMqb.js.map +0 -1
- package/dashboard/dist/assets/RolesPage-BJBjtFNY.js +0 -2
- package/dashboard/dist/assets/RolesPage-BJBjtFNY.js.map +0 -1
- package/dashboard/dist/assets/RowActions-BA9L9djf.js +0 -2
- package/dashboard/dist/assets/RunAsSelector-Cc1i017Z.js +0 -2
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
- package/dashboard/dist/assets/StatCard-DlgF0CJC.js.map +0 -1
- package/dashboard/dist/assets/StatusBadge-D9MeQHrh.js +0 -2
- package/dashboard/dist/assets/StickyPagination-GQKFFTjL.js +0 -2
- package/dashboard/dist/assets/StreamMessageDetail-BYzfjWe_.js +0 -2
- package/dashboard/dist/assets/StreamMessageDetail-BYzfjWe_.js.map +0 -1
- package/dashboard/dist/assets/SwimlaneTimeline-DLVmRrd-.js +0 -2
- package/dashboard/dist/assets/SwimlaneTimeline-DLVmRrd-.js.map +0 -1
- package/dashboard/dist/assets/TagInput-CQg-TrV9.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-HzQpzp6D.js +0 -2
- package/dashboard/dist/assets/TaskDetailPage-HzQpzp6D.js.map +0 -1
- package/dashboard/dist/assets/TaskQueuePill-DyvtL8X4.js +0 -2
- package/dashboard/dist/assets/TasksListPage-DpqevgTz.js +0 -2
- package/dashboard/dist/assets/TimeAgo-CftB8aJE.js +0 -2
- package/dashboard/dist/assets/TimestampCell-BSKj1jqT.js +0 -2
- package/dashboard/dist/assets/ToolPill-miuRcj1Q.js +0 -2
- package/dashboard/dist/assets/ToolTestPanel-DVQICZUQ.js +0 -2
- package/dashboard/dist/assets/TopicDetailPage-B2LAQDEg.js +0 -9
- package/dashboard/dist/assets/TopicDetailPage-B2LAQDEg.js.map +0 -1
- package/dashboard/dist/assets/TopicsPage-SwPAnN2C.js +0 -2
- package/dashboard/dist/assets/TopicsPage-SwPAnN2C.js.map +0 -1
- package/dashboard/dist/assets/UserName-Ce9gvlT5.js +0 -2
- package/dashboard/dist/assets/WorkflowExecutionPage-BI9NzeaH.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BuNkWUVM.js +0 -2
- package/dashboard/dist/assets/WorkflowPill-BuNkWUVM.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsDashboard-CvWSgQdE.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-CvWSgQdE.js.map +0 -1
- package/dashboard/dist/assets/WorkflowsOverview-CjBWlwlH.js +0 -2
- package/dashboard/dist/assets/YamlWorkflowDetailPage-Ds5o1UK9.js +0 -33
- package/dashboard/dist/assets/YamlWorkflowsPage-ChwvZS4Z.js +0 -2
- package/dashboard/dist/assets/capabilities-BE1X5FVI.js +0 -2
- package/dashboard/dist/assets/escalation-DDdt7UdU.js +0 -2
- package/dashboard/dist/assets/escalation-columns-D_zFY1zF.js +0 -2
- package/dashboard/dist/assets/escalation-columns-D_zFY1zF.js.map +0 -1
- package/dashboard/dist/assets/index-6MALVAEY.js +0 -2
- package/dashboard/dist/assets/index-6MALVAEY.js.map +0 -1
- package/dashboard/dist/assets/index-BNWKksZ6.js +0 -2
- package/dashboard/dist/assets/index-BtrNxebh.js +0 -2
- package/dashboard/dist/assets/index-C-rJQ-vB.js +0 -2
- package/dashboard/dist/assets/index-CGUBekEU.js +0 -6
- package/dashboard/dist/assets/index-CKXSKsVZ.js +0 -63
- package/dashboard/dist/assets/index-CKXSKsVZ.js.map +0 -1
- package/dashboard/dist/assets/index-CZ6-l8_0.css +0 -1
- package/dashboard/dist/assets/index-D2dDPGNk.js +0 -2
- package/dashboard/dist/assets/index-D2dDPGNk.js.map +0 -1
- package/dashboard/dist/assets/index-D4U--3Xo.js +0 -2
- package/dashboard/dist/assets/index-D4gAsCGh.js +0 -2
- package/dashboard/dist/assets/index-D4gAsCGh.js.map +0 -1
- package/dashboard/dist/assets/index-DEXouwBQ.js +0 -2
- package/dashboard/dist/assets/index-DEXouwBQ.js.map +0 -1
- package/dashboard/dist/assets/index-NnGsWGNS.js +0 -2
- package/dashboard/dist/assets/index-NnGsWGNS.js.map +0 -1
- package/dashboard/dist/assets/index-U27KBbTV.js +0 -9
- package/dashboard/dist/assets/index-U27KBbTV.js.map +0 -1
- package/dashboard/dist/assets/index-fwHQSJCp.js +0 -6
- package/dashboard/dist/assets/index-fwHQSJCp.js.map +0 -1
- package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
- package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
- package/dashboard/dist/assets/vendor-react-CXumBFUA.js +0 -22
- package/dashboard/dist/assets/vendor-react-CXumBFUA.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Y6yj36QR.js","sources":["../../src/pages/workflows/registry/WorkflowConfigsPage.tsx","../../src/components/common/form/RolePicker.tsx","../../src/components/common/form/WorkflowPicker.tsx","../../src/lib/parse.ts","../../src/pages/workflows/registry/config-form-types.ts","../../src/pages/workflows/registry/WorkflowConfigDetailPage.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport {\n useDiscoveredWorkflows,\n useDeleteWorkflowConfig,\n} from '../../../api/workflows';\nimport {\n Server,\n ShieldCheck, ShieldPlus, ShieldOff, Settings, Wrench, Play, UserCheck,\n} from 'lucide-react';\nimport { FilterBar, FilterSelect, FilterInput } from '../../../components/common/data/FilterBar';\nimport { ConfirmDeleteModal } from '../../../components/common/modal/ConfirmDeleteModal';\nimport { RolePill } from '../../../components/common/display/RolePill';\nimport { WorkflowPill } from '../../../components/common/display/WorkflowPill';\nimport { PageHeader } from '../../../components/common/layout/PageHeader';\nimport type { DiscoveredWorkflow } from '../../../api/types';\n\n// ── Tier badge ─────────────────────────────────────────────────────────────────\n\nfunction TierBadge({ tier }: { tier: string }) {\n if (tier === 'certified')\n return <span className=\"inline-flex items-center gap-1 text-[10px] font-medium text-status-success\"><ShieldCheck className=\"w-3 h-3\" />Certified</span>;\n if (tier === 'registered')\n return <span className=\"inline-flex items-center gap-1 text-[10px] font-medium text-text-secondary\"><Settings className=\"w-3 h-3\" />Registered</span>;\n return <span className=\"inline-flex items-center gap-1 text-[10px] font-medium text-text-quaternary\"><Wrench className=\"w-3 h-3\" />Durable</span>;\n}\n\n// ── Page ──────────────────────────────────────────────────────────────────────\n\nexport function WorkflowConfigsPage() {\n const navigate = useNavigate();\n const { data, isLoading } = useDiscoveredWorkflows();\n const deleteConfig = useDeleteWorkflowConfig();\n\n const [search, setSearch] = useState('');\n const [activeQueue, setActiveQueue] = useState<string | null>(null);\n const [confirmDelete, setConfirmDelete] = useState<string | null>(null);\n\n const allWorkflows: DiscoveredWorkflow[] = data ?? [];\n\n const queues = useMemo(\n () => [...new Set(allWorkflows.map((w) => w.task_queue).filter(Boolean) as string[])].sort(),\n [allWorkflows],\n );\n\n const grouped = useMemo(() => {\n const q = search.toLowerCase().trim();\n const targetQueues = activeQueue ? [activeQueue] : queues;\n return targetQueues\n .map((queue) => ({\n queue,\n workflows: allWorkflows.filter(\n (w) =>\n w.task_queue === queue &&\n (!q ||\n w.workflow_type.toLowerCase().includes(q) ||\n w.description?.toLowerCase().includes(q)),\n ),\n }))\n .filter((g) => g.workflows.length > 0);\n }, [allWorkflows, queues, search, activeQueue]);\n\n // Workflows with no queue\n const ungrouped = useMemo(() => {\n const q = search.toLowerCase().trim();\n if (activeQueue) return [];\n return allWorkflows.filter(\n (w) =>\n !w.task_queue &&\n (!q || w.workflow_type.toLowerCase().includes(q) || w.description?.toLowerCase().includes(q)),\n );\n }, [allWorkflows, search, activeQueue]);\n\n const handleRowClick = (row: DiscoveredWorkflow) => {\n if (row.registered) {\n navigate(`/workflows/registry/${encodeURIComponent(row.workflow_type)}`);\n } else {\n navigate(`/workflows/registry/new?workflow_type=${encodeURIComponent(row.workflow_type)}&task_queue=${encodeURIComponent(row.task_queue ?? '')}`);\n }\n };\n\n const handleDelete = () => {\n if (!confirmDelete) return;\n deleteConfig.mutate(confirmDelete, { onSuccess: () => setConfirmDelete(null) });\n };\n\n return (\n <div>\n <PageHeader\n title=\"Registered Workflows\"\n docsHash=\"#docs:dashboard.md:workflow-registry\"\n actions={\n <button onClick={() => navigate('/workflows/registry/new')} className=\"btn-primary text-xs\">\n Register Workflow\n </button>\n }\n />\n\n {/* Sticky filter bar: queue select + search */}\n {!isLoading && queues.length > 0 && (\n <FilterBar>\n <FilterSelect\n label=\"Queue\"\n value={activeQueue ?? ''}\n onChange={(v) => setActiveQueue(v || null)}\n options={queues.map((q) => ({ value: q, label: q }))}\n />\n <FilterInput\n label=\"Search\"\n value={search}\n onChange={setSearch}\n placeholder={`${allWorkflows.length} workflows…`}\n />\n </FilterBar>\n )}\n\n {/* Content */}\n {isLoading ? (\n <LoadingSkeleton />\n ) : grouped.length === 0 && ungrouped.length === 0 ? (\n <p className=\"text-sm text-text-tertiary mt-8\">\n {search || activeQueue ? 'No workflows match your filter.' : 'No workflows discovered yet.'}\n </p>\n ) : (\n <div className=\"space-y-10\">\n {grouped.map(({ queue, workflows }) => (\n <div key={queue}>\n <div className=\"sticky top-[60px] z-10 bg-surface flex items-center gap-2 py-2 mb-2 border-b border-surface-border\">\n <Server className=\"w-3 h-3 text-accent\" strokeWidth={1.5} />\n <h2 className=\"section-h2\">{queue}</h2>\n <span className=\"text-xs text-text-quaternary\">{workflows.length}</span>\n </div>\n <WorkflowTableHeader />\n <div className=\"divide-y divide-surface-border/30\">\n {workflows.map((wf) => (\n <WorkflowRow\n key={wf.workflow_type}\n wf={wf}\n onRowClick={handleRowClick}\n onDelete={setConfirmDelete}\n onNavigate={navigate}\n />\n ))}\n </div>\n </div>\n ))}\n\n {ungrouped.length > 0 && (\n <div>\n <div className=\"sticky top-[60px] z-10 bg-surface flex items-center gap-2 py-2 mb-2 border-b border-surface-border\">\n <Wrench className=\"w-3 h-3 text-text-quaternary\" strokeWidth={1.5} />\n <h2 className=\"section-h2\">No Queue</h2>\n <span className=\"text-xs text-text-quaternary\">{ungrouped.length}</span>\n </div>\n <WorkflowTableHeader />\n <div className=\"divide-y divide-surface-border/30\">\n {ungrouped.map((wf) => (\n <WorkflowRow\n key={wf.workflow_type}\n wf={wf}\n onRowClick={handleRowClick}\n onDelete={setConfirmDelete}\n onNavigate={navigate}\n />\n ))}\n </div>\n </div>\n )}\n </div>\n )}\n\n <ConfirmDeleteModal\n open={!!confirmDelete}\n onClose={() => setConfirmDelete(null)}\n onConfirm={handleDelete}\n title=\"Unregister Workflow\"\n description={\n <>\n Delete the registration for{' '}\n <span className=\"font-mono font-medium text-text-primary\">{confirmDelete}</span>? This\n removes its invocation settings, certification, and interceptor treatment; the workflow\n keeps running as a plain durable workflow. To demote certified → registered instead,\n open the workflow and uncheck Certify — that keeps every setting.\n </>\n }\n isPending={deleteConfig.isPending}\n error={deleteConfig.error as Error | null}\n />\n </div>\n );\n}\n\n// ── Column layout ─────────────────────────────────────────────────────────────\n// [Workflow 1fr] [Tier 7rem] [Access 13rem] [Actions 4.5rem]\nconst ROW_GRID = 'grid grid-cols-[minmax(0,1fr)_7rem_13rem_4.5rem] gap-x-6';\n\nfunction WorkflowTableHeader() {\n return (\n <div className={`${ROW_GRID} px-3 pb-2 pt-1`}>\n <span className=\"text-[10px] font-medium text-text-quaternary\">Workflow</span>\n <span className=\"text-[10px] font-medium text-text-quaternary\">Tier</span>\n <span className=\"text-[10px] font-medium text-text-quaternary\">Access</span>\n <span />\n </div>\n );\n}\n\n// ── Workflow row ───────────────────────────────────────────────────────────────\n\nfunction WorkflowRow({\n wf,\n onRowClick,\n onDelete,\n onNavigate,\n}: {\n wf: DiscoveredWorkflow;\n onRowClick: (wf: DiscoveredWorkflow) => void;\n onDelete: (type: string) => void;\n onNavigate: (path: string) => void;\n}) {\n const escRoles = wf.roles ?? [];\n const invokeRoles = wf.invocation_roles ?? [];\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={() => onRowClick(wf)}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') onRowClick(wf); }}\n className={`group ${ROW_GRID} py-2 px-3 -mx-3 rounded-md cursor-pointer transition-colors items-center`}\n >\n {/* Col 1: Workflow name + description, single line */}\n <div className=\"flex items-center gap-3 min-w-0\">\n <WorkflowPill\n type={wf.workflow_type}\n size=\"md\"\n variant={wf.tier === 'certified' ? 'certified' : wf.tier === 'registered' ? 'registered' : 'durable'}\n />\n {wf.description && (\n <p className=\"flex-1 min-w-0 truncate text-[10px] text-text-tertiary group-hover:text-text-secondary transition-colors\">\n {wf.description}\n </p>\n )}\n </div>\n\n {/* Col 2: Tier */}\n <div>\n <TierBadge tier={wf.tier ?? 'durable'} />\n </div>\n\n {/* Col 3: Access — escalation + invocation roles, single line */}\n <div className=\"flex items-center gap-1.5 min-w-0 overflow-hidden whitespace-nowrap\">\n {escRoles.length > 0 && (\n <>\n <span title=\"Escalation roles\"><ShieldCheck className=\"w-3 h-3 text-text-quaternary shrink-0\" /></span>\n {escRoles.map((r) => <RolePill key={`e-${r}`} role={r} />)}\n </>\n )}\n {invokeRoles.length > 0 && (\n <>\n <span title=\"Invocation roles\"><UserCheck className=\"w-3 h-3 text-text-quaternary shrink-0\" /></span>\n {invokeRoles.map((r) => <RolePill key={`i-${r}`} role={r} />)}\n </>\n )}\n {escRoles.length === 0 && invokeRoles.length === 0 && (\n <span className=\"text-xs text-text-quaternary\">—</span>\n )}\n </div>\n\n {/* Col 4: Actions — revealed on hover */}\n <div className=\"flex items-center justify-end gap-2.5 opacity-0 group-hover:opacity-100 transition-opacity\">\n {wf.invocable && (\n <button\n title=\"Invoke workflow\"\n onClick={(e) => { e.stopPropagation(); onNavigate(`/workflows/start?type=${encodeURIComponent(wf.workflow_type)}&mode=now`); }}\n className=\"text-text-quaternary hover:text-status-success transition-colors\"\n >\n <Play className=\"w-3.5 h-3.5\" />\n </button>\n )}\n {wf.tier === 'durable' && (\n <button\n title=\"Configure workflow\"\n onClick={(e) => { e.stopPropagation(); onNavigate(`/workflows/registry/new?workflow_type=${encodeURIComponent(wf.workflow_type)}&task_queue=${encodeURIComponent(wf.task_queue ?? '')}`); }}\n className=\"text-text-quaternary hover:text-status-info transition-colors\"\n >\n <Wrench className=\"w-3.5 h-3.5\" />\n </button>\n )}\n {wf.tier === 'registered' && (\n <button\n title=\"Certify workflow\"\n onClick={(e) => { e.stopPropagation(); onNavigate(`/workflows/registry/${encodeURIComponent(wf.workflow_type)}`); }}\n className=\"text-text-quaternary hover:text-status-success transition-colors\"\n >\n <ShieldPlus className=\"w-3.5 h-3.5\" />\n </button>\n )}\n {wf.registered && (\n <button\n title=\"Unregister workflow\"\n onClick={(e) => { e.stopPropagation(); onDelete(wf.workflow_type); }}\n className=\"text-text-quaternary hover:text-status-warning transition-colors\"\n >\n <ShieldOff className=\"w-3.5 h-3.5\" />\n </button>\n )}\n </div>\n </div>\n );\n}\n\n// ── Loading skeleton ───────────────────────────────────────────────────────────\n\nfunction LoadingSkeleton() {\n return (\n <div className=\"animate-pulse space-y-8 mt-4\">\n {[1, 2].map((i) => (\n <div key={i}>\n <div className=\"h-4 bg-surface-sunken rounded w-36 mb-4\" />\n <div className=\"space-y-4\">\n {[1, 2, 3].map((j) => (\n <div key={j} className=\"space-y-1.5\">\n <div className=\"h-3 bg-surface-sunken rounded w-48\" />\n <div className=\"h-3 bg-surface-sunken rounded w-full\" />\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import { useState, useRef, useEffect } from 'react';\nimport { User, X, ChevronDown, Check } from 'lucide-react';\nimport { useRoles } from '../../../api/roles';\n\ninterface RolePickerProps {\n selected: string[];\n onChange: (roles: string[]) => void;\n /** Only allow one selection */\n single?: boolean;\n placeholder?: string;\n}\n\nexport function RolePicker({ selected, onChange, single, placeholder }: RolePickerProps) {\n const { data } = useRoles();\n const allRoles = data?.roles ?? [];\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, []);\n\n const toggle = (role: string) => {\n if (single) {\n onChange(selected.includes(role) ? [] : [role]);\n setOpen(false);\n } else {\n onChange(\n selected.includes(role)\n ? selected.filter((r) => r !== role)\n : [...selected, role],\n );\n }\n };\n\n const remove = (role: string) => {\n onChange(selected.filter((r) => r !== role));\n };\n\n const placeholderText = placeholder ?? (single ? 'Select role...' : 'Add roles...');\n\n return (\n <div ref={ref} className=\"relative\">\n {/* Selected pills + trigger */}\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className=\"flex flex-wrap items-center gap-1.5 w-full min-h-[34px] px-2 py-1.5 bg-surface-sunken border border-surface-border rounded-md text-left cursor-pointer hover:border-accent/40 transition-colors focus:ring-1 focus:ring-accent focus:outline-none\"\n >\n {selected.length === 0 && (\n <span className=\"text-xs text-text-tertiary\">{placeholderText}</span>\n )}\n {selected.map((role) => (\n <span\n key={role}\n className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-lg bg-accent/[0.08] text-text-secondary text-[11px]\"\n >\n <User className=\"w-2.5 h-2.5 shrink-0 text-accent/75\" />\n {role}\n <span\n role=\"button\"\n onClick={(e) => { e.stopPropagation(); remove(role); }}\n className=\"ml-0.5 hover:text-status-error transition-colors\"\n >\n <X className=\"w-2.5 h-2.5\" />\n </span>\n </span>\n ))}\n <ChevronDown className={`w-3.5 h-3.5 ml-auto shrink-0 text-text-tertiary transition-transform ${open ? 'rotate-180' : ''}`} />\n </button>\n\n {/* Dropdown */}\n {open && (\n <div className=\"absolute z-20 mt-1 w-full bg-white border border-surface-border rounded-md shadow-lg max-h-48 overflow-y-auto\">\n {allRoles.length === 0 ? (\n <p className=\"px-3 py-2 text-xs text-text-tertiary\">No roles defined</p>\n ) : (\n allRoles.map((role) => {\n const isSelected = selected.includes(role);\n return (\n <button\n key={role}\n type=\"button\"\n onClick={() => toggle(role)}\n className={`flex items-center gap-2 w-full px-3 py-1.5 text-left text-xs transition-colors ${\n isSelected\n ? 'bg-accent/[0.06] text-accent'\n : 'text-text-primary hover:bg-surface-sunken'\n }`}\n >\n <User className=\"w-3 h-3 shrink-0 text-accent/60\" />\n <span className=\"flex-1\">{role}</span>\n {isSelected && <Check className=\"w-3 h-3 shrink-0\" />}\n </button>\n );\n })\n )}\n </div>\n )}\n </div>\n );\n}\n","import { useState, useRef, useEffect } from 'react';\nimport { Workflow, X, ChevronDown, Check } from 'lucide-react';\n\ninterface WorkflowPickerProps {\n options: string[];\n selected: string[];\n onChange: (workflows: string[]) => void;\n placeholder?: string;\n}\n\nexport function WorkflowPicker({ options, selected, onChange, placeholder }: WorkflowPickerProps) {\n const [open, setOpen] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, []);\n\n const toggle = (wfType: string) => {\n onChange(\n selected.includes(wfType)\n ? selected.filter((t) => t !== wfType)\n : [...selected, wfType],\n );\n };\n\n const remove = (wfType: string) => {\n onChange(selected.filter((t) => t !== wfType));\n };\n\n const placeholderText = placeholder ?? 'Add workflows...';\n\n return (\n <div ref={ref} className=\"relative\">\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className=\"flex flex-wrap items-center gap-1.5 w-full min-h-[34px] px-2 py-1.5 bg-surface-sunken border border-surface-border rounded-md text-left cursor-pointer hover:border-accent/40 transition-colors focus:ring-1 focus:ring-accent focus:outline-none\"\n >\n {selected.length === 0 && (\n <span className=\"text-xs text-text-tertiary\">{placeholderText}</span>\n )}\n {selected.map((wfType) => (\n <span\n key={wfType}\n className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-lg bg-accent/[0.08] text-text-secondary text-[11px] font-mono\"\n >\n <Workflow className=\"w-2.5 h-2.5 shrink-0 text-accent/75\" />\n {wfType}\n <span\n role=\"button\"\n onClick={(e) => { e.stopPropagation(); remove(wfType); }}\n className=\"ml-0.5 hover:text-status-error transition-colors\"\n >\n <X className=\"w-2.5 h-2.5\" />\n </span>\n </span>\n ))}\n <ChevronDown className={`w-3.5 h-3.5 ml-auto shrink-0 text-text-tertiary transition-transform ${open ? 'rotate-180' : ''}`} />\n </button>\n\n {open && (\n <div className=\"absolute z-20 mt-1 w-full bg-white border border-surface-border rounded-md shadow-lg max-h-48 overflow-y-auto\">\n {options.length === 0 ? (\n <p className=\"px-3 py-2 text-xs text-text-tertiary\">No registered workflows</p>\n ) : (\n options.map((wfType) => {\n const isSelected = selected.includes(wfType);\n return (\n <button\n key={wfType}\n type=\"button\"\n onClick={() => toggle(wfType)}\n className={`flex items-center gap-2 w-full px-3 py-1.5 text-left text-xs font-mono transition-colors ${\n isSelected\n ? 'bg-accent/[0.06] text-accent'\n : 'text-text-primary hover:bg-surface-sunken'\n }`}\n >\n <Workflow className=\"w-3 h-3 shrink-0 text-accent/60\" />\n <span className=\"flex-1\">{wfType}</span>\n {isSelected && <Check className=\"w-3 h-3 shrink-0\" />}\n </button>\n );\n })\n )}\n </div>\n )}\n </div>\n );\n}\n","export function splitCsv(s: string): string[] {\n return s\n .split(',')\n .map((v) => v.trim())\n .filter(Boolean);\n}\n\nexport function safeParseJson<T = unknown>(\n json: string,\n): { ok: true; data: T } | { ok: false; error: string } {\n try {\n return { ok: true, data: JSON.parse(json) as T };\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : 'Invalid JSON';\n return { ok: false, error: message };\n }\n}\n","import type { LTWorkflowConfig } from '../../../api/types';\n\nexport interface ConfigFormState {\n workflow_type: string;\n description: string;\n task_queue: string;\n default_role: string;\n invocable: boolean;\n roles: string;\n invocation_roles: string;\n consumes: string;\n envelope_schema: string;\n resolver_schema: string;\n cron_schedule: string;\n execute_as: string;\n /**\n * Explicit HITL certification, persisted on the registration. Unchecking\n * demotes certified → registered on save and keeps roles/consumes intact.\n */\n certified: boolean;\n}\n\nexport const EMPTY_FORM: ConfigFormState = {\n workflow_type: '',\n description: '',\n task_queue: '',\n default_role: 'reviewer',\n invocable: false,\n roles: '',\n invocation_roles: '',\n consumes: '',\n envelope_schema: '',\n resolver_schema: '',\n cron_schedule: '',\n execute_as: '',\n certified: false,\n};\n\nexport function configToForm(c: LTWorkflowConfig): ConfigFormState {\n const roles = (c.roles ?? []).join(', ');\n const consumes = (c.consumes ?? []).join(', ');\n return {\n workflow_type: c.workflow_type,\n description: c.description ?? '',\n task_queue: c.task_queue ?? '',\n default_role: c.default_role,\n invocable: c.invocable,\n roles,\n invocation_roles: (c.invocation_roles ?? []).join(', '),\n consumes,\n envelope_schema: c.envelope_schema ? JSON.stringify(c.envelope_schema, null, 2) : '',\n resolver_schema: c.resolver_schema ? JSON.stringify(c.resolver_schema, null, 2) : '',\n cron_schedule: c.cron_schedule ?? '',\n execute_as: c.execute_as ?? '',\n certified: c.certified,\n };\n}\n\nexport const STEP_LABELS = ['Identity', 'Invocation', 'Advanced'];\n\nexport function jsonValid(v: string): boolean {\n if (!v.trim()) return true;\n try { JSON.parse(v); return true; } catch { return false; }\n}\n\nexport function isStepValid(step: number, form: ConfigFormState): boolean {\n if (step === 1) return !!form.workflow_type.trim();\n if (step === 2) return jsonValid(form.envelope_schema);\n if (step === 3) return jsonValid(form.resolver_schema);\n return true;\n}\n\nexport const labelCls = 'label';\nexport const hintCls = 'hint';\nexport const jsonCls = 'input-json w-full';\n\nexport const DEFAULT_ENVELOPE = '{\\n \"data\": {},\\n \"metadata\": {}\\n}';\n","import { useState, useEffect, useCallback, useMemo } from 'react';\nimport { useParams, useNavigate, useSearchParams } from 'react-router-dom';\nimport {\n Code2, Play, ShieldCheck, ShieldOff,\n} from 'lucide-react';\nimport { useWorkflowConfigs, useUpsertWorkflowConfig, useDeleteWorkflowConfig, useJobs } from '../../../api/workflows';\nimport { ConfirmDeleteModal } from '../../../components/common/modal/ConfirmDeleteModal';\nimport { RolePicker } from '../../../components/common/form/RolePicker';\nimport { BotPicker } from '../../../components/common/form/BotPicker';\nimport { WorkflowPicker } from '../../../components/common/form/WorkflowPicker';\nimport { NamespacePill } from '../../../components/common/display/NamespacePill';\nimport { splitCsv } from '../../../lib/parse';\nimport { EMPTY_FORM, configToForm, jsonValid } from './config-form-types';\nimport type { ConfigFormState } from './config-form-types';\n\n// ── Local helpers ─────────────────────────────────────────────────────────────\n\nfunction SectionHeader({ icon: Icon, color, children }: { icon: React.ElementType; color: string; children: React.ReactNode }) {\n return (\n <div className=\"flex items-center gap-2 mb-4 pb-2 border-b border-surface-border\">\n <Icon className={`w-4 h-4 ${color}`} strokeWidth={1.5} />\n <h2 className=\"section-h2\">{children}</h2>\n </div>\n );\n}\n\nfunction Field({ label, hint, children }: { label: string; hint?: React.ReactNode; children: React.ReactNode }) {\n return (\n <div className=\"space-y-1.5\">\n <label className=\"label\">{label}</label>\n {children}\n {hint && <p className=\"hint\">{hint}</p>}\n </div>\n );\n}\n\nconst jsonCls = 'input-json w-full';\n\nfunction csvToArray(csv: string): string[] { return splitCsv(csv); }\nfunction arrayToCsv(arr: string[]): string { return arr.join(', '); }\n\nconst SYSTEM_WORKFLOWS = new Set([\n 'mcpQuery', 'mcpDeterministic', 'mcpQueryRouter', 'mcpTriage',\n 'mcpTriageRouter', 'mcpTriageDeterministic', 'insightQuery',\n]);\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function WorkflowConfigDetailPage() {\n const { workflowType } = useParams<{ workflowType: string }>();\n const isNew = !workflowType;\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const { data: configs, isLoading } = useWorkflowConfigs();\n const upsert = useUpsertWorkflowConfig();\n const deleteConfig = useDeleteWorkflowConfig();\n const [confirmUnregister, setConfirmUnregister] = useState(false);\n\n const editing = configs?.find((c) => c.workflow_type === workflowType) ?? null;\n\n const { data: jobsData } = useJobs({ limit: 500 });\n const unregisteredTypes = useMemo(() => {\n const registeredSet = new Set((configs ?? []).map((c) => c.workflow_type));\n const allEntities = new Set((jobsData?.jobs ?? []).map((j: any) => j.entity));\n return [...allEntities]\n .filter((e: string) => !registeredSet.has(e) && !SYSTEM_WORKFLOWS.has(e))\n .sort();\n }, [configs, jobsData]);\n\n const prefillForm = useMemo((): ConfigFormState => {\n if (!isNew) return EMPTY_FORM;\n const prefillType = searchParams.get('workflow_type') ?? '';\n const prefillQueue = searchParams.get('task_queue') ?? '';\n return prefillType || prefillQueue\n ? { ...EMPTY_FORM, workflow_type: prefillType, task_queue: prefillQueue }\n : EMPTY_FORM;\n }, [isNew, searchParams]);\n\n const [form, setForm] = useState<ConfigFormState>(prefillForm);\n const [schemaError, setSchemaError] = useState('');\n const [initialized, setInitialized] = useState(false);\n\n const set = useCallback(\n (field: keyof ConfigFormState, value: string | boolean) =>\n setForm((f) => ({ ...f, [field]: value })),\n [],\n );\n\n useEffect(() => {\n if (initialized) return;\n if (isNew) { setForm(prefillForm); setInitialized(true); return; }\n if (editing) { setForm(configToForm(editing)); setInitialized(true); }\n }, [editing, isNew, initialized, prefillForm]);\n\n const handleSave = () => {\n if (!form.workflow_type.trim()) return;\n setSchemaError('');\n\n let envelope_schema: Record<string, unknown> | null = null;\n let resolver_schema: Record<string, unknown> | null = null;\n try {\n if (form.envelope_schema.trim()) envelope_schema = JSON.parse(form.envelope_schema);\n } catch { setSchemaError('Invalid JSON in Envelope Schema'); return; }\n try {\n if (form.resolver_schema.trim()) resolver_schema = JSON.parse(form.resolver_schema);\n } catch { setSchemaError('Invalid JSON in Resolver Schema'); return; }\n\n upsert.mutate(\n {\n workflow_type: form.workflow_type.trim(),\n description: form.description.trim() || null,\n task_queue: form.task_queue.trim() || null,\n default_role: form.default_role.trim() || 'reviewer',\n invocable: form.invocable,\n certified: form.certified,\n roles: splitCsv(form.roles),\n invocation_roles: splitCsv(form.invocation_roles),\n consumes: splitCsv(form.consumes),\n envelope_schema,\n resolver_schema,\n cron_schedule: form.cron_schedule.trim() || null,\n execute_as: form.execute_as.trim() || null,\n },\n { onSuccess: () => navigate('/workflows/registry') },\n );\n };\n\n if (isLoading) {\n return (\n <div className=\"animate-pulse space-y-4\">\n <div className=\"h-8 bg-surface-sunken rounded w-64\" />\n <div className=\"h-40 bg-surface-sunken rounded\" />\n </div>\n );\n }\n if (!isNew && !editing) {\n return <p className=\"text-sm text-text-secondary\">Config not found.</p>;\n }\n\n const canSave = !!form.workflow_type.trim() && jsonValid(form.envelope_schema) && jsonValid(form.resolver_schema);\n const showPickList = isNew && !form.workflow_type && unregisteredTypes.length > 0;\n\n return (\n <div>\n {/* Hero */}\n <div className=\"flex items-start justify-between mb-8\">\n <div>\n <h1 className=\"text-3xl font-light font-mono text-text-primary\">\n {isNew ? 'New Workflow' : editing?.workflow_type ?? ''}\n </h1>\n {editing && (\n <div className=\"flex items-center gap-2 mt-2\">\n <NamespacePill namespace=\"durable\" />\n </div>\n )}\n </div>\n <div className=\"flex items-center gap-3 mt-1\">\n <button onClick={() => navigate('/workflows/registry')} className=\"btn-ghost text-xs\">\n Cancel\n </button>\n <button\n onClick={handleSave}\n disabled={!canSave || upsert.isPending}\n className=\"btn-primary text-xs\"\n >\n {upsert.isPending ? 'Saving…' : isNew ? 'Register' : 'Save'}\n </button>\n </div>\n </div>\n\n {/* Three-column form */}\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-x-14 gap-y-10\">\n\n {/* ── Identity ─────────────────────────────────────────────────── */}\n <div>\n <SectionHeader icon={Code2} color=\"text-accent\">Identity</SectionHeader>\n <div className=\"space-y-5\">\n <Field\n label=\"Workflow Type\"\n hint=\"Register a workflow to configure invocation and HITL escalation routing.\"\n >\n {showPickList ? (\n <div className=\"space-y-2\">\n <p className=\"text-xs text-text-secondary\">Select a durable workflow to register:</p>\n <div className=\"grid gap-1\">\n {(unregisteredTypes as string[]).map((type) => (\n <button\n key={type}\n onClick={() => set('workflow_type', type)}\n className=\"flex items-center gap-2 px-3 py-2 text-left text-xs font-mono rounded-md border border-surface-border hover:border-accent/50 hover:bg-accent/[0.04] transition-colors\"\n >\n {type}\n </button>\n ))}\n </div>\n <div className=\"flex items-center gap-2 pt-1\">\n <span className=\"text-[10px] text-text-tertiary\">or</span>\n <input\n type=\"text\"\n onChange={(e) => set('workflow_type', e.target.value)}\n placeholder=\"Enter type manually\"\n className=\"input font-mono flex-1\"\n />\n </div>\n </div>\n ) : (\n <>\n <input\n type=\"text\"\n value={form.workflow_type}\n onChange={(e) => set('workflow_type', e.target.value)}\n disabled={!isNew}\n placeholder=\"reviewContent\"\n className=\"input font-mono w-full\"\n />\n {isNew && form.workflow_type && unregisteredTypes.length > 0 && (\n <button\n onClick={() => set('workflow_type', '')}\n className=\"text-[10px] text-accent hover:underline mt-1\"\n >\n Choose from durable workflows\n </button>\n )}\n </>\n )}\n </Field>\n\n <Field label=\"Description\">\n <input\n type=\"text\"\n value={form.description}\n onChange={(e) => set('description', e.target.value)}\n placeholder=\"Describe what this workflow does\"\n className=\"input text-xs w-full\"\n />\n </Field>\n\n <Field label=\"Task Queue\" hint=\"Durable task queue this workflow listens on.\">\n <input\n type=\"text\"\n value={form.task_queue}\n onChange={(e) => set('task_queue', e.target.value)}\n placeholder=\"lt-review\"\n className=\"input font-mono w-full\"\n />\n </Field>\n </div>\n </div>\n\n {/* ── Invocation ───────────────────────────────────────────────── */}\n <div>\n <SectionHeader icon={Play} color=\"text-accent\">Invocation</SectionHeader>\n <div className=\"space-y-5\">\n <div className=\"space-y-1\">\n <label className=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={form.invocable}\n onChange={(e) => set('invocable', e.target.checked)}\n className=\"w-4 h-4 rounded border-border accent-accent\"\n />\n <span className=\"text-xs text-text-primary font-medium\">Invocable</span>\n </label>\n <p className=\"hint\">Allow this workflow to be started from the dashboard or API.</p>\n </div>\n\n {form.invocable ? (\n <>\n <Field label=\"Run As\" hint=\"Bot identity to run under. Default runs as the invoking user.\">\n <BotPicker selected={form.execute_as} onChange={(id) => set('execute_as', id)} />\n </Field>\n\n <Field label=\"Invocation Roles\" hint=\"Only users with these roles can start this workflow. Empty = all authenticated users.\">\n <RolePicker\n selected={csvToArray(form.invocation_roles)}\n onChange={(roles) => set('invocation_roles', arrayToCsv(roles))}\n placeholder=\"Select roles…\"\n />\n </Field>\n\n <Field label=\"Envelope Schema\" hint={<>Pre-fills the JSON editor when invoking. Include <code className=\"font-mono\">data</code> (input) and optional <code className=\"font-mono\">metadata</code>.</>}>\n <textarea\n value={form.envelope_schema}\n onChange={(e) => set('envelope_schema', e.target.value)}\n placeholder={'{\\n \"data\": {},\\n \"metadata\": {}\\n}'}\n className={jsonCls}\n rows={8}\n spellCheck={false}\n />\n {form.envelope_schema.trim() && !jsonValid(form.envelope_schema) && (\n <p className=\"text-[10px] text-status-error mt-1\">Invalid JSON</p>\n )}\n </Field>\n </>\n ) : (\n <p className=\"text-[11px] text-text-tertiary py-2\">\n Enable <span className=\"font-medium text-text-secondary\">Invocable</span> to configure invocation roles and an input template.\n </p>\n )}\n </div>\n </div>\n\n {/* ── Certification ────────────────────────────────────────────── */}\n <div>\n <SectionHeader icon={ShieldCheck} color=\"text-accent\">Certification</SectionHeader>\n <div className=\"space-y-5\">\n <Field\n label=\"Resolver Schema\"\n hint={<>Default form for resolving escalations. Use <code className=\"font-mono\">properties</code> with <code className=\"font-mono\">type</code>, <code className=\"font-mono\">default</code>, <code className=\"font-mono\">description</code>.</>}\n >\n <textarea\n value={form.resolver_schema}\n onChange={(e) => set('resolver_schema', e.target.value)}\n placeholder={'{\\n \"properties\": {\\n \"approved\": { \"type\": \"boolean\", \"default\": false }\\n }\\n}'}\n className={jsonCls}\n rows={6}\n spellCheck={false}\n />\n {form.resolver_schema.trim() && !jsonValid(form.resolver_schema) && (\n <p className=\"text-[10px] text-status-error mt-1\">Invalid JSON</p>\n )}\n </Field>\n\n <div className=\"space-y-1\">\n <label className=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={form.certified}\n onChange={(e) => set('certified', e.target.checked)}\n className=\"w-4 h-4 rounded border-border accent-accent\"\n />\n <span className=\"text-xs text-text-primary font-medium\">Certify for HITL Escalation</span>\n </label>\n <p className=\"hint\">\n Certified workflows use the interceptor — failures escalate to human reviewers.\n Unchecking demotes this workflow to registered on save; escalation roles and\n dependencies below are kept.\n </p>\n </div>\n\n {form.certified ? (\n <>\n <Field label=\"Default Escalation Role\" hint=\"The role surface interceptor-raised escalations target.\">\n <RolePicker\n selected={csvToArray(form.default_role)}\n onChange={(roles) => set('default_role', roles[0] ?? '')}\n single\n placeholder=\"Select role…\"\n />\n </Field>\n\n <Field\n label=\"Escalation Roles\"\n hint=\"Interceptor default for who can claim and resolve. Escalations raised in workflow code choose their own role, whose versioned schema takes precedence.\"\n >\n <RolePicker\n selected={csvToArray(form.roles)}\n onChange={(roles) => set('roles', arrayToCsv(roles))}\n placeholder=\"Select roles…\"\n />\n </Field>\n\n <Field label=\"Consumes\" hint=\"Upstream workflows whose output is injected into this workflow's envelope.\">\n <WorkflowPicker\n options={(configs ?? [])\n .map((c) => c.workflow_type)\n .filter((t) => t !== form.workflow_type)}\n selected={csvToArray(form.consumes)}\n onChange={(workflows) => set('consumes', arrayToCsv(workflows))}\n placeholder=\"Select dependencies…\"\n />\n </Field>\n </>\n ) : (\n <p className=\"text-[11px] text-text-tertiary py-2\">\n Enable <span className=\"font-medium text-text-secondary\">Certify</span> to add automatic escalation routing and role-based resolution.\n </p>\n )}\n\n {editing && (\n <div className=\"pt-4 border-t border-surface-border/50\">\n <button\n onClick={() => setConfirmUnregister(true)}\n className=\"flex items-center gap-1.5 text-[11px] text-status-warning hover:underline\"\n title=\"Delete this registration — the workflow returns to plain durable\"\n >\n <ShieldOff className=\"w-3 h-3\" /> Unregister workflow\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {(schemaError || upsert.error) && (\n <p className=\"text-xs text-status-error mt-8\">\n {schemaError || (upsert.error as Error).message}\n </p>\n )}\n\n <ConfirmDeleteModal\n open={confirmUnregister}\n onClose={() => setConfirmUnregister(false)}\n onConfirm={() =>\n deleteConfig.mutate(editing!.workflow_type, {\n onSuccess: () => navigate('/workflows/registry'),\n })\n }\n title=\"Unregister Workflow\"\n description={\n <>\n Delete the registration for{' '}\n <span className=\"font-mono font-medium text-text-primary\">{editing?.workflow_type}</span>?\n This removes its invocation settings, certification, and interceptor treatment; the\n workflow keeps running as a plain durable workflow. Escalation schemas versioned on\n roles are untouched.\n </>\n }\n isPending={deleteConfig.isPending}\n error={deleteConfig.error as Error | null}\n />\n </div>\n );\n}\n"],"names":["TierBadge","tier","jsxDEV","ShieldCheck","Settings","Wrench","WorkflowConfigsPage","navigate","useNavigate","data","isLoading","useDiscoveredWorkflows","deleteConfig","useDeleteWorkflowConfig","search","setSearch","useState","activeQueue","setActiveQueue","confirmDelete","setConfirmDelete","allWorkflows","queues","useMemo","w","grouped","q","queue","_a","g","ungrouped","handleRowClick","row","handleDelete","PageHeader","FilterBar","FilterSelect","v","FilterInput","LoadingSkeleton","workflows","Server","WorkflowTableHeader","wf","WorkflowRow","ConfirmDeleteModal","Fragment","ROW_GRID","onRowClick","onDelete","onNavigate","escRoles","invokeRoles","e","WorkflowPill","r","RolePill","UserCheck","Play","ShieldPlus","ShieldOff","i","j","RolePicker","selected","onChange","single","placeholder","useRoles","allRoles","open","setOpen","ref","useRef","useEffect","handler","toggle","role","remove","placeholderText","User","X","ChevronDown","isSelected","Check","WorkflowPicker","options","wfType","t","Workflow","splitCsv","EMPTY_FORM","configToForm","c","roles","consumes","jsonValid","SectionHeader","Icon","color","children","Field","label","hint","jsonCls","csvToArray","csv","arrayToCsv","arr","SYSTEM_WORKFLOWS","WorkflowConfigDetailPage","workflowType","useParams","isNew","searchParams","useSearchParams","configs","useWorkflowConfigs","upsert","useUpsertWorkflowConfig","confirmUnregister","setConfirmUnregister","editing","jobsData","useJobs","unregisteredTypes","registeredSet","prefillForm","prefillType","prefillQueue","form","setForm","schemaError","setSchemaError","initialized","setInitialized","set","useCallback","field","value","f","handleSave","envelope_schema","resolver_schema","canSave","showPickList","NamespacePill","Code2","type","BotPicker","id"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{A as pe,j as e,w as ve,b as z,C as na,J as oe,k as ca,B as da,g as ma,h as ua,E as pa,G as xa,u as ba}from"./index-DgCS2Frb.js";import{a as N,b as Na}from"./vendor-query-DLp59M9_.js";import{u as ha}from"./useCollapsedSections-CGNA5oKV.js";import{u as fa,C as ga,a as va}from"./CustomDurationPicker-DV42oZ1G.js";import{a as Ea,b as Da,c as ja}from"./roles-CpRcUIMm.js";import{P as Va}from"./PageHeader-DcgGV0Y2.js";import{a as Je,C as fe,i as ya}from"./escalation-D8mrXtjS.js";import{L as wa}from"./ListToolbar-Dviaskni.js";import{u as Ca}from"./workflows-BfyR5VJt.js";import{g as Ra}from"./useEventHooks-CUUeBSH1.js";import{U as ge}from"./UserName-R96NG6xB.js";import{S as Ae}from"./StatusBadge-mk-dJwPT.js";import{R as He}from"./RolePill-BAeaQUXX.js";import{C as S}from"./CopyableId-DS6IDMIX.js";import{U as $e,a9 as ka,a7 as Sa,aa as Be}from"./vendor-icons-CNyYGNsk.js";import{C as re}from"./CollapsibleSection-Bn6Ks79X.js";import{L as ze,e as _a,c as Ta}from"./vendor-react-zA2lQFDs.js";import"./Modal-C6HI6btY.js";import"./constants-BHkpVaqx.js";import"./users-BUgdEsec.js";const We="lt_view_mode";function Fa(a){const[o,r]=N.useState(()=>{try{const t=localStorage.getItem(We);if(t!==null)return t==="dev"}catch{}return a}),s=N.useCallback(()=>{r(t=>{const l=!t;try{localStorage.setItem(We,l?"dev":"user")}catch{}return l})},[]);return{isDevMode:o,toggleMode:s}}const xe=4;function Me({pct:a,place:o,label:r,title:s,emphasis:t}){const l=e.jsxDEV("span",{className:"w-px h-1.5 bg-surface-border","aria-hidden":!0},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:15,columnNumber:16},this),m=e.jsxDEV("span",{className:`whitespace-nowrap leading-none ${t?"text-text-secondary":"text-text-tertiary"}`,children:r},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:17,columnNumber:5},this);return e.jsxDEV("div",{title:s,className:`absolute ${o==="above"?"bottom-0":"top-0"} flex flex-col items-center gap-0.5 -translate-x-1/2 cursor-help`,style:{left:`${a}%`},children:o==="above"?e.jsxDEV(e.Fragment,{children:[m,l]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:28,columnNumber:28},this):e.jsxDEV(e.Fragment,{children:[l,m]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:28,columnNumber:48},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:22,columnNumber:5},this)}function Aa({esc:a,className:o=""}){const r=new Date(a.created_at).getTime(),s=a.claimed_at?new Date(a.claimed_at).getTime():null,t=a.status==="resolved",l=a.status==="cancelled",m=t||l,d=Je(a),i=!!s&&(d||m),n=t&&a.resolved_at?new Date(a.resolved_at).getTime():l?new Date(a.updated_at).getTime():Date.now(),c=Math.max(n-r,1),p=i&&s?Math.max(s-r,0):c,b=i&&s?Math.max(n-s,0):0,g=Math.min(100,Math.max(0,p/c*100)),u=i?Math.max(0,100-g):0,f=t?"bg-status-success":l?"bg-status-error":"bg-status-active",h=t?"Worked":l?"Open before cancel":"In progress",x=pe(p),y=pe(c),w=t?`Resolved in ${y} total`:l?`Cancelled after ${y}`:`Open ${y} so far (current age)`,_=`Lifecycle: amber = time spent waiting to be claimed, the colored end = ${h.toLowerCase()} after the claim. Top label is time-to-claim, bottom is total time.`;return e.jsxDEV("div",{className:o,title:_,children:[e.jsxDEV("div",{className:"relative h-3.5 text-[9px] font-mono",children:i&&e.jsxDEV(Me,{pct:g,place:"above",label:x,title:`Time to claim: ${x} (created → claimed)`},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:79,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:77,columnNumber:7},this),e.jsxDEV("div",{className:"flex w-full rounded-full overflow-hidden bg-surface-sunken cursor-help",style:{height:xe},title:_,children:[e.jsxDEV("div",{style:{width:`${g}%`,minWidth:xe},className:"bg-status-pending",title:`Waiting ${x} — created → claimed`},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:84,columnNumber:9},this),i&&e.jsxDEV("div",{style:{width:`${u}%`,minWidth:xe},className:f,title:`${h} ${pe(b)} — claimed → ${t?"resolved":l?"cancelled":"now"}`},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:90,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:83,columnNumber:7},this),e.jsxDEV("div",{className:"relative h-3.5 text-[9px] font-mono",children:e.jsxDEV(Me,{pct:100,place:"below",emphasis:!0,label:y,title:w},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:100,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:99,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/EscalationTimeline.tsx",lineNumber:75,columnNumber:5},this)}function Ha(a){const{mode:o,activeView:r,onActiveViewChange:s,onClaim:t,claimPending:l,workflowType:m,json:d,onResolve:i,resolvePending:n,resolveError:c,requestTriage:p,triageNotes:b,currentRole:g,escalationTargets:u,onEscalate:f,escalatePending:h,escalateError:x,onRelease:y,releasePending:w,onCancel:_,assignedTo:F,assignedUntil:A,onSubmitAttempt:C}=a,R=fa(),[v,j]=N.useState("30"),[D,T]=N.useState(0),[B,H]=N.useState(""),[W,M]=N.useState(""),P=v==="custom",U=N.useCallback(E=>T(E),[]);if(o==="terminal")return null;const ne=()=>{const E=P?D:parseInt(v);!E||E<=0||t(E)},ce=()=>{if(H(""),p){const X={_lt:{needsTriage:!0}};b.trim()&&(X.notes=b.trim()),i(X);return}let E;try{E=JSON.parse(d)}catch{H("Invalid JSON");return}const J=E._form_schema,I=J==null?void 0:J.required;if(I!=null&&I.length){const X=I.filter($=>{const L=E[$];return L==null||typeof L=="string"&&L.trim()===""});if(X.length>0){C==null||C();const $=X.map(ee=>ee.replace(/[_-]/g," ")),L=$.length<=2?$.join(", "):`${$.slice(0,2).join(", ")}...`;H(`Required: ${L}`);return}}i(E)},G=E=>`text-xs transition-colors ${E?"text-accent font-medium":"text-text-tertiary hover:text-accent"}`;return e.jsxDEV("div",{className:"sticky bottom-0 h-[80px] bg-surface/95 backdrop-blur-sm border-t border-surface-border -mx-10 px-10 pt-3 pb-5 z-10","data-testid":"escalation-action-bar",children:[o==="available"&&e.jsxDEV("div",{"data-testid":"claim-bar",children:[e.jsxDEV("div",{className:"flex items-center gap-4 mb-2",children:[R.map(E=>e.jsxDEV("button",{onClick:()=>{j(E.value),T(0)},className:G(!P&&v===E.value),children:E.label},E.value,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:148,columnNumber:17},this)),e.jsxDEV("button",{onClick:()=>j("custom"),className:G(P),children:"Other"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:156,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:146,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("button",{onClick:_,className:"text-xs text-text-tertiary hover:text-status-error transition-colors",children:"Cancel escalation"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:165,columnNumber:15},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:171,columnNumber:15},this),P&&e.jsxDEV(ga,{onChange:U,compact:!0,autoFocus:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:173,columnNumber:17},this),e.jsxDEV("button",{onClick:ne,disabled:l||P&&D<=0,className:"btn-primary text-xs",children:l?"Claiming...":"Claim"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:175,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:164,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:144,columnNumber:11},this),o==="claimed_by_other"&&e.jsxDEV("div",{className:"flex items-center gap-4","data-testid":"claimed-other-bar",children:[e.jsxDEV("p",{className:"text-sm text-text-secondary",children:["Claimed by ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:F?e.jsxDEV(ge,{userId:F},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:190,columnNumber:88},this):"unknown"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:190,columnNumber:26},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:189,columnNumber:13},this),A&&e.jsxDEV(fe,{until:A},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:192,columnNumber:31},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:188,columnNumber:11},this),o==="claimed_by_me"&&e.jsxDEV("div",{"data-testid":"action-bar",children:[e.jsxDEV("div",{className:"flex items-center gap-4 mb-2",children:[e.jsxDEV("button",{onClick:()=>s("resolve"),className:G(r==="resolve"),children:m?"Resolve":"Acknowledge"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:201,columnNumber:15},this),u.length>0&&e.jsxDEV("button",{onClick:()=>s("escalate"),className:G(r==="escalate"),children:"Escalate"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:208,columnNumber:17},this),e.jsxDEV("button",{onClick:()=>s("release"),className:`text-xs transition-colors ${r==="release"?"text-status-error font-medium":"text-text-tertiary hover:text-status-error"}`,children:"Release"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:215,columnNumber:15},this),e.jsxDEV("button",{onClick:_,className:"text-xs transition-colors text-text-tertiary hover:text-status-error",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:221,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:200,columnNumber:13},this),r==="resolve"&&(m?e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:233,columnNumber:19},this),B&&e.jsxDEV("span",{className:"text-xs text-status-error",children:B},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:235,columnNumber:34},this),c&&e.jsxDEV("span",{className:"text-xs text-status-error",children:c.message},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:236,columnNumber:36},this),e.jsxDEV("button",{onClick:ce,disabled:n,className:"btn-primary text-xs",children:n?"Submitting...":p?"Send to Triage":"Submit"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:238,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:232,columnNumber:17},this):e.jsxDEV("div",{className:"flex items-center",children:[e.jsxDEV("span",{className:"text-xs text-text-secondary",children:"Notification — acknowledge to resolve"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:248,columnNumber:19},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:249,columnNumber:19},this),c&&e.jsxDEV("span",{className:"text-xs text-status-error mr-3",children:c.message},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:250,columnNumber:36},this),e.jsxDEV("button",{onClick:()=>i({acknowledged:!0}),disabled:n,className:"btn-primary text-xs",children:n?"Acknowledging...":"Acknowledge"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:251,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:247,columnNumber:17},this)),r==="escalate"&&e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("span",{className:"text-xs text-text-secondary",children:["From ",e.jsxDEV("span",{className:"font-medium text-text-primary",children:g},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:266,columnNumber:24},this)," to"]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:265,columnNumber:17},this),e.jsxDEV("select",{value:W,onChange:E=>M(E.target.value),className:"select text-xs","data-testid":"escalate-select",children:[e.jsxDEV("option",{value:"",children:"Select role..."},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:274,columnNumber:19},this),u.map(E=>e.jsxDEV("option",{value:E,children:E},E,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:276,columnNumber:21},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:268,columnNumber:17},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:279,columnNumber:17},this),x&&e.jsxDEV("span",{className:"text-xs text-status-error",children:x.message},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:280,columnNumber:35},this),e.jsxDEV("button",{onClick:()=>f(W),disabled:!W||h,className:"btn-primary text-xs",children:h?"Escalating...":"Escalate"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:281,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:264,columnNumber:15},this),r==="release"&&e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("span",{className:"text-xs text-text-secondary",children:"Release back to pool?"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:294,columnNumber:17},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:295,columnNumber:17},this),e.jsxDEV("button",{onClick:()=>s("resolve"),className:"btn-secondary text-xs",children:"Back"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:296,columnNumber:17},this),e.jsxDEV("button",{onClick:y,disabled:w,className:"btn-primary text-xs bg-status-error hover:bg-status-error/80",children:w?"Releasing...":"Yes, Release"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:299,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:293,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:198,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationActionBar.tsx",lineNumber:140,columnNumber:5},this)}const $a={1:{pad:"px-3 py-2.5",label:"text-[9px] mb-1.5",value:"text-xs",bg:"bg-surface-sunken/60"},2:{pad:"px-3 py-2",label:"text-[8px] mb-1",value:"text-[11px]",bg:"bg-surface-sunken/30"},3:{pad:"px-2.5 py-1.5",label:"text-[8px] mb-0.5",value:"text-[10px]",bg:"bg-surface-sunken/15"}};function k({label:a,children:o,tier:r=1,className:s=""}){const t=$a[r];return e.jsxDEV("div",{className:`flex-1 min-w-0 rounded-lg ${t.bg} ${t.pad} ${s}`,children:[e.jsxDEV("p",{className:`font-semibold uppercase tracking-widest text-text-tertiary leading-none ${t.label}`,children:a},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/MetaCell.tsx",lineNumber:31,columnNumber:7},this),e.jsxDEV("div",{className:`text-text-secondary leading-tight min-w-0 ${t.value}`,children:o},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/MetaCell.tsx",lineNumber:34,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/MetaCell.tsx",lineNumber:30,columnNumber:5},this)}const Pe=56;function Ba({value:a}){const[o,r]=N.useState(!1),s=typeof a=="object"?JSON.stringify(a):String(a??"");return s.length<=Pe?e.jsxDEV("span",{className:"font-mono break-all",title:s,children:s},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:22,columnNumber:12},this):e.jsxDEV("button",{onClick:()=>r(t=>!t),title:s,className:"font-mono break-all text-left hover:text-accent transition-colors",children:o?s:`${s.slice(0,Pe)}…`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:25,columnNumber:5},this)}function Wa({esc:a,claimedByMe:o,claimed:r,isTerminal:s,traceUrl:t,isDevMode:l,showDetails:m,onToggleDetails:d}){const{isBuilder:i}=ve(),n=ya(a);return l?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"flex items-center gap-3 mb-2",children:[n&&e.jsxDEV(Sa,{className:"w-5 h-5 text-text-tertiary shrink-0"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:153,columnNumber:19},this),e.jsxDEV("p",{className:"text-[1.5rem] leading-snug font-light text-text-secondary",children:[a.type,a.subtype?` / ${a.subtype}`:""]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:154,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:152,columnNumber:7},this),a.description&&e.jsxDEV("p",{className:"text-sm leading-relaxed text-text-tertiary mb-4",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:161,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-wrap items-end gap-x-6 gap-y-3 mt-4 mb-2",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:169,columnNumber:11},this),e.jsxDEV("span",{className:"mb-1 inline-block",children:e.jsxDEV(Ae,{status:a.status},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:170,columnNumber:47},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:170,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:168,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:"Role"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:173,columnNumber:11},this),e.jsxDEV(He,{role:a.role,size:"md"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:174,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:172,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:"Created"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:177,columnNumber:11},this),e.jsxDEV("span",{className:"inline-flex items-center mb-1 text-xs text-text-secondary",children:e.jsxDEV(z,{date:a.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:179,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:178,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:176,columnNumber:9},this),(r||s)&&a.assigned_to&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:"Claimed by"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:184,columnNumber:13},this),e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 text-xs font-medium text-text-primary",children:[e.jsxDEV($e,{className:"w-3 h-3 shrink-0 text-accent/75"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:186,columnNumber:15},this),e.jsxDEV(ge,{userId:a.assigned_to},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:187,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:185,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:183,columnNumber:11},this),r&&!s&&a.assigned_until&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:"Time left"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:193,columnNumber:13},this),e.jsxDEV("span",{className:"inline-flex items-center h-5",children:e.jsxDEV(fe,{until:a.assigned_until},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:194,columnNumber:60},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:194,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:192,columnNumber:11},this),a.resolved_at&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:"Resolved"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:199,columnNumber:13},this),e.jsxDEV("span",{className:"inline-flex items-center h-5 text-xs text-text-secondary",children:e.jsxDEV(z,{date:a.resolved_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:201,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:200,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:198,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:167,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:150,columnNumber:5},this):e.jsxDEV("div",{className:"-mt-6 mb-2",children:[a.description&&e.jsxDEV("p",{className:"text-2xl font-light text-text-primary leading-relaxed mb-5",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:63,columnNumber:11},this),e.jsxDEV("div",{className:"flex gap-1 items-stretch",children:[e.jsxDEV(k,{label:"Status",children:e.jsxDEV(Ae,{status:a.status},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:70,columnNumber:36},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:70,columnNumber:11},this),e.jsxDEV(k,{label:"Assigned to Role",children:e.jsxDEV(He,{role:a.role,size:"md"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:71,columnNumber:46},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:71,columnNumber:11},this),(r||s)&&a.assigned_to&&e.jsxDEV(k,{label:"Claimed By",children:e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 font-medium text-text-primary",children:[e.jsxDEV($e,{className:"w-3 h-3 shrink-0 text-accent/75"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:78,columnNumber:17},this),e.jsxDEV(ge,{userId:a.assigned_to},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:79,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:77,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:76,columnNumber:13},this),e.jsxDEV(k,{label:"Created",children:e.jsxDEV(z,{date:a.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:83,columnNumber:37},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:83,columnNumber:11},this),(r||s)&&a.claimed_at&&e.jsxDEV(k,{label:"Claimed",children:e.jsxDEV(z,{date:a.claimed_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:85,columnNumber:39},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:85,columnNumber:13},this),r&&!s&&a.assigned_until&&e.jsxDEV(k,{label:"Time Remaining",children:e.jsxDEV(fe,{until:a.assigned_until},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:88,columnNumber:46},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:88,columnNumber:13},this),a.resolved_at&&e.jsxDEV(k,{label:"Completed",children:e.jsxDEV("span",{className:"text-status-success",children:e.jsxDEV(z,{date:a.resolved_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:91,columnNumber:79},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:91,columnNumber:41},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:91,columnNumber:13},this),e.jsxDEV(k,{label:"Priority",children:["P",a.priority]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:93,columnNumber:11},this),i&&e.jsxDEV("button",{onClick:d,title:m?"Hide details":"Show details",className:"shrink-0 rounded-lg bg-surface-sunken/60 px-3 flex items-center text-text-tertiary/60 hover:text-accent transition-colors",children:e.jsxDEV(ka,{className:`w-3.5 h-3.5 ${m?"text-accent":""}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:100,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:95,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:69,columnNumber:9},this),i&&e.jsxDEV(na,{open:m,children:[e.jsxDEV("div",{className:"flex gap-1 mt-1",children:[e.jsxDEV(k,{tier:2,label:"Escalation ID",children:e.jsxDEV(S,{bare:!0,value:a.id},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:109,columnNumber:54},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:109,columnNumber:13},this),a.task_id&&e.jsxDEV(k,{tier:2,label:"Task ID",children:e.jsxDEV(S,{bare:!0,value:a.task_id,href:`/workflows/tasks/detail/${a.task_id}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:111,columnNumber:50},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:111,columnNumber:15},this),a.workflow_type&&e.jsxDEV(k,{tier:2,label:"Workflow Name",children:e.jsxDEV(S,{bare:!0,value:a.workflow_type,href:`/workflows/executions?entity=${encodeURIComponent(a.workflow_type)}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:114,columnNumber:56},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:114,columnNumber:15},this),a.workflow_id&&e.jsxDEV(k,{tier:2,label:"Workflow ID",children:e.jsxDEV(S,{bare:!0,value:a.workflow_id,href:`/workflows/executions/${a.workflow_id}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:117,columnNumber:54},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:117,columnNumber:15},this),a.task_queue&&e.jsxDEV(k,{tier:2,label:"Task Queue",children:e.jsxDEV(S,{bare:!0,value:a.task_queue,href:`/admin/controlplane?queue=${encodeURIComponent(a.task_queue)}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:120,columnNumber:53},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:120,columnNumber:15},this),a.origin_id&&a.origin_id!==a.workflow_id&&e.jsxDEV(k,{tier:2,label:"Origin",children:e.jsxDEV(S,{bare:!0,value:a.origin_id,href:`/processes/detail/${a.origin_id}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:123,columnNumber:49},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:123,columnNumber:15},this),a.trace_id&&e.jsxDEV(k,{tier:2,label:"Trace",children:e.jsxDEV(S,{bare:!0,value:a.trace_id,href:t?t.replace("{traceId}",a.trace_id):void 0,external:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:127,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:126,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:108,columnNumber:11},this),a.metadata&&Object.keys(a.metadata).filter(c=>!c.startsWith("_")).length>0&&e.jsxDEV("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-1 mt-1",children:Object.entries(a.metadata).filter(([c])=>!c.startsWith("_")).map(([c,p])=>e.jsxDEV(k,{tier:3,label:c,children:e.jsxDEV(Ba,{value:p},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:138,columnNumber:60},this)},c,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:138,columnNumber:19},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:134,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:106,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationHero.tsx",lineNumber:60,columnNumber:7},this)}function K(a){return a.replace(/`([^`]+)`/g,'<code class="px-1 py-0.5 bg-surface-sunken rounded text-xs font-mono">$1</code>').replace(/\*\*\*(.+?)\*\*\*/g,"<strong><em>$1</em></strong>").replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" class="text-accent-primary hover:underline" target="_blank" rel="noopener noreferrer">$1</a>')}function be({content:a,compact:o}){const r=[],s=/^```(\w*)\n([\s\S]*?)^```$/gm;let t=0,l;for(;(l=s.exec(a))!==null;)l.index>t&&r.push({type:"text",text:a.slice(t,l.index)}),r.push({type:"code",lang:l[1],code:l[2].replace(/\n$/,"")}),t=l.index+l[0].length;t<a.length&&r.push({type:"text",text:a.slice(t)});const m=o?{text:"text-xs",heading:"text-xs",list:"text-xs",code:"text-[11px]"}:{text:"text-sm",heading:"text-sm",list:"text-sm",code:"text-xs"},d=[];for(const i of r){if(i.type==="code"){const n=i.code.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");d.push(`<pre class="my-2 p-2.5 bg-surface-sunken rounded-md overflow-x-auto"><code class="${m.code} font-mono text-text-secondary leading-relaxed">${n}</code></pre>`);continue}d.push(...Ma(i.text,m))}return e.jsxDEV("div",{className:"prose-sm",dangerouslySetInnerHTML:{__html:d.join(`
|
|
2
|
+
`)}},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/SimpleMarkdown.tsx",lineNumber:54,columnNumber:5},this)}function Ma(a,o){const r=a.split(`
|
|
3
|
+
`),s=[];let t=!1,l=!1,m=[];for(const d of r){const i=d.trim();if(i.startsWith("|")&&i.endsWith("|")){const n=i.slice(1,-1).split("|").map(c=>c.trim());if(n.every(c=>/^[-:]+$/.test(c)))continue;l||(l=!0,m=[]),m.push(n);continue}if(l){l=!1;const[n,...c]=m;s.push('<div class="overflow-x-auto my-2"><table class="text-xs w-full"><thead><tr>');for(const p of n)s.push(`<th class="text-left py-1 px-2 border-b border-border text-text-secondary font-medium">${K(p)}</th>`);s.push("</tr></thead><tbody>");for(const p of c){s.push("<tr>");for(const b of p)s.push(`<td class="py-1 px-2 border-b border-border/50">${K(b)}</td>`);s.push("</tr>")}s.push("</tbody></table></div>"),m=[]}if(!i){t&&(s.push("</ul>"),t=!1);continue}if(i.startsWith("### ")){t&&(s.push("</ul>"),t=!1),s.push(`<h4 class="${o.heading} font-semibold text-text-primary mt-3 mb-1">${K(i.slice(4))}</h4>`);continue}if(i.startsWith("## ")){t&&(s.push("</ul>"),t=!1),s.push(`<h3 class="${o.heading} font-semibold text-text-primary mt-3 mb-1">${K(i.slice(3))}</h3>`);continue}if(/^[-*_]{3,}$/.test(i)){t&&(s.push("</ul>"),t=!1),s.push('<hr class="border-border my-3" />');continue}if(/^[-*] /.test(i)){t||(s.push('<ul class="space-y-1 my-1">'),t=!0),s.push(`<li class="${o.list} text-text-secondary flex gap-2"><span class="text-text-tertiary shrink-0">-</span><span>${K(i.slice(2))}</span></li>`);continue}t&&(s.push("</ul>"),t=!1),s.push(`<p class="${o.text} text-text-secondary my-1">${K(i)}</p>`)}if(l&&m.length){const[d,...i]=m;s.push('<div class="overflow-x-auto my-2"><table class="text-xs w-full"><thead><tr>');for(const n of d)s.push(`<th class="text-left py-1 px-2 border-b border-border text-text-secondary font-medium">${K(n)}</th>`);s.push("</tr></thead><tbody>");for(const n of i){s.push("<tr>");for(const c of n)s.push(`<td class="py-1 px-2 border-b border-border/50">${K(c)}</td>`);s.push("</tr>")}s.push("</tbody></table></div>")}return t&&s.push("</ul>"),s}function Ne({children:a}){return e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:a},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:17,columnNumber:5},this)}function Pa({payload:a,isTerminal:o,resolverPayload:r,onRetryTriage:s,isRetrying:t}){const l=a.title,m=a.summary,d=a.diagnosis,i=a.tool_calls_made,n=a.result,c=r==null?void 0:r._lt,p=(c==null?void 0:c.triaged)===!0,b=c==null?void 0:c.triageWorkflowId,g=o&&p,[u,f]=N.useState(!1);return g?e.jsxDEV("div",{className:"rounded-md border border-status-success/30 bg-surface-raised",children:[e.jsxDEV("div",{className:"flex items-center justify-between px-4 py-3 border-b border-surface-border",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("svg",{className:"w-4 h-4 text-status-success shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsxDEV("path",{d:"M8 1a7 7 0 110 14A7 7 0 018 1zm3.36 4.65a.5.5 0 00-.72 0L7 9.29 5.36 7.65a.5.5 0 10-.72.7l2 2a.5.5 0 00.72 0l4-4a.5.5 0 000-.7z"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:44,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:43,columnNumber:13},this),e.jsxDEV("span",{className:"text-xs font-medium text-status-success",children:"Resolved by AI Triage"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:46,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:42,columnNumber:11},this),typeof i=="number"&&e.jsxDEV("span",{className:"text-[10px] font-mono px-2 py-0.5 rounded-full bg-status-success/10 text-status-success",children:[i," tool calls used"]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:49,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:41,columnNumber:9},this),e.jsxDEV("div",{className:"px-4 py-4 space-y-4",children:[l&&e.jsxDEV("p",{className:"text-sm font-medium text-text-primary",children:l},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:58,columnNumber:13},this),d&&e.jsxDEV("div",{children:[e.jsxDEV(Ne,{children:"Triage diagnosis"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:63,columnNumber:15},this),e.jsxDEV("div",{className:"text-xs text-text-primary leading-relaxed",children:e.jsxDEV(be,{content:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:65,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:64,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:62,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-3",children:b&&e.jsxDEV(ze,{to:`/workflows/executions/${b}`,className:"text-[10px] text-accent hover:underline",children:"View triage execution"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:72,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:56,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:39,columnNumber:7},this):e.jsxDEV("div",{className:"rounded-md border border-status-warning/30 bg-surface-raised",children:[e.jsxDEV("div",{className:"flex items-center justify-between px-4 py-3 border-b border-surface-border",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("svg",{className:"w-4 h-4 text-status-warning shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsxDEV("path",{d:"M8 1a7 7 0 110 14A7 7 0 018 1zm0 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 4zm0 7a.75.75 0 100-1.5.75.75 0 000 1.5z"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:92,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:91,columnNumber:11},this),e.jsxDEV("span",{className:"text-xs font-medium text-status-warning",children:"Tool Rounds Exhausted"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:94,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:90,columnNumber:9},this),typeof i=="number"&&e.jsxDEV("span",{className:"text-[10px] font-mono px-2 py-0.5 rounded-full bg-status-warning/10 text-status-warning",children:[i," tool calls used"]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:97,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:89,columnNumber:7},this),e.jsxDEV("div",{className:"px-4 py-4 space-y-4",children:[l&&e.jsxDEV("p",{className:"text-sm font-medium text-text-primary",children:l},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:106,columnNumber:11},this),m&&e.jsxDEV("div",{children:[e.jsxDEV(Ne,{children:"What happened"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:111,columnNumber:13},this),e.jsxDEV("div",{className:"text-xs text-text-secondary leading-relaxed",children:e.jsxDEV(be,{content:m},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:113,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:112,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:110,columnNumber:11},this),d&&e.jsxDEV("div",{children:[e.jsxDEV(Ne,{children:"What went wrong"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:120,columnNumber:13},this),e.jsxDEV("div",{className:"text-xs text-text-primary leading-relaxed",children:e.jsxDEV(be,{content:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:122,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:121,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:119,columnNumber:11},this),n!=null&&e.jsxDEV("div",{children:[e.jsxDEV("button",{onClick:()=>f(!u),className:"flex items-center gap-1 text-[10px] font-semibold uppercase tracking-widest text-text-tertiary hover:text-text-secondary transition-colors",children:[e.jsxDEV("svg",{className:`w-3 h-3 transition-transform ${u?"rotate-90":""}`,viewBox:"0 0 12 12",fill:"currentColor",children:e.jsxDEV("path",{d:"M4.5 2l4 4-4 4"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:134,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:133,columnNumber:15},this),"Partial results"]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:129,columnNumber:13},this),u&&e.jsxDEV("div",{className:"mt-2",children:e.jsxDEV(oe,{data:n,defaultMode:"tree"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:140,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:139,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:128,columnNumber:11},this),s&&!o&&e.jsxDEV("div",{className:"pt-2",children:e.jsxDEV("button",{onClick:s,disabled:t,className:"inline-flex items-center gap-2 px-4 py-2 text-xs font-medium bg-accent text-text-inverse rounded-md hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[e.jsxDEV("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 14 14",fill:"currentColor",children:e.jsxDEV("path",{d:"M7 1a6 6 0 100 12A6 6 0 007 1zm2.5 6.5l-3.5 2V5.5l3.5 2z"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:154,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:153,columnNumber:15},this),t?"Sending to triage...":"Retry with AI Triage"]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:148,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:147,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:104,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/RoundsExhaustedContext.tsx",lineNumber:87,columnNumber:5},this)}function Ia({triage:a,payload:o}){const r=a.confidence??0,s=r>=.8?"text-status-success":r>=.5?"text-status-pending":"text-status-error",t=La(a.originalData,o);return e.jsxDEV("div",{className:"space-y-5",children:[a.diagnosis&&e.jsxDEV("p",{className:"text-sm text-text-primary leading-relaxed",children:a.diagnosis},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:37,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-wrap items-center gap-3 text-xs text-text-tertiary",children:[a.tool_calls_made!=null&&e.jsxDEV("span",{children:[a.tool_calls_made," tool call",a.tool_calls_made!==1?"s":""]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:44,columnNumber:11},this),a.tool_calls_made!=null&&e.jsxDEV("span",{className:"text-text-quaternary",children:"·"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:46,columnNumber:44},this),e.jsxDEV("span",{className:`font-medium ${s}`,children:[Math.round(r*100),"% confidence"]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:47,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:42,columnNumber:7},this),a.actions_taken&&a.actions_taken.length>0&&e.jsxDEV("div",{className:"flex flex-wrap gap-1.5",children:a.actions_taken.map((l,m)=>e.jsxDEV("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-[11px]
|
|
4
|
+
text-text-secondary`,children:[e.jsxDEV("svg",{className:"w-3 h-3 text-status-success shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:61,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:60,columnNumber:15},this),l]},m,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:55,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:53,columnNumber:9},this),a.recommendation&&e.jsxDEV("p",{className:"text-[11px] text-text-tertiary italic",children:a.recommendation},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:70,columnNumber:9},this),t.length>0&&e.jsxDEV("div",{className:"space-y-4 pt-2",children:t.map(l=>e.jsxDEV(Oa,{diff:l},l.key,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:79,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:34,columnNumber:5},this)}function La(a,o){if(!a)return[];const r=[];for(const s of Object.keys(a)){if(s.startsWith("_"))continue;const t=a[s],l=o[s];l!==void 0&&JSON.stringify(t)!==JSON.stringify(l)&&r.push({key:s,label:s.replace(/[_-]/g," "),original:t,corrected:l})}return r}function Oa({diff:a}){const o=Ie(a.original),r=Ie(a.corrected);return o!==null&&r!==null?e.jsxDEV("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[a.label," ",e.jsxDEV("span",{className:"normal-case font-normal",children:"(original)"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:130,columnNumber:26},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:129,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-text-tertiary leading-relaxed line-through decoration-text-tertiary/30",children:o},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:132,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:128,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[a.label," ",e.jsxDEV("span",{className:"normal-case font-normal text-status-success",children:"(corrected)"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:138,columnNumber:26},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:137,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-text-primary leading-relaxed",children:r},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:140,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:136,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:127,columnNumber:7},this):e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[a.label," ",e.jsxDEV("span",{className:"normal-case font-normal",children:"(original)"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:153,columnNumber:24},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:152,columnNumber:9},this),e.jsxDEV("pre",{className:"text-xs text-text-tertiary font-mono whitespace-pre-wrap leading-relaxed",children:typeof a.original=="object"?JSON.stringify(a.original,null,2):String(a.original)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:155,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:151,columnNumber:7},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[a.label," ",e.jsxDEV("span",{className:"normal-case font-normal text-status-success",children:"(corrected)"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:161,columnNumber:24},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:160,columnNumber:9},this),e.jsxDEV("pre",{className:"text-xs text-text-primary font-mono whitespace-pre-wrap leading-relaxed",children:typeof a.corrected=="object"?JSON.stringify(a.corrected,null,2):String(a.corrected)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:163,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:159,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/TriageContext.tsx",lineNumber:150,columnNumber:5},this)}function Ie(a){return a==null?"null":typeof a=="string"?a:typeof a=="number"||typeof a=="boolean"?String(a):null}function Le({src:a,escalation:o,schema:r,onResolve:s,onEscalate:t,submitAttempted:l}){const m=N.useRef(null),d=N.useRef("");N.useEffect(()=>{try{const n=new URL(a);d.current=n.origin}catch{d.current=""}},[a]);const i=N.useCallback(()=>{const n=m.current;if(!(n!=null&&n.contentWindow)||!d.current)return;const p={type:"lt:init",escalation:{id:o.id,type:o.type,subtype:o.subtype,description:o.description,status:o.status,priority:o.priority,role:o.role,workflow_type:o.workflow_type},schema:r};n.contentWindow.postMessage(p,d.current)},[o,r]);return N.useEffect(()=>{const n=c=>{if(c.origin!==d.current)return;const p=c.data;if(!(!p||typeof p!="object"||typeof p.type!="string"))switch(p.type){case"lt:ready":i();break;case"lt:submit":p.payload&&typeof p.payload=="object"&&s(p.payload);break;case"lt:escalate":typeof p.target=="string"&&p.target&&t(p.target);break;case"lt:resize":{const b=m.current;b&&typeof p.height=="number"&&p.height>0&&(b.style.height=`${Math.min(p.height,2e3)}px`);break}}};return window.addEventListener("message",n),()=>window.removeEventListener("message",n)},[i,s,t]),N.useEffect(()=>{if(!l)return;const n=m.current;n!=null&&n.contentWindow&&d.current&&n.contentWindow.postMessage({type:"lt:validate"},d.current)},[l]),e.jsxDEV("div",{className:"rounded-md border border-surface-border overflow-hidden bg-white",children:e.jsxDEV("iframe",{ref:m,src:a,sandbox:"allow-scripts allow-same-origin allow-forms",className:"w-full border-0",style:{minHeight:"400px"},title:"HITL Viewport",onLoad:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/IframeViewport.tsx",lineNumber:144,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/IframeViewport.tsx",lineNumber:143,columnNumber:5},this)}function Ua({fieldKey:a,value:o,onChange:r,schema:s}){const t=N.useRef(null),l=(s==null?void 0:s.accept)??void 0,m=a.replace(/[_-]/g," "),d=s==null?void 0:s.description,i=N.useCallback(c=>{var g;const p=(g=c.target.files)==null?void 0:g[0];if(!p)return;const b=new FileReader;b.onload=()=>{typeof b.result=="string"&&r(b.result)},b.readAsDataURL(p)},[r]),n=o.startsWith("data:");return e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary",children:m},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:36,columnNumber:7},this),d&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:39,columnNumber:22},this),e.jsxDEV("div",{className:"mt-1",children:[e.jsxDEV("input",{ref:t,type:"file",accept:l,onChange:i,className:"hidden"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:41,columnNumber:9},this),e.jsxDEV("button",{type:"button",onClick:()=>{var c;return(c=t.current)==null?void 0:c.click()},className:"btn-secondary text-xs px-3 py-1.5",children:n?"Replace file":"Choose file"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:48,columnNumber:9},this),n&&e.jsxDEV("span",{className:"ml-2 text-xs text-status-success",children:"File attached"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:56,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:40,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/widgets/FileUploadWidget.tsx",lineNumber:35,columnNumber:5},this)}function Ja({fieldKey:a,value:o,onChange:r,schema:s}){const t=a.replace(/[_-]/g," "),l=s==null?void 0:s.description,m=(s==null?void 0:s["x-lt-language"])??"",d=N.useCallback(i=>{if(i.key==="Tab"){i.preventDefault();const n=i.currentTarget,c=n.selectionStart,p=n.selectionEnd,b=o.substring(0,c)+" "+o.substring(p);r(b),requestAnimationFrame(()=>{n.selectionStart=n.selectionEnd=c+2})}},[o,r]);return e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary",children:[t,m&&e.jsxDEV("span",{className:"ml-2 text-text-tertiary/60 normal-case font-normal",children:m},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/CodeEditorWidget.tsx",lineNumber:37,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/widgets/CodeEditorWidget.tsx",lineNumber:34,columnNumber:7},this),l&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:l},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/CodeEditorWidget.tsx",lineNumber:40,columnNumber:22},this),e.jsxDEV("textarea",{value:o,onChange:i=>r(i.target.value),onKeyDown:d,className:"input w-full mt-1 font-mono text-xs leading-relaxed",rows:10,spellCheck:!1},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/CodeEditorWidget.tsx",lineNumber:41,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/widgets/CodeEditorWidget.tsx",lineNumber:33,columnNumber:5},this)}function za({fieldKey:a,value:o,onChange:r,schema:s}){const t=N.useRef(null),[l,m]=N.useState(!1),d=a.replace(/[_-]/g," "),i=s==null?void 0:s.description;N.useEffect(()=>{const u=t.current;if(!u)return;const f=u.getContext("2d");if(f&&(f.lineWidth=2,f.lineCap="round",f.strokeStyle="#1E1535",o&&o.startsWith("data:"))){const h=new Image;h.onload=()=>f.drawImage(h,0,0),h.src=o}},[]);const n=N.useCallback(u=>{const h=t.current.getBoundingClientRect();return"touches"in u?{x:u.touches[0].clientX-h.left,y:u.touches[0].clientY-h.top}:{x:u.clientX-h.left,y:u.clientY-h.top}},[]),c=N.useCallback(u=>{var x;m(!0);const f=(x=t.current)==null?void 0:x.getContext("2d");if(!f)return;const h=n(u);f.beginPath(),f.moveTo(h.x,h.y)},[n]),p=N.useCallback(u=>{var x;if(!l)return;const f=(x=t.current)==null?void 0:x.getContext("2d");if(!f)return;const h=n(u);f.lineTo(h.x,h.y),f.stroke()},[l,n]),b=N.useCallback(()=>{m(!1);const u=t.current;u&&r(u.toDataURL("image/png"))},[r]),g=N.useCallback(()=>{const u=t.current;if(!u)return;const f=u.getContext("2d");f&&(f.clearRect(0,0,u.width,u.height),r(""))},[r]);return e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary",children:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/SignatureWidget.tsx",lineNumber:81,columnNumber:7},this),i&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/SignatureWidget.tsx",lineNumber:84,columnNumber:22},this),e.jsxDEV("div",{className:"mt-1 border border-surface-border rounded-md overflow-hidden bg-white",children:e.jsxDEV("canvas",{ref:t,width:400,height:150,className:"w-full cursor-crosshair touch-none",onMouseDown:c,onMouseMove:p,onMouseUp:b,onMouseLeave:b,onTouchStart:c,onTouchMove:p,onTouchEnd:b},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/SignatureWidget.tsx",lineNumber:86,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/SignatureWidget.tsx",lineNumber:85,columnNumber:7},this),e.jsxDEV("button",{type:"button",onClick:g,className:"mt-1 text-[10px] text-text-tertiary hover:text-accent transition-colors",children:"Clear"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/SignatureWidget.tsx",lineNumber:100,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/widgets/SignatureWidget.tsx",lineNumber:80,columnNumber:5},this)}function qa({fieldKey:a,value:o,onChange:r,schema:s}){const t=a.replace(/[_-]/g," "),l=s==null?void 0:s.description;return e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary",children:t},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/RichTextWidget.tsx",lineNumber:18,columnNumber:7},this),l&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:l},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/RichTextWidget.tsx",lineNumber:21,columnNumber:22},this),e.jsxDEV("textarea",{value:o,onChange:m=>r(m.target.value),className:"input w-full mt-1 text-sm leading-relaxed",rows:8,placeholder:"Supports plain text. Markdown formatting is preserved."},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/widgets/RichTextWidget.tsx",lineNumber:22,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/widgets/RichTextWidget.tsx",lineNumber:17,columnNumber:5},this)}const Oe={"file-upload":Ua,"code-editor":Ja,signature:za,"rich-text":qa};function qe({value:a,onChange:o,disabled:r,submitAttempted:s}){const[t,l]=N.useState({}),[m,d]=N.useState({}),[i,n]=N.useState(null),[c,p]=N.useState(!1),[b,g]=N.useState(new Set);N.useEffect(()=>{try{const v=JSON.parse(a);if(typeof v=="object"&&v!==null&&!Array.isArray(v)){const j={},D={};for(const[T,B]of Object.entries(v))T.startsWith("_")?D[T]=B:j[T]=B;l(j),d(D),n(D._form_schema&&typeof D._form_schema=="object"?D._form_schema:null),p(!1)}}catch{p(!0)}},[a]);const u=N.useCallback(v=>{l(v),o(JSON.stringify({...v,...m},null,2))},[m,o]),f=N.useCallback((v,j)=>{u({...t,[v]:j})},[t,u]),h=N.useCallback(v=>{g(j=>{if(j.has(v))return j;const D=new Set(j);return D.add(v),D})},[]);if(c)return e.jsxDEV("p",{className:"text-xs text-status-error",children:"Unable to parse resolver data as form. Use the JSON editor below."},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:79,columnNumber:7},this);const x=Object.entries(t);if(x.length===0)return e.jsxDEV("p",{className:"text-xs text-text-tertiary italic",children:"No resolver fields defined."},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:88,columnNumber:7},this);const y=i==null?void 0:i["x-lt-order"],w=y?[...x].sort((v,j)=>{const D=y.indexOf(v[0]),T=y.indexOf(j[0]);return(D===-1?1/0:D)-(T===-1?1/0:T)}):x,_=new Set((i==null?void 0:i.required)??[]),F=i==null?void 0:i["x-lt-layout"],A=i==null?void 0:i.title,C=i==null?void 0:i.description,R=w.map(([v,j])=>{var P;const D=(P=i==null?void 0:i.properties)==null?void 0:P[v],T=(D==null?void 0:D.readOnly)===!0,B=(D==null?void 0:D["x-lt-span"])??1,H=_.has(v),W=b.has(v)||!!s;let M;if(H&&W&&(j==null||typeof j=="string"&&j.trim()==="")&&(M="Required"),W&&typeof j=="string"&&j.trim()!==""&&D){const U=D.format;U==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(j)&&(M="Enter a valid email address"),U==="uri"&&!/^https?:\/\/.+/.test(j)&&(M="Enter a valid URL")}return e.jsxDEV("div",{className:F==="two-column"&&B>=2?"col-span-2":"",children:e.jsxDEV(Ke,{fieldKey:v,value:j,onChange:U=>f(v,U),onBlur:()=>h(v),schema:i,isRequired:H,isReadOnly:T,error:M},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:141,columnNumber:9},this)},v,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:137,columnNumber:7},this)});return e.jsxDEV("div",{className:`pb-8 ${r?"opacity-60 pointer-events-none":""}`,children:[A&&e.jsxDEV("h3",{className:"text-lg font-light text-text-primary mb-1",children:A},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:159,columnNumber:9},this),C&&e.jsxDEV("p",{className:"text-sm text-text-secondary leading-relaxed mb-6",children:C},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:162,columnNumber:9},this),F==="two-column"?e.jsxDEV("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-14 gap-y-6",children:R},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:167,columnNumber:9},this):e.jsxDEV("div",{className:"space-y-6",children:R},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:169,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:156,columnNumber:5},this)}function Ke({fieldKey:a,value:o,onChange:r,onBlur:s,schema:t,isRequired:l,isReadOnly:m,error:d}){var p;const i=a.replace(/[_-]/g," "),n=(p=t==null?void 0:t.properties)==null?void 0:p[a];if(m){const b=o===null?"null":typeof o=="object"?JSON.stringify(o,null,2):String(o);return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:199,columnNumber:9},this),e.jsxDEV("p",{className:"text-sm text-text-secondary mt-0.5 whitespace-pre-wrap",children:b},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:200,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:198,columnNumber:7},this)}const c=n==null?void 0:n["x-lt-widget"];if(c&&c in Oe&&typeof o=="string"){const b=Oe[c];return e.jsxDEV(b,{fieldKey:a,value:o,onChange:g=>r(g),schema:n},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:209,columnNumber:12},this)}if(typeof o=="boolean")return e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsxDEV("input",{type:"checkbox",checked:o,onChange:b=>{r(b.target.checked),s==null||s()},className:"w-3.5 h-3.5 rounded accent-accent"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:217,columnNumber:11},this),e.jsxDEV("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-text-secondary",children:[i,l&&e.jsxDEV("span",{className:"text-status-error ml-0.5",children:"*"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:225,columnNumber:28},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:223,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:216,columnNumber:9},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:228,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:215,columnNumber:7},this);if(typeof o=="number")return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:237,columnNumber:9},this),e.jsxDEV("input",{type:"number",value:o,onChange:b=>r(parseFloat(b.target.value)||0),onBlur:s,step:"any",className:Z(!!d)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:238,columnNumber:9},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:246,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:236,columnNumber:7},this);if(typeof o=="string"){const b=(n==null?void 0:n.format)==="password",g=n==null?void 0:n.enum,u=n==null?void 0:n.description;if(g!=null&&g.length)return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:260,columnNumber:11},this),u&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:u},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:261,columnNumber:26},this),e.jsxDEV("select",{value:o,onChange:x=>r(x.target.value),onBlur:s,className:Z(!!d),children:g.map(x=>e.jsxDEV("option",{value:x,children:x},x,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:269,columnNumber:15},this))},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:262,columnNumber:11},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:272,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:259,columnNumber:9},this);if(b)return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:280,columnNumber:11},this),u&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:u},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:281,columnNumber:26},this),e.jsxDEV("input",{type:"password",value:o,onChange:x=>r(x.target.value),onBlur:s,className:Z(!!d),autoComplete:"off"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:282,columnNumber:11},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:290,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:279,columnNumber:9},this);const f=n==null?void 0:n.format,h={date:"date","date-time":"datetime-local",email:"email",uri:"url"};return f&&f in h?e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:306,columnNumber:11},this),u&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:u},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:307,columnNumber:26},this),e.jsxDEV("input",{type:h[f],value:o,onChange:x=>r(x.target.value),onBlur:s,className:Z(!!d)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:308,columnNumber:11},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:315,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:305,columnNumber:9},this):f==="textarea"||o.length>80?e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:324,columnNumber:11},this),u&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:u},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:325,columnNumber:26},this),e.jsxDEV("textarea",{value:o,onChange:x=>r(x.target.value),onBlur:s,className:`${Z(!!d)} leading-relaxed`,rows:Math.min(6,Math.max(3,Math.ceil(o.length/60)))},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:326,columnNumber:11},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:333,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:323,columnNumber:9},this):e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:340,columnNumber:9},this),u&&e.jsxDEV("p",{className:"text-[10px] text-text-tertiary mt-0.5",children:u},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:341,columnNumber:24},this),e.jsxDEV("input",{type:"text",value:o,onChange:x=>r(x.target.value),onBlur:s,className:Z(!!d)},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:342,columnNumber:9},this),e.jsxDEV(Y,{error:d},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:349,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:339,columnNumber:7},this)}if(o===null)return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:358,columnNumber:9},this),e.jsxDEV("p",{className:"text-xs text-text-tertiary italic mt-1",children:"null"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:359,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:357,columnNumber:7},this);if(Array.isArray(o))return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:368,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-wrap gap-1.5 mt-1",children:o.map((b,g)=>e.jsxDEV("span",{className:"px-2 py-0.5 text-[11px] font-mono bg-surface-sunken rounded text-text-secondary",children:String(b)},g,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:371,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:369,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:367,columnNumber:7},this);if(typeof o=="object"){const b=Object.entries(o);return e.jsxDEV("div",{children:[e.jsxDEV(O,{isRequired:l,children:i},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:388,columnNumber:9},this),e.jsxDEV("div",{className:"ml-4 mt-2 pl-4 border-l border-accent-faint space-y-3",children:b.map(([g,u])=>e.jsxDEV(Ke,{fieldKey:g,value:u,onChange:f=>r({...o,[g]:f})},g,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:391,columnNumber:13},this))},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:389,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:387,columnNumber:7},this)}return null}function O({children:a,isRequired:o}){return e.jsxDEV("label",{className:"text-[11px] font-semibold uppercase tracking-wider text-text-secondary",children:[a,o&&e.jsxDEV("span",{className:"text-status-error ml-0.5",children:"*"},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:410,columnNumber:22},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:408,columnNumber:5},this)}function Y({error:a}){return a?e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:a},void 0,!1,{fileName:"/app/dashboard/src/components/escalation/ResolverForm.tsx",lineNumber:418,columnNumber:5},this):null}function Z(a){return a?"input text-sm w-full mt-1 border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"input text-sm w-full mt-1"}function Ue({json:a,onJsonChange:o,requestTriage:r,onRequestTriageChange:s,triageNotes:t,onTriageNotesChange:l,isDevMode:m=!0,disabled:d=!1,submitAttempted:i=!1,showTriage:n=!1}){const[c,p]=N.useState("form"),{visibleJson:b,hiddenFields:g}=N.useMemo(()=>{try{const h=JSON.parse(a);if(typeof h=="object"&&h!==null&&!Array.isArray(h)){const x={},y={};for(const[w,_]of Object.entries(h))w.startsWith("_")?x[w]=_:y[w]=_;return{visibleJson:JSON.stringify(y,null,2),hiddenFields:x}}}catch{}return{visibleJson:a,hiddenFields:{}}},[a]),u=N.useCallback(h=>{try{const x=JSON.parse(h);o(JSON.stringify({...x,...g},null,2))}catch{o(h)}},[g,o]),f=Object.keys(g).length>0;return e.jsxDEV(e.Fragment,{children:[(n||m)&&e.jsxDEV("div",{className:"flex items-center justify-between mb-3",children:[n?r?e.jsxDEV("button",{onClick:()=>s(!1),className:"group flex items-center gap-2 text-left","data-testid":"triage-cancel",children:[e.jsxDEV("span",{className:"flex items-center justify-center w-5 h-5 rounded-full bg-accent/10 text-accent shrink-0",children:e.jsxDEV("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:75,columnNumber:21},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:74,columnNumber:19},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:73,columnNumber:17},this),e.jsxDEV("span",{className:"text-xs text-text-secondary group-hover:text-text-primary transition-colors",children:["AI Triage active."," ",e.jsxDEV("span",{className:"text-accent group-hover:underline",children:"Cancel"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:80,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:78,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:68,columnNumber:15},this):e.jsxDEV("button",{onClick:()=>s(!0),className:"group flex items-center gap-2.5 text-left my-4","data-testid":"triage-callout",children:[e.jsxDEV("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-accent/10 text-accent shrink-0 animate-[triage-glow_6s_ease-in-out_infinite]",children:e.jsxDEV("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.674M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:91,columnNumber:21},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:90,columnNumber:19},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:89,columnNumber:17},this),e.jsxDEV("span",{className:"text-[13px] text-text-secondary group-hover:text-text-primary transition-colors",children:["This form doesn't capture the issue?"," ",e.jsxDEV("span",{className:"text-accent group-hover:underline",children:"Request AI Triage"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:96,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:94,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:84,columnNumber:15},this):e.jsxDEV("span",{},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:101,columnNumber:13},this),m&&!r&&e.jsxDEV("button",{onClick:()=>p(c==="form"?"json":"form"),className:"text-[10px] text-text-tertiary hover:text-accent transition-colors",children:c==="form"?"Raw JSON":"Form"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:105,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:65,columnNumber:9},this),e.jsxDEV("div",{className:"relative min-h-[200px]",children:[e.jsxDEV("div",{className:r?"pointer-events-none select-none":"",children:c==="form"?e.jsxDEV(qe,{value:a,onChange:o,disabled:d,submitAttempted:i},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:119,columnNumber:13},this):e.jsxDEV("div",{children:[f&&e.jsxDEV("p",{className:"text-[10px] text-text-quaternary mb-2 italic",children:"Form schema hidden. Edit the resolver values below — they will be merged with the schema on submit."},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:123,columnNumber:17},this),e.jsxDEV("textarea",{value:b,onChange:h=>u(h.target.value),className:"input-json w-full",rows:Math.max(8,b.split(`
|
|
5
|
+
`).length+2),spellCheck:!1,"data-testid":"resolve-json"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:127,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:121,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:117,columnNumber:9},this),r&&e.jsxDEV("div",{className:"absolute inset-0 z-10 flex flex-col bg-surface/90 backdrop-blur-[2px] rounded-md border border-accent/20 p-5","data-testid":"triage-overlay",children:[e.jsxDEV("p",{className:"text-xs text-text-secondary mb-3 leading-relaxed",children:"The resolution form will not be submitted. Describe the issue so AI triage can diagnose and fix it using available tools. The corrected result will come back as a new escalation for your review."},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:145,columnNumber:13},this),e.jsxDEV("textarea",{value:t,onChange:h=>l(h.target.value),placeholder:"e.g. Content is in Spanish — needs translation to English before review...",className:"input text-xs w-full flex-1 min-h-[80px] resize-none",autoFocus:!0,"data-testid":"triage-notes"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:151,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:141,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:115,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/ResolverSection.tsx",lineNumber:62,columnNumber:5},this)}function Q({children:a}){return e.jsxDEV("span",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary",children:a},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:19,columnNumber:10},this)}function le({children:a}){return e.jsxDEV("p",{className:"text-[12px] text-text-secondary mt-0.5 font-mono",children:a},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:23,columnNumber:10},this)}function Ka({esc:a}){const{isBuilder:o}=ve();return e.jsxDEV("div",{className:"space-y-6",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-accent/60 mb-3",children:"Classification"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:32,columnNumber:9},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-x-8 gap-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Type"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:35,columnNumber:13},this),e.jsxDEV(le,{children:a.type},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:36,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:34,columnNumber:11},this),a.subtype&&e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Subtype"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:40,columnNumber:15},this),e.jsxDEV(le,{children:a.subtype},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:41,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:39,columnNumber:13},this),e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Priority"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:45,columnNumber:13},this),e.jsxDEV(le,{children:["P",a.priority]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:46,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:44,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:49,columnNumber:13},this),e.jsxDEV(le,{children:a.status},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:50,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:48,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:33,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:31,columnNumber:7},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-accent/60 mb-3",children:"References"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:57,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-wrap gap-x-8 gap-y-4",children:[e.jsxDEV(S,{label:"Escalation ID",value:a.id},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:59,columnNumber:11},this),a.task_id&&e.jsxDEV(S,{label:"Task ID",value:a.task_id,href:o?`/workflows/tasks/detail/${a.task_id}`:void 0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:60,columnNumber:27},this),a.workflow_type&&e.jsxDEV(S,{label:"Workflow Name",value:a.workflow_type,href:o?`/workflows/executions?entity=${encodeURIComponent(a.workflow_type)}`:void 0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:61,columnNumber:33},this),a.workflow_id&&e.jsxDEV(S,{label:"Workflow ID",value:a.workflow_id,href:o?`/workflows/executions/${a.workflow_id}`:void 0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:62,columnNumber:31},this),a.task_queue&&e.jsxDEV(S,{label:"Task Queue",value:a.task_queue,href:o?`/admin/controlplane?queue=${encodeURIComponent(a.task_queue)}`:void 0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:63,columnNumber:30},this),a.origin_id&&a.origin_id!==a.workflow_id&&e.jsxDEV(S,{label:"Origin ID",value:a.origin_id},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:64,columnNumber:66},this),a.parent_id&&e.jsxDEV(S,{label:"Parent ID",value:a.parent_id},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:65,columnNumber:29},this),a.trace_id&&e.jsxDEV(S,{label:"Trace ID",value:a.trace_id},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:66,columnNumber:28},this),a.span_id&&e.jsxDEV(S,{label:"Span ID",value:a.span_id},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:67,columnNumber:27},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:56,columnNumber:7},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] font-semibold uppercase tracking-wider text-accent/60 mb-3",children:"Timeline"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:73,columnNumber:9},this),e.jsxDEV("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-x-8 gap-y-4",children:[e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Created"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:76,columnNumber:13},this),e.jsxDEV("p",{className:"text-[12px] text-text-secondary mt-0.5",children:e.jsxDEV(z,{date:a.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:77,columnNumber:67},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:77,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:75,columnNumber:11},this),a.claimed_at&&e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Claimed"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:81,columnNumber:15},this),e.jsxDEV("p",{className:"text-[12px] text-text-secondary mt-0.5",children:e.jsxDEV(z,{date:a.claimed_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:82,columnNumber:69},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:82,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:80,columnNumber:13},this),a.resolved_at&&e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Resolved"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:87,columnNumber:15},this),e.jsxDEV("p",{className:"text-[12px] text-text-secondary mt-0.5",children:e.jsxDEV(z,{date:a.resolved_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:88,columnNumber:69},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:88,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:86,columnNumber:13},this),e.jsxDEV("div",{children:[e.jsxDEV(Q,{children:"Updated"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:92,columnNumber:13},this),e.jsxDEV("p",{className:"text-[12px] text-text-secondary mt-0.5",children:e.jsxDEV(z,{date:a.updated_at},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:93,columnNumber:67},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:93,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:91,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:74,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:72,columnNumber:7},this),a.metadata&&Object.keys(a.metadata).length>0&&e.jsxDEV("div",{children:e.jsxDEV(oe,{data:a.metadata,label:"Metadata"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:101,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:100,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:29,columnNumber:5},this)}function Qa({isRoundsExhausted:a,payloadObj:o,isTerminal:r,resolverPayload:s,onRetryTriage:t,isRetrying:l}){return e.jsxDEV(e.Fragment,{children:[a&&o&&e.jsxDEV("div",{className:"mt-8",children:e.jsxDEV(Pa,{payload:o,isTerminal:r,resolverPayload:s,onRetryTriage:t,isRetrying:l},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:130,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:129,columnNumber:9},this),(o==null?void 0:o.category)==="missing_credential"&&e.jsxDEV("div",{className:"mt-8 bg-status-warning/10 border border-status-warning/30 rounded-md px-5 py-4 flex items-start gap-3",children:[e.jsxDEV(Be,{size:20,className:"text-status-warning mt-0.5 shrink-0"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:143,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm font-medium text-text-primary mb-1",children:"Missing Credential"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:145,columnNumber:13},this),e.jsxDEV("p",{className:"text-xs text-text-secondary mb-3",children:["This workflow requires a ",e.jsxDEV("span",{className:"font-medium capitalize",children:String(o.provider)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:147,columnNumber:40},this)," credential to continue. Register one and then resolve this escalation to retry."]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:146,columnNumber:13},this),e.jsxDEV(ze,{to:"/credentials",className:"btn-primary text-xs inline-flex items-center gap-1.5",children:[e.jsxDEV(Be,{size:12},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:154,columnNumber:15},this),"Go to Credentials"]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:150,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:144,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:142,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:126,columnNumber:5},this)}function Ya({isCollapsed:a,toggleSection:o,esc:r,escalationPayload:s,resolverPayload:t,triageData:l,payloadObj:m,isTerminal:d,claimedByMe:i,activeView:n,metadataFormSchema:c,json:p,onJsonChange:b,requestTriage:g,onRequestTriageChange:u,triageNotes:f,onTriageNotesChange:h,isDevMode:x,onResolve:y,onEscalate:w,submitAttempted:_,isCertified:F,hasAI:A}){return e.jsxDEV("div",{className:"mt-8 space-y-6",children:[x&&e.jsxDEV(re,{title:"Escalation Record",sectionKey:"record",isCollapsed:a("record"),onToggle:o,contentClassName:"mt-4 ml-9",children:e.jsxDEV(Ka,{esc:r},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:226,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:219,columnNumber:9},this),x&&e.jsxDEV(re,{title:"Input / Output",sectionKey:"context",isCollapsed:a("context"),onToggle:o,contentClassName:"mt-4 ml-9",children:e.jsxDEV("div",{className:"space-y-6",children:[e.jsxDEV("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[!!r.envelope&&e.jsxDEV("div",{children:e.jsxDEV(oe,{data:r.envelope,label:"Input Envelope"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:243,columnNumber:19},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:242,columnNumber:17},this),s!=null&&e.jsxDEV("div",{children:e.jsxDEV(oe,{data:s,label:"Escalation Context"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:248,columnNumber:19},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:247,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:240,columnNumber:13},this),t!=null&&e.jsxDEV("div",{className:"max-w-xl",children:e.jsxDEV(oe,{data:t,label:"Resolver Payload"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:255,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:254,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:239,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:232,columnNumber:9},this),x&&l&&m&&e.jsxDEV(re,{title:"AI Triage",sectionKey:"triage",isCollapsed:a("triage"),onToggle:o,contentClassName:"mt-4 ml-9",children:e.jsxDEV(Ia,{triage:l,payload:m},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:271,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:264,columnNumber:9},this),!x&&d&&t!=null&&(()=>{const C=typeof t=="object"&&t!==null?t:{},R=c,v=R?{...C,_form_schema:R}:C;return e.jsxDEV("div",{className:"pt-6",children:e.jsxDEV(qe,{value:JSON.stringify(v,null,2),onChange:()=>{},disabled:!0},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:284,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:283,columnNumber:11},this)})(),!d&&(i||!x)&&n==="resolve"&&!!(r.workflow_type||c)&&(()=>{const C=c,R=C==null?void 0:C["x-lt-viewport"],v=(R==null?void 0:R.type)==="iframe"&&!!R.src&&y&&w;return x?e.jsxDEV(re,{title:"Submit Your Resolution",sectionKey:"resolver",isCollapsed:a("resolver"),onToggle:o,contentClassName:"mt-4 ml-9",children:v?e.jsxDEV(Le,{src:R.src,escalation:r,schema:C,onResolve:y,onEscalate:w},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:341,columnNumber:15},this):e.jsxDEV(Ue,{json:p,onJsonChange:b,requestTriage:g,onRequestTriageChange:u,triageNotes:f,onTriageNotesChange:h,isDevMode:x,submitAttempted:_,showTriage:!!F&&!!A},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:349,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:333,columnNumber:11},this):e.jsxDEV("div",{className:"pt-6",children:v?e.jsxDEV(Le,{src:R.src,escalation:r,schema:C,onResolve:y,onEscalate:w},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:306,columnNumber:17},this):e.jsxDEV(Ue,{json:p,onJsonChange:b,requestTriage:g,onRequestTriageChange:u,triageNotes:f,onTriageNotesChange:h,isDevMode:x,disabled:!i,submitAttempted:_,showTriage:!!F&&!!A},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:314,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:302,columnNumber:13},this)})()]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailSections.tsx",lineNumber:216,columnNumber:5},this)}function he(a){if(!a)return null;try{return JSON.parse(a)}catch{return a}}function Ga(a){if(!a)return!1;try{const o=JSON.parse(a);return!!(o&&typeof o=="object"&&o._triage)}catch{return!1}}function ft(){var Ce,Re,ke,Se,_e,Te;const{id:a}=_a(),{user:o}=ca(),r=Ta(),s=Na(),{data:t,isLoading:l,refetch:m,isFetching:d}=da(a);Ra(a);const i=ma(),n=ua(),c=pa(),p=xa(),[b,g]=N.useState(!1),{data:u}=Ea((t==null?void 0:t.role)??""),{data:f}=Ca(),{data:h}=Da(),{data:x}=ba(),{isBuilder:y}=ve(),{isDevMode:w,toggleMode:_}=Fa(!1),F=f==null?void 0:f.find(V=>V.workflow_type===(t==null?void 0:t.workflow_type)),A=h==null?void 0:h.roles.find(V=>V.role===(t==null?void 0:t.role)),C=((Ce=x==null?void 0:x.telemetry)==null?void 0:Ce.traceUrl)??null,[R,v]=N.useState("resolve"),[j,D]=N.useState("{}"),{isCollapsed:T,toggle:B,collapse:H,expand:W}=ha("escalation-detail"),[M,P]=N.useState(!1),[U,ne]=N.useState(""),[ce,G]=N.useState(!1),E=((Re=t==null?void 0:t.metadata)==null?void 0:Re.form_schema)??null,J=((ke=t==null?void 0:t.metadata)==null?void 0:ke.schema_version)??null,I=ja((t==null?void 0:t.role)??"",J??void 0,J!=null),$=(J!=null?((Se=I.data)==null?void 0:Se.form_schema)??null:null)??(F==null?void 0:F.resolver_schema)??(A==null?void 0:A.form_schema)??null,L=E??$,ee=N.useRef(!1);N.useEffect(()=>{if(ee.current||J!=null&&!E&&I.data===void 0&&!I.isError)return;const V=E??($!=null&&$.properties?$:null);if(V!=null&&V.properties){ee.current=!0;const Fe={_form_schema:V};for(const[ia,ra]of Object.entries(V.properties)){const la=ra;Fe[ia]=la.default??""}D(JSON.stringify(Fe,null,2))}else L&&(ee.current=!0,D(JSON.stringify(L,null,2)))},[L,E,$,J,I.data,I.isError]);const Ee=Ga(t==null?void 0:t.escalation_payload),de=(t==null?void 0:t.subtype)==="rounds_exhausted",De=(t==null?void 0:t.subtype)==="wait_for_human";if(N.useEffect(()=>{(Ee||de)&&H("context"),De&&E&&(H("context"),W("resolver"))},[Ee,de,De,E,H,W]),l)return e.jsxDEV("div",{className:"animate-pulse space-y-8",children:[e.jsxDEV("div",{className:"h-8 bg-surface-sunken rounded w-64"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:141,columnNumber:9},this),e.jsxDEV("div",{className:"h-32 bg-surface-sunken rounded w-full"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:142,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:140,columnNumber:7},this);if(!t)return e.jsxDEV("p",{className:"text-sm text-text-secondary",children:"Escalation not found."},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:148,columnNumber:12},this);const me=Je(t),ae=me&&t.assigned_to===(o==null?void 0:o.userId),Qe=me&&!ae,ie=t.status==="resolved"||t.status==="cancelled",te=he(t.escalation_payload),je=he(t.resolver_payload),ue=he(t.envelope),Ye=!!((_e=ue==null?void 0:ue.metadata)!=null&&_e.certified),Ge=!!((Te=x==null?void 0:x.ai)!=null&&Te.enabled),q=typeof te=="object"&&te!==null&&!Array.isArray(te)?te:null,Xe=q==null?void 0:q._triage,Ze=ie?"terminal":ae?"claimed_by_me":Qe?"claimed_by_other":"available",ea=V=>{i.mutate({id:t.id,durationMinutes:V}),H("context"),H("triage"),W("resolver")},se=()=>{s.resetQueries({queryKey:["escalations"]}),s.resetQueries({queryKey:["escalationStats"]}),r(-1)},Ve=async V=>{await n.mutateAsync({id:t.id,resolverPayload:V}),se()},ye=async V=>{V&&(await c.mutateAsync({id:t.id,targetRole:V}),se())},aa=async()=>{ae||await i.mutateAsync({id:t.id,durationMinutes:30});const V=(q==null?void 0:q.diagnosis)||t.description||"";await n.mutateAsync({id:t.id,resolverPayload:{_lt:{needsTriage:!0},notes:V}}),se()},ta=async()=>{await i.mutateAsync({id:t.id,durationMinutes:0}),se()},sa=async()=>{await p.mutateAsync(t.id),g(!1),se()},we=y?e.jsxDEV("button",{onClick:_,className:"text-text-tertiary hover:text-accent transition-colors",title:w?"Switch to user view":"Switch to developer view",children:w?e.jsxDEV("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.25 6.75L22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3l-4.5 16.5"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:231,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:230,columnNumber:9},this):e.jsxDEV("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:e.jsxDEV("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:236,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:235,columnNumber:9},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:223,columnNumber:5},this):void 0,oa=e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV(wa,{onRefresh:()=>m(),isFetching:d,apiPath:`/escalations/${t.id}`},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:244,columnNumber:7},this),we&&e.jsxDEV("div",{className:"ml-4",children:we},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:249,columnNumber:22},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:243,columnNumber:5},this);return e.jsxDEV("div",{className:"min-h-[calc(100vh-9rem)] flex flex-col",children:[e.jsxDEV(Va,{title:"Escalation",actions:oa,center:e.jsxDEV(Aa,{esc:t,className:"w-[25%] shrink-0"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:258,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:255,columnNumber:7},this),e.jsxDEV(Wa,{esc:t,claimedByMe:ae,claimed:me,isTerminal:ie,traceUrl:C,isDevMode:w,showDetails:!T("details"),onToggleDetails:()=>B("details")},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:261,columnNumber:7},this),e.jsxDEV(Qa,{isRoundsExhausted:de,payloadObj:q,isTerminal:ie,resolverPayload:je,onRetryTriage:aa,isRetrying:i.isPending||n.isPending},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:272,columnNumber:7},this),e.jsxDEV(Ya,{isCollapsed:T,toggleSection:B,esc:t,escalationPayload:te,resolverPayload:je,triageData:Xe,payloadObj:q,isTerminal:ie,claimedByMe:ae,activeView:R,metadataFormSchema:E,json:j,onJsonChange:D,requestTriage:M,onRequestTriageChange:P,triageNotes:U,onTriageNotesChange:ne,isDevMode:w,onResolve:Ve,onEscalate:ye,submitAttempted:ce,isCertified:Ye,hasAI:Ge},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:281,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:307,columnNumber:7},this),e.jsxDEV(Ha,{mode:Ze,activeView:R,onActiveViewChange:v,onClaim:ea,claimPending:i.isPending,workflowType:t.workflow_type,json:j,onResolve:Ve,resolvePending:n.isPending,resolveError:n.error,requestTriage:M,triageNotes:U,currentRole:t.role,escalationTargets:((u==null?void 0:u.targets)??[]).filter(V=>V!==t.role),onEscalate:ye,escalatePending:c.isPending,escalateError:c.error,onRelease:ta,releasePending:i.isPending,onCancel:()=>g(!0),assignedTo:t.assigned_to,assignedUntil:t.assigned_until,onSubmitAttempt:()=>G(!0)},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:309,columnNumber:7},this),e.jsxDEV(va,{open:b,onClose:()=>g(!1),onConfirm:sa,isPending:p.isPending,error:p.error},void 0,!1,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:335,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/operator/escalation-detail/EscalationDetailPage.tsx",lineNumber:254,columnNumber:5},this)}export{ft as EscalationDetailPage};
|
|
6
|
+
//# sourceMappingURL=index-eshNd6NY.js.map
|