hermes-web-ui 0.2.6 → 0.2.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 (117) hide show
  1. package/README.md +15 -5
  2. package/dist/{assets/Button-BHvh9zmj.js → client/assets/Button-zECKCotA.js} +1 -1
  3. package/dist/{assets/ChannelsView-DZMniRoi.js → client/assets/ChannelsView-Bvh3tnio.js} +1 -1
  4. package/dist/client/assets/ChannelsView-xCdAEZam.css +1 -0
  5. package/dist/{assets/ChatView-Dt1eqp6-.js → client/assets/ChatView-CJZahJ1V.js} +3 -3
  6. package/dist/client/assets/ChatView-Ds8Q3Yrv.css +1 -0
  7. package/dist/{assets/Close-DYPlamoH.js → client/assets/Close-DjLWDodG.js} +1 -1
  8. package/dist/{assets/FormItem-C75Y2lpf.js → client/assets/FormItem-CZ9auYA2.js} +1 -1
  9. package/dist/{assets/Input-CS0p63GR.js → client/assets/Input-DxJk6pT-.js} +1 -1
  10. package/dist/{assets/InputNumber-lHTE1DBf.js → client/assets/InputNumber-BTqp81h0.js} +1 -1
  11. package/dist/client/assets/JobsView-Bbg7Yvse.css +1 -0
  12. package/dist/{assets/JobsView-kGXDpDGq.js → client/assets/JobsView-DsfGyjnT.js} +2 -2
  13. package/dist/client/assets/LoginView-BiWaCYS0.js +1 -0
  14. package/dist/client/assets/LoginView-Bt3yT3yN.css +1 -0
  15. package/dist/client/assets/LogsView-D9Es8tZb.css +1 -0
  16. package/dist/client/assets/LogsView-DuORyFFY.js +1 -0
  17. package/dist/{assets/MarkdownRenderer-Bp-uAEtp.js → client/assets/MarkdownRenderer-BA3oPVqT.js} +1 -1
  18. package/dist/client/assets/MemoryView-CU3JHweh.css +1 -0
  19. package/dist/{assets/MemoryView-CWEya0jB.js → client/assets/MemoryView-VgQFNMsP.js} +2 -2
  20. package/dist/{assets/Modal-mFCAbKPD.js → client/assets/Modal-WQKdvHJY.js} +1 -1
  21. package/dist/client/assets/ModelsView-HlT7QxLF.css +1 -0
  22. package/dist/{assets/ModelsView-BdPt2Mo_.js → client/assets/ModelsView-QDRloKd5.js} +1 -1
  23. package/dist/{assets/Popconfirm-C2OzcGTX.js → client/assets/Popconfirm-02A7vL_z.js} +1 -1
  24. package/dist/{assets/Popover-CRZpNb8Q.js → client/assets/Popover-2C1zuptC.js} +1 -1
  25. package/dist/{assets/Scrollbar-CA0Mq0os.js → client/assets/Scrollbar-Bg2FeTtI.js} +1 -1
  26. package/dist/{assets/Select-DLECSo9D.js → client/assets/Select-C_hKaXgI.js} +1 -1
  27. package/dist/client/assets/SettingRow-CLLFxWP3.js +1 -0
  28. package/dist/client/assets/SettingRow-DsjrPlmy.css +1 -0
  29. package/dist/{assets/SettingsView-DWXjfdpD.js → client/assets/SettingsView-CeScqhwO.js} +2 -2
  30. package/dist/client/assets/SettingsView-vVdZjtPc.css +1 -0
  31. package/dist/{assets/SkillsView-Gb4tyJjH.js → client/assets/SkillsView-D6CegW4w.js} +1 -1
  32. package/dist/client/assets/SkillsView-l8q6J0Ov.css +1 -0
  33. package/dist/{assets/Spin-BbbA3R-G.js → client/assets/Spin-lybeIDeX.js} +1 -1
  34. package/dist/{assets/Suffix-BMwB7UJK.js → client/assets/Suffix-Dv1UElLH.js} +1 -1
  35. package/dist/{assets/Switch-Xa0U6jwA.js → client/assets/Switch-mgeu-lpD.js} +1 -1
  36. package/dist/{assets/Tag-NMAaTGW7.js → client/assets/Tag-DWc4lbAm.js} +1 -1
  37. package/dist/{assets/TerminalView-B7iMIrM8.css → client/assets/TerminalView-CuqATvpq.css} +1 -1
  38. package/dist/{assets/TerminalView-CvTXTM3W.js → client/assets/TerminalView-DmnXOHFu.js} +2 -2
  39. package/dist/{assets/Tooltip-C9RmASqV.js → client/assets/Tooltip-DrDTmrj3.js} +1 -1
  40. package/dist/client/assets/UsageView-BgU-h2NT.css +1 -0
  41. package/dist/{assets/UsageView-DiCHVrs8.js → client/assets/UsageView-C3O6-vbW.js} +1 -1
  42. package/dist/{assets/Warning-CmJYhk3M.js → client/assets/Warning-t1i_4T5i.js} +1 -1
  43. package/dist/{assets/_plugin-vue_export-helper-NLzeiXdV.js → client/assets/_plugin-vue_export-helper-BkT4A29V.js} +1 -1
  44. package/dist/client/assets/app-BUjbfMSg.js +1 -0
  45. package/dist/client/assets/app-p59ZckFN.js +1 -0
  46. package/dist/{assets/browser-DNwI2j4X.js → client/assets/browser-DzAOCZtm.js} +1 -1
  47. package/dist/client/assets/chat-CX1Hza8X.js +6 -0
  48. package/dist/client/assets/context-BM8ZQCOz.js +1 -0
  49. package/dist/{assets/fade-in-scale-up.cssr-BMJXPg-3.js → client/assets/fade-in-scale-up.cssr-DQl-Z54c.js} +1 -1
  50. package/dist/{assets/index-DlNQjiQP.js → client/assets/index-95z-iQoj.js} +2 -2
  51. package/dist/{assets/index-TVVcuwR0.css → client/assets/index-C33O1KZm.css} +1 -1
  52. package/dist/client/assets/jobs-B9NHIxuL.js +1 -0
  53. package/dist/{assets/pinia-DKSOddVw.js → client/assets/pinia-bPUFQqFK.js} +1 -1
  54. package/dist/{assets/router-CpYvE976.js → client/assets/router-COwpqexM.js} +2 -2
  55. package/dist/client/assets/sessions-B1SPfe-R.js +1 -0
  56. package/dist/client/assets/skills-CRtljpt6.js +1 -0
  57. package/dist/client/assets/use-compitable-BnlNjEug.js +1 -0
  58. package/dist/{assets/use-message-17mZlZe3.js → client/assets/use-message-g8F4Z57w.js} +1 -1
  59. package/dist/client/index.html +38 -0
  60. package/dist/server/index.js +6 -26
  61. package/dist/server/routes/{config.js → hermes/config.js} +4 -4
  62. package/dist/server/routes/{filesystem.js → hermes/filesystem.js} +13 -13
  63. package/dist/server/routes/hermes/index.d.ts +5 -0
  64. package/dist/server/routes/hermes/index.js +25 -0
  65. package/dist/server/routes/{logs.js → hermes/logs.js} +3 -3
  66. package/dist/server/routes/hermes/profiles.d.ts +2 -0
  67. package/dist/server/routes/hermes/profiles.js +222 -0
  68. package/dist/server/routes/{proxy-handler.js → hermes/proxy-handler.js} +6 -2
  69. package/dist/server/routes/{proxy.d.ts → hermes/proxy.d.ts} +2 -0
  70. package/dist/server/routes/hermes/proxy.js +20 -0
  71. package/dist/server/routes/{sessions.js → hermes/sessions.js} +5 -5
  72. package/dist/server/routes/{terminal.js → hermes/terminal.js} +2 -2
  73. package/dist/server/routes/{weixin.js → hermes/weixin.js} +4 -4
  74. package/dist/server/services/auth.js +1 -1
  75. package/dist/server/services/hermes-cli.d.ts +53 -0
  76. package/dist/server/services/hermes-cli.js +195 -0
  77. package/package.json +5 -5
  78. package/dist/assets/ChannelsView-C7Wor1FB.css +0 -1
  79. package/dist/assets/ChatView-gR62J-Xr.css +0 -1
  80. package/dist/assets/JobsView-DoUtVQm_.css +0 -1
  81. package/dist/assets/LoginView-BXByybMK.css +0 -1
  82. package/dist/assets/LoginView-HQwDR5A7.js +0 -1
  83. package/dist/assets/LogsView-COSQTXoG.css +0 -1
  84. package/dist/assets/LogsView-KPcTBGzh.js +0 -1
  85. package/dist/assets/MemoryView-CL5H-3mE.css +0 -1
  86. package/dist/assets/ModelsView-DbBXgw4g.css +0 -1
  87. package/dist/assets/SettingRow-CsKwX-jv.js +0 -1
  88. package/dist/assets/SettingRow-Dwpo-tP0.css +0 -1
  89. package/dist/assets/SettingsView-Citzr3ci.css +0 -1
  90. package/dist/assets/SkillsView-BNEWlriU.css +0 -1
  91. package/dist/assets/UsageView-DKigFrVY.css +0 -1
  92. package/dist/assets/app-CQZfHgyy.js +0 -1
  93. package/dist/assets/app-DeeNNd_a.js +0 -1
  94. package/dist/assets/chat-DnFbBAAK.js +0 -6
  95. package/dist/assets/context-DLFTSrww.js +0 -1
  96. package/dist/assets/jobs-B7U8gZia.js +0 -1
  97. package/dist/assets/sessions-DTV2WuAE.js +0 -1
  98. package/dist/assets/skills-DwX9oZGG.js +0 -1
  99. package/dist/assets/use-compitable-D2-fMbL2.js +0 -1
  100. package/dist/index.html +0 -38
  101. package/dist/server/routes/proxy.js +0 -12
  102. /package/dist/{assets → client/assets}/MarkdownRenderer-Bd-nS4jK.css +0 -0
  103. /package/dist/{assets → client/assets}/dance-gGRu7JHG.mp4 +0 -0
  104. /package/dist/{assets → client/assets}/logo-Cd-t_oGE.js +0 -0
  105. /package/dist/{assets → client/assets}/omit-C4dR5R2G.js +0 -0
  106. /package/dist/{assets → client/assets}/thinking-Cwsva50h.mp4 +0 -0
  107. /package/dist/{favicon.ico → client/favicon.ico} +0 -0
  108. /package/dist/{favicon.svg → client/favicon.svg} +0 -0
  109. /package/dist/{icons.svg → client/icons.svg} +0 -0
  110. /package/dist/{logo.png → client/logo.png} +0 -0
  111. /package/dist/server/routes/{config.d.ts → hermes/config.d.ts} +0 -0
  112. /package/dist/server/routes/{filesystem.d.ts → hermes/filesystem.d.ts} +0 -0
  113. /package/dist/server/routes/{logs.d.ts → hermes/logs.d.ts} +0 -0
  114. /package/dist/server/routes/{proxy-handler.d.ts → hermes/proxy-handler.d.ts} +0 -0
  115. /package/dist/server/routes/{sessions.d.ts → hermes/sessions.d.ts} +0 -0
  116. /package/dist/server/routes/{terminal.d.ts → hermes/terminal.d.ts} +0 -0
  117. /package/dist/server/routes/{weixin.d.ts → hermes/weixin.d.ts} +0 -0
package/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  <p align="center">
2
2
  <strong>Hermes Web UI</strong>
3
+ <a href="./README_zh.md">中文</a>
3
4
  </p>
4
5
 
5
6
  <p align="center">
@@ -13,14 +14,14 @@
13
14
  </p>
14
15
 
15
16
  <p align="center">
16
- <img src="https://github.com/EKKOLearnAI/hermes-web-ui/blob/main/src/assets/output.gif" alt="Hermes Web UI Demo" width="680"/>
17
+ <img src="https://github.com/EKKOLearnAI/hermes-web-ui/blob/main/packages/client/src/assets/output.gif" alt="Hermes Web UI Demo" width="680"/>
17
18
  </p>
18
19
 
19
20
  <p align="center">
20
21
  <strong>Mobile</strong>
21
22
  </p>
22
23
  <p align="center">
23
- <video src="https://github.com/EKKOLearnAI/hermes-web-ui/blob/main/src/assets/video.mp4?raw=true" width="360" controls></video>
24
+ <video src="https://github.com/EKKOLearnAI/hermes-web-ui/blob/main/packages/client/src/assets/video.mp4?raw=true" width="360" controls></video>
24
25
  </p>
25
26
 
26
27
  <p align="center">
@@ -106,6 +107,13 @@ Unified configuration for **8 platforms** in one page:
106
107
  - Privacy (PII redaction)
107
108
  - API server configuration
108
109
 
110
+ ### Web Terminal
111
+
112
+ - Integrated terminal powered by node-pty and @xterm/xterm
113
+ - Multi-session support — create, switch between, and close terminal sessions
114
+ - Real-time keyboard input and PTY output streaming via WebSocket
115
+ - Window resize support
116
+
109
117
  ---
110
118
 
111
119
  ## Quick Start
@@ -180,16 +188,18 @@ npm run build # outputs to dist/
180
188
  ## Architecture
181
189
 
182
190
  ```
183
- Browser → BFF (Koa, :8648) → Hermes API (:8642)
191
+ Browser → BFF (Koa, :8648) → Hermes Gateway (:8642)
184
192
 
185
193
  Hermes CLI (sessions, logs, version)
186
194
 
187
195
  ~/.hermes/config.yaml (channel behavior)
188
- ~/.hermes/.env (platform credentials)
196
+ ~/.hermes/auth.json (credential pool)
189
197
  Tencent iLink API (WeChat QR login)
190
198
  ```
191
199
 
192
- The BFF layer handles API proxy, SSE streaming, file upload, session CRUD via CLI, config/credential management, WeChat QR login, model discovery, skills/memory management, log reading, and static file serving.
200
+ The frontend is designed with **multi-agent extensibility** all Hermes-specific code is namespaced under `hermes/` directories (API, components, views, stores), making it straightforward to add new agent integrations alongside.
201
+
202
+ The BFF layer handles API proxy (with path rewriting), SSE streaming, file upload, session CRUD via CLI, config/credential management, WeChat QR login, model discovery, skills/memory management, log reading, and static file serving.
193
203
 
194
204
  ## Tech Stack
195
205
 
@@ -1,4 +1,4 @@
1
- import{C as e,F as t,N as n,R as r,V as i,ct as a,d as o,dt as s,f as c,j as l}from"./router-CpYvE976.js";import{B as u,K as d,Q as f,R as p,U as m,Z as h,a as g,at as _,c as v,ct as y,d as b,dt as x,et as S,l as C,lt as w,n as T,nt as E,o as D,ot as O,q as k,r as A,t as j,tt as M,u as N,ut as P,z as F}from"./browser-DNwI2j4X.js";function I(e){return e.replace(/#|\(|\)|,|\s|\./g,`_`)}var L=l({name:`FadeInExpandTransition`,props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:t}){function r(t){e.width?t.style.maxWidth=`${t.offsetWidth}px`:t.style.maxHeight=`${t.offsetHeight}px`,t.offsetWidth}function i(t){e.width?t.style.maxWidth=`0`:t.style.maxHeight=`0`,t.offsetWidth;let{onLeave:n}=e;n&&n()}function a(t){e.width?t.style.maxWidth=``:t.style.maxHeight=``;let{onAfterLeave:n}=e;n&&n()}function s(t){if(t.style.transition=`none`,e.width){let e=t.offsetWidth;t.style.maxWidth=`0`,t.offsetWidth,t.style.transition=``,t.style.maxWidth=`${e}px`}else if(e.reverse)t.style.maxHeight=`${t.offsetHeight}px`,t.offsetHeight,t.style.transition=``,t.style.maxHeight=`0`;else{let e=t.offsetHeight;t.style.maxHeight=`0`,t.offsetWidth,t.style.transition=``,t.style.maxHeight=`${e}px`}t.offsetWidth}function l(t){var n;e.width?t.style.maxWidth=``:e.reverse||(t.style.maxHeight=``),(n=e.onAfterEnter)==null||n.call(e)}return()=>{let{group:u,width:d,appear:f,mode:p}=e,m=u?c:o,h={name:d?`fade-in-width-expand-transition`:`fade-in-height-expand-transition`,appear:f,onEnter:s,onAfterEnter:l,onBeforeLeave:r,onLeave:i,onAfterLeave:a};return u||(h.mode=p),n(m,h,t)}}}),{cubicBezierEaseInOut:R}=N;function z({duration:e=`.2s`,delay:t=`.1s`}={}){return[_(`&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to`,{opacity:1}),_(`&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from`,`
1
+ import{C as e,F as t,N as n,R as r,V as i,ct as a,d as o,dt as s,f as c,j as l}from"./router-COwpqexM.js";import{B as u,K as d,Q as f,R as p,U as m,Z as h,a as g,at as _,c as v,ct as y,d as b,dt as x,et as S,l as C,lt as w,n as T,nt as E,o as D,ot as O,q as k,r as A,t as j,tt as M,u as N,ut as P,z as F}from"./browser-DzAOCZtm.js";function I(e){return e.replace(/#|\(|\)|,|\s|\./g,`_`)}var L=l({name:`FadeInExpandTransition`,props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:t}){function r(t){e.width?t.style.maxWidth=`${t.offsetWidth}px`:t.style.maxHeight=`${t.offsetHeight}px`,t.offsetWidth}function i(t){e.width?t.style.maxWidth=`0`:t.style.maxHeight=`0`,t.offsetWidth;let{onLeave:n}=e;n&&n()}function a(t){e.width?t.style.maxWidth=``:t.style.maxHeight=``;let{onAfterLeave:n}=e;n&&n()}function s(t){if(t.style.transition=`none`,e.width){let e=t.offsetWidth;t.style.maxWidth=`0`,t.offsetWidth,t.style.transition=``,t.style.maxWidth=`${e}px`}else if(e.reverse)t.style.maxHeight=`${t.offsetHeight}px`,t.offsetHeight,t.style.transition=``,t.style.maxHeight=`0`;else{let e=t.offsetHeight;t.style.maxHeight=`0`,t.offsetWidth,t.style.transition=``,t.style.maxHeight=`${e}px`}t.offsetWidth}function l(t){var n;e.width?t.style.maxWidth=``:e.reverse||(t.style.maxHeight=``),(n=e.onAfterEnter)==null||n.call(e)}return()=>{let{group:u,width:d,appear:f,mode:p}=e,m=u?c:o,h={name:d?`fade-in-width-expand-transition`:`fade-in-height-expand-transition`,appear:f,onEnter:s,onAfterEnter:l,onBeforeLeave:r,onLeave:i,onAfterLeave:a};return u||(h.mode=p),n(m,h,t)}}}),{cubicBezierEaseInOut:R}=N;function z({duration:e=`.2s`,delay:t=`.1s`}={}){return[_(`&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to`,{opacity:1}),_(`&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from`,`
2
2
  opacity: 0!important;
3
3
  margin-left: 0!important;
4
4
  margin-right: 0!important;
@@ -1 +1 @@
1
- import{A as e,C as t,D as n,E as r,G as i,J as a,Q as o,T as s,U as c,W as l,Y as u,ct as d,gt as f,j as p,k as m,mt as h,pt as g,q as _,w as v,y}from"./router-CpYvE976.js";import{r as b,t as x}from"./_plugin-vue_export-helper-NLzeiXdV.js";import{t as S}from"./Button-BHvh9zmj.js";import{t as C}from"./Input-CS0p63GR.js";import{t as w}from"./Tag-NMAaTGW7.js";import{t as T}from"./use-message-17mZlZe3.js";import{t as E}from"./Spin-BbbA3R-G.js";import{t as D}from"./Switch-Xa0U6jwA.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./SettingRow-CsKwX-jv.js";var P={class:`platform-info`},F=[`innerHTML`],I={class:`platform-name`},L={key:0,class:`platform-card-body`},R=x(p({__name:`PlatformCard`,props:{name:{},icon:{},config:{},credentials:{}},setup(s){let c=s,l=d(!0),{t:u}=b(),p=t(()=>{let e=c.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(t,c)=>(i(),n(`div`,{class:h([`platform-card`,{configured:p.value}])},[v(`div`,{class:`platform-card-header`,onClick:c[0]||=e=>l.value=!l.value},[v(`div`,P,[v(`span`,{class:`platform-icon`,innerHTML:s.icon},null,8,F),v(`span`,I,f(s.name),1),e(g(w),{type:p.value?`success`:`default`,size:`small`,round:``},{default:o(()=>[m(f(p.value?g(u)(`common.configured`):g(u)(`common.notConfigured`)),1)]),_:1},8,[`type`])]),v(`span`,{class:h([`expand-icon`,{expanded:l.value}])},`▾`,2)]),l.value?(i(),n(`div`,L,[a(t.$slots,`default`,{},void 0,!0)])):r(``,!0)],2))}}),[[`__scopeId`,`data-v-ee5f4168`]]),z={class:`settings-section`},B={class:`weixin-qr-section`},V={key:1,class:`weixin-qr-loading`},H={key:2,class:`weixin-qr-hint`},U=x(p({__name:`PlatformSettings`,setup(t){let a=A(),c=T(),{t:p}=b();async function h(e,t){try{await a.saveSection(e,t),c.success(p(`settings.saved`))}catch{c.error(p(`settings.saveFailed`))}}let x=d(!1);async function w(e,t){x.value=!0;try{await O(e,t),await a.fetchSettings(),c.success(p(`settings.saved`))}catch{c.error(p(`settings.saveFailed`))}finally{x.value=!1}}function E(e){return a.platforms[e]||{}}let P=d(``),F=d(``),I=d(`idle`),L=null;async function U(){I.value=`loading`,P.value=``,F.value=``,G();try{let e=await M();F.value=e.qrcode,P.value=e.qrcode_url,window.open(e.qrcode_url,`_blank`),I.value=`waiting`,W()}catch(e){I.value=`error`,c.error(e.message||p(`platform.qrFetching`))}}function W(){F.value&&(L=setTimeout(async()=>{try{let e=await k(F.value);e.status===`wait`?W():e.status===`scaned`?(I.value=`scaned`,W()):e.status===`expired`?I.value=`expired`:e.status===`confirmed`&&(I.value=`confirmed`,await j({account_id:e.account_id,token:e.token,base_url:e.base_url}),await a.fetchSettings(),c.success(p(`settings.saved`)))}catch{W()}},3e3))}function G(){L&&=(clearTimeout(L),null)}l(()=>{G()});let K=[{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(t,c)=>{let l=u(`NSpin`);return i(),n(`section`,z,[(i(),n(y,null,_(K,t=>e(R,{key:t.key,name:t.name,icon:t.icon,config:g(a)[t.key],credentials:E(t.key)},{default:o(()=>[t.key===`telegram`?(i(),n(y,{key:0},[e(N,{label:g(p)(`platform.botToken`),hint:g(p)(`platform.botTokenHint`)},{default:o(()=>[e(g(C),{value:E(`telegram`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`123456:ABC-DEF...`,"onUpdate:value":c[0]||=e=>w(`telegram`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).telegram.require_mention,"onUpdate:value":c[1]||=e=>h(`telegram`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.reactions`),hint:g(p)(`platform.reactionsHint`)},{default:o(()=>[e(g(D),{value:g(a).telegram.reactions,"onUpdate:value":c[2]||=e=>h(`telegram`,{reactions:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).telegram.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[3]||=e=>h(`telegram`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.mentionPatterns`),hint:g(p)(`platform.mentionPatternsHint`)},{default:o(()=>[e(g(C),{value:(g(a).telegram.mention_patterns||[]).join(`, `),size:`small`,placeholder:`pattern1, pattern2`,"onUpdate:value":c[4]||=e=>h(`telegram`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`discord`?(i(),n(y,{key:1},[e(N,{label:g(p)(`platform.botToken`),hint:g(p)(`platform.botTokenHint`)},{default:o(()=>[e(g(C),{value:E(`discord`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Bot token...`,"onUpdate:value":c[5]||=e=>w(`discord`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionChannel`)},{default:o(()=>[e(g(D),{value:g(a).discord.require_mention,"onUpdate:value":c[6]||=e=>h(`discord`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.autoThread`),hint:g(p)(`platform.autoThreadHint`)},{default:o(()=>[e(g(D),{value:g(a).discord.auto_thread,"onUpdate:value":c[7]||=e=>h(`discord`,{auto_thread:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.reactions`),hint:g(p)(`platform.reactionsHint`)},{default:o(()=>[e(g(D),{value:g(a).discord.reactions,"onUpdate:value":c[8]||=e=>h(`discord`,{reactions:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChannels`),hint:g(p)(`platform.freeResponseChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.free_response_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[9]||=e=>h(`discord`,{free_response_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.allowedChannels`),hint:g(p)(`platform.allowedChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.allowed_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[10]||=e=>h(`discord`,{allowed_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.ignoredChannels`),hint:g(p)(`platform.ignoredChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.ignored_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[11]||=e=>h(`discord`,{ignored_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.noThreadChannels`),hint:g(p)(`platform.noThreadChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.no_thread_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[12]||=e=>h(`discord`,{no_thread_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`slack`?(i(),n(y,{key:2},[e(N,{label:g(p)(`platform.botToken`),hint:g(p)(`platform.botTokenHint`)},{default:o(()=>[e(g(C),{value:E(`slack`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`xoxb-...`,"onUpdate:value":c[13]||=e=>w(`slack`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionChannel`)},{default:o(()=>[e(g(D),{value:g(a).slack.require_mention,"onUpdate:value":c[14]||=e=>h(`slack`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.allowBots`),hint:g(p)(`platform.allowBotsHint`)},{default:o(()=>[e(g(D),{value:g(a).slack.allow_bots,"onUpdate:value":c[15]||=e=>h(`slack`,{allow_bots:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChannels`),hint:g(p)(`platform.freeResponseChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).slack.free_response_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[16]||=e=>h(`slack`,{free_response_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`whatsapp`?(i(),n(y,{key:3},[e(N,{label:g(p)(`platform.waEnabled`),hint:g(p)(`platform.waEnabledHint`)},{default:o(()=>[e(g(D),{value:E(`whatsapp`).enabled,"onUpdate:value":c[17]||=e=>w(`whatsapp`,{enabled:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).whatsapp.require_mention,"onUpdate:value":c[18]||=e=>h(`whatsapp`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).whatsapp.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[19]||=e=>h(`whatsapp`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.mentionPatterns`),hint:g(p)(`platform.mentionPatternsHint`)},{default:o(()=>[e(g(C),{value:(g(a).whatsapp.mention_patterns||[]).join(`, `),size:`small`,placeholder:`pattern1, pattern2`,"onUpdate:value":c[20]||=e=>h(`whatsapp`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`matrix`?(i(),n(y,{key:4},[e(N,{label:g(p)(`platform.accessToken`),hint:g(p)(`platform.accessTokenHint`)},{default:o(()=>[e(g(C),{value:E(`matrix`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`syt_...`,"onUpdate:value":c[21]||=e=>w(`matrix`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.homeserver`),hint:g(p)(`platform.homeserverHint`)},{default:o(()=>[e(g(C),{value:E(`matrix`).extra?.homeserver||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`https://matrix.org`,"onUpdate:value":c[22]||=e=>w(`matrix`,{extra:{...E(`matrix`).extra,homeserver:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionRoom`)},{default:o(()=>[e(g(D),{value:g(a).matrix.require_mention,"onUpdate:value":c[23]||=e=>h(`matrix`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.autoThread`),hint:g(p)(`platform.autoThreadHintRoom`)},{default:o(()=>[e(g(D),{value:g(a).matrix.auto_thread,"onUpdate:value":c[24]||=e=>h(`matrix`,{auto_thread:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.dmMentionThreads`),hint:g(p)(`platform.dmMentionThreadsHint`)},{default:o(()=>[e(g(D),{value:g(a).matrix.dm_mention_threads,"onUpdate:value":c[25]||=e=>h(`matrix`,{dm_mention_threads:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseRooms`),hint:g(p)(`platform.freeResponseRoomsHint`)},{default:o(()=>[e(g(C),{value:g(a).matrix.free_response_rooms||``,size:`small`,placeholder:`room_id1,room_id2`,"onUpdate:value":c[26]||=e=>h(`matrix`,{free_response_rooms:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`feishu`?(i(),n(y,{key:5},[e(N,{label:g(p)(`platform.appId`),hint:g(p)(`platform.appIdHint`)},{default:o(()=>[e(g(C),{value:E(`feishu`).extra?.app_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`cli_...`,"onUpdate:value":c[27]||=e=>w(`feishu`,{extra:{...E(`feishu`).extra,app_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.appSecret`),hint:g(p)(`platform.appSecretHint`)},{default:o(()=>[e(g(C),{value:E(`feishu`).extra?.app_secret||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`App Secret`,"onUpdate:value":c[28]||=e=>w(`feishu`,{extra:{...E(`feishu`).extra,app_secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).feishu.require_mention,"onUpdate:value":c[29]||=e=>h(`feishu`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).feishu.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[30]||=e=>h(`feishu`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`dingtalk`?(i(),n(y,{key:6},[e(N,{label:g(p)(`platform.clientId`),hint:g(p)(`platform.clientIdHint`)},{default:o(()=>[e(g(C),{value:E(`dingtalk`).extra?.client_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Client ID`,"onUpdate:value":c[31]||=e=>w(`dingtalk`,{extra:{...E(`dingtalk`).extra,client_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.clientSecret`),hint:g(p)(`platform.clientSecretHint`)},{default:o(()=>[e(g(C),{value:E(`dingtalk`).extra?.client_secret||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Client Secret`,"onUpdate:value":c[32]||=e=>w(`dingtalk`,{extra:{...E(`dingtalk`).extra,client_secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).dingtalk.require_mention,"onUpdate:value":c[33]||=e=>h(`dingtalk`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).dingtalk.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[34]||=e=>h(`dingtalk`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`weixin`?(i(),n(y,{key:7},[v(`div`,B,[I.value===`idle`||I.value===`error`||I.value===`expired`||I.value===`confirmed`?(i(),s(g(S),{key:0,type:`primary`,size:`small`,onClick:U},{default:o(()=>[m(f(I.value===`confirmed`?g(p)(`platform.qrRelogin`):g(p)(`platform.qrLogin`)),1)]),_:1})):r(``,!0),I.value===`loading`?(i(),n(`div`,V,[e(l,{size:`small`}),v(`span`,null,f(g(p)(`platform.qrFetching`)),1)])):r(``,!0),I.value===`waiting`||I.value===`scaned`?(i(),n(`div`,H,f(I.value===`scaned`?g(p)(`platform.qrScanedHint`):g(p)(`platform.qrScanHint`)),1)):r(``,!0)]),e(N,{label:g(p)(`platform.weixinToken`),hint:g(p)(`platform.weixinTokenHint`)},{default:o(()=>[e(g(C),{value:E(`weixin`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Token`,"onUpdate:value":c[35]||=e=>w(`weixin`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.accountId`),hint:g(p)(`platform.accountIdHint`)},{default:o(()=>[e(g(C),{value:E(`weixin`).extra?.account_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Account ID`,"onUpdate:value":c[36]||=e=>w(`weixin`,{extra:{...E(`weixin`).extra,account_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`wecom`?(i(),n(y,{key:8},[e(N,{label:g(p)(`platform.botId`),hint:g(p)(`platform.botIdHint`)},{default:o(()=>[e(g(C),{value:E(`wecom`).extra?.bot_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Bot ID`,"onUpdate:value":c[37]||=e=>w(`wecom`,{extra:{...E(`wecom`).extra,bot_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.appSecret`),hint:g(p)(`platform.wecomSecretHint`)},{default:o(()=>[e(g(C),{value:E(`wecom`).extra?.secret||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Secret`,"onUpdate:value":c[38]||=e=>w(`wecom`,{extra:{...E(`wecom`).extra,secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0)]),_:2},1032,[`name`,`icon`,`config`,`credentials`])),64))])}}}),[[`__scopeId`,`data-v-9f4c95ee`]]),W={class:`channels-view`},G={class:`page-header`},K={class:`header-title`},q={class:`channels-content`},J=x(p({__name:`ChannelsView`,setup(t){let r=A(),{t:a}=b();return c(()=>{r.fetchSettings()}),(t,s)=>(i(),n(`div`,W,[v(`header`,G,[v(`h2`,K,f(g(a)(`sidebar.channels`)),1)]),v(`div`,q,[e(g(E),{show:g(r).loading||g(r).saving,size:`large`,description:g(a)(`common.loading`)},{default:o(()=>[e(U)]),_:1},8,[`show`,`description`])])]))}}),[[`__scopeId`,`data-v-099b0c1b`]]);export{J as default};
1
+ import{A as e,C as t,D as n,E as r,G as i,J as a,Q as o,T as s,U as c,W as l,Y as u,ct as d,gt as f,j as p,k as m,mt as h,pt as g,q as _,w as v,y}from"./router-COwpqexM.js";import{r as b,t as x}from"./_plugin-vue_export-helper-BkT4A29V.js";import{t as S}from"./Button-zECKCotA.js";import{t as C}from"./Input-DxJk6pT-.js";import{t as w}from"./Tag-DWc4lbAm.js";import{t as T}from"./use-message-g8F4Z57w.js";import{t as E}from"./Spin-lybeIDeX.js";import{t as D}from"./Switch-mgeu-lpD.js";import{a as O,i as k,n as A,o as j,r as M,t as N}from"./SettingRow-CLLFxWP3.js";var P={class:`platform-info`},F=[`innerHTML`],I={class:`platform-name`},L={key:0,class:`platform-card-body`},R=x(p({__name:`PlatformCard`,props:{name:{},icon:{},config:{},credentials:{}},setup(s){let c=s,l=d(!0),{t:u}=b(),p=t(()=>{let e=c.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(t,c)=>(i(),n(`div`,{class:h([`platform-card`,{configured:p.value}])},[v(`div`,{class:`platform-card-header`,onClick:c[0]||=e=>l.value=!l.value},[v(`div`,P,[v(`span`,{class:`platform-icon`,innerHTML:s.icon},null,8,F),v(`span`,I,f(s.name),1),e(g(w),{type:p.value?`success`:`default`,size:`small`,round:``},{default:o(()=>[m(f(p.value?g(u)(`common.configured`):g(u)(`common.notConfigured`)),1)]),_:1},8,[`type`])]),v(`span`,{class:h([`expand-icon`,{expanded:l.value}])},`▾`,2)]),l.value?(i(),n(`div`,L,[a(t.$slots,`default`,{},void 0,!0)])):r(``,!0)],2))}}),[[`__scopeId`,`data-v-07636e04`]]),z={class:`settings-section`},B={class:`weixin-qr-section`},V={key:1,class:`weixin-qr-loading`},H={key:2,class:`weixin-qr-hint`},U=x(p({__name:`PlatformSettings`,setup(t){let a=A(),c=T(),{t:p}=b();async function h(e,t){try{await a.saveSection(e,t),c.success(p(`settings.saved`))}catch{c.error(p(`settings.saveFailed`))}}let x=d(!1);async function w(e,t){x.value=!0;try{await O(e,t),await a.fetchSettings(),c.success(p(`settings.saved`))}catch{c.error(p(`settings.saveFailed`))}finally{x.value=!1}}function E(e){return a.platforms[e]||{}}let P=d(``),F=d(``),I=d(`idle`),L=null;async function U(){I.value=`loading`,P.value=``,F.value=``,G();try{let e=await M();F.value=e.qrcode,P.value=e.qrcode_url,window.open(e.qrcode_url,`_blank`),I.value=`waiting`,W()}catch(e){I.value=`error`,c.error(e.message||p(`platform.qrFetching`))}}function W(){F.value&&(L=setTimeout(async()=>{try{let e=await k(F.value);e.status===`wait`?W():e.status===`scaned`?(I.value=`scaned`,W()):e.status===`expired`?I.value=`expired`:e.status===`confirmed`&&(I.value=`confirmed`,await j({account_id:e.account_id,token:e.token,base_url:e.base_url}),await a.fetchSettings(),c.success(p(`settings.saved`)))}catch{W()}},3e3))}function G(){L&&=(clearTimeout(L),null)}l(()=>{G()});let K=[{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(t,c)=>{let l=u(`NSpin`);return i(),n(`section`,z,[(i(),n(y,null,_(K,t=>e(R,{key:t.key,name:t.name,icon:t.icon,config:g(a)[t.key],credentials:E(t.key)},{default:o(()=>[t.key===`telegram`?(i(),n(y,{key:0},[e(N,{label:g(p)(`platform.botToken`),hint:g(p)(`platform.botTokenHint`)},{default:o(()=>[e(g(C),{value:E(`telegram`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`123456:ABC-DEF...`,"onUpdate:value":c[0]||=e=>w(`telegram`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).telegram.require_mention,"onUpdate:value":c[1]||=e=>h(`telegram`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.reactions`),hint:g(p)(`platform.reactionsHint`)},{default:o(()=>[e(g(D),{value:g(a).telegram.reactions,"onUpdate:value":c[2]||=e=>h(`telegram`,{reactions:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).telegram.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[3]||=e=>h(`telegram`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.mentionPatterns`),hint:g(p)(`platform.mentionPatternsHint`)},{default:o(()=>[e(g(C),{value:(g(a).telegram.mention_patterns||[]).join(`, `),size:`small`,placeholder:`pattern1, pattern2`,"onUpdate:value":c[4]||=e=>h(`telegram`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`discord`?(i(),n(y,{key:1},[e(N,{label:g(p)(`platform.botToken`),hint:g(p)(`platform.botTokenHint`)},{default:o(()=>[e(g(C),{value:E(`discord`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Bot token...`,"onUpdate:value":c[5]||=e=>w(`discord`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionChannel`)},{default:o(()=>[e(g(D),{value:g(a).discord.require_mention,"onUpdate:value":c[6]||=e=>h(`discord`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.autoThread`),hint:g(p)(`platform.autoThreadHint`)},{default:o(()=>[e(g(D),{value:g(a).discord.auto_thread,"onUpdate:value":c[7]||=e=>h(`discord`,{auto_thread:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.reactions`),hint:g(p)(`platform.reactionsHint`)},{default:o(()=>[e(g(D),{value:g(a).discord.reactions,"onUpdate:value":c[8]||=e=>h(`discord`,{reactions:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChannels`),hint:g(p)(`platform.freeResponseChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.free_response_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[9]||=e=>h(`discord`,{free_response_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.allowedChannels`),hint:g(p)(`platform.allowedChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.allowed_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[10]||=e=>h(`discord`,{allowed_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.ignoredChannels`),hint:g(p)(`platform.ignoredChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.ignored_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[11]||=e=>h(`discord`,{ignored_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.noThreadChannels`),hint:g(p)(`platform.noThreadChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).discord.no_thread_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[12]||=e=>h(`discord`,{no_thread_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`slack`?(i(),n(y,{key:2},[e(N,{label:g(p)(`platform.botToken`),hint:g(p)(`platform.botTokenHint`)},{default:o(()=>[e(g(C),{value:E(`slack`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`xoxb-...`,"onUpdate:value":c[13]||=e=>w(`slack`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionChannel`)},{default:o(()=>[e(g(D),{value:g(a).slack.require_mention,"onUpdate:value":c[14]||=e=>h(`slack`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.allowBots`),hint:g(p)(`platform.allowBotsHint`)},{default:o(()=>[e(g(D),{value:g(a).slack.allow_bots,"onUpdate:value":c[15]||=e=>h(`slack`,{allow_bots:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChannels`),hint:g(p)(`platform.freeResponseChannelsHint`)},{default:o(()=>[e(g(C),{value:g(a).slack.free_response_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":c[16]||=e=>h(`slack`,{free_response_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`whatsapp`?(i(),n(y,{key:3},[e(N,{label:g(p)(`platform.waEnabled`),hint:g(p)(`platform.waEnabledHint`)},{default:o(()=>[e(g(D),{value:E(`whatsapp`).enabled,"onUpdate:value":c[17]||=e=>w(`whatsapp`,{enabled:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).whatsapp.require_mention,"onUpdate:value":c[18]||=e=>h(`whatsapp`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).whatsapp.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[19]||=e=>h(`whatsapp`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.mentionPatterns`),hint:g(p)(`platform.mentionPatternsHint`)},{default:o(()=>[e(g(C),{value:(g(a).whatsapp.mention_patterns||[]).join(`, `),size:`small`,placeholder:`pattern1, pattern2`,"onUpdate:value":c[20]||=e=>h(`whatsapp`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`matrix`?(i(),n(y,{key:4},[e(N,{label:g(p)(`platform.accessToken`),hint:g(p)(`platform.accessTokenHint`)},{default:o(()=>[e(g(C),{value:E(`matrix`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`syt_...`,"onUpdate:value":c[21]||=e=>w(`matrix`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.homeserver`),hint:g(p)(`platform.homeserverHint`)},{default:o(()=>[e(g(C),{value:E(`matrix`).extra?.homeserver||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`https://matrix.org`,"onUpdate:value":c[22]||=e=>w(`matrix`,{extra:{...E(`matrix`).extra,homeserver:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionRoom`)},{default:o(()=>[e(g(D),{value:g(a).matrix.require_mention,"onUpdate:value":c[23]||=e=>h(`matrix`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.autoThread`),hint:g(p)(`platform.autoThreadHintRoom`)},{default:o(()=>[e(g(D),{value:g(a).matrix.auto_thread,"onUpdate:value":c[24]||=e=>h(`matrix`,{auto_thread:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.dmMentionThreads`),hint:g(p)(`platform.dmMentionThreadsHint`)},{default:o(()=>[e(g(D),{value:g(a).matrix.dm_mention_threads,"onUpdate:value":c[25]||=e=>h(`matrix`,{dm_mention_threads:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseRooms`),hint:g(p)(`platform.freeResponseRoomsHint`)},{default:o(()=>[e(g(C),{value:g(a).matrix.free_response_rooms||``,size:`small`,placeholder:`room_id1,room_id2`,"onUpdate:value":c[26]||=e=>h(`matrix`,{free_response_rooms:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`feishu`?(i(),n(y,{key:5},[e(N,{label:g(p)(`platform.appId`),hint:g(p)(`platform.appIdHint`)},{default:o(()=>[e(g(C),{value:E(`feishu`).extra?.app_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`cli_...`,"onUpdate:value":c[27]||=e=>w(`feishu`,{extra:{...E(`feishu`).extra,app_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.appSecret`),hint:g(p)(`platform.appSecretHint`)},{default:o(()=>[e(g(C),{value:E(`feishu`).extra?.app_secret||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`App Secret`,"onUpdate:value":c[28]||=e=>w(`feishu`,{extra:{...E(`feishu`).extra,app_secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).feishu.require_mention,"onUpdate:value":c[29]||=e=>h(`feishu`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).feishu.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[30]||=e=>h(`feishu`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`dingtalk`?(i(),n(y,{key:6},[e(N,{label:g(p)(`platform.clientId`),hint:g(p)(`platform.clientIdHint`)},{default:o(()=>[e(g(C),{value:E(`dingtalk`).extra?.client_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Client ID`,"onUpdate:value":c[31]||=e=>w(`dingtalk`,{extra:{...E(`dingtalk`).extra,client_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.clientSecret`),hint:g(p)(`platform.clientSecretHint`)},{default:o(()=>[e(g(C),{value:E(`dingtalk`).extra?.client_secret||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Client Secret`,"onUpdate:value":c[32]||=e=>w(`dingtalk`,{extra:{...E(`dingtalk`).extra,client_secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.requireMention`),hint:g(p)(`platform.requireMentionGroup`)},{default:o(()=>[e(g(D),{value:g(a).dingtalk.require_mention,"onUpdate:value":c[33]||=e=>h(`dingtalk`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.freeResponseChats`),hint:g(p)(`platform.freeResponseChatsHint`)},{default:o(()=>[e(g(C),{value:g(a).dingtalk.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":c[34]||=e=>h(`dingtalk`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`weixin`?(i(),n(y,{key:7},[v(`div`,B,[I.value===`idle`||I.value===`error`||I.value===`expired`||I.value===`confirmed`?(i(),s(g(S),{key:0,type:`primary`,size:`small`,onClick:U},{default:o(()=>[m(f(I.value===`confirmed`?g(p)(`platform.qrRelogin`):g(p)(`platform.qrLogin`)),1)]),_:1})):r(``,!0),I.value===`loading`?(i(),n(`div`,V,[e(l,{size:`small`}),v(`span`,null,f(g(p)(`platform.qrFetching`)),1)])):r(``,!0),I.value===`waiting`||I.value===`scaned`?(i(),n(`div`,H,f(I.value===`scaned`?g(p)(`platform.qrScanedHint`):g(p)(`platform.qrScanHint`)),1)):r(``,!0)]),e(N,{label:g(p)(`platform.weixinToken`),hint:g(p)(`platform.weixinTokenHint`)},{default:o(()=>[e(g(C),{value:E(`weixin`).token||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Token`,"onUpdate:value":c[35]||=e=>w(`weixin`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.accountId`),hint:g(p)(`platform.accountIdHint`)},{default:o(()=>[e(g(C),{value:E(`weixin`).extra?.account_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Account ID`,"onUpdate:value":c[36]||=e=>w(`weixin`,{extra:{...E(`weixin`).extra,account_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0),t.key===`wecom`?(i(),n(y,{key:8},[e(N,{label:g(p)(`platform.botId`),hint:g(p)(`platform.botIdHint`)},{default:o(()=>[e(g(C),{value:E(`wecom`).extra?.bot_id||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Bot ID`,"onUpdate:value":c[37]||=e=>w(`wecom`,{extra:{...E(`wecom`).extra,bot_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),e(N,{label:g(p)(`platform.appSecret`),hint:g(p)(`platform.wecomSecretHint`)},{default:o(()=>[e(g(C),{value:E(`wecom`).extra?.secret||``,clearable:``,size:`small`,class:`input-lg`,placeholder:`Secret`,"onUpdate:value":c[38]||=e=>w(`wecom`,{extra:{...E(`wecom`).extra,secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):r(``,!0)]),_:2},1032,[`name`,`icon`,`config`,`credentials`])),64))])}}}),[[`__scopeId`,`data-v-89b6c2e1`]]),W={class:`channels-view`},G={class:`page-header`},K={class:`header-title`},q={class:`channels-content`},J=x(p({__name:`ChannelsView`,setup(t){let r=A(),{t:a}=b();return c(()=>{r.fetchSettings()}),(t,s)=>(i(),n(`div`,W,[v(`header`,G,[v(`h2`,K,f(g(a)(`sidebar.channels`)),1)]),v(`div`,q,[e(g(E),{show:g(r).loading||g(r).saving,size:`large`,description:g(a)(`common.loading`)},{default:o(()=>[e(U)]),_:1},8,[`show`,`description`])])]))}}),[[`__scopeId`,`data-v-51c1ea7b`]]);export{J as default};
@@ -0,0 +1 @@
1
+ .platform-card[data-v-07636e04]{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;margin-bottom:12px;overflow:hidden}.platform-card.configured[data-v-07636e04]{border-color:#2e7d3233}.platform-card-header[data-v-07636e04]{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.platform-card-header[data-v-07636e04]:hover{background-color:#1a1a1a08}.platform-info[data-v-07636e04]{align-items:center;gap:10px;display:flex}.platform-icon[data-v-07636e04]{color:#666;flex-shrink:0;width:18px;height:18px}.platform-name[data-v-07636e04]{color:#1a1a1a;font-size:14px;font-weight:500}.expand-icon[data-v-07636e04]{color:#999;font-size:12px;transition:transform .2s}.expand-icon.expanded[data-v-07636e04]{transform:rotate(0)}.expand-icon[data-v-07636e04]:not(.expanded){transform:rotate(-90deg)}.platform-card-body[data-v-07636e04]{border-top:1px solid #ebebeb;padding:0 16px 12px}.settings-section[data-v-89b6c2e1]{margin-top:16px}.weixin-qr-section[data-v-89b6c2e1]{margin-top:12px;margin-bottom:12px}.weixin-qr-loading[data-v-89b6c2e1]{color:#999;align-items:center;gap:8px;font-size:13px;display:flex}.weixin-qr-hint[data-v-89b6c2e1]{color:#666;font-size:13px}.channels-view[data-v-51c1ea7b]{height:calc(100 * var(--vh));flex-direction:column;display:flex}.channels-content[data-v-51c1ea7b]{flex:1;padding:20px;position:relative;overflow-y:auto}
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,K as c,L as l,N as u,Q as d,R as f,T as p,U as m,V as h,W as g,X as _,_ as v,ct as y,d as b,dt as x,g as S,gt as C,j as w,k as T,m as E,mt as D,ot as O,pt as k,q as A,st as j,w as M,y as N}from"./router-CpYvE976.js";import{r as P,t as F}from"./_plugin-vue_export-helper-NLzeiXdV.js";import{t as I}from"./logo-Cd-t_oGE.js";import{B as L,Q as R,Y as ee,at as z,c as B,ct as V,dt as H,et as U,lt as W,n as G,ot as K,q,s as te,tt as ne,ut as J,z as re}from"./browser-DNwI2j4X.js";import{O as Y,_ as ie,b as X,d as ae,i as oe,l as se,n as ce,o as le,r as ue,t as de,v as fe,w as pe,x as me}from"./Popover-CRZpNb8Q.js";import{i as Z,n as he,s as ge,t as _e}from"./fade-in-scale-up.cssr-BMJXPg-3.js";import{g as Q,h as ve,m as ye,n as be}from"./Scrollbar-CA0Mq0os.js";import{t as xe}from"./Modal-mFCAbKPD.js";import{t as $}from"./Button-BHvh9zmj.js";import{t as Se}from"./Input-CS0p63GR.js";import{t as Ce}from"./Tooltip-C9RmASqV.js";import{t as we}from"./use-message-17mZlZe3.js";import{t as Te}from"./Popconfirm-C2OzcGTX.js";import{t as Ee}from"./app-CQZfHgyy.js";import{t as De}from"./chat-DnFbBAAK.js";import{i as Oe}from"./sessions-DTV2WuAE.js";import{t as ke}from"./MarkdownRenderer-Bp-uAEtp.js";function Ae(e={},t){let r=O({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:i,keyup:a}=e,o=e=>{switch(e.key){case`Control`:r.ctrl=!0;break;case`Meta`:r.command=!0,r.win=!0;break;case`Shift`:r.shift=!0;break;case`Tab`:r.tab=!0;break}i!==void 0&&Object.keys(i).forEach(t=>{if(t!==e.key)return;let n=i[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},s=e=>{switch(e.key){case`Control`:r.ctrl=!1;break;case`Meta`:r.command=!1,r.win=!1;break;case`Shift`:r.shift=!1;break;case`Tab`:r.tab=!1;break}a!==void 0&&Object.keys(a).forEach(t=>{if(t!==e.key)return;let n=a[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},c=()=>{(t===void 0||t.value)&&(Q(`keydown`,document,o),Q(`keyup`,document,s)),t!==void 0&&_(t,e=>{e?(Q(`keydown`,document,o),Q(`keyup`,document,s)):(ve(`keydown`,document,o),ve(`keyup`,document,s))})};return Y()?(n(c),h(()=>{(t===void 0||t.value)&&(ve(`keydown`,document,o),ve(`keyup`,document,s))})):c(),j(r)}function je(e,t,n){if(!t)return e;let r=y(e.value),i=null;return _(e,e=>{i!==null&&window.clearTimeout(i),e===!0?n&&!n.value?r.value=!0:i=window.setTimeout(()=>{r.value=!0},t):r.value=!1}),r}function Me(e){return t=>{t?e.value=t.$el:e.value=null}}var Ne=w({name:`ChevronRight`,render(){return u(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},u(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),Pe={padding:`4px 0`,optionIconSizeSmall:`14px`,optionIconSizeMedium:`16px`,optionIconSizeLarge:`16px`,optionIconSizeHuge:`18px`,optionSuffixWidthSmall:`14px`,optionSuffixWidthMedium:`14px`,optionSuffixWidthLarge:`16px`,optionSuffixWidthHuge:`16px`,optionIconSuffixWidthSmall:`32px`,optionIconSuffixWidthMedium:`32px`,optionIconSuffixWidthLarge:`36px`,optionIconSuffixWidthHuge:`36px`,optionPrefixWidthSmall:`14px`,optionPrefixWidthMedium:`14px`,optionPrefixWidthLarge:`16px`,optionPrefixWidthHuge:`16px`,optionIconPrefixWidthSmall:`36px`,optionIconPrefixWidthMedium:`36px`,optionIconPrefixWidthLarge:`40px`,optionIconPrefixWidthHuge:`40px`};function Fe(e){let{primaryColor:t,textColor2:n,dividerColor:r,hoverColor:i,popoverColor:a,invertedColor:o,borderRadius:s,fontSizeSmall:c,fontSizeMedium:l,fontSizeLarge:u,fontSizeHuge:d,heightSmall:f,heightMedium:p,heightLarge:m,heightHuge:h,textColor3:g,opacityDisabled:_}=e;return Object.assign(Object.assign({},Pe),{optionHeightSmall:f,optionHeightMedium:p,optionHeightLarge:m,optionHeightHuge:h,borderRadius:s,fontSizeSmall:c,fontSizeMedium:l,fontSizeLarge:u,fontSizeHuge:d,optionTextColor:n,optionTextColorHover:n,optionTextColorActive:t,optionTextColorChildActive:t,color:a,dividerColor:r,suffixColor:n,prefixColor:n,optionColorHover:i,optionColorActive:ne(t,{alpha:.1}),groupHeaderTextColor:g,optionTextColorInverted:`#BBB`,optionTextColorHoverInverted:`#FFF`,optionTextColorActiveInverted:`#FFF`,optionTextColorChildActiveInverted:`#FFF`,colorInverted:o,dividerColorInverted:`#BBB`,suffixColorInverted:`#BBB`,prefixColorInverted:`#BBB`,optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:`#AAA`,optionOpacityDisabled:_})}var Ie=te({name:`Dropdown`,common:G,peers:{Popover:oe},self:Fe}),Le=R(`n-dropdown-menu`),Re=R(`n-dropdown`),ze=R(`n-dropdown-option`),Be=w({name:`DropdownDivider`,props:{clsPrefix:{type:String,required:!0}},render(){return u(`div`,{class:`${this.clsPrefix}-dropdown-divider`})}}),Ve=w({name:`DropdownGroupHeader`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){let{showIconRef:e,hasSubmenuRef:t}=o(Le),{renderLabelRef:n,labelFieldRef:r,nodePropsRef:i,renderOptionRef:a}=o(Re);return{labelField:r,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:i,renderOption:a}},render(){let{clsPrefix:e,hasSubmenu:t,showIcon:n,nodeProps:r,renderLabel:i,renderOption:a}=this,{rawNode:o}=this.tmNode,s=u(`div`,Object.assign({class:`${e}-dropdown-option`},r?.(o)),u(`div`,{class:`${e}-dropdown-option-body ${e}-dropdown-option-body--group`},u(`div`,{"data-dropdown-option":!0,class:[`${e}-dropdown-option-body__prefix`,n&&`${e}-dropdown-option-body__prefix--show-icon`]},Z(o.icon)),u(`div`,{class:`${e}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(o):Z(o.title??o[this.labelField])),u(`div`,{class:[`${e}-dropdown-option-body__suffix`,t&&`${e}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return a?a({node:s,option:o}):s}});function He(e){let{textColorBase:t,opacity1:n,opacity2:r,opacity3:i,opacity4:a,opacity5:o}=e;return{color:t,opacity1Depth:n,opacity2Depth:r,opacity3Depth:i,opacity4Depth:a,opacity5Depth:o}}var Ue={name:`Icon`,common:G,self:He},We=K(`icon`,`
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,K as c,L as l,N as u,Q as d,R as f,T as p,U as m,V as h,W as g,X as _,_ as v,ct as y,d as b,dt as x,g as S,gt as C,j as w,k as T,m as E,mt as D,ot as O,pt as k,q as A,st as j,w as M,y as N}from"./router-COwpqexM.js";import{r as P,t as F}from"./_plugin-vue_export-helper-BkT4A29V.js";import{t as I}from"./logo-Cd-t_oGE.js";import{B as L,Q as R,Y as ee,at as z,c as B,ct as V,dt as H,et as U,lt as W,n as G,ot as K,q,s as te,tt as ne,ut as J,z as re}from"./browser-DzAOCZtm.js";import{O as Y,_ as ie,b as X,d as ae,i as oe,l as se,n as ce,o as le,r as ue,t as de,v as fe,w as pe,x as me}from"./Popover-2C1zuptC.js";import{i as Z,n as he,s as ge,t as _e}from"./fade-in-scale-up.cssr-DQl-Z54c.js";import{g as Q,h as ve,m as ye,n as be}from"./Scrollbar-Bg2FeTtI.js";import{t as xe}from"./Modal-WQKdvHJY.js";import{t as $}from"./Button-zECKCotA.js";import{t as Se}from"./Input-DxJk6pT-.js";import{t as Ce}from"./Tooltip-DrDTmrj3.js";import{t as we}from"./use-message-g8F4Z57w.js";import{t as Te}from"./Popconfirm-02A7vL_z.js";import{t as Ee}from"./app-BUjbfMSg.js";import{t as De}from"./chat-CX1Hza8X.js";import{i as Oe}from"./sessions-B1SPfe-R.js";import{t as ke}from"./MarkdownRenderer-BA3oPVqT.js";function Ae(e={},t){let r=O({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:i,keyup:a}=e,o=e=>{switch(e.key){case`Control`:r.ctrl=!0;break;case`Meta`:r.command=!0,r.win=!0;break;case`Shift`:r.shift=!0;break;case`Tab`:r.tab=!0;break}i!==void 0&&Object.keys(i).forEach(t=>{if(t!==e.key)return;let n=i[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},s=e=>{switch(e.key){case`Control`:r.ctrl=!1;break;case`Meta`:r.command=!1,r.win=!1;break;case`Shift`:r.shift=!1;break;case`Tab`:r.tab=!1;break}a!==void 0&&Object.keys(a).forEach(t=>{if(t!==e.key)return;let n=a[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},c=()=>{(t===void 0||t.value)&&(Q(`keydown`,document,o),Q(`keyup`,document,s)),t!==void 0&&_(t,e=>{e?(Q(`keydown`,document,o),Q(`keyup`,document,s)):(ve(`keydown`,document,o),ve(`keyup`,document,s))})};return Y()?(n(c),h(()=>{(t===void 0||t.value)&&(ve(`keydown`,document,o),ve(`keyup`,document,s))})):c(),j(r)}function je(e,t,n){if(!t)return e;let r=y(e.value),i=null;return _(e,e=>{i!==null&&window.clearTimeout(i),e===!0?n&&!n.value?r.value=!0:i=window.setTimeout(()=>{r.value=!0},t):r.value=!1}),r}function Me(e){return t=>{t?e.value=t.$el:e.value=null}}var Ne=w({name:`ChevronRight`,render(){return u(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},u(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),Pe={padding:`4px 0`,optionIconSizeSmall:`14px`,optionIconSizeMedium:`16px`,optionIconSizeLarge:`16px`,optionIconSizeHuge:`18px`,optionSuffixWidthSmall:`14px`,optionSuffixWidthMedium:`14px`,optionSuffixWidthLarge:`16px`,optionSuffixWidthHuge:`16px`,optionIconSuffixWidthSmall:`32px`,optionIconSuffixWidthMedium:`32px`,optionIconSuffixWidthLarge:`36px`,optionIconSuffixWidthHuge:`36px`,optionPrefixWidthSmall:`14px`,optionPrefixWidthMedium:`14px`,optionPrefixWidthLarge:`16px`,optionPrefixWidthHuge:`16px`,optionIconPrefixWidthSmall:`36px`,optionIconPrefixWidthMedium:`36px`,optionIconPrefixWidthLarge:`40px`,optionIconPrefixWidthHuge:`40px`};function Fe(e){let{primaryColor:t,textColor2:n,dividerColor:r,hoverColor:i,popoverColor:a,invertedColor:o,borderRadius:s,fontSizeSmall:c,fontSizeMedium:l,fontSizeLarge:u,fontSizeHuge:d,heightSmall:f,heightMedium:p,heightLarge:m,heightHuge:h,textColor3:g,opacityDisabled:_}=e;return Object.assign(Object.assign({},Pe),{optionHeightSmall:f,optionHeightMedium:p,optionHeightLarge:m,optionHeightHuge:h,borderRadius:s,fontSizeSmall:c,fontSizeMedium:l,fontSizeLarge:u,fontSizeHuge:d,optionTextColor:n,optionTextColorHover:n,optionTextColorActive:t,optionTextColorChildActive:t,color:a,dividerColor:r,suffixColor:n,prefixColor:n,optionColorHover:i,optionColorActive:ne(t,{alpha:.1}),groupHeaderTextColor:g,optionTextColorInverted:`#BBB`,optionTextColorHoverInverted:`#FFF`,optionTextColorActiveInverted:`#FFF`,optionTextColorChildActiveInverted:`#FFF`,colorInverted:o,dividerColorInverted:`#BBB`,suffixColorInverted:`#BBB`,prefixColorInverted:`#BBB`,optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:`#AAA`,optionOpacityDisabled:_})}var Ie=te({name:`Dropdown`,common:G,peers:{Popover:oe},self:Fe}),Le=R(`n-dropdown-menu`),Re=R(`n-dropdown`),ze=R(`n-dropdown-option`),Be=w({name:`DropdownDivider`,props:{clsPrefix:{type:String,required:!0}},render(){return u(`div`,{class:`${this.clsPrefix}-dropdown-divider`})}}),Ve=w({name:`DropdownGroupHeader`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){let{showIconRef:e,hasSubmenuRef:t}=o(Le),{renderLabelRef:n,labelFieldRef:r,nodePropsRef:i,renderOptionRef:a}=o(Re);return{labelField:r,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:i,renderOption:a}},render(){let{clsPrefix:e,hasSubmenu:t,showIcon:n,nodeProps:r,renderLabel:i,renderOption:a}=this,{rawNode:o}=this.tmNode,s=u(`div`,Object.assign({class:`${e}-dropdown-option`},r?.(o)),u(`div`,{class:`${e}-dropdown-option-body ${e}-dropdown-option-body--group`},u(`div`,{"data-dropdown-option":!0,class:[`${e}-dropdown-option-body__prefix`,n&&`${e}-dropdown-option-body__prefix--show-icon`]},Z(o.icon)),u(`div`,{class:`${e}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(o):Z(o.title??o[this.labelField])),u(`div`,{class:[`${e}-dropdown-option-body__suffix`,t&&`${e}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return a?a({node:s,option:o}):s}});function He(e){let{textColorBase:t,opacity1:n,opacity2:r,opacity3:i,opacity4:a,opacity5:o}=e;return{color:t,opacity1Depth:n,opacity2Depth:r,opacity3Depth:i,opacity4Depth:a,opacity5Depth:o}}var Ue={name:`Icon`,common:G,self:He},We=K(`icon`,`
2
2
  height: 1em;
3
3
  width: 1em;
4
4
  line-height: 1em;
@@ -122,6 +122,6 @@ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,K as c,L as l,N a
122
122
  padding: var(--n-padding);
123
123
  `),W(`scrollable`,[V(`content`,`
124
124
  padding: var(--n-padding);
125
- `)])]),tt={animated:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},size:String,inverted:Boolean,placement:{type:String,default:`bottom`},onSelect:[Function,Array],options:{type:Array,default:()=>[]},menuProps:Function,showArrow:Boolean,renderLabel:Function,renderIcon:Function,renderOption:Function,nodeProps:Function,labelField:{type:String,default:`label`},keyField:{type:String,default:`key`},childrenField:{type:String,default:`children`},value:[String,Number]},nt=Object.keys(ce),rt=w({name:`Dropdown`,inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},ce),tt),B.props),setup(e){let t=y(!1),n=ye(x(e,`show`),t),i=r(()=>{let{keyField:t,childrenField:n}=e;return he(e.options,{getKey(e){return e[t]},getDisabled(e){return e.disabled===!0},getIgnored(e){return e.type===`divider`||e.type===`render`},getChildren(e){return e[n]}})}),a=r(()=>i.value.treeNodes),o=y(null),s=y(null),l=y(null),u=r(()=>o.value??s.value??l.value??null),d=r(()=>i.value.getPath(u.value).keyPath),f=r(()=>i.value.getPath(e.value).keyPath),p=U(()=>e.keyboard&&n.value);Ae({keydown:{ArrowUp:{prevent:!0,handler:O},ArrowRight:{prevent:!0,handler:D},ArrowDown:{prevent:!0,handler:k},ArrowLeft:{prevent:!0,handler:E},Enter:{prevent:!0,handler:A},Escape:T}},p);let{mergedClsPrefixRef:m,inlineThemeDisabled:h,mergedComponentPropsRef:g}=L(e),v=r(()=>e.size||g?.value?.Dropdown?.size||`medium`),b=B(`Dropdown`,`-dropdown`,et,Ie,e,m);c(Re,{labelFieldRef:x(e,`labelField`),childrenFieldRef:x(e,`childrenField`),renderLabelRef:x(e,`renderLabel`),renderIconRef:x(e,`renderIcon`),hoverKeyRef:o,keyboardKeyRef:s,lastToggledSubmenuKeyRef:l,pendingKeyPathRef:d,activeKeyPathRef:f,animatedRef:x(e,`animated`),mergedShowRef:n,nodePropsRef:x(e,`nodeProps`),renderOptionRef:x(e,`renderOption`),menuPropsRef:x(e,`menuProps`),doSelect:S,doUpdateShow:C}),_(n,t=>{!e.animated&&!t&&w()});function S(t,n){let{onSelect:r}=e;r&&q(r,t,n)}function C(n){let{"onUpdate:show":r,onUpdateShow:i}=e;r&&q(r,n),i&&q(i,n),t.value=n}function w(){o.value=null,s.value=null,l.value=null}function T(){C(!1)}function E(){M(`left`)}function D(){M(`right`)}function O(){M(`up`)}function k(){M(`down`)}function A(){let e=j();e?.isLeaf&&n.value&&(S(e.key,e.rawNode),C(!1))}function j(){let{value:e}=i,{value:t}=u;return!e||t===null?null:e.getNode(t)??null}function M(e){let{value:t}=u,{value:{getFirstAvailableNode:n}}=i,r=null;if(t===null){let e=n();e!==null&&(r=e.key)}else{let t=j();if(t){let n;switch(e){case`down`:n=t.getNext();break;case`up`:n=t.getPrev();break;case`right`:n=t.getChild();break;case`left`:n=t.getParent();break}n&&(r=n.key)}}r!==null&&(o.value=null,s.value=r)}let N=r(()=>{let{inverted:t}=e,n=v.value,{common:{cubicBezierEaseInOut:r},self:i}=b.value,{padding:a,dividerColor:o,borderRadius:s,optionOpacityDisabled:c,[H(`optionIconSuffixWidth`,n)]:l,[H(`optionSuffixWidth`,n)]:u,[H(`optionIconPrefixWidth`,n)]:d,[H(`optionPrefixWidth`,n)]:f,[H(`fontSize`,n)]:p,[H(`optionHeight`,n)]:m,[H(`optionIconSize`,n)]:h}=i,g={"--n-bezier":r,"--n-font-size":p,"--n-padding":a,"--n-border-radius":s,"--n-option-height":m,"--n-option-prefix-width":f,"--n-option-icon-prefix-width":d,"--n-option-suffix-width":u,"--n-option-icon-suffix-width":l,"--n-option-icon-size":h,"--n-divider-color":o,"--n-option-opacity-disabled":c};return t?(g[`--n-color`]=i.colorInverted,g[`--n-option-color-hover`]=i.optionColorHoverInverted,g[`--n-option-color-active`]=i.optionColorActiveInverted,g[`--n-option-text-color`]=i.optionTextColorInverted,g[`--n-option-text-color-hover`]=i.optionTextColorHoverInverted,g[`--n-option-text-color-active`]=i.optionTextColorActiveInverted,g[`--n-option-text-color-child-active`]=i.optionTextColorChildActiveInverted,g[`--n-prefix-color`]=i.prefixColorInverted,g[`--n-suffix-color`]=i.suffixColorInverted,g[`--n-group-header-text-color`]=i.groupHeaderTextColorInverted):(g[`--n-color`]=i.color,g[`--n-option-color-hover`]=i.optionColorHover,g[`--n-option-color-active`]=i.optionColorActive,g[`--n-option-text-color`]=i.optionTextColor,g[`--n-option-text-color-hover`]=i.optionTextColorHover,g[`--n-option-text-color-active`]=i.optionTextColorActive,g[`--n-option-text-color-child-active`]=i.optionTextColorChildActive,g[`--n-prefix-color`]=i.prefixColor,g[`--n-suffix-color`]=i.suffixColor,g[`--n-group-header-text-color`]=i.groupHeaderTextColor),g}),P=h?re(`dropdown`,r(()=>`${v.value[0]}${e.inverted?`i`:``}`),N,e):void 0;return{mergedClsPrefix:m,mergedTheme:b,mergedSize:v,tmNodes:a,mergedShow:n,handleAfterLeave:()=>{e.animated&&w()},doUpdateShow:C,cssVars:h?void 0:N,themeClass:P?.themeClass,onRender:P?.onRender}},render(){let e=(e,t,n,r,i)=>{var a;let{mergedClsPrefix:o,menuProps:s}=this;(a=this.onRender)==null||a.call(this);let c=s?.(void 0,this.tmNodes.map(e=>e.rawNode))||{},d={ref:Me(t),class:[e,`${o}-dropdown`,`${o}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:o,tmNodes:this.tmNodes,style:[...n,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:r,onMouseleave:i};return u($e,l(this.$attrs,d,c))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return u(de,Object.assign({},le(this.$props,nt),n),{trigger:()=>{var e;return(e=this.$slots).default?.call(e)}})}}),it={class:`chat-input-area`},at={key:0,class:`attachment-previews`},ot=[`src`,`alt`],st={key:1,class:`attachment-file`},ct={class:`file-name`},lt={class:`file-size`},ut=[`onClick`],dt=[`placeholder`],ft={class:`input-actions`},pt=F(w({__name:`ChatInput`,setup(n){let o=De(),{t:c}=P(),l=y(``),u=y(),f=y(),m=y([]),h=y(!1),g=y(0),_=y(!1),v=r(()=>l.value.trim()||m.value.length>0);function b(e){if(m.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);m.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function x(){f.value?.click()}function S(e){let t=e.target;if(t.files){for(let e of t.files)b(e);t.value=``}}function w(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`;b(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function O(e){e.preventDefault()}function j(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(g.value++,h.value=!0)}function F(){g.value--,g.value<=0&&(g.value=0,h.value=!1)}function I(e){e.preventDefault(),g.value=0,h.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)b(e);u.value?.focus()}}function L(){let e=l.value.trim();!e&&m.value.length===0||(o.sendMessage(e,m.value.length>0?m.value:void 0),l.value=``,m.value=[],u.value&&(u.value.style.height=`auto`))}function R(){_.value=!0}function ee(){requestAnimationFrame(()=>{_.value=!1})}function z(e){return _.value||e.isComposing||e.keyCode===229}function B(e){e.key!==`Enter`||e.shiftKey||z(e)||(e.preventDefault(),L())}function V(e){let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,100)+`px`}function H(e){let t=m.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(m.value[t].url),m.value.splice(t,1))}function U(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function W(e){return e.startsWith(`image/`)}return(n,r)=>(s(),i(`div`,it,[m.value.length>0?(s(),i(`div`,at,[(s(!0),i(N,null,A(m.value,e=>(s(),i(`div`,{key:e.id,class:D([`attachment-preview`,{image:W(e.type)}])},[W(e.type)?(s(),i(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,ot)):(s(),i(`div`,st,[r[2]||=M(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),M(`polyline`,{points:`14 2 14 8 20 8`})],-1),M(`span`,ct,C(e.name),1),M(`span`,lt,C(U(e.size)),1)])),M(`button`,{class:`attachment-remove`,onClick:t=>H(e.id)},[...r[3]||=[M(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),M(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,ut)],2))),128))])):a(``,!0),M(`div`,{class:D([`input-wrapper`,{"drag-over":h.value}]),onDragover:O,onDragenter:j,onDragleave:F,onDrop:I},[M(`input`,{ref_key:`fileInputRef`,ref:f,type:`file`,multiple:``,class:`file-input-hidden`,onChange:S},null,544),e(M(`textarea`,{ref_key:`textareaRef`,ref:u,"onUpdate:modelValue":r[0]||=e=>l.value=e,class:`input-textarea`,placeholder:k(c)(`chat.inputPlaceholder`),rows:`1`,onKeydown:B,onCompositionstart:R,onCompositionend:ee,onInput:V,onPaste:w},null,40,dt),[[E,l.value]]),M(`div`,ft,[t(k(Ce),{trigger:`hover`},{trigger:d(()=>[t(k($),{quaternary:``,size:`small`,onClick:x,circle:``},{icon:d(()=>[...r[4]||=[M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`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:d(()=>[T(` `+C(k(c)(`chat.attachFiles`)),1)]),_:1}),k(o).isStreaming?(s(),p(k($),{key:0,size:`small`,type:`error`,onClick:r[1]||=e=>k(o).stopStreaming()},{default:d(()=>[T(C(k(c)(`chat.stop`)),1)]),_:1})):a(``,!0),t(k($),{size:`small`,type:`primary`,disabled:!v.value||k(o).isStreaming,onClick:L},{icon:d(()=>[...r[5]||=[M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),M(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})],-1)]]),default:d(()=>[T(` `+C(k(c)(`chat.send`)),1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-474a732e`]]),mt={key:1,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},ht={class:`tool-name`},gt={key:2,class:`tool-preview`},_t={key:3,class:`tool-spinner`},vt={key:4,class:`tool-error-badge`},yt={key:0,class:`tool-details`},bt={key:0,class:`tool-detail-section`},xt={class:`tool-detail-label`},St={class:`tool-detail-code`},Ct={key:1,class:`tool-detail-section`},wt={class:`tool-detail-label`},Tt={class:`tool-detail-code`},Et={key:1,class:`msg-body`},Dt={key:0,src:I,alt:`Hermes`,class:`msg-avatar`},Ot={key:0,class:`msg-attachments`},kt=[`src`,`alt`],At={key:1,class:`msg-attachment-file`},jt={class:`att-name`},Mt={class:`att-size`},Nt={key:2,class:`streaming-dots`},Pt={class:`message-time`},Ft=F(w({__name:`MessageItem`,props:{message:{}},setup(e){let t=e,{t:n}=P(),o=r(()=>t.message.role===`system`),c=y(!1),l=r(()=>new Date(t.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function u(e){return e.startsWith(`image/`)}function d(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}let f=r(()=>(t.message.attachments?.length??0)>0),m=r(()=>!!(t.message.toolArgs||t.message.toolResult)),h=r(()=>{if(!t.message.toolArgs)return``;try{return JSON.stringify(JSON.parse(t.message.toolArgs),null,2)}catch{return t.message.toolArgs}}),g=r(()=>{if(!t.message.toolResult)return``;try{let e=JSON.parse(t.message.toolResult),r=JSON.stringify(e,null,2);return r.length>2e3?r.slice(0,2e3)+`
125
+ `)])]),tt={animated:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},size:String,inverted:Boolean,placement:{type:String,default:`bottom`},onSelect:[Function,Array],options:{type:Array,default:()=>[]},menuProps:Function,showArrow:Boolean,renderLabel:Function,renderIcon:Function,renderOption:Function,nodeProps:Function,labelField:{type:String,default:`label`},keyField:{type:String,default:`key`},childrenField:{type:String,default:`children`},value:[String,Number]},nt=Object.keys(ce),rt=w({name:`Dropdown`,inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},ce),tt),B.props),setup(e){let t=y(!1),n=ye(x(e,`show`),t),i=r(()=>{let{keyField:t,childrenField:n}=e;return he(e.options,{getKey(e){return e[t]},getDisabled(e){return e.disabled===!0},getIgnored(e){return e.type===`divider`||e.type===`render`},getChildren(e){return e[n]}})}),a=r(()=>i.value.treeNodes),o=y(null),s=y(null),l=y(null),u=r(()=>o.value??s.value??l.value??null),d=r(()=>i.value.getPath(u.value).keyPath),f=r(()=>i.value.getPath(e.value).keyPath),p=U(()=>e.keyboard&&n.value);Ae({keydown:{ArrowUp:{prevent:!0,handler:O},ArrowRight:{prevent:!0,handler:D},ArrowDown:{prevent:!0,handler:k},ArrowLeft:{prevent:!0,handler:E},Enter:{prevent:!0,handler:A},Escape:T}},p);let{mergedClsPrefixRef:m,inlineThemeDisabled:h,mergedComponentPropsRef:g}=L(e),v=r(()=>e.size||g?.value?.Dropdown?.size||`medium`),b=B(`Dropdown`,`-dropdown`,et,Ie,e,m);c(Re,{labelFieldRef:x(e,`labelField`),childrenFieldRef:x(e,`childrenField`),renderLabelRef:x(e,`renderLabel`),renderIconRef:x(e,`renderIcon`),hoverKeyRef:o,keyboardKeyRef:s,lastToggledSubmenuKeyRef:l,pendingKeyPathRef:d,activeKeyPathRef:f,animatedRef:x(e,`animated`),mergedShowRef:n,nodePropsRef:x(e,`nodeProps`),renderOptionRef:x(e,`renderOption`),menuPropsRef:x(e,`menuProps`),doSelect:S,doUpdateShow:C}),_(n,t=>{!e.animated&&!t&&w()});function S(t,n){let{onSelect:r}=e;r&&q(r,t,n)}function C(n){let{"onUpdate:show":r,onUpdateShow:i}=e;r&&q(r,n),i&&q(i,n),t.value=n}function w(){o.value=null,s.value=null,l.value=null}function T(){C(!1)}function E(){M(`left`)}function D(){M(`right`)}function O(){M(`up`)}function k(){M(`down`)}function A(){let e=j();e?.isLeaf&&n.value&&(S(e.key,e.rawNode),C(!1))}function j(){let{value:e}=i,{value:t}=u;return!e||t===null?null:e.getNode(t)??null}function M(e){let{value:t}=u,{value:{getFirstAvailableNode:n}}=i,r=null;if(t===null){let e=n();e!==null&&(r=e.key)}else{let t=j();if(t){let n;switch(e){case`down`:n=t.getNext();break;case`up`:n=t.getPrev();break;case`right`:n=t.getChild();break;case`left`:n=t.getParent();break}n&&(r=n.key)}}r!==null&&(o.value=null,s.value=r)}let N=r(()=>{let{inverted:t}=e,n=v.value,{common:{cubicBezierEaseInOut:r},self:i}=b.value,{padding:a,dividerColor:o,borderRadius:s,optionOpacityDisabled:c,[H(`optionIconSuffixWidth`,n)]:l,[H(`optionSuffixWidth`,n)]:u,[H(`optionIconPrefixWidth`,n)]:d,[H(`optionPrefixWidth`,n)]:f,[H(`fontSize`,n)]:p,[H(`optionHeight`,n)]:m,[H(`optionIconSize`,n)]:h}=i,g={"--n-bezier":r,"--n-font-size":p,"--n-padding":a,"--n-border-radius":s,"--n-option-height":m,"--n-option-prefix-width":f,"--n-option-icon-prefix-width":d,"--n-option-suffix-width":u,"--n-option-icon-suffix-width":l,"--n-option-icon-size":h,"--n-divider-color":o,"--n-option-opacity-disabled":c};return t?(g[`--n-color`]=i.colorInverted,g[`--n-option-color-hover`]=i.optionColorHoverInverted,g[`--n-option-color-active`]=i.optionColorActiveInverted,g[`--n-option-text-color`]=i.optionTextColorInverted,g[`--n-option-text-color-hover`]=i.optionTextColorHoverInverted,g[`--n-option-text-color-active`]=i.optionTextColorActiveInverted,g[`--n-option-text-color-child-active`]=i.optionTextColorChildActiveInverted,g[`--n-prefix-color`]=i.prefixColorInverted,g[`--n-suffix-color`]=i.suffixColorInverted,g[`--n-group-header-text-color`]=i.groupHeaderTextColorInverted):(g[`--n-color`]=i.color,g[`--n-option-color-hover`]=i.optionColorHover,g[`--n-option-color-active`]=i.optionColorActive,g[`--n-option-text-color`]=i.optionTextColor,g[`--n-option-text-color-hover`]=i.optionTextColorHover,g[`--n-option-text-color-active`]=i.optionTextColorActive,g[`--n-option-text-color-child-active`]=i.optionTextColorChildActive,g[`--n-prefix-color`]=i.prefixColor,g[`--n-suffix-color`]=i.suffixColor,g[`--n-group-header-text-color`]=i.groupHeaderTextColor),g}),P=h?re(`dropdown`,r(()=>`${v.value[0]}${e.inverted?`i`:``}`),N,e):void 0;return{mergedClsPrefix:m,mergedTheme:b,mergedSize:v,tmNodes:a,mergedShow:n,handleAfterLeave:()=>{e.animated&&w()},doUpdateShow:C,cssVars:h?void 0:N,themeClass:P?.themeClass,onRender:P?.onRender}},render(){let e=(e,t,n,r,i)=>{var a;let{mergedClsPrefix:o,menuProps:s}=this;(a=this.onRender)==null||a.call(this);let c=s?.(void 0,this.tmNodes.map(e=>e.rawNode))||{},d={ref:Me(t),class:[e,`${o}-dropdown`,`${o}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:o,tmNodes:this.tmNodes,style:[...n,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:r,onMouseleave:i};return u($e,l(this.$attrs,d,c))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return u(de,Object.assign({},le(this.$props,nt),n),{trigger:()=>{var e;return(e=this.$slots).default?.call(e)}})}}),it={class:`chat-input-area`},at={key:0,class:`attachment-previews`},ot=[`src`,`alt`],st={key:1,class:`attachment-file`},ct={class:`file-name`},lt={class:`file-size`},ut=[`onClick`],dt=[`placeholder`],ft={class:`input-actions`},pt=F(w({__name:`ChatInput`,setup(n){let o=De(),{t:c}=P(),l=y(``),u=y(),f=y(),m=y([]),h=y(!1),g=y(0),_=y(!1),v=r(()=>l.value.trim()||m.value.length>0);function b(e){if(m.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);m.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function x(){f.value?.click()}function S(e){let t=e.target;if(t.files){for(let e of t.files)b(e);t.value=``}}function w(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`;b(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function O(e){e.preventDefault()}function j(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(g.value++,h.value=!0)}function F(){g.value--,g.value<=0&&(g.value=0,h.value=!1)}function I(e){e.preventDefault(),g.value=0,h.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)b(e);u.value?.focus()}}function L(){let e=l.value.trim();!e&&m.value.length===0||(o.sendMessage(e,m.value.length>0?m.value:void 0),l.value=``,m.value=[],u.value&&(u.value.style.height=`auto`))}function R(){_.value=!0}function ee(){requestAnimationFrame(()=>{_.value=!1})}function z(e){return _.value||e.isComposing||e.keyCode===229}function B(e){e.key!==`Enter`||e.shiftKey||z(e)||(e.preventDefault(),L())}function V(e){let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,100)+`px`}function H(e){let t=m.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(m.value[t].url),m.value.splice(t,1))}function U(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function W(e){return e.startsWith(`image/`)}return(n,r)=>(s(),i(`div`,it,[m.value.length>0?(s(),i(`div`,at,[(s(!0),i(N,null,A(m.value,e=>(s(),i(`div`,{key:e.id,class:D([`attachment-preview`,{image:W(e.type)}])},[W(e.type)?(s(),i(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,ot)):(s(),i(`div`,st,[r[2]||=M(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),M(`polyline`,{points:`14 2 14 8 20 8`})],-1),M(`span`,ct,C(e.name),1),M(`span`,lt,C(U(e.size)),1)])),M(`button`,{class:`attachment-remove`,onClick:t=>H(e.id)},[...r[3]||=[M(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),M(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,ut)],2))),128))])):a(``,!0),M(`div`,{class:D([`input-wrapper`,{"drag-over":h.value}]),onDragover:O,onDragenter:j,onDragleave:F,onDrop:I},[M(`input`,{ref_key:`fileInputRef`,ref:f,type:`file`,multiple:``,class:`file-input-hidden`,onChange:S},null,544),e(M(`textarea`,{ref_key:`textareaRef`,ref:u,"onUpdate:modelValue":r[0]||=e=>l.value=e,class:`input-textarea`,placeholder:k(c)(`chat.inputPlaceholder`),rows:`1`,onKeydown:B,onCompositionstart:R,onCompositionend:ee,onInput:V,onPaste:w},null,40,dt),[[E,l.value]]),M(`div`,ft,[t(k(Ce),{trigger:`hover`},{trigger:d(()=>[t(k($),{quaternary:``,size:`small`,onClick:x,circle:``},{icon:d(()=>[...r[4]||=[M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`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:d(()=>[T(` `+C(k(c)(`chat.attachFiles`)),1)]),_:1}),k(o).isStreaming?(s(),p(k($),{key:0,size:`small`,type:`error`,onClick:r[1]||=e=>k(o).stopStreaming()},{default:d(()=>[T(C(k(c)(`chat.stop`)),1)]),_:1})):a(``,!0),t(k($),{size:`small`,type:`primary`,disabled:!v.value||k(o).isStreaming,onClick:L},{icon:d(()=>[...r[5]||=[M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),M(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})],-1)]]),default:d(()=>[T(` `+C(k(c)(`chat.send`)),1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-f14d2174`]]),mt={key:1,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},ht={class:`tool-name`},gt={key:2,class:`tool-preview`},_t={key:3,class:`tool-spinner`},vt={key:4,class:`tool-error-badge`},yt={key:0,class:`tool-details`},bt={key:0,class:`tool-detail-section`},xt={class:`tool-detail-label`},St={class:`tool-detail-code`},Ct={key:1,class:`tool-detail-section`},wt={class:`tool-detail-label`},Tt={class:`tool-detail-code`},Et={key:1,class:`msg-body`},Dt={key:0,src:I,alt:`Hermes`,class:`msg-avatar`},Ot={key:0,class:`msg-attachments`},kt=[`src`,`alt`],At={key:1,class:`msg-attachment-file`},jt={class:`att-name`},Mt={class:`att-size`},Nt={key:2,class:`streaming-dots`},Pt={class:`message-time`},Ft=F(w({__name:`MessageItem`,props:{message:{}},setup(e){let t=e,{t:n}=P(),o=r(()=>t.message.role===`system`),c=y(!1),l=r(()=>new Date(t.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function u(e){return e.startsWith(`image/`)}function d(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}let f=r(()=>(t.message.attachments?.length??0)>0),m=r(()=>!!(t.message.toolArgs||t.message.toolResult)),h=r(()=>{if(!t.message.toolArgs)return``;try{return JSON.stringify(JSON.parse(t.message.toolArgs),null,2)}catch{return t.message.toolArgs}}),g=r(()=>{if(!t.message.toolResult)return``;try{let e=JSON.parse(t.message.toolResult),r=JSON.stringify(e,null,2);return r.length>2e3?r.slice(0,2e3)+`
126
126
  `+n(`chat.truncated`):r}catch{let e=t.message.toolResult;return e.length>2e3?e.slice(0,2e3)+`
127
- `+n(`chat.truncated`):e}});return(t,r)=>(s(),i(`div`,{class:D([`message`,[e.message.role]])},[e.message.role===`tool`?(s(),i(N,{key:0},[M(`div`,{class:D([`tool-line`,{expandable:m.value}]),onClick:r[0]||=e=>m.value&&(c.value=!c.value)},[m.value?(s(),i(`svg`,{key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:D([`tool-chevron`,{rotated:c.value}])},[...r[1]||=[M(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)):(s(),i(`svg`,mt,[...r[2]||=[M(`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)]])),M(`span`,ht,C(e.message.toolName),1),e.message.toolPreview&&!c.value?(s(),i(`span`,gt,C(e.message.toolPreview),1)):a(``,!0),e.message.toolStatus===`running`?(s(),i(`span`,_t)):a(``,!0),e.message.toolStatus===`error`?(s(),i(`span`,vt,C(k(n)(`chat.error`)),1)):a(``,!0)],2),c.value&&m.value?(s(),i(`div`,yt,[h.value?(s(),i(`div`,bt,[M(`div`,xt,C(k(n)(`chat.arguments`)),1),M(`pre`,St,C(h.value),1)])):a(``,!0),g.value?(s(),i(`div`,Ct,[M(`div`,wt,C(k(n)(`chat.result`)),1),M(`pre`,Tt,C(g.value),1)])):a(``,!0)])):a(``,!0)],64)):(s(),i(`div`,Et,[e.message.role===`assistant`?(s(),i(`img`,Dt)):a(``,!0),M(`div`,{class:D([`msg-content`,e.message.role])},[M(`div`,{class:D([`message-bubble`,{system:o.value}])},[f.value?(s(),i(`div`,Ot,[(s(!0),i(N,null,A(e.message.attachments,e=>(s(),i(`div`,{key:e.id,class:D([`msg-attachment`,{image:u(e.type)}])},[u(e.type)&&e.url?(s(),i(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,kt)):(s(),i(`div`,At,[r[3]||=M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),M(`polyline`,{points:`14 2 14 8 20 8`})],-1),M(`span`,jt,C(e.name),1),M(`span`,Mt,C(d(e.size)),1)]))],2))),128))])):a(``,!0),e.message.content?(s(),p(ke,{key:1,content:e.message.content},null,8,[`content`])):a(``,!0),e.message.isStreaming&&!e.message.content?(s(),i(`span`,Nt,[...r[4]||=[M(`span`,null,null,-1),M(`span`,null,null,-1),M(`span`,null,null,-1)]])):a(``,!0)],2),M(`div`,Pt,C(l.value),1)],2)]))],2))}}),[[`__scopeId`,`data-v-6d591bdc`]]),It=`/assets/thinking-Cwsva50h.mp4`,Lt={key:0,class:`empty-state`},Rt={key:0,class:`streaming-indicator`},zt=[`src`],Bt={key:0,class:`tool-calls-panel`},Vt={class:`tool-call-name`},Ht={key:0,class:`tool-call-preview`},Ut={key:1,class:`tool-call-spinner`},Wt={key:2,class:`tool-call-error`},Gt=F(w({__name:`MessageList`,setup(e){let n=De(),{t:o}=P(),c=y(),l=r(()=>n.messages.filter(e=>e.role!==`tool`)),u=r(()=>{let e=n.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 m(){f(()=>{c.value&&(c.value.scrollTop=c.value.scrollHeight)})}return _(()=>n.messages.length,m),_(()=>n.messages[n.messages.length-1]?.content,m),_(()=>n.isStreaming,e=>{e&&m()}),_(u,m),(e,r)=>(s(),i(`div`,{ref_key:`listRef`,ref:c,class:`message-list`},[k(n).messages.length===0?(s(),i(`div`,Lt,[r[0]||=M(`img`,{src:`/logo.png`,alt:`Hermes`,class:`empty-logo`},null,-1),M(`p`,null,C(k(o)(`chat.emptyState`)),1)])):a(``,!0),(s(!0),i(N,null,A(l.value,e=>(s(),p(Ft,{key:e.id,message:e},null,8,[`message`]))),128)),t(b,{name:`fade`},{default:d(()=>[k(n).isStreaming?(s(),i(`div`,Rt,[M(`video`,{src:k(It),autoplay:``,loop:``,muted:``,playsinline:``,class:`thinking-video`},null,8,zt),u.value.length>0?(s(),i(`div`,Bt,[(s(!0),i(N,null,A(u.value,e=>(s(),i(`div`,{key:e.id,class:`tool-call-item`},[r[1]||=M(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-call-icon`},[M(`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),M(`span`,Vt,C(e.toolName),1),e.toolPreview?(s(),i(`span`,Ht,C(e.toolPreview),1)):a(``,!0),e.toolStatus===`running`?(s(),i(`span`,Ut)):a(``,!0),e.toolStatus===`error`?(s(),i(`span`,Wt,C(k(o)(`chat.error`)),1)):a(``,!0)]))),128))])):a(``,!0)])):a(``,!0)]),_:1})],512))}}),[[`__scopeId`,`data-v-21c7a8d2`]]),Kt={class:`chat-panel`},qt={class:`session-list-header`},Jt={key:0,class:`session-list-title`},Yt={class:`session-list-actions`},Xt={key:0,class:`session-items`},Zt={key:0,class:`session-loading`},Qt={key:1,class:`session-empty`},$t=[`onClick`],en={class:`session-group-label`},tn={class:`session-group-count`},nn=[`onClick`,`onContextmenu`],rn={class:`session-item-content`},an={class:`session-item-title`},on={class:`session-item-meta`},sn={key:0,class:`session-item-model`},cn={class:`session-item-time`},ln={class:`chat-main`},un={class:`chat-header`},dn={class:`header-left`},fn={class:`header-session-title`},pn={key:0,class:`source-badge`},mn={class:`header-actions`},hn={key:0,class:`context-info`},gn=F(w({__name:`ChatPanel`,setup(e){let n=De(),o=we(),{t:c}=P(),l=y(!0),u=null;function h(e){n.switchSession(e),u?.matches&&(l.value=!1)}function b(e){e.matches&&l.value&&(l.value=!1)}m(()=>{u=window.matchMedia(`(max-width: 768px)`),b(u),u.addEventListener(`change`,b)}),g(()=>{u?.removeEventListener(`change`,b)});let x=y(!1),w=y(``),E=y(null),O=y(null),j=y(new Set(JSON.parse(localStorage.getItem(`hermes_collapsed_groups`)||`[]`))),F={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 I(e){return e?F[e]||e:``}function L(e){return e===`api_server`?-1:e===`cron`?999:0}let R=r(()=>{let e=[...n.sessions].sort((e,t)=>t.createdAt-e.createdAt),t=new Map;for(let n of e){let e=n.source||``;t.has(e)||t.set(e,[]),t.get(e).push(n)}return[...t.keys()].sort((e,t)=>{let n=L(e),r=L(t);return n===r?e.localeCompare(t):n-r}).map(e=>({source:e,label:e?I(e):c(`chat.other`),sessions:t.get(e)}))});function ee(e){if(!j.value.has(e))j.value=new Set([...j.value,e]);else{j.value=new Set(R.value.map(e=>e.source).filter(t=>t!==e));let t=R.value.find(t=>t.source===e);t?.sessions.length&&n.switchSession(t.sessions[0].id)}localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...j.value]))}_(R,e=>{if(localStorage.getItem(`hermes_collapsed_groups`)!==null){let e=n.activeSession?.source;e&&j.value.has(e)&&(j.value=new Set([...j.value].filter(t=>t!==e)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...j.value])));return}j.value=new Set(e.slice(1).map(e=>e.source)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...j.value]))},{once:!0});let z=r(()=>n.activeSession?.title||c(`chat.newChat`)),B=r(()=>(n.activeSession?.inputTokens??0)+(n.activeSession?.outputTokens??0)),V={"claude-opus-4":2e5,"claude-sonnet-4":2e5,"claude-haiku-4":2e5,"claude-3.5-sonnet":2e5,"claude-3.5-haiku":2e5,"claude-3-opus":2e5,"claude-3-sonnet":2e5,"claude-3-haiku":2e5,"gpt-4o":128e3,"gpt-4o-mini":128e3,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385,o1:2e5,"o1-mini":128e3,o3:2e5,"o3-mini":2e5,"o4-mini":2e5,"deepseek-chat":65536,"deepseek-reasoner":65536,"gemini-2.5-pro":1e6,"gemini-2.5-flash":1e6,"gemini-2.0-flash":1e6,"glm-4-plus":128e3,"glm-4":128e3,"qwen-max":128e3,"qwen-plus":128e3,"qwen-turbo":128e3},H=r(()=>{let e=n.activeSession?.model||``;for(let[t,n]of Object.entries(V))if(e.includes(t))return n;return null});function U(e){return e>=1e6?(e/1e6).toFixed(1)+`M`:e>=1e3?(e/1e3).toFixed(1)+`k`:String(e)}let W=r(()=>n.activeSession?.source||``);function G(){n.newChat()}function K(e){let t=e||n.activeSessionId;t&&(navigator.clipboard.writeText(t),o.success(c(`common.copied`)))}function q(e){n.deleteSession(e),o.success(c(`chat.sessionDeleted`))}function te(e){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`})}let ne=r(()=>[{label:c(`chat.rename`),key:`rename`},{label:c(`chat.copySessionId`),key:`copy-id`}]),J=y(null);function re(e,t){e.preventDefault(),J.value=t,Y.value=!0,ie.value=e.clientX,X.value=e.clientY}let Y=y(!1),ie=y(0),X=y(0);function ae(e){if(Y.value=!1,J.value){if(e===`copy-id`)K(J.value);else if(e===`rename`){let e=n.sessions.find(e=>e.id===J.value);E.value=J.value,w.value=e?.title||``,x.value=!0,f(()=>{O.value?.focus()})}}}function oe(){Y.value=!1}async function se(){if(!(!E.value||!w.value.trim())){if(await Oe(E.value,w.value.trim())){let e=n.sessions.find(e=>e.id===E.value);e&&(e.title=w.value.trim()),n.activeSession?.id===E.value&&(n.activeSession.title=w.value.trim()),o.success(c(`chat.renamed`))}else o.error(c(`chat.renameFailed`));x.value=!1}}return(e,r)=>(s(),i(`div`,Kt,[M(`div`,{class:D([`session-backdrop`,{active:l.value}]),onClick:r[0]||=e=>l.value=!1},null,2),M(`aside`,{class:D([`session-list`,{collapsed:!l.value}])},[M(`div`,qt,[l.value?(s(),i(`span`,Jt,C(k(c)(`chat.sessions`)),1)):a(``,!0),M(`div`,Yt,[M(`button`,{class:`session-close-btn`,onClick:r[1]||=e=>l.value=!1},[...r[7]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),M(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]]),t(k($),{quaternary:``,size:`tiny`,onClick:G,circle:``},{icon:d(()=>[...r[8]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),M(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),_:1})])]),l.value?(s(),i(`div`,Xt,[k(n).isLoadingSessions&&k(n).sessions.length===0?(s(),i(`div`,Zt,C(k(c)(`common.loading`)),1)):k(n).sessions.length===0?(s(),i(`div`,Qt,C(k(c)(`chat.noSessions`)),1)):a(``,!0),(s(!0),i(N,null,A(R.value,e=>(s(),i(N,{key:e.source},[M(`div`,{class:`session-group-header`,onClick:t=>ee(e.source)},[(s(),i(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:D([`group-chevron`,{collapsed:j.value.has(e.source)}])},[...r[9]||=[M(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)),M(`span`,en,C(e.label),1),M(`span`,tn,C(e.sessions.length),1)],8,$t),j.value.has(e.source)?a(``,!0):(s(!0),i(N,{key:0},A(e.sessions,e=>(s(),i(`button`,{key:e.id,class:D([`session-item`,{active:e.id===k(n).activeSessionId}]),onClick:t=>h(e.id),onContextmenu:t=>re(t,e.id)},[M(`div`,rn,[M(`span`,an,C(e.title),1),M(`span`,on,[e.model?(s(),i(`span`,sn,C(e.model),1)):a(``,!0),M(`span`,cn,C(te(e.createdAt)),1)])]),e.id!==k(n).activeSessionId||k(n).sessions.length>1?(s(),p(k(Te),{key:0,onPositiveClick:t=>q(e.id)},{trigger:d(()=>[M(`button`,{class:`session-item-delete`,onClick:r[2]||=v(()=>{},[`stop`])},[...r[10]||=[M(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),M(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]])]),default:d(()=>[T(` `+C(k(c)(`chat.deleteSession`)),1)]),_:1},8,[`onPositiveClick`])):a(``,!0)],42,nn))),128))],64))),128))])):a(``,!0)],2),t(k(rt),{placement:`bottom-start`,trigger:`manual`,x:ie.value,y:X.value,options:ne.value,show:Y.value,onSelect:ae,onClickoutside:oe},null,8,[`x`,`y`,`options`,`show`]),t(k(xe),{show:x.value,"onUpdate:show":r[4]||=e=>x.value=e,preset:`dialog`,title:k(c)(`chat.renameSession`),"positive-text":k(c)(`common.ok`),"negative-text":k(c)(`common.cancel`),onPositiveClick:se},{default:d(()=>[t(k(Se),{ref_key:`renameInputRef`,ref:O,value:w.value,"onUpdate:value":r[3]||=e=>w.value=e,placeholder:k(c)(`chat.enterNewTitle`),onKeydown:S(se,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`show`,`title`,`positive-text`,`negative-text`]),M(`div`,ln,[M(`header`,un,[M(`div`,dn,[t(k($),{quaternary:``,size:`small`,onClick:r[5]||=e=>l.value=!l.value,circle:``},{icon:d(()=>[...r[11]||=[M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`}),M(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`}),M(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`}),M(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`})],-1)]]),_:1}),M(`span`,fn,C(z.value),1),W.value?(s(),i(`span`,pn,C(I(W.value)),1)):a(``,!0)]),M(`div`,mn,[t(k(Ce),{trigger:`hover`},{trigger:d(()=>[t(k($),{quaternary:``,size:`small`,onClick:r[6]||=e=>K(),circle:``},{icon:d(()=>[...r[12]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),M(`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:d(()=>[T(` `+C(k(c)(`chat.copySessionId`)),1)]),_:1}),t(k($),{size:`small`,onClick:G},{icon:d(()=>[...r[13]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),M(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:d(()=>[T(` `+C(k(c)(`chat.newChat`)),1)]),_:1})])]),t(Gt),H.value===null?a(``,!0):(s(),i(`div`,hn,[M(`span`,null,C(U(B.value))+` / `+C(U(H.value)),1)])),t(pt)])]))}}),[[`__scopeId`,`data-v-db5d0963`]]),_n={class:`chat-view`},vn=F(w({__name:`ChatView`,setup(e){let n=Ee(),r=De();return m(()=>{n.loadModels(),r.loadSessions()}),(e,n)=>(s(),i(`div`,_n,[t(gn)]))}}),[[`__scopeId`,`data-v-9db9ee3f`]]);export{vn as default};
127
+ `+n(`chat.truncated`):e}});return(t,r)=>(s(),i(`div`,{class:D([`message`,[e.message.role]])},[e.message.role===`tool`?(s(),i(N,{key:0},[M(`div`,{class:D([`tool-line`,{expandable:m.value}]),onClick:r[0]||=e=>m.value&&(c.value=!c.value)},[m.value?(s(),i(`svg`,{key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:D([`tool-chevron`,{rotated:c.value}])},[...r[1]||=[M(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)):(s(),i(`svg`,mt,[...r[2]||=[M(`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)]])),M(`span`,ht,C(e.message.toolName),1),e.message.toolPreview&&!c.value?(s(),i(`span`,gt,C(e.message.toolPreview),1)):a(``,!0),e.message.toolStatus===`running`?(s(),i(`span`,_t)):a(``,!0),e.message.toolStatus===`error`?(s(),i(`span`,vt,C(k(n)(`chat.error`)),1)):a(``,!0)],2),c.value&&m.value?(s(),i(`div`,yt,[h.value?(s(),i(`div`,bt,[M(`div`,xt,C(k(n)(`chat.arguments`)),1),M(`pre`,St,C(h.value),1)])):a(``,!0),g.value?(s(),i(`div`,Ct,[M(`div`,wt,C(k(n)(`chat.result`)),1),M(`pre`,Tt,C(g.value),1)])):a(``,!0)])):a(``,!0)],64)):(s(),i(`div`,Et,[e.message.role===`assistant`?(s(),i(`img`,Dt)):a(``,!0),M(`div`,{class:D([`msg-content`,e.message.role])},[M(`div`,{class:D([`message-bubble`,{system:o.value}])},[f.value?(s(),i(`div`,Ot,[(s(!0),i(N,null,A(e.message.attachments,e=>(s(),i(`div`,{key:e.id,class:D([`msg-attachment`,{image:u(e.type)}])},[u(e.type)&&e.url?(s(),i(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,kt)):(s(),i(`div`,At,[r[3]||=M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),M(`polyline`,{points:`14 2 14 8 20 8`})],-1),M(`span`,jt,C(e.name),1),M(`span`,Mt,C(d(e.size)),1)]))],2))),128))])):a(``,!0),e.message.content?(s(),p(ke,{key:1,content:e.message.content},null,8,[`content`])):a(``,!0),e.message.isStreaming&&!e.message.content?(s(),i(`span`,Nt,[...r[4]||=[M(`span`,null,null,-1),M(`span`,null,null,-1),M(`span`,null,null,-1)]])):a(``,!0)],2),M(`div`,Pt,C(l.value),1)],2)]))],2))}}),[[`__scopeId`,`data-v-43dbb43d`]]),It=`/assets/thinking-Cwsva50h.mp4`,Lt={key:0,class:`empty-state`},Rt={key:0,class:`streaming-indicator`},zt=[`src`],Bt={key:0,class:`tool-calls-panel`},Vt={class:`tool-call-name`},Ht={key:0,class:`tool-call-preview`},Ut={key:1,class:`tool-call-spinner`},Wt={key:2,class:`tool-call-error`},Gt=F(w({__name:`MessageList`,setup(e){let n=De(),{t:o}=P(),c=y(),l=r(()=>n.messages.filter(e=>e.role!==`tool`)),u=r(()=>{let e=n.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 m(){f(()=>{c.value&&(c.value.scrollTop=c.value.scrollHeight)})}return _(()=>n.messages.length,m),_(()=>n.messages[n.messages.length-1]?.content,m),_(()=>n.isStreaming,e=>{e&&m()}),_(u,m),(e,r)=>(s(),i(`div`,{ref_key:`listRef`,ref:c,class:`message-list`},[k(n).messages.length===0?(s(),i(`div`,Lt,[r[0]||=M(`img`,{src:`/logo.png`,alt:`Hermes`,class:`empty-logo`},null,-1),M(`p`,null,C(k(o)(`chat.emptyState`)),1)])):a(``,!0),(s(!0),i(N,null,A(l.value,e=>(s(),p(Ft,{key:e.id,message:e},null,8,[`message`]))),128)),t(b,{name:`fade`},{default:d(()=>[k(n).isStreaming?(s(),i(`div`,Rt,[M(`video`,{src:k(It),autoplay:``,loop:``,muted:``,playsinline:``,class:`thinking-video`},null,8,zt),u.value.length>0?(s(),i(`div`,Bt,[(s(!0),i(N,null,A(u.value,e=>(s(),i(`div`,{key:e.id,class:`tool-call-item`},[r[1]||=M(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-call-icon`},[M(`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),M(`span`,Vt,C(e.toolName),1),e.toolPreview?(s(),i(`span`,Ht,C(e.toolPreview),1)):a(``,!0),e.toolStatus===`running`?(s(),i(`span`,Ut)):a(``,!0),e.toolStatus===`error`?(s(),i(`span`,Wt,C(k(o)(`chat.error`)),1)):a(``,!0)]))),128))])):a(``,!0)])):a(``,!0)]),_:1})],512))}}),[[`__scopeId`,`data-v-62ebd4a4`]]),Kt={class:`chat-panel`},qt={class:`session-list-header`},Jt={key:0,class:`session-list-title`},Yt={class:`session-list-actions`},Xt={key:0,class:`session-items`},Zt={key:0,class:`session-loading`},Qt={key:1,class:`session-empty`},$t=[`onClick`],en={class:`session-group-label`},tn={class:`session-group-count`},nn=[`onClick`,`onContextmenu`],rn={class:`session-item-content`},an={class:`session-item-title`},on={class:`session-item-meta`},sn={key:0,class:`session-item-model`},cn={class:`session-item-time`},ln={class:`chat-main`},un={class:`chat-header`},dn={class:`header-left`},fn={class:`header-session-title`},pn={key:0,class:`source-badge`},mn={class:`header-actions`},hn={key:0,class:`context-info`},gn=F(w({__name:`ChatPanel`,setup(e){let n=De(),o=we(),{t:c}=P(),l=y(!0),u=null;function h(e){n.switchSession(e),u?.matches&&(l.value=!1)}function b(e){e.matches&&l.value&&(l.value=!1)}m(()=>{u=window.matchMedia(`(max-width: 768px)`),b(u),u.addEventListener(`change`,b)}),g(()=>{u?.removeEventListener(`change`,b)});let x=y(!1),w=y(``),E=y(null),O=y(null),j=y(new Set(JSON.parse(localStorage.getItem(`hermes_collapsed_groups`)||`[]`))),F={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 I(e){return e?F[e]||e:``}function L(e){return e===`api_server`?-1:e===`cron`?999:0}let R=r(()=>{let e=[...n.sessions].sort((e,t)=>t.createdAt-e.createdAt),t=new Map;for(let n of e){let e=n.source||``;t.has(e)||t.set(e,[]),t.get(e).push(n)}return[...t.keys()].sort((e,t)=>{let n=L(e),r=L(t);return n===r?e.localeCompare(t):n-r}).map(e=>({source:e,label:e?I(e):c(`chat.other`),sessions:t.get(e)}))});function ee(e){if(!j.value.has(e))j.value=new Set([...j.value,e]);else{j.value=new Set(R.value.map(e=>e.source).filter(t=>t!==e));let t=R.value.find(t=>t.source===e);t?.sessions.length&&n.switchSession(t.sessions[0].id)}localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...j.value]))}_(R,e=>{if(localStorage.getItem(`hermes_collapsed_groups`)!==null){let e=n.activeSession?.source;e&&j.value.has(e)&&(j.value=new Set([...j.value].filter(t=>t!==e)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...j.value])));return}j.value=new Set(e.slice(1).map(e=>e.source)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...j.value]))},{once:!0});let z=r(()=>n.activeSession?.title||c(`chat.newChat`)),B=r(()=>(n.activeSession?.inputTokens??0)+(n.activeSession?.outputTokens??0)),V={"claude-opus-4":2e5,"claude-sonnet-4":2e5,"claude-haiku-4":2e5,"claude-3.5-sonnet":2e5,"claude-3.5-haiku":2e5,"claude-3-opus":2e5,"claude-3-sonnet":2e5,"claude-3-haiku":2e5,"gpt-4o":128e3,"gpt-4o-mini":128e3,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385,o1:2e5,"o1-mini":128e3,o3:2e5,"o3-mini":2e5,"o4-mini":2e5,"deepseek-chat":65536,"deepseek-reasoner":65536,"gemini-2.5-pro":1e6,"gemini-2.5-flash":1e6,"gemini-2.0-flash":1e6,"glm-4-plus":128e3,"glm-4":128e3,"qwen-max":128e3,"qwen-plus":128e3,"qwen-turbo":128e3},H=r(()=>{let e=n.activeSession?.model||``;for(let[t,n]of Object.entries(V))if(e.includes(t))return n;return null});function U(e){return e>=1e6?(e/1e6).toFixed(1)+`M`:e>=1e3?(e/1e3).toFixed(1)+`k`:String(e)}let W=r(()=>n.activeSession?.source||``);function G(){n.newChat()}function K(e){let t=e||n.activeSessionId;t&&(navigator.clipboard.writeText(t),o.success(c(`common.copied`)))}function q(e){n.deleteSession(e),o.success(c(`chat.sessionDeleted`))}function te(e){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`})}let ne=r(()=>[{label:c(`chat.rename`),key:`rename`},{label:c(`chat.copySessionId`),key:`copy-id`}]),J=y(null);function re(e,t){e.preventDefault(),J.value=t,Y.value=!0,ie.value=e.clientX,X.value=e.clientY}let Y=y(!1),ie=y(0),X=y(0);function ae(e){if(Y.value=!1,J.value){if(e===`copy-id`)K(J.value);else if(e===`rename`){let e=n.sessions.find(e=>e.id===J.value);E.value=J.value,w.value=e?.title||``,x.value=!0,f(()=>{O.value?.focus()})}}}function oe(){Y.value=!1}async function se(){if(!(!E.value||!w.value.trim())){if(await Oe(E.value,w.value.trim())){let e=n.sessions.find(e=>e.id===E.value);e&&(e.title=w.value.trim()),n.activeSession?.id===E.value&&(n.activeSession.title=w.value.trim()),o.success(c(`chat.renamed`))}else o.error(c(`chat.renameFailed`));x.value=!1}}return(e,r)=>(s(),i(`div`,Kt,[M(`div`,{class:D([`session-backdrop`,{active:l.value}]),onClick:r[0]||=e=>l.value=!1},null,2),M(`aside`,{class:D([`session-list`,{collapsed:!l.value}])},[M(`div`,qt,[l.value?(s(),i(`span`,Jt,C(k(c)(`chat.sessions`)),1)):a(``,!0),M(`div`,Yt,[M(`button`,{class:`session-close-btn`,onClick:r[1]||=e=>l.value=!1},[...r[7]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),M(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]]),t(k($),{quaternary:``,size:`tiny`,onClick:G,circle:``},{icon:d(()=>[...r[8]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),M(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),_:1})])]),l.value?(s(),i(`div`,Xt,[k(n).isLoadingSessions&&k(n).sessions.length===0?(s(),i(`div`,Zt,C(k(c)(`common.loading`)),1)):k(n).sessions.length===0?(s(),i(`div`,Qt,C(k(c)(`chat.noSessions`)),1)):a(``,!0),(s(!0),i(N,null,A(R.value,e=>(s(),i(N,{key:e.source},[M(`div`,{class:`session-group-header`,onClick:t=>ee(e.source)},[(s(),i(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:D([`group-chevron`,{collapsed:j.value.has(e.source)}])},[...r[9]||=[M(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)),M(`span`,en,C(e.label),1),M(`span`,tn,C(e.sessions.length),1)],8,$t),j.value.has(e.source)?a(``,!0):(s(!0),i(N,{key:0},A(e.sessions,e=>(s(),i(`button`,{key:e.id,class:D([`session-item`,{active:e.id===k(n).activeSessionId}]),onClick:t=>h(e.id),onContextmenu:t=>re(t,e.id)},[M(`div`,rn,[M(`span`,an,C(e.title),1),M(`span`,on,[e.model?(s(),i(`span`,sn,C(e.model),1)):a(``,!0),M(`span`,cn,C(te(e.createdAt)),1)])]),e.id!==k(n).activeSessionId||k(n).sessions.length>1?(s(),p(k(Te),{key:0,onPositiveClick:t=>q(e.id)},{trigger:d(()=>[M(`button`,{class:`session-item-delete`,onClick:r[2]||=v(()=>{},[`stop`])},[...r[10]||=[M(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),M(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]])]),default:d(()=>[T(` `+C(k(c)(`chat.deleteSession`)),1)]),_:1},8,[`onPositiveClick`])):a(``,!0)],42,nn))),128))],64))),128))])):a(``,!0)],2),t(k(rt),{placement:`bottom-start`,trigger:`manual`,x:ie.value,y:X.value,options:ne.value,show:Y.value,onSelect:ae,onClickoutside:oe},null,8,[`x`,`y`,`options`,`show`]),t(k(xe),{show:x.value,"onUpdate:show":r[4]||=e=>x.value=e,preset:`dialog`,title:k(c)(`chat.renameSession`),"positive-text":k(c)(`common.ok`),"negative-text":k(c)(`common.cancel`),onPositiveClick:se},{default:d(()=>[t(k(Se),{ref_key:`renameInputRef`,ref:O,value:w.value,"onUpdate:value":r[3]||=e=>w.value=e,placeholder:k(c)(`chat.enterNewTitle`),onKeydown:S(se,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`show`,`title`,`positive-text`,`negative-text`]),M(`div`,ln,[M(`header`,un,[M(`div`,dn,[t(k($),{quaternary:``,size:`small`,onClick:r[5]||=e=>l.value=!l.value,circle:``},{icon:d(()=>[...r[11]||=[M(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`}),M(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`}),M(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`}),M(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`})],-1)]]),_:1}),M(`span`,fn,C(z.value),1),W.value?(s(),i(`span`,pn,C(I(W.value)),1)):a(``,!0)]),M(`div`,mn,[t(k(Ce),{trigger:`hover`},{trigger:d(()=>[t(k($),{quaternary:``,size:`small`,onClick:r[6]||=e=>K(),circle:``},{icon:d(()=>[...r[12]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[M(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),M(`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:d(()=>[T(` `+C(k(c)(`chat.copySessionId`)),1)]),_:1}),t(k($),{size:`small`,onClick:G},{icon:d(()=>[...r[13]||=[M(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[M(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),M(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:d(()=>[T(` `+C(k(c)(`chat.newChat`)),1)]),_:1})])]),t(Gt),H.value===null?a(``,!0):(s(),i(`div`,hn,[M(`span`,null,C(U(B.value))+` / `+C(U(H.value)),1)])),t(pt)])]))}}),[[`__scopeId`,`data-v-ed1f5b65`]]),_n={class:`chat-view`},vn=F(w({__name:`ChatView`,setup(e){let n=Ee(),r=De();return m(()=>{n.loadModels(),r.loadSessions()}),(e,n)=>(s(),i(`div`,_n,[t(gn)]))}}),[[`__scopeId`,`data-v-8efd7231`]]);export{vn as default};
@@ -0,0 +1 @@
1
+ .chat-input-area[data-v-f14d2174]{border-top:1px solid #e0e0e0;flex-shrink:0;padding:12px 20px 16px}.attachment-previews[data-v-f14d2174]{flex-wrap:wrap;gap:8px;padding:0 0 10px;display:flex}.attachment-preview[data-v-f14d2174]{background-color:#f0f0f0;border:1px solid #e0e0e0;border-radius:6px;position:relative;overflow:hidden}.attachment-preview.image[data-v-f14d2174]{width:64px;height:64px}.attachment-thumb[data-v-f14d2174]{object-fit:cover;width:100%;height:100%}.attachment-file[data-v-f14d2174]{color:#666;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:80px;max-width:140px;padding:8px 12px;display:flex}.attachment-file .file-name[data-v-f14d2174]{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.attachment-file .file-size[data-v-f14d2174]{color:#999;font-size:10px}.attachment-remove[data-v-f14d2174]{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.attachment-preview:hover .attachment-remove[data-v-f14d2174]{opacity:1}.file-input-hidden[data-v-f14d2174]{display:none}.input-wrapper[data-v-f14d2174]{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s;display:flex}.input-wrapper[data-v-f14d2174]:focus-within{border-color:#333}.input-textarea[data-v-f14d2174]{color:#1a1a1a;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-f14d2174]::placeholder{color:#999;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.input-actions[data-v-f14d2174]{flex-shrink:0;align-items:center;gap:6px;display:flex}.input-wrapper.drag-over[data-v-f14d2174]{background-color:#4a90d90a;border-style:dashed;border-color:#4a90d9}.message[data-v-43dbb43d]{flex-direction:column;display:flex}.message.user[data-v-43dbb43d]{align-items:flex-end}.message.user .msg-body[data-v-43dbb43d]{max-width:75%}.message.user .msg-content.user[data-v-43dbb43d]{align-items:flex-end}.message.user .message-bubble[data-v-43dbb43d]{background-color:#e8e8e8;border-radius:10px 10px 4px}.message.assistant[data-v-43dbb43d]{flex-direction:row;align-items:flex-start;gap:8px}.message.assistant .msg-body[data-v-43dbb43d]{max-width:80%}.message.assistant .msg-avatar[data-v-43dbb43d]{flex-shrink:0;width:40px;height:40px;margin-top:2px}.message.assistant .message-bubble[data-v-43dbb43d]{background-color:#f5f5f5;border-radius:10px 10px 10px 4px}.message.tool[data-v-43dbb43d],.message.system[data-v-43dbb43d]{align-items:flex-start}.message.system .message-bubble.system[data-v-43dbb43d]{background-color:#f57f170f;border-left:3px solid #f57f17;border-radius:6px;max-width:80%}.msg-body[data-v-43dbb43d]{align-items:flex-start;gap:8px;max-width:85%;display:flex}.msg-content[data-v-43dbb43d]{flex-direction:column;min-width:0;display:flex}.message-bubble[data-v-43dbb43d]{word-break:break-word;padding:10px 14px;font-size:14px;line-height:1.65}.msg-attachments[data-v-43dbb43d]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.msg-attachment[data-v-43dbb43d]{background-color:#0000000a;border:1px solid #ebebeb;border-radius:6px;overflow:hidden}.msg-attachment.image[data-v-43dbb43d]{max-width:200px}.msg-attachment-thumb[data-v-43dbb43d]{object-fit:contain;max-width:200px;max-height:160px;display:block}.msg-attachment-file[data-v-43dbb43d]{color:#666;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.msg-attachment-file .att-name[data-v-43dbb43d]{white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.msg-attachment-file .att-size[data-v-43dbb43d]{color:#999;flex-shrink:0;font-size:11px}.message-time[data-v-43dbb43d]{color:#999;margin-top:4px;padding:0 4px;font-size:11px}.tool-line[data-v-43dbb43d]{color:#999;border-radius:6px;align-items:center;gap:6px;padding:2px 4px;font-size:11px;display:flex}.tool-line.expandable[data-v-43dbb43d]{cursor:pointer}.tool-line.expandable[data-v-43dbb43d]:hover{background:#00000008}.tool-line .tool-name[data-v-43dbb43d]{flex-shrink:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-line .tool-preview[data-v-43dbb43d]{text-overflow:ellipsis;white-space:nowrap;max-width:400px;overflow:hidden}.tool-chevron[data-v-43dbb43d]{flex-shrink:0;transition:transform .15s}.tool-chevron.rotated[data-v-43dbb43d]{transform:rotate(90deg)}.tool-spinner[data-v-43dbb43d]{border:1.5px solid #999;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite spin-43dbb43d}.tool-error-badge[data-v-43dbb43d]{color:#c62828;background:#c6282814;border-radius:3px;padding:0 4px;font-size:9px;line-height:14px}.tool-details[data-v-43dbb43d]{border-left:2px solid #ebebeb;margin-top:2px;margin-left:16px;padding-left:10px}.tool-detail-section[data-v-43dbb43d]{margin-bottom:6px}.tool-detail-label[data-v-43dbb43d]{color:#999;text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px;font-size:10px;font-weight:600}.tool-detail-code[data-v-43dbb43d]{color:#666;white-space:pre-wrap;word-break:break-all;background:#f4f4f4;border-radius:6px;max-height:300px;margin:0;padding:6px 8px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}@keyframes spin-43dbb43d{to{transform:rotate(360deg)}}.streaming-cursor[data-v-43dbb43d]{vertical-align:text-bottom;background-color:#999;width:2px;height:1em;margin-left:2px;animation:.8s infinite blink-43dbb43d;display:inline-block}.streaming-dots[data-v-43dbb43d]{gap:4px;padding:4px 0;display:flex}.streaming-dots span[data-v-43dbb43d]{background-color:#999;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse-43dbb43d}.streaming-dots span[data-v-43dbb43d]:nth-child(2){animation-delay:.2s}.streaming-dots span[data-v-43dbb43d]:nth-child(3){animation-delay:.4s}@keyframes blink-43dbb43d{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes pulse-43dbb43d{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media (width<=768px){.message.user .msg-body[data-v-43dbb43d],.message.assistant .msg-body[data-v-43dbb43d],.message.system .msg-body[data-v-43dbb43d]{max-width:100%}}.message-list[data-v-62ebd4a4]{background-color:#fff;flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.empty-state[data-v-62ebd4a4]{color:#999;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state .empty-logo[data-v-62ebd4a4]{opacity:.25;width:48px;height:48px}.empty-state p[data-v-62ebd4a4]{font-size:14px}.fade-enter-active[data-v-62ebd4a4],.fade-leave-active[data-v-62ebd4a4]{transition:opacity .4s}.fade-enter-from[data-v-62ebd4a4],.fade-leave-to[data-v-62ebd4a4]{opacity:0}.streaming-indicator[data-v-62ebd4a4]{align-items:flex-start;gap:12px;padding:4px;display:flex}.streaming-indicator .thinking-video[data-v-62ebd4a4]{object-fit:contain;border-radius:10px;flex-shrink:0;width:120px;height:120px}.tool-calls-panel[data-v-62ebd4a4]{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;gap:4px;max-height:120px;padding-top:4px;display:flex;overflow-y:auto}.tool-calls-panel[data-v-62ebd4a4]::-webkit-scrollbar{display:none}.tool-call-item[data-v-62ebd4a4]{color:#666;background:#00000008;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:flex}.tool-call-item .tool-call-icon[data-v-62ebd4a4]{color:#999;flex-shrink:0}.tool-call-item .tool-call-name[data-v-62ebd4a4]{flex-shrink:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-call-item .tool-call-preview[data-v-62ebd4a4]{text-overflow:ellipsis;white-space:nowrap;color:#999;max-width:300px;overflow:hidden}.tool-call-spinner[data-v-62ebd4a4]{border:1.5px solid #999;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite spin-62ebd4a4}.tool-call-error[data-v-62ebd4a4]{color:#c62828;background:#c6282814;border-radius:3px;padding:0 4px;font-size:9px;line-height:14px}@keyframes spin-62ebd4a4{to{transform:rotate(360deg)}}.chat-panel[data-v-ed1f5b65]{height:100%;display:flex;position:relative}.session-list[data-v-ed1f5b65]{border-right:1px solid #e0e0e0;flex-direction:column;flex-shrink:0;width:220px;transition:width .25s,opacity .25s;display:flex;overflow:hidden}.session-list.collapsed[data-v-ed1f5b65]{opacity:0;pointer-events:none;border-right:none;width:0}@media (width<=768px){.session-list[data-v-ed1f5b65]{z-index:10;background:#fff;width:280px;height:100%;position:absolute;top:0;left:0;box-shadow:2px 0 8px #0000001a}.session-list.collapsed[data-v-ed1f5b65]{opacity:0;transform:translate(-100%)}.session-close-btn[data-v-ed1f5b65]{display:flex}.session-backdrop[data-v-ed1f5b65]{z-index:9;opacity:0;pointer-events:none;background:#0006;transition:opacity .15s;position:absolute;inset:0}.session-backdrop.active[data-v-ed1f5b65]{opacity:1;pointer-events:auto}}.session-list-header[data-v-ed1f5b65]{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px;display:flex}.session-list-actions[data-v-ed1f5b65]{align-items:center;gap:4px;display:flex}.session-close-btn[data-v-ed1f5b65]{cursor:pointer;color:#666;background:0 0;border:none;border-radius:6px;padding:4px;display:none}.session-close-btn[data-v-ed1f5b65]:hover{background:#3333330f}.session-list-title[data-v-ed1f5b65]{color:#999;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.session-group-header[data-v-ed1f5b65]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:6px 10px 4px;display:flex}.group-chevron[data-v-ed1f5b65]{flex-shrink:0;transition:transform .15s;transform:rotate(90deg)}.group-chevron.collapsed[data-v-ed1f5b65]{transform:rotate(0)}.session-group-label[data-v-ed1f5b65]{color:#999;text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.session-group-count[data-v-ed1f5b65]{color:#999;font-size:10px;font-weight:400}.session-items[data-v-ed1f5b65]{flex:1;padding:0 6px 12px;overflow-y:auto}.session-loading[data-v-ed1f5b65],.session-empty[data-v-ed1f5b65]{color:#999;text-align:center;padding:16px 10px;font-size:12px}.session-item[data-v-ed1f5b65]{cursor:pointer;text-align:left;color:#666;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;width:100%;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}.session-item[data-v-ed1f5b65]:hover{color:#1a1a1a;background:#3333330f}.session-item:hover .session-item-delete[data-v-ed1f5b65]{opacity:1}.session-item.active[data-v-ed1f5b65]{color:#1a1a1a;background:#3333331a;font-weight:500}.session-item-content[data-v-ed1f5b65]{flex:1;overflow:hidden}.session-item-title[data-v-ed1f5b65]{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.session-item-time[data-v-ed1f5b65]{color:#999;font-size:11px}.session-item-meta[data-v-ed1f5b65]{align-items:center;gap:6px;margin-top:2px;display:flex}.session-item-model[data-v-ed1f5b65]{color:#333;text-overflow:ellipsis;white-space:nowrap;background:#33333314;border-radius:3px;flex-shrink:0;max-width:100px;padding:0 5px;font-size:10px;line-height:16px;overflow:hidden}.session-item-delete[data-v-ed1f5b65]{opacity:.5;color:#999;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px;transition:all .15s}.session-item-delete[data-v-ed1f5b65]:hover{color:#c62828;background:#c628281a}.chat-main[data-v-ed1f5b65]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header[data-v-ed1f5b65]{border-bottom:1px solid #e0e0e0;flex-shrink:0;justify-content:space-between;align-items:center;padding:21px 20px;display:flex}.header-left[data-v-ed1f5b65]{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.header-session-title[data-v-ed1f5b65]{color:#1a1a1a;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.source-badge[data-v-ed1f5b65]{color:#999;white-space:nowrap;background:#9999991f;border-radius:8px;flex-shrink:0;padding:1px 7px;font-size:10px;line-height:16px}.header-actions[data-v-ed1f5b65]{flex-shrink:0;align-items:center;gap:4px;display:flex}.context-info[data-v-ed1f5b65]{color:#999;flex-shrink:0;padding:0 20px 4px;font-size:11px}@media (width<=768px){.chat-header[data-v-ed1f5b65]{padding:16px 12px 16px 52px}.context-info[data-v-ed1f5b65]{padding:0 12px 4px}}.chat-view[data-v-8efd7231]{height:calc(100 * var(--vh));flex-direction:column;display:flex}
@@ -1,4 +1,4 @@
1
- import{N as e,dt as t,j as n}from"./router-CpYvE976.js";import{at as r,l as i,lt as a,ot as o,ut as s}from"./browser-DNwI2j4X.js";import{a as c,o as l}from"./Scrollbar-CA0Mq0os.js";var u=c(`close`,()=>e(`svg`,{viewBox:`0 0 12 12`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":!0},e(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},e(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},e(`path`,{d:`M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z`}))))),d=o(`base-close`,`
1
+ import{N as e,dt as t,j as n}from"./router-COwpqexM.js";import{at as r,l as i,lt as a,ot as o,ut as s}from"./browser-DzAOCZtm.js";import{a as c,o as l}from"./Scrollbar-Bg2FeTtI.js";var u=c(`close`,()=>e(`svg`,{viewBox:`0 0 12 12`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":!0},e(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},e(`g`,{fill:`currentColor`,"fill-rule":`nonzero`},e(`path`,{d:`M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z`}))))),d=o(`base-close`,`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  justify-content: center;
@@ -1,4 +1,4 @@
1
- import{C as e,F as t,K as n,M as r,N as i,U as a,V as o,X as s,ct as c,d as l,dt as u,j as d}from"./router-CpYvE976.js";import{B as f,K as p,L as m,Q as h,Y as g,at as _,c as v,ct as y,dt as b,lt as x,n as S,ot as C,u as w,z as ee}from"./browser-DNwI2j4X.js";import{A as te,a as ne,l as T}from"./Popover-CRZpNb8Q.js";import{n as E}from"./Warning-CmJYhk3M.js";function re(e,n,i){let a=t(e,null);if(a===null)return;let c=r()?.proxy;s(i,l),l(i.value),o(()=>{l(void 0,i.value)});function l(e,t){if(!a)return;let r=a[n];t!==void 0&&u(r,t),e!==void 0&&d(r,e)}function u(e,t){e[t]||(e[t]=[]),e[t].splice(e[t].findIndex(e=>e===c),1)}function d(e,t){e[t]||(e[t]=[]),~e[t].findIndex(e=>e===c)||e[t].push(c)}}var D={feedbackPadding:`4px 0 0 2px`,feedbackHeightSmall:`24px`,feedbackHeightMedium:`24px`,feedbackHeightLarge:`26px`,feedbackFontSizeSmall:`13px`,feedbackFontSizeMedium:`14px`,feedbackFontSizeLarge:`14px`,labelFontSizeLeftSmall:`14px`,labelFontSizeLeftMedium:`14px`,labelFontSizeLeftLarge:`15px`,labelFontSizeTopSmall:`13px`,labelFontSizeTopMedium:`14px`,labelFontSizeTopLarge:`14px`,labelHeightSmall:`24px`,labelHeightMedium:`26px`,labelHeightLarge:`28px`,labelPaddingVertical:`0 0 6px 2px`,labelPaddingHorizontal:`0 12px 0 0`,labelTextAlignVertical:`left`,labelTextAlignHorizontal:`right`,labelFontWeight:`400`};function ie(e){let{heightSmall:t,heightMedium:n,heightLarge:r,textColor1:i,errorColor:a,warningColor:o,lineHeight:s,textColor3:c}=e;return Object.assign(Object.assign({},D),{blankHeightSmall:t,blankHeightMedium:n,blankHeightLarge:r,lineHeight:s,labelTextColor:i,asteriskColor:a,feedbackTextColorError:a,feedbackTextColorWarning:o,feedbackTextColor:c})}var ae={name:`Form`,common:S,self:ie},O=h(`n-form`),oe=h(`n-form-item-insts`),se=C(`form`,[x(`inline`,`
1
+ import{C as e,F as t,K as n,M as r,N as i,U as a,V as o,X as s,ct as c,d as l,dt as u,j as d}from"./router-COwpqexM.js";import{B as f,K as p,L as m,Q as h,Y as g,at as _,c as v,ct as y,dt as b,lt as x,n as S,ot as C,u as w,z as ee}from"./browser-DzAOCZtm.js";import{A as te,a as ne,l as T}from"./Popover-2C1zuptC.js";import{n as E}from"./Warning-t1i_4T5i.js";function re(e,n,i){let a=t(e,null);if(a===null)return;let c=r()?.proxy;s(i,l),l(i.value),o(()=>{l(void 0,i.value)});function l(e,t){if(!a)return;let r=a[n];t!==void 0&&u(r,t),e!==void 0&&d(r,e)}function u(e,t){e[t]||(e[t]=[]),e[t].splice(e[t].findIndex(e=>e===c),1)}function d(e,t){e[t]||(e[t]=[]),~e[t].findIndex(e=>e===c)||e[t].push(c)}}var D={feedbackPadding:`4px 0 0 2px`,feedbackHeightSmall:`24px`,feedbackHeightMedium:`24px`,feedbackHeightLarge:`26px`,feedbackFontSizeSmall:`13px`,feedbackFontSizeMedium:`14px`,feedbackFontSizeLarge:`14px`,labelFontSizeLeftSmall:`14px`,labelFontSizeLeftMedium:`14px`,labelFontSizeLeftLarge:`15px`,labelFontSizeTopSmall:`13px`,labelFontSizeTopMedium:`14px`,labelFontSizeTopLarge:`14px`,labelHeightSmall:`24px`,labelHeightMedium:`26px`,labelHeightLarge:`28px`,labelPaddingVertical:`0 0 6px 2px`,labelPaddingHorizontal:`0 12px 0 0`,labelTextAlignVertical:`left`,labelTextAlignHorizontal:`right`,labelFontWeight:`400`};function ie(e){let{heightSmall:t,heightMedium:n,heightLarge:r,textColor1:i,errorColor:a,warningColor:o,lineHeight:s,textColor3:c}=e;return Object.assign(Object.assign({},D),{blankHeightSmall:t,blankHeightMedium:n,blankHeightLarge:r,lineHeight:s,labelTextColor:i,asteriskColor:a,feedbackTextColorError:a,feedbackTextColorWarning:o,feedbackTextColor:c})}var ae={name:`Form`,common:S,self:ie},O=h(`n-form`),oe=h(`n-form-item-insts`),se=C(`form`,[x(`inline`,`
2
2
  width: 100%;
3
3
  display: inline-flex;
4
4
  align-items: flex-start;
@@ -1,4 +1,4 @@
1
- import{C as e,F as t,K as n,M as r,N as i,R as a,U as o,X as s,Z as c,ct as l,dt as u,j as d,y as f}from"./router-CpYvE976.js";import{B as ee,G as p,K as m,Q as h,R as g,W as _,at as v,c as y,ct as b,d as te,dt as x,et as S,l as C,lt as w,n as T,ot as E,q as D,s as O,t as ne,tt as k,ut as A,z as j}from"./browser-DNwI2j4X.js";import{f as re,g as ie,h as ae,m as oe,o as M,r as N,s as se,t as P,v as ce}from"./Scrollbar-CA0Mq0os.js";import{n as F,t as I}from"./Suffix-BMwB7UJK.js";var L=d({name:`Eye`,render(){return i(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},i(`path`,{d:`M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z`,fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`32`}),i(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),R=d({name:`EyeOff`,render(){return i(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},i(`path`,{d:`M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z`,fill:`currentColor`}),i(`path`,{d:`M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z`,fill:`currentColor`}),i(`path`,{d:`M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z`,fill:`currentColor`}),i(`path`,{d:`M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z`,fill:`currentColor`}),i(`path`,{d:`M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z`,fill:`currentColor`}))}}),z={paddingTiny:`0 8px`,paddingSmall:`0 10px`,paddingMedium:`0 12px`,paddingLarge:`0 14px`,clearSize:`16px`};function B(e){let{textColor2:t,textColor3:n,textColorDisabled:r,primaryColor:i,primaryColorHover:a,inputColor:o,inputColorDisabled:s,borderColor:c,warningColor:l,warningColorHover:u,errorColor:d,errorColorHover:f,borderRadius:ee,lineHeight:p,fontSizeTiny:m,fontSizeSmall:h,fontSizeMedium:g,fontSizeLarge:_,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:te,actionColor:x,clearColor:S,clearColorHover:C,clearColorPressed:w,placeholderColor:T,placeholderColorDisabled:E,iconColor:D,iconColorDisabled:O,iconColorHover:ne,iconColorPressed:A,fontWeight:j}=e;return Object.assign(Object.assign({},z),{fontWeight:j,countTextColorDisabled:r,countTextColor:n,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:te,fontSizeTiny:m,fontSizeSmall:h,fontSizeMedium:g,fontSizeLarge:_,lineHeight:p,lineHeightTextarea:p,borderRadius:ee,iconSize:`16px`,groupLabelColor:x,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:i,placeholderColor:T,placeholderColorDisabled:E,color:o,colorDisabled:s,colorFocus:o,groupLabelBorder:`1px solid ${c}`,border:`1px solid ${c}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${c}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${k(i,{alpha:.2})}`,loadingColor:i,loadingColorWarning:l,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:o,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${k(l,{alpha:.2})}`,caretColorWarning:l,loadingColorError:d,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${f}`,colorFocusError:o,borderFocusError:`1px solid ${f}`,boxShadowFocusError:`0 0 0 2px ${k(d,{alpha:.2})}`,caretColorError:d,clearColor:S,clearColorHover:C,clearColorPressed:w,iconColor:D,iconColorDisabled:O,iconColorHover:ne,iconColorPressed:A,suffixTextColor:t})}var V=O({name:`Input`,common:T,peers:{Scrollbar:N},self:B}),H=h(`n-input`),le=E(`input`,`
1
+ import{C as e,F as t,K as n,M as r,N as i,R as a,U as o,X as s,Z as c,ct as l,dt as u,j as d,y as f}from"./router-COwpqexM.js";import{B as ee,G as p,K as m,Q as h,R as g,W as _,at as v,c as y,ct as b,d as te,dt as x,et as S,l as C,lt as w,n as T,ot as E,q as D,s as O,t as ne,tt as k,ut as A,z as j}from"./browser-DzAOCZtm.js";import{f as re,g as ie,h as ae,m as oe,o as M,r as N,s as se,t as P,v as ce}from"./Scrollbar-Bg2FeTtI.js";import{n as F,t as I}from"./Suffix-Dv1UElLH.js";var L=d({name:`Eye`,render(){return i(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},i(`path`,{d:`M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z`,fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`32`}),i(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),R=d({name:`EyeOff`,render(){return i(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},i(`path`,{d:`M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z`,fill:`currentColor`}),i(`path`,{d:`M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z`,fill:`currentColor`}),i(`path`,{d:`M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z`,fill:`currentColor`}),i(`path`,{d:`M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z`,fill:`currentColor`}),i(`path`,{d:`M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z`,fill:`currentColor`}))}}),z={paddingTiny:`0 8px`,paddingSmall:`0 10px`,paddingMedium:`0 12px`,paddingLarge:`0 14px`,clearSize:`16px`};function B(e){let{textColor2:t,textColor3:n,textColorDisabled:r,primaryColor:i,primaryColorHover:a,inputColor:o,inputColorDisabled:s,borderColor:c,warningColor:l,warningColorHover:u,errorColor:d,errorColorHover:f,borderRadius:ee,lineHeight:p,fontSizeTiny:m,fontSizeSmall:h,fontSizeMedium:g,fontSizeLarge:_,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:te,actionColor:x,clearColor:S,clearColorHover:C,clearColorPressed:w,placeholderColor:T,placeholderColorDisabled:E,iconColor:D,iconColorDisabled:O,iconColorHover:ne,iconColorPressed:A,fontWeight:j}=e;return Object.assign(Object.assign({},z),{fontWeight:j,countTextColorDisabled:r,countTextColor:n,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:te,fontSizeTiny:m,fontSizeSmall:h,fontSizeMedium:g,fontSizeLarge:_,lineHeight:p,lineHeightTextarea:p,borderRadius:ee,iconSize:`16px`,groupLabelColor:x,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:i,placeholderColor:T,placeholderColorDisabled:E,color:o,colorDisabled:s,colorFocus:o,groupLabelBorder:`1px solid ${c}`,border:`1px solid ${c}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${c}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${k(i,{alpha:.2})}`,loadingColor:i,loadingColorWarning:l,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:o,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${k(l,{alpha:.2})}`,caretColorWarning:l,loadingColorError:d,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${f}`,colorFocusError:o,borderFocusError:`1px solid ${f}`,boxShadowFocusError:`0 0 0 2px ${k(d,{alpha:.2})}`,caretColorError:d,clearColor:S,clearColorHover:C,clearColorPressed:w,iconColor:D,iconColorDisabled:O,iconColorHover:ne,iconColorPressed:A,suffixTextColor:t})}var V=O({name:`Input`,common:T,peers:{Scrollbar:N},self:B}),H=h(`n-input`),le=E(`input`,`
2
2
  max-width: 100%;
3
3
  cursor: text;
4
4
  line-height: 1.5;
@@ -1,4 +1,4 @@
1
- import{C as e,N as t,R as n,X as r,ct as i,dt as a,j as o}from"./router-CpYvE976.js";import{B as s,K as c,R as ee,W as l,at as u,c as d,d as te,et as f,n as p,ot as m,q as h,rt as ne,s as g}from"./browser-DNwI2j4X.js";import{g as _,m as re,o as v,s as ie}from"./Scrollbar-CA0Mq0os.js";import{n as y,r as b}from"./Button-BHvh9zmj.js";import{n as x,t as S}from"./Input-CS0p63GR.js";var C=o({name:`Add`,render(){return t(`svg`,{width:`512`,height:`512`,viewBox:`0 0 512 512`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},t(`path`,{d:`M256 112V400M400 256H112`,stroke:`currentColor`,"stroke-width":`32`,"stroke-linecap":`round`,"stroke-linejoin":`round`}))}}),w=o({name:`Remove`,render(){return t(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},t(`line`,{x1:`400`,y1:`256`,x2:`112`,y2:`256`,style:`
1
+ import{C as e,N as t,R as n,X as r,ct as i,dt as a,j as o}from"./router-COwpqexM.js";import{B as s,K as c,R as ee,W as l,at as u,c as d,d as te,et as f,n as p,ot as m,q as h,rt as ne,s as g}from"./browser-DzAOCZtm.js";import{g as _,m as re,o as v,s as ie}from"./Scrollbar-Bg2FeTtI.js";import{n as y,r as b}from"./Button-zECKCotA.js";import{n as x,t as S}from"./Input-DxJk6pT-.js";var C=o({name:`Add`,render(){return t(`svg`,{width:`512`,height:`512`,viewBox:`0 0 512 512`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},t(`path`,{d:`M256 112V400M400 256H112`,stroke:`currentColor`,"stroke-width":`32`,"stroke-linecap":`round`,"stroke-linejoin":`round`}))}}),w=o({name:`Remove`,render(){return t(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},t(`line`,{x1:`400`,y1:`256`,x2:`112`,y2:`256`,style:`
2
2
  fill: none;
3
3
  stroke: currentColor;
4
4
  stroke-linecap: round;
@@ -0,0 +1 @@
1
+ .job-card[data-v-918ec13f]{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:16px;transition:border-color .15s}.job-card[data-v-918ec13f]:hover{border-color:#3333334d}.card-header[data-v-918ec13f]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.job-name[data-v-918ec13f]{color:#1a1a1a;text-overflow:ellipsis;white-space:nowrap;max-width:70%;font-size:15px;font-weight:600;overflow:hidden}.status-badge[data-v-918ec13f]{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.status-badge.success[data-v-918ec13f]{color:#2e7d32;background:#2e7d321f}.status-badge.info[data-v-918ec13f]{color:#333;background:#3333331f}.status-badge.warning[data-v-918ec13f]{color:#f57f17;background:#f57f171f}.status-badge.error[data-v-918ec13f]{color:#c62828;background:#c628281f}.card-body[data-v-918ec13f]{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.info-row[data-v-918ec13f]{justify-content:space-between;align-items:center;display:flex}.info-label[data-v-918ec13f]{color:#999;font-size:12px}.info-value[data-v-918ec13f]{color:#666;font-size:12px}.run-status[data-v-918ec13f]{margin-left:6px;font-size:11px;font-weight:500}.run-status.ok[data-v-918ec13f]{color:#2e7d32}.run-status.err[data-v-918ec13f]{color:#c62828}.mono[data-v-918ec13f]{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px}.card-actions[data-v-918ec13f]{border-top:1px solid #ebebeb;gap:4px;padding-top:10px;display:flex}.empty-state[data-v-a0a8d138]{color:#999;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex}.empty-state .empty-icon[data-v-a0a8d138]{opacity:.3}.empty-state p[data-v-a0a8d138]{font-size:14px}.jobs-grid[data-v-a0a8d138]{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:14px;display:grid}.modal-footer[data-v-866b240e]{justify-content:flex-end;gap:8px;display:flex}.jobs-view[data-v-c0d68ae3]{height:calc(100 * var(--vh));flex-direction:column;display:flex}.jobs-content[data-v-c0d68ae3]{flex:1;padding:20px;overflow-y:auto}
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jobs-B7U8gZia.js","assets/router-CpYvE976.js"])))=>i.map(i=>d[i]);
2
- import{A as e,C as t,D as n,E as r,G as i,O as a,Q as o,T as s,U as c,ct as l,gt as u,j as d,k as f,mt as p,n as m,pt as h,q as g,w as _,y as v}from"./router-CpYvE976.js";import{n as y}from"./pinia-DKSOddVw.js";import{r as b,t as x}from"./_plugin-vue_export-helper-NLzeiXdV.js";import{t as S}from"./Modal-mFCAbKPD.js";import{n as C,t as w}from"./FormItem-C75Y2lpf.js";import{t as T}from"./Select-DLECSo9D.js";import{t as E}from"./Button-BHvh9zmj.js";import{t as D}from"./InputNumber-lHTE1DBf.js";import{t as O}from"./Input-CS0p63GR.js";import{t as k}from"./Tooltip-C9RmASqV.js";import{t as A}from"./use-message-17mZlZe3.js";import{t as j}from"./Spin-BbbA3R-G.js";import{a as M,c as N,i as P,n as F,o as I,s as ee,t as L}from"./jobs-B7U8gZia.js";function R(e,t){return e.job_id===t||e.id===t}var z=y(`jobs`,()=>{let e=l([]),t=l(!1);async function n(){t.value=!0;try{e.value=await P()}catch(e){console.error(`Failed to fetch jobs:`,e)}finally{t.value=!1}}async function r(t){let n=await L(t);return e.value.unshift(n),n}async function i(t,n){let r=await N(t,n),i=e.value.findIndex(e=>R(e,t));return i!==-1&&(e.value[i]=r),r}async function a(t){await F(t),e.value=e.value.filter(e=>!R(e,t))}async function o(t){let n=await M(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}async function s(t){let n=await I(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}async function c(t){let n=await ee(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}return{jobs:e,loading:t,fetchJobs:n,createJob:r,updateJob:i,deleteJob:a,pauseJob:o,resumeJob:s,runJob:c}}),B={class:`job-card`},V={class:`card-header`},H={class:`job-name`},U={class:`card-body`},W={class:`info-row`},G={class:`info-label`},K={class:`info-value mono`},q={class:`info-row`},J={class:`info-label`},Y={class:`info-value`},X={class:`info-row`},Z={class:`info-label`},Q={class:`info-value`},te={class:`info-row`},ne={class:`info-label`},re={class:`info-value`},ie={key:0,class:`info-row`},ae={class:`info-label`},oe={class:`info-value`},se={class:`card-actions`},ce=x(d({__name:`JobCard`,props:{job:{}},emits:[`edit`],setup(a,{emit:c}){let l=a,d=c,{t:m}=b(),g=z(),y=A(),x=t(()=>l.job.job_id||l.job.id),S=t(()=>l.job.state===`running`?m(`jobs.status.running`):l.job.state===`paused`?m(`jobs.status.paused`):l.job.enabled?m(`jobs.status.scheduled`):m(`jobs.status.disabled`)),C=t(()=>l.job.state===`running`?`info`:l.job.state===`paused`?`warning`:l.job.enabled?`success`:`error`),w=t(()=>{let e=l.job.schedule;return typeof e==`string`?e:e?.expr||l.job.schedule_display||`—`}),T=e=>e?new Date(e).toLocaleString():`—`;async function D(){try{await g.pauseJob(x.value),y.success(m(`jobs.jobPaused`))}catch(e){y.error(e.message)}}async function O(){try{await g.resumeJob(x.value),y.success(m(`jobs.jobResumed`))}catch(e){y.error(e.message)}}async function j(){try{await g.runJob(x.value),y.info(m(`jobs.jobTriggered`))}catch(e){y.error(e.message)}}async function M(){try{await g.deleteJob(x.value),y.success(m(`jobs.jobDeleted`))}catch(e){y.error(e.message)}}return(t,c)=>(i(),n(`div`,B,[_(`div`,V,[_(`h3`,H,u(a.job.name),1),_(`span`,{class:p([`status-badge`,C.value])},u(S.value),3)]),_(`div`,U,[_(`div`,W,[_(`span`,G,u(h(m)(`jobs.info.schedule`)),1),_(`code`,K,u(w.value),1)]),_(`div`,q,[_(`span`,J,u(h(m)(`jobs.info.lastRun`)),1),_(`span`,Y,[f(u(T(a.job.last_run_at))+` `,1),a.job.last_status?(i(),n(`span`,{key:0,class:p([`run-status`,{ok:a.job.last_status===`ok`,err:a.job.last_status!==`ok`}])},u(a.job.last_status===`ok`?h(m)(`common.ok`):a.job.last_status),3)):r(``,!0)])]),_(`div`,X,[_(`span`,Z,u(h(m)(`jobs.info.nextRun`)),1),_(`span`,Q,u(T(a.job.next_run_at)),1)]),_(`div`,te,[_(`span`,ne,u(h(m)(`jobs.info.deliver`)),1),_(`span`,re,[f(u(a.job.deliver),1),a.job.origin?(i(),n(v,{key:0},[f(` (`+u(a.job.origin.platform)+`)`,1)],64)):r(``,!0)])]),a.job.repeat?(i(),n(`div`,ie,[_(`span`,ae,u(h(m)(`jobs.info.repeat`)),1),_(`span`,oe,[typeof a.job.repeat==`string`?(i(),n(v,{key:0},[f(u(a.job.repeat),1)],64)):(i(),n(v,{key:1},[f(u(a.job.repeat.completed)+` / `+u(a.job.repeat.times??`∞`),1)],64))])])):r(``,!0)]),_(`div`,se,[a.job.state!==`paused`&&a.job.enabled?(i(),s(h(k),{key:0},{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:D},{default:o(()=>[f(u(h(m)(`jobs.action.pause`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.pauseJob`)),1)]),_:1})):a.job.state===`paused`?(i(),s(h(k),{key:1},{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:O},{default:o(()=>[f(u(h(m)(`jobs.action.resume`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.resumeJob`)),1)]),_:1})):r(``,!0),e(h(k),null,{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:j},{default:o(()=>[f(u(h(m)(`jobs.action.runNow`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.triggerImmediately`)),1)]),_:1}),e(h(E),{size:`tiny`,quaternary:``,onClick:c[0]||=e=>d(`edit`,x.value)},{default:o(()=>[f(u(h(m)(`common.edit`)),1)]),_:1}),e(h(E),{size:`tiny`,quaternary:``,type:`error`,onClick:M},{default:o(()=>[f(u(h(m)(`common.delete`)),1)]),_:1})])]))}}),[[`__scopeId`,`data-v-7c84751f`]]),le={key:0,class:`empty-state`},ue={key:1,class:`jobs-grid`},de=x(d({__name:`JobsPanel`,emits:[`edit`],setup(e,{emit:t}){let{t:r}=b(),o=t,c=z();return(e,t)=>h(c).jobs.length===0?(i(),n(`div`,le,[t[0]||=a(`<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="empty-icon" data-v-b91b48f7><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-b91b48f7></rect><line x1="16" y1="2" x2="16" y2="6" data-v-b91b48f7></line><line x1="8" y1="2" x2="8" y2="6" data-v-b91b48f7></line><line x1="3" y1="10" x2="21" y2="10" data-v-b91b48f7></line></svg>`,1),_(`p`,null,u(h(r)(`jobs.noJobs`)),1)])):(i(),n(`div`,ue,[(i(!0),n(v,null,g(h(c).jobs,e=>(i(),s(ce,{key:e.id,job:e,onEdit:t=>o(`edit`,e.id)},null,8,[`job`,`onEdit`]))),128))]))}}),[[`__scopeId`,`data-v-b91b48f7`]]),fe={class:`modal-footer`},pe=x(d({__name:`JobFormModal`,props:{jobId:{}},emits:[`close`,`saved`],setup(n,{emit:r}){let{t:a}=b(),d=n,p=r,g=z(),v=A(),y=l(!0),x=l(!1),k=l({name:``,schedule:``,prompt:``,deliver:`origin`,repeat_times:null}),j=l(null),M=t(()=>!!d.jobId),N=t(()=>[{label:a(`jobs.presetEveryMinute`),value:`* * * * *`},{label:a(`jobs.presetEvery5Min`),value:`*/5 * * * *`},{label:a(`jobs.presetEveryHour`),value:`0 * * * *`},{label:a(`jobs.presetEveryDay`),value:`0 0 * * *`},{label:a(`jobs.presetEveryDay9`),value:`0 9 * * *`},{label:a(`jobs.presetEveryMonday`),value:`0 9 * * 1`},{label:a(`jobs.presetEveryMonth`),value:`0 9 1 * *`}]),P=t(()=>[{label:a(`jobs.origin`),value:`origin`},{label:a(`jobs.local`),value:`local`}]);c(async()=>{if(d.jobId)try{let{getJob:e}=await m(async()=>{let{getJob:e}=await import(`./jobs-B7U8gZia.js`).then(e=>e.r);return{getJob:e}},__vite__mapDeps([0,1])),t=await e(d.jobId);k.value={name:t.name,schedule:typeof t.schedule==`string`?t.schedule:t.schedule?.expr||t.schedule_display||``,prompt:t.prompt,deliver:t.deliver||`origin`,repeat_times:typeof t.repeat==`number`?t.repeat:typeof t.repeat==`object`?t.repeat.times:null}}catch(e){v.error(a(`jobs.loadFailed`)+`: `+e.message)}});async function F(){if(!k.value.name.trim()){v.warning(a(`jobs.nameRequired`));return}if(!k.value.schedule.trim()){v.warning(a(`jobs.scheduleRequired`));return}x.value=!0;try{let e={name:k.value.name,schedule:k.value.schedule,prompt:k.value.prompt,deliver:k.value.deliver,repeat:k.value.repeat_times??void 0};M.value?(await g.updateJob(d.jobId,e),v.success(a(`jobs.jobUpdated`))):(await g.createJob(e),v.success(a(`jobs.jobCreated`))),p(`saved`)}catch(e){v.error(e.message)}finally{x.value=!1}}function I(){y.value=!1,setTimeout(()=>p(`close`),200)}return(t,n)=>(i(),s(h(S),{show:y.value,"onUpdate:show":n[7]||=e=>y.value=e,preset:`card`,title:M.value?h(a)(`jobs.editJob`):h(a)(`jobs.createJob`),style:{width:`min(520px, calc(100vw - 32px))`},"mask-closable":!x.value,onAfterLeave:n[8]||=e=>p(`close`)},{footer:o(()=>[_(`div`,fe,[e(h(E),{onClick:I},{default:o(()=>[f(u(h(a)(`common.cancel`)),1)]),_:1}),e(h(E),{type:`primary`,loading:x.value,onClick:F},{default:o(()=>[f(u(M.value?h(a)(`common.update`):h(a)(`common.create`)),1)]),_:1},8,[`loading`])])]),default:o(()=>[e(h(C),{"label-placement":`top`},{default:o(()=>[e(h(w),{label:h(a)(`jobs.name`),required:``},{default:o(()=>[e(h(O),{value:k.value.name,"onUpdate:value":n[0]||=e=>k.value.name=e,placeholder:h(a)(`jobs.namePlaceholder`),maxlength:`200`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.schedule`),required:``},{default:o(()=>[e(h(O),{value:k.value.schedule,"onUpdate:value":n[1]||=e=>k.value.schedule=e,placeholder:h(a)(`jobs.schedulePlaceholder`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.quickPresets`)},{default:o(()=>[e(h(T),{value:j.value,"onUpdate:value":[n[2]||=e=>j.value=e,n[3]||=e=>k.value.schedule=e],options:N.value,placeholder:h(a)(`jobs.selectPreset`)},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.prompt`),required:``},{default:o(()=>[e(h(O),{value:k.value.prompt,"onUpdate:value":n[4]||=e=>k.value.prompt=e,type:`textarea`,placeholder:h(a)(`jobs.promptPlaceholder`),rows:4,maxlength:`5000`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.deliverTarget`)},{default:o(()=>[e(h(T),{value:k.value.deliver,"onUpdate:value":n[5]||=e=>k.value.deliver=e,options:P.value},null,8,[`value`,`options`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.repeatCount`)},{default:o(()=>[e(h(D),{value:k.value.repeat_times,"onUpdate:value":n[6]||=e=>k.value.repeat_times=e,min:1,placeholder:h(a)(`jobs.repeatPlaceholder`),clearable:``,style:{width:`100%`}},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-1cf63c17`]]),$={class:`jobs-view`},me={class:`page-header`},he={class:`header-title`},ge={class:`jobs-content`},_e=x(d({__name:`JobsView`,setup(t){let{t:a}=b(),d=z(),p=l(!1),m=l(null);c(()=>{d.fetchJobs()});function g(){m.value=null,p.value=!0}function v(e){m.value=e,p.value=!0}function y(){p.value=!1,m.value=null}async function x(){await d.fetchJobs(),y()}return(t,c)=>(i(),n(`div`,$,[_(`header`,me,[_(`h2`,he,u(h(a)(`jobs.title`)),1),e(h(E),{type:`primary`,size:`small`,onClick:g},{icon:o(()=>[...c[0]||=[_(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[_(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),_(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:o(()=>[f(` `+u(h(a)(`jobs.createJob`)),1)]),_:1})]),_(`div`,ge,[e(h(j),{show:h(d).loading&&h(d).jobs.length===0},{default:o(()=>[e(de,{onEdit:v})]),_:1},8,[`show`])]),p.value?(i(),s(pe,{key:0,"job-id":m.value,onClose:y,onSaved:x},null,8,[`job-id`])):r(``,!0)]))}}),[[`__scopeId`,`data-v-3d9d3ab7`]]);export{_e as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jobs-B9NHIxuL.js","assets/router-COwpqexM.js"])))=>i.map(i=>d[i]);
2
+ import{A as e,C as t,D as n,E as r,G as i,O as a,Q as o,T as s,U as c,ct as l,gt as u,j as d,k as f,mt as p,n as m,pt as h,q as g,w as _,y as v}from"./router-COwpqexM.js";import{n as y}from"./pinia-bPUFQqFK.js";import{r as b,t as x}from"./_plugin-vue_export-helper-BkT4A29V.js";import{t as S}from"./Modal-WQKdvHJY.js";import{n as C,t as w}from"./FormItem-CZ9auYA2.js";import{t as T}from"./Select-C_hKaXgI.js";import{t as E}from"./Button-zECKCotA.js";import{t as D}from"./InputNumber-BTqp81h0.js";import{t as O}from"./Input-DxJk6pT-.js";import{t as k}from"./Tooltip-DrDTmrj3.js";import{t as A}from"./use-message-g8F4Z57w.js";import{t as j}from"./Spin-lybeIDeX.js";import{a as M,c as N,i as P,n as F,o as I,s as ee,t as L}from"./jobs-B9NHIxuL.js";function R(e,t){return e.job_id===t||e.id===t}var z=y(`jobs`,()=>{let e=l([]),t=l(!1);async function n(){t.value=!0;try{e.value=await P()}catch(e){console.error(`Failed to fetch jobs:`,e)}finally{t.value=!1}}async function r(t){let n=await L(t);return e.value.unshift(n),n}async function i(t,n){let r=await N(t,n),i=e.value.findIndex(e=>R(e,t));return i!==-1&&(e.value[i]=r),r}async function a(t){await F(t),e.value=e.value.filter(e=>!R(e,t))}async function o(t){let n=await M(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}async function s(t){let n=await I(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}async function c(t){let n=await ee(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}return{jobs:e,loading:t,fetchJobs:n,createJob:r,updateJob:i,deleteJob:a,pauseJob:o,resumeJob:s,runJob:c}}),B={class:`job-card`},V={class:`card-header`},H={class:`job-name`},U={class:`card-body`},W={class:`info-row`},G={class:`info-label`},K={class:`info-value mono`},q={class:`info-row`},J={class:`info-label`},Y={class:`info-value`},X={class:`info-row`},Z={class:`info-label`},Q={class:`info-value`},te={class:`info-row`},ne={class:`info-label`},re={class:`info-value`},ie={key:0,class:`info-row`},ae={class:`info-label`},oe={class:`info-value`},se={class:`card-actions`},ce=x(d({__name:`JobCard`,props:{job:{}},emits:[`edit`],setup(a,{emit:c}){let l=a,d=c,{t:m}=b(),g=z(),y=A(),x=t(()=>l.job.job_id||l.job.id),S=t(()=>l.job.state===`running`?m(`jobs.status.running`):l.job.state===`paused`?m(`jobs.status.paused`):l.job.enabled?m(`jobs.status.scheduled`):m(`jobs.status.disabled`)),C=t(()=>l.job.state===`running`?`info`:l.job.state===`paused`?`warning`:l.job.enabled?`success`:`error`),w=t(()=>{let e=l.job.schedule;return typeof e==`string`?e:e?.expr||l.job.schedule_display||`—`}),T=e=>e?new Date(e).toLocaleString():`—`;async function D(){try{await g.pauseJob(x.value),y.success(m(`jobs.jobPaused`))}catch(e){y.error(e.message)}}async function O(){try{await g.resumeJob(x.value),y.success(m(`jobs.jobResumed`))}catch(e){y.error(e.message)}}async function j(){try{await g.runJob(x.value),y.info(m(`jobs.jobTriggered`))}catch(e){y.error(e.message)}}async function M(){try{await g.deleteJob(x.value),y.success(m(`jobs.jobDeleted`))}catch(e){y.error(e.message)}}return(t,c)=>(i(),n(`div`,B,[_(`div`,V,[_(`h3`,H,u(a.job.name),1),_(`span`,{class:p([`status-badge`,C.value])},u(S.value),3)]),_(`div`,U,[_(`div`,W,[_(`span`,G,u(h(m)(`jobs.info.schedule`)),1),_(`code`,K,u(w.value),1)]),_(`div`,q,[_(`span`,J,u(h(m)(`jobs.info.lastRun`)),1),_(`span`,Y,[f(u(T(a.job.last_run_at))+` `,1),a.job.last_status?(i(),n(`span`,{key:0,class:p([`run-status`,{ok:a.job.last_status===`ok`,err:a.job.last_status!==`ok`}])},u(a.job.last_status===`ok`?h(m)(`common.ok`):a.job.last_status),3)):r(``,!0)])]),_(`div`,X,[_(`span`,Z,u(h(m)(`jobs.info.nextRun`)),1),_(`span`,Q,u(T(a.job.next_run_at)),1)]),_(`div`,te,[_(`span`,ne,u(h(m)(`jobs.info.deliver`)),1),_(`span`,re,[f(u(a.job.deliver),1),a.job.origin?(i(),n(v,{key:0},[f(` (`+u(a.job.origin.platform)+`)`,1)],64)):r(``,!0)])]),a.job.repeat?(i(),n(`div`,ie,[_(`span`,ae,u(h(m)(`jobs.info.repeat`)),1),_(`span`,oe,[typeof a.job.repeat==`string`?(i(),n(v,{key:0},[f(u(a.job.repeat),1)],64)):(i(),n(v,{key:1},[f(u(a.job.repeat.completed)+` / `+u(a.job.repeat.times??`∞`),1)],64))])])):r(``,!0)]),_(`div`,se,[a.job.state!==`paused`&&a.job.enabled?(i(),s(h(k),{key:0},{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:D},{default:o(()=>[f(u(h(m)(`jobs.action.pause`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.pauseJob`)),1)]),_:1})):a.job.state===`paused`?(i(),s(h(k),{key:1},{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:O},{default:o(()=>[f(u(h(m)(`jobs.action.resume`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.resumeJob`)),1)]),_:1})):r(``,!0),e(h(k),null,{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:j},{default:o(()=>[f(u(h(m)(`jobs.action.runNow`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.triggerImmediately`)),1)]),_:1}),e(h(E),{size:`tiny`,quaternary:``,onClick:c[0]||=e=>d(`edit`,x.value)},{default:o(()=>[f(u(h(m)(`common.edit`)),1)]),_:1}),e(h(E),{size:`tiny`,quaternary:``,type:`error`,onClick:M},{default:o(()=>[f(u(h(m)(`common.delete`)),1)]),_:1})])]))}}),[[`__scopeId`,`data-v-918ec13f`]]),le={key:0,class:`empty-state`},ue={key:1,class:`jobs-grid`},de=x(d({__name:`JobsPanel`,emits:[`edit`],setup(e,{emit:t}){let{t:r}=b(),o=t,c=z();return(e,t)=>h(c).jobs.length===0?(i(),n(`div`,le,[t[0]||=a(`<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="empty-icon" data-v-a0a8d138><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-a0a8d138></rect><line x1="16" y1="2" x2="16" y2="6" data-v-a0a8d138></line><line x1="8" y1="2" x2="8" y2="6" data-v-a0a8d138></line><line x1="3" y1="10" x2="21" y2="10" data-v-a0a8d138></line></svg>`,1),_(`p`,null,u(h(r)(`jobs.noJobs`)),1)])):(i(),n(`div`,ue,[(i(!0),n(v,null,g(h(c).jobs,e=>(i(),s(ce,{key:e.id,job:e,onEdit:t=>o(`edit`,e.id)},null,8,[`job`,`onEdit`]))),128))]))}}),[[`__scopeId`,`data-v-a0a8d138`]]),fe={class:`modal-footer`},pe=x(d({__name:`JobFormModal`,props:{jobId:{}},emits:[`close`,`saved`],setup(n,{emit:r}){let{t:a}=b(),d=n,p=r,g=z(),v=A(),y=l(!0),x=l(!1),k=l({name:``,schedule:``,prompt:``,deliver:`origin`,repeat_times:null}),j=l(null),M=t(()=>!!d.jobId),N=t(()=>[{label:a(`jobs.presetEveryMinute`),value:`* * * * *`},{label:a(`jobs.presetEvery5Min`),value:`*/5 * * * *`},{label:a(`jobs.presetEveryHour`),value:`0 * * * *`},{label:a(`jobs.presetEveryDay`),value:`0 0 * * *`},{label:a(`jobs.presetEveryDay9`),value:`0 9 * * *`},{label:a(`jobs.presetEveryMonday`),value:`0 9 * * 1`},{label:a(`jobs.presetEveryMonth`),value:`0 9 1 * *`}]),P=t(()=>[{label:a(`jobs.origin`),value:`origin`},{label:a(`jobs.local`),value:`local`}]);c(async()=>{if(d.jobId)try{let{getJob:e}=await m(async()=>{let{getJob:e}=await import(`./jobs-B9NHIxuL.js`).then(e=>e.r);return{getJob:e}},__vite__mapDeps([0,1])),t=await e(d.jobId);k.value={name:t.name,schedule:typeof t.schedule==`string`?t.schedule:t.schedule?.expr||t.schedule_display||``,prompt:t.prompt,deliver:t.deliver||`origin`,repeat_times:typeof t.repeat==`number`?t.repeat:typeof t.repeat==`object`?t.repeat.times:null}}catch(e){v.error(a(`jobs.loadFailed`)+`: `+e.message)}});async function F(){if(!k.value.name.trim()){v.warning(a(`jobs.nameRequired`));return}if(!k.value.schedule.trim()){v.warning(a(`jobs.scheduleRequired`));return}x.value=!0;try{let e={name:k.value.name,schedule:k.value.schedule,prompt:k.value.prompt,deliver:k.value.deliver,repeat:k.value.repeat_times??void 0};M.value?(await g.updateJob(d.jobId,e),v.success(a(`jobs.jobUpdated`))):(await g.createJob(e),v.success(a(`jobs.jobCreated`))),p(`saved`)}catch(e){v.error(e.message)}finally{x.value=!1}}function I(){y.value=!1,setTimeout(()=>p(`close`),200)}return(t,n)=>(i(),s(h(S),{show:y.value,"onUpdate:show":n[7]||=e=>y.value=e,preset:`card`,title:M.value?h(a)(`jobs.editJob`):h(a)(`jobs.createJob`),style:{width:`min(520px, calc(100vw - 32px))`},"mask-closable":!x.value,onAfterLeave:n[8]||=e=>p(`close`)},{footer:o(()=>[_(`div`,fe,[e(h(E),{onClick:I},{default:o(()=>[f(u(h(a)(`common.cancel`)),1)]),_:1}),e(h(E),{type:`primary`,loading:x.value,onClick:F},{default:o(()=>[f(u(M.value?h(a)(`common.update`):h(a)(`common.create`)),1)]),_:1},8,[`loading`])])]),default:o(()=>[e(h(C),{"label-placement":`top`},{default:o(()=>[e(h(w),{label:h(a)(`jobs.name`),required:``},{default:o(()=>[e(h(O),{value:k.value.name,"onUpdate:value":n[0]||=e=>k.value.name=e,placeholder:h(a)(`jobs.namePlaceholder`),maxlength:`200`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.schedule`),required:``},{default:o(()=>[e(h(O),{value:k.value.schedule,"onUpdate:value":n[1]||=e=>k.value.schedule=e,placeholder:h(a)(`jobs.schedulePlaceholder`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.quickPresets`)},{default:o(()=>[e(h(T),{value:j.value,"onUpdate:value":[n[2]||=e=>j.value=e,n[3]||=e=>k.value.schedule=e],options:N.value,placeholder:h(a)(`jobs.selectPreset`)},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.prompt`),required:``},{default:o(()=>[e(h(O),{value:k.value.prompt,"onUpdate:value":n[4]||=e=>k.value.prompt=e,type:`textarea`,placeholder:h(a)(`jobs.promptPlaceholder`),rows:4,maxlength:`5000`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.deliverTarget`)},{default:o(()=>[e(h(T),{value:k.value.deliver,"onUpdate:value":n[5]||=e=>k.value.deliver=e,options:P.value},null,8,[`value`,`options`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.repeatCount`)},{default:o(()=>[e(h(D),{value:k.value.repeat_times,"onUpdate:value":n[6]||=e=>k.value.repeat_times=e,min:1,placeholder:h(a)(`jobs.repeatPlaceholder`),clearable:``,style:{width:`100%`}},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-866b240e`]]),$={class:`jobs-view`},me={class:`page-header`},he={class:`header-title`},ge={class:`jobs-content`},_e=x(d({__name:`JobsView`,setup(t){let{t:a}=b(),d=z(),p=l(!1),m=l(null);c(()=>{d.fetchJobs()});function g(){m.value=null,p.value=!0}function v(e){m.value=e,p.value=!0}function y(){p.value=!1,m.value=null}async function x(){await d.fetchJobs(),y()}return(t,c)=>(i(),n(`div`,$,[_(`header`,me,[_(`h2`,he,u(h(a)(`jobs.title`)),1),e(h(E),{type:`primary`,size:`small`,onClick:g},{icon:o(()=>[...c[0]||=[_(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[_(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),_(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:o(()=>[f(` `+u(h(a)(`jobs.createJob`)),1)]),_:1})]),_(`div`,ge,[e(h(j),{show:h(d).loading&&h(d).jobs.length===0},{default:o(()=>[e(de,{onEdit:v})]),_:1},8,[`show`])]),p.value?(i(),s(pe,{key:0,"job-id":m.value,onClose:y,onSaved:x},null,8,[`job-id`])):r(``,!0)]))}}),[[`__scopeId`,`data-v-c0d68ae3`]]);export{_e as default};
@@ -0,0 +1 @@
1
+ import{$ as e,D as t,E as n,G as r,_ as i,a,ct as o,gt as s,j as c,l,m as u,pt as d,s as f,w as p}from"./router-COwpqexM.js";import{r as m,t as h}from"./_plugin-vue_export-helper-BkT4A29V.js";import"./logo-Cd-t_oGE.js";var g={class:`login-view`},_={class:`login-card`},v={class:`login-title`},y={class:`login-desc`},b=[`placeholder`],x={key:0,class:`login-error`},S=[`disabled`],C=h(c({__name:`LoginView`,setup(c){let{t:h}=m(),C=l(),w=o(window.__LOGIN_TOKEN__||``),T=o(!1),E=o(``);a()&&C.replace(`/hermes/chat`);async function D(){let e=w.value.trim();if(!e){E.value=h(`login.tokenRequired`);return}T.value=!0,E.value=``;try{if((await fetch(`/api/sessions`,{headers:{Authorization:`Bearer ${e}`}})).status===401){E.value=h(`login.invalidToken`),T.value=!1;return}f(e),C.replace(`/hermes/chat`)}catch{E.value=h(`login.connectionFailed`)}finally{T.value=!1}}return(a,o)=>(r(),t(`div`,g,[p(`div`,_,[o[1]||=p(`div`,{class:`login-logo`},[p(`img`,{src:`/logo.png`,alt:`Hermes`,width:`80`,height:`80`})],-1),p(`h1`,v,s(d(h)(`login.title`)),1),p(`p`,y,s(d(h)(`login.description`)),1),p(`form`,{class:`login-form`,onSubmit:i(D,[`prevent`])},[e(p(`input`,{"onUpdate:modelValue":o[0]||=e=>w.value=e,type:`password`,class:`login-input`,placeholder:d(h)(`login.placeholder`),autofocus:``},null,8,b),[[u,w.value]]),E.value?(r(),t(`div`,x,s(E.value),1)):n(``,!0),p(`button`,{type:`submit`,class:`login-btn`,disabled:T.value},s(T.value?`...`:d(h)(`login.submit`)),9,S)],32)])]))}}),[[`__scopeId`,`data-v-a96a524c`]]);export{C as default};
@@ -0,0 +1 @@
1
+ .login-view[data-v-a96a524c]{height:calc(100 * var(--vh));background:#fafafa;justify-content:center;align-items:center;display:flex}.login-card[data-v-a96a524c]{text-align:center;background:#fff;border:1px solid #e0e0e0;border-radius:14px;width:480px;max-width:calc(100vw - 32px);padding:56px}@media (width<=768px){.login-card[data-v-a96a524c]{padding:32px 24px}}.login-logo[data-v-a96a524c]{margin-bottom:24px}.login-title[data-v-a96a524c]{color:#1a1a1a;margin:0 0 10px;font-size:26px;font-weight:600}.login-desc[data-v-a96a524c]{color:#999;margin:0 0 40px;font-size:14px;line-height:1.6}.login-form[data-v-a96a524c]{flex-direction:column;gap:14px;display:flex}.login-input[data-v-a96a524c]{color:#1a1a1a;box-sizing:border-box;background:#fff;border:1px solid #e0e0e0;border-radius:6px;outline:none;width:100%;padding:14px 16px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:15px;transition:border-color .15s}.login-input[data-v-a96a524c]::placeholder{color:#999}.login-input[data-v-a96a524c]:focus{border-color:#333}.login-error[data-v-a96a524c]{color:#c62828;text-align:left;font-size:13px}.login-btn[data-v-a96a524c]{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:6px;width:100%;padding:14px;font-size:15px;font-weight:500;transition:opacity .15s}.login-btn[data-v-a96a524c]:hover{opacity:.85}.login-btn[data-v-a96a524c]:disabled{opacity:.5;cursor:not-allowed}
@@ -0,0 +1 @@
1
+ .logs-view[data-v-abf9dd5b]{height:calc(100 * var(--vh));flex-direction:column;display:flex}.page-header[data-v-abf9dd5b]{flex-wrap:wrap;gap:12px}.header-actions[data-v-abf9dd5b]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-input[data-v-abf9dd5b]{color:#1a1a1a;background:#fff;border:1px solid #e0e0e0;border-radius:6px;outline:none;width:160px;padding:4px 10px;font-size:13px;transition:border-color .15s}.search-input[data-v-abf9dd5b]:focus{border-color:#333}.search-input[data-v-abf9dd5b]::placeholder{color:#999}.logs-body[data-v-abf9dd5b]{flex:1;min-height:0;overflow-y:auto}.logs-empty[data-v-abf9dd5b]{color:#999;justify-content:center;align-items:center;height:100%;font-size:13px;display:flex}.log-list[data-v-abf9dd5b]{padding:4px 0}.log-entry[data-v-abf9dd5b]{border-left:2px solid #0000;align-items:center;gap:8px;padding:3px 20px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.6;display:flex}.log-entry[data-v-abf9dd5b]:hover{background-color:#33333308}.log-entry.level-error[data-v-abf9dd5b]{border-left-color:#c62828}.log-entry.level-error .log-message[data-v-abf9dd5b]{color:#c62828}.log-entry.level-warning[data-v-abf9dd5b]{border-left-color:#f57f17}.log-entry.level-warning .log-message[data-v-abf9dd5b]{color:#d9720f}.log-time[data-v-abf9dd5b]{color:#999;font-variant-numeric:tabular-nums;flex-shrink:0}.log-level[data-v-abf9dd5b]{text-align:center;border-radius:2px;flex-shrink:0;min-width:42px;padding:0 4px;font-size:10px;font-weight:600}.log-level.level-error[data-v-abf9dd5b]{color:#c62828;background:#c628281f}.log-level.level-warning[data-v-abf9dd5b]{color:#d9720f;background:#f57f171f}.log-level.level-debug[data-v-abf9dd5b],.log-level.level-info[data-v-abf9dd5b]{color:#999;background:#3333330f}.log-logger[data-v-abf9dd5b]{color:#999;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:160px;overflow:hidden}.log-message[data-v-abf9dd5b]{color:#666;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.access-method[data-v-abf9dd5b]{color:#1a1a1a;flex-shrink:0;font-weight:600}.access-path[data-v-abf9dd5b]{color:#333;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.access-status[data-v-abf9dd5b]{flex-shrink:0;font-size:11px;font-weight:600}.access-status.status-2[data-v-abf9dd5b]{color:#2e7d32}.access-status.status-3[data-v-abf9dd5b]{color:#f57f17}.access-status.status-4[data-v-abf9dd5b],.access-status.status-5[data-v-abf9dd5b]{color:#c62828}
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,C as n,D as r,E as ee,G as i,Q as a,U as o,ct as s,gt as c,j as l,k as u,m as d,mt as f,o as p,pt as m,q as h,w as g,y as _}from"./router-COwpqexM.js";import{r as v,t as y}from"./_plugin-vue_export-helper-BkT4A29V.js";import{t as b}from"./Select-C_hKaXgI.js";import{t as x}from"./Button-zECKCotA.js";import{t as S}from"./use-message-g8F4Z57w.js";import{t as C}from"./Spin-lybeIDeX.js";async function w(){return(await p(`/api/hermes/logs`)).files}async function T(e,t){let n=new URLSearchParams;t?.lines&&n.set(`lines`,String(t.lines)),t?.level&&n.set(`level`,t.level),t?.session&&n.set(`session`,t.session),t?.since&&n.set(`since`,t.since);let r=n.toString();return(await p(`/api/hermes/logs/${e}${r?`?${r}`:``}`)).entries.filter(e=>e!==null)}var E={class:`logs-view`},D={class:`page-header`},O={class:`header-title`},k={class:`header-actions`},A=[`placeholder`],j={class:`logs-body`},M={key:0,class:`logs-empty`},N={class:`log-list`},P={class:`log-time`},F={class:`log-logger`},I={class:`access-method`},L={class:`access-path`},R={key:1,class:`log-message`},z=y(l({__name:`LogsView`,setup(l){let{t:p}=v(),y=S(),z=s([]),B=s(`agent`),V=s([]),H=s(!1),U=s(100),W=s(``),G=s(``),K=n(()=>z.value.map(e=>({label:`${e.name} (${e.size})`,value:e.name}))),q=n(()=>[{label:p(`logs.all`),value:``},{label:`ERROR`,value:`ERROR`},{label:`WARNING`,value:`WARNING`},{label:`INFO`,value:`INFO`},{label:`DEBUG`,value:`DEBUG`}]),J=[{label:`50`,value:50},{label:`100`,value:100},{label:`200`,value:200},{label:`500`,value:500}],Y=n(()=>{if(!G.value)return V.value;let e=G.value.toLowerCase();return V.value.filter(t=>t.message.toLowerCase().includes(e)||t.logger.toLowerCase().includes(e)||t.raw.toLowerCase().includes(e))});function X(e){switch(e){case`ERROR`:return`level-error`;case`WARNING`:return`level-warning`;case`DEBUG`:return`level-debug`;default:return`level-info`}}function Z(e){let t=e.match(/\d{2}:\d{2}:\d{2}/);return t?t[0]:e}function Q(e){let t=e.match(/"(\w+)\s+(\S+)\s+HTTP\/[^"]+"\s+(\d+)/);return t?{method:t[1],path:t[2],status:t[3]}:null}async function $(){H.value=!0;try{V.value=(await T(B.value,{lines:U.value,level:W.value||void 0})).filter(e=>e!==null)}catch(e){y.error(e.message)}finally{H.value=!1}}return o(async()=>{z.value=await w(),await $()}),(n,o)=>(i(),r(`div`,E,[g(`header`,D,[g(`h2`,O,c(m(p)(`logs.title`)),1),g(`div`,k,[t(m(b),{value:B.value,"onUpdate:value":[o[0]||=e=>B.value=e,$],options:K.value,size:`small`,class:`input-md`},null,8,[`value`,`options`]),t(m(b),{value:W.value,options:q.value,size:`small`,class:`input-sm`,"onUpdate:value":o[1]||=e=>{W.value=e,$()}},null,8,[`value`,`options`]),t(m(b),{value:U.value,options:J,size:`small`,class:`input-sm`,"onUpdate:value":o[2]||=e=>{U.value=e,$()}},null,8,[`value`]),e(g(`input`,{"onUpdate:modelValue":o[3]||=e=>G.value=e,class:`search-input`,placeholder:m(p)(`logs.searchPlaceholder`)},null,8,A),[[d,G.value]]),t(m(x),{size:`small`,loading:H.value,onClick:$},{default:a(()=>[u(c(m(p)(`logs.refresh`)),1)]),_:1},8,[`loading`])])]),g(`div`,j,[t(m(C),{show:H.value},{default:a(()=>[Y.value.length===0&&!H.value?(i(),r(`div`,M,c(m(p)(`logs.noEntries`)),1)):ee(``,!0),g(`div`,N,[(i(!0),r(_,null,h(Y.value,(e,t)=>(i(),r(`div`,{key:t,class:f([`log-entry`,X(e.level)])},[g(`span`,P,c(Z(e.timestamp)),1),g(`span`,{class:f([`log-level`,X(e.level)])},c(e.level),3),g(`span`,F,c(e.logger),1),Q(e.message)?(i(),r(_,{key:0},[g(`span`,I,c(Q(e.message).method),1),g(`span`,L,c(Q(e.message).path),1),g(`span`,{class:f([`access-status`,`status-`+(Q(e.message).status?.[0]||`x`)])},c(Q(e.message).status),3)],64)):(i(),r(`span`,R,c(e.message),1))],2))),128))])]),_:1},8,[`show`])])]))}}),[[`__scopeId`,`data-v-abf9dd5b`]]);export{z as default};