hermes-web-ui 0.4.6 → 0.4.7

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 (181) hide show
  1. package/README.md +22 -25
  2. package/dist/client/assets/{Add-D7GrQ-Em.js → Add-kQWqsiFL.js} +1 -1
  3. package/dist/client/assets/{Button-XML6qzjK.js → Button-CYfnxZGL.js} +1 -1
  4. package/dist/client/assets/ChannelsView-D7-c-TzX.js +1 -0
  5. package/dist/client/assets/ChatView-BGRD1dj9.css +1 -0
  6. package/dist/client/assets/ChatView-pE3oYV9V.js +5 -0
  7. package/dist/client/assets/{Close-CVswUl20.js → Close-KtP3JjXR.js} +1 -1
  8. package/dist/client/assets/{Dropdown-PWEJ7U74.js → Dropdown-BTBREaY0.js} +1 -1
  9. package/dist/client/assets/{Empty-D2AE_ZlK.js → Empty-BAcqsGZi.js} +1 -1
  10. package/dist/client/assets/{FilesView-CYbVjetd.js → FilesView-N-PS2NIw.js} +7 -7
  11. package/dist/client/assets/{FormItem-DryuDiWg.js → FormItem-Cc8qgWls.js} +1 -1
  12. package/dist/client/assets/{GatewaysView-BM8MVoUJ.js → GatewaysView-KYqN3OIu.js} +1 -1
  13. package/dist/client/assets/{GroupChatView-mALkeZI8.js → GroupChatView-B3jR4-lV.js} +4 -5
  14. package/dist/client/assets/GroupChatView-CIvYG7gd.css +1 -0
  15. package/dist/client/assets/{Input-DWLw7VSO.js → Input-dIiSr6EM.js} +1 -1
  16. package/dist/client/assets/{InputNumber-DWU7lpWO.js → InputNumber-DxP12ti-.js} +1 -1
  17. package/dist/client/assets/{JobsView-DPcCqfeg.js → JobsView-Dzwljeqw.js} +2 -2
  18. package/dist/client/assets/{LoginView-Didr-64F.js → LoginView-kpAmnFDK.js} +1 -1
  19. package/dist/client/assets/{LogsView-BPL2WKzs.js → LogsView-i0dk4VL9.js} +1 -1
  20. package/dist/client/assets/{MarkdownRenderer-Dzf2i2R9.js → MarkdownRenderer-bm7e-MHu.js} +1 -1
  21. package/dist/client/assets/{MemoryView-B5zb27Cz.js → MemoryView-Cpvc-rhp.js} +1 -1
  22. package/dist/client/assets/{Modal-CcDwIOab.js → Modal-Bnl1jpF4.js} +1 -1
  23. package/dist/client/assets/ModelsView-Z7OAOz6p.js +83 -0
  24. package/dist/client/assets/{ModelsView-F_q0SOew.css → ModelsView-ocu_HZQH.css} +1 -1
  25. package/dist/client/assets/{Popconfirm-zfNVjMed.js → Popconfirm-B0R5Gnxu.js} +1 -1
  26. package/dist/client/assets/{Popover-Df4h1K87.js → Popover-B_5YtxbH.js} +1 -1
  27. package/dist/client/assets/{ProfilesView-DtJPNWxS.js → ProfilesView-Bu2lYETi.js} +1 -1
  28. package/dist/client/assets/{Select-CN-VEjPp.js → Select-BH-f48aR.js} +1 -1
  29. package/dist/client/assets/SettingRow-BYpLxDCJ.js +1 -0
  30. package/dist/client/assets/{SettingsView-Dx7VgzgQ.js → SettingsView-BWQkHKxC.js} +1 -1
  31. package/dist/client/assets/{SkillsView-Cqqjs5MV.js → SkillsView-CNUzcbbg.js} +1 -1
  32. package/dist/client/assets/Space-Bj2Rw-BX.js +1 -0
  33. package/dist/client/assets/{Spin-DicuilvT.js → Spin-DxvIMvuO.js} +1 -1
  34. package/dist/client/assets/{Suffix-D03EcSpG.js → Suffix-CMjBYS-M.js} +1 -1
  35. package/dist/client/assets/{Switch-_uewFg1w.js → Switch-fjXC16ND.js} +1 -1
  36. package/dist/client/assets/{Tag-DdDsBGRV.js → Tag-CaL1_r-M.js} +1 -1
  37. package/dist/client/assets/{TerminalView-C1kOE48Y.js → TerminalView-CJgDGCOW.js} +1 -1
  38. package/dist/client/assets/{Tooltip-CB3bMMbn.js → Tooltip-DBXeTdKt.js} +1 -1
  39. package/dist/client/assets/{Upload-BRboVHlo.js → Upload-xTC-D9ef.js} +1 -1
  40. package/dist/client/assets/{UsageView-C1gY07x9.js → UsageView-BIfPrphW.js} +1 -1
  41. package/dist/client/assets/{Warning-Dme2hdHB.js → Warning-IN0Uuhk7.js} +1 -1
  42. package/dist/client/assets/{_plugin-vue_export-helper-9xP-z52L.js → _plugin-vue_export-helper-BluKv70e.js} +1 -1
  43. package/dist/client/assets/app-Cpxalf07.js +1 -0
  44. package/dist/client/assets/{app-Bye4afa9.js → app-kp7W51g8.js} +1 -1
  45. package/dist/client/assets/{auth-BE7p-Kmu.js → auth-BBhO2bph.js} +1 -1
  46. package/dist/client/assets/{browser-CRTDc_Be.js → browser-fXTO-ADn.js} +1 -1
  47. package/dist/client/assets/chat-xK8hffyU.js +6 -0
  48. package/dist/client/assets/composables-Bplts_4x.js +1 -0
  49. package/dist/client/assets/{cssMode-DuLfQ0R_.js → cssMode-DeVYnduG.js} +1 -1
  50. package/dist/client/assets/{fade-in-height-expand.cssr-Di-q1YGm.js → fade-in-height-expand.cssr-JVzf4rq2.js} +1 -1
  51. package/dist/client/assets/{fade-in.cssr-ZKfQkQl9.js → fade-in.cssr-Br-J4Ht7.js} +1 -1
  52. package/dist/client/assets/{freemarker2-BJywvy-6.js → freemarker2-BtFqJqR7.js} +1 -1
  53. package/dist/client/assets/get-slot-ZTLxF1Hc.js +1 -0
  54. package/dist/client/assets/{handlebars-DqUpBxgH.js → handlebars-1Tr51oxk.js} +1 -1
  55. package/dist/client/assets/{html-DhH6WTBt.js → html-DE2hsIm_.js} +1 -1
  56. package/dist/client/assets/{htmlMode-H_gqdZ5h.js → htmlMode-Bzp959Bs.js} +1 -1
  57. package/dist/client/assets/index-BmcAcwpY.js +284 -0
  58. package/dist/client/assets/{javascript-05pIhd4Y.js → javascript-CyWWIMGP.js} +1 -1
  59. package/dist/client/assets/{jobs-DhMMkH9o.js → jobs-BTyvome9.js} +1 -1
  60. package/dist/client/assets/jobs-BU4gTDEL.js +1 -0
  61. package/dist/client/assets/{jsonMode-BLdIcbxa.js → jsonMode-B-ik1UAc.js} +1 -1
  62. package/dist/client/assets/{light--dc4fdXI.js → light-3oedpFOx.js} +1 -1
  63. package/dist/client/assets/{light-DbAu3UYZ.js → light-B9x-BrGA.js} +1 -1
  64. package/dist/client/assets/{light-DS_k1uOd.js → light-CRfnoFUO.js} +1 -1
  65. package/dist/client/assets/{light-BOJpHLZr.js → light-DeZSycPi.js} +1 -1
  66. package/dist/client/assets/light-DvtfF85V.js +1 -0
  67. package/dist/client/assets/{light-D-8ypucm.js → light-Jg6xTFTK.js} +1 -1
  68. package/dist/client/assets/{light-Dewn_gGV.js → light-MWkO8GJE.js} +1 -1
  69. package/dist/client/assets/{light-PgWU0EWW.js → light-TeRR8yfq.js} +1 -1
  70. package/dist/client/assets/{light-C3LBcWfs.js → light-o3MpoFnK.js} +1 -1
  71. package/dist/client/assets/{liquid-nqKfrf5r.js → liquid-tdX3X7Ra.js} +1 -1
  72. package/dist/client/assets/{lspLanguageFeatures-B95K-PCU.js → lspLanguageFeatures-KYQBWoHZ.js} +1 -1
  73. package/dist/client/assets/{mdx-_cBoTPvb.js → mdx-BlRD3xih.js} +1 -1
  74. package/dist/client/assets/{models-B2A46pRJ.js → models-CXnOaWYE.js} +1 -1
  75. package/dist/client/assets/{monaco.contribution-DRFiJmCN.js → monaco.contribution-DOWdUywe.js} +2 -2
  76. package/dist/client/assets/{pinia-UrA63qkH.js → pinia-bdzJ4xO3.js} +1 -1
  77. package/dist/client/assets/{profiles-Dk45I0q1.js → profiles-BIPofxcL.js} +1 -1
  78. package/dist/client/assets/{python-CMbwnkAX.js → python-DQfKqboU.js} +1 -1
  79. package/dist/client/assets/{razor-Bsd_Kdo4.js → razor-C4KY5OcG.js} +1 -1
  80. package/dist/client/assets/{router-Deam6ffd.js → router-CaAe9JO4.js} +2 -2
  81. package/dist/client/assets/{session-browser-prefs-Wo3XFysm.js → session-browser-prefs-D0kG2uKR.js} +1 -1
  82. package/dist/client/assets/{sessions-BDXdWl17.js → sessions-BESRi9X7.js} +1 -1
  83. package/dist/client/assets/settings-BzZG6k1S.js +1 -0
  84. package/dist/client/assets/{skills-dEDjBsEe.js → skills-CGFLrxsf.js} +1 -1
  85. package/dist/client/assets/{tsMode-DA8Xxkyi.js → tsMode-1ygaF8Vq.js} +1 -1
  86. package/dist/client/assets/{typescript-CIa57MS_.js → typescript-KU_Ae9gz.js} +1 -1
  87. package/dist/client/assets/{use-message-sJtQsIMH.js → use-message-DON5YDCV.js} +1 -1
  88. package/dist/client/assets/{useTheme-BH5wkcEo.js → useTheme-B23hWWBa.js} +1 -1
  89. package/dist/client/assets/{workers-rtkNY4Ef.js → workers-8L0GeWov.js} +1 -1
  90. package/dist/client/assets/{xml-C900Nhri.js → xml-ODndbrSj.js} +1 -1
  91. package/dist/client/assets/{yaml-D3f4VH6B.js → yaml-EYXdrXAb.js} +1 -1
  92. package/dist/client/index.html +35 -34
  93. package/dist/server/index.js +86 -86
  94. package/dist/server/index.js.map +3 -3
  95. package/package.json +1 -1
  96. package/dist/client/assets/ChannelsView-B8rre6Vi.js +0 -1
  97. package/dist/client/assets/ChatView-CVcqUhM9.js +0 -3
  98. package/dist/client/assets/ChatView-CjCcr65D.css +0 -1
  99. package/dist/client/assets/GroupChatView-JzMP1lxD.css +0 -1
  100. package/dist/client/assets/ModelsView-DCWQ4JAD.js +0 -1
  101. package/dist/client/assets/SettingRow-Cm8BWHc8.js +0 -1
  102. package/dist/client/assets/Space-C979miZ6.js +0 -1
  103. package/dist/client/assets/app-DpVwxn5E.js +0 -1
  104. package/dist/client/assets/chat-CIiy7Gwo.js +0 -6
  105. package/dist/client/assets/composables-BjmZducA.js +0 -1
  106. package/dist/client/assets/index-D61jARAv.js +0 -284
  107. package/dist/client/assets/jobs-D-9ea8_u.js +0 -1
  108. /package/dist/client/assets/{_common-DRFS3Rdv.js → _common-D50mkvNP.js} +0 -0
  109. /package/dist/client/assets/{_common-BeOkYc8W.js → _common-DhotgWjX.js} +0 -0
  110. /package/dist/client/assets/{abap-Df-gEVWb.js → abap-CDUJqvA6.js} +0 -0
  111. /package/dist/client/assets/{apex-D4IXZohp.js → apex-CWEU_7XW.js} +0 -0
  112. /package/dist/client/assets/{azcli-CN77gN_d.js → azcli-BcaYKJmi.js} +0 -0
  113. /package/dist/client/assets/{bat-CnFNk-3t.js → bat-BhQd7PfR.js} +0 -0
  114. /package/dist/client/assets/{bicep-BnYjLKZ4.js → bicep-PZEFjtNI.js} +0 -0
  115. /package/dist/client/assets/{cameligo-XD7EYiqO.js → cameligo-B9nYpmx9.js} +0 -0
  116. /package/dist/client/assets/{clipboard-B8wB3Hjs.js → clipboard-J87K68ES.js} +0 -0
  117. /package/dist/client/assets/{clojure-DpjDgW1G.js → clojure-8MYe-A2j.js} +0 -0
  118. /package/dist/client/assets/{coffee-BW_7D_dE.js → coffee-CFnNi2bT.js} +0 -0
  119. /package/dist/client/assets/{cpp-C6-G_6k8.js → cpp-5RI0Yfgt.js} +0 -0
  120. /package/dist/client/assets/{csharp-BmAH59Mw.js → csharp-1Qw0txp6.js} +0 -0
  121. /package/dist/client/assets/{csp-nX61Mw-a.js → csp-DrP2k-s8.js} +0 -0
  122. /package/dist/client/assets/{css-X8WCPi5X.js → css-DnhVIX7t.js} +0 -0
  123. /package/dist/client/assets/{cypher-C9JjAvBj.js → cypher-CTQPov7l.js} +0 -0
  124. /package/dist/client/assets/{dart-otsIL-QT.js → dart-DjpNZpls.js} +0 -0
  125. /package/dist/client/assets/{dockerfile-CNVj7U-V.js → dockerfile-DGJl7EjL.js} +0 -0
  126. /package/dist/client/assets/{ecl-B3EDYEFK.js → ecl-DYUFlOv2.js} +0 -0
  127. /package/dist/client/assets/{editor.api2-DXf3wf2_.js → editor.api2-788jlMfA.js} +0 -0
  128. /package/dist/client/assets/{elixir-CMal8e_r.js → elixir-BwwwM4_y.js} +0 -0
  129. /package/dist/client/assets/{flow9-rV1y2xFT.js → flow9-BvW_W-VC.js} +0 -0
  130. /package/dist/client/assets/{fsharp-XCCwFpkq.js → fsharp-C7r9szPx.js} +0 -0
  131. /package/dist/client/assets/{go-Btw_ViWn.js → go-BA5jThdX.js} +0 -0
  132. /package/dist/client/assets/{graphql-CSgWCUwG.js → graphql-RGOLagtt.js} +0 -0
  133. /package/dist/client/assets/{hcl-1CENPNFm.js → hcl-D34aQQCD.js} +0 -0
  134. /package/dist/client/assets/{ini-D09O0LOs.js → ini-fR9cBBqH.js} +0 -0
  135. /package/dist/client/assets/{java-CPrgL-wy.js → java-D2YzSukB.js} +0 -0
  136. /package/dist/client/assets/{julia-CQpmbUlp.js → julia-B6e-aUED.js} +0 -0
  137. /package/dist/client/assets/{kotlin-BGGKeeZO.js → kotlin-hTV4jNy9.js} +0 -0
  138. /package/dist/client/assets/{less-p9aZWk3L.js → less-Bg4b0QLk.js} +0 -0
  139. /package/dist/client/assets/{lexon-7S1mQAr6.js → lexon-VAGx23-U.js} +0 -0
  140. /package/dist/client/assets/{lua-C7HZa2v5.js → lua-BmavFdHm.js} +0 -0
  141. /package/dist/client/assets/{m3-Ci3yuQTB.js → m3-DjndQjEW.js} +0 -0
  142. /package/dist/client/assets/{markdown-BymjvgtX.js → markdown-Cu--Dwdc.js} +0 -0
  143. /package/dist/client/assets/{mips-ChPCBF7Q.js → mips-Dszpfgpy.js} +0 -0
  144. /package/dist/client/assets/{msdax-BMoGp2mf.js → msdax-C6OoejNA.js} +0 -0
  145. /package/dist/client/assets/{mysql-BzwRAIfG.js → mysql-C3Gwqq4n.js} +0 -0
  146. /package/dist/client/assets/{objective-c-DI7EqssW.js → objective-c-BO4F57MA.js} +0 -0
  147. /package/dist/client/assets/{pascal-CkP3cQvM.js → pascal-IE9bbExs.js} +0 -0
  148. /package/dist/client/assets/{pascaligo-DzzBpjkt.js → pascaligo-BxJge-mr.js} +0 -0
  149. /package/dist/client/assets/{perl-e4igJJsw.js → perl-rLVUrjqv.js} +0 -0
  150. /package/dist/client/assets/{pgsql-C2nbbU56.js → pgsql-Cd_sd98N.js} +0 -0
  151. /package/dist/client/assets/{php-AAuzfB3W.js → php-DEIXK2ZF.js} +0 -0
  152. /package/dist/client/assets/{pla-DvzjACL6.js → pla-D55LHImG.js} +0 -0
  153. /package/dist/client/assets/{postiats-DblfLbjV.js → postiats-BKBS-qox.js} +0 -0
  154. /package/dist/client/assets/{powerquery-B2h7C5sa.js → powerquery-IGzsITFg.js} +0 -0
  155. /package/dist/client/assets/{powershell-CAAsnHvT.js → powershell-CoBvcZSp.js} +0 -0
  156. /package/dist/client/assets/{protobuf-DOQ2cQrj.js → protobuf-BlibaSEc.js} +0 -0
  157. /package/dist/client/assets/{pug-CWMh3MAB.js → pug-Dw-J7AWh.js} +0 -0
  158. /package/dist/client/assets/{qsharp-BXVS9eA8.js → qsharp-0Qrk-UZa.js} +0 -0
  159. /package/dist/client/assets/{r-C_CGLjCP.js → r-CQ-juNYy.js} +0 -0
  160. /package/dist/client/assets/{redis-DgjOo74e.js → redis-DAFuH-dO.js} +0 -0
  161. /package/dist/client/assets/{redshift-DAuTUcwv.js → redshift-BNRZ05aC.js} +0 -0
  162. /package/dist/client/assets/{restructuredtext-BoRXofIx.js → restructuredtext-Ca2uIozs.js} +0 -0
  163. /package/dist/client/assets/{ruby-D90h3Udf.js → ruby-CQLq9T_K.js} +0 -0
  164. /package/dist/client/assets/{rust-C0GlvIk0.js → rust-D7w2wjcX.js} +0 -0
  165. /package/dist/client/assets/{sb-C_gEkONb.js → sb-DwX0WHbZ.js} +0 -0
  166. /package/dist/client/assets/{scala-CUXWsorx.js → scala-BAS7yvps.js} +0 -0
  167. /package/dist/client/assets/{scheme-DmiK1zIJ.js → scheme-CAiZTUQv.js} +0 -0
  168. /package/dist/client/assets/{scss-BCosKPgt.js → scss-BgSdPwSy.js} +0 -0
  169. /package/dist/client/assets/{shell-4nCnLqjI.js → shell-BIglZyZG.js} +0 -0
  170. /package/dist/client/assets/{solidity-XKv0xcLY.js → solidity-DEkNLNHt.js} +0 -0
  171. /package/dist/client/assets/{sophia-897gNjR_.js → sophia-BqB-QKb_.js} +0 -0
  172. /package/dist/client/assets/{sparql-BLFySdmR.js → sparql-PnIlixRf.js} +0 -0
  173. /package/dist/client/assets/{sql-D3kLiZaa.js → sql-CkZmFn9b.js} +0 -0
  174. /package/dist/client/assets/{st-BmuzGAC_.js → st-BHkVPkZd.js} +0 -0
  175. /package/dist/client/assets/{swift-GV0_oiKk.js → swift-DRAxbJXD.js} +0 -0
  176. /package/dist/client/assets/{systemverilog-C9ycJXJw.js → systemverilog-SLzSTdPo.js} +0 -0
  177. /package/dist/client/assets/{tcl-C8Rq24un.js → tcl-B9b7ga_X.js} +0 -0
  178. /package/dist/client/assets/{twig-CVzdtlEE.js → twig-Bw2fKFSt.js} +0 -0
  179. /package/dist/client/assets/{typespec-CqnlwSxO.js → typespec-QgpRWk6B.js} +0 -0
  180. /package/dist/client/assets/{vb-DH36q3V8.js → vb-BTY0tA77.js} +0 -0
  181. /package/dist/client/assets/{wgsl-C4fyaLhN.js → wgsl-DEBTP7f8.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermes-web-ui",
3
- "version": "0.4.6",
3
+ "version": "0.4.7",
4
4
  "description": "Self-hosted AI chat dashboard for Hermes Agent — multi-model (Claude, GPT, Gemini, DeepSeek) web UI with Telegram, Discord, Slack, WhatsApp integration",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,H as r,J as i,K as a,O as o,S as s,T as c,U as l,W as u,Z as d,at as f,ft as p,ht as m,k as h,pt as g,q as _,st as v,v as y,w as b}from"./router-Deam6ffd.js";import{r as x,t as S}from"./_plugin-vue_export-helper-9xP-z52L.js";import{t as C}from"./Button-XML6qzjK.js";import{t as w}from"./Input-DWLw7VSO.js";import{t as T}from"./Tag-DdDsBGRV.js";import{t as E}from"./use-message-sJtQsIMH.js";import{t as D}from"./Spin-DicuilvT.js";import{t as O}from"./Switch-_uewFg1w.js";import{a as k,i as A,n as j,o as M,r as N,t as P}from"./SettingRow-Cm8BWHc8.js";var F={class:`platform-info`},I=[`innerHTML`],L={class:`platform-name`},R={key:0,class:`platform-card-body`},z=S(e({__name:`PlatformCard`,props:{name:{},icon:{},config:{},credentials:{}},setup(e){let r=e,i=v(!0),{t:a}=x(),l=s(()=>{let e=r.credentials;if(!e)return!1;let t=[`token`,`api_key`,`app_id`,`client_id`,`secret`,`app_secret`,`client_secret`,`access_token`,`bot_id`,`account_id`,`enabled`];return[e,e.extra].filter(Boolean).some(e=>t.some(t=>{let n=e[t];return n!=null&&n!==``&&n!==!1}))});return(r,s)=>(u(),n(`div`,{class:g([`platform-card`,{configured:l.value}])},[t(`div`,{class:`platform-card-header`,onClick:s[0]||=e=>i.value=!i.value},[t(`div`,F,[t(`span`,{class:`platform-icon`,innerHTML:e.icon},null,8,I),t(`span`,L,m(e.name),1),h(p(T),{type:l.value?`success`:`default`,size:`small`,round:``},{default:d(()=>[o(m(l.value?p(a)(`common.configured`):p(a)(`common.notConfigured`)),1)]),_:1},8,[`type`])]),t(`span`,{class:g([`expand-icon`,{expanded:i.value}])},`▾`,2)]),i.value?(u(),n(`div`,R,[_(r.$slots,`default`,{},void 0,!0)])):c(``,!0)],2))}}),[[`__scopeId`,`data-v-cee18614`]]),B={class:`settings-section`},V={class:`weixin-qr-section`},H={key:1,class:`weixin-qr-loading`},U={key:2,class:`weixin-qr-hint`},W=S(e({__name:`PlatformSettings`,setup(e){let r=j(),s=E(),{t:g}=x(),_=f({});function S(e,t){return`${e}.${t}`}function T(e,t){return!!_[S(e,t)]}async function D(e,t,n){let r=S(e,t);_[r]=!0;try{await n(),s.success(g(`settings.saved`))}catch{s.error(g(`settings.saveFailed`))}finally{_[r]=!1}}async function F(e,t,n){D(e,t,()=>r.saveSection(e,n))}async function I(e,t,n){D(e,t,async()=>{await k(e,n),await r.fetchSettings()})}function L(e){return r.platforms[e]||{}}let R=v(``),W=v(``),G=v(`idle`),K=null;async function q(){G.value=`loading`,R.value=``,W.value=``,Y();try{let e=await N();W.value=e.qrcode,R.value=e.qrcode_url,window.open(e.qrcode_url,`_blank`),G.value=`waiting`,J()}catch(e){G.value=`error`,s.error(e.message||g(`platform.qrFetching`))}}function J(){W.value&&(K=setTimeout(async()=>{try{let e=await A(W.value);e.status===`wait`?J():e.status===`scaned`?(G.value=`scaned`,J()):e.status===`expired`?G.value=`expired`:e.status===`confirmed`&&(G.value=`confirmed`,await M({account_id:e.account_id,token:e.token,base_url:e.base_url}),await r.fetchSettings(),s.success(g(`settings.saved`)))}catch{J()}},3e3))}function Y(){K&&=(clearTimeout(K),null)}l(()=>{Y()});let X=[{key:`telegram`,name:`Telegram`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.479.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>`},{key:`discord`,name:`Discord`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189z"/></svg>`},{key:`slack`,name:`Slack`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 0a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V5.042zm-1.27 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.27a2.527 2.527 0 0 1 2.523-2.52h6.313A2.528 2.528 0 0 1 24 18.956a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>`},{key:`whatsapp`,name:`WhatsApp`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg>`},{key:`matrix`,name:`Matrix`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.48.324.448.217.786.619 1.017 1.205.24-.376.558-.702.956-.98.398-.277.872-.414 1.424-.414.41 0 .784.065 1.122.194.34.13.629.325.87.588.241.263.428.59.56.984.132.393.198.85.198 1.368v5.89h-2.49v-4.893c0-.268-.016-.525-.048-.77a1.627 1.627 0 00-.2-.63 1.028 1.028 0 00-.392-.426 1.294 1.294 0 00-.616-.134c-.277 0-.508.05-.693.15a1.043 1.043 0 00-.43.41 1.768 1.768 0 00-.214.616 4.15 4.15 0 00-.06.74v4.937H9.29v-4.937c0-.25-.01-.498-.032-.742a1.84 1.84 0 00-.166-.638.998.998 0 00-.363-.448 1.206 1.206 0 00-.624-.154c-.26 0-.483.048-.67.144a1.055 1.055 0 00-.436.402 1.744 1.744 0 00-.227.616 4.108 4.108 0 00-.063.74v4.937H5.21V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg>`},{key:`feishu`,name:`Feishu`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.59 3.41a2.25 2.25 0 0 1 3.182 0L13.5 7.14l-3.182 3.182L6.59 7.59a2.25 2.25 0 0 1 0-3.182zm5.303 5.303L15.075 5.53a2.25 2.25 0 0 1 3.182 3.182L15.075 11.894 11.893 8.713zM3.41 6.59a2.25 2.25 0 0 1 3.182 0l3.182 3.182-3.182 3.182a2.25 2.25 0 0 1-3.182-3.182L3.41 6.59zm5.303 5.303L11.894 15.075a2.25 2.25 0 0 1-3.182 3.182L5.53 15.075 8.713 11.893zm5.303-5.303L17.478 9.778a2.25 2.25 0 0 1-3.182 3.182L10.53 10.075l3.182-3.182 0 .023z"/></svg>`},{key:`weixin`,name:`Weixin`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>`},{key:`wecom`,name:`WeCom`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>`}];return(e,s)=>{let l=i(`NSpin`);return u(),n(`section`,B,[(u(),n(y,null,a(X,e=>h(z,{key:e.key,name:e.name,icon:e.icon,config:p(r)[e.key],credentials:L(e.key)},{default:d(()=>[e.key===`telegram`?(u(),n(y,{key:0},[h(P,{label:p(g)(`platform.botToken`),hint:p(g)(`platform.botTokenHint`)},{default:d(()=>[h(p(w),{"default-value":L(`telegram`).token||``,loading:T(`telegram`,`token`),clearable:``,size:`small`,class:`input-lg`,placeholder:`123456:ABC-DEF...`,onChange:s[0]||=e=>I(`telegram`,`token`,{token:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionGroup`)},{default:d(()=>[h(p(O),{value:p(r).telegram.require_mention,loading:T(`telegram`,`require_mention`),"onUpdate:value":s[1]||=e=>F(`telegram`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.reactions`),hint:p(g)(`platform.reactionsHint`)},{default:d(()=>[h(p(O),{value:p(r).telegram.reactions,loading:T(`telegram`,`reactions`),"onUpdate:value":s[2]||=e=>F(`telegram`,`reactions`,{reactions:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseChats`),hint:p(g)(`platform.freeResponseChatsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).telegram.free_response_chats||``,loading:T(`telegram`,`free_response_chats`),size:`small`,placeholder:`chat_id1,chat_id2`,onChange:s[3]||=e=>F(`telegram`,`free_response_chats`,{free_response_chats:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.mentionPatterns`),hint:p(g)(`platform.mentionPatternsHint`)},{default:d(()=>[h(p(w),{"default-value":(p(r).telegram.mention_patterns||[]).join(`, `),loading:T(`telegram`,`mention_patterns`),size:`small`,placeholder:`pattern1, pattern2`,onChange:s[4]||=e=>F(`telegram`,`mention_patterns`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`discord`?(u(),n(y,{key:1},[h(P,{label:p(g)(`platform.botToken`),hint:p(g)(`platform.botTokenHint`)},{default:d(()=>[h(p(w),{"default-value":L(`discord`).token||``,loading:T(`discord`,`token`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Bot token...`,onChange:s[5]||=e=>I(`discord`,`token`,{token:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionChannel`)},{default:d(()=>[h(p(O),{value:p(r).discord.require_mention,loading:T(`discord`,`require_mention`),"onUpdate:value":s[6]||=e=>F(`discord`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.autoThread`),hint:p(g)(`platform.autoThreadHint`)},{default:d(()=>[h(p(O),{value:p(r).discord.auto_thread,loading:T(`discord`,`auto_thread`),"onUpdate:value":s[7]||=e=>F(`discord`,`auto_thread`,{auto_thread:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.reactions`),hint:p(g)(`platform.reactionsHint`)},{default:d(()=>[h(p(O),{value:p(r).discord.reactions,loading:T(`discord`,`reactions`),"onUpdate:value":s[8]||=e=>F(`discord`,`reactions`,{reactions:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseChannels`),hint:p(g)(`platform.freeResponseChannelsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).discord.free_response_channels||``,loading:T(`discord`,`free_response_channels`),size:`small`,placeholder:`channel_id1,channel_id2`,onChange:s[9]||=e=>F(`discord`,`free_response_channels`,{free_response_channels:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.allowedChannels`),hint:p(g)(`platform.allowedChannelsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).discord.allowed_channels||``,loading:T(`discord`,`allowed_channels`),size:`small`,placeholder:`channel_id1,channel_id2`,onChange:s[10]||=e=>F(`discord`,`allowed_channels`,{allowed_channels:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.ignoredChannels`),hint:p(g)(`platform.ignoredChannelsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).discord.ignored_channels||``,loading:T(`discord`,`ignored_channels`),size:`small`,placeholder:`channel_id1,channel_id2`,onChange:s[11]||=e=>F(`discord`,`ignored_channels`,{ignored_channels:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.noThreadChannels`),hint:p(g)(`platform.noThreadChannelsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).discord.no_thread_channels||``,loading:T(`discord`,`no_thread_channels`),size:`small`,placeholder:`channel_id1,channel_id2`,onChange:s[12]||=e=>F(`discord`,`no_thread_channels`,{no_thread_channels:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`slack`?(u(),n(y,{key:2},[h(P,{label:p(g)(`platform.botToken`),hint:p(g)(`platform.botTokenHint`)},{default:d(()=>[h(p(w),{"default-value":L(`slack`).token||``,loading:T(`slack`,`token`),clearable:``,size:`small`,class:`input-lg`,placeholder:`xoxb-...`,onChange:s[13]||=e=>I(`slack`,`token`,{token:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionChannel`)},{default:d(()=>[h(p(O),{value:p(r).slack.require_mention,loading:T(`slack`,`require_mention`),"onUpdate:value":s[14]||=e=>F(`slack`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.allowBots`),hint:p(g)(`platform.allowBotsHint`)},{default:d(()=>[h(p(O),{value:p(r).slack.allow_bots,loading:T(`slack`,`allow_bots`),"onUpdate:value":s[15]||=e=>F(`slack`,`allow_bots`,{allow_bots:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseChannels`),hint:p(g)(`platform.freeResponseChannelsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).slack.free_response_channels||``,loading:T(`slack`,`free_response_channels`),size:`small`,placeholder:`channel_id1,channel_id2`,onChange:s[16]||=e=>F(`slack`,`free_response_channels`,{free_response_channels:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`whatsapp`?(u(),n(y,{key:3},[h(P,{label:p(g)(`platform.waEnabled`),hint:p(g)(`platform.waEnabledHint`)},{default:d(()=>[h(p(O),{value:L(`whatsapp`).enabled,loading:T(`whatsapp`,`enabled`),"onUpdate:value":s[17]||=e=>I(`whatsapp`,`enabled`,{enabled:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionGroup`)},{default:d(()=>[h(p(O),{value:p(r).whatsapp.require_mention,loading:T(`whatsapp`,`require_mention`),"onUpdate:value":s[18]||=e=>F(`whatsapp`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseChats`),hint:p(g)(`platform.freeResponseChatsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).whatsapp.free_response_chats||``,loading:T(`whatsapp`,`free_response_chats`),size:`small`,placeholder:`chat_id1,chat_id2`,onChange:s[19]||=e=>F(`whatsapp`,`free_response_chats`,{free_response_chats:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.mentionPatterns`),hint:p(g)(`platform.mentionPatternsHint`)},{default:d(()=>[h(p(w),{"default-value":(p(r).whatsapp.mention_patterns||[]).join(`, `),loading:T(`whatsapp`,`mention_patterns`),size:`small`,placeholder:`pattern1, pattern2`,onChange:s[20]||=e=>F(`whatsapp`,`mention_patterns`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`matrix`?(u(),n(y,{key:4},[h(P,{label:p(g)(`platform.accessToken`),hint:p(g)(`platform.accessTokenHint`)},{default:d(()=>[h(p(w),{"default-value":L(`matrix`).token||``,loading:T(`matrix`,`token`),clearable:``,size:`small`,class:`input-lg`,placeholder:`syt_...`,onChange:s[21]||=e=>I(`matrix`,`token`,{token:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.homeserver`),hint:p(g)(`platform.homeserverHint`)},{default:d(()=>[h(p(w),{"default-value":L(`matrix`).extra?.homeserver||``,loading:T(`matrix`,`homeserver`),clearable:``,size:`small`,class:`input-lg`,placeholder:`https://matrix.org`,onChange:s[22]||=e=>I(`matrix`,`homeserver`,{extra:{...L(`matrix`).extra,homeserver:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionRoom`)},{default:d(()=>[h(p(O),{value:p(r).matrix.require_mention,loading:T(`matrix`,`require_mention`),"onUpdate:value":s[23]||=e=>F(`matrix`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.autoThread`),hint:p(g)(`platform.autoThreadHintRoom`)},{default:d(()=>[h(p(O),{value:p(r).matrix.auto_thread,loading:T(`matrix`,`auto_thread`),"onUpdate:value":s[24]||=e=>F(`matrix`,`auto_thread`,{auto_thread:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.dmMentionThreads`),hint:p(g)(`platform.dmMentionThreadsHint`)},{default:d(()=>[h(p(O),{value:p(r).matrix.dm_mention_threads,loading:T(`matrix`,`dm_mention_threads`),"onUpdate:value":s[25]||=e=>F(`matrix`,`dm_mention_threads`,{dm_mention_threads:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseRooms`),hint:p(g)(`platform.freeResponseRoomsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).matrix.free_response_rooms||``,loading:T(`matrix`,`free_response_rooms`),size:`small`,placeholder:`room_id1,room_id2`,onChange:s[26]||=e=>F(`matrix`,`free_response_rooms`,{free_response_rooms:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`feishu`?(u(),n(y,{key:5},[h(P,{label:p(g)(`platform.appId`),hint:p(g)(`platform.appIdHint`)},{default:d(()=>[h(p(w),{"default-value":L(`feishu`).extra?.app_id||``,loading:T(`feishu`,`app_id`),clearable:``,size:`small`,class:`input-lg`,placeholder:`cli_...`,onChange:s[27]||=e=>I(`feishu`,`app_id`,{extra:{...L(`feishu`).extra,app_id:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.appSecret`),hint:p(g)(`platform.appSecretHint`)},{default:d(()=>[h(p(w),{"default-value":L(`feishu`).extra?.app_secret||``,loading:T(`feishu`,`app_secret`),clearable:``,size:`small`,class:`input-lg`,placeholder:`App Secret`,onChange:s[28]||=e=>I(`feishu`,`app_secret`,{extra:{...L(`feishu`).extra,app_secret:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionGroup`)},{default:d(()=>[h(p(O),{value:p(r).feishu.require_mention,loading:T(`feishu`,`require_mention`),"onUpdate:value":s[29]||=e=>F(`feishu`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseChats`),hint:p(g)(`platform.freeResponseChatsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).feishu.free_response_chats||``,loading:T(`feishu`,`free_response_chats`),size:`small`,placeholder:`chat_id1,chat_id2`,onChange:s[30]||=e=>F(`feishu`,`free_response_chats`,{free_response_chats:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`dingtalk`?(u(),n(y,{key:6},[h(P,{label:p(g)(`platform.clientId`),hint:p(g)(`platform.clientIdHint`)},{default:d(()=>[h(p(w),{"default-value":L(`dingtalk`).extra?.client_id||``,loading:T(`dingtalk`,`client_id`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Client ID`,onChange:s[31]||=e=>I(`dingtalk`,`client_id`,{extra:{...L(`dingtalk`).extra,client_id:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.clientSecret`),hint:p(g)(`platform.clientSecretHint`)},{default:d(()=>[h(p(w),{"default-value":L(`dingtalk`).extra?.client_secret||``,loading:T(`dingtalk`,`client_secret`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Client Secret`,onChange:s[32]||=e=>I(`dingtalk`,`client_secret`,{extra:{...L(`dingtalk`).extra,client_secret:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.requireMention`),hint:p(g)(`platform.requireMentionGroup`)},{default:d(()=>[h(p(O),{value:p(r).dingtalk.require_mention,loading:T(`dingtalk`,`require_mention`),"onUpdate:value":s[33]||=e=>F(`dingtalk`,`require_mention`,{require_mention:e})},null,8,[`value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.freeResponseChats`),hint:p(g)(`platform.freeResponseChatsHint`)},{default:d(()=>[h(p(w),{"default-value":p(r).dingtalk.free_response_chats||``,loading:T(`dingtalk`,`free_response_chats`),size:`small`,placeholder:`chat_id1,chat_id2`,onChange:s[34]||=e=>F(`dingtalk`,`free_response_chats`,{free_response_chats:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`weixin`?(u(),n(y,{key:7},[t(`div`,V,[G.value===`idle`||G.value===`error`||G.value===`expired`||G.value===`confirmed`?(u(),b(p(C),{key:0,type:`primary`,size:`small`,onClick:q},{default:d(()=>[o(m(G.value===`confirmed`?p(g)(`platform.qrRelogin`):p(g)(`platform.qrLogin`)),1)]),_:1})):c(``,!0),G.value===`loading`?(u(),n(`div`,H,[h(l,{size:`small`}),t(`span`,null,m(p(g)(`platform.qrFetching`)),1)])):c(``,!0),G.value===`waiting`||G.value===`scaned`?(u(),n(`div`,U,m(G.value===`scaned`?p(g)(`platform.qrScanedHint`):p(g)(`platform.qrScanHint`)),1)):c(``,!0)]),h(P,{label:p(g)(`platform.weixinToken`),hint:p(g)(`platform.weixinTokenHint`)},{default:d(()=>[h(p(w),{"default-value":L(`weixin`).token||``,loading:T(`weixin`,`token`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Token`,onChange:s[35]||=e=>I(`weixin`,`token`,{token:e})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.accountId`),hint:p(g)(`platform.accountIdHint`)},{default:d(()=>[h(p(w),{"default-value":L(`weixin`).extra?.account_id||``,loading:T(`weixin`,`account_id`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Account ID`,onChange:s[36]||=e=>I(`weixin`,`account_id`,{extra:{...L(`weixin`).extra,account_id:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0),e.key===`wecom`?(u(),n(y,{key:8},[h(P,{label:p(g)(`platform.botId`),hint:p(g)(`platform.botIdHint`)},{default:d(()=>[h(p(w),{"default-value":L(`wecom`).extra?.bot_id||``,loading:T(`wecom`,`bot_id`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Bot ID`,onChange:s[37]||=e=>I(`wecom`,`bot_id`,{extra:{...L(`wecom`).extra,bot_id:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`]),h(P,{label:p(g)(`platform.appSecret`),hint:p(g)(`platform.wecomSecretHint`)},{default:d(()=>[h(p(w),{"default-value":L(`wecom`).extra?.secret||``,loading:T(`wecom`,`secret`),clearable:``,size:`small`,class:`input-lg`,placeholder:`Secret`,onChange:s[38]||=e=>I(`wecom`,`secret`,{extra:{...L(`wecom`).extra,secret:e}})},null,8,[`default-value`,`loading`])]),_:1},8,[`label`,`hint`])],64)):c(``,!0)]),_:2},1032,[`name`,`icon`,`config`,`credentials`])),64))])}}}),[[`__scopeId`,`data-v-c7999829`]]),G={class:`channels-view`},K={class:`page-header`},q={class:`header-title`},J={class:`channels-content`},Y=S(e({__name:`ChannelsView`,setup(e){let i=j(),{t:a}=x();return r(()=>{i.fetchSettings()}),(e,r)=>(u(),n(`div`,G,[t(`header`,K,[t(`h2`,q,m(p(a)(`sidebar.channels`)),1)]),t(`div`,J,[h(p(D),{show:p(i).loading||p(i).saving,size:`large`,description:p(a)(`common.loading`)},{default:d(()=>[p(i).loading?c(``,!0):(u(),b(W,{key:0}))]),_:1},8,[`show`,`description`])])]))}}),[[`__scopeId`,`data-v-e25dbf6c`]]);export{Y as default};
@@ -1,3 +0,0 @@
1
- import{A as e,C as t,E as n,H as r,K as i,L as a,O as o,Q as s,S as c,T as l,U as u,W as d,Y as f,Z as p,a as m,ft as h,g,h as _,ht as v,k as y,mt as b,p as x,pt as S,st as C,u as w,v as T,w as E}from"./router-Deam6ffd.js";import{r as D,t as O}from"./_plugin-vue_export-helper-9xP-z52L.js";import{t as k}from"./logo-D12u0f1i.js";import{t as A}from"./Modal-CcDwIOab.js";import{t as j}from"./Dropdown-PWEJ7U74.js";import{t as M}from"./Button-XML6qzjK.js";import{t as N}from"./Input-DWLw7VSO.js";import{t as P}from"./Tooltip-CB3bMMbn.js";import{t as F}from"./use-message-sJtQsIMH.js";import{t as I}from"./Popconfirm-zfNVjMed.js";import{t as L}from"./useTheme-BH5wkcEo.js";import{t as R}from"./app-Bye4afa9.js";import{t as z}from"./profiles-Dk45I0q1.js";import{t as B}from"./chat-CIiy7Gwo.js";import{n as V,o as H}from"./sessions-BDXdWl17.js";import{t as ee}from"./session-browser-prefs-Wo3XFysm.js";import{t as te}from"./clipboard-B8wB3Hjs.js";import{a as U,i as W,n as G,r as K,t as q}from"./MarkdownRenderer-Dzf2i2R9.js";var ne={telegram:`Telegram`,api_server:`API Server`,cli:`CLI`,discord:`Discord`,slack:`Slack`,matrix:`Matrix`,whatsapp:`WhatsApp`,signal:`Signal`,email:`Email`,sms:`SMS`,dingtalk:`DingTalk`,feishu:`Feishu`,wecom:`WeCom`,weixin:`WeChat`,bluebubbles:`iMessage`,mattermost:`Mattermost`,cron:`Cron`};function J(e){return e?ne[e]||e:``}function Y(e){if(!e)return``;let t=new Date(e),n=new Date;return t.toDateString()===n.toDateString()?t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):t.toLocaleDateString([],{month:`short`,day:`numeric`})}function X(e){return Y(e*1e3)}var re={class:`chat-input-area`},ie={class:`input-top-bar`},ae={key:1,class:`context-bar`},oe={key:0,class:`attachment-previews`},se=[`src`,`alt`],ce={key:1,class:`attachment-file`},le={class:`file-name`},Z={class:`file-size`},ue=[`onClick`],de=[`placeholder`],fe={class:`input-actions`},Q=2e5,pe=O(e({__name:`ChatInput`,setup(e){let a=B(),{t:u}=D(),m=C(``),g=C(),_=C(),w=C([]),O=C(!1),k=C(0),A=C(!1),j=c(()=>m.value.trim()||w.value.length>0),N=C(2e5);async function F(){try{N.value=await V(z().activeProfileName||void 0)}catch{N.value=Q}}r(F),f(()=>z().activeProfileName,F),f(()=>R().selectedModel,F);let I=c(()=>(a.activeSession?.inputTokens??0)+(a.activeSession?.outputTokens??0)),L=c(()=>N.value-I.value),H=c(()=>Math.min(I.value/N.value*100,100));function ee(e){return e>=1e6?(e/1e6).toFixed(1)+`M`:e>=1e3?(e/1e3).toFixed(1)+`k`:String(e)}function te(e){if(w.value.find(t=>t.name===e.name))return;let t=Date.now().toString(36)+Math.random().toString(36).slice(2,8),n=URL.createObjectURL(e);w.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function U(){_.value?.click()}function W(e){let t=e.target;if(t.files){for(let e of t.files)te(e);t.value=``}}function G(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>e.type.startsWith(`image/`));if(t.length){e.preventDefault();for(let e of t){let t=e.getAsFile();if(!t)continue;let n=e.type.split(`/`)[1]||`png`;te(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function K(e){e.preventDefault()}function q(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(k.value++,O.value=!0)}function ne(){k.value--,k.value<=0&&(k.value=0,O.value=!1)}function J(e){e.preventDefault(),k.value=0,O.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)te(e);g.value?.focus()}}function Y(){let e=m.value.trim();!e&&w.value.length===0||(a.sendMessage(e,w.value.length>0?w.value:void 0),m.value=``,w.value=[],g.value&&(g.value.style.height=`auto`))}function X(){A.value=!0}function pe(){requestAnimationFrame(()=>{A.value=!1})}function me(e){return A.value||e.isComposing||e.keyCode===229}function he(e){e.key!==`Enter`||e.shiftKey||me(e)||(e.preventDefault(),Y())}function ge(e){let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,100)+`px`}function _e(e){let t=w.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(w.value[t].url),w.value.splice(t,1))}function ve(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function ye(e){return e.startsWith(`image/`)}return(e,r)=>(d(),n(`div`,re,[t(`div`,ie,[y(h(P),{trigger:`hover`},{trigger:p(()=>[y(h(M),{quaternary:``,size:`tiny`,onClick:U,circle:``},{icon:p(()=>[...r[2]||=[t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`path`,{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`})],-1)]]),_:1})]),default:p(()=>[o(` `+v(h(u)(`chat.attachFiles`)),1)]),_:1}),I.value>0?(d(),n(`span`,{key:0,class:S([`context-info`,{"context-warning":H.value>80}])},v(ee(I.value))+` / `+v(ee(N.value))+` · `+v(h(u)(`chat.contextRemaining`))+` `+v(ee(L.value)),3)):l(``,!0),I.value>0?(d(),n(`div`,ae,[t(`div`,{class:S([`context-bar-fill`,{"context-bar-warn":H.value>60&&H.value<=80,"context-bar-danger":H.value>80}]),style:b({width:`${H.value}%`})},null,6)])):l(``,!0)]),w.value.length>0?(d(),n(`div`,oe,[(d(!0),n(T,null,i(w.value,e=>(d(),n(`div`,{key:e.id,class:S([`attachment-preview`,{image:ye(e.type)}])},[ye(e.type)?(d(),n(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,se)):(d(),n(`div`,ce,[r[3]||=t(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),t(`polyline`,{points:`14 2 14 8 20 8`})],-1),t(`span`,le,v(e.name),1),t(`span`,Z,v(ve(e.size)),1)])),t(`button`,{class:`attachment-remove`,onClick:t=>_e(e.id)},[...r[4]||=[t(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),t(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,ue)],2))),128))])):l(``,!0),t(`div`,{class:S([`input-wrapper`,{"drag-over":O.value}]),onDragover:K,onDragenter:q,onDragleave:ne,onDrop:J},[t(`input`,{ref_key:`fileInputRef`,ref:_,type:`file`,multiple:``,class:`file-input-hidden`,onChange:W},null,544),s(t(`textarea`,{ref_key:`textareaRef`,ref:g,"onUpdate:modelValue":r[0]||=e=>m.value=e,class:`input-textarea`,placeholder:h(u)(`chat.inputPlaceholder`),rows:`1`,onKeydown:he,onCompositionstart:X,onCompositionend:pe,onInput:ge,onPaste:G},null,40,de),[[x,m.value]]),t(`div`,fe,[h(a).isStreaming?(d(),E(h(M),{key:0,size:`small`,type:`error`,onClick:r[1]||=e=>h(a).stopStreaming()},{default:p(()=>[o(v(h(u)(`chat.stop`)),1)]),_:1})):l(``,!0),y(h(M),{size:`small`,type:`primary`,disabled:!j.value||h(a).isStreaming,onClick:Y},{icon:p(()=>[...r[5]||=[t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),t(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})],-1)]]),default:p(()=>[o(` `+v(h(u)(`chat.send`)),1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-86c00ae3`]]);async function me(e={}){let t=new URLSearchParams;return e.humanOnly===!1&&t.set(`humanOnly`,`false`),e.source&&t.set(`source`,e.source),e.limit!=null&&t.set(`limit`,String(e.limit)),(await m(`/api/hermes/sessions/conversations${t.toString()?`?${t.toString()}`:``}`)).sessions}async function he(e,t={}){let n=new URLSearchParams;t.humanOnly===!1&&n.set(`humanOnly`,`false`),t.source&&n.set(`source`,t.source);let r=n.toString()?`?${n.toString()}`:``;return m(`/api/hermes/sessions/conversations/${encodeURIComponent(e)}/messages${r}`)}var ge={class:`conversation-monitor`},_e={class:`conversation-monitor__sidebar`},ve={key:0,class:`conversation-monitor__empty`},ye={key:1,class:`conversation-monitor__empty`},be=[`aria-pressed`,`onClick`],xe={class:`conversation-monitor__session-title-row`},Se={class:`conversation-monitor__session-title`},Ce={key:0,class:`conversation-monitor__session-live`},we={class:`conversation-monitor__session-meta`},Te={key:0,class:`conversation-monitor__session-preview`},Ee={class:`conversation-monitor__detail`},De={key:0,class:`conversation-monitor__detail-header`},Oe={class:`conversation-monitor__detail-title`},ke={class:`conversation-monitor__detail-meta`},Ae={key:1,class:`conversation-monitor__empty conversation-monitor__empty--error`},je={key:2,class:`conversation-monitor__empty`},Me={key:3,class:`conversation-monitor__empty`},Ne={key:4,class:`conversation-monitor__messages`},Pe={class:`conversation-monitor__message-meta`},Fe={class:`conversation-monitor__message-content`},Ie=15e3,Le=O(e({__name:`ConversationMonitorPane`,props:{humanOnly:{type:Boolean}},setup(e){let a=e,{t:o}=D(),s=C([]),p=C(null),m=C(null),g=C(!1),_=C(!1),y=C(``),b=null,x=0,w=0,E=c(()=>s.value.find(e=>e.id===p.value)||null);function O(e){return o(e===`user`?`chat.monitorRoleUser`:`chat.monitorRoleAssistant`)}function k(e){return o(`chat.linkedSessions`,{count:e})}function A(){x+=1,w+=1}async function j(e=!1){let t=++x;e||(g.value=!0,y.value=``);try{let e=await me({humanOnly:a.humanOnly});if(t!==x)return;if(s.value=e,!e.length){p.value=null,m.value=null;return}(!p.value||!e.some(e=>e.id===p.value))&&(p.value=e[0].id)}catch(n){if(t!==x||e)return;y.value=n?.message||String(n),s.value=[],p.value=null,m.value=null}finally{!e&&t===x&&(g.value=!1)}}async function M(e,t=!1){let n=++w;if(!e){m.value=null;return}let r=a.humanOnly;t||(_.value=!0,y.value=``);try{let t=await he(e,{humanOnly:r});if(n!==w||e!==p.value||r!==a.humanOnly)return;m.value=t}catch(e){if(n!==w||t)return;y.value=e?.message||String(e),m.value=null}finally{!t&&n===w&&(_.value=!1)}}return f(p,async e=>{await M(e,!1)}),f(()=>a.humanOnly,async()=>{A(),p.value=null,m.value=null,await j(!1)}),r(async()=>{await j(!1),b=setInterval(async()=>{await j(!0),p.value&&await M(p.value,!0)},Ie)}),u(()=>{A(),b&&clearInterval(b)}),(e,r)=>(d(),n(`div`,ge,[t(`aside`,_e,[g.value&&s.value.length===0?(d(),n(`div`,ve,v(h(o)(`common.loading`)),1)):s.value.length===0?(d(),n(`div`,ye,v(h(o)(`chat.noSessions`)),1)):l(``,!0),(d(!0),n(T,null,i(s.value,e=>(d(),n(`button`,{key:e.id,class:S([`conversation-monitor__session`,{active:e.id===p.value}]),"aria-pressed":e.id===p.value,onClick:t=>p.value=e.id},[t(`div`,xe,[t(`span`,Se,v(e.title||e.preview||e.id),1),e.is_active?(d(),n(`span`,Ce,v(h(o)(`chat.recentBadge`)),1)):l(``,!0)]),t(`div`,we,v(h(J)(e.source))+` · `+v(h(X)(e.last_active)),1),e.preview?(d(),n(`div`,Te,v(e.preview),1)):l(``,!0)],10,be))),128))]),t(`section`,Ee,[E.value?(d(),n(`header`,De,[t(`div`,Oe,v(E.value.title||E.value.preview||E.value.id),1),t(`div`,ke,[t(`span`,null,v(h(J)(E.value.source)),1),r[0]||=t(`span`,null,`·`,-1),t(`span`,null,v(E.value.model),1),r[1]||=t(`span`,null,`·`,-1),t(`span`,null,v(k(E.value.thread_session_count)),1)])])):l(``,!0),y.value?(d(),n(`div`,Ae,v(y.value),1)):_.value&&!m.value?(d(),n(`div`,je,v(h(o)(`common.loading`)),1)):!m.value||m.value.messages.length===0?(d(),n(`div`,Me,v(h(o)(`chat.noVisibleMessages`)),1)):(d(),n(`div`,Ne,[(d(!0),n(T,null,i(m.value.messages,e=>(d(),n(`article`,{key:`${e.session_id}-${e.id}`,class:S([`conversation-monitor__message`,`role-${e.role}`])},[t(`div`,Pe,v(O(e.role))+` · `+v(h(X)(e.timestamp)),1),t(`div`,Fe,v(e.content),1)],2))),128))]))])]))}}),[[`__scopeId`,`data-v-be298d0d`]]),Re=[`id`],ze={key:1,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},Be={class:`tool-name`},Ve={key:2,class:`tool-preview`},He={key:3,class:`tool-spinner`},Ue={key:4,class:`tool-error-badge`},We={key:0,class:`tool-detail-section`,"data-copy-source":`tool-args`},Ge={class:`tool-detail-label`},Ke=[`innerHTML`],qe={key:1,class:`tool-detail-section`,"data-copy-source":`tool-result`},Je={class:`tool-detail-label`},Ye=[`innerHTML`],Xe={key:1,class:`msg-body`},Ze={key:0,src:k,alt:`Hermes`,class:`msg-avatar`},Qe={key:0,class:`msg-attachments`},$e=[`src`,`alt`],et=[`onClick`,`title`],tt={class:`att-name`},nt={class:`att-size`},rt={key:2,class:`streaming-dots`},it={class:`message-time`},$=2e3,at=O(e({__name:`MessageItem`,props:{message:{},highlight:{type:Boolean}},setup(e){let r=e,{t:a}=D(),o=F(),s=c(()=>r.message.role===`system`),u=C(!1),f=c(()=>new Date(r.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function p(e){return e.startsWith(`image/`)}function m(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function g(e){let t=r.message.content||``,n=/\[File:\s*([^\]]+)\]\(([^)]+)\)/g,i;for(;(i=n.exec(t))!==null;)if(i[1].trim()===e.trim())return i[2];return null}function _(e){let t=g(e.name);if(t){o.info(a(`download.downloading`)),U(t,e.name).catch(e=>{o.error(e.message||a(`download.downloadFailed`))});return}if(e.url&&e.url.startsWith(`blob:`)){let t=document.createElement(`a`);t.href=e.url,t.download=e.name,document.body.appendChild(t),t.click(),document.body.removeChild(t)}}function y(e){if(!e)return{full:``,display:``};try{let t=JSON.stringify(JSON.parse(e),null,2);return{full:t,display:t.length>$?t.slice(0,$)+`
2
- `+a(`chat.truncated`):t,language:`json`}}catch{return{full:e,display:e.length>$?e.slice(0,$)+`
3
- `+a(`chat.truncated`):e}}}function b(e,t){return W(e,t,a(`common.copy`),{maxHighlightLength:$})}async function x(e){let t=e.target;if(!(t instanceof HTMLElement))return;let n=t.closest(`[data-copy-code="true"]`);if(!n)return;e.preventDefault();let r=n.closest(`[data-copy-source]`)?.dataset.copySource;if(r===`tool-args`&&j.value){await G(j.value);return}if(r===`tool-result`&&N.value){await G(N.value);return}await K(e)}let w=c(()=>(r.message.attachments?.length??0)>0),O=c(()=>!!(r.message.toolArgs||r.message.toolResult)),k=c(()=>y(r.message.toolArgs)),A=c(()=>y(r.message.toolResult)),j=c(()=>k.value.full),M=c(()=>k.value.display),N=c(()=>A.value.full),P=c(()=>A.value.display),I=c(()=>M.value?b(M.value,k.value.language):``),L=c(()=>P.value?b(P.value,A.value.language):``);return(r,o)=>(d(),n(`div`,{class:S([`message`,[e.message.role,{highlight:e.highlight}]]),id:`message-${e.message.id}`},[e.message.role===`tool`?(d(),n(T,{key:0},[t(`div`,{class:S([`tool-line`,{expandable:O.value}]),onClick:o[0]||=e=>O.value&&(u.value=!u.value)},[O.value?(d(),n(`svg`,{key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:S([`tool-chevron`,{rotated:u.value}])},[...o[1]||=[t(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)):(d(),n(`svg`,ze,[...o[2]||=[t(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`},null,-1)]])),t(`span`,Be,v(e.message.toolName),1),e.message.toolPreview&&!u.value?(d(),n(`span`,Ve,v(e.message.toolPreview),1)):l(``,!0),e.message.toolStatus===`running`?(d(),n(`span`,He)):l(``,!0),e.message.toolStatus===`error`?(d(),n(`span`,Ue,v(h(a)(`chat.error`)),1)):l(``,!0)],2),u.value&&O.value?(d(),n(`div`,{key:0,class:`tool-details`,onClick:x},[M.value?(d(),n(`div`,We,[t(`div`,Ge,v(h(a)(`chat.arguments`)),1),t(`div`,{class:`tool-detail-code-block`,innerHTML:I.value},null,8,Ke)])):l(``,!0),P.value?(d(),n(`div`,qe,[t(`div`,Je,v(h(a)(`chat.result`)),1),t(`div`,{class:`tool-detail-code-block`,innerHTML:L.value},null,8,Ye)])):l(``,!0)])):l(``,!0)],64)):(d(),n(`div`,Xe,[e.message.role===`assistant`?(d(),n(`img`,Ze)):l(``,!0),t(`div`,{class:S([`msg-content`,e.message.role])},[t(`div`,{class:S([`message-bubble`,{system:s.value}])},[w.value?(d(),n(`div`,Qe,[(d(!0),n(T,null,i(e.message.attachments,e=>(d(),n(`div`,{key:e.id,class:S([`msg-attachment`,{image:p(e.type)}])},[p(e.type)&&e.url?(d(),n(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,$e)):(d(),n(`div`,{key:1,class:`msg-attachment-file`,onClick:t=>_(e),style:{cursor:`pointer`},title:h(a)(`download.downloadFile`)},[o[3]||=t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),t(`polyline`,{points:`14 2 14 8 20 8`})],-1),t(`span`,tt,v(e.name),1),t(`span`,nt,v(m(e.size)),1),o[4]||=t(`svg`,{class:`att-download-icon`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),t(`polyline`,{points:`7 10 12 15 17 10`}),t(`line`,{x1:`12`,y1:`15`,x2:`12`,y2:`3`})],-1)],8,et))],2))),128))])):l(``,!0),e.message.content?(d(),E(q,{key:1,content:e.message.content},null,8,[`content`])):l(``,!0),e.message.isStreaming&&!e.message.content?(d(),n(`span`,rt,[...o[5]||=[t(`span`,null,null,-1),t(`span`,null,null,-1),t(`span`,null,null,-1)]])):l(``,!0)],2),t(`div`,it,v(f.value),1)],2)]))],10,Re))}}),[[`__scopeId`,`data-v-e2cd1dc7`]]),ot=`/assets/thinking-light-BjeGd2gJ.mp4`,st=`/assets/thinking-dark-yYkYRZLs.mp4`,ct={key:0,class:`empty-state`},lt={key:0,class:`streaming-indicator`},ut=[`src`],dt={key:0,class:`tool-calls-panel`},ft={class:`tool-call-name`},pt={key:0,class:`tool-call-preview`},mt={key:1,class:`tool-call-spinner`},ht={key:2,class:`tool-call-error`},gt=O(e({__name:`MessageList`,setup(e){let r=B(),{t:o}=D(),{isDark:s}=L(),u=C(),m=c(()=>r.messages.filter(e=>e.role!==`tool`)),g=c(()=>{let e=r.messages,t=-1;for(let n=e.length-1;n>=0;n--)if(e[n].role===`user`){t=n;break}return[...e.filter((e,n)=>e.role===`tool`&&n>t)].reverse()});function _(e=200){let t=u.value;return t?t.scrollHeight-t.scrollTop-t.clientHeight<e:!0}function b(){a(()=>{u.value&&(u.value.scrollTop=u.value.scrollHeight)})}function x(e){a(()=>{let t=document.getElementById(`message-${e}`);t&&t.scrollIntoView({block:`center`})})}return f(()=>r.activeSessionId,e=>{if(e){if(r.focusMessageId){x(r.focusMessageId);return}b()}},{immediate:!0}),f(()=>r.focusMessageId,e=>{e&&x(e)}),f(()=>r.isRunActive,e=>{e&&b()}),f(()=>r.messages[r.messages.length-1]?.content,()=>{if(r.focusMessageId){x(r.focusMessageId);return}if(!r.isStreaming){b();return}_()&&b()}),f(g,()=>{if(r.focusMessageId){x(r.focusMessageId);return}if(!r.isStreaming){b();return}_()&&b()}),(e,a)=>(d(),n(`div`,{ref_key:`listRef`,ref:u,class:`message-list`},[h(r).messages.length===0?(d(),n(`div`,ct,[a[0]||=t(`img`,{src:`/logo.png`,alt:`Hermes`,class:`empty-logo`},null,-1),t(`p`,null,v(h(o)(`chat.emptyState`)),1)])):l(``,!0),(d(!0),n(T,null,i(m.value,e=>(d(),E(at,{key:e.id,message:e,highlight:h(r).focusMessageId===e.id},null,8,[`message`,`highlight`]))),128)),y(w,{name:`fade`},{default:p(()=>[h(r).isRunActive?(d(),n(`div`,lt,[t(`video`,{src:h(s)?h(st):h(ot),autoplay:``,loop:``,muted:``,playsinline:``,class:`thinking-video`},null,8,ut),g.value.length>0?(d(),n(`div`,dt,[(d(!0),n(T,null,i(g.value,e=>(d(),n(`div`,{key:e.id,class:`tool-call-item`},[a[1]||=t(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-call-icon`},[t(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`})],-1),t(`span`,ft,v(e.toolName),1),e.toolPreview?(d(),n(`span`,pt,v(e.toolPreview),1)):l(``,!0),e.toolStatus===`running`?(d(),n(`span`,mt)):l(``,!0),e.toolStatus===`error`?(d(),n(`span`,ht,v(h(o)(`chat.error`)),1)):l(``,!0)]))),128))])):l(``,!0)])):l(``,!0)]),_:1})],512))}}),[[`__scopeId`,`data-v-aa66438c`]]),_t=[`aria-current`],vt={class:`session-item-content`},yt={class:`session-item-title-row`},bt={key:0,class:`session-item-active-indicator`,"aria-hidden":`true`},xt={key:1,class:`session-item-pin`,"aria-hidden":`true`},St={class:`session-item-title`},Ct={key:2,class:`session-item-live-badge`},wt={class:`session-item-meta`},Tt={key:0,class:`session-item-model`},Et={class:`session-item-time`},Dt=e({__name:`SessionListItem`,props:{session:{},active:{type:Boolean},live:{type:Boolean},pinned:{type:Boolean},canDelete:{type:Boolean}},emits:[`select`,`contextmenu`,`delete`],setup(e,{emit:r}){let i=r,{t:a}=D();return(r,s)=>(d(),n(`button`,{class:S([`session-item`,{active:e.active,live:e.live}]),"aria-current":e.active?`page`:void 0,onClick:s[2]||=e=>i(`select`),onContextmenu:s[3]||=e=>i(`contextmenu`,e)},[t(`div`,vt,[t(`span`,yt,[e.live?(d(),n(`span`,bt,[...s[4]||=[t(`svg`,{class:`session-item-active-spinner`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},[t(`circle`,{cx:`12`,cy:`12`,r:`8`,opacity:`0.2`}),t(`path`,{d:`M20 12a8 8 0 0 0-8-8`})],-1)]])):l(``,!0),e.pinned?(d(),n(`span`,xt,[...s[5]||=[t(`svg`,{width:`11`,height:`11`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[t(`path`,{d:`M12 17v5`}),t(`path`,{d:`M5 8l14 0`}),t(`path`,{d:`M8 3l8 0 0 5 3 5-14 0 3-5z`})],-1)]])):l(``,!0),t(`span`,St,v(e.session.title),1),e.live?(d(),n(`span`,Ct,[s[6]||=t(`span`,{class:`live-dot`},null,-1),t(`span`,null,v(h(a)(`chat.liveMode`)),1)])):l(``,!0)]),t(`span`,wt,[e.session.model?(d(),n(`span`,Tt,v(e.session.model),1)):l(``,!0),t(`span`,Et,v(h(Y)(e.session.createdAt)),1)])]),e.canDelete?(d(),E(h(I),{key:0,onPositiveClick:s[1]||=e=>i(`delete`)},{trigger:p(()=>[t(`button`,{class:`session-item-delete`,onClick:s[0]||=g(()=>{},[`stop`])},[...s[7]||=[t(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),t(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]])]),default:p(()=>[o(` `+v(h(a)(`chat.deleteSession`)),1)]),_:1})):l(``,!0)],42,_t))}}),Ot={class:`chat-panel`},kt={class:`session-list-header`},At={key:0,class:`session-list-title`},jt={class:`session-list-actions`},Mt={key:0,class:`session-items`},Nt={key:0,class:`session-loading`},Pt={key:1,class:`session-empty`},Ft={class:`session-group-header session-group-header--static`},It={class:`session-group-label`},Lt={class:`session-group-count`},Rt=[`onClick`],zt={class:`session-group-label`},Bt={class:`session-group-count`},Vt={class:`chat-main`},Ht={class:`chat-header`},Ut={class:`header-left`},Wt={class:`header-session-title`},Gt={key:1,class:`source-badge`},Kt={class:`header-actions`},qt={class:`chat-mode-toggle`},Jt=O(e({__name:`ChatPanel`,setup(e){let s=B(),m=ee(),g=F(),{t:b}=D(),x=C(`chat`),w=C(typeof window>`u`||!window.matchMedia(`(max-width: 768px)`).matches),O=C(w.value),k=null,I=C(!1);function L(e){s.switchSession(e),k?.matches&&(w.value=!1)}function R(e){e!==x.value&&(e===`live`?(O.value=w.value,w.value=!1):w.value=k?.matches?!1:O.value,x.value=e)}function z(e){I.value=e.matches,e.matches&&w.value&&(w.value=!1)}r(()=>{k=window.matchMedia(`(max-width: 768px)`),z(k),k.addEventListener(`change`,z)}),u(()=>{k?.removeEventListener(`change`,z)});let V=C(!1),U=C(``),W=C(null),G=C(null),K=C(new Set(JSON.parse(localStorage.getItem(`hermes_collapsed_groups`)||`[]`)));function q(e){return e===`api_server`?-1:e===`cron`?999:0}function ne(e){return[...e].sort((e,t)=>{let n=s.isSessionLive(e.id);return n===s.isSessionLive(t.id)?(t.updatedAt||0)-(e.updatedAt||0):n?-1:1})}let Y=c(()=>ne(s.sessions.filter(e=>m.isPinned(e.id)))),X=c(()=>{let e=new Map;for(let t of s.sessions){if(m.isPinned(t.id))continue;let n=t.source||``;e.has(n)||e.set(n,[]),e.get(n).push(t)}return[...e.keys()].sort((t,n)=>{let r=e.get(t)?.some(e=>s.isSessionLive(e.id))||!1;if(r!==(e.get(n)?.some(e=>s.isSessionLive(e.id))||!1))return r?-1:1;let i=q(t),a=q(n);return i===a?t.localeCompare(n):i-a}).map(t=>({source:t,label:t?J(t):b(`chat.other`),sessions:ne(e.get(t))}))});function re(e){if(!K.value.has(e))K.value=new Set([...K.value,e]);else{K.value=new Set(X.value.map(e=>e.source).filter(t=>t!==e));let t=X.value.find(t=>t.source===e);t?.sessions.length&&s.switchSession(t.sessions[0].id)}localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...K.value]))}f(X,e=>{if(localStorage.getItem(`hermes_collapsed_groups`)!==null){let e=s.activeSession?.source;e&&K.value.has(e)&&(K.value=new Set([...K.value].filter(t=>t!==e)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...K.value])));return}K.value=new Set(e.slice(1).map(e=>e.source)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...K.value]))},{once:!0}),f(()=>[s.sessionsLoaded,...s.sessions.map(e=>e.id)],e=>{let t=e.slice(1);!e[0]||t.length===0||m.pruneMissingSessions(t)},{immediate:!0});let ie=c(()=>s.activeSession?.title||b(`chat.newChat`)),ae=c(()=>x.value===`live`?b(`chat.liveSessions`):ie.value),oe=c(()=>x.value===`chat`&&s.activeSession?.source||``);function se(){s.newChat()}async function ce(e){let t=e||s.activeSessionId;t&&(await te(t)?g.success(b(`common.copied`)):g.error(b(`common.copied`)+` ✗`))}function le(e){m.removePinned(e),s.deleteSession(e),g.success(b(`chat.sessionDeleted`))}let Z=C(null),ue=c(()=>Z.value?m.isPinned(Z.value):!1),de=c(()=>[{label:b(ue.value?`chat.unpin`:`chat.pin`),key:`pin`},{label:b(`chat.rename`),key:`rename`},{label:b(`chat.copySessionId`),key:`copy-id`}]);function fe(e,t){e.preventDefault(),Z.value=t,Q.value=!0,me.value=e.clientX,he.value=e.clientY}let Q=C(!1),me=C(0),he=C(0);function ge(e){if(Q.value=!1,Z.value){if(e===`pin`){m.togglePinned(Z.value);return}if(e===`copy-id`)ce(Z.value);else if(e===`rename`){let e=s.sessions.find(e=>e.id===Z.value);W.value=Z.value,U.value=e?.title||``,V.value=!0,a(()=>{G.value?.focus()})}}}function _e(){Q.value=!1}async function ve(){if(!(!W.value||!U.value.trim())){if(await H(W.value,U.value.trim())){let e=s.sessions.find(e=>e.id===W.value);e&&(e.title=U.value.trim()),s.activeSession?.id===W.value&&(s.activeSession.title=U.value.trim()),g.success(b(`chat.renamed`))}else g.error(b(`chat.renameFailed`));V.value=!1}}return(e,r)=>(d(),n(`div`,Ot,[x.value===`chat`?(d(),n(`div`,{key:0,class:S([`session-backdrop`,{active:w.value}]),onClick:r[0]||=e=>w.value=!1},null,2)):l(``,!0),x.value===`chat`?(d(),n(`aside`,{key:1,class:S([`session-list`,{collapsed:!w.value}])},[t(`div`,kt,[w.value?(d(),n(`span`,At,v(h(b)(`chat.sessions`)),1)):l(``,!0),t(`div`,jt,[t(`button`,{class:`session-close-btn`,onClick:r[1]||=e=>w.value=!1},[...r[8]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),t(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]]),y(h(M),{quaternary:``,size:`tiny`,onClick:se,circle:``},{icon:p(()=>[...r[9]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),t(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),_:1})])]),w.value?(d(),n(`div`,Mt,[h(s).isLoadingSessions&&h(s).sessions.length===0?(d(),n(`div`,Nt,v(h(b)(`common.loading`)),1)):h(s).sessions.length===0?(d(),n(`div`,Pt,v(h(b)(`chat.noSessions`)),1)):l(``,!0),Y.value.length>0?(d(),n(T,{key:2},[t(`div`,Ft,[t(`span`,It,v(h(b)(`chat.pinned`)),1),t(`span`,Lt,v(Y.value.length),1)]),(d(!0),n(T,null,i(Y.value,e=>(d(),E(Dt,{key:`pinned-${e.id}`,session:e,active:e.id===h(s).activeSessionId,live:h(s).isSessionLive(e.id),pinned:!0,"can-delete":e.id!==h(s).activeSessionId||h(s).sessions.length>1,onSelect:t=>L(e.id),onContextmenu:t=>fe(t,e.id),onDelete:t=>le(e.id)},null,8,[`session`,`active`,`live`,`can-delete`,`onSelect`,`onContextmenu`,`onDelete`]))),128))],64)):l(``,!0),(d(!0),n(T,null,i(X.value,e=>(d(),n(T,{key:e.source},[t(`div`,{class:`session-group-header`,onClick:t=>re(e.source)},[(d(),n(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:S([`group-chevron`,{collapsed:K.value.has(e.source)}])},[...r[10]||=[t(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)),t(`span`,zt,v(e.label),1),t(`span`,Bt,v(e.sessions.length),1)],8,Rt),K.value.has(e.source)?l(``,!0):(d(!0),n(T,{key:0},i(e.sessions,e=>(d(),E(Dt,{key:e.id,session:e,active:e.id===h(s).activeSessionId,live:h(s).isSessionLive(e.id),pinned:!1,"can-delete":e.id!==h(s).activeSessionId||h(s).sessions.length>1,onSelect:t=>L(e.id),onContextmenu:t=>fe(t,e.id),onDelete:t=>le(e.id)},null,8,[`session`,`active`,`live`,`can-delete`,`onSelect`,`onContextmenu`,`onDelete`]))),128))],64))),128))])):l(``,!0)],2)):l(``,!0),y(h(j),{placement:`bottom-start`,trigger:`manual`,x:me.value,y:he.value,options:de.value,show:Q.value,onSelect:ge,onClickoutside:_e},null,8,[`x`,`y`,`options`,`show`]),y(h(A),{show:V.value,"onUpdate:show":r[3]||=e=>V.value=e,preset:`dialog`,title:h(b)(`chat.renameSession`),"positive-text":h(b)(`common.ok`),"negative-text":h(b)(`common.cancel`),onPositiveClick:ve},{default:p(()=>[y(h(N),{ref_key:`renameInputRef`,ref:G,value:U.value,"onUpdate:value":r[2]||=e=>U.value=e,placeholder:h(b)(`chat.enterNewTitle`),onKeydown:_(ve,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`show`,`title`,`positive-text`,`negative-text`]),t(`div`,Vt,[t(`header`,Ht,[t(`div`,Ut,[x.value===`chat`?(d(),E(h(M),{key:0,quaternary:``,size:`small`,onClick:r[4]||=e=>w.value=!w.value,circle:``},{icon:p(()=>[...r[11]||=[t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`}),t(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`}),t(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`}),t(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`})],-1)]]),_:1})):l(``,!0),t(`span`,Wt,v(ae.value),1),oe.value?(d(),n(`span`,Gt,v(h(J)(oe.value)),1)):l(``,!0)]),t(`div`,Kt,[t(`div`,qt,[y(h(M),{size:`small`,type:x.value===`chat`?`primary`:`default`,"aria-pressed":x.value===`chat`,onClick:r[5]||=e=>R(`chat`)},{default:p(()=>[o(v(h(b)(`chat.chatMode`)),1)]),_:1},8,[`type`,`aria-pressed`]),y(h(M),{size:`small`,type:x.value===`live`?`primary`:`default`,"aria-pressed":x.value===`live`,onClick:r[6]||=e=>R(`live`)},{default:p(()=>[o(v(h(b)(`chat.liveMode`)),1)]),_:1},8,[`type`,`aria-pressed`])]),x.value===`chat`?(d(),n(T,{key:0},[y(h(P),{trigger:`hover`},{trigger:p(()=>[y(h(M),{quaternary:``,size:`small`,onClick:r[7]||=e=>ce(),circle:``},{icon:p(()=>[...r[12]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),t(`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:p(()=>[o(` `+v(h(b)(`chat.copySessionId`)),1)]),_:1}),y(h(M),{size:`small`,circle:I.value,onClick:se},{icon:p(()=>[...r[13]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),t(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:p(()=>[I.value?l(``,!0):(d(),n(T,{key:0},[o(v(h(b)(`chat.newChat`)),1)],64))]),_:1},8,[`circle`])],64)):l(``,!0)])]),x.value===`chat`?(d(),n(T,{key:0},[y(gt),y(pe)],64)):(d(),E(Le,{key:1,"human-only":h(m).humanOnly},null,8,[`human-only`]))])]))}}),[[`__scopeId`,`data-v-ed01ae3e`]]),Yt={class:`chat-view`},Xt=O(e({__name:`ChatView`,setup(e){let t=R(),i=B(),a=z();return r(async()=>{t.loadModels(),await a.fetchProfiles(),i.loadSessions()}),(e,t)=>(d(),n(`div`,Yt,[y(Jt)]))}}),[[`__scopeId`,`data-v-6dae3628`]]);export{Xt as default};
@@ -1 +0,0 @@
1
- [data-v-86c00ae3]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-86c00ae3]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.chat-input-area[data-v-86c00ae3]{border-top:1px solid var(--border-color);flex-shrink:0;padding:12px 20px 16px}.input-top-bar[data-v-86c00ae3]{align-items:center;gap:8px;padding:0 0 6px;display:flex}.context-info[data-v-86c00ae3]{color:var(--text-muted);font-size:11px}.context-info.context-warning[data-v-86c00ae3]{color:#e8a735}.context-bar[data-v-86c00ae3]{background:#80808033;border-radius:2px;width:60px;height:4px;overflow:hidden}.context-bar-fill[data-v-86c00ae3]{background:linear-gradient(90deg,#8080804d,#80808099);border-radius:2px;height:100%;transition:width .3s}.context-bar-fill.context-bar-warn[data-v-86c00ae3]{background:linear-gradient(90deg,#c98a1a,#e8a735)}.context-bar-fill.context-bar-danger[data-v-86c00ae3]{background:linear-gradient(90deg,#c43a2a,#e85d4a)}.attachment-previews[data-v-86c00ae3]{flex-wrap:wrap;gap:8px;padding:0 0 10px;display:flex}.attachment-preview[data-v-86c00ae3]{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;position:relative;overflow:hidden}.attachment-preview.image[data-v-86c00ae3]{width:64px;height:64px}.attachment-thumb[data-v-86c00ae3]{object-fit:cover;width:100%;height:100%}.attachment-file[data-v-86c00ae3]{min-width:80px;max-width:140px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 12px;display:flex}.attachment-file .file-name[data-v-86c00ae3]{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.attachment-file .file-size[data-v-86c00ae3]{color:var(--text-muted);font-size:10px}.attachment-remove[data-v-86c00ae3]{width:18px;height:18px;color:var(--text-on-overlay);cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.attachment-preview:hover .attachment-remove[data-v-86c00ae3]{opacity:1}.file-input-hidden[data-v-86c00ae3]{display:none}.input-wrapper[data-v-86c00ae3]{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background-color .15s;display:flex}.input-wrapper[data-v-86c00ae3]:focus-within{border-color:var(--accent-primary)}.dark .input-wrapper[data-v-86c00ae3]{background-color:#333}.input-textarea[data-v-86c00ae3]{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:20px;max-height:100px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;overflow-y:auto}.input-textarea[data-v-86c00ae3]::placeholder{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.input-actions[data-v-86c00ae3]{flex-shrink:0;align-items:center;gap:6px;display:flex}.input-wrapper.drag-over[data-v-86c00ae3]{border-color:var(--accent-info);background-color:rgba(var(--accent-info-rgb), .04);border-style:dashed}[data-v-be298d0d]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-be298d0d]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.conversation-monitor[data-v-be298d0d]{flex:1;min-height:0;display:flex}.conversation-monitor__sidebar[data-v-be298d0d]{border-right:1px solid var(--border-color);scrollbar-gutter:stable;flex-shrink:0;width:260px;overflow-y:auto}.conversation-monitor__sidebar[data-v-be298d0d]::-webkit-scrollbar{width:4px}.conversation-monitor__sidebar[data-v-be298d0d]::-webkit-scrollbar-thumb{background:rgba(var(--text-muted), .3);border-radius:4px}.conversation-monitor__sidebar[data-v-be298d0d]::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-muted), .5)}.conversation-monitor__session[data-v-be298d0d]{border:0;border-bottom:1px solid rgba(var(--border-color), .6);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;padding:12px 14px}.conversation-monitor__session.active[data-v-be298d0d]{background:rgba(var(--accent-primary-rgb), .12);color:var(--text-primary);font-weight:500}.conversation-monitor__session.active .conversation-monitor__session-title[data-v-be298d0d]{color:var(--accent-primary)}.conversation-monitor__session-title-row[data-v-be298d0d],.conversation-monitor__detail-meta[data-v-be298d0d],.conversation-monitor__message-meta[data-v-be298d0d]{align-items:center;gap:6px;display:flex}.conversation-monitor__session-title[data-v-be298d0d],.conversation-monitor__detail-title[data-v-be298d0d]{font-weight:600}.conversation-monitor__session-live[data-v-be298d0d]{color:var(--accent-primary);font-size:11px}.conversation-monitor__session-meta[data-v-be298d0d],.conversation-monitor__session-preview[data-v-be298d0d],.conversation-monitor__detail-meta[data-v-be298d0d],.conversation-monitor__message-meta[data-v-be298d0d]{color:var(--text-muted);font-size:12px}.conversation-monitor__session-preview[data-v-be298d0d],.conversation-monitor__message-content[data-v-be298d0d]{white-space:pre-wrap;margin-top:6px}.conversation-monitor__detail[data-v-be298d0d]{flex-direction:column;flex:1;min-width:0;display:flex}.conversation-monitor__detail-header[data-v-be298d0d]{border-bottom:1px solid var(--border-color);padding:16px 20px}.conversation-monitor__messages[data-v-be298d0d]{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.conversation-monitor__message[data-v-be298d0d]{background:rgba(var(--bg-secondary), .8);border-radius:10px;padding:12px 14px}.conversation-monitor__message.role-user[data-v-be298d0d]{border:1px solid rgba(var(--accent-primary), .18)}.conversation-monitor__message.role-assistant[data-v-be298d0d]{border:1px solid rgba(var(--border-color), .9)}.conversation-monitor__empty[data-v-be298d0d]{color:var(--text-muted);padding:24px}.conversation-monitor__empty--error[data-v-be298d0d]{color:var(--error)}@media (width<=768px){.conversation-monitor[data-v-be298d0d]{flex-direction:column}.conversation-monitor__sidebar[data-v-be298d0d]{border-right:0;border-bottom:1px solid var(--border-color);flex-shrink:0;width:100%;max-height:220px}.conversation-monitor__detail[data-v-be298d0d]{min-height:0;overflow:hidden}}[data-v-e2cd1dc7]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-e2cd1dc7]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.message[data-v-e2cd1dc7]{flex-direction:column;display:flex}.message.user[data-v-e2cd1dc7]{align-items:flex-end}.message.user .msg-body[data-v-e2cd1dc7]{max-width:75%}.message.user .msg-content.user[data-v-e2cd1dc7]{align-items:flex-end}.message.user .message-bubble[data-v-e2cd1dc7]{background-color:var(--msg-user-bg);border-radius:10px}.message.assistant[data-v-e2cd1dc7]{flex-direction:row;align-items:flex-start;gap:8px}.message.assistant .msg-body[data-v-e2cd1dc7]{max-width:80%}.message.assistant .msg-avatar[data-v-e2cd1dc7]{flex-shrink:0;width:40px;height:40px;margin-top:2px}.message.assistant .message-bubble[data-v-e2cd1dc7]{background-color:var(--msg-assistant-bg);border-radius:10px}.message.tool[data-v-e2cd1dc7],.message.system[data-v-e2cd1dc7]{align-items:flex-start}.message.system .message-bubble.system[data-v-e2cd1dc7]{border-left:3px solid var(--warning);background-color:rgba(var(--warning-rgb), .06);border-radius:6px;max-width:80%}.message.highlight .message-bubble[data-v-e2cd1dc7]{box-shadow:0 0 0 1px rgba(var(--accent-primary-rgb), .45)}.msg-body[data-v-e2cd1dc7]{align-items:flex-start;gap:8px;max-width:85%;display:flex}.msg-content[data-v-e2cd1dc7]{flex-direction:column;min-width:0;display:flex}.message-bubble[data-v-e2cd1dc7]{word-break:break-word;border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.65}.msg-attachments[data-v-e2cd1dc7]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.msg-attachment[data-v-e2cd1dc7]{border:1px solid var(--border-light);background-color:#0000000a;border-radius:6px;overflow:hidden}.msg-attachment.image[data-v-e2cd1dc7]{max-width:200px}.msg-attachment-thumb[data-v-e2cd1dc7]{object-fit:contain;max-width:200px;max-height:160px;display:block}.msg-attachment-file[data-v-e2cd1dc7]{color:var(--text-secondary);align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.msg-attachment-file .att-name[data-v-e2cd1dc7]{white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.msg-attachment-file .att-size[data-v-e2cd1dc7]{color:var(--text-muted);flex-shrink:0;font-size:11px}.message-time[data-v-e2cd1dc7]{color:var(--text-muted);margin-top:4px;padding:0 4px;font-size:11px}.dark .message-time[data-v-e2cd1dc7]{color:#999}.tool-line[data-v-e2cd1dc7]{color:var(--text-muted);border-radius:6px;align-items:center;gap:6px;padding:2px 4px;font-size:11px;display:flex}.tool-line.expandable[data-v-e2cd1dc7]{cursor:pointer}.tool-line.expandable[data-v-e2cd1dc7]:hover{background:#00000008}.tool-line .tool-name[data-v-e2cd1dc7]{flex-shrink:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-line .tool-preview[data-v-e2cd1dc7]{text-overflow:ellipsis;white-space:nowrap;max-width:400px;overflow:hidden}.tool-chevron[data-v-e2cd1dc7]{flex-shrink:0;transition:transform .15s}.tool-chevron.rotated[data-v-e2cd1dc7]{transform:rotate(90deg)}.tool-spinner[data-v-e2cd1dc7]{border:1.5px solid var(--text-muted);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite spin-e2cd1dc7}.tool-error-badge[data-v-e2cd1dc7]{color:var(--error);background:rgba(var(--error-rgb), .08);border-radius:3px;padding:0 4px;font-size:9px;line-height:14px}.tool-details[data-v-e2cd1dc7]{border-left:2px solid var(--border-light);margin-top:2px;margin-left:16px;padding-left:10px}.tool-detail-section[data-v-e2cd1dc7]{margin-bottom:6px}.tool-detail-label[data-v-e2cd1dc7]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px;font-size:10px;font-weight:600}.tool-detail-code-block[data-v-e2cd1dc7] .hljs-code-block{margin:0}.tool-detail-code-block[data-v-e2cd1dc7] .code-header{background:#00000005}.tool-detail-code-block[data-v-e2cd1dc7] code.hljs{white-space:pre-wrap;word-break:break-word;max-height:300px;font-size:11px;overflow-y:auto}@keyframes spin-e2cd1dc7{to{transform:rotate(360deg)}}.streaming-cursor[data-v-e2cd1dc7]{background-color:var(--text-muted);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:.8s infinite blink-e2cd1dc7;display:inline-block}.streaming-dots[data-v-e2cd1dc7]{gap:4px;padding:4px 0;display:flex}.streaming-dots span[data-v-e2cd1dc7]{background-color:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse-e2cd1dc7}.streaming-dots span[data-v-e2cd1dc7]:nth-child(2){animation-delay:.2s}.streaming-dots span[data-v-e2cd1dc7]:nth-child(3){animation-delay:.4s}@keyframes blink-e2cd1dc7{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes pulse-e2cd1dc7{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media (width<=768px){.message.user .msg-body[data-v-e2cd1dc7],.message.assistant .msg-body[data-v-e2cd1dc7],.message.system .msg-body[data-v-e2cd1dc7]{max-width:100%}}[data-v-aa66438c]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-aa66438c]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.message-list[data-v-aa66438c]{background-color:var(--bg-card);flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.dark .message-list[data-v-aa66438c]{background-color:#333}.empty-state[data-v-aa66438c]{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state .empty-logo[data-v-aa66438c]{opacity:.25;width:48px;height:48px}.empty-state p[data-v-aa66438c]{font-size:14px}.fade-enter-active[data-v-aa66438c],.fade-leave-active[data-v-aa66438c]{transition:opacity .4s}.fade-enter-from[data-v-aa66438c],.fade-leave-to[data-v-aa66438c]{opacity:0}.streaming-indicator[data-v-aa66438c]{align-items:flex-start;gap:12px;padding:4px;display:flex}.streaming-indicator .thinking-video[data-v-aa66438c]{object-fit:contain;border-radius:10px;flex-shrink:0;width:120px;height:213px}.tool-calls-panel[data-v-aa66438c]{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;gap:4px;max-height:213px;padding-top:4px;display:flex;overflow-y:auto}.tool-calls-panel[data-v-aa66438c]::-webkit-scrollbar{display:none}.tool-call-item[data-v-aa66438c]{color:var(--text-secondary);background:#00000008;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:flex}.dark .tool-call-item[data-v-aa66438c]{background:#ffffff0f}.tool-call-item .tool-call-icon[data-v-aa66438c]{color:var(--text-muted);flex-shrink:0}.tool-call-item .tool-call-name[data-v-aa66438c]{flex-shrink:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-call-item .tool-call-preview[data-v-aa66438c]{text-overflow:ellipsis;white-space:nowrap;max-width:300px;color:var(--text-muted);overflow:hidden}.tool-call-spinner[data-v-aa66438c]{border:1.5px solid var(--text-muted);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite spin-aa66438c}.tool-call-error[data-v-aa66438c]{color:var(--error);background:rgba(var(--error), .08);border-radius:3px;padding:0 4px;font-size:9px;line-height:14px}@keyframes spin-aa66438c{to{transform:rotate(360deg)}}[data-v-ed01ae3e]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-ed01ae3e]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.chat-panel[data-v-ed01ae3e]{height:100%;display:flex;position:relative}.session-list[data-v-ed01ae3e]{border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:220px;transition:width .25s,opacity .25s;display:flex;overflow:hidden}.session-list.collapsed[data-v-ed01ae3e]{opacity:0;pointer-events:none;border-right:none;width:0}@media (width<=768px){.session-list[data-v-ed01ae3e]{z-index:10;background:var(--bg-card);width:280px;height:100%;position:absolute;top:0;left:0;box-shadow:2px 0 8px #0000001a}.session-list.collapsed[data-v-ed01ae3e]{opacity:0;transform:translate(-100%)}.session-close-btn[data-v-ed01ae3e]{display:flex}.session-backdrop[data-v-ed01ae3e]{z-index:9;opacity:0;pointer-events:none;background:#0006;transition:opacity .15s;position:absolute;inset:0}.session-backdrop.active[data-v-ed01ae3e]{opacity:1;pointer-events:auto}}.session-list-header[data-v-ed01ae3e]{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px;display:flex}.session-list-actions[data-v-ed01ae3e]{align-items:center;gap:4px;display:flex}.session-close-btn[data-v-ed01ae3e]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:4px;display:none}.session-close-btn[data-v-ed01ae3e]:hover{background:rgba(var(--accent-primary), .06)}.session-list-title[data-v-ed01ae3e]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.session-group-header[data-v-ed01ae3e]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:6px 10px 4px;display:flex}.session-group-header--static[data-v-ed01ae3e]{cursor:default}.group-chevron[data-v-ed01ae3e]{flex-shrink:0;transition:transform .15s;transform:rotate(90deg)}.group-chevron.collapsed[data-v-ed01ae3e]{transform:rotate(0)}.session-group-label[data-v-ed01ae3e]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.session-group-count[data-v-ed01ae3e]{color:var(--text-muted);font-size:10px;font-weight:400}.session-items[data-v-ed01ae3e]{flex:1;padding:0 6px 12px;overflow-y:auto}.session-loading[data-v-ed01ae3e],.session-empty[data-v-ed01ae3e]{color:var(--text-muted);text-align:center;padding:16px 10px;font-size:12px}[data-v-ed01ae3e] .session-item{cursor:pointer;text-align:left;width:100%;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}[data-v-ed01ae3e] .session-item:hover{background:rgba(var(--accent-primary), .06);color:var(--text-primary)}[data-v-ed01ae3e] .session-item:hover .session-item-delete{opacity:1}[data-v-ed01ae3e] .session-item.active{background:rgba(var(--accent-primary-rgb), .12);color:var(--text-primary);font-weight:500}[data-v-ed01ae3e] .session-item.active .session-item-title,[data-v-ed01ae3e] .session-item.live .session-item-title{color:var(--accent-primary)}[data-v-ed01ae3e] .session-item-content{flex:1;overflow:hidden}[data-v-ed01ae3e] .session-item-title-row{align-items:center;gap:6px;min-width:0;display:flex}[data-v-ed01ae3e] .session-item-title{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:13px;display:block;overflow:hidden}[data-v-ed01ae3e] .session-item-active-indicator{color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}[data-v-ed01ae3e] .session-item-active-spinner{animation:1.1s linear infinite session-spin-ed01ae3e}[data-v-ed01ae3e] .session-item-live-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-primary);background:rgba(var(--accent-primary-rgb), .1);border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:1px 7px;font-size:10px;font-weight:600;line-height:16px;display:inline-flex}[data-v-ed01ae3e] .live-dot{background:var(--accent-primary);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite live-pulse-ed01ae3e}@keyframes live-pulse-ed01ae3e{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}[data-v-ed01ae3e] .session-item-pin{color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}[data-v-ed01ae3e] .session-item-time{color:var(--text-muted);font-size:11px}[data-v-ed01ae3e] .session-item-meta{align-items:center;gap:6px;margin-top:2px;display:flex}[data-v-ed01ae3e] .session-item-model{color:var(--accent-primary);background:rgba(var(--accent-primary), .08);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;flex-shrink:0;max-width:100px;padding:0 5px;font-size:10px;line-height:16px;overflow:hidden}[data-v-ed01ae3e] .session-item-delete{opacity:.5;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px;transition:all .15s}[data-v-ed01ae3e] .session-item-delete:hover{color:var(--error);background:rgba(var(--error), .1)}@keyframes session-spin-ed01ae3e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-main[data-v-ed01ae3e]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header[data-v-ed01ae3e]{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:21px 20px;display:flex}.header-left[data-v-ed01ae3e]{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.header-session-title[data-v-ed01ae3e]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.source-badge[data-v-ed01ae3e]{color:var(--text-muted);background:rgba(var(--text-muted), .12);white-space:nowrap;border-radius:8px;flex-shrink:0;padding:1px 7px;font-size:10px;line-height:16px}.header-actions[data-v-ed01ae3e]{flex-shrink:0;align-items:center;gap:4px;display:flex}.chat-mode-toggle[data-v-ed01ae3e]{align-items:center;gap:4px;margin-right:4px;display:flex}@media (width<=768px){.chat-header[data-v-ed01ae3e]{padding:16px 12px 16px 52px}}.chat-view[data-v-6dae3628]{height:calc(100 * var(--vh));flex-direction:column;display:flex}
@@ -1 +0,0 @@
1
- [data-v-ad22ad75]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-ad22ad75]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.group-message[data-v-ad22ad75]{gap:10px;padding:2px 0;display:flex}.group-message.agent[data-v-ad22ad75],.group-message.self[data-v-ad22ad75]{flex-direction:row-reverse}.group-message.agent .msg-body[data-v-ad22ad75],.group-message.self .msg-body[data-v-ad22ad75]{align-items:flex-end}.group-message.agent .msg-header[data-v-ad22ad75],.group-message.self .msg-header[data-v-ad22ad75]{flex-direction:row-reverse}.group-message.agent .msg-content.agent-content[data-v-ad22ad75]{background-color:rgba(var(--accent-primary-rgb), .06)}.group-message.self .msg-content[data-v-ad22ad75]{background-color:rgba(var(--accent-primary-rgb), .1)}.avatar[data-v-ad22ad75]{border-radius:8px;flex-shrink:0;width:36px;height:36px;margin-top:2px;overflow:hidden}.avatar[data-v-ad22ad75] svg{width:36px;height:36px}.msg-body[data-v-ad22ad75]{flex-direction:column;min-width:0;max-width:85%;display:flex}.msg-header[data-v-ad22ad75]{align-items:center;gap:8px;padding-bottom:2px;display:flex}.msg-header .sender-name[data-v-ad22ad75]{color:var(--text-primary);font-size:13px;font-weight:600}.msg-header .agent-desc[data-v-ad22ad75]{color:var(--text-muted);font-size:11px;font-style:italic}.msg-header .msg-time[data-v-ad22ad75]{color:var(--text-muted);margin-top:2px;font-size:11px}.msg-content[data-v-ad22ad75]{color:var(--text-primary);background-color:var(--msg-user-bg);word-break:break-word;overflow-wrap:break-word;border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.65}.msg-content[data-v-ad22ad75] .mention-highlight{color:#409eff;cursor:default;font-weight:600}[data-v-ca1cb9a3]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-ca1cb9a3]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.message-list[data-v-ca1cb9a3]{background-color:var(--bg-card);flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.empty-state[data-v-ca1cb9a3]{color:var(--text-muted);opacity:.4;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state p[data-v-ca1cb9a3]{font-size:14px}[data-v-50593bf2]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-50593bf2]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.chat-input-area[data-v-50593bf2]{border-top:1px solid var(--border-color);flex-shrink:0;padding:20px 20px 16px}.typing-dots[data-v-50593bf2]{align-items:center;gap:2px;display:inline-flex}.typing-dots span[data-v-50593bf2]{background-color:var(--text-muted);border-radius:50%;width:4px;height:4px;animation:1.2s infinite typing-bounce-50593bf2;display:block}.typing-dots span[data-v-50593bf2]:nth-child(2){animation-delay:.2s}.typing-dots span[data-v-50593bf2]:nth-child(3){animation-delay:.4s}@keyframes typing-bounce-50593bf2{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.input-wrapper[data-v-50593bf2]{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background-color .15s;display:flex}.input-wrapper[data-v-50593bf2]:focus-within{border-color:var(--accent-primary)}.dark .input-wrapper[data-v-50593bf2]{background-color:#333}.input-textarea[data-v-50593bf2]{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:20px;max-height:100px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;overflow-y:auto}.input-textarea[data-v-50593bf2]::placeholder{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.input-actions[data-v-50593bf2]{flex-shrink:0;align-items:center;gap:6px;display:flex}[data-v-f150f087]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-f150f087]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.create-form .form-group[data-v-f150f087]{margin-bottom:16px}.form-label[data-v-f150f087]{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-hint[data-v-f150f087]{color:var(--text-muted);margin:4px 0 0;font-size:11px}.code-row[data-v-f150f087]{align-items:center;gap:8px;display:flex}.compression-collapse[data-v-f150f087]{margin-bottom:16px}.compression-fields[data-v-f150f087]{padding-top:8px}[data-v-1917d5a4]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-1917d5a4]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.group-chat-panel[data-v-1917d5a4]{height:100%;display:flex;position:relative;overflow:hidden}.sidebar-backdrop[data-v-1917d5a4]{display:none}@media (width<=768px){.sidebar-backdrop[data-v-1917d5a4]{z-index:99;opacity:0;pointer-events:none;background:#0006;transition:opacity .15s;display:block;position:absolute;inset:0}.sidebar-backdrop.active[data-v-1917d5a4]{opacity:1;pointer-events:auto}}.status-bar[data-v-1917d5a4]{flex-shrink:0;padding:6px 20px;overflow:hidden}.context-status-list[data-v-1917d5a4]{flex-wrap:nowrap;gap:8px;display:flex;overflow-x:auto}.context-status-list[data-v-1917d5a4]::-webkit-scrollbar{height:0}.context-status[data-v-1917d5a4]{color:var(--text-secondary);background-color:var(--bg-card-hover);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.dark .context-status[data-v-1917d5a4]{background-color:#ffffff0f}.typing-indicator[data-v-1917d5a4]{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.typing-dots[data-v-1917d5a4]{align-items:center;gap:2px;display:inline-flex}.typing-dots span[data-v-1917d5a4]{background-color:var(--text-muted);border-radius:50%;width:4px;height:4px;animation:1.2s infinite typing-bounce-1917d5a4;display:block}.typing-dots span[data-v-1917d5a4]:nth-child(2){animation-delay:.2s}.typing-dots span[data-v-1917d5a4]:nth-child(3){animation-delay:.4s}@keyframes typing-bounce-1917d5a4{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.room-sidebar[data-v-1917d5a4]{background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:220px;display:flex}.sidebar-header[data-v-1917d5a4]{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px;display:flex}.sidebar-header .sidebar-title[data-v-1917d5a4]{color:var(--text-primary);font-size:15px;font-weight:600}.sidebar-header .sidebar-actions[data-v-1917d5a4]{gap:4px;display:flex}.room-list[data-v-1917d5a4]{flex:1;padding:8px;overflow-y:auto}.room-item[data-v-1917d5a4]{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:10px;transition:background-color .15s;display:flex}.room-item[data-v-1917d5a4]:hover{background-color:rgba(var(--accent-primary-rgb), .06)}.room-item.active[data-v-1917d5a4]{background-color:rgba(var(--accent-primary-rgb), .12)}.room-item .room-icon[data-v-1917d5a4]{color:var(--text-muted);flex-shrink:0}.room-item .room-info[data-v-1917d5a4]{flex-direction:column;flex:1;min-width:0;display:flex}.room-item .room-name[data-v-1917d5a4]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.room-item .room-code[data-v-1917d5a4]{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px}.room-item .room-tokens[data-v-1917d5a4]{color:var(--text-muted);font-size:11px}.room-item .room-delete-btn[data-v-1917d5a4]{width:24px;height:24px;color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s,color .15s,background-color .15s;display:flex}.room-item .room-delete-btn[data-v-1917d5a4]:hover{color:var(--error);background-color:rgba(var(--error-rgb), .1)}.room-item:hover .room-delete-btn[data-v-1917d5a4]{opacity:1}.empty-rooms[data-v-1917d5a4]{text-align:center;color:var(--text-muted);padding:20px 12px;font-size:13px}.chat-main[data-v-1917d5a4]{background-color:#0000;flex-direction:column;flex:1;min-width:0;display:flex}.chat-header[data-v-1917d5a4]{border-bottom:1px solid var(--border-color);align-items:center;gap:12px;padding:21px 20px;display:flex}.chat-header .room-title-text[data-v-1917d5a4]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:16px;font-weight:600;overflow:hidden}.chat-header .header-info[data-v-1917d5a4]{flex-shrink:0;align-items:center;gap:8px;display:flex}.chat-header .member-count[data-v-1917d5a4]{color:var(--text-muted);font-size:12px}.avatar-stack[data-v-1917d5a4]{cursor:pointer}.avatar-stack-inner[data-v-1917d5a4]{align-items:center;display:flex}.avatar-stack-item[data-v-1917d5a4]{border:2px solid var(--bg-card);background-color:var(--bg-secondary);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-left:-12px;transition:transform .15s;display:flex;overflow:hidden}.avatar-stack-item[data-v-1917d5a4]:first-child{margin-left:0}.avatar-stack-item[data-v-1917d5a4]:hover{transform:translateY(-2px);z-index:100!important}.avatar-stack-more[data-v-1917d5a4]{border:2px solid var(--bg-card);background-color:var(--bg-secondary);width:28px;height:28px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;margin-left:-12px;font-size:11px;font-weight:600;display:flex}.agent-avatar[data-v-1917d5a4]{justify-content:center;align-items:center;width:28px;height:28px;display:flex}.agent-avatar[data-v-1917d5a4] svg{width:100%;height:100%}.agent-popover[data-v-1917d5a4]{max-height:300px;overflow-y:auto}.agent-popover-title[data-v-1917d5a4]{color:var(--text-muted);border-bottom:1px solid var(--border-color);margin-bottom:8px;padding:0 0 8px;font-size:12px;font-weight:600}.agent-popover-item[data-v-1917d5a4]{border-radius:6px;align-items:center;gap:8px;padding:6px 4px;transition:background-color .15s;display:flex}.agent-popover-item[data-v-1917d5a4]:hover{background-color:rgba(var(--accent-primary-rgb), .06)}.agent-popover-item .agent-popover-info[data-v-1917d5a4]{flex:1;min-width:0}.agent-popover-item .agent-popover-name[data-v-1917d5a4]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.agent-popover-item .agent-popover-profile[data-v-1917d5a4]{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.agent-popover-item .agent-popover-remove[data-v-1917d5a4]{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.agent-popover-item .agent-popover-remove[data-v-1917d5a4]:hover{color:var(--error);background-color:#c8323214}.no-room[data-v-1917d5a4]{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.no-room .no-room-icon[data-v-1917d5a4]{opacity:.3}.no-room p[data-v-1917d5a4]{font-size:14px}.icon-btn[data-v-1917d5a4]{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.icon-btn[data-v-1917d5a4]:hover{background-color:rgba(var(--accent-primary-rgb), .08);color:var(--text-primary)}.modal-backdrop[data-v-1917d5a4]{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-1917d5a4]{background:var(--bg-card);border-radius:14px;width:400px;max-width:90vw;padding:24px;box-shadow:0 8px 32px #0000001f}.modal h3[data-v-1917d5a4]{color:var(--text-primary);margin:0 0 20px;font-size:16px;font-weight:600}.form-group[data-v-1917d5a4]{margin-bottom:16px}.modal-actions[data-v-1917d5a4]{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.form-hint[data-v-1917d5a4]{color:var(--text-muted);margin:4px 0 0;font-size:11px}.connection-dot[data-v-1917d5a4]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.connection-dot.connected[data-v-1917d5a4]{background-color:var(--success);box-shadow:0 0 6px rgba(var(--success-rgb), .5)}.connection-dot.disconnected[data-v-1917d5a4]{background-color:var(--error)}@media (width<=768px){.room-sidebar[data-v-1917d5a4]{z-index:100;position:absolute;top:0;bottom:0;left:0;box-shadow:4px 0 16px #0000001a}.chat-header[data-v-1917d5a4]{padding-left:56px}}.group-chat-view[data-v-6a221d32]{height:calc(100 * var(--vh));flex-direction:column;display:flex}
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,H as r,J as i,K as a,O as o,S as s,T as c,U as l,W as u,Y as d,Z as f,a as p,ft as m,ht as h,k as g,pt as _,st as v,v as y,w as b}from"./router-Deam6ffd.js";import{r as x,t as S}from"./_plugin-vue_export-helper-9xP-z52L.js";import{t as C}from"./Modal-CcDwIOab.js";import{n as w,t as T}from"./FormItem-DryuDiWg.js";import{t as E}from"./Select-CN-VEjPp.js";import{t as D}from"./Button-XML6qzjK.js";import{t as O}from"./Input-DWLw7VSO.js";import{t as k}from"./InputNumber-DWU7lpWO.js";import{t as A}from"./composables-BjmZducA.js";import{t as j}from"./use-message-sJtQsIMH.js";import{t as M}from"./Spin-DicuilvT.js";import{t as N}from"./app-Bye4afa9.js";import{t as P}from"./clipboard-B8wB3Hjs.js";import{t as F}from"./models-B2A46pRJ.js";var I={class:`provider-card`},L={class:`card-header`},R={class:`provider-name`},z={class:`card-body`},B={class:`info-row`},V={class:`info-label`},H={class:`info-value mono`},U={class:`info-row`},W={class:`info-label`},G={class:`info-value mono`},K={class:`card-actions`},ee=S(e({__name:`ProviderCard`,props:{provider:{}},setup(e){let r=e,{t:i}=x(),a=F(),c=j(),l=A(),d=s(()=>r.provider.provider.startsWith(`custom:`)),p=s(()=>r.provider.label),y=v(!1);async function b(){l.warning({title:i(`models.deleteProvider`),content:i(`models.deleteConfirm`,{name:p.value}),positiveText:i(`common.delete`),negativeText:i(`common.cancel`),onPositiveClick:async()=>{y.value=!0;try{await a.removeProvider(r.provider.provider),c.success(i(`models.providerDeleted`))}catch(e){c.error(e.message)}finally{y.value=!1}}})}return(r,a)=>(u(),n(`div`,I,[t(`div`,L,[t(`h3`,R,h(p.value),1),t(`span`,{class:_([`type-badge`,d.value?`custom`:`builtin`])},h(d.value?m(i)(`models.customType`):m(i)(`models.builtIn`)),3)]),t(`div`,z,[t(`div`,B,[t(`span`,V,h(m(i)(`models.provider`)),1),t(`code`,H,h(e.provider.provider),1)]),t(`div`,U,[t(`span`,W,h(m(i)(`models.baseUrl`)),1),t(`code`,G,h(e.provider.base_url),1)])]),t(`div`,K,[g(m(D),{size:`tiny`,quaternary:``,type:`error`,loading:y.value,onClick:b},{default:f(()=>[o(h(m(i)(`common.delete`)),1)]),_:1},8,[`loading`])])]))}}),[[`__scopeId`,`data-v-f48ea7e8`]]),te={key:0,class:`empty-state`},q={key:1,class:`providers-grid`},J=S(e({__name:`ProvidersPanel`,setup(e){let{t:r}=x(),i=F();return(e,o)=>m(i).providers.length===0?(u(),n(`div`,te,[o[0]||=t(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1`,class:`empty-icon`},[t(`path`,{d:`M12 2L2 7l10 5 10-5-10-5z`}),t(`path`,{d:`M2 17l10 5 10-5`}),t(`path`,{d:`M2 12l10 5 10-5`})],-1),t(`p`,null,h(m(r)(`models.noProviders`)),1)])):(u(),n(`div`,q,[(u(!0),n(y,null,a(m(i).providers,e=>(u(),b(ee,{key:e.provider,provider:e},null,8,[`provider`]))),128))]))}}),[[`__scopeId`,`data-v-76eec30b`]]);async function Y(){return p(`/api/hermes/auth/codex/start`,{method:`POST`})}async function X(e){return p(`/api/hermes/auth/codex/poll/${e}`)}var Z={class:`codex-login`},Q={key:0,class:`codex-login__state`},ne={key:1,class:`codex-login__state`},re={class:`codex-login__hint`},ie={class:`codex-login__code-text`},ae={key:2,class:`codex-login__state codex-login__state--success`},oe={key:3,class:`codex-login__state`},se={class:`codex-login__error`},ce={key:4,class:`codex-login__state`},le={class:`codex-login__error`},ue={class:`modal-footer`},de=S(e({__name:`CodexLoginModal`,emits:[`close`,`success`],setup(e,{emit:r}){let{t:a}=x(),s=r,d=j(),p=v(!0),_=v(`idle`),y=v(``),S=v(``),w=v(``),T=v(``),E=null;async function O(){_.value=`loading`,T.value=``;try{let e=await Y();y.value=e.user_code,S.value=e.verification_url,w.value=e.session_id,_.value=`waiting`,k()}catch(e){_.value=`error`;let t=e.message||``;try{let e=t.match(/\{[\s\S]*\}$/);e?T.value=JSON.parse(e[0]).error||t:T.value=t}catch{T.value=t}d.error(T.value)}}function k(){A(),E=setTimeout(async()=>{try{let e=await X(w.value);e.status===`pending`?k():e.status===`approved`?(_.value=`approved`,d.success(a(`models.codexApproved`)),setTimeout(()=>{p.value=!1,setTimeout(()=>s(`success`),200)},1e3)):e.status===`expired`?_.value=`expired`:e.status===`error`&&(_.value=`error`,T.value=e.error||`Unknown error`)}catch{k()}},3e3)}function A(){E&&=(clearTimeout(E),null)}function M(){A(),p.value=!1,setTimeout(()=>s(`close`),200)}async function N(){await P(y.value)?d.success(a(`models.codexCopyCode`)):d.error(a(`models.codexCopyCode`)+` ✗`)}function F(){window.open(S.value,`_blank`)}function I(){_.value=`idle`,y.value=``,S.value=``,w.value=``,T.value=``,O()}return l(()=>{A()}),O(),(e,r)=>{let l=i(`NSpin`);return u(),b(m(C),{show:p.value,"onUpdate:show":r[0]||=e=>p.value=e,preset:`card`,title:m(a)(`models.codexLoginTitle`),style:{width:`min(440px, calc(100vw - 32px))`},"mask-closable":_.value!==`waiting`,onAfterLeave:r[1]||=e=>s(`close`)},{footer:f(()=>[t(`div`,ue,[g(m(D),{disabled:_.value===`waiting`,onClick:M},{default:f(()=>[o(h(m(a)(`common.cancel`)),1)]),_:1},8,[`disabled`])])]),default:f(()=>[t(`div`,Z,[_.value===`idle`||_.value===`loading`?(u(),n(`div`,Q,[g(l,{size:`small`})])):_.value===`waiting`?(u(),n(`div`,ne,[t(`p`,re,h(m(a)(`models.codexWaiting`)),1),t(`div`,{class:`codex-login__code`,onClick:N},[t(`span`,ie,h(y.value),1),r[2]||=t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),t(`path`,{d:`M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1`})],-1)]),g(m(D),{type:`primary`,block:``,onClick:F},{icon:f(()=>[...r[3]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`path`,{d:`M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6`}),t(`polyline`,{points:`15 3 21 3 21 9`}),t(`line`,{x1:`10`,y1:`14`,x2:`21`,y2:`3`})],-1)]]),default:f(()=>[o(` `+h(m(a)(`models.codexOpenLink`)),1)]),_:1})])):_.value===`approved`?(u(),n(`div`,ae,[r[4]||=t(`svg`,{width:`40`,height:`40`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`path`,{d:`M22 11.08V12a10 10 0 11-5.93-9.14`}),t(`polyline`,{points:`22 4 12 14.01 9 11.01`})],-1),t(`p`,null,h(m(a)(`models.codexApproved`)),1)])):_.value===`expired`?(u(),n(`div`,oe,[t(`p`,se,h(m(a)(`models.codexExpired`)),1),g(m(D),{size:`small`,onClick:I},{default:f(()=>[o(h(m(a)(`common.retry`)),1)]),_:1})])):_.value===`error`?(u(),n(`div`,ce,[t(`p`,le,h(T.value),1),g(m(D),{size:`small`,onClick:I},{default:f(()=>[o(h(m(a)(`common.retry`)),1)]),_:1})])):c(``,!0)])]),_:1},8,[`show`,`title`,`mask-closable`])}}}),[[`__scopeId`,`data-v-b8a659c8`]]);async function fe(){return p(`/api/hermes/auth/nous/start`,{method:`POST`})}async function pe(e){return p(`/api/hermes/auth/nous/poll/${e}`)}var me={class:`nous-login`},he={key:0,class:`nous-login__state`},ge={key:1,class:`nous-login__state`},_e={class:`nous-login__hint`},ve={class:`nous-login__code-text`},ye={key:2,class:`nous-login__state nous-login__state--success`},be={key:3,class:`nous-login__state`},xe={class:`nous-login__error`},Se={key:4,class:`nous-login__state`},Ce={class:`nous-login__error`},we={class:`modal-footer`},Te=S(e({__name:`NousLoginModal`,emits:[`close`,`success`],setup(e,{emit:r}){let{t:i}=x(),a=r,s=j(),d=v(!0),p=v(`idle`),_=v(``),y=v(``),S=v(``),w=v(``),T=null;async function E(){p.value=`loading`,w.value=``;try{let e=await fe();_.value=e.user_code,y.value=e.verification_url,S.value=e.session_id,p.value=`waiting`,O()}catch(e){p.value=`error`;let t=e.message||``;try{let e=t.match(/\{[\s\S]*\}$/);e?w.value=JSON.parse(e[0]).error||t:w.value=t}catch{w.value=t}s.error(w.value)}}function O(){k(),T=setTimeout(async()=>{try{let e=await pe(S.value);e.status===`pending`?O():e.status===`approved`?(p.value=`approved`,s.success(i(`models.nousApproved`)),setTimeout(()=>{d.value=!1,setTimeout(()=>a(`success`),200)},1e3)):e.status===`expired`?p.value=`expired`:e.status===`denied`?(p.value=`error`,w.value=i(`models.nousDenied`)):e.status===`error`&&(p.value=`error`,w.value=e.error||`Unknown error`)}catch{O()}},3e3)}function k(){T&&=(clearTimeout(T),null)}function A(){k(),d.value=!1,setTimeout(()=>a(`close`),200)}async function N(){await P(_.value)?s.success(i(`models.nousCopyCode`)):s.error(i(`models.nousCopyCode`)+` ✗`)}function F(){window.open(y.value,`_blank`)}function I(){p.value=`idle`,_.value=``,y.value=``,S.value=``,w.value=``,E()}return l(()=>{k()}),E(),(e,r)=>(u(),b(m(C),{show:d.value,"onUpdate:show":r[0]||=e=>d.value=e,preset:`card`,title:m(i)(`models.nousLoginTitle`),style:{width:`min(440px, calc(100vw - 32px))`},"mask-closable":p.value!==`waiting`,onAfterLeave:r[1]||=e=>a(`close`)},{footer:f(()=>[t(`div`,we,[g(m(D),{disabled:p.value===`waiting`,onClick:A},{default:f(()=>[o(h(m(i)(`common.cancel`)),1)]),_:1},8,[`disabled`])])]),default:f(()=>[t(`div`,me,[p.value===`idle`||p.value===`loading`?(u(),n(`div`,he,[g(m(M),{size:`small`})])):p.value===`waiting`?(u(),n(`div`,ge,[t(`p`,_e,h(m(i)(`models.nousWaiting`)),1),t(`div`,{class:`nous-login__code`,onClick:N},[t(`span`,ve,h(_.value),1),r[2]||=t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`}),t(`path`,{d:`M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1`})],-1)]),g(m(D),{type:`primary`,block:``,onClick:F},{icon:f(()=>[...r[3]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`path`,{d:`M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6`}),t(`polyline`,{points:`15 3 21 3 21 9`}),t(`line`,{x1:`10`,y1:`14`,x2:`21`,y2:`3`})],-1)]]),default:f(()=>[o(` `+h(m(i)(`models.nousOpenLink`)),1)]),_:1})])):p.value===`approved`?(u(),n(`div`,ye,[r[4]||=t(`svg`,{width:`40`,height:`40`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`path`,{d:`M22 11.08V12a10 10 0 11-5.93-9.14`}),t(`polyline`,{points:`22 4 12 14.01 9 11.01`})],-1),t(`p`,null,h(m(i)(`models.nousApproved`)),1)])):p.value===`expired`?(u(),n(`div`,be,[t(`p`,xe,h(m(i)(`models.nousExpired`)),1),g(m(D),{size:`small`,onClick:I},{default:f(()=>[o(h(m(i)(`common.retry`)),1)]),_:1})])):p.value===`error`?(u(),n(`div`,Se,[t(`p`,Ce,h(w.value),1),g(m(D),{size:`small`,onClick:I},{default:f(()=>[o(h(m(i)(`common.retry`)),1)]),_:1})])):c(``,!0)])]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-13765003`]]),Ee={style:{display:`flex`,gap:`12px`}},De={style:{display:`flex`,gap:`8px`,width:`100%`}},$={class:`modal-footer`},Oe=`openai-codex`,ke=`nous`,Ae=S(e({__name:`ProviderFormModal`,emits:[`close`,`saved`],setup(e,{emit:n}){let{t:i}=x(),a=n,l=F(),p=j(),_=v(!0),y=v(!1),S=v(!1),A=v(!1),M=v(!1),N=v(`preset`),P=v(null),I=v({name:``,base_url:``,api_key:``,model:``,context_length:null}),L=v([]),R=s(()=>P.value===Oe),z=s(()=>P.value===ke),B=s(()=>l.allProviders.map(e=>({label:e.label,value:e.provider})));function V(e){let t=e.replace(/^https?:\/\//,``).replace(/\/v1\/?$/,``).split(`/`)[0];return t.includes(`localhost`)||t.includes(`127.0.0.1`)?i(`models.local`,{host:t}):t.charAt(0).toUpperCase()+t.slice(1)}d(P,e=>{if(I.value.model=``,e){let t=l.allProviders.find(t=>t.provider===e);t&&(I.value.name=t.label,I.value.base_url=t.base_url,L.value=t.models.map(e=>({label:e,value:e})),t.models.length>0&&(I.value.model=t.models[0]))}}),d(()=>I.value.base_url,e=>{N.value===`custom`&&e.trim()&&!I.value.name&&(I.value.name=V(e.trim()))}),d(N,()=>{L.value=[],I.value={name:``,base_url:``,api_key:``,model:``,context_length:null},P.value=null}),r(()=>{l.providers.length===0&&l.fetchProviders()});async function H(){let{base_url:e}=I.value;if(!e.trim()){p.warning(i(`models.enterBaseUrl`));return}S.value=!0;try{let t=e.replace(/\/+$/,``),n=/\/v\d+\/?$/.test(t)?`${t}/models`:`${t}/v1/models`,r={};I.value.api_key.trim()&&(r.Authorization=`Bearer ${I.value.api_key.trim()}`);let a=await fetch(n,{headers:r,signal:AbortSignal.timeout(8e3)});if(!a.ok)throw Error(`HTTP ${a.status}`);let o=await a.json();if(!Array.isArray(o.data))throw Error(i(`models.unexpectedFormat`));L.value=o.data.map(e=>({label:e.id,value:e.id})),L.value.length>0&&!I.value.model&&(I.value.model=L.value[0].value),p.success(i(`models.foundModels`,{count:L.value.length}))}catch(e){p.error(i(`models.fetchFailed`)+`: `+e.message)}finally{S.value=!1}}async function U(){if(N.value===`preset`&&!P.value){p.warning(i(`models.selectProviderRequired`));return}if(R.value){A.value=!0;return}if(z.value){M.value=!0;return}if(!I.value.base_url.trim()){p.warning(i(`models.baseUrlRequired`));return}if(!I.value.api_key.trim()){p.warning(i(`models.apiKeyRequired`));return}if(!I.value.model){p.warning(i(`models.modelRequired`));return}y.value=!0;try{let e=N.value===`preset`?P.value:null,t=I.value.context_length??void 0;await l.addProvider({name:I.value.name.trim(),base_url:I.value.base_url.trim(),api_key:I.value.api_key.trim(),model:I.value.model,context_length:t,providerKey:e}),p.success(i(`models.providerAdded`)),a(`saved`)}catch(e){p.error(e.message)}finally{y.value=!1}}async function W(){A.value=!1,p.success(i(`models.providerAdded`)),a(`saved`)}async function G(){M.value=!1,p.success(i(`models.providerAdded`)),a(`saved`)}function K(){_.value=!1,setTimeout(()=>a(`close`),200)}return(e,n)=>(u(),b(m(C),{show:_.value,"onUpdate:show":n[10]||=e=>_.value=e,preset:`card`,title:m(i)(`models.addProvider`),style:{width:`min(520px, calc(100vw - 32px))`},"mask-closable":!y.value&&!A.value&&!M.value,onAfterLeave:n[11]||=e=>a(`close`)},{footer:f(()=>[t(`div`,$,[g(m(D),{onClick:K},{default:f(()=>[o(h(m(i)(`common.cancel`)),1)]),_:1}),g(m(D),{type:`primary`,loading:y.value,onClick:U},{default:f(()=>[o(h(m(i)(`common.add`)),1)]),_:1},8,[`loading`])])]),default:f(()=>[g(m(w),{"label-placement":`top`},{default:f(()=>[g(m(T),{label:m(i)(`models.providerType`)},{default:f(()=>[t(`div`,Ee,[g(m(D),{type:N.value===`preset`?`primary`:`default`,size:`small`,onClick:n[0]||=e=>N.value=`preset`},{default:f(()=>[o(h(m(i)(`models.preset`)),1)]),_:1},8,[`type`]),g(m(D),{type:N.value===`custom`?`primary`:`default`,size:`small`,onClick:n[1]||=e=>N.value=`custom`},{default:f(()=>[o(h(m(i)(`models.custom`)),1)]),_:1},8,[`type`])])]),_:1},8,[`label`]),N.value===`preset`?(u(),b(m(T),{key:0,label:m(i)(`models.selectProvider`),required:``},{default:f(()=>[g(m(E),{value:P.value,"onUpdate:value":n[2]||=e=>P.value=e,options:B.value,placeholder:m(i)(`models.chooseProvider`),filterable:``},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`])):c(``,!0),N.value===`custom`?(u(),b(m(T),{key:1,label:m(i)(`models.name`)},{default:f(()=>[g(m(O),{value:I.value.name,"onUpdate:value":n[3]||=e=>I.value.name=e,placeholder:m(i)(`models.autoGeneratedName`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])):c(``,!0),!R.value&&!z.value?(u(),b(m(T),{key:2,label:m(i)(`models.baseUrl`),required:``},{default:f(()=>[g(m(O),{value:I.value.base_url,"onUpdate:value":n[4]||=e=>I.value.base_url=e,placeholder:m(i)(`models.baseUrlPlaceholder`),disabled:N.value===`preset`},null,8,[`value`,`placeholder`,`disabled`])]),_:1},8,[`label`])):c(``,!0),!R.value&&!z.value?(u(),b(m(T),{key:3,label:m(i)(`models.apiKey`),required:``},{default:f(()=>[g(m(O),{value:I.value.api_key,"onUpdate:value":n[5]||=e=>I.value.api_key=e,type:`password`,"show-password-on":`click`,placeholder:m(i)(`models.apiKeyPlaceholder`),autocomplete:`off`},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])):c(``,!0),g(m(T),{label:m(i)(`models.defaultModel`),required:``},{default:f(()=>[t(`div`,De,[g(m(E),{value:I.value.model,"onUpdate:value":n[6]||=e=>I.value.model=e,options:L.value,filterable:``,tag:``,placeholder:m(i)(`models.selectOrInput`),style:{flex:`1`}},null,8,[`value`,`options`,`placeholder`]),N.value===`custom`||N.value===`preset`&&L.value.length===0?(u(),b(m(D),{key:0,loading:S.value,onClick:H},{default:f(()=>[o(h(m(i)(`common.fetch`)),1)]),_:1},8,[`loading`])):c(``,!0)])]),_:1},8,[`label`]),N.value===`custom`?(u(),b(m(T),{key:4,label:m(i)(`models.contextLength`)},{default:f(()=>[g(m(k),{value:I.value.context_length,"onUpdate:value":n[7]||=e=>I.value.context_length=e,placeholder:m(i)(`models.contextLengthPlaceholder`),min:0,clearable:``,style:{width:`100%`}},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])):c(``,!0)]),_:1}),A.value?(u(),b(de,{key:0,onClose:n[8]||=e=>A.value=!1,onSuccess:W})):c(``,!0),M.value?(u(),b(Te,{key:1,onClose:n[9]||=e=>M.value=!1,onSuccess:G})):c(``,!0)]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-ed1ea325`]]),je={class:`models-view`},Me={class:`page-header`},Ne={class:`header-title`},Pe={class:`models-content`},Fe=S(e({__name:`ModelsView`,setup(e){let{t:i}=x(),a=F(),s=N(),l=v(!1);r(()=>{a.fetchProviders()});function d(){l.value=!0}function p(){l.value=!1}async function _(){await a.fetchProviders(),s.loadModels(),p()}return(e,r)=>(u(),n(`div`,je,[t(`header`,Me,[t(`h2`,Ne,h(m(i)(`models.title`)),1),g(m(D),{type:`primary`,size:`small`,onClick:d},{icon:f(()=>[...r[0]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),t(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:f(()=>[o(` `+h(m(i)(`models.addProvider`)),1)]),_:1})]),t(`div`,Pe,[g(m(M),{show:m(a).loading&&m(a).providers.length===0},{default:f(()=>[g(J)]),_:1},8,[`show`])]),l.value?(u(),b(Ae,{key:0,onClose:p,onSaved:_})):c(``,!0)]))}}),[[`__scopeId`,`data-v-84eaeb4c`]]);export{Fe as default};
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,T as r,W as i,a,ht as o,q as s,st as c}from"./router-Deam6ffd.js";import{n as l}from"./pinia-UrA63qkH.js";import{t as u}from"./_plugin-vue_export-helper-9xP-z52L.js";async function d(e){return a(`/api/hermes/config${e?`?sections=${e.join(`,`)}`:``}`)}async function f(e,t){await a(`/api/hermes/config`,{method:`PUT`,body:JSON.stringify({section:e,values:t})})}async function p(e,t){await a(`/api/hermes/config/credentials`,{method:`PUT`,body:JSON.stringify({platform:e,values:t})})}async function m(){return a(`/api/hermes/weixin/qrcode`)}async function h(e){return a(`/api/hermes/weixin/qrcode/status?qrcode=${encodeURIComponent(e)}`)}async function g(e){await a(`/api/hermes/weixin/save`,{method:`POST`,body:JSON.stringify(e)})}var _=l(`settings`,()=>{let e=c(!1),t=c(!1),n=c({}),r=c({}),i=c({}),a=c({}),o=c({}),s=c({}),l=c({}),u=c({}),p=c({}),m=c({}),h=c({}),g=c({}),_=c({}),v=c({}),y=c({});async function b(){e.value=!0;try{let e=await d();n.value=e.display||{},r.value=e.agent||{},i.value=e.memory||{},a.value=e.session_reset||{},o.value=e.privacy||{},s.value=e.telegram||{},l.value=e.discord||{},u.value=e.slack||{},p.value=e.whatsapp||{},m.value=e.matrix||{},h.value=e.wecom||{},g.value=e.feishu||{},_.value=e.dingtalk||{},v.value=e.weixin||{},y.value=e.platforms||{}}catch(e){console.error(`Failed to fetch settings:`,e)}finally{e.value=!1}}async function x(e,c){t.value=!0;try{switch(await f(e,c),e){case`display`:n.value={...n.value,...c};break;case`agent`:r.value={...r.value,...c};break;case`memory`:i.value={...i.value,...c};break;case`session_reset`:a.value={...a.value,...c};break;case`privacy`:o.value={...o.value,...c};break;case`telegram`:s.value={...s.value,...c};break;case`discord`:l.value={...l.value,...c};break;case`slack`:u.value={...u.value,...c};break;case`whatsapp`:p.value={...p.value,...c};break;case`matrix`:m.value={...m.value,...c};break;case`wechat`:case`wecom`:h.value={...h.value,...c};break;case`feishu`:g.value={...g.value,...c};break;case`dingtalk`:_.value={..._.value,...c};break;case`weixin`:v.value={...v.value,...c};break;case`platforms`:for(let[e,t]of Object.entries(c))y.value={...y.value,[e]:{...y.value[e]||{},...t}};break}}finally{t.value=!1}}return{loading:e,saving:t,display:n,agent:r,memory:i,sessionReset:a,privacy:o,telegram:s,discord:l,slack:u,whatsapp:p,matrix:m,wecom:h,feishu:g,dingtalk:_,weixin:v,platforms:y,fetchSettings:b,saveSection:x}}),v={class:`setting-row`},y={class:`setting-info`},b={class:`setting-label`},x={key:0,class:`setting-hint`},S={class:`setting-control`},C=u(e({__name:`SettingRow`,props:{label:{},hint:{}},setup(e){return(a,c)=>(i(),n(`div`,v,[t(`div`,y,[t(`label`,b,o(e.label),1),e.hint?(i(),n(`p`,x,o(e.hint),1)):r(``,!0)]),t(`div`,S,[s(a.$slots,`default`,{},void 0,!0)])]))}}),[[`__scopeId`,`data-v-b81640b4`]]);export{p as a,h as i,_ as n,g as o,m as r,C as t};
@@ -1 +0,0 @@
1
- import{A as e,M as t,S as n,_ as r}from"./router-Deam6ffd.js";import{$ as i,B as a,c as o,d as s,mt as c}from"./browser-CRTDc_Be.js";import{d as l}from"./Popover-Df4h1K87.js";import{c as u,s as d}from"./fade-in.cssr-ZKfQkQl9.js";import{t as f}from"./_common-DRFS3Rdv.js";function p(e,t=`default`,n=[]){let r=e.$slots[t];return r===void 0?n:r()}function m(){return f}var h={name:`Space`,self:m},g;function _(){if(!i)return!0;if(g===void 0){let e=document.createElement(`div`);e.style.display=`flex`,e.style.flexDirection=`column`,e.style.rowGap=`1px`,e.appendChild(document.createElement(`div`)),e.appendChild(document.createElement(`div`)),document.body.appendChild(e);let t=e.scrollHeight===1;return document.body.removeChild(e),g=t}return g}var v=e({name:`Space`,props:Object.assign(Object.assign({},o.props),{align:String,justify:{type:String,default:`start`},inline:Boolean,vertical:Boolean,reverse:Boolean,size:[String,Number,Array],wrapItem:{type:Boolean,default:!0},itemClass:String,itemStyle:[String,Object],wrap:{type:Boolean,default:!0},internalUseGap:{type:Boolean,default:void 0}}),setup(e){let{mergedClsPrefixRef:t,mergedRtlRef:r,mergedComponentPropsRef:i}=a(e),l=n(()=>e.size||i?.value?.Space?.size||`medium`),f=o(`Space`,`-space`,void 0,h,e,t),p=s(`Space`,r,t);return{useGap:_(),rtlEnabled:p,mergedClsPrefix:t,margin:n(()=>{let e=l.value;if(Array.isArray(e))return{horizontal:e[0],vertical:e[1]};if(typeof e==`number`)return{horizontal:e,vertical:e};let{self:{[c(`gap`,e)]:t}}=f.value,{row:n,col:r}=u(t);return{horizontal:d(r),vertical:d(n)}})}},render(){let{vertical:e,reverse:n,align:i,inline:a,justify:o,itemClass:s,itemStyle:c,margin:u,wrap:d,mergedClsPrefix:f,rtlEnabled:m,useGap:h,wrapItem:g,internalUseGap:_}=this,v=l(p(this),!1);if(!v.length)return null;let y=`${u.horizontal}px`,b=`${u.horizontal/2}px`,x=`${u.vertical}px`,S=`${u.vertical/2}px`,C=v.length-1,w=o.startsWith(`space-`);return t(`div`,{role:`none`,class:[`${f}-space`,m&&`${f}-space--rtl`],style:{display:a?`inline-flex`:`flex`,flexDirection:e&&!n?`column`:e&&n?`column-reverse`:!e&&n?`row-reverse`:`row`,justifyContent:[`start`,`end`].includes(o)?`flex-${o}`:o,flexWrap:!d||e?`nowrap`:`wrap`,marginTop:h||e?``:`-${S}`,marginBottom:h||e?``:`-${S}`,alignItems:i,gap:h?`${u.vertical}px ${u.horizontal}px`:``}},!g&&(h||_)?v:v.map((n,i)=>n.type===r?n:t(`div`,{role:`none`,class:s,style:[c,{maxWidth:`100%`},h?``:e?{marginBottom:i===C?``:x}:m?{marginLeft:w?o===`space-between`&&i===C?``:b:i===C?``:y,marginRight:w?o===`space-between`&&i===0?``:b:``,paddingTop:S,paddingBottom:S}:{marginRight:w?o===`space-between`&&i===C?``:b:i===C?``:y,marginLeft:w?o===`space-between`&&i===0?``:b:``,paddingTop:S,paddingBottom:S}]},n)))}});export{v as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./app-Bye4afa9.js";export{e as useAppStore};
@@ -1,6 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-DpVwxn5E.js","assets/app-Bye4afa9.js","assets/router-Deam6ffd.js","assets/chunk-DECur_0Z.js","assets/preload-helper-rov5CBGT.js","assets/pinia-UrA63qkH.js"])))=>i.map(i=>d[i]);
2
- import{S as e,a as t,n,r,st as i}from"./router-Deam6ffd.js";import{n as a}from"./pinia-UrA63qkH.js";import{t as o}from"./preload-helper-rov5CBGT.js";import{t as s}from"./app-Bye4afa9.js";import{t as c}from"./profiles-Dk45I0q1.js";import{a as l,i as u,r as d,t as f}from"./sessions-BDXdWl17.js";async function p(e){return t(`/api/hermes/v1/runs`,{method:`POST`,body:JSON.stringify(e)})}function m(e,t,i,a){let o=r(),s=n(),c=localStorage.getItem(`hermes_active_profile_name`),l=new URLSearchParams;s&&l.set(`token`,s),c&&c!==`default`&&l.set(`profile`,c);let u=l.toString(),d=`${o}/api/hermes/v1/runs/${e}/events${u?`?${u}`:``}`,f=!1,p=new EventSource(d);return p.onmessage=e=>{if(!f)try{let n=JSON.parse(e.data);t(n),(n.event===`run.completed`||n.event===`run.failed`)&&(f=!0,p.close(),i())}catch{t({event:`message`,delta:e.data})}},p.onerror=()=>{f||(f=!0,p.close(),a(Error(`SSE connection error`)))},{abort:()=>{f||(f=!0,p.close())}}}function h(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}async function ee(e){if(e.length===0)return[];let t=new FormData;for(let n of e)n.file&&t.append(`file`,n.file,n.name);let n=localStorage.getItem(`hermes_api_key`)||``,r=await fetch(`/upload`,{method:`POST`,body:t,headers:n?{Authorization:`Bearer ${n}`}:{}});if(!r.ok)throw Error(`Upload failed: ${r.status}`);return(await r.json()).files}function g(e){let t=new Map,n=new Map;for(let r of e)if(r.role===`assistant`&&r.tool_calls)for(let e of r.tool_calls)e.id&&(e.function?.name&&t.set(e.id,e.function.name),e.function?.arguments&&n.set(e.id,e.function.arguments));let r=[];for(let i of e){if(i.role===`assistant`&&i.tool_calls?.length&&!i.content?.trim()){for(let e of i.tool_calls)r.push({id:String(i.id)+`_`+e.id,role:`tool`,content:``,timestamp:Math.round(i.timestamp*1e3),toolName:e.function?.name||`tool`,toolArgs:e.function?.arguments||void 0,toolStatus:`done`});continue}if(i.role===`tool`){let e=i.tool_call_id||``,a=i.tool_name||t.get(e)||`tool`,o=n.get(e)||void 0,s=``;if(i.content)try{let e=JSON.parse(i.content);s=e.url||e.title||e.preview||e.summary||``}catch{s=i.content.slice(0,80)}let c=r.findIndex(t=>t.role===`tool`&&t.toolName===a&&!t.toolResult&&t.id.includes(`_`+e));c!==-1&&r.splice(c,1),r.push({id:String(i.id),role:`tool`,content:``,timestamp:Math.round(i.timestamp*1e3),toolName:a,toolArgs:o,toolPreview:typeof s==`string`&&s.slice(0,100)||void 0,toolResult:i.content||void 0,toolStatus:`done`});continue}r.push({id:String(i.id),role:i.role,content:i.content||``,timestamp:Math.round(i.timestamp*1e3)})}return r}function _(e){return{id:e.id,title:e.title||``,source:e.source||void 0,messages:[],createdAt:Math.round(e.started_at*1e3),updatedAt:Math.round((e.last_active||e.ended_at||e.started_at)*1e3),model:e.model,provider:e.billing_provider||``,messageCount:e.message_count,endedAt:e.ended_at==null?null:Math.round(e.ended_at*1e3),lastActiveAt:e.last_active==null?void 0:Math.round(e.last_active*1e3)}}var v=`hermes_active_session_`,y=`hermes_sessions_cache_v1_`,b=`hermes_active_session`,x=`hermes_sessions_cache_v1`,te=900*1e3,ne=2e3,re=3,ie=300*1e3;function S(){try{return c().activeProfileName||`default`}catch{return`default`}}function C(){return v+S()}function w(){return y+S()}function T(e){return`hermes_session_msgs_v1_${S()}_${e}_`}function E(e){return`hermes_in_flight_v1_${S()}_${e}`}function D(){return S()===`default`?b:null}function O(){return S()===`default`?x:null}function k(e){return S()===`default`?`hermes_session_msgs_v1_${e}`:null}function A(e){return S()===`default`?`hermes_in_flight_v1_${e}`:null}function j(e){try{let t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function M(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.name===`QuotaExceededError`||t.code===22||t.code===1014}function N(){try{let e=[w(),`hermes_session_msgs_v1_${S()}_`,`hermes_in_flight_v1_${S()}_`],t=O();t&&e.push(t),S()===`default`&&(e.push(`hermes_session_msgs_v1_`),e.push(`hermes_in_flight_v1_`));let n=[];for(let t=0;t<localStorage.length;t++){let r=localStorage.key(t);r&&(r===C()||r===b||e.some(e=>r.startsWith(e))&&n.push(r))}n.forEach(e=>I(e))}catch{}}function P(e,t){try{localStorage.setItem(e,t);return}catch(e){if(!M(e))return}N();try{localStorage.setItem(e,t)}catch{}}function F(e,t){try{P(e,JSON.stringify(t))}catch{}}function I(e){try{localStorage.removeItem(e)}catch{}}function L(e,t){return j(e)??(t?j(t):null)}function R(e,t,n){F(e,t),n&&I(n)}function z(e,t){I(e),t&&I(t)}function ae(e){return e.map(e=>e.attachments?.length?{...e,attachments:e.attachments.map(e=>({id:e.id,name:e.name,type:e.type,size:e.size,url:e.url}))}:e)}var B=a(`chat`,()=>{let t=i([]),n=i(null),r=i(null),a=i(new Map),c=e(()=>n.value!=null&&a.value.has(n.value)),v=i(!1),y=i(!1),b=i(!1),x=i(new Set),S=e(()=>c.value||n.value!=null&&x.value.has(n.value)),j=new Map,M=new Map,N=i(null),F=e(()=>N.value?.messages||[]);function B(e){if(a.value.has(e)||x.value.has(e))return!0;let n=t.value.find(t=>t.id===e);return!n?.lastActiveAt||n.endedAt!=null?!1:Date.now()-n.lastActiveAt<=ie}function V(){R(w(),t.value.map(e=>({...e,messages:[]})),O())}function H(){let e=n.value;if(!e)return;let r=t.value.find(t=>t.id===e);r&&R(T(e),ae(r.messages),k(e))}function oe(e,t){R(E(e),{runId:t,startedAt:Date.now()},A(e))}function U(e){z(E(e),A(e))}function W(e){let t=L(E(e),A(e));return t?Date.now()-t.startedAt>te?(z(E(e),A(e)),null):t:null}function G(e){let t=j.get(e);t&&(clearInterval(t),j.delete(e)),M.delete(e),x.value=new Set([...x.value].filter(t=>t!==e))}function K(e){if(j.has(e))return;x.value=new Set([...x.value,e]);let r=setInterval(async()=>{if(a.value.has(e)){G(e);return}if(!W(e)){G(e);return}try{let r=await d(e);if(!r)return;let i=g(r.messages||[]),a=t.value.find(t=>t.id===e);if(!a)return;let o=a.messages,s=[...o].reverse().find(e=>e.role===`assistant`),c=[...i].reverse().find(e=>e.role===`assistant`),l=s?.content?.length??0,u=c?.content?.length??0,f=o.filter(e=>e.role===`user`).length,p=i.filter(e=>e.role===`user`).length,m=p>=f;if((p>f||p===f&&u>=l)&&(a.messages=i,r.title&&!a.title&&(a.title=r.title),e===n.value&&H()),!m)M.delete(e);else{let t=i[i.length-1],o=`${i.length}|${t?.content?.slice(-40)||``}|${t?.toolStatus||``}`,s=M.get(e);s&&s.sig===o?(s.stableTicks+=1,s.stableTicks>=re&&(a.messages=i,r.title&&(a.title=r.title),e===n.value&&H(),U(e),G(e))):M.set(e,{sig:o,stableTicks:0})}}catch{}},ne);j.set(e,r)}async function se(){v.value=!0;try{let e=L(w(),O());if(e?.length){t.value=e;let r=localStorage.getItem(C())||(D()?localStorage.getItem(D()):null);if(r){let t=e.find(e=>e.id===r)||null;if(t){let e=L(T(r),k(r));e&&(t.messages=e),N.value=t,n.value=r}}}let r=(await l()).map(_),i=new Set(r.map(e=>e.id)),a=new Map(t.value.map(e=>[e.id,e.messages]));for(let e of r){let t=a.get(e.id);t&&t.length&&(e.messages=t)}t.value=[...t.value.filter(e=>i.has(e.id)?!1:W(e.id)?!0:(z(T(e.id),k(e.id)),z(E(e.id),A(e.id)),!1)),...r],V();let o=n.value,s=o&&t.value.some(e=>e.id===o)?o:t.value[0]?.id;s&&await Y(s)}catch(e){console.error(`Failed to load sessions:`,e)}finally{v.value=!1,y.value=!0}}async function q(){let e=n.value;if(!e)return!1;try{let n=await d(e);if(!n)return!1;let r=t.value.find(t=>t.id===e);return r?(r.messages=g(n.messages||[]),n.title&&(r.title=n.title),H(),!0):!1}catch(e){return console.error(`Failed to refresh active session:`,e),!1}}function J(){let e={id:h(),title:``,source:`api_server`,messages:[],createdAt:Date.now(),updatedAt:Date.now()};return t.value.unshift(e),V(),e}async function Y(e,i){n.value=e,r.value=i??null,P(C(),e);let o=D();if(o&&I(o),N.value=t.value.find(t=>t.id===e)||null,N.value){if(!(N.value.messages.length>0)){let t=L(T(e),k(e));t?.length&&(N.value.messages=t)}N.value.messages.length===0&&(b.value=!0);try{let t=await d(e);if(t&&t.messages){let e=g(t.messages),n=N.value.messages,r=[...n].reverse().find(e=>e.role===`assistant`),i=[...e].reverse().find(e=>e.role===`assistant`),a=r?.content?.length??0,o=i?.content?.length??0,s=n.filter(e=>e.role===`user`).length,c=e.filter(e=>e.role===`user`).length;if((c>s||c===s&&o>=a)&&(N.value.messages=e),t.title)N.value.title=t.title;else if(!N.value.title){let e=N.value.messages.find(e=>e.role===`user`);if(e){let t=e.content.slice(0,40);N.value.title=t+(e.content.length>40?`...`:``)}}H()}}catch(e){console.error(`Failed to load session messages:`,e)}finally{b.value=!1}W(e)&&!a.value.has(e)&&K(e);try{let t=await u(e);t&&(N.value.inputTokens=t.input_tokens,N.value.outputTokens=t.output_tokens)}catch{}}}function ce(){if(c.value)return;let e=J();e.model=s().selectedModel||void 0,Y(e.id)}async function le(e,t){if(N.value&&(N.value.model=e,N.value.provider=t||``,t)){let{useAppStore:n}=await o(async()=>{let{useAppStore:e}=await import(`./app-DpVwxn5E.js`);return{useAppStore:e}},__vite__mapDeps([0,1,2,3,4,5]));await n().switchModel(e,t)}}async function ue(e){await f(e),t.value=t.value.filter(t=>t.id!==e),z(T(e),k(e)),V(),n.value===e&&(t.value.length>0?await Y(t.value[0].id):Y(J().id))}function X(e){return t.value.find(t=>t.id===e)?.messages||[]}function Z(e,n){let r=t.value.find(t=>t.id===e);r&&r.messages.push(n)}function Q(e,n,r){let i=t.value.find(t=>t.id===e);if(!i)return;let a=i.messages.findIndex(e=>e.id===n);a!==-1&&(i.messages[a]={...i.messages[a],...r})}function $(e){let n=t.value.find(t=>t.id===e);if(n){if(!n.title){let e=n.messages.find(e=>e.role===`user`);if(e){let t=e.attachments?.length?e.attachments.map(e=>e.name).join(`, `):e.content;n.title=t.slice(0,40)+(t.length>40?`...`:``)}}n.updatedAt=Date.now()}}async function de(e,r){if(!e.trim()&&!(r&&r.length>0)||c.value)return;N.value||Y(J().id);let i=n.value;Z(i,{id:h(),role:`user`,content:e.trim(),timestamp:Date.now(),attachments:r&&r.length>0?r:void 0}),$(i),i===n.value&&(H(),V());try{let o=X(i).filter(e=>(e.role===`user`||e.role===`assistant`)&&e.content.trim()).map(e=>({role:e.role,content:e.content})),c=e.trim();if(r&&r.length>0){let e=(await ee(r)).map(e=>`[File: ${e.name}](${e.path})`);c=c?c+`
3
-
4
- `+e.join(`
5
- `):e.join(`
6
- `)}let l=s(),u=N.value?.model||l.selectedModel,d=await p({input:c,conversation_history:o,session_id:i,model:u||void 0}),f=d.run_id||d.id;if(!f){Z(i,{id:h(),role:`system`,content:`Error: startRun returned no run ID. Response: ${JSON.stringify(d)}`,timestamp:Date.now()});return}oe(i,f),G(i);let g=()=>{a.value.delete(i),_&&=(clearTimeout(_),null)},_=null,v=()=>{i!==n.value||_||(_=setTimeout(()=>{_=null,H()},800))},y=m(f,e=>{switch(e.event){case`run.started`:break;case`message.delta`:{let t=X(i),n=t[t.length-1];n?.role===`assistant`&&n.isStreaming?n.content+=e.delta||``:Z(i,{id:h(),role:`assistant`,content:e.delta||``,timestamp:Date.now(),isStreaming:!0}),v();break}case`tool.started`:{let t=X(i),n=t[t.length-1];n?.isStreaming&&Q(i,n.id,{isStreaming:!1}),Z(i,{id:h(),role:`tool`,content:``,timestamp:Date.now(),toolName:e.tool||e.name,toolPreview:e.preview,toolStatus:`running`}),v();break}case`tool.completed`:{let e=X(i).filter(e=>e.role===`tool`&&e.toolStatus===`running`);if(e.length>0){let t=e[e.length-1];Q(i,t.id,{toolStatus:`done`})}v();break}case`run.completed`:{let r=X(i),a=r[r.length-1];if(a?.isStreaming&&Q(i,a.id,{isStreaming:!1}),e.usage){let n=t.value.find(e=>e.id===i);n&&(n.inputTokens=e.usage.input_tokens,n.outputTokens=e.usage.output_tokens)}g(),$(i),i===n.value&&H(),U(i),G(i);break}case`run.failed`:{let t=X(i),r=t[t.length-1];r?.isStreaming?Q(i,r.id,{isStreaming:!1,content:e.error?`Error: ${e.error}`:`Run failed`,role:`system`}):Z(i,{id:h(),role:`system`,content:e.error?`Error: ${e.error}`:`Run failed`,timestamp:Date.now()}),t.forEach((e,n)=>{e.role===`tool`&&e.toolStatus===`running`&&(t[n]={...e,toolStatus:`error`})}),g(),i===n.value&&H(),U(i),G(i);break}}},()=>{let e=X(i),t=e[e.length-1];t?.isStreaming&&Q(i,t.id,{isStreaming:!1}),g(),$(i)},e=>{console.warn(`SSE connection dropped, resyncing from server:`,e.message);let t=X(i),r=t[t.length-1];r?.isStreaming&&Q(i,r.id,{isStreaming:!1}),t.forEach((e,n)=>{e.role===`tool`&&e.toolStatus===`running`&&(t[n]={...e,toolStatus:`done`})}),g(),i===n.value&&q(),W(i)&&K(i)});a.value.set(i,y)}catch(e){Z(i,{id:h(),role:`system`,content:`Error: ${e.message}`,timestamp:Date.now()})}}function fe(){let e=n.value;if(!e)return;let t=a.value.get(e);if(t){t.abort();let n=X(e),r=n[n.length-1];r?.isStreaming&&Q(e,r.id,{isStreaming:!1}),a.value.delete(e),U(e),G(e)}}return typeof document<`u`&&document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&n.value&&!c.value&&(q(),W(n.value)&&K(n.value))}),{sessions:t,activeSessionId:n,activeSession:N,focusMessageId:r,messages:F,isStreaming:c,isRunActive:S,isSessionLive:B,isLoadingSessions:v,sessionsLoaded:y,isLoadingMessages:b,newChat:ce,switchSession:Y,switchSessionModel:le,deleteSession:ue,sendMessage:de,stopStreaming:fe,loadSessions:se,refreshActiveSession:q}});export{B as t};
@@ -1 +0,0 @@
1
- import{P as e}from"./router-Deam6ffd.js";import{X as t}from"./browser-CRTDc_Be.js";import{s as n}from"./Modal-CcDwIOab.js";function r(){let r=e(n,null);return r===null&&t(`use-dialog`,`No outer <n-dialog-provider /> founded.`),r}export{r as t};