hermes-web-ui 0.6.40 → 0.6.41

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.
Files changed (287) hide show
  1. package/dist/client/assets/js/{AppSidebar-CaSVcbCW.js → AppSidebar-CNkSiv3l.js} +1 -1
  2. package/dist/client/assets/js/{ChannelsView-hdAXa1hf.js → ChannelsView-6rEo6RBl.js} +1 -1
  3. package/dist/client/assets/js/{ChatPanel-C6sX6idm.js → ChatPanel-ANAZWluc.js} +3 -3
  4. package/dist/client/assets/js/{ChatView-B68k_-D9.js → ChatView-DFcPsmRF.js} +1 -1
  5. package/dist/client/assets/js/{CodingAgentsView-CsIjwbXR.js → CodingAgentsView-CpIY0SHT.js} +1 -1
  6. package/dist/client/assets/js/{DefaultCredentialPrompt-BRhb4DOa.js → DefaultCredentialPrompt-DmNeotSW.js} +1 -1
  7. package/dist/client/assets/js/{DesktopBrowserPanel-BlBfS64w.js → DesktopBrowserPanel-CWjTU-3y.js} +1 -1
  8. package/dist/client/assets/js/{DesktopBrowserView-JukL0QuS.js → DesktopBrowserView-D9Qb3fIV.js} +1 -1
  9. package/dist/client/assets/js/{DesktopPetView-DWq4EiRU.js → DesktopPetView-B7REtC57.js} +1 -1
  10. package/dist/client/assets/js/{DesktopTitleBar-DphP4oa6.js → DesktopTitleBar-Dej_16hB.js} +1 -1
  11. package/dist/client/assets/js/{DevicesView-BFtrfqJs.js → DevicesView--d4HCkch.js} +1 -1
  12. package/dist/client/assets/js/{DocxFilePreview-CmVJ9Jxx.js → DocxFilePreview-BQz6WC7r.js} +2 -2
  13. package/dist/client/assets/js/{FileEditor-CdkNYp7b.js → FileEditor-BBegs-5i.js} +2 -2
  14. package/dist/client/assets/js/{FilePreview-CJrVRPRs.js → FilePreview-B7WqYvZs.js} +2 -2
  15. package/dist/client/assets/js/{FileRenameModal-mghyEXU4.js → FileRenameModal-82RkAZkd.js} +1 -1
  16. package/dist/client/assets/js/{FilesPanel-B9cKB5lX.js → FilesPanel-BHcg6CpC.js} +2 -2
  17. package/dist/client/assets/js/{FilesView-iKZu70E9.js → FilesView-Dl15WTar.js} +2 -2
  18. package/dist/client/assets/js/{GlobalAgentView-JZsss0gx.js → GlobalAgentView-dxEX611f.js} +1 -1
  19. package/dist/client/assets/js/{GlobalPendingActions-BRQIt5vl.js → GlobalPendingActions-CeK96C3G.js} +1 -1
  20. package/dist/client/assets/js/{GroupChatLinkView-CNrV8lnT.js → GroupChatLinkView-CJhI9DVE.js} +1 -1
  21. package/dist/client/assets/js/{GroupChatPanel-WK4zBasl.js → GroupChatPanel-CLa3s08V.js} +3 -3
  22. package/dist/client/assets/js/{GroupChatView-BlMUD1MW.js → GroupChatView-CUwvu-6F.js} +1 -1
  23. package/dist/client/assets/js/{HistoryMessageList-D8zoQ1Zs.js → HistoryMessageList-BdD8GJYM.js} +1 -1
  24. package/dist/client/assets/js/{HistoryView-Bpr8N2lC.js → HistoryView-Ro92tP5R.js} +1 -1
  25. package/dist/client/assets/js/{HtmlFilePreview-Bj3_-hMo.js → HtmlFilePreview-xYn7YtmC.js} +1 -1
  26. package/dist/client/assets/js/{JobsView-CZK26gTw.js → JobsView-BaNA1Yaa.js} +2 -2
  27. package/dist/client/assets/js/{JourneyView-BPUsLj4o.js → JourneyView-Bw-05mCF.js} +1 -1
  28. package/dist/client/assets/js/{KanbanView-B7d-2_z9.js → KanbanView-BYC32l2Q.js} +1 -1
  29. package/dist/client/assets/js/{LoginView-BpYyv831.js → LoginView-KrpCkwOr.js} +1 -1
  30. package/dist/client/assets/js/{LogsView-CabFHk0v.js → LogsView-Dgm4v5sN.js} +1 -1
  31. package/dist/client/assets/js/{MarkdownRenderer-CVtmHZwc.js → MarkdownRenderer-BIPowjr-.js} +3 -3
  32. package/dist/client/assets/js/{McpManagerView-C-ou8vf3.js → McpManagerView-DTtkUIvq.js} +1 -1
  33. package/dist/client/assets/js/{MemoryView-QGFW4iZo.js → MemoryView-BnL7xzux.js} +2 -2
  34. package/dist/client/assets/js/{MessageList-DZR-TFjD.js → MessageList-5tytzhb0.js} +3 -3
  35. package/dist/client/assets/js/{ModelsView-DiWdSWOW.js → ModelsView-ComCz0Ce.js} +1 -1
  36. package/dist/client/assets/js/{OutlinePanel-Dlr5svMY.js → OutlinePanel-CF_XPCRn.js} +1 -1
  37. package/dist/client/assets/js/{PageSidebarFooter-Bic1fUmG.js → PageSidebarFooter-dvLzcTIm.js} +1 -1
  38. package/dist/client/assets/js/{PdfFilePreview-Dkpan1ay.js → PdfFilePreview-COOAoJ4V.js} +2 -2
  39. package/dist/client/assets/js/{PerformanceView-LrZaED_Z.js → PerformanceView-D6dKifJh.js} +1 -1
  40. package/dist/client/assets/js/{PetdexView-Bv8RioGL.js → PetdexView-CmvzDYwf.js} +1 -1
  41. package/dist/client/assets/js/{PluginsView-CbtdIGlq.js → PluginsView-zJV9FE9c.js} +1 -1
  42. package/dist/client/assets/js/{PptxFilePreview-5if_GbU6.js → PptxFilePreview-dC4JxV6j.js} +2 -2
  43. package/dist/client/assets/js/{ProfileAvatar-DI9ciJxS.js → ProfileAvatar-C8xoALCI.js} +1 -1
  44. package/dist/client/assets/js/{ProfilesView-C-FSiKMU.js → ProfilesView-CxVxJRN_.js} +1 -1
  45. package/dist/client/assets/js/{ProviderConfigurationPrompt-BUoWC41Y.js → ProviderConfigurationPrompt-zwk1UwoP.js} +1 -1
  46. package/dist/client/assets/js/{SessionSearchModal-CEKvSihp.js → SessionSearchModal-DhwGsV-i.js} +1 -1
  47. package/dist/client/assets/js/{SettingRow-CSfiJmxx.js → SettingRow-DHqhLX3M.js} +1 -1
  48. package/dist/client/assets/js/{SettingsCircuitBadge-DHIEFyTR.js → SettingsCircuitBadge-CnWSfQZd.js} +1 -1
  49. package/dist/client/assets/js/{SettingsView-DbNJroV3.js → SettingsView-Cbroga25.js} +1 -1
  50. package/dist/client/assets/js/{SharedGroupChatView-CTYjqWcO.js → SharedGroupChatView-DXfqtQ33.js} +1 -1
  51. package/dist/client/assets/js/{SkillsUsageView-BqZ3GtfT.js → SkillsUsageView-C34i3lOQ.js} +1 -1
  52. package/dist/client/assets/js/{SkillsView-Bhla7821.js → SkillsView-DRG_1esx.js} +2 -2
  53. package/dist/client/assets/js/{SpreadsheetFilePreview-CGK8HDAx.js → SpreadsheetFilePreview-DRw4kIx5.js} +1 -1
  54. package/dist/client/assets/js/{TerminalPanel-CtBTLOwq.js → TerminalPanel-Da1nL9P8.js} +1 -1
  55. package/dist/client/assets/js/{TerminalView-BID7fupB.js → TerminalView-B6z-VaGq.js} +1 -1
  56. package/dist/client/assets/js/{ThemeView-Cx3ucIus.js → ThemeView-CAaJ9MH-.js} +1 -1
  57. package/dist/client/assets/js/{UsageView-ByGCsw7o.js → UsageView-B_hLsp0k.js} +1 -1
  58. package/dist/client/assets/js/{VersionPreviewView-DiAK1ind.js → VersionPreviewView-DKXL6anl.js} +1 -1
  59. package/dist/client/assets/js/{WebPet-CdIqrnp1.js → WebPet-BUvrfjpq.js} +1 -1
  60. package/dist/client/assets/js/{WorkflowView-DmBOhSuq.js → WorkflowView-r46Ap9FY.js} +1 -1
  61. package/dist/client/assets/js/{WorkspaceDiffPreview-dHIGp-9F.js → WorkspaceDiffPreview-EwZAE18F.js} +2 -2
  62. package/dist/client/assets/js/{abap-Dj8IFKiF.js → abap-C7gkFu-A.js} +1 -1
  63. package/dist/client/assets/js/{aiden0z-pptx-renderer.es-6vi5-jAN.js → aiden0z-pptx-renderer.es-DOpVaH_k.js} +1 -1
  64. package/dist/client/assets/js/{apex-C3INPUEt.js → apex-DZOtRowu.js} +1 -1
  65. package/dist/client/assets/js/{ar-Gk9y3ZfO.js → ar-8iThLSJQ.js} +1 -1
  66. package/dist/client/assets/js/architecture-7EHR7CIX-BrfhYGuP.js +1 -0
  67. package/dist/client/assets/js/{architectureDiagram-3BPJPVTR-DLZYeivB.js → architectureDiagram-3BPJPVTR-DEsTTzKd.js} +1 -1
  68. package/dist/client/assets/js/{auth-D1ZFqv22.js → auth-B52zm2Ir.js} +1 -1
  69. package/dist/client/assets/js/{azcli-UBzLhJq5.js → azcli-KxuicZQh.js} +1 -1
  70. package/dist/client/assets/js/{bat-P3O4jldt.js → bat-DfFP4HF-.js} +1 -1
  71. package/dist/client/assets/js/{bicep-DdQR9RxE.js → bicep-Co4bntVh.js} +1 -1
  72. package/dist/client/assets/js/{blockDiagram-GPEHLZMM-UWFo8sm5.js → blockDiagram-GPEHLZMM-NsxYeUKd.js} +1 -1
  73. package/dist/client/assets/js/{c4Diagram-AAUBKEIU-jgyj0wOb.js → c4Diagram-AAUBKEIU-D68asSzm.js} +1 -1
  74. package/dist/client/assets/js/{cameligo-Bb4ubW_C.js → cameligo-Xi0l_9Wr.js} +1 -1
  75. package/dist/client/assets/js/{chat-DdHii4Qz.js → chat-fUZW3YFa.js} +1 -1
  76. package/dist/client/assets/js/{chat-input-height-CSPwB9it.js → chat-input-height-lvFawuv9.js} +1 -1
  77. package/dist/client/assets/js/{chat-timestamp-DGQ8fmtT.js → chat-timestamp-4wWFcZWv.js} +1 -1
  78. package/dist/client/assets/js/{chunk-2J33WTMH-Br9OWF5a.js → chunk-2J33WTMH-CEU5sLIh.js} +1 -1
  79. package/dist/client/assets/js/{chunk-3OPIFGDE-Cb40LuI4.js → chunk-3OPIFGDE-DEhbKkCl.js} +1 -1
  80. package/dist/client/assets/js/{chunk-4BX2VUAB-jYtdiafd.js → chunk-4BX2VUAB-OIZUstuy.js} +1 -1
  81. package/dist/client/assets/js/{chunk-55IACEB6-CBtymeHY.js → chunk-55IACEB6-DQHKZCBG.js} +1 -1
  82. package/dist/client/assets/js/{chunk-5ZQYHXKU-yj9xqmex.js → chunk-5ZQYHXKU-BU3pQVVl.js} +1 -1
  83. package/dist/client/assets/js/{chunk-727SXJPM-er_5tB5X.js → chunk-727SXJPM-jj97gdnP.js} +1 -1
  84. package/dist/client/assets/js/{chunk-AQP2D5EJ-C4mDD6xK.js → chunk-AQP2D5EJ-jv-oWlkb.js} +1 -1
  85. package/dist/client/assets/js/{chunk-BSJP7CBP-QZesZe57.js → chunk-BSJP7CBP-DkKsepNF.js} +1 -1
  86. package/dist/client/assets/js/{chunk-CSCIHK7Q-5LH118bT.js → chunk-CSCIHK7Q-CLgoBoCF.js} +3 -3
  87. package/dist/client/assets/js/{chunk-FMBD7UC4-CQho6QZ5.js → chunk-FMBD7UC4-Bx1bCKUR.js} +1 -1
  88. package/dist/client/assets/js/{chunk-KSCS5N6A-DONM1Omv.js → chunk-KSCS5N6A-CZHZ6pBd.js} +1 -1
  89. package/dist/client/assets/js/{chunk-L5ZTLDWV-FN_zFWkp.js → chunk-L5ZTLDWV-dz9D3kOb.js} +1 -1
  90. package/dist/client/assets/js/{chunk-LZXEDZCA-CEEUVvpS.js → chunk-LZXEDZCA-CQiSQehC.js} +2 -2
  91. package/dist/client/assets/js/{chunk-ND2GUHAM-DWckpxQD.js → chunk-ND2GUHAM-mWODKb8v.js} +1 -1
  92. package/dist/client/assets/js/{chunk-NZK2D7GU-0mKZmkuV.js → chunk-NZK2D7GU-ivCkjCOR.js} +1 -1
  93. package/dist/client/assets/js/{chunk-O5CBEL6O-DIDAOkT_.js → chunk-O5CBEL6O-BRUisK47.js} +1 -1
  94. package/dist/client/assets/js/{chunk-QZHKN3VN-D3c-TMz-.js → chunk-QZHKN3VN-BHjgTrzY.js} +1 -1
  95. package/dist/client/assets/js/{chunk-WU5MYG2G-BZvSpwm4.js → chunk-WU5MYG2G-CNW1rcpL.js} +1 -1
  96. package/dist/client/assets/js/{chunk-XPW4576I-xdyJtk-s.js → chunk-XPW4576I-DP3dJbOu.js} +1 -1
  97. package/dist/client/assets/js/classDiagram-4FO5ZUOK-BVBBe3DQ.js +1 -0
  98. package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-DJUe3i9Y.js +1 -0
  99. package/dist/client/assets/js/{clipboard-DQ_A8ns-.js → clipboard-DHZFaAvO.js} +1 -1
  100. package/dist/client/assets/js/{clipboard-files-bDrcGKPe.js → clipboard-files-CBDy-02Y.js} +1 -1
  101. package/dist/client/assets/js/{clojure-ku7aCU1_.js → clojure-DuyGwS8X.js} +1 -1
  102. package/dist/client/assets/js/{coding-agents-DfHyBvky.js → coding-agents-BNTHD6kd.js} +1 -1
  103. package/dist/client/assets/js/{codingAgentProviders-BM18FAW9.js → codingAgentProviders-DM_ouxbL.js} +1 -1
  104. package/dist/client/assets/js/{coffee-DnRIdJlY.js → coffee-C5p7vzpa.js} +1 -1
  105. package/dist/client/assets/js/{completion-notification-XxjbntI8.js → completion-notification-CzdnhuX3.js} +1 -1
  106. package/dist/client/assets/js/{cose-bilkent-S5V4N54A-w891sIF1.js → cose-bilkent-S5V4N54A-De_ZdqY0.js} +1 -1
  107. package/dist/client/assets/js/{cpp-CN8i6ISX.js → cpp-II5hDbTe.js} +1 -1
  108. package/dist/client/assets/js/{csharp-B-fxig7O.js → csharp-D0POzSpv.js} +1 -1
  109. package/dist/client/assets/js/{csp-Bar9LGt4.js → csp-CwtuRkR3.js} +1 -1
  110. package/dist/client/assets/js/{css-DFtC5xZN.js → css-Dc2fJIqQ.js} +1 -1
  111. package/dist/client/assets/js/{cssMode-DH5XKKL2.js → cssMode-CC6jRvHF.js} +1 -1
  112. package/dist/client/assets/js/{cypher-BkJexWsv.js → cypher-DBcQoWDH.js} +1 -1
  113. package/dist/client/assets/js/{cytoscape.esm-BDsvr8Aq.js → cytoscape.esm-C9FMRqxM.js} +1 -1
  114. package/dist/client/assets/js/{dagre-BM42HDAG-BuT885pa.js → dagre-BM42HDAG-CvJIC410.js} +1 -1
  115. package/dist/client/assets/js/{dagre-BVUDh8Sh.js → dagre-BtgEsAtK.js} +1 -1
  116. package/dist/client/assets/js/{dart-B7W8hAtN.js → dart-Jf_Hmp2o.js} +1 -1
  117. package/dist/client/assets/js/{de-LDpd8WHJ.js → de-7hLSwCEx.js} +1 -1
  118. package/dist/client/assets/js/{defineProperty-DdPu4ZVv.js → defineProperty-DHkErCmG.js} +1 -1
  119. package/dist/client/assets/js/{desktop-browser-xrRFPNUg.js → desktop-browser-C6AhY0uu.js} +1 -1
  120. package/dist/client/assets/js/{diagram-2AECGRRQ-B1sSf-09.js → diagram-2AECGRRQ-CvPeU5Lm.js} +1 -1
  121. package/dist/client/assets/js/{diagram-5GNKFQAL-BffX22pf.js → diagram-5GNKFQAL-CBniYlkH.js} +1 -1
  122. package/dist/client/assets/js/{diagram-KO2AKTUF-D8QvpUpn.js → diagram-KO2AKTUF-C_yFaVRj.js} +1 -1
  123. package/dist/client/assets/js/{diagram-LMA3HP47-DkG7p3lQ.js → diagram-LMA3HP47-BzM1IxNe.js} +1 -1
  124. package/dist/client/assets/js/{diagram-OG6HWLK6-RjvNNvXM.js → diagram-OG6HWLK6-yvmf_3ax.js} +1 -1
  125. package/dist/client/assets/js/{dist-Bk0VKtV3.js → dist-BHzBn3v7.js} +1 -1
  126. package/dist/client/assets/js/{dockerfile-C4m7j8sy.js → dockerfile-J3d6ZPDJ.js} +1 -1
  127. package/dist/client/assets/js/{docx-preview-BpTW-GN7.js → docx-preview-Rqt8wMjQ.js} +1 -1
  128. package/dist/client/assets/js/{download-CX8EG48r.js → download-xhRMWMda.js} +1 -1
  129. package/dist/client/assets/js/{ecl-EHV358Ls.js → ecl-XnlT0p97.js} +1 -1
  130. package/dist/client/assets/js/{editor.api2-CnHBqh_d.js → editor.api2-ChO5nUQb.js} +1 -1
  131. package/dist/client/assets/js/{elixir-DLfp2Dwn.js → elixir-BEJbxH-B.js} +1 -1
  132. package/dist/client/assets/js/{en-D6VVFwFU.js → en-D2WSXgkM.js} +1 -1
  133. package/dist/client/assets/js/{erDiagram-TEJ5UH35-CLlLC6xx.js → erDiagram-TEJ5UH35-DZysD9r9.js} +1 -1
  134. package/dist/client/assets/js/{es-BIMLuyVP.js → es-B7Mq1P0U.js} +1 -1
  135. package/dist/client/assets/js/{esm-C8D4M0Yn.js → esm-DnZPPtmx.js} +1 -1
  136. package/dist/client/assets/js/eventmodeling-FCH6USID-vlE3-g2j.js +1 -0
  137. package/dist/client/assets/js/{file-preview-BvgwVZXh.js → file-preview-C417aixJ.js} +1 -1
  138. package/dist/client/assets/js/{files-CJkCqsUx.js → files-DjI-npgn.js} +1 -1
  139. package/dist/client/assets/js/{flow9-CtBaUnAi.js → flow9-j5XT_8TQ.js} +1 -1
  140. package/dist/client/assets/js/{flowDiagram-I6XJVG4X-VTRTPnqD.js → flowDiagram-I6XJVG4X-Dt5ZtyHz.js} +1 -1
  141. package/dist/client/assets/js/{fr-C2lf0cY2.js → fr-DvClrDOw.js} +1 -1
  142. package/dist/client/assets/js/{freemarker2-XLeMvhl_.js → freemarker2-BzCf_0SN.js} +1 -1
  143. package/dist/client/assets/js/{fsharp-Db0uaBQv.js → fsharp-ClU_Sdjr.js} +1 -1
  144. package/dist/client/assets/js/{ganttDiagram-6RSMTGT7-CdKcIZ8_.js → ganttDiagram-6RSMTGT7-Bca3rPWi.js} +1 -1
  145. package/dist/client/assets/js/gitGraph-WXDBUCRP-Cyd4P6XH.js +1 -0
  146. package/dist/client/assets/js/{gitGraphDiagram-PVQCEYII-Bcuyw6fo.js → gitGraphDiagram-PVQCEYII-Co29qnTg.js} +1 -1
  147. package/dist/client/assets/js/{go-DwaTlB-B.js → go-D3iUyCM0.js} +1 -1
  148. package/dist/client/assets/js/{graphlib-vAI4Pw7R.js → graphlib-Bln6qd-Z.js} +1 -1
  149. package/dist/client/assets/js/{graphql-Cf2XhNJR.js → graphql-z8koqyyL.js} +1 -1
  150. package/dist/client/assets/js/{group-agent-avatar-CPehpiK0.js → group-agent-avatar-CwqtaKGw.js} +1 -1
  151. package/dist/client/assets/js/{group-chat-CY62vc77.js → group-chat-Buz8HP-N.js} +1 -1
  152. package/dist/client/assets/js/{group-chat-xkdjC2Jt.js → group-chat-CgFAwCtr.js} +1 -1
  153. package/dist/client/assets/js/{group-chat-agent-link-DdSNKasF.js → group-chat-agent-link-N5IFeN_j.js} +1 -1
  154. package/dist/client/assets/js/{handlebars-CNEKu_p8.js → handlebars-C_JvhUYs.js} +1 -1
  155. package/dist/client/assets/js/{hcl-6UZbq6h2.js → hcl-X7TzviIX.js} +1 -1
  156. package/dist/client/assets/js/{highlight-DwtBT6t1.js → highlight-C4yUBxwQ.js} +1 -1
  157. package/dist/client/assets/js/{html-DfSIHhKA.js → html-B-rCQB0N.js} +1 -1
  158. package/dist/client/assets/js/{htmlMode-iGw9-O-W.js → htmlMode-CAeEf_yf.js} +1 -1
  159. package/dist/client/assets/js/{index-DnjQJzX4.js → index-DN4SafrP.js} +5 -5
  160. package/dist/client/assets/js/info-J43DQDTF-B9tkQ2Sb.js +1 -0
  161. package/dist/client/assets/js/{infoDiagram-5YYISTIA-85450Zam.js → infoDiagram-5YYISTIA-BWQGayms.js} +1 -1
  162. package/dist/client/assets/js/{ini-8em8V_Af.js → ini-LTHHN4J-.js} +1 -1
  163. package/dist/client/assets/js/{ishikawaDiagram-YF4QCWOH-BZ4az7UA.js → ishikawaDiagram-YF4QCWOH-Dhuplz_z.js} +1 -1
  164. package/dist/client/assets/js/{ja-C1bBXgr_.js → ja-D7BeX2_D.js} +1 -1
  165. package/dist/client/assets/js/{java-CP1MdIkO.js → java-BRFX-ya0.js} +1 -1
  166. package/dist/client/assets/js/{javascript-Cr8_LHYa.js → javascript-ZXiVmjXn.js} +1 -1
  167. package/dist/client/assets/js/{journeyDiagram-JHISSGLW-DGMB8Tgc.js → journeyDiagram-JHISSGLW-CJeatAU9.js} +1 -1
  168. package/dist/client/assets/js/{jsonMode-HCZ-1lFH.js → jsonMode-C6FcMe0o.js} +1 -1
  169. package/dist/client/assets/js/{jszip.min-BkR6b8DY.js → jszip.min-skZCUzWf.js} +1 -1
  170. package/dist/client/assets/js/{julia-DMTMxa5q.js → julia-Bph8N3CL.js} +1 -1
  171. package/dist/client/assets/js/{kanban-definition-UN3LZRKU-F5cH_RpB.js → kanban-definition-UN3LZRKU-tvWuOdSr.js} +1 -1
  172. package/dist/client/assets/js/{katex-CYbEJAbZ.js → katex-hSGJNERm.js} +1 -1
  173. package/dist/client/assets/js/{ko-qgOeHd8L.js → ko-BsVa-If_.js} +1 -1
  174. package/dist/client/assets/js/{kotlin-Blzus47W.js → kotlin-_c4-tPQp.js} +1 -1
  175. package/dist/client/assets/js/{less-DWCHpDyf.js → less-5oVo4jfQ.js} +1 -1
  176. package/dist/client/assets/js/{lexon-YXdlYGbJ.js → lexon-DE4YtGwF.js} +1 -1
  177. package/dist/client/assets/js/{liquid-DSQgvRwe.js → liquid-BGfieGMG.js} +1 -1
  178. package/dist/client/assets/js/{lspLanguageFeatures-0Hx2Vnc-.js → lspLanguageFeatures-DU_1H2uW.js} +1 -1
  179. package/dist/client/assets/js/{lua-Cyv3mTkg.js → lua-7WJSZJqD.js} +1 -1
  180. package/dist/client/assets/js/{m3-CPY3Ym7_.js → m3-gZlfoR19.js} +1 -1
  181. package/dist/client/assets/js/{markdown-DaPQ1nuG.js → markdown-BYF71orA.js} +1 -1
  182. package/dist/client/assets/js/{mdx-BqA6Xr9V.js → mdx-CunEIV3g.js} +1 -1
  183. package/dist/client/assets/js/{mermaid-parser.core-D4HRUOce.js → mermaid-parser.core-DU_SX15F.js} +3 -3
  184. package/dist/client/assets/js/{mermaid.core-w6kHmgOG.js → mermaid.core-8vsbhG5J.js} +3 -3
  185. package/dist/client/assets/js/{message-scroll-position-C5yRCyBU.js → message-scroll-position-C9_YO3pX.js} +2 -2
  186. package/dist/client/assets/js/{mindmap-definition-RKZ34NQL-CnzhnJ7Z.js → mindmap-definition-RKZ34NQL-HPtlKqL1.js} +1 -1
  187. package/dist/client/assets/js/{mips-BfqBfLvN.js → mips-DXkvw9aZ.js} +1 -1
  188. package/dist/client/assets/js/{models-wrytxWnf.js → models-BILDy2sV.js} +1 -1
  189. package/dist/client/assets/js/{monaco.contribution-Bc-DesyO.js → monaco.contribution-DDqeHGl3.js} +2 -2
  190. package/dist/client/assets/js/{msdax-DgMip49g.js → msdax-BbHEBDvP.js} +1 -1
  191. package/dist/client/assets/js/{mysql-DPUvF1g2.js → mysql-7I1rlwh7.js} +1 -1
  192. package/dist/client/assets/js/{objective-c-BQ3llrPW.js → objective-c-Dk03REAv.js} +1 -1
  193. package/dist/client/assets/js/packet-YPE3B663-DlTFK3Wo.js +1 -0
  194. package/dist/client/assets/js/{pascal-bFWHV7MZ.js → pascal-BCfNkzYY.js} +1 -1
  195. package/dist/client/assets/js/{pascaligo-C8Qza2pK.js → pascaligo-D-DslS98.js} +1 -1
  196. package/dist/client/assets/js/{pdf-Cb7x495t.js → pdf-B_OYWxSy.js} +1 -1
  197. package/dist/client/assets/js/{pdf.worker.min-DDUKJ6cJ.js → pdf.worker.min--q2RLEHa.js} +1 -1
  198. package/dist/client/assets/js/{perl-x25gw0_p.js → perl-MUnuTclx.js} +1 -1
  199. package/dist/client/assets/js/{pets-BfRsvl7D.js → pets-D74G2jqA.js} +1 -1
  200. package/dist/client/assets/js/{pgsql-DAUcGeRq.js → pgsql-BxCBktNe.js} +1 -1
  201. package/dist/client/assets/js/{php-nri1eqb2.js → php-zp9UgH03.js} +1 -1
  202. package/dist/client/assets/js/pie-LRSECV5Y-BtnBGhFZ.js +1 -0
  203. package/dist/client/assets/js/{pieDiagram-4H26LBE5-4LODdtT_.js → pieDiagram-4H26LBE5-CG8_pcHr.js} +1 -1
  204. package/dist/client/assets/js/{pla-CHi5LWNL.js → pla-DGCtmYZC.js} +1 -1
  205. package/dist/client/assets/js/{postiats-Bk7jD0AA.js → postiats-DHSW8gnY.js} +1 -1
  206. package/dist/client/assets/js/{powerquery-UTqJ0Vs7.js → powerquery-BGsPEmJe.js} +1 -1
  207. package/dist/client/assets/js/{powershell-CuPY3Rqk.js → powershell-BItlb0hE.js} +1 -1
  208. package/dist/client/assets/js/{profiles-D-vlI-Ec.js → profiles-BK5JKD7h.js} +1 -1
  209. package/dist/client/assets/js/{protobuf-Be4AIz9j.js → protobuf-BIhm6JYx.js} +1 -1
  210. package/dist/client/assets/js/{pt-D7_udWb3.js → pt-BSORCDMm.js} +1 -1
  211. package/dist/client/assets/js/{pug-CZFx15Ey.js → pug-BtnM7KZj.js} +1 -1
  212. package/dist/client/assets/js/{python-BgRg6Ez6.js → python-DxzTx1Q_.js} +1 -1
  213. package/dist/client/assets/js/{qsharp-BiBiLhRS.js → qsharp-B_8MSfaB.js} +1 -1
  214. package/dist/client/assets/js/{quadrantDiagram-W4KKPZXB-g_q9-dXx.js → quadrantDiagram-W4KKPZXB-CsbkMYuV.js} +1 -1
  215. package/dist/client/assets/js/{r-DM7NVSbZ.js → r-kvKC59jk.js} +1 -1
  216. package/dist/client/assets/js/radar-GUYGQ44K-BTKMKX4G.js +1 -0
  217. package/dist/client/assets/js/{razor-CiWy0jCW.js → razor-BwZ0MkaL.js} +1 -1
  218. package/dist/client/assets/js/{redis-BR2LPmFL.js → redis-5j1U_i85.js} +1 -1
  219. package/dist/client/assets/js/{redshift-B0sdAV16.js → redshift-CX1dFLA1.js} +1 -1
  220. package/dist/client/assets/js/{requirementDiagram-4Y6WPE33-EedCclad.js → requirementDiagram-4Y6WPE33-CKC7CQCX.js} +1 -1
  221. package/dist/client/assets/js/{restructuredtext-kQOBLN1M.js → restructuredtext-MV0-Naya.js} +1 -1
  222. package/dist/client/assets/js/{rough.esm-Dyx_2DON.js → rough.esm-CV1rL6PC.js} +1 -1
  223. package/dist/client/assets/js/{ru-CVQQmreT.js → ru-JsH6TKyg.js} +1 -1
  224. package/dist/client/assets/js/{ruby-CbdJXy6J.js → ruby-Bhyejf9X.js} +1 -1
  225. package/dist/client/assets/js/{rust-DZanYksk.js → rust-CR8d_FC1.js} +1 -1
  226. package/dist/client/assets/js/{sankeyDiagram-5OEKKPKP-DFC0nzsd.js → sankeyDiagram-5OEKKPKP-CKlqlvAe.js} +1 -1
  227. package/dist/client/assets/js/{sb-C5-WiqDZ.js → sb-hLW2EM2L.js} +1 -1
  228. package/dist/client/assets/js/{scala-Bk7i9nV-.js → scala-DVUhALEZ.js} +1 -1
  229. package/dist/client/assets/js/{scheme-CaZSWmJ2.js → scheme-BS6yNanr.js} +1 -1
  230. package/dist/client/assets/js/{scss-ByOYuc7K.js → scss-BfoRsElt.js} +1 -1
  231. package/dist/client/assets/js/{sequenceDiagram-3UESZ5HK-hWjPfqXt.js → sequenceDiagram-3UESZ5HK-CTimhD6H.js} +1 -1
  232. package/dist/client/assets/js/{session-browser-prefs-Br8OYA4_.js → session-browser-prefs-BT1woDux.js} +1 -1
  233. package/dist/client/assets/js/{sessions-iGK9S6zk.js → sessions-IkLKgnN6.js} +1 -1
  234. package/dist/client/assets/js/{settings-pbanANH0.js → settings-roYY6G3W.js} +1 -1
  235. package/dist/client/assets/js/{shell-Di0TEySc.js → shell-BO_Lyczz.js} +1 -1
  236. package/dist/client/assets/js/{skills-DC-UPcXj.js → skills-a5LPwmiT.js} +1 -1
  237. package/dist/client/assets/js/{solidity-BNTjAuuA.js → solidity-D3T2Ki4l.js} +1 -1
  238. package/dist/client/assets/js/{sophia-LY__8Yob.js → sophia-iJmIEvi8.js} +1 -1
  239. package/dist/client/assets/js/{sparql-CWnLfgGS.js → sparql-C2HCEExr.js} +1 -1
  240. package/dist/client/assets/js/{sql-B0ypQ9lR.js → sql-DM6_3GBc.js} +1 -1
  241. package/dist/client/assets/js/{src-BihFroE7.js → src-DD_TpJde.js} +1 -1
  242. package/dist/client/assets/js/{st-CqVFKTbZ.js → st-DSb39Fm5.js} +1 -1
  243. package/dist/client/assets/js/{stateDiagram-AJRCARHV-B7wEnYVe.js → stateDiagram-AJRCARHV-DwBGmBj6.js} +1 -1
  244. package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-5bNcwBne.js +1 -0
  245. package/dist/client/assets/js/{style-DDAg_jVj.js → style-B5xXhBlp.js} +1 -1
  246. package/dist/client/assets/js/{swift-B4ZZmDxc.js → swift-DrZYSZK3.js} +1 -1
  247. package/dist/client/assets/js/{systemverilog-zLt-O1mT.js → systemverilog-BAWNCaf6.js} +1 -1
  248. package/dist/client/assets/js/{tcl-DCSZmA-l.js → tcl-DY15ex6v.js} +1 -1
  249. package/dist/client/assets/js/{timeline-definition-PNZ67QCA-BN_LfleE.js → timeline-definition-PNZ67QCA-B8xuIu6g.js} +1 -1
  250. package/dist/client/assets/js/treeView-BLDUP644-DvZPUnGM.js +1 -0
  251. package/dist/client/assets/js/treemap-LRROVOQU-Bis1djYh.js +1 -0
  252. package/dist/client/assets/js/{tsMode-BjUcuHrq.js → tsMode-BE8JCSCE.js} +1 -1
  253. package/dist/client/assets/js/{ttsHelpers-BLunFYsq.js → ttsHelpers-BLNiQExI.js} +1 -1
  254. package/dist/client/assets/js/{twig-CuJlVpUG.js → twig-BpHF_18K.js} +1 -1
  255. package/dist/client/assets/js/{typescript-De40YVFt.js → typescript-FQ3z9hVG.js} +1 -1
  256. package/dist/client/assets/js/{typespec-8QcsIc3c.js → typespec-BKvcn6aE.js} +1 -1
  257. package/dist/client/assets/js/{useSttSettings-B1-KXN44.js → useSttSettings-DHX06G8A.js} +1 -1
  258. package/dist/client/assets/js/{vb-DEGTdhxf.js → vb-B74ucE43.js} +1 -1
  259. package/dist/client/assets/js/{vennDiagram-CIIHVFJN-hL8ax7wF.js → vennDiagram-CIIHVFJN-DtEu04QR.js} +1 -1
  260. package/dist/client/assets/js/wardley-L42UT6IY-CD4dIN63.js +1 -0
  261. package/dist/client/assets/js/{wardleyDiagram-YWT4CUSO-BIR-RA6Y.js → wardleyDiagram-YWT4CUSO-DdNKCPsp.js} +1 -1
  262. package/dist/client/assets/js/{wgsl-CmbiucmY.js → wgsl-DEf5Vdqv.js} +1 -1
  263. package/dist/client/assets/js/{workers-BgWBq4qY.js → workers-BbaiLVxx.js} +1 -1
  264. package/dist/client/assets/js/{workflow-socket-DZ9Ceffc.js → workflow-socket-DH402vxO.js} +1 -1
  265. package/dist/client/assets/js/{xml-SZLdwDmk.js → xml-zjE51I7v.js} +1 -1
  266. package/dist/client/assets/js/{xterm-D6CotCNH.js → xterm-Djy4rCx0.js} +1 -1
  267. package/dist/client/assets/js/{xychartDiagram-2RQKCTM6-DHa486uP.js → xychartDiagram-2RQKCTM6-CKqN7g7r.js} +1 -1
  268. package/dist/client/assets/js/{yaml-CgQpCgM5.js → yaml-DabeGoTc.js} +1 -1
  269. package/dist/client/assets/js/{zh-BDlMioZr.js → zh-CI4-L3JY.js} +1 -1
  270. package/dist/client/assets/js/{zh-TW-DTbLWR1A.js → zh-TW-wYlj-uOZ.js} +1 -1
  271. package/dist/client/index.html +1 -1
  272. package/dist/server/index.js +3 -3
  273. package/dist/server/openapi.json +1 -1
  274. package/package.json +9 -1
  275. package/dist/client/assets/js/architecture-7EHR7CIX-Cl4Qi40R.js +0 -1
  276. package/dist/client/assets/js/classDiagram-4FO5ZUOK-DC0BcY8x.js +0 -1
  277. package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-BfDDH_fm.js +0 -1
  278. package/dist/client/assets/js/eventmodeling-FCH6USID-Bgzwnvkn.js +0 -1
  279. package/dist/client/assets/js/gitGraph-WXDBUCRP-CwFrpI3e.js +0 -1
  280. package/dist/client/assets/js/info-J43DQDTF-wMwkmIWM.js +0 -1
  281. package/dist/client/assets/js/packet-YPE3B663-DYmKXJOE.js +0 -1
  282. package/dist/client/assets/js/pie-LRSECV5Y-Dx0hbcjV.js +0 -1
  283. package/dist/client/assets/js/radar-GUYGQ44K-D-t-QJhi.js +0 -1
  284. package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-CoMhBVvo.js +0 -1
  285. package/dist/client/assets/js/treeView-BLDUP644-CMJGhbWk.js +0 -1
  286. package/dist/client/assets/js/treemap-LRROVOQU-_j4KoVDh.js +0 -1
  287. package/dist/client/assets/js/wardley-L42UT6IY-BeOvmJoM.js +0 -1
@@ -1 +1 @@
1
- import{$i as u,$t as M,Ai as D,Di as ue,E as De,Hi as S,M as de,Nr as ve,Pr as pe,Qr as Ce,Sa as p,T as xe,Ti as l,Tt as Me,_a as i,_i as e,_t as F,at as Se,bi as B,bt as Be,dn as O,ei as x,fi as q,gi as $,gt as Te,ii as Pe,jt as N,mi as $e,n as me,ni as Ne,pi as R,rt as A,si as he,sn as z,st as Ie,t as ge,ua as g,wa as f,wi as C,ya as E,yi as Ue}from"./index-DnjQJzX4.js";var K,L,J,G,Q,W,X,Y,_e,Z=f((()=>{he(),de(),ve(),Ne(),xe(),K={class:"page-sidebar-nav"},L={class:"page-sidebar-tabs",role:"tablist","aria-label":"Chat actions"},J={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},G={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},Q={key:0,class:"conversation-switch conversation-switch--three",role:"tablist","aria-label":"Conversation type"},W=["aria-label","aria-selected"],X=["aria-label","aria-selected"],Y=["aria-label","aria-selected"],_e=ue({__name:"PageSidebarNav",props:{active:{},primaryLabel:{},hideModeSwitch:{type:Boolean}},emits:["primary"],setup(c,{emit:t}){const o=c,I=t,{t:r}=pe(),m=Pe(),{openSessionSearch:y}=De(),v=$(()=>o.primaryLabel||r("chat.newChat")),w=$(()=>!o.hideModeSwitch),k=$(()=>o.active==="history"?r("chat.sessions"):r("sidebar.history"));function _(){o.active!=="chat"&&m.push({name:"hermes.chat"})}function h(){if(o.active==="history"){m.push({name:"hermes.chat"});return}m.push({name:"hermes.history"})}function b(){o.active!=="group"&&m.push({name:"hermes.groupChat"})}function T(){o.active!=="workflow"&&m.push({name:"hermes.workflow"})}function U(){typeof window>"u"||window.open("https://apikey.fun/register?aff=LIBAPI","_blank","noopener,noreferrer")}return(V,n)=>(S(),B("div",K,[e("div",L,[e("button",{class:"page-sidebar-tab",type:"button",onClick:n[0]||(n[0]=P=>I("primary"))},[n[2]||(n[2]=e("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)),e("span",null,p(v.value),1)]),e("button",{class:"page-sidebar-tab",type:"button",onClick:n[1]||(n[1]=(...P)=>i(y)&&i(y)(...P))},[n[3]||(n[3]=e("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[e("circle",{cx:"11",cy:"11",r:"7"}),e("path",{d:"m20 20-3.5-3.5"})],-1)),e("span",null,p(i(r)("sidebar.search")),1)]),e("button",{class:"page-sidebar-tab",type:"button",onClick:h},[c.active==="history"?(S(),B("svg",J,[...n[4]||(n[4]=[e("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"},null,-1)])])):(S(),B("svg",G,[...n[5]||(n[5]=[e("circle",{cx:"12",cy:"12",r:"9"},null,-1),e("path",{d:"M12 7v5l3 2"},null,-1)])])),e("span",null,p(k.value),1)]),e("button",{class:"page-sidebar-tab",type:"button",onClick:U},[n[6]||(n[6]=e("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[e("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),e("polyline",{points:"15 3 21 3 21 9"}),e("line",{x1:"10",y1:"14",x2:"21",y2:"3"})],-1)),e("span",null,p(i(r)("sidebar.apiRelay")),1)])]),w.value?(S(),B("div",Q,[l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:E(["conversation-switch-tab",{active:c.active==="chat"||c.active==="history"}]),type:"button",role:"tab","aria-label":i(r)("sidebar.singleChat"),"aria-selected":c.active==="chat"||c.active==="history",onClick:_},[...n[7]||(n[7]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e("path",{d:"M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})],-1)])],10,W)]),default:u(()=>[C(" "+p(i(r)("sidebar.singleChat")),1)]),_:1}),l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:E(["conversation-switch-tab",{active:c.active==="group"}]),type:"button",role:"tab","aria-label":i(r)("sidebar.groupChat"),"aria-selected":c.active==="group",onClick:b},[...n[8]||(n[8]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e("path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}),e("circle",{cx:"9",cy:"7",r:"4"}),e("path",{d:"M22 21v-2a4 4 0 0 0-3-3.87"}),e("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})],-1)])],10,X)]),default:u(()=>[C(" "+p(i(r)("sidebar.groupChat")),1)]),_:1}),l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:E(["conversation-switch-tab",{active:c.active==="workflow"}]),type:"button",role:"tab","aria-label":i(r)("sidebar.workflow"),"aria-selected":c.active==="workflow",onClick:T},[...n[9]||(n[9]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e("circle",{cx:"5",cy:"12",r:"3"}),e("circle",{cx:"19",cy:"6",r:"3"}),e("circle",{cx:"19",cy:"18",r:"3"}),e("path",{d:"M8 12h3a4 4 0 0 0 4-4V6"}),e("path",{d:"M8 12h3a4 4 0 0 1 4 4v2"})],-1)])],10,Y)]),default:u(()=>[C(" "+p(i(r)("sidebar.workflow")),1)]),_:1})])):Ue("",!0)]))}})})),Fe=f((()=>{})),Re,rt=f((()=>{Z(),Z(),Fe(),me(),Re=ge(_e,[["__scopeId","data-v-400f6bfe"]])}));async function ze(){return x("/api/mcu-devices")}async function Ee(c){return x("/api/mcu-devices",{method:"POST",body:JSON.stringify(c)})}async function Ve(c,t){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}`,{method:"PATCH",body:JSON.stringify({name:t})})}async function je(c){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}`,{method:"DELETE"})}async function He(c){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}/remote-connect`,{method:"POST"})}async function Oe(c){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}/remote-disconnect`,{method:"POST"})}var qe=f((()=>{Ce()})),ee,te,ie,ae,se,ne,ce,oe,re,be,le=f((()=>{he(),de(),ve(),qe(),ee=["aria-label"],te={class:"mcu-device-dialog"},ie={class:"mcu-device-header"},ae={class:"mcu-device-title"},se={class:"mcu-device-subtitle"},ne=["aria-label"],ce={class:"mcu-device-table"},oe={class:"mcu-device-actions"},re="https://hermes-studio.ai/docs/hermes-esp32-intro/index.html",be=ue({__name:"SettingsCircuitBadge",setup(c){const{t}=pe(),o=Te(),I=Be(),r=g(!1),m=g(!1),y=g(!1),v=g(!1),w=g(0),k=g(!1),_=g([]),h=g({name:"",device_code:""}),b=g({id:0,name:""});function T(a){return D(O,{size:"small",type:a?"success":"default",bordered:!1},{default:()=>t(a?"mcuDevices.connected":"mcuDevices.disconnected")})}const U=$(()=>[{title:t("mcuDevices.name"),key:"name",ellipsis:{tooltip:!0}},{title:t("mcuDevices.deviceCode"),key:"device_code",ellipsis:{tooltip:!0}},{title:t("mcuDevices.channel"),key:"is_official",width:96,render(a){return D(O,{size:"small",type:a.is_official?"success":"warning",bordered:!1},{default:()=>a.is_official?t("mcuDevices.official"):t("mcuDevices.unofficial")})}},{title:t("mcuDevices.lanStatus"),key:"lan_connected",width:96,render(a){return T(a.lan_connected)}},{title:t("mcuDevices.remoteStatus"),key:"remote_connected",width:96,render(a){return T(a.remote_connected)}},{title:t("mcuDevices.actions"),key:"actions",width:220,render(a){return D(Ie,{size:4},{default:()=>[D(M,{size:"tiny",quaternary:!0,onClick:()=>ye(a)},{default:()=>t("mcuDevices.edit")}),D(M,{size:"tiny",quaternary:!0,type:a.remote_connected?"warning":"primary",loading:w.value===a.id,disabled:w.value!==0||!a.is_official&&!a.remote_connected,onClick:()=>we(a)},{default:()=>a.remote_connected?t("mcuDevices.remoteDisconnect"):t("mcuDevices.remoteConnect")}),D(M,{size:"tiny",quaternary:!0,type:"error",onClick:()=>ke(a)},{default:()=>t("mcuDevices.delete")})]})}}]);async function V(){y.value=!0;try{_.value=(await ze()).devices}catch(a){o.error(a?.message||t("mcuDevices.loadFailed"))}finally{y.value=!1}}function n(){r.value=!0,V()}function P(){h.value={name:"",device_code:""},m.value=!0}function fe(){window.open(re,"_blank","noopener,noreferrer")}async function j(){const a=h.value.device_code.trim();if(!a)return o.warning(t("mcuDevices.deviceCodeRequired")),!1;v.value=!0;try{_.value=(await Ee({name:h.value.name.trim(),device_code:a})).devices,h.value={name:"",device_code:""},m.value=!1,o.success(t("mcuDevices.added"))}catch(s){return o.error(s?.message||t("mcuDevices.addFailed")),!1}finally{v.value=!1}}function ye(a){b.value={id:a.id,name:a.name},k.value=!0}async function H(){if(b.value.id){v.value=!0;try{_.value=(await Ve(b.value.id,b.value.name)).devices,k.value=!1,o.success(t("mcuDevices.nameUpdated"))}catch(a){o.error(a?.message||t("mcuDevices.nameUpdateFailed"))}finally{v.value=!1}}}async function we(a){w.value=a.id;try{_.value=(a.remote_connected?await Oe(a.id):await He(a.id)).devices,o.success(t(a.remote_connected?"mcuDevices.remoteDisconnected":"mcuDevices.remoteConnected"))}catch(s){o.error(s?.message||t(a.remote_connected?"mcuDevices.remoteDisconnectFailed":"mcuDevices.remoteConnectFailed"))}finally{w.value=0}}function ke(a){I.warning({title:t("mcuDevices.deleteTitle"),content:t("mcuDevices.deleteConfirm",{name:a.name||a.device_code}),positiveText:t("mcuDevices.delete"),negativeText:t("common.cancel"),onPositiveClick:async()=>{v.value=!0;try{_.value=(await je(a.id)).devices,o.success(t("mcuDevices.deleted"))}catch(s){return o.error(s?.message||t("mcuDevices.deleteFailed")),!1}finally{v.value=!1}}})}return(a,s)=>(S(),B($e,null,[l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:"settings-circuit-link",type:"button","aria-label":i(t)("mcuDevices.title"),onClick:R(n,["stop"])},[...s[7]||(s[7]=[e("svg",{class:"settings-circuit-badge settings-circuit-badge--pcb",viewBox:"0 0 36 22",fill:"none","aria-hidden":"true"},[e("rect",{class:"settings-pcb-board",x:"3",y:"3",width:"30",height:"16",rx:"3"}),e("path",{class:"settings-pcb-copper",d:"M7 7h6v4h7v-3h9"}),e("path",{class:"settings-pcb-copper",d:"M7 15h5v-3h5v4h12"}),e("path",{class:"settings-pcb-copper",d:"M12 7v-2h8"}),e("path",{class:"settings-pcb-copper",d:"M24 15v2h5"}),e("path",{class:"settings-pcb-current settings-pcb-current-main",d:"M7 7h6v4h7v-3h9"}),e("path",{class:"settings-pcb-current settings-pcb-current-main settings-pcb-current-late",d:"M7 15h5v-3h5v4h12"}),e("path",{class:"settings-pcb-current settings-pcb-current-branch",d:"M12 7v-2h8"}),e("path",{class:"settings-pcb-current settings-pcb-current-branch settings-pcb-current-late",d:"M24 15v2h5"}),e("circle",{class:"settings-pcb-pad settings-pcb-pad-live",cx:"7",cy:"7",r:"1.2"}),e("circle",{class:"settings-pcb-pad",cx:"13",cy:"11",r:"1"}),e("circle",{class:"settings-pcb-pad settings-pcb-pad-live",cx:"20",cy:"11",r:"1.2"}),e("circle",{class:"settings-pcb-pad",cx:"29",cy:"8",r:"1"}),e("circle",{class:"settings-pcb-pad settings-pcb-pad-live settings-pcb-pad-late",cx:"17",cy:"12",r:"1.2"}),e("circle",{class:"settings-pcb-pad",cx:"29",cy:"15",r:"1"}),e("circle",{class:"settings-pcb-via",cx:"20",cy:"5",r:"0.8"}),e("circle",{class:"settings-pcb-via",cx:"29",cy:"17",r:"0.8"})],-1)])],8,ee)]),default:u(()=>[C(" "+p(i(t)("mcuDevices.title")),1)]),_:1}),l(i(F),{show:r.value,"onUpdate:show":s[1]||(s[1]=d=>r.value=d),"show-icon":!1},{default:u(()=>[e("div",te,[e("div",ie,[e("div",null,[e("div",ae,p(i(t)("mcuDevices.title")),1),e("div",se,p(i(t)("mcuDevices.subtitle")),1)]),e("button",{class:"mcu-device-close",type:"button","aria-label":i(t)("mcuDevices.close"),onClick:s[0]||(s[0]=d=>r.value=!1)},[...s[8]||(s[8]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[e("path",{d:"M18 6 6 18"}),e("path",{d:"m6 6 12 12"})],-1)])],8,ne)]),e("div",ce,[l(i(Me),{style:{height:"100%"},size:"small",columns:U.value,data:_.value,loading:y.value,bordered:!1,"single-line":!1,"row-key":d=>d.id,"flex-height":""},null,8,["columns","data","loading","row-key"])]),e("div",oe,[l(i(M),{type:"primary",onClick:P},{default:u(()=>[C(p(i(t)("mcuDevices.add")),1)]),_:1}),l(i(M),{secondary:"",onClick:fe},{default:u(()=>[C(p(i(t)("mcuDevices.purchase")),1)]),_:1})])])]),_:1},8,["show"]),l(i(F),{show:m.value,"onUpdate:show":s[4]||(s[4]=d=>m.value=d),preset:"dialog",title:i(t)("mcuDevices.addTitle"),"positive-text":i(t)("mcuDevices.add"),"negative-text":i(t)("common.cancel"),"positive-button-props":{loading:v.value},onPositiveClick:j},{default:u(()=>[l(i(Se),{"label-placement":"top"},{default:u(()=>[l(i(A),{label:i(t)("mcuDevices.name")},{default:u(()=>[l(i(z),{value:h.value.name,"onUpdate:value":s[2]||(s[2]=d=>h.value.name=d),placeholder:i(t)("mcuDevices.nameOptional"),disabled:v.value},null,8,["value","placeholder","disabled"])]),_:1},8,["label"]),l(i(A),{label:i(t)("mcuDevices.deviceCode"),required:""},{default:u(()=>[l(i(z),{value:h.value.device_code,"onUpdate:value":s[3]||(s[3]=d=>h.value.device_code=d),placeholder:i(t)("mcuDevices.deviceCodePlaceholder"),disabled:v.value,onKeydown:q(R(j,["prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title","positive-text","negative-text","positive-button-props"]),l(i(F),{show:k.value,"onUpdate:show":s[6]||(s[6]=d=>k.value=d),preset:"dialog",title:i(t)("mcuDevices.editNameTitle"),"positive-text":i(t)("common.save"),"negative-text":i(t)("common.cancel"),"positive-button-props":{loading:v.value},onPositiveClick:H},{default:u(()=>[l(i(z),{value:b.value.name,"onUpdate:value":s[5]||(s[5]=d=>b.value.name=d),placeholder:i(t)("mcuDevices.nameOptional"),disabled:v.value,onKeydown:q(R(H,["prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"])]),_:1},8,["show","title","positive-text","negative-text","positive-button-props"])],64))}})})),Ae=f((()=>{})),Ke,lt=f((()=>{le(),le(),Ae(),me(),Ke=ge(be,[["__scopeId","data-v-b9f910d1"]])}));export{rt as i,lt as n,Re as r,Ke as t};
1
+ import{$i as u,$t as M,Ai as D,Di as ue,E as De,Hi as S,M as de,Nr as ve,Pr as pe,Qr as Ce,Sa as p,T as xe,Ti as l,Tt as Me,_a as i,_i as e,_t as F,at as Se,bi as B,bt as Be,dn as O,ei as x,fi as q,gi as $,gt as Te,ii as Pe,jt as N,mi as $e,n as me,ni as Ne,pi as R,rt as A,si as he,sn as z,st as Ie,t as ge,ua as g,wa as f,wi as C,ya as E,yi as Ue}from"./index-DN4SafrP.js";var K,L,J,G,Q,W,X,Y,_e,Z=f((()=>{he(),de(),ve(),Ne(),xe(),K={class:"page-sidebar-nav"},L={class:"page-sidebar-tabs",role:"tablist","aria-label":"Chat actions"},J={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},G={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},Q={key:0,class:"conversation-switch conversation-switch--three",role:"tablist","aria-label":"Conversation type"},W=["aria-label","aria-selected"],X=["aria-label","aria-selected"],Y=["aria-label","aria-selected"],_e=ue({__name:"PageSidebarNav",props:{active:{},primaryLabel:{},hideModeSwitch:{type:Boolean}},emits:["primary"],setup(c,{emit:t}){const o=c,I=t,{t:r}=pe(),m=Pe(),{openSessionSearch:y}=De(),v=$(()=>o.primaryLabel||r("chat.newChat")),w=$(()=>!o.hideModeSwitch),k=$(()=>o.active==="history"?r("chat.sessions"):r("sidebar.history"));function _(){o.active!=="chat"&&m.push({name:"hermes.chat"})}function h(){if(o.active==="history"){m.push({name:"hermes.chat"});return}m.push({name:"hermes.history"})}function b(){o.active!=="group"&&m.push({name:"hermes.groupChat"})}function T(){o.active!=="workflow"&&m.push({name:"hermes.workflow"})}function U(){typeof window>"u"||window.open("https://apikey.fun/register?aff=LIBAPI","_blank","noopener,noreferrer")}return(V,n)=>(S(),B("div",K,[e("div",L,[e("button",{class:"page-sidebar-tab",type:"button",onClick:n[0]||(n[0]=P=>I("primary"))},[n[2]||(n[2]=e("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e("line",{x1:"5",y1:"12",x2:"19",y2:"12"})],-1)),e("span",null,p(v.value),1)]),e("button",{class:"page-sidebar-tab",type:"button",onClick:n[1]||(n[1]=(...P)=>i(y)&&i(y)(...P))},[n[3]||(n[3]=e("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[e("circle",{cx:"11",cy:"11",r:"7"}),e("path",{d:"m20 20-3.5-3.5"})],-1)),e("span",null,p(i(r)("sidebar.search")),1)]),e("button",{class:"page-sidebar-tab",type:"button",onClick:h},[c.active==="history"?(S(),B("svg",J,[...n[4]||(n[4]=[e("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"},null,-1)])])):(S(),B("svg",G,[...n[5]||(n[5]=[e("circle",{cx:"12",cy:"12",r:"9"},null,-1),e("path",{d:"M12 7v5l3 2"},null,-1)])])),e("span",null,p(k.value),1)]),e("button",{class:"page-sidebar-tab",type:"button",onClick:U},[n[6]||(n[6]=e("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[e("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),e("polyline",{points:"15 3 21 3 21 9"}),e("line",{x1:"10",y1:"14",x2:"21",y2:"3"})],-1)),e("span",null,p(i(r)("sidebar.apiRelay")),1)])]),w.value?(S(),B("div",Q,[l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:E(["conversation-switch-tab",{active:c.active==="chat"||c.active==="history"}]),type:"button",role:"tab","aria-label":i(r)("sidebar.singleChat"),"aria-selected":c.active==="chat"||c.active==="history",onClick:_},[...n[7]||(n[7]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e("path",{d:"M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})],-1)])],10,W)]),default:u(()=>[C(" "+p(i(r)("sidebar.singleChat")),1)]),_:1}),l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:E(["conversation-switch-tab",{active:c.active==="group"}]),type:"button",role:"tab","aria-label":i(r)("sidebar.groupChat"),"aria-selected":c.active==="group",onClick:b},[...n[8]||(n[8]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e("path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}),e("circle",{cx:"9",cy:"7",r:"4"}),e("path",{d:"M22 21v-2a4 4 0 0 0-3-3.87"}),e("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})],-1)])],10,X)]),default:u(()=>[C(" "+p(i(r)("sidebar.groupChat")),1)]),_:1}),l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:E(["conversation-switch-tab",{active:c.active==="workflow"}]),type:"button",role:"tab","aria-label":i(r)("sidebar.workflow"),"aria-selected":c.active==="workflow",onClick:T},[...n[9]||(n[9]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},[e("circle",{cx:"5",cy:"12",r:"3"}),e("circle",{cx:"19",cy:"6",r:"3"}),e("circle",{cx:"19",cy:"18",r:"3"}),e("path",{d:"M8 12h3a4 4 0 0 0 4-4V6"}),e("path",{d:"M8 12h3a4 4 0 0 1 4 4v2"})],-1)])],10,Y)]),default:u(()=>[C(" "+p(i(r)("sidebar.workflow")),1)]),_:1})])):Ue("",!0)]))}})})),Fe=f((()=>{})),Re,rt=f((()=>{Z(),Z(),Fe(),me(),Re=ge(_e,[["__scopeId","data-v-400f6bfe"]])}));async function ze(){return x("/api/mcu-devices")}async function Ee(c){return x("/api/mcu-devices",{method:"POST",body:JSON.stringify(c)})}async function Ve(c,t){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}`,{method:"PATCH",body:JSON.stringify({name:t})})}async function je(c){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}`,{method:"DELETE"})}async function He(c){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}/remote-connect`,{method:"POST"})}async function Oe(c){return x(`/api/mcu-devices/${encodeURIComponent(String(c))}/remote-disconnect`,{method:"POST"})}var qe=f((()=>{Ce()})),ee,te,ie,ae,se,ne,ce,oe,re,be,le=f((()=>{he(),de(),ve(),qe(),ee=["aria-label"],te={class:"mcu-device-dialog"},ie={class:"mcu-device-header"},ae={class:"mcu-device-title"},se={class:"mcu-device-subtitle"},ne=["aria-label"],ce={class:"mcu-device-table"},oe={class:"mcu-device-actions"},re="https://hermes-studio.ai/docs/hermes-esp32-intro/index.html",be=ue({__name:"SettingsCircuitBadge",setup(c){const{t}=pe(),o=Te(),I=Be(),r=g(!1),m=g(!1),y=g(!1),v=g(!1),w=g(0),k=g(!1),_=g([]),h=g({name:"",device_code:""}),b=g({id:0,name:""});function T(a){return D(O,{size:"small",type:a?"success":"default",bordered:!1},{default:()=>t(a?"mcuDevices.connected":"mcuDevices.disconnected")})}const U=$(()=>[{title:t("mcuDevices.name"),key:"name",ellipsis:{tooltip:!0}},{title:t("mcuDevices.deviceCode"),key:"device_code",ellipsis:{tooltip:!0}},{title:t("mcuDevices.channel"),key:"is_official",width:96,render(a){return D(O,{size:"small",type:a.is_official?"success":"warning",bordered:!1},{default:()=>a.is_official?t("mcuDevices.official"):t("mcuDevices.unofficial")})}},{title:t("mcuDevices.lanStatus"),key:"lan_connected",width:96,render(a){return T(a.lan_connected)}},{title:t("mcuDevices.remoteStatus"),key:"remote_connected",width:96,render(a){return T(a.remote_connected)}},{title:t("mcuDevices.actions"),key:"actions",width:220,render(a){return D(Ie,{size:4},{default:()=>[D(M,{size:"tiny",quaternary:!0,onClick:()=>ye(a)},{default:()=>t("mcuDevices.edit")}),D(M,{size:"tiny",quaternary:!0,type:a.remote_connected?"warning":"primary",loading:w.value===a.id,disabled:w.value!==0||!a.is_official&&!a.remote_connected,onClick:()=>we(a)},{default:()=>a.remote_connected?t("mcuDevices.remoteDisconnect"):t("mcuDevices.remoteConnect")}),D(M,{size:"tiny",quaternary:!0,type:"error",onClick:()=>ke(a)},{default:()=>t("mcuDevices.delete")})]})}}]);async function V(){y.value=!0;try{_.value=(await ze()).devices}catch(a){o.error(a?.message||t("mcuDevices.loadFailed"))}finally{y.value=!1}}function n(){r.value=!0,V()}function P(){h.value={name:"",device_code:""},m.value=!0}function fe(){window.open(re,"_blank","noopener,noreferrer")}async function j(){const a=h.value.device_code.trim();if(!a)return o.warning(t("mcuDevices.deviceCodeRequired")),!1;v.value=!0;try{_.value=(await Ee({name:h.value.name.trim(),device_code:a})).devices,h.value={name:"",device_code:""},m.value=!1,o.success(t("mcuDevices.added"))}catch(s){return o.error(s?.message||t("mcuDevices.addFailed")),!1}finally{v.value=!1}}function ye(a){b.value={id:a.id,name:a.name},k.value=!0}async function H(){if(b.value.id){v.value=!0;try{_.value=(await Ve(b.value.id,b.value.name)).devices,k.value=!1,o.success(t("mcuDevices.nameUpdated"))}catch(a){o.error(a?.message||t("mcuDevices.nameUpdateFailed"))}finally{v.value=!1}}}async function we(a){w.value=a.id;try{_.value=(a.remote_connected?await Oe(a.id):await He(a.id)).devices,o.success(t(a.remote_connected?"mcuDevices.remoteDisconnected":"mcuDevices.remoteConnected"))}catch(s){o.error(s?.message||t(a.remote_connected?"mcuDevices.remoteDisconnectFailed":"mcuDevices.remoteConnectFailed"))}finally{w.value=0}}function ke(a){I.warning({title:t("mcuDevices.deleteTitle"),content:t("mcuDevices.deleteConfirm",{name:a.name||a.device_code}),positiveText:t("mcuDevices.delete"),negativeText:t("common.cancel"),onPositiveClick:async()=>{v.value=!0;try{_.value=(await je(a.id)).devices,o.success(t("mcuDevices.deleted"))}catch(s){return o.error(s?.message||t("mcuDevices.deleteFailed")),!1}finally{v.value=!1}}})}return(a,s)=>(S(),B($e,null,[l(i(N),{trigger:"hover",placement:"top"},{trigger:u(()=>[e("button",{class:"settings-circuit-link",type:"button","aria-label":i(t)("mcuDevices.title"),onClick:R(n,["stop"])},[...s[7]||(s[7]=[e("svg",{class:"settings-circuit-badge settings-circuit-badge--pcb",viewBox:"0 0 36 22",fill:"none","aria-hidden":"true"},[e("rect",{class:"settings-pcb-board",x:"3",y:"3",width:"30",height:"16",rx:"3"}),e("path",{class:"settings-pcb-copper",d:"M7 7h6v4h7v-3h9"}),e("path",{class:"settings-pcb-copper",d:"M7 15h5v-3h5v4h12"}),e("path",{class:"settings-pcb-copper",d:"M12 7v-2h8"}),e("path",{class:"settings-pcb-copper",d:"M24 15v2h5"}),e("path",{class:"settings-pcb-current settings-pcb-current-main",d:"M7 7h6v4h7v-3h9"}),e("path",{class:"settings-pcb-current settings-pcb-current-main settings-pcb-current-late",d:"M7 15h5v-3h5v4h12"}),e("path",{class:"settings-pcb-current settings-pcb-current-branch",d:"M12 7v-2h8"}),e("path",{class:"settings-pcb-current settings-pcb-current-branch settings-pcb-current-late",d:"M24 15v2h5"}),e("circle",{class:"settings-pcb-pad settings-pcb-pad-live",cx:"7",cy:"7",r:"1.2"}),e("circle",{class:"settings-pcb-pad",cx:"13",cy:"11",r:"1"}),e("circle",{class:"settings-pcb-pad settings-pcb-pad-live",cx:"20",cy:"11",r:"1.2"}),e("circle",{class:"settings-pcb-pad",cx:"29",cy:"8",r:"1"}),e("circle",{class:"settings-pcb-pad settings-pcb-pad-live settings-pcb-pad-late",cx:"17",cy:"12",r:"1.2"}),e("circle",{class:"settings-pcb-pad",cx:"29",cy:"15",r:"1"}),e("circle",{class:"settings-pcb-via",cx:"20",cy:"5",r:"0.8"}),e("circle",{class:"settings-pcb-via",cx:"29",cy:"17",r:"0.8"})],-1)])],8,ee)]),default:u(()=>[C(" "+p(i(t)("mcuDevices.title")),1)]),_:1}),l(i(F),{show:r.value,"onUpdate:show":s[1]||(s[1]=d=>r.value=d),"show-icon":!1},{default:u(()=>[e("div",te,[e("div",ie,[e("div",null,[e("div",ae,p(i(t)("mcuDevices.title")),1),e("div",se,p(i(t)("mcuDevices.subtitle")),1)]),e("button",{class:"mcu-device-close",type:"button","aria-label":i(t)("mcuDevices.close"),onClick:s[0]||(s[0]=d=>r.value=!1)},[...s[8]||(s[8]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[e("path",{d:"M18 6 6 18"}),e("path",{d:"m6 6 12 12"})],-1)])],8,ne)]),e("div",ce,[l(i(Me),{style:{height:"100%"},size:"small",columns:U.value,data:_.value,loading:y.value,bordered:!1,"single-line":!1,"row-key":d=>d.id,"flex-height":""},null,8,["columns","data","loading","row-key"])]),e("div",oe,[l(i(M),{type:"primary",onClick:P},{default:u(()=>[C(p(i(t)("mcuDevices.add")),1)]),_:1}),l(i(M),{secondary:"",onClick:fe},{default:u(()=>[C(p(i(t)("mcuDevices.purchase")),1)]),_:1})])])]),_:1},8,["show"]),l(i(F),{show:m.value,"onUpdate:show":s[4]||(s[4]=d=>m.value=d),preset:"dialog",title:i(t)("mcuDevices.addTitle"),"positive-text":i(t)("mcuDevices.add"),"negative-text":i(t)("common.cancel"),"positive-button-props":{loading:v.value},onPositiveClick:j},{default:u(()=>[l(i(Se),{"label-placement":"top"},{default:u(()=>[l(i(A),{label:i(t)("mcuDevices.name")},{default:u(()=>[l(i(z),{value:h.value.name,"onUpdate:value":s[2]||(s[2]=d=>h.value.name=d),placeholder:i(t)("mcuDevices.nameOptional"),disabled:v.value},null,8,["value","placeholder","disabled"])]),_:1},8,["label"]),l(i(A),{label:i(t)("mcuDevices.deviceCode"),required:""},{default:u(()=>[l(i(z),{value:h.value.device_code,"onUpdate:value":s[3]||(s[3]=d=>h.value.device_code=d),placeholder:i(t)("mcuDevices.deviceCodePlaceholder"),disabled:v.value,onKeydown:q(R(j,["prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title","positive-text","negative-text","positive-button-props"]),l(i(F),{show:k.value,"onUpdate:show":s[6]||(s[6]=d=>k.value=d),preset:"dialog",title:i(t)("mcuDevices.editNameTitle"),"positive-text":i(t)("common.save"),"negative-text":i(t)("common.cancel"),"positive-button-props":{loading:v.value},onPositiveClick:H},{default:u(()=>[l(i(z),{value:b.value.name,"onUpdate:value":s[5]||(s[5]=d=>b.value.name=d),placeholder:i(t)("mcuDevices.nameOptional"),disabled:v.value,onKeydown:q(R(H,["prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"])]),_:1},8,["show","title","positive-text","negative-text","positive-button-props"])],64))}})})),Ae=f((()=>{})),Ke,lt=f((()=>{le(),le(),Ae(),me(),Ke=ge(be,[["__scopeId","data-v-b9f910d1"]])}));export{rt as i,lt as n,Re as r,Ke as t};
@@ -1 +1 @@
1
- import{$ as Ce,$i as l,$r as Xs,$t as A,Ai as O,Bi as be,Di as K,G as _s,Hi as $,I as ze,M as G,Nr as j,Oa as Vs,Pr as J,Qr as ms,Ri as Ks,Sa as m,Ti as s,Tt as Ae,U as R,V as ie,Wi as gs,Zi as fs,_a as e,_i as h,_t as we,at as Ue,bi as N,ca as $e,d as Gs,dn as me,ei as ge,fi as Oe,gi as q,gt as le,hn as js,ii as Js,ln as Se,mi as hs,n as Q,ni as Qs,ri as Zs,rt as W,si as Z,sn as B,st as _e,t as ee,tt as V,ua as H,vi as se,w as Le,wa as S,wi as T,ya as ea,yi as ae,z as ta,zt as ue}from"./index-DnjQJzX4.js";import{c as sa,f as aa,g as Fe,h as Re,i as la,l as na,m as ia,n as oa,o as ra,p as ua,r as da,s as ca,t as pa,u as ys}from"./auth-D1ZFqv22.js";import{r as He,t as Ie}from"./profiles-D-vlI-Ec.js";import{n as ce,t as pe}from"./settings-pbanANH0.js";import{a as va,i as Me,n as Pe,r as Ee,s as _a,t as ma}from"./completion-notification-XxjbntI8.js";import{n as ga,t as fa}from"./models-wrytxWnf.js";import{n as ha,r as ya,t as ba}from"./ProfileAvatar-DI9ciJxS.js";import{n as fe,t as k}from"./SettingRow-CSfiJmxx.js";import{n as wa,t as ka}from"./session-browser-prefs-Br8OYA4_.js";import{n as Sa,t as Ne}from"./chat-input-height-CSPwB9it.js";var We,De,qe,Be,bs,Ye=S((()=>{Z(),G(),j(),pe(),va(),ma(),Sa(),fe(),We={class:"settings-section"},De={class:"notify-controls"},qe={class:"notify-controls"},Be={class:"chat-input-height-controls"},bs=K({__name:"DisplaySettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o=q(()=>Ne(t.display.chat_input_height));async function c(y){try{await t.saveSection("display",y),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}}function b(y){return c({chat_input_height:Ne(y)})}function p(){return c({chat_input_height:null})}function d(y){return y.reason==="insecure"?"settings.display.notifyOnCompleteInsecure":y.reason==="unsupported"?"settings.display.notifyOnCompleteUnsupported":"settings.display.notifyOnCompleteDenied"}function i(y){return y&&_a(),c({approval_bell:y})}async function _(y){if(y){const U=await Pe();if(!U.granted){n.error(a(d(U)));return}if(!await Me({title:"Hermes",body:a("settings.display.notifyOnApprovalTest"),icon:"/coding-agents/hermes.png",tag:`hermes-approval-test-${Date.now()}`},{requireBackground:!1,deduplicate:!1})){n.error(a("settings.display.notifyOnApprovalTestFailed"));return}}await c({notify_on_approval:y})}async function w(){const y=await Pe();if(!y.granted){n.error(a(d(y)));return}if(!await Me({title:"Hermes",body:a("settings.display.notifyOnApprovalTest"),icon:"/coding-agents/hermes.png",tag:`hermes-approval-test-${Date.now()}`},{requireBackground:!1,deduplicate:!1})){n.error(a("settings.display.notifyOnApprovalTestFailed"));return}n.success(a("settings.display.notifyOnApprovalTestSent"))}async function v(y){if(y){const U=await Pe();if(!U.granted){n.error(a(d(U)));return}}await c({notify_on_complete:y}),y&&Ee({title:"Hermes",body:a("settings.display.notifyOnCompleteTest"),icon:"/coding-agents/hermes.png",tag:`hermes-complete-test-${Date.now()}`})}async function I(){const y=await Pe();if(!y.granted){n.error(a(d(y)));return}if(!await Ee({title:"Hermes",body:a("settings.display.notifyOnCompleteTest"),icon:"/coding-agents/hermes.png",tag:`hermes-complete-test-${Date.now()}`})){n.error(a("settings.display.notifyOnCompleteTestFailed"));return}n.success(a("settings.display.notifyOnCompleteTestSent"))}return(y,U)=>($(),N("section",We,[s(k,{label:e(a)("settings.display.streaming"),hint:e(a)("settings.display.streamingHint")},{default:l(()=>[s(e(R),{value:e(t).display.streaming,"onUpdate:value":U[0]||(U[0]=F=>c({streaming:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.compact"),hint:e(a)("settings.display.compactHint")},{default:l(()=>[s(e(R),{value:e(t).display.compact,"onUpdate:value":U[1]||(U[1]=F=>c({compact:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.showReasoning"),hint:e(a)("settings.display.showReasoningHint")},{default:l(()=>[s(e(R),{value:e(t).display.show_reasoning,"onUpdate:value":U[2]||(U[2]=F=>c({show_reasoning:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.showCost"),hint:e(a)("settings.display.showCostHint")},{default:l(()=>[s(e(R),{value:e(t).display.show_cost,"onUpdate:value":U[3]||(U[3]=F=>c({show_cost:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.inlineDiffs"),hint:e(a)("settings.display.inlineDiffsHint")},{default:l(()=>[s(e(R),{value:e(t).display.inline_diffs,"onUpdate:value":U[4]||(U[4]=F=>c({inline_diffs:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.bellOnComplete"),hint:e(a)("settings.display.bellOnCompleteHint")},{default:l(()=>[s(e(R),{value:e(t).display.bell_on_complete,"onUpdate:value":U[5]||(U[5]=F=>c({bell_on_complete:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.approvalBell"),hint:e(a)("settings.display.approvalBellHint")},{default:l(()=>[s(e(R),{value:e(t).display.approval_bell,"onUpdate:value":i},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.notifyOnApproval"),hint:`${e(a)("settings.display.notifyOnApprovalHint")} ${e(a)("settings.display.notifyOnCompleteMacHint")}`},{default:l(()=>[h("div",De,[s(e(R),{value:e(t).display.notify_on_approval,"onUpdate:value":_},null,8,["value"]),s(e(A),{size:"tiny",secondary:"",onClick:w},{default:l(()=>[T(m(e(a)("settings.display.notifyOnApprovalTestButton")),1)]),_:1})])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.notifyOnComplete"),hint:`${e(a)("settings.display.notifyOnCompleteHint")} ${e(a)("settings.display.notifyOnCompleteMacHint")}`},{default:l(()=>[h("div",qe,[s(e(R),{value:e(t).display.notify_on_complete,"onUpdate:value":v},null,8,["value"]),s(e(A),{size:"tiny",secondary:"",onClick:I},{default:l(()=>[T(m(e(a)("settings.display.notifyOnCompleteTestButton")),1)]),_:1})])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.chatInputHeight"),hint:e(a)("settings.display.chatInputHeightHint")},{default:l(()=>[h("div",Be,[s(e(V),{value:o.value,min:e(48),max:e(400),step:8,"show-button":!1,size:"small",class:"input-sm","onUpdate:value":b},{suffix:l(()=>[...U[6]||(U[6]=[T("px",-1)])]),_:1},8,["value","min","max"]),s(e(A),{size:"tiny",secondary:"",onClick:p},{default:l(()=>[T(m(e(a)("common.reset")),1)]),_:1})])]),_:1},8,["label","hint"])]))}})})),Pa=S((()=>{})),ws,Ca=S((()=>{Ye(),Ye(),Pa(),Q(),ws=ee(bs,[["__scopeId","data-v-47366f95"]])})),Xe,ks,Ve=S((()=>{Z(),G(),j(),pe(),fe(),Xe={class:"settings-section"},ks=K({__name:"AgentSettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o={};function c(p){t.updateLocal("agent",p),t.saveSection("agent",p).then(()=>{n.success(a("settings.saved"))}).catch(()=>{n.error(a("settings.saveFailed"))})}function b(p,d){t.updateLocal("agent",{[p]:d}),o[p]&&clearTimeout(o[p]),o[p]=setTimeout(async()=>{try{await t.saveSection("agent",{[p]:d}),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}},300)}return(p,d)=>($(),N("section",Xe,[s(k,{label:e(a)("settings.agent.maxTurns"),hint:e(a)("settings.agent.maxTurnsHint")},{default:l(()=>[s(e(V),{value:e(t).agent.max_turns,min:1,step:5,size:"small",class:"input-sm","onUpdate:value":d[0]||(d[0]=i=>i!=null&&b("max_turns",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.agent.gatewayTimeout"),hint:e(a)("settings.agent.gatewayTimeoutHint")},{default:l(()=>[s(e(V),{value:e(t).agent.gateway_timeout,min:0,max:7200,step:60,size:"small",class:"input-sm","onUpdate:value":d[1]||(d[1]=i=>i!=null&&b("gateway_timeout",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.agent.restartDrainTimeout"),hint:e(a)("settings.agent.restartDrainTimeoutHint")},{default:l(()=>[s(e(V),{value:e(t).agent.restart_drain_timeout,min:10,max:300,step:10,size:"small",class:"input-sm","onUpdate:value":d[2]||(d[2]=i=>i!=null&&b("restart_drain_timeout",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.agent.toolEnforcement"),hint:e(a)("settings.agent.toolEnforcementHint")},{default:l(()=>[s(e(ue),{value:e(t).agent.tool_use_enforcement||"auto",options:[{label:e(a)("settings.agent.auto"),value:"auto"},{label:e(a)("settings.agent.always"),value:"always"},{label:e(a)("settings.agent.never"),value:"never"}],size:"small",class:"input-sm","onUpdate:value":d[3]||(d[3]=i=>c({tool_use_enforcement:i}))},null,8,["value","options"])]),_:1},8,["label","hint"])]))}})})),Ua=S((()=>{})),Ss,xa=S((()=>{Ve(),Ve(),Ua(),Q(),Ss=ee(ks,[["__scopeId","data-v-b0cd608d"]])})),Ke,Ge,je,Ps,Je=S((()=>{Z(),G(),j(),pe(),Ie(),fe(),Ke={class:"settings-section gateway-auto-start-settings"},Ge={class:"section-title"},je={class:"section-hint"},Ps=K({__name:"GatewayAutoStartSettings",setup(D){const t=ce(),n=He(),a=le(),{t:o}=J(),c=q(()=>t.gatewayAutoStart.enabled!==!1),b=q(()=>Array.isArray(t.gatewayAutoStart.include)?"include":"all"),p=q(()=>t.gatewayAutoStart.management==="unified"),d=q(()=>t.gatewayAutoStart.include||[]),i=q(()=>t.gatewayAutoStart.exclude||[]),_=q(()=>(n.activeProfileName||n.activeProfile?.name||"default")==="default"),w=q(()=>n.profiles.map(M=>({label:M.name,value:M.name}))),v=q(()=>[{label:o("settings.gatewayAutoStart.modeAll"),value:"all"},{label:o("settings.gatewayAutoStart.modeInclude"),value:"include"}]);function I(M){const Y=new Set,oe=[];for(const g of M){const P=String(g||"").trim();!P||Y.has(P)||(Y.add(P),oe.push(P))}return oe}async function y(M){try{t.updateLocal("gatewayAutoStart",M),await t.saveSection("gatewayAutoStart",M,{restart:!1}),await t.fetchSettings(),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}}function U(M){y(M==="include"?{include:t.gatewayAutoStart.include||[],exclude:null}:{include:null})}function F(M){y({management:M?"unified":"per_profile"})}function te(M){y({include:I(M),exclude:null})}function u(M){const Y=I(M);y({exclude:Y.length>0?Y:null})}return(M,Y)=>($(),N("section",Ke,[h("h3",Ge,m(e(o)("settings.gatewayAutoStart.title")),1),h("p",je,m(e(o)("settings.gatewayAutoStart.description")),1),s(k,{label:e(o)("settings.gatewayAutoStart.enabled"),hint:e(o)("settings.gatewayAutoStart.enabledHint")},{default:l(()=>[s(e(R),{value:c.value,"onUpdate:value":Y[0]||(Y[0]=oe=>y({enabled:oe}))},null,8,["value"])]),_:1},8,["label","hint"]),_.value?($(),se(k,{key:0,label:e(o)("settings.gatewayAutoStart.management"),hint:e(o)("settings.gatewayAutoStart.managementHint")},{default:l(()=>[s(e(R),{value:p.value,"onUpdate:value":F},null,8,["value"])]),_:1},8,["label","hint"])):ae("",!0),s(k,{label:e(o)("settings.gatewayAutoStart.mode"),hint:e(o)("settings.gatewayAutoStart.modeHint")},{default:l(()=>[s(e(ue),{value:b.value,options:v.value,size:"small",class:"input-md","onUpdate:value":U},null,8,["value","options"])]),_:1},8,["label","hint"]),b.value==="include"?($(),se(k,{key:1,label:e(o)("settings.gatewayAutoStart.include"),hint:e(o)("settings.gatewayAutoStart.includeHint")},{default:l(()=>[s(e(ue),{multiple:"",filterable:"",value:d.value,options:w.value,size:"small",class:"input-md",placeholder:e(o)("settings.gatewayAutoStart.profileListPlaceholder"),"onUpdate:value":te},null,8,["value","options","placeholder"])]),_:1},8,["label","hint"])):ae("",!0),b.value==="all"?($(),se(k,{key:2,label:e(o)("settings.gatewayAutoStart.exclude"),hint:e(o)("settings.gatewayAutoStart.excludeHint")},{default:l(()=>[s(e(ue),{multiple:"",filterable:"",value:i.value,options:w.value,size:"small",class:"input-md",placeholder:e(o)("settings.gatewayAutoStart.profileListPlaceholder"),"onUpdate:value":u},null,8,["value","options","placeholder"])]),_:1},8,["label","hint"])):ae("",!0)]))}})})),Ta=S((()=>{})),Cs,Aa=S((()=>{Je(),Je(),Ta(),Q(),Cs=ee(Ps,[["__scopeId","data-v-a9b52cd2"]])})),Qe,Ze,et,tt,Us,st=S((()=>{Z(),G(),j(),pe(),fe(),Qe={class:"settings-section proxy-settings"},Ze={class:"section-title"},et={class:"section-hint"},tt={class:"settings-actions"},Us=K({__name:"ProxySettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o=["HTTPS_PROXY","HTTP_PROXY","ALL_PROXY","NO_PROXY"],c=$e({HTTPS_PROXY:"",HTTP_PROXY:"",ALL_PROXY:"",NO_PROXY:""});fs(()=>t.proxy,p=>{for(const d of o)c[d]=String(p?.[d]||"")},{immediate:!0,deep:!0});async function b(){try{await t.saveSection("proxy",{...c}),await t.fetchSettings(),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}}return(p,d)=>($(),N("section",Qe,[h("h3",Ze,m(e(a)("settings.proxy.title")),1),h("p",et,m(e(a)("settings.proxy.description")),1),s(k,{label:e(a)("settings.proxy.httpsProxy"),hint:e(a)("settings.proxy.httpsProxyHint")},{default:l(()=>[s(e(B),{value:c.HTTPS_PROXY,"onUpdate:value":d[0]||(d[0]=i=>c.HTTPS_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"http://127.0.0.1:7890"},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.proxy.httpProxy"),hint:e(a)("settings.proxy.httpProxyHint")},{default:l(()=>[s(e(B),{value:c.HTTP_PROXY,"onUpdate:value":d[1]||(d[1]=i=>c.HTTP_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"http://127.0.0.1:7890"},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.proxy.allProxy"),hint:e(a)("settings.proxy.allProxyHint")},{default:l(()=>[s(e(B),{value:c.ALL_PROXY,"onUpdate:value":d[2]||(d[2]=i=>c.ALL_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"socks5://127.0.0.1:7890"},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.proxy.noProxy"),hint:e(a)("settings.proxy.noProxyHint")},{default:l(()=>[s(e(B),{value:c.NO_PROXY,"onUpdate:value":d[3]||(d[3]=i=>c.NO_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"localhost,127.0.0.1,.local"},null,8,["value"])]),_:1},8,["label","hint"]),h("div",tt,[s(e(A),{type:"primary",loading:e(t).saving,onClick:b},{default:l(()=>[T(m(e(a)("settings.proxy.save")),1)]),_:1},8,["loading"])])]))}})})),$a=S((()=>{})),xs,Ha=S((()=>{st(),st(),$a(),Q(),xs=ee(Us,[["__scopeId","data-v-393316a4"]])})),at,Ts,lt=S((()=>{Z(),G(),j(),pe(),fe(),at={class:"settings-section"},Ts=K({__name:"MemorySettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o={};function c(p){t.updateLocal("memory",p),t.saveSection("memory",p).then(()=>{n.success(a("settings.saved"))}).catch(()=>{n.error(a("settings.saveFailed"))})}function b(p,d){t.updateLocal("memory",{[p]:d}),o[p]&&clearTimeout(o[p]),o[p]=setTimeout(async()=>{try{await t.saveSection("memory",{[p]:d}),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}},300)}return(p,d)=>($(),N("section",at,[s(k,{label:e(a)("settings.memory.enabled"),hint:e(a)("settings.memory.enabledHint")},{default:l(()=>[s(e(R),{value:e(t).memory.memory_enabled,"onUpdate:value":d[0]||(d[0]=i=>c({memory_enabled:i}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.memory.userProfile"),hint:e(a)("settings.memory.userProfileHint")},{default:l(()=>[s(e(R),{value:e(t).memory.user_profile_enabled,"onUpdate:value":d[1]||(d[1]=i=>c({user_profile_enabled:i}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.memory.charLimit"),hint:e(a)("settings.memory.charLimitHint")},{default:l(()=>[s(e(V),{value:e(t).memory.memory_char_limit,min:100,max:1e4,step:100,size:"small",class:"input-sm","onUpdate:value":d[2]||(d[2]=i=>i!=null&&b("memory_char_limit",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.memory.userCharLimit"),hint:e(a)("settings.memory.userCharLimitHint")},{default:l(()=>[s(e(V),{value:e(t).memory.user_char_limit,min:100,max:1e4,step:100,size:"small",class:"input-sm","onUpdate:value":d[3]||(d[3]=i=>i!=null&&b("user_char_limit",i))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Ia=S((()=>{})),As,za=S((()=>{lt(),lt(),Ia(),Q(),As=ee(Ts,[["__scopeId","data-v-b2529605"]])})),nt,$s,it=S((()=>{Z(),G(),j(),pe(),fe(),nt={class:"settings-section"},$s=K({__name:"CompressionSettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o={enabled:!0,threshold:.5,target_ratio:.2,protect_last_n:20,protect_first_n:3},c={};function b(d){t.updateLocal("compression",d),t.saveSection("compression",d).then(()=>{n.success(a("settings.saved"))}).catch(()=>{n.error(a("settings.saveFailed"))})}function p(d,i){t.updateLocal("compression",{[d]:i}),c[d]&&clearTimeout(c[d]),c[d]=setTimeout(async()=>{try{await t.saveSection("compression",{[d]:i}),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}},300)}return(d,i)=>($(),N("section",nt,[s(k,{label:e(a)("settings.compression.enabled"),hint:e(a)("settings.compression.enabledHint")},{default:l(()=>[s(e(R),{value:e(t).compression.enabled??o.enabled,size:"small","onUpdate:value":i[0]||(i[0]=_=>b({enabled:_}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.threshold"),hint:e(a)("settings.compression.thresholdHint")},{default:l(()=>[s(e(V),{value:e(t).compression.threshold??o.threshold,min:.1,max:.95,step:.05,size:"small",class:"input-sm","onUpdate:value":i[1]||(i[1]=_=>_!=null&&p("threshold",_))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.targetRatio"),hint:e(a)("settings.compression.targetRatioHint")},{default:l(()=>[s(e(V),{value:e(t).compression.target_ratio??o.target_ratio,min:.05,max:.8,step:.05,size:"small",class:"input-sm","onUpdate:value":i[2]||(i[2]=_=>_!=null&&p("target_ratio",_))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.protectLastN"),hint:e(a)("settings.compression.protectLastNHint")},{default:l(()=>[s(e(V),{value:e(t).compression.protect_last_n??o.protect_last_n,min:0,max:200,step:1,size:"small",class:"input-sm","onUpdate:value":i[3]||(i[3]=_=>_!=null&&p("protect_last_n",_))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.protectFirstN"),hint:e(a)("settings.compression.protectFirstNHint")},{default:l(()=>[s(e(V),{value:e(t).compression.protect_first_n??o.protect_first_n,min:0,max:50,step:1,size:"small",class:"input-sm","onUpdate:value":i[4]||(i[4]=_=>_!=null&&p("protect_first_n",_))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Oa=S((()=>{})),Hs,La=S((()=>{it(),it(),Oa(),Q(),Hs=ee($s,[["__scopeId","data-v-b584a6a0"]])})),ot,Is,rt=S((()=>{Z(),G(),j(),pe(),ka(),fe(),ot={class:"settings-section"},Is=K({__name:"SessionSettings",setup(D){const t=ce(),n=wa(),a=le(),{t:o}=J(),c={};function b(_){t.updateLocal("session_reset",_),t.saveSection("session_reset",_).then(()=>{a.success(o("settings.saved"))}).catch(()=>{a.error(o("settings.saveFailed"))})}function p(_,w){t.updateLocal("session_reset",{[_]:w}),c[_]&&clearTimeout(c[_]),c[_]=setTimeout(async()=>{try{await t.saveSection("session_reset",{[_]:w}),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}},300)}async function d(_){try{await t.saveSection("approvals",{mode:_?"manual":"off"}),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}}async function i(_,w){try{t.updateLocal(_,{write_approval:w}),await t.saveSection(_,{write_approval:w}),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}}return(_,w)=>($(),N("section",ot,[s(k,{label:e(o)("settings.session.requireAuth"),hint:e(o)("settings.session.requireAuthHint")},{default:l(()=>[s(e(R),{value:e(t).approvals.mode==="manual","onUpdate:value":d},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.memoryWriteApproval"),hint:e(o)("settings.session.memoryWriteApprovalHint")},{default:l(()=>[s(e(R),{value:e(t).memory.write_approval===!0,"onUpdate:value":w[0]||(w[0]=v=>i("memory",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.skillsWriteApproval"),hint:e(o)("settings.session.skillsWriteApprovalHint")},{default:l(()=>[s(e(R),{value:e(t).skills.write_approval===!0,"onUpdate:value":w[1]||(w[1]=v=>i("skills",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.mode"),hint:e(o)("settings.session.modeHint")},{default:l(()=>[s(e(ue),{value:e(t).sessionReset.mode||"both",options:[{label:e(o)("settings.session.modeBoth"),value:"both"},{label:e(o)("settings.session.modeIdle"),value:"idle"},{label:e(o)("settings.session.modeDaily"),value:"daily"},{label:e(o)("settings.session.modeNone"),value:"none"}],size:"small",class:"input-md","onUpdate:value":w[2]||(w[2]=v=>b({mode:v}))},null,8,["value","options"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.idleMinutes"),hint:e(o)("settings.session.idleMinutesHint")},{default:l(()=>[s(e(V),{value:e(t).sessionReset.idle_minutes,min:10,max:10080,step:30,size:"small",class:"input-sm","onUpdate:value":w[3]||(w[3]=v=>v!=null&&p("idle_minutes",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.atHour"),hint:e(o)("settings.session.atHourHint")},{default:l(()=>[s(e(V),{value:e(t).sessionReset.at_hour,min:0,max:23,step:1,size:"small",class:"input-sm","onUpdate:value":w[4]||(w[4]=v=>v!=null&&p("at_hour",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.liveMonitorHumanOnly"),hint:e(o)("settings.session.liveMonitorHumanOnlyHint")},{default:l(()=>[s(e(R),{value:e(n).humanOnly,"onUpdate:value":w[5]||(w[5]=v=>e(n).setHumanOnly(v))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Fa=S((()=>{})),zs,Ra=S((()=>{rt(),rt(),Fa(),Q(),zs=ee(Is,[["__scopeId","data-v-5027aa2c"]])})),ut,Os,dt=S((()=>{Z(),G(),j(),pe(),fe(),ut={class:"settings-section"},Os=K({__name:"PrivacySettings",setup(D){const t=ce(),n=le(),{t:a}=J();async function o(c){try{await t.saveSection("privacy",c),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}}return(c,b)=>($(),N("section",ut,[s(k,{label:e(a)("settings.privacy.redactPii"),hint:e(a)("settings.privacy.redactPiiHint")},{default:l(()=>[s(e(R),{value:e(t).privacy.redact_pii,"onUpdate:value":b[0]||(b[0]=p=>o({redact_pii:p}))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Ma=S((()=>{})),Ls,Ea=S((()=>{dt(),dt(),Ma(),Q(),Ls=ee(Os,[["__scopeId","data-v-43145f27"]])})),ct,pt,vt,_t,mt,gt,ft,ht,Fs,yt=S((()=>{Z(),G(),fa(),Gs(),j(),ct={class:"settings-section"},pt={key:0,class:"empty-hint"},vt={class:"provider-header"},_t={class:"provider-name"},mt={key:0,class:"provider-fields"},gt={class:"field-row"},ft={key:1,class:"provider-fields"},ht={class:"field-row"},Fs=K({__name:"ModelSettings",setup(D){const{t}=J(),n=ga(),a=le(),o=H(null),c=H({});be(()=>{n.providers.length===0&&n.fetchProviders()});const b=_=>!n.providers.find(w=>w.provider===_)?.builtin&&_.startsWith("custom:");function p(_){if(!(_ in c.value)){const w=n.providers.find(v=>v.provider===_);c.value[_]=w?.api_key||""}return c.value[_]}async function d(_){const w=p(_);if(!w.trim()){a.warning(t("settings.models.apiKeyPlaceholder"));return}o.value=_;try{await Le(_,{api_key:w.trim()}),a.success(t("settings.models.saved")),await n.fetchProviders()}catch(v){a.error(v.message||t("settings.models.saveFailed"))}finally{o.value=null}}async function i(_){const w=p(_);o.value=_;try{await Le(_,{api_key:w.trim()}),a.success(t("settings.models.saved")),await n.fetchProviders()}catch(v){a.error(v.message||t("settings.models.saveFailed"))}finally{o.value=null}}return(_,w)=>($(),N("section",ct,[s(e(_s),{show:e(n).loading},{default:l(()=>[e(n).providers.length===0?($(),N("div",pt,[s(e(js),{description:e(t)("settings.models.noProviders")},null,8,["description"])])):ae("",!0),($(!0),N(hs,null,gs(e(n).providers,v=>($(),N("div",{key:v.provider,class:"provider-section"},[h("div",vt,[h("h4",_t,m(v.label),1),h("span",{class:ea(["type-badge",b(v.provider)?"custom":"builtin"])},m(b(v.provider)?e(t)("models.customType"):e(t)("models.builtIn")),3)]),b(v.provider)?($(),N("div",ft,[h("div",ht,[s(e(B),{value:p(v.provider),type:"password","show-password-on":"click",placeholder:e(t)("settings.models.apiKeyPlaceholder"),autocomplete:"off","onUpdate:value":I=>c.value[v.provider]=I},null,8,["value","placeholder","onUpdate:value"]),s(e(A),{type:"primary",size:"small",loading:o.value===v.provider,onClick:I=>i(v.provider)},{default:l(()=>[T(m(e(t)("settings.models.save")),1)]),_:1},8,["loading","onClick"])])])):($(),N("div",mt,[h("div",gt,[s(e(B),{value:p(v.provider),type:"password","show-password-on":"click",placeholder:e(t)("settings.models.apiKeyPlaceholder"),autocomplete:"off","onUpdate:value":I=>c.value[v.provider]=I},null,8,["value","placeholder","onUpdate:value"]),s(e(A),{type:"primary",size:"small",loading:o.value===v.provider,onClick:I=>d(v.provider)},{default:l(()=>[T(m(e(t)("settings.models.save")),1)]),_:1},8,["loading","onClick"])])]))]))),128))]),_:1},8,["show"])]))}})})),Na=S((()=>{})),Rs,Wa=S((()=>{yt(),yt(),Na(),Q(),Rs=ee(Fs,[["__scopeId","data-v-8cd750e1"]])})),bt,wt,kt,St,Pt,Ct,Ut,xt,Tt,At,$t,Ht,It,zt,Ot,Lt,Ft,Rt,Mt,Et,Nt,Wt,Dt,qt,Bt,Ms,Yt=S((()=>{Z(),G(),j(),ys(),ha(),bt=Vs(ya()),wt={class:"account-settings"},kt={class:"section-desc"},St={class:"avatar-section"},Pt={class:"section-title"},Ct={class:"avatar-row"},Ut={class:"avatar-display"},xt={class:"avatar-actions"},Tt={class:"avatar-hint"},At={class:"action-buttons"},$t={class:"configured-section"},Ht={class:"action-row"},It={class:"action-label"},zt={class:"action-buttons"},Ot={class:"locked-ips-section"},Lt={class:"section-title"},Ft={class:"action-row",style:{"margin-bottom":"12px"}},Rt={class:"action-label"},Mt={class:"action-buttons"},Et={key:0,class:"locked-list"},Nt={class:"locked-info"},Wt={class:"locked-ip"},Dt={class:"locked-badge"},qt={class:"locked-ttl"},Bt={key:1,class:"empty-hint"},Ms=K({__name:"AccountSettings",setup(D){const{t}=J(),n=le(),a=H(null),o=H(!1),c=H(null),b=H(null),p=H(!1);function d(L,C){return new Promise((x,X)=>{const ve=new FileReader;ve.onload=()=>{const re=new Image;re.onload=()=>{const ne=document.createElement("canvas");ne.width=re.width,ne.height=re.height,ne.getContext("2d").drawImage(re,0,0);const ke=r=>{const f=ne.toDataURL("image/jpeg",r);f.length<=C||r<=.3?x(f):ke(r-.1)};ke(.8)},re.onerror=X,re.src=ve.result},ve.onerror=X,ve.readAsDataURL(L)})}async function i(L){const C=L.target,x=C.files?.[0];if(x){if(!["image/png","image/jpeg","image/webp"].includes(x.type)){n.error(t("settings.userAvatar.invalidType")),C.value="";return}if(x.size>1024*1024){n.error(t("settings.userAvatar.tooLarge")),C.value="";return}p.value=!0;try{let X;x.size>500*1024?X=await d(x,500*1024):X=await new Promise((ve,re)=>{const ne=new FileReader;ne.onload=()=>ve(ne.result),ne.onerror=re,ne.readAsDataURL(x)}),await Fe({type:"image",dataUrl:X}),c.value={type:"image",dataUrl:X},n.success(t("settings.userAvatar.saveSuccess"))}catch(X){n.error(X.message||t("settings.userAvatar.saveFailed"))}finally{p.value=!1,C.value=""}}}async function _(){p.value=!0;try{const L=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():Math.random().toString(36).slice(2),C=`${a.value||"default"}-${Date.now()}-${L}`,x=(0,bt.default)(C),X="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(x)));await Fe({type:"image",dataUrl:X,seed:C}),c.value={type:"image",dataUrl:X,seed:C},n.success(t("settings.userAvatar.saveSuccess"))}catch(L){n.error(L.message||t("settings.userAvatar.saveFailed"))}finally{p.value=!1}}async function w(){p.value=!0;try{await aa(),c.value={type:"default",seed:a.value||"default"},n.success(t("settings.userAvatar.resetSuccess"))}catch(L){n.error(L.message||t("settings.userAvatar.resetFailed"))}finally{p.value=!1}}const v=H(!1),I=H(""),y=H(""),U=H(""),F=H(!1),te=H(""),u=H("");be(async()=>{try{a.value=(await ra()).username}catch{}try{c.value=await na()||{type:"default",seed:a.value||"default"}}catch{}});async function M(){if(y.value!==U.value){n.error(t("login.passwordMismatch"));return}if(y.value.length<6){n.error(t("login.passwordTooShort"));return}o.value=!0;try{await pa(I.value,y.value),v.value=!1,I.value="",y.value="",U.value="",n.success(t("login.passwordChanged"))}catch(L){n.error(L.message||t("common.saveFailed"))}finally{o.value=!1}}async function Y(){if(u.value.trim().length<2){n.error(t("login.usernameTooShort"));return}o.value=!0;try{await oa(te.value,u.value.trim()),a.value=u.value.trim(),F.value=!1,te.value="",u.value="",n.success(t("login.usernameChanged"))}catch(L){n.error(L.message||t("common.saveFailed"))}finally{o.value=!1}}function oe(){I.value="",y.value="",U.value="",v.value=!0}function g(){te.value="",u.value="",F.value=!0}const P=H([]),E=H(!1);async function ye(){E.value=!0;try{P.value=await ca()}catch{}finally{E.value=!1}}async function de(L){try{await ia(L),n.success(t("settings.lockedIps.unlocked")),await ye()}catch(C){n.error(C.message||t("common.saveFailed"))}}async function he(){try{const L=await ua();n.success(t("settings.lockedIps.allUnlocked",{count:L})),await ye()}catch(L){n.error(L.message||t("common.saveFailed"))}}function xe(L){const C=Math.max(0,Math.round((L-Date.now())/6e4));return C>0?`${C} min`:t("common.expired")}function Te(L){return t(`settings.lockedIps.type.${L}`)}return be(()=>{ye()}),(L,C)=>($(),N("div",wt,[h("p",kt,m(e(t)("login.setupDescription")),1),h("div",St,[h("h3",Pt,m(e(t)("settings.userAvatar.title")),1),h("div",Ct,[h("div",Ut,[s(ba,{name:a.value||"default",avatar:c.value?.type==="image"&&c.value.dataUrl?{type:"image",dataUrl:c.value.dataUrl}:null,size:80},null,8,["name","avatar"])]),h("div",xt,[h("p",Tt,m(e(t)("settings.userAvatar.hint")),1),h("div",At,[s(e(A),{onClick:C[0]||(C[0]=x=>b.value?.click())},{default:l(()=>[T(m(e(t)("settings.userAvatar.upload")),1)]),_:1}),s(e(A),{onClick:_,loading:p.value},{default:l(()=>[T(m(e(t)("settings.userAvatar.random")),1)]),_:1},8,["loading"]),s(e(A),{onClick:w,loading:p.value},{default:l(()=>[T(m(e(t)("settings.userAvatar.reset")),1)]),_:1},8,["loading"])]),h("input",{ref_key:"avatarFileInput",ref:b,type:"file",accept:".png,.jpg,.jpeg,.webp",style:{display:"none"},onChange:i},null,544)])])]),h("div",$t,[h("div",Ht,[h("span",It,m(e(t)("login.passwordLoginConfigured",{username:a.value})),1),h("div",zt,[s(e(A),{onClick:oe},{default:l(()=>[T(m(e(t)("login.changePassword")),1)]),_:1}),s(e(A),{onClick:g},{default:l(()=>[T(m(e(t)("login.changeUsername")),1)]),_:1})])])]),h("div",Ot,[h("h3",Lt,m(e(t)("settings.lockedIps.title")),1),h("div",Ft,[h("span",Rt,m(e(t)("settings.lockedIps.count",{count:P.value.length})),1),h("div",Mt,[s(e(A),{size:"small",loading:E.value,onClick:ye},{default:l(()=>[T(m(e(t)("common.retry")),1)]),_:1},8,["loading"]),P.value.length>0?($(),se(e(Ce),{key:0,onPositiveClick:he},{trigger:l(()=>[s(e(A),{size:"small",type:"warning"},{default:l(()=>[T(m(e(t)("settings.lockedIps.unlockAll")),1)]),_:1})]),default:l(()=>[T(" "+m(e(t)("settings.lockedIps.unlockAllConfirm")),1)]),_:1})):ae("",!0)])]),P.value.length>0?($(),N("div",Et,[($(!0),N(hs,null,gs(P.value,x=>($(),N("div",{key:x.ip+x.type,class:"locked-item"},[h("div",Nt,[h("span",Wt,m(x.ip),1),h("span",Dt,m(Te(x.type)),1),h("span",qt,m(xe(x.lockedUntil)),1)]),s(e(A),{size:"tiny",type:"error",ghost:"",onClick:X=>de(x.ip)},{default:l(()=>[T(m(e(t)("settings.lockedIps.unlock")),1)]),_:1},8,["onClick"])]))),128))])):($(),N("p",Bt,m(e(t)("settings.lockedIps.empty")),1))]),s(e(we),{show:v.value,"onUpdate:show":C[5]||(C[5]=x=>v.value=x),preset:"dialog",title:e(t)("login.changePassword")},{action:l(()=>[s(e(A),{onClick:C[4]||(C[4]=x=>v.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:o.value,onClick:M},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("login.currentPassword")},{default:l(()=>[s(e(B),{value:I.value,"onUpdate:value":C[1]||(C[1]=x=>I.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.currentPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("login.newPassword")},{default:l(()=>[s(e(B),{value:y.value,"onUpdate:value":C[2]||(C[2]=x=>y.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.newPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("login.confirmPassword")},{default:l(()=>[s(e(B),{value:U.value,"onUpdate:value":C[3]||(C[3]=x=>U.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.confirmPassword"),onKeyup:Oe(M,["enter"])},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title"]),s(e(we),{show:F.value,"onUpdate:show":C[9]||(C[9]=x=>F.value=x),preset:"dialog",title:e(t)("login.changeUsername")},{action:l(()=>[s(e(A),{onClick:C[8]||(C[8]=x=>F.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:o.value,onClick:Y},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("login.currentPassword")},{default:l(()=>[s(e(B),{value:te.value,"onUpdate:value":C[6]||(C[6]=x=>te.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.currentPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("login.newUsername")},{default:l(()=>[s(e(B),{value:u.value,"onUpdate:value":C[7]||(C[7]=x=>u.value=x),placeholder:e(t)("login.usernamePlaceholder"),onKeyup:Oe(Y,["enter"])},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title"])]))}})})),Da=S((()=>{})),Es,qa=S((()=>{Yt(),Yt(),Da(),Q(),Es=ee(Ms,[["__scopeId","data-v-61e79d43"]])})),Xt,Vt,Kt,Gt,Ns,jt=S((()=>{Z(),G(),j(),ys(),Xt={class:"user-management"},Vt={class:"toolbar"},Kt={class:"section-title"},Gt={class:"section-desc"},Ns=K({__name:"UserManagementSettings",setup(D){const{t}=J(),n=le(),a=H(!1),o=H(!1),c=H([]),b=H([]),p=H(!1),d=H(null),i=$e({username:"",password:"",role:"admin",status:"active",profiles:[]}),_=q(()=>[{label:t("users.roles.admin"),value:"admin"},{label:t("users.roles.superAdmin"),value:"super_admin"}]),w=q(()=>[{label:t("users.status.active"),value:"active"},{label:t("users.status.disabled"),value:"disabled"}]),v=q(()=>b.value.map(g=>({label:g,value:g})));function I(){d.value=null,i.username="",i.password="",i.role="admin",i.status="active",i.profiles=[]}async function y(){a.value=!0;try{const g=await sa();c.value=g.users,b.value=g.profiles}catch(g){n.error(g.message||t("users.loadFailed"))}finally{a.value=!1}}function U(){I(),p.value=!0}function F(g){d.value=g,i.username=g.username,i.password="",i.role=g.role,i.status=g.status,i.profiles=[...g.profiles],p.value=!0}async function te(){if(i.username.trim().length<2){n.error(t("login.usernameTooShort"));return}if(!d.value&&i.password.length<6){n.error(t("login.passwordTooShort"));return}if(i.password&&i.password.length<6){n.error(t("login.passwordTooShort"));return}o.value=!0;try{const g={username:i.username.trim(),password:i.password||void 0,role:i.role,status:i.status,profiles:i.role==="super_admin"?[]:i.profiles,defaultProfile:i.profiles[0]||null},P=d.value?await Re(d.value.id,g):await da({...g,password:i.password});c.value=P.users,b.value=P.profiles,p.value=!1,I(),n.success(t("common.saved"))}catch(g){n.error(g.message||t("common.saveFailed"))}finally{o.value=!1}}async function u(g,P){o.value=!0;try{const E=await Re(g.id,{status:P});c.value=E.users,b.value=E.profiles,n.success(t("common.saved"))}catch(E){n.error(E.message||t("common.saveFailed"))}finally{o.value=!1}}async function M(g){o.value=!0;try{const P=await la(g.id);c.value=P.users,b.value=P.profiles,n.success(t("common.saved"))}catch(P){n.error(P.message||t("common.deleteFailed"))}finally{o.value=!1}}function Y(g){return g?new Date(g).toLocaleString():"-"}const oe=q(()=>[{title:t("users.username"),key:"username",minWidth:140},{title:t("users.role"),key:"role",width:130,render:g=>O(me,{size:"small",type:g.role==="super_admin"?"warning":"default"},{default:()=>g.role==="super_admin"?t("users.roles.superAdmin"):t("users.roles.admin")})},{title:t("users.statusLabel"),key:"status",width:110,render:g=>O(me,{size:"small",type:g.status==="active"?"success":"error"},{default:()=>g.status==="active"?t("users.status.active"):t("users.status.disabled")})},{title:t("users.profiles"),key:"profiles",minWidth:200,render:g=>g.role==="super_admin"?O("span",{class:"muted"},t("users.allProfiles")):O(_e,{size:4},{default:()=>g.profiles.length?g.profiles.map(P=>O(me,{size:"small",bordered:!1},{default:()=>P})):O("span",{class:"muted"},t("users.noProfiles"))})},{title:t("users.lastLogin"),key:"last_login_at",minWidth:170,render:g=>Y(g.last_login_at)},{title:t("common.edit"),key:"actions",width:280,fixed:"right",render:g=>O(_e,{size:8},{default:()=>[O(A,{size:"small",onClick:()=>F(g)},{default:()=>t("common.edit")}),O(A,{size:"small",type:g.status==="active"?"warning":"primary",ghost:!0,loading:o.value,onClick:()=>u(g,g.status==="active"?"disabled":"active")},{default:()=>g.status==="active"?t("users.disable"):t("users.enable")}),O(Ce,{onPositiveClick:()=>M(g)},{trigger:()=>O(A,{size:"small",type:"error",ghost:!0,loading:o.value},{default:()=>t("common.delete")}),default:()=>t("users.deleteConfirm")})]})}]);return be(y),(g,P)=>($(),N("div",Xt,[h("div",Vt,[h("div",null,[h("h3",Kt,m(e(t)("users.title")),1),h("p",Gt,m(e(t)("users.description")),1)]),s(e(A),{type:"primary",onClick:U},{default:l(()=>[T(m(e(t)("users.create")),1)]),_:1})]),s(e(Ae),{columns:oe.value,data:c.value,loading:a.value,bordered:!1,"single-line":!1,"scroll-x":1080,size:"small"},null,8,["columns","data","loading"]),s(e(we),{show:p.value,"onUpdate:show":P[6]||(P[6]=E=>p.value=E),preset:"dialog",title:d.value?e(t)("users.edit"):e(t)("users.create")},{action:l(()=>[s(e(A),{onClick:P[5]||(P[5]=E=>p.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:o.value,onClick:te},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("users.username")},{default:l(()=>[s(e(B),{value:i.username,"onUpdate:value":P[0]||(P[0]=E=>i.username=E),placeholder:e(t)("login.usernamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:d.value?e(t)("users.newPasswordOptional"):e(t)("login.newPassword")},{default:l(()=>[s(e(B),{value:i.password,"onUpdate:value":P[1]||(P[1]=E=>i.password=E),type:"password","show-password-on":"click",placeholder:e(t)("login.passwordPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("users.role")},{default:l(()=>[s(e(ue),{value:i.role,"onUpdate:value":P[2]||(P[2]=E=>i.role=E),options:_.value},null,8,["value","options"])]),_:1},8,["label"]),s(e(W),{label:e(t)("users.statusLabel")},{default:l(()=>[s(e(ue),{value:i.status,"onUpdate:value":P[3]||(P[3]=E=>i.status=E),options:w.value},null,8,["value","options"])]),_:1},8,["label"]),i.role!=="super_admin"?($(),se(e(W),{key:0,label:e(t)("users.profiles")},{default:l(()=>[s(e(ue),{value:i.profiles,"onUpdate:value":P[4]||(P[4]=E=>i.profiles=E),multiple:"",filterable:"",options:v.value,placeholder:e(t)("users.profilesPlaceholder")},null,8,["value","options","placeholder"])]),_:1},8,["label"])):ae("",!0)]),_:1})]),_:1},8,["show","title"])]))}})})),Ba=S((()=>{})),Ws,Ya=S((()=>{jt(),jt(),Ba(),Q(),Ws=ee(Ns,[["__scopeId","data-v-97787b2e"]])}));async function Xa(){return(await ge("/api/hermes/webhooks/endpoints")).endpoints}async function Va(D){return(await ge("/api/hermes/webhooks/endpoints",{method:"POST",body:JSON.stringify(D)})).endpoint}async function Jt(D,t){return(await ge(`/api/hermes/webhooks/endpoints/${encodeURIComponent(D)}`,{method:"PATCH",body:JSON.stringify(t)})).endpoint}async function Ka(D){await ge(`/api/hermes/webhooks/endpoints/${encodeURIComponent(D)}`,{method:"DELETE"})}async function Ga(D){return ge(`/api/hermes/webhooks/endpoints/${encodeURIComponent(D)}/test`,{method:"POST"})}async function ja(){return ge("/api/hermes/webhooks/local-test-target")}async function Ja(){return(await ge("/api/hermes/webhooks/local-test-events")).events}async function Qa(){await ge("/api/hermes/webhooks/local-test-events",{method:"DELETE"})}var Za=S((()=>{ms()})),Qt,Zt,es,ts,ss,as,ls,ns,is,os,Ds,rs=S((()=>{Z(),G(),j(),Za(),Ie(),Qt={class:"webhook-settings"},Zt={class:"toolbar"},es={class:"section-title"},ts={class:"section-desc"},ss={class:"local-inbox"},as={class:"toolbar local-inbox-toolbar"},ls={class:"section-title"},ns={class:"section-desc"},is={key:1,class:"local-inbox-empty"},os={class:"payload-preview"},Ds=K({__name:"WebhookSettings",setup(D){const{t}=J(),n=le(),a=He(),o=H([]),c=H(!1),b=H(!1),p=H(null),d=H(!1),i=H([]),_=H(!1),w=H(!1),v=H(null),I=H(!1),y=H(null);let U=null;const F=["chat.message.created","chat.run.queued","chat.run.started","chat.tool.started","chat.tool.completed","chat.tool.failed","chat.approval.requested","chat.approval.resolved","chat.clarification.requested","chat.clarification.resolved","chat.run.completed","chat.run.failed"],te={"chat.message.created":"messageCreated","chat.run.queued":"runQueued","chat.run.started":"runStarted","chat.tool.started":"toolStarted","chat.tool.completed":"toolCompleted","chat.tool.failed":"toolFailed","chat.approval.requested":"approvalRequested","chat.approval.resolved":"approvalResolved","chat.clarification.requested":"clarificationRequested","chat.clarification.resolved":"clarificationResolved","chat.run.completed":"completed","chat.run.failed":"failed"},u=$e({name:"",url:"",secret:"",eventTypes:[...F],profiles:[],enabled:!0,includeContent:!1,includeUserContent:!1,allowPrivateNetwork:!1,maxRetries:3,clearSecret:!1}),M=q(()=>F.map(r=>({label:t(`settings.webhooks.events.${te[r]}`),value:r})));function Y(r){return t(`settings.webhooks.events.${te[r]}`)}const oe=q(()=>a.profiles.map(r=>({label:r.alias||r.name,value:r.name})));function g(){y.value=null,u.name="",u.url="",u.secret="",u.eventTypes=[...F],u.profiles=[],u.enabled=!0,u.includeContent=!1,u.includeUserContent=!1,u.allowPrivateNetwork=!1,u.maxRetries=3,u.clearSecret=!1}function P(){g(),I.value=!0}async function E(){d.value=!0;try{const r=await ja();g(),u.name=t("settings.webhooks.form.localTestName"),u.url=r.url,u.includeContent=!0,u.allowPrivateNetwork=r.allow_private_network,u.enabled=!1,I.value=!0}catch(r){n.error(r?.message||t("settings.webhooks.messages.localTestFailed"))}finally{d.value=!1}}function ye(r){y.value=r,u.name=r.name,u.url=r.url,u.secret="",u.eventTypes=[...r.event_types],u.profiles=[...r.profiles],u.enabled=r.enabled,u.includeContent=r.include_content,u.includeUserContent=r.include_user_content,u.allowPrivateNetwork=r.allow_private_network,u.maxRetries=r.max_retries,u.clearSecret=!1,I.value=!0}async function de(r=!1){r||(c.value=!0);try{o.value=await Xa()}catch(f){r||n.error(f?.message||t("settings.webhooks.messages.loadFailed"))}finally{r||(c.value=!1)}}async function he(r=!1){r||(_.value=!0);try{i.value=await Ja()}catch(f){r||n.error(f?.message||t("settings.webhooks.messages.inboxLoadFailed"))}finally{r||(_.value=!1)}}async function xe(){w.value=!0;try{await Qa(),i.value=[],v.value=null,n.success(t("settings.webhooks.messages.inboxCleared"))}catch(r){n.error(r?.message||t("settings.webhooks.messages.inboxClearFailed"))}finally{w.value=!1}}async function Te(){const r=u.name.trim(),f=u.url.trim();if(!r||!f){n.error(t("settings.webhooks.messages.required"));return}if(u.eventTypes.length===0){n.error(t("settings.webhooks.messages.eventRequired"));return}const z={name:r,url:f,event_types:[...u.eventTypes],profiles:[...u.profiles],enabled:u.enabled,include_content:u.includeContent,include_user_content:u.includeUserContent,allow_private_network:u.allowPrivateNetwork,max_retries:u.maxRetries,...u.secret?{secret:u.secret}:{},...y.value&&u.clearSecret?{clear_secret:!0}:{}};b.value=!0;try{y.value?await Jt(y.value.id,z):await Va(z),I.value=!1,g(),await de(),n.success(t("settings.webhooks.messages.saved"))}catch(Ys){n.error(Ys?.message||t("settings.webhooks.messages.saveFailed"))}finally{b.value=!1}}async function L(r){b.value=!0;try{await Jt(r.id,{enabled:!r.enabled}),await de(),n.success(t("settings.webhooks.messages.saved"))}catch(f){n.error(f?.message||t("settings.webhooks.messages.saveFailed"))}finally{b.value=!1}}async function C(r){p.value=r.id;try{await Ga(r.id),await Promise.all([de(),he(!0)]),n.success(t("settings.webhooks.messages.testSucceeded"))}catch(f){await Promise.all([de(),he(!0)]),n.error(f?.message||t("settings.webhooks.messages.testFailed"))}finally{p.value=null}}async function x(r){b.value=!0;try{await Ka(r.id),await de(),n.success(t("settings.webhooks.messages.deleted"))}catch(f){n.error(f?.message||t("settings.webhooks.messages.deleteFailed"))}finally{b.value=!1}}function X(r){return r==="success"?"success":r==="failed"||r==="dropped"?"error":r==="delivering"||r==="retrying"?"warning":"default"}const ve=q(()=>[{title:t("settings.webhooks.columns.name"),key:"name",minWidth:140},{title:t("settings.webhooks.columns.url"),key:"url",minWidth:260,ellipsis:{tooltip:!0}},{title:t("settings.webhooks.columns.events"),key:"event_types",minWidth:180,render:r=>O(_e,{size:4},{default:()=>r.event_types.map(f=>O(me,{size:"small",bordered:!1},{default:()=>Y(f)}))})},{title:t("settings.webhooks.columns.profiles"),key:"profiles",minWidth:160,render:r=>r.profiles.length?O(_e,{size:4},{default:()=>r.profiles.map(f=>O(me,{size:"small",bordered:!1},{default:()=>f}))}):O(ze,{depth:3},{default:()=>t("settings.webhooks.allProfiles")})},{title:t("settings.webhooks.columns.status"),key:"status",width:150,render:r=>O(_e,{size:4,vertical:!0},{default:()=>[O(me,{size:"small",type:r.enabled?"success":"default"},{default:()=>r.enabled?t("settings.webhooks.status.enabled"):t("settings.webhooks.status.disabled")}),(r.enabled||r.runtime.state!=="idle")&&O(me,{size:"small",type:X(r.runtime.state),bordered:!1},{default:()=>`${t(`settings.webhooks.runtime.${r.runtime.state}`)} · ${t("settings.webhooks.queued",{count:r.runtime.queued})}`})].filter(Boolean)})},{title:t("settings.webhooks.columns.actions"),key:"actions",width:310,fixed:"right",render:r=>O(_e,{size:6,wrap:!1},{default:()=>[O(A,{size:"small",onClick:()=>ye(r)},{default:()=>t("common.edit")}),O(A,{size:"small",loading:p.value===r.id,onClick:()=>C(r)},{default:()=>t("settings.webhooks.actions.test")}),O(A,{size:"small",type:r.enabled?"warning":"primary",ghost:!0,loading:b.value,onClick:()=>L(r)},{default:()=>r.enabled?t("settings.webhooks.actions.disable"):t("settings.webhooks.actions.enable")}),O(Ce,{onPositiveClick:()=>x(r)},{trigger:()=>O(A,{size:"small",type:"error",ghost:!0,loading:b.value},{default:()=>t("common.delete")}),default:()=>t("settings.webhooks.deleteConfirm")})]})}]);function re(r){const f=new Date(r);return Number.isNaN(f.getTime())?r:f.toLocaleString()}function ne(r){return r.endsWith(".failed")?"error":r.endsWith(".requested")||r.endsWith(".queued")?"warning":r.endsWith(".started")?"info":"success"}const ke=q(()=>[{title:t("settings.webhooks.columns.receivedAt"),key:"received_at",width:180,render:r=>re(r.received_at)},{title:t("settings.webhooks.columns.event"),key:"event",minWidth:170,render:r=>O(me,{size:"small",bordered:!1,type:ne(r.event)},{default:()=>r.event})},{title:t("settings.webhooks.columns.eventId"),key:"event_id",minWidth:210,ellipsis:{tooltip:!0}},{title:t("settings.webhooks.columns.deliveryId"),key:"delivery_id",minWidth:210,ellipsis:{tooltip:!0}},{title:t("settings.webhooks.columns.actions"),key:"actions",width:90,fixed:"right",render:r=>O(A,{size:"small",onClick:()=>{v.value=r}},{default:()=>t("settings.webhooks.actions.view")})}]);return be(async()=>{a.profiles.length===0&&await a.fetchProfiles(),await Promise.all([de(),he()]),U=setInterval(()=>{de(!0),he(!0)},5e3)}),Ks(()=>{U&&clearInterval(U),U=null}),(r,f)=>($(),N("div",Qt,[h("div",Zt,[h("div",null,[h("h3",es,m(e(t)("settings.webhooks.title")),1),h("p",ts,m(e(t)("settings.webhooks.description")),1)]),s(e(_e),null,{default:l(()=>[s(e(A),{loading:d.value,onClick:E},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.localTest")),1)]),_:1},8,["loading"]),s(e(A),{type:"primary",onClick:P},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.add")),1)]),_:1})]),_:1})]),s(e(Se),{type:"info","show-icon":!1,class:"delivery-note"},{default:l(()=>[T(m(e(t)("settings.webhooks.deliveryNote")),1)]),_:1}),s(e(Ae),{columns:ve.value,data:o.value,loading:c.value,bordered:!1,"single-line":!1,"scroll-x":1200,size:"small"},null,8,["columns","data","loading"]),h("section",ss,[h("div",as,[h("div",null,[h("h3",ls,m(e(t)("settings.webhooks.localInboxTitle")),1),h("p",ns,m(e(t)("settings.webhooks.localInboxDescription",{count:i.value.length})),1)]),s(e(_e),null,{default:l(()=>[s(e(A),{size:"small",loading:_.value,onClick:f[0]||(f[0]=z=>he())},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.refresh")),1)]),_:1},8,["loading"]),s(e(Ce),{onPositiveClick:xe},{trigger:l(()=>[s(e(A),{size:"small",type:"error",ghost:"",disabled:i.value.length===0,loading:w.value},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.clear")),1)]),_:1},8,["disabled","loading"])]),default:l(()=>[T(" "+m(e(t)("settings.webhooks.clearInboxConfirm")),1)]),_:1})]),_:1})]),_.value||i.value.length>0?($(),se(e(Ae),{key:0,columns:ke.value,data:i.value,loading:_.value,bordered:!1,"single-line":!1,"scroll-x":860,size:"small"},null,8,["columns","data","loading"])):($(),N("div",is,[s(e(ze),{depth:"3"},{default:l(()=>[T(m(e(t)("settings.webhooks.localInboxEmpty")),1)]),_:1})]))]),s(e(we),{show:I.value,"onUpdate:show":f[13]||(f[13]=z=>I.value=z),preset:"dialog",title:y.value?e(t)("settings.webhooks.editTitle"):e(t)("settings.webhooks.createTitle"),style:{width:"min(680px, 92vw)"}},{action:l(()=>[s(e(A),{onClick:f[12]||(f[12]=z=>I.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:b.value,onClick:Te},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("settings.webhooks.form.name"),required:""},{default:l(()=>[s(e(B),{value:u.name,"onUpdate:value":f[1]||(f[1]=z=>u.name=z),placeholder:e(t)("settings.webhooks.form.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.url"),required:""},{default:l(()=>[s(e(B),{value:u.url,"onUpdate:value":f[2]||(f[2]=z=>u.url=z),placeholder:"https://example.com/webhooks/hermes"},null,8,["value"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.secret")},{default:l(()=>[s(e(B),{value:u.secret,"onUpdate:value":f[3]||(f[3]=z=>u.secret=z),type:"password","show-password-on":"click",placeholder:y.value?.has_secret?e(t)("settings.webhooks.form.secretKeepPlaceholder"):e(t)("settings.webhooks.form.secretPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),y.value?.has_secret?($(),se(e(W),{key:0,label:e(t)("settings.webhooks.form.clearSecret"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.clearSecret,"onUpdate:value":f[4]||(f[4]=z=>u.clearSecret=z),disabled:!!u.secret},null,8,["value","disabled"])]),_:1},8,["label"])):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.events"),required:""},{default:l(()=>[s(e(ue),{value:u.eventTypes,"onUpdate:value":f[5]||(f[5]=z=>u.eventTypes=z),multiple:"",options:M.value},null,8,["value","options"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.profiles")},{default:l(()=>[s(e(ue),{value:u.profiles,"onUpdate:value":f[6]||(f[6]=z=>u.profiles=z),multiple:"",filterable:"",options:oe.value,placeholder:e(t)("settings.webhooks.form.profilesPlaceholder")},null,8,["value","options","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.maxRetries")},{default:l(()=>[s(e(V),{value:u.maxRetries,"onUpdate:value":f[7]||(f[7]=z=>u.maxRetries=z),min:0,max:10,precision:0},null,8,["value"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.includeContent"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.includeContent,"onUpdate:value":f[8]||(f[8]=z=>u.includeContent=z)},null,8,["value"])]),_:1},8,["label"]),u.includeContent?($(),se(e(Se),{key:1,type:"warning",class:"form-alert"},{default:l(()=>[T(m(e(t)("settings.webhooks.form.includeContentHint")),1)]),_:1})):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.includeUserContent"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.includeUserContent,"onUpdate:value":f[9]||(f[9]=z=>u.includeUserContent=z)},null,8,["value"])]),_:1},8,["label"]),u.includeUserContent?($(),se(e(Se),{key:2,type:"warning",class:"form-alert"},{default:l(()=>[T(m(e(t)("settings.webhooks.form.includeUserContentHint")),1)]),_:1})):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.allowPrivateNetwork"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.allowPrivateNetwork,"onUpdate:value":f[10]||(f[10]=z=>u.allowPrivateNetwork=z)},null,8,["value"])]),_:1},8,["label"]),u.allowPrivateNetwork?($(),se(e(Se),{key:3,type:"warning",class:"form-alert"},{default:l(()=>[T(m(e(t)("settings.webhooks.form.allowPrivateNetworkHint")),1)]),_:1})):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.enabled"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.enabled,"onUpdate:value":f[11]||(f[11]=z=>u.enabled=z)},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title"]),s(e(we),{show:!!v.value,preset:"card",title:e(t)("settings.webhooks.localInboxPayloadTitle"),style:{width:"min(780px, 92vw)"},"onUpdate:show":f[14]||(f[14]=z=>{z||(v.value=null)})},{default:l(()=>[h("pre",os,m(JSON.stringify(v.value?.payload??{},null,2)),1)]),_:1},8,["show","title"])]))}})})),el=S((()=>{})),qs,tl=S((()=>{rs(),rs(),el(),Q(),qs=ee(Ds,[["__scopeId","data-v-b1a619c9"]])})),us,ds,cs,ps,Bs,vs=S((()=>{Z(),Qs(),G(),j(),pe(),Ca(),xa(),Aa(),Ha(),za(),La(),Ra(),Ea(),Wa(),qa(),Ya(),tl(),ms(),Ie(),us={class:"settings-view"},ds={class:"page-header"},cs={class:"header-title"},ps={class:"settings-content"},Bs=K({__name:"SettingsView",setup(D){const t=ce(),n=He(),{t:a}=J(),o=Xs(),c=Zs(),b=Js(),p=H("account"),d=q(()=>new Set(["account",...o?["users"]:[],...o?["webhooks"]:[],"display","proxy","agent","memory","compression","session","privacy","models"]));function i(v){const I=typeof v=="string"?v:"";return d.value.has(I)?I:"account"}function _(v){p.value=i(v),b.replace({query:{...c.query,tab:p.value==="account"?void 0:p.value}})}fs(()=>c.query.tab,v=>{if(v==="voice"){b.replace({name:"hermes.models",query:{...c.query,tab:"tts"}});return}p.value=i(v)},{immediate:!0});async function w(){(!n.activeProfileName||n.profiles.length===0)&&await n.fetchProfiles(),await t.fetchSettings()}return be(()=>{w()}),(v,I)=>($(),N("div",us,[h("header",ds,[h("h2",cs,m(e(a)("settings.title")),1)]),h("div",ps,[s(e(_s),{show:e(t).loading||e(t).saving,size:"large",description:e(a)("common.loading")},{default:l(()=>[s(e(ta),{value:p.value,"onUpdate:value":[I[0]||(I[0]=y=>p.value=y),_],type:"line",animated:""},{default:l(()=>[s(e(ie),{name:"account",tab:e(a)("settings.tabs.account")},{default:l(()=>[s(Es)]),_:1},8,["tab"]),e(o)?($(),se(e(ie),{key:0,name:"users",tab:e(a)("settings.tabs.users")},{default:l(()=>[s(Ws)]),_:1},8,["tab"])):ae("",!0),e(o)?($(),se(e(ie),{key:1,name:"webhooks",tab:e(a)("settings.tabs.webhooks")},{default:l(()=>[s(qs)]),_:1},8,["tab"])):ae("",!0),s(e(ie),{name:"display",tab:e(a)("settings.tabs.display")},{default:l(()=>[s(ws)]),_:1},8,["tab"]),s(e(ie),{name:"proxy",tab:e(a)("settings.tabs.proxy")},{default:l(()=>[s(xs)]),_:1},8,["tab"]),s(e(ie),{name:"agent",tab:e(a)("settings.tabs.agent")},{default:l(()=>[s(Ss),s(Cs)]),_:1},8,["tab"]),s(e(ie),{name:"memory",tab:e(a)("settings.tabs.memory")},{default:l(()=>[s(As)]),_:1},8,["tab"]),s(e(ie),{name:"compression",tab:e(a)("settings.tabs.compression")},{default:l(()=>[s(Hs)]),_:1},8,["tab"]),s(e(ie),{name:"session",tab:e(a)("settings.tabs.session")},{default:l(()=>[s(zs)]),_:1},8,["tab"]),s(e(ie),{name:"privacy",tab:e(a)("settings.tabs.privacy")},{default:l(()=>[s(Ls)]),_:1},8,["tab"]),s(e(ie),{name:"models",tab:e(a)("settings.tabs.models")},{default:l(()=>[s(Rs)]),_:1},8,["tab"])]),_:1},8,["value"])]),_:1},8,["show","description"])])]))}})})),sl=S((()=>{})),al,ll=S((()=>{vs(),vs(),sl(),Q(),al=ee(Bs,[["__scopeId","data-v-75a34251"]])}));ll();export{al as default};
1
+ import{$ as Ce,$i as l,$r as Xs,$t as A,Ai as O,Bi as be,Di as K,G as _s,Hi as $,I as ze,M as G,Nr as j,Oa as Vs,Pr as J,Qr as ms,Ri as Ks,Sa as m,Ti as s,Tt as Ae,U as R,V as ie,Wi as gs,Zi as fs,_a as e,_i as h,_t as we,at as Ue,bi as N,ca as $e,d as Gs,dn as me,ei as ge,fi as Oe,gi as q,gt as le,hn as js,ii as Js,ln as Se,mi as hs,n as Q,ni as Qs,ri as Zs,rt as W,si as Z,sn as B,st as _e,t as ee,tt as V,ua as H,vi as se,w as Le,wa as S,wi as T,ya as ea,yi as ae,z as ta,zt as ue}from"./index-DN4SafrP.js";import{c as sa,f as aa,g as Fe,h as Re,i as la,l as na,m as ia,n as oa,o as ra,p as ua,r as da,s as ca,t as pa,u as ys}from"./auth-B52zm2Ir.js";import{r as He,t as Ie}from"./profiles-BK5JKD7h.js";import{n as ce,t as pe}from"./settings-roYY6G3W.js";import{a as va,i as Me,n as Pe,r as Ee,s as _a,t as ma}from"./completion-notification-CzdnhuX3.js";import{n as ga,t as fa}from"./models-BILDy2sV.js";import{n as ha,r as ya,t as ba}from"./ProfileAvatar-C8xoALCI.js";import{n as fe,t as k}from"./SettingRow-DHqhLX3M.js";import{n as wa,t as ka}from"./session-browser-prefs-BT1woDux.js";import{n as Sa,t as Ne}from"./chat-input-height-lvFawuv9.js";var We,De,qe,Be,bs,Ye=S((()=>{Z(),G(),j(),pe(),va(),ma(),Sa(),fe(),We={class:"settings-section"},De={class:"notify-controls"},qe={class:"notify-controls"},Be={class:"chat-input-height-controls"},bs=K({__name:"DisplaySettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o=q(()=>Ne(t.display.chat_input_height));async function c(y){try{await t.saveSection("display",y),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}}function b(y){return c({chat_input_height:Ne(y)})}function p(){return c({chat_input_height:null})}function d(y){return y.reason==="insecure"?"settings.display.notifyOnCompleteInsecure":y.reason==="unsupported"?"settings.display.notifyOnCompleteUnsupported":"settings.display.notifyOnCompleteDenied"}function i(y){return y&&_a(),c({approval_bell:y})}async function _(y){if(y){const U=await Pe();if(!U.granted){n.error(a(d(U)));return}if(!await Me({title:"Hermes",body:a("settings.display.notifyOnApprovalTest"),icon:"/coding-agents/hermes.png",tag:`hermes-approval-test-${Date.now()}`},{requireBackground:!1,deduplicate:!1})){n.error(a("settings.display.notifyOnApprovalTestFailed"));return}}await c({notify_on_approval:y})}async function w(){const y=await Pe();if(!y.granted){n.error(a(d(y)));return}if(!await Me({title:"Hermes",body:a("settings.display.notifyOnApprovalTest"),icon:"/coding-agents/hermes.png",tag:`hermes-approval-test-${Date.now()}`},{requireBackground:!1,deduplicate:!1})){n.error(a("settings.display.notifyOnApprovalTestFailed"));return}n.success(a("settings.display.notifyOnApprovalTestSent"))}async function v(y){if(y){const U=await Pe();if(!U.granted){n.error(a(d(U)));return}}await c({notify_on_complete:y}),y&&Ee({title:"Hermes",body:a("settings.display.notifyOnCompleteTest"),icon:"/coding-agents/hermes.png",tag:`hermes-complete-test-${Date.now()}`})}async function I(){const y=await Pe();if(!y.granted){n.error(a(d(y)));return}if(!await Ee({title:"Hermes",body:a("settings.display.notifyOnCompleteTest"),icon:"/coding-agents/hermes.png",tag:`hermes-complete-test-${Date.now()}`})){n.error(a("settings.display.notifyOnCompleteTestFailed"));return}n.success(a("settings.display.notifyOnCompleteTestSent"))}return(y,U)=>($(),N("section",We,[s(k,{label:e(a)("settings.display.streaming"),hint:e(a)("settings.display.streamingHint")},{default:l(()=>[s(e(R),{value:e(t).display.streaming,"onUpdate:value":U[0]||(U[0]=F=>c({streaming:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.compact"),hint:e(a)("settings.display.compactHint")},{default:l(()=>[s(e(R),{value:e(t).display.compact,"onUpdate:value":U[1]||(U[1]=F=>c({compact:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.showReasoning"),hint:e(a)("settings.display.showReasoningHint")},{default:l(()=>[s(e(R),{value:e(t).display.show_reasoning,"onUpdate:value":U[2]||(U[2]=F=>c({show_reasoning:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.showCost"),hint:e(a)("settings.display.showCostHint")},{default:l(()=>[s(e(R),{value:e(t).display.show_cost,"onUpdate:value":U[3]||(U[3]=F=>c({show_cost:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.inlineDiffs"),hint:e(a)("settings.display.inlineDiffsHint")},{default:l(()=>[s(e(R),{value:e(t).display.inline_diffs,"onUpdate:value":U[4]||(U[4]=F=>c({inline_diffs:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.bellOnComplete"),hint:e(a)("settings.display.bellOnCompleteHint")},{default:l(()=>[s(e(R),{value:e(t).display.bell_on_complete,"onUpdate:value":U[5]||(U[5]=F=>c({bell_on_complete:F}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.approvalBell"),hint:e(a)("settings.display.approvalBellHint")},{default:l(()=>[s(e(R),{value:e(t).display.approval_bell,"onUpdate:value":i},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.notifyOnApproval"),hint:`${e(a)("settings.display.notifyOnApprovalHint")} ${e(a)("settings.display.notifyOnCompleteMacHint")}`},{default:l(()=>[h("div",De,[s(e(R),{value:e(t).display.notify_on_approval,"onUpdate:value":_},null,8,["value"]),s(e(A),{size:"tiny",secondary:"",onClick:w},{default:l(()=>[T(m(e(a)("settings.display.notifyOnApprovalTestButton")),1)]),_:1})])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.notifyOnComplete"),hint:`${e(a)("settings.display.notifyOnCompleteHint")} ${e(a)("settings.display.notifyOnCompleteMacHint")}`},{default:l(()=>[h("div",qe,[s(e(R),{value:e(t).display.notify_on_complete,"onUpdate:value":v},null,8,["value"]),s(e(A),{size:"tiny",secondary:"",onClick:I},{default:l(()=>[T(m(e(a)("settings.display.notifyOnCompleteTestButton")),1)]),_:1})])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.display.chatInputHeight"),hint:e(a)("settings.display.chatInputHeightHint")},{default:l(()=>[h("div",Be,[s(e(V),{value:o.value,min:e(48),max:e(400),step:8,"show-button":!1,size:"small",class:"input-sm","onUpdate:value":b},{suffix:l(()=>[...U[6]||(U[6]=[T("px",-1)])]),_:1},8,["value","min","max"]),s(e(A),{size:"tiny",secondary:"",onClick:p},{default:l(()=>[T(m(e(a)("common.reset")),1)]),_:1})])]),_:1},8,["label","hint"])]))}})})),Pa=S((()=>{})),ws,Ca=S((()=>{Ye(),Ye(),Pa(),Q(),ws=ee(bs,[["__scopeId","data-v-47366f95"]])})),Xe,ks,Ve=S((()=>{Z(),G(),j(),pe(),fe(),Xe={class:"settings-section"},ks=K({__name:"AgentSettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o={};function c(p){t.updateLocal("agent",p),t.saveSection("agent",p).then(()=>{n.success(a("settings.saved"))}).catch(()=>{n.error(a("settings.saveFailed"))})}function b(p,d){t.updateLocal("agent",{[p]:d}),o[p]&&clearTimeout(o[p]),o[p]=setTimeout(async()=>{try{await t.saveSection("agent",{[p]:d}),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}},300)}return(p,d)=>($(),N("section",Xe,[s(k,{label:e(a)("settings.agent.maxTurns"),hint:e(a)("settings.agent.maxTurnsHint")},{default:l(()=>[s(e(V),{value:e(t).agent.max_turns,min:1,step:5,size:"small",class:"input-sm","onUpdate:value":d[0]||(d[0]=i=>i!=null&&b("max_turns",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.agent.gatewayTimeout"),hint:e(a)("settings.agent.gatewayTimeoutHint")},{default:l(()=>[s(e(V),{value:e(t).agent.gateway_timeout,min:0,max:7200,step:60,size:"small",class:"input-sm","onUpdate:value":d[1]||(d[1]=i=>i!=null&&b("gateway_timeout",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.agent.restartDrainTimeout"),hint:e(a)("settings.agent.restartDrainTimeoutHint")},{default:l(()=>[s(e(V),{value:e(t).agent.restart_drain_timeout,min:10,max:300,step:10,size:"small",class:"input-sm","onUpdate:value":d[2]||(d[2]=i=>i!=null&&b("restart_drain_timeout",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.agent.toolEnforcement"),hint:e(a)("settings.agent.toolEnforcementHint")},{default:l(()=>[s(e(ue),{value:e(t).agent.tool_use_enforcement||"auto",options:[{label:e(a)("settings.agent.auto"),value:"auto"},{label:e(a)("settings.agent.always"),value:"always"},{label:e(a)("settings.agent.never"),value:"never"}],size:"small",class:"input-sm","onUpdate:value":d[3]||(d[3]=i=>c({tool_use_enforcement:i}))},null,8,["value","options"])]),_:1},8,["label","hint"])]))}})})),Ua=S((()=>{})),Ss,xa=S((()=>{Ve(),Ve(),Ua(),Q(),Ss=ee(ks,[["__scopeId","data-v-b0cd608d"]])})),Ke,Ge,je,Ps,Je=S((()=>{Z(),G(),j(),pe(),Ie(),fe(),Ke={class:"settings-section gateway-auto-start-settings"},Ge={class:"section-title"},je={class:"section-hint"},Ps=K({__name:"GatewayAutoStartSettings",setup(D){const t=ce(),n=He(),a=le(),{t:o}=J(),c=q(()=>t.gatewayAutoStart.enabled!==!1),b=q(()=>Array.isArray(t.gatewayAutoStart.include)?"include":"all"),p=q(()=>t.gatewayAutoStart.management==="unified"),d=q(()=>t.gatewayAutoStart.include||[]),i=q(()=>t.gatewayAutoStart.exclude||[]),_=q(()=>(n.activeProfileName||n.activeProfile?.name||"default")==="default"),w=q(()=>n.profiles.map(M=>({label:M.name,value:M.name}))),v=q(()=>[{label:o("settings.gatewayAutoStart.modeAll"),value:"all"},{label:o("settings.gatewayAutoStart.modeInclude"),value:"include"}]);function I(M){const Y=new Set,oe=[];for(const g of M){const P=String(g||"").trim();!P||Y.has(P)||(Y.add(P),oe.push(P))}return oe}async function y(M){try{t.updateLocal("gatewayAutoStart",M),await t.saveSection("gatewayAutoStart",M,{restart:!1}),await t.fetchSettings(),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}}function U(M){y(M==="include"?{include:t.gatewayAutoStart.include||[],exclude:null}:{include:null})}function F(M){y({management:M?"unified":"per_profile"})}function te(M){y({include:I(M),exclude:null})}function u(M){const Y=I(M);y({exclude:Y.length>0?Y:null})}return(M,Y)=>($(),N("section",Ke,[h("h3",Ge,m(e(o)("settings.gatewayAutoStart.title")),1),h("p",je,m(e(o)("settings.gatewayAutoStart.description")),1),s(k,{label:e(o)("settings.gatewayAutoStart.enabled"),hint:e(o)("settings.gatewayAutoStart.enabledHint")},{default:l(()=>[s(e(R),{value:c.value,"onUpdate:value":Y[0]||(Y[0]=oe=>y({enabled:oe}))},null,8,["value"])]),_:1},8,["label","hint"]),_.value?($(),se(k,{key:0,label:e(o)("settings.gatewayAutoStart.management"),hint:e(o)("settings.gatewayAutoStart.managementHint")},{default:l(()=>[s(e(R),{value:p.value,"onUpdate:value":F},null,8,["value"])]),_:1},8,["label","hint"])):ae("",!0),s(k,{label:e(o)("settings.gatewayAutoStart.mode"),hint:e(o)("settings.gatewayAutoStart.modeHint")},{default:l(()=>[s(e(ue),{value:b.value,options:v.value,size:"small",class:"input-md","onUpdate:value":U},null,8,["value","options"])]),_:1},8,["label","hint"]),b.value==="include"?($(),se(k,{key:1,label:e(o)("settings.gatewayAutoStart.include"),hint:e(o)("settings.gatewayAutoStart.includeHint")},{default:l(()=>[s(e(ue),{multiple:"",filterable:"",value:d.value,options:w.value,size:"small",class:"input-md",placeholder:e(o)("settings.gatewayAutoStart.profileListPlaceholder"),"onUpdate:value":te},null,8,["value","options","placeholder"])]),_:1},8,["label","hint"])):ae("",!0),b.value==="all"?($(),se(k,{key:2,label:e(o)("settings.gatewayAutoStart.exclude"),hint:e(o)("settings.gatewayAutoStart.excludeHint")},{default:l(()=>[s(e(ue),{multiple:"",filterable:"",value:i.value,options:w.value,size:"small",class:"input-md",placeholder:e(o)("settings.gatewayAutoStart.profileListPlaceholder"),"onUpdate:value":u},null,8,["value","options","placeholder"])]),_:1},8,["label","hint"])):ae("",!0)]))}})})),Ta=S((()=>{})),Cs,Aa=S((()=>{Je(),Je(),Ta(),Q(),Cs=ee(Ps,[["__scopeId","data-v-a9b52cd2"]])})),Qe,Ze,et,tt,Us,st=S((()=>{Z(),G(),j(),pe(),fe(),Qe={class:"settings-section proxy-settings"},Ze={class:"section-title"},et={class:"section-hint"},tt={class:"settings-actions"},Us=K({__name:"ProxySettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o=["HTTPS_PROXY","HTTP_PROXY","ALL_PROXY","NO_PROXY"],c=$e({HTTPS_PROXY:"",HTTP_PROXY:"",ALL_PROXY:"",NO_PROXY:""});fs(()=>t.proxy,p=>{for(const d of o)c[d]=String(p?.[d]||"")},{immediate:!0,deep:!0});async function b(){try{await t.saveSection("proxy",{...c}),await t.fetchSettings(),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}}return(p,d)=>($(),N("section",Qe,[h("h3",Ze,m(e(a)("settings.proxy.title")),1),h("p",et,m(e(a)("settings.proxy.description")),1),s(k,{label:e(a)("settings.proxy.httpsProxy"),hint:e(a)("settings.proxy.httpsProxyHint")},{default:l(()=>[s(e(B),{value:c.HTTPS_PROXY,"onUpdate:value":d[0]||(d[0]=i=>c.HTTPS_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"http://127.0.0.1:7890"},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.proxy.httpProxy"),hint:e(a)("settings.proxy.httpProxyHint")},{default:l(()=>[s(e(B),{value:c.HTTP_PROXY,"onUpdate:value":d[1]||(d[1]=i=>c.HTTP_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"http://127.0.0.1:7890"},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.proxy.allProxy"),hint:e(a)("settings.proxy.allProxyHint")},{default:l(()=>[s(e(B),{value:c.ALL_PROXY,"onUpdate:value":d[2]||(d[2]=i=>c.ALL_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"socks5://127.0.0.1:7890"},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.proxy.noProxy"),hint:e(a)("settings.proxy.noProxyHint")},{default:l(()=>[s(e(B),{value:c.NO_PROXY,"onUpdate:value":d[3]||(d[3]=i=>c.NO_PROXY=i),clearable:"",size:"small",class:"input-lg",placeholder:"localhost,127.0.0.1,.local"},null,8,["value"])]),_:1},8,["label","hint"]),h("div",tt,[s(e(A),{type:"primary",loading:e(t).saving,onClick:b},{default:l(()=>[T(m(e(a)("settings.proxy.save")),1)]),_:1},8,["loading"])])]))}})})),$a=S((()=>{})),xs,Ha=S((()=>{st(),st(),$a(),Q(),xs=ee(Us,[["__scopeId","data-v-393316a4"]])})),at,Ts,lt=S((()=>{Z(),G(),j(),pe(),fe(),at={class:"settings-section"},Ts=K({__name:"MemorySettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o={};function c(p){t.updateLocal("memory",p),t.saveSection("memory",p).then(()=>{n.success(a("settings.saved"))}).catch(()=>{n.error(a("settings.saveFailed"))})}function b(p,d){t.updateLocal("memory",{[p]:d}),o[p]&&clearTimeout(o[p]),o[p]=setTimeout(async()=>{try{await t.saveSection("memory",{[p]:d}),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}},300)}return(p,d)=>($(),N("section",at,[s(k,{label:e(a)("settings.memory.enabled"),hint:e(a)("settings.memory.enabledHint")},{default:l(()=>[s(e(R),{value:e(t).memory.memory_enabled,"onUpdate:value":d[0]||(d[0]=i=>c({memory_enabled:i}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.memory.userProfile"),hint:e(a)("settings.memory.userProfileHint")},{default:l(()=>[s(e(R),{value:e(t).memory.user_profile_enabled,"onUpdate:value":d[1]||(d[1]=i=>c({user_profile_enabled:i}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.memory.charLimit"),hint:e(a)("settings.memory.charLimitHint")},{default:l(()=>[s(e(V),{value:e(t).memory.memory_char_limit,min:100,max:1e4,step:100,size:"small",class:"input-sm","onUpdate:value":d[2]||(d[2]=i=>i!=null&&b("memory_char_limit",i))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.memory.userCharLimit"),hint:e(a)("settings.memory.userCharLimitHint")},{default:l(()=>[s(e(V),{value:e(t).memory.user_char_limit,min:100,max:1e4,step:100,size:"small",class:"input-sm","onUpdate:value":d[3]||(d[3]=i=>i!=null&&b("user_char_limit",i))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Ia=S((()=>{})),As,za=S((()=>{lt(),lt(),Ia(),Q(),As=ee(Ts,[["__scopeId","data-v-b2529605"]])})),nt,$s,it=S((()=>{Z(),G(),j(),pe(),fe(),nt={class:"settings-section"},$s=K({__name:"CompressionSettings",setup(D){const t=ce(),n=le(),{t:a}=J(),o={enabled:!0,threshold:.5,target_ratio:.2,protect_last_n:20,protect_first_n:3},c={};function b(d){t.updateLocal("compression",d),t.saveSection("compression",d).then(()=>{n.success(a("settings.saved"))}).catch(()=>{n.error(a("settings.saveFailed"))})}function p(d,i){t.updateLocal("compression",{[d]:i}),c[d]&&clearTimeout(c[d]),c[d]=setTimeout(async()=>{try{await t.saveSection("compression",{[d]:i}),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}},300)}return(d,i)=>($(),N("section",nt,[s(k,{label:e(a)("settings.compression.enabled"),hint:e(a)("settings.compression.enabledHint")},{default:l(()=>[s(e(R),{value:e(t).compression.enabled??o.enabled,size:"small","onUpdate:value":i[0]||(i[0]=_=>b({enabled:_}))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.threshold"),hint:e(a)("settings.compression.thresholdHint")},{default:l(()=>[s(e(V),{value:e(t).compression.threshold??o.threshold,min:.1,max:.95,step:.05,size:"small",class:"input-sm","onUpdate:value":i[1]||(i[1]=_=>_!=null&&p("threshold",_))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.targetRatio"),hint:e(a)("settings.compression.targetRatioHint")},{default:l(()=>[s(e(V),{value:e(t).compression.target_ratio??o.target_ratio,min:.05,max:.8,step:.05,size:"small",class:"input-sm","onUpdate:value":i[2]||(i[2]=_=>_!=null&&p("target_ratio",_))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.protectLastN"),hint:e(a)("settings.compression.protectLastNHint")},{default:l(()=>[s(e(V),{value:e(t).compression.protect_last_n??o.protect_last_n,min:0,max:200,step:1,size:"small",class:"input-sm","onUpdate:value":i[3]||(i[3]=_=>_!=null&&p("protect_last_n",_))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(a)("settings.compression.protectFirstN"),hint:e(a)("settings.compression.protectFirstNHint")},{default:l(()=>[s(e(V),{value:e(t).compression.protect_first_n??o.protect_first_n,min:0,max:50,step:1,size:"small",class:"input-sm","onUpdate:value":i[4]||(i[4]=_=>_!=null&&p("protect_first_n",_))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Oa=S((()=>{})),Hs,La=S((()=>{it(),it(),Oa(),Q(),Hs=ee($s,[["__scopeId","data-v-b584a6a0"]])})),ot,Is,rt=S((()=>{Z(),G(),j(),pe(),ka(),fe(),ot={class:"settings-section"},Is=K({__name:"SessionSettings",setup(D){const t=ce(),n=wa(),a=le(),{t:o}=J(),c={};function b(_){t.updateLocal("session_reset",_),t.saveSection("session_reset",_).then(()=>{a.success(o("settings.saved"))}).catch(()=>{a.error(o("settings.saveFailed"))})}function p(_,w){t.updateLocal("session_reset",{[_]:w}),c[_]&&clearTimeout(c[_]),c[_]=setTimeout(async()=>{try{await t.saveSection("session_reset",{[_]:w}),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}},300)}async function d(_){try{await t.saveSection("approvals",{mode:_?"manual":"off"}),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}}async function i(_,w){try{t.updateLocal(_,{write_approval:w}),await t.saveSection(_,{write_approval:w}),a.success(o("settings.saved"))}catch{a.error(o("settings.saveFailed"))}}return(_,w)=>($(),N("section",ot,[s(k,{label:e(o)("settings.session.requireAuth"),hint:e(o)("settings.session.requireAuthHint")},{default:l(()=>[s(e(R),{value:e(t).approvals.mode==="manual","onUpdate:value":d},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.memoryWriteApproval"),hint:e(o)("settings.session.memoryWriteApprovalHint")},{default:l(()=>[s(e(R),{value:e(t).memory.write_approval===!0,"onUpdate:value":w[0]||(w[0]=v=>i("memory",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.skillsWriteApproval"),hint:e(o)("settings.session.skillsWriteApprovalHint")},{default:l(()=>[s(e(R),{value:e(t).skills.write_approval===!0,"onUpdate:value":w[1]||(w[1]=v=>i("skills",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.mode"),hint:e(o)("settings.session.modeHint")},{default:l(()=>[s(e(ue),{value:e(t).sessionReset.mode||"both",options:[{label:e(o)("settings.session.modeBoth"),value:"both"},{label:e(o)("settings.session.modeIdle"),value:"idle"},{label:e(o)("settings.session.modeDaily"),value:"daily"},{label:e(o)("settings.session.modeNone"),value:"none"}],size:"small",class:"input-md","onUpdate:value":w[2]||(w[2]=v=>b({mode:v}))},null,8,["value","options"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.idleMinutes"),hint:e(o)("settings.session.idleMinutesHint")},{default:l(()=>[s(e(V),{value:e(t).sessionReset.idle_minutes,min:10,max:10080,step:30,size:"small",class:"input-sm","onUpdate:value":w[3]||(w[3]=v=>v!=null&&p("idle_minutes",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.atHour"),hint:e(o)("settings.session.atHourHint")},{default:l(()=>[s(e(V),{value:e(t).sessionReset.at_hour,min:0,max:23,step:1,size:"small",class:"input-sm","onUpdate:value":w[4]||(w[4]=v=>v!=null&&p("at_hour",v))},null,8,["value"])]),_:1},8,["label","hint"]),s(k,{label:e(o)("settings.session.liveMonitorHumanOnly"),hint:e(o)("settings.session.liveMonitorHumanOnlyHint")},{default:l(()=>[s(e(R),{value:e(n).humanOnly,"onUpdate:value":w[5]||(w[5]=v=>e(n).setHumanOnly(v))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Fa=S((()=>{})),zs,Ra=S((()=>{rt(),rt(),Fa(),Q(),zs=ee(Is,[["__scopeId","data-v-5027aa2c"]])})),ut,Os,dt=S((()=>{Z(),G(),j(),pe(),fe(),ut={class:"settings-section"},Os=K({__name:"PrivacySettings",setup(D){const t=ce(),n=le(),{t:a}=J();async function o(c){try{await t.saveSection("privacy",c),n.success(a("settings.saved"))}catch{n.error(a("settings.saveFailed"))}}return(c,b)=>($(),N("section",ut,[s(k,{label:e(a)("settings.privacy.redactPii"),hint:e(a)("settings.privacy.redactPiiHint")},{default:l(()=>[s(e(R),{value:e(t).privacy.redact_pii,"onUpdate:value":b[0]||(b[0]=p=>o({redact_pii:p}))},null,8,["value"])]),_:1},8,["label","hint"])]))}})})),Ma=S((()=>{})),Ls,Ea=S((()=>{dt(),dt(),Ma(),Q(),Ls=ee(Os,[["__scopeId","data-v-43145f27"]])})),ct,pt,vt,_t,mt,gt,ft,ht,Fs,yt=S((()=>{Z(),G(),fa(),Gs(),j(),ct={class:"settings-section"},pt={key:0,class:"empty-hint"},vt={class:"provider-header"},_t={class:"provider-name"},mt={key:0,class:"provider-fields"},gt={class:"field-row"},ft={key:1,class:"provider-fields"},ht={class:"field-row"},Fs=K({__name:"ModelSettings",setup(D){const{t}=J(),n=ga(),a=le(),o=H(null),c=H({});be(()=>{n.providers.length===0&&n.fetchProviders()});const b=_=>!n.providers.find(w=>w.provider===_)?.builtin&&_.startsWith("custom:");function p(_){if(!(_ in c.value)){const w=n.providers.find(v=>v.provider===_);c.value[_]=w?.api_key||""}return c.value[_]}async function d(_){const w=p(_);if(!w.trim()){a.warning(t("settings.models.apiKeyPlaceholder"));return}o.value=_;try{await Le(_,{api_key:w.trim()}),a.success(t("settings.models.saved")),await n.fetchProviders()}catch(v){a.error(v.message||t("settings.models.saveFailed"))}finally{o.value=null}}async function i(_){const w=p(_);o.value=_;try{await Le(_,{api_key:w.trim()}),a.success(t("settings.models.saved")),await n.fetchProviders()}catch(v){a.error(v.message||t("settings.models.saveFailed"))}finally{o.value=null}}return(_,w)=>($(),N("section",ct,[s(e(_s),{show:e(n).loading},{default:l(()=>[e(n).providers.length===0?($(),N("div",pt,[s(e(js),{description:e(t)("settings.models.noProviders")},null,8,["description"])])):ae("",!0),($(!0),N(hs,null,gs(e(n).providers,v=>($(),N("div",{key:v.provider,class:"provider-section"},[h("div",vt,[h("h4",_t,m(v.label),1),h("span",{class:ea(["type-badge",b(v.provider)?"custom":"builtin"])},m(b(v.provider)?e(t)("models.customType"):e(t)("models.builtIn")),3)]),b(v.provider)?($(),N("div",ft,[h("div",ht,[s(e(B),{value:p(v.provider),type:"password","show-password-on":"click",placeholder:e(t)("settings.models.apiKeyPlaceholder"),autocomplete:"off","onUpdate:value":I=>c.value[v.provider]=I},null,8,["value","placeholder","onUpdate:value"]),s(e(A),{type:"primary",size:"small",loading:o.value===v.provider,onClick:I=>i(v.provider)},{default:l(()=>[T(m(e(t)("settings.models.save")),1)]),_:1},8,["loading","onClick"])])])):($(),N("div",mt,[h("div",gt,[s(e(B),{value:p(v.provider),type:"password","show-password-on":"click",placeholder:e(t)("settings.models.apiKeyPlaceholder"),autocomplete:"off","onUpdate:value":I=>c.value[v.provider]=I},null,8,["value","placeholder","onUpdate:value"]),s(e(A),{type:"primary",size:"small",loading:o.value===v.provider,onClick:I=>d(v.provider)},{default:l(()=>[T(m(e(t)("settings.models.save")),1)]),_:1},8,["loading","onClick"])])]))]))),128))]),_:1},8,["show"])]))}})})),Na=S((()=>{})),Rs,Wa=S((()=>{yt(),yt(),Na(),Q(),Rs=ee(Fs,[["__scopeId","data-v-8cd750e1"]])})),bt,wt,kt,St,Pt,Ct,Ut,xt,Tt,At,$t,Ht,It,zt,Ot,Lt,Ft,Rt,Mt,Et,Nt,Wt,Dt,qt,Bt,Ms,Yt=S((()=>{Z(),G(),j(),ys(),ha(),bt=Vs(ya()),wt={class:"account-settings"},kt={class:"section-desc"},St={class:"avatar-section"},Pt={class:"section-title"},Ct={class:"avatar-row"},Ut={class:"avatar-display"},xt={class:"avatar-actions"},Tt={class:"avatar-hint"},At={class:"action-buttons"},$t={class:"configured-section"},Ht={class:"action-row"},It={class:"action-label"},zt={class:"action-buttons"},Ot={class:"locked-ips-section"},Lt={class:"section-title"},Ft={class:"action-row",style:{"margin-bottom":"12px"}},Rt={class:"action-label"},Mt={class:"action-buttons"},Et={key:0,class:"locked-list"},Nt={class:"locked-info"},Wt={class:"locked-ip"},Dt={class:"locked-badge"},qt={class:"locked-ttl"},Bt={key:1,class:"empty-hint"},Ms=K({__name:"AccountSettings",setup(D){const{t}=J(),n=le(),a=H(null),o=H(!1),c=H(null),b=H(null),p=H(!1);function d(L,C){return new Promise((x,X)=>{const ve=new FileReader;ve.onload=()=>{const re=new Image;re.onload=()=>{const ne=document.createElement("canvas");ne.width=re.width,ne.height=re.height,ne.getContext("2d").drawImage(re,0,0);const ke=r=>{const f=ne.toDataURL("image/jpeg",r);f.length<=C||r<=.3?x(f):ke(r-.1)};ke(.8)},re.onerror=X,re.src=ve.result},ve.onerror=X,ve.readAsDataURL(L)})}async function i(L){const C=L.target,x=C.files?.[0];if(x){if(!["image/png","image/jpeg","image/webp"].includes(x.type)){n.error(t("settings.userAvatar.invalidType")),C.value="";return}if(x.size>1024*1024){n.error(t("settings.userAvatar.tooLarge")),C.value="";return}p.value=!0;try{let X;x.size>500*1024?X=await d(x,500*1024):X=await new Promise((ve,re)=>{const ne=new FileReader;ne.onload=()=>ve(ne.result),ne.onerror=re,ne.readAsDataURL(x)}),await Fe({type:"image",dataUrl:X}),c.value={type:"image",dataUrl:X},n.success(t("settings.userAvatar.saveSuccess"))}catch(X){n.error(X.message||t("settings.userAvatar.saveFailed"))}finally{p.value=!1,C.value=""}}}async function _(){p.value=!0;try{const L=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():Math.random().toString(36).slice(2),C=`${a.value||"default"}-${Date.now()}-${L}`,x=(0,bt.default)(C),X="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(x)));await Fe({type:"image",dataUrl:X,seed:C}),c.value={type:"image",dataUrl:X,seed:C},n.success(t("settings.userAvatar.saveSuccess"))}catch(L){n.error(L.message||t("settings.userAvatar.saveFailed"))}finally{p.value=!1}}async function w(){p.value=!0;try{await aa(),c.value={type:"default",seed:a.value||"default"},n.success(t("settings.userAvatar.resetSuccess"))}catch(L){n.error(L.message||t("settings.userAvatar.resetFailed"))}finally{p.value=!1}}const v=H(!1),I=H(""),y=H(""),U=H(""),F=H(!1),te=H(""),u=H("");be(async()=>{try{a.value=(await ra()).username}catch{}try{c.value=await na()||{type:"default",seed:a.value||"default"}}catch{}});async function M(){if(y.value!==U.value){n.error(t("login.passwordMismatch"));return}if(y.value.length<6){n.error(t("login.passwordTooShort"));return}o.value=!0;try{await pa(I.value,y.value),v.value=!1,I.value="",y.value="",U.value="",n.success(t("login.passwordChanged"))}catch(L){n.error(L.message||t("common.saveFailed"))}finally{o.value=!1}}async function Y(){if(u.value.trim().length<2){n.error(t("login.usernameTooShort"));return}o.value=!0;try{await oa(te.value,u.value.trim()),a.value=u.value.trim(),F.value=!1,te.value="",u.value="",n.success(t("login.usernameChanged"))}catch(L){n.error(L.message||t("common.saveFailed"))}finally{o.value=!1}}function oe(){I.value="",y.value="",U.value="",v.value=!0}function g(){te.value="",u.value="",F.value=!0}const P=H([]),E=H(!1);async function ye(){E.value=!0;try{P.value=await ca()}catch{}finally{E.value=!1}}async function de(L){try{await ia(L),n.success(t("settings.lockedIps.unlocked")),await ye()}catch(C){n.error(C.message||t("common.saveFailed"))}}async function he(){try{const L=await ua();n.success(t("settings.lockedIps.allUnlocked",{count:L})),await ye()}catch(L){n.error(L.message||t("common.saveFailed"))}}function xe(L){const C=Math.max(0,Math.round((L-Date.now())/6e4));return C>0?`${C} min`:t("common.expired")}function Te(L){return t(`settings.lockedIps.type.${L}`)}return be(()=>{ye()}),(L,C)=>($(),N("div",wt,[h("p",kt,m(e(t)("login.setupDescription")),1),h("div",St,[h("h3",Pt,m(e(t)("settings.userAvatar.title")),1),h("div",Ct,[h("div",Ut,[s(ba,{name:a.value||"default",avatar:c.value?.type==="image"&&c.value.dataUrl?{type:"image",dataUrl:c.value.dataUrl}:null,size:80},null,8,["name","avatar"])]),h("div",xt,[h("p",Tt,m(e(t)("settings.userAvatar.hint")),1),h("div",At,[s(e(A),{onClick:C[0]||(C[0]=x=>b.value?.click())},{default:l(()=>[T(m(e(t)("settings.userAvatar.upload")),1)]),_:1}),s(e(A),{onClick:_,loading:p.value},{default:l(()=>[T(m(e(t)("settings.userAvatar.random")),1)]),_:1},8,["loading"]),s(e(A),{onClick:w,loading:p.value},{default:l(()=>[T(m(e(t)("settings.userAvatar.reset")),1)]),_:1},8,["loading"])]),h("input",{ref_key:"avatarFileInput",ref:b,type:"file",accept:".png,.jpg,.jpeg,.webp",style:{display:"none"},onChange:i},null,544)])])]),h("div",$t,[h("div",Ht,[h("span",It,m(e(t)("login.passwordLoginConfigured",{username:a.value})),1),h("div",zt,[s(e(A),{onClick:oe},{default:l(()=>[T(m(e(t)("login.changePassword")),1)]),_:1}),s(e(A),{onClick:g},{default:l(()=>[T(m(e(t)("login.changeUsername")),1)]),_:1})])])]),h("div",Ot,[h("h3",Lt,m(e(t)("settings.lockedIps.title")),1),h("div",Ft,[h("span",Rt,m(e(t)("settings.lockedIps.count",{count:P.value.length})),1),h("div",Mt,[s(e(A),{size:"small",loading:E.value,onClick:ye},{default:l(()=>[T(m(e(t)("common.retry")),1)]),_:1},8,["loading"]),P.value.length>0?($(),se(e(Ce),{key:0,onPositiveClick:he},{trigger:l(()=>[s(e(A),{size:"small",type:"warning"},{default:l(()=>[T(m(e(t)("settings.lockedIps.unlockAll")),1)]),_:1})]),default:l(()=>[T(" "+m(e(t)("settings.lockedIps.unlockAllConfirm")),1)]),_:1})):ae("",!0)])]),P.value.length>0?($(),N("div",Et,[($(!0),N(hs,null,gs(P.value,x=>($(),N("div",{key:x.ip+x.type,class:"locked-item"},[h("div",Nt,[h("span",Wt,m(x.ip),1),h("span",Dt,m(Te(x.type)),1),h("span",qt,m(xe(x.lockedUntil)),1)]),s(e(A),{size:"tiny",type:"error",ghost:"",onClick:X=>de(x.ip)},{default:l(()=>[T(m(e(t)("settings.lockedIps.unlock")),1)]),_:1},8,["onClick"])]))),128))])):($(),N("p",Bt,m(e(t)("settings.lockedIps.empty")),1))]),s(e(we),{show:v.value,"onUpdate:show":C[5]||(C[5]=x=>v.value=x),preset:"dialog",title:e(t)("login.changePassword")},{action:l(()=>[s(e(A),{onClick:C[4]||(C[4]=x=>v.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:o.value,onClick:M},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("login.currentPassword")},{default:l(()=>[s(e(B),{value:I.value,"onUpdate:value":C[1]||(C[1]=x=>I.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.currentPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("login.newPassword")},{default:l(()=>[s(e(B),{value:y.value,"onUpdate:value":C[2]||(C[2]=x=>y.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.newPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("login.confirmPassword")},{default:l(()=>[s(e(B),{value:U.value,"onUpdate:value":C[3]||(C[3]=x=>U.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.confirmPassword"),onKeyup:Oe(M,["enter"])},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title"]),s(e(we),{show:F.value,"onUpdate:show":C[9]||(C[9]=x=>F.value=x),preset:"dialog",title:e(t)("login.changeUsername")},{action:l(()=>[s(e(A),{onClick:C[8]||(C[8]=x=>F.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:o.value,onClick:Y},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("login.currentPassword")},{default:l(()=>[s(e(B),{value:te.value,"onUpdate:value":C[6]||(C[6]=x=>te.value=x),type:"password","show-password-on":"click",placeholder:e(t)("login.currentPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("login.newUsername")},{default:l(()=>[s(e(B),{value:u.value,"onUpdate:value":C[7]||(C[7]=x=>u.value=x),placeholder:e(t)("login.usernamePlaceholder"),onKeyup:Oe(Y,["enter"])},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title"])]))}})})),Da=S((()=>{})),Es,qa=S((()=>{Yt(),Yt(),Da(),Q(),Es=ee(Ms,[["__scopeId","data-v-61e79d43"]])})),Xt,Vt,Kt,Gt,Ns,jt=S((()=>{Z(),G(),j(),ys(),Xt={class:"user-management"},Vt={class:"toolbar"},Kt={class:"section-title"},Gt={class:"section-desc"},Ns=K({__name:"UserManagementSettings",setup(D){const{t}=J(),n=le(),a=H(!1),o=H(!1),c=H([]),b=H([]),p=H(!1),d=H(null),i=$e({username:"",password:"",role:"admin",status:"active",profiles:[]}),_=q(()=>[{label:t("users.roles.admin"),value:"admin"},{label:t("users.roles.superAdmin"),value:"super_admin"}]),w=q(()=>[{label:t("users.status.active"),value:"active"},{label:t("users.status.disabled"),value:"disabled"}]),v=q(()=>b.value.map(g=>({label:g,value:g})));function I(){d.value=null,i.username="",i.password="",i.role="admin",i.status="active",i.profiles=[]}async function y(){a.value=!0;try{const g=await sa();c.value=g.users,b.value=g.profiles}catch(g){n.error(g.message||t("users.loadFailed"))}finally{a.value=!1}}function U(){I(),p.value=!0}function F(g){d.value=g,i.username=g.username,i.password="",i.role=g.role,i.status=g.status,i.profiles=[...g.profiles],p.value=!0}async function te(){if(i.username.trim().length<2){n.error(t("login.usernameTooShort"));return}if(!d.value&&i.password.length<6){n.error(t("login.passwordTooShort"));return}if(i.password&&i.password.length<6){n.error(t("login.passwordTooShort"));return}o.value=!0;try{const g={username:i.username.trim(),password:i.password||void 0,role:i.role,status:i.status,profiles:i.role==="super_admin"?[]:i.profiles,defaultProfile:i.profiles[0]||null},P=d.value?await Re(d.value.id,g):await da({...g,password:i.password});c.value=P.users,b.value=P.profiles,p.value=!1,I(),n.success(t("common.saved"))}catch(g){n.error(g.message||t("common.saveFailed"))}finally{o.value=!1}}async function u(g,P){o.value=!0;try{const E=await Re(g.id,{status:P});c.value=E.users,b.value=E.profiles,n.success(t("common.saved"))}catch(E){n.error(E.message||t("common.saveFailed"))}finally{o.value=!1}}async function M(g){o.value=!0;try{const P=await la(g.id);c.value=P.users,b.value=P.profiles,n.success(t("common.saved"))}catch(P){n.error(P.message||t("common.deleteFailed"))}finally{o.value=!1}}function Y(g){return g?new Date(g).toLocaleString():"-"}const oe=q(()=>[{title:t("users.username"),key:"username",minWidth:140},{title:t("users.role"),key:"role",width:130,render:g=>O(me,{size:"small",type:g.role==="super_admin"?"warning":"default"},{default:()=>g.role==="super_admin"?t("users.roles.superAdmin"):t("users.roles.admin")})},{title:t("users.statusLabel"),key:"status",width:110,render:g=>O(me,{size:"small",type:g.status==="active"?"success":"error"},{default:()=>g.status==="active"?t("users.status.active"):t("users.status.disabled")})},{title:t("users.profiles"),key:"profiles",minWidth:200,render:g=>g.role==="super_admin"?O("span",{class:"muted"},t("users.allProfiles")):O(_e,{size:4},{default:()=>g.profiles.length?g.profiles.map(P=>O(me,{size:"small",bordered:!1},{default:()=>P})):O("span",{class:"muted"},t("users.noProfiles"))})},{title:t("users.lastLogin"),key:"last_login_at",minWidth:170,render:g=>Y(g.last_login_at)},{title:t("common.edit"),key:"actions",width:280,fixed:"right",render:g=>O(_e,{size:8},{default:()=>[O(A,{size:"small",onClick:()=>F(g)},{default:()=>t("common.edit")}),O(A,{size:"small",type:g.status==="active"?"warning":"primary",ghost:!0,loading:o.value,onClick:()=>u(g,g.status==="active"?"disabled":"active")},{default:()=>g.status==="active"?t("users.disable"):t("users.enable")}),O(Ce,{onPositiveClick:()=>M(g)},{trigger:()=>O(A,{size:"small",type:"error",ghost:!0,loading:o.value},{default:()=>t("common.delete")}),default:()=>t("users.deleteConfirm")})]})}]);return be(y),(g,P)=>($(),N("div",Xt,[h("div",Vt,[h("div",null,[h("h3",Kt,m(e(t)("users.title")),1),h("p",Gt,m(e(t)("users.description")),1)]),s(e(A),{type:"primary",onClick:U},{default:l(()=>[T(m(e(t)("users.create")),1)]),_:1})]),s(e(Ae),{columns:oe.value,data:c.value,loading:a.value,bordered:!1,"single-line":!1,"scroll-x":1080,size:"small"},null,8,["columns","data","loading"]),s(e(we),{show:p.value,"onUpdate:show":P[6]||(P[6]=E=>p.value=E),preset:"dialog",title:d.value?e(t)("users.edit"):e(t)("users.create")},{action:l(()=>[s(e(A),{onClick:P[5]||(P[5]=E=>p.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:o.value,onClick:te},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("users.username")},{default:l(()=>[s(e(B),{value:i.username,"onUpdate:value":P[0]||(P[0]=E=>i.username=E),placeholder:e(t)("login.usernamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:d.value?e(t)("users.newPasswordOptional"):e(t)("login.newPassword")},{default:l(()=>[s(e(B),{value:i.password,"onUpdate:value":P[1]||(P[1]=E=>i.password=E),type:"password","show-password-on":"click",placeholder:e(t)("login.passwordPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("users.role")},{default:l(()=>[s(e(ue),{value:i.role,"onUpdate:value":P[2]||(P[2]=E=>i.role=E),options:_.value},null,8,["value","options"])]),_:1},8,["label"]),s(e(W),{label:e(t)("users.statusLabel")},{default:l(()=>[s(e(ue),{value:i.status,"onUpdate:value":P[3]||(P[3]=E=>i.status=E),options:w.value},null,8,["value","options"])]),_:1},8,["label"]),i.role!=="super_admin"?($(),se(e(W),{key:0,label:e(t)("users.profiles")},{default:l(()=>[s(e(ue),{value:i.profiles,"onUpdate:value":P[4]||(P[4]=E=>i.profiles=E),multiple:"",filterable:"",options:v.value,placeholder:e(t)("users.profilesPlaceholder")},null,8,["value","options","placeholder"])]),_:1},8,["label"])):ae("",!0)]),_:1})]),_:1},8,["show","title"])]))}})})),Ba=S((()=>{})),Ws,Ya=S((()=>{jt(),jt(),Ba(),Q(),Ws=ee(Ns,[["__scopeId","data-v-97787b2e"]])}));async function Xa(){return(await ge("/api/hermes/webhooks/endpoints")).endpoints}async function Va(D){return(await ge("/api/hermes/webhooks/endpoints",{method:"POST",body:JSON.stringify(D)})).endpoint}async function Jt(D,t){return(await ge(`/api/hermes/webhooks/endpoints/${encodeURIComponent(D)}`,{method:"PATCH",body:JSON.stringify(t)})).endpoint}async function Ka(D){await ge(`/api/hermes/webhooks/endpoints/${encodeURIComponent(D)}`,{method:"DELETE"})}async function Ga(D){return ge(`/api/hermes/webhooks/endpoints/${encodeURIComponent(D)}/test`,{method:"POST"})}async function ja(){return ge("/api/hermes/webhooks/local-test-target")}async function Ja(){return(await ge("/api/hermes/webhooks/local-test-events")).events}async function Qa(){await ge("/api/hermes/webhooks/local-test-events",{method:"DELETE"})}var Za=S((()=>{ms()})),Qt,Zt,es,ts,ss,as,ls,ns,is,os,Ds,rs=S((()=>{Z(),G(),j(),Za(),Ie(),Qt={class:"webhook-settings"},Zt={class:"toolbar"},es={class:"section-title"},ts={class:"section-desc"},ss={class:"local-inbox"},as={class:"toolbar local-inbox-toolbar"},ls={class:"section-title"},ns={class:"section-desc"},is={key:1,class:"local-inbox-empty"},os={class:"payload-preview"},Ds=K({__name:"WebhookSettings",setup(D){const{t}=J(),n=le(),a=He(),o=H([]),c=H(!1),b=H(!1),p=H(null),d=H(!1),i=H([]),_=H(!1),w=H(!1),v=H(null),I=H(!1),y=H(null);let U=null;const F=["chat.message.created","chat.run.queued","chat.run.started","chat.tool.started","chat.tool.completed","chat.tool.failed","chat.approval.requested","chat.approval.resolved","chat.clarification.requested","chat.clarification.resolved","chat.run.completed","chat.run.failed"],te={"chat.message.created":"messageCreated","chat.run.queued":"runQueued","chat.run.started":"runStarted","chat.tool.started":"toolStarted","chat.tool.completed":"toolCompleted","chat.tool.failed":"toolFailed","chat.approval.requested":"approvalRequested","chat.approval.resolved":"approvalResolved","chat.clarification.requested":"clarificationRequested","chat.clarification.resolved":"clarificationResolved","chat.run.completed":"completed","chat.run.failed":"failed"},u=$e({name:"",url:"",secret:"",eventTypes:[...F],profiles:[],enabled:!0,includeContent:!1,includeUserContent:!1,allowPrivateNetwork:!1,maxRetries:3,clearSecret:!1}),M=q(()=>F.map(r=>({label:t(`settings.webhooks.events.${te[r]}`),value:r})));function Y(r){return t(`settings.webhooks.events.${te[r]}`)}const oe=q(()=>a.profiles.map(r=>({label:r.alias||r.name,value:r.name})));function g(){y.value=null,u.name="",u.url="",u.secret="",u.eventTypes=[...F],u.profiles=[],u.enabled=!0,u.includeContent=!1,u.includeUserContent=!1,u.allowPrivateNetwork=!1,u.maxRetries=3,u.clearSecret=!1}function P(){g(),I.value=!0}async function E(){d.value=!0;try{const r=await ja();g(),u.name=t("settings.webhooks.form.localTestName"),u.url=r.url,u.includeContent=!0,u.allowPrivateNetwork=r.allow_private_network,u.enabled=!1,I.value=!0}catch(r){n.error(r?.message||t("settings.webhooks.messages.localTestFailed"))}finally{d.value=!1}}function ye(r){y.value=r,u.name=r.name,u.url=r.url,u.secret="",u.eventTypes=[...r.event_types],u.profiles=[...r.profiles],u.enabled=r.enabled,u.includeContent=r.include_content,u.includeUserContent=r.include_user_content,u.allowPrivateNetwork=r.allow_private_network,u.maxRetries=r.max_retries,u.clearSecret=!1,I.value=!0}async function de(r=!1){r||(c.value=!0);try{o.value=await Xa()}catch(f){r||n.error(f?.message||t("settings.webhooks.messages.loadFailed"))}finally{r||(c.value=!1)}}async function he(r=!1){r||(_.value=!0);try{i.value=await Ja()}catch(f){r||n.error(f?.message||t("settings.webhooks.messages.inboxLoadFailed"))}finally{r||(_.value=!1)}}async function xe(){w.value=!0;try{await Qa(),i.value=[],v.value=null,n.success(t("settings.webhooks.messages.inboxCleared"))}catch(r){n.error(r?.message||t("settings.webhooks.messages.inboxClearFailed"))}finally{w.value=!1}}async function Te(){const r=u.name.trim(),f=u.url.trim();if(!r||!f){n.error(t("settings.webhooks.messages.required"));return}if(u.eventTypes.length===0){n.error(t("settings.webhooks.messages.eventRequired"));return}const z={name:r,url:f,event_types:[...u.eventTypes],profiles:[...u.profiles],enabled:u.enabled,include_content:u.includeContent,include_user_content:u.includeUserContent,allow_private_network:u.allowPrivateNetwork,max_retries:u.maxRetries,...u.secret?{secret:u.secret}:{},...y.value&&u.clearSecret?{clear_secret:!0}:{}};b.value=!0;try{y.value?await Jt(y.value.id,z):await Va(z),I.value=!1,g(),await de(),n.success(t("settings.webhooks.messages.saved"))}catch(Ys){n.error(Ys?.message||t("settings.webhooks.messages.saveFailed"))}finally{b.value=!1}}async function L(r){b.value=!0;try{await Jt(r.id,{enabled:!r.enabled}),await de(),n.success(t("settings.webhooks.messages.saved"))}catch(f){n.error(f?.message||t("settings.webhooks.messages.saveFailed"))}finally{b.value=!1}}async function C(r){p.value=r.id;try{await Ga(r.id),await Promise.all([de(),he(!0)]),n.success(t("settings.webhooks.messages.testSucceeded"))}catch(f){await Promise.all([de(),he(!0)]),n.error(f?.message||t("settings.webhooks.messages.testFailed"))}finally{p.value=null}}async function x(r){b.value=!0;try{await Ka(r.id),await de(),n.success(t("settings.webhooks.messages.deleted"))}catch(f){n.error(f?.message||t("settings.webhooks.messages.deleteFailed"))}finally{b.value=!1}}function X(r){return r==="success"?"success":r==="failed"||r==="dropped"?"error":r==="delivering"||r==="retrying"?"warning":"default"}const ve=q(()=>[{title:t("settings.webhooks.columns.name"),key:"name",minWidth:140},{title:t("settings.webhooks.columns.url"),key:"url",minWidth:260,ellipsis:{tooltip:!0}},{title:t("settings.webhooks.columns.events"),key:"event_types",minWidth:180,render:r=>O(_e,{size:4},{default:()=>r.event_types.map(f=>O(me,{size:"small",bordered:!1},{default:()=>Y(f)}))})},{title:t("settings.webhooks.columns.profiles"),key:"profiles",minWidth:160,render:r=>r.profiles.length?O(_e,{size:4},{default:()=>r.profiles.map(f=>O(me,{size:"small",bordered:!1},{default:()=>f}))}):O(ze,{depth:3},{default:()=>t("settings.webhooks.allProfiles")})},{title:t("settings.webhooks.columns.status"),key:"status",width:150,render:r=>O(_e,{size:4,vertical:!0},{default:()=>[O(me,{size:"small",type:r.enabled?"success":"default"},{default:()=>r.enabled?t("settings.webhooks.status.enabled"):t("settings.webhooks.status.disabled")}),(r.enabled||r.runtime.state!=="idle")&&O(me,{size:"small",type:X(r.runtime.state),bordered:!1},{default:()=>`${t(`settings.webhooks.runtime.${r.runtime.state}`)} · ${t("settings.webhooks.queued",{count:r.runtime.queued})}`})].filter(Boolean)})},{title:t("settings.webhooks.columns.actions"),key:"actions",width:310,fixed:"right",render:r=>O(_e,{size:6,wrap:!1},{default:()=>[O(A,{size:"small",onClick:()=>ye(r)},{default:()=>t("common.edit")}),O(A,{size:"small",loading:p.value===r.id,onClick:()=>C(r)},{default:()=>t("settings.webhooks.actions.test")}),O(A,{size:"small",type:r.enabled?"warning":"primary",ghost:!0,loading:b.value,onClick:()=>L(r)},{default:()=>r.enabled?t("settings.webhooks.actions.disable"):t("settings.webhooks.actions.enable")}),O(Ce,{onPositiveClick:()=>x(r)},{trigger:()=>O(A,{size:"small",type:"error",ghost:!0,loading:b.value},{default:()=>t("common.delete")}),default:()=>t("settings.webhooks.deleteConfirm")})]})}]);function re(r){const f=new Date(r);return Number.isNaN(f.getTime())?r:f.toLocaleString()}function ne(r){return r.endsWith(".failed")?"error":r.endsWith(".requested")||r.endsWith(".queued")?"warning":r.endsWith(".started")?"info":"success"}const ke=q(()=>[{title:t("settings.webhooks.columns.receivedAt"),key:"received_at",width:180,render:r=>re(r.received_at)},{title:t("settings.webhooks.columns.event"),key:"event",minWidth:170,render:r=>O(me,{size:"small",bordered:!1,type:ne(r.event)},{default:()=>r.event})},{title:t("settings.webhooks.columns.eventId"),key:"event_id",minWidth:210,ellipsis:{tooltip:!0}},{title:t("settings.webhooks.columns.deliveryId"),key:"delivery_id",minWidth:210,ellipsis:{tooltip:!0}},{title:t("settings.webhooks.columns.actions"),key:"actions",width:90,fixed:"right",render:r=>O(A,{size:"small",onClick:()=>{v.value=r}},{default:()=>t("settings.webhooks.actions.view")})}]);return be(async()=>{a.profiles.length===0&&await a.fetchProfiles(),await Promise.all([de(),he()]),U=setInterval(()=>{de(!0),he(!0)},5e3)}),Ks(()=>{U&&clearInterval(U),U=null}),(r,f)=>($(),N("div",Qt,[h("div",Zt,[h("div",null,[h("h3",es,m(e(t)("settings.webhooks.title")),1),h("p",ts,m(e(t)("settings.webhooks.description")),1)]),s(e(_e),null,{default:l(()=>[s(e(A),{loading:d.value,onClick:E},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.localTest")),1)]),_:1},8,["loading"]),s(e(A),{type:"primary",onClick:P},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.add")),1)]),_:1})]),_:1})]),s(e(Se),{type:"info","show-icon":!1,class:"delivery-note"},{default:l(()=>[T(m(e(t)("settings.webhooks.deliveryNote")),1)]),_:1}),s(e(Ae),{columns:ve.value,data:o.value,loading:c.value,bordered:!1,"single-line":!1,"scroll-x":1200,size:"small"},null,8,["columns","data","loading"]),h("section",ss,[h("div",as,[h("div",null,[h("h3",ls,m(e(t)("settings.webhooks.localInboxTitle")),1),h("p",ns,m(e(t)("settings.webhooks.localInboxDescription",{count:i.value.length})),1)]),s(e(_e),null,{default:l(()=>[s(e(A),{size:"small",loading:_.value,onClick:f[0]||(f[0]=z=>he())},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.refresh")),1)]),_:1},8,["loading"]),s(e(Ce),{onPositiveClick:xe},{trigger:l(()=>[s(e(A),{size:"small",type:"error",ghost:"",disabled:i.value.length===0,loading:w.value},{default:l(()=>[T(m(e(t)("settings.webhooks.actions.clear")),1)]),_:1},8,["disabled","loading"])]),default:l(()=>[T(" "+m(e(t)("settings.webhooks.clearInboxConfirm")),1)]),_:1})]),_:1})]),_.value||i.value.length>0?($(),se(e(Ae),{key:0,columns:ke.value,data:i.value,loading:_.value,bordered:!1,"single-line":!1,"scroll-x":860,size:"small"},null,8,["columns","data","loading"])):($(),N("div",is,[s(e(ze),{depth:"3"},{default:l(()=>[T(m(e(t)("settings.webhooks.localInboxEmpty")),1)]),_:1})]))]),s(e(we),{show:I.value,"onUpdate:show":f[13]||(f[13]=z=>I.value=z),preset:"dialog",title:y.value?e(t)("settings.webhooks.editTitle"):e(t)("settings.webhooks.createTitle"),style:{width:"min(680px, 92vw)"}},{action:l(()=>[s(e(A),{onClick:f[12]||(f[12]=z=>I.value=!1)},{default:l(()=>[T(m(e(t)("common.cancel")),1)]),_:1}),s(e(A),{type:"primary",loading:b.value,onClick:Te},{default:l(()=>[T(m(e(t)("common.save")),1)]),_:1},8,["loading"])]),default:l(()=>[s(e(Ue),{"label-placement":"top"},{default:l(()=>[s(e(W),{label:e(t)("settings.webhooks.form.name"),required:""},{default:l(()=>[s(e(B),{value:u.name,"onUpdate:value":f[1]||(f[1]=z=>u.name=z),placeholder:e(t)("settings.webhooks.form.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.url"),required:""},{default:l(()=>[s(e(B),{value:u.url,"onUpdate:value":f[2]||(f[2]=z=>u.url=z),placeholder:"https://example.com/webhooks/hermes"},null,8,["value"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.secret")},{default:l(()=>[s(e(B),{value:u.secret,"onUpdate:value":f[3]||(f[3]=z=>u.secret=z),type:"password","show-password-on":"click",placeholder:y.value?.has_secret?e(t)("settings.webhooks.form.secretKeepPlaceholder"):e(t)("settings.webhooks.form.secretPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),y.value?.has_secret?($(),se(e(W),{key:0,label:e(t)("settings.webhooks.form.clearSecret"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.clearSecret,"onUpdate:value":f[4]||(f[4]=z=>u.clearSecret=z),disabled:!!u.secret},null,8,["value","disabled"])]),_:1},8,["label"])):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.events"),required:""},{default:l(()=>[s(e(ue),{value:u.eventTypes,"onUpdate:value":f[5]||(f[5]=z=>u.eventTypes=z),multiple:"",options:M.value},null,8,["value","options"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.profiles")},{default:l(()=>[s(e(ue),{value:u.profiles,"onUpdate:value":f[6]||(f[6]=z=>u.profiles=z),multiple:"",filterable:"",options:oe.value,placeholder:e(t)("settings.webhooks.form.profilesPlaceholder")},null,8,["value","options","placeholder"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.maxRetries")},{default:l(()=>[s(e(V),{value:u.maxRetries,"onUpdate:value":f[7]||(f[7]=z=>u.maxRetries=z),min:0,max:10,precision:0},null,8,["value"])]),_:1},8,["label"]),s(e(W),{label:e(t)("settings.webhooks.form.includeContent"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.includeContent,"onUpdate:value":f[8]||(f[8]=z=>u.includeContent=z)},null,8,["value"])]),_:1},8,["label"]),u.includeContent?($(),se(e(Se),{key:1,type:"warning",class:"form-alert"},{default:l(()=>[T(m(e(t)("settings.webhooks.form.includeContentHint")),1)]),_:1})):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.includeUserContent"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.includeUserContent,"onUpdate:value":f[9]||(f[9]=z=>u.includeUserContent=z)},null,8,["value"])]),_:1},8,["label"]),u.includeUserContent?($(),se(e(Se),{key:2,type:"warning",class:"form-alert"},{default:l(()=>[T(m(e(t)("settings.webhooks.form.includeUserContentHint")),1)]),_:1})):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.allowPrivateNetwork"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.allowPrivateNetwork,"onUpdate:value":f[10]||(f[10]=z=>u.allowPrivateNetwork=z)},null,8,["value"])]),_:1},8,["label"]),u.allowPrivateNetwork?($(),se(e(Se),{key:3,type:"warning",class:"form-alert"},{default:l(()=>[T(m(e(t)("settings.webhooks.form.allowPrivateNetworkHint")),1)]),_:1})):ae("",!0),s(e(W),{label:e(t)("settings.webhooks.form.enabled"),"label-placement":"left"},{default:l(()=>[s(e(R),{value:u.enabled,"onUpdate:value":f[11]||(f[11]=z=>u.enabled=z)},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["show","title"]),s(e(we),{show:!!v.value,preset:"card",title:e(t)("settings.webhooks.localInboxPayloadTitle"),style:{width:"min(780px, 92vw)"},"onUpdate:show":f[14]||(f[14]=z=>{z||(v.value=null)})},{default:l(()=>[h("pre",os,m(JSON.stringify(v.value?.payload??{},null,2)),1)]),_:1},8,["show","title"])]))}})})),el=S((()=>{})),qs,tl=S((()=>{rs(),rs(),el(),Q(),qs=ee(Ds,[["__scopeId","data-v-b1a619c9"]])})),us,ds,cs,ps,Bs,vs=S((()=>{Z(),Qs(),G(),j(),pe(),Ca(),xa(),Aa(),Ha(),za(),La(),Ra(),Ea(),Wa(),qa(),Ya(),tl(),ms(),Ie(),us={class:"settings-view"},ds={class:"page-header"},cs={class:"header-title"},ps={class:"settings-content"},Bs=K({__name:"SettingsView",setup(D){const t=ce(),n=He(),{t:a}=J(),o=Xs(),c=Zs(),b=Js(),p=H("account"),d=q(()=>new Set(["account",...o?["users"]:[],...o?["webhooks"]:[],"display","proxy","agent","memory","compression","session","privacy","models"]));function i(v){const I=typeof v=="string"?v:"";return d.value.has(I)?I:"account"}function _(v){p.value=i(v),b.replace({query:{...c.query,tab:p.value==="account"?void 0:p.value}})}fs(()=>c.query.tab,v=>{if(v==="voice"){b.replace({name:"hermes.models",query:{...c.query,tab:"tts"}});return}p.value=i(v)},{immediate:!0});async function w(){(!n.activeProfileName||n.profiles.length===0)&&await n.fetchProfiles(),await t.fetchSettings()}return be(()=>{w()}),(v,I)=>($(),N("div",us,[h("header",ds,[h("h2",cs,m(e(a)("settings.title")),1)]),h("div",ps,[s(e(_s),{show:e(t).loading||e(t).saving,size:"large",description:e(a)("common.loading")},{default:l(()=>[s(e(ta),{value:p.value,"onUpdate:value":[I[0]||(I[0]=y=>p.value=y),_],type:"line",animated:""},{default:l(()=>[s(e(ie),{name:"account",tab:e(a)("settings.tabs.account")},{default:l(()=>[s(Es)]),_:1},8,["tab"]),e(o)?($(),se(e(ie),{key:0,name:"users",tab:e(a)("settings.tabs.users")},{default:l(()=>[s(Ws)]),_:1},8,["tab"])):ae("",!0),e(o)?($(),se(e(ie),{key:1,name:"webhooks",tab:e(a)("settings.tabs.webhooks")},{default:l(()=>[s(qs)]),_:1},8,["tab"])):ae("",!0),s(e(ie),{name:"display",tab:e(a)("settings.tabs.display")},{default:l(()=>[s(ws)]),_:1},8,["tab"]),s(e(ie),{name:"proxy",tab:e(a)("settings.tabs.proxy")},{default:l(()=>[s(xs)]),_:1},8,["tab"]),s(e(ie),{name:"agent",tab:e(a)("settings.tabs.agent")},{default:l(()=>[s(Ss),s(Cs)]),_:1},8,["tab"]),s(e(ie),{name:"memory",tab:e(a)("settings.tabs.memory")},{default:l(()=>[s(As)]),_:1},8,["tab"]),s(e(ie),{name:"compression",tab:e(a)("settings.tabs.compression")},{default:l(()=>[s(Hs)]),_:1},8,["tab"]),s(e(ie),{name:"session",tab:e(a)("settings.tabs.session")},{default:l(()=>[s(zs)]),_:1},8,["tab"]),s(e(ie),{name:"privacy",tab:e(a)("settings.tabs.privacy")},{default:l(()=>[s(Ls)]),_:1},8,["tab"]),s(e(ie),{name:"models",tab:e(a)("settings.tabs.models")},{default:l(()=>[s(Rs)]),_:1},8,["tab"])]),_:1},8,["value"])]),_:1},8,["show","description"])])]))}})})),sl=S((()=>{})),al,ll=S((()=>{vs(),vs(),sl(),Q(),al=ee(Bs,[["__scopeId","data-v-75a34251"]])}));ll();export{al as default};
@@ -1 +1 @@
1
- import{$i as w,$t as S,Ar as et,Di as tt,Hi as d,M as at,Nr as rt,Pr as nt,Sa as o,Ti as h,Vi as it,Zi as le,_a as n,_i as s,_t as ot,bi as g,fi as st,gi as N,gt as ut,ii as lt,mi as ct,n as dt,ni as gt,pi as ce,ri as pt,si as vt,sn as F,t as ht,ua as l,wa as H,wi as R,ya as ft,yi as E}from"./index-DnjQJzX4.js";import{_ as mt,y as _t}from"./group-chat-CY62vc77.js";import{n as Ct,t as yt}from"./clipboard-DQ_A8ns-.js";import{n as kt,t as wt}from"./ProfileAvatar-DI9ciJxS.js";import{i as bt,r as At}from"./group-chat-xkdjC2Jt.js";import{a as Lt,i as Tt}from"./group-agent-avatar-CPehpiK0.js";import{a as It,f as St,o as Rt,r as Et}from"./group-chat-agent-link-DdSNKasF.js";import{n as Mt,t as Pt}from"./GroupChatPanel-WK4zBasl.js";function X(){const G=globalThis.crypto;if(typeof G?.randomUUID=="function")return G.randomUUID();if(typeof G?.getRandomValues!="function")throw new Error("Secure random number generation is unavailable");const a=G.getRandomValues(new Uint8Array(16));a[6]=a[6]&15|64,a[8]=a[8]&63|128;const b=Array.from(a,J=>J.toString(16).padStart(2,"0")).join("");return`${b.slice(0,8)}-${b.slice(8,12)}-${b.slice(12,16)}-${b.slice(16,20)}-${b.slice(20)}`}var Ot=H((()=>{})),de,ge,pe,ve,he,fe,me,_e,Ce,ye,ke,we,be,Ae,Le,Te,Ie,Se,Re,Ee,Me,Pe,Oe,qe,Ne,Ge,Ue,je,$e=H((()=>{vt(),et(),rt(),gt(),at(),Mt(),kt(),_t(),Rt(),At(),Ot(),Ct(),Tt(),de={class:"shared-group-chat-view"},ge={class:"agent-link-description"},pe={key:0,class:"agent-link-warning"},ve={class:"agent-link-form"},he={for:"group-chat-target-origin"},fe={class:"agent-link-actions"},me={key:2,class:"agent-link-error",role:"alert"},_e={key:3,class:"agent-link-code"},Ce=["aria-label"],ye={key:2,class:"invite-gate"},ke={class:"invite-card","aria-labelledby":"shared-group-chat-title"},we={class:"invite-heading"},be={class:"invite-kicker"},Ae={id:"shared-group-chat-title"},Le={class:"guest-avatar-editor"},Te={class:"guest-avatar-controls"},Ie={class:"guest-avatar-label"},Se={class:"guest-avatar-actions"},Re={class:"guest-avatar-hint"},Ee={key:0,class:"invite-error",role:"alert"},Me={for:"group-chat-guest-name"},Pe={key:1,class:"invite-error",role:"alert"},Oe={key:2,class:"invite-error",role:"alert"},qe={key:3,class:"invite-error",role:"alert"},Ne={for:"group-chat-invite-code"},Ge={key:0,class:"invite-error",role:"alert"},Ue={class:"invite-hint"},je=tt({__name:"SharedGroupChatView",setup(G){const{t:a}=nt(),b=pt(),J=lt(),c=bt(),Y=ut(),U=l(""),$=l(localStorage.getItem("gc_user_name")?.trim()||""),ee=l(null),A=l(""),te=()=>({type:"generated",seed:`guest-${mt()}`}),j=l(Lt(localStorage.getItem("gc_user_avatar"))||te()),m=l(""),_=l(!1),f=l(""),D=l(!1),V=l("http://127.0.0.1:8748"),i=l("idle"),p=l(""),L=l(""),k=l(""),M=l(null),C=l("");let u=null,T="",I="",P=null,O=0;const z=N(()=>{const t=b.params.inviteCode;return typeof t=="string"?t.trim():""}),Ve=N(()=>!!m.value&&!!c.currentRoomId),ae=N(()=>!!z.value&&f.value!=="invite"),ze=N(()=>c.rooms.find(t=>t.id===c.currentRoomId)||null),K=N(()=>Number(ze.value?.allowGuestAgents||0)===1),re=N(()=>i.value==="pending"?a("groupChat.agentLinkWaitingApproval"):i.value==="approved"||i.value==="connecting"?a("groupChat.agentLinkApproved"):i.value==="connected"?a("groupChat.agentLinkConnected"):"");function ne(){return X()}function ie(){const t=new Uint8Array(32);crypto.getRandomValues(t);let e="";return t.forEach(r=>{e+=String.fromCharCode(r)}),btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function xe(){return X()}function W(t){let e=t.trim();if(!e)throw new Error(a("groupChat.agentLinkTargetRequired"));/^[a-z][a-z0-9+.-]*:\/\//i.test(e)||(e=`http://${e}`);const r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(a("groupChat.agentLinkInvalidTarget"));if(r.username||r.password||r.search||r.hash||r.pathname!=="/"&&r.pathname!=="")throw new Error(a("groupChat.agentLinkInvalidTarget"));return r.origin}function oe(t){const e=JSON.stringify({protocolVersion:1,cloudOrigin:window.location.origin,pairingTicket:I,agent:t}),r=new TextEncoder().encode(e);let v="";return r.forEach(q=>{v+=String.fromCharCode(q)}),`HGC1.${btoa(v).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}`}function y(){P&&clearTimeout(P),P=null}function B(t){if(i.value="error",p.value=t,!u||u.closed||!k.value||!C.value)return!1;try{return u.postMessage({type:"hermes.group-chat.pairing-failed",state:C.value,error:t},k.value),!0}catch{return!1}}function Z(t){const e=t instanceof Error?t.message:String(t||"");return e.includes("ROOM_PARTICIPANT_NAME_CONFLICT")||e.toLowerCase().includes("name is already in use")?a("groupChat.shareNameConflict"):e||a("groupChat.agentLinkError")}function De(){y(),M.value=null,T="",I="",L.value="",C.value="",p.value="",i.value="idle"}function Be(){De(),D.value=!0}function Fe(t){if(!(t.executorType!=="remote"||t.ownerMemberId!==c.userId||!t.connectorId||!t.remoteOrigin))try{const e=W(t.remoteOrigin),r=new URLSearchParams({parentOrigin:window.location.origin,state:ne(),editConnectorId:t.connectorId}),v=window.open(`${e}/?groupChatAgentLink=1#/group-chat-link?${r}`,"hermes-group-chat-agent-link","popup=yes,width=540,height=720");if(!v){Y.error(a("groupChat.agentLinkPopupBlocked"));return}u=v}catch{Y.error(a("groupChat.agentLinkInvalidTarget"))}}function se(){if(!K.value){p.value=a("groupChat.guestAgentsDisabled"),i.value="error";return}try{const t=W(V.value);k.value=t,V.value=t,C.value=ne();const e=xe();T=ie(),I=ie(),p.value="",i.value="selecting";const r=new URLSearchParams({parentOrigin:window.location.origin,state:C.value,cloudOrigin:window.location.origin,inviteCode:m.value,requestId:e,requestSecret:T,pairingTicket:I});if(u=window.open(`${t}/?groupChatAgentLink=1#/group-chat-link?${r}`,"hermes-group-chat-agent-link","popup=yes,width=540,height=720"),!u){i.value="error",p.value=a("groupChat.agentLinkPopupBlocked");return}Et(m.value,{requestId:e,requestSecret:T,pairingTicket:I,ownerMemberId:c.userId,membershipToken:c.agentLinkToken,targetOrigin:t}).then(v=>{M.value=v.request,y(),P=setTimeout(()=>{Q()},300)}).catch(v=>{const q=Z(v);i.value="error",p.value=q,B(q)})}catch(t){i.value="error",p.value=t instanceof Error?t.message:a("groupChat.agentLinkInvalidTarget")}}async function Q(t){if(!(!M.value||!T||!m.value)){try{const e=await It(m.value,M.value.id,T);if(M.value=e.request,e.request.status==="draft")i.value="selecting";else if(e.request.status==="pending")i.value="pending";else if(e.request.status==="approved")t&&(L.value=oe(t)),i.value="approved",t&&u&&!u.closed&&u.postMessage({type:"hermes.group-chat.connect",state:C.value,cloudOrigin:window.location.origin,pairingTicket:I,agent:t},k.value),i.value="connecting";else if(e.request.status==="connecting")t&&(L.value=oe(t)),i.value="connecting";else if(e.request.status==="consumed"){i.value="connected",y();return}else if(e.request.status==="rejected"||e.request.status==="expired"||e.request.status==="failed"){const r=e.request.status==="rejected"?a("groupChat.agentLinkRejected"):e.request.status==="failed"?e.request.failureReason||a("groupChat.agentLinkConnectFailed"):a("groupChat.agentLinkExpired");B(r)||(i.value="error",p.value=r),y();return}}catch(e){const r=Z(e);B(r)||(i.value="error",p.value=r),y();return}P=setTimeout(()=>{Q(t)},1200)}}async function He(t){try{i.value="pending",p.value="";const e=await St(m.value,{ownerMemberId:c.userId,membershipToken:c.agentLinkToken,targetOrigin:k.value,agent:t});M.value=e.request,T=e.requestSecret,I=e.pairingTicket,y(),P=setTimeout(()=>{Q(t)},600)}catch(e){const r=Z(e);B(r)||(i.value="error",p.value=r)}}function ue(t){if(!u||t.source!==u||!C.value||!t.data||typeof t.data!="object"||Array.isArray(t.data))return;const e=t.data;if(e?.state===C.value){if(e.type==="hermes.group-chat.link-ready"){try{const r=W(String(e.targetOrigin||""));if(r!==t.origin)return;k.value=r,V.value=r,u.postMessage({type:"hermes.group-chat.parent-ready",state:C.value},r)}catch{return}return}t.origin===k.value&&(e.type==="hermes.group-chat.agent-selected"?(u.postMessage({type:"hermes.group-chat.selection-received",state:C.value},k.value),He(e.agent)):e.type==="hermes.group-chat.connected"?(i.value="connected",y()):e.type==="hermes.group-chat.connect-failed"&&(i.value="error",p.value=String(e.error||a("groupChat.agentLinkConnectFailed"))))}}async function Je(){L.value&&await yt(L.value)}async function Ke(t){const e=t.trim();if(!e||_.value)return;const r=++O;_.value=!0,f.value="",m.value="",c.disconnect();try{if(await c.joinByCode(e,{guest:!0}),r!==O)return;m.value=e}catch(v){if(r!==O)return;c.disconnect(),v?.code==="ROOM_PARTICIPANT_NAME_CONFLICT"?f.value="name-conflict":v?.code==="ROOM_PARTICIPANT_NAME_RESERVED"?f.value="name-reserved":f.value="invite"}finally{r===O&&(_.value=!1)}}async function We(){const t=U.value.trim();if(t){if(z.value===t){f.value="";return}await J.replace({name:"share.groupChat",params:{inviteCode:t}})}}async function Ze(){const t=$.value.trim();!t||!z.value||(c.setUserInfo(t,localStorage.getItem("gc_user_description")||"",JSON.stringify(j.value)),await Ke(z.value))}function Qe(){j.value={type:"generated",seed:`guest-${X()}`},A.value=""}function Xe(){j.value=te(),A.value=""}async function Ye(t){const e=t.target,r=e.files?.[0];if(e.value="",!!r){if(!["image/png","image/jpeg","image/webp"].includes(r.type)){A.value=a("profiles.avatar.invalidType");return}if(r.size>1024*1024){A.value=a("profiles.avatar.tooLarge");return}j.value={type:"image",dataUrl:await new Promise((v,q)=>{const x=new FileReader;x.onload=()=>v(String(x.result||"")),x.onerror=()=>q(x.error||new Error("Failed to read avatar")),x.readAsDataURL(r)})},A.value=""}}return le(z,t=>{U.value=t,O+=1,c.disconnect(),m.value="",f.value="",_.value=!1},{immediate:!0}),le(()=>c.error,t=>{t==="ROOM_MEMBER_REMOVED"&&(m.value="",f.value="removed",D.value=!1,y())}),window.addEventListener("message",ue),it(()=>{O+=1,y(),window.removeEventListener("message",ue),u&&!u.closed&&u.close(),c.disconnect()}),(t,e)=>(d(),g("div",de,[Ve.value?(d(),g(ct,{key:0},[h(Pt,{standalone:"",onRequestAgentLink:Be,onRequestAgentEdit:Fe}),h(n(ot),{show:D.value,"onUpdate:show":e[1]||(e[1]=r=>D.value=r),preset:"card",class:"agent-link-modal",title:n(a)("groupChat.agentLinkTitle"),bordered:!1,"mask-closable":!1},{default:w(()=>[s("p",ge,o(n(a)("groupChat.agentLinkDescription")),1),K.value?E("",!0):(d(),g("div",pe,o(n(a)("groupChat.guestAgentsDisabled")),1)),s("div",ve,[s("label",he,o(n(a)("groupChat.agentLinkTargetUrl")),1),h(n(F),{id:"group-chat-target-origin",value:V.value,"onUpdate:value":e[0]||(e[0]=r=>V.value=r),placeholder:n(a)("groupChat.agentLinkTargetPlaceholder"),disabled:i.value==="pending"||i.value==="connecting",onKeyup:st(se,["enter"])},null,8,["value","placeholder","disabled"]),s("div",fe,[h(n(S),{type:"primary",disabled:!K.value||i.value==="pending"||i.value==="connecting",onClick:se},{default:w(()=>[R(o(n(a)("groupChat.agentLinkOpenTarget")),1)]),_:1},8,["disabled"])])]),re.value?(d(),g("div",{key:1,class:ft(["agent-link-status",`is-${i.value}`])},o(re.value),3)):E("",!0),p.value?(d(),g("p",me,o(p.value),1)):E("",!0),L.value?(d(),g("div",_e,[s("label",null,o(n(a)("groupChat.agentLinkPairingCode")),1),h(n(F),{value:L.value,type:"textarea",rows:4,readonly:""},null,8,["value"]),s("p",null,o(n(a)("groupChat.agentLinkPairingCodeHint")),1),h(n(S),{secondary:"",block:"",onClick:Je},{default:w(()=>[R(o(n(a)("groupChat.agentLinkCopyCode")),1)]),_:1})])):E("",!0)]),_:1},8,["show","title"])],64)):_.value?(d(),g("main",{key:1,class:"invite-loading","aria-label":n(a)("groupChat.shareJoining"),"aria-busy":"true"},[...e[5]||(e[5]=[s("span",{class:"invite-loading-spinner","aria-hidden":"true"},null,-1)])],8,Ce)):(d(),g("main",ye,[s("section",ke,[e[6]||(e[6]=s("img",{class:"invite-logo",src:"/logo.png",alt:""},null,-1)),s("div",we,[s("p",be,o(n(a)("groupChat.title")),1),s("h1",Ae,o(n(a)("groupChat.shareTitle")),1),s("p",null,o(ae.value?n(a)("groupChat.shareNameSubtitle"):n(a)("groupChat.shareSubtitle")),1)]),ae.value?(d(),g("form",{key:0,class:"invite-form",onSubmit:ce(Ze,["prevent"])},[s("div",Le,[h(wt,{name:$.value||"guest",avatar:j.value,size:72},null,8,["name","avatar"]),s("div",Te,[s("span",Ie,o(n(a)("profiles.avatar.customize")),1),s("div",Se,[h(n(S),{size:"small","attr-type":"button",onClick:e[2]||(e[2]=r=>ee.value?.click())},{default:w(()=>[R(o(n(a)("profiles.avatar.upload")),1)]),_:1}),h(n(S),{size:"small","attr-type":"button",onClick:Qe},{default:w(()=>[R(o(n(a)("profiles.avatar.random")),1)]),_:1}),h(n(S),{size:"small","attr-type":"button",onClick:Xe},{default:w(()=>[R(o(n(a)("profiles.avatar.reset")),1)]),_:1})]),s("span",Re,o(n(a)("profiles.avatar.hint")),1)]),s("input",{ref_key:"guestAvatarFileInput",ref:ee,class:"guest-avatar-file",type:"file",accept:"image/png,image/jpeg,image/webp",onChange:Ye},null,544)]),A.value?(d(),g("p",Ee,o(A.value),1)):E("",!0),s("label",Me,o(n(a)("groupChat.yourName")),1),h(n(F),{id:"group-chat-guest-name",value:$.value,"onUpdate:value":e[3]||(e[3]=r=>$.value=r),size:"large",disabled:_.value,placeholder:n(a)("groupChat.yourName"),autocomplete:"name",autofocus:"",clearable:"",maxlength:120},null,8,["value","disabled","placeholder"]),f.value==="removed"?(d(),g("p",Pe,o(n(a)("groupChat.memberRemovedNotice")),1)):f.value==="name-conflict"?(d(),g("p",Oe,o(n(a)("groupChat.shareNameConflict")),1)):f.value==="name-reserved"?(d(),g("p",qe,o(n(a)("groupChat.shareNameReserved")),1)):E("",!0),h(n(S),{"attr-type":"submit",type:"primary",size:"large",block:"",loading:_.value,disabled:!$.value.trim()},{default:w(()=>[R(o(n(a)("groupChat.shareEnterRoom")),1)]),_:1},8,["loading","disabled"])],32)):(d(),g("form",{key:1,class:"invite-form",onSubmit:ce(We,["prevent"])},[s("label",Ne,o(n(a)("groupChat.inviteCode")),1),h(n(F),{id:"group-chat-invite-code",value:U.value,"onUpdate:value":e[4]||(e[4]=r=>U.value=r),size:"large",disabled:_.value,placeholder:n(a)("groupChat.inviteCodePlaceholder"),autocomplete:"one-time-code",autofocus:"",clearable:""},null,8,["value","disabled","placeholder"]),f.value==="invite"?(d(),g("p",Ge,o(n(a)("groupChat.shareInvalidCode")),1)):E("",!0),h(n(S),{"attr-type":"submit",type:"primary",size:"large",block:"",loading:_.value,disabled:!U.value.trim()},{default:w(()=>[R(o(_.value?n(a)("groupChat.shareJoining"):n(a)("groupChat.joinByCode")),1)]),_:1},8,["loading","disabled"])],32)),s("p",Ue,o(n(a)("groupChat.shareCodeHint")),1)])]))]))}})})),qt=H((()=>{})),Nt,Gt=H((()=>{$e(),$e(),qt(),dt(),Nt=ht(je,[["__scopeId","data-v-4ca467eb"]])}));Gt();export{Nt as default};
1
+ import{$i as w,$t as S,Ar as et,Di as tt,Hi as d,M as at,Nr as rt,Pr as nt,Sa as o,Ti as h,Vi as it,Zi as le,_a as n,_i as s,_t as ot,bi as g,fi as st,gi as N,gt as ut,ii as lt,mi as ct,n as dt,ni as gt,pi as ce,ri as pt,si as vt,sn as F,t as ht,ua as l,wa as H,wi as R,ya as ft,yi as E}from"./index-DN4SafrP.js";import{_ as mt,y as _t}from"./group-chat-Buz8HP-N.js";import{n as Ct,t as yt}from"./clipboard-DHZFaAvO.js";import{n as kt,t as wt}from"./ProfileAvatar-C8xoALCI.js";import{i as bt,r as At}from"./group-chat-CgFAwCtr.js";import{a as Lt,i as Tt}from"./group-agent-avatar-CwqtaKGw.js";import{a as It,f as St,o as Rt,r as Et}from"./group-chat-agent-link-N5IFeN_j.js";import{n as Mt,t as Pt}from"./GroupChatPanel-CLa3s08V.js";function X(){const G=globalThis.crypto;if(typeof G?.randomUUID=="function")return G.randomUUID();if(typeof G?.getRandomValues!="function")throw new Error("Secure random number generation is unavailable");const a=G.getRandomValues(new Uint8Array(16));a[6]=a[6]&15|64,a[8]=a[8]&63|128;const b=Array.from(a,J=>J.toString(16).padStart(2,"0")).join("");return`${b.slice(0,8)}-${b.slice(8,12)}-${b.slice(12,16)}-${b.slice(16,20)}-${b.slice(20)}`}var Ot=H((()=>{})),de,ge,pe,ve,he,fe,me,_e,Ce,ye,ke,we,be,Ae,Le,Te,Ie,Se,Re,Ee,Me,Pe,Oe,qe,Ne,Ge,Ue,je,$e=H((()=>{vt(),et(),rt(),gt(),at(),Mt(),kt(),_t(),Rt(),At(),Ot(),Ct(),Tt(),de={class:"shared-group-chat-view"},ge={class:"agent-link-description"},pe={key:0,class:"agent-link-warning"},ve={class:"agent-link-form"},he={for:"group-chat-target-origin"},fe={class:"agent-link-actions"},me={key:2,class:"agent-link-error",role:"alert"},_e={key:3,class:"agent-link-code"},Ce=["aria-label"],ye={key:2,class:"invite-gate"},ke={class:"invite-card","aria-labelledby":"shared-group-chat-title"},we={class:"invite-heading"},be={class:"invite-kicker"},Ae={id:"shared-group-chat-title"},Le={class:"guest-avatar-editor"},Te={class:"guest-avatar-controls"},Ie={class:"guest-avatar-label"},Se={class:"guest-avatar-actions"},Re={class:"guest-avatar-hint"},Ee={key:0,class:"invite-error",role:"alert"},Me={for:"group-chat-guest-name"},Pe={key:1,class:"invite-error",role:"alert"},Oe={key:2,class:"invite-error",role:"alert"},qe={key:3,class:"invite-error",role:"alert"},Ne={for:"group-chat-invite-code"},Ge={key:0,class:"invite-error",role:"alert"},Ue={class:"invite-hint"},je=tt({__name:"SharedGroupChatView",setup(G){const{t:a}=nt(),b=pt(),J=lt(),c=bt(),Y=ut(),U=l(""),$=l(localStorage.getItem("gc_user_name")?.trim()||""),ee=l(null),A=l(""),te=()=>({type:"generated",seed:`guest-${mt()}`}),j=l(Lt(localStorage.getItem("gc_user_avatar"))||te()),m=l(""),_=l(!1),f=l(""),D=l(!1),V=l("http://127.0.0.1:8748"),i=l("idle"),p=l(""),L=l(""),k=l(""),M=l(null),C=l("");let u=null,T="",I="",P=null,O=0;const z=N(()=>{const t=b.params.inviteCode;return typeof t=="string"?t.trim():""}),Ve=N(()=>!!m.value&&!!c.currentRoomId),ae=N(()=>!!z.value&&f.value!=="invite"),ze=N(()=>c.rooms.find(t=>t.id===c.currentRoomId)||null),K=N(()=>Number(ze.value?.allowGuestAgents||0)===1),re=N(()=>i.value==="pending"?a("groupChat.agentLinkWaitingApproval"):i.value==="approved"||i.value==="connecting"?a("groupChat.agentLinkApproved"):i.value==="connected"?a("groupChat.agentLinkConnected"):"");function ne(){return X()}function ie(){const t=new Uint8Array(32);crypto.getRandomValues(t);let e="";return t.forEach(r=>{e+=String.fromCharCode(r)}),btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function xe(){return X()}function W(t){let e=t.trim();if(!e)throw new Error(a("groupChat.agentLinkTargetRequired"));/^[a-z][a-z0-9+.-]*:\/\//i.test(e)||(e=`http://${e}`);const r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(a("groupChat.agentLinkInvalidTarget"));if(r.username||r.password||r.search||r.hash||r.pathname!=="/"&&r.pathname!=="")throw new Error(a("groupChat.agentLinkInvalidTarget"));return r.origin}function oe(t){const e=JSON.stringify({protocolVersion:1,cloudOrigin:window.location.origin,pairingTicket:I,agent:t}),r=new TextEncoder().encode(e);let v="";return r.forEach(q=>{v+=String.fromCharCode(q)}),`HGC1.${btoa(v).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}`}function y(){P&&clearTimeout(P),P=null}function B(t){if(i.value="error",p.value=t,!u||u.closed||!k.value||!C.value)return!1;try{return u.postMessage({type:"hermes.group-chat.pairing-failed",state:C.value,error:t},k.value),!0}catch{return!1}}function Z(t){const e=t instanceof Error?t.message:String(t||"");return e.includes("ROOM_PARTICIPANT_NAME_CONFLICT")||e.toLowerCase().includes("name is already in use")?a("groupChat.shareNameConflict"):e||a("groupChat.agentLinkError")}function De(){y(),M.value=null,T="",I="",L.value="",C.value="",p.value="",i.value="idle"}function Be(){De(),D.value=!0}function Fe(t){if(!(t.executorType!=="remote"||t.ownerMemberId!==c.userId||!t.connectorId||!t.remoteOrigin))try{const e=W(t.remoteOrigin),r=new URLSearchParams({parentOrigin:window.location.origin,state:ne(),editConnectorId:t.connectorId}),v=window.open(`${e}/?groupChatAgentLink=1#/group-chat-link?${r}`,"hermes-group-chat-agent-link","popup=yes,width=540,height=720");if(!v){Y.error(a("groupChat.agentLinkPopupBlocked"));return}u=v}catch{Y.error(a("groupChat.agentLinkInvalidTarget"))}}function se(){if(!K.value){p.value=a("groupChat.guestAgentsDisabled"),i.value="error";return}try{const t=W(V.value);k.value=t,V.value=t,C.value=ne();const e=xe();T=ie(),I=ie(),p.value="",i.value="selecting";const r=new URLSearchParams({parentOrigin:window.location.origin,state:C.value,cloudOrigin:window.location.origin,inviteCode:m.value,requestId:e,requestSecret:T,pairingTicket:I});if(u=window.open(`${t}/?groupChatAgentLink=1#/group-chat-link?${r}`,"hermes-group-chat-agent-link","popup=yes,width=540,height=720"),!u){i.value="error",p.value=a("groupChat.agentLinkPopupBlocked");return}Et(m.value,{requestId:e,requestSecret:T,pairingTicket:I,ownerMemberId:c.userId,membershipToken:c.agentLinkToken,targetOrigin:t}).then(v=>{M.value=v.request,y(),P=setTimeout(()=>{Q()},300)}).catch(v=>{const q=Z(v);i.value="error",p.value=q,B(q)})}catch(t){i.value="error",p.value=t instanceof Error?t.message:a("groupChat.agentLinkInvalidTarget")}}async function Q(t){if(!(!M.value||!T||!m.value)){try{const e=await It(m.value,M.value.id,T);if(M.value=e.request,e.request.status==="draft")i.value="selecting";else if(e.request.status==="pending")i.value="pending";else if(e.request.status==="approved")t&&(L.value=oe(t)),i.value="approved",t&&u&&!u.closed&&u.postMessage({type:"hermes.group-chat.connect",state:C.value,cloudOrigin:window.location.origin,pairingTicket:I,agent:t},k.value),i.value="connecting";else if(e.request.status==="connecting")t&&(L.value=oe(t)),i.value="connecting";else if(e.request.status==="consumed"){i.value="connected",y();return}else if(e.request.status==="rejected"||e.request.status==="expired"||e.request.status==="failed"){const r=e.request.status==="rejected"?a("groupChat.agentLinkRejected"):e.request.status==="failed"?e.request.failureReason||a("groupChat.agentLinkConnectFailed"):a("groupChat.agentLinkExpired");B(r)||(i.value="error",p.value=r),y();return}}catch(e){const r=Z(e);B(r)||(i.value="error",p.value=r),y();return}P=setTimeout(()=>{Q(t)},1200)}}async function He(t){try{i.value="pending",p.value="";const e=await St(m.value,{ownerMemberId:c.userId,membershipToken:c.agentLinkToken,targetOrigin:k.value,agent:t});M.value=e.request,T=e.requestSecret,I=e.pairingTicket,y(),P=setTimeout(()=>{Q(t)},600)}catch(e){const r=Z(e);B(r)||(i.value="error",p.value=r)}}function ue(t){if(!u||t.source!==u||!C.value||!t.data||typeof t.data!="object"||Array.isArray(t.data))return;const e=t.data;if(e?.state===C.value){if(e.type==="hermes.group-chat.link-ready"){try{const r=W(String(e.targetOrigin||""));if(r!==t.origin)return;k.value=r,V.value=r,u.postMessage({type:"hermes.group-chat.parent-ready",state:C.value},r)}catch{return}return}t.origin===k.value&&(e.type==="hermes.group-chat.agent-selected"?(u.postMessage({type:"hermes.group-chat.selection-received",state:C.value},k.value),He(e.agent)):e.type==="hermes.group-chat.connected"?(i.value="connected",y()):e.type==="hermes.group-chat.connect-failed"&&(i.value="error",p.value=String(e.error||a("groupChat.agentLinkConnectFailed"))))}}async function Je(){L.value&&await yt(L.value)}async function Ke(t){const e=t.trim();if(!e||_.value)return;const r=++O;_.value=!0,f.value="",m.value="",c.disconnect();try{if(await c.joinByCode(e,{guest:!0}),r!==O)return;m.value=e}catch(v){if(r!==O)return;c.disconnect(),v?.code==="ROOM_PARTICIPANT_NAME_CONFLICT"?f.value="name-conflict":v?.code==="ROOM_PARTICIPANT_NAME_RESERVED"?f.value="name-reserved":f.value="invite"}finally{r===O&&(_.value=!1)}}async function We(){const t=U.value.trim();if(t){if(z.value===t){f.value="";return}await J.replace({name:"share.groupChat",params:{inviteCode:t}})}}async function Ze(){const t=$.value.trim();!t||!z.value||(c.setUserInfo(t,localStorage.getItem("gc_user_description")||"",JSON.stringify(j.value)),await Ke(z.value))}function Qe(){j.value={type:"generated",seed:`guest-${X()}`},A.value=""}function Xe(){j.value=te(),A.value=""}async function Ye(t){const e=t.target,r=e.files?.[0];if(e.value="",!!r){if(!["image/png","image/jpeg","image/webp"].includes(r.type)){A.value=a("profiles.avatar.invalidType");return}if(r.size>1024*1024){A.value=a("profiles.avatar.tooLarge");return}j.value={type:"image",dataUrl:await new Promise((v,q)=>{const x=new FileReader;x.onload=()=>v(String(x.result||"")),x.onerror=()=>q(x.error||new Error("Failed to read avatar")),x.readAsDataURL(r)})},A.value=""}}return le(z,t=>{U.value=t,O+=1,c.disconnect(),m.value="",f.value="",_.value=!1},{immediate:!0}),le(()=>c.error,t=>{t==="ROOM_MEMBER_REMOVED"&&(m.value="",f.value="removed",D.value=!1,y())}),window.addEventListener("message",ue),it(()=>{O+=1,y(),window.removeEventListener("message",ue),u&&!u.closed&&u.close(),c.disconnect()}),(t,e)=>(d(),g("div",de,[Ve.value?(d(),g(ct,{key:0},[h(Pt,{standalone:"",onRequestAgentLink:Be,onRequestAgentEdit:Fe}),h(n(ot),{show:D.value,"onUpdate:show":e[1]||(e[1]=r=>D.value=r),preset:"card",class:"agent-link-modal",title:n(a)("groupChat.agentLinkTitle"),bordered:!1,"mask-closable":!1},{default:w(()=>[s("p",ge,o(n(a)("groupChat.agentLinkDescription")),1),K.value?E("",!0):(d(),g("div",pe,o(n(a)("groupChat.guestAgentsDisabled")),1)),s("div",ve,[s("label",he,o(n(a)("groupChat.agentLinkTargetUrl")),1),h(n(F),{id:"group-chat-target-origin",value:V.value,"onUpdate:value":e[0]||(e[0]=r=>V.value=r),placeholder:n(a)("groupChat.agentLinkTargetPlaceholder"),disabled:i.value==="pending"||i.value==="connecting",onKeyup:st(se,["enter"])},null,8,["value","placeholder","disabled"]),s("div",fe,[h(n(S),{type:"primary",disabled:!K.value||i.value==="pending"||i.value==="connecting",onClick:se},{default:w(()=>[R(o(n(a)("groupChat.agentLinkOpenTarget")),1)]),_:1},8,["disabled"])])]),re.value?(d(),g("div",{key:1,class:ft(["agent-link-status",`is-${i.value}`])},o(re.value),3)):E("",!0),p.value?(d(),g("p",me,o(p.value),1)):E("",!0),L.value?(d(),g("div",_e,[s("label",null,o(n(a)("groupChat.agentLinkPairingCode")),1),h(n(F),{value:L.value,type:"textarea",rows:4,readonly:""},null,8,["value"]),s("p",null,o(n(a)("groupChat.agentLinkPairingCodeHint")),1),h(n(S),{secondary:"",block:"",onClick:Je},{default:w(()=>[R(o(n(a)("groupChat.agentLinkCopyCode")),1)]),_:1})])):E("",!0)]),_:1},8,["show","title"])],64)):_.value?(d(),g("main",{key:1,class:"invite-loading","aria-label":n(a)("groupChat.shareJoining"),"aria-busy":"true"},[...e[5]||(e[5]=[s("span",{class:"invite-loading-spinner","aria-hidden":"true"},null,-1)])],8,Ce)):(d(),g("main",ye,[s("section",ke,[e[6]||(e[6]=s("img",{class:"invite-logo",src:"/logo.png",alt:""},null,-1)),s("div",we,[s("p",be,o(n(a)("groupChat.title")),1),s("h1",Ae,o(n(a)("groupChat.shareTitle")),1),s("p",null,o(ae.value?n(a)("groupChat.shareNameSubtitle"):n(a)("groupChat.shareSubtitle")),1)]),ae.value?(d(),g("form",{key:0,class:"invite-form",onSubmit:ce(Ze,["prevent"])},[s("div",Le,[h(wt,{name:$.value||"guest",avatar:j.value,size:72},null,8,["name","avatar"]),s("div",Te,[s("span",Ie,o(n(a)("profiles.avatar.customize")),1),s("div",Se,[h(n(S),{size:"small","attr-type":"button",onClick:e[2]||(e[2]=r=>ee.value?.click())},{default:w(()=>[R(o(n(a)("profiles.avatar.upload")),1)]),_:1}),h(n(S),{size:"small","attr-type":"button",onClick:Qe},{default:w(()=>[R(o(n(a)("profiles.avatar.random")),1)]),_:1}),h(n(S),{size:"small","attr-type":"button",onClick:Xe},{default:w(()=>[R(o(n(a)("profiles.avatar.reset")),1)]),_:1})]),s("span",Re,o(n(a)("profiles.avatar.hint")),1)]),s("input",{ref_key:"guestAvatarFileInput",ref:ee,class:"guest-avatar-file",type:"file",accept:"image/png,image/jpeg,image/webp",onChange:Ye},null,544)]),A.value?(d(),g("p",Ee,o(A.value),1)):E("",!0),s("label",Me,o(n(a)("groupChat.yourName")),1),h(n(F),{id:"group-chat-guest-name",value:$.value,"onUpdate:value":e[3]||(e[3]=r=>$.value=r),size:"large",disabled:_.value,placeholder:n(a)("groupChat.yourName"),autocomplete:"name",autofocus:"",clearable:"",maxlength:120},null,8,["value","disabled","placeholder"]),f.value==="removed"?(d(),g("p",Pe,o(n(a)("groupChat.memberRemovedNotice")),1)):f.value==="name-conflict"?(d(),g("p",Oe,o(n(a)("groupChat.shareNameConflict")),1)):f.value==="name-reserved"?(d(),g("p",qe,o(n(a)("groupChat.shareNameReserved")),1)):E("",!0),h(n(S),{"attr-type":"submit",type:"primary",size:"large",block:"",loading:_.value,disabled:!$.value.trim()},{default:w(()=>[R(o(n(a)("groupChat.shareEnterRoom")),1)]),_:1},8,["loading","disabled"])],32)):(d(),g("form",{key:1,class:"invite-form",onSubmit:ce(We,["prevent"])},[s("label",Ne,o(n(a)("groupChat.inviteCode")),1),h(n(F),{id:"group-chat-invite-code",value:U.value,"onUpdate:value":e[4]||(e[4]=r=>U.value=r),size:"large",disabled:_.value,placeholder:n(a)("groupChat.inviteCodePlaceholder"),autocomplete:"one-time-code",autofocus:"",clearable:""},null,8,["value","disabled","placeholder"]),f.value==="invite"?(d(),g("p",Ge,o(n(a)("groupChat.shareInvalidCode")),1)):E("",!0),h(n(S),{"attr-type":"submit",type:"primary",size:"large",block:"",loading:_.value,disabled:!U.value.trim()},{default:w(()=>[R(o(_.value?n(a)("groupChat.shareJoining"):n(a)("groupChat.joinByCode")),1)]),_:1},8,["loading","disabled"])],32)),s("p",Ue,o(n(a)("groupChat.shareCodeHint")),1)])]))]))}})})),qt=H((()=>{})),Nt,Gt=H((()=>{$e(),$e(),qt(),dt(),Nt=ht(je,[["__scopeId","data-v-4ca467eb"]])}));Gt();export{Nt as default};
@@ -1 +1 @@
1
- import{$i as j,$t as E,Bi as sl,Di as al,Hi as n,M as tl,Nr as il,Pr as ol,Sa as a,Ti as K,Wi as f,_a as i,_i as e,bi as r,gi as v,mi as m,n as nl,si as rl,t as ul,ua as p,wa as q,wi as M,xa as b,ya as O,yi as B}from"./index-DnjQJzX4.js";import{r as dl,t as _l}from"./profiles-D-vlI-Ec.js";import{l as cl,o as vl}from"./skills-DC-UPcXj.js";var W,G,J,Q,X,Y,Z,ee,le,se,ae,te,ie,oe,ne,re,ue,de,_e,ce,ve,he,ke,me,pe,ge,ye,fe,be,Se,Ue,we,xe,Me,$e,Ce,De,Ve,Be,Fe,Pe,qe,Ne,Te,Ae,Le,ze,Ie,He,Re,F,P,Ee,je=q((()=>{rl(),il(),tl(),_l(),cl(),W={class:"skills-usage-view"},G={class:"page-header"},J={class:"header-text"},Q={class:"header-title"},X={class:"header-subtitle"},Y={class:"skills-usage-toolbar"},Z=["aria-label"],ee={class:"skills-usage-content"},le={key:0,class:"skills-usage-state error"},se={key:1,class:"skills-usage-state"},ae={key:0,class:"inline-error"},te={class:"overview-grid"},ie={class:"panel-header"},oe={key:0,class:"skills-usage-state compact"},ne={class:"skill-bar-chart"},re=["onMouseenter","onFocusin","onMouseleave","onFocusout"],ue={class:"skill-bar-track"},de=["data-skill"],_e={class:"tooltip-date"},ce={class:"tooltip-row total"},ve={class:"bar-dates"},he=["aria-label"],ke={class:"summary-card primary"},me={class:"summary-label"},pe={class:"summary-value"},ge={class:"summary-card"},ye={class:"summary-label"},fe={class:"summary-value"},be={class:"summary-card"},Se={class:"summary-label"},Ue={class:"summary-value"},we={class:"summary-card"},xe={class:"summary-label"},Me={class:"summary-value"},$e={class:"usage-panel"},Ce={class:"panel-header"},De={key:0,class:"skills-usage-state compact"},Ve=["aria-label"],Be={class:"skills-row table-head",role:"row"},Fe={role:"columnheader"},Pe={role:"columnheader"},qe={role:"columnheader"},Ne={role:"columnheader"},Te={role:"columnheader"},Ae={class:"skill-name",role:"cell"},Le={role:"cell"},ze={role:"cell"},Ie={class:"share-cell",role:"cell"},He={class:"share-bar"},Re={class:"last-used",role:"cell"},F=6,P="#5b6b84",Ee=al({__name:"SkillsUsageView",setup(pl){const{t}=ol(),$=dl(),Ke=[7,30,90,365],N=["#2f6eea","#f26d3d","#f49a5c","#9aa7ff","#8f2c8f","#00c2d1"],h=p(7),g=p(!1),k=p(""),S=p({});let U=0;const T={},o=v(()=>S.value[h.value]??null),A=v(()=>(o.value?.summary.total_skill_actions??0)>0),Oe=v(()=>Math.max(...(o.value?.by_day??[]).map(s=>s.total_count),1)),We=v(()=>g.value&&!!o.value),w=p(null),x=p(null),y=v(()=>o.value?.by_day.find(s=>s.date===w.value)??null),Ge=v(()=>y.value?I(y.value):[]),Je=v(()=>{const s=o.value?.by_day.length??0;return x.value===null||s<=0?"align-right":x.value>=s/2?"align-left":"align-right"}),C=v(()=>(o.value?.top_skills??[]).slice(0,F)),Qe=v(()=>new Set(C.value.map(s=>s.skill)));function L(s){return`${s.toFixed(1)}%`}function Xe(s){return s?new Date(s*1e3).toLocaleString():"—"}function Ye(s){return`${Math.max(2,s/Oe.value*100)}%`}function Ze(s){return Math.max(s,0)}function z(s){return s.total_count||s.view_count+s.manage_count}function el(){const s=Math.max((o.value?.top_skills.length??0)-F,0);return s>0?`${t("skillsUsage.otherSkills")} (+${s})`:t("skillsUsage.otherSkills")}function D(s){const d=C.value.findIndex(l=>l.skill===s);return d>=0?N[d%N.length]:P}function I(s){const d=s.skills??[],l=new Map(d.map(u=>[u.skill,z(u)])),c=C.value.map(u=>({key:u.skill,label:u.skill,count:l.get(u.skill)??0,color:D(u.skill)})).filter(u=>u.count>0),_=d.filter(u=>!Qe.value.has(u.skill)).reduce((u,ll)=>u+z(ll),0);return _>0&&c.push({key:"other-skills",label:el(),count:_,color:P}),c}function H(s,d){w.value=s.date,x.value=d}function R(s){w.value===s.date&&(w.value=null,x.value=null)}async function V(s=h.value,d=!1){h.value=s,(!$.activeProfileName||$.profiles.length===0)&&await $.fetchProfiles();const l=++U;T[s]=l,g.value=!0,(!S.value[s]||d)&&(k.value="");try{const c=await vl(s);T[s]===l&&(S.value={...S.value,[s]:c}),l===U&&(k.value="")}catch(c){l===U&&(k.value=c?.message||t("skillsUsage.loadFailed"))}finally{l===U&&(g.value=!1)}}return sl(()=>{V(7)}),(s,d)=>(n(),r("div",W,[e("header",G,[e("div",J,[e("h2",Q,a(i(t)("skillsUsage.title")),1),e("p",X,a(i(t)("skillsUsage.subtitle")),1)]),e("div",Y,[e("div",{class:"period-selector",role:"group","aria-label":i(t)("skillsUsage.periodSelector")},[(n(),r(m,null,f(Ke,l=>K(i(E),{key:l,size:"small",secondary:h.value===l,quaternary:h.value!==l,type:h.value===l?"primary":"default","aria-pressed":h.value===l?"true":"false",onClick:c=>V(l)},{default:j(()=>[M(a(i(t)("skillsUsage.periodLabel",{days:l})),1)]),_:2},1032,["secondary","quaternary","type","aria-pressed","onClick"])),64))],8,Z),K(i(E),{size:"small",quaternary:"",loading:g.value,onClick:d[0]||(d[0]=l=>V(h.value,!0))},{default:j(()=>[M(a(i(t)("skillsUsage.refresh")),1)]),_:1},8,["loading"])])]),e("div",ee,[k.value&&!o.value?(n(),r("div",le,a(k.value),1)):g.value&&!o.value?(n(),r("div",se,a(i(t)("common.loading")),1)):o.value?(n(),r(m,{key:2},[k.value?(n(),r("div",ae,a(k.value),1)):B("",!0),e("section",te,[e("div",{class:O(["usage-panel chart-panel",{"is-refreshing":We.value}]),"data-testid":"skills-usage-chart"},[e("div",ie,[e("h3",null,a(i(t)("skillsUsage.dailyTrend")),1),e("span",null,a(i(t)("skillsUsage.periodSummary",{days:o.value.period_days})),1)]),A.value?(n(),r(m,{key:1},[e("div",ne,[(n(!0),r(m,null,f(o.value.by_day,(l,c)=>(n(),r("div",{key:l.date,class:"skill-bar-col",tabindex:"0",onMouseenter:_=>H(l,c),onFocusin:_=>H(l,c),onMouseleave:_=>R(l),onFocusout:_=>R(l)},[e("div",ue,[e("div",{class:"skill-bar-fill",style:b({height:Ye(l.total_count)})},[(n(!0),r(m,null,f(I(l),_=>(n(),r("div",{key:_.key,class:"skill-bar-segment","data-skill":_.key,style:b({flex:Ze(_.count),background:_.color})},null,12,de))),128))],4)])],40,re))),128))]),y.value?(n(),r("div",{key:0,class:O(["floating-tooltip",Je.value])},[e("div",_e,a(y.value.date),1),(n(!0),r(m,null,f(Ge.value,l=>(n(),r("div",{key:l.key,class:"tooltip-row"},[e("i",{class:"tooltip-dot",style:b({background:l.color})},null,4),e("span",null,a(l.label),1),e("strong",null,a(l.count),1)]))),128)),e("div",ce,[e("span",null,a(i(t)("skillsUsage.totalActions")),1),e("strong",null,a(y.value.total_count),1)])],2)):B("",!0),e("div",ve,[e("span",null,a(o.value.by_day[0]?.date.slice(5)),1),e("span",null,a(o.value.by_day[o.value.by_day.length-1]?.date.slice(5)),1)])],64)):(n(),r("div",oe,a(i(t)("skillsUsage.noData")),1))],2),e("div",{class:"summary-grid","data-testid":"skills-usage-stats","aria-label":i(t)("skillsUsage.summary")},[e("div",ke,[e("div",me,a(i(t)("skillsUsage.totalActions")),1),e("div",pe,a(o.value.summary.total_skill_actions),1)]),e("div",ge,[e("div",ye,a(i(t)("skillsUsage.loads")),1),e("div",fe,a(o.value.summary.total_skill_loads),1)]),e("div",be,[e("div",Se,a(i(t)("skillsUsage.edits")),1),e("div",Ue,a(o.value.summary.total_skill_edits),1)]),e("div",we,[e("div",xe,a(i(t)("skillsUsage.distinctSkills")),1),e("div",Me,a(o.value.summary.distinct_skills_used),1)])],8,he)]),e("section",$e,[e("div",Ce,[e("h3",null,a(i(t)("skillsUsage.topSkills")),1),e("span",null,a(i(t)("skillsUsage.periodSummary",{days:o.value.period_days})),1)]),A.value?(n(),r("div",{key:1,class:"skills-table",role:"table","aria-label":i(t)("skillsUsage.topSkills")},[e("div",Be,[e("span",Fe,a(i(t)("skillsUsage.skill")),1),e("span",Pe,a(i(t)("skillsUsage.loads")),1),e("span",qe,a(i(t)("skillsUsage.edits")),1),e("span",Ne,a(i(t)("skillsUsage.share")),1),e("span",Te,a(i(t)("skillsUsage.lastUsed")),1)]),(n(!0),r(m,null,f(o.value.top_skills,l=>(n(),r("div",{key:l.skill,class:"skills-row",role:"row"},[e("span",Ae,[e("i",{class:"skill-color-dot",style:b({background:D(l.skill)})},null,4),M(" "+a(l.skill),1)]),e("span",Le,a(l.view_count),1),e("span",ze,a(l.manage_count),1),e("span",Ie,[e("span",He,[e("span",{style:b({width:L(l.percentage),background:D(l.skill)})},null,4)]),M(" "+a(L(l.percentage)),1)]),e("span",Re,a(Xe(l.last_used_at)),1)]))),128))],8,Ve)):(n(),r("div",De,a(i(t)("skillsUsage.noData")),1))])],64)):B("",!0)])]))}})})),hl=q((()=>{})),kl,ml=q((()=>{je(),je(),hl(),nl(),kl=ul(Ee,[["__scopeId","data-v-be614ea5"]])}));ml();export{kl as default};
1
+ import{$i as j,$t as E,Bi as sl,Di as al,Hi as n,M as tl,Nr as il,Pr as ol,Sa as a,Ti as K,Wi as f,_a as i,_i as e,bi as r,gi as v,mi as m,n as nl,si as rl,t as ul,ua as p,wa as q,wi as M,xa as b,ya as O,yi as B}from"./index-DN4SafrP.js";import{r as dl,t as _l}from"./profiles-BK5JKD7h.js";import{l as cl,o as vl}from"./skills-a5LPwmiT.js";var W,G,J,Q,X,Y,Z,ee,le,se,ae,te,ie,oe,ne,re,ue,de,_e,ce,ve,he,ke,me,pe,ge,ye,fe,be,Se,Ue,we,xe,Me,$e,Ce,De,Ve,Be,Fe,Pe,qe,Ne,Te,Ae,Le,ze,Ie,He,Re,F,P,Ee,je=q((()=>{rl(),il(),tl(),_l(),cl(),W={class:"skills-usage-view"},G={class:"page-header"},J={class:"header-text"},Q={class:"header-title"},X={class:"header-subtitle"},Y={class:"skills-usage-toolbar"},Z=["aria-label"],ee={class:"skills-usage-content"},le={key:0,class:"skills-usage-state error"},se={key:1,class:"skills-usage-state"},ae={key:0,class:"inline-error"},te={class:"overview-grid"},ie={class:"panel-header"},oe={key:0,class:"skills-usage-state compact"},ne={class:"skill-bar-chart"},re=["onMouseenter","onFocusin","onMouseleave","onFocusout"],ue={class:"skill-bar-track"},de=["data-skill"],_e={class:"tooltip-date"},ce={class:"tooltip-row total"},ve={class:"bar-dates"},he=["aria-label"],ke={class:"summary-card primary"},me={class:"summary-label"},pe={class:"summary-value"},ge={class:"summary-card"},ye={class:"summary-label"},fe={class:"summary-value"},be={class:"summary-card"},Se={class:"summary-label"},Ue={class:"summary-value"},we={class:"summary-card"},xe={class:"summary-label"},Me={class:"summary-value"},$e={class:"usage-panel"},Ce={class:"panel-header"},De={key:0,class:"skills-usage-state compact"},Ve=["aria-label"],Be={class:"skills-row table-head",role:"row"},Fe={role:"columnheader"},Pe={role:"columnheader"},qe={role:"columnheader"},Ne={role:"columnheader"},Te={role:"columnheader"},Ae={class:"skill-name",role:"cell"},Le={role:"cell"},ze={role:"cell"},Ie={class:"share-cell",role:"cell"},He={class:"share-bar"},Re={class:"last-used",role:"cell"},F=6,P="#5b6b84",Ee=al({__name:"SkillsUsageView",setup(pl){const{t}=ol(),$=dl(),Ke=[7,30,90,365],N=["#2f6eea","#f26d3d","#f49a5c","#9aa7ff","#8f2c8f","#00c2d1"],h=p(7),g=p(!1),k=p(""),S=p({});let U=0;const T={},o=v(()=>S.value[h.value]??null),A=v(()=>(o.value?.summary.total_skill_actions??0)>0),Oe=v(()=>Math.max(...(o.value?.by_day??[]).map(s=>s.total_count),1)),We=v(()=>g.value&&!!o.value),w=p(null),x=p(null),y=v(()=>o.value?.by_day.find(s=>s.date===w.value)??null),Ge=v(()=>y.value?I(y.value):[]),Je=v(()=>{const s=o.value?.by_day.length??0;return x.value===null||s<=0?"align-right":x.value>=s/2?"align-left":"align-right"}),C=v(()=>(o.value?.top_skills??[]).slice(0,F)),Qe=v(()=>new Set(C.value.map(s=>s.skill)));function L(s){return`${s.toFixed(1)}%`}function Xe(s){return s?new Date(s*1e3).toLocaleString():"—"}function Ye(s){return`${Math.max(2,s/Oe.value*100)}%`}function Ze(s){return Math.max(s,0)}function z(s){return s.total_count||s.view_count+s.manage_count}function el(){const s=Math.max((o.value?.top_skills.length??0)-F,0);return s>0?`${t("skillsUsage.otherSkills")} (+${s})`:t("skillsUsage.otherSkills")}function D(s){const d=C.value.findIndex(l=>l.skill===s);return d>=0?N[d%N.length]:P}function I(s){const d=s.skills??[],l=new Map(d.map(u=>[u.skill,z(u)])),c=C.value.map(u=>({key:u.skill,label:u.skill,count:l.get(u.skill)??0,color:D(u.skill)})).filter(u=>u.count>0),_=d.filter(u=>!Qe.value.has(u.skill)).reduce((u,ll)=>u+z(ll),0);return _>0&&c.push({key:"other-skills",label:el(),count:_,color:P}),c}function H(s,d){w.value=s.date,x.value=d}function R(s){w.value===s.date&&(w.value=null,x.value=null)}async function V(s=h.value,d=!1){h.value=s,(!$.activeProfileName||$.profiles.length===0)&&await $.fetchProfiles();const l=++U;T[s]=l,g.value=!0,(!S.value[s]||d)&&(k.value="");try{const c=await vl(s);T[s]===l&&(S.value={...S.value,[s]:c}),l===U&&(k.value="")}catch(c){l===U&&(k.value=c?.message||t("skillsUsage.loadFailed"))}finally{l===U&&(g.value=!1)}}return sl(()=>{V(7)}),(s,d)=>(n(),r("div",W,[e("header",G,[e("div",J,[e("h2",Q,a(i(t)("skillsUsage.title")),1),e("p",X,a(i(t)("skillsUsage.subtitle")),1)]),e("div",Y,[e("div",{class:"period-selector",role:"group","aria-label":i(t)("skillsUsage.periodSelector")},[(n(),r(m,null,f(Ke,l=>K(i(E),{key:l,size:"small",secondary:h.value===l,quaternary:h.value!==l,type:h.value===l?"primary":"default","aria-pressed":h.value===l?"true":"false",onClick:c=>V(l)},{default:j(()=>[M(a(i(t)("skillsUsage.periodLabel",{days:l})),1)]),_:2},1032,["secondary","quaternary","type","aria-pressed","onClick"])),64))],8,Z),K(i(E),{size:"small",quaternary:"",loading:g.value,onClick:d[0]||(d[0]=l=>V(h.value,!0))},{default:j(()=>[M(a(i(t)("skillsUsage.refresh")),1)]),_:1},8,["loading"])])]),e("div",ee,[k.value&&!o.value?(n(),r("div",le,a(k.value),1)):g.value&&!o.value?(n(),r("div",se,a(i(t)("common.loading")),1)):o.value?(n(),r(m,{key:2},[k.value?(n(),r("div",ae,a(k.value),1)):B("",!0),e("section",te,[e("div",{class:O(["usage-panel chart-panel",{"is-refreshing":We.value}]),"data-testid":"skills-usage-chart"},[e("div",ie,[e("h3",null,a(i(t)("skillsUsage.dailyTrend")),1),e("span",null,a(i(t)("skillsUsage.periodSummary",{days:o.value.period_days})),1)]),A.value?(n(),r(m,{key:1},[e("div",ne,[(n(!0),r(m,null,f(o.value.by_day,(l,c)=>(n(),r("div",{key:l.date,class:"skill-bar-col",tabindex:"0",onMouseenter:_=>H(l,c),onFocusin:_=>H(l,c),onMouseleave:_=>R(l),onFocusout:_=>R(l)},[e("div",ue,[e("div",{class:"skill-bar-fill",style:b({height:Ye(l.total_count)})},[(n(!0),r(m,null,f(I(l),_=>(n(),r("div",{key:_.key,class:"skill-bar-segment","data-skill":_.key,style:b({flex:Ze(_.count),background:_.color})},null,12,de))),128))],4)])],40,re))),128))]),y.value?(n(),r("div",{key:0,class:O(["floating-tooltip",Je.value])},[e("div",_e,a(y.value.date),1),(n(!0),r(m,null,f(Ge.value,l=>(n(),r("div",{key:l.key,class:"tooltip-row"},[e("i",{class:"tooltip-dot",style:b({background:l.color})},null,4),e("span",null,a(l.label),1),e("strong",null,a(l.count),1)]))),128)),e("div",ce,[e("span",null,a(i(t)("skillsUsage.totalActions")),1),e("strong",null,a(y.value.total_count),1)])],2)):B("",!0),e("div",ve,[e("span",null,a(o.value.by_day[0]?.date.slice(5)),1),e("span",null,a(o.value.by_day[o.value.by_day.length-1]?.date.slice(5)),1)])],64)):(n(),r("div",oe,a(i(t)("skillsUsage.noData")),1))],2),e("div",{class:"summary-grid","data-testid":"skills-usage-stats","aria-label":i(t)("skillsUsage.summary")},[e("div",ke,[e("div",me,a(i(t)("skillsUsage.totalActions")),1),e("div",pe,a(o.value.summary.total_skill_actions),1)]),e("div",ge,[e("div",ye,a(i(t)("skillsUsage.loads")),1),e("div",fe,a(o.value.summary.total_skill_loads),1)]),e("div",be,[e("div",Se,a(i(t)("skillsUsage.edits")),1),e("div",Ue,a(o.value.summary.total_skill_edits),1)]),e("div",we,[e("div",xe,a(i(t)("skillsUsage.distinctSkills")),1),e("div",Me,a(o.value.summary.distinct_skills_used),1)])],8,he)]),e("section",$e,[e("div",Ce,[e("h3",null,a(i(t)("skillsUsage.topSkills")),1),e("span",null,a(i(t)("skillsUsage.periodSummary",{days:o.value.period_days})),1)]),A.value?(n(),r("div",{key:1,class:"skills-table",role:"table","aria-label":i(t)("skillsUsage.topSkills")},[e("div",Be,[e("span",Fe,a(i(t)("skillsUsage.skill")),1),e("span",Pe,a(i(t)("skillsUsage.loads")),1),e("span",qe,a(i(t)("skillsUsage.edits")),1),e("span",Ne,a(i(t)("skillsUsage.share")),1),e("span",Te,a(i(t)("skillsUsage.lastUsed")),1)]),(n(!0),r(m,null,f(o.value.top_skills,l=>(n(),r("div",{key:l.skill,class:"skills-row",role:"row"},[e("span",Ae,[e("i",{class:"skill-color-dot",style:b({background:D(l.skill)})},null,4),M(" "+a(l.skill),1)]),e("span",Le,a(l.view_count),1),e("span",ze,a(l.manage_count),1),e("span",Ie,[e("span",He,[e("span",{style:b({width:L(l.percentage),background:D(l.skill)})},null,4)]),M(" "+a(L(l.percentage)),1)]),e("span",Re,a(Xe(l.last_used_at)),1)]))),128))],8,Ve)):(n(),r("div",De,a(i(t)("skillsUsage.noData")),1))])],64)):B("",!0)])]))}})})),hl=q((()=>{})),kl,ml=q((()=>{je(),je(),hl(),nl(),kl=ul(Ee,[["__scopeId","data-v-be614ea5"]])}));ml();export{kl as default};