hermes-web-ui 0.2.3 → 0.2.4

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 (74) hide show
  1. package/dist/assets/{Button-CQLKwjHl.js → Button-sJ2BpaPl.js} +3 -3
  2. package/dist/assets/{ChannelsView-BWEvTQwM.css → ChannelsView-C2h4_vNn.css} +1 -1
  3. package/dist/assets/ChannelsView-CD_79lUP.js +1 -0
  4. package/dist/assets/ChatView-CLIjlJ1x.js +142 -0
  5. package/dist/assets/{ChatView-CGsFaSiv.css → ChatView-CX_ZYhvz.css} +1 -1
  6. package/dist/assets/{Close-inn9RP7R.js → Close-2w73mIOt.js} +2 -2
  7. package/dist/assets/{FormItem-BvJieJmq.js → FormItem-XpOdWzQ0.js} +3 -3
  8. package/dist/assets/{Input-edKmVCeM.js → Input-BzhYBEbH.js} +2 -2
  9. package/dist/assets/{InputNumber-BpYEJnKY.js → InputNumber-8txyKuLX.js} +2 -2
  10. package/dist/assets/JobsView-C-1FgnDL.js +2 -0
  11. package/dist/assets/{JobsView-DkwaDky6.css → JobsView-OYrxaGgM.css} +1 -1
  12. package/dist/assets/LoginView-BD15AZNF.js +1 -0
  13. package/dist/assets/LogsView-DmQ4ttpe.js +1 -0
  14. package/dist/assets/LogsView-DzYGlYxF.css +1 -0
  15. package/dist/assets/{MarkdownRenderer-Yw5JS7CE.js → MarkdownRenderer-DJm5zGZj.js} +9 -9
  16. package/dist/assets/MemoryView-DBtvO2X2.js +5 -0
  17. package/dist/assets/MemoryView-WR7DvkW0.css +1 -0
  18. package/dist/assets/{Modal-CDRYujZp.js → Modal-D421R1s7.js} +4 -4
  19. package/dist/assets/{ModelsView-CLdtVeiJ.css → ModelsView-Dm1vBT2p.css} +1 -1
  20. package/dist/assets/ModelsView-Dt3deKCr.js +1 -0
  21. package/dist/assets/{Popover-CRhyj79I.js → Popover-pOQtxFC1.js} +2 -2
  22. package/dist/assets/Select-rOqAn7Lj.js +340 -0
  23. package/dist/assets/SettingRow-CndAlF8Z.js +1 -0
  24. package/dist/assets/SettingsView-CIcrKeJw.css +1 -0
  25. package/dist/assets/SettingsView-CxEQl8Fh.js +352 -0
  26. package/dist/assets/{SkillsView-Abm6Dt2r.css → SkillsView-4FLTf1XD.css} +1 -1
  27. package/dist/assets/SkillsView-BopVAaC6.js +1 -0
  28. package/dist/assets/{Spin-COypV4Iq.js → Spin-CaLC5eru.js} +2 -2
  29. package/dist/assets/Suffix-C1X_jn5E.js +101 -0
  30. package/dist/assets/{Switch-BcUqwhfi.js → Switch-BeZgnVyD.js} +2 -2
  31. package/dist/assets/{Tag-CVO-_zgr.js → Tag-DFrN7AVl.js} +2 -2
  32. package/dist/assets/{Tooltip-BljrRE17.js → Tooltip-ClSL1Ac2.js} +1 -1
  33. package/dist/assets/{UsageView-CXSijPwc.css → UsageView-Bdck_cnA.css} +1 -1
  34. package/dist/assets/UsageView-BvGRIGlC.js +1 -0
  35. package/dist/assets/{_plugin-vue_export-helper-DJRCopG_.js → _plugin-vue_export-helper-DQGaK6t5.js} +2 -2
  36. package/dist/assets/app-DHhjDueA.js +1 -0
  37. package/dist/assets/app-DqRfMAIZ.js +1 -0
  38. package/dist/assets/browser-Bf2Q3p4g.js +47 -0
  39. package/dist/assets/chat-B0V07VGa.js +6 -0
  40. package/dist/assets/context-Bm7UPqDk.js +1 -0
  41. package/dist/assets/{index-BZ3NfTDJ.css → index-BR3ulF5g.css} +1 -1
  42. package/dist/assets/{index-Bj9YOu02.js → index-Bdq3IZmO.js} +4 -4
  43. package/dist/assets/jobs-QM3wEm9o.js +1 -0
  44. package/dist/assets/pinia-bZ6_VpBU.js +1 -0
  45. package/dist/assets/{router--r9mOZY5.js → router-Ddepf70Q.js} +2 -2
  46. package/dist/assets/{sessions-COjIc6fz.js → sessions-r2FX4lYx.js} +1 -1
  47. package/dist/assets/{skills-C4yD0aCK.js → skills-DtNdlEJd.js} +1 -1
  48. package/dist/assets/{use-message-D8bO1GLN.js → use-message-DAtcV1hg.js} +1 -1
  49. package/dist/index.html +17 -17
  50. package/dist/server/services/auth.js +3 -1
  51. package/package.json +1 -1
  52. package/dist/assets/ChannelsView-Bdv3P2Rv.js +0 -1
  53. package/dist/assets/ChatView-BGSDL0hI.js +0 -142
  54. package/dist/assets/JobsView-Dx4HmGC6.js +0 -2
  55. package/dist/assets/LoginView-CIQSZ6bh.js +0 -1
  56. package/dist/assets/LogsView-B2TeFIUX.css +0 -1
  57. package/dist/assets/LogsView-nn7t6RGX.js +0 -1
  58. package/dist/assets/MemoryView-CE9P7mef.js +0 -5
  59. package/dist/assets/MemoryView-CHeaa1-C.css +0 -1
  60. package/dist/assets/ModelsView-B72PAvvd.js +0 -1
  61. package/dist/assets/Select-CXQmv_5e.js +0 -340
  62. package/dist/assets/SettingRow-B3O4TYKh.js +0 -1
  63. package/dist/assets/SettingsView-BF2Uh-Eo.js +0 -352
  64. package/dist/assets/SettingsView-Cl1ts-YY.css +0 -1
  65. package/dist/assets/SkillsView-CeUPV9g8.js +0 -1
  66. package/dist/assets/Suffix-Bs0SC_yA.js +0 -101
  67. package/dist/assets/UsageView-CFH6hwxE.js +0 -1
  68. package/dist/assets/app-BcCNNvPk.js +0 -1
  69. package/dist/assets/app-CMJknO_z.js +0 -1
  70. package/dist/assets/browser-BuJOvks2.js +0 -47
  71. package/dist/assets/chat-DIeO-6BT.js +0 -6
  72. package/dist/assets/context-C8Jv60vX.js +0 -1
  73. package/dist/assets/jobs-CnB9OiiZ.js +0 -1
  74. package/dist/assets/pinia-YU9i-6Bb.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./router--r9mOZY5.js";async function t(t,n){let r=new URLSearchParams;t&&r.set(`source`,t),n&&r.set(`limit`,String(n));let i=r.toString();return(await e(`/api/sessions${i?`?${i}`:``}`)).sessions}async function n(t){try{return(await e(`/api/sessions/${t}`)).session}catch{return null}}async function r(t){try{return await e(`/api/sessions/${t}`,{method:`DELETE`}),!0}catch{return!1}}async function i(t,n){try{return await e(`/api/sessions/${t}/rename`,{method:`POST`,body:JSON.stringify({title:n})}),!0}catch{return!1}}export{i,n,t as r,r as t};
1
+ import{o as e}from"./router-Ddepf70Q.js";async function t(t,n){let r=new URLSearchParams;t&&r.set(`source`,t),n&&r.set(`limit`,String(n));let i=r.toString();return(await e(`/api/sessions${i?`?${i}`:``}`)).sessions}async function n(t){try{return(await e(`/api/sessions/${t}`)).session}catch{return null}}async function r(t){try{return await e(`/api/sessions/${t}`,{method:`DELETE`}),!0}catch{return!1}}async function i(t,n){try{return await e(`/api/sessions/${t}/rename`,{method:`POST`,body:JSON.stringify({title:n})}),!0}catch{return!1}}export{i,n,t as r,r as t};
@@ -1 +1 @@
1
- import{a as e}from"./router--r9mOZY5.js";async function t(){return(await e(`/api/skills`)).categories}async function n(t){return(await e(`/api/skills/${t}`)).content}async function r(t,n){return(await e(`/api/skills/${t}/${n}/files`)).files}async function i(){return e(`/api/memory`)}async function a(t,n){await e(`/api/memory`,{method:`POST`,body:JSON.stringify({section:t,content:n})})}async function o(t,n){await e(`/api/skills/toggle`,{method:`PUT`,body:JSON.stringify({name:t,enabled:n})})}export{a,t as i,n,o,r,i as t};
1
+ import{o as e}from"./router-Ddepf70Q.js";async function t(){return(await e(`/api/skills`)).categories}async function n(t){return(await e(`/api/skills/${t}`)).content}async function r(t,n){return(await e(`/api/skills/${t}/${n}/files`)).files}async function i(){return e(`/api/memory`)}async function a(t,n){await e(`/api/memory`,{method:`POST`,body:JSON.stringify({section:t,content:n})})}async function o(t,n){await e(`/api/skills/toggle`,{method:`PUT`,body:JSON.stringify({name:t,enabled:n})})}export{a,t as i,n,o,r,i as t};
@@ -1 +1 @@
1
- import{P as e}from"./router--r9mOZY5.js";import{J as t}from"./browser-BuJOvks2.js";import{t as n}from"./context-C8Jv60vX.js";function r(){let r=e(n,null);return r===null&&t(`use-message`,"No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),r}export{r as t};
1
+ import{F as e}from"./router-Ddepf70Q.js";import{J as t}from"./browser-Bf2Q3p4g.js";import{t as n}from"./context-Bm7UPqDk.js";function r(){let r=e(n,null);return r===null&&t(`use-message`,"No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),r}export{r as t};
package/dist/index.html CHANGED
@@ -6,25 +6,25 @@
6
6
  <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
8
  <title>Hermes</title>
9
- <script type="module" crossorigin src="/assets/index-Bj9YOu02.js"></script>
10
- <link rel="modulepreload" crossorigin href="/assets/router--r9mOZY5.js">
11
- <link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-DJRCopG_.js">
12
- <link rel="modulepreload" crossorigin href="/assets/browser-BuJOvks2.js">
13
- <link rel="modulepreload" crossorigin href="/assets/Suffix-Bs0SC_yA.js">
14
- <link rel="modulepreload" crossorigin href="/assets/Close-inn9RP7R.js">
15
- <link rel="modulepreload" crossorigin href="/assets/Popover-CRhyj79I.js">
16
- <link rel="modulepreload" crossorigin href="/assets/Button-CQLKwjHl.js">
17
- <link rel="modulepreload" crossorigin href="/assets/Tag-CVO-_zgr.js">
18
- <link rel="modulepreload" crossorigin href="/assets/Select-CXQmv_5e.js">
19
- <link rel="modulepreload" crossorigin href="/assets/Modal-CDRYujZp.js">
9
+ <script type="module" crossorigin src="/assets/index-Bdq3IZmO.js"></script>
10
+ <link rel="modulepreload" crossorigin href="/assets/router-Ddepf70Q.js">
11
+ <link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-DQGaK6t5.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/browser-Bf2Q3p4g.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/Suffix-C1X_jn5E.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/Close-2w73mIOt.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/Popover-pOQtxFC1.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/Button-sJ2BpaPl.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/Tag-DFrN7AVl.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/Select-rOqAn7Lj.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/Modal-D421R1s7.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/omit-QZj0aLfU.js">
21
- <link rel="modulepreload" crossorigin href="/assets/context-C8Jv60vX.js">
22
- <link rel="modulepreload" crossorigin href="/assets/pinia-YU9i-6Bb.js">
23
- <link rel="modulepreload" crossorigin href="/assets/sessions-COjIc6fz.js">
24
- <link rel="modulepreload" crossorigin href="/assets/app-BcCNNvPk.js">
25
- <link rel="modulepreload" crossorigin href="/assets/chat-DIeO-6BT.js">
21
+ <link rel="modulepreload" crossorigin href="/assets/context-Bm7UPqDk.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/pinia-bZ6_VpBU.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/sessions-r2FX4lYx.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/app-DHhjDueA.js">
25
+ <link rel="modulepreload" crossorigin href="/assets/chat-B0V07VGa.js">
26
26
  <link rel="modulepreload" crossorigin href="/assets/logo-CiQBpLPw.js">
27
- <link rel="stylesheet" crossorigin href="/assets/index-BZ3NfTDJ.css">
27
+ <link rel="stylesheet" crossorigin href="/assets/index-BR3ulF5g.css">
28
28
  </head>
29
29
 
30
30
  <body>
@@ -53,7 +53,9 @@ async function authMiddleware(token) {
53
53
  return;
54
54
  }
55
55
  const auth = ctx.headers.authorization || '';
56
- const provided = auth.startsWith('Bearer ') ? auth.slice(7) : '';
56
+ const provided = auth.startsWith('Bearer ')
57
+ ? auth.slice(7)
58
+ : ctx.query.token || '';
57
59
  if (!provided || provided !== token) {
58
60
  ctx.status = 401;
59
61
  ctx.set('Content-Type', 'application/json');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermes-web-ui",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Hermes Agent Web UI - Chat and Job Management Dashboard",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,H as r,K as i,O as a,S as o,T as s,U as c,W as l,Z as u,ft as d,ht as f,k as p,pt as m,q as h,st as g,v as _,w as v}from"./router--r9mOZY5.js";import{r as y,t as b}from"./_plugin-vue_export-helper-DJRCopG_.js";import{t as x}from"./Button-CQLKwjHl.js";import{t as S}from"./Input-edKmVCeM.js";import{t as C}from"./Tag-CVO-_zgr.js";import{t as w}from"./use-message-D8bO1GLN.js";import{t as T}from"./Spin-COypV4Iq.js";import{t as E}from"./Switch-BcUqwhfi.js";import{a as D,i as O,n as k,o as A,r as j,t as M}from"./SettingRow-B3O4TYKh.js";var N={class:`platform-info`},P=[`innerHTML`],F={class:`platform-name`},I={key:0,class:`platform-card-body`},L=b(e({__name:`PlatformCard`,props:{name:{},icon:{},config:{},credentials:{}},setup(e){let r=e,i=g(!0),{t:c}=y(),_=o(()=>{let e=r.credentials;if(!e)return!1;let t=[`token`,`api_key`,`app_id`,`client_id`,`secret`,`app_secret`,`client_secret`,`access_token`,`bot_id`,`account_id`,`enabled`];return[e,e.extra].filter(Boolean).some(e=>t.some(t=>{let n=e[t];return n!=null&&n!==``&&n!==!1}))});return(r,o)=>(l(),n(`div`,{class:m([`platform-card`,{configured:_.value}])},[t(`div`,{class:`platform-card-header`,onClick:o[0]||=e=>i.value=!i.value},[t(`div`,N,[t(`span`,{class:`platform-icon`,innerHTML:e.icon},null,8,P),t(`span`,F,f(e.name),1),p(d(C),{type:_.value?`success`:`default`,size:`small`,round:``},{default:u(()=>[a(f(_.value?d(c)(`common.configured`):d(c)(`common.notConfigured`)),1)]),_:1},8,[`type`])]),t(`span`,{class:m([`expand-icon`,{expanded:i.value}])},`▾`,2)]),i.value?(l(),n(`div`,I,[h(r.$slots,`default`,{},void 0,!0)])):s(``,!0)],2))}}),[[`__scopeId`,`data-v-ee5f4168`]]),R={class:`settings-section`},z={class:`weixin-qr-section`},B={key:1,class:`weixin-qr-loading`},V={key:2,class:`weixin-qr-hint`},H=b(e({__name:`PlatformSettings`,setup(e){let r=k(),o=w(),{t:m}=y();async function h(e,t){try{await r.saveSection(e,t),o.success(m(`settings.saved`))}catch{o.error(m(`settings.saveFailed`))}}async function b(e,t){try{await D(e,t),await r.fetchSettings(),o.success(m(`settings.saved`))}catch{o.error(m(`settings.saveFailed`))}}function C(e){return r.platforms[e]||{}}let N=g(``),P=g(``),F=g(`idle`),I=null;async function H(){F.value=`loading`,N.value=``,P.value=``,W();try{let e=await j();P.value=e.qrcode,N.value=e.qrcode_url,window.open(e.qrcode_url,`_blank`),F.value=`waiting`,U()}catch(e){F.value=`error`,o.error(e.message||`Failed to get QR code`)}}function U(){P.value&&(I=setTimeout(async()=>{try{let e=await O(P.value);e.status===`wait`?U():e.status===`scaned`?(F.value=`scaned`,U()):e.status===`expired`?F.value=`expired`:e.status===`confirmed`&&(F.value=`confirmed`,await A({account_id:e.account_id,token:e.token,base_url:e.base_url}),await r.fetchSettings(),o.success(m(`settings.saved`)))}catch{U()}},3e3))}function W(){I&&=(clearTimeout(I),null)}c(()=>{W()});let G=[{key:`telegram`,name:`Telegram`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.479.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>`},{key:`discord`,name:`Discord`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189z"/></svg>`},{key:`slack`,name:`Slack`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 0a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V5.042zm-1.27 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.27a2.527 2.527 0 0 1 2.523-2.52h6.313A2.528 2.528 0 0 1 24 18.956a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>`},{key:`whatsapp`,name:`WhatsApp`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg>`},{key:`matrix`,name:`Matrix`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.48.324.448.217.786.619 1.017 1.205.24-.376.558-.702.956-.98.398-.277.872-.414 1.424-.414.41 0 .784.065 1.122.194.34.13.629.325.87.588.241.263.428.59.56.984.132.393.198.85.198 1.368v5.89h-2.49v-4.893c0-.268-.016-.525-.048-.77a1.627 1.627 0 00-.2-.63 1.028 1.028 0 00-.392-.426 1.294 1.294 0 00-.616-.134c-.277 0-.508.05-.693.15a1.043 1.043 0 00-.43.41 1.768 1.768 0 00-.214.616 4.15 4.15 0 00-.06.74v4.937H9.29v-4.937c0-.25-.01-.498-.032-.742a1.84 1.84 0 00-.166-.638.998.998 0 00-.363-.448 1.206 1.206 0 00-.624-.154c-.26 0-.483.048-.67.144a1.055 1.055 0 00-.436.402 1.744 1.744 0 00-.227.616 4.108 4.108 0 00-.063.74v4.937H5.21V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z"/></svg>`},{key:`feishu`,name:`Feishu`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.59 3.41a2.25 2.25 0 0 1 3.182 0L13.5 7.14l-3.182 3.182L6.59 7.59a2.25 2.25 0 0 1 0-3.182zm5.303 5.303L15.075 5.53a2.25 2.25 0 0 1 3.182 3.182L15.075 11.894 11.893 8.713zM3.41 6.59a2.25 2.25 0 0 1 3.182 0l3.182 3.182-3.182 3.182a2.25 2.25 0 0 1-3.182-3.182L3.41 6.59zm5.303 5.303L11.894 15.075a2.25 2.25 0 0 1-3.182 3.182L5.53 15.075 8.713 11.893zm5.303-5.303L17.478 9.778a2.25 2.25 0 0 1-3.182 3.182L10.53 10.075l3.182-3.182 0 .023z"/></svg>`},{key:`weixin`,name:`Weixin`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>`},{key:`wecom`,name:`WeCom`,icon:`<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 01.213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 00.167-.054l1.903-1.114a.864.864 0 01.717-.098 10.16 10.16 0 002.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178A1.17 1.17 0 014.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 01-1.162 1.178 1.17 1.17 0 01-1.162-1.178c0-.651.52-1.18 1.162-1.18zm3.68 4.025c-3.694 0-6.69 2.462-6.69 5.496 0 3.034 2.996 5.496 6.69 5.496.753 0 1.477-.1 2.158-.28a.66.66 0 01.548.074l1.46.854a.25.25 0 00.127.041.224.224 0 00.221-.225c0-.055-.022-.109-.037-.162l-.298-1.131a.453.453 0 01.163-.509C21.81 18.613 22.77 16.973 22.77 15.512c0-3.034-2.996-5.496-6.69-5.496h.198zm-2.454 3.347c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902zm4.912 0c.491 0 .889.404.889.902a.896.896 0 01-.889.903.896.896 0 01-.889-.903c0-.498.398-.902.889-.902z"/></svg>`}];return(e,o)=>(l(),n(`section`,R,[(l(),n(_,null,i(G,e=>p(L,{key:e.key,name:e.name,icon:e.icon,config:d(r)[e.key],credentials:C(e.key)},{default:u(()=>[e.key===`telegram`?(l(),n(_,{key:0},[p(M,{label:d(m)(`platform.botToken`),hint:d(m)(`platform.botTokenHint`)},{default:u(()=>[p(d(S),{value:C(`telegram`).token||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`123456:ABC-DEF...`,"onUpdate:value":o[0]||=e=>b(`telegram`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionGroup`)},{default:u(()=>[p(d(E),{value:d(r).telegram.require_mention,"onUpdate:value":o[1]||=e=>h(`telegram`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.reactions`),hint:d(m)(`platform.reactionsHint`)},{default:u(()=>[p(d(E),{value:d(r).telegram.reactions,"onUpdate:value":o[2]||=e=>h(`telegram`,{reactions:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseChats`),hint:d(m)(`platform.freeResponseChatsHint`)},{default:u(()=>[p(d(S),{value:d(r).telegram.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":o[3]||=e=>h(`telegram`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.mentionPatterns`),hint:d(m)(`platform.mentionPatternsHint`)},{default:u(()=>[p(d(S),{value:(d(r).telegram.mention_patterns||[]).join(`, `),size:`small`,placeholder:`pattern1, pattern2`,"onUpdate:value":o[4]||=e=>h(`telegram`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`discord`?(l(),n(_,{key:1},[p(M,{label:d(m)(`platform.botToken`),hint:d(m)(`platform.botTokenHint`)},{default:u(()=>[p(d(S),{value:C(`discord`).token||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Bot token...`,"onUpdate:value":o[5]||=e=>b(`discord`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionChannel`)},{default:u(()=>[p(d(E),{value:d(r).discord.require_mention,"onUpdate:value":o[6]||=e=>h(`discord`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.autoThread`),hint:d(m)(`platform.autoThreadHint`)},{default:u(()=>[p(d(E),{value:d(r).discord.auto_thread,"onUpdate:value":o[7]||=e=>h(`discord`,{auto_thread:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.reactions`),hint:d(m)(`platform.reactionsHint`)},{default:u(()=>[p(d(E),{value:d(r).discord.reactions,"onUpdate:value":o[8]||=e=>h(`discord`,{reactions:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseChannels`),hint:d(m)(`platform.freeResponseChannelsHint`)},{default:u(()=>[p(d(S),{value:d(r).discord.free_response_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":o[9]||=e=>h(`discord`,{free_response_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.allowedChannels`),hint:d(m)(`platform.allowedChannelsHint`)},{default:u(()=>[p(d(S),{value:d(r).discord.allowed_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":o[10]||=e=>h(`discord`,{allowed_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.ignoredChannels`),hint:d(m)(`platform.ignoredChannelsHint`)},{default:u(()=>[p(d(S),{value:d(r).discord.ignored_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":o[11]||=e=>h(`discord`,{ignored_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.noThreadChannels`),hint:d(m)(`platform.noThreadChannelsHint`)},{default:u(()=>[p(d(S),{value:d(r).discord.no_thread_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":o[12]||=e=>h(`discord`,{no_thread_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`slack`?(l(),n(_,{key:2},[p(M,{label:d(m)(`platform.botToken`),hint:d(m)(`platform.botTokenHint`)},{default:u(()=>[p(d(S),{value:C(`slack`).token||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`xoxb-...`,"onUpdate:value":o[13]||=e=>b(`slack`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionChannel`)},{default:u(()=>[p(d(E),{value:d(r).slack.require_mention,"onUpdate:value":o[14]||=e=>h(`slack`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.allowBots`),hint:d(m)(`platform.allowBotsHint`)},{default:u(()=>[p(d(E),{value:d(r).slack.allow_bots,"onUpdate:value":o[15]||=e=>h(`slack`,{allow_bots:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseChannels`),hint:d(m)(`platform.freeResponseChannelsHint`)},{default:u(()=>[p(d(S),{value:d(r).slack.free_response_channels||``,size:`small`,placeholder:`channel_id1,channel_id2`,"onUpdate:value":o[16]||=e=>h(`slack`,{free_response_channels:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`whatsapp`?(l(),n(_,{key:3},[p(M,{label:d(m)(`platform.waEnabled`),hint:d(m)(`platform.waEnabledHint`)},{default:u(()=>[p(d(E),{value:C(`whatsapp`).enabled,"onUpdate:value":o[17]||=e=>b(`whatsapp`,{enabled:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionGroup`)},{default:u(()=>[p(d(E),{value:d(r).whatsapp.require_mention,"onUpdate:value":o[18]||=e=>h(`whatsapp`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseChats`),hint:d(m)(`platform.freeResponseChatsHint`)},{default:u(()=>[p(d(S),{value:d(r).whatsapp.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":o[19]||=e=>h(`whatsapp`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.mentionPatterns`),hint:d(m)(`platform.mentionPatternsHint`)},{default:u(()=>[p(d(S),{value:(d(r).whatsapp.mention_patterns||[]).join(`, `),size:`small`,placeholder:`pattern1, pattern2`,"onUpdate:value":o[20]||=e=>h(`whatsapp`,{mention_patterns:e?e.split(`,`).map(e=>e.trim()):[]})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`matrix`?(l(),n(_,{key:4},[p(M,{label:d(m)(`platform.accessToken`),hint:d(m)(`platform.accessTokenHint`)},{default:u(()=>[p(d(S),{value:C(`matrix`).token||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`syt_...`,"onUpdate:value":o[21]||=e=>b(`matrix`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.homeserver`),hint:d(m)(`platform.homeserverHint`)},{default:u(()=>[p(d(S),{value:C(`matrix`).extra?.homeserver||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`https://matrix.org`,"onUpdate:value":o[22]||=e=>b(`matrix`,{extra:{...C(`matrix`).extra,homeserver:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionRoom`)},{default:u(()=>[p(d(E),{value:d(r).matrix.require_mention,"onUpdate:value":o[23]||=e=>h(`matrix`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.autoThread`),hint:d(m)(`platform.autoThreadHintRoom`)},{default:u(()=>[p(d(E),{value:d(r).matrix.auto_thread,"onUpdate:value":o[24]||=e=>h(`matrix`,{auto_thread:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.dmMentionThreads`),hint:d(m)(`platform.dmMentionThreadsHint`)},{default:u(()=>[p(d(E),{value:d(r).matrix.dm_mention_threads,"onUpdate:value":o[25]||=e=>h(`matrix`,{dm_mention_threads:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseRooms`),hint:d(m)(`platform.freeResponseRoomsHint`)},{default:u(()=>[p(d(S),{value:d(r).matrix.free_response_rooms||``,size:`small`,placeholder:`room_id1,room_id2`,"onUpdate:value":o[26]||=e=>h(`matrix`,{free_response_rooms:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`feishu`?(l(),n(_,{key:5},[p(M,{label:d(m)(`platform.appId`),hint:d(m)(`platform.appIdHint`)},{default:u(()=>[p(d(S),{value:C(`feishu`).extra?.app_id||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`cli_...`,"onUpdate:value":o[27]||=e=>b(`feishu`,{extra:{...C(`feishu`).extra,app_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.appSecret`),hint:d(m)(`platform.appSecretHint`)},{default:u(()=>[p(d(S),{value:C(`feishu`).extra?.app_secret||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`App Secret`,"onUpdate:value":o[28]||=e=>b(`feishu`,{extra:{...C(`feishu`).extra,app_secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionGroup`)},{default:u(()=>[p(d(E),{value:d(r).feishu.require_mention,"onUpdate:value":o[29]||=e=>h(`feishu`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseChats`),hint:d(m)(`platform.freeResponseChatsHint`)},{default:u(()=>[p(d(S),{value:d(r).feishu.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":o[30]||=e=>h(`feishu`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`dingtalk`?(l(),n(_,{key:6},[p(M,{label:d(m)(`platform.clientId`),hint:d(m)(`platform.clientIdHint`)},{default:u(()=>[p(d(S),{value:C(`dingtalk`).extra?.client_id||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Client ID`,"onUpdate:value":o[31]||=e=>b(`dingtalk`,{extra:{...C(`dingtalk`).extra,client_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.clientSecret`),hint:d(m)(`platform.clientSecretHint`)},{default:u(()=>[p(d(S),{value:C(`dingtalk`).extra?.client_secret||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Client Secret`,"onUpdate:value":o[32]||=e=>b(`dingtalk`,{extra:{...C(`dingtalk`).extra,client_secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.requireMention`),hint:d(m)(`platform.requireMentionGroup`)},{default:u(()=>[p(d(E),{value:d(r).dingtalk.require_mention,"onUpdate:value":o[33]||=e=>h(`dingtalk`,{require_mention:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.freeResponseChats`),hint:d(m)(`platform.freeResponseChatsHint`)},{default:u(()=>[p(d(S),{value:d(r).dingtalk.free_response_chats||``,size:`small`,placeholder:`chat_id1,chat_id2`,"onUpdate:value":o[34]||=e=>h(`dingtalk`,{free_response_chats:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`weixin`?(l(),n(_,{key:7},[t(`div`,z,[F.value===`idle`||F.value===`error`||F.value===`expired`||F.value===`confirmed`?(l(),v(d(x),{key:0,type:`primary`,size:`small`,onClick:H},{default:u(()=>[a(f(F.value===`confirmed`?d(m)(`platform.qrRelogin`):d(m)(`platform.qrLogin`)),1)]),_:1})):s(``,!0),F.value===`loading`?(l(),n(`div`,B,[p(d(T),{size:`small`}),t(`span`,null,f(d(m)(`platform.qrFetching`)),1)])):s(``,!0),F.value===`waiting`||F.value===`scaned`?(l(),n(`div`,V,f(F.value===`scaned`?d(m)(`platform.qrScanedHint`):d(m)(`platform.qrScanHint`)),1)):s(``,!0)]),p(M,{label:d(m)(`platform.weixinToken`),hint:d(m)(`platform.weixinTokenHint`)},{default:u(()=>[p(d(S),{value:C(`weixin`).token||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Token`,"onUpdate:value":o[35]||=e=>b(`weixin`,{token:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.accountId`),hint:d(m)(`platform.accountIdHint`)},{default:u(()=>[p(d(S),{value:C(`weixin`).extra?.account_id||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Account ID`,"onUpdate:value":o[36]||=e=>b(`weixin`,{extra:{...C(`weixin`).extra,account_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0),e.key===`wecom`?(l(),n(_,{key:8},[p(M,{label:d(m)(`platform.botId`),hint:d(m)(`platform.botIdHint`)},{default:u(()=>[p(d(S),{value:C(`wecom`).extra?.bot_id||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Bot ID`,"onUpdate:value":o[37]||=e=>b(`wecom`,{extra:{...C(`wecom`).extra,bot_id:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),p(M,{label:d(m)(`platform.appSecret`),hint:d(m)(`platform.wecomSecretHint`)},{default:u(()=>[p(d(S),{value:C(`wecom`).extra?.secret||``,clearable:``,size:`small`,style:{width:`300px`},placeholder:`Secret`,"onUpdate:value":o[38]||=e=>b(`wecom`,{extra:{...C(`wecom`).extra,secret:e}})},null,8,[`value`])]),_:1},8,[`label`,`hint`])],64)):s(``,!0)]),_:2},1032,[`name`,`icon`,`config`,`credentials`])),64))]))}}),[[`__scopeId`,`data-v-afd5f277`]]),U={class:`channels-view`},W={class:`channels-header`},G={class:`header-title`},K={class:`channels-content`},q=b(e({__name:`ChannelsView`,setup(e){let i=k(),{t:a}=y();return r(()=>{i.fetchSettings()}),(e,r)=>(l(),n(`div`,U,[t(`header`,W,[t(`h2`,G,f(d(a)(`sidebar.channels`)),1)]),t(`div`,K,[p(d(T),{show:d(i).loading},{default:u(()=>[p(H)]),_:1},8,[`show`])])]))}}),[[`__scopeId`,`data-v-ceb983fe`]]);export{q as default};
@@ -1,142 +0,0 @@
1
- import{A as e,B as t,C as n,E as r,G as i,H as a,I as o,K as s,L as c,M as l,O as u,P as d,Q as f,S as p,T as m,W as h,Y as g,Z as _,at as v,ft as y,g as b,h as x,ht as S,k as C,ot as w,p as T,pt as E,st as D,u as O,ut as k,v as A,w as j,z as M}from"./router--r9mOZY5.js";import{r as N,t as P}from"./_plugin-vue_export-helper-DJRCopG_.js";import{B as F,K as ee,Q as I,W as L,Y as R,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 J,tt as te,ut as ne,z as Y}from"./browser-BuJOvks2.js";import{A as re,C as ie,D as ae,E as oe,L as se,P as ce,_ as le,a as ue,h as de,i as fe,l as X,n as pe,o as me,r as he,t as ge,u as _e,w as ve}from"./Popover-CRhyj79I.js";import{_ as Z,c as ye,g as be,l as xe,r as Se,v as Q}from"./Suffix-Bs0SC_yA.js";import{c as Ce,f as we,t as Te}from"./Modal-CDRYujZp.js";import{r as Ee,t as $}from"./Button-CQLKwjHl.js";import{t as De}from"./omit-QZj0aLfU.js";import{t as Oe}from"./Input-edKmVCeM.js";import{t as ke}from"./Tooltip-BljrRE17.js";import{t as Ae}from"./use-message-D8bO1GLN.js";import{t as je}from"./logo-CiQBpLPw.js";import{t as Me}from"./app-BcCNNvPk.js";import{t as Ne}from"./chat-DIeO-6BT.js";import{i as Pe}from"./sessions-COjIc6fz.js";import{t as Fe}from"./MarkdownRenderer-Yw5JS7CE.js";function Ie(e={},n){let r=v({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=()=>{(n===void 0||n.value)&&(Q(`keydown`,document,o),Q(`keyup`,document,s)),n!==void 0&&g(n,e=>{e?(Q(`keydown`,document,o),Q(`keyup`,document,s)):(Z(`keydown`,document,o),Z(`keyup`,document,s))})};return ce()?(M(c),t(()=>{(n===void 0||n.value)&&(Z(`keydown`,document,o),Z(`keyup`,document,s))})):c(),w(r)}function Le(e,t,n){if(!t)return e;let r=D(e.value),i=null;return g(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 Re(e){return t=>{t?e.value=t.$el:e.value=null}}var ze=e({name:`ChevronRight`,render(){return l(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},l(`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`}))}}),Be={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 Ve(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({},Be),{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:te(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 He=J({name:`Dropdown`,common:G,peers:{Popover:fe},self:Ve}),Ue=I(`n-dropdown-menu`),We=I(`n-dropdown`),Ge=I(`n-dropdown-option`),Ke=e({name:`DropdownDivider`,props:{clsPrefix:{type:String,required:!0}},render(){return l(`div`,{class:`${this.clsPrefix}-dropdown-divider`})}}),qe=e({name:`DropdownGroupHeader`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){let{showIconRef:e,hasSubmenuRef:t}=d(Ue),{renderLabelRef:n,labelFieldRef:r,nodePropsRef:i,renderOptionRef:a}=d(We);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=l(`div`,Object.assign({class:`${e}-dropdown-option`},r?.(o)),l(`div`,{class:`${e}-dropdown-option-body ${e}-dropdown-option-body--group`},l(`div`,{"data-dropdown-option":!0,class:[`${e}-dropdown-option-body__prefix`,n&&`${e}-dropdown-option-body__prefix--show-icon`]},X(o.icon)),l(`div`,{class:`${e}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(o):X(o.title??o[this.labelField])),l(`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 Je(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 Ye={name:`Icon`,common:G,self:Je},Xe=K(`icon`,`
2
- height: 1em;
3
- width: 1em;
4
- line-height: 1em;
5
- text-align: center;
6
- display: inline-block;
7
- position: relative;
8
- fill: currentColor;
9
- `,[W(`color-transition`,{transition:`color .3s var(--n-bezier)`}),W(`depth`,{color:`var(--n-color)`},[z(`svg`,{opacity:`var(--n-opacity)`,transition:`opacity .3s var(--n-bezier)`})]),z(`svg`,{height:`1em`,width:`1em`})]),Ze=e({_n_icon__:!0,name:`Icon`,inheritAttrs:!1,props:Object.assign(Object.assign({},B.props),{depth:[String,Number],size:[Number,String],color:String,component:[Object,Function]}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n}=F(e),r=B(`Icon`,`-icon`,Xe,Ye,e,t),i=p(()=>{let{depth:t}=e,{common:{cubicBezierEaseInOut:n},self:i}=r.value;if(t!==void 0){let{color:e,[`opacity${t}Depth`]:r}=i;return{"--n-bezier":n,"--n-color":e,"--n-opacity":r}}return{"--n-bezier":n,"--n-color":``,"--n-opacity":``}}),a=n?Y(`icon`,p(()=>`${e.depth||`d`}`),i,e):void 0;return{mergedClsPrefix:t,mergedStyle:p(()=>{let{size:t,color:n}=e;return{fontSize:de(t),color:n}}),cssVars:n?void 0:i,themeClass:a?.themeClass,onRender:a?.onRender}},render(){let{$parent:e,depth:t,mergedClsPrefix:n,component:r,onRender:i,themeClass:a}=this;return e?.$options?._n_icon__&&R(`icon`,"don't wrap `n-icon` inside `n-icon`"),i?.(),l(`i`,o(this.$attrs,{role:`img`,class:[`${n}-icon`,a,{[`${n}-icon--depth`]:t,[`${n}-icon--color-transition`]:t!==void 0}],style:[this.cssVars,this.mergedStyle]}),r?l(r):this.$slots)}});function Qe(e,t){return e.type===`submenu`||e.type===void 0&&e[t]!==void 0}function $e(e){return e.type===`group`}function et(e){return e.type===`divider`}function tt(e){return e.type===`render`}var nt=e({name:`DropdownOption`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null},placement:{type:String,default:`right-start`},props:Object,scrollable:Boolean},setup(e){let t=d(We),{hoverKeyRef:n,keyboardKeyRef:r,lastToggledSubmenuKeyRef:a,pendingKeyPathRef:o,activeKeyPathRef:s,animatedRef:c,mergedShowRef:l,renderLabelRef:u,renderIconRef:f,labelFieldRef:m,childrenFieldRef:h,renderOptionRef:g,nodePropsRef:_,menuPropsRef:v}=t,y=d(Ge,null),b=d(Ue),x=d(oe),S=p(()=>e.tmNode.rawNode),C=p(()=>{let{value:t}=h;return Qe(e.tmNode.rawNode,t)}),w=p(()=>{let{disabled:t}=e.tmNode;return t}),T=Le(p(()=>{if(!C.value)return!1;let{key:t,disabled:i}=e.tmNode;if(i)return!1;let{value:s}=n,{value:c}=r,{value:l}=a,{value:u}=o;return s===null?c===null?l===null?!1:u.includes(t):u.includes(t)&&u[u.length-1]!==t:u.includes(t)}),300,p(()=>r.value===null&&!c.value)),E=p(()=>!!y?.enteringSubmenuRef.value),O=D(!1);i(Ge,{enteringSubmenuRef:O});function k(){O.value=!0}function A(){O.value=!1}function j(){let{parentKey:t,tmNode:i}=e;i.disabled||l.value&&(a.value=t,r.value=null,n.value=i.key)}function M(){let{tmNode:t}=e;t.disabled||l.value&&n.value!==t.key&&j()}function N(t){if(e.tmNode.disabled||!l.value)return;let{relatedTarget:r}=t;r&&!se({target:r},`dropdownOption`)&&!se({target:r},`scrollbarRail`)&&(n.value=null)}function P(){let{value:n}=C,{tmNode:r}=e;l.value&&!n&&!r.disabled&&(t.doSelect(r.key,r.rawNode),t.doUpdateShow(!1))}return{labelField:m,renderLabel:u,renderIcon:f,siblingHasIcon:b.showIconRef,siblingHasSubmenu:b.hasSubmenuRef,menuProps:v,popoverBody:x,animated:c,mergedShowSubmenu:p(()=>T.value&&!E.value),rawNode:S,hasSubmenu:C,pending:U(()=>{let{value:t}=o,{key:n}=e.tmNode;return t.includes(n)}),childActive:U(()=>{let{value:t}=s,{key:n}=e.tmNode,r=t.findIndex(e=>n===e);return r===-1?!1:r<t.length-1}),active:U(()=>{let{value:t}=s,{key:n}=e.tmNode,r=t.findIndex(e=>n===e);return r===-1?!1:r===t.length-1}),mergedDisabled:w,renderOption:g,nodeProps:_,handleClick:P,handleMouseMove:M,handleMouseEnter:j,handleMouseLeave:N,handleSubmenuBeforeEnter:k,handleSubmenuAfterEnter:A}},render(){let{animated:e,rawNode:t,mergedShowSubmenu:n,clsPrefix:r,siblingHasIcon:i,siblingHasSubmenu:a,renderLabel:s,renderIcon:c,renderOption:u,nodeProps:d,props:f,scrollable:p}=this,m=null;if(n){let e=this.menuProps?.call(this,t,t.children);m=l(at,Object.assign({},e,{clsPrefix:r,scrollable:this.scrollable,tmNodes:this.tmNode.children,parentKey:this.tmNode.key}))}let h={class:[`${r}-dropdown-option-body`,this.pending&&`${r}-dropdown-option-body--pending`,this.active&&`${r}-dropdown-option-body--active`,this.childActive&&`${r}-dropdown-option-body--child-active`,this.mergedDisabled&&`${r}-dropdown-option-body--disabled`],onMousemove:this.handleMouseMove,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onClick:this.handleClick},g=d?.(t),_=l(`div`,Object.assign({class:[`${r}-dropdown-option`,g?.class],"data-dropdown-option":!0},g),l(`div`,o(h,f),[l(`div`,{class:[`${r}-dropdown-option-body__prefix`,i&&`${r}-dropdown-option-body__prefix--show-icon`]},[c?c(t):X(t.icon)]),l(`div`,{"data-dropdown-option":!0,class:`${r}-dropdown-option-body__label`},s?s(t):X(t[this.labelField]??t.title)),l(`div`,{"data-dropdown-option":!0,class:[`${r}-dropdown-option-body__suffix`,a&&`${r}-dropdown-option-body__suffix--has-submenu`]},this.hasSubmenu?l(Ze,null,{default:()=>l(ze,null)}):null)]),this.hasSubmenu?l(ve,null,{default:()=>[l(ie,null,{default:()=>l(`div`,{class:`${r}-dropdown-offset-container`},l(le,{show:this.mergedShowSubmenu,placement:this.placement,to:p&&this.popoverBody||void 0,teleportDisabled:!p},{default:()=>l(`div`,{class:`${r}-dropdown-menu-wrapper`},e?l(O,{onBeforeEnter:this.handleSubmenuBeforeEnter,onAfterEnter:this.handleSubmenuAfterEnter,name:`fade-in-scale-up-transition`,appear:!0},{default:()=>m}):m)}))})]}):null);return u?u({node:_,option:t}):_}}),rt=e({name:`NDropdownGroup`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null}},render(){let{tmNode:e,parentKey:t,clsPrefix:n}=this,{children:r}=e;return l(A,null,l(qe,{clsPrefix:n,tmNode:e,key:e.key}),r?.map(e=>{let{rawNode:r}=e;return r.show===!1?null:et(r)?l(Ke,{clsPrefix:n,key:e.key}):e.isGroup?(R(`dropdown`,"`group` node is not allowed to be put in `group` node."),null):l(nt,{clsPrefix:n,tmNode:e,parentKey:t,key:e.key})}))}}),it=e({name:`DropdownRenderOption`,props:{tmNode:{type:Object,required:!0}},render(){let{rawNode:{render:e,props:t}}=this.tmNode;return l(`div`,t,[e?.()])}}),at=e({name:`DropdownMenu`,props:{scrollable:Boolean,showArrow:Boolean,arrowStyle:[String,Object],clsPrefix:{type:String,required:!0},tmNodes:{type:Array,default:()=>[]},parentKey:{type:[String,Number],default:null}},setup(e){let{renderIconRef:t,childrenFieldRef:n}=d(We);i(Ue,{showIconRef:p(()=>{let n=t.value;return e.tmNodes.some(e=>{if(e.isGroup)return e.children?.some(({rawNode:e})=>n?n(e):e.icon);let{rawNode:t}=e;return n?n(t):t.icon})}),hasSubmenuRef:p(()=>{let{value:t}=n;return e.tmNodes.some(e=>{if(e.isGroup)return e.children?.some(({rawNode:e})=>Qe(e,t));let{rawNode:n}=e;return Qe(n,t)})})});let r=D(null);return i(ae,null),i(re,null),i(oe,r),{bodyRef:r}},render(){let{parentKey:e,clsPrefix:t,scrollable:n}=this,r=this.tmNodes.map(r=>{let{rawNode:i}=r;return i.show===!1?null:tt(i)?l(it,{tmNode:r,key:r.key}):et(i)?l(Ke,{clsPrefix:t,key:r.key}):$e(i)?l(rt,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key}):l(nt,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key,props:i.props,scrollable:n})});return l(`div`,{class:[`${t}-dropdown-menu`,n&&`${t}-dropdown-menu--scrollable`],ref:`bodyRef`},n?l(Se,{contentClass:`${t}-dropdown-menu__content`},{default:()=>r}):r,this.showArrow?he({clsPrefix:t,arrowStyle:this.arrowStyle,arrowClass:void 0,arrowWrapperClass:void 0,arrowWrapperStyle:void 0}):null)}}),ot=K(`dropdown-menu`,`
10
- transform-origin: var(--v-transform-origin);
11
- background-color: var(--n-color);
12
- border-radius: var(--n-border-radius);
13
- box-shadow: var(--n-box-shadow);
14
- position: relative;
15
- transition:
16
- background-color .3s var(--n-bezier),
17
- box-shadow .3s var(--n-bezier);
18
- `,[ue(),K(`dropdown-option`,`
19
- position: relative;
20
- `,[z(`a`,`
21
- text-decoration: none;
22
- color: inherit;
23
- outline: none;
24
- `,[z(`&::before`,`
25
- content: "";
26
- position: absolute;
27
- left: 0;
28
- right: 0;
29
- top: 0;
30
- bottom: 0;
31
- `)]),K(`dropdown-option-body`,`
32
- display: flex;
33
- cursor: pointer;
34
- position: relative;
35
- height: var(--n-option-height);
36
- line-height: var(--n-option-height);
37
- font-size: var(--n-font-size);
38
- color: var(--n-option-text-color);
39
- transition: color .3s var(--n-bezier);
40
- `,[z(`&::before`,`
41
- content: "";
42
- position: absolute;
43
- top: 0;
44
- bottom: 0;
45
- left: 4px;
46
- right: 4px;
47
- transition: background-color .3s var(--n-bezier);
48
- border-radius: var(--n-border-radius);
49
- `),ne(`disabled`,[W(`pending`,`
50
- color: var(--n-option-text-color-hover);
51
- `,[V(`prefix, suffix`,`
52
- color: var(--n-option-text-color-hover);
53
- `),z(`&::before`,`background-color: var(--n-option-color-hover);`)]),W(`active`,`
54
- color: var(--n-option-text-color-active);
55
- `,[V(`prefix, suffix`,`
56
- color: var(--n-option-text-color-active);
57
- `),z(`&::before`,`background-color: var(--n-option-color-active);`)]),W(`child-active`,`
58
- color: var(--n-option-text-color-child-active);
59
- `,[V(`prefix, suffix`,`
60
- color: var(--n-option-text-color-child-active);
61
- `)])]),W(`disabled`,`
62
- cursor: not-allowed;
63
- opacity: var(--n-option-opacity-disabled);
64
- `),W(`group`,`
65
- font-size: calc(var(--n-font-size) - 1px);
66
- color: var(--n-group-header-text-color);
67
- `,[V(`prefix`,`
68
- width: calc(var(--n-option-prefix-width) / 2);
69
- `,[W(`show-icon`,`
70
- width: calc(var(--n-option-icon-prefix-width) / 2);
71
- `)])]),V(`prefix`,`
72
- width: var(--n-option-prefix-width);
73
- display: flex;
74
- justify-content: center;
75
- align-items: center;
76
- color: var(--n-prefix-color);
77
- transition: color .3s var(--n-bezier);
78
- z-index: 1;
79
- `,[W(`show-icon`,`
80
- width: var(--n-option-icon-prefix-width);
81
- `),K(`icon`,`
82
- font-size: var(--n-option-icon-size);
83
- `)]),V(`label`,`
84
- white-space: nowrap;
85
- flex: 1;
86
- z-index: 1;
87
- `),V(`suffix`,`
88
- box-sizing: border-box;
89
- flex-grow: 0;
90
- flex-shrink: 0;
91
- display: flex;
92
- justify-content: flex-end;
93
- align-items: center;
94
- min-width: var(--n-option-suffix-width);
95
- padding: 0 8px;
96
- transition: color .3s var(--n-bezier);
97
- color: var(--n-suffix-color);
98
- z-index: 1;
99
- `,[W(`has-submenu`,`
100
- width: var(--n-option-icon-suffix-width);
101
- `),K(`icon`,`
102
- font-size: var(--n-option-icon-size);
103
- `)]),K(`dropdown-menu`,`pointer-events: all;`)]),K(`dropdown-offset-container`,`
104
- pointer-events: none;
105
- position: absolute;
106
- left: 0;
107
- right: 0;
108
- top: -4px;
109
- bottom: -4px;
110
- `)]),K(`dropdown-divider`,`
111
- transition: background-color .3s var(--n-bezier);
112
- background-color: var(--n-divider-color);
113
- height: 1px;
114
- margin: 4px 0;
115
- `),K(`dropdown-menu-wrapper`,`
116
- transform-origin: var(--v-transform-origin);
117
- width: fit-content;
118
- `),z(`>`,[K(`scrollbar`,`
119
- height: inherit;
120
- max-height: inherit;
121
- `)]),ne(`scrollable`,`
122
- padding: var(--n-padding);
123
- `),W(`scrollable`,[V(`content`,`
124
- padding: var(--n-padding);
125
- `)])]),st={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]},ct=Object.keys(pe),lt=e({name:`Dropdown`,inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},pe),st),B.props),setup(e){let t=D(!1),n=be(k(e,`show`),t),r=p(()=>{let{keyField:t,childrenField:n}=e;return me(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=p(()=>r.value.treeNodes),o=D(null),s=D(null),c=D(null),l=p(()=>o.value??s.value??c.value??null),u=p(()=>r.value.getPath(l.value).keyPath),d=p(()=>r.value.getPath(e.value).keyPath),f=U(()=>e.keyboard&&n.value);Ie({keydown:{ArrowUp:{prevent:!0,handler:E},ArrowRight:{prevent:!0,handler:T},ArrowDown:{prevent:!0,handler:O},ArrowLeft:{prevent:!0,handler:w},Enter:{prevent:!0,handler:A},Escape:C}},f);let{mergedClsPrefixRef:m,inlineThemeDisabled:h,mergedComponentPropsRef:_}=F(e),v=p(()=>e.size||_?.value?.Dropdown?.size||`medium`),y=B(`Dropdown`,`-dropdown`,ot,He,e,m);i(We,{labelFieldRef:k(e,`labelField`),childrenFieldRef:k(e,`childrenField`),renderLabelRef:k(e,`renderLabel`),renderIconRef:k(e,`renderIcon`),hoverKeyRef:o,keyboardKeyRef:s,lastToggledSubmenuKeyRef:c,pendingKeyPathRef:u,activeKeyPathRef:d,animatedRef:k(e,`animated`),mergedShowRef:n,nodePropsRef:k(e,`nodeProps`),renderOptionRef:k(e,`renderOption`),menuPropsRef:k(e,`menuProps`),doSelect:b,doUpdateShow:x}),g(n,t=>{!e.animated&&!t&&S()});function b(t,n){let{onSelect:r}=e;r&&q(r,t,n)}function x(n){let{"onUpdate:show":r,onUpdateShow:i}=e;r&&q(r,n),i&&q(i,n),t.value=n}function S(){o.value=null,s.value=null,c.value=null}function C(){x(!1)}function w(){M(`left`)}function T(){M(`right`)}function E(){M(`up`)}function O(){M(`down`)}function A(){let e=j();e?.isLeaf&&n.value&&(b(e.key,e.rawNode),x(!1))}function j(){let{value:e}=r,{value:t}=l;return!e||t===null?null:e.getNode(t)??null}function M(e){let{value:t}=l,{value:{getFirstAvailableNode:n}}=r,i=null;if(t===null){let e=n();e!==null&&(i=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&&(i=n.key)}}i!==null&&(o.value=null,s.value=i)}let N=p(()=>{let{inverted:t}=e,n=v.value,{common:{cubicBezierEaseInOut:r},self:i}=y.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?Y(`dropdown`,p(()=>`${v.value[0]}${e.inverted?`i`:``}`),N,e):void 0;return{mergedClsPrefix:m,mergedTheme:y,mergedSize:v,tmNodes:a,mergedShow:n,handleAfterLeave:()=>{e.animated&&S()},doUpdateShow:x,cssVars:h?void 0:N,themeClass:P?.themeClass,onRender:P?.onRender}},render(){let e=(e,t,n,r,i)=>{var a;let{mergedClsPrefix:s,menuProps:c}=this;(a=this.onRender)==null||a.call(this);let u=c?.(void 0,this.tmNodes.map(e=>e.rawNode))||{},d={ref:Re(t),class:[e,`${s}-dropdown`,`${s}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:s,tmNodes:this.tmNodes,style:[...n,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:r,onMouseleave:i};return l(at,o(this.$attrs,d,u))},{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 l(ge,Object.assign({},_e(this.$props,ct),n),{trigger:()=>{var e;return(e=this.$slots).default?.call(e)}})}}),ut={iconSize:`22px`};function dt(e){let{fontSize:t,warningColor:n}=e;return Object.assign(Object.assign({},ut),{fontSize:t,iconColor:n})}var ft=J({name:`Popconfirm`,common:G,peers:{Button:Ee,Popover:fe},self:dt}),pt=I(`n-popconfirm`),mt={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},ht=we(mt),gt=e({name:`NPopconfirmPanel`,props:mt,setup(e){let{localeRef:t}=xe(`Popconfirm`),{inlineThemeDisabled:n}=F(),{mergedClsPrefixRef:r,mergedThemeRef:i,props:a}=d(pt),o=p(()=>{let{common:{cubicBezierEaseInOut:e},self:{fontSize:t,iconSize:n,iconColor:r}}=i.value;return{"--n-bezier":e,"--n-font-size":t,"--n-icon-size":n,"--n-icon-color":r}}),s=n?Y(`popconfirm-panel`,void 0,o,a):void 0;return Object.assign(Object.assign({},xe(`Popconfirm`)),{mergedClsPrefix:r,cssVars:n?void 0:o,localizedPositiveText:p(()=>e.positiveText||t.value.positiveText),localizedNegativeText:p(()=>e.negativeText||t.value.negativeText),positiveButtonProps:k(a,`positiveButtonProps`),negativeButtonProps:k(a,`negativeButtonProps`),handlePositiveClick(t){e.onPositiveClick(t)},handleNegativeClick(t){e.onNegativeClick(t)},themeClass:s?.themeClass,onRender:s?.onRender})},render(){var e;let{mergedClsPrefix:t,showIcon:n,$slots:r}=this,i=L(r.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&l($,Object.assign({size:`small`,onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&l($,Object.assign({size:`small`,type:`primary`,onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)==null||e.call(this),l(`div`,{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},ee(r.default,e=>n||e?l(`div`,{class:`${t}-popconfirm__body`},n?l(`div`,{class:`${t}-popconfirm__icon`},L(r.icon,()=>[l(ye,{clsPrefix:t},{default:()=>l(Ce,null)})])):null,e):null),i?l(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),_t=K(`popconfirm`,[V(`body`,`
126
- font-size: var(--n-font-size);
127
- display: flex;
128
- align-items: center;
129
- flex-wrap: nowrap;
130
- position: relative;
131
- `,[V(`icon`,`
132
- display: flex;
133
- font-size: var(--n-icon-size);
134
- color: var(--n-icon-color);
135
- transition: color .3s var(--n-bezier);
136
- margin: 0 8px 0 0;
137
- `)]),V(`action`,`
138
- display: flex;
139
- justify-content: flex-end;
140
- `,[z(`&:not(:first-child)`,`margin-top: 8px`),K(`button`,[z(`&:not(:last-child)`,`margin-right: 8px;`)])])]),vt=e({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},B.props),pe),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:`click`},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=F(),n=B(`Popconfirm`,`-popconfirm`,_t,ft,e,t),r=D(null);function a(t){if(!r.value?.getMergedShow())return;let{onPositiveClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&q(i,!1))})}function o(t){if(!r.value?.getMergedShow())return;let{onNegativeClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&q(i,!1))})}return i(pt,{mergedThemeRef:n,mergedClsPrefixRef:t,props:e}),{setShow(e){var t;(t=r.value)==null||t.setShow(e)},syncPosition(){var e;(e=r.value)==null||e.syncPosition()},mergedTheme:n,popoverInstRef:r,handlePositiveClick:a,handleNegativeClick:o}},render(){let{$slots:e,$props:t,mergedTheme:n}=this;return l(ge,Object.assign({},De(t,ht),{theme:n.peers.Popover,themeOverrides:n.peerOverrides.Popover,internalExtraClass:[`popconfirm`],ref:`popoverInstRef`}),{trigger:e.trigger,default:()=>{let n=_e(t,ht);return l(gt,Object.assign({},n,{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}}),yt={class:`chat-input-area`},bt={key:0,class:`attachment-previews`},xt=[`src`,`alt`],St={key:1,class:`attachment-file`},Ct={class:`file-name`},wt={class:`file-size`},Tt=[`onClick`],Et=[`placeholder`],Dt={class:`input-actions`},Ot=P(e({__name:`ChatInput`,setup(e){let t=Ne(),{t:i}=N(),a=D(``),o=D(),c=D(),l=D([]),d=D(!1),g=D(0),v=D(!1),b=p(()=>a.value.trim()||l.value.length>0);function x(e){if(l.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);l.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function w(){c.value?.click()}function O(e){let t=e.target;if(t.files){for(let e of t.files)x(e);t.value=``}}function k(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`;x(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function M(e){e.preventDefault()}function P(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(g.value++,d.value=!0)}function F(){g.value--,g.value<=0&&(g.value=0,d.value=!1)}function ee(e){e.preventDefault(),g.value=0,d.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)x(e);o.value?.focus()}}function I(){let e=a.value.trim();!e&&l.value.length===0||(t.sendMessage(e,l.value.length>0?l.value:void 0),a.value=``,l.value=[],o.value&&(o.value.style.height=`auto`))}function L(){v.value=!0}function R(){requestAnimationFrame(()=>{v.value=!1})}function z(e){return v.value||e.isComposing||e.keyCode===229}function B(e){e.key!==`Enter`||e.shiftKey||z(e)||(e.preventDefault(),I())}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=l.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(l.value[t].url),l.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(e,p)=>(h(),r(`div`,yt,[l.value.length>0?(h(),r(`div`,bt,[(h(!0),r(A,null,s(l.value,e=>(h(),r(`div`,{key:e.id,class:E([`attachment-preview`,{image:W(e.type)}])},[W(e.type)?(h(),r(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,xt)):(h(),r(`div`,St,[p[2]||=n(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[n(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),n(`polyline`,{points:`14 2 14 8 20 8`})],-1),n(`span`,Ct,S(e.name),1),n(`span`,wt,S(U(e.size)),1)])),n(`button`,{class:`attachment-remove`,onClick:t=>H(e.id)},[...p[3]||=[n(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[n(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),n(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,Tt)],2))),128))])):m(``,!0),n(`div`,{class:E([`input-wrapper`,{"drag-over":d.value}]),onDragover:M,onDragenter:P,onDragleave:F,onDrop:ee},[n(`input`,{ref_key:`fileInputRef`,ref:c,type:`file`,multiple:``,class:`file-input-hidden`,onChange:O},null,544),f(n(`textarea`,{ref_key:`textareaRef`,ref:o,"onUpdate:modelValue":p[0]||=e=>a.value=e,class:`input-textarea`,placeholder:y(i)(`chat.inputPlaceholder`),rows:`1`,onKeydown:B,onCompositionstart:L,onCompositionend:R,onInput:V,onPaste:k},null,40,Et),[[T,a.value]]),n(`div`,Dt,[C(y(ke),{trigger:`hover`},{trigger:_(()=>[C(y($),{quaternary:``,size:`small`,onClick:w,circle:``},{icon:_(()=>[...p[4]||=[n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[n(`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:_(()=>[u(` `+S(y(i)(`chat.attachFiles`)),1)]),_:1}),y(t).isStreaming?(h(),j(y($),{key:0,size:`small`,type:`error`,onClick:p[1]||=e=>y(t).stopStreaming()},{default:_(()=>[u(S(y(i)(`chat.stop`)),1)]),_:1})):m(``,!0),C(y($),{size:`small`,type:`primary`,disabled:!b.value||y(t).isStreaming,onClick:I},{icon:_(()=>[...p[5]||=[n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[n(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),n(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})],-1)]]),default:_(()=>[u(` `+S(y(i)(`chat.send`)),1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-9ceae9e7`]]),kt={key:1,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},At={class:`tool-name`},jt={key:2,class:`tool-preview`},Mt={key:3,class:`tool-spinner`},Nt={key:4,class:`tool-error-badge`},Pt={key:0,class:`tool-details`},Ft={key:0,class:`tool-detail-section`},It={class:`tool-detail-label`},Lt={class:`tool-detail-code`},Rt={key:1,class:`tool-detail-section`},zt={class:`tool-detail-label`},Bt={class:`tool-detail-code`},Vt={key:1,class:`msg-body`},Ht={key:0,src:je,alt:`Hermes`,class:`msg-avatar`},Ut={key:0,class:`msg-attachments`},Wt=[`src`,`alt`],Gt={key:1,class:`msg-attachment-file`},Kt={class:`att-name`},qt={class:`att-size`},Jt={key:2,class:`streaming-dots`},Yt={class:`message-time`},Xt=P(e({__name:`MessageItem`,props:{message:{}},setup(e){let t=e,{t:i}=N(),a=p(()=>t.message.role===`system`),o=D(!1),c=p(()=>new Date(t.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function l(e){return e.startsWith(`image/`)}function u(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}let d=p(()=>(t.message.attachments?.length??0)>0),f=p(()=>!!(t.message.toolArgs||t.message.toolResult)),g=p(()=>{if(!t.message.toolArgs)return``;try{return JSON.stringify(JSON.parse(t.message.toolArgs),null,2)}catch{return t.message.toolArgs}}),_=p(()=>{if(!t.message.toolResult)return``;try{let e=JSON.parse(t.message.toolResult),n=JSON.stringify(e,null,2);return n.length>2e3?n.slice(0,2e3)+`
141
- `+i(`chat.truncated`):n}catch{let e=t.message.toolResult;return e.length>2e3?e.slice(0,2e3)+`
142
- `+i(`chat.truncated`):e}});return(t,p)=>(h(),r(`div`,{class:E([`message`,[e.message.role]])},[e.message.role===`tool`?(h(),r(A,{key:0},[n(`div`,{class:E([`tool-line`,{expandable:f.value}]),onClick:p[0]||=e=>f.value&&(o.value=!o.value)},[f.value?(h(),r(`svg`,{key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:E([`tool-chevron`,{rotated:o.value}])},[...p[1]||=[n(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)):(h(),r(`svg`,kt,[...p[2]||=[n(`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)]])),n(`span`,At,S(e.message.toolName),1),e.message.toolPreview&&!o.value?(h(),r(`span`,jt,S(e.message.toolPreview),1)):m(``,!0),e.message.toolStatus===`running`?(h(),r(`span`,Mt)):m(``,!0),e.message.toolStatus===`error`?(h(),r(`span`,Nt,S(y(i)(`chat.error`)),1)):m(``,!0)],2),o.value&&f.value?(h(),r(`div`,Pt,[g.value?(h(),r(`div`,Ft,[n(`div`,It,S(y(i)(`chat.arguments`)),1),n(`pre`,Lt,S(g.value),1)])):m(``,!0),_.value?(h(),r(`div`,Rt,[n(`div`,zt,S(y(i)(`chat.result`)),1),n(`pre`,Bt,S(_.value),1)])):m(``,!0)])):m(``,!0)],64)):(h(),r(`div`,Vt,[e.message.role===`assistant`?(h(),r(`img`,Ht)):m(``,!0),n(`div`,{class:E([`msg-content`,e.message.role])},[n(`div`,{class:E([`message-bubble`,{system:a.value}])},[d.value?(h(),r(`div`,Ut,[(h(!0),r(A,null,s(e.message.attachments,e=>(h(),r(`div`,{key:e.id,class:E([`msg-attachment`,{image:l(e.type)}])},[l(e.type)&&e.url?(h(),r(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,Wt)):(h(),r(`div`,Gt,[p[3]||=n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[n(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),n(`polyline`,{points:`14 2 14 8 20 8`})],-1),n(`span`,Kt,S(e.name),1),n(`span`,qt,S(u(e.size)),1)]))],2))),128))])):m(``,!0),e.message.content?(h(),j(Fe,{key:1,content:e.message.content},null,8,[`content`])):m(``,!0),e.message.isStreaming&&!e.message.content?(h(),r(`span`,Jt,[...p[4]||=[n(`span`,null,null,-1),n(`span`,null,null,-1),n(`span`,null,null,-1)]])):m(``,!0)],2),n(`div`,Yt,S(c.value),1)],2)]))],2))}}),[[`__scopeId`,`data-v-e05b15e8`]]),Zt=`/assets/thinking-Cwsva50h.mp4`,Qt={key:0,class:`empty-state`},$t={key:0,class:`streaming-indicator`},en=[`src`],tn={key:0,class:`tool-calls-panel`},nn={class:`tool-call-name`},rn={key:0,class:`tool-call-preview`},an={key:1,class:`tool-call-spinner`},on={key:2,class:`tool-call-error`},sn=P(e({__name:`MessageList`,setup(e){let t=Ne(),{t:i}=N(),a=D(),o=p(()=>t.messages.filter(e=>e.role!==`tool`)),l=p(()=>{let e=t.messages,n=-1;for(let t=e.length-1;t>=0;t--)if(e[t].role===`user`){n=t;break}return[...e.filter((e,t)=>e.role===`tool`&&t>n)].reverse()});function u(){c(()=>{a.value&&(a.value.scrollTop=a.value.scrollHeight)})}return g(()=>t.messages.length,u),g(()=>t.messages[t.messages.length-1]?.content,u),g(()=>t.isStreaming,e=>{e&&u()}),g(l,u),(e,c)=>(h(),r(`div`,{ref_key:`listRef`,ref:a,class:`message-list`},[y(t).messages.length===0?(h(),r(`div`,Qt,[c[0]||=n(`img`,{src:`/logo.png`,alt:`Hermes`,class:`empty-logo`},null,-1),n(`p`,null,S(y(i)(`chat.emptyState`)),1)])):m(``,!0),(h(!0),r(A,null,s(o.value,e=>(h(),j(Xt,{key:e.id,message:e},null,8,[`message`]))),128)),C(O,{name:`fade`},{default:_(()=>[y(t).isStreaming?(h(),r(`div`,$t,[n(`video`,{src:y(Zt),autoplay:``,loop:``,muted:``,playsinline:``,class:`thinking-video`},null,8,en),l.value.length>0?(h(),r(`div`,tn,[(h(!0),r(A,null,s(l.value,e=>(h(),r(`div`,{key:e.id,class:`tool-call-item`},[c[1]||=n(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-call-icon`},[n(`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),n(`span`,nn,S(e.toolName),1),e.toolPreview?(h(),r(`span`,rn,S(e.toolPreview),1)):m(``,!0),e.toolStatus===`running`?(h(),r(`span`,an)):m(``,!0),e.toolStatus===`error`?(h(),r(`span`,on,S(y(i)(`chat.error`)),1)):m(``,!0)]))),128))])):m(``,!0)])):m(``,!0)]),_:1})],512))}}),[[`__scopeId`,`data-v-21c7a8d2`]]),cn={class:`chat-panel`},ln={class:`session-list-header`},un={key:0,class:`session-list-title`},dn={key:0,class:`session-items`},fn={key:0,class:`session-loading`},pn={key:1,class:`session-empty`},mn=[`onClick`],hn={class:`session-group-label`},gn={class:`session-group-count`},_n=[`onClick`,`onContextmenu`],vn={class:`session-item-content`},yn={class:`session-item-title`},bn={class:`session-item-meta`},xn={key:0,class:`session-item-model`},Sn={class:`session-item-time`},Cn={class:`chat-main`},wn={class:`chat-header`},Tn={class:`header-left`},En={class:`header-session-title`},Dn={key:0,class:`source-badge`},On={class:`header-actions`},kn={key:0,class:`context-info`},An=P(e({__name:`ChatPanel`,setup(e){let t=Ne(),i=Ae(),{t:a}=N(),o=D(!0),l=D(!1),d=D(``),f=D(null),v=D(null),w=D(new Set(JSON.parse(localStorage.getItem(`hermes_collapsed_groups`)||`[]`))),T={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 O(e){return e?T[e]||e:``}function k(e){return e===`api_server`?-1:e===`cron`?999:0}let M=p(()=>{let e=[...t.sessions].sort((e,t)=>t.createdAt-e.createdAt),n=new Map;for(let t of e){let e=t.source||``;n.has(e)||n.set(e,[]),n.get(e).push(t)}return[...n.keys()].sort((e,t)=>{let n=k(e),r=k(t);return n===r?e.localeCompare(t):n-r}).map(e=>({source:e,label:e?O(e):a(`chat.other`),sessions:n.get(e)}))});function P(e){if(!w.value.has(e))w.value=new Set([...w.value,e]);else{w.value=new Set(M.value.map(e=>e.source).filter(t=>t!==e));let n=M.value.find(t=>t.source===e);n?.sessions.length&&t.switchSession(n.sessions[0].id)}localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...w.value]))}g(M,e=>{localStorage.getItem(`hermes_collapsed_groups`)===null&&(w.value=new Set(e.slice(1).map(e=>e.source)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...w.value])))},{once:!0});let F=p(()=>t.activeSession?.title||a(`chat.newChat`)),ee=p(()=>(t.activeSession?.inputTokens??0)+(t.activeSession?.outputTokens??0)),I={"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},L=p(()=>{let e=t.activeSession?.model||``;for(let[t,n]of Object.entries(I))if(e.includes(t))return n;return null});function R(e){return e>=1e6?(e/1e6).toFixed(1)+`M`:e>=1e3?(e/1e3).toFixed(1)+`k`:String(e)}let z=p(()=>t.activeSession?.source||``);function B(){t.newChat()}function V(e){let n=e||t.activeSessionId;n&&(navigator.clipboard.writeText(n),i.success(a(`common.copied`)))}function H(e){t.deleteSession(e),i.success(a(`chat.sessionDeleted`))}function U(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 W=p(()=>[{label:a(`chat.rename`),key:`rename`},{label:a(`chat.copySessionId`),key:`copy-id`}]),G=D(null);function K(e,t){e.preventDefault(),G.value=t,q.value=!0,J.value=e.clientX,te.value=e.clientY}let q=D(!1),J=D(0),te=D(0);function ne(e){if(q.value=!1,G.value){if(e===`copy-id`)V(G.value);else if(e===`rename`){let e=t.sessions.find(e=>e.id===G.value);f.value=G.value,d.value=e?.title||``,l.value=!0,c(()=>{v.value?.focus()})}}}function Y(){q.value=!1}async function re(){if(!(!f.value||!d.value.trim())){if(await Pe(f.value,d.value.trim())){let e=t.sessions.find(e=>e.id===f.value);e&&(e.title=d.value.trim()),t.activeSession?.id===f.value&&(t.activeSession.title=d.value.trim()),i.success(a(`chat.renamed`))}else i.error(a(`chat.renameFailed`));l.value=!1}}return(e,i)=>(h(),r(`div`,cn,[n(`aside`,{class:E([`session-list`,{collapsed:!o.value}])},[n(`div`,ln,[o.value?(h(),r(`span`,un,S(y(a)(`chat.sessions`)),1)):m(``,!0),C(y($),{quaternary:``,size:`tiny`,onClick:B,circle:``},{icon:_(()=>[...i[5]||=[n(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[n(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),n(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),_:1})]),o.value?(h(),r(`div`,dn,[y(t).isLoadingSessions&&y(t).sessions.length===0?(h(),r(`div`,fn,S(y(a)(`common.loading`)),1)):y(t).sessions.length===0?(h(),r(`div`,pn,S(y(a)(`chat.noSessions`)),1)):m(``,!0),(h(!0),r(A,null,s(M.value,e=>(h(),r(A,{key:e.source},[n(`div`,{class:`session-group-header`,onClick:t=>P(e.source)},[(h(),r(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:E([`group-chevron`,{collapsed:w.value.has(e.source)}])},[...i[6]||=[n(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)),n(`span`,hn,S(e.label),1),n(`span`,gn,S(e.sessions.length),1)],8,mn),w.value.has(e.source)?m(``,!0):(h(!0),r(A,{key:0},s(e.sessions,e=>(h(),r(`button`,{key:e.id,class:E([`session-item`,{active:e.id===y(t).activeSessionId}]),onClick:n=>y(t).switchSession(e.id),onContextmenu:t=>K(t,e.id)},[n(`div`,vn,[n(`span`,yn,S(e.title),1),n(`span`,bn,[e.model?(h(),r(`span`,xn,S(e.model),1)):m(``,!0),n(`span`,Sn,S(U(e.createdAt)),1)])]),e.id!==y(t).activeSessionId||y(t).sessions.length>1?(h(),j(y(vt),{key:0,onPositiveClick:t=>H(e.id)},{trigger:_(()=>[n(`button`,{class:`session-item-delete`,onClick:i[0]||=b(()=>{},[`stop`])},[...i[7]||=[n(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[n(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),n(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]])]),default:_(()=>[u(` `+S(y(a)(`chat.deleteSession`)),1)]),_:1},8,[`onPositiveClick`])):m(``,!0)],42,_n))),128))],64))),128))])):m(``,!0)],2),C(y(lt),{placement:`bottom-start`,trigger:`manual`,x:J.value,y:te.value,options:W.value,show:q.value,onSelect:ne,onClickoutside:Y},null,8,[`x`,`y`,`options`,`show`]),C(y(Te),{show:l.value,"onUpdate:show":i[2]||=e=>l.value=e,preset:`dialog`,title:y(a)(`chat.renameSession`),"positive-text":y(a)(`common.ok`),"negative-text":y(a)(`common.cancel`),onPositiveClick:re},{default:_(()=>[C(y(Oe),{ref_key:`renameInputRef`,ref:v,value:d.value,"onUpdate:value":i[1]||=e=>d.value=e,placeholder:y(a)(`chat.enterNewTitle`),onKeydown:x(re,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`show`,`title`,`positive-text`,`negative-text`]),n(`div`,Cn,[n(`header`,wn,[n(`div`,Tn,[C(y($),{quaternary:``,size:`small`,onClick:i[3]||=e=>o.value=!o.value,circle:``},{icon:_(()=>[...i[8]||=[n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[n(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`}),n(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`}),n(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`}),n(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`})],-1)]]),_:1}),n(`span`,En,S(F.value),1),z.value?(h(),r(`span`,Dn,S(O(z.value)),1)):m(``,!0)]),n(`div`,On,[C(y(ke),{trigger:`hover`},{trigger:_(()=>[C(y($),{quaternary:``,size:`small`,onClick:i[4]||=e=>V(),circle:``},{icon:_(()=>[...i[9]||=[n(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[n(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),n(`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:_(()=>[u(` `+S(y(a)(`chat.copySessionId`)),1)]),_:1}),C(y($),{size:`small`,onClick:B},{icon:_(()=>[...i[10]||=[n(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[n(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),n(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:_(()=>[u(` `+S(y(a)(`chat.newChat`)),1)]),_:1})])]),C(sn),L.value===null?m(``,!0):(h(),r(`div`,kn,[n(`span`,null,S(R(ee.value))+` / `+S(R(L.value)),1)])),C(Ot)])]))}}),[[`__scopeId`,`data-v-3849a23e`]]),jn={class:`chat-view`},Mn=P(e({__name:`ChatView`,setup(e){let t=Me(),n=Ne();return a(()=>{t.loadModels(),n.loadSessions()}),(e,t)=>(h(),r(`div`,jn,[C(An)]))}}),[[`__scopeId`,`data-v-d35d4d9c`]]);export{Mn as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jobs-CnB9OiiZ.js","assets/router--r9mOZY5.js"])))=>i.map(i=>d[i]);
2
- import{A as e,C as t,D as n,E as r,H as i,K as a,O as o,S as s,T as c,W as l,Z as u,ft as d,ht as f,k as p,n as m,pt as h,st as g,v as _,w as v}from"./router--r9mOZY5.js";import{n as y}from"./pinia-YU9i-6Bb.js";import{r as b,t as x}from"./_plugin-vue_export-helper-DJRCopG_.js";import{t as S}from"./Modal-CDRYujZp.js";import{n as C,t as w}from"./FormItem-BvJieJmq.js";import{t as T}from"./Select-CXQmv_5e.js";import{t as E}from"./Button-CQLKwjHl.js";import{t as D}from"./InputNumber-BpYEJnKY.js";import{t as O}from"./Input-edKmVCeM.js";import{t as k}from"./Tooltip-BljrRE17.js";import{t as A}from"./use-message-D8bO1GLN.js";import{t as j}from"./Spin-COypV4Iq.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-CnB9OiiZ.js";function R(e,t){return e.job_id===t||e.id===t}var z=y(`jobs`,()=>{let e=g([]),t=g(!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(e({__name:`JobCard`,props:{job:{}},emits:[`edit`],setup(e,{emit:n}){let i=e,a=n,{t:m}=b(),g=z(),y=A(),x=s(()=>i.job.job_id||i.job.id),S=s(()=>i.job.state===`running`?m(`jobs.status.running`):i.job.state===`paused`?m(`jobs.status.paused`):i.job.enabled?m(`jobs.status.scheduled`):m(`jobs.status.disabled`)),C=s(()=>i.job.state===`running`?`info`:i.job.state===`paused`?`warning`:i.job.enabled?`success`:`error`),w=s(()=>{let e=i.job.schedule;return typeof e==`string`?e:e?.expr||i.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(n,i)=>(l(),r(`div`,B,[t(`div`,V,[t(`h3`,H,f(e.job.name),1),t(`span`,{class:h([`status-badge`,C.value])},f(S.value),3)]),t(`div`,U,[t(`div`,W,[t(`span`,G,f(d(m)(`jobs.info.schedule`)),1),t(`code`,K,f(w.value),1)]),t(`div`,q,[t(`span`,J,f(d(m)(`jobs.info.lastRun`)),1),t(`span`,Y,[o(f(T(e.job.last_run_at))+` `,1),e.job.last_status?(l(),r(`span`,{key:0,class:h([`run-status`,{ok:e.job.last_status===`ok`,err:e.job.last_status!==`ok`}])},f(e.job.last_status===`ok`?`OK`:e.job.last_status),3)):c(``,!0)])]),t(`div`,X,[t(`span`,Z,f(d(m)(`jobs.info.nextRun`)),1),t(`span`,Q,f(T(e.job.next_run_at)),1)]),t(`div`,te,[t(`span`,ne,f(d(m)(`jobs.info.deliver`)),1),t(`span`,re,[o(f(e.job.deliver),1),e.job.origin?(l(),r(_,{key:0},[o(` (`+f(e.job.origin.platform)+`)`,1)],64)):c(``,!0)])]),e.job.repeat?(l(),r(`div`,ie,[t(`span`,ae,f(d(m)(`jobs.info.repeat`)),1),t(`span`,oe,[typeof e.job.repeat==`string`?(l(),r(_,{key:0},[o(f(e.job.repeat),1)],64)):(l(),r(_,{key:1},[o(f(e.job.repeat.completed)+` / `+f(e.job.repeat.times??`∞`),1)],64))])])):c(``,!0)]),t(`div`,se,[e.job.state!==`paused`&&e.job.enabled?(l(),v(d(k),{key:0},{trigger:u(()=>[p(d(E),{size:`tiny`,quaternary:``,onClick:D},{default:u(()=>[o(f(d(m)(`jobs.action.pause`)),1)]),_:1})]),default:u(()=>[o(` `+f(d(m)(`jobs.action.pauseJob`)),1)]),_:1})):e.job.state===`paused`?(l(),v(d(k),{key:1},{trigger:u(()=>[p(d(E),{size:`tiny`,quaternary:``,onClick:O},{default:u(()=>[o(f(d(m)(`jobs.action.resume`)),1)]),_:1})]),default:u(()=>[o(` `+f(d(m)(`jobs.action.resumeJob`)),1)]),_:1})):c(``,!0),p(d(k),null,{trigger:u(()=>[p(d(E),{size:`tiny`,quaternary:``,onClick:j},{default:u(()=>[o(f(d(m)(`jobs.action.runNow`)),1)]),_:1})]),default:u(()=>[o(` `+f(d(m)(`jobs.action.triggerImmediately`)),1)]),_:1}),p(d(E),{size:`tiny`,quaternary:``,onClick:i[0]||=e=>a(`edit`,x.value)},{default:u(()=>[o(f(d(m)(`common.edit`)),1)]),_:1}),p(d(E),{size:`tiny`,quaternary:``,type:`error`,onClick:M},{default:u(()=>[o(f(d(m)(`common.delete`)),1)]),_:1})])]))}}),[[`__scopeId`,`data-v-95911aa6`]]),le={key:0,class:`empty-state`},ue={key:1,class:`jobs-grid`},de=x(e({__name:`JobsPanel`,emits:[`edit`],setup(e,{emit:i}){let{t:o}=b(),s=i,c=z();return(e,i)=>d(c).jobs.length===0?(l(),r(`div`,le,[i[0]||=n(`<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="empty-icon" data-v-5eaccb69><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-5eaccb69></rect><line x1="16" y1="2" x2="16" y2="6" data-v-5eaccb69></line><line x1="8" y1="2" x2="8" y2="6" data-v-5eaccb69></line><line x1="3" y1="10" x2="21" y2="10" data-v-5eaccb69></line></svg>`,1),t(`p`,null,f(d(o)(`jobs.noJobs`)),1)])):(l(),r(`div`,ue,[(l(!0),r(_,null,a(d(c).jobs,e=>(l(),v(ce,{key:e.id,job:e,onEdit:t=>s(`edit`,e.id)},null,8,[`job`,`onEdit`]))),128))]))}}),[[`__scopeId`,`data-v-5eaccb69`]]),fe={class:`modal-footer`},pe=x(e({__name:`JobFormModal`,props:{jobId:{}},emits:[`close`,`saved`],setup(e,{emit:n}){let{t:r}=b(),a=e,c=n,h=z(),_=A(),y=g(!0),x=g(!1),k=g({name:``,schedule:``,prompt:``,deliver:`origin`,repeat_times:null}),j=g(null),M=s(()=>!!a.jobId),N=s(()=>[{label:r(`jobs.presetEveryMinute`),value:`* * * * *`},{label:r(`jobs.presetEvery5Min`),value:`*/5 * * * *`},{label:r(`jobs.presetEveryHour`),value:`0 * * * *`},{label:r(`jobs.presetEveryDay`),value:`0 0 * * *`},{label:r(`jobs.presetEveryDay9`),value:`0 9 * * *`},{label:r(`jobs.presetEveryMonday`),value:`0 9 * * 1`},{label:r(`jobs.presetEveryMonth`),value:`0 9 1 * *`}]),P=s(()=>[{label:r(`jobs.origin`),value:`origin`},{label:r(`jobs.local`),value:`local`}]);i(async()=>{if(a.jobId)try{let{getJob:e}=await m(async()=>{let{getJob:e}=await import(`./jobs-CnB9OiiZ.js`).then(e=>e.r);return{getJob:e}},__vite__mapDeps([0,1])),t=await e(a.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){_.error(r(`jobs.loadFailed`)+`: `+e.message)}});async function F(){if(!k.value.name.trim()){_.warning(r(`jobs.nameRequired`));return}if(!k.value.schedule.trim()){_.warning(r(`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 h.updateJob(a.jobId,e),_.success(r(`jobs.jobUpdated`))):(await h.createJob(e),_.success(r(`jobs.jobCreated`))),c(`saved`)}catch(e){_.error(e.message)}finally{x.value=!1}}function I(){y.value=!1,setTimeout(()=>c(`close`),200)}return(e,n)=>(l(),v(d(S),{show:y.value,"onUpdate:show":n[7]||=e=>y.value=e,preset:`card`,title:M.value?d(r)(`jobs.editJob`):d(r)(`jobs.createJob`),style:{width:`520px`},"mask-closable":!x.value,onAfterLeave:n[8]||=e=>c(`close`)},{footer:u(()=>[t(`div`,fe,[p(d(E),{onClick:I},{default:u(()=>[o(f(d(r)(`common.cancel`)),1)]),_:1}),p(d(E),{type:`primary`,loading:x.value,onClick:F},{default:u(()=>[o(f(M.value?d(r)(`common.update`):d(r)(`common.create`)),1)]),_:1},8,[`loading`])])]),default:u(()=>[p(d(C),{"label-placement":`top`},{default:u(()=>[p(d(w),{label:d(r)(`jobs.name`),required:``},{default:u(()=>[p(d(O),{value:k.value.name,"onUpdate:value":n[0]||=e=>k.value.name=e,placeholder:d(r)(`jobs.namePlaceholder`),maxlength:`200`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),p(d(w),{label:d(r)(`jobs.schedule`),required:``},{default:u(()=>[p(d(O),{value:k.value.schedule,"onUpdate:value":n[1]||=e=>k.value.schedule=e,placeholder:d(r)(`jobs.schedulePlaceholder`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),p(d(w),{label:d(r)(`jobs.quickPresets`)},{default:u(()=>[p(d(T),{value:j.value,"onUpdate:value":[n[2]||=e=>j.value=e,n[3]||=e=>k.value.schedule=e],options:N.value,placeholder:d(r)(`jobs.selectPreset`)},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`]),p(d(w),{label:d(r)(`jobs.prompt`),required:``},{default:u(()=>[p(d(O),{value:k.value.prompt,"onUpdate:value":n[4]||=e=>k.value.prompt=e,type:`textarea`,placeholder:d(r)(`jobs.promptPlaceholder`),rows:4,maxlength:`5000`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),p(d(w),{label:d(r)(`jobs.deliverTarget`)},{default:u(()=>[p(d(T),{value:k.value.deliver,"onUpdate:value":n[5]||=e=>k.value.deliver=e,options:P.value},null,8,[`value`,`options`])]),_:1},8,[`label`]),p(d(w),{label:d(r)(`jobs.repeatCount`)},{default:u(()=>[p(d(D),{value:k.value.repeat_times,"onUpdate:value":n[6]||=e=>k.value.repeat_times=e,min:1,placeholder:d(r)(`jobs.repeatPlaceholder`),clearable:``,style:{width:`100%`}},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-c4dfc5fe`]]),$={class:`jobs-view`},me={class:`jobs-header`},he={class:`header-title`},ge={class:`jobs-content`},_e=x(e({__name:`JobsView`,setup(e){let{t:n}=b(),a=z(),s=g(!1),m=g(null);i(()=>{a.fetchJobs()});function h(){m.value=null,s.value=!0}function _(e){m.value=e,s.value=!0}function y(){s.value=!1,m.value=null}async function x(){await a.fetchJobs(),y()}return(e,i)=>(l(),r(`div`,$,[t(`header`,me,[t(`h2`,he,f(d(n)(`jobs.title`)),1),p(d(E),{type:`primary`,onClick:h},{icon:u(()=>[...i[0]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),t(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:u(()=>[o(` `+f(d(n)(`jobs.createJob`)),1)]),_:1})]),t(`div`,ge,[p(d(j),{show:d(a).loading&&d(a).jobs.length===0},{default:u(()=>[p(de,{onEdit:_})]),_:1},8,[`show`])]),s.value?(l(),v(pe,{key:0,"job-id":m.value,onClose:y,onSaved:x},null,8,[`job-id`])):c(``,!0)]))}}),[[`__scopeId`,`data-v-cf31def7`]]);export{_e as default};
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,Q as r,T as i,W as a,c as o,ft as s,g as c,ht as l,i as u,o as d,p as f,st as p}from"./router--r9mOZY5.js";import{r as m,t as h}from"./_plugin-vue_export-helper-DJRCopG_.js";import"./logo-CiQBpLPw.js";var g={class:`login-view`},_={class:`login-card`},v={class:`login-desc`},y=[`placeholder`],b={key:0,class:`login-error`},x=[`disabled`],S=h(e({__name:`LoginView`,setup(e){let{t:h}=m(),S=o(),C=p(window.__LOGIN_TOKEN__||``),w=p(!1),T=p(``);u()&&S.replace(`/chat`);async function E(){let e=C.value.trim();if(!e){T.value=h(`login.tokenRequired`);return}w.value=!0,T.value=``;try{if((await fetch(`/api/sessions`,{headers:{Authorization:`Bearer ${e}`}})).status===401){T.value=h(`login.invalidToken`),w.value=!1;return}d(e),S.replace(`/chat`)}catch{T.value=h(`login.connectionFailed`)}finally{w.value=!1}}return(e,o)=>(a(),n(`div`,g,[t(`div`,_,[o[1]||=t(`div`,{class:`login-logo`},[t(`img`,{src:`/logo.png`,alt:`Hermes`,width:`80`,height:`80`})],-1),o[2]||=t(`h1`,{class:`login-title`},`Hermes Web UI`,-1),t(`p`,v,l(s(h)(`login.description`)),1),t(`form`,{class:`login-form`,onSubmit:c(E,[`prevent`])},[r(t(`input`,{"onUpdate:modelValue":o[0]||=e=>C.value=e,type:`password`,class:`login-input`,placeholder:s(h)(`login.placeholder`),autofocus:``},null,8,y),[[f,C.value]]),T.value?(a(),n(`div`,b,l(T.value),1)):i(``,!0),t(`button`,{type:`submit`,class:`login-btn`,disabled:w.value},l(w.value?`...`:s(h)(`login.submit`)),9,x)],32)])]))}}),[[`__scopeId`,`data-v-9d63c1f2`]]);export{S as default};
@@ -1 +0,0 @@
1
- .logs-view[data-v-b5078141]{flex-direction:column;height:100vh;display:flex}.logs-header[data-v-b5078141]{border-bottom:1px solid #e0e0e0;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.logs-header .header-title[data-v-b5078141]{color:#1a1a1a;white-space:nowrap;font-size:16px;font-weight:600}.logs-header .header-actions[data-v-b5078141]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-input[data-v-b5078141]{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-b5078141]:focus{border-color:#333}.search-input[data-v-b5078141]::placeholder{color:#999}.logs-body[data-v-b5078141]{flex:1;min-height:0;overflow-y:auto}.logs-empty[data-v-b5078141]{color:#999;justify-content:center;align-items:center;height:100%;font-size:13px;display:flex}.log-list[data-v-b5078141]{padding:4px 0}.log-entry[data-v-b5078141]{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-b5078141]:hover{background-color:#33333308}.log-entry.level-error[data-v-b5078141]{border-left-color:#c62828}.log-entry.level-error .log-message[data-v-b5078141]{color:#c62828}.log-entry.level-warning[data-v-b5078141]{border-left-color:#f57f17}.log-entry.level-warning .log-message[data-v-b5078141]{color:#d9720f}.log-time[data-v-b5078141]{color:#999;font-variant-numeric:tabular-nums;flex-shrink:0}.log-level[data-v-b5078141]{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-b5078141]{color:#c62828;background:#c628281f}.log-level.level-warning[data-v-b5078141]{color:#d9720f;background:#f57f171f}.log-level.level-debug[data-v-b5078141],.log-level.level-info[data-v-b5078141]{color:#999;background:#3333330f}.log-logger[data-v-b5078141]{color:#999;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:160px;overflow:hidden}.log-message[data-v-b5078141]{color:#666;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.access-method[data-v-b5078141]{color:#1a1a1a;flex-shrink:0;font-weight:600}.access-path[data-v-b5078141]{color:#333;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.access-status[data-v-b5078141]{flex-shrink:0;font-size:11px;font-weight:600}.access-status.status-2[data-v-b5078141]{color:#2e7d32}.access-status.status-3[data-v-b5078141]{color:#f57f17}.access-status.status-4[data-v-b5078141],.access-status.status-5[data-v-b5078141]{color:#c62828}
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,H as r,K as i,O as a,Q as o,S as s,T as ee,W as c,Z as l,a as u,ft as d,ht as f,k as p,p as m,pt as h,st as g,v as _}from"./router--r9mOZY5.js";import{r as v,t as y}from"./_plugin-vue_export-helper-DJRCopG_.js";import{t as b}from"./Select-CXQmv_5e.js";import{t as x}from"./Button-CQLKwjHl.js";import{t as S}from"./use-message-D8bO1GLN.js";import{t as C}from"./Spin-COypV4Iq.js";async function w(){return(await u(`/api/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 u(`/api/logs/${e}${r?`?${r}`:``}`)).entries.filter(e=>e!==null)}var E={class:`logs-view`},D={class:`logs-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(e({__name:`LogsView`,setup(e){let{t:u}=v(),y=S(),z=g([]),B=g(`agent`),V=g([]),H=g(!1),U=g(100),W=g(``),G=g(``),K=s(()=>z.value.map(e=>({label:`${e.name} (${e.size})`,value:e.name}))),q=s(()=>[{label:u(`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=s(()=>{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 r(async()=>{z.value=await w(),await $()}),(e,r)=>(c(),n(`div`,E,[t(`header`,D,[t(`h2`,O,f(d(u)(`logs.title`)),1),t(`div`,k,[p(d(b),{value:B.value,"onUpdate:value":[r[0]||=e=>B.value=e,$],options:K.value,size:`small`,style:{width:`200px`}},null,8,[`value`,`options`]),p(d(b),{value:W.value,options:q.value,size:`small`,style:{width:`110px`},"onUpdate:value":r[1]||=e=>{W.value=e,$()}},null,8,[`value`,`options`]),p(d(b),{value:U.value,options:J,size:`small`,style:{width:`80px`},"onUpdate:value":r[2]||=e=>{U.value=e,$()}},null,8,[`value`]),o(t(`input`,{"onUpdate:modelValue":r[3]||=e=>G.value=e,class:`search-input`,placeholder:d(u)(`logs.searchPlaceholder`)},null,8,A),[[m,G.value]]),p(d(x),{size:`small`,loading:H.value,onClick:$},{default:l(()=>[a(f(d(u)(`logs.refresh`)),1)]),_:1},8,[`loading`])])]),t(`div`,j,[p(d(C),{show:H.value},{default:l(()=>[Y.value.length===0&&!H.value?(c(),n(`div`,M,f(d(u)(`logs.noEntries`)),1)):ee(``,!0),t(`div`,N,[(c(!0),n(_,null,i(Y.value,(e,r)=>(c(),n(`div`,{key:r,class:h([`log-entry`,X(e.level)])},[t(`span`,P,f(Z(e.timestamp)),1),t(`span`,{class:h([`log-level`,X(e.level)])},f(e.level),3),t(`span`,F,f(e.logger),1),Q(e.message)?(c(),n(_,{key:0},[t(`span`,I,f(Q(e.message).method),1),t(`span`,L,f(Q(e.message).path),1),t(`span`,{class:h([`access-status`,`status-`+(Q(e.message).status?.[0]||`x`)])},f(Q(e.message).status),3)],64)):(c(),n(`span`,R,f(e.message),1))],2))),128))])]),_:1},8,[`show`])])]))}}),[[`__scopeId`,`data-v-b5078141`]]);export{z as default};
@@ -1,5 +0,0 @@
1
- import{A as e,C as t,D as n,E as r,H as i,O as a,Q as o,S as s,T as c,W as l,Z as u,ft as d,ht as f,k as p,p as m,st as h,w as g}from"./router--r9mOZY5.js";import{r as _,t as v}from"./_plugin-vue_export-helper-DJRCopG_.js";import{t as y}from"./Button-CQLKwjHl.js";import{t as b}from"./use-message-D8bO1GLN.js";import{t as x}from"./MarkdownRenderer-Yw5JS7CE.js";import{a as ee,t as te}from"./skills-C4yD0aCK.js";var S={class:`memory-view`},C={class:`memory-header`},w={class:`header-title`},T={class:`memory-content`},ne={key:0,class:`memory-loading`},re={key:1,class:`memory-sections`},ie={class:`memory-section`},ae={class:`section-header`},E={class:`section-title-row`},D={class:`section-title`},O={key:0,class:`section-mtime`},k={key:0,class:`section-body`},A={key:1,class:`empty-text`},j={key:1,class:`section-edit`},M=[`placeholder`],N={class:`edit-actions`},P={class:`memory-section`},F={class:`section-header`},I={class:`section-title-row`},L={class:`section-title`},R={key:0,class:`section-mtime`},z={key:0,class:`section-body`},B={key:1,class:`empty-text`},oe={key:1,class:`section-edit`},V=[`placeholder`],H={class:`edit-actions`},U=v(e({__name:`MemoryView`,setup(e){let{t:v}=_(),U=b(),W=h(!1),G=h(null),K=h(null),q=h(``),J=h(!1);i(Y);async function Y(){W.value=!0;try{G.value=await te()}catch(e){console.error(`Failed to load memory:`,e),U.error(v(`memory.loadFailed`))}finally{W.value=!1}}function X(e){K.value=e,q.value=G.value?.[e]||``}function Z(){K.value=null,q.value=``}async function Q(){if(K.value){J.value=!0;try{await ee(K.value,q.value),await Y(),K.value=null,q.value=``,U.success(v(`common.saved`))}catch(e){U.error(`${v(`common.saveFailed`)}: ${e.message}`)}finally{J.value=!1}}}function $(e){return e?new Date(e).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}):``}let se=s(()=>!G.value?.memory?.trim()),ce=s(()=>!G.value?.user?.trim()),le=s(()=>(G.value?.memory||``).replace(/§/g,`
2
-
3
- `)),ue=s(()=>(G.value?.user||``).replace(/§/g,`
4
-
5
- `));return(e,i)=>(l(),r(`div`,S,[t(`header`,C,[t(`h2`,w,f(d(v)(`memory.title`)),1),p(d(y),{size:`small`,quaternary:``,onClick:Y},{icon:u(()=>[...i[4]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`polyline`,{points:`23 4 23 10 17 10`}),t(`path`,{d:`M20.49 15a9 9 0 1 1-2.12-9.36L23 10`})],-1)]]),default:u(()=>[a(` `+f(d(v)(`memory.refresh`)),1)]),_:1})]),t(`div`,T,[W.value&&!G.value?(l(),r(`div`,ne,f(d(v)(`common.loading`)),1)):(l(),r(`div`,re,[t(`div`,ie,[t(`div`,ae,[t(`div`,E,[i[5]||=n(`<span class="section-icon" data-v-898387b7><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" data-v-898387b7><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" data-v-898387b7></path><polyline points="14 2 14 8 20 8" data-v-898387b7></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-898387b7></line><line x1="16" y1="17" x2="8" y2="17" data-v-898387b7></line></svg></span>`,1),t(`span`,D,f(d(v)(`memory.myNotes`)),1),G.value?.memory_mtime?(l(),r(`span`,O,f($(G.value.memory_mtime)),1)):c(``,!0)]),K.value===`memory`?c(``,!0):(l(),g(d(y),{key:0,size:`tiny`,quaternary:``,onClick:i[0]||=e=>X(`memory`)},{icon:u(()=>[...i[6]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),t(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})],-1)]]),default:u(()=>[a(` `+f(d(v)(`common.edit`)),1)]),_:1}))]),K.value===`memory`?(l(),r(`div`,j,[o(t(`textarea`,{"onUpdate:modelValue":i[1]||=e=>q.value=e,class:`edit-textarea`,placeholder:d(v)(`memory.notesPlaceholder`),spellcheck:`false`},null,8,M),[[m,q.value]]),t(`div`,N,[p(d(y),{size:`small`,onClick:Z},{default:u(()=>[a(f(d(v)(`common.cancel`)),1)]),_:1}),p(d(y),{size:`small`,type:`primary`,loading:J.value,onClick:Q},{default:u(()=>[a(f(d(v)(`common.save`)),1)]),_:1},8,[`loading`])])])):(l(),r(`div`,k,[se.value?(l(),r(`p`,A,f(d(v)(`memory.noNotes`)),1)):(l(),g(x,{key:0,content:le.value},null,8,[`content`]))]))]),t(`div`,P,[t(`div`,F,[t(`div`,I,[i[7]||=t(`span`,{class:`section-icon`},[t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`path`,{d:`M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2`}),t(`circle`,{cx:`12`,cy:`7`,r:`4`})])],-1),t(`span`,L,f(d(v)(`memory.userProfile`)),1),G.value?.user_mtime?(l(),r(`span`,R,f($(G.value.user_mtime)),1)):c(``,!0)]),K.value===`user`?c(``,!0):(l(),g(d(y),{key:0,size:`tiny`,quaternary:``,onClick:i[2]||=e=>X(`user`)},{icon:u(()=>[...i[8]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[t(`path`,{d:`M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}),t(`path`,{d:`M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z`})],-1)]]),default:u(()=>[a(` `+f(d(v)(`common.edit`)),1)]),_:1}))]),K.value===`user`?(l(),r(`div`,oe,[o(t(`textarea`,{"onUpdate:modelValue":i[3]||=e=>q.value=e,class:`edit-textarea`,placeholder:d(v)(`memory.profilePlaceholder`),spellcheck:`false`},null,8,V),[[m,q.value]]),t(`div`,H,[p(d(y),{size:`small`,onClick:Z},{default:u(()=>[a(f(d(v)(`common.cancel`)),1)]),_:1}),p(d(y),{size:`small`,type:`primary`,loading:J.value,onClick:Q},{default:u(()=>[a(f(d(v)(`common.save`)),1)]),_:1},8,[`loading`])])])):(l(),r(`div`,z,[ce.value?(l(),r(`p`,B,f(d(v)(`memory.noProfile`)),1)):(l(),g(x,{key:0,content:ue.value},null,8,[`content`]))]))])]))])]))}}),[[`__scopeId`,`data-v-898387b7`]]);export{U as default};
@@ -1 +0,0 @@
1
- .memory-view[data-v-898387b7]{flex-direction:column;height:100vh;display:flex}.memory-header[data-v-898387b7]{border-bottom:1px solid #e0e0e0;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.header-title[data-v-898387b7]{color:#1a1a1a;font-size:16px;font-weight:600}.memory-content[data-v-898387b7]{flex-direction:column;flex:1;padding:20px;display:flex;overflow:hidden}.memory-loading[data-v-898387b7]{color:#999;flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.memory-sections[data-v-898387b7]{flex:1;gap:16px;min-height:0;display:flex}.memory-section[data-v-898387b7]{border:1px solid #e0e0e0;border-radius:10px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.section-header[data-v-898387b7]{background:#f0f0f0;border-bottom:1px solid #e0e0e0;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.section-title-row[data-v-898387b7]{align-items:center;gap:8px;display:flex}.section-icon[data-v-898387b7]{color:#666;display:flex}.section-title[data-v-898387b7]{color:#1a1a1a;font-size:14px;font-weight:600}.section-mtime[data-v-898387b7]{color:#999;font-size:11px}.section-body[data-v-898387b7]{flex:1;min-height:0;padding:16px;overflow-y:auto}.empty-text[data-v-898387b7]{color:#999;font-size:13px;font-style:italic}.section-edit[data-v-898387b7]{flex-direction:column;flex:1;min-height:0;padding:12px 16px;display:flex}.edit-textarea[data-v-898387b7]{color:#1a1a1a;resize:none;background:#fff;border:1px solid #e0e0e0;border-radius:6px;outline:none;flex:1;width:100%;min-height:0;padding:12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:13px;line-height:1.6}.edit-textarea[data-v-898387b7]:focus{border-color:#333}.edit-actions[data-v-898387b7]{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}
@@ -1 +0,0 @@
1
- import{A as e,C as t,E as n,H as r,K as i,O as a,P as o,S as s,T as c,W as l,Y as u,Z as d,ft as f,ht as p,k as m,pt as h,st as g,v as _,w as v}from"./router--r9mOZY5.js";import{n as y}from"./pinia-YU9i-6Bb.js";import{r as b,t as x}from"./_plugin-vue_export-helper-DJRCopG_.js";import{J as S}from"./browser-BuJOvks2.js";import{a as C,t as w}from"./Modal-CDRYujZp.js";import{n as ee,t as T}from"./FormItem-BvJieJmq.js";import{t as E}from"./Select-CXQmv_5e.js";import{t as D}from"./Button-CQLKwjHl.js";import{t as O}from"./Input-edKmVCeM.js";import{t as k}from"./use-message-D8bO1GLN.js";import{t as A}from"./Spin-COypV4Iq.js";import{a as j,i as M,n as N,r as P,t as F}from"./app-BcCNNvPk.js";function I(){let e=o(C,null);return e===null&&S(`use-dialog`,`No outer <n-dialog-provider /> founded.`),e}var L=y(`models`,()=>{let e=g([]),t=g(``),n=g(!1),r=s(()=>e.value.filter(e=>e.provider.startsWith(`custom:`))),i=s(()=>e.value.filter(e=>!e.provider.startsWith(`custom:`))),a=s(()=>e.value.flatMap(e=>e.models.map(n=>({id:n,provider:e.provider,label:e.label,base_url:e.base_url,isDefault:n===t.value}))));async function o(){n.value=!0;try{let n=await P();e.value=n.groups,t.value=n.default}catch(e){console.error(`Failed to fetch providers:`,e)}finally{n.value=!1}}async function c(e,n){await j({default:e,provider:n}),t.value=e,F().loadModels()}async function l(e){await N(e),await o(),F().loadModels()}async function u(e){await M(e),await o(),F().loadModels()}return{providers:e,defaultModel:t,loading:n,customProviders:r,builtinProviders:i,allModels:a,fetchProviders:o,setDefaultModel:c,addProvider:l,removeProvider:u}}),R={class:`provider-card`},z={class:`card-header`},B={class:`provider-name`},V={class:`card-body`},H={class:`info-row`},U={class:`info-label`},W={class:`info-value mono`},G={class:`info-row`},K={class:`info-label`},q={class:`info-value mono`},J={class:`card-actions`},Y=x(e({__name:`ProviderCard`,props:{provider:{}},setup(e){let r=e,{t:i}=b(),o=L(),c=k(),u=I(),g=s(()=>r.provider.provider.startsWith(`custom:`)),_=s(()=>r.provider.label);async function v(){u.warning({title:i(`models.deleteProvider`),content:i(`models.deleteConfirm`,{name:_.value}),positiveText:i(`common.delete`),negativeText:i(`common.cancel`),onPositiveClick:async()=>{try{await o.removeProvider(r.provider.provider),c.success(i(`models.providerDeleted`))}catch(e){c.error(e.message)}}})}return(r,o)=>(l(),n(`div`,R,[t(`div`,z,[t(`h3`,B,p(_.value),1),t(`span`,{class:h([`type-badge`,g.value?`custom`:`builtin`])},p(g.value?f(i)(`models.customType`):f(i)(`models.builtIn`)),3)]),t(`div`,V,[t(`div`,H,[t(`span`,U,p(f(i)(`models.provider`)),1),t(`code`,W,p(e.provider.provider),1)]),t(`div`,G,[t(`span`,K,p(f(i)(`models.baseUrl`)),1),t(`code`,q,p(e.provider.base_url),1)])]),t(`div`,J,[m(f(D),{size:`tiny`,quaternary:``,type:`error`,onClick:v},{default:d(()=>[a(p(f(i)(`common.delete`)),1)]),_:1})])]))}}),[[`__scopeId`,`data-v-f94097d9`]]),X={key:0,class:`empty-state`},Z={key:1,class:`providers-grid`},Q=x(e({__name:`ProvidersPanel`,setup(e){let{t:r}=b(),a=L();return(e,o)=>f(a).providers.length===0?(l(),n(`div`,X,[o[0]||=t(`svg`,{width:`48`,height:`48`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1`,class:`empty-icon`},[t(`path`,{d:`M12 2L2 7l10 5 10-5-10-5z`}),t(`path`,{d:`M2 17l10 5 10-5`}),t(`path`,{d:`M2 12l10 5 10-5`})],-1),t(`p`,null,p(f(r)(`models.noProviders`)),1)])):(l(),n(`div`,Z,[(l(!0),n(_,null,i(f(a).providers,e=>(l(),v(Y,{key:e.provider,provider:e},null,8,[`provider`]))),128))]))}}),[[`__scopeId`,`data-v-31d2abcb`]]),$=[{label:`Anthropic`,value:`anthropic`,base_url:`https://api.anthropic.com`,models:[`claude-opus-4-6`,`claude-sonnet-4-6`,`claude-opus-4-5-20251101`,`claude-sonnet-4-5-20250929`,`claude-opus-4-20250514`,`claude-sonnet-4-20250514`,`claude-haiku-4-5-20251001`]},{label:`Google AI Studio`,value:`gemini`,base_url:`https://generativelanguage.googleapis.com/v1beta/openai`,models:[`gemini-3.1-pro-preview`,`gemini-3-flash-preview`,`gemini-3.1-flash-lite-preview`,`gemini-2.5-pro`,`gemini-2.5-flash`,`gemini-2.5-flash-lite`,`gemma-4-31b-it`,`gemma-4-26b-it`]},{label:`DeepSeek`,value:`deepseek`,base_url:`https://api.deepseek.com/v1`,models:[`deepseek-chat`,`deepseek-reasoner`]},{label:`Z.AI / GLM`,value:`zai`,base_url:`https://api.z.ai/api/paas/v4`,models:[`glm-5`,`glm-5-turbo`,`glm-4.7`,`glm-4.5`,`glm-4.5-flash`]},{label:`Kimi Coding Plan`,value:`kimi-coding`,base_url:`https://api.kimi.com/coding/v1`,models:[`kimi-for-coding`,`kimi-k2.5`,`kimi-k2-thinking`,`kimi-k2-thinking-turbo`,`kimi-k2-turbo-preview`,`kimi-k2-0905-preview`]},{label:`Moonshot (Pay-as-you-go)`,value:`moonshot`,base_url:`https://api.moonshot.ai/v1`,models:[`kimi-k2.5`,`kimi-k2-thinking`,`kimi-k2-turbo-preview`,`kimi-k2-0905-preview`]},{label:`xAI`,value:`xai`,base_url:`https://api.x.ai/v1`,models:[`grok-4.20-0309-reasoning`,`grok-4.20-0309-non-reasoning`,`grok-4-1-fast-reasoning`,`grok-4-1-fast-non-reasoning`,`grok-4-fast-reasoning`,`grok-4-fast-non-reasoning`,`grok-4-0709`,`grok-code-fast-1`,`grok-3`,`grok-3-mini`]},{label:`MiniMax`,value:`minimax`,base_url:`https://api.minimax.io/anthropic`,models:[`MiniMax-M2.7`,`MiniMax-M2.5`,`MiniMax-M2.1`,`MiniMax-M2`]},{label:`MiniMax (China)`,value:`minimax-cn`,base_url:`https://api.minimaxi.com/v1`,models:[`MiniMax-M2.7`,`MiniMax-M2.5`,`MiniMax-M2.1`,`MiniMax-M2`]},{label:`Alibaba Cloud`,value:`alibaba`,base_url:`https://dashscope-intl.aliyuncs.com/compatible-mode/v1`,models:[`qwen3.5-plus`,`qwen3-coder-plus`,`qwen3-coder-next`,`glm-5`,`glm-4.7`,`kimi-k2.5`,`MiniMax-M2.5`]},{label:`Hugging Face`,value:`huggingface`,base_url:`https://router.huggingface.co/v1`,models:[`Qwen/Qwen3.5-397B-A17B`,`Qwen/Qwen3.5-35B-A3B`,`deepseek-ai/DeepSeek-V3.2`,`moonshotai/Kimi-K2.5`,`MiniMaxAI/MiniMax-M2.5`,`zai-org/GLM-5`,`XiaomiMiMo/MiMo-V2-Flash`,`moonshotai/Kimi-K2-Thinking`]},{label:`Xiaomi MiMo`,value:`xiaomi`,base_url:`https://api.xiaomimimo.com/v1`,models:[`mimo-v2-pro`,`mimo-v2-omni`,`mimo-v2-flash`]},{label:`Kilo Code`,value:`kilocode`,base_url:`https://api.kilo.ai/api/gateway`,models:[`anthropic/claude-opus-4.6`,`anthropic/claude-sonnet-4.6`,`openai/gpt-5.4`,`google/gemini-3-pro-preview`,`google/gemini-3-flash-preview`]},{label:`AI Gateway`,value:`ai-gateway`,base_url:`https://ai-gateway.vercel.sh/v1`,models:[`anthropic/claude-opus-4.6`,`anthropic/claude-sonnet-4.6`,`anthropic/claude-sonnet-4.5`,`anthropic/claude-haiku-4.5`,`openai/gpt-5`,`openai/gpt-4.1`,`openai/gpt-4.1-mini`,`google/gemini-3-pro-preview`,`google/gemini-3-flash`,`google/gemini-2.5-pro`,`google/gemini-2.5-flash`,`deepseek/deepseek-v3.2`]},{label:`OpenCode Zen`,value:`opencode-zen`,base_url:`https://opencode.ai/zen/v1`,models:[`gpt-5.4-pro`,`gpt-5.4`,`gpt-5.3-codex`,`gpt-5.2`,`gpt-5.1`,`claude-opus-4-6`,`claude-sonnet-4-6`,`claude-haiku-4-5`,`gemini-3.1-pro`,`gemini-3-pro`,`gemini-3-flash`,`minimax-m2.7`,`minimax-m2.5`,`glm-5`,`glm-4.7`,`kimi-k2.5`]},{label:`OpenCode Go`,value:`opencode-go`,base_url:`https://opencode.ai/zen/go/v1`,models:[`glm-5`,`kimi-k2.5`,`mimo-v2-pro`,`mimo-v2-omni`,`minimax-m2.7`,`minimax-m2.5`]},{label:`OpenRouter`,value:`openrouter`,base_url:`https://openrouter.ai/api/v1`,models:[]}],te={style:{display:`flex`,gap:`12px`}},ne={style:{display:`flex`,gap:`8px`,width:`100%`}},re={class:`modal-footer`},ie=x(e({__name:`ProviderFormModal`,emits:[`close`,`saved`],setup(e,{emit:n}){let{t:r}=b(),i=n,o=L(),s=k(),h=g(!0),_=g(!1),y=g(!1),x=g(`preset`),S=g(null),C=g({name:``,base_url:``,api_key:``,model:``}),A=g([]),j=$;function M(e){let t=e.replace(/^https?:\/\//,``).replace(/\/v1\/?$/,``).split(`/`)[0];return t.includes(`localhost`)||t.includes(`127.0.0.1`)?`Local (${t})`:t.charAt(0).toUpperCase()+t.slice(1)}u(S,e=>{if(C.value.model=``,e){let t=j.find(t=>t.value===e);t&&(C.value.name=t.label,C.value.base_url=t.base_url,A.value=t.models.map(e=>({label:e,value:e})),t.models.length>0&&(C.value.model=t.models[0]))}}),u(()=>C.value.base_url,e=>{x.value===`custom`&&e.trim()&&(C.value.name=M(e.trim()))}),u(x,()=>{A.value=[],C.value={name:``,base_url:``,api_key:``,model:``},S.value=null});async function N(){let{base_url:e}=C.value;if(!e.trim()){s.warning(r(`models.enterBaseUrl`));return}y.value=!0;try{let t=e.replace(/\/+$/,``)+`/models`,n={};C.value.api_key.trim()&&(n.Authorization=`Bearer ${C.value.api_key.trim()}`);let i=await fetch(t,{headers:n,signal:AbortSignal.timeout(8e3)});if(!i.ok)throw Error(`HTTP ${i.status}`);let a=await i.json();if(!Array.isArray(a.data))throw Error(r(`models.unexpectedFormat`));A.value=a.data.map(e=>({label:e.id,value:e.id})),A.value.length>0&&!C.value.model&&(C.value.model=A.value[0].value),s.success(r(`models.foundModels`,{count:A.value.length}))}catch(e){s.error(r(`models.fetchFailed`)+`: `+e.message)}finally{y.value=!1}}async function P(){if(x.value===`preset`&&!S.value){s.warning(r(`models.selectProviderRequired`));return}if(!C.value.base_url.trim()){s.warning(r(`models.baseUrlRequired`));return}if(!C.value.api_key.trim()){s.warning(r(`models.apiKeyRequired`));return}if(!C.value.model){s.warning(r(`models.modelRequired`));return}_.value=!0;try{let e=x.value===`preset`&&j.find(e=>e.value===S.value)?.value||null;await o.addProvider({name:C.value.name.trim(),base_url:C.value.base_url.trim(),api_key:C.value.api_key.trim(),model:C.value.model,providerKey:e}),s.success(r(`models.providerAdded`)),i(`saved`)}catch(e){s.error(e.message)}finally{_.value=!1}}function F(){h.value=!1,setTimeout(()=>i(`close`),200)}return(e,n)=>(l(),v(f(w),{show:h.value,"onUpdate:show":n[7]||=e=>h.value=e,preset:`card`,title:f(r)(`models.addProvider`),style:{width:`520px`},"mask-closable":!_.value,onAfterLeave:n[8]||=e=>i(`close`)},{footer:d(()=>[t(`div`,re,[m(f(D),{onClick:F},{default:d(()=>[a(p(f(r)(`common.cancel`)),1)]),_:1}),m(f(D),{type:`primary`,loading:_.value,onClick:P},{default:d(()=>[a(p(f(r)(`common.add`)),1)]),_:1},8,[`loading`])])]),default:d(()=>[m(f(ee),{"label-placement":`top`},{default:d(()=>[m(f(T),{label:f(r)(`models.providerType`)},{default:d(()=>[t(`div`,te,[m(f(D),{type:x.value===`preset`?`primary`:`default`,size:`small`,onClick:n[0]||=e=>x.value=`preset`},{default:d(()=>[a(p(f(r)(`models.preset`)),1)]),_:1},8,[`type`]),m(f(D),{type:x.value===`custom`?`primary`:`default`,size:`small`,onClick:n[1]||=e=>x.value=`custom`},{default:d(()=>[a(p(f(r)(`models.custom`)),1)]),_:1},8,[`type`])])]),_:1},8,[`label`]),x.value===`preset`?(l(),v(f(T),{key:0,label:f(r)(`models.selectProvider`),required:``},{default:d(()=>[m(f(E),{value:S.value,"onUpdate:value":n[2]||=e=>S.value=e,options:f(j),placeholder:f(r)(`models.chooseProvider`),filterable:``},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`])):c(``,!0),x.value===`custom`?(l(),v(f(T),{key:1,label:f(r)(`models.name`)},{default:d(()=>[m(f(O),{value:C.value.name,"onUpdate:value":n[3]||=e=>C.value.name=e,placeholder:f(r)(`models.autoGeneratedName`),disabled:``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])):c(``,!0),m(f(T),{label:f(r)(`models.baseUrl`),required:``},{default:d(()=>[m(f(O),{value:C.value.base_url,"onUpdate:value":n[4]||=e=>C.value.base_url=e,placeholder:f(r)(`models.baseUrlPlaceholder`),disabled:x.value===`preset`},null,8,[`value`,`placeholder`,`disabled`])]),_:1},8,[`label`]),m(f(T),{label:f(r)(`models.apiKey`),required:``},{default:d(()=>[m(f(O),{value:C.value.api_key,"onUpdate:value":n[5]||=e=>C.value.api_key=e,type:`password`,"show-password-on":`click`,placeholder:f(r)(`models.apiKeyPlaceholder`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),m(f(T),{label:f(r)(`models.defaultModel`),required:``},{default:d(()=>[t(`div`,ne,[m(f(E),{value:C.value.model,"onUpdate:value":n[6]||=e=>C.value.model=e,options:A.value,filterable:``,placeholder:f(r)(`models.selectModel`),style:{flex:`1`}},null,8,[`value`,`options`,`placeholder`]),x.value===`custom`||x.value===`preset`&&A.value.length===0?(l(),v(f(D),{key:0,loading:y.value,onClick:N},{default:d(()=>[a(p(f(r)(`common.fetch`)),1)]),_:1},8,[`loading`])):c(``,!0)])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-3e0939f8`]]),ae={class:`models-view`},oe={class:`models-header`},se={class:`header-title`},ce={class:`models-content`},le=x(e({__name:`ModelsView`,setup(e){let{t:i}=b(),o=L(),s=g(!1);r(()=>{o.fetchProviders()});function u(){s.value=!0}function h(){s.value=!1}async function _(){await o.fetchProviders(),h()}return(e,r)=>(l(),n(`div`,ae,[t(`header`,oe,[t(`h2`,se,p(f(i)(`models.title`)),1),m(f(D),{type:`primary`,onClick:u},{icon:d(()=>[...r[0]||=[t(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[t(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),t(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:d(()=>[a(` `+p(f(i)(`models.addProvider`)),1)]),_:1})]),t(`div`,ce,[m(f(A),{show:f(o).loading&&f(o).providers.length===0},{default:d(()=>[m(Q)]),_:1},8,[`show`])]),s.value?(l(),v(ie,{key:0,onClose:h,onSaved:_})):c(``,!0)]))}}),[[`__scopeId`,`data-v-84f50564`]]);export{le as default};