@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-U27KBbTV.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 Search, Server, LayoutGrid,\n ShieldCheck, ShieldPlus, ShieldOff, Settings, Wrench, Play, UserCheck,\n} from 'lucide-react';\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 tabs + search */}\n {!isLoading && queues.length > 0 && (\n <div className=\"sticky top-0 z-20 bg-surface pt-3 pb-3\">\n <div className=\"bg-[#F7F7F7] rounded-lg px-5 pt-3 pb-3 flex items-center gap-5\">\n <button\n onClick={() => setActiveQueue(null)}\n className={`flex flex-col items-center gap-1 transition-colors ${\n activeQueue === null ? 'text-accent' : 'text-text-quaternary hover:text-text-secondary'\n }`}\n >\n <LayoutGrid className=\"w-3 h-3\" strokeWidth={1.5} />\n <span className=\"text-[9px] font-medium\">All</span>\n </button>\n {queues.map((queue) => {\n const isActive = activeQueue === queue;\n const label = queue.length > 16 ? queue.slice(0, 14) + '…' : queue;\n return (\n <button\n key={queue}\n onClick={() => setActiveQueue(isActive ? null : queue)}\n className={`flex flex-col items-center gap-1 transition-colors ${\n isActive ? 'text-accent' : 'text-text-quaternary hover:text-text-secondary'\n }`}\n title={queue}\n >\n <Server className=\"w-3 h-3\" strokeWidth={1.5} />\n <span className=\"text-[9px] font-medium\">{label}</span>\n </button>\n );\n })}\n <span className=\"flex-1\" />\n <div className=\"relative\">\n <Search className=\"absolute left-0 top-1/2 -translate-y-1/2 w-3 h-3 text-text-quaternary\" />\n <input\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={`Search ${allWorkflows.length} workflows…`}\n className=\"pl-5 py-1 text-sm bg-transparent border-b border-surface-border/60 text-text-primary placeholder:text-text-quaternary focus:outline-none focus:border-accent/50 transition-colors w-52\"\n />\n </div>\n </div>\n </div>\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-[78px] 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-[78px] 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 items-start';\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.5 px-3 -mx-3 rounded-md cursor-pointer transition-colors`}\n >\n {/* Col 1: Workflow name + description */}\n <div className=\"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=\"mt-0.5 text-[10px] text-text-tertiary group-hover:text-text-secondary leading-snug line-clamp-2 transition-colors\">\n {wf.description}\n </p>\n )}\n </div>\n\n {/* Col 2: Tier */}\n <div className=\"pt-0.5\">\n <TierBadge tier={wf.tier ?? 'durable'} />\n </div>\n\n {/* Col 3: Access — escalation roles then invocation roles */}\n <div className=\"min-w-0 space-y-1 pt-0.5\">\n {escRoles.length > 0 && (\n <div className=\"flex items-center gap-1.5 flex-wrap\">\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 </div>\n )}\n {invokeRoles.length > 0 && (\n <div className=\"flex items-center gap-1.5 flex-wrap\">\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 </div>\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 pt-0.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-emerald-400\">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-violet-400\">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","jsxs","jsx","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","LayoutGrid","isActive","label","Server","Search","e","LoadingSkeleton","workflows","WorkflowTableHeader","wf","WorkflowRow","ConfirmDeleteModal","Fragment","ROW_GRID","onRowClick","onDelete","onNavigate","escRoles","invokeRoles","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","s","v","EMPTY_FORM","configToForm","c","roles","consumes","jsonValid","SectionHeader","Icon","color","children","Field","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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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{a as c,j as e}from"./vendor-query-B2UbickB.js";import{c as q,u as A,d as D,e as B}from"./workflows-BTkHs6VT.js";import{P as $}from"./PageHeader-CFta2VaS.js";import{W as z}from"./WorkflowPill-BuNkWUVM.js";import{N as H}from"./NamespacePill-DlqBTvFR.js";import{ab as V,b as T,a6 as K,ac as U,ad as G,P as Q}from"./vendor-icons-BaQqUm-e.js";import{j as W}from"./index-CKXSKsVZ.js";import{B as X}from"./BotPicker-xGUCxJo-.js";import{L as Y,c as Z,f as ee}from"./vendor-react-CXumBFUA.js";import"./bots-CyzN6Uxi.js";function te({configs:t,selectedType:r,onSelect:m,tierMap:h,activeTypes:n}){const[x,p]=c.useState(""),i=c.useMemo(()=>{if(!x.trim())return t;const s=x.toLowerCase();return t.filter(w=>{var a;return w.workflow_type.toLowerCase().includes(s)||((a=w.description)==null?void 0:a.toLowerCase().includes(s))})},[t,x]);return e.jsxs("div",{children:[e.jsxs("div",{className:"sticky top-0 z-20 bg-surface pt-4",children:[e.jsx("div",{className:"bg-[#F7F7F7] rounded-lg px-4 py-2 mb-3",children:e.jsxs("div",{className:"relative w-1/2",children:[e.jsx(V,{className:"absolute left-0 top-1/2 -translate-y-1/2 w-3 h-3 text-text-quaternary"}),e.jsx("input",{type:"text",value:x,onChange:s=>p(s.target.value),placeholder:`Search ${t.length} workflows…`,className:"w-full pl-5 py-1 text-sm bg-transparent border-b border-surface-border/60 text-text-primary placeholder:text-text-quaternary focus:outline-none focus:border-accent/50 transition-colors"})]})}),e.jsxs("div",{className:"flex items-center gap-2 py-2 border-b border-surface-border",children:[e.jsx("h2",{className:"section-h2",children:"Workflows"}),e.jsx("span",{className:"text-xs text-text-quaternary",children:i.length})]})]}),i.length===0?e.jsx("p",{className:"text-sm text-text-tertiary py-8 text-center",children:"No workflows match your search."}):e.jsx("div",{className:"divide-y divide-surface-border/30",children:i.map(s=>{const w=r===s.workflow_type,a=h.get(s.workflow_type)??"durable",l=a==="certified"?"certified":a==="registered"?"registered":"durable";return e.jsxs("button",{onClick:()=>m(s),className:"group relative w-full text-left py-3 px-3 -mx-3 rounded-md transition-colors duration-150",children:[w&&e.jsx("span",{className:"absolute left-0 top-1 bottom-1 w-0.5 bg-accent rounded-full"}),e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(z,{type:s.workflow_type,size:"md",variant:l}),e.jsxs("span",{className:"ml-auto flex items-center gap-2 shrink-0",children:[s.execute_as&&e.jsxs("span",{className:"inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[9px] bg-accent/10 text-accent rounded",children:[e.jsx(T,{className:"w-2.5 h-2.5"}),s.execute_as]}),(n==null?void 0:n.has(s.workflow_type))&&e.jsx("span",{title:"Cron schedule active",children:e.jsx(K,{className:"w-3 h-3 text-status-success/70 shrink-0"})}),e.jsx(H,{namespace:"durable"})]})]}),s.description&&e.jsx("p",{className:"text-[10px] text-text-tertiary group-hover:text-text-secondary leading-relaxed line-clamp-2 pl-0.5 transition-colors",children:s.description})]},s.workflow_type)})})]})}const O=`{
|
|
2
|
-
"data": {},
|
|
3
|
-
"metadata": {}
|
|
4
|
-
}`;function se(t){return typeof t=="boolean"?"boolean":typeof t=="number"?"number":Array.isArray(t)?"array":t!==null&&typeof t=="object"?"object":"string"}function J(t){if(!t)return[];const r=t.data;return!r||typeof r!="object"?[]:Object.entries(r).map(([m,h])=>({key:m,type:se(h),defaultValue:h}))}function M(t){return{...t}}function I(t,r){return JSON.stringify({data:t,metadata:r},null,2)}function ae({config:t,overrideBot:r,onOverrideChange:m,showOverride:h}){const{user:n}=W(),x=r||t.execute_as;return e.jsxs("div",{className:"bg-surface-sunken rounded-lg px-4 py-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[10px] text-text-tertiary uppercase tracking-wider font-medium",children:"Running as"}),x&&!r&&e.jsx("span",{className:"text-[9px] text-text-tertiary",children:"configured default"}),r&&e.jsx("span",{className:"text-[9px] text-accent",children:"admin override"})]}),e.jsx("div",{className:"flex items-center gap-1.5",children:x?e.jsxs(e.Fragment,{children:[e.jsx(T,{className:"w-3.5 h-3.5 text-accent/70"}),e.jsx("span",{className:"text-xs text-text-primary font-mono",children:x})]}):e.jsxs(e.Fragment,{children:[e.jsx(U,{className:"w-3.5 h-3.5 text-text-tertiary"}),e.jsx("span",{className:"text-xs text-text-primary",children:(n==null?void 0:n.displayName)||(n==null?void 0:n.username)||"you"})]})}),h&&m&&e.jsxs("div",{className:"pt-1 border-t border-surface-border",children:[e.jsx("label",{className:"text-[10px] text-text-tertiary mb-1 block",children:"Override identity"}),e.jsx(X,{selected:r??"",onChange:m,placeholder:t.execute_as?`Default: ${t.execute_as}`:"Invoking user (default)"})]})]})}function re({selectedConfig:t,isJsonMode:r,hasFormView:m,jsonInput:h,formFields:n,dataFields:x,onJsonChange:p,onToggleMode:i,onUpdateFormField:s,onSetFormFields:w}){return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[e.jsx("label",{className:"block text-xs text-text-secondary",children:"Envelope"}),e.jsxs("div",{className:"flex items-center gap-3",children:[m&&e.jsx("button",{type:"button",onClick:i,className:"text-[10px] text-accent hover:underline",children:r?"Form view":"JSON view"}),t.envelope_schema?e.jsx("span",{className:"text-[10px] text-accent",children:"Pre-filled from workflow config"}):e.jsx("span",{className:"text-[10px] text-status-warning",children:"No template"})]})]}),!t.envelope_schema&&e.jsx("div",{className:"bg-surface-sunken border border-surface-border rounded px-4 py-3 mb-3",children:e.jsxs("p",{className:"text-xs text-text-secondary leading-relaxed",children:["This workflow has no input template. Edit the JSON directly below, or ",e.jsx(Y,{to:"/workflows/registry/new",className:"text-status-success hover:underline",children:"register it"})," in the Workflow Registry with an envelope schema for pre-filled fields and form-based input."]})}),r||!m?e.jsx("textarea",{value:h,onChange:a=>p(a.target.value),className:"input-json",rows:12,spellCheck:!1}):e.jsx("div",{className:"space-y-3",children:x.map(({key:a,type:l})=>{var N,g;const u=n[a],j=typeof u=="string"?u:JSON.stringify(u??(l==="array"?[]:{}),null,2),k=Math.min(20,Math.max(4,((g=(N=j==null?void 0:j.split)==null?void 0:N.call(j,`
|
|
5
|
-
`))==null?void 0:g.length)??4));return e.jsxs("div",{children:[e.jsxs("label",{className:"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[a,e.jsx("span",{className:"ml-2 font-normal normal-case",children:l})]}),l==="boolean"?e.jsxs("select",{value:String(u??!1),onChange:f=>s(a,f.target.value,l),className:"select text-xs w-full",children:[e.jsx("option",{value:"true",children:"true"}),e.jsx("option",{value:"false",children:"false"})]}):l==="object"||l==="array"?e.jsx("textarea",{value:j,onChange:f=>{try{s(a,JSON.parse(f.target.value),l)}catch{w({...n,[a]:f.target.value})}},className:"input-json w-full",rows:k,spellCheck:!1}):e.jsx("input",{type:l==="number"?"number":"text",value:String(u??""),onChange:f=>s(a,f.target.value,l),className:"input text-xs w-full"})]},a)})}),e.jsxs("p",{className:"text-[10px] text-text-tertiary mt-1.5",children:["The envelope wraps your workflow input. ",e.jsx("code",{className:"text-accent/80",children:"data"})," holds workflow-specific fields; ",e.jsx("code",{className:"text-accent/80",children:"metadata"})," is optional context."]})]})}function ne({selected:t,executionsPath:r}){const m=Z(),{isSuperAdmin:h,hasRoleType:n}=W(),x=h||n("admin"),p=q(),[i,s]=c.useState(O),[w,a]=c.useState(""),[l,u]=c.useState({}),[j,k]=c.useState(!1),[N,g]=c.useState(""),f=t.certified,[P,d]=c.useState(f),_=c.useMemo(()=>J(t.envelope_schema??null),[t.envelope_schema]),F=_.length>0,E=c.useMemo(()=>{if(!t.envelope_schema)return{};const o=t.envelope_schema.metadata;return o&&typeof o=="object"?o:{}},[t.envelope_schema]);c.useEffect(()=>{var S;a(""),p.reset();const o=sessionStorage.getItem("lt:invoke:prefill");if(o){sessionStorage.removeItem("lt:invoke:prefill"),s(o);try{const v=JSON.parse(o),C=(v==null?void 0:v.data)??v;C&&typeof C=="object"&&u(M(C))}catch{}k(!0),g("");return}const b=t.envelope_schema?JSON.stringify(t.envelope_schema,null,2):O;s(b),(S=t.envelope_schema)!=null&&S.data&&typeof t.envelope_schema.data=="object"?u(M(t.envelope_schema.data)):u({}),k(!J(t.envelope_schema??null).length),g(""),d(f)},[t.workflow_type]);const y=()=>{if(j)try{const o=JSON.parse(i);o.data&&typeof o.data=="object"&&u(M(o.data))}catch{}else s(I(l,E));k(!j)},L=(o,b,S)=>{let v=b;S==="number"?v=b===""?0:Number(b):S==="boolean"&&(v=b==="true"||b===!0);const C={...l,[o]:v};u(C),s(I(C,E))},R=async()=>{a("");let o;try{o=JSON.parse(i)}catch{a("Invalid JSON");return}const{data:b,metadata:S}=o;if(!b||typeof b!="object"){a('Envelope must include a "data" object');return}try{const v={...S??{}};P&&(v.certified=!0),await p.mutateAsync({workflowType:t.workflow_type,data:b,metadata:v,...N?{execute_as:N}:{}}),m(r)}catch{}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-mono font-medium text-text-primary",children:t.workflow_type}),t.description&&e.jsx("p",{className:"text-xs text-text-quaternary mt-1 leading-relaxed",children:t.description})]}),e.jsx(ae,{config:t,overrideBot:N,onOverrideChange:g,showOverride:x}),f&&e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:P,onChange:o=>d(o.target.checked),className:"rounded border-surface-border text-accent focus:ring-accent/30"}),e.jsx(G,{className:"w-3.5 h-3.5 text-text-tertiary"}),e.jsx("span",{className:"text-xs text-text-secondary",children:"Enable task tracking and escalation routing"})]}),e.jsx(re,{selectedConfig:t,isJsonMode:j,hasFormView:F,jsonInput:i,formFields:l,dataFields:_,onJsonChange:o=>{s(o),a("")},onToggleMode:y,onUpdateFormField:L,onSetFormFields:u}),w&&e.jsx("p",{className:"text-xs text-status-error",children:w}),p.error&&e.jsx("p",{className:"text-xs text-status-error",children:p.error.message}),p.isSuccess&&e.jsx("p",{className:"text-xs text-status-success",children:"Workflow started"}),e.jsx("button",{onClick:R,disabled:p.isPending,className:"btn-primary",children:p.isPending?"Starting...":"Start Workflow"})]})}function oe(){const[t,r]=ee(),{data:m,isLoading:h}=A(),{data:n,isLoading:x}=D(),{data:p}=B(),i=t.get("type")??"",s=m??[],w=c.useMemo(()=>{const d=new Map;for(const _ of n??[])d.set(_.workflow_type,_.tier??"durable");return d},[n]),a=c.useMemo(()=>{const d=s.filter(y=>y.invocable),_=new Set(s.map(y=>y.workflow_type)),E=(n??[]).filter(y=>y.active&&!_.has(y.workflow_type)).map(y=>({workflow_type:y.workflow_type,task_queue:y.task_queue??"",invocable:!0,certified:!1,description:null,default_role:"reviewer",roles:[],invocation_roles:[],consumes:[],envelope_schema:null,resolver_schema:null,cron_schedule:null,execute_as:null}));return[...d,...E]},[s,n]),l=a.find(d=>d.workflow_type===i),u=new Set((p??[]).filter(d=>d.active).map(d=>d.workflow_type)),j="/workflows/executions",k=c.useRef(null),[N,g]=c.useState(!0),f=c.useRef(i);c.useEffect(()=>{if(f.current!==i){g(!1);const d=setTimeout(()=>{f.current=i,g(!0)},120);return()=>clearTimeout(d)}},[i]),c.useEffect(()=>{a.length===1&&!t.get("type")&&r({type:a[0].workflow_type},{replace:!0})},[a.length]);const P=d=>{r({type:d.workflow_type},{replace:!0})};return h||x?e.jsxs("div",{className:"animate-pulse space-y-4",children:[e.jsx("div",{className:"h-8 bg-surface-sunken rounded w-48"}),e.jsx("div",{className:"h-40 bg-surface-sunken rounded"})]}):e.jsxs("div",{children:[e.jsx($,{title:"Invoke",docsHash:"#docs:dashboard.md:invoke-workflow"}),a.length===0?e.jsxs("div",{className:"py-16 text-center",children:[e.jsx("p",{className:"text-sm text-text-primary mb-1",children:"No invocable workflows"}),e.jsx("p",{className:"text-xs text-text-tertiary",children:"Mark workflows as invocable in the registry, or start the server with examples enabled."})]}):e.jsxs("div",{className:"grid grid-cols-3 gap-8 items-start",children:[e.jsx("div",{className:"col-span-2",children:e.jsx(te,{configs:a,selectedType:i,onSelect:P,tierMap:w,activeTypes:u})}),e.jsx("div",{ref:k,className:`sticky top-4 transition-all duration-200 ease-out ${N?"opacity-100 translate-y-0":"opacity-0 translate-y-1"}`,children:i&&l?e.jsx(ne,{selected:l,executionsPath:j}):e.jsxs("div",{className:"flex flex-col items-center justify-center py-24 text-center",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-accent/[0.06] flex items-center justify-center mb-4",children:e.jsx(Q,{className:"w-5 h-5 text-accent/50"})}),e.jsx("p",{className:"text-sm text-text-secondary mb-1",children:"Select a workflow"}),e.jsx("p",{className:"text-xs text-text-quaternary",children:"Choose one from the list to configure and invoke it."})]})})]})]})}function je(){return e.jsx(oe,{})}export{je as DurableInvokePage,oe as StartWorkflowPage};
|
|
6
|
-
//# sourceMappingURL=index-fwHQSJCp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-fwHQSJCp.js","sources":["../../src/pages/workflows/start/WorkflowSelector.tsx","../../src/pages/workflows/start/helpers.ts","../../src/pages/workflows/start/IdentitySummary.tsx","../../src/pages/workflows/start/EnvelopeEditor.tsx","../../src/pages/workflows/start/StartNowPanel.tsx","../../src/pages/workflows/start/StartWorkflowPage.tsx","../../src/pages/workflows/start/DurableInvokePage.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { Search, Bot, Clock } from 'lucide-react';\nimport { WorkflowPill } from '../../../components/common/display/WorkflowPill';\nimport { NamespacePill } from '../../../components/common/display/NamespacePill';\nimport type { LTWorkflowConfig, WorkflowTier } from '../../../api/types';\n\nexport function WorkflowSelector({\n configs,\n selectedType,\n onSelect,\n tierMap,\n activeTypes,\n}: {\n configs: LTWorkflowConfig[];\n selectedType: string;\n onSelect: (config: LTWorkflowConfig) => void;\n tierMap: Map<string, WorkflowTier>;\n activeTypes?: Set<string>;\n}) {\n const [search, setSearch] = useState('');\n\n const filtered = useMemo(() => {\n if (!search.trim()) return configs;\n const q = search.toLowerCase();\n return configs.filter(\n (c) =>\n c.workflow_type.toLowerCase().includes(q) ||\n c.description?.toLowerCase().includes(q),\n );\n }, [configs, search]);\n\n return (\n <div>\n {/* Sticky header: search pill + section label — single block, no gap */}\n <div className=\"sticky top-0 z-20 bg-surface pt-4\">\n <div className=\"bg-[#F7F7F7] rounded-lg px-4 py-2 mb-3\">\n <div className=\"relative w-1/2\">\n <Search className=\"absolute left-0 top-1/2 -translate-y-1/2 w-3 h-3 text-text-quaternary\" />\n <input\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={`Search ${configs.length} workflows…`}\n className=\"w-full pl-5 py-1 text-sm bg-transparent border-b border-surface-border/60 text-text-primary placeholder:text-text-quaternary focus:outline-none focus:border-accent/50 transition-colors\"\n />\n </div>\n </div>\n <div className=\"flex items-center gap-2 py-2 border-b border-surface-border\">\n <h2 className=\"section-h2\">Workflows</h2>\n <span className=\"text-xs text-text-quaternary\">{filtered.length}</span>\n </div>\n </div>\n\n {/* List */}\n {filtered.length === 0 ? (\n <p className=\"text-sm text-text-tertiary py-8 text-center\">No workflows match your search.</p>\n ) : (\n <div className=\"divide-y divide-surface-border/30\">\n {filtered.map((config) => {\n const isSelected = selectedType === config.workflow_type;\n const tier = tierMap.get(config.workflow_type) ?? 'durable';\n const variant =\n tier === 'certified' ? 'certified' : tier === 'registered' ? 'registered' : 'durable';\n return (\n <button\n key={config.workflow_type}\n onClick={() => onSelect(config)}\n className=\"group relative w-full text-left py-3 px-3 -mx-3 rounded-md transition-colors duration-150\"\n >\n {isSelected && (\n <span className=\"absolute left-0 top-1 bottom-1 w-0.5 bg-accent rounded-full\" />\n )}\n <div className=\"flex items-center gap-2 mb-1\">\n <WorkflowPill type={config.workflow_type} size=\"md\" variant={variant} />\n <span className=\"ml-auto flex items-center gap-2 shrink-0\">\n {config.execute_as && (\n <span className=\"inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[9px] bg-accent/10 text-accent rounded\">\n <Bot className=\"w-2.5 h-2.5\" />\n {config.execute_as}\n </span>\n )}\n {activeTypes?.has(config.workflow_type) && (\n <span title=\"Cron schedule active\">\n <Clock className=\"w-3 h-3 text-status-success/70 shrink-0\" />\n </span>\n )}\n <NamespacePill namespace=\"durable\" />\n </span>\n </div>\n {config.description && (\n <p className=\"text-[10px] text-text-tertiary group-hover:text-text-secondary leading-relaxed line-clamp-2 pl-0.5 transition-colors\">\n {config.description}\n </p>\n )}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n","export const DEFAULT_ENVELOPE = '{\\n \"data\": {},\\n \"metadata\": {}\\n}';\n\n/** Infer a simple field type from a value. */\nexport function inferTypeFromValue(value: unknown): string {\n if (typeof value === 'boolean') return 'boolean';\n if (typeof value === 'number') return 'number';\n if (Array.isArray(value)) return 'array';\n if (value !== null && typeof value === 'object') return 'object';\n return 'string';\n}\n\n/** Extract the data keys from an envelope_schema and their inferred types. */\nexport function extractDataFields(\n schema: Record<string, unknown> | null,\n): { key: string; type: string; defaultValue: unknown }[] {\n if (!schema) return [];\n const data = schema.data;\n if (!data || typeof data !== 'object') return [];\n return Object.entries(data as Record<string, unknown>).map(([key, value]) => ({\n key,\n type: inferTypeFromValue(value),\n defaultValue: value,\n }));\n}\n\n/** Build form field values from data object. */\nexport function dataToFields(data: Record<string, unknown>): Record<string, unknown> {\n return { ...data };\n}\n\n/** Build full envelope JSON string from form fields + metadata. */\nexport function fieldsToJson(\n fields: Record<string, unknown>,\n metadata: Record<string, unknown>,\n): string {\n return JSON.stringify({ data: fields, metadata }, null, 2);\n}\n","import { Bot, UserCircle } from 'lucide-react';\nimport { BotPicker } from '../../../components/common/form/BotPicker';\nimport { useAuth } from '../../../hooks/useAuth';\nimport type { LTWorkflowConfig } from '../../../api/types';\n\nexport function IdentitySummary({\n config,\n overrideBot,\n onOverrideChange,\n showOverride,\n}: {\n config: LTWorkflowConfig;\n overrideBot?: string;\n onOverrideChange?: (botExternalId: string) => void;\n showOverride?: boolean;\n}) {\n const { user } = useAuth();\n const effectiveBot = overrideBot || config.execute_as;\n\n return (\n <div className=\"bg-surface-sunken rounded-lg px-4 py-3 space-y-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-[10px] text-text-tertiary uppercase tracking-wider font-medium\">Running as</span>\n {effectiveBot && !overrideBot && (\n <span className=\"text-[9px] text-text-tertiary\">configured default</span>\n )}\n {overrideBot && (\n <span className=\"text-[9px] text-accent\">admin override</span>\n )}\n </div>\n <div className=\"flex items-center gap-1.5\">\n {effectiveBot ? (\n <>\n <Bot className=\"w-3.5 h-3.5 text-accent/70\" />\n <span className=\"text-xs text-text-primary font-mono\">{effectiveBot}</span>\n </>\n ) : (\n <>\n <UserCircle className=\"w-3.5 h-3.5 text-text-tertiary\" />\n <span className=\"text-xs text-text-primary\">\n {user?.displayName || user?.username || 'you'}\n </span>\n </>\n )}\n </div>\n {showOverride && onOverrideChange && (\n <div className=\"pt-1 border-t border-surface-border\">\n <label className=\"text-[10px] text-text-tertiary mb-1 block\">Override identity</label>\n <BotPicker\n selected={overrideBot ?? ''}\n onChange={onOverrideChange}\n placeholder={config.execute_as ? `Default: ${config.execute_as}` : 'Invoking user (default)'}\n />\n </div>\n )}\n </div>\n );\n}\n","import { Link } from 'react-router-dom';\nimport type { LTWorkflowConfig } from '../../../api/types';\n\ninterface DataField {\n key: string;\n type: string;\n defaultValue: unknown;\n}\n\nexport function EnvelopeEditor({\n selectedConfig,\n isJsonMode,\n hasFormView,\n jsonInput,\n formFields,\n dataFields,\n onJsonChange,\n onToggleMode,\n onUpdateFormField,\n onSetFormFields,\n}: {\n selectedConfig: LTWorkflowConfig;\n isJsonMode: boolean;\n hasFormView: boolean;\n jsonInput: string;\n formFields: Record<string, unknown>;\n dataFields: DataField[];\n onJsonChange: (value: string) => void;\n onToggleMode: () => void;\n onUpdateFormField: (key: string, value: unknown, type: string) => void;\n onSetFormFields: (fields: Record<string, unknown>) => void;\n}) {\n return (\n <div>\n <div className=\"flex items-baseline justify-between mb-2\">\n <label className=\"block text-xs text-text-secondary\">\n Envelope\n </label>\n <div className=\"flex items-center gap-3\">\n {hasFormView && (\n <button\n type=\"button\"\n onClick={onToggleMode}\n className=\"text-[10px] text-accent hover:underline\"\n >\n {isJsonMode ? 'Form view' : 'JSON view'}\n </button>\n )}\n {selectedConfig.envelope_schema ? (\n <span className=\"text-[10px] text-accent\">\n Pre-filled from workflow config\n </span>\n ) : (\n <span className=\"text-[10px] text-status-warning\">\n No template\n </span>\n )}\n </div>\n </div>\n\n {!selectedConfig.envelope_schema && (\n <div className=\"bg-surface-sunken border border-surface-border rounded px-4 py-3 mb-3\">\n <p className=\"text-xs text-text-secondary leading-relaxed\">\n This workflow has no input template. Edit the JSON directly below, or <Link to=\"/workflows/registry/new\" className=\"text-status-success hover:underline\">register it</Link> in the Workflow Registry with an envelope schema for pre-filled fields and form-based input.\n </p>\n </div>\n )}\n\n {isJsonMode || !hasFormView ? (\n /* JSON view */\n <textarea\n value={jsonInput}\n onChange={(e) => onJsonChange(e.target.value)}\n className=\"input-json\"\n rows={12}\n spellCheck={false}\n />\n ) : (\n /* Form view */\n <div className=\"space-y-3\">\n {dataFields.map(({ key, type }) => {\n const value = formFields[key];\n const jsonValue =\n typeof value === 'string'\n ? value\n : JSON.stringify(\n value ?? (type === 'array' ? [] : {}),\n null,\n 2,\n );\n const textareaRows = Math.min(\n 20,\n Math.max(4, (jsonValue?.split?.('\\n')?.length ?? 4)),\n );\n return (\n <div key={key}>\n <label className=\"block text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">\n {key}\n <span className=\"ml-2 font-normal normal-case\">\n {type}\n </span>\n </label>\n {type === 'boolean' ? (\n <select\n value={String(value ?? false)}\n onChange={(e) =>\n onUpdateFormField(key, e.target.value, type)\n }\n className=\"select text-xs w-full\"\n >\n <option value=\"true\">true</option>\n <option value=\"false\">false</option>\n </select>\n ) : type === 'object' || type === 'array' ? (\n <textarea\n value={jsonValue}\n onChange={(e) => {\n try {\n onUpdateFormField(\n key,\n JSON.parse(e.target.value),\n type,\n );\n } catch {\n // Keep raw text without syncing to JSON\n onSetFormFields({\n ...formFields,\n [key]: e.target.value,\n });\n }\n }}\n className=\"input-json w-full\"\n rows={textareaRows}\n spellCheck={false}\n />\n ) : (\n <input\n type={type === 'number' ? 'number' : 'text'}\n value={String(value ?? '')}\n onChange={(e) =>\n onUpdateFormField(key, e.target.value, type)\n }\n className=\"input text-xs w-full\"\n />\n )}\n </div>\n );\n })}\n </div>\n )}\n <p className=\"text-[10px] text-text-tertiary mt-1.5\">\n The envelope wraps your workflow input. <code className=\"text-accent/80\">data</code> holds workflow-specific fields; <code className=\"text-accent/80\">metadata</code> is optional context.\n </p>\n </div>\n );\n}\n","import { useState, useEffect, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { ShieldCheck } from 'lucide-react';\nimport { useInvokeWorkflow } from '../../../api/workflows';\nimport { useAuth } from '../../../hooks/useAuth';\nimport type { LTWorkflowConfig } from '../../../api/types';\nimport {\n DEFAULT_ENVELOPE,\n extractDataFields,\n dataToFields,\n fieldsToJson,\n} from './helpers';\nimport { IdentitySummary } from './IdentitySummary';\nimport { EnvelopeEditor } from './EnvelopeEditor';\n\nexport function StartNowPanel({ selected, executionsPath }: { selected: LTWorkflowConfig; executionsPath: string }) {\n const navigate = useNavigate();\n const { isSuperAdmin, hasRoleType } = useAuth();\n const isAdmin = isSuperAdmin || hasRoleType('admin');\n const invokeMutation = useInvokeWorkflow();\n const [jsonInput, setJsonInput] = useState(DEFAULT_ENVELOPE);\n const [parseError, setParseError] = useState('');\n const [formFields, setFormFields] = useState<Record<string, unknown>>({});\n const [isJsonMode, setIsJsonMode] = useState(false);\n const [overrideBot, setOverrideBot] = useState('');\n // Per-run interceptor opt-out: offered when the workflow's registration is\n // certified. metadata.certified=false bypasses config lookup for this run.\n const isCertifiable = selected.certified;\n const [certified, setCertified] = useState(isCertifiable);\n\n const dataFields = useMemo(\n () => extractDataFields(selected.envelope_schema ?? null),\n [selected.envelope_schema],\n );\n const hasFormView = dataFields.length > 0;\n\n const schemaMetadata = useMemo(() => {\n if (!selected.envelope_schema) return {};\n const md = selected.envelope_schema.metadata;\n return md && typeof md === 'object' ? (md as Record<string, unknown>) : {};\n }, [selected.envelope_schema]);\n\n useEffect(() => {\n setParseError('');\n invokeMutation.reset();\n\n const prefill = sessionStorage.getItem('lt:invoke:prefill');\n if (prefill) {\n sessionStorage.removeItem('lt:invoke:prefill');\n setJsonInput(prefill);\n try {\n const parsed = JSON.parse(prefill);\n const data = parsed?.data ?? parsed;\n if (data && typeof data === 'object') setFormFields(dataToFields(data));\n } catch { /* use as-is */ }\n setIsJsonMode(true);\n setOverrideBot('');\n return;\n }\n\n const json = selected.envelope_schema\n ? JSON.stringify(selected.envelope_schema, null, 2)\n : DEFAULT_ENVELOPE;\n setJsonInput(json);\n if (selected.envelope_schema?.data && typeof selected.envelope_schema.data === 'object') {\n setFormFields(dataToFields(selected.envelope_schema.data as Record<string, unknown>));\n } else {\n setFormFields({});\n }\n setIsJsonMode(!extractDataFields(selected.envelope_schema ?? null).length);\n setOverrideBot('');\n setCertified(isCertifiable);\n }, [selected.workflow_type]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleToggleMode = () => {\n if (isJsonMode) {\n try {\n const parsed = JSON.parse(jsonInput);\n if (parsed.data && typeof parsed.data === 'object') setFormFields(dataToFields(parsed.data));\n } catch { /* keep existing */ }\n } else {\n setJsonInput(fieldsToJson(formFields, schemaMetadata));\n }\n setIsJsonMode(!isJsonMode);\n };\n\n const updateFormField = (key: string, value: unknown, type: string) => {\n let parsed = value;\n if (type === 'number') parsed = value === '' ? 0 : Number(value);\n else if (type === 'boolean') parsed = value === 'true' || value === true;\n const updated = { ...formFields, [key]: parsed };\n setFormFields(updated);\n setJsonInput(fieldsToJson(updated, schemaMetadata));\n };\n\n const handleInvoke = async () => {\n setParseError('');\n let envelope: Record<string, unknown>;\n try {\n envelope = JSON.parse(jsonInput);\n } catch {\n setParseError('Invalid JSON');\n return;\n }\n const { data, metadata } = envelope;\n if (!data || typeof data !== 'object') {\n setParseError('Envelope must include a \"data\" object');\n return;\n }\n try {\n const resolvedMetadata = { ...((metadata as Record<string, unknown>) ?? {}) };\n if (certified) resolvedMetadata.certified = true;\n await invokeMutation.mutateAsync({\n workflowType: selected.workflow_type,\n data: data as Record<string, unknown>,\n metadata: resolvedMetadata,\n ...(overrideBot ? { execute_as: overrideBot } : {}),\n });\n navigate(executionsPath);\n } catch { /* error via mutation */ }\n };\n\n return (\n <div className=\"space-y-6\">\n <div>\n <h2 className=\"text-lg font-mono font-medium text-text-primary\">{selected.workflow_type}</h2>\n {selected.description && (\n <p className=\"text-xs text-text-quaternary mt-1 leading-relaxed\">\n {selected.description}\n </p>\n )}\n </div>\n\n <IdentitySummary\n config={selected}\n overrideBot={overrideBot}\n onOverrideChange={setOverrideBot}\n showOverride={isAdmin}\n />\n\n {isCertifiable && (\n <label className=\"flex items-center gap-2 cursor-pointer\">\n <input\n type=\"checkbox\"\n checked={certified}\n onChange={(e) => setCertified(e.target.checked)}\n className=\"rounded border-surface-border text-accent focus:ring-accent/30\"\n />\n <ShieldCheck className=\"w-3.5 h-3.5 text-text-tertiary\" />\n <span className=\"text-xs text-text-secondary\">Enable task tracking and escalation routing</span>\n </label>\n )}\n\n <EnvelopeEditor\n selectedConfig={selected}\n isJsonMode={isJsonMode}\n hasFormView={hasFormView}\n jsonInput={jsonInput}\n formFields={formFields}\n dataFields={dataFields}\n onJsonChange={(v) => { setJsonInput(v); setParseError(''); }}\n onToggleMode={handleToggleMode}\n onUpdateFormField={updateFormField}\n onSetFormFields={setFormFields}\n />\n\n {parseError && <p className=\"text-xs text-status-error\">{parseError}</p>}\n {invokeMutation.error && <p className=\"text-xs text-status-error\">{invokeMutation.error.message}</p>}\n {invokeMutation.isSuccess && <p className=\"text-xs text-status-success\">Workflow started</p>}\n\n <button onClick={handleInvoke} disabled={invokeMutation.isPending} className=\"btn-primary\">\n {invokeMutation.isPending ? 'Starting...' : 'Start Workflow'}\n </button>\n </div>\n );\n}\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { Play } from 'lucide-react';\nimport { useWorkflowConfigs, useDiscoveredWorkflows, useCronStatus } from '../../../api/workflows';\nimport { PageHeader } from '../../../components/common/layout/PageHeader';\nimport type { LTWorkflowConfig, WorkflowTier } from '../../../api/types';\nimport { WorkflowSelector } from './WorkflowSelector';\nimport { StartNowPanel } from './StartNowPanel';\n\nexport function StartWorkflowPage() {\n const [searchParams, setSearchParams] = useSearchParams();\n const { data: configsData, isLoading } = useWorkflowConfigs();\n const { data: discoveredData, isLoading: discoveredLoading } = useDiscoveredWorkflows();\n const { data: cronEntries } = useCronStatus();\n\n const selectedType = searchParams.get('type') ?? '';\n\n const configs: LTWorkflowConfig[] = configsData ?? [];\n\n const tierMap = useMemo(() => {\n const map = new Map<string, WorkflowTier>();\n for (const dw of discoveredData ?? []) {\n map.set(dw.workflow_type, dw.tier ?? 'durable');\n }\n return map;\n }, [discoveredData]);\n\n const invocableConfigs = useMemo(() => {\n const invocable = configs.filter((c) => c.invocable);\n const registeredTypes = new Set(configs.map((c) => c.workflow_type));\n const discovered = discoveredData ?? [];\n const durable = discovered\n .filter((dw) => dw.active && !registeredTypes.has(dw.workflow_type))\n .map((dw) => ({\n workflow_type: dw.workflow_type,\n task_queue: dw.task_queue ?? '',\n invocable: true,\n certified: false,\n description: null,\n default_role: 'reviewer',\n roles: [],\n invocation_roles: [],\n consumes: [],\n envelope_schema: null,\n resolver_schema: null,\n cron_schedule: null,\n execute_as: null,\n } satisfies LTWorkflowConfig));\n return [...invocable, ...durable];\n }, [configs, discoveredData]);\n\n const selectedConfig = invocableConfigs.find((c) => c.workflow_type === selectedType);\n\n const activeTypes = new Set(\n (cronEntries ?? []).filter((e) => e.active).map((e) => e.workflow_type),\n );\n\n const executionsPath = '/workflows/executions';\n\n // Fade transition when selection changes\n const panelRef = useRef<HTMLDivElement>(null);\n const [panelVisible, setPanelVisible] = useState(true);\n const prevKeyRef = useRef(selectedType);\n useEffect(() => {\n if (prevKeyRef.current !== selectedType) {\n setPanelVisible(false);\n const timer = setTimeout(() => {\n prevKeyRef.current = selectedType;\n setPanelVisible(true);\n }, 120);\n return () => clearTimeout(timer);\n }\n }, [selectedType]);\n\n useEffect(() => {\n if (invocableConfigs.length === 1 && !searchParams.get('type')) {\n setSearchParams({ type: invocableConfigs[0].workflow_type }, { replace: true });\n }\n }, [invocableConfigs.length]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleSelect = (config: LTWorkflowConfig) => {\n setSearchParams({ type: config.workflow_type }, { replace: true });\n };\n\n if (isLoading || discoveredLoading) {\n return (\n <div className=\"animate-pulse space-y-4\">\n <div className=\"h-8 bg-surface-sunken rounded w-48\" />\n <div className=\"h-40 bg-surface-sunken rounded\" />\n </div>\n );\n }\n\n return (\n <div>\n <PageHeader title=\"Invoke\" docsHash=\"#docs:dashboard.md:invoke-workflow\" />\n\n {invocableConfigs.length === 0 ? (\n <div className=\"py-16 text-center\">\n <p className=\"text-sm text-text-primary mb-1\">No invocable workflows</p>\n <p className=\"text-xs text-text-tertiary\">Mark workflows as invocable in the registry, or start the server with examples enabled.</p>\n </div>\n ) : (\n <div className=\"grid grid-cols-3 gap-8 items-start\">\n\n {/* ── Left: workflow list (2 cols) ── */}\n <div className=\"col-span-2\">\n <WorkflowSelector\n configs={invocableConfigs}\n selectedType={selectedType}\n onSelect={handleSelect}\n tierMap={tierMap}\n activeTypes={activeTypes}\n />\n </div>\n\n {/* ── Right: invoke form (1 col, sticky) ── */}\n <div\n ref={panelRef}\n className={`sticky top-4 transition-all duration-200 ease-out ${\n panelVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-1'\n }`}\n >\n {selectedType && selectedConfig ? (\n <StartNowPanel selected={selectedConfig} executionsPath={executionsPath} />\n ) : (\n <div className=\"flex flex-col items-center justify-center py-24 text-center\">\n <div className=\"w-12 h-12 rounded-full bg-accent/[0.06] flex items-center justify-center mb-4\">\n <Play className=\"w-5 h-5 text-accent/50\" />\n </div>\n <p className=\"text-sm text-text-secondary mb-1\">Select a workflow</p>\n <p className=\"text-xs text-text-quaternary\">Choose one from the list to configure and invoke it.</p>\n </div>\n )}\n </div>\n\n </div>\n )}\n </div>\n );\n}\n","import { StartWorkflowPage } from './StartWorkflowPage';\n\nexport function DurableInvokePage() {\n return <StartWorkflowPage />;\n}\n"],"names":["WorkflowSelector","configs","selectedType","onSelect","tierMap","activeTypes","search","setSearch","useState","filtered","useMemo","q","c","_a","jsxs","jsx","Search","e","config","isSelected","tier","variant","WorkflowPill","Bot","Clock","NamespacePill","DEFAULT_ENVELOPE","inferTypeFromValue","value","extractDataFields","schema","data","key","dataToFields","fieldsToJson","fields","metadata","IdentitySummary","overrideBot","onOverrideChange","showOverride","user","useAuth","effectiveBot","Fragment","UserCircle","BotPicker","EnvelopeEditor","selectedConfig","isJsonMode","hasFormView","jsonInput","formFields","dataFields","onJsonChange","onToggleMode","onUpdateFormField","onSetFormFields","Link","type","jsonValue","textareaRows","_b","StartNowPanel","selected","executionsPath","navigate","useNavigate","isSuperAdmin","hasRoleType","isAdmin","invokeMutation","useInvokeWorkflow","setJsonInput","parseError","setParseError","setFormFields","setIsJsonMode","setOverrideBot","isCertifiable","certified","setCertified","schemaMetadata","md","useEffect","prefill","parsed","json","handleToggleMode","updateFormField","updated","handleInvoke","envelope","resolvedMetadata","ShieldCheck","v","StartWorkflowPage","searchParams","setSearchParams","useSearchParams","configsData","isLoading","useWorkflowConfigs","discoveredData","discoveredLoading","useDiscoveredWorkflows","cronEntries","useCronStatus","map","dw","invocableConfigs","invocable","registeredTypes","durable","panelRef","useRef","panelVisible","setPanelVisible","prevKeyRef","timer","handleSelect","PageHeader","Play","DurableInvokePage"],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
var Ue=e=>{throw TypeError(e)};var de=(e,t,s)=>t.has(e)||Ue("Cannot "+s);var i=(e,t,s)=>(de(e,t,"read from private field"),s?s.call(e):t.get(e)),f=(e,t,s)=>t.has(e)?Ue("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),c=(e,t,s,r)=>(de(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s),b=(e,t,s)=>(de(e,t,"access private method"),s);var ue=(e,t,s,r)=>({set _(a){c(e,t,a,s)},get _(){return i(e,t,r)}});function Os(e,t){for(var s=0;s<t.length;s++){const r=t[s];if(typeof r!="string"&&!Array.isArray(r)){for(const a in r)if(a!=="default"&&!(a in e)){const o=Object.getOwnPropertyDescriptor(r,a);o&&Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>r[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Ps(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var pe={exports:{}},Xt={};/**
|
|
2
|
-
* @license React
|
|
3
|
-
* react-jsx-runtime.production.js
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
-
*
|
|
7
|
-
* This source code is licensed under the MIT license found in the
|
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var qe;function _s(){if(qe)return Xt;qe=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function s(r,a,o){var l=null;if(o!==void 0&&(l=""+o),a.key!==void 0&&(l=""+a.key),"key"in a){o={};for(var h in a)h!=="key"&&(o[h]=a[h])}else o=a;return a=o.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:o}}return Xt.Fragment=t,Xt.jsx=s,Xt.jsxs=s,Xt}var ke;function Ts(){return ke||(ke=1,pe.exports=_s()),pe.exports}var Ms=Ts(),ye={exports:{}},v={};/**
|
|
10
|
-
* @license React
|
|
11
|
-
* react.production.js
|
|
12
|
-
*
|
|
13
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var He;function As(){if(He)return v;He=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),l=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),C=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),S=Symbol.iterator;function p(n){return n===null||typeof n!="object"?null:(n=S&&n[S]||n["@@iterator"],typeof n=="function"?n:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,O={};function T(n,u,g){this.props=n,this.context=u,this.refs=O,this.updater=g||j}T.prototype.isReactComponent={},T.prototype.setState=function(n,u){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,u,"setState")},T.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function q(){}q.prototype=T.prototype;function F(n,u,g){this.props=n,this.context=u,this.refs=O,this.updater=g||j}var d=F.prototype=new q;d.constructor=F,w(d,T.prototype),d.isPureReactComponent=!0;var k=Array.isArray;function N(){}var _={H:null,A:null,T:null,S:null},x=Object.prototype.hasOwnProperty;function D(n,u,g){var m=g.ref;return{$$typeof:e,type:n,key:u,ref:m!==void 0?m:null,props:g}}function $(n,u){return D(n.type,u,n.props)}function Z(n){return typeof n=="object"&&n!==null&&n.$$typeof===e}function Dt(n){var u={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(g){return u[g]})}var Vt=/\/+/g;function ft(n,u){return typeof n=="object"&&n!==null&&n.key!=null?Dt(""+n.key):u.toString(36)}function Ut(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(N,N):(n.status="pending",n.then(function(u){n.status==="pending"&&(n.status="fulfilled",n.value=u)},function(u){n.status==="pending"&&(n.status="rejected",n.reason=u)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function qt(n,u,g,m,M){var I=typeof n;(I==="undefined"||I==="boolean")&&(n=null);var Q=!1;if(n===null)Q=!0;else switch(I){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(n.$$typeof){case e:case t:Q=!0;break;case R:return Q=n._init,qt(Q(n._payload),u,g,m,M)}}if(Q)return M=M(n),Q=m===""?"."+ft(n,0):m,k(M)?(g="",Q!=null&&(g=Q.replace(Vt,"$&/")+"/"),qt(M,u,g,"",function(ws){return ws})):M!=null&&(Z(M)&&(M=$(M,g+(M.key==null||n&&n.key===M.key?"":(""+M.key).replace(Vt,"$&/")+"/")+Q)),u.push(M)),1;Q=0;var st=m===""?".":m+":";if(k(n))for(var z=0;z<n.length;z++)m=n[z],I=st+ft(m,z),Q+=qt(m,u,g,I,M);else if(z=p(n),typeof z=="function")for(n=z.call(n),z=0;!(m=n.next()).done;)m=m.value,I=st+ft(m,z++),Q+=qt(m,u,g,I,M);else if(I==="object"){if(typeof n.then=="function")return qt(Ut(n),u,g,m,M);throw u=String(n),Error("Objects are not valid as a React child (found: "+(u==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":u)+"). If you meant to render a collection of children, use an array instead.")}return Q}function oe(n,u,g){if(n==null)return n;var m=[],M=0;return qt(n,m,"","",function(I){return u.call(g,I,M++)}),m}function Cs(n){if(n._status===-1){var u=n._result;u=u(),u.then(function(g){(n._status===0||n._status===-1)&&(n._status=1,n._result=g)},function(g){(n._status===0||n._status===-1)&&(n._status=2,n._result=g)}),n._status===-1&&(n._status=0,n._result=u)}if(n._status===1)return n._result.default;throw n._result}var De=typeof reportError=="function"?reportError:function(n){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var u=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof n=="object"&&n!==null&&typeof n.message=="string"?String(n.message):String(n),error:n});if(!window.dispatchEvent(u))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",n);return}console.error(n)},Ss={map:oe,forEach:function(n,u,g){oe(n,function(){u.apply(this,arguments)},g)},count:function(n){var u=0;return oe(n,function(){u++}),u},toArray:function(n){return oe(n,function(u){return u})||[]},only:function(n){if(!Z(n))throw Error("React.Children.only expected to receive a single React element child.");return n}};return v.Activity=y,v.Children=Ss,v.Component=T,v.Fragment=s,v.Profiler=a,v.PureComponent=F,v.StrictMode=r,v.Suspense=E,v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=_,v.__COMPILER_RUNTIME={__proto__:null,c:function(n){return _.H.useMemoCache(n)}},v.cache=function(n){return function(){return n.apply(null,arguments)}},v.cacheSignal=function(){return null},v.cloneElement=function(n,u,g){if(n==null)throw Error("The argument must be a React element, but you passed "+n+".");var m=w({},n.props),M=n.key;if(u!=null)for(I in u.key!==void 0&&(M=""+u.key),u)!x.call(u,I)||I==="key"||I==="__self"||I==="__source"||I==="ref"&&u.ref===void 0||(m[I]=u[I]);var I=arguments.length-2;if(I===1)m.children=g;else if(1<I){for(var Q=Array(I),st=0;st<I;st++)Q[st]=arguments[st+2];m.children=Q}return D(n.type,M,m)},v.createContext=function(n){return n={$$typeof:l,_currentValue:n,_currentValue2:n,_threadCount:0,Provider:null,Consumer:null},n.Provider=n,n.Consumer={$$typeof:o,_context:n},n},v.createElement=function(n,u,g){var m,M={},I=null;if(u!=null)for(m in u.key!==void 0&&(I=""+u.key),u)x.call(u,m)&&m!=="key"&&m!=="__self"&&m!=="__source"&&(M[m]=u[m]);var Q=arguments.length-2;if(Q===1)M.children=g;else if(1<Q){for(var st=Array(Q),z=0;z<Q;z++)st[z]=arguments[z+2];M.children=st}if(n&&n.defaultProps)for(m in Q=n.defaultProps,Q)M[m]===void 0&&(M[m]=Q[m]);return D(n,I,M)},v.createRef=function(){return{current:null}},v.forwardRef=function(n){return{$$typeof:h,render:n}},v.isValidElement=Z,v.lazy=function(n){return{$$typeof:R,_payload:{_status:-1,_result:n},_init:Cs}},v.memo=function(n,u){return{$$typeof:C,type:n,compare:u===void 0?null:u}},v.startTransition=function(n){var u=_.T,g={};_.T=g;try{var m=n(),M=_.S;M!==null&&M(g,m),typeof m=="object"&&m!==null&&typeof m.then=="function"&&m.then(N,De)}catch(I){De(I)}finally{u!==null&&g.types!==null&&(u.types=g.types),_.T=u}},v.unstable_useCacheRefresh=function(){return _.H.useCacheRefresh()},v.use=function(n){return _.H.use(n)},v.useActionState=function(n,u,g){return _.H.useActionState(n,u,g)},v.useCallback=function(n,u){return _.H.useCallback(n,u)},v.useContext=function(n){return _.H.useContext(n)},v.useDebugValue=function(){},v.useDeferredValue=function(n,u){return _.H.useDeferredValue(n,u)},v.useEffect=function(n,u){return _.H.useEffect(n,u)},v.useEffectEvent=function(n){return _.H.useEffectEvent(n)},v.useId=function(){return _.H.useId()},v.useImperativeHandle=function(n,u,g){return _.H.useImperativeHandle(n,u,g)},v.useInsertionEffect=function(n,u){return _.H.useInsertionEffect(n,u)},v.useLayoutEffect=function(n,u){return _.H.useLayoutEffect(n,u)},v.useMemo=function(n,u){return _.H.useMemo(n,u)},v.useOptimistic=function(n,u){return _.H.useOptimistic(n,u)},v.useReducer=function(n,u,g){return _.H.useReducer(n,u,g)},v.useRef=function(n){return _.H.useRef(n)},v.useState=function(n){return _.H.useState(n)},v.useSyncExternalStore=function(n,u,g){return _.H.useSyncExternalStore(n,u,g)},v.useTransition=function(){return _.H.useTransition()},v.version="19.2.4",v}var Le;function Fs(){return Le||(Le=1,ye.exports=As()),ye.exports}var L=Fs();const xs=Ps(L),pr=Os({__proto__:null,default:xs},[L]);var Zt=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Is={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},pt,Ae,Xe,js=(Xe=class{constructor(){f(this,pt,Is);f(this,Ae,!1)}setTimeoutProvider(e){c(this,pt,e)}setTimeout(e,t){return i(this,pt).setTimeout(e,t)}clearTimeout(e){i(this,pt).clearTimeout(e)}setInterval(e,t){return i(this,pt).setInterval(e,t)}clearInterval(e){i(this,pt).clearInterval(e)}},pt=new WeakMap,Ae=new WeakMap,Xe),wt=new js;function Qs(e){setTimeout(e,0)}var jt=typeof window>"u"||"Deno"in globalThis;function B(){}function Ds(e,t){return typeof e=="function"?e(t):e}function ve(e){return typeof e=="number"&&e>=0&&e!==1/0}function hs(e,t){return Math.max(e+(t||0)-Date.now(),0)}function St(e,t){return typeof e=="function"?e(t):e}function X(e,t){return typeof e=="function"?e(t):e}function Ne(e,t){const{type:s="all",exact:r,fetchStatus:a,predicate:o,queryKey:l,stale:h}=e;if(l){if(r){if(t.queryHash!==Fe(l,t.options))return!1}else if(!ee(t.queryKey,l))return!1}if(s!=="all"){const E=t.isActive();if(s==="active"&&!E||s==="inactive"&&E)return!1}return!(typeof h=="boolean"&&t.isStale()!==h||a&&a!==t.state.fetchStatus||o&&!o(t))}function Ke(e,t){const{exact:s,status:r,predicate:a,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(s){if(Qt(t.options.mutationKey)!==Qt(o))return!1}else if(!ee(t.options.mutationKey,o))return!1}return!(r&&t.state.status!==r||a&&!a(t))}function Fe(e,t){return((t==null?void 0:t.queryKeyHashFn)||Qt)(e)}function Qt(e){return JSON.stringify(e,(t,s)=>me(s)?Object.keys(s).sort().reduce((r,a)=>(r[a]=s[a],r),{}):s)}function ee(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(s=>ee(e[s],t[s])):!1}var Us=Object.prototype.hasOwnProperty;function ls(e,t,s=0){if(e===t)return e;if(s>500)return t;const r=$e(e)&&$e(t);if(!r&&!(me(e)&&me(t)))return t;const o=(r?e:Object.keys(e)).length,l=r?t:Object.keys(t),h=l.length,E=r?new Array(h):{};let C=0;for(let R=0;R<h;R++){const y=r?R:l[R],S=e[y],p=t[y];if(S===p){E[y]=S,(r?R<o:Us.call(e,y))&&C++;continue}if(S===null||p===null||typeof S!="object"||typeof p!="object"){E[y]=p;continue}const j=ls(S,p,s+1);E[y]=j,j===S&&C++}return o===h&&C===o?e:E}function le(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(e[s]!==t[s])return!1;return!0}function $e(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function me(e){if(!Ge(e))return!1;const t=e.constructor;if(t===void 0)return!0;const s=t.prototype;return!(!Ge(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Ge(e){return Object.prototype.toString.call(e)==="[object Object]"}function qs(e){return new Promise(t=>{wt.setTimeout(t,e)})}function ge(e,t,s){return typeof s.structuralSharing=="function"?s.structuralSharing(e,t):s.structuralSharing!==!1?ls(e,t):t}function ks(e,t,s=0){const r=[...e,t];return s&&r.length>s?r.slice(1):r}function Hs(e,t,s=0){const r=[t,...e];return s&&r.length>s?r.slice(0,-1):r}var xe=Symbol();function fs(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===xe?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Ie(e,t){return typeof e=="function"?e(...t):!!e}function Ls(e,t,s){let r=!1,a;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(a??(a=t()),r||(r=!0,a.aborted?s():a.addEventListener("abort",s,{once:!0})),a)}),e}var Ot,yt,kt,ts,Ns=(ts=class extends Zt{constructor(){super();f(this,Ot);f(this,yt);f(this,kt);c(this,kt,t=>{if(!jt&&window.addEventListener){const s=()=>t();return window.addEventListener("visibilitychange",s,!1),()=>{window.removeEventListener("visibilitychange",s)}}})}onSubscribe(){i(this,yt)||this.setEventListener(i(this,kt))}onUnsubscribe(){var t;this.hasListeners()||((t=i(this,yt))==null||t.call(this),c(this,yt,void 0))}setEventListener(t){var s;c(this,kt,t),(s=i(this,yt))==null||s.call(this),c(this,yt,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){i(this,Ot)!==t&&(c(this,Ot,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(s=>{s(t)})}isFocused(){var t;return typeof i(this,Ot)=="boolean"?i(this,Ot):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Ot=new WeakMap,yt=new WeakMap,kt=new WeakMap,ts),je=new Ns;function be(){let e,t;const s=new Promise((a,o)=>{e=a,t=o});s.status="pending",s.catch(()=>{});function r(a){Object.assign(s,a),delete s.resolve,delete s.reject}return s.resolve=a=>{r({status:"fulfilled",value:a}),e(a)},s.reject=a=>{r({status:"rejected",reason:a}),t(a)},s}var Ks=Qs;function $s(){let e=[],t=0,s=h=>{h()},r=h=>{h()},a=Ks;const o=h=>{t?e.push(h):a(()=>{s(h)})},l=()=>{const h=e;e=[],h.length&&a(()=>{r(()=>{h.forEach(E=>{s(E)})})})};return{batch:h=>{let E;t++;try{E=h()}finally{t--,t||l()}return E},batchCalls:h=>(...E)=>{o(()=>{h(...E)})},schedule:o,setNotifyFunction:h=>{s=h},setBatchNotifyFunction:h=>{r=h},setScheduler:h=>{a=h}}}var H=$s(),Ht,vt,Lt,es,Gs=(es=class extends Zt{constructor(){super();f(this,Ht,!0);f(this,vt);f(this,Lt);c(this,Lt,t=>{if(!jt&&window.addEventListener){const s=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",s,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",r)}}})}onSubscribe(){i(this,vt)||this.setEventListener(i(this,Lt))}onUnsubscribe(){var t;this.hasListeners()||((t=i(this,vt))==null||t.call(this),c(this,vt,void 0))}setEventListener(t){var s;c(this,Lt,t),(s=i(this,vt))==null||s.call(this),c(this,vt,t(this.setOnline.bind(this)))}setOnline(t){i(this,Ht)!==t&&(c(this,Ht,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return i(this,Ht)}},Ht=new WeakMap,vt=new WeakMap,Lt=new WeakMap,es),fe=new Gs;function Ys(e){return Math.min(1e3*2**e,3e4)}function ds(e){return(e??"online")==="online"?fe.isOnline():!0}var Ee=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function ps(e){let t=!1,s=0,r;const a=be(),o=()=>a.status!=="pending",l=w=>{var O;if(!o()){const T=new Ee(w);S(T),(O=e.onCancel)==null||O.call(e,T)}},h=()=>{t=!0},E=()=>{t=!1},C=()=>je.isFocused()&&(e.networkMode==="always"||fe.isOnline())&&e.canRun(),R=()=>ds(e.networkMode)&&e.canRun(),y=w=>{o()||(r==null||r(),a.resolve(w))},S=w=>{o()||(r==null||r(),a.reject(w))},p=()=>new Promise(w=>{var O;r=T=>{(o()||C())&&w(T)},(O=e.onPause)==null||O.call(e)}).then(()=>{var w;r=void 0,o()||(w=e.onContinue)==null||w.call(e)}),j=()=>{if(o())return;let w;const O=s===0?e.initialPromise:void 0;try{w=O??e.fn()}catch(T){w=Promise.reject(T)}Promise.resolve(w).then(y).catch(T=>{var N;if(o())return;const q=e.retry??(jt?0:3),F=e.retryDelay??Ys,d=typeof F=="function"?F(s,T):F,k=q===!0||typeof q=="number"&&s<q||typeof q=="function"&&q(s,T);if(t||!k){S(T);return}s++,(N=e.onFail)==null||N.call(e,s,T),qs(d).then(()=>C()?void 0:p()).then(()=>{t?S(T):j()})})};return{promise:a,status:()=>a.status,cancel:l,continue:()=>(r==null||r(),a),cancelRetry:h,continueRetry:E,canStart:R,start:()=>(R()?j():p().then(j),a)}}var Pt,ss,ys=(ss=class{constructor(){f(this,Pt)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ve(this.gcTime)&&c(this,Pt,wt.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(jt?1/0:300*1e3))}clearGcTimeout(){i(this,Pt)&&(wt.clearTimeout(i(this,Pt)),c(this,Pt,void 0))}},Pt=new WeakMap,ss),_t,Nt,V,Tt,K,se,Mt,tt,at,rs,Bs=(rs=class extends ys{constructor(t){super();f(this,tt);f(this,_t);f(this,Nt);f(this,V);f(this,Tt);f(this,K);f(this,se);f(this,Mt);c(this,Mt,!1),c(this,se,t.defaultOptions),this.setOptions(t.options),this.observers=[],c(this,Tt,t.client),c(this,V,i(this,Tt).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,c(this,_t,Be(this.options)),this.state=t.state??i(this,_t),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=i(this,K))==null?void 0:t.promise}setOptions(t){if(this.options={...i(this,se),...t},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const s=Be(this.options);s.data!==void 0&&(this.setState(Ye(s.data,s.dataUpdatedAt)),c(this,_t,s))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&i(this,V).remove(this)}setData(t,s){const r=ge(this.state.data,t,this.options);return b(this,tt,at).call(this,{data:r,type:"success",dataUpdatedAt:s==null?void 0:s.updatedAt,manual:s==null?void 0:s.manual}),r}setState(t,s){b(this,tt,at).call(this,{type:"setState",state:t,setStateOptions:s})}cancel(t){var r,a;const s=(r=i(this,K))==null?void 0:r.promise;return(a=i(this,K))==null||a.cancel(t),s?s.then(B).catch(B):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(i(this,_t))}isActive(){return this.observers.some(t=>X(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===xe||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>St(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!hs(this.state.dataUpdatedAt,t)}onFocus(){var s;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(s=i(this,K))==null||s.continue()}onOnline(){var s;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(s=i(this,K))==null||s.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),i(this,V).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(s=>s!==t),this.observers.length||(i(this,K)&&(i(this,Mt)?i(this,K).cancel({revert:!0}):i(this,K).cancelRetry()),this.scheduleGc()),i(this,V).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||b(this,tt,at).call(this,{type:"invalidate"})}async fetch(t,s){var E,C,R,y,S,p,j,w,O,T,q,F;if(this.state.fetchStatus!=="idle"&&((E=i(this,K))==null?void 0:E.status())!=="rejected"){if(this.state.data!==void 0&&(s!=null&&s.cancelRefetch))this.cancel({silent:!0});else if(i(this,K))return i(this,K).continueRetry(),i(this,K).promise}if(t&&this.setOptions(t),!this.options.queryFn){const d=this.observers.find(k=>k.options.queryFn);d&&this.setOptions(d.options)}const r=new AbortController,a=d=>{Object.defineProperty(d,"signal",{enumerable:!0,get:()=>(c(this,Mt,!0),r.signal)})},o=()=>{const d=fs(this.options,s),N=(()=>{const _={client:i(this,Tt),queryKey:this.queryKey,meta:this.meta};return a(_),_})();return c(this,Mt,!1),this.options.persister?this.options.persister(d,N,this):d(N)},h=(()=>{const d={fetchOptions:s,options:this.options,queryKey:this.queryKey,client:i(this,Tt),state:this.state,fetchFn:o};return a(d),d})();(C=this.options.behavior)==null||C.onFetch(h,this),c(this,Nt,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((R=h.fetchOptions)==null?void 0:R.meta))&&b(this,tt,at).call(this,{type:"fetch",meta:(y=h.fetchOptions)==null?void 0:y.meta}),c(this,K,ps({initialPromise:s==null?void 0:s.initialPromise,fn:h.fetchFn,onCancel:d=>{d instanceof Ee&&d.revert&&this.setState({...i(this,Nt),fetchStatus:"idle"}),r.abort()},onFail:(d,k)=>{b(this,tt,at).call(this,{type:"failed",failureCount:d,error:k})},onPause:()=>{b(this,tt,at).call(this,{type:"pause"})},onContinue:()=>{b(this,tt,at).call(this,{type:"continue"})},retry:h.options.retry,retryDelay:h.options.retryDelay,networkMode:h.options.networkMode,canRun:()=>!0}));try{const d=await i(this,K).start();if(d===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(d),(p=(S=i(this,V).config).onSuccess)==null||p.call(S,d,this),(w=(j=i(this,V).config).onSettled)==null||w.call(j,d,this.state.error,this),d}catch(d){if(d instanceof Ee){if(d.silent)return i(this,K).promise;if(d.revert){if(this.state.data===void 0)throw d;return this.state.data}}throw b(this,tt,at).call(this,{type:"error",error:d}),(T=(O=i(this,V).config).onError)==null||T.call(O,d,this),(F=(q=i(this,V).config).onSettled)==null||F.call(q,this.state.data,d,this),d}finally{this.scheduleGc()}}},_t=new WeakMap,Nt=new WeakMap,V=new WeakMap,Tt=new WeakMap,K=new WeakMap,se=new WeakMap,Mt=new WeakMap,tt=new WeakSet,at=function(t){const s=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...vs(r.data,this.options),fetchMeta:t.meta??null};case"success":const a={...r,...Ye(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return c(this,Nt,t.manual?a:void 0),a;case"error":const o=t.error;return{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=s(this.state),H.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),i(this,V).notify({query:this,type:"updated",action:t})})},rs);function vs(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:ds(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Ye(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Be(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,s=t!==void 0,r=s?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:s?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var J,P,re,Y,At,Kt,ot,mt,ie,$t,Gt,Ft,xt,gt,Yt,A,te,Re,Ce,Se,we,Oe,Pe,_e,ms,is,zs=(is=class extends Zt{constructor(t,s){super();f(this,A);f(this,J);f(this,P);f(this,re);f(this,Y);f(this,At);f(this,Kt);f(this,ot);f(this,mt);f(this,ie);f(this,$t);f(this,Gt);f(this,Ft);f(this,xt);f(this,gt);f(this,Yt,new Set);this.options=s,c(this,J,t),c(this,mt,null),c(this,ot,be()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(i(this,P).addObserver(this),ze(i(this,P),this.options)?b(this,A,te).call(this):this.updateResult(),b(this,A,we).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Te(i(this,P),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Te(i(this,P),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,b(this,A,Oe).call(this),b(this,A,Pe).call(this),i(this,P).removeObserver(this)}setOptions(t){const s=this.options,r=i(this,P);if(this.options=i(this,J).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof X(this.options.enabled,i(this,P))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");b(this,A,_e).call(this),i(this,P).setOptions(this.options),s._defaulted&&!le(this.options,s)&&i(this,J).getQueryCache().notify({type:"observerOptionsUpdated",query:i(this,P),observer:this});const a=this.hasListeners();a&&Je(i(this,P),r,this.options,s)&&b(this,A,te).call(this),this.updateResult(),a&&(i(this,P)!==r||X(this.options.enabled,i(this,P))!==X(s.enabled,i(this,P))||St(this.options.staleTime,i(this,P))!==St(s.staleTime,i(this,P)))&&b(this,A,Re).call(this);const o=b(this,A,Ce).call(this);a&&(i(this,P)!==r||X(this.options.enabled,i(this,P))!==X(s.enabled,i(this,P))||o!==i(this,gt))&&b(this,A,Se).call(this,o)}getOptimisticResult(t){const s=i(this,J).getQueryCache().build(i(this,J),t),r=this.createResult(s,t);return Ws(this,r)&&(c(this,Y,r),c(this,Kt,this.options),c(this,At,i(this,P).state)),r}getCurrentResult(){return i(this,Y)}trackResult(t,s){return new Proxy(t,{get:(r,a)=>(this.trackProp(a),s==null||s(a),a==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&i(this,ot).status==="pending"&&i(this,ot).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,a))})}trackProp(t){i(this,Yt).add(t)}getCurrentQuery(){return i(this,P)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const s=i(this,J).defaultQueryOptions(t),r=i(this,J).getQueryCache().build(i(this,J),s);return r.fetch().then(()=>this.createResult(r,s))}fetch(t){return b(this,A,te).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),i(this,Y)))}createResult(t,s){var D;const r=i(this,P),a=this.options,o=i(this,Y),l=i(this,At),h=i(this,Kt),C=t!==r?t.state:i(this,re),{state:R}=t;let y={...R},S=!1,p;if(s._optimisticResults){const $=this.hasListeners(),Z=!$&&ze(t,s),Dt=$&&Je(t,r,s,a);(Z||Dt)&&(y={...y,...vs(R.data,t.options)}),s._optimisticResults==="isRestoring"&&(y.fetchStatus="idle")}let{error:j,errorUpdatedAt:w,status:O}=y;p=y.data;let T=!1;if(s.placeholderData!==void 0&&p===void 0&&O==="pending"){let $;o!=null&&o.isPlaceholderData&&s.placeholderData===(h==null?void 0:h.placeholderData)?($=o.data,T=!0):$=typeof s.placeholderData=="function"?s.placeholderData((D=i(this,Gt))==null?void 0:D.state.data,i(this,Gt)):s.placeholderData,$!==void 0&&(O="success",p=ge(o==null?void 0:o.data,$,s),S=!0)}if(s.select&&p!==void 0&&!T)if(o&&p===(l==null?void 0:l.data)&&s.select===i(this,ie))p=i(this,$t);else try{c(this,ie,s.select),p=s.select(p),p=ge(o==null?void 0:o.data,p,s),c(this,$t,p),c(this,mt,null)}catch($){c(this,mt,$)}i(this,mt)&&(j=i(this,mt),p=i(this,$t),w=Date.now(),O="error");const q=y.fetchStatus==="fetching",F=O==="pending",d=O==="error",k=F&&q,N=p!==void 0,x={status:O,fetchStatus:y.fetchStatus,isPending:F,isSuccess:O==="success",isError:d,isInitialLoading:k,isLoading:k,data:p,dataUpdatedAt:y.dataUpdatedAt,error:j,errorUpdatedAt:w,failureCount:y.fetchFailureCount,failureReason:y.fetchFailureReason,errorUpdateCount:y.errorUpdateCount,isFetched:y.dataUpdateCount>0||y.errorUpdateCount>0,isFetchedAfterMount:y.dataUpdateCount>C.dataUpdateCount||y.errorUpdateCount>C.errorUpdateCount,isFetching:q,isRefetching:q&&!F,isLoadingError:d&&!N,isPaused:y.fetchStatus==="paused",isPlaceholderData:S,isRefetchError:d&&N,isStale:Qe(t,s),refetch:this.refetch,promise:i(this,ot),isEnabled:X(s.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const $=x.data!==void 0,Z=x.status==="error"&&!$,Dt=Ut=>{Z?Ut.reject(x.error):$&&Ut.resolve(x.data)},Vt=()=>{const Ut=c(this,ot,x.promise=be());Dt(Ut)},ft=i(this,ot);switch(ft.status){case"pending":t.queryHash===r.queryHash&&Dt(ft);break;case"fulfilled":(Z||x.data!==ft.value)&&Vt();break;case"rejected":(!Z||x.error!==ft.reason)&&Vt();break}}return x}updateResult(){const t=i(this,Y),s=this.createResult(i(this,P),this.options);if(c(this,At,i(this,P).state),c(this,Kt,this.options),i(this,At).data!==void 0&&c(this,Gt,i(this,P)),le(s,t))return;c(this,Y,s);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:a}=this.options,o=typeof a=="function"?a():a;if(o==="all"||!o&&!i(this,Yt).size)return!0;const l=new Set(o??i(this,Yt));return this.options.throwOnError&&l.add("error"),Object.keys(i(this,Y)).some(h=>{const E=h;return i(this,Y)[E]!==t[E]&&l.has(E)})};b(this,A,ms).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&b(this,A,we).call(this)}},J=new WeakMap,P=new WeakMap,re=new WeakMap,Y=new WeakMap,At=new WeakMap,Kt=new WeakMap,ot=new WeakMap,mt=new WeakMap,ie=new WeakMap,$t=new WeakMap,Gt=new WeakMap,Ft=new WeakMap,xt=new WeakMap,gt=new WeakMap,Yt=new WeakMap,A=new WeakSet,te=function(t){b(this,A,_e).call(this);let s=i(this,P).fetch(this.options,t);return t!=null&&t.throwOnError||(s=s.catch(B)),s},Re=function(){b(this,A,Oe).call(this);const t=St(this.options.staleTime,i(this,P));if(jt||i(this,Y).isStale||!ve(t))return;const r=hs(i(this,Y).dataUpdatedAt,t)+1;c(this,Ft,wt.setTimeout(()=>{i(this,Y).isStale||this.updateResult()},r))},Ce=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(i(this,P)):this.options.refetchInterval)??!1},Se=function(t){b(this,A,Pe).call(this),c(this,gt,t),!(jt||X(this.options.enabled,i(this,P))===!1||!ve(i(this,gt))||i(this,gt)===0)&&c(this,xt,wt.setInterval(()=>{(this.options.refetchIntervalInBackground||je.isFocused())&&b(this,A,te).call(this)},i(this,gt)))},we=function(){b(this,A,Re).call(this),b(this,A,Se).call(this,b(this,A,Ce).call(this))},Oe=function(){i(this,Ft)&&(wt.clearTimeout(i(this,Ft)),c(this,Ft,void 0))},Pe=function(){i(this,xt)&&(wt.clearInterval(i(this,xt)),c(this,xt,void 0))},_e=function(){const t=i(this,J).getQueryCache().build(i(this,J),this.options);if(t===i(this,P))return;const s=i(this,P);c(this,P,t),c(this,re,t.state),this.hasListeners()&&(s==null||s.removeObserver(this),t.addObserver(this))},ms=function(t){H.batch(()=>{t.listeners&&this.listeners.forEach(s=>{s(i(this,Y))}),i(this,J).getQueryCache().notify({query:i(this,P),type:"observerResultsUpdated"})})},is);function Js(e,t){return X(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function ze(e,t){return Js(e,t)||e.state.data!==void 0&&Te(e,t,t.refetchOnMount)}function Te(e,t,s){if(X(t.enabled,e)!==!1&&St(t.staleTime,e)!=="static"){const r=typeof s=="function"?s(e):s;return r==="always"||r!==!1&&Qe(e,t)}return!1}function Je(e,t,s,r){return(e!==t||X(r.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&Qe(e,s)}function Qe(e,t){return X(t.enabled,e)!==!1&&e.isStaleByTime(St(t.staleTime,e))}function Ws(e,t){return!le(e.getCurrentResult(),t)}function We(e){return{onFetch:(t,s)=>{var R,y,S,p,j;const r=t.options,a=(S=(y=(R=t.fetchOptions)==null?void 0:R.meta)==null?void 0:y.fetchMore)==null?void 0:S.direction,o=((p=t.state.data)==null?void 0:p.pages)||[],l=((j=t.state.data)==null?void 0:j.pageParams)||[];let h={pages:[],pageParams:[]},E=0;const C=async()=>{let w=!1;const O=F=>{Ls(F,()=>t.signal,()=>w=!0)},T=fs(t.options,t.fetchOptions),q=async(F,d,k)=>{if(w)return Promise.reject();if(d==null&&F.pages.length)return Promise.resolve(F);const _=(()=>{const Z={client:t.client,queryKey:t.queryKey,pageParam:d,direction:k?"backward":"forward",meta:t.options.meta};return O(Z),Z})(),x=await T(_),{maxPages:D}=t.options,$=k?Hs:ks;return{pages:$(F.pages,x,D),pageParams:$(F.pageParams,d,D)}};if(a&&o.length){const F=a==="backward",d=F?Zs:Ze,k={pages:o,pageParams:l},N=d(r,k);h=await q(k,N,F)}else{const F=e??o.length;do{const d=E===0?l[0]??r.initialPageParam:Ze(r,h);if(E>0&&d==null)break;h=await q(h,d),E++}while(E<F)}return h};t.options.persister?t.fetchFn=()=>{var w,O;return(O=(w=t.options).persister)==null?void 0:O.call(w,C,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s)}:t.fetchFn=C}}}function Ze(e,{pages:t,pageParams:s}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,s[r],s):void 0}function Zs(e,{pages:t,pageParams:s}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,s[0],s):void 0}var ne,rt,G,It,it,dt,ns,Vs=(ns=class extends ys{constructor(t){super();f(this,it);f(this,ne);f(this,rt);f(this,G);f(this,It);c(this,ne,t.client),this.mutationId=t.mutationId,c(this,G,t.mutationCache),c(this,rt,[]),this.state=t.state||gs(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){i(this,rt).includes(t)||(i(this,rt).push(t),this.clearGcTimeout(),i(this,G).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){c(this,rt,i(this,rt).filter(s=>s!==t)),this.scheduleGc(),i(this,G).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){i(this,rt).length||(this.state.status==="pending"?this.scheduleGc():i(this,G).remove(this))}continue(){var t;return((t=i(this,It))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var l,h,E,C,R,y,S,p,j,w,O,T,q,F,d,k,N,_;const s=()=>{b(this,it,dt).call(this,{type:"continue"})},r={client:i(this,ne),meta:this.options.meta,mutationKey:this.options.mutationKey};c(this,It,ps({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),onFail:(x,D)=>{b(this,it,dt).call(this,{type:"failed",failureCount:x,error:D})},onPause:()=>{b(this,it,dt).call(this,{type:"pause"})},onContinue:s,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>i(this,G).canRun(this)}));const a=this.state.status==="pending",o=!i(this,It).canStart();try{if(a)s();else{b(this,it,dt).call(this,{type:"pending",variables:t,isPaused:o}),i(this,G).config.onMutate&&await i(this,G).config.onMutate(t,this,r);const D=await((h=(l=this.options).onMutate)==null?void 0:h.call(l,t,r));D!==this.state.context&&b(this,it,dt).call(this,{type:"pending",context:D,variables:t,isPaused:o})}const x=await i(this,It).start();return await((C=(E=i(this,G).config).onSuccess)==null?void 0:C.call(E,x,t,this.state.context,this,r)),await((y=(R=this.options).onSuccess)==null?void 0:y.call(R,x,t,this.state.context,r)),await((p=(S=i(this,G).config).onSettled)==null?void 0:p.call(S,x,null,this.state.variables,this.state.context,this,r)),await((w=(j=this.options).onSettled)==null?void 0:w.call(j,x,null,t,this.state.context,r)),b(this,it,dt).call(this,{type:"success",data:x}),x}catch(x){try{await((T=(O=i(this,G).config).onError)==null?void 0:T.call(O,x,t,this.state.context,this,r))}catch(D){Promise.reject(D)}try{await((F=(q=this.options).onError)==null?void 0:F.call(q,x,t,this.state.context,r))}catch(D){Promise.reject(D)}try{await((k=(d=i(this,G).config).onSettled)==null?void 0:k.call(d,void 0,x,this.state.variables,this.state.context,this,r))}catch(D){Promise.reject(D)}try{await((_=(N=this.options).onSettled)==null?void 0:_.call(N,void 0,x,t,this.state.context,r))}catch(D){Promise.reject(D)}throw b(this,it,dt).call(this,{type:"error",error:x}),x}finally{i(this,G).runNext(this)}}},ne=new WeakMap,rt=new WeakMap,G=new WeakMap,It=new WeakMap,it=new WeakSet,dt=function(t){const s=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=s(this.state),H.batch(()=>{i(this,rt).forEach(r=>{r.onMutationUpdate(t)}),i(this,G).notify({mutation:this,type:"updated",action:t})})},ns);function gs(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ut,et,ae,as,Xs=(as=class extends Zt{constructor(t={}){super();f(this,ut);f(this,et);f(this,ae);this.config=t,c(this,ut,new Set),c(this,et,new Map),c(this,ae,0)}build(t,s,r){const a=new Vs({client:t,mutationCache:this,mutationId:++ue(this,ae)._,options:t.defaultMutationOptions(s),state:r});return this.add(a),a}add(t){i(this,ut).add(t);const s=ce(t);if(typeof s=="string"){const r=i(this,et).get(s);r?r.push(t):i(this,et).set(s,[t])}this.notify({type:"added",mutation:t})}remove(t){if(i(this,ut).delete(t)){const s=ce(t);if(typeof s=="string"){const r=i(this,et).get(s);if(r)if(r.length>1){const a=r.indexOf(t);a!==-1&&r.splice(a,1)}else r[0]===t&&i(this,et).delete(s)}}this.notify({type:"removed",mutation:t})}canRun(t){const s=ce(t);if(typeof s=="string"){const r=i(this,et).get(s),a=r==null?void 0:r.find(o=>o.state.status==="pending");return!a||a===t}else return!0}runNext(t){var r;const s=ce(t);if(typeof s=="string"){const a=(r=i(this,et).get(s))==null?void 0:r.find(o=>o!==t&&o.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}else return Promise.resolve()}clear(){H.batch(()=>{i(this,ut).forEach(t=>{this.notify({type:"removed",mutation:t})}),i(this,ut).clear(),i(this,et).clear()})}getAll(){return Array.from(i(this,ut))}find(t){const s={exact:!0,...t};return this.getAll().find(r=>Ke(s,r))}findAll(t={}){return this.getAll().filter(s=>Ke(t,s))}notify(t){H.batch(()=>{this.listeners.forEach(s=>{s(t)})})}resumePausedMutations(){const t=this.getAll().filter(s=>s.state.isPaused);return H.batch(()=>Promise.all(t.map(s=>s.continue().catch(B))))}},ut=new WeakMap,et=new WeakMap,ae=new WeakMap,as);function ce(e){var t;return(t=e.options.scope)==null?void 0:t.id}var ct,bt,W,ht,lt,he,Me,os,tr=(os=class extends Zt{constructor(t,s){super();f(this,lt);f(this,ct);f(this,bt);f(this,W);f(this,ht);c(this,ct,t),this.setOptions(s),this.bindMethods(),b(this,lt,he).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var r;const s=this.options;this.options=i(this,ct).defaultMutationOptions(t),le(this.options,s)||i(this,ct).getMutationCache().notify({type:"observerOptionsUpdated",mutation:i(this,W),observer:this}),s!=null&&s.mutationKey&&this.options.mutationKey&&Qt(s.mutationKey)!==Qt(this.options.mutationKey)?this.reset():((r=i(this,W))==null?void 0:r.state.status)==="pending"&&i(this,W).setOptions(this.options)}onUnsubscribe(){var t;this.hasListeners()||(t=i(this,W))==null||t.removeObserver(this)}onMutationUpdate(t){b(this,lt,he).call(this),b(this,lt,Me).call(this,t)}getCurrentResult(){return i(this,bt)}reset(){var t;(t=i(this,W))==null||t.removeObserver(this),c(this,W,void 0),b(this,lt,he).call(this),b(this,lt,Me).call(this)}mutate(t,s){var r;return c(this,ht,s),(r=i(this,W))==null||r.removeObserver(this),c(this,W,i(this,ct).getMutationCache().build(i(this,ct),this.options)),i(this,W).addObserver(this),i(this,W).execute(t)}},ct=new WeakMap,bt=new WeakMap,W=new WeakMap,ht=new WeakMap,lt=new WeakSet,he=function(){var s;const t=((s=i(this,W))==null?void 0:s.state)??gs();c(this,bt,{...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset})},Me=function(t){H.batch(()=>{var s,r,a,o,l,h,E,C;if(i(this,ht)&&this.hasListeners()){const R=i(this,bt).variables,y=i(this,bt).context,S={client:i(this,ct),meta:this.options.meta,mutationKey:this.options.mutationKey};if((t==null?void 0:t.type)==="success"){try{(r=(s=i(this,ht)).onSuccess)==null||r.call(s,t.data,R,y,S)}catch(p){Promise.reject(p)}try{(o=(a=i(this,ht)).onSettled)==null||o.call(a,t.data,null,R,y,S)}catch(p){Promise.reject(p)}}else if((t==null?void 0:t.type)==="error"){try{(h=(l=i(this,ht)).onError)==null||h.call(l,t.error,R,y,S)}catch(p){Promise.reject(p)}try{(C=(E=i(this,ht)).onSettled)==null||C.call(E,void 0,t.error,R,y,S)}catch(p){Promise.reject(p)}}}this.listeners.forEach(R=>{R(i(this,bt))})})},os),nt,us,er=(us=class extends Zt{constructor(t={}){super();f(this,nt);this.config=t,c(this,nt,new Map)}build(t,s,r){const a=s.queryKey,o=s.queryHash??Fe(a,s);let l=this.get(o);return l||(l=new Bs({client:t,queryKey:a,queryHash:o,options:t.defaultQueryOptions(s),state:r,defaultOptions:t.getQueryDefaults(a)}),this.add(l)),l}add(t){i(this,nt).has(t.queryHash)||(i(this,nt).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const s=i(this,nt).get(t.queryHash);s&&(t.destroy(),s===t&&i(this,nt).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){H.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return i(this,nt).get(t)}getAll(){return[...i(this,nt).values()]}find(t){const s={exact:!0,...t};return this.getAll().find(r=>Ne(s,r))}findAll(t={}){const s=this.getAll();return Object.keys(t).length>0?s.filter(r=>Ne(t,r)):s}notify(t){H.batch(()=>{this.listeners.forEach(s=>{s(t)})})}onFocus(){H.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){H.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},nt=new WeakMap,us),U,Et,Rt,Bt,zt,Ct,Jt,Wt,cs,yr=(cs=class{constructor(e={}){f(this,U);f(this,Et);f(this,Rt);f(this,Bt);f(this,zt);f(this,Ct);f(this,Jt);f(this,Wt);c(this,U,e.queryCache||new er),c(this,Et,e.mutationCache||new Xs),c(this,Rt,e.defaultOptions||{}),c(this,Bt,new Map),c(this,zt,new Map),c(this,Ct,0)}mount(){ue(this,Ct)._++,i(this,Ct)===1&&(c(this,Jt,je.subscribe(async e=>{e&&(await this.resumePausedMutations(),i(this,U).onFocus())})),c(this,Wt,fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),i(this,U).onOnline())})))}unmount(){var e,t;ue(this,Ct)._--,i(this,Ct)===0&&((e=i(this,Jt))==null||e.call(this),c(this,Jt,void 0),(t=i(this,Wt))==null||t.call(this),c(this,Wt,void 0))}isFetching(e){return i(this,U).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return i(this,Et).findAll({...e,status:"pending"}).length}getQueryData(e){var s;const t=this.defaultQueryOptions({queryKey:e});return(s=i(this,U).get(t.queryHash))==null?void 0:s.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),s=i(this,U).build(this,t),r=s.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime(St(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return i(this,U).findAll(e).map(({queryKey:t,state:s})=>{const r=s.data;return[t,r]})}setQueryData(e,t,s){const r=this.defaultQueryOptions({queryKey:e}),a=i(this,U).get(r.queryHash),o=a==null?void 0:a.state.data,l=Ds(t,o);if(l!==void 0)return i(this,U).build(this,r).setData(l,{...s,manual:!0})}setQueriesData(e,t,s){return H.batch(()=>i(this,U).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,s)]))}getQueryState(e){var s;const t=this.defaultQueryOptions({queryKey:e});return(s=i(this,U).get(t.queryHash))==null?void 0:s.state}removeQueries(e){const t=i(this,U);H.batch(()=>{t.findAll(e).forEach(s=>{t.remove(s)})})}resetQueries(e,t){const s=i(this,U);return H.batch(()=>(s.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const s={revert:!0,...t},r=H.batch(()=>i(this,U).findAll(e).map(a=>a.cancel(s)));return Promise.all(r).then(B).catch(B)}invalidateQueries(e,t={}){return H.batch(()=>(i(this,U).findAll(e).forEach(s=>{s.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const s={...t,cancelRefetch:t.cancelRefetch??!0},r=H.batch(()=>i(this,U).findAll(e).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let o=a.fetch(void 0,s);return s.throwOnError||(o=o.catch(B)),a.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(r).then(B)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const s=i(this,U).build(this,t);return s.isStaleByTime(St(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(B).catch(B)}fetchInfiniteQuery(e){return e.behavior=We(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(B).catch(B)}ensureInfiniteQueryData(e){return e.behavior=We(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return fe.isOnline()?i(this,Et).resumePausedMutations():Promise.resolve()}getQueryCache(){return i(this,U)}getMutationCache(){return i(this,Et)}getDefaultOptions(){return i(this,Rt)}setDefaultOptions(e){c(this,Rt,e)}setQueryDefaults(e,t){i(this,Bt).set(Qt(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...i(this,Bt).values()],s={};return t.forEach(r=>{ee(e,r.queryKey)&&Object.assign(s,r.defaultOptions)}),s}setMutationDefaults(e,t){i(this,zt).set(Qt(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...i(this,zt).values()],s={};return t.forEach(r=>{ee(e,r.mutationKey)&&Object.assign(s,r.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;const t={...i(this,Rt).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Fe(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===xe&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...i(this,Rt).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){i(this,U).clear(),i(this,Et).clear()}},U=new WeakMap,Et=new WeakMap,Rt=new WeakMap,Bt=new WeakMap,zt=new WeakMap,Ct=new WeakMap,Jt=new WeakMap,Wt=new WeakMap,cs),bs=L.createContext(void 0),Es=e=>{const t=L.useContext(bs);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},vr=({client:e,children:t})=>(L.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),Ms.jsx(bs.Provider,{value:e,children:t})),Rs=L.createContext(!1),sr=()=>L.useContext(Rs);Rs.Provider;function rr(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var ir=L.createContext(rr()),nr=()=>L.useContext(ir),ar=(e,t,s)=>{const r=s!=null&&s.state.error&&typeof e.throwOnError=="function"?Ie(e.throwOnError,[s.state.error,s]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},or=e=>{L.useEffect(()=>{e.clearReset()},[e])},ur=({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:a})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(a&&e.data===void 0||Ie(s,[e.error,r])),cr=e=>{if(e.suspense){const s=a=>a==="static"?a:Math.max(a??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...a)=>s(r(...a)):s(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},hr=(e,t)=>e.isLoading&&e.isFetching&&!t,lr=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,Ve=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function fr(e,t,s){var S,p,j,w;const r=sr(),a=nr(),o=Es(),l=o.defaultQueryOptions(e);(p=(S=o.getDefaultOptions().queries)==null?void 0:S._experimental_beforeQuery)==null||p.call(S,l);const h=o.getQueryCache().get(l.queryHash);l._optimisticResults=r?"isRestoring":"optimistic",cr(l),ar(l,a,h),or(a);const E=!o.getQueryCache().get(l.queryHash),[C]=L.useState(()=>new t(o,l)),R=C.getOptimisticResult(l),y=!r&&e.subscribed!==!1;if(L.useSyncExternalStore(L.useCallback(O=>{const T=y?C.subscribe(H.batchCalls(O)):B;return C.updateResult(),T},[C,y]),()=>C.getCurrentResult(),()=>C.getCurrentResult()),L.useEffect(()=>{C.setOptions(l)},[l,C]),lr(l,R))throw Ve(l,C,a);if(ur({result:R,errorResetBoundary:a,throwOnError:l.throwOnError,query:h,suspense:l.suspense}))throw R.error;if((w=(j=o.getDefaultOptions().queries)==null?void 0:j._experimental_afterQuery)==null||w.call(j,l,R),l.experimental_prefetchInRender&&!jt&&hr(R,r)){const O=E?Ve(l,C,a):h==null?void 0:h.promise;O==null||O.catch(B).finally(()=>{C.updateResult()})}return l.notifyOnChangeProps?R:C.trackResult(R)}function mr(e,t){return fr(e,zs)}function gr(e,t){const s=Es(),[r]=L.useState(()=>new tr(s,e));L.useEffect(()=>{r.setOptions(e)},[r,e]);const a=L.useSyncExternalStore(L.useCallback(l=>r.subscribe(H.batchCalls(l)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),o=L.useCallback((l,h)=>{r.mutate(l,h).catch(B)},[r]);if(a.error&&Ie(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:o,mutateAsync:a.mutate}}export{yr as Q,pr as R,L as a,Es as b,gr as c,vr as d,Ms as j,Fs as r,mr as u};
|
|
18
|
-
//# sourceMappingURL=vendor-query-B2UbickB.js.map
|