hermes-web-ui 0.6.30-beta.2 → 0.6.30

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 (257) hide show
  1. package/dist/client/assets/js/AppSidebar-B8eJvJ5L.js +1 -0
  2. package/dist/client/assets/js/{ChannelsView-DMyeoPl6.js → ChannelsView-rBs9Ylzp.js} +1 -1
  3. package/dist/client/assets/js/{ChatPanel-YZZNE2mg.js → ChatPanel-BjHQvYcw.js} +1 -1
  4. package/dist/client/assets/js/{ChatView-BSWI-pr1.js → ChatView-xEwjnXLo.js} +1 -1
  5. package/dist/client/assets/js/{CodingAgentsView-DGweBEVs.js → CodingAgentsView-DcVwegsz.js} +1 -1
  6. package/dist/client/assets/js/{DefaultCredentialPrompt-DwS2g874.js → DefaultCredentialPrompt-sFeH1odX.js} +1 -1
  7. package/dist/client/assets/js/{DesktopPetView-C2QyaxNu.js → DesktopPetView-DKYjal2v.js} +1 -1
  8. package/dist/client/assets/js/{DesktopTitleBar-CMvwjOsN.js → DesktopTitleBar-YzhbwcwX.js} +1 -1
  9. package/dist/client/assets/js/{DevicesView-3VMSlXCt.js → DevicesView-CnAjn0fI.js} +1 -1
  10. package/dist/client/assets/js/{FileEditor-Dkxlmokr.js → FileEditor-C_tmKjxI.js} +3 -3
  11. package/dist/client/assets/js/{FileRenameModal-o3oS6tv2.js → FileRenameModal-BlqJ8jgZ.js} +2 -2
  12. package/dist/client/assets/js/{FilesView-BlJtiYU7.js → FilesView-Dy8G_exi.js} +1 -1
  13. package/dist/client/assets/js/{FolderPicker-DYQaj8Cc.js → FolderPicker-DEUyd_JU.js} +1 -1
  14. package/dist/client/assets/js/{GlobalAgentView-CGRn1ucS.js → GlobalAgentView-C0NgWvKP.js} +1 -1
  15. package/dist/client/assets/js/{GroupChatView-GXbwwUn9.js → GroupChatView-Mr8SR7nA.js} +2 -2
  16. package/dist/client/assets/js/{HistoryMessageList-B1UsdtzR.js → HistoryMessageList--MuOQ24m.js} +1 -1
  17. package/dist/client/assets/js/{HistoryView-DukXpB7A.js → HistoryView-Boy6KWxz.js} +1 -1
  18. package/dist/client/assets/js/{JobsView-C2IfX4Oo.js → JobsView-5Jun6EjM.js} +2 -2
  19. package/dist/client/assets/js/{JourneyView-UX14Uvsk.js → JourneyView-DAU7N8iU.js} +1 -1
  20. package/dist/client/assets/js/{KanbanView-BFLDXNmq.js → KanbanView-CQOeRquP.js} +1 -1
  21. package/dist/client/assets/js/{LoginView-BMnZx434.js → LoginView-DTdp1xsa.js} +1 -1
  22. package/dist/client/assets/js/{LogsView-CFxOjMBB.js → LogsView-Dr6gD_kA.js} +1 -1
  23. package/dist/client/assets/js/{MarkdownRenderer-RUGb4sbQ.js → MarkdownRenderer-DpSiF5gl.js} +3 -3
  24. package/dist/client/assets/js/{McpManagerView-D46nhm85.js → McpManagerView-BzGj5qqQ.js} +1 -1
  25. package/dist/client/assets/js/{MemoryView-CGvbW1Yq.js → MemoryView-2gPDgre_.js} +2 -2
  26. package/dist/client/assets/js/{MessageItem-rIbgU0g3.js → MessageItem-D91t-tiL.js} +2 -2
  27. package/dist/client/assets/js/{MessageList-7o_1_iPw.js → MessageList-KgA7oDKg.js} +1 -1
  28. package/dist/client/assets/js/{ModelsView-Cdl5HVlO.js → ModelsView-GVgHBsyL.js} +1 -1
  29. package/dist/client/assets/js/{OutlinePanel-BmsAdxB0.js → OutlinePanel-DD6XxWAu.js} +1 -1
  30. package/dist/client/assets/js/{PageSidebarFooter-fp9dcg3s.js → PageSidebarFooter-DFaGG_bk.js} +1 -1
  31. package/dist/client/assets/js/{PerformanceView-asJG1CAC.js → PerformanceView-YI2ecC28.js} +1 -1
  32. package/dist/client/assets/js/{PetdexView-CgsImZ2C.js → PetdexView-Bt4e1TDL.js} +1 -1
  33. package/dist/client/assets/js/{PluginsView-CiiHUv8H.js → PluginsView-BZHzh6V0.js} +1 -1
  34. package/dist/client/assets/js/{ProfileAvatar-CeGhJamd.js → ProfileAvatar-Du1XMoe0.js} +1 -1
  35. package/dist/client/assets/js/{ProfilesView-CPcFsEMn.js → ProfilesView-C02GlAXO.js} +1 -1
  36. package/dist/client/assets/js/{ProviderConfigurationPrompt-CCXQ_nqY.js → ProviderConfigurationPrompt-DbD_q_xl.js} +1 -1
  37. package/dist/client/assets/js/{SessionSearchModal-Chmtohb_.js → SessionSearchModal-CRoerPzU.js} +1 -1
  38. package/dist/client/assets/js/{SettingRow-CxdhcC5J.js → SettingRow-CZ1bK2YG.js} +1 -1
  39. package/dist/client/assets/js/{SettingsCircuitBadge-DmwONg4K.js → SettingsCircuitBadge-2VINGRjT.js} +1 -1
  40. package/dist/client/assets/js/{SettingsView-Bd02BnM7.js → SettingsView-C63TriKv.js} +1 -1
  41. package/dist/client/assets/js/{SkillsUsageView-Cvk_dctX.js → SkillsUsageView-DufR6RDh.js} +1 -1
  42. package/dist/client/assets/js/{SkillsView-BrS15WHY.js → SkillsView-LzeD-ReE.js} +2 -2
  43. package/dist/client/assets/js/{TerminalView-Betjhhzm.js → TerminalView-j3wokVwS.js} +1 -1
  44. package/dist/client/assets/js/{UsageView-gENmuPca.js → UsageView-BVdos-wH.js} +1 -1
  45. package/dist/client/assets/js/{VersionPreviewView-D4wMkRdU.js → VersionPreviewView-D46YOdsc.js} +1 -1
  46. package/dist/client/assets/js/{WebPet-C-F5hsmU.js → WebPet-PrNf1KLw.js} +1 -1
  47. package/dist/client/assets/js/{WorkflowView-DCQycw5y.js → WorkflowView-BWG_o4Lg.js} +1 -1
  48. package/dist/client/assets/js/{abap-Bpce3YCc.js → abap-B5rRrPlH.js} +1 -1
  49. package/dist/client/assets/js/{apex-BZWMlx8R.js → apex-kxpOZZnW.js} +1 -1
  50. package/dist/client/assets/js/architecture-7EHR7CIX-BsCtaKPb.js +1 -0
  51. package/dist/client/assets/js/{architectureDiagram-3BPJPVTR-DgYZW-VJ.js → architectureDiagram-3BPJPVTR-CGR0-xeM.js} +1 -1
  52. package/dist/client/assets/js/{auth-DAz8TLhP.js → auth-QlZVq-Mb.js} +1 -1
  53. package/dist/client/assets/js/{azcli-CU70G-wD.js → azcli-BinA5kBH.js} +1 -1
  54. package/dist/client/assets/js/{bat-_PVMPuXp.js → bat-Cr0qo7tY.js} +1 -1
  55. package/dist/client/assets/js/{bicep-B1C-nHUL.js → bicep-B4C1_29j.js} +1 -1
  56. package/dist/client/assets/js/{blockDiagram-GPEHLZMM-D9eCcYUu.js → blockDiagram-GPEHLZMM-DMRT9qE7.js} +1 -1
  57. package/dist/client/assets/js/{c4Diagram-AAUBKEIU-Cc2j_5Hk.js → c4Diagram-AAUBKEIU-BS013lHX.js} +1 -1
  58. package/dist/client/assets/js/{cameligo-BRxFWUB9.js → cameligo-DQKQuDHg.js} +1 -1
  59. package/dist/client/assets/js/{chat-DASgRGiI.js → chat-BHkNRr2D.js} +1 -1
  60. package/dist/client/assets/js/{chat-input-height-xMpE0zfj.js → chat-input-height-C9XyOGPU.js} +1 -1
  61. package/dist/client/assets/js/{chat-timestamp-B4kSmeEg.js → chat-timestamp-sj8rR29x.js} +1 -1
  62. package/dist/client/assets/js/{chunk-2J33WTMH-CIWIJ3Vy.js → chunk-2J33WTMH-BuvstStb.js} +1 -1
  63. package/dist/client/assets/js/{chunk-3OPIFGDE-D8rNjXTj.js → chunk-3OPIFGDE-DFuFb6Dn.js} +1 -1
  64. package/dist/client/assets/js/{chunk-4BX2VUAB-Be1NT72j.js → chunk-4BX2VUAB-C8f7FKlW.js} +1 -1
  65. package/dist/client/assets/js/{chunk-55IACEB6-D9jngYNS.js → chunk-55IACEB6-DoNUYELD.js} +1 -1
  66. package/dist/client/assets/js/{chunk-5ZQYHXKU-DsBTFfjP.js → chunk-5ZQYHXKU-D0RIlhMr.js} +1 -1
  67. package/dist/client/assets/js/{chunk-727SXJPM-B4ElG_Of.js → chunk-727SXJPM-Dcg9rcP1.js} +1 -1
  68. package/dist/client/assets/js/{chunk-AQP2D5EJ-DqmSdc2v.js → chunk-AQP2D5EJ-BrEs3845.js} +1 -1
  69. package/dist/client/assets/js/{chunk-BSJP7CBP-Dwbw_lcd.js → chunk-BSJP7CBP-2t71L2nD.js} +1 -1
  70. package/dist/client/assets/js/{chunk-CSCIHK7Q-D0eX0NV1.js → chunk-CSCIHK7Q-jw9fZDC9.js} +3 -3
  71. package/dist/client/assets/js/{chunk-FMBD7UC4-Ifok5gk4.js → chunk-FMBD7UC4-CC_5MTtl.js} +1 -1
  72. package/dist/client/assets/js/{chunk-KSCS5N6A-D6b_0Rnx.js → chunk-KSCS5N6A-Ctj260fA.js} +1 -1
  73. package/dist/client/assets/js/{chunk-L5ZTLDWV-eR6nltId.js → chunk-L5ZTLDWV-CF8sc4Ay.js} +1 -1
  74. package/dist/client/assets/js/{chunk-LZXEDZCA-h6nPcsB6.js → chunk-LZXEDZCA-BsmuMR5Z.js} +2 -2
  75. package/dist/client/assets/js/{chunk-ND2GUHAM-vGFiX1jf.js → chunk-ND2GUHAM-CvXXD5FC.js} +1 -1
  76. package/dist/client/assets/js/{chunk-NZK2D7GU-BQcgYAVF.js → chunk-NZK2D7GU-BQeu8oaR.js} +1 -1
  77. package/dist/client/assets/js/{chunk-O5CBEL6O-DqGyu-Fq.js → chunk-O5CBEL6O-D9XUSNoV.js} +1 -1
  78. package/dist/client/assets/js/{chunk-QZHKN3VN-Bf_cn5Px.js → chunk-QZHKN3VN-qz6ukpCd.js} +1 -1
  79. package/dist/client/assets/js/{chunk-WU5MYG2G-3I1ZwKkc.js → chunk-WU5MYG2G-Cv_QOL8q.js} +1 -1
  80. package/dist/client/assets/js/{chunk-XPW4576I-DDUD-9JS.js → chunk-XPW4576I-BQK5_1lO.js} +1 -1
  81. package/dist/client/assets/js/classDiagram-4FO5ZUOK-DudE54ap.js +1 -0
  82. package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-7vuaSqRj.js +1 -0
  83. package/dist/client/assets/js/{clipboard-DbIDy3AT.js → clipboard-DYlTCW_e.js} +1 -1
  84. package/dist/client/assets/js/{clojure-Dcj6e71m.js → clojure-CdqoJung.js} +1 -1
  85. package/dist/client/assets/js/{coding-agents-CaDRq0na.js → coding-agents-6iW0O8m3.js} +1 -1
  86. package/dist/client/assets/js/{codingAgentProviders-D561caSN.js → codingAgentProviders-CcodfSH-.js} +1 -1
  87. package/dist/client/assets/js/{coffee-CbYrIyIn.js → coffee-BWTAEena.js} +1 -1
  88. package/dist/client/assets/js/{completion-notification-DsOPieYQ.js → completion-notification-BAmmQT0D.js} +1 -1
  89. package/dist/client/assets/js/{cose-bilkent-S5V4N54A-DMeSp3o-.js → cose-bilkent-S5V4N54A-DRKeHjkL.js} +1 -1
  90. package/dist/client/assets/js/{cpp-C285XCcy.js → cpp-BVlDwaOY.js} +1 -1
  91. package/dist/client/assets/js/{csharp-AOA29tQw.js → csharp-BJ8TvX5x.js} +1 -1
  92. package/dist/client/assets/js/{csp-BH3dEG6O.js → csp-C4M5VPIw.js} +1 -1
  93. package/dist/client/assets/js/{css-B57baUKb.js → css-I3bSR4aB.js} +1 -1
  94. package/dist/client/assets/js/{cssMode-BL-figOg.js → cssMode-D4KFuV7w.js} +1 -1
  95. package/dist/client/assets/js/{cypher-WtS-OVKo.js → cypher-CRdq7Gis.js} +1 -1
  96. package/dist/client/assets/js/{cytoscape.esm-D5tsfvvu.js → cytoscape.esm-DkgBNPTq.js} +1 -1
  97. package/dist/client/assets/js/{dagre-BM42HDAG-ZT4Tyhdh.js → dagre-BM42HDAG-CaadqbBP.js} +1 -1
  98. package/dist/client/assets/js/{dagre-B9R_qlQx.js → dagre-C8VfHmP4.js} +1 -1
  99. package/dist/client/assets/js/{dart-DF9gqEcq.js → dart-dwyDElLm.js} +1 -1
  100. package/dist/client/assets/js/{de-EFWp16Qh.js → de--4CNgQuL.js} +1 -1
  101. package/dist/client/assets/js/{defineProperty-DuJZezkY.js → defineProperty-BDo2HL0q.js} +1 -1
  102. package/dist/client/assets/js/{diagram-2AECGRRQ-xaP4EEEl.js → diagram-2AECGRRQ-Cun81Ans.js} +1 -1
  103. package/dist/client/assets/js/{diagram-5GNKFQAL-DIyCvoeX.js → diagram-5GNKFQAL-CQzVKYOI.js} +1 -1
  104. package/dist/client/assets/js/{diagram-KO2AKTUF-DUgBO_lP.js → diagram-KO2AKTUF-BPfQv40Z.js} +1 -1
  105. package/dist/client/assets/js/{diagram-LMA3HP47-7BPLQ2mh.js → diagram-LMA3HP47-D8TC5VV0.js} +1 -1
  106. package/dist/client/assets/js/{diagram-OG6HWLK6-Bf3loU_i.js → diagram-OG6HWLK6-CRHwtHSe.js} +1 -1
  107. package/dist/client/assets/js/{dist-B5dYmTWx.js → dist-CfFdo9r8.js} +1 -1
  108. package/dist/client/assets/js/{dockerfile-Czh5hcPx.js → dockerfile-CILemvfU.js} +1 -1
  109. package/dist/client/assets/js/{download-D8EaUX1d.js → download-48rHoTgx.js} +1 -1
  110. package/dist/client/assets/js/{ecl-CX15-2F3.js → ecl-Ealz99xU.js} +1 -1
  111. package/dist/client/assets/js/{elixir-DAeHVhZ1.js → elixir-shrM9Xh9.js} +1 -1
  112. package/dist/client/assets/js/{en-Be915fg0.js → en-CJJ1jL_Y.js} +1 -1
  113. package/dist/client/assets/js/{erDiagram-TEJ5UH35-Cohr37bj.js → erDiagram-TEJ5UH35-BPm-r9Hg.js} +1 -1
  114. package/dist/client/assets/js/{es-CifdmPsf.js → es-DzGYbRQj.js} +1 -1
  115. package/dist/client/assets/js/{esm-BnjT8clq.js → esm-BMJNKLtg.js} +1 -1
  116. package/dist/client/assets/js/eventmodeling-FCH6USID-C3kT7Z0E.js +1 -0
  117. package/dist/client/assets/js/{files-DaoyoU6g.js → files-hTAbTvaX.js} +1 -1
  118. package/dist/client/assets/js/{flow9-DbPITgDY.js → flow9-BcjKeG3-.js} +1 -1
  119. package/dist/client/assets/js/{flowDiagram-I6XJVG4X-B264a192.js → flowDiagram-I6XJVG4X-_BaH5aHT.js} +1 -1
  120. package/dist/client/assets/js/{fr-cOjPUfRx.js → fr-DcCzCkCs.js} +1 -1
  121. package/dist/client/assets/js/{freemarker2-DOLmB9KN.js → freemarker2-BNKS-Izq.js} +1 -1
  122. package/dist/client/assets/js/{fsharp-B-Yt6zK9.js → fsharp-CkihMS6p.js} +1 -1
  123. package/dist/client/assets/js/{ganttDiagram-6RSMTGT7-Ci7dhsnY.js → ganttDiagram-6RSMTGT7-Cbdw-Bcw.js} +1 -1
  124. package/dist/client/assets/js/gitGraph-WXDBUCRP-6wOXvHzD.js +1 -0
  125. package/dist/client/assets/js/{gitGraphDiagram-PVQCEYII-BlLk9eYS.js → gitGraphDiagram-PVQCEYII-B-bpVVPE.js} +1 -1
  126. package/dist/client/assets/js/{go-BOK2cgny.js → go-T3wwW6GT.js} +1 -1
  127. package/dist/client/assets/js/{graphlib-D2Mw_i7z.js → graphlib-zy-xgTNe.js} +1 -1
  128. package/dist/client/assets/js/{graphql-lNO0dhfX.js → graphql-efIwdE3z.js} +1 -1
  129. package/dist/client/assets/js/{handlebars-CVZmi01T.js → handlebars-I50ARPXc.js} +1 -1
  130. package/dist/client/assets/js/{hcl-DzR879Fw.js → hcl-1nBprOUg.js} +1 -1
  131. package/dist/client/assets/js/{highlight-Dj4_XEnA.js → highlight-CEOB4aIv.js} +1 -1
  132. package/dist/client/assets/js/{html-PlnnXcHR.js → html-Dj-ePZ46.js} +1 -1
  133. package/dist/client/assets/js/{htmlMode-Fmdr8cyl.js → htmlMode-CaN3hz4S.js} +1 -1
  134. package/dist/client/assets/js/{http-error-DN0Q0NIV.js → http-error-DzA5OQEf.js} +1 -1
  135. package/dist/client/assets/js/{index-B41wzfl2.js → index-RJQqJC6n.js} +4 -4
  136. package/dist/client/assets/js/info-J43DQDTF-BIWBwu_u.js +1 -0
  137. package/dist/client/assets/js/{infoDiagram-5YYISTIA-NDi7uRio.js → infoDiagram-5YYISTIA-BNXSec0Z.js} +1 -1
  138. package/dist/client/assets/js/{ini-DrTE-Qjw.js → ini-3Ot_KNDr.js} +1 -1
  139. package/dist/client/assets/js/{ishikawaDiagram-YF4QCWOH-Bqr4yRKd.js → ishikawaDiagram-YF4QCWOH-g75yRzDd.js} +1 -1
  140. package/dist/client/assets/js/{ja-24otYQMe.js → ja-CQvWYnv9.js} +1 -1
  141. package/dist/client/assets/js/{java-M1cOm-yu.js → java-BnfIG6C2.js} +1 -1
  142. package/dist/client/assets/js/{javascript-BNXq8PNf.js → javascript-CsnYKLbf.js} +1 -1
  143. package/dist/client/assets/js/{journeyDiagram-JHISSGLW-BEtti5_h.js → journeyDiagram-JHISSGLW-Pz71rJgC.js} +1 -1
  144. package/dist/client/assets/js/{jsonMode-1QUqmLF3.js → jsonMode-C075GWTu.js} +1 -1
  145. package/dist/client/assets/js/{julia-dLq8Su3c.js → julia-BZ-d031P.js} +1 -1
  146. package/dist/client/assets/js/{kanban-definition-UN3LZRKU-B0OINhQN.js → kanban-definition-UN3LZRKU-CM65a4ke.js} +1 -1
  147. package/dist/client/assets/js/{katex-RcNO5wwe.js → katex-CdfrrN4N.js} +1 -1
  148. package/dist/client/assets/js/{ko-BAFhhHmu.js → ko-CJGntapN.js} +1 -1
  149. package/dist/client/assets/js/{kotlin-u5eqp-HC.js → kotlin-Bvrb8ISQ.js} +1 -1
  150. package/dist/client/assets/js/{less-Bmv3Gp2t.js → less-BmSBm_Oo.js} +1 -1
  151. package/dist/client/assets/js/{lexon-D4tsg7Zx.js → lexon-DuK8nBv2.js} +1 -1
  152. package/dist/client/assets/js/{liquid-Bk2yC9hm.js → liquid-BWAc_45a.js} +1 -1
  153. package/dist/client/assets/js/{lspLanguageFeatures-D43hcBWA.js → lspLanguageFeatures-BiQVZMg4.js} +1 -1
  154. package/dist/client/assets/js/{lua-p9IseoQp.js → lua-CyRtU9wL.js} +1 -1
  155. package/dist/client/assets/js/{m3-CP_UPhUb.js → m3-Ew9Azayo.js} +1 -1
  156. package/dist/client/assets/js/{markdown-EMkhjbsA.js → markdown-DTnF9Yaz.js} +1 -1
  157. package/dist/client/assets/js/{mdx-CTIqsEU_.js → mdx-B5cGu-wW.js} +1 -1
  158. package/dist/client/assets/js/{mermaid-parser.core-Ct7VvVNd.js → mermaid-parser.core-H0g6x_iH.js} +3 -3
  159. package/dist/client/assets/js/{mermaid.core-bZP2CdTT.js → mermaid.core-Diknpn0Z.js} +3 -3
  160. package/dist/client/assets/js/{mindmap-definition-RKZ34NQL-HwEZyOHT.js → mindmap-definition-RKZ34NQL-CaunhL_H.js} +1 -1
  161. package/dist/client/assets/js/{mips-CkjAOBJ1.js → mips-Dxi7_29p.js} +1 -1
  162. package/dist/client/assets/js/{models-IOA_Ybyo.js → models-C1Vzhn4J.js} +1 -1
  163. package/dist/client/assets/js/{msdax-D3cfIob3.js → msdax-B6Bgb3AK.js} +1 -1
  164. package/dist/client/assets/js/{mysql-4uHNth4i.js → mysql-BL2x9OzM.js} +1 -1
  165. package/dist/client/assets/js/{objective-c-CJlpUpN6.js → objective-c-BrRFV0XK.js} +1 -1
  166. package/dist/client/assets/js/packet-YPE3B663-DQbqBYnW.js +1 -0
  167. package/dist/client/assets/js/{pascal-CQPmydYD.js → pascal-WA4C_PKB.js} +1 -1
  168. package/dist/client/assets/js/{pascaligo-BpcHvwdj.js → pascaligo-CJbWHnUY.js} +1 -1
  169. package/dist/client/assets/js/{perl-CPq40M_6.js → perl-BI9Huzvv.js} +1 -1
  170. package/dist/client/assets/js/{pets-C2oDgwB5.js → pets-B_-nzG9F.js} +1 -1
  171. package/dist/client/assets/js/{pgsql-CSQ1ge3t.js → pgsql-CzbvRnWT.js} +1 -1
  172. package/dist/client/assets/js/{php-DK0RYdED.js → php-CXAgA_El.js} +1 -1
  173. package/dist/client/assets/js/pie-LRSECV5Y-CIUK74nZ.js +1 -0
  174. package/dist/client/assets/js/{pieDiagram-4H26LBE5-BmAWShfi.js → pieDiagram-4H26LBE5-CCUnlpIr.js} +1 -1
  175. package/dist/client/assets/js/{pla-DWm3Ssta.js → pla-C0RuKVEY.js} +1 -1
  176. package/dist/client/assets/js/{postiats-D6U5CAH_.js → postiats-DrGBuYen.js} +1 -1
  177. package/dist/client/assets/js/{powerquery-luT1PmkC.js → powerquery-C2Rk0MWx.js} +1 -1
  178. package/dist/client/assets/js/{powershell-DqsTi5Tp.js → powershell-Co9Oecz_.js} +1 -1
  179. package/dist/client/assets/js/{profiles-DDKFPE0r.js → profiles-BtECgqqD.js} +1 -1
  180. package/dist/client/assets/js/{protobuf-xWgh_gwl.js → protobuf-BYEreCAs.js} +1 -1
  181. package/dist/client/assets/js/{pt-DPgTOGuO.js → pt-BLQB3VhC.js} +1 -1
  182. package/dist/client/assets/js/{pug-d0a6hBgd.js → pug-DYMxpfbA.js} +1 -1
  183. package/dist/client/assets/js/{python-SkkpZGKb.js → python-D14JG4Tf.js} +1 -1
  184. package/dist/client/assets/js/{qsharp-B4xC_SYh.js → qsharp-eGQdTxCC.js} +1 -1
  185. package/dist/client/assets/js/{quadrantDiagram-W4KKPZXB-DRn55Dz7.js → quadrantDiagram-W4KKPZXB-Do1jBZkB.js} +1 -1
  186. package/dist/client/assets/js/{r-qamn5sfb.js → r-BpBEd0qf.js} +1 -1
  187. package/dist/client/assets/js/radar-GUYGQ44K-DamlzFJn.js +1 -0
  188. package/dist/client/assets/js/{razor-DR9b_EzP.js → razor-DAKZoZ5s.js} +1 -1
  189. package/dist/client/assets/js/{redis-C46kUKug.js → redis-CecBwldA.js} +1 -1
  190. package/dist/client/assets/js/{redshift-DI_dWPgP.js → redshift-DxeKWFdZ.js} +1 -1
  191. package/dist/client/assets/js/{requirementDiagram-4Y6WPE33-Do_KEl0k.js → requirementDiagram-4Y6WPE33-Ccn1EcY0.js} +1 -1
  192. package/dist/client/assets/js/{restructuredtext-oYQfsBYX.js → restructuredtext-BBhjK4w8.js} +1 -1
  193. package/dist/client/assets/js/{rough.esm-BjtdUJeF.js → rough.esm-DKpVfK-g.js} +1 -1
  194. package/dist/client/assets/js/{ru-BGBuhe8j.js → ru-BXep69sk.js} +1 -1
  195. package/dist/client/assets/js/{ruby-Da1TZ4HB.js → ruby-9YJv-z0v.js} +1 -1
  196. package/dist/client/assets/js/{rust-GT6xUobW.js → rust-BihIDWCY.js} +1 -1
  197. package/dist/client/assets/js/{sankeyDiagram-5OEKKPKP-BRnR4W8h.js → sankeyDiagram-5OEKKPKP-BZF9SKVm.js} +1 -1
  198. package/dist/client/assets/js/{sb-D4kxpCPJ.js → sb-DSz7OJbn.js} +1 -1
  199. package/dist/client/assets/js/{scala-CY3U_fvs.js → scala-DrL9oxhs.js} +1 -1
  200. package/dist/client/assets/js/{scheme-DzdFAWU_.js → scheme-Bc0QxXW_.js} +1 -1
  201. package/dist/client/assets/js/{scss-CTwgV3JD.js → scss-BTsIuYyg.js} +1 -1
  202. package/dist/client/assets/js/{sequenceDiagram-3UESZ5HK-CoemgPYx.js → sequenceDiagram-3UESZ5HK-BplvirR_.js} +1 -1
  203. package/dist/client/assets/js/{session-browser-prefs-D3fgv9Yr.js → session-browser-prefs-DnMXaw-N.js} +1 -1
  204. package/dist/client/assets/js/{sessions-BeO9QOJY.js → sessions-wVroPs5k.js} +1 -1
  205. package/dist/client/assets/js/{settings-DM3CNjqC.js → settings-Bzod_9RQ.js} +1 -1
  206. package/dist/client/assets/js/{shell-CUF2wd73.js → shell-DG7-xFwe.js} +1 -1
  207. package/dist/client/assets/js/{skills-3O8WlKlI.js → skills-CQr0eeFF.js} +1 -1
  208. package/dist/client/assets/js/{solidity-C3RnBLh_.js → solidity-COxKdecX.js} +1 -1
  209. package/dist/client/assets/js/{sophia-BA8mP4aY.js → sophia-DtFj5ZDz.js} +1 -1
  210. package/dist/client/assets/js/{sparql-DcwhST_l.js → sparql-B1TD00SE.js} +1 -1
  211. package/dist/client/assets/js/{sql-CjGghxho.js → sql-b7qwDUco.js} +1 -1
  212. package/dist/client/assets/js/{src-Cz8NyTG1.js → src-Ra8Cw6Gr.js} +1 -1
  213. package/dist/client/assets/js/{st-B8Q32toW.js → st-BtSqB0Hh.js} +1 -1
  214. package/dist/client/assets/js/{stateDiagram-AJRCARHV-I4DYKB3q.js → stateDiagram-AJRCARHV-DhJkFuW8.js} +1 -1
  215. package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-CqTRINz_.js +1 -0
  216. package/dist/client/assets/js/{swift-Br8oKRCi.js → swift-T2X4Cn4t.js} +1 -1
  217. package/dist/client/assets/js/{systemverilog-DIL7pkd5.js → systemverilog-DeuLbp4J.js} +1 -1
  218. package/dist/client/assets/js/{tcl-C7A4eFCv.js → tcl-ZVjhRcKc.js} +1 -1
  219. package/dist/client/assets/js/{timeline-definition-PNZ67QCA-BnfftsIx.js → timeline-definition-PNZ67QCA-BFAfAvjz.js} +1 -1
  220. package/dist/client/assets/js/treeView-BLDUP644-H8OPaX_2.js +1 -0
  221. package/dist/client/assets/js/treemap-LRROVOQU-BhsUhAW8.js +1 -0
  222. package/dist/client/assets/js/{tsMode-BmS5yGbl.js → tsMode-BK8igQe0.js} +1 -1
  223. package/dist/client/assets/js/{ttsHelpers-DpzPhrib.js → ttsHelpers-CUglUfpM.js} +1 -1
  224. package/dist/client/assets/js/{twig-CxeEoeDi.js → twig-B2I_zOb5.js} +1 -1
  225. package/dist/client/assets/js/{typescript-BPw3e1LN.js → typescript-DqxcEPol.js} +1 -1
  226. package/dist/client/assets/js/{typespec-dQqbgDyW.js → typespec-DYubob7r.js} +1 -1
  227. package/dist/client/assets/js/{useSttSettings-Dd2zPJU6.js → useSttSettings-BAz3MWB_.js} +1 -1
  228. package/dist/client/assets/js/{vb-DpmkDtUb.js → vb-DulIu0AM.js} +1 -1
  229. package/dist/client/assets/js/{vennDiagram-CIIHVFJN-Bu76Q1QQ.js → vennDiagram-CIIHVFJN-BTMh4zH0.js} +1 -1
  230. package/dist/client/assets/js/wardley-L42UT6IY-w2cdSduy.js +1 -0
  231. package/dist/client/assets/js/{wardleyDiagram-YWT4CUSO-BQ7KDw3c.js → wardleyDiagram-YWT4CUSO-CjApV8-0.js} +1 -1
  232. package/dist/client/assets/js/{wgsl-BzEo-Lwp.js → wgsl-DiXzOVd2.js} +1 -1
  233. package/dist/client/assets/js/{xml-CNMAb3tW.js → xml-DtDrXyok.js} +1 -1
  234. package/dist/client/assets/js/{xterm-B-CU1LD3.js → xterm-CdfgdkPC.js} +1 -1
  235. package/dist/client/assets/js/{xychartDiagram-2RQKCTM6-B1x6n3B3.js → xychartDiagram-2RQKCTM6-DuaP4Pnm.js} +1 -1
  236. package/dist/client/assets/js/{yaml-DpwMHYi6.js → yaml-9_m3OBnv.js} +1 -1
  237. package/dist/client/assets/js/{zh-TW-BJY5MjsC.js → zh-TW-CLhifuOg.js} +1 -1
  238. package/dist/client/assets/js/{zh-CoPU4mYG.js → zh-gGY9f4WM.js} +1 -1
  239. package/dist/client/index.html +1 -1
  240. package/dist/server/index.js +3 -3
  241. package/dist/server/index.js.map +1 -1
  242. package/dist/server/openapi.json +1 -1
  243. package/package.json +1 -1
  244. package/dist/client/assets/js/AppSidebar-BHfH59vK.js +0 -1
  245. package/dist/client/assets/js/architecture-7EHR7CIX-CCBUg0GR.js +0 -1
  246. package/dist/client/assets/js/classDiagram-4FO5ZUOK-Dr5SR3PA.js +0 -1
  247. package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-BeYcryNa.js +0 -1
  248. package/dist/client/assets/js/eventmodeling-FCH6USID-Cd6TFrci.js +0 -1
  249. package/dist/client/assets/js/gitGraph-WXDBUCRP-CG4qC9Jw.js +0 -1
  250. package/dist/client/assets/js/info-J43DQDTF-CFtOWOWw.js +0 -1
  251. package/dist/client/assets/js/packet-YPE3B663-C0Vs_oOB.js +0 -1
  252. package/dist/client/assets/js/pie-LRSECV5Y-CAscu7sk.js +0 -1
  253. package/dist/client/assets/js/radar-GUYGQ44K-CfxS0DQE.js +0 -1
  254. package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-BHJGHZeG.js +0 -1
  255. package/dist/client/assets/js/treeView-BLDUP644-wNgfMdO5.js +0 -1
  256. package/dist/client/assets/js/treemap-LRROVOQU-Dy2LkAdg.js +0 -1
  257. package/dist/client/assets/js/wardley-L42UT6IY-BGLmswxh.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/js/MarkdownRenderer-RUGb4sbQ.js","assets/js/index-B41wzfl2.js","assets/css/index-CsQvhMiS.css","assets/js/highlight-Dj4_XEnA.js","assets/js/clipboard-DbIDy3AT.js","assets/js/download-D8EaUX1d.js","assets/css/MarkdownRenderer-riGsdEYy.css"])))=>i.map(i=>d[i]);
2
- import{$r as B,Ci as f,Cr as $,D as Ke,E as P,Er as je,Gi as D,Gt as G,Hr as z,Jr as j,Mi as Te,Pi as c,Qi as e,Qr as w,Ti as Se,Tr as He,Ut as S,Yr as De,Zr as K,Zt as Oe,aa as h,ai as k,an as We,ci as E,ct as R,di as H,ei as M,ft as Ve,gi as Ge,j as Qe,lt as Be,n as N,oi as y,qr as Ye,qt as Ae,ra as v,si as Je,t as q,ti as C,tt as V,wr as I,xt as Xe,yt as Ze,z as et}from"./index-B41wzfl2.js";import{a as tt,o as at,r as it}from"./highlight-Dj4_XEnA.js";import{n as lt,t as st}from"./clipboard-DbIDy3AT.js";import{a as Me,t as $e}from"./download-D8EaUX1d.js";import{a as nt,i as U,n as O,o as rt,r as W,t as L}from"./files-DaoyoU6g.js";var Q,Pe,Y=h((()=>{z(),P(),$(),L(),Q={class:"file-tree"},Pe=E({__name:"FileTree",props:{profile:{},workspaceKey:{}},setup(x){const{t:b}=I(),a=U(),l=x,t=K(()=>l.profile===void 0?a.currentProfile:l.profile),r=D([]),d=D([]),u=D(0);let o=0;async function p(n){try{return(a.currentWorkspaceSessionId?await a.listEntries(n):await a.fetchDirectory(n,{profile:t.value})).entries.filter(i=>i.isDir).sort((i,m)=>i.name.localeCompare(m.name)).map(i=>({key:i.path,label:i.name,isLeaf:!1}))}catch{return[]}}async function g(n){const i=o,m=await p(n.key);i===o&&(n.children=m)}function T(n){n.length>0&&(d.value=n,a.navigateTo(n[0],{profile:t.value}))}function F(){d.value=[],a.navigateTo("",{profile:t.value})}function s({option:n}){const i=String(n.label||"");return H("span",{class:"tree-node-label",title:i},i)}return Te([t,()=>a.currentWorkspaceSessionId,()=>l.workspaceKey],async()=>{const n=++o;d.value=[],u.value+=1;const i=await p("");n===o&&(r.value=i)},{immediate:!0}),(n,i)=>(f(),C("div",Q,[w("div",{class:"tree-header",onClick:F},[i[0]||(i[0]=w("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},[w("path",{d:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),w("polyline",{points:"9 22 9 12 15 12 15 22"})],-1)),w("span",null,v(e(b)("files.breadcrumbRoot")),1)]),(f(),B(e(Qe),{key:u.value,data:r.value,"selected-keys":d.value,"on-load":g,"render-label":s,"expand-on-click":"","block-line":"","onUpdate:selectedKeys":T},null,8,["data","selected-keys"]))]))}})})),ot=h((()=>{})),ut,Gt=h((()=>{Y(),Y(),ot(),N(),ut=q(Pe,[["__scopeId","data-v-f07c115c"]])})),A,ze,J=h((()=>{z(),$(),P(),L(),A={class:"file-breadcrumb"},ze=E({__name:"FileBreadcrumb",setup(x){const{t:b}=I(),a=U();function l(t){if(t<0)a.navigateTo("");else{const r=a.pathSegments.slice(0,t+1).join("/");a.navigateTo(r)}}return(t,r)=>(f(),C("div",A,[y(e(Ae),null,{default:c(()=>[y(e(G),{onClick:r[0]||(r[0]=d=>l(-1))},{default:c(()=>[k(v(e(b)("files.breadcrumbRoot")),1)]),_:1}),(f(!0),C(De,null,Se(e(a).pathSegments,(d,u)=>(f(),B(e(G),{key:u,onClick:o=>l(u)},{default:c(()=>[k(v(d),1)]),_:2},1032,["onClick"]))),128))]),_:1})]))}})})),dt=h((()=>{})),_t,Qt=h((()=>{J(),J(),dt(),N(),_t=q(ze,[["__scopeId","data-v-061302de"]])})),X,Ee,Z=h((()=>{z(),P(),$(),L(),X={class:"file-toolbar"},Ee=E({__name:"FileToolbar",props:{allowUpload:{type:Boolean,default:!0}},emits:["showNewFile","showNewFolder","showUpload"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=b;async function d(){try{await t.fetchEntries()}catch{l.error(a("files.backendError"))}}return(u,o)=>(f(),C("div",X,[y(e(V),{size:8,wrap:!0,class:"toolbar-space"},{default:c(()=>[y(e(S),{size:"small",onClick:o[0]||(o[0]=p=>r("showNewFile")),class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.newFile")),1)]),_:1}),y(e(S),{size:"small",onClick:o[1]||(o[1]=p=>r("showNewFolder")),class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.newFolder")),1)]),_:1}),x.allowUpload?(f(),B(e(S),{key:0,size:"small",onClick:o[2]||(o[2]=p=>r("showUpload")),class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.upload")),1)]),_:1})):M("",!0),y(e(S),{size:"small",onClick:d,class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.refresh")),1)]),_:1})]),_:1})]))}})})),ct=h((()=>{})),pt,Yt=h((()=>{Z(),Z(),ct(),N(),pt=q(Ee,[["__scopeId","data-v-5a75b673"]])})),ee,te,ae,ie,le,se,ne,re,oe,ue,de,_e,ce,Ie,pe=h((()=>{z(),P(),$(),L(),Me(),ee={class:"file-list"},te={key:1,class:"file-list-items"},ae={class:"file-list-header file-list-grid"},ie={key:0,class:"sort-indicator"},le={key:0,class:"sort-indicator"},se={key:0,class:"sort-indicator"},ne=["onDblclick","onContextmenu"],re={class:"file-name"},oe={class:"file-icon"},ue=["title"],de={class:"file-size"},_e={class:"file-date"},ce={class:"file-actions"},Ie=E({__name:"FileList",emits:["contextmenu-entry"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=b;function d(s){if(s===0)return"—";const n=["B","KB","MB","GB"];let i=0,m=s;for(;m>=1024&&i<n.length-1;)m/=1024,i++;return`${m.toFixed(i===0?0:1)} ${n[i]}`}function u(s){return s?new Date(s).toLocaleString():"—"}function o(s){return s.isDir?"📁":{yaml:"⚙️",yml:"⚙️",json:"📋",toml:"⚙️",md:"📝",txt:"📄",log:"📄",py:"🐍",js:"📜",ts:"📜",vue:"💚",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",svg:"🖼️",webp:"🖼️",zip:"📦",gz:"📦",tar:"📦",sh:"⚡",bash:"⚡"}[s.name.split(".").pop()?.toLowerCase()||""]||"📄"}async function p(s){try{await t.openPreview(s)}catch{l.error(a("files.backendError"))}}async function g(s){s.isDir?t.navigateTo(s.path):W(s.name)?await t.openEditor(s.path):O(s.name)&&await p(s)}function T(s,n){s.preventDefault(),r("contextmenu-entry",s,n)}async function F(s){try{await $e(s.path,s.name,t.currentProfile)}catch(n){l.error(n.message||a("files.backendError"))}}return(s,n)=>(f(),C("div",ee,[y(e(et),{show:e(t).loading},{default:c(()=>[!e(t).loading&&e(t).sortedEntries.length===0?(f(),B(e(We),{key:0,description:e(a)("files.emptyDir")},null,8,["description"])):(f(),C("div",te,[w("div",ae,[w("div",{class:"file-name sort-header",onClick:n[0]||(n[0]=i=>e(t).setSort("name"))},[k(v(e(a)("files.name"))+" ",1),e(t).sortBy==="name"?(f(),C("span",ie,v(e(t).sortOrder==="asc"?"↑":"↓"),1)):M("",!0)]),w("div",{class:"file-size sort-header",onClick:n[1]||(n[1]=i=>e(t).setSort("size"))},[k(v(e(a)("files.size"))+" ",1),e(t).sortBy==="size"?(f(),C("span",le,v(e(t).sortOrder==="asc"?"↑":"↓"),1)):M("",!0)]),w("div",{class:"file-date sort-header",onClick:n[2]||(n[2]=i=>e(t).setSort("modTime"))},[k(v(e(a)("files.modified"))+" ",1),e(t).sortBy==="modTime"?(f(),C("span",se,v(e(t).sortOrder==="asc"?"↑":"↓"),1)):M("",!0)]),n[3]||(n[3]=w("div",{class:"file-actions-placeholder"},null,-1))]),(f(!0),C(De,null,Se(e(t).sortedEntries,i=>(f(),C("div",{key:i.path,class:"file-list-row file-list-grid",onDblclick:m=>g(i),onContextmenu:m=>T(m,i)},[w("div",re,[w("span",oe,v(o(i)),1),w("span",{class:"file-label",title:i.name},v(i.name),9,ue)]),w("div",de,v(i.isDir?"—":d(i.size)),1),w("div",_e,v(u(i.modTime)),1),w("div",ce,[e(O)(i.name)&&!i.isDir?(f(),B(e(S),{key:0,size:"tiny",quaternary:"",onClick:j(m=>p(i),["stop"]),title:e(a)("files.preview")},{default:c(()=>[...n[4]||(n[4]=[k("👁️",-1)])]),_:1},8,["onClick","title"])):M("",!0),e(W)(i.name)&&!i.isDir?(f(),B(e(S),{key:1,size:"tiny",quaternary:"",onClick:j(m=>e(t).openEditor(i.path),["stop"]),title:e(a)("files.edit")},{default:c(()=>[...n[5]||(n[5]=[k("✏️",-1)])]),_:1},8,["onClick","title"])):M("",!0),!e(t).currentWorkspaceSessionId&&!i.isDir?(f(),B(e(S),{key:2,size:"tiny",quaternary:"",onClick:j(m=>F(i),["stop"]),title:e(a)("files.download")},{default:c(()=>[...n[6]||(n[6]=[k("⬇️",-1)])]),_:1},8,["onClick","title"])):M("",!0)])],40,ne))),128))]))]),_:1},8,["show"])]))}})})),ft=h((()=>{})),vt,At=h((()=>{pe(),pe(),ft(),N(),vt=q(Ie,[["__scopeId","data-v-6de4c70b"]])}));function mt(x){return x.absolutePath||x.path}var ht=h((()=>{})),Ue,fe=h((()=>{z(),P(),$(),L(),Me(),lt(),ht(),Ue=E({__name:"FileContextMenu",emits:["rename","newFolder"],setup(x,{expose:b,emit:a}){const{t:l}=I(),t=R(),r=Ve(),d=U(),u=D(!1),o=D(0),p=D(0),g=D(null),T=a;function F(m,_){g.value=_,o.value=m.clientX,p.value=m.clientY,u.value=!1,Ge(()=>{u.value=!0})}function s(){const m=g.value;if(!m)return[];const _=[];return m.isDir?_.push({label:l("files.open"),key:"open"}):(W(m.name)&&_.push({label:l("files.edit"),key:"edit"}),O(m.name)&&_.push({label:l("files.preview"),key:"preview"}),d.currentWorkspaceSessionId||_.push({label:l("files.download"),key:"download"})),_.push({type:"divider",key:"d1"}),_.push({label:l("files.copyPath"),key:"copyPath"}),_.push({label:l("files.newFolder"),key:"newFolder"}),_.push({label:l("files.rename"),key:"rename"}),_.push({type:"divider",key:"d2"}),_.push({label:l("files.delete"),key:"delete"}),_}async function n(m){u.value=!1;const _=g.value;if(_)switch(m){case"open":d.navigateTo(_.path);break;case"edit":try{await d.openEditor(_.path)}catch{t.error(l("files.backendError"))}break;case"preview":try{await d.openPreview(_)}catch{t.error(l("files.backendError"))}break;case"download":if(d.currentWorkspaceSessionId)return;try{await $e(_.path,_.name,d.currentProfile)}catch(qe){t.error(qe.message)}break;case"copyPath":await st(mt(_))?t.success(l("files.pathCopied")):t.error(l("files.pathCopied")+" ✗");break;case"rename":T("rename",_);break;case"newFolder":T("newFolder",_);break;case"delete":r.warning({title:l("files.delete"),content:_.isDir?l("files.confirmDeleteDir",{name:_.name}):l("files.confirmDelete",{name:_.name}),positiveText:l("common.delete"),negativeText:l("common.cancel"),onPositiveClick:async()=>{try{await d.deleteEntry(_),t.success(l("files.deleted"))}catch{t.error(l("files.deleteFailed"))}}});break}}function i(){u.value=!1}return b({show:F}),(m,_)=>(f(),B(e(Ze),{show:u.value,x:o.value,y:p.value,options:s(),placement:"bottom-start",trigger:"manual",onSelect:n,onClickoutside:i},null,8,["show","x","y","options"]))}})})),wt,Jt=h((()=>{fe(),fe(),wt=Ue})),ve,me,he,we,ye,ge,ke,Le,be=h((()=>{z(),P(),$(),L(),rt(),tt(),je(),ve={key:0,class:"file-preview"},me={class:"preview-header"},he={class:"preview-filename"},we={class:"preview-content"},ye=["src","alt"],ge={key:1,class:"preview-markdown"},ke=["innerHTML"],Le=E({__name:"FilePreview",setup(x){const b=Je(async()=>(await He(async()=>{const{default:p}=await import("./MarkdownRenderer-RUGb4sbQ.js");return{default:p}},__vite__mapDeps([0,1,2,3,4,5,6]))).default),{t:a}=I(),l=R(),t=U();function r(){return t.previewFile?nt(t.previewFile.path,void 0,t.previewFile.profile):""}const d=K(()=>{const p=t.previewFile;return!p||p.type!=="text"?"":at(p.content||"",p.language,a("common.copy"),{maxHighlightLength:2e5})});async function u(p){const g=await it(p);g?l.success(a("common.copied")):g===!1&&l.error(a("chat.copyFailed"))}const o=()=>H("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},[H("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})]);return(p,g)=>e(t).previewFile?(f(),C("div",ve,[w("div",me,[w("span",he,v(e(t).previewFile.path),1),y(e(S),{size:"small",quaternary:"",onClick:g[0]||(g[0]=T=>e(t).closePreview())},{icon:c(()=>[y(e(Xe),null,{default:c(()=>[y(o)]),_:1})]),default:c(()=>[k(" "+v(e(a)("files.closePreview")),1)]),_:1})]),w("div",we,[e(t).previewFile.type==="image"?(f(),C("img",{key:0,src:r(),class:"preview-image",alt:e(t).previewFile.path},null,8,ye)):e(t).previewFile.type==="markdown"?(f(),C("div",ge,[y(e(b),{content:e(t).previewFile.content||""},null,8,["content"])])):e(t).previewFile.type==="text"?(f(),C("div",{key:2,class:"preview-code",innerHTML:d.value,onClick:u},null,8,ke)):M("",!0)])])):M("",!0)}})})),yt=h((()=>{})),gt,Xt=h((()=>{be(),be(),yt(),N(),gt=q(Le,[["__scopeId","data-v-30ba41b3"]])})),Fe,Re,Ce=h((()=>{z(),P(),$(),L(),Fe={class:"upload-dragger"},Re=E({__name:"FileUploadModal",props:{show:{type:Boolean}},emits:["update:show"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=x,d=b,u=D(!1),o=D([]);function p(F){o.value=F.fileList.map(s=>s.file).filter(s=>s!=null)}async function g(){if(o.value.length!==0){u.value=!0;try{await t.uploadFiles(o.value),l.success(a("files.uploadSuccess",{count:o.value.length})),o.value=[],d("update:show",!1)}catch(F){l.error(F.message||a("files.uploadFailed"))}finally{u.value=!1}}}function T(){o.value=[],d("update:show",!1)}return(F,s)=>(f(),B(e(Be),{show:r.show,preset:"dialog",title:e(a)("files.upload"),"onUpdate:show":T,style:{width:"500px"}},{action:c(()=>[y(e(V),null,{default:c(()=>[y(e(S),{onClick:T},{default:c(()=>[k(v(e(a)("common.cancel")),1)]),_:1}),y(e(S),{type:"primary",loading:u.value,disabled:o.value.length===0,onClick:g},{default:c(()=>[k(v(e(a)("files.upload"))+" ("+v(o.value.length)+") ",1)]),_:1},8,["loading","disabled"])]),_:1})]),default:c(()=>[y(e(Ke),{multiple:"","directory-dnd":"","default-upload":!1,onChange:p},{default:c(()=>[w("div",Fe,[w("p",null,v(e(a)("files.dragDropHint")),1)])]),_:1})]),_:1},8,["show","title"]))}})})),kt=h((()=>{})),bt,Zt=h((()=>{Ce(),Ce(),kt(),N(),bt=q(Re,[["__scopeId","data-v-e54e68b1"]])})),Ne,xe=h((()=>{z(),P(),$(),L(),Ne=E({__name:"FileRenameModal",props:{show:{type:Boolean},mode:{},entry:{},targetPath:{}},emits:["update:show"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=x,d=b,u=D(""),o=D(!1);Te(()=>r.show,F=>{F&&(r.mode==="rename"&&r.entry?u.value=r.entry.name:u.value="")});const p=K(()=>{switch(r.mode){case"newFile":return a("files.newFile");case"newFolder":return a("files.newFolder");case"rename":return a("files.rename")}}),g=K(()=>{switch(r.mode){case"newFile":return a("files.newFileName");case"newFolder":return a("files.newFolderName");case"rename":return a("files.renameTo")}});async function T(){if(u.value.trim()){o.value=!0;try{switch(r.mode){case"newFile":await t.createFile(u.value.trim()),l.success(a("files.created"));break;case"newFolder":await t.createDir(u.value.trim(),r.targetPath||void 0),l.success(a("files.created"));break;case"rename":r.entry&&(await t.renameEntry(r.entry,u.value.trim()),l.success(a("files.renamed")));break}d("update:show",!1)}catch(F){const s=r.mode==="rename"?a("files.renameFailed"):a("files.createFailed");l.error(F.message||s)}finally{o.value=!1}}}return(F,s)=>(f(),B(e(Be),{show:r.show,preset:"dialog",title:p.value,"onUpdate:show":s[2]||(s[2]=n=>d("update:show",!1)),style:{width:"400px"}},{action:c(()=>[y(e(V),null,{default:c(()=>[y(e(S),{onClick:s[1]||(s[1]=n=>d("update:show",!1))},{default:c(()=>[k(v(e(a)("common.cancel")),1)]),_:1}),y(e(S),{type:"primary",loading:o.value,disabled:!u.value.trim(),onClick:T},{default:c(()=>[k(v(e(a)("common.ok")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:c(()=>[y(e(Oe),{value:u.value,"onUpdate:value":s[0]||(s[0]=n=>u.value=n),placeholder:g.value,onKeydown:Ye(T,["enter"]),autofocus:""},null,8,["value","placeholder"])]),_:1},8,["show","title"]))}})})),Ft,ea=h((()=>{xe(),xe(),Ft=Ne}));export{gt as a,Jt as c,pt as d,Yt as f,Gt as g,ut as h,Zt as i,vt as l,Qt as m,ea as n,Xt as o,_t as p,bt as r,wt as s,Ft as t,At as u};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/js/MarkdownRenderer-DpSiF5gl.js","assets/js/index-RJQqJC6n.js","assets/css/index-CsQvhMiS.css","assets/js/highlight-CEOB4aIv.js","assets/js/clipboard-DYlTCW_e.js","assets/js/download-48rHoTgx.js","assets/css/MarkdownRenderer-riGsdEYy.css"])))=>i.map(i=>d[i]);
2
+ import{$r as B,Ci as f,Cr as $,D as Ke,E as P,Er as je,Gi as D,Gt as G,Hr as z,Jr as j,Mi as Te,Pi as c,Qi as e,Qr as w,Ti as Se,Tr as He,Ut as S,Yr as De,Zr as K,Zt as Oe,aa as h,ai as k,an as We,ci as E,ct as R,di as H,ei as M,ft as Ve,gi as Ge,j as Qe,lt as Be,n as N,oi as y,qr as Ye,qt as Ae,ra as v,si as Je,t as q,ti as C,tt as V,wr as I,xt as Xe,yt as Ze,z as et}from"./index-RJQqJC6n.js";import{a as tt,o as at,r as it}from"./highlight-CEOB4aIv.js";import{n as lt,t as st}from"./clipboard-DYlTCW_e.js";import{a as Me,t as $e}from"./download-48rHoTgx.js";import{a as nt,i as U,n as O,o as rt,r as W,t as L}from"./files-hTAbTvaX.js";var Q,Pe,Y=h((()=>{z(),P(),$(),L(),Q={class:"file-tree"},Pe=E({__name:"FileTree",props:{profile:{},workspaceKey:{}},setup(x){const{t:b}=I(),a=U(),l=x,t=K(()=>l.profile===void 0?a.currentProfile:l.profile),r=D([]),d=D([]),u=D(0);let o=0;async function p(n){try{return(a.currentWorkspaceSessionId?await a.listEntries(n):await a.fetchDirectory(n,{profile:t.value})).entries.filter(i=>i.isDir).sort((i,m)=>i.name.localeCompare(m.name)).map(i=>({key:i.path,label:i.name,isLeaf:!1}))}catch{return[]}}async function g(n){const i=o,m=await p(n.key);i===o&&(n.children=m)}function T(n){n.length>0&&(d.value=n,a.navigateTo(n[0],{profile:t.value}))}function F(){d.value=[],a.navigateTo("",{profile:t.value})}function s({option:n}){const i=String(n.label||"");return H("span",{class:"tree-node-label",title:i},i)}return Te([t,()=>a.currentWorkspaceSessionId,()=>l.workspaceKey],async()=>{const n=++o;d.value=[],u.value+=1;const i=await p("");n===o&&(r.value=i)},{immediate:!0}),(n,i)=>(f(),C("div",Q,[w("div",{class:"tree-header",onClick:F},[i[0]||(i[0]=w("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},[w("path",{d:"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),w("polyline",{points:"9 22 9 12 15 12 15 22"})],-1)),w("span",null,v(e(b)("files.breadcrumbRoot")),1)]),(f(),B(e(Qe),{key:u.value,data:r.value,"selected-keys":d.value,"on-load":g,"render-label":s,"expand-on-click":"","block-line":"","onUpdate:selectedKeys":T},null,8,["data","selected-keys"]))]))}})})),ot=h((()=>{})),ut,Gt=h((()=>{Y(),Y(),ot(),N(),ut=q(Pe,[["__scopeId","data-v-f07c115c"]])})),A,ze,J=h((()=>{z(),$(),P(),L(),A={class:"file-breadcrumb"},ze=E({__name:"FileBreadcrumb",setup(x){const{t:b}=I(),a=U();function l(t){if(t<0)a.navigateTo("");else{const r=a.pathSegments.slice(0,t+1).join("/");a.navigateTo(r)}}return(t,r)=>(f(),C("div",A,[y(e(Ae),null,{default:c(()=>[y(e(G),{onClick:r[0]||(r[0]=d=>l(-1))},{default:c(()=>[k(v(e(b)("files.breadcrumbRoot")),1)]),_:1}),(f(!0),C(De,null,Se(e(a).pathSegments,(d,u)=>(f(),B(e(G),{key:u,onClick:o=>l(u)},{default:c(()=>[k(v(d),1)]),_:2},1032,["onClick"]))),128))]),_:1})]))}})})),dt=h((()=>{})),_t,Qt=h((()=>{J(),J(),dt(),N(),_t=q(ze,[["__scopeId","data-v-061302de"]])})),X,Ee,Z=h((()=>{z(),P(),$(),L(),X={class:"file-toolbar"},Ee=E({__name:"FileToolbar",props:{allowUpload:{type:Boolean,default:!0}},emits:["showNewFile","showNewFolder","showUpload"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=b;async function d(){try{await t.fetchEntries()}catch{l.error(a("files.backendError"))}}return(u,o)=>(f(),C("div",X,[y(e(V),{size:8,wrap:!0,class:"toolbar-space"},{default:c(()=>[y(e(S),{size:"small",onClick:o[0]||(o[0]=p=>r("showNewFile")),class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.newFile")),1)]),_:1}),y(e(S),{size:"small",onClick:o[1]||(o[1]=p=>r("showNewFolder")),class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.newFolder")),1)]),_:1}),x.allowUpload?(f(),B(e(S),{key:0,size:"small",onClick:o[2]||(o[2]=p=>r("showUpload")),class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.upload")),1)]),_:1})):M("",!0),y(e(S),{size:"small",onClick:d,class:"toolbar-btn"},{default:c(()=>[k(v(e(a)("files.refresh")),1)]),_:1})]),_:1})]))}})})),ct=h((()=>{})),pt,Yt=h((()=>{Z(),Z(),ct(),N(),pt=q(Ee,[["__scopeId","data-v-5a75b673"]])})),ee,te,ae,ie,le,se,ne,re,oe,ue,de,_e,ce,Ie,pe=h((()=>{z(),P(),$(),L(),Me(),ee={class:"file-list"},te={key:1,class:"file-list-items"},ae={class:"file-list-header file-list-grid"},ie={key:0,class:"sort-indicator"},le={key:0,class:"sort-indicator"},se={key:0,class:"sort-indicator"},ne=["onDblclick","onContextmenu"],re={class:"file-name"},oe={class:"file-icon"},ue=["title"],de={class:"file-size"},_e={class:"file-date"},ce={class:"file-actions"},Ie=E({__name:"FileList",emits:["contextmenu-entry"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=b;function d(s){if(s===0)return"—";const n=["B","KB","MB","GB"];let i=0,m=s;for(;m>=1024&&i<n.length-1;)m/=1024,i++;return`${m.toFixed(i===0?0:1)} ${n[i]}`}function u(s){return s?new Date(s).toLocaleString():"—"}function o(s){return s.isDir?"📁":{yaml:"⚙️",yml:"⚙️",json:"📋",toml:"⚙️",md:"📝",txt:"📄",log:"📄",py:"🐍",js:"📜",ts:"📜",vue:"💚",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",svg:"🖼️",webp:"🖼️",zip:"📦",gz:"📦",tar:"📦",sh:"⚡",bash:"⚡"}[s.name.split(".").pop()?.toLowerCase()||""]||"📄"}async function p(s){try{await t.openPreview(s)}catch{l.error(a("files.backendError"))}}async function g(s){s.isDir?t.navigateTo(s.path):W(s.name)?await t.openEditor(s.path):O(s.name)&&await p(s)}function T(s,n){s.preventDefault(),r("contextmenu-entry",s,n)}async function F(s){try{await $e(s.path,s.name,t.currentProfile)}catch(n){l.error(n.message||a("files.backendError"))}}return(s,n)=>(f(),C("div",ee,[y(e(et),{show:e(t).loading},{default:c(()=>[!e(t).loading&&e(t).sortedEntries.length===0?(f(),B(e(We),{key:0,description:e(a)("files.emptyDir")},null,8,["description"])):(f(),C("div",te,[w("div",ae,[w("div",{class:"file-name sort-header",onClick:n[0]||(n[0]=i=>e(t).setSort("name"))},[k(v(e(a)("files.name"))+" ",1),e(t).sortBy==="name"?(f(),C("span",ie,v(e(t).sortOrder==="asc"?"↑":"↓"),1)):M("",!0)]),w("div",{class:"file-size sort-header",onClick:n[1]||(n[1]=i=>e(t).setSort("size"))},[k(v(e(a)("files.size"))+" ",1),e(t).sortBy==="size"?(f(),C("span",le,v(e(t).sortOrder==="asc"?"↑":"↓"),1)):M("",!0)]),w("div",{class:"file-date sort-header",onClick:n[2]||(n[2]=i=>e(t).setSort("modTime"))},[k(v(e(a)("files.modified"))+" ",1),e(t).sortBy==="modTime"?(f(),C("span",se,v(e(t).sortOrder==="asc"?"↑":"↓"),1)):M("",!0)]),n[3]||(n[3]=w("div",{class:"file-actions-placeholder"},null,-1))]),(f(!0),C(De,null,Se(e(t).sortedEntries,i=>(f(),C("div",{key:i.path,class:"file-list-row file-list-grid",onDblclick:m=>g(i),onContextmenu:m=>T(m,i)},[w("div",re,[w("span",oe,v(o(i)),1),w("span",{class:"file-label",title:i.name},v(i.name),9,ue)]),w("div",de,v(i.isDir?"—":d(i.size)),1),w("div",_e,v(u(i.modTime)),1),w("div",ce,[e(O)(i.name)&&!i.isDir?(f(),B(e(S),{key:0,size:"tiny",quaternary:"",onClick:j(m=>p(i),["stop"]),title:e(a)("files.preview")},{default:c(()=>[...n[4]||(n[4]=[k("👁️",-1)])]),_:1},8,["onClick","title"])):M("",!0),e(W)(i.name)&&!i.isDir?(f(),B(e(S),{key:1,size:"tiny",quaternary:"",onClick:j(m=>e(t).openEditor(i.path),["stop"]),title:e(a)("files.edit")},{default:c(()=>[...n[5]||(n[5]=[k("✏️",-1)])]),_:1},8,["onClick","title"])):M("",!0),!e(t).currentWorkspaceSessionId&&!i.isDir?(f(),B(e(S),{key:2,size:"tiny",quaternary:"",onClick:j(m=>F(i),["stop"]),title:e(a)("files.download")},{default:c(()=>[...n[6]||(n[6]=[k("⬇️",-1)])]),_:1},8,["onClick","title"])):M("",!0)])],40,ne))),128))]))]),_:1},8,["show"])]))}})})),ft=h((()=>{})),vt,At=h((()=>{pe(),pe(),ft(),N(),vt=q(Ie,[["__scopeId","data-v-6de4c70b"]])}));function mt(x){return x.absolutePath||x.path}var ht=h((()=>{})),Ue,fe=h((()=>{z(),P(),$(),L(),Me(),lt(),ht(),Ue=E({__name:"FileContextMenu",emits:["rename","newFolder"],setup(x,{expose:b,emit:a}){const{t:l}=I(),t=R(),r=Ve(),d=U(),u=D(!1),o=D(0),p=D(0),g=D(null),T=a;function F(m,_){g.value=_,o.value=m.clientX,p.value=m.clientY,u.value=!1,Ge(()=>{u.value=!0})}function s(){const m=g.value;if(!m)return[];const _=[];return m.isDir?_.push({label:l("files.open"),key:"open"}):(W(m.name)&&_.push({label:l("files.edit"),key:"edit"}),O(m.name)&&_.push({label:l("files.preview"),key:"preview"}),d.currentWorkspaceSessionId||_.push({label:l("files.download"),key:"download"})),_.push({type:"divider",key:"d1"}),_.push({label:l("files.copyPath"),key:"copyPath"}),_.push({label:l("files.newFolder"),key:"newFolder"}),_.push({label:l("files.rename"),key:"rename"}),_.push({type:"divider",key:"d2"}),_.push({label:l("files.delete"),key:"delete"}),_}async function n(m){u.value=!1;const _=g.value;if(_)switch(m){case"open":d.navigateTo(_.path);break;case"edit":try{await d.openEditor(_.path)}catch{t.error(l("files.backendError"))}break;case"preview":try{await d.openPreview(_)}catch{t.error(l("files.backendError"))}break;case"download":if(d.currentWorkspaceSessionId)return;try{await $e(_.path,_.name,d.currentProfile)}catch(qe){t.error(qe.message)}break;case"copyPath":await st(mt(_))?t.success(l("files.pathCopied")):t.error(l("files.pathCopied")+" ✗");break;case"rename":T("rename",_);break;case"newFolder":T("newFolder",_);break;case"delete":r.warning({title:l("files.delete"),content:_.isDir?l("files.confirmDeleteDir",{name:_.name}):l("files.confirmDelete",{name:_.name}),positiveText:l("common.delete"),negativeText:l("common.cancel"),onPositiveClick:async()=>{try{await d.deleteEntry(_),t.success(l("files.deleted"))}catch{t.error(l("files.deleteFailed"))}}});break}}function i(){u.value=!1}return b({show:F}),(m,_)=>(f(),B(e(Ze),{show:u.value,x:o.value,y:p.value,options:s(),placement:"bottom-start",trigger:"manual",onSelect:n,onClickoutside:i},null,8,["show","x","y","options"]))}})})),wt,Jt=h((()=>{fe(),fe(),wt=Ue})),ve,me,he,we,ye,ge,ke,Le,be=h((()=>{z(),P(),$(),L(),rt(),tt(),je(),ve={key:0,class:"file-preview"},me={class:"preview-header"},he={class:"preview-filename"},we={class:"preview-content"},ye=["src","alt"],ge={key:1,class:"preview-markdown"},ke=["innerHTML"],Le=E({__name:"FilePreview",setup(x){const b=Je(async()=>(await He(async()=>{const{default:p}=await import("./MarkdownRenderer-DpSiF5gl.js");return{default:p}},__vite__mapDeps([0,1,2,3,4,5,6]))).default),{t:a}=I(),l=R(),t=U();function r(){return t.previewFile?nt(t.previewFile.path,void 0,t.previewFile.profile):""}const d=K(()=>{const p=t.previewFile;return!p||p.type!=="text"?"":at(p.content||"",p.language,a("common.copy"),{maxHighlightLength:2e5})});async function u(p){const g=await it(p);g?l.success(a("common.copied")):g===!1&&l.error(a("chat.copyFailed"))}const o=()=>H("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"currentColor"},[H("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})]);return(p,g)=>e(t).previewFile?(f(),C("div",ve,[w("div",me,[w("span",he,v(e(t).previewFile.path),1),y(e(S),{size:"small",quaternary:"",onClick:g[0]||(g[0]=T=>e(t).closePreview())},{icon:c(()=>[y(e(Xe),null,{default:c(()=>[y(o)]),_:1})]),default:c(()=>[k(" "+v(e(a)("files.closePreview")),1)]),_:1})]),w("div",we,[e(t).previewFile.type==="image"?(f(),C("img",{key:0,src:r(),class:"preview-image",alt:e(t).previewFile.path},null,8,ye)):e(t).previewFile.type==="markdown"?(f(),C("div",ge,[y(e(b),{content:e(t).previewFile.content||""},null,8,["content"])])):e(t).previewFile.type==="text"?(f(),C("div",{key:2,class:"preview-code",innerHTML:d.value,onClick:u},null,8,ke)):M("",!0)])])):M("",!0)}})})),yt=h((()=>{})),gt,Xt=h((()=>{be(),be(),yt(),N(),gt=q(Le,[["__scopeId","data-v-30ba41b3"]])})),Fe,Re,Ce=h((()=>{z(),P(),$(),L(),Fe={class:"upload-dragger"},Re=E({__name:"FileUploadModal",props:{show:{type:Boolean}},emits:["update:show"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=x,d=b,u=D(!1),o=D([]);function p(F){o.value=F.fileList.map(s=>s.file).filter(s=>s!=null)}async function g(){if(o.value.length!==0){u.value=!0;try{await t.uploadFiles(o.value),l.success(a("files.uploadSuccess",{count:o.value.length})),o.value=[],d("update:show",!1)}catch(F){l.error(F.message||a("files.uploadFailed"))}finally{u.value=!1}}}function T(){o.value=[],d("update:show",!1)}return(F,s)=>(f(),B(e(Be),{show:r.show,preset:"dialog",title:e(a)("files.upload"),"onUpdate:show":T,style:{width:"500px"}},{action:c(()=>[y(e(V),null,{default:c(()=>[y(e(S),{onClick:T},{default:c(()=>[k(v(e(a)("common.cancel")),1)]),_:1}),y(e(S),{type:"primary",loading:u.value,disabled:o.value.length===0,onClick:g},{default:c(()=>[k(v(e(a)("files.upload"))+" ("+v(o.value.length)+") ",1)]),_:1},8,["loading","disabled"])]),_:1})]),default:c(()=>[y(e(Ke),{multiple:"","directory-dnd":"","default-upload":!1,onChange:p},{default:c(()=>[w("div",Fe,[w("p",null,v(e(a)("files.dragDropHint")),1)])]),_:1})]),_:1},8,["show","title"]))}})})),kt=h((()=>{})),bt,Zt=h((()=>{Ce(),Ce(),kt(),N(),bt=q(Re,[["__scopeId","data-v-e54e68b1"]])})),Ne,xe=h((()=>{z(),P(),$(),L(),Ne=E({__name:"FileRenameModal",props:{show:{type:Boolean},mode:{},entry:{},targetPath:{}},emits:["update:show"],setup(x,{emit:b}){const{t:a}=I(),l=R(),t=U(),r=x,d=b,u=D(""),o=D(!1);Te(()=>r.show,F=>{F&&(r.mode==="rename"&&r.entry?u.value=r.entry.name:u.value="")});const p=K(()=>{switch(r.mode){case"newFile":return a("files.newFile");case"newFolder":return a("files.newFolder");case"rename":return a("files.rename")}}),g=K(()=>{switch(r.mode){case"newFile":return a("files.newFileName");case"newFolder":return a("files.newFolderName");case"rename":return a("files.renameTo")}});async function T(){if(u.value.trim()){o.value=!0;try{switch(r.mode){case"newFile":await t.createFile(u.value.trim()),l.success(a("files.created"));break;case"newFolder":await t.createDir(u.value.trim(),r.targetPath||void 0),l.success(a("files.created"));break;case"rename":r.entry&&(await t.renameEntry(r.entry,u.value.trim()),l.success(a("files.renamed")));break}d("update:show",!1)}catch(F){const s=r.mode==="rename"?a("files.renameFailed"):a("files.createFailed");l.error(F.message||s)}finally{o.value=!1}}}return(F,s)=>(f(),B(e(Be),{show:r.show,preset:"dialog",title:p.value,"onUpdate:show":s[2]||(s[2]=n=>d("update:show",!1)),style:{width:"400px"}},{action:c(()=>[y(e(V),null,{default:c(()=>[y(e(S),{onClick:s[1]||(s[1]=n=>d("update:show",!1))},{default:c(()=>[k(v(e(a)("common.cancel")),1)]),_:1}),y(e(S),{type:"primary",loading:o.value,disabled:!u.value.trim(),onClick:T},{default:c(()=>[k(v(e(a)("common.ok")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:c(()=>[y(e(Oe),{value:u.value,"onUpdate:value":s[0]||(s[0]=n=>u.value=n),placeholder:g.value,onKeydown:Ye(T,["enter"]),autofocus:""},null,8,["value","placeholder"])]),_:1},8,["show","title"]))}})})),Ft,ea=h((()=>{xe(),xe(),Ft=Ne}));export{gt as a,Jt as c,pt as d,Yt as f,Gt as g,ut as h,Zt as i,vt as l,Qt as m,ea as n,Xt as o,_t as p,bt as r,wt as s,Ft as t,At as u};
@@ -1 +1 @@
1
- import{$r as m,Ci as a,Cr as K,E as W,Gi as s,Hr as X,Lr as ee,Mi as ie,Qi as h,Qr as r,Rr as te,Yr as ae,Zr as w,aa as x,ci as le,ea as oe,ei as M,ft as ne,n as se,oi as u,ra as b,t as re,ti as F,wr as ue,zr as _e}from"./index-B41wzfl2.js";import{r as fe,t as S}from"./FileEditor-Dkxlmokr.js";import{r as de,t as ce}from"./profiles-DDKFPE0r.js";import{i as ve,t as pe}from"./files-DaoyoU6g.js";import{a as me,c as he,d as we,f as Fe,g as ge,h as ye,i as Ce,l as xe,m as Pe,n as ke,o as Me,p as be,r as Se,s as Ee,t as Re,u as Ne}from"./FileRenameModal-o3oS6tv2.js";var E,R,N,V,T,U,q,B,L,D=x((()=>{X(),ee(),W(),K(),pe(),ce(),ge(),Pe(),Fe(),Ne(),he(),fe(),Me(),Ce(),ke(),E={class:"profile-config-editor-header"},R={class:"profile-config-title"},N={class:"profile-config-eyebrow"},V={class:"profile-config-file"},T={class:"profile-config-editor-content"},U={key:1,class:"files-tree-panel"},q={key:2,class:"files-main-panel"},B={class:"files-content"},L=le({__name:"FilesView",setup(qe){const t=ve(),g=de(),l=te(),$=_e(),z=ne(),{t:v}=ue(),P=s(null),y=s(!1),o=s(!1),_=s("newFile"),f=s(null),d=s(null),c=w(()=>C(l.query.profile)),k=w(()=>C(l.query.file)),p=w(()=>!!c.value&&k.value==="config.yaml"),I=w(()=>c.value?`${c.value} / config.yaml`:"config.yaml");function Q(e,i){P.value?.show(e,i)}function A(){_.value="newFile",f.value=null,d.value=null,o.value=!0}function G(){_.value="newFolder",f.value=null,d.value=null,o.value=!0}function H(e){_.value="newFolder",f.value=null,d.value=e.isDir?e.path:t.currentPath,o.value=!0}function O(e){_.value="rename",f.value=e,d.value=null,o.value=!0}function C(e){const i=Array.isArray(e)?e[0]:e;return typeof i=="string"&&i.trim()?i.trim():null}function Y(e){const i=e.lastIndexOf("/");return i>0?e.slice(0,i):""}async function Z(){(!g.activeProfileName||g.profiles.length===0)&&await g.fetchProfiles()}async function j(){await Z();const e=c.value,i=k.value,n=i?Y(i):C(l.query.path)||"";p.value||await t.fetchEntries(n,{profile:e}),i&&await t.openEditor(i,{profile:e})}function J(){const e=()=>{t.closeEditor(),$.push({name:"hermes.profiles"})};if(t.hasUnsavedChanges){z.warning({title:v("files.unsavedChanges"),positiveText:v("common.ok"),negativeText:v("common.cancel"),onPositiveClick:e});return}e()}return ie([()=>l.query.profile,()=>l.query.path,()=>l.query.file],()=>{j()},{immediate:!0}),(e,i)=>(a(),F("div",{class:oe(["files-view",{"profile-config-editor-view":p.value}])},[p.value?(a(),F(ae,{key:0},[r("div",E,[r("div",R,[r("span",N,b(h(v)("profiles.editConfig")),1),r("span",V,b(I.value),1)])]),r("div",T,[h(t).editingFile?(a(),m(S,{key:0,"custom-close":J})):M("",!0)])],64)):(a(),F("div",U,[u(ye,{profile:c.value},null,8,["profile"])])),p.value?M("",!0):(a(),F("div",q,[u(we,{onShowNewFile:A,onShowNewFolder:G,onShowUpload:i[0]||(i[0]=n=>y.value=!0)}),u(be),r("div",B,[h(t).editingFile?(a(),m(S,{key:0})):h(t).previewFile?(a(),m(me,{key:1})):(a(),m(xe,{key:2,onContextmenuEntry:Q}))])])),u(Ee,{ref_key:"contextMenuRef",ref:P,onRename:O,onNewFolder:H},null,512),u(Se,{show:y.value,"onUpdate:show":i[1]||(i[1]=n=>y.value=n)},null,8,["show"]),u(Re,{show:o.value,"onUpdate:show":i[2]||(i[2]=n=>o.value=n),mode:_.value,entry:f.value,"target-path":d.value},null,8,["show","mode","entry","target-path"])],2))}})})),Ve=x((()=>{})),Te,Ue=x((()=>{D(),D(),Ve(),se(),Te=re(L,[["__scopeId","data-v-936ba9a7"]])}));Ue();export{Te as default};
1
+ import{$r as m,Ci as a,Cr as K,E as W,Gi as s,Hr as X,Lr as ee,Mi as ie,Qi as h,Qr as r,Rr as te,Yr as ae,Zr as w,aa as x,ci as le,ea as oe,ei as M,ft as ne,n as se,oi as u,ra as b,t as re,ti as F,wr as ue,zr as _e}from"./index-RJQqJC6n.js";import{r as fe,t as S}from"./FileEditor-C_tmKjxI.js";import{r as de,t as ce}from"./profiles-BtECgqqD.js";import{i as ve,t as pe}from"./files-hTAbTvaX.js";import{a as me,c as he,d as we,f as Fe,g as ge,h as ye,i as Ce,l as xe,m as Pe,n as ke,o as Me,p as be,r as Se,s as Ee,t as Re,u as Ne}from"./FileRenameModal-BlqJ8jgZ.js";var E,R,N,V,T,U,q,B,L,D=x((()=>{X(),ee(),W(),K(),pe(),ce(),ge(),Pe(),Fe(),Ne(),he(),fe(),Me(),Ce(),ke(),E={class:"profile-config-editor-header"},R={class:"profile-config-title"},N={class:"profile-config-eyebrow"},V={class:"profile-config-file"},T={class:"profile-config-editor-content"},U={key:1,class:"files-tree-panel"},q={key:2,class:"files-main-panel"},B={class:"files-content"},L=le({__name:"FilesView",setup(qe){const t=ve(),g=de(),l=te(),$=_e(),z=ne(),{t:v}=ue(),P=s(null),y=s(!1),o=s(!1),_=s("newFile"),f=s(null),d=s(null),c=w(()=>C(l.query.profile)),k=w(()=>C(l.query.file)),p=w(()=>!!c.value&&k.value==="config.yaml"),I=w(()=>c.value?`${c.value} / config.yaml`:"config.yaml");function Q(e,i){P.value?.show(e,i)}function A(){_.value="newFile",f.value=null,d.value=null,o.value=!0}function G(){_.value="newFolder",f.value=null,d.value=null,o.value=!0}function H(e){_.value="newFolder",f.value=null,d.value=e.isDir?e.path:t.currentPath,o.value=!0}function O(e){_.value="rename",f.value=e,d.value=null,o.value=!0}function C(e){const i=Array.isArray(e)?e[0]:e;return typeof i=="string"&&i.trim()?i.trim():null}function Y(e){const i=e.lastIndexOf("/");return i>0?e.slice(0,i):""}async function Z(){(!g.activeProfileName||g.profiles.length===0)&&await g.fetchProfiles()}async function j(){await Z();const e=c.value,i=k.value,n=i?Y(i):C(l.query.path)||"";p.value||await t.fetchEntries(n,{profile:e}),i&&await t.openEditor(i,{profile:e})}function J(){const e=()=>{t.closeEditor(),$.push({name:"hermes.profiles"})};if(t.hasUnsavedChanges){z.warning({title:v("files.unsavedChanges"),positiveText:v("common.ok"),negativeText:v("common.cancel"),onPositiveClick:e});return}e()}return ie([()=>l.query.profile,()=>l.query.path,()=>l.query.file],()=>{j()},{immediate:!0}),(e,i)=>(a(),F("div",{class:oe(["files-view",{"profile-config-editor-view":p.value}])},[p.value?(a(),F(ae,{key:0},[r("div",E,[r("div",R,[r("span",N,b(h(v)("profiles.editConfig")),1),r("span",V,b(I.value),1)])]),r("div",T,[h(t).editingFile?(a(),m(S,{key:0,"custom-close":J})):M("",!0)])],64)):(a(),F("div",U,[u(ye,{profile:c.value},null,8,["profile"])])),p.value?M("",!0):(a(),F("div",q,[u(we,{onShowNewFile:A,onShowNewFolder:G,onShowUpload:i[0]||(i[0]=n=>y.value=!0)}),u(be),r("div",B,[h(t).editingFile?(a(),m(S,{key:0})):h(t).previewFile?(a(),m(me,{key:1})):(a(),m(xe,{key:2,onContextmenuEntry:Q}))])])),u(Ee,{ref_key:"contextMenuRef",ref:P,onRename:O,onNewFolder:H},null,512),u(Se,{show:y.value,"onUpdate:show":i[1]||(i[1]=n=>y.value=n)},null,8,["show"]),u(Re,{show:o.value,"onUpdate:show":i[2]||(i[2]=n=>o.value=n),mode:_.value,entry:f.value,"target-path":d.value},null,8,["show","mode","entry","target-path"])],2))}})})),Ve=x((()=>{})),Te,Ue=x((()=>{D(),D(),Ve(),se(),Te=re(L,[["__scopeId","data-v-936ba9a7"]])}));Ue();export{Te as default};
@@ -1 +1 @@
1
- import{Ci as o,Cr as Se,E as Me,Fr as z,Gi as n,Hr as $e,Jr as H,Mi as Te,Nr as Be,Pi as M,Qi as s,Qr as v,Ti as K,Ut as ee,Yr as $,Zr as ae,Zt as te,aa as U,ai as D,ci as Ne,ct as Ve,ea as I,ei as T,ft as ze,gi as De,lt as Ee,n as Le,na as le,oi as m,ra as c,t as Oe,ti as r,tt as Ie,wr as Ue,xi as Je,yt as Re,z as We}from"./index-B41wzfl2.js";import{n as Ze,t as Qe}from"./clipboard-DbIDy3AT.js";var se,ne,ie,oe,re,ue,de,ce,pe,ve,fe,he,me,ye,_e=U((()=>{$e(),Me(),Se(),Be(),Ze(),se={class:"folder-picker"},ne={key:0,class:"folder-picker-loading"},ie={key:1,class:"folder-tree"},oe={class:"folder-name"},re=["onClick","onContextmenu"],ue=["onClick"],de={class:"folder-name"},ce={class:"folder-empty-text"},pe={key:1,class:"folder-empty"},ve={key:2,class:"folder-selected"},fe={class:"folder-selected-label"},he=["title"],me=["disabled","title","aria-label"],ye=Ne({__name:"FolderPicker",props:{modelValue:{},showFavorite:{type:Boolean},favorite:{type:Boolean},favoriteDisabled:{type:Boolean},favoriteTitle:{}},emits:["update:modelValue","toggle-favorite"],setup(we,{emit:ke}){const f=we,J=ke,{t:l}=Ue(),ge=ze(),w=Ve(),B=n(!1),k=n(""),E=n([]),i=n(new Set),d=n(new Map),_=n(new Set),u=n(f.modelValue||""),L=n(!1),g=n(!1),R=n(0),W=n(0),h=n(null),b=n(!1),x=n("create"),C=n(""),O=n(!1);Te(()=>f.modelValue,a=>{u.value=a||""});function P(a){const e=String(a||"").trim();u.value=e,J("update:modelValue",e||null)}async function Z(a=""){try{return await z(`/api/hermes/workspace/folders${a?`?path=${encodeURIComponent(a)}`:""}`)}catch{return null}}function Q(a){const e=a.replace(/\//g,"\\"),t=e.match(/^([a-zA-Z]:)\\?$/);if(t)return`${t[1].toUpperCase()}\\`;const p=e.match(/^([a-zA-Z]:)\\(.+)$/);if(p){const F=e.replace(/\\+$/,""),V=F.lastIndexOf("\\");return V<=2?`${p[1].toUpperCase()}\\`:F.slice(0,V)}const y=a.split("/").filter(Boolean);return y.pop(),y.join("/")}async function N(a=""){const e=await Z(a);if(!e){L.value=!0;return}if(L.value=!1,!a){k.value=e.base,E.value=e.folders;return}d.value.set(a,e.folders),d.value=new Map(d.value)}Je(async()=>{B.value=!0,await N(),B.value=!1});async function Y(a){if(i.value.has(a.path)){i.value.delete(a.path),i.value=new Set(i.value);return}if(i.value.add(a.path),i.value=new Set(i.value),!d.value.has(a.path)){_.value.add(a.path),_.value=new Set(_.value);const e=await Z(a.path);d.value.set(a.path,e?.folders||[]),d.value=new Map(d.value),_.value.delete(a.path),_.value=new Set(_.value)}}function j(a){P(a.fullPath)}function A(){P(k.value)}async function be(a){if(!a){A();return}j(a),i.value.has(a.path)||await Y(a)}function X(a,e){a.preventDefault(),a.stopPropagation(),h.value=e,R.value=a.clientX,W.value=a.clientY,g.value=!1,De(()=>{g.value=!0})}const xe=ae(()=>{const a=[{label:l("files.open"),key:"open"},{type:"divider",key:"d1"},{label:l("files.copyPath"),key:"copyPath"},{label:l("files.newFolder"),key:"newFolder"}];return h.value&&(h.value.readonly||(a.push({label:l("files.rename"),key:"rename"}),a.push({type:"divider",key:"d2"}),a.push({label:l("files.delete"),key:"delete"}))),a});function Ce(){g.value=!1}function q(a){x.value=a,C.value=a==="rename"&&h.value?.name||"",b.value=!0}async function Pe(a){g.value=!1;const e=h.value;switch(a){case"open":await be(e);break;case"copyPath":{const t=await Qe(e?.fullPath||k.value);w[t?"success":"error"](t?l("files.pathCopied"):`${l("files.pathCopied")} ✗`);break}case"newFolder":q("create");break;case"rename":e&&q("rename");break;case"delete":if(!e)return;ge.warning({title:l("files.delete"),content:l("files.confirmDeleteDir",{name:e.name}),positiveText:l("common.delete"),negativeText:l("common.cancel"),onPositiveClick:async()=>{try{await z("/api/hermes/workspace/folders",{method:"DELETE",body:JSON.stringify({path:e.path})}),(u.value===e.fullPath||u.value.startsWith(`${e.fullPath}/`))&&P(null),i.value.delete(e.path),i.value=new Set(i.value),d.value.delete(e.path),d.value=new Map(d.value),await N(Q(e.path)),w.success(l("files.deleted"))}catch{w.error(l("files.deleteFailed"))}}});break}}async function Fe(){const a=C.value.trim();if(a){O.value=!0;try{if(x.value==="create"){const e=h.value?.path||"";await z("/api/hermes/workspace/folders",{method:"POST",body:JSON.stringify({parentPath:e,name:a})}),e&&(i.value.add(e),i.value=new Set(i.value)),await N(e),w.success(l("files.created"))}else if(h.value){const e=h.value;await z("/api/hermes/workspace/folders/rename",{method:"POST",body:JSON.stringify({path:e.path,name:a})}),await N(Q(e.path)),(u.value===e.fullPath||u.value.startsWith(`${e.fullPath}/`))&&P(null),w.success(l("files.renamed"))}b.value=!1}catch{w.error(x.value==="rename"?l("files.renameFailed"):l("files.createFailed"))}finally{O.value=!1}}}const G=ae(()=>{const a=[];function e(t,p){for(const y of t){const F=i.value.has(y.path),V=_.value.has(y.path),S=d.value.get(y.path);a.push({folder:y,depth:p,isExpanded:F,isLoading:V,hasChildren:S?S.length>0:null}),F&&S&&S.length>0&&e(S,p+1)}}return e(E.value,0),a});return(a,e)=>(o(),r("div",se,[m(s(te),{value:u.value,placeholder:s(l)("chat.workspacePlaceholder"),clearable:"",size:"small",class:"folder-path-input","onUpdate:value":P},null,8,["value","placeholder"]),B.value?(o(),r("div",ne,[m(s(We),{size:"small"})])):(o(),r("div",ie,[k.value?(o(),r("div",{key:0,class:I(["folder-item root",{selected:u.value===k.value}]),onClick:A,onContextmenu:e[0]||(e[0]=t=>X(t,null))},[e[5]||(e[5]=v("span",{class:"folder-icon"},"📂",-1)),v("span",oe,c(k.value||"/"),1)],34)):T("",!0),(o(!0),r($,null,K(G.value,t=>(o(),r("div",{key:t.folder.path,class:I(["folder-item",{selected:u.value===t.folder.fullPath}]),style:le({paddingLeft:`${12+t.depth*16}px`}),onClick:p=>j(t.folder),onContextmenu:p=>X(p,t.folder)},[v("span",{class:"folder-expand",onClick:H(p=>Y(t.folder),["stop"])},[t.isLoading?(o(),r($,{key:0},[D("⏳")],64)):(o(),r($,{key:1},[D(c(t.isExpanded?"▼":"▶"),1)],64))],8,ue),e[6]||(e[6]=v("span",{class:"folder-icon"},"📁",-1)),v("span",de,c(t.folder.name),1)],46,re))),128)),(o(!0),r($,null,K(G.value,t=>(o(),r($,{key:"empty-"+t.folder.path},[t.isExpanded&&!t.isLoading&&t.hasChildren===!1?(o(),r("div",{key:0,class:"folder-item empty",style:le({paddingLeft:`${28+t.depth*16}px`})},[v("span",ce,c(s(l)("chat.folderPickerEmpty")),1)],4)):T("",!0)],64))),128)),(E.value.length===0||L.value)&&!B.value?(o(),r("div",pe,c(s(l)("chat.folderPickerNoFolders")),1)):T("",!0)])),u.value?(o(),r("div",ve,[v("span",fe,c(s(l)("chat.folderPickerSelected")),1),v("span",{class:"folder-selected-path",title:u.value},c(u.value),9,he),f.showFavorite?(o(),r("button",{key:0,class:"folder-selected-favorite",type:"button",disabled:f.favoriteDisabled,title:f.favoriteTitle,"aria-label":f.favoriteTitle,onClick:e[1]||(e[1]=H(t=>J("toggle-favorite"),["stop"]))},[v("span",{class:I(["folder-selected-star",{"is-pinned":f.favorite}])},c(f.favorite?"★":"☆"),3)],8,me)):T("",!0)])):T("",!0),m(s(Re),{show:g.value,x:R.value,y:W.value,options:xe.value,placement:"bottom-start",trigger:"manual",onSelect:Pe,onClickoutside:Ce},null,8,["show","x","y","options"]),m(s(Ee),{show:b.value,"onUpdate:show":e[4]||(e[4]=t=>b.value=t),preset:"dialog",title:x.value==="rename"?s(l)("files.rename"):s(l)("files.newFolder"),style:{width:"400px"}},{action:M(()=>[m(s(Ie),{justify:"end"},{default:M(()=>[m(s(ee),{size:"small",onClick:e[3]||(e[3]=t=>b.value=!1)},{default:M(()=>[D(c(s(l)("common.cancel")),1)]),_:1}),m(s(ee),{size:"small",type:"primary",loading:O.value,disabled:!C.value.trim(),onClick:Fe},{default:M(()=>[D(c(s(l)("common.confirm")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:M(()=>[m(s(te),{value:C.value,"onUpdate:value":e[2]||(e[2]=t=>C.value=t),placeholder:x.value==="rename"?s(l)("files.renameTo"):s(l)("files.newFolderName")},null,8,["value","placeholder"])]),_:1},8,["show","title"])]))}})})),Ye=U((()=>{})),je,ra=U((()=>{_e(),_e(),Ye(),Le(),je=Oe(ye,[["__scopeId","data-v-a9cebc7d"]])}));export{ra as n,je as t};
1
+ import{Ci as o,Cr as Se,E as Me,Fr as z,Gi as n,Hr as $e,Jr as H,Mi as Te,Nr as Be,Pi as M,Qi as s,Qr as v,Ti as K,Ut as ee,Yr as $,Zr as ae,Zt as te,aa as U,ai as D,ci as Ne,ct as Ve,ea as I,ei as T,ft as ze,gi as De,lt as Ee,n as Le,na as le,oi as m,ra as c,t as Oe,ti as r,tt as Ie,wr as Ue,xi as Je,yt as Re,z as We}from"./index-RJQqJC6n.js";import{n as Ze,t as Qe}from"./clipboard-DYlTCW_e.js";var se,ne,ie,oe,re,ue,de,ce,pe,ve,fe,he,me,ye,_e=U((()=>{$e(),Me(),Se(),Be(),Ze(),se={class:"folder-picker"},ne={key:0,class:"folder-picker-loading"},ie={key:1,class:"folder-tree"},oe={class:"folder-name"},re=["onClick","onContextmenu"],ue=["onClick"],de={class:"folder-name"},ce={class:"folder-empty-text"},pe={key:1,class:"folder-empty"},ve={key:2,class:"folder-selected"},fe={class:"folder-selected-label"},he=["title"],me=["disabled","title","aria-label"],ye=Ne({__name:"FolderPicker",props:{modelValue:{},showFavorite:{type:Boolean},favorite:{type:Boolean},favoriteDisabled:{type:Boolean},favoriteTitle:{}},emits:["update:modelValue","toggle-favorite"],setup(we,{emit:ke}){const f=we,J=ke,{t:l}=Ue(),ge=ze(),w=Ve(),B=n(!1),k=n(""),E=n([]),i=n(new Set),d=n(new Map),_=n(new Set),u=n(f.modelValue||""),L=n(!1),g=n(!1),R=n(0),W=n(0),h=n(null),b=n(!1),x=n("create"),C=n(""),O=n(!1);Te(()=>f.modelValue,a=>{u.value=a||""});function P(a){const e=String(a||"").trim();u.value=e,J("update:modelValue",e||null)}async function Z(a=""){try{return await z(`/api/hermes/workspace/folders${a?`?path=${encodeURIComponent(a)}`:""}`)}catch{return null}}function Q(a){const e=a.replace(/\//g,"\\"),t=e.match(/^([a-zA-Z]:)\\?$/);if(t)return`${t[1].toUpperCase()}\\`;const p=e.match(/^([a-zA-Z]:)\\(.+)$/);if(p){const F=e.replace(/\\+$/,""),V=F.lastIndexOf("\\");return V<=2?`${p[1].toUpperCase()}\\`:F.slice(0,V)}const y=a.split("/").filter(Boolean);return y.pop(),y.join("/")}async function N(a=""){const e=await Z(a);if(!e){L.value=!0;return}if(L.value=!1,!a){k.value=e.base,E.value=e.folders;return}d.value.set(a,e.folders),d.value=new Map(d.value)}Je(async()=>{B.value=!0,await N(),B.value=!1});async function Y(a){if(i.value.has(a.path)){i.value.delete(a.path),i.value=new Set(i.value);return}if(i.value.add(a.path),i.value=new Set(i.value),!d.value.has(a.path)){_.value.add(a.path),_.value=new Set(_.value);const e=await Z(a.path);d.value.set(a.path,e?.folders||[]),d.value=new Map(d.value),_.value.delete(a.path),_.value=new Set(_.value)}}function j(a){P(a.fullPath)}function A(){P(k.value)}async function be(a){if(!a){A();return}j(a),i.value.has(a.path)||await Y(a)}function X(a,e){a.preventDefault(),a.stopPropagation(),h.value=e,R.value=a.clientX,W.value=a.clientY,g.value=!1,De(()=>{g.value=!0})}const xe=ae(()=>{const a=[{label:l("files.open"),key:"open"},{type:"divider",key:"d1"},{label:l("files.copyPath"),key:"copyPath"},{label:l("files.newFolder"),key:"newFolder"}];return h.value&&(h.value.readonly||(a.push({label:l("files.rename"),key:"rename"}),a.push({type:"divider",key:"d2"}),a.push({label:l("files.delete"),key:"delete"}))),a});function Ce(){g.value=!1}function q(a){x.value=a,C.value=a==="rename"&&h.value?.name||"",b.value=!0}async function Pe(a){g.value=!1;const e=h.value;switch(a){case"open":await be(e);break;case"copyPath":{const t=await Qe(e?.fullPath||k.value);w[t?"success":"error"](t?l("files.pathCopied"):`${l("files.pathCopied")} ✗`);break}case"newFolder":q("create");break;case"rename":e&&q("rename");break;case"delete":if(!e)return;ge.warning({title:l("files.delete"),content:l("files.confirmDeleteDir",{name:e.name}),positiveText:l("common.delete"),negativeText:l("common.cancel"),onPositiveClick:async()=>{try{await z("/api/hermes/workspace/folders",{method:"DELETE",body:JSON.stringify({path:e.path})}),(u.value===e.fullPath||u.value.startsWith(`${e.fullPath}/`))&&P(null),i.value.delete(e.path),i.value=new Set(i.value),d.value.delete(e.path),d.value=new Map(d.value),await N(Q(e.path)),w.success(l("files.deleted"))}catch{w.error(l("files.deleteFailed"))}}});break}}async function Fe(){const a=C.value.trim();if(a){O.value=!0;try{if(x.value==="create"){const e=h.value?.path||"";await z("/api/hermes/workspace/folders",{method:"POST",body:JSON.stringify({parentPath:e,name:a})}),e&&(i.value.add(e),i.value=new Set(i.value)),await N(e),w.success(l("files.created"))}else if(h.value){const e=h.value;await z("/api/hermes/workspace/folders/rename",{method:"POST",body:JSON.stringify({path:e.path,name:a})}),await N(Q(e.path)),(u.value===e.fullPath||u.value.startsWith(`${e.fullPath}/`))&&P(null),w.success(l("files.renamed"))}b.value=!1}catch{w.error(x.value==="rename"?l("files.renameFailed"):l("files.createFailed"))}finally{O.value=!1}}}const G=ae(()=>{const a=[];function e(t,p){for(const y of t){const F=i.value.has(y.path),V=_.value.has(y.path),S=d.value.get(y.path);a.push({folder:y,depth:p,isExpanded:F,isLoading:V,hasChildren:S?S.length>0:null}),F&&S&&S.length>0&&e(S,p+1)}}return e(E.value,0),a});return(a,e)=>(o(),r("div",se,[m(s(te),{value:u.value,placeholder:s(l)("chat.workspacePlaceholder"),clearable:"",size:"small",class:"folder-path-input","onUpdate:value":P},null,8,["value","placeholder"]),B.value?(o(),r("div",ne,[m(s(We),{size:"small"})])):(o(),r("div",ie,[k.value?(o(),r("div",{key:0,class:I(["folder-item root",{selected:u.value===k.value}]),onClick:A,onContextmenu:e[0]||(e[0]=t=>X(t,null))},[e[5]||(e[5]=v("span",{class:"folder-icon"},"📂",-1)),v("span",oe,c(k.value||"/"),1)],34)):T("",!0),(o(!0),r($,null,K(G.value,t=>(o(),r("div",{key:t.folder.path,class:I(["folder-item",{selected:u.value===t.folder.fullPath}]),style:le({paddingLeft:`${12+t.depth*16}px`}),onClick:p=>j(t.folder),onContextmenu:p=>X(p,t.folder)},[v("span",{class:"folder-expand",onClick:H(p=>Y(t.folder),["stop"])},[t.isLoading?(o(),r($,{key:0},[D("⏳")],64)):(o(),r($,{key:1},[D(c(t.isExpanded?"▼":"▶"),1)],64))],8,ue),e[6]||(e[6]=v("span",{class:"folder-icon"},"📁",-1)),v("span",de,c(t.folder.name),1)],46,re))),128)),(o(!0),r($,null,K(G.value,t=>(o(),r($,{key:"empty-"+t.folder.path},[t.isExpanded&&!t.isLoading&&t.hasChildren===!1?(o(),r("div",{key:0,class:"folder-item empty",style:le({paddingLeft:`${28+t.depth*16}px`})},[v("span",ce,c(s(l)("chat.folderPickerEmpty")),1)],4)):T("",!0)],64))),128)),(E.value.length===0||L.value)&&!B.value?(o(),r("div",pe,c(s(l)("chat.folderPickerNoFolders")),1)):T("",!0)])),u.value?(o(),r("div",ve,[v("span",fe,c(s(l)("chat.folderPickerSelected")),1),v("span",{class:"folder-selected-path",title:u.value},c(u.value),9,he),f.showFavorite?(o(),r("button",{key:0,class:"folder-selected-favorite",type:"button",disabled:f.favoriteDisabled,title:f.favoriteTitle,"aria-label":f.favoriteTitle,onClick:e[1]||(e[1]=H(t=>J("toggle-favorite"),["stop"]))},[v("span",{class:I(["folder-selected-star",{"is-pinned":f.favorite}])},c(f.favorite?"★":"☆"),3)],8,me)):T("",!0)])):T("",!0),m(s(Re),{show:g.value,x:R.value,y:W.value,options:xe.value,placement:"bottom-start",trigger:"manual",onSelect:Pe,onClickoutside:Ce},null,8,["show","x","y","options"]),m(s(Ee),{show:b.value,"onUpdate:show":e[4]||(e[4]=t=>b.value=t),preset:"dialog",title:x.value==="rename"?s(l)("files.rename"):s(l)("files.newFolder"),style:{width:"400px"}},{action:M(()=>[m(s(Ie),{justify:"end"},{default:M(()=>[m(s(ee),{size:"small",onClick:e[3]||(e[3]=t=>b.value=!1)},{default:M(()=>[D(c(s(l)("common.cancel")),1)]),_:1}),m(s(ee),{size:"small",type:"primary",loading:O.value,disabled:!C.value.trim(),onClick:Fe},{default:M(()=>[D(c(s(l)("common.confirm")),1)]),_:1},8,["loading","disabled"])]),_:1})]),default:M(()=>[m(s(te),{value:C.value,"onUpdate:value":e[2]||(e[2]=t=>C.value=t),placeholder:x.value==="rename"?s(l)("files.renameTo"):s(l)("files.newFolderName")},null,8,["value","placeholder"])]),_:1},8,["show","title"])]))}})})),Ye=U((()=>{})),je,ra=U((()=>{_e(),_e(),Ye(),Le(),je=Oe(ye,[["__scopeId","data-v-a9cebc7d"]])}));export{ra as n,je as t};
@@ -1 +1 @@
1
- import{Ci as g,Hr as v,Lr as S,Mi as w,Rr as b,Si as h,Zr as r,aa as s,ci as y,n as A,o as P,oi as M,s as V,t as x,ti as G,xi as R,zr as C}from"./index-B41wzfl2.js";import{r as k,t as B}from"./profiles-DDKFPE0r.js";import{n as F,r as I}from"./chat-DASgRGiI.js";import{n as L,t as q}from"./settings-DM3CNjqC.js";import{n as z,t as E}from"./ChatPanel-YZZNE2mg.js";var l,u,_=s((()=>{v(),S(),z(),P(),F(),B(),q(),l={class:"global-agent-view"},u=y({__name:"GlobalAgentView",setup(Z){const p=V(),t=I(),c=k(),d=L(),i=b(),f=C(),a=r(()=>{const e=i.params.sessionId;return typeof e=="string"&&e.trim()?e:null}),m=r(()=>{const e=i.query.profile;return typeof e=="string"&&e.trim()?e:null});async function o(){await t.loadSessions(t.sessionProfileFilter,a.value),a.value&&t.activeSessionId!==a.value&&await f.replace({name:"hermes.globalAgent"})}return R(async()=>{t.setRuntimeMode("global_agent"),p.loadModels(),await Promise.all([c.fetchProfiles(),d.fetchSettings()]),await o()}),h(()=>{t.setRuntimeMode("default")}),w([a,m],async([e])=>{if(!(t.runtimeMode!=="global_agent"||!t.sessionsLoaded)){if(!e){await t.loadSessions(t.sessionProfileFilter);return}if(t.activeSessionId!==e){if(!t.sessions.some(n=>n.id===e)){await o();return}await t.switchSession(e)}}}),(e,n)=>(g(),G("div",l,[M(E)]))}})})),H=s((()=>{})),N,U=s((()=>{_(),_(),H(),A(),N=x(u,[["__scopeId","data-v-ba1ede1a"]])}));U();export{N as default};
1
+ import{Ci as g,Hr as v,Lr as S,Mi as w,Rr as b,Si as h,Zr as r,aa as s,ci as y,n as A,o as P,oi as M,s as V,t as x,ti as G,xi as R,zr as C}from"./index-RJQqJC6n.js";import{r as k,t as B}from"./profiles-BtECgqqD.js";import{n as F,r as I}from"./chat-BHkNRr2D.js";import{n as L,t as q}from"./settings-Bzod_9RQ.js";import{n as z,t as E}from"./ChatPanel-BjHQvYcw.js";var l,u,_=s((()=>{v(),S(),z(),P(),F(),B(),q(),l={class:"global-agent-view"},u=y({__name:"GlobalAgentView",setup(Z){const p=V(),t=I(),c=k(),d=L(),i=b(),f=C(),a=r(()=>{const e=i.params.sessionId;return typeof e=="string"&&e.trim()?e:null}),m=r(()=>{const e=i.query.profile;return typeof e=="string"&&e.trim()?e:null});async function o(){await t.loadSessions(t.sessionProfileFilter,a.value),a.value&&t.activeSessionId!==a.value&&await f.replace({name:"hermes.globalAgent"})}return R(async()=>{t.setRuntimeMode("global_agent"),p.loadModels(),await Promise.all([c.fetchProfiles(),d.fetchSettings()]),await o()}),h(()=>{t.setRuntimeMode("default")}),w([a,m],async([e])=>{if(!(t.runtimeMode!=="global_agent"||!t.sessionsLoaded)){if(!e){await t.loadSessions(t.sessionProfileFilter);return}if(t.activeSessionId!==e){if(!t.sessions.some(n=>n.id===e)){await o();return}await t.switchSession(e)}}}),(e,n)=>(g(),G("div",l,[M(E)]))}})})),H=s((()=>{})),N,U=s((()=>{_(),_(),H(),A(),N=x(u,[["__scopeId","data-v-ba1ede1a"]])}));U();export{N as default};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/js/MarkdownRenderer-RUGb4sbQ.js","assets/js/index-B41wzfl2.js","assets/css/index-CsQvhMiS.css","assets/js/highlight-Dj4_XEnA.js","assets/js/clipboard-DbIDy3AT.js","assets/js/download-D8EaUX1d.js","assets/css/MarkdownRenderer-riGsdEYy.css"])))=>i.map(i=>d[i]);
2
- import{$r as Se,Br as js,Ci as g,Cr as ut,Ct as Tt,E as ft,Er as Ws,Fi as Js,Fr as de,Ft as Ks,Gi as b,Gr as Ys,Hr as et,Jr as qe,Lr as ms,Lt as qs,Mi as tt,Nr as bt,Or as Xs,Pi as P,Qi as a,Qr as e,Rr as Zs,Si as xt,Ti as je,Tr as Qs,Ur as fs,Ut as Y,Vr as er,Xr as Rt,Y as at,Yr as Ue,Zr as M,Zt as We,aa as Z,ai as W,ci as Qe,ct as gs,di as At,ea as re,ei as R,gi as Ze,jr as hs,jt as tr,kr as _s,lt as ar,n as nt,na as it,oi as $,q as Pt,qr as mt,ra as f,rn as or,si as nr,t as st,ti as k,tt as lt,wr as ct,xi as ot,yi as sr,yt as ys,zr as ks}from"./index-B41wzfl2.js";import{o as rr,u as lr}from"./auth-DAz8TLhP.js";import{a as ir,i as ur,n as cr,o as dr,r as vr,t as ht}from"./highlight-Dj4_XEnA.js";import{n as pr,t as mr}from"./clipboard-DbIDy3AT.js";import{a as ws,r as Cs}from"./download-D8EaUX1d.js";import{n as fr,t as gr}from"./esm-BnjT8clq.js";import{r as bs,t as xs}from"./profiles-DDKFPE0r.js";import{n as Ss,t as Is}from"./settings-DM3CNjqC.js";import{a as hr,n as _r,o as yr,r as kr,t as wr}from"./http-error-DN0Q0NIV.js";import{n as Ms,t as Xe}from"./ProfileAvatar-CeGhJamd.js";import{n as $s,t as Ts}from"./FolderPicker-DYQaj8Cc.js";import{a as Rs,i as Cr,n as br,o as As,r as xr,t as Sr}from"./chat-timestamp-B4kSmeEg.js";import{a as Ir,d as Mr,f as $r,i as Tr,n as Rr,r as Ar,t as Pr}from"./ttsHelpers-DpzPhrib.js";import{n as Nr,r as Nt,t as Dt}from"./chat-input-height-xMpE0zfj.js";import{i as Dr,n as Br,r as Lr,t as Er}from"./SettingsCircuitBadge-DmwONg4K.js";function Ur(p){if(fe?.connected)return fe;const o=_s(),r=p?.userId||localStorage.getItem("gc_user_id")||Ps();return p?.userId||localStorage.setItem("gc_user_id",r),fe=fr("/group-chat",{auth:{token:o||void 0,userId:r,name:p?.userName||localStorage.getItem("gc_user_name")||void 0,description:p?.description||localStorage.getItem("gc_user_description")||void 0,authUserId:p?.authUserId},transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:3e4,randomizationFactor:.5,timeout:3e4}),fe}function Fr(){let p=localStorage.getItem("gc_user_id");return p||(p=Ps(),localStorage.setItem("gc_user_id",p)),p}function Or(){return localStorage.getItem("gc_user_name")}function Ps(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,p=>{const o=Math.random()*16|0;return(p==="x"?o:o&3|8).toString(16)})}function Ge(p={}){return fe&&(p.requireConnected===!1||fe.connected)?fe:null}function zr(){fe&&(fe.disconnect(),fe=null)}async function Hr(p){return de("/api/hermes/group-chat/rooms",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)})}async function Gr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/clone`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o||{})})}async function Vr(){return de("/api/hermes/group-chat/rooms")}async function _t(p,o={}){const r=new URLSearchParams;o.offset!=null&&r.set("offset",String(o.offset)),o.limit!=null&&r.set("limit",String(o.limit));const n=r.toString();return de(`/api/hermes/group-chat/rooms/${p}${n?`?${n}`:""}`)}async function jr(p){return de(`/api/hermes/group-chat/rooms/join/${p}`)}async function Wr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}async function Jr(p){return de(`/api/hermes/group-chat/rooms/${p}/agents`)}async function Kr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/agents/${o}`,{method:"DELETE"})}async function Yr(p){return de(`/api/hermes/group-chat/rooms/${p}`,{method:"DELETE"})}async function qr(p){return de(`/api/hermes/group-chat/rooms/${p}/clear-context`,{method:"POST"})}async function Xr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}async function Zr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/workspace`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:o})})}async function Qr(p){return de(`/api/hermes/group-chat/rooms/${p}/compress`,{method:"POST"})}var fe,Ns=Z((()=>{gr(),bt(),fe=null}));async function el(p){const o=new FormData;for(const I of p)I.file&&o.append("file",I.file,I.name);const r=_s(),n=Xs(),l={};r&&(l.Authorization=`Bearer ${r}`),n&&(l["X-Hermes-Profile"]=n);const x=await fetch("/upload",{method:"POST",body:o,headers:l});if(!x.ok)throw new Error(await _r(x,"Upload failed"));return(await x.json()).files}function tl(p,o,r){const n=[];p.trim()&&n.push({type:"text",text:p.trim()});for(let l=0;l<r.length;l+=1){const x=r[l],I=o[l];I?.type.startsWith("image/")?n.push({type:"image",name:x.name,path:x.path,media_type:I.type}):n.push({type:"file",name:x.name,path:x.path,media_type:I?.type})}return n}function al(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function ol(p){return/^[a-zA-Z]:\\/.test(p)?p.replace(/\\/g,"/"):p}function Fe(p){return!!p?.trim()}function nl(p){return`auth:${p}`}function yt(){return Or()?.trim()||""}function sl(p){return!!p.tool_calls?.length}function kt(p){return p.role==="assistant"&&!Fe(p.content)&&Fe(p.reasoning)&&!sl(p)}function Bt(p,o){return{...o,content:Fe(o.content)?o.content:p?.content||o.content||"",reasoning:Fe(o.reasoning)?o.reasoning:p?.reasoning??o.reasoning??null,reasoning_content:Fe(o.reasoning_content)?o.reasoning_content:p?.reasoning_content??o.reasoning_content??null,isStreaming:!1,firstSeenAt:p?.firstSeenAt??o.firstSeenAt,attachments:p?.attachments||o.attachments}}function St(p){return p!=null&&p!==""}function Lt(p){return St(p)?p:void 0}function pt(p){if(!St(p))return"";if(typeof p=="string")return p;try{const o=JSON.stringify(p);if(o!==void 0)return o}catch{}return String(p)}function rl(p){const o=pt(p);if(o)try{const r=JSON.parse(o);return r?.kind==="workspace_diff"?r:p}catch{return p}}function ll(p){const o=new Map,r=new Map;for(const l of p)if(l.role==="assistant"&&l.tool_calls?.length)for(const x of l.tool_calls)x?.id&&(x.function?.name&&o.set(x.id,x.function.name),St(x.function?.arguments)&&r.set(x.id,x.function.arguments));const n=[];for(const l of p)if(!(l.role!=="tool"&&!l.tool_calls?.length&&!pt(l.content).trim()&&!l.reasoning?.trim()&&(!l.isStreaming||l.finish_reason==="streaming"))){if(l.role==="assistant"&&l.tool_calls?.length&&!pt(l.content).trim()){for(const x of l.tool_calls)n.push({...l,id:`${l.id}_${x.id}`,role:"tool",content:"",toolName:x.function?.name||void 0,toolCallId:x.id,toolArgs:Lt(x.function?.arguments),toolStatus:"running"});continue}if(l.role==="tool"){const x=l.tool_call_id||"",I=l.tool_name||o.get(x)||void 0,w=r.has(x)?r.get(x):void 0;let B="";const N=I==="workspace_diff"?rl(l.content):Lt(l.content),L=pt(l.content);if(L)try{const A=typeof l.content=="string"?JSON.parse(L):l.content;B=A?.url||A?.title||A?.preview||A?.summary||""}catch{B=L.slice(0,80)}const E=n.findIndex(A=>A.role==="tool"&&A.toolCallId===x&&!A.toolResult),U={...l,id:E!==-1?n[E].id:l.id,senderId:E!==-1?n[E].senderId:l.senderId,senderName:E!==-1?n[E].senderName:l.senderName,timestamp:E!==-1?n[E].timestamp:l.timestamp,role:"tool",content:"",toolName:I||(E!==-1?n[E].toolName:void 0),toolCallId:x||void 0,toolArgs:w!==void 0?w:E!==-1?n[E].toolArgs:void 0,toolPreview:typeof B=="string"&&B.slice(0,100)||void 0,toolResult:N,toolStatus:"done"};E!==-1?n[E]=U:n.push(U);continue}n.push(l)}return n}var Et,il,ul,dt,gt=Z((()=>{er(),et(),bt(),lr(),ws(),wr(),Ns(),Et=300,il=150,ul=600,dt=js("groupChat",()=>{const p=b(!1),o=b(null),r=b([]),n=b([]),l=b([]),x=b([]),I=b(""),w=b(!1),B=b(null),N=b(new Map),L=b(new Map),E=b(!1),U=b(new Map),A=b(0),F=b(0),S=b(!1),D=b(!1),q=M(()=>S.value&&F.value>=600),ue=b("");function le(){A.value=0,F.value=0,S.value=!1,D.value=!1}function ce(c){F.value=c.messages.length,A.value=c.total??c.messages.length,S.value=c.hasMore??F.value<A.value}function ie(c){E.value=c}function Pe(c,h){window.dispatchEvent(new CustomEvent("auto-play-speech",{detail:{messageId:c,content:h}}))}async function ae(c,h){if(o.value!==c)return;const y=n.value.findIndex(u=>u.id===h);if(!(y<0||!kt(n.value[y])))try{const u=(await _t(c)).messages.find(d=>d.id===h);if(!u||!Fe(u.content))return;const t=n.value.findIndex(d=>d.id===h);if(t<0||!kt(n.value[t]))return;n.value[t]=Bt(n.value[t],u),n.value=[...n.value]}catch{}}function Ie(c,h){setTimeout(()=>{ae(c,h)},Et)}const ge=M(()=>{for(const[,c]of L.value)return c;return null}),Ne=M(()=>{if(!o.value)return null;for(const c of U.value.values())if(c.roomId===o.value)return c;return null}),oe=b(Fr()),Q=b(yt()||hs()||"");function ee(c){if(!c)return;const h=r.value.findIndex(y=>y.id===c.id);h>=0?r.value[h]=c:r.value.push(c)}function J(c,h={}){l.value=c.members||[],c.agents&&(x.value=c.agents),c.roomName&&(I.value=c.roomName);const y=l.value.find(u=>u.userId===oe.value);if(y?.name&&(Q.value=y.name),y?.avatar&&(ue.value=y.avatar),h.syncMessages&&Array.isArray(c.messages)){const u=new Map(n.value.map(t=>[t.id,t]));for(const t of c.messages){const d=u.get(t.id);u.set(t.id,d?{...d,...t}:t)}n.value=Array.from(u.values()).sort((t,d)=>t.timestamp-d.timestamp),typeof c.total=="number"||typeof c.hasMore=="boolean"?ce(c):(F.value=Math.max(F.value,n.value.length),A.value=Math.max(A.value,F.value))}for(const u of N.value.values())clearTimeout(u.timer);if(N.value.clear(),c.typingUsers)for(const u of c.typingUsers){const t=setTimeout(()=>N.value.delete(u.userId),5e3);N.value.set(u.userId,{name:u.userName,timer:t})}c.contextStatuses?L.value=new Map(c.contextStatuses.map(u=>[u.agentName,u])):L.value.clear()}async function he(c){c.connected||await new Promise((h,y)=>{let u=!1,t=null;const d=()=>{t&&clearTimeout(t),c.off?.("connect",i),c.off?.("connect_error",m)},T=C=>{u||(u=!0,d(),C())},i=()=>T(h),m=C=>T(()=>y(C));t=setTimeout(()=>T(()=>y(new Error("Group chat socket connection timed out"))),3e4),c.once("connect",i),c.once("connect_error",m)})}async function te(){let c=Ge();if(c)return c;if(await X(),c=Ge({requireConnected:!1}),!c)throw new Error("Group chat socket not connected");await he(c);const h=Ge();if(!h)throw new Error("Group chat socket not connected");return h}async function H(c,h={}){const y=await te(),u=yt();await new Promise(t=>{y.emit("join",{roomId:c,inviteCode:h.inviteCode,name:u||void 0,description:localStorage.getItem("gc_user_description")||void 0},d=>{if(o.value!==c){t();return}d?.error?B.value=d.error:J(d,h),t()})})}const j=M(()=>ll([...n.value].sort((c,h)=>(c.firstSeenAt??c.timestamp)-(h.firstSeenAt??h.timestamp)))),ne=M(()=>l.value.map(c=>c.name)),se=M(()=>Array.from(N.value.values()).map(c=>c.name)),V=M(()=>{const c=se.value;return c.length===0?"":c.length===1?`${c[0]} is typing...`:c.length===2?`${c[0]} and ${c[1]} are typing...`:`${c[0]} and ${c.length-1} others are typing...`});async function X(){let c;const h=yt();try{const u=await rr();c=u.id,oe.value=nl(u.id),h||(Q.value=u.username),ue.value=u.avatar||""}catch{}const y=Ur({userId:oe.value,userName:h||void 0,authUserId:c});console.log("[GroupChat] connecting...",{userId:oe.value,userName:Q.value}),y.on("connect",()=>{console.log("[GroupChat] connected, socket id:",y.id),p.value=!0,B.value=null;const u=o.value;u&&H(u,{syncMessages:!0}).catch(t=>{B.value=t.message})}),y.on("disconnect",u=>{console.log("[GroupChat] disconnected:",u),p.value=!1}),y.on("connect_error",u=>{console.error("[GroupChat] connect_error:",u.message),B.value=u.message,p.value=!1}),y.on("message",u=>{if(u.roomId===o.value){const t=n.value.findIndex(T=>T.id===u.id),d=Bt(t>=0?n.value[t]:null,u);t>=0?(n.value[t]=d,n.value=[...n.value]):(n.value.push(d),F.value+=1,A.value=Math.max(A.value+1,F.value)),E.value&&d.role==="assistant"&&d.content?.trim()&&setTimeout(()=>Pe(d.id,d.content),300)}}),y.on("message_stream_start",u=>{if(u.roomId!==o.value)return;n.value=n.value.filter(d=>!(d.roomId===u.roomId&&d.senderId===u.senderId&&d.id!==u.id&&d.isStreaming&&!d.content?.trim()&&!d.reasoning?.trim()&&!d.tool_calls?.length)),u.isStreaming=!0,u.firstSeenAt=u.firstSeenAt??u.timestamp??Date.now();const t=n.value.findIndex(d=>d.id===u.id);if(t>=0){const d=n.value[t];if(!d.isStreaming)return;n.value[t]={...d,...u,content:Fe(u.content)?u.content:d.content||"",reasoning:Fe(u.reasoning)?u.reasoning:d.reasoning,reasoning_content:Fe(u.reasoning_content)?u.reasoning_content:d.reasoning_content,isStreaming:!0},n.value=[...n.value]}else n.value.push(u),F.value+=1,A.value=Math.max(A.value+1,F.value)}),y.on("message_stream_delta",u=>{if(u.roomId!==o.value)return;const t=n.value.findIndex(d=>d.id===u.id);t<0||!n.value[t].isStreaming||(n.value[t]={...n.value[t],content:n.value[t].content+u.delta},n.value=[...n.value])}),y.on("message_reasoning_delta",u=>{if(u.roomId!==o.value)return;const t=n.value.findIndex(d=>d.id===u.id);t<0||!n.value[t].isStreaming||(n.value[t]={...n.value[t],reasoning:(n.value[t].reasoning||"")+u.delta,reasoning_content:(n.value[t].reasoning_content||"")+u.delta,isStreaming:!0},n.value=[...n.value])}),y.on("message_stream_end",u=>{if(u.roomId!==o.value)return;const t=n.value.findIndex(d=>d.id===u.id);t>=0&&!n.value[t].content?.trim()&&!n.value[t].reasoning?.trim()&&!n.value[t].tool_calls?.length?n.value.splice(t,1):t>=0&&(n.value[t]={...n.value[t],isStreaming:!1},n.value=[...n.value],kt(n.value[t])&&Ie(u.roomId,u.id))}),y.on("member_joined",u=>{u.roomId===o.value&&(l.value=u.members)}),y.on("member_left",u=>{u.roomId===o.value&&(l.value=u.members)}),y.on("typing",u=>{if(u.roomId===o.value&&!N.value.has(u.userId)){const t=setTimeout(()=>N.value.delete(u.userId),5e3);N.value.set(u.userId,{name:u.userName,timer:t})}}),y.on("stop_typing",u=>{if(u.roomId===o.value&&N.value.has(u.userId)){const t=N.value.get(u.userId);clearTimeout(t.timer),N.value.delete(u.userId)}}),y.on("context_status",u=>{u.roomId===o.value&&(u.status==="ready"?(L.value.delete(u.agentName),n.value=n.value.map(t=>t.senderName===u.agentName&&t.isStreaming?{...t,isStreaming:!1}:t).filter(t=>!(t.senderName===u.agentName&&!t.content?.trim()&&!t.reasoning?.trim()&&!t.tool_calls?.length))):L.value.set(u.agentName,{agentName:u.agentName,status:u.status}),L.value=new Map(L.value))}),y.on("approval.requested",u=>{if(!u.approval_id)return;const t=u.description||"",d=t.trim().toLowerCase().replace(/\s+/g," "),T=!u.allow_permanent&&(d==="save to memory"||d.startsWith("save to memory:")||d.startsWith("save to memory?")),i=(Array.isArray(u.choices)?u.choices:["once","session","deny"]).filter(m=>m==="once"||m==="session"||m==="always"||m==="deny");U.value.set(u.approval_id,{roomId:u.roomId,agentName:u.agentName||"",approvalId:u.approval_id,command:u.command||"",description:t,choices:T?["once","deny"]:i.length?i:["once","session","deny"],allowPermanent:!!u.allow_permanent,isMemoryWrite:T,requestedAt:Date.now()}),U.value=new Map(U.value)}),y.on("approval.resolved",u=>{u.approval_id&&(U.value.delete(u.approval_id),U.value=new Map(U.value))}),y.on("room_updated",u=>{const t=r.value.find(d=>d.id===u.roomId);t&&(t.totalTokens=u.totalTokens)}),y.on("room_cleared",u=>{const t=r.value.find(d=>d.id===u.roomId);t&&(t.totalTokens=u.totalTokens),u.roomId===o.value&&(n.value=[],le(),N.value.clear(),L.value.clear(),U.value.clear())})}function Me(){zr(),p.value=!1,o.value=null,n.value=[],le(),l.value=[],x.value=[],I.value="",N.value.clear(),L.value.clear(),U.value.clear()}function _e(c,h){Q.value=c,localStorage.setItem("gc_user_name",c),localStorage.setItem("gc_user_description",h)}async function ve(c){w.value=!0,B.value=null;try{const h=await _t(c);ee(h.room),o.value=h.room.id,I.value=h.room.name,n.value=h.messages,ce(h),x.value=h.agents,l.value=h.members||[]}catch(h){throw B.value=h.message,h}finally{w.value=!1}await H(c)}async function ye(){const c=o.value;if(!c||D.value||!S.value)return!1;const h=F.value;if(h>=600)return!1;D.value=!0;try{const y=await _t(c,{offset:h,limit:Math.min(150,600-h)}),u=new Set(n.value.map(d=>d.id)),t=y.messages.filter(d=>!u.has(d.id));return n.value=[...t,...n.value],F.value=h+y.messages.length,A.value=y.total??A.value,S.value=y.hasMore??F.value<A.value,t.length>0}catch(y){return B.value=y.message,!1}finally{D.value=!1}}async function De(c,h){const y=Ge();if(!y||!o.value)return;be();const u=al();let t=c.trim();if(h?.length){const d=await el(h);t=tl(c,h,d);const T=new Map(d.map(i=>[i.name,Cs(ol(i.path),i.name)]));n.value.push({id:u,roomId:o.value,senderId:oe.value,senderName:Q.value||"You",content:JSON.stringify(t),timestamp:Date.now(),role:"user",attachments:h.map(i=>({...i,url:T.get(i.name)||i.url,file:void 0}))}),F.value+=1,A.value=Math.max(A.value+1,F.value)}return new Promise((d,T)=>{y.emit("message",{roomId:o.value,id:u,content:t},i=>{if(i.error){n.value=n.value.filter(m=>m.id!==u),T(new Error(i.error));return}d()})})}async function $e(){try{r.value=(await Vr()).rooms}catch(c){B.value=c.message}}async function ke(c,h,y,u,t){try{const d=await Hr({name:c,inviteCode:h,agents:y,compression:u||{triggerTokens:1e5,maxHistoryTokens:32e3,tailMessageCount:10},workspace:t||void 0});return ee(d.room),d}catch(d){throw B.value=d.message,d}}async function Te(c){try{const h=await jr(c);return ee(h.room),await te(),o.value=h.room.id,I.value=h.room.name,await H(h.room.id,{syncMessages:!0,inviteCode:c}),await ve(h.room.id),h.room}catch(h){throw B.value=h.message,h}}async function Je(c){try{await Yr(c),r.value=r.value.filter(h=>h.id!==c),o.value===c&&(o.value=null,n.value=[],le(),l.value=[],x.value=[],I.value="")}catch(h){throw B.value=h.message,h}}async function Oe(c,h){try{const y=await Gr(c,h);return ee(y.room),y}catch(y){throw B.value=y.message,y}}async function Be(){if(o.value)try{const c=await qr(o.value);n.value=[],le(),N.value.clear(),L.value.clear();const h=r.value.findIndex(y=>y.id===o.value);return h>=0&&c.room&&(r.value[h]=c.room),c}catch(c){throw B.value=c.message,c}}async function Re(c,h){try{const y=await Zr(c,h);return y.room&&(ee(y.room),o.value===c&&(I.value=y.room.name)),y.room}catch(y){throw B.value=y.message,y}}async function we(c){try{x.value=(await Jr(c)).agents}catch{}}async function Ce(c,h){try{const y=await Wr(c,h);return x.value.push(y.agent),y.agent}catch(y){throw B.value=y.message,y}}async function Ke(c,h){try{const y=await Kr(c,h);x.value=y.agents??x.value.filter(u=>u.id!==h&&u.agentId!==h),y.members&&(l.value=y.members)}catch(y){throw B.value=y.message,y}}let pe=null;function ze(){const c=Ge();!c||!o.value||(c.emit("typing",{roomId:o.value}),pe&&clearTimeout(pe),pe=setTimeout(()=>be(),4e3))}function be(){const c=Ge();!c||!o.value||(c.emit("stop_typing",{roomId:o.value}),pe&&(clearTimeout(pe),pe=null))}async function He(c){const h=Ge();!h||!o.value||await new Promise((y,u)=>{h.emit("interrupt_agent",{roomId:o.value,agentName:c},t=>{t?.error?u(new Error(t.error)):y()})})}async function xe(c){const h=Ge(),y=Ne.value;!h||!y||(await new Promise((u,t)=>{h.emit("approval.respond",{roomId:y.roomId,approval_id:y.approvalId,choice:c},d=>{d?.error?t(new Error(d.error)):u()})}),U.value.delete(y.approvalId),U.value=new Map(U.value))}return{connected:p,currentRoomId:o,rooms:r,messages:n,members:l,agents:x,roomName:I,isJoining:w,error:B,contextStatus:ge,contextStatuses:L,pendingApprovals:U,activePendingApproval:Ne,autoPlaySpeechEnabled:E,totalMessages:A,loadedMessageCount:F,hasMoreBefore:S,isLoadingOlderMessages:D,hasReachedMessageDisplayLimit:q,userId:oe,userName:Q,currentUserAvatar:ue,sortedMessages:j,memberNames:ne,typingNames:se,typingText:V,connect:X,disconnect:Me,setUserInfo:_e,setAutoPlaySpeech:ie,joinRoom:ve,loadOlderMessages:ye,sendMessage:De,loadRooms:$e,emitTyping:ze,emitStopTyping:be,interruptAgent:He,respondApproval:xe,createNewRoom:ke,joinByCode:Te,deleteRoom:Je,cloneRoom:Oe,clearCurrentRoomContext:Be,setRoomWorkspace:Re,loadAgents:we,addAgentToRoom:Ce,removeAgentFromRoom:Ke}})})),Ut,Ft,Ot,zt,Ht,Gt,Vt,jt,Wt,Jt,Kt,Yt,qt,Xt,Zt,Qt,ea,ta,aa,oa,na,sa,ra,la,ia,ua,ca,da,va,pa,ma,fa,ga,ha,_a,ya,ka,wa,Ca,ba,xa,Sa,Ia,Ma,$a,Ta,Ra,Aa,Pa,Na,Da,Ba,La,Ea,Ua,Ve,wt,Fa,Oa,za,Ha,vt,Ds,Ga=Z((()=>{et(),ut(),ft(),Ms(),xs(),ir(),hr(),Mr(),Tr(),Rr(),ws(),br(),Ws(),Ut={key:0,class:"group-message tool-message"},Ft={class:"avatar"},Ot={class:"msg-body"},zt={class:"msg-header"},Ht={class:"sender-name"},Gt={key:0,class:"agent-desc"},Vt={key:0,class:"workspace-diff-card"},jt=["aria-expanded"],Wt={class:"workspace-diff-title-wrap"},Jt={class:"workspace-diff-title"},Kt={class:"workspace-diff-status"},Yt=["title"],qt={class:"diff-add"},Xt={class:"diff-del"},Zt={key:0},Qt={class:"workspace-diff-file-head"},ea={class:"workspace-diff-path"},ta={class:"diff-add"},aa={class:"diff-del"},oa={key:0},na={key:1},sa=["innerHTML"],ra={key:1,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-icon"},la={class:"tool-name"},ia={key:2,class:"tool-preview"},ua={key:3,class:"tool-spinner"},ca={key:4,class:"tool-error-badge"},da={key:0,class:"tool-detail-section","data-copy-source":"tool-args"},va={class:"tool-detail-label"},pa=["innerHTML"],ma={key:1,class:"tool-detail-section","data-copy-source":"tool-result"},fa={class:"tool-detail-label"},ga=["innerHTML"],ha={class:"msg-time"},_a={class:"avatar"},ya={class:"msg-body"},ka={class:"msg-header"},wa={class:"sender-name"},Ca={key:0,class:"agent-desc"},ba={key:0,class:"msg-attachments"},xa=["src","alt","onClick"],Sa=["href","title"],Ia={class:"att-name"},Ma={class:"att-size"},$a={class:"thinking-label"},Ta={class:"thinking-meta"},Ra={key:0,class:"thinking-body"},Aa={key:3,class:"streaming-dots"},Pa={class:"message-meta"},Na=["title"],Da={key:0,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},Ba={key:1,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},La=["title"],Ea={class:"message-time"},Ua=["src"],Ve=1e3,wt=200,Fa=6,Oa=1e3,za=50,Ha=50,vt="__truncated__",Ds=Qe({__name:"GroupMessageItem",props:{message:{},agents:{},members:{},currentUserId:{}},setup(p){const o=nr(async()=>(await Qs(async()=>{const{default:i}=await import("./MarkdownRenderer-RUGb4sbQ.js");return{default:i}},__vite__mapDeps([0,1,2,3,4,5,6]))).default),r=p,{t:n}=ct(),l=gs(),x=bs(),I=$r(),w=Ir(),B=b(null),N=M(()=>r.agents.some(i=>i.agentId===r.message.senderId||i.name===r.message.senderName)),L=M(()=>r.message.role!=="assistant"?!1:r.message.finish_reason==="error"?!0:/^Error:\s*/i.test(r.message.content||"")),E=M(()=>!!r.currentUserId&&r.message.senderId===r.currentUserId),U=M(()=>r.agents.find(i=>i.agentId===r.message.senderId||i.name===r.message.senderName)),A=M(()=>Sr(r.message.timestamp)),F=M(()=>U.value?.profile||r.message.senderName||r.message.senderId),S=M(()=>x.profiles.find(i=>i.name===U.value?.profile)),D=M(()=>N.value?null:r.members?.find(i=>i.userId===r.message.senderId||i.name===r.message.senderName)||null),q=M(()=>{const i=D.value?.avatar;if(!i)return null;try{const m=typeof i=="string"?JSON.parse(i):i;if(m&&m.type==="image"&&m.dataUrl)return m}catch{}return null}),ue=M(()=>N.value?S.value?.avatar??null:q.value),le=M(()=>N.value?F.value:r.message.senderName||r.message.senderId||"user"),ce=M(()=>["all",...r.agents.map(i=>i.name).filter(Boolean)]),ie=M(()=>yr(r.message.content||"",{streaming:!!r.message.isStreaming})),Pe=M(()=>!!(r.message.reasoning&&r.message.reasoning.length>0)),ae=M(()=>Pe.value||ie.value.hasThinking),Ie=M(()=>{const i=[];return r.message.reasoning&&i.push(r.message.reasoning),i.push(...ie.value.segments),ie.value.pending&&i.push(ie.value.pending),i.join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/js/MarkdownRenderer-DpSiF5gl.js","assets/js/index-RJQqJC6n.js","assets/css/index-CsQvhMiS.css","assets/js/highlight-CEOB4aIv.js","assets/js/clipboard-DYlTCW_e.js","assets/js/download-48rHoTgx.js","assets/css/MarkdownRenderer-riGsdEYy.css"])))=>i.map(i=>d[i]);
2
+ import{$r as Se,Br as js,Ci as g,Cr as ut,Ct as Tt,E as ft,Er as Ws,Fi as Js,Fr as de,Ft as Ks,Gi as b,Gr as Ys,Hr as et,Jr as qe,Lr as ms,Lt as qs,Mi as tt,Nr as bt,Or as Xs,Pi as P,Qi as a,Qr as e,Rr as Zs,Si as xt,Ti as je,Tr as Qs,Ur as fs,Ut as Y,Vr as er,Xr as Rt,Y as at,Yr as Ue,Zr as M,Zt as We,aa as Z,ai as W,ci as Qe,ct as gs,di as At,ea as re,ei as R,gi as Ze,jr as hs,jt as tr,kr as _s,lt as ar,n as nt,na as it,oi as $,q as Pt,qr as mt,ra as f,rn as or,si as nr,t as st,ti as k,tt as lt,wr as ct,xi as ot,yi as sr,yt as ys,zr as ks}from"./index-RJQqJC6n.js";import{o as rr,u as lr}from"./auth-QlZVq-Mb.js";import{a as ir,i as ur,n as cr,o as dr,r as vr,t as ht}from"./highlight-CEOB4aIv.js";import{n as pr,t as mr}from"./clipboard-DYlTCW_e.js";import{a as ws,r as Cs}from"./download-48rHoTgx.js";import{n as fr,t as gr}from"./esm-BMJNKLtg.js";import{r as bs,t as xs}from"./profiles-BtECgqqD.js";import{n as Ss,t as Is}from"./settings-Bzod_9RQ.js";import{a as hr,n as _r,o as yr,r as kr,t as wr}from"./http-error-DzA5OQEf.js";import{n as Ms,t as Xe}from"./ProfileAvatar-Du1XMoe0.js";import{n as $s,t as Ts}from"./FolderPicker-DEUyd_JU.js";import{a as Rs,i as Cr,n as br,o as As,r as xr,t as Sr}from"./chat-timestamp-sj8rR29x.js";import{a as Ir,d as Mr,f as $r,i as Tr,n as Rr,r as Ar,t as Pr}from"./ttsHelpers-CUglUfpM.js";import{n as Nr,r as Nt,t as Dt}from"./chat-input-height-C9XyOGPU.js";import{i as Dr,n as Br,r as Lr,t as Er}from"./SettingsCircuitBadge-2VINGRjT.js";function Ur(p){if(fe?.connected)return fe;const o=_s(),r=p?.userId||localStorage.getItem("gc_user_id")||Ps();return p?.userId||localStorage.setItem("gc_user_id",r),fe=fr("/group-chat",{auth:{token:o||void 0,userId:r,name:p?.userName||localStorage.getItem("gc_user_name")||void 0,description:p?.description||localStorage.getItem("gc_user_description")||void 0,authUserId:p?.authUserId},transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:3e4,randomizationFactor:.5,timeout:3e4}),fe}function Fr(){let p=localStorage.getItem("gc_user_id");return p||(p=Ps(),localStorage.setItem("gc_user_id",p)),p}function Or(){return localStorage.getItem("gc_user_name")}function Ps(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,p=>{const o=Math.random()*16|0;return(p==="x"?o:o&3|8).toString(16)})}function Ge(p={}){return fe&&(p.requireConnected===!1||fe.connected)?fe:null}function zr(){fe&&(fe.disconnect(),fe=null)}async function Hr(p){return de("/api/hermes/group-chat/rooms",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)})}async function Gr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/clone`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o||{})})}async function Vr(){return de("/api/hermes/group-chat/rooms")}async function _t(p,o={}){const r=new URLSearchParams;o.offset!=null&&r.set("offset",String(o.offset)),o.limit!=null&&r.set("limit",String(o.limit));const n=r.toString();return de(`/api/hermes/group-chat/rooms/${p}${n?`?${n}`:""}`)}async function jr(p){return de(`/api/hermes/group-chat/rooms/join/${p}`)}async function Wr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}async function Jr(p){return de(`/api/hermes/group-chat/rooms/${p}/agents`)}async function Kr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/agents/${o}`,{method:"DELETE"})}async function Yr(p){return de(`/api/hermes/group-chat/rooms/${p}`,{method:"DELETE"})}async function qr(p){return de(`/api/hermes/group-chat/rooms/${p}/clear-context`,{method:"POST"})}async function Xr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})}async function Zr(p,o){return de(`/api/hermes/group-chat/rooms/${p}/workspace`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:o})})}async function Qr(p){return de(`/api/hermes/group-chat/rooms/${p}/compress`,{method:"POST"})}var fe,Ns=Z((()=>{gr(),bt(),fe=null}));async function el(p){const o=new FormData;for(const I of p)I.file&&o.append("file",I.file,I.name);const r=_s(),n=Xs(),l={};r&&(l.Authorization=`Bearer ${r}`),n&&(l["X-Hermes-Profile"]=n);const x=await fetch("/upload",{method:"POST",body:o,headers:l});if(!x.ok)throw new Error(await _r(x,"Upload failed"));return(await x.json()).files}function tl(p,o,r){const n=[];p.trim()&&n.push({type:"text",text:p.trim()});for(let l=0;l<r.length;l+=1){const x=r[l],I=o[l];I?.type.startsWith("image/")?n.push({type:"image",name:x.name,path:x.path,media_type:I.type}):n.push({type:"file",name:x.name,path:x.path,media_type:I?.type})}return n}function al(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function ol(p){return/^[a-zA-Z]:\\/.test(p)?p.replace(/\\/g,"/"):p}function Fe(p){return!!p?.trim()}function nl(p){return`auth:${p}`}function yt(){return Or()?.trim()||""}function sl(p){return!!p.tool_calls?.length}function kt(p){return p.role==="assistant"&&!Fe(p.content)&&Fe(p.reasoning)&&!sl(p)}function Bt(p,o){return{...o,content:Fe(o.content)?o.content:p?.content||o.content||"",reasoning:Fe(o.reasoning)?o.reasoning:p?.reasoning??o.reasoning??null,reasoning_content:Fe(o.reasoning_content)?o.reasoning_content:p?.reasoning_content??o.reasoning_content??null,isStreaming:!1,firstSeenAt:p?.firstSeenAt??o.firstSeenAt,attachments:p?.attachments||o.attachments}}function St(p){return p!=null&&p!==""}function Lt(p){return St(p)?p:void 0}function pt(p){if(!St(p))return"";if(typeof p=="string")return p;try{const o=JSON.stringify(p);if(o!==void 0)return o}catch{}return String(p)}function rl(p){const o=pt(p);if(o)try{const r=JSON.parse(o);return r?.kind==="workspace_diff"?r:p}catch{return p}}function ll(p){const o=new Map,r=new Map;for(const l of p)if(l.role==="assistant"&&l.tool_calls?.length)for(const x of l.tool_calls)x?.id&&(x.function?.name&&o.set(x.id,x.function.name),St(x.function?.arguments)&&r.set(x.id,x.function.arguments));const n=[];for(const l of p)if(!(l.role!=="tool"&&!l.tool_calls?.length&&!pt(l.content).trim()&&!l.reasoning?.trim()&&(!l.isStreaming||l.finish_reason==="streaming"))){if(l.role==="assistant"&&l.tool_calls?.length&&!pt(l.content).trim()){for(const x of l.tool_calls)n.push({...l,id:`${l.id}_${x.id}`,role:"tool",content:"",toolName:x.function?.name||void 0,toolCallId:x.id,toolArgs:Lt(x.function?.arguments),toolStatus:"running"});continue}if(l.role==="tool"){const x=l.tool_call_id||"",I=l.tool_name||o.get(x)||void 0,w=r.has(x)?r.get(x):void 0;let B="";const N=I==="workspace_diff"?rl(l.content):Lt(l.content),L=pt(l.content);if(L)try{const A=typeof l.content=="string"?JSON.parse(L):l.content;B=A?.url||A?.title||A?.preview||A?.summary||""}catch{B=L.slice(0,80)}const E=n.findIndex(A=>A.role==="tool"&&A.toolCallId===x&&!A.toolResult),U={...l,id:E!==-1?n[E].id:l.id,senderId:E!==-1?n[E].senderId:l.senderId,senderName:E!==-1?n[E].senderName:l.senderName,timestamp:E!==-1?n[E].timestamp:l.timestamp,role:"tool",content:"",toolName:I||(E!==-1?n[E].toolName:void 0),toolCallId:x||void 0,toolArgs:w!==void 0?w:E!==-1?n[E].toolArgs:void 0,toolPreview:typeof B=="string"&&B.slice(0,100)||void 0,toolResult:N,toolStatus:"done"};E!==-1?n[E]=U:n.push(U);continue}n.push(l)}return n}var Et,il,ul,dt,gt=Z((()=>{er(),et(),bt(),lr(),ws(),wr(),Ns(),Et=300,il=150,ul=600,dt=js("groupChat",()=>{const p=b(!1),o=b(null),r=b([]),n=b([]),l=b([]),x=b([]),I=b(""),w=b(!1),B=b(null),N=b(new Map),L=b(new Map),E=b(!1),U=b(new Map),A=b(0),F=b(0),S=b(!1),D=b(!1),q=M(()=>S.value&&F.value>=600),ue=b("");function le(){A.value=0,F.value=0,S.value=!1,D.value=!1}function ce(c){F.value=c.messages.length,A.value=c.total??c.messages.length,S.value=c.hasMore??F.value<A.value}function ie(c){E.value=c}function Pe(c,h){window.dispatchEvent(new CustomEvent("auto-play-speech",{detail:{messageId:c,content:h}}))}async function ae(c,h){if(o.value!==c)return;const y=n.value.findIndex(u=>u.id===h);if(!(y<0||!kt(n.value[y])))try{const u=(await _t(c)).messages.find(d=>d.id===h);if(!u||!Fe(u.content))return;const t=n.value.findIndex(d=>d.id===h);if(t<0||!kt(n.value[t]))return;n.value[t]=Bt(n.value[t],u),n.value=[...n.value]}catch{}}function Ie(c,h){setTimeout(()=>{ae(c,h)},Et)}const ge=M(()=>{for(const[,c]of L.value)return c;return null}),Ne=M(()=>{if(!o.value)return null;for(const c of U.value.values())if(c.roomId===o.value)return c;return null}),oe=b(Fr()),Q=b(yt()||hs()||"");function ee(c){if(!c)return;const h=r.value.findIndex(y=>y.id===c.id);h>=0?r.value[h]=c:r.value.push(c)}function J(c,h={}){l.value=c.members||[],c.agents&&(x.value=c.agents),c.roomName&&(I.value=c.roomName);const y=l.value.find(u=>u.userId===oe.value);if(y?.name&&(Q.value=y.name),y?.avatar&&(ue.value=y.avatar),h.syncMessages&&Array.isArray(c.messages)){const u=new Map(n.value.map(t=>[t.id,t]));for(const t of c.messages){const d=u.get(t.id);u.set(t.id,d?{...d,...t}:t)}n.value=Array.from(u.values()).sort((t,d)=>t.timestamp-d.timestamp),typeof c.total=="number"||typeof c.hasMore=="boolean"?ce(c):(F.value=Math.max(F.value,n.value.length),A.value=Math.max(A.value,F.value))}for(const u of N.value.values())clearTimeout(u.timer);if(N.value.clear(),c.typingUsers)for(const u of c.typingUsers){const t=setTimeout(()=>N.value.delete(u.userId),5e3);N.value.set(u.userId,{name:u.userName,timer:t})}c.contextStatuses?L.value=new Map(c.contextStatuses.map(u=>[u.agentName,u])):L.value.clear()}async function he(c){c.connected||await new Promise((h,y)=>{let u=!1,t=null;const d=()=>{t&&clearTimeout(t),c.off?.("connect",i),c.off?.("connect_error",m)},T=C=>{u||(u=!0,d(),C())},i=()=>T(h),m=C=>T(()=>y(C));t=setTimeout(()=>T(()=>y(new Error("Group chat socket connection timed out"))),3e4),c.once("connect",i),c.once("connect_error",m)})}async function te(){let c=Ge();if(c)return c;if(await X(),c=Ge({requireConnected:!1}),!c)throw new Error("Group chat socket not connected");await he(c);const h=Ge();if(!h)throw new Error("Group chat socket not connected");return h}async function H(c,h={}){const y=await te(),u=yt();await new Promise(t=>{y.emit("join",{roomId:c,inviteCode:h.inviteCode,name:u||void 0,description:localStorage.getItem("gc_user_description")||void 0},d=>{if(o.value!==c){t();return}d?.error?B.value=d.error:J(d,h),t()})})}const j=M(()=>ll([...n.value].sort((c,h)=>(c.firstSeenAt??c.timestamp)-(h.firstSeenAt??h.timestamp)))),ne=M(()=>l.value.map(c=>c.name)),se=M(()=>Array.from(N.value.values()).map(c=>c.name)),V=M(()=>{const c=se.value;return c.length===0?"":c.length===1?`${c[0]} is typing...`:c.length===2?`${c[0]} and ${c[1]} are typing...`:`${c[0]} and ${c.length-1} others are typing...`});async function X(){let c;const h=yt();try{const u=await rr();c=u.id,oe.value=nl(u.id),h||(Q.value=u.username),ue.value=u.avatar||""}catch{}const y=Ur({userId:oe.value,userName:h||void 0,authUserId:c});console.log("[GroupChat] connecting...",{userId:oe.value,userName:Q.value}),y.on("connect",()=>{console.log("[GroupChat] connected, socket id:",y.id),p.value=!0,B.value=null;const u=o.value;u&&H(u,{syncMessages:!0}).catch(t=>{B.value=t.message})}),y.on("disconnect",u=>{console.log("[GroupChat] disconnected:",u),p.value=!1}),y.on("connect_error",u=>{console.error("[GroupChat] connect_error:",u.message),B.value=u.message,p.value=!1}),y.on("message",u=>{if(u.roomId===o.value){const t=n.value.findIndex(T=>T.id===u.id),d=Bt(t>=0?n.value[t]:null,u);t>=0?(n.value[t]=d,n.value=[...n.value]):(n.value.push(d),F.value+=1,A.value=Math.max(A.value+1,F.value)),E.value&&d.role==="assistant"&&d.content?.trim()&&setTimeout(()=>Pe(d.id,d.content),300)}}),y.on("message_stream_start",u=>{if(u.roomId!==o.value)return;n.value=n.value.filter(d=>!(d.roomId===u.roomId&&d.senderId===u.senderId&&d.id!==u.id&&d.isStreaming&&!d.content?.trim()&&!d.reasoning?.trim()&&!d.tool_calls?.length)),u.isStreaming=!0,u.firstSeenAt=u.firstSeenAt??u.timestamp??Date.now();const t=n.value.findIndex(d=>d.id===u.id);if(t>=0){const d=n.value[t];if(!d.isStreaming)return;n.value[t]={...d,...u,content:Fe(u.content)?u.content:d.content||"",reasoning:Fe(u.reasoning)?u.reasoning:d.reasoning,reasoning_content:Fe(u.reasoning_content)?u.reasoning_content:d.reasoning_content,isStreaming:!0},n.value=[...n.value]}else n.value.push(u),F.value+=1,A.value=Math.max(A.value+1,F.value)}),y.on("message_stream_delta",u=>{if(u.roomId!==o.value)return;const t=n.value.findIndex(d=>d.id===u.id);t<0||!n.value[t].isStreaming||(n.value[t]={...n.value[t],content:n.value[t].content+u.delta},n.value=[...n.value])}),y.on("message_reasoning_delta",u=>{if(u.roomId!==o.value)return;const t=n.value.findIndex(d=>d.id===u.id);t<0||!n.value[t].isStreaming||(n.value[t]={...n.value[t],reasoning:(n.value[t].reasoning||"")+u.delta,reasoning_content:(n.value[t].reasoning_content||"")+u.delta,isStreaming:!0},n.value=[...n.value])}),y.on("message_stream_end",u=>{if(u.roomId!==o.value)return;const t=n.value.findIndex(d=>d.id===u.id);t>=0&&!n.value[t].content?.trim()&&!n.value[t].reasoning?.trim()&&!n.value[t].tool_calls?.length?n.value.splice(t,1):t>=0&&(n.value[t]={...n.value[t],isStreaming:!1},n.value=[...n.value],kt(n.value[t])&&Ie(u.roomId,u.id))}),y.on("member_joined",u=>{u.roomId===o.value&&(l.value=u.members)}),y.on("member_left",u=>{u.roomId===o.value&&(l.value=u.members)}),y.on("typing",u=>{if(u.roomId===o.value&&!N.value.has(u.userId)){const t=setTimeout(()=>N.value.delete(u.userId),5e3);N.value.set(u.userId,{name:u.userName,timer:t})}}),y.on("stop_typing",u=>{if(u.roomId===o.value&&N.value.has(u.userId)){const t=N.value.get(u.userId);clearTimeout(t.timer),N.value.delete(u.userId)}}),y.on("context_status",u=>{u.roomId===o.value&&(u.status==="ready"?(L.value.delete(u.agentName),n.value=n.value.map(t=>t.senderName===u.agentName&&t.isStreaming?{...t,isStreaming:!1}:t).filter(t=>!(t.senderName===u.agentName&&!t.content?.trim()&&!t.reasoning?.trim()&&!t.tool_calls?.length))):L.value.set(u.agentName,{agentName:u.agentName,status:u.status}),L.value=new Map(L.value))}),y.on("approval.requested",u=>{if(!u.approval_id)return;const t=u.description||"",d=t.trim().toLowerCase().replace(/\s+/g," "),T=!u.allow_permanent&&(d==="save to memory"||d.startsWith("save to memory:")||d.startsWith("save to memory?")),i=(Array.isArray(u.choices)?u.choices:["once","session","deny"]).filter(m=>m==="once"||m==="session"||m==="always"||m==="deny");U.value.set(u.approval_id,{roomId:u.roomId,agentName:u.agentName||"",approvalId:u.approval_id,command:u.command||"",description:t,choices:T?["once","deny"]:i.length?i:["once","session","deny"],allowPermanent:!!u.allow_permanent,isMemoryWrite:T,requestedAt:Date.now()}),U.value=new Map(U.value)}),y.on("approval.resolved",u=>{u.approval_id&&(U.value.delete(u.approval_id),U.value=new Map(U.value))}),y.on("room_updated",u=>{const t=r.value.find(d=>d.id===u.roomId);t&&(t.totalTokens=u.totalTokens)}),y.on("room_cleared",u=>{const t=r.value.find(d=>d.id===u.roomId);t&&(t.totalTokens=u.totalTokens),u.roomId===o.value&&(n.value=[],le(),N.value.clear(),L.value.clear(),U.value.clear())})}function Me(){zr(),p.value=!1,o.value=null,n.value=[],le(),l.value=[],x.value=[],I.value="",N.value.clear(),L.value.clear(),U.value.clear()}function _e(c,h){Q.value=c,localStorage.setItem("gc_user_name",c),localStorage.setItem("gc_user_description",h)}async function ve(c){w.value=!0,B.value=null;try{const h=await _t(c);ee(h.room),o.value=h.room.id,I.value=h.room.name,n.value=h.messages,ce(h),x.value=h.agents,l.value=h.members||[]}catch(h){throw B.value=h.message,h}finally{w.value=!1}await H(c)}async function ye(){const c=o.value;if(!c||D.value||!S.value)return!1;const h=F.value;if(h>=600)return!1;D.value=!0;try{const y=await _t(c,{offset:h,limit:Math.min(150,600-h)}),u=new Set(n.value.map(d=>d.id)),t=y.messages.filter(d=>!u.has(d.id));return n.value=[...t,...n.value],F.value=h+y.messages.length,A.value=y.total??A.value,S.value=y.hasMore??F.value<A.value,t.length>0}catch(y){return B.value=y.message,!1}finally{D.value=!1}}async function De(c,h){const y=Ge();if(!y||!o.value)return;be();const u=al();let t=c.trim();if(h?.length){const d=await el(h);t=tl(c,h,d);const T=new Map(d.map(i=>[i.name,Cs(ol(i.path),i.name)]));n.value.push({id:u,roomId:o.value,senderId:oe.value,senderName:Q.value||"You",content:JSON.stringify(t),timestamp:Date.now(),role:"user",attachments:h.map(i=>({...i,url:T.get(i.name)||i.url,file:void 0}))}),F.value+=1,A.value=Math.max(A.value+1,F.value)}return new Promise((d,T)=>{y.emit("message",{roomId:o.value,id:u,content:t},i=>{if(i.error){n.value=n.value.filter(m=>m.id!==u),T(new Error(i.error));return}d()})})}async function $e(){try{r.value=(await Vr()).rooms}catch(c){B.value=c.message}}async function ke(c,h,y,u,t){try{const d=await Hr({name:c,inviteCode:h,agents:y,compression:u||{triggerTokens:1e5,maxHistoryTokens:32e3,tailMessageCount:10},workspace:t||void 0});return ee(d.room),d}catch(d){throw B.value=d.message,d}}async function Te(c){try{const h=await jr(c);return ee(h.room),await te(),o.value=h.room.id,I.value=h.room.name,await H(h.room.id,{syncMessages:!0,inviteCode:c}),await ve(h.room.id),h.room}catch(h){throw B.value=h.message,h}}async function Je(c){try{await Yr(c),r.value=r.value.filter(h=>h.id!==c),o.value===c&&(o.value=null,n.value=[],le(),l.value=[],x.value=[],I.value="")}catch(h){throw B.value=h.message,h}}async function Oe(c,h){try{const y=await Gr(c,h);return ee(y.room),y}catch(y){throw B.value=y.message,y}}async function Be(){if(o.value)try{const c=await qr(o.value);n.value=[],le(),N.value.clear(),L.value.clear();const h=r.value.findIndex(y=>y.id===o.value);return h>=0&&c.room&&(r.value[h]=c.room),c}catch(c){throw B.value=c.message,c}}async function Re(c,h){try{const y=await Zr(c,h);return y.room&&(ee(y.room),o.value===c&&(I.value=y.room.name)),y.room}catch(y){throw B.value=y.message,y}}async function we(c){try{x.value=(await Jr(c)).agents}catch{}}async function Ce(c,h){try{const y=await Wr(c,h);return x.value.push(y.agent),y.agent}catch(y){throw B.value=y.message,y}}async function Ke(c,h){try{const y=await Kr(c,h);x.value=y.agents??x.value.filter(u=>u.id!==h&&u.agentId!==h),y.members&&(l.value=y.members)}catch(y){throw B.value=y.message,y}}let pe=null;function ze(){const c=Ge();!c||!o.value||(c.emit("typing",{roomId:o.value}),pe&&clearTimeout(pe),pe=setTimeout(()=>be(),4e3))}function be(){const c=Ge();!c||!o.value||(c.emit("stop_typing",{roomId:o.value}),pe&&(clearTimeout(pe),pe=null))}async function He(c){const h=Ge();!h||!o.value||await new Promise((y,u)=>{h.emit("interrupt_agent",{roomId:o.value,agentName:c},t=>{t?.error?u(new Error(t.error)):y()})})}async function xe(c){const h=Ge(),y=Ne.value;!h||!y||(await new Promise((u,t)=>{h.emit("approval.respond",{roomId:y.roomId,approval_id:y.approvalId,choice:c},d=>{d?.error?t(new Error(d.error)):u()})}),U.value.delete(y.approvalId),U.value=new Map(U.value))}return{connected:p,currentRoomId:o,rooms:r,messages:n,members:l,agents:x,roomName:I,isJoining:w,error:B,contextStatus:ge,contextStatuses:L,pendingApprovals:U,activePendingApproval:Ne,autoPlaySpeechEnabled:E,totalMessages:A,loadedMessageCount:F,hasMoreBefore:S,isLoadingOlderMessages:D,hasReachedMessageDisplayLimit:q,userId:oe,userName:Q,currentUserAvatar:ue,sortedMessages:j,memberNames:ne,typingNames:se,typingText:V,connect:X,disconnect:Me,setUserInfo:_e,setAutoPlaySpeech:ie,joinRoom:ve,loadOlderMessages:ye,sendMessage:De,loadRooms:$e,emitTyping:ze,emitStopTyping:be,interruptAgent:He,respondApproval:xe,createNewRoom:ke,joinByCode:Te,deleteRoom:Je,cloneRoom:Oe,clearCurrentRoomContext:Be,setRoomWorkspace:Re,loadAgents:we,addAgentToRoom:Ce,removeAgentFromRoom:Ke}})})),Ut,Ft,Ot,zt,Ht,Gt,Vt,jt,Wt,Jt,Kt,Yt,qt,Xt,Zt,Qt,ea,ta,aa,oa,na,sa,ra,la,ia,ua,ca,da,va,pa,ma,fa,ga,ha,_a,ya,ka,wa,Ca,ba,xa,Sa,Ia,Ma,$a,Ta,Ra,Aa,Pa,Na,Da,Ba,La,Ea,Ua,Ve,wt,Fa,Oa,za,Ha,vt,Ds,Ga=Z((()=>{et(),ut(),ft(),Ms(),xs(),ir(),hr(),Mr(),Tr(),Rr(),ws(),br(),Ws(),Ut={key:0,class:"group-message tool-message"},Ft={class:"avatar"},Ot={class:"msg-body"},zt={class:"msg-header"},Ht={class:"sender-name"},Gt={key:0,class:"agent-desc"},Vt={key:0,class:"workspace-diff-card"},jt=["aria-expanded"],Wt={class:"workspace-diff-title-wrap"},Jt={class:"workspace-diff-title"},Kt={class:"workspace-diff-status"},Yt=["title"],qt={class:"diff-add"},Xt={class:"diff-del"},Zt={key:0},Qt={class:"workspace-diff-file-head"},ea={class:"workspace-diff-path"},ta={class:"diff-add"},aa={class:"diff-del"},oa={key:0},na={key:1},sa=["innerHTML"],ra={key:1,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",class:"tool-icon"},la={class:"tool-name"},ia={key:2,class:"tool-preview"},ua={key:3,class:"tool-spinner"},ca={key:4,class:"tool-error-badge"},da={key:0,class:"tool-detail-section","data-copy-source":"tool-args"},va={class:"tool-detail-label"},pa=["innerHTML"],ma={key:1,class:"tool-detail-section","data-copy-source":"tool-result"},fa={class:"tool-detail-label"},ga=["innerHTML"],ha={class:"msg-time"},_a={class:"avatar"},ya={class:"msg-body"},ka={class:"msg-header"},wa={class:"sender-name"},Ca={key:0,class:"agent-desc"},ba={key:0,class:"msg-attachments"},xa=["src","alt","onClick"],Sa=["href","title"],Ia={class:"att-name"},Ma={class:"att-size"},$a={class:"thinking-label"},Ta={class:"thinking-meta"},Ra={key:0,class:"thinking-body"},Aa={key:3,class:"streaming-dots"},Pa={class:"message-meta"},Na=["title"],Da={key:0,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},Ba={key:1,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},La=["title"],Ea={class:"message-time"},Ua=["src"],Ve=1e3,wt=200,Fa=6,Oa=1e3,za=50,Ha=50,vt="__truncated__",Ds=Qe({__name:"GroupMessageItem",props:{message:{},agents:{},members:{},currentUserId:{}},setup(p){const o=nr(async()=>(await Qs(async()=>{const{default:i}=await import("./MarkdownRenderer-DpSiF5gl.js");return{default:i}},__vite__mapDeps([0,1,2,3,4,5,6]))).default),r=p,{t:n}=ct(),l=gs(),x=bs(),I=$r(),w=Ir(),B=b(null),N=M(()=>r.agents.some(i=>i.agentId===r.message.senderId||i.name===r.message.senderName)),L=M(()=>r.message.role!=="assistant"?!1:r.message.finish_reason==="error"?!0:/^Error:\s*/i.test(r.message.content||"")),E=M(()=>!!r.currentUserId&&r.message.senderId===r.currentUserId),U=M(()=>r.agents.find(i=>i.agentId===r.message.senderId||i.name===r.message.senderName)),A=M(()=>Sr(r.message.timestamp)),F=M(()=>U.value?.profile||r.message.senderName||r.message.senderId),S=M(()=>x.profiles.find(i=>i.name===U.value?.profile)),D=M(()=>N.value?null:r.members?.find(i=>i.userId===r.message.senderId||i.name===r.message.senderName)||null),q=M(()=>{const i=D.value?.avatar;if(!i)return null;try{const m=typeof i=="string"?JSON.parse(i):i;if(m&&m.type==="image"&&m.dataUrl)return m}catch{}return null}),ue=M(()=>N.value?S.value?.avatar??null:q.value),le=M(()=>N.value?F.value:r.message.senderName||r.message.senderId||"user"),ce=M(()=>["all",...r.agents.map(i=>i.name).filter(Boolean)]),ie=M(()=>yr(r.message.content||"",{streaming:!!r.message.isStreaming})),Pe=M(()=>!!(r.message.reasoning&&r.message.reasoning.length>0)),ae=M(()=>Pe.value||ie.value.hasThinking),Ie=M(()=>{const i=[];return r.message.reasoning&&i.push(r.message.reasoning),i.push(...ie.value.segments),ie.value.pending&&i.push(ie.value.pending),i.join(`
3
3
 
4
4
  `)}),ge=M(()=>{let i=kr(ie.value);return r.message.reasoning&&(i+=r.message.reasoning.length),i}),Ne=M(()=>r.message.isStreaming?!!(ie.value.pending!==null||Pe.value&&!r.message.content):!1),oe=b(null),Q=M(()=>Ne.value?!0:oe.value!==null?oe.value:!1),ee=M(()=>ie.value.body||r.message.content||""),J=M(()=>{const i=(r.message.content||"").trim();if(!i.startsWith("[")||!i.endsWith("]"))return null;try{const m=JSON.parse(i);return Array.isArray(m)?m:null}catch{return null}}),he=M(()=>{if(r.message.attachments?.length)return r.message.attachments;const i=J.value;return i?i.flatMap((m,C)=>{if(m?.type!=="image"&&m?.type!=="file")return[];const G=String(m.path||"");if(!G)return[];const K=String(m.name||`${m.type}-${C+1}`);return[{id:`${r.message.id}_attachment_${C}`,name:K,type:m.type==="image"?String(m.media_type||"image/*"):String(m.media_type||"application/octet-stream"),size:0,url:Cs(t(G),K)}]}):[]}),te=M(()=>he.value.length>0),H=M(()=>{if(r.message.role!=="user")return ee.value;const i=J.value;return i?i.filter(m=>m?.type==="text"&&typeof m.text=="string").map(m=>m.text).join(`
5
5
  `):ee.value}),j=M(()=>{if(se.value)return null;const i=H.value||"";return i.trim()?i:null}),ne=b(!1),se=M(()=>r.message.role==="tool"),V=M(()=>{if((r.message.toolName||r.message.tool_name)!=="workspace_diff")return null;const i=r.message.toolResult??r.message.content;if(!i)return null;if(typeof i=="object"&&i?.kind==="workspace_diff")return i;if(typeof i=="string")try{const m=JSON.parse(i);return m?.kind==="workspace_diff"?m:null}catch{return null}return null}),X=M(()=>Array.isArray(V.value?.files)?V.value.files:[]),Me=M(()=>V.value?.workspace_basename||n("chat.workspace")),_e=M(()=>ze(r.message.toolArgs)),ve=M(()=>ze(r.message.toolResult,!0)),ye=M(()=>!!(_e.value.full||ve.value.full)),De=M(()=>_e.value.full),$e=M(()=>_e.value.display),ke=M(()=>ve.value.full),Te=M(()=>ve.value.display),Je=M(()=>$e.value?be($e.value,_e.value.language):""),Oe=M(()=>Te.value?be(Te.value,ve.value.language):""),Be=M(()=>r.message.role!=="assistant"||!ee.value.trim()?!1:w.provider.value==="openai"||w.provider.value==="custom"||w.provider.value==="edge"||w.provider.value==="mimo"?!0:I.isSupported),Re=M(()=>w.provider.value==="openai"||w.provider.value==="custom"||w.provider.value==="edge"||w.provider.value==="mimo"?I.currentCustomMessageId.value===r.message.id&&I.isCustomPlaying.value:I.currentMessageId.value===r.message.id&&I.isPlaying.value),we=M(()=>w.provider.value==="openai"||w.provider.value==="custom"||w.provider.value==="edge"||w.provider.value==="mimo"?I.currentCustomMessageId.value===r.message.id&&I.isCustomPaused.value:I.currentMessageId.value===r.message.id&&I.isPaused.value);function Ce(i,m){return i.length>wt?i.slice(0,wt)+`
@@ -1 +1 @@
1
- import{$r as F,Ci as n,Cr as G,Gi as M,Hr as K,Mi as u,Pi as B,Qi as d,Qr as l,Zr as S,aa as k,ci as U,ei as T,gi as c,n as Z,oi as q,ra as J,t as W,ti as v,wr as X,xi as Y,yi as ee}from"./index-B41wzfl2.js";import{n as se,r as te}from"./chat-DASgRGiI.js";import{a as oe,i as ae,o as ie,r as le}from"./chat-timestamp-B4kSmeEg.js";import{n as re,t as ne}from"./MessageItem-rIbgU0g3.js";var V,C,I,H,N,b,O,P=k((()=>{K(),G(),ae(),re(),se(),oe(),V={class:"history-message-list-shell"},C={class:"empty-state"},I={key:0,class:"history-loader"},H={key:0,class:"history-loader-spinner"},N=["aria-label","title"],b=new Map,O=U({__name:"HistoryMessageList",props:{session:{},loadOlder:{type:Function}},setup(R,{expose:$}){const f=R,_=te(),{toolTraceVisible:A}=ie(),{t:p}=X(),o=M(null),a=M(null),m=M(!1),t=S(()=>f.session||null),Q=S(()=>t.value?.id?`history-${t.value.id}`:"history-empty"),g=S(()=>(t.value?.messages||[]).filter(e=>e.role==="tool"?A.value&&!!e.toolName:!!e.content?.trim()));function h(e=200){return o.value?.isNearBottom(e)??!0}function i(){o.value?.scrollToBottom(),m.value=!1}function y(e){o.value?.scrollToMessage(e)}function j(e,s){o.value?.scrollToAnchor(e,s)}function r(){m.value=g.value.length>0&&!h(1e3)}function z(){r()}function D(){i()}function w(e){if(!e)return;const s=o.value?.captureViewportPosition()??null;s&&b.set(e,s)}function L(e){if(t.value?.id!==e)return;if(_.focusMessageId){a.value=null,y(_.focusMessageId);return}const s=b.get(e);if(s){a.value=null,s.wasNearBottom?i():o.value?.restoreViewportPosition(s);return}i(),(t.value?.messages.length||0)>0&&(a.value=null)}async function E(){const e=t.value;if(!e?.hasMoreBefore||e.isLoadingOlderMessages||!f.loadOlder)return;const s=o.value?.captureScrollPosition()??null;await f.loadOlder(e.id)&&(await c(),o.value?.restoreScrollPosition(s),r())}return u(()=>t.value?.id,async(e,s)=>{w(s),e&&(a.value=e,await c(),L(e))},{immediate:!0}),u(()=>_.focusMessageId,e=>{e&&y(e)}),u(()=>(t.value?.messages||[])[(t.value?.messages||[]).length-1]?.content,e=>{a.value!==t.value?.id&&e&&h()&&i()}),u(()=>(t.value?.messages||[]).length,e=>{if(e===0)return;const s=t.value?.id;if(s&&a.value===s){L(s);return}h()&&(i(),c(r))},{flush:"post"}),u(()=>g.value.length,()=>{c(r)},{flush:"post"}),ee(()=>{w(t.value?.id)}),Y(()=>{c(r)}),$({scrollToBottom:i,scrollToMessage:y,scrollToAnchor:j}),(e,s)=>(n(),v("div",V,[(n(),F(le,{key:Q.value,ref_key:"listRef",ref:o,messages:g.value,onScroll:z,onTopReach:E},{empty:B(()=>[l("div",C,[s[0]||(s[0]=l("img",{src:"/coding-agents/hermes.png",alt:"Hermes",class:"empty-logo"},null,-1)),l("p",null,J(d(p)("chat.emptyState")),1)])]),before:B(()=>[t.value?.hasMoreBefore||t.value?.isLoadingOlderMessages?(n(),v("div",I,[t.value?.isLoadingOlderMessages?(n(),v("span",H)):T("",!0)])):T("",!0)]),item:B(({message:x})=>[q(ne,{message:x,highlight:d(_).focusMessageId===x.id},null,8,["message","highlight"])]),_:1},8,["messages"])),m.value?(n(),v("button",{key:0,type:"button",class:"scroll-bottom-button","aria-label":d(p)("chat.scrollToBottom"),title:d(p)("chat.scrollToBottom"),onClick:D},[...s[1]||(s[1]=[l("svg",{class:"scroll-bottom-icon",viewBox:"0 0 24 24","aria-hidden":"true",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[l("path",{d:"m7 10 5 5 5-5"}),l("path",{d:"M6 19h12"})],-1)])],8,N)):T("",!0)]))}})})),ue=k((()=>{})),ce,he=k((()=>{P(),P(),ue(),Z(),ce=W(O,[["__scopeId","data-v-0234602e"]])}));export{he as n,ce as t};
1
+ import{$r as F,Ci as n,Cr as G,Gi as M,Hr as K,Mi as u,Pi as B,Qi as d,Qr as l,Zr as S,aa as k,ci as U,ei as T,gi as c,n as Z,oi as q,ra as J,t as W,ti as v,wr as X,xi as Y,yi as ee}from"./index-RJQqJC6n.js";import{n as se,r as te}from"./chat-BHkNRr2D.js";import{a as oe,i as ae,o as ie,r as le}from"./chat-timestamp-sj8rR29x.js";import{n as re,t as ne}from"./MessageItem-D91t-tiL.js";var V,C,I,H,N,b,O,P=k((()=>{K(),G(),ae(),re(),se(),oe(),V={class:"history-message-list-shell"},C={class:"empty-state"},I={key:0,class:"history-loader"},H={key:0,class:"history-loader-spinner"},N=["aria-label","title"],b=new Map,O=U({__name:"HistoryMessageList",props:{session:{},loadOlder:{type:Function}},setup(R,{expose:$}){const f=R,_=te(),{toolTraceVisible:A}=ie(),{t:p}=X(),o=M(null),a=M(null),m=M(!1),t=S(()=>f.session||null),Q=S(()=>t.value?.id?`history-${t.value.id}`:"history-empty"),g=S(()=>(t.value?.messages||[]).filter(e=>e.role==="tool"?A.value&&!!e.toolName:!!e.content?.trim()));function h(e=200){return o.value?.isNearBottom(e)??!0}function i(){o.value?.scrollToBottom(),m.value=!1}function y(e){o.value?.scrollToMessage(e)}function j(e,s){o.value?.scrollToAnchor(e,s)}function r(){m.value=g.value.length>0&&!h(1e3)}function z(){r()}function D(){i()}function w(e){if(!e)return;const s=o.value?.captureViewportPosition()??null;s&&b.set(e,s)}function L(e){if(t.value?.id!==e)return;if(_.focusMessageId){a.value=null,y(_.focusMessageId);return}const s=b.get(e);if(s){a.value=null,s.wasNearBottom?i():o.value?.restoreViewportPosition(s);return}i(),(t.value?.messages.length||0)>0&&(a.value=null)}async function E(){const e=t.value;if(!e?.hasMoreBefore||e.isLoadingOlderMessages||!f.loadOlder)return;const s=o.value?.captureScrollPosition()??null;await f.loadOlder(e.id)&&(await c(),o.value?.restoreScrollPosition(s),r())}return u(()=>t.value?.id,async(e,s)=>{w(s),e&&(a.value=e,await c(),L(e))},{immediate:!0}),u(()=>_.focusMessageId,e=>{e&&y(e)}),u(()=>(t.value?.messages||[])[(t.value?.messages||[]).length-1]?.content,e=>{a.value!==t.value?.id&&e&&h()&&i()}),u(()=>(t.value?.messages||[]).length,e=>{if(e===0)return;const s=t.value?.id;if(s&&a.value===s){L(s);return}h()&&(i(),c(r))},{flush:"post"}),u(()=>g.value.length,()=>{c(r)},{flush:"post"}),ee(()=>{w(t.value?.id)}),Y(()=>{c(r)}),$({scrollToBottom:i,scrollToMessage:y,scrollToAnchor:j}),(e,s)=>(n(),v("div",V,[(n(),F(le,{key:Q.value,ref_key:"listRef",ref:o,messages:g.value,onScroll:z,onTopReach:E},{empty:B(()=>[l("div",C,[s[0]||(s[0]=l("img",{src:"/coding-agents/hermes.png",alt:"Hermes",class:"empty-logo"},null,-1)),l("p",null,J(d(p)("chat.emptyState")),1)])]),before:B(()=>[t.value?.hasMoreBefore||t.value?.isLoadingOlderMessages?(n(),v("div",I,[t.value?.isLoadingOlderMessages?(n(),v("span",H)):T("",!0)])):T("",!0)]),item:B(({message:x})=>[q(ne,{message:x,highlight:d(_).focusMessageId===x.id},null,8,["message","highlight"])]),_:1},8,["messages"])),m.value?(n(),v("button",{key:0,type:"button",class:"scroll-bottom-button","aria-label":d(p)("chat.scrollToBottom"),title:d(p)("chat.scrollToBottom"),onClick:D},[...s[1]||(s[1]=[l("svg",{class:"scroll-bottom-icon",viewBox:"0 0 24 24","aria-hidden":"true",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[l("path",{d:"m7 10 5 5 5-5"}),l("path",{d:"M6 19h12"})],-1)])],8,N)):T("",!0)]))}})})),ue=k((()=>{})),ce,he=k((()=>{P(),P(),ue(),Z(),ce=W(O,[["__scopeId","data-v-0234602e"]])}));export{he as n,ce as t};
@@ -1 +1 @@
1
- import{$r as T,Ci as d,Cr as xt,Ct as Me,E as Mt,Gi as v,Hr as Pt,Lr as Bt,Mi as Y,Pi as m,Qi as u,Qr as a,Rr as At,Si as Ht,Ti as se,Ut as I,Yr as q,Zr as g,aa as ne,ai as oe,ci as Tt,ct as It,ea as ae,ei as y,n as Dt,o as Lt,oi as B,q as $t,ra as k,s as Nt,t as Ot,ti as b,wr as Vt,xi as qt,yt as zt,zr as Ft}from"./index-B41wzfl2.js";import{n as Et,t as Pe}from"./clipboard-DbIDy3AT.js";import{E as Rt,_ as Jt,c as Ut,d as Be,g as Wt,i as Gt,l as Kt,n as Yt}from"./sessions-BeO9QOJY.js";import{r as Qt,t as Xt}from"./profiles-DDKFPE0r.js";import{n as Zt}from"./chat-DASgRGiI.js";import{n as jt,t as es}from"./session-browser-prefs-D3fgv9Yr.js";import{i as ts,n as ss,o as Ae,r as He,s as os,t as as}from"./OutlinePanel-BmsAdxB0.js";import{i as is,r as ns}from"./SettingsCircuitBadge-DmwONg4K.js";import{n as ls,t as rs}from"./HistoryMessageList-B1UsdtzR.js";import{n as us,t as cs}from"./PageSidebarFooter-fp9dcg3s.js";var Te,Ie,De,Le,$e,Ne,Oe,Ve,qe,ze,Fe,Ee,Re,Je,Ue,We,Ge,Ke,Ye,Qe,Xe,Ze,je,ie,tt,et=ne((()=>{Pt(),Bt(),Zt(),Lt(),Xt(),es(),Mt(),xt(),os(),Et(),ls(),ts(),ss(),is(),us(),Jt(),Te={class:"history-panel"},Ie={key:0,class:"page-sidebar-top"},De={class:"session-list-toolbar"},Le={class:"session-list-title"},$e={class:"session-list-actions"},Ne={key:1,class:"session-items"},Oe={key:0,class:"session-loading"},Ve={key:1,class:"session-empty"},qe={class:"session-group-header session-group-header--static"},ze={class:"session-group-label"},Fe={class:"session-group-count"},Ee=["onClick"],Re={class:"session-group-label"},Je={class:"session-group-count"},Ue={class:"chat-main"},We={class:"chat-header"},Ge={class:"header-left"},Ke={class:"header-session-title"},Ye={key:0,class:"source-badge"},Qe=["title"],Xe={class:"header-actions"},Ze={class:"history-content-wrapper"},je={class:"history-main-content"},ie=150,tt=Tt({__name:"HistoryView",setup(ps){const st=Nt(),z=Qt(),D=jt(),h=It(),{t:i}=Vt(),le=At(),P=Ft(),F=g(()=>{const e=le.params.sessionId;return typeof e=="string"&&e.trim()?e:null}),N=g(()=>{const e=le.query.profile;return typeof e=="string"&&e.trim()?e:null}),ot=g(()=>z.activeProfileName||N.value||null),_=v([]),Q=v(!1),E=v(!1),f=v(null),n=v(null),R=v(!1),re=v(null),C=v(!1),w=v(!1),L=v(!1),c=v(new Set),x=v(null),J=v(!1),ue=v(0),ce=v(0);let X=0;function at(e){re.value?.scrollToAnchor(e.messageId,e.anchorId),de.value&&(R.value=!1)}function it(){P.push({name:"hermes.chat"})}async function $(){const e=++X;Q.value=!0;try{const t=await Kt(void 0,void 0,ot.value);if(e!==X)return;_.value=t,E.value=!0}catch(t){console.error("Failed to load Hermes sessions:",t)}finally{e===X&&(Q.value=!1)}}const S=v(typeof window>"u"||!window.matchMedia("(max-width: 768px)").matches);let O=null;const de=v(!1);function A(e){return _.value.find(t=>t.id===e)}const Z=g(()=>x.value&&A(x.value)||null),nt=g(()=>x.value?D.isPinned(x.value):!1),lt=g(()=>[{label:i("chat.importToWebUi"),key:"import-webui",disabled:!!Z.value?.webui_imported},{label:i(nt.value?"chat.unpin":"chat.pin"),key:"pin"},...Z.value?.is_archived?[{label:i("chat.unarchiveSession"),key:"unarchive"}]:[],{label:i("chat.copySessionLink"),key:"copy-link"},{label:i("chat.copySessionId"),key:"copy-id"}]);function ve(e){return(e.role==="moa"||e.display_role==="tool")&&(e.tool_name==="moa_reference"||e.tool_name==="moa_aggregating")}function rt(e,t){if(e!=="moa_reference"&&e!=="moa_aggregating")return null;const o=typeof t=="string"?(()=>{try{return JSON.parse(t)}catch{return null}})():t;if(!o||typeof o!="object")return null;const s=o;return{preview:typeof s.preview=="string"?s.preview:typeof s.label=="string"?s.label:typeof s.aggregator=="string"?s.aggregator:void 0,result:s.text??s.result}}function j(e){return e.map(t=>{const o=ve(t)?"tool":t.display_role||t.role,s={id:String(t.id),role:o==="moa"?"system":o,content:t.content||"",timestamp:t.timestamp*1e3,reasoning:t.reasoning||void 0,systemType:o==="command"?"command":void 0};if(t.role==="tool"||ve(t)){const r=rt(t.tool_name,t.content);s.toolName=t.tool_name||void 0,s.toolCallId=t.tool_call_id||void 0,s.toolArgs=t.tool_calls?.[0]?.function?.arguments?JSON.stringify(t.tool_calls[0].function.arguments):void 0,s.toolPreview=r?.preview,s.toolStatus=t.finish_reason==="error"?"error":"done",s.toolResult=r?r.result:t.content||void 0,s.content=""}return s})}function fe(e){const t=e.source==="coding_agent"||e.agent==="claude"||e.agent==="codex";return{agent:e.agent||void 0,agentSessionId:e.agent_session_id||void 0,agentNativeSessionId:e.agent_native_session_id||void 0,codingAgentId:e.agent==="codex"?"codex":e.agent==="claude"?"claude-code":void 0,codingAgentMode:t?e.agent_mode==="global"||e.agent_mode==="scoped"?e.agent_mode:e.provider==="global"?"global":"scoped":void 0}}function ut(e,t=[]){return{id:e.id,profile:e.profile||void 0,title:e.title||"",source:e.source,...fe(e),createdAt:e.started_at*1e3,updatedAt:(e.last_active||e.ended_at||e.started_at)*1e3,model:e.model,provider:e.provider,messageCount:e.message_count,messageTotal:e.message_count,loadedMessageCount:t.length,hasMoreBefore:!1,inputTokens:e.input_tokens,outputTokens:e.output_tokens,endedAt:e.ended_at?e.ended_at*1e3:void 0,lastActiveAt:e.last_active?e.last_active*1e3:void 0,isArchived:!!e.is_archived,workspace:e.workspace||void 0,messages:t}}async function ct(e,t){const o=A(e),s=t||o?.profile||null,r=await Be(e,0,ie,s);let M=null;if(r)M=ut(o||r.session,j(r.messages)),M.profile=o?.profile||s||void 0,M.messageCount=r.total,M.messageTotal=r.total,M.loadedMessageCount=r.messages.length,M.hasMoreBefore=r.hasMore;else{const l=await Ut(e,s);if(!l){h.error(i("chat.sessionNotFound"));return}M={id:l.id,profile:l.profile||s||void 0,title:l.title||"",source:l.source,createdAt:l.started_at*1e3,updatedAt:(l.last_active||l.started_at)*1e3,model:l.model,provider:l.provider,messageCount:l.message_count,messageTotal:l.message_count,loadedMessageCount:l.messages.length,hasMoreBefore:!1,inputTokens:l.input_tokens,outputTokens:l.output_tokens,endedAt:l.ended_at?l.ended_at*1e3:void 0,lastActiveAt:l.last_active?l.last_active*1e3:void 0,workspace:l.workspace||void 0,messages:j(l.messages)}}f.value=M.id,n.value=M,O?.matches&&(S.value=!1)}async function dt(e){const t=n.value;if(!t||t.id!==e||t.isLoadingOlderMessages||!t.hasMoreBefore)return!1;const o=t.loadedMessageCount||0;t.isLoadingOlderMessages=!0;try{const s=await Be(e,o,ie,t.profile);if(!s||s.messages.length===0)return t.hasMoreBefore=!1,!1;const r=new Set(t.messages.map(l=>l.id)),M=j(s.messages).filter(l=>!r.has(l.id));return t.messages=[...M,...t.messages],t.loadedMessageCount=o+s.messages.length,t.messageTotal=s.total,t.messageCount=s.total,t.hasMoreBefore=s.hasMore,M.length>0}catch(s){return console.error("Failed to load older history messages:",s),!1}finally{t.isLoadingOlderMessages=!1}}async function U(e,t){await P.push({name:"hermes.historySession",params:{sessionId:e},query:t?{profile:t}:void 0})}async function W(e=!1){const t=_.value.find(s=>s.source==="cli")||_.value[0];if(!t){f.value=null,n.value=null,F.value&&await P.replace({name:"hermes.history"});return}p.value.has(t.source)&&(p.value=new Set([...p.value].filter(s=>s!==t.source)));const o={name:"hermes.historySession",params:{sessionId:t.id},query:t.profile?{profile:t.profile}:void 0};e?await P.replace(o):await P.push(o)}async function pe(){const e=F.value;if(!e)return;if(!_.value.some(s=>s.id===e)){f.value=null,n.value=null,await P.replace({name:"hermes.history"});return}const t=N.value||A(e)?.profile||null,o=n.value?.profile||null;(f.value!==e||o!==t)&&(f.value=e,n.value=null,await ct(e,t))}function ee(e){de.value=e.matches,e.matches&&S.value&&(S.value=!1)}function he(){S.value=!0}qt(async()=>{st.loadModels(),await z.fetchProfiles(),await $(),await pe(),O=window.matchMedia("(max-width: 768px)"),ee(O),O.addEventListener("change",ee),window.addEventListener("hermes:open-page-sidebar",he)}),Ht(()=>{O?.removeEventListener("change",ee),window.removeEventListener("hermes:open-page-sidebar",he)}),Y([F,N],async([e])=>{if(!e){f.value=null,n.value=null;return}E.value&&(N.value&&!_.value.some(t=>t.profile===N.value)&&await $(),await pe())}),Y(()=>z.activeProfileName,async()=>{E.value&&(z.switching||(f.value=null,n.value=null,await $(),await W(!0)))});const p=v(new Set(JSON.parse(localStorage.getItem("hermes_collapsed_groups")||"[]")));function vt(e){return{id:e.id,profile:e.profile||void 0,title:e.title||"",source:e.source,...fe(e),createdAt:e.started_at*1e3,updatedAt:(e.last_active||e.started_at)*1e3,model:e.model,provider:e.provider,messageCount:e.message_count,inputTokens:e.input_tokens,outputTokens:e.output_tokens,endedAt:e.ended_at?e.ended_at*1e3:void 0,lastActiveAt:e.last_active?e.last_active*1e3:void 0,isArchived:!!e.is_archived,workspace:e.workspace||void 0,messages:[]}}const H=g(()=>_.value.map(vt));function V(e){return`${e.profile||"default"}\0${e.id}`}function ge(){w.value||(C.value=!C.value,C.value||(c.value.clear(),L.value=!1))}function G(e){if(w.value)return;const t=V(e);c.value.has(t)?c.value.delete(t):c.value.add(t),c.value=new Set(c.value),c.value.size===0&&(L.value=!1)}function _e(e){return c.value.has(V(e))}function ft(){if(!w.value){if(Se.value){c.value.clear(),c.value=new Set(c.value),L.value=!1;return}c.value.clear();for(const e of H.value)c.value.add(V(e));c.value=new Set(c.value)}}const we=g(()=>c.value.size),pt=g(()=>H.value.length>0),Se=g(()=>H.value.length>0&&c.value.size===H.value.length);function me(e){return e==="api_server"?-1:e==="cron"?999:0}function ye(e){return[...e].sort((t,o)=>(o.updatedAt||0)-(t.updatedAt||0))}const te=g(()=>ye(H.value.filter(e=>D.isPinned(e.id)))),K=g(()=>{const e=new Map;for(const t of H.value){if(D.isPinned(t.id))continue;const o=t.source||"";e.has(o)||e.set(o,[]),e.get(o).push(t)}return[...e.keys()].sort((t,o)=>{const s=me(t),r=me(o);return s!==r?s-r:t.localeCompare(o)}).map(t=>({source:t,label:t?Ae(t):i("chat.other"),sessions:ye(e.get(t))}))});function ht(e){if(!p.value.has(e))p.value=new Set([...p.value,e]);else{p.value=new Set(K.value.map(o=>o.source).filter(o=>o!==e));const t=K.value.find(o=>o.source===e);t?.sessions.length&&U(t.sessions[0].id,t.sessions[0].profile)}localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...p.value]))}Y(K,e=>{if(localStorage.getItem("hermes_collapsed_groups")!==null){const t=n.value?.source;t&&p.value.has(t)&&(p.value=new Set([...p.value].filter(o=>o!==t)),localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...p.value])));return}e.length>0&&(p.value=new Set(e.slice(1).map(t=>t.source)),localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...p.value])))},{once:!0}),Y(E,e=>{e&&_.value.length>0&&!F.value&&W(!1)},{once:!0});const gt=g(()=>n.value?.title||i("chat.newChat")),ke=g(()=>n.value?.source||"");async function be(e){const t=e||f.value;t&&(await Pe(t)?h.success(i("common.copied")):h.error(i("common.copied")+" ✗"))}function _t(e){return n.value?.id===e?n.value.profile||null:A(e)?.profile||null}function wt(e,t){const o=P.resolve({name:"hermes.historySession",params:{sessionId:e},query:t?{profile:t}:void 0}).href;return`${window.location.origin}${window.location.pathname}${o}`}async function St(e){const t=e||f.value;t&&(await Pe(wt(t,_t(t)))?h.success(i("common.copied")):h.error(i("common.copied")+" ✗"))}function Ce(e,t){e.preventDefault(),x.value=t,J.value=!0,ue.value=e.clientX,ce.value=e.clientY}function mt(){J.value=!1}async function yt(e){const t=A(e);try{const o=await Wt(e,t?.profile||null);if(o.ok){h.success(i(o.imported?"chat.importSessionSuccess":"chat.importSessionAlreadyExists")),await $();return}}catch{}h.error(i("chat.importSessionFailed"))}async function kt(e){if(J.value=!1,!!x.value){if(e==="pin")D.togglePinned(x.value);else if(e==="copy-link")await St(x.value);else if(e==="copy-id")await be(x.value);else if(e==="import-webui")await yt(x.value);else if(e==="unarchive"){if(!Z.value?.is_archived)return;if(!await Rt(x.value)){h.error(i("chat.unarchiveSessionFailed"));return}h.success(i("chat.sessionUnarchived")),await $(),A(x.value)||(f.value=null,n.value=null,await P.replace({name:"hermes.history"}),await W(!0))}}}async function xe(e,t){const o=A(e);if(!await Gt(e,t||o?.profile||null)){h.error(i("common.deleteFailed"));return}if(D.removePinned(e),_.value=_.value.filter(s=>s.id!==e),f.value===e){f.value=null,n.value=null;const s=H.value[0];s?await U(s.id,s.profile):await P.replace({name:"hermes.history"})}h.success(i("chat.sessionDeleted"))}async function bt(){if(c.value.size===0||w.value)return;const e=new Map(H.value.map(s=>[V(s),s])),t=Array.from(c.value).map(s=>e.get(s)).filter(s=>!!s).map(s=>({id:s.id,profile:s.profile||null}));if(t.length===0)return;const o=n.value?c.value.has(V(n.value)):!1;w.value=!0;try{const s=await Yt(t);if(s.deleted>0){for(const r of t)D.removePinned(r.id);await $(),(o||f.value&&!A(f.value))&&(f.value=null,n.value=null,await W(!0)),h.success(i("chat.batchDeleteSuccess",{count:s.deleted})),s.failed>0&&h.warning(i("chat.batchDeletePartial",{failed:s.failed}))}else h.error(i("chat.batchDeleteFailed"))}catch{h.error(i("chat.batchDeleteFailed"))}finally{w.value=!1,L.value=!1,C.value=!1,c.value.clear()}}function Ct(){return bt(),!1}return(e,t)=>(d(),b("div",Te,[a("div",{class:ae(["session-backdrop",{active:S.value}]),onClick:t[0]||(t[0]=o=>S.value=!1)},null,2),a("aside",{class:ae(["session-list",{collapsed:!S.value}])},[S.value?(d(),b("div",Ie,[B(ns,{active:"history","primary-label":u(i)("chat.newChat"),"hide-mode-switch":"",onPrimary:it},null,8,["primary-label"]),a("div",De,[a("span",Le,k(u(i)("chat.hermesHistory")),1),a("div",$e,[a("button",{class:"session-close-btn",onClick:t[1]||(t[1]=o=>S.value=!1)},[...t[6]||(t[6]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),C.value?y("",!0):(d(),T(u(I),{key:0,quaternary:"",size:"tiny",disabled:_.value.length===0,title:u(i)("chat.toggleBatchMode"),onClick:ge},{icon:m(()=>[...t[7]||(t[7]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M9 11l3 3L22 4"}),a("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})],-1)])]),_:1},8,["disabled","title"])),C.value?(d(),T(u(I),{key:1,quaternary:"",size:"tiny",disabled:!pt.value||w.value,title:Se.value?u(i)("common.cancel"):u(i)("chat.selectAll"),onClick:ft},{icon:m(()=>[...t[8]||(t[8]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M9 11l3 3L22 4"}),a("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})],-1)])]),_:1},8,["disabled","title"])):y("",!0),C.value&&we.value>0?(d(),T(u($t),{key:2,show:L.value,"onUpdate:show":t[2]||(t[2]=o=>L.value=o),"positive-button-props":{loading:w.value,disabled:w.value},"negative-button-props":{disabled:w.value},onPositiveClick:Ct},{trigger:m(()=>[B(u(I),{quaternary:"",size:"tiny",type:"error",loading:w.value,disabled:w.value},{icon:m(()=>[...t[9]||(t[9]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("polyline",{points:"3 6 5 6 21 6"}),a("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])]),_:1},8,["loading","disabled"])]),default:m(()=>[oe(" "+k(u(i)("chat.confirmBatchDelete",{count:we.value})),1)]),_:1},8,["show","positive-button-props","negative-button-props"])):y("",!0),C.value?(d(),T(u(I),{key:3,quaternary:"",size:"tiny",disabled:w.value,onClick:ge},{icon:m(()=>[...t[10]||(t[10]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),_:1},8,["disabled"])):y("",!0)])])])):y("",!0),S.value?(d(),b("div",Ne,[Q.value&&_.value.length===0?(d(),b("div",Oe,k(u(i)("common.loading")),1)):_.value.length===0?(d(),b("div",Ve,k(u(i)("chat.noSessions")),1)):y("",!0),te.value.length>0?(d(),b(q,{key:2},[a("div",qe,[a("span",ze,k(u(i)("chat.pinned")),1),a("span",Fe,k(te.value.length),1)]),(d(!0),b(q,null,se(te.value,o=>(d(),T(He,{key:`pinned-${o.id}`,session:o,active:o.id===f.value,pinned:!0,"can-delete":!0,streaming:!1,selectable:C.value,selected:_e(o),"show-profile":!0,onSelect:s=>C.value?G(o):U(o.id,o.profile),onContextmenu:s=>Ce(s,o.id),onDelete:s=>xe(o.id,o.profile),onToggleSelect:s=>G(o)},null,8,["session","active","selectable","selected","onSelect","onContextmenu","onDelete","onToggleSelect"]))),128))],64)):y("",!0),(d(!0),b(q,null,se(K.value,o=>(d(),b(q,{key:o.source},[a("div",{class:"session-group-header",onClick:s=>ht(o.source)},[(d(),b("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:ae(["group-chevron",{collapsed:p.value.has(o.source)}])},[...t[11]||(t[11]=[a("polyline",{points:"9 18 15 12 9 6"},null,-1)])],2)),a("span",Re,k(o.label),1),a("span",Je,k(o.sessions.length),1)],8,Ee),p.value.has(o.source)?y("",!0):(d(!0),b(q,{key:0},se(o.sessions,s=>(d(),T(He,{key:s.id,session:s,active:s.id===f.value,pinned:!1,"can-delete":!0,streaming:!1,selectable:C.value,selected:_e(s),"show-profile":!0,onSelect:r=>C.value?G(s):U(s.id,s.profile),onContextmenu:r=>Ce(r,s.id),onDelete:r=>xe(s.id,s.profile),onToggleSelect:r=>G(s)},null,8,["session","active","selectable","selected","onSelect","onContextmenu","onDelete","onToggleSelect"]))),128))],64))),128))])):y("",!0),S.value?(d(),T(cs,{key:2})):y("",!0)],2),B(u(zt),{placement:"bottom-start",trigger:"manual",x:ue.value,y:ce.value,options:lt.value,show:J.value,onSelect:kt,onClickoutside:mt},null,8,["x","y","options","show"]),a("div",Ue,[a("header",We,[a("div",Ge,[B(u(I),{class:"history-sidebar-toggle",quaternary:"",size:"small",onClick:t[3]||(t[3]=o=>S.value=!S.value),circle:""},{icon:m(()=>[...t[12]||(t[12]=[a("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[a("rect",{x:"3",y:"3",width:"7",height:"7"}),a("rect",{x:"14",y:"3",width:"7",height:"7"}),a("rect",{x:"3",y:"14",width:"7",height:"7"}),a("rect",{x:"14",y:"14",width:"7",height:"7"})],-1)])]),_:1}),a("span",Ke,k(gt.value),1),ke.value?(d(),b("span",Ye,k(u(Ae)(ke.value)),1)):y("",!0),n.value?.workspace?(d(),b("span",{key:1,class:"workspace-badge",title:n.value.workspace},"📁 "+k(n.value.workspace.split("/").pop()||n.value.workspace),9,Qe)):y("",!0)]),a("div",Xe,[B(u(Me),{trigger:"hover"},{trigger:m(()=>[B(u(I),{quaternary:"",size:"small",onClick:t[4]||(t[4]=o=>R.value=!R.value),circle:""},{icon:m(()=>[...t[13]||(t[13]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[a("path",{d:"M3 12h18M3 6h18M3 18h18"})],-1)])]),_:1})]),default:m(()=>[oe(" "+k(u(i)("chat.outlineTitle")),1)]),_:1}),B(u(Me),{trigger:"hover"},{trigger:m(()=>[B(u(I),{quaternary:"",size:"small",onClick:t[5]||(t[5]=o=>be()),circle:""},{icon:m(()=>[...t[14]||(t[14]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[a("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),a("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])]),_:1})]),default:m(()=>[oe(" "+k(u(i)("chat.copySessionId")),1)]),_:1})])]),a("div",Ze,[a("div",je,[B(rs,{ref_key:"historyMessageListRef",ref:re,session:n.value,"load-older":dt},null,8,["session"])]),R.value&&n.value?(d(),T(as,{key:0,messages:n.value.messages||[],onNavigate:at},null,8,["messages"])):y("",!0)])])]))}})})),ds=ne((()=>{})),vs,fs=ne((()=>{et(),et(),ds(),Dt(),vs=Ot(tt,[["__scopeId","data-v-0fb8c464"]])}));fs();export{vs as default};
1
+ import{$r as T,Ci as d,Cr as xt,Ct as Me,E as Mt,Gi as v,Hr as Pt,Lr as Bt,Mi as Y,Pi as m,Qi as u,Qr as a,Rr as At,Si as Ht,Ti as se,Ut as I,Yr as q,Zr as g,aa as ne,ai as oe,ci as Tt,ct as It,ea as ae,ei as y,n as Dt,o as Lt,oi as B,q as $t,ra as k,s as Nt,t as Ot,ti as b,wr as Vt,xi as qt,yt as zt,zr as Ft}from"./index-RJQqJC6n.js";import{n as Et,t as Pe}from"./clipboard-DYlTCW_e.js";import{E as Rt,_ as Jt,c as Ut,d as Be,g as Wt,i as Gt,l as Kt,n as Yt}from"./sessions-wVroPs5k.js";import{r as Qt,t as Xt}from"./profiles-BtECgqqD.js";import{n as Zt}from"./chat-BHkNRr2D.js";import{n as jt,t as es}from"./session-browser-prefs-DnMXaw-N.js";import{i as ts,n as ss,o as Ae,r as He,s as os,t as as}from"./OutlinePanel-DD6XxWAu.js";import{i as is,r as ns}from"./SettingsCircuitBadge-2VINGRjT.js";import{n as ls,t as rs}from"./HistoryMessageList--MuOQ24m.js";import{n as us,t as cs}from"./PageSidebarFooter-DFaGG_bk.js";var Te,Ie,De,Le,$e,Ne,Oe,Ve,qe,ze,Fe,Ee,Re,Je,Ue,We,Ge,Ke,Ye,Qe,Xe,Ze,je,ie,tt,et=ne((()=>{Pt(),Bt(),Zt(),Lt(),Xt(),es(),Mt(),xt(),os(),Et(),ls(),ts(),ss(),is(),us(),Jt(),Te={class:"history-panel"},Ie={key:0,class:"page-sidebar-top"},De={class:"session-list-toolbar"},Le={class:"session-list-title"},$e={class:"session-list-actions"},Ne={key:1,class:"session-items"},Oe={key:0,class:"session-loading"},Ve={key:1,class:"session-empty"},qe={class:"session-group-header session-group-header--static"},ze={class:"session-group-label"},Fe={class:"session-group-count"},Ee=["onClick"],Re={class:"session-group-label"},Je={class:"session-group-count"},Ue={class:"chat-main"},We={class:"chat-header"},Ge={class:"header-left"},Ke={class:"header-session-title"},Ye={key:0,class:"source-badge"},Qe=["title"],Xe={class:"header-actions"},Ze={class:"history-content-wrapper"},je={class:"history-main-content"},ie=150,tt=Tt({__name:"HistoryView",setup(ps){const st=Nt(),z=Qt(),D=jt(),h=It(),{t:i}=Vt(),le=At(),P=Ft(),F=g(()=>{const e=le.params.sessionId;return typeof e=="string"&&e.trim()?e:null}),N=g(()=>{const e=le.query.profile;return typeof e=="string"&&e.trim()?e:null}),ot=g(()=>z.activeProfileName||N.value||null),_=v([]),Q=v(!1),E=v(!1),f=v(null),n=v(null),R=v(!1),re=v(null),C=v(!1),w=v(!1),L=v(!1),c=v(new Set),x=v(null),J=v(!1),ue=v(0),ce=v(0);let X=0;function at(e){re.value?.scrollToAnchor(e.messageId,e.anchorId),de.value&&(R.value=!1)}function it(){P.push({name:"hermes.chat"})}async function $(){const e=++X;Q.value=!0;try{const t=await Kt(void 0,void 0,ot.value);if(e!==X)return;_.value=t,E.value=!0}catch(t){console.error("Failed to load Hermes sessions:",t)}finally{e===X&&(Q.value=!1)}}const S=v(typeof window>"u"||!window.matchMedia("(max-width: 768px)").matches);let O=null;const de=v(!1);function A(e){return _.value.find(t=>t.id===e)}const Z=g(()=>x.value&&A(x.value)||null),nt=g(()=>x.value?D.isPinned(x.value):!1),lt=g(()=>[{label:i("chat.importToWebUi"),key:"import-webui",disabled:!!Z.value?.webui_imported},{label:i(nt.value?"chat.unpin":"chat.pin"),key:"pin"},...Z.value?.is_archived?[{label:i("chat.unarchiveSession"),key:"unarchive"}]:[],{label:i("chat.copySessionLink"),key:"copy-link"},{label:i("chat.copySessionId"),key:"copy-id"}]);function ve(e){return(e.role==="moa"||e.display_role==="tool")&&(e.tool_name==="moa_reference"||e.tool_name==="moa_aggregating")}function rt(e,t){if(e!=="moa_reference"&&e!=="moa_aggregating")return null;const o=typeof t=="string"?(()=>{try{return JSON.parse(t)}catch{return null}})():t;if(!o||typeof o!="object")return null;const s=o;return{preview:typeof s.preview=="string"?s.preview:typeof s.label=="string"?s.label:typeof s.aggregator=="string"?s.aggregator:void 0,result:s.text??s.result}}function j(e){return e.map(t=>{const o=ve(t)?"tool":t.display_role||t.role,s={id:String(t.id),role:o==="moa"?"system":o,content:t.content||"",timestamp:t.timestamp*1e3,reasoning:t.reasoning||void 0,systemType:o==="command"?"command":void 0};if(t.role==="tool"||ve(t)){const r=rt(t.tool_name,t.content);s.toolName=t.tool_name||void 0,s.toolCallId=t.tool_call_id||void 0,s.toolArgs=t.tool_calls?.[0]?.function?.arguments?JSON.stringify(t.tool_calls[0].function.arguments):void 0,s.toolPreview=r?.preview,s.toolStatus=t.finish_reason==="error"?"error":"done",s.toolResult=r?r.result:t.content||void 0,s.content=""}return s})}function fe(e){const t=e.source==="coding_agent"||e.agent==="claude"||e.agent==="codex";return{agent:e.agent||void 0,agentSessionId:e.agent_session_id||void 0,agentNativeSessionId:e.agent_native_session_id||void 0,codingAgentId:e.agent==="codex"?"codex":e.agent==="claude"?"claude-code":void 0,codingAgentMode:t?e.agent_mode==="global"||e.agent_mode==="scoped"?e.agent_mode:e.provider==="global"?"global":"scoped":void 0}}function ut(e,t=[]){return{id:e.id,profile:e.profile||void 0,title:e.title||"",source:e.source,...fe(e),createdAt:e.started_at*1e3,updatedAt:(e.last_active||e.ended_at||e.started_at)*1e3,model:e.model,provider:e.provider,messageCount:e.message_count,messageTotal:e.message_count,loadedMessageCount:t.length,hasMoreBefore:!1,inputTokens:e.input_tokens,outputTokens:e.output_tokens,endedAt:e.ended_at?e.ended_at*1e3:void 0,lastActiveAt:e.last_active?e.last_active*1e3:void 0,isArchived:!!e.is_archived,workspace:e.workspace||void 0,messages:t}}async function ct(e,t){const o=A(e),s=t||o?.profile||null,r=await Be(e,0,ie,s);let M=null;if(r)M=ut(o||r.session,j(r.messages)),M.profile=o?.profile||s||void 0,M.messageCount=r.total,M.messageTotal=r.total,M.loadedMessageCount=r.messages.length,M.hasMoreBefore=r.hasMore;else{const l=await Ut(e,s);if(!l){h.error(i("chat.sessionNotFound"));return}M={id:l.id,profile:l.profile||s||void 0,title:l.title||"",source:l.source,createdAt:l.started_at*1e3,updatedAt:(l.last_active||l.started_at)*1e3,model:l.model,provider:l.provider,messageCount:l.message_count,messageTotal:l.message_count,loadedMessageCount:l.messages.length,hasMoreBefore:!1,inputTokens:l.input_tokens,outputTokens:l.output_tokens,endedAt:l.ended_at?l.ended_at*1e3:void 0,lastActiveAt:l.last_active?l.last_active*1e3:void 0,workspace:l.workspace||void 0,messages:j(l.messages)}}f.value=M.id,n.value=M,O?.matches&&(S.value=!1)}async function dt(e){const t=n.value;if(!t||t.id!==e||t.isLoadingOlderMessages||!t.hasMoreBefore)return!1;const o=t.loadedMessageCount||0;t.isLoadingOlderMessages=!0;try{const s=await Be(e,o,ie,t.profile);if(!s||s.messages.length===0)return t.hasMoreBefore=!1,!1;const r=new Set(t.messages.map(l=>l.id)),M=j(s.messages).filter(l=>!r.has(l.id));return t.messages=[...M,...t.messages],t.loadedMessageCount=o+s.messages.length,t.messageTotal=s.total,t.messageCount=s.total,t.hasMoreBefore=s.hasMore,M.length>0}catch(s){return console.error("Failed to load older history messages:",s),!1}finally{t.isLoadingOlderMessages=!1}}async function U(e,t){await P.push({name:"hermes.historySession",params:{sessionId:e},query:t?{profile:t}:void 0})}async function W(e=!1){const t=_.value.find(s=>s.source==="cli")||_.value[0];if(!t){f.value=null,n.value=null,F.value&&await P.replace({name:"hermes.history"});return}p.value.has(t.source)&&(p.value=new Set([...p.value].filter(s=>s!==t.source)));const o={name:"hermes.historySession",params:{sessionId:t.id},query:t.profile?{profile:t.profile}:void 0};e?await P.replace(o):await P.push(o)}async function pe(){const e=F.value;if(!e)return;if(!_.value.some(s=>s.id===e)){f.value=null,n.value=null,await P.replace({name:"hermes.history"});return}const t=N.value||A(e)?.profile||null,o=n.value?.profile||null;(f.value!==e||o!==t)&&(f.value=e,n.value=null,await ct(e,t))}function ee(e){de.value=e.matches,e.matches&&S.value&&(S.value=!1)}function he(){S.value=!0}qt(async()=>{st.loadModels(),await z.fetchProfiles(),await $(),await pe(),O=window.matchMedia("(max-width: 768px)"),ee(O),O.addEventListener("change",ee),window.addEventListener("hermes:open-page-sidebar",he)}),Ht(()=>{O?.removeEventListener("change",ee),window.removeEventListener("hermes:open-page-sidebar",he)}),Y([F,N],async([e])=>{if(!e){f.value=null,n.value=null;return}E.value&&(N.value&&!_.value.some(t=>t.profile===N.value)&&await $(),await pe())}),Y(()=>z.activeProfileName,async()=>{E.value&&(z.switching||(f.value=null,n.value=null,await $(),await W(!0)))});const p=v(new Set(JSON.parse(localStorage.getItem("hermes_collapsed_groups")||"[]")));function vt(e){return{id:e.id,profile:e.profile||void 0,title:e.title||"",source:e.source,...fe(e),createdAt:e.started_at*1e3,updatedAt:(e.last_active||e.started_at)*1e3,model:e.model,provider:e.provider,messageCount:e.message_count,inputTokens:e.input_tokens,outputTokens:e.output_tokens,endedAt:e.ended_at?e.ended_at*1e3:void 0,lastActiveAt:e.last_active?e.last_active*1e3:void 0,isArchived:!!e.is_archived,workspace:e.workspace||void 0,messages:[]}}const H=g(()=>_.value.map(vt));function V(e){return`${e.profile||"default"}\0${e.id}`}function ge(){w.value||(C.value=!C.value,C.value||(c.value.clear(),L.value=!1))}function G(e){if(w.value)return;const t=V(e);c.value.has(t)?c.value.delete(t):c.value.add(t),c.value=new Set(c.value),c.value.size===0&&(L.value=!1)}function _e(e){return c.value.has(V(e))}function ft(){if(!w.value){if(Se.value){c.value.clear(),c.value=new Set(c.value),L.value=!1;return}c.value.clear();for(const e of H.value)c.value.add(V(e));c.value=new Set(c.value)}}const we=g(()=>c.value.size),pt=g(()=>H.value.length>0),Se=g(()=>H.value.length>0&&c.value.size===H.value.length);function me(e){return e==="api_server"?-1:e==="cron"?999:0}function ye(e){return[...e].sort((t,o)=>(o.updatedAt||0)-(t.updatedAt||0))}const te=g(()=>ye(H.value.filter(e=>D.isPinned(e.id)))),K=g(()=>{const e=new Map;for(const t of H.value){if(D.isPinned(t.id))continue;const o=t.source||"";e.has(o)||e.set(o,[]),e.get(o).push(t)}return[...e.keys()].sort((t,o)=>{const s=me(t),r=me(o);return s!==r?s-r:t.localeCompare(o)}).map(t=>({source:t,label:t?Ae(t):i("chat.other"),sessions:ye(e.get(t))}))});function ht(e){if(!p.value.has(e))p.value=new Set([...p.value,e]);else{p.value=new Set(K.value.map(o=>o.source).filter(o=>o!==e));const t=K.value.find(o=>o.source===e);t?.sessions.length&&U(t.sessions[0].id,t.sessions[0].profile)}localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...p.value]))}Y(K,e=>{if(localStorage.getItem("hermes_collapsed_groups")!==null){const t=n.value?.source;t&&p.value.has(t)&&(p.value=new Set([...p.value].filter(o=>o!==t)),localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...p.value])));return}e.length>0&&(p.value=new Set(e.slice(1).map(t=>t.source)),localStorage.setItem("hermes_collapsed_groups",JSON.stringify([...p.value])))},{once:!0}),Y(E,e=>{e&&_.value.length>0&&!F.value&&W(!1)},{once:!0});const gt=g(()=>n.value?.title||i("chat.newChat")),ke=g(()=>n.value?.source||"");async function be(e){const t=e||f.value;t&&(await Pe(t)?h.success(i("common.copied")):h.error(i("common.copied")+" ✗"))}function _t(e){return n.value?.id===e?n.value.profile||null:A(e)?.profile||null}function wt(e,t){const o=P.resolve({name:"hermes.historySession",params:{sessionId:e},query:t?{profile:t}:void 0}).href;return`${window.location.origin}${window.location.pathname}${o}`}async function St(e){const t=e||f.value;t&&(await Pe(wt(t,_t(t)))?h.success(i("common.copied")):h.error(i("common.copied")+" ✗"))}function Ce(e,t){e.preventDefault(),x.value=t,J.value=!0,ue.value=e.clientX,ce.value=e.clientY}function mt(){J.value=!1}async function yt(e){const t=A(e);try{const o=await Wt(e,t?.profile||null);if(o.ok){h.success(i(o.imported?"chat.importSessionSuccess":"chat.importSessionAlreadyExists")),await $();return}}catch{}h.error(i("chat.importSessionFailed"))}async function kt(e){if(J.value=!1,!!x.value){if(e==="pin")D.togglePinned(x.value);else if(e==="copy-link")await St(x.value);else if(e==="copy-id")await be(x.value);else if(e==="import-webui")await yt(x.value);else if(e==="unarchive"){if(!Z.value?.is_archived)return;if(!await Rt(x.value)){h.error(i("chat.unarchiveSessionFailed"));return}h.success(i("chat.sessionUnarchived")),await $(),A(x.value)||(f.value=null,n.value=null,await P.replace({name:"hermes.history"}),await W(!0))}}}async function xe(e,t){const o=A(e);if(!await Gt(e,t||o?.profile||null)){h.error(i("common.deleteFailed"));return}if(D.removePinned(e),_.value=_.value.filter(s=>s.id!==e),f.value===e){f.value=null,n.value=null;const s=H.value[0];s?await U(s.id,s.profile):await P.replace({name:"hermes.history"})}h.success(i("chat.sessionDeleted"))}async function bt(){if(c.value.size===0||w.value)return;const e=new Map(H.value.map(s=>[V(s),s])),t=Array.from(c.value).map(s=>e.get(s)).filter(s=>!!s).map(s=>({id:s.id,profile:s.profile||null}));if(t.length===0)return;const o=n.value?c.value.has(V(n.value)):!1;w.value=!0;try{const s=await Yt(t);if(s.deleted>0){for(const r of t)D.removePinned(r.id);await $(),(o||f.value&&!A(f.value))&&(f.value=null,n.value=null,await W(!0)),h.success(i("chat.batchDeleteSuccess",{count:s.deleted})),s.failed>0&&h.warning(i("chat.batchDeletePartial",{failed:s.failed}))}else h.error(i("chat.batchDeleteFailed"))}catch{h.error(i("chat.batchDeleteFailed"))}finally{w.value=!1,L.value=!1,C.value=!1,c.value.clear()}}function Ct(){return bt(),!1}return(e,t)=>(d(),b("div",Te,[a("div",{class:ae(["session-backdrop",{active:S.value}]),onClick:t[0]||(t[0]=o=>S.value=!1)},null,2),a("aside",{class:ae(["session-list",{collapsed:!S.value}])},[S.value?(d(),b("div",Ie,[B(ns,{active:"history","primary-label":u(i)("chat.newChat"),"hide-mode-switch":"",onPrimary:it},null,8,["primary-label"]),a("div",De,[a("span",Le,k(u(i)("chat.hermesHistory")),1),a("div",$e,[a("button",{class:"session-close-btn",onClick:t[1]||(t[1]=o=>S.value=!1)},[...t[6]||(t[6]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),C.value?y("",!0):(d(),T(u(I),{key:0,quaternary:"",size:"tiny",disabled:_.value.length===0,title:u(i)("chat.toggleBatchMode"),onClick:ge},{icon:m(()=>[...t[7]||(t[7]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M9 11l3 3L22 4"}),a("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})],-1)])]),_:1},8,["disabled","title"])),C.value?(d(),T(u(I),{key:1,quaternary:"",size:"tiny",disabled:!pt.value||w.value,title:Se.value?u(i)("common.cancel"):u(i)("chat.selectAll"),onClick:ft},{icon:m(()=>[...t[8]||(t[8]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("path",{d:"M9 11l3 3L22 4"}),a("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})],-1)])]),_:1},8,["disabled","title"])):y("",!0),C.value&&we.value>0?(d(),T(u($t),{key:2,show:L.value,"onUpdate:show":t[2]||(t[2]=o=>L.value=o),"positive-button-props":{loading:w.value,disabled:w.value},"negative-button-props":{disabled:w.value},onPositiveClick:Ct},{trigger:m(()=>[B(u(I),{quaternary:"",size:"tiny",type:"error",loading:w.value,disabled:w.value},{icon:m(()=>[...t[9]||(t[9]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("polyline",{points:"3 6 5 6 21 6"}),a("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])]),_:1},8,["loading","disabled"])]),default:m(()=>[oe(" "+k(u(i)("chat.confirmBatchDelete",{count:we.value})),1)]),_:1},8,["show","positive-button-props","negative-button-props"])):y("",!0),C.value?(d(),T(u(I),{key:3,quaternary:"",size:"tiny",disabled:w.value,onClick:ge},{icon:m(()=>[...t[10]||(t[10]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[a("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])]),_:1},8,["disabled"])):y("",!0)])])])):y("",!0),S.value?(d(),b("div",Ne,[Q.value&&_.value.length===0?(d(),b("div",Oe,k(u(i)("common.loading")),1)):_.value.length===0?(d(),b("div",Ve,k(u(i)("chat.noSessions")),1)):y("",!0),te.value.length>0?(d(),b(q,{key:2},[a("div",qe,[a("span",ze,k(u(i)("chat.pinned")),1),a("span",Fe,k(te.value.length),1)]),(d(!0),b(q,null,se(te.value,o=>(d(),T(He,{key:`pinned-${o.id}`,session:o,active:o.id===f.value,pinned:!0,"can-delete":!0,streaming:!1,selectable:C.value,selected:_e(o),"show-profile":!0,onSelect:s=>C.value?G(o):U(o.id,o.profile),onContextmenu:s=>Ce(s,o.id),onDelete:s=>xe(o.id,o.profile),onToggleSelect:s=>G(o)},null,8,["session","active","selectable","selected","onSelect","onContextmenu","onDelete","onToggleSelect"]))),128))],64)):y("",!0),(d(!0),b(q,null,se(K.value,o=>(d(),b(q,{key:o.source},[a("div",{class:"session-group-header",onClick:s=>ht(o.source)},[(d(),b("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",class:ae(["group-chevron",{collapsed:p.value.has(o.source)}])},[...t[11]||(t[11]=[a("polyline",{points:"9 18 15 12 9 6"},null,-1)])],2)),a("span",Re,k(o.label),1),a("span",Je,k(o.sessions.length),1)],8,Ee),p.value.has(o.source)?y("",!0):(d(!0),b(q,{key:0},se(o.sessions,s=>(d(),T(He,{key:s.id,session:s,active:s.id===f.value,pinned:!1,"can-delete":!0,streaming:!1,selectable:C.value,selected:_e(s),"show-profile":!0,onSelect:r=>C.value?G(s):U(s.id,s.profile),onContextmenu:r=>Ce(r,s.id),onDelete:r=>xe(s.id,s.profile),onToggleSelect:r=>G(s)},null,8,["session","active","selectable","selected","onSelect","onContextmenu","onDelete","onToggleSelect"]))),128))],64))),128))])):y("",!0),S.value?(d(),T(cs,{key:2})):y("",!0)],2),B(u(zt),{placement:"bottom-start",trigger:"manual",x:ue.value,y:ce.value,options:lt.value,show:J.value,onSelect:kt,onClickoutside:mt},null,8,["x","y","options","show"]),a("div",Ue,[a("header",We,[a("div",Ge,[B(u(I),{class:"history-sidebar-toggle",quaternary:"",size:"small",onClick:t[3]||(t[3]=o=>S.value=!S.value),circle:""},{icon:m(()=>[...t[12]||(t[12]=[a("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[a("rect",{x:"3",y:"3",width:"7",height:"7"}),a("rect",{x:"14",y:"3",width:"7",height:"7"}),a("rect",{x:"3",y:"14",width:"7",height:"7"}),a("rect",{x:"14",y:"14",width:"7",height:"7"})],-1)])]),_:1}),a("span",Ke,k(gt.value),1),ke.value?(d(),b("span",Ye,k(u(Ae)(ke.value)),1)):y("",!0),n.value?.workspace?(d(),b("span",{key:1,class:"workspace-badge",title:n.value.workspace},"📁 "+k(n.value.workspace.split("/").pop()||n.value.workspace),9,Qe)):y("",!0)]),a("div",Xe,[B(u(Me),{trigger:"hover"},{trigger:m(()=>[B(u(I),{quaternary:"",size:"small",onClick:t[4]||(t[4]=o=>R.value=!R.value),circle:""},{icon:m(()=>[...t[13]||(t[13]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[a("path",{d:"M3 12h18M3 6h18M3 18h18"})],-1)])]),_:1})]),default:m(()=>[oe(" "+k(u(i)("chat.outlineTitle")),1)]),_:1}),B(u(Me),{trigger:"hover"},{trigger:m(()=>[B(u(I),{quaternary:"",size:"small",onClick:t[5]||(t[5]=o=>be()),circle:""},{icon:m(()=>[...t[14]||(t[14]=[a("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[a("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),a("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])]),_:1})]),default:m(()=>[oe(" "+k(u(i)("chat.copySessionId")),1)]),_:1})])]),a("div",Ze,[a("div",je,[B(rs,{ref_key:"historyMessageListRef",ref:re,session:n.value,"load-older":dt},null,8,["session"])]),R.value&&n.value?(d(),T(as,{key:0,messages:n.value.messages||[],onNavigate:at},null,8,["messages"])):y("",!0)])])]))}})})),ds=ne((()=>{})),vs,fs=ne((()=>{et(),et(),ds(),Dt(),vs=Ot(tt,[["__scopeId","data-v-0fb8c464"]])}));fs();export{vs as default};