hermes-web-ui 0.4.2 → 0.4.3

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 (97) hide show
  1. package/bin/hermes-web-ui.mjs +76 -9
  2. package/dist/client/assets/Add-DiTv65Se.js +1 -0
  3. package/dist/client/assets/{Button-pgPN7RfC.js → Button-vKfgky-Y.js} +3 -3
  4. package/dist/client/assets/{ChannelsView-qFMvJ9rS.js → ChannelsView-CHWtzAkF.js} +1 -1
  5. package/dist/client/assets/ChatView--lvFbW3I.js +127 -0
  6. package/dist/client/assets/ChatView-b0_L3ucp.css +1 -0
  7. package/dist/client/assets/{Close-CXC76d7R.js → Close-Brba3ay5.js} +2 -2
  8. package/dist/client/assets/{FormItem-DIcSMjKz.js → FormItem-kXuCeSKq.js} +3 -3
  9. package/dist/client/assets/GatewaysView-DUPP1UyD.js +1 -0
  10. package/dist/client/assets/Input-BS71ZaoJ.js +234 -0
  11. package/dist/client/assets/{InputNumber-Btyn8bQo.js → InputNumber-BXy4reTI.js} +2 -2
  12. package/dist/client/assets/JobsView-CXa1h0NF.js +2 -0
  13. package/dist/client/assets/LoginView-Cpod3SAL.js +1 -0
  14. package/dist/client/assets/LoginView-DfWYTzX1.css +1 -0
  15. package/dist/client/assets/LogsView-CgxeVMn-.js +1 -0
  16. package/dist/client/assets/{MarkdownRenderer-G4nly1xR.js → MarkdownRenderer-B7t0ZEw0.js} +9 -9
  17. package/dist/client/assets/MemoryView-BQjYVDJc.js +7 -0
  18. package/dist/client/assets/{Modal-rKb1tfQv.js → Modal-6Bv1v4kO.js} +4 -4
  19. package/dist/client/assets/ModelsView-CVghPzgk.js +1 -0
  20. package/dist/client/assets/Popconfirm-Bpz_dC1j.js +16 -0
  21. package/dist/client/assets/Popover-CXrjClQw.js +117 -0
  22. package/dist/client/assets/ProfilesView-Brpyzl-Q.js +440 -0
  23. package/dist/client/assets/{Select-CpNY3UGb.js → Select-Z20Mp4nQ.js} +5 -5
  24. package/dist/client/assets/SettingRow-Cz749k-e.js +1 -0
  25. package/dist/client/assets/SettingsView-C3HbKb4w.js +352 -0
  26. package/dist/client/assets/{SettingsView-CX312EGG.css → SettingsView-Cw4iOwXj.css} +1 -1
  27. package/dist/client/assets/SkillsView-qVZkbI37.js +1 -0
  28. package/dist/client/assets/Spin-DKwUVt1F.js +43 -0
  29. package/dist/client/assets/Suffix-C1Mw6UwH.js +90 -0
  30. package/dist/client/assets/{Switch-haCJAcVn.js → Switch-DG-3EwdR.js} +2 -2
  31. package/dist/client/assets/{Tag-CKzgX6hi.js → Tag-BWD1u63m.js} +2 -2
  32. package/dist/client/assets/{TerminalView-CmSON012.js → TerminalView-DTR8bNOy.js} +6 -6
  33. package/dist/client/assets/Tooltip-Dka1-DNs.js +1 -0
  34. package/dist/client/assets/UsageView-elTUQCED.js +1 -0
  35. package/dist/client/assets/{Warning-B2AD2ulw.js → Warning-CCZES7el.js} +1 -1
  36. package/dist/client/assets/{_plugin-vue_export-helper-DXZ6IauR.js → _plugin-vue_export-helper-Bl_Pm_OI.js} +2 -2
  37. package/dist/client/assets/app-BMD_VOYs.js +1 -0
  38. package/dist/client/assets/{app-Du5RZCLa.js → app-y8cD3FPg.js} +1 -1
  39. package/dist/client/assets/auth-BPBv1nNQ.js +1 -0
  40. package/dist/client/assets/browser-DlPqZ-4M.js +47 -0
  41. package/dist/client/assets/chat-3-o9JAHE.js +6 -0
  42. package/dist/client/assets/composables-CoSqDggz.js +1 -0
  43. package/dist/client/assets/{fade-in.cssr-CkQxIGt5.js → fade-in.cssr-D0suZaLL.js} +2 -2
  44. package/dist/client/assets/index-BRXOdlZt.css +1 -0
  45. package/dist/client/assets/index-CeFFa_Wg.js +284 -0
  46. package/dist/client/assets/{jobs-BnXwbdOs.js → jobs-DMiCP2Li.js} +1 -1
  47. package/dist/client/assets/light-BNuYwJcs.js +1 -0
  48. package/dist/client/assets/{light-BZfVIZ0W.js → light-DLz3o2il.js} +1 -1
  49. package/dist/client/assets/{light-Bdfae2y3.js → light-DbUQYfY2.js} +1 -1
  50. package/dist/client/assets/{light-Jn66LOmu.js → light-DcGe0-g1.js} +1 -1
  51. package/dist/client/assets/{light-Dgzhn0jz.js → light-cIgLWDVk.js} +1 -1
  52. package/dist/client/assets/{models-mCQyOPuV.js → models-EKNn3-zC.js} +1 -1
  53. package/dist/client/assets/{pinia-Jb4QOAzE.js → pinia-C8BDM-Fc.js} +1 -1
  54. package/dist/client/assets/profiles-1vZTTlBc.js +1 -0
  55. package/dist/client/assets/{router-qWVkGgap.js → router-kR4kqS2l.js} +2 -2
  56. package/dist/client/assets/{session-browser-prefs-Bh1and1f.js → session-browser-prefs-BI-rZu2N.js} +1 -1
  57. package/dist/client/assets/sessions-CJI89wYu.js +1 -0
  58. package/dist/client/assets/{skills-BIFy9nXD.js → skills-DjdZmDZP.js} +1 -1
  59. package/dist/client/assets/{use-message-Do_vF1fs.js → use-message-sSsrvqld.js} +1 -1
  60. package/dist/client/assets/{useTheme-BFm8wMmc.js → useTheme-DgQIobZP.js} +1 -1
  61. package/dist/client/index.html +29 -30
  62. package/dist/server/index.js +1067 -329
  63. package/dist/server/index.js.map +4 -4
  64. package/package.json +2 -2
  65. package/dist/client/assets/Add-COjp_zn3.js +0 -1
  66. package/dist/client/assets/ChatView-DVQv3z6i.js +0 -127
  67. package/dist/client/assets/ChatView-w9DKSiie.css +0 -1
  68. package/dist/client/assets/GatewaysView-BeaZvbdd.js +0 -1
  69. package/dist/client/assets/Input-CxMM68Q2.js +0 -234
  70. package/dist/client/assets/JobsView-DhosFF52.js +0 -2
  71. package/dist/client/assets/LoginView-DHPxG3eC.css +0 -1
  72. package/dist/client/assets/LoginView-DrjDX7xD.js +0 -1
  73. package/dist/client/assets/LogsView-BpW_vgEs.js +0 -1
  74. package/dist/client/assets/MemoryView-CP3K8mDG.js +0 -7
  75. package/dist/client/assets/ModelsView-DdQUiiu6.js +0 -1
  76. package/dist/client/assets/Popconfirm-DnYCLqNF.js +0 -16
  77. package/dist/client/assets/Popover-DAXLiB78.js +0 -117
  78. package/dist/client/assets/ProfilesView-Bkhqt3QB.js +0 -440
  79. package/dist/client/assets/SettingRow-B4_BuJSm.js +0 -1
  80. package/dist/client/assets/SettingsView-ZwzxJZVc.js +0 -352
  81. package/dist/client/assets/SkillsView-B3X9y2kZ.js +0 -1
  82. package/dist/client/assets/Spin-CAOjab_F.js +0 -43
  83. package/dist/client/assets/Suffix-DQWmhzzW.js +0 -90
  84. package/dist/client/assets/Tooltip-U6DmMv6W.js +0 -1
  85. package/dist/client/assets/UsageView-rmIKdR1u.js +0 -1
  86. package/dist/client/assets/app-lD2ZIoa4.js +0 -1
  87. package/dist/client/assets/browser-DcLLT85r.js +0 -47
  88. package/dist/client/assets/chat-DJP53-h1.js +0 -6
  89. package/dist/client/assets/composables-CjmuafMO.js +0 -1
  90. package/dist/client/assets/index-BfU2Be-n.css +0 -1
  91. package/dist/client/assets/index-BqaBjme9.js +0 -284
  92. package/dist/client/assets/light-ZuZhSzix.js +0 -1
  93. package/dist/client/assets/light-ba4gwt1q.js +0 -1
  94. package/dist/client/assets/omit-1BRB6K75.js +0 -1
  95. package/dist/client/assets/profiles-PisKQKsd.js +0 -1
  96. package/dist/client/assets/sessions-smjenK_5.js +0 -1
  97. /package/dist/client/assets/{_common-Yp55QE79.js → _common-D_mHAddk.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermes-web-ui",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics & channel configuration (Telegram, Discord, Slack, WhatsApp)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "start": "vite --host --port 8648",
37
37
  "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"",
38
38
  "dev:client": "vite --host",
39
- "dev:server": "nodemon --signal SIGTERM --watch packages/server/src -e ts,tsx --exec node -r ts-node/register packages/server/src/index.ts",
39
+ "dev:server": "nodemon --signal SIGTERM --watch packages/server/src -e ts,tsx --exec TS_NODE_PROJECT=packages/server/tsconfig.json node -r ts-node/register packages/server/src/index.ts",
40
40
  "build": "vue-tsc -b && vite build && tsc --noEmit -p packages/server/tsconfig.json && node scripts/build-server.mjs",
41
41
  "preview": "vite preview",
42
42
  "test": "vitest run",
@@ -1 +0,0 @@
1
- import{N as e,j as t}from"./router-qWVkGgap.js";var n=t({name:`Add`,render(){return e(`svg`,{width:`512`,height:`512`,viewBox:`0 0 512 512`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},e(`path`,{d:`M256 112V400M400 256H112`,stroke:`currentColor`,"stroke-width":`32`,"stroke-linecap":`round`,"stroke-linejoin":`round`}))}});export{n as t};
@@ -1,127 +0,0 @@
1
- import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,K as c,L as l,N as u,Q as d,R as f,T as p,U as m,V as h,W as g,X as _,_ as v,ct as y,d as b,dt as x,g as S,gt as C,j as w,k as T,m as E,mt as D,o as O,ot as k,pt as A,q as j,st as M,w as N,y as P}from"./router-qWVkGgap.js";import{r as F,t as I}from"./_plugin-vue_export-helper-DXZ6IauR.js";import{t as L}from"./logo-Cd-t_oGE.js";import{$ as R,B as z,X as B,c as V,ct as H,dt as U,ft as W,pt as G,q as ee,st as K,tt as q,ut as J,z as te}from"./browser-DcLLT85r.js";import{C as ne,E as re,N as ie,S as Y,T as ae,c as X,g as oe,k as Z,l as se,m as ce,n as le,o as ue,r as de,t as fe}from"./Popover-DAXLiB78.js";import{r as pe,t as me}from"./create-5zWq3BEB.js";import{d as he,f as ge,p as _e,r as ve}from"./Suffix-DQWmhzzW.js";import{t as ye}from"./Modal-rKb1tfQv.js";import{t as Q}from"./Button-pgPN7RfC.js";import{t as be}from"./Input-CxMM68Q2.js";import{i as xe,n as Se,t as Ce}from"./chat-DJP53-h1.js";import{t as we}from"./Tooltip-U6DmMv6W.js";import{t as Te}from"./use-message-Do_vF1fs.js";import{t as Ee}from"./Popconfirm-DnYCLqNF.js";import{t as De}from"./useTheme-BFm8wMmc.js";import{t as Oe}from"./app-Du5RZCLa.js";import{t as ke}from"./profiles-PisKQKsd.js";import{i as Ae}from"./sessions-smjenK_5.js";import{t as je}from"./session-browser-prefs-Bh1and1f.js";import{i as Me,n as Ne,r as Pe,t as Fe}from"./MarkdownRenderer-G4nly1xR.js";function Ie(e={},t){let r=k({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:i,keyup:a}=e,o=e=>{switch(e.key){case`Control`:r.ctrl=!0;break;case`Meta`:r.command=!0,r.win=!0;break;case`Shift`:r.shift=!0;break;case`Tab`:r.tab=!0;break}i!==void 0&&Object.keys(i).forEach(t=>{if(t!==e.key)return;let n=i[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},s=e=>{switch(e.key){case`Control`:r.ctrl=!1;break;case`Meta`:r.command=!1,r.win=!1;break;case`Shift`:r.shift=!1;break;case`Tab`:r.tab=!1;break}a!==void 0&&Object.keys(a).forEach(t=>{if(t!==e.key)return;let n=a[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},c=()=>{(t===void 0||t.value)&&(_e(`keydown`,document,o),_e(`keyup`,document,s)),t!==void 0&&_(t,e=>{e?(_e(`keydown`,document,o),_e(`keyup`,document,s)):(ge(`keydown`,document,o),ge(`keyup`,document,s))})};return ie()?(n(c),h(()=>{(t===void 0||t.value)&&(ge(`keydown`,document,o),ge(`keyup`,document,s))})):c(),M(r)}function Le(e,t,n){if(!t)return e;let r=y(e.value),i=null;return _(e,e=>{i!==null&&window.clearTimeout(i),e===!0?n&&!n.value?r.value=!0:i=window.setTimeout(()=>{r.value=!0},t):r.value=!1}),r}function Re(e){return t=>{t?e.value=t.$el:e.value=null}}var ze=w({name:`ChevronRight`,render(){return u(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},u(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),Be=R(`n-dropdown-menu`),Ve=R(`n-dropdown`),He=R(`n-dropdown-option`),Ue=w({name:`DropdownDivider`,props:{clsPrefix:{type:String,required:!0}},render(){return u(`div`,{class:`${this.clsPrefix}-dropdown-divider`})}}),We=w({name:`DropdownGroupHeader`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){let{showIconRef:e,hasSubmenuRef:t}=o(Be),{renderLabelRef:n,labelFieldRef:r,nodePropsRef:i,renderOptionRef:a}=o(Ve);return{labelField:r,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:i,renderOption:a}},render(){let{clsPrefix:e,hasSubmenu:t,showIcon:n,nodeProps:r,renderLabel:i,renderOption:a}=this,{rawNode:o}=this.tmNode,s=u(`div`,Object.assign({class:`${e}-dropdown-option`},r?.(o)),u(`div`,{class:`${e}-dropdown-option-body ${e}-dropdown-option-body--group`},u(`div`,{"data-dropdown-option":!0,class:[`${e}-dropdown-option-body__prefix`,n&&`${e}-dropdown-option-body__prefix--show-icon`]},X(o.icon)),u(`div`,{class:`${e}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(o):X(o.title??o[this.labelField])),u(`div`,{class:[`${e}-dropdown-option-body__suffix`,t&&`${e}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return a?a({node:s,option:o}):s}}),Ge=H(`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
- `,[U(`color-transition`,{transition:`color .3s var(--n-bezier)`}),U(`depth`,{color:`var(--n-color)`},[K(`svg`,{opacity:`var(--n-opacity)`,transition:`opacity .3s var(--n-bezier)`})]),K(`svg`,{height:`1em`,width:`1em`})]),Ke=w({_n_icon__:!0,name:`Icon`,inheritAttrs:!1,props:Object.assign(Object.assign({},V.props),{depth:[String,Number],size:[Number,String],color:String,component:[Object,Function]}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n}=z(e),i=V(`Icon`,`-icon`,Ge,Se,e,t),a=r(()=>{let{depth:t}=e,{common:{cubicBezierEaseInOut:n},self:r}=i.value;if(t!==void 0){let{color:e,[`opacity${t}Depth`]:i}=r;return{"--n-bezier":n,"--n-color":e,"--n-opacity":i}}return{"--n-bezier":n,"--n-color":``,"--n-opacity":``}}),o=n?te(`icon`,r(()=>`${e.depth||`d`}`),a,e):void 0;return{mergedClsPrefix:t,mergedStyle:r(()=>{let{size:t,color:n}=e;return{fontSize:ce(t),color:n}}),cssVars:n?void 0:a,themeClass:o?.themeClass,onRender:o?.onRender}},render(){let{$parent:e,depth:t,mergedClsPrefix:n,component:r,onRender:i,themeClass:a}=this;return e?.$options?._n_icon__&&B(`icon`,"don't wrap `n-icon` inside `n-icon`"),i?.(),u(`i`,l(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?u(r):this.$slots)}});function qe(e,t){return e.type===`submenu`||e.type===void 0&&e[t]!==void 0}function Je(e){return e.type===`group`}function Ye(e){return e.type===`divider`}function Xe(e){return e.type===`render`}var Ze=w({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=o(Ve),{hoverKeyRef:n,keyboardKeyRef:i,lastToggledSubmenuKeyRef:a,pendingKeyPathRef:s,activeKeyPathRef:l,animatedRef:u,mergedShowRef:d,renderLabelRef:f,renderIconRef:p,labelFieldRef:m,childrenFieldRef:h,renderOptionRef:g,nodePropsRef:_,menuPropsRef:v}=t,b=o(He,null),x=o(Be),S=o(ae),C=r(()=>e.tmNode.rawNode),w=r(()=>{let{value:t}=h;return qe(e.tmNode.rawNode,t)}),T=r(()=>{let{disabled:t}=e.tmNode;return t}),E=Le(r(()=>{if(!w.value)return!1;let{key:t,disabled:r}=e.tmNode;if(r)return!1;let{value:o}=n,{value:c}=i,{value:l}=a,{value:u}=s;return o===null?c===null?l===null?!1:u.includes(t):u.includes(t)&&u[u.length-1]!==t:u.includes(t)}),300,r(()=>i.value===null&&!u.value)),D=r(()=>!!b?.enteringSubmenuRef.value),O=y(!1);c(He,{enteringSubmenuRef:O});function k(){O.value=!0}function A(){O.value=!1}function j(){let{parentKey:t,tmNode:r}=e;r.disabled||d.value&&(a.value=t,i.value=null,n.value=r.key)}function M(){let{tmNode:t}=e;t.disabled||d.value&&n.value!==t.key&&j()}function N(t){if(e.tmNode.disabled||!d.value)return;let{relatedTarget:r}=t;r&&!pe({target:r},`dropdownOption`)&&!pe({target:r},`scrollbarRail`)&&(n.value=null)}function P(){let{value:n}=w,{tmNode:r}=e;d.value&&!n&&!r.disabled&&(t.doSelect(r.key,r.rawNode),t.doUpdateShow(!1))}return{labelField:m,renderLabel:f,renderIcon:p,siblingHasIcon:x.showIconRef,siblingHasSubmenu:x.hasSubmenuRef,menuProps:v,popoverBody:S,animated:u,mergedShowSubmenu:r(()=>E.value&&!D.value),rawNode:C,hasSubmenu:w,pending:q(()=>{let{value:t}=s,{key:n}=e.tmNode;return t.includes(n)}),childActive:q(()=>{let{value:t}=l,{key:n}=e.tmNode,r=t.findIndex(e=>n===e);return r===-1?!1:r<t.length-1}),active:q(()=>{let{value:t}=l,{key:n}=e.tmNode,r=t.findIndex(e=>n===e);return r===-1?!1:r===t.length-1}),mergedDisabled:T,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:o,renderIcon:s,renderOption:c,nodeProps:d,props:f,scrollable:p}=this,m=null;if(n){let e=this.menuProps?.call(this,t,t.children);m=u(et,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),_=u(`div`,Object.assign({class:[`${r}-dropdown-option`,g?.class],"data-dropdown-option":!0},g),u(`div`,l(h,f),[u(`div`,{class:[`${r}-dropdown-option-body__prefix`,i&&`${r}-dropdown-option-body__prefix--show-icon`]},[s?s(t):X(t.icon)]),u(`div`,{"data-dropdown-option":!0,class:`${r}-dropdown-option-body__label`},o?o(t):X(t[this.labelField]??t.title)),u(`div`,{"data-dropdown-option":!0,class:[`${r}-dropdown-option-body__suffix`,a&&`${r}-dropdown-option-body__suffix--has-submenu`]},this.hasSubmenu?u(Ke,null,{default:()=>u(ze,null)}):null)]),this.hasSubmenu?u(ne,null,{default:()=>[u(Y,null,{default:()=>u(`div`,{class:`${r}-dropdown-offset-container`},u(oe,{show:this.mergedShowSubmenu,placement:this.placement,to:p&&this.popoverBody||void 0,teleportDisabled:!p},{default:()=>u(`div`,{class:`${r}-dropdown-menu-wrapper`},e?u(b,{onBeforeEnter:this.handleSubmenuBeforeEnter,onAfterEnter:this.handleSubmenuAfterEnter,name:`fade-in-scale-up-transition`,appear:!0},{default:()=>m}):m)}))})]}):null);return c?c({node:_,option:t}):_}}),Qe=w({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 u(P,null,u(We,{clsPrefix:n,tmNode:e,key:e.key}),r?.map(e=>{let{rawNode:r}=e;return r.show===!1?null:Ye(r)?u(Ue,{clsPrefix:n,key:e.key}):e.isGroup?(B(`dropdown`,"`group` node is not allowed to be put in `group` node."),null):u(Ze,{clsPrefix:n,tmNode:e,parentKey:t,key:e.key})}))}}),$e=w({name:`DropdownRenderOption`,props:{tmNode:{type:Object,required:!0}},render(){let{rawNode:{render:e,props:t}}=this.tmNode;return u(`div`,t,[e?.()])}}),et=w({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}=o(Ve);c(Be,{showIconRef:r(()=>{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:r(()=>{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 i=y(null);return c(re,null),c(Z,null),c(ae,i),{bodyRef:i}},render(){let{parentKey:e,clsPrefix:t,scrollable:n}=this,r=this.tmNodes.map(r=>{let{rawNode:i}=r;return i.show===!1?null:Xe(i)?u($e,{tmNode:r,key:r.key}):Ye(i)?u(Ue,{clsPrefix:t,key:r.key}):Je(i)?u(Qe,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key}):u(Ze,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key,props:i.props,scrollable:n})});return u(`div`,{class:[`${t}-dropdown-menu`,n&&`${t}-dropdown-menu--scrollable`],ref:`bodyRef`},n?u(ve,{contentClass:`${t}-dropdown-menu__content`},{default:()=>r}):r,this.showArrow?de({clsPrefix:t,arrowStyle:this.arrowStyle,arrowClass:void 0,arrowWrapperClass:void 0,arrowWrapperStyle:void 0}):null)}}),tt=H(`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(),H(`dropdown-option`,`
19
- position: relative;
20
- `,[K(`a`,`
21
- text-decoration: none;
22
- color: inherit;
23
- outline: none;
24
- `,[K(`&::before`,`
25
- content: "";
26
- position: absolute;
27
- left: 0;
28
- right: 0;
29
- top: 0;
30
- bottom: 0;
31
- `)]),H(`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
- `,[K(`&::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
- `),W(`disabled`,[U(`pending`,`
50
- color: var(--n-option-text-color-hover);
51
- `,[J(`prefix, suffix`,`
52
- color: var(--n-option-text-color-hover);
53
- `),K(`&::before`,`background-color: var(--n-option-color-hover);`)]),U(`active`,`
54
- color: var(--n-option-text-color-active);
55
- `,[J(`prefix, suffix`,`
56
- color: var(--n-option-text-color-active);
57
- `),K(`&::before`,`background-color: var(--n-option-color-active);`)]),U(`child-active`,`
58
- color: var(--n-option-text-color-child-active);
59
- `,[J(`prefix, suffix`,`
60
- color: var(--n-option-text-color-child-active);
61
- `)])]),U(`disabled`,`
62
- cursor: not-allowed;
63
- opacity: var(--n-option-opacity-disabled);
64
- `),U(`group`,`
65
- font-size: calc(var(--n-font-size) - 1px);
66
- color: var(--n-group-header-text-color);
67
- `,[J(`prefix`,`
68
- width: calc(var(--n-option-prefix-width) / 2);
69
- `,[U(`show-icon`,`
70
- width: calc(var(--n-option-icon-prefix-width) / 2);
71
- `)])]),J(`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
- `,[U(`show-icon`,`
80
- width: var(--n-option-icon-prefix-width);
81
- `),H(`icon`,`
82
- font-size: var(--n-option-icon-size);
83
- `)]),J(`label`,`
84
- white-space: nowrap;
85
- flex: 1;
86
- z-index: 1;
87
- `),J(`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
- `,[U(`has-submenu`,`
100
- width: var(--n-option-icon-suffix-width);
101
- `),H(`icon`,`
102
- font-size: var(--n-option-icon-size);
103
- `)]),H(`dropdown-menu`,`pointer-events: all;`)]),H(`dropdown-offset-container`,`
104
- pointer-events: none;
105
- position: absolute;
106
- left: 0;
107
- right: 0;
108
- top: -4px;
109
- bottom: -4px;
110
- `)]),H(`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
- `),H(`dropdown-menu-wrapper`,`
116
- transform-origin: var(--v-transform-origin);
117
- width: fit-content;
118
- `),K(`>`,[H(`scrollbar`,`
119
- height: inherit;
120
- max-height: inherit;
121
- `)]),W(`scrollable`,`
122
- padding: var(--n-padding);
123
- `),U(`scrollable`,[J(`content`,`
124
- padding: var(--n-padding);
125
- `)])]),nt={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]},rt=Object.keys(le),it=w({name:`Dropdown`,inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},le),nt),V.props),setup(e){let t=y(!1),n=he(x(e,`show`),t),i=r(()=>{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=r(()=>i.value.treeNodes),o=y(null),s=y(null),l=y(null),u=r(()=>o.value??s.value??l.value??null),d=r(()=>i.value.getPath(u.value).keyPath),f=r(()=>i.value.getPath(e.value).keyPath),p=q(()=>e.keyboard&&n.value);Ie({keydown:{ArrowUp:{prevent:!0,handler:O},ArrowRight:{prevent:!0,handler:D},ArrowDown:{prevent:!0,handler:k},ArrowLeft:{prevent:!0,handler:E},Enter:{prevent:!0,handler:A},Escape:T}},p);let{mergedClsPrefixRef:m,inlineThemeDisabled:h,mergedComponentPropsRef:g}=z(e),v=r(()=>e.size||g?.value?.Dropdown?.size||`medium`),b=V(`Dropdown`,`-dropdown`,tt,xe,e,m);c(Ve,{labelFieldRef:x(e,`labelField`),childrenFieldRef:x(e,`childrenField`),renderLabelRef:x(e,`renderLabel`),renderIconRef:x(e,`renderIcon`),hoverKeyRef:o,keyboardKeyRef:s,lastToggledSubmenuKeyRef:l,pendingKeyPathRef:d,activeKeyPathRef:f,animatedRef:x(e,`animated`),mergedShowRef:n,nodePropsRef:x(e,`nodeProps`),renderOptionRef:x(e,`renderOption`),menuPropsRef:x(e,`menuProps`),doSelect:S,doUpdateShow:C}),_(n,t=>{!e.animated&&!t&&w()});function S(t,n){let{onSelect:r}=e;r&&ee(r,t,n)}function C(n){let{"onUpdate:show":r,onUpdateShow:i}=e;r&&ee(r,n),i&&ee(i,n),t.value=n}function w(){o.value=null,s.value=null,l.value=null}function T(){C(!1)}function E(){M(`left`)}function D(){M(`right`)}function O(){M(`up`)}function k(){M(`down`)}function A(){let e=j();e?.isLeaf&&n.value&&(S(e.key,e.rawNode),C(!1))}function j(){let{value:e}=i,{value:t}=u;return!e||t===null?null:e.getNode(t)??null}function M(e){let{value:t}=u,{value:{getFirstAvailableNode:n}}=i,r=null;if(t===null){let e=n();e!==null&&(r=e.key)}else{let t=j();if(t){let n;switch(e){case`down`:n=t.getNext();break;case`up`:n=t.getPrev();break;case`right`:n=t.getChild();break;case`left`:n=t.getParent();break}n&&(r=n.key)}}r!==null&&(o.value=null,s.value=r)}let N=r(()=>{let{inverted:t}=e,n=v.value,{common:{cubicBezierEaseInOut:r},self:i}=b.value,{padding:a,dividerColor:o,borderRadius:s,optionOpacityDisabled:c,[G(`optionIconSuffixWidth`,n)]:l,[G(`optionSuffixWidth`,n)]:u,[G(`optionIconPrefixWidth`,n)]:d,[G(`optionPrefixWidth`,n)]:f,[G(`fontSize`,n)]:p,[G(`optionHeight`,n)]:m,[G(`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?te(`dropdown`,r(()=>`${v.value[0]}${e.inverted?`i`:``}`),N,e):void 0;return{mergedClsPrefix:m,mergedTheme:b,mergedSize:v,tmNodes:a,mergedShow:n,handleAfterLeave:()=>{e.animated&&w()},doUpdateShow:C,cssVars:h?void 0:N,themeClass:P?.themeClass,onRender:P?.onRender}},render(){let e=(e,t,n,r,i)=>{var a;let{mergedClsPrefix:o,menuProps:s}=this;(a=this.onRender)==null||a.call(this);let c=s?.(void 0,this.tmNodes.map(e=>e.rawNode))||{},d={ref:Re(t),class:[e,`${o}-dropdown`,`${o}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:o,tmNodes:this.tmNodes,style:[...n,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:r,onMouseleave:i};return u(et,l(this.$attrs,d,c))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return u(fe,Object.assign({},se(this.$props,rt),n),{trigger:()=>{var e;return(e=this.$slots).default?.call(e)}})}}),at={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 ot(e){return e?at[e]||e:``}function st(e){if(!e)return``;let t=new Date(e),n=new Date;return t.toDateString()===n.toDateString()?t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):t.toLocaleDateString([],{month:`short`,day:`numeric`})}function ct(e){return st(e*1e3)}var lt={class:`chat-input-area`},ut={key:0,class:`attachment-previews`},dt=[`src`,`alt`],ft={key:1,class:`attachment-file`},pt={class:`file-name`},mt={class:`file-size`},ht=[`onClick`],gt=[`placeholder`],_t={class:`input-actions`},vt=I(w({__name:`ChatInput`,setup(n){let o=Ce(),{t:c}=F(),l=y(``),u=y(),f=y(),m=y([]),h=y(!1),g=y(0),_=y(!1),v=r(()=>l.value.trim()||m.value.length>0);function b(e){if(m.value.find(t=>t.name===e.name))return;let t=Date.now().toString(36)+Math.random().toString(36).slice(2,8),n=URL.createObjectURL(e);m.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function x(){f.value?.click()}function S(e){let t=e.target;if(t.files){for(let e of t.files)b(e);t.value=``}}function w(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>e.type.startsWith(`image/`));if(t.length){e.preventDefault();for(let e of t){let t=e.getAsFile();if(!t)continue;let n=e.type.split(`/`)[1]||`png`;b(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function O(e){e.preventDefault()}function k(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(g.value++,h.value=!0)}function M(){g.value--,g.value<=0&&(g.value=0,h.value=!1)}function I(e){e.preventDefault(),g.value=0,h.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)b(e);u.value?.focus()}}function L(){let e=l.value.trim();!e&&m.value.length===0||(o.sendMessage(e,m.value.length>0?m.value:void 0),l.value=``,m.value=[],u.value&&(u.value.style.height=`auto`))}function R(){_.value=!0}function z(){requestAnimationFrame(()=>{_.value=!1})}function B(e){return _.value||e.isComposing||e.keyCode===229}function V(e){e.key!==`Enter`||e.shiftKey||B(e)||(e.preventDefault(),L())}function H(e){let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,100)+`px`}function U(e){let t=m.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(m.value[t].url),m.value.splice(t,1))}function W(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function G(e){return e.startsWith(`image/`)}return(n,r)=>(s(),i(`div`,lt,[m.value.length>0?(s(),i(`div`,ut,[(s(!0),i(P,null,j(m.value,e=>(s(),i(`div`,{key:e.id,class:D([`attachment-preview`,{image:G(e.type)}])},[G(e.type)?(s(),i(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,dt)):(s(),i(`div`,ft,[r[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`,pt,C(e.name),1),N(`span`,mt,C(W(e.size)),1)])),N(`button`,{class:`attachment-remove`,onClick:t=>U(e.id)},[...r[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,ht)],2))),128))])):a(``,!0),N(`div`,{class:D([`input-wrapper`,{"drag-over":h.value}]),onDragover:O,onDragenter:k,onDragleave:M,onDrop:I},[N(`input`,{ref_key:`fileInputRef`,ref:f,type:`file`,multiple:``,class:`file-input-hidden`,onChange:S},null,544),e(N(`textarea`,{ref_key:`textareaRef`,ref:u,"onUpdate:modelValue":r[0]||=e=>l.value=e,class:`input-textarea`,placeholder:A(c)(`chat.inputPlaceholder`),rows:`1`,onKeydown:V,onCompositionstart:R,onCompositionend:z,onInput:H,onPaste:w},null,40,gt),[[E,l.value]]),N(`div`,_t,[t(A(we),{trigger:`hover`},{trigger:d(()=>[t(A(Q),{quaternary:``,size:`small`,onClick:x,circle:``},{icon:d(()=>[...r[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:d(()=>[T(` `+C(A(c)(`chat.attachFiles`)),1)]),_:1}),A(o).isStreaming?(s(),p(A(Q),{key:0,size:`small`,type:`error`,onClick:r[1]||=e=>A(o).stopStreaming()},{default:d(()=>[T(C(A(c)(`chat.stop`)),1)]),_:1})):a(``,!0),t(A(Q),{size:`small`,type:`primary`,disabled:!v.value||A(o).isStreaming,onClick:L},{icon:d(()=>[...r[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:d(()=>[T(` `+C(A(c)(`chat.send`)),1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-4c2b3ca2`]]);async function yt(e={}){let t=new URLSearchParams;return e.humanOnly===!1&&t.set(`humanOnly`,`false`),e.source&&t.set(`source`,e.source),e.limit!=null&&t.set(`limit`,String(e.limit)),(await O(`/api/hermes/sessions/conversations${t.toString()?`?${t.toString()}`:``}`)).sessions}async function bt(e,t={}){let n=new URLSearchParams;t.humanOnly===!1&&n.set(`humanOnly`,`false`),t.source&&n.set(`source`,t.source);let r=n.toString()?`?${n.toString()}`:``;return O(`/api/hermes/sessions/conversations/${encodeURIComponent(e)}/messages${r}`)}var xt={class:`conversation-monitor`},St={class:`conversation-monitor__sidebar`},Ct={key:0,class:`conversation-monitor__empty`},wt={key:1,class:`conversation-monitor__empty`},Tt=[`aria-pressed`,`onClick`],Et={class:`conversation-monitor__session-title-row`},Dt={class:`conversation-monitor__session-title`},Ot={key:0,class:`conversation-monitor__session-live`},kt={class:`conversation-monitor__session-meta`},At={key:0,class:`conversation-monitor__session-preview`},jt={class:`conversation-monitor__detail`},Mt={key:0,class:`conversation-monitor__detail-header`},Nt={class:`conversation-monitor__detail-title`},Pt={class:`conversation-monitor__detail-meta`},Ft={key:1,class:`conversation-monitor__empty conversation-monitor__empty--error`},It={key:2,class:`conversation-monitor__empty`},Lt={key:3,class:`conversation-monitor__empty`},Rt={key:4,class:`conversation-monitor__messages`},zt={class:`conversation-monitor__message-meta`},Bt={class:`conversation-monitor__message-content`},Vt=15e3,Ht=I(w({__name:`ConversationMonitorPane`,props:{humanOnly:{type:Boolean}},setup(e){let t=e,{t:n}=F(),o=y([]),c=y(null),l=y(null),u=y(!1),d=y(!1),f=y(``),p=null,h=0,v=0,b=r(()=>o.value.find(e=>e.id===c.value)||null);function x(e){return n(e===`user`?`chat.monitorRoleUser`:`chat.monitorRoleAssistant`)}function S(e){return n(`chat.linkedSessions`,{count:e})}function w(){h+=1,v+=1}async function T(e=!1){let n=++h;e||(u.value=!0,f.value=``);try{let e=await yt({humanOnly:t.humanOnly});if(n!==h)return;if(o.value=e,!e.length){c.value=null,l.value=null;return}(!c.value||!e.some(e=>e.id===c.value))&&(c.value=e[0].id)}catch(t){if(n!==h||e)return;f.value=t?.message||String(t),o.value=[],c.value=null,l.value=null}finally{!e&&n===h&&(u.value=!1)}}async function E(e,n=!1){let r=++v;if(!e){l.value=null;return}let i=t.humanOnly;n||(d.value=!0,f.value=``);try{let n=await bt(e,{humanOnly:i});if(r!==v||e!==c.value||i!==t.humanOnly)return;l.value=n}catch(e){if(r!==v||n)return;f.value=e?.message||String(e),l.value=null}finally{!n&&r===v&&(d.value=!1)}}return _(c,async e=>{await E(e,!1)}),_(()=>t.humanOnly,async()=>{w(),c.value=null,l.value=null,await T(!1)}),m(async()=>{await T(!1),p=setInterval(async()=>{await T(!0),c.value&&await E(c.value,!0)},Vt)}),g(()=>{w(),p&&clearInterval(p)}),(e,t)=>(s(),i(`div`,xt,[N(`aside`,St,[u.value&&o.value.length===0?(s(),i(`div`,Ct,C(A(n)(`common.loading`)),1)):o.value.length===0?(s(),i(`div`,wt,C(A(n)(`chat.noSessions`)),1)):a(``,!0),(s(!0),i(P,null,j(o.value,e=>(s(),i(`button`,{key:e.id,class:D([`conversation-monitor__session`,{active:e.id===c.value}]),"aria-pressed":e.id===c.value,onClick:t=>c.value=e.id},[N(`div`,Et,[N(`span`,Dt,C(e.title||e.preview||e.id),1),e.is_active?(s(),i(`span`,Ot,C(A(n)(`chat.recentBadge`)),1)):a(``,!0)]),N(`div`,kt,C(A(ot)(e.source))+` · `+C(A(ct)(e.last_active)),1),e.preview?(s(),i(`div`,At,C(e.preview),1)):a(``,!0)],10,Tt))),128))]),N(`section`,jt,[b.value?(s(),i(`header`,Mt,[N(`div`,Nt,C(b.value.title||b.value.preview||b.value.id),1),N(`div`,Pt,[N(`span`,null,C(A(ot)(b.value.source)),1),t[0]||=N(`span`,null,`·`,-1),N(`span`,null,C(b.value.model),1),t[1]||=N(`span`,null,`·`,-1),N(`span`,null,C(S(b.value.thread_session_count)),1)])])):a(``,!0),f.value?(s(),i(`div`,Ft,C(f.value),1)):d.value&&!l.value?(s(),i(`div`,It,C(A(n)(`common.loading`)),1)):!l.value||l.value.messages.length===0?(s(),i(`div`,Lt,C(A(n)(`chat.noVisibleMessages`)),1)):(s(),i(`div`,Rt,[(s(!0),i(P,null,j(l.value.messages,e=>(s(),i(`article`,{key:`${e.session_id}-${e.id}`,class:D([`conversation-monitor__message`,`role-${e.role}`])},[N(`div`,zt,C(x(e.role))+` · `+C(A(ct)(e.timestamp)),1),N(`div`,Bt,C(e.content),1)],2))),128))]))])]))}}),[[`__scopeId`,`data-v-be298d0d`]]),Ut={key:1,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},Wt={class:`tool-name`},Gt={key:2,class:`tool-preview`},Kt={key:3,class:`tool-spinner`},qt={key:4,class:`tool-error-badge`},Jt={key:0,class:`tool-detail-section`,"data-copy-source":`tool-args`},Yt={class:`tool-detail-label`},Xt=[`innerHTML`],Zt={key:1,class:`tool-detail-section`,"data-copy-source":`tool-result`},Qt={class:`tool-detail-label`},$t=[`innerHTML`],en={key:1,class:`msg-body`},tn={key:0,src:L,alt:`Hermes`,class:`msg-avatar`},nn={key:0,class:`msg-attachments`},rn=[`src`,`alt`],an={key:1,class:`msg-attachment-file`},on={class:`att-name`},sn={class:`att-size`},cn={key:2,class:`streaming-dots`},ln={class:`message-time`},$=2e3,un=I(w({__name:`MessageItem`,props:{message:{}},setup(e){let t=e,{t:n}=F(),o=r(()=>t.message.role===`system`),c=y(!1),l=r(()=>new Date(t.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function u(e){return e.startsWith(`image/`)}function d(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function f(e){if(!e)return{full:``,display:``};try{let t=JSON.stringify(JSON.parse(e),null,2);return{full:t,display:t.length>$?t.slice(0,$)+`
126
- `+n(`chat.truncated`):t,language:`json`}}catch{return{full:e,display:e.length>$?e.slice(0,$)+`
127
- `+n(`chat.truncated`):e}}}function m(e,t){return Me(e,t,n(`common.copy`),{maxHighlightLength:$})}async function h(e){let t=e.target;if(!(t instanceof HTMLElement))return;let n=t.closest(`[data-copy-code="true"]`);if(!n)return;e.preventDefault();let r=n.closest(`[data-copy-source]`)?.dataset.copySource;if(r===`tool-args`&&x.value){await Ne(x.value);return}if(r===`tool-result`&&w.value){await Ne(w.value);return}await Pe(e)}let g=r(()=>(t.message.attachments?.length??0)>0),_=r(()=>!!(t.message.toolArgs||t.message.toolResult)),v=r(()=>f(t.message.toolArgs)),b=r(()=>f(t.message.toolResult)),x=r(()=>v.value.full),S=r(()=>v.value.display),w=r(()=>b.value.full),T=r(()=>b.value.display),E=r(()=>S.value?m(S.value,v.value.language):``),O=r(()=>T.value?m(T.value,b.value.language):``);return(t,r)=>(s(),i(`div`,{class:D([`message`,[e.message.role]])},[e.message.role===`tool`?(s(),i(P,{key:0},[N(`div`,{class:D([`tool-line`,{expandable:_.value}]),onClick:r[0]||=e=>_.value&&(c.value=!c.value)},[_.value?(s(),i(`svg`,{key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:D([`tool-chevron`,{rotated:c.value}])},[...r[1]||=[N(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)):(s(),i(`svg`,Ut,[...r[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`,Wt,C(e.message.toolName),1),e.message.toolPreview&&!c.value?(s(),i(`span`,Gt,C(e.message.toolPreview),1)):a(``,!0),e.message.toolStatus===`running`?(s(),i(`span`,Kt)):a(``,!0),e.message.toolStatus===`error`?(s(),i(`span`,qt,C(A(n)(`chat.error`)),1)):a(``,!0)],2),c.value&&_.value?(s(),i(`div`,{key:0,class:`tool-details`,onClick:h},[S.value?(s(),i(`div`,Jt,[N(`div`,Yt,C(A(n)(`chat.arguments`)),1),N(`div`,{class:`tool-detail-code-block`,innerHTML:E.value},null,8,Xt)])):a(``,!0),T.value?(s(),i(`div`,Zt,[N(`div`,Qt,C(A(n)(`chat.result`)),1),N(`div`,{class:`tool-detail-code-block`,innerHTML:O.value},null,8,$t)])):a(``,!0)])):a(``,!0)],64)):(s(),i(`div`,en,[e.message.role===`assistant`?(s(),i(`img`,tn)):a(``,!0),N(`div`,{class:D([`msg-content`,e.message.role])},[N(`div`,{class:D([`message-bubble`,{system:o.value}])},[g.value?(s(),i(`div`,nn,[(s(!0),i(P,null,j(e.message.attachments,e=>(s(),i(`div`,{key:e.id,class:D([`msg-attachment`,{image:u(e.type)}])},[u(e.type)&&e.url?(s(),i(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,rn)):(s(),i(`div`,an,[r[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`,on,C(e.name),1),N(`span`,sn,C(d(e.size)),1)]))],2))),128))])):a(``,!0),e.message.content?(s(),p(Fe,{key:1,content:e.message.content},null,8,[`content`])):a(``,!0),e.message.isStreaming&&!e.message.content?(s(),i(`span`,cn,[...r[4]||=[N(`span`,null,null,-1),N(`span`,null,null,-1),N(`span`,null,null,-1)]])):a(``,!0)],2),N(`div`,ln,C(l.value),1)],2)]))],2))}}),[[`__scopeId`,`data-v-c3211247`]]),dn=`/assets/thinking-light-BjeGd2gJ.mp4`,fn=`/assets/thinking-dark-yYkYRZLs.mp4`,pn={key:0,class:`empty-state`},mn={key:0,class:`streaming-indicator`},hn=[`src`],gn={key:0,class:`tool-calls-panel`},_n={class:`tool-call-name`},vn={key:0,class:`tool-call-preview`},yn={key:1,class:`tool-call-spinner`},bn={key:2,class:`tool-call-error`},xn=I(w({__name:`MessageList`,setup(e){let n=Ce(),{t:o}=F(),{isDark:c}=De(),l=y(),u=r(()=>n.messages.filter(e=>e.role!==`tool`)),m=r(()=>{let e=n.messages,t=-1;for(let n=e.length-1;n>=0;n--)if(e[n].role===`user`){t=n;break}return[...e.filter((e,n)=>e.role===`tool`&&n>t)].reverse()});function h(e=200){let t=l.value;return t?t.scrollHeight-t.scrollTop-t.clientHeight<e:!0}function g(){f(()=>{l.value&&(l.value.scrollTop=l.value.scrollHeight)})}return _(()=>n.activeSessionId,e=>{e&&g()},{immediate:!0}),_(()=>n.isRunActive,e=>{e&&g()}),_(()=>n.messages[n.messages.length-1]?.content,()=>{if(!n.isStreaming){g();return}h()&&g()}),_(m,()=>{if(!n.isStreaming){g();return}h()&&g()}),(e,r)=>(s(),i(`div`,{ref_key:`listRef`,ref:l,class:`message-list`},[A(n).messages.length===0?(s(),i(`div`,pn,[r[0]||=N(`img`,{src:`/logo.png`,alt:`Hermes`,class:`empty-logo`},null,-1),N(`p`,null,C(A(o)(`chat.emptyState`)),1)])):a(``,!0),(s(!0),i(P,null,j(u.value,e=>(s(),p(un,{key:e.id,message:e},null,8,[`message`]))),128)),t(b,{name:`fade`},{default:d(()=>[A(n).isRunActive?(s(),i(`div`,mn,[N(`video`,{src:A(c)?A(fn):A(dn),autoplay:``,loop:``,muted:``,playsinline:``,class:`thinking-video`},null,8,hn),m.value.length>0?(s(),i(`div`,gn,[(s(!0),i(P,null,j(m.value,e=>(s(),i(`div`,{key:e.id,class:`tool-call-item`},[r[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`,_n,C(e.toolName),1),e.toolPreview?(s(),i(`span`,vn,C(e.toolPreview),1)):a(``,!0),e.toolStatus===`running`?(s(),i(`span`,yn)):a(``,!0),e.toolStatus===`error`?(s(),i(`span`,bn,C(A(o)(`chat.error`)),1)):a(``,!0)]))),128))])):a(``,!0)])):a(``,!0)]),_:1})],512))}}),[[`__scopeId`,`data-v-9cc7b1be`]]),Sn=[`aria-current`],Cn={class:`session-item-content`},wn={class:`session-item-title-row`},Tn={key:0,class:`session-item-active-indicator`,"aria-hidden":`true`},En={key:1,class:`session-item-pin`,"aria-hidden":`true`},Dn={class:`session-item-title`},On={class:`session-item-meta`},kn={key:0,class:`session-item-model`},An={class:`session-item-time`},jn=w({__name:`SessionListItem`,props:{session:{},active:{type:Boolean},live:{type:Boolean},pinned:{type:Boolean},canDelete:{type:Boolean}},emits:[`select`,`contextmenu`,`delete`],setup(e,{emit:t}){let n=t,{t:r}=F();return(t,o)=>(s(),i(`button`,{class:D([`session-item`,{active:e.active,live:e.live}]),"aria-current":e.active?`page`:void 0,onClick:o[2]||=e=>n(`select`),onContextmenu:o[3]||=e=>n(`contextmenu`,e)},[N(`div`,Cn,[N(`span`,wn,[e.live?(s(),i(`span`,Tn,[...o[4]||=[N(`svg`,{class:`session-item-active-spinner`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},[N(`circle`,{cx:`12`,cy:`12`,r:`8`,opacity:`0.2`}),N(`path`,{d:`M20 12a8 8 0 0 0-8-8`})],-1)]])):a(``,!0),e.pinned?(s(),i(`span`,En,[...o[5]||=[N(`svg`,{width:`11`,height:`11`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M12 17v5`}),N(`path`,{d:`M5 8l14 0`}),N(`path`,{d:`M8 3l8 0 0 5 3 5-14 0 3-5z`})],-1)]])):a(``,!0),N(`span`,Dn,C(e.session.title),1)]),N(`span`,On,[e.session.model?(s(),i(`span`,kn,C(e.session.model),1)):a(``,!0),N(`span`,An,C(A(st)(e.session.createdAt)),1)])]),e.canDelete?(s(),p(A(Ee),{key:0,onPositiveClick:o[1]||=e=>n(`delete`)},{trigger:d(()=>[N(`button`,{class:`session-item-delete`,onClick:o[0]||=v(()=>{},[`stop`])},[...o[6]||=[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:d(()=>[T(` `+C(A(r)(`chat.deleteSession`)),1)]),_:1})):a(``,!0)],42,Sn))}}),Mn={class:`chat-panel`},Nn={class:`session-list-header`},Pn={key:0,class:`session-list-title`},Fn={class:`session-list-actions`},In={key:0,class:`session-items`},Ln={key:0,class:`session-loading`},Rn={key:1,class:`session-empty`},zn={class:`session-group-header session-group-header--static`},Bn={class:`session-group-label`},Vn={class:`session-group-count`},Hn=[`onClick`],Un={class:`session-group-label`},Wn={class:`session-group-count`},Gn={class:`chat-main`},Kn={class:`chat-header`},qn={class:`header-left`},Jn={class:`header-session-title`},Yn={key:1,class:`source-badge`},Xn={class:`header-actions`},Zn={class:`chat-mode-toggle`},Qn={key:0,class:`context-info`},$n=I(w({__name:`ChatPanel`,setup(e){let n=Ce(),o=je(),c=Te(),{t:l}=F(),u=y(`chat`),h=y(typeof window>`u`||!window.matchMedia(`(max-width: 768px)`).matches),v=y(h.value),b=null,x=y(!1);function w(e){n.switchSession(e),b?.matches&&(h.value=!1)}function E(e){e!==u.value&&(e===`live`?(v.value=h.value,h.value=!1):h.value=b?.matches?!1:v.value,u.value=e)}function O(e){x.value=e.matches,e.matches&&h.value&&(h.value=!1)}m(()=>{b=window.matchMedia(`(max-width: 768px)`),O(b),b.addEventListener(`change`,O)}),g(()=>{b?.removeEventListener(`change`,O)});let k=y(!1),M=y(``),I=y(null),L=y(null),R=y(new Set(JSON.parse(localStorage.getItem(`hermes_collapsed_groups`)||`[]`)));function z(e){return e===`api_server`?-1:e===`cron`?999:0}function B(e){return[...e].sort((e,t)=>{let r=n.isSessionLive(e.id);return r===n.isSessionLive(t.id)?(t.updatedAt||0)-(e.updatedAt||0):r?-1:1})}let V=r(()=>B(n.sessions.filter(e=>o.isPinned(e.id)))),H=r(()=>{let e=new Map;for(let t of n.sessions){if(o.isPinned(t.id))continue;let n=t.source||``;e.has(n)||e.set(n,[]),e.get(n).push(t)}return[...e.keys()].sort((t,r)=>{let i=e.get(t)?.some(e=>n.isSessionLive(e.id))||!1;if(i!==(e.get(r)?.some(e=>n.isSessionLive(e.id))||!1))return i?-1:1;let a=z(t),o=z(r);return a===o?t.localeCompare(r):a-o}).map(t=>({source:t,label:t?ot(t):l(`chat.other`),sessions:B(e.get(t))}))});function U(e){if(!R.value.has(e))R.value=new Set([...R.value,e]);else{R.value=new Set(H.value.map(e=>e.source).filter(t=>t!==e));let t=H.value.find(t=>t.source===e);t?.sessions.length&&n.switchSession(t.sessions[0].id)}localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...R.value]))}_(H,e=>{if(localStorage.getItem(`hermes_collapsed_groups`)!==null){let e=n.activeSession?.source;e&&R.value.has(e)&&(R.value=new Set([...R.value].filter(t=>t!==e)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...R.value])));return}R.value=new Set(e.slice(1).map(e=>e.source)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...R.value]))},{once:!0}),_(()=>[n.sessionsLoaded,...n.sessions.map(e=>e.id)],e=>{let t=e.slice(1);!e[0]||t.length===0||o.pruneMissingSessions(t)},{immediate:!0});let W=r(()=>n.activeSession?.title||l(`chat.newChat`)),G=r(()=>u.value===`live`?l(`chat.liveSessions`):W.value),ee=r(()=>(n.activeSession?.inputTokens??0)+(n.activeSession?.outputTokens??0)),K={"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},q=r(()=>{let e=n.activeSession?.model||``;for(let[t,n]of Object.entries(K))if(e.includes(t))return n;return null});function J(e){return e>=1e6?(e/1e6).toFixed(1)+`M`:e>=1e3?(e/1e3).toFixed(1)+`k`:String(e)}let te=r(()=>u.value===`chat`&&n.activeSession?.source||``);function ne(){n.newChat()}function re(e){let t=e||n.activeSessionId;t&&(navigator.clipboard.writeText(t),c.success(l(`common.copied`)))}function ie(e){o.removePinned(e),n.deleteSession(e),c.success(l(`chat.sessionDeleted`))}let Y=y(null),ae=r(()=>Y.value?o.isPinned(Y.value):!1),X=r(()=>[{label:l(ae.value?`chat.unpin`:`chat.pin`),key:`pin`},{label:l(`chat.rename`),key:`rename`},{label:l(`chat.copySessionId`),key:`copy-id`}]);function oe(e,t){e.preventDefault(),Y.value=t,Z.value=!0,se.value=e.clientX,ce.value=e.clientY}let Z=y(!1),se=y(0),ce=y(0);function le(e){if(Z.value=!1,Y.value){if(e===`pin`){o.togglePinned(Y.value);return}if(e===`copy-id`)re(Y.value);else if(e===`rename`){let e=n.sessions.find(e=>e.id===Y.value);I.value=Y.value,M.value=e?.title||``,k.value=!0,f(()=>{L.value?.focus()})}}}function ue(){Z.value=!1}async function de(){if(!(!I.value||!M.value.trim())){if(await Ae(I.value,M.value.trim())){let e=n.sessions.find(e=>e.id===I.value);e&&(e.title=M.value.trim()),n.activeSession?.id===I.value&&(n.activeSession.title=M.value.trim()),c.success(l(`chat.renamed`))}else c.error(l(`chat.renameFailed`));k.value=!1}}return(e,r)=>(s(),i(`div`,Mn,[u.value===`chat`?(s(),i(`div`,{key:0,class:D([`session-backdrop`,{active:h.value}]),onClick:r[0]||=e=>h.value=!1},null,2)):a(``,!0),u.value===`chat`?(s(),i(`aside`,{key:1,class:D([`session-list`,{collapsed:!h.value}])},[N(`div`,Nn,[h.value?(s(),i(`span`,Pn,C(A(l)(`chat.sessions`)),1)):a(``,!0),N(`div`,Fn,[N(`button`,{class:`session-close-btn`,onClick:r[1]||=e=>h.value=!1},[...r[8]||=[N(`svg`,{width:`14`,height:`14`,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)]]),t(A(Q),{quaternary:``,size:`tiny`,onClick:ne,circle:``},{icon:d(()=>[...r[9]||=[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})])]),h.value?(s(),i(`div`,In,[A(n).isLoadingSessions&&A(n).sessions.length===0?(s(),i(`div`,Ln,C(A(l)(`common.loading`)),1)):A(n).sessions.length===0?(s(),i(`div`,Rn,C(A(l)(`chat.noSessions`)),1)):a(``,!0),V.value.length>0?(s(),i(P,{key:2},[N(`div`,zn,[N(`span`,Bn,C(A(l)(`chat.pinned`)),1),N(`span`,Vn,C(V.value.length),1)]),(s(!0),i(P,null,j(V.value,e=>(s(),p(jn,{key:`pinned-${e.id}`,session:e,active:e.id===A(n).activeSessionId,live:A(n).isSessionLive(e.id),pinned:!0,"can-delete":e.id!==A(n).activeSessionId||A(n).sessions.length>1,onSelect:t=>w(e.id),onContextmenu:t=>oe(t,e.id),onDelete:t=>ie(e.id)},null,8,[`session`,`active`,`live`,`can-delete`,`onSelect`,`onContextmenu`,`onDelete`]))),128))],64)):a(``,!0),(s(!0),i(P,null,j(H.value,e=>(s(),i(P,{key:e.source},[N(`div`,{class:`session-group-header`,onClick:t=>U(e.source)},[(s(),i(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:D([`group-chevron`,{collapsed:R.value.has(e.source)}])},[...r[10]||=[N(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)),N(`span`,Un,C(e.label),1),N(`span`,Wn,C(e.sessions.length),1)],8,Hn),R.value.has(e.source)?a(``,!0):(s(!0),i(P,{key:0},j(e.sessions,e=>(s(),p(jn,{key:e.id,session:e,active:e.id===A(n).activeSessionId,live:A(n).isSessionLive(e.id),pinned:!1,"can-delete":e.id!==A(n).activeSessionId||A(n).sessions.length>1,onSelect:t=>w(e.id),onContextmenu:t=>oe(t,e.id),onDelete:t=>ie(e.id)},null,8,[`session`,`active`,`live`,`can-delete`,`onSelect`,`onContextmenu`,`onDelete`]))),128))],64))),128))])):a(``,!0)],2)):a(``,!0),t(A(it),{placement:`bottom-start`,trigger:`manual`,x:se.value,y:ce.value,options:X.value,show:Z.value,onSelect:le,onClickoutside:ue},null,8,[`x`,`y`,`options`,`show`]),t(A(ye),{show:k.value,"onUpdate:show":r[3]||=e=>k.value=e,preset:`dialog`,title:A(l)(`chat.renameSession`),"positive-text":A(l)(`common.ok`),"negative-text":A(l)(`common.cancel`),onPositiveClick:de},{default:d(()=>[t(A(be),{ref_key:`renameInputRef`,ref:L,value:M.value,"onUpdate:value":r[2]||=e=>M.value=e,placeholder:A(l)(`chat.enterNewTitle`),onKeydown:S(de,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`show`,`title`,`positive-text`,`negative-text`]),N(`div`,Gn,[N(`header`,Kn,[N(`div`,qn,[u.value===`chat`?(s(),p(A(Q),{key:0,quaternary:``,size:`small`,onClick:r[4]||=e=>h.value=!h.value,circle:``},{icon:d(()=>[...r[11]||=[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})):a(``,!0),N(`span`,Jn,C(G.value),1),te.value?(s(),i(`span`,Yn,C(A(ot)(te.value)),1)):a(``,!0)]),N(`div`,Xn,[N(`div`,Zn,[t(A(Q),{size:`small`,type:u.value===`chat`?`primary`:`default`,"aria-pressed":u.value===`chat`,onClick:r[5]||=e=>E(`chat`)},{default:d(()=>[T(C(A(l)(`chat.chatMode`)),1)]),_:1},8,[`type`,`aria-pressed`]),t(A(Q),{size:`small`,type:u.value===`live`?`primary`:`default`,"aria-pressed":u.value===`live`,onClick:r[6]||=e=>E(`live`)},{default:d(()=>[T(C(A(l)(`chat.liveMode`)),1)]),_:1},8,[`type`,`aria-pressed`])]),u.value===`chat`?(s(),i(P,{key:0},[t(A(we),{trigger:`hover`},{trigger:d(()=>[t(A(Q),{quaternary:``,size:`small`,onClick:r[7]||=e=>re(),circle:``},{icon:d(()=>[...r[12]||=[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:d(()=>[T(` `+C(A(l)(`chat.copySessionId`)),1)]),_:1}),t(A(Q),{size:`small`,circle:x.value,onClick:ne},{icon:d(()=>[...r[13]||=[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:d(()=>[x.value?a(``,!0):(s(),i(P,{key:0},[T(C(A(l)(`chat.newChat`)),1)],64))]),_:1},8,[`circle`])],64)):a(``,!0)])]),u.value===`chat`?(s(),i(P,{key:0},[t(xn),q.value===null?a(``,!0):(s(),i(`div`,Qn,[N(`span`,null,C(J(ee.value))+` / `+C(J(q.value)),1)])),t(vt)],64)):(s(),p(Ht,{key:1,"human-only":A(o).humanOnly},null,8,[`human-only`]))])]))}}),[[`__scopeId`,`data-v-24582a08`]]),er={class:`chat-view`},tr=I(w({__name:`ChatView`,setup(e){let n=Oe(),r=Ce(),a=ke();return m(async()=>{n.loadModels(),await a.fetchProfiles(),r.loadSessions()}),(e,n)=>(s(),i(`div`,er,[t($n)]))}}),[[`__scopeId`,`data-v-6dae3628`]]);export{tr as default};
@@ -1 +0,0 @@
1
- [data-v-4c2b3ca2]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-4c2b3ca2]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.chat-input-area[data-v-4c2b3ca2]{border-top:1px solid var(--border-color);flex-shrink:0;padding:12px 20px 16px}.attachment-previews[data-v-4c2b3ca2]{flex-wrap:wrap;gap:8px;padding:0 0 10px;display:flex}.attachment-preview[data-v-4c2b3ca2]{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;position:relative;overflow:hidden}.attachment-preview.image[data-v-4c2b3ca2]{width:64px;height:64px}.attachment-thumb[data-v-4c2b3ca2]{object-fit:cover;width:100%;height:100%}.attachment-file[data-v-4c2b3ca2]{min-width:80px;max-width:140px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 12px;display:flex}.attachment-file .file-name[data-v-4c2b3ca2]{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.attachment-file .file-size[data-v-4c2b3ca2]{color:var(--text-muted);font-size:10px}.attachment-remove[data-v-4c2b3ca2]{width:18px;height:18px;color:var(--text-on-overlay);cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.attachment-preview:hover .attachment-remove[data-v-4c2b3ca2]{opacity:1}.file-input-hidden[data-v-4c2b3ca2]{display:none}.input-wrapper[data-v-4c2b3ca2]{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background-color .15s;display:flex}.input-wrapper[data-v-4c2b3ca2]:focus-within{border-color:var(--accent-primary)}.dark .input-wrapper[data-v-4c2b3ca2]{background-color:#333}.input-textarea[data-v-4c2b3ca2]{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;min-height:20px;max-height:100px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;overflow-y:auto}.input-textarea[data-v-4c2b3ca2]::placeholder{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.input-actions[data-v-4c2b3ca2]{flex-shrink:0;align-items:center;gap:6px;display:flex}.input-wrapper.drag-over[data-v-4c2b3ca2]{border-color:var(--accent-info);background-color:rgba(var(--accent-info-rgb), .04);border-style:dashed}[data-v-be298d0d]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-be298d0d]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.conversation-monitor[data-v-be298d0d]{flex:1;min-height:0;display:flex}.conversation-monitor__sidebar[data-v-be298d0d]{border-right:1px solid var(--border-color);scrollbar-gutter:stable;flex-shrink:0;width:260px;overflow-y:auto}.conversation-monitor__sidebar[data-v-be298d0d]::-webkit-scrollbar{width:4px}.conversation-monitor__sidebar[data-v-be298d0d]::-webkit-scrollbar-thumb{background:rgba(var(--text-muted), .3);border-radius:4px}.conversation-monitor__sidebar[data-v-be298d0d]::-webkit-scrollbar-thumb:hover{background:rgba(var(--text-muted), .5)}.conversation-monitor__session[data-v-be298d0d]{border:0;border-bottom:1px solid rgba(var(--border-color), .6);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;padding:12px 14px}.conversation-monitor__session.active[data-v-be298d0d]{background:rgba(var(--accent-primary-rgb), .12);color:var(--text-primary);font-weight:500}.conversation-monitor__session.active .conversation-monitor__session-title[data-v-be298d0d]{color:var(--accent-primary)}.conversation-monitor__session-title-row[data-v-be298d0d],.conversation-monitor__detail-meta[data-v-be298d0d],.conversation-monitor__message-meta[data-v-be298d0d]{align-items:center;gap:6px;display:flex}.conversation-monitor__session-title[data-v-be298d0d],.conversation-monitor__detail-title[data-v-be298d0d]{font-weight:600}.conversation-monitor__session-live[data-v-be298d0d]{color:var(--accent-primary);font-size:11px}.conversation-monitor__session-meta[data-v-be298d0d],.conversation-monitor__session-preview[data-v-be298d0d],.conversation-monitor__detail-meta[data-v-be298d0d],.conversation-monitor__message-meta[data-v-be298d0d]{color:var(--text-muted);font-size:12px}.conversation-monitor__session-preview[data-v-be298d0d],.conversation-monitor__message-content[data-v-be298d0d]{white-space:pre-wrap;margin-top:6px}.conversation-monitor__detail[data-v-be298d0d]{flex-direction:column;flex:1;min-width:0;display:flex}.conversation-monitor__detail-header[data-v-be298d0d]{border-bottom:1px solid var(--border-color);padding:16px 20px}.conversation-monitor__messages[data-v-be298d0d]{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.conversation-monitor__message[data-v-be298d0d]{background:rgba(var(--bg-secondary), .8);border-radius:10px;padding:12px 14px}.conversation-monitor__message.role-user[data-v-be298d0d]{border:1px solid rgba(var(--accent-primary), .18)}.conversation-monitor__message.role-assistant[data-v-be298d0d]{border:1px solid rgba(var(--border-color), .9)}.conversation-monitor__empty[data-v-be298d0d]{color:var(--text-muted);padding:24px}.conversation-monitor__empty--error[data-v-be298d0d]{color:var(--error)}@media (width<=768px){.conversation-monitor[data-v-be298d0d]{flex-direction:column}.conversation-monitor__sidebar[data-v-be298d0d]{border-right:0;border-bottom:1px solid var(--border-color);flex-shrink:0;width:100%;max-height:220px}.conversation-monitor__detail[data-v-be298d0d]{min-height:0;overflow:hidden}}[data-v-c3211247]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-c3211247]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.message[data-v-c3211247]{flex-direction:column;display:flex}.message.user[data-v-c3211247]{align-items:flex-end}.message.user .msg-body[data-v-c3211247]{max-width:75%}.message.user .msg-content.user[data-v-c3211247]{align-items:flex-end}.message.user .message-bubble[data-v-c3211247]{background-color:var(--msg-user-bg);border-radius:10px}.message.assistant[data-v-c3211247]{flex-direction:row;align-items:flex-start;gap:8px}.message.assistant .msg-body[data-v-c3211247]{max-width:80%}.message.assistant .msg-avatar[data-v-c3211247]{flex-shrink:0;width:40px;height:40px;margin-top:2px}.message.assistant .message-bubble[data-v-c3211247]{background-color:var(--msg-assistant-bg);border-radius:10px}.message.tool[data-v-c3211247],.message.system[data-v-c3211247]{align-items:flex-start}.message.system .message-bubble.system[data-v-c3211247]{border-left:3px solid var(--warning);background-color:rgba(var(--warning-rgb), .06);border-radius:6px;max-width:80%}.msg-body[data-v-c3211247]{align-items:flex-start;gap:8px;max-width:85%;display:flex}.msg-content[data-v-c3211247]{flex-direction:column;min-width:0;display:flex}.message-bubble[data-v-c3211247]{word-break:break-word;border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.65}.msg-attachments[data-v-c3211247]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.msg-attachment[data-v-c3211247]{border:1px solid var(--border-light);background-color:#0000000a;border-radius:6px;overflow:hidden}.msg-attachment.image[data-v-c3211247]{max-width:200px}.msg-attachment-thumb[data-v-c3211247]{object-fit:contain;max-width:200px;max-height:160px;display:block}.msg-attachment-file[data-v-c3211247]{color:var(--text-secondary);align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.msg-attachment-file .att-name[data-v-c3211247]{white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.msg-attachment-file .att-size[data-v-c3211247]{color:var(--text-muted);flex-shrink:0;font-size:11px}.message-time[data-v-c3211247]{color:var(--text-muted);margin-top:4px;padding:0 4px;font-size:11px}.dark .message-time[data-v-c3211247]{color:#999}.tool-line[data-v-c3211247]{color:var(--text-muted);border-radius:6px;align-items:center;gap:6px;padding:2px 4px;font-size:11px;display:flex}.tool-line.expandable[data-v-c3211247]{cursor:pointer}.tool-line.expandable[data-v-c3211247]:hover{background:#00000008}.tool-line .tool-name[data-v-c3211247]{flex-shrink:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-line .tool-preview[data-v-c3211247]{text-overflow:ellipsis;white-space:nowrap;max-width:400px;overflow:hidden}.tool-chevron[data-v-c3211247]{flex-shrink:0;transition:transform .15s}.tool-chevron.rotated[data-v-c3211247]{transform:rotate(90deg)}.tool-spinner[data-v-c3211247]{border:1.5px solid var(--text-muted);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite spin-c3211247}.tool-error-badge[data-v-c3211247]{color:var(--error);background:rgba(var(--error-rgb), .08);border-radius:3px;padding:0 4px;font-size:9px;line-height:14px}.tool-details[data-v-c3211247]{border-left:2px solid var(--border-light);margin-top:2px;margin-left:16px;padding-left:10px}.tool-detail-section[data-v-c3211247]{margin-bottom:6px}.tool-detail-label[data-v-c3211247]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px;font-size:10px;font-weight:600}.tool-detail-code-block[data-v-c3211247] .hljs-code-block{margin:0}.tool-detail-code-block[data-v-c3211247] .code-header{background:#00000005}.tool-detail-code-block[data-v-c3211247] code.hljs{white-space:pre-wrap;word-break:break-word;max-height:300px;font-size:11px;overflow-y:auto}@keyframes spin-c3211247{to{transform:rotate(360deg)}}.streaming-cursor[data-v-c3211247]{background-color:var(--text-muted);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:.8s infinite blink-c3211247;display:inline-block}.streaming-dots[data-v-c3211247]{gap:4px;padding:4px 0;display:flex}.streaming-dots span[data-v-c3211247]{background-color:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse-c3211247}.streaming-dots span[data-v-c3211247]:nth-child(2){animation-delay:.2s}.streaming-dots span[data-v-c3211247]:nth-child(3){animation-delay:.4s}@keyframes blink-c3211247{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes pulse-c3211247{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media (width<=768px){.message.user .msg-body[data-v-c3211247],.message.assistant .msg-body[data-v-c3211247],.message.system .msg-body[data-v-c3211247]{max-width:100%}}[data-v-9cc7b1be]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-9cc7b1be]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.message-list[data-v-9cc7b1be]{background-color:var(--bg-card);flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.dark .message-list[data-v-9cc7b1be]{background-color:#333}.empty-state[data-v-9cc7b1be]{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state .empty-logo[data-v-9cc7b1be]{opacity:.25;width:48px;height:48px}.empty-state p[data-v-9cc7b1be]{font-size:14px}.fade-enter-active[data-v-9cc7b1be],.fade-leave-active[data-v-9cc7b1be]{transition:opacity .4s}.fade-enter-from[data-v-9cc7b1be],.fade-leave-to[data-v-9cc7b1be]{opacity:0}.streaming-indicator[data-v-9cc7b1be]{align-items:flex-start;gap:12px;padding:4px;display:flex}.streaming-indicator .thinking-video[data-v-9cc7b1be]{object-fit:contain;border-radius:10px;flex-shrink:0;width:120px;height:213px}.tool-calls-panel[data-v-9cc7b1be]{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;gap:4px;max-height:213px;padding-top:4px;display:flex;overflow-y:auto}.tool-calls-panel[data-v-9cc7b1be]::-webkit-scrollbar{display:none}.tool-call-item[data-v-9cc7b1be]{color:var(--text-secondary);background:#00000008;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:flex}.dark .tool-call-item[data-v-9cc7b1be]{background:#ffffff0f}.tool-call-item .tool-call-icon[data-v-9cc7b1be]{color:var(--text-muted);flex-shrink:0}.tool-call-item .tool-call-name[data-v-9cc7b1be]{flex-shrink:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-call-item .tool-call-preview[data-v-9cc7b1be]{text-overflow:ellipsis;white-space:nowrap;max-width:300px;color:var(--text-muted);overflow:hidden}.tool-call-spinner[data-v-9cc7b1be]{border:1.5px solid var(--text-muted);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.6s linear infinite spin-9cc7b1be}.tool-call-error[data-v-9cc7b1be]{color:var(--error);background:rgba(var(--error), .08);border-radius:3px;padding:0 4px;font-size:9px;line-height:14px}@keyframes spin-9cc7b1be{to{transform:rotate(360deg)}}[data-v-24582a08]:root{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-sidebar:#f5f5f5;--bg-card:#fff;--bg-card-hover:#fafafa;--bg-input:#fff;--border-color:#e0e0e0;--border-light:#ebebeb;--accent-primary:#333;--accent-hover:#1a1a1a;--accent-muted:#888;--text-primary:#1a1a1a;--text-secondary:#666;--text-muted:#999;--success:#2e7d32;--error:#c62828;--warning:#f57f17;--msg-user-bg:#f5f5f5;--msg-assistant-bg:#f5f5f5;--msg-system-border:#bdbdbd;--code-bg:#f4f4f4;--text-on-accent:#fff;--text-on-overlay:#fff;--accent-info:#4a90d9;--accent-primary-rgb:51, 51, 51;--accent-hover-rgb:26, 26, 26;--text-primary-rgb:26, 26, 26;--text-muted-rgb:153, 153, 153;--success-rgb:46, 125, 50;--error-rgb:198, 40, 40;--warning-rgb:245, 127, 23;--accent-info-rgb:74, 144, 217}.dark[data-v-24582a08]{--bg-primary:#1a1a1a;--bg-secondary:#252525;--bg-sidebar:#202020;--bg-card:#333;--bg-card-hover:#333;--bg-input:#2a2a2a;--border-color:#3a3a3a;--border-light:#333;--accent-primary:#e0e0e0;--accent-hover:#f5f5f5;--accent-muted:#888;--text-primary:#f0f0f0;--text-secondary:silver;--text-muted:#888;--success:#66bb6a;--error:#ef5350;--warning:#ffb74d;--msg-user-bg:#252525;--msg-assistant-bg:#252525;--msg-system-border:#555;--code-bg:#1e1e1e;--text-on-accent:#1a1a1a;--text-on-overlay:#fff;--accent-info:#6ba3d6;--accent-primary-rgb:240, 240, 240;--accent-hover-rgb:245, 245, 245;--text-primary-rgb:240, 240, 240;--text-muted-rgb:136, 136, 136;--success-rgb:102, 187, 106;--error-rgb:239, 83, 80;--warning-rgb:255, 183, 77;--accent-info-rgb:107, 163, 214}.chat-panel[data-v-24582a08]{height:100%;display:flex;position:relative}.session-list[data-v-24582a08]{border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:220px;transition:width .25s,opacity .25s;display:flex;overflow:hidden}.session-list.collapsed[data-v-24582a08]{opacity:0;pointer-events:none;border-right:none;width:0}@media (width<=768px){.session-list[data-v-24582a08]{z-index:10;background:var(--bg-card);width:280px;height:100%;position:absolute;top:0;left:0;box-shadow:2px 0 8px #0000001a}.session-list.collapsed[data-v-24582a08]{opacity:0;transform:translate(-100%)}.session-close-btn[data-v-24582a08]{display:flex}.session-backdrop[data-v-24582a08]{z-index:9;opacity:0;pointer-events:none;background:#0006;transition:opacity .15s;position:absolute;inset:0}.session-backdrop.active[data-v-24582a08]{opacity:1;pointer-events:auto}}.session-list-header[data-v-24582a08]{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px;display:flex}.session-list-actions[data-v-24582a08]{align-items:center;gap:4px;display:flex}.session-close-btn[data-v-24582a08]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;padding:4px;display:none}.session-close-btn[data-v-24582a08]:hover{background:rgba(var(--accent-primary), .06)}.session-list-title[data-v-24582a08]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.session-group-header[data-v-24582a08]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:6px 10px 4px;display:flex}.session-group-header--static[data-v-24582a08]{cursor:default}.group-chevron[data-v-24582a08]{flex-shrink:0;transition:transform .15s;transform:rotate(90deg)}.group-chevron.collapsed[data-v-24582a08]{transform:rotate(0)}.session-group-label[data-v-24582a08]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.session-group-count[data-v-24582a08]{color:var(--text-muted);font-size:10px;font-weight:400}.session-items[data-v-24582a08]{flex:1;padding:0 6px 12px;overflow-y:auto}.session-loading[data-v-24582a08],.session-empty[data-v-24582a08]{color:var(--text-muted);text-align:center;padding:16px 10px;font-size:12px}[data-v-24582a08] .session-item{cursor:pointer;text-align:left;width:100%;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}[data-v-24582a08] .session-item:hover{background:rgba(var(--accent-primary), .06);color:var(--text-primary)}[data-v-24582a08] .session-item:hover .session-item-delete{opacity:1}[data-v-24582a08] .session-item.active{background:rgba(var(--accent-primary-rgb), .12);color:var(--text-primary);font-weight:500}[data-v-24582a08] .session-item.active .session-item-title,[data-v-24582a08] .session-item.live .session-item-title{color:var(--accent-primary)}[data-v-24582a08] .session-item-content{flex:1;overflow:hidden}[data-v-24582a08] .session-item-title-row{align-items:center;gap:6px;min-width:0;display:flex}[data-v-24582a08] .session-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}[data-v-24582a08] .session-item-active-indicator{color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}[data-v-24582a08] .session-item-active-spinner{filter:drop-shadow(0 0 6px rgba(var(--accent-primary-rgb), .35));animation:1.1s linear infinite session-spin-24582a08}[data-v-24582a08] .session-item-pin{color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}[data-v-24582a08] .session-item-time{color:var(--text-muted);font-size:11px}[data-v-24582a08] .session-item-meta{align-items:center;gap:6px;margin-top:2px;display:flex}[data-v-24582a08] .session-item-model{color:var(--accent-primary);background:rgba(var(--accent-primary), .08);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;flex-shrink:0;max-width:100px;padding:0 5px;font-size:10px;line-height:16px;overflow:hidden}[data-v-24582a08] .session-item-delete{opacity:.5;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px;transition:all .15s}[data-v-24582a08] .session-item-delete:hover{color:var(--error);background:rgba(var(--error), .1)}@keyframes session-spin-24582a08{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-main[data-v-24582a08]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header[data-v-24582a08]{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:21px 20px;display:flex}.header-left[data-v-24582a08]{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.header-session-title[data-v-24582a08]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.source-badge[data-v-24582a08]{color:var(--text-muted);background:rgba(var(--text-muted), .12);white-space:nowrap;border-radius:8px;flex-shrink:0;padding:1px 7px;font-size:10px;line-height:16px}.header-actions[data-v-24582a08]{flex-shrink:0;align-items:center;gap:4px;display:flex}.chat-mode-toggle[data-v-24582a08]{align-items:center;gap:4px;margin-right:4px;display:flex}.context-info[data-v-24582a08]{color:var(--text-muted);flex-shrink:0;padding:0 20px 4px;font-size:11px}@media (width<=768px){.chat-header[data-v-24582a08]{padding:16px 12px 16px 52px}.context-info[data-v-24582a08]{padding:0 12px 4px}}.chat-view[data-v-6dae3628]{height:calc(100 * var(--vh));flex-direction:column;display:flex}
@@ -1 +0,0 @@
1
- import{A as e,D as t,E as n,G as r,Q as i,U as a,ct as o,gt as s,j as c,k as l,o as u,pt as d,q as f,w as p,y as m}from"./router-qWVkGgap.js";import{n as h}from"./pinia-Jb4QOAzE.js";import{r as g,t as _}from"./_plugin-vue_export-helper-DXZ6IauR.js";import{t as v}from"./Button-pgPN7RfC.js";import{t as y}from"./Tag-CKzgX6hi.js";import{t as b}from"./use-message-Do_vF1fs.js";import{t as x}from"./Spin-CAOjab_F.js";async function S(){return(await u(`/api/hermes/gateways`)).gateways}async function C(e){return(await u(`/api/hermes/gateways/${e}/start`,{method:`POST`})).gateway}async function w(e){await u(`/api/hermes/gateways/${e}/stop`,{method:`POST`})}var T=h(`gateways`,()=>{let e=o([]),t=o(!1);async function n(){t.value=!0;try{let t=await S();e.value=Array.isArray(t)?t:Object.values(t||{})}finally{t.value=!1}}async function r(n){t.value=!0;try{let t=await C(n),r=e.value.findIndex(e=>e.profile===n);r>=0?e.value[r]=t:e.value.push(t)}finally{t.value=!1}}async function i(n){t.value=!0;try{await w(n);let t=e.value.find(e=>e.profile===n);t&&(t.running=!1,t.pid=void 0)}finally{t.value=!1}}return{gateways:e,loading:t,fetchStatus:n,start:r,stop:i}}),E={class:`gateways-view`},D={class:`page-header`},O={class:`header-title`},k={class:`gateways-content`},A={key:0,class:`empty-state`},j={key:1,class:`gateway-list`},M={class:`gateway-info`},N={class:`gateway-name`},P={class:`gateway-meta`},F={class:`meta-item`},I={key:0,class:`meta-item`},L={class:`gateway-actions`},R=_(c({__name:`GatewaysView`,setup(o){let{t:c}=g(),u=b(),h=T();a(()=>{h.fetchStatus()});async function _(e,t){try{t?(await h.stop(e),u.success(`${c(`gateways.stopped`)}: ${e}`)):(await h.start(e),u.success(`${c(`gateways.started`)}: ${e}`))}catch(e){u.error(e.message)}}return(a,o)=>(r(),t(`div`,E,[p(`header`,D,[p(`h2`,O,s(d(c)(`gateways.title`)),1)]),p(`div`,k,[e(d(x),{show:d(h).loading,size:`large`},{default:i(()=>[d(h).gateways.length===0?(r(),t(`div`,A,s(d(c)(`common.noData`)),1)):(r(),t(`div`,j,[(r(!0),t(m,null,f(d(h).gateways,a=>(r(),t(`div`,{key:a.profile,class:`gateway-card`},[p(`div`,M,[p(`div`,N,s(a.profile),1),p(`div`,P,[p(`span`,F,s(a.host)+`:`+s(a.port),1),a.pid?(r(),t(`span`,I,`PID: `+s(a.pid),1)):n(``,!0)])]),p(`div`,L,[e(d(y),{type:a.running?`success`:`default`,size:`small`,round:``},{default:i(()=>[l(s(a.running?d(c)(`gateways.running`):d(c)(`gateways.stopped`)),1)]),_:2},1032,[`type`]),e(d(v),{size:`small`,type:a.running?`warning`:`primary`,round:``,onClick:e=>_(a.profile,a.running)},{default:i(()=>[l(s(a.running?d(c)(`common.stop`):d(c)(`common.start`)),1)]),_:2},1032,[`type`,`onClick`])])]))),128))]))]),_:1},8,[`show`])])]))}}),[[`__scopeId`,`data-v-d70aa8a3`]]);export{R as default};
@@ -1,234 +0,0 @@
1
- import{C as e,F as t,K as n,M as r,N as i,R as a,U as o,X as s,Z as c,ct as l,dt as u,j as d,y as f}from"./router-qWVkGgap.js";import{$ as p,B as m,G as h,K as g,R as ee,W as _,c as v,ct as y,d as b,dt as x,ft as S,l as C,n as w,nt as T,pt as E,q as D,s as O,st as k,t as A,tt as j,ut as M,z as te}from"./browser-DcLLT85r.js";import{d as ne,f as N,i as P,l as F,n as I,o as L,p as re,s as ie,t as R}from"./Suffix-DQWmhzzW.js";import{c as ae,r as z}from"./fade-in.cssr-CkQxIGt5.js";var B=d({name:`Eye`,render(){return i(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},i(`path`,{d:`M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z`,fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`32`}),i(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),V=d({name:`EyeOff`,render(){return i(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},i(`path`,{d:`M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z`,fill:`currentColor`}),i(`path`,{d:`M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z`,fill:`currentColor`}),i(`path`,{d:`M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z`,fill:`currentColor`}),i(`path`,{d:`M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z`,fill:`currentColor`}),i(`path`,{d:`M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z`,fill:`currentColor`}))}}),H={paddingTiny:`0 8px`,paddingSmall:`0 10px`,paddingMedium:`0 12px`,paddingLarge:`0 14px`,clearSize:`16px`};function U(e){let{textColor2:t,textColor3:n,textColorDisabled:r,primaryColor:i,primaryColorHover:a,inputColor:o,inputColorDisabled:s,borderColor:c,warningColor:l,warningColorHover:u,errorColor:d,errorColorHover:f,borderRadius:p,lineHeight:m,fontSizeTiny:h,fontSizeSmall:g,fontSizeMedium:ee,fontSizeLarge:_,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:x,actionColor:S,clearColor:C,clearColorHover:w,clearColorPressed:E,placeholderColor:D,placeholderColorDisabled:O,iconColor:k,iconColorDisabled:A,iconColorHover:j,iconColorPressed:M,fontWeight:te}=e;return Object.assign(Object.assign({},H),{fontWeight:te,countTextColorDisabled:r,countTextColor:n,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:x,fontSizeTiny:h,fontSizeSmall:g,fontSizeMedium:ee,fontSizeLarge:_,lineHeight:m,lineHeightTextarea:m,borderRadius:p,iconSize:`16px`,groupLabelColor:S,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:i,placeholderColor:D,placeholderColorDisabled:O,color:o,colorDisabled:s,colorFocus:o,groupLabelBorder:`1px solid ${c}`,border:`1px solid ${c}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${c}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${T(i,{alpha:.2})}`,loadingColor:i,loadingColorWarning:l,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:o,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${T(l,{alpha:.2})}`,caretColorWarning:l,loadingColorError:d,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${f}`,colorFocusError:o,borderFocusError:`1px solid ${f}`,boxShadowFocusError:`0 0 0 2px ${T(d,{alpha:.2})}`,caretColorError:d,clearColor:C,clearColorHover:w,clearColorPressed:E,iconColor:k,iconColorDisabled:A,iconColorHover:j,iconColorPressed:M,suffixTextColor:t})}var oe=O({name:`Input`,common:w,peers:{Scrollbar:P},self:U}),se=p(`n-input`),ce=y(`input`,`
2
- max-width: 100%;
3
- cursor: text;
4
- line-height: 1.5;
5
- z-index: auto;
6
- outline: none;
7
- box-sizing: border-box;
8
- position: relative;
9
- display: inline-flex;
10
- border-radius: var(--n-border-radius);
11
- background-color: var(--n-color);
12
- transition: background-color .3s var(--n-bezier);
13
- font-size: var(--n-font-size);
14
- font-weight: var(--n-font-weight);
15
- --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2);
16
- `,[M(`input, textarea`,`
17
- overflow: hidden;
18
- flex-grow: 1;
19
- position: relative;
20
- `),M(`input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder`,`
21
- box-sizing: border-box;
22
- font-size: inherit;
23
- line-height: 1.5;
24
- font-family: inherit;
25
- border: none;
26
- outline: none;
27
- background-color: #0000;
28
- text-align: inherit;
29
- transition:
30
- -webkit-text-fill-color .3s var(--n-bezier),
31
- caret-color .3s var(--n-bezier),
32
- color .3s var(--n-bezier),
33
- text-decoration-color .3s var(--n-bezier);
34
- `),M(`input-el, textarea-el`,`
35
- -webkit-appearance: none;
36
- scrollbar-width: none;
37
- width: 100%;
38
- min-width: 0;
39
- text-decoration-color: var(--n-text-decoration-color);
40
- color: var(--n-text-color);
41
- caret-color: var(--n-caret-color);
42
- background-color: transparent;
43
- `,[k(`&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb`,`
44
- width: 0;
45
- height: 0;
46
- display: none;
47
- `),k(`&::placeholder`,`
48
- color: #0000;
49
- -webkit-text-fill-color: transparent !important;
50
- `),k(`&:-webkit-autofill ~`,[M(`placeholder`,`display: none;`)])]),x(`round`,[S(`textarea`,`border-radius: calc(var(--n-height) / 2);`)]),M(`placeholder`,`
51
- pointer-events: none;
52
- position: absolute;
53
- left: 0;
54
- right: 0;
55
- top: 0;
56
- bottom: 0;
57
- overflow: hidden;
58
- color: var(--n-placeholder-color);
59
- `,[k(`span`,`
60
- width: 100%;
61
- display: inline-block;
62
- `)]),x(`textarea`,[M(`placeholder`,`overflow: visible;`)]),S(`autosize`,`width: 100%;`),x(`autosize`,[M(`textarea-el, input-el`,`
63
- position: absolute;
64
- top: 0;
65
- left: 0;
66
- height: 100%;
67
- `)]),y(`input-wrapper`,`
68
- overflow: hidden;
69
- display: inline-flex;
70
- flex-grow: 1;
71
- position: relative;
72
- padding-left: var(--n-padding-left);
73
- padding-right: var(--n-padding-right);
74
- `),M(`input-mirror`,`
75
- padding: 0;
76
- height: var(--n-height);
77
- line-height: var(--n-height);
78
- overflow: hidden;
79
- visibility: hidden;
80
- position: static;
81
- white-space: pre;
82
- pointer-events: none;
83
- `),M(`input-el`,`
84
- padding: 0;
85
- height: var(--n-height);
86
- line-height: var(--n-height);
87
- `,[k(`&[type=password]::-ms-reveal`,`display: none;`),k(`+`,[M(`placeholder`,`
88
- display: flex;
89
- align-items: center;
90
- `)])]),S(`textarea`,[M(`placeholder`,`white-space: nowrap;`)]),M(`eye`,`
91
- display: flex;
92
- align-items: center;
93
- justify-content: center;
94
- transition: color .3s var(--n-bezier);
95
- `),x(`textarea`,`width: 100%;`,[y(`input-word-count`,`
96
- position: absolute;
97
- right: var(--n-padding-right);
98
- bottom: var(--n-padding-vertical);
99
- `),x(`resizable`,[y(`input-wrapper`,`
100
- resize: vertical;
101
- min-height: var(--n-height);
102
- `)]),M(`textarea-el, textarea-mirror, placeholder`,`
103
- height: 100%;
104
- padding-left: 0;
105
- padding-right: 0;
106
- padding-top: var(--n-padding-vertical);
107
- padding-bottom: var(--n-padding-vertical);
108
- word-break: break-word;
109
- display: inline-block;
110
- vertical-align: bottom;
111
- box-sizing: border-box;
112
- line-height: var(--n-line-height-textarea);
113
- margin: 0;
114
- resize: none;
115
- white-space: pre-wrap;
116
- scroll-padding-block-end: var(--n-padding-vertical);
117
- `),M(`textarea-mirror`,`
118
- width: 100%;
119
- pointer-events: none;
120
- overflow: hidden;
121
- visibility: hidden;
122
- position: static;
123
- white-space: pre-wrap;
124
- overflow-wrap: break-word;
125
- `)]),x(`pair`,[M(`input-el, placeholder`,`text-align: center;`),M(`separator`,`
126
- display: flex;
127
- align-items: center;
128
- transition: color .3s var(--n-bezier);
129
- color: var(--n-text-color);
130
- white-space: nowrap;
131
- `,[y(`icon`,`
132
- color: var(--n-icon-color);
133
- `),y(`base-icon`,`
134
- color: var(--n-icon-color);
135
- `)])]),x(`disabled`,`
136
- cursor: not-allowed;
137
- background-color: var(--n-color-disabled);
138
- `,[M(`border`,`border: var(--n-border-disabled);`),M(`input-el, textarea-el`,`
139
- cursor: not-allowed;
140
- color: var(--n-text-color-disabled);
141
- text-decoration-color: var(--n-text-color-disabled);
142
- `),M(`placeholder`,`color: var(--n-placeholder-color-disabled);`),M(`separator`,`color: var(--n-text-color-disabled);`,[y(`icon`,`
143
- color: var(--n-icon-color-disabled);
144
- `),y(`base-icon`,`
145
- color: var(--n-icon-color-disabled);
146
- `)]),y(`input-word-count`,`
147
- color: var(--n-count-text-color-disabled);
148
- `),M(`suffix, prefix`,`color: var(--n-text-color-disabled);`,[y(`icon`,`
149
- color: var(--n-icon-color-disabled);
150
- `),y(`internal-icon`,`
151
- color: var(--n-icon-color-disabled);
152
- `)])]),S(`disabled`,[M(`eye`,`
153
- color: var(--n-icon-color);
154
- cursor: pointer;
155
- `,[k(`&:hover`,`
156
- color: var(--n-icon-color-hover);
157
- `),k(`&:active`,`
158
- color: var(--n-icon-color-pressed);
159
- `)]),k(`&:hover`,[M(`state-border`,`border: var(--n-border-hover);`)]),x(`focus`,`background-color: var(--n-color-focus);`,[M(`state-border`,`
160
- border: var(--n-border-focus);
161
- box-shadow: var(--n-box-shadow-focus);
162
- `)])]),M(`border, state-border`,`
163
- box-sizing: border-box;
164
- position: absolute;
165
- left: 0;
166
- right: 0;
167
- top: 0;
168
- bottom: 0;
169
- pointer-events: none;
170
- border-radius: inherit;
171
- border: var(--n-border);
172
- transition:
173
- box-shadow .3s var(--n-bezier),
174
- border-color .3s var(--n-bezier);
175
- `),M(`state-border`,`
176
- border-color: #0000;
177
- z-index: 1;
178
- `),M(`prefix`,`margin-right: 4px;`),M(`suffix`,`
179
- margin-left: 4px;
180
- `),M(`suffix, prefix`,`
181
- transition: color .3s var(--n-bezier);
182
- flex-wrap: nowrap;
183
- flex-shrink: 0;
184
- line-height: var(--n-height);
185
- white-space: nowrap;
186
- display: inline-flex;
187
- align-items: center;
188
- justify-content: center;
189
- color: var(--n-suffix-text-color);
190
- `,[y(`base-loading`,`
191
- font-size: var(--n-icon-size);
192
- margin: 0 2px;
193
- color: var(--n-loading-color);
194
- `),y(`base-clear`,`
195
- font-size: var(--n-icon-size);
196
- `,[M(`placeholder`,[y(`base-icon`,`
197
- transition: color .3s var(--n-bezier);
198
- color: var(--n-icon-color);
199
- font-size: var(--n-icon-size);
200
- `)])]),k(`>`,[y(`icon`,`
201
- transition: color .3s var(--n-bezier);
202
- color: var(--n-icon-color);
203
- font-size: var(--n-icon-size);
204
- `)]),y(`base-icon`,`
205
- font-size: var(--n-icon-size);
206
- `)]),y(`input-word-count`,`
207
- pointer-events: none;
208
- line-height: 1.5;
209
- font-size: .85em;
210
- color: var(--n-count-text-color);
211
- transition: color .3s var(--n-bezier);
212
- margin-left: 4px;
213
- font-variant: tabular-nums;
214
- `),[`warning`,`error`].map(e=>x(`${e}-status`,[S(`disabled`,[y(`base-loading`,`
215
- color: var(--n-loading-color-${e})
216
- `),M(`input-el, textarea-el`,`
217
- caret-color: var(--n-caret-color-${e});
218
- `),M(`state-border`,`
219
- border: var(--n-border-${e});
220
- `),k(`&:hover`,[M(`state-border`,`
221
- border: var(--n-border-hover-${e});
222
- `)]),k(`&:focus`,`
223
- background-color: var(--n-color-focus-${e});
224
- `,[M(`state-border`,`
225
- box-shadow: var(--n-box-shadow-focus-${e});
226
- border: var(--n-border-focus-${e});
227
- `)]),x(`focus`,`
228
- background-color: var(--n-color-focus-${e});
229
- `,[M(`state-border`,`
230
- box-shadow: var(--n-box-shadow-focus-${e});
231
- border: var(--n-border-focus-${e});
232
- `)])])]))]),le=y(`input`,[x(`disabled`,[M(`input-el, textarea-el`,`
233
- -webkit-text-fill-color: var(--n-text-color-disabled);
234
- `)])]);function W(e){let t=0;for(let n of e)t++;return t}function G(e){return e===``||e==null}function ue(e){let t=l(null);function n(){let{value:n}=e;if(!n?.focus){i();return}let{selectionStart:r,selectionEnd:a,value:o}=n;if(r==null||a==null){i();return}t.value={start:r,end:a,beforeText:o.slice(0,r),afterText:o.slice(a)}}function r(){var n;let{value:r}=t,{value:i}=e;if(!r||!i)return;let{value:a}=i,{start:o,beforeText:s,afterText:c}=r,l=a.length;if(a.endsWith(c))l=a.length-c.length;else if(a.startsWith(s))l=s.length;else{let e=s[o-1],t=a.indexOf(e,o-1);t!==-1&&(l=t+1)}(n=i.setSelectionRange)==null||n.call(i,l,l)}function i(){t.value=null}return s(e,i),{recordCursor:n,restoreCursor:r}}var K=d({name:`InputWordCount`,setup(n,{slots:r}){let{mergedValueRef:a,maxlengthRef:o,mergedClsPrefixRef:s,countGraphemesRef:c}=t(se),l=e(()=>{let{value:e}=a;return e===null||Array.isArray(e)?0:(c.value||W)(e)});return()=>{let{value:e}=o,{value:t}=a;return i(`span`,{class:`${s.value}-input-word-count`},h(r.default,{value:t===null||Array.isArray(t)?``:t},()=>[e===void 0?l.value:`${l.value} / ${e}`]))}}}),q=d({name:`Input`,props:Object.assign(Object.assign({},v.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:`text`},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},allowInput:Function,renderCount:Function,onMousedown:Function,onKeydown:Function,onKeyup:[Function,Array],onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],countGraphemes:Function,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:{type:Boolean,default:!0},showPasswordToggle:Boolean}),slots:Object,setup(t){let{mergedClsPrefixRef:i,mergedBorderedRef:d,inlineThemeDisabled:f,mergedRtlRef:p,mergedComponentPropsRef:h}=m(t),g=v(`Input`,`-input`,ce,oe,t,i);A&&C(`-input-safari`,le,i);let _=l(null),y=l(null),x=l(null),S=l(null),w=l(null),T=l(null),O=l(null),k=ue(O),M=l(null),{localeRef:P}=ie(`Input`),F=l(t.defaultValue),I=ne(u(t,`value`),F),L=ee(t,{mergedSize:e=>{let{size:n}=t;if(n)return n;let{mergedSize:r}=e||{};return r?.value?r.value:h?.value?.Input?.size||`medium`}}),{mergedSizeRef:R,mergedDisabledRef:z,mergedStatusRef:B}=L,V=l(!1),H=l(!1),U=l(!1),W=l(!1),K=null,q=e(()=>{let{placeholder:e,pair:n}=t;return n?Array.isArray(e)?e:e===void 0?[``,``]:[e,e]:e===void 0?[P.value.placeholder]:[e]}),de=e(()=>{let{value:e}=U,{value:t}=I,{value:n}=q;return!e&&(G(t)||Array.isArray(t)&&G(t[0]))&&n[0]}),fe=e(()=>{let{value:e}=U,{value:t}=I,{value:n}=q;return!e&&n[1]&&(G(t)||Array.isArray(t)&&G(t[1]))}),J=j(()=>t.internalForceFocus||V.value),pe=j(()=>{if(z.value||t.readonly||!t.clearable||!J.value&&!H.value)return!1;let{value:e}=I,{value:n}=J;return t.pair?!!(Array.isArray(e)&&(e[0]||e[1]))&&(H.value||n):!!e&&(H.value||n)}),me=e(()=>{let{showPasswordOn:e}=t;if(e)return e;if(t.showPasswordToggle)return`click`}),Y=l(!1),he=e(()=>{let{textDecoration:e}=t;return e?Array.isArray(e)?e.map(e=>({textDecoration:e})):[{textDecoration:e}]:[``,``]}),ge=l(void 0),_e=()=>{if(t.type===`textarea`){let{autosize:e}=t;if(e&&(ge.value=M.value?.$el?.offsetWidth),!y.value||typeof e==`boolean`)return;let{paddingTop:n,paddingBottom:r,lineHeight:i}=window.getComputedStyle(y.value),a=Number(n.slice(0,-2)),o=Number(r.slice(0,-2)),s=Number(i.slice(0,-2)),{value:c}=x;if(!c)return;if(e.minRows){let t=Math.max(e.minRows,1),n=`${a+o+s*t}px`;c.style.minHeight=n}if(e.maxRows){let t=`${a+o+s*e.maxRows}px`;c.style.maxHeight=t}}},ve=e(()=>{let{maxlength:e}=t;return e===void 0?void 0:Number(e)});o(()=>{let{value:e}=I;Array.isArray(e)||nt(e)});let ye=r().proxy;function X(e,n){let{onUpdateValue:r,"onUpdate:value":i,onInput:a}=t,{nTriggerFormInput:o}=L;r&&D(r,e,n),i&&D(i,e,n),a&&D(a,e,n),F.value=e,o()}function Z(e,n){let{onChange:r}=t,{nTriggerFormChange:i}=L;r&&D(r,e,n),F.value=e,i()}function be(e){let{onBlur:n}=t,{nTriggerFormBlur:r}=L;n&&D(n,e),r()}function xe(e){let{onFocus:n}=t,{nTriggerFormFocus:r}=L;n&&D(n,e),r()}function Se(e){let{onClear:n}=t;n&&D(n,e)}function Ce(e){let{onInputBlur:n}=t;n&&D(n,e)}function we(e){let{onInputFocus:n}=t;n&&D(n,e)}function Te(){let{onDeactivate:e}=t;e&&D(e)}function Ee(){let{onActivate:e}=t;e&&D(e)}function De(e){let{onClick:n}=t;n&&D(n,e)}function Oe(e){let{onWrapperFocus:n}=t;n&&D(n,e)}function ke(e){let{onWrapperBlur:n}=t;n&&D(n,e)}function Ae(){U.value=!0}function je(e){U.value=!1,e.target===T.value?Q(e,1):Q(e,0)}function Q(e,n=0,r=`input`){let i=e.target.value;if(nt(i),e instanceof InputEvent&&!e.isComposing&&(U.value=!1),t.type===`textarea`){let{value:e}=M;e&&e.syncUnifiedContainer()}if(K=i,U.value)return;k.recordCursor();let o=Me(i);if(o)if(!t.pair)r===`input`?X(i,{source:n}):Z(i,{source:n});else{let{value:e}=I;e=Array.isArray(e)?[e[0],e[1]]:[``,``],e[n]=i,r===`input`?X(e,{source:n}):Z(e,{source:n})}ye.$forceUpdate(),o||a(k.restoreCursor)}function Me(e){let{countGraphemes:n,maxlength:r,minlength:i}=t;if(n){let t;if(r!==void 0&&(t===void 0&&(t=n(e)),t>Number(r))||i!==void 0&&(t===void 0&&(t=n(e)),t<Number(r)))return!1}let{allowInput:a}=t;return typeof a==`function`?a(e):!0}function Ne(e){Ce(e),e.relatedTarget===_.value&&Te(),e.relatedTarget!==null&&(e.relatedTarget===w.value||e.relatedTarget===T.value||e.relatedTarget===y.value)||(W.value=!1),$(e,`blur`),O.value=null}function Pe(e,t){we(e),V.value=!0,W.value=!0,Ee(),$(e,`focus`),t===0?O.value=w.value:t===1?O.value=T.value:t===2&&(O.value=y.value)}function Fe(e){t.passivelyActivated&&(ke(e),$(e,`blur`))}function Ie(e){t.passivelyActivated&&(V.value=!0,Oe(e),$(e,`focus`))}function $(e,t){e.relatedTarget!==null&&(e.relatedTarget===w.value||e.relatedTarget===T.value||e.relatedTarget===y.value||e.relatedTarget===_.value)||(t===`focus`?(xe(e),V.value=!0):t===`blur`&&(be(e),V.value=!1))}function Le(e,t){Q(e,t,`change`)}function Re(e){De(e)}function ze(e){Se(e),Be()}function Be(){t.pair?(X([``,``],{source:`clear`}),Z([``,``],{source:`clear`})):(X(``,{source:`clear`}),Z(``,{source:`clear`}))}function Ve(e){let{onMousedown:n}=t;n&&n(e);let{tagName:r}=e.target;if(r!==`INPUT`&&r!==`TEXTAREA`){if(t.resizable){let{value:t}=_;if(t){let{left:n,top:r,width:i,height:a}=t.getBoundingClientRect();if(n+i-14<e.clientX&&e.clientX<n+i&&r+a-14<e.clientY&&e.clientY<r+a)return}}e.preventDefault(),V.value||Xe()}}function He(){var e;H.value=!0,t.type===`textarea`&&((e=M.value)==null||e.handleMouseEnterWrapper())}function Ue(){var e;H.value=!1,t.type===`textarea`&&((e=M.value)==null||e.handleMouseLeaveWrapper())}function We(){z.value||me.value===`click`&&(Y.value=!Y.value)}function Ge(e){if(z.value)return;e.preventDefault();let t=e=>{e.preventDefault(),N(`mouseup`,document,t)};if(re(`mouseup`,document,t),me.value!==`mousedown`)return;Y.value=!0;let n=()=>{Y.value=!1,N(`mouseup`,document,n)};re(`mouseup`,document,n)}function Ke(e){t.onKeyup&&D(t.onKeyup,e)}function qe(e){switch(t.onKeydown&&D(t.onKeydown,e),e.key){case`Escape`:Ye();break;case`Enter`:Je(e);break}}function Je(e){var n,r;if(t.passivelyActivated){let{value:i}=W;if(i){t.internalDeactivateOnEnter&&Ye();return}e.preventDefault(),t.type===`textarea`?(n=y.value)==null||n.focus():(r=w.value)==null||r.focus()}}function Ye(){t.passivelyActivated&&(W.value=!1,a(()=>{var e;(e=_.value)==null||e.focus()}))}function Xe(){var e,n,r;z.value||(t.passivelyActivated?(e=_.value)==null||e.focus():((n=y.value)==null||n.focus(),(r=w.value)==null||r.focus()))}function Ze(){_.value?.contains(document.activeElement)&&document.activeElement.blur()}function Qe(){var e,t;(e=y.value)==null||e.select(),(t=w.value)==null||t.select()}function $e(){z.value||(y.value?y.value.focus():w.value&&w.value.focus())}function et(){let{value:e}=_;e?.contains(document.activeElement)&&e!==document.activeElement&&Ye()}function tt(e){if(t.type===`textarea`){let{value:t}=y;t?.scrollTo(e)}else{let{value:t}=w;t?.scrollTo(e)}}function nt(e){let{type:n,pair:r,autosize:i}=t;if(!r&&i)if(n===`textarea`){let{value:t}=x;t&&(t.textContent=`${e??``}\r\n`)}else{let{value:t}=S;t&&(e?t.textContent=e:t.innerHTML=`&nbsp;`)}}function rt(){_e()}let it=l({top:`0`});function at(e){var t;let{scrollTop:n}=e.target;it.value.top=`${-n}px`,(t=M.value)==null||t.syncUnifiedContainer()}let ot=null;c(()=>{let{autosize:e,type:n}=t;e&&n===`textarea`?ot=s(I,e=>{!Array.isArray(e)&&e!==K&&nt(e)}):ot?.()});let st=null;c(()=>{t.type===`textarea`?st=s(I,e=>{var t;!Array.isArray(e)&&e!==K&&((t=M.value)==null||t.syncUnifiedContainer())}):st?.()}),n(se,{mergedValueRef:I,maxlengthRef:ve,mergedClsPrefixRef:i,countGraphemesRef:u(t,`countGraphemes`)});let ct={wrapperElRef:_,inputElRef:w,textareaElRef:y,isCompositing:U,clear:Be,focus:Xe,blur:Ze,select:Qe,deactivate:et,activate:$e,scrollTo:tt},lt=b(`Input`,p,i),ut=e(()=>{let{value:e}=R,{common:{cubicBezierEaseInOut:t},self:{color:n,borderRadius:r,textColor:i,caretColor:a,caretColorError:o,caretColorWarning:s,textDecorationColor:c,border:l,borderDisabled:u,borderHover:d,borderFocus:f,placeholderColor:p,placeholderColorDisabled:m,lineHeightTextarea:h,colorDisabled:ee,colorFocus:_,textColorDisabled:v,boxShadowFocus:y,iconSize:b,colorFocusWarning:x,boxShadowFocusWarning:S,borderWarning:C,borderFocusWarning:w,borderHoverWarning:T,colorFocusError:D,boxShadowFocusError:O,borderError:k,borderFocusError:A,borderHoverError:j,clearSize:M,clearColor:te,clearColorHover:ne,clearColorPressed:N,iconColor:P,iconColorDisabled:F,suffixTextColor:I,countTextColor:L,countTextColorDisabled:re,iconColorHover:ie,iconColorPressed:z,loadingColor:B,loadingColorError:V,loadingColorWarning:H,fontWeight:U,[E(`padding`,e)]:oe,[E(`fontSize`,e)]:se,[E(`height`,e)]:ce}}=g.value,{left:le,right:W}=ae(oe);return{"--n-bezier":t,"--n-count-text-color":L,"--n-count-text-color-disabled":re,"--n-color":n,"--n-font-size":se,"--n-font-weight":U,"--n-border-radius":r,"--n-height":ce,"--n-padding-left":le,"--n-padding-right":W,"--n-text-color":i,"--n-caret-color":a,"--n-text-decoration-color":c,"--n-border":l,"--n-border-disabled":u,"--n-border-hover":d,"--n-border-focus":f,"--n-placeholder-color":p,"--n-placeholder-color-disabled":m,"--n-icon-size":b,"--n-line-height-textarea":h,"--n-color-disabled":ee,"--n-color-focus":_,"--n-text-color-disabled":v,"--n-box-shadow-focus":y,"--n-loading-color":B,"--n-caret-color-warning":s,"--n-color-focus-warning":x,"--n-box-shadow-focus-warning":S,"--n-border-warning":C,"--n-border-focus-warning":w,"--n-border-hover-warning":T,"--n-loading-color-warning":H,"--n-caret-color-error":o,"--n-color-focus-error":D,"--n-box-shadow-focus-error":O,"--n-border-error":k,"--n-border-focus-error":A,"--n-border-hover-error":j,"--n-loading-color-error":V,"--n-clear-color":te,"--n-clear-size":M,"--n-clear-color-hover":ne,"--n-clear-color-pressed":N,"--n-icon-color":P,"--n-icon-color-hover":ie,"--n-icon-color-pressed":z,"--n-icon-color-disabled":F,"--n-suffix-text-color":I}}),dt=f?te(`input`,e(()=>{let{value:e}=R;return e[0]}),ut,t):void 0;return Object.assign(Object.assign({},ct),{wrapperElRef:_,inputElRef:w,inputMirrorElRef:S,inputEl2Ref:T,textareaElRef:y,textareaMirrorElRef:x,textareaScrollbarInstRef:M,rtlEnabled:lt,uncontrolledValue:F,mergedValue:I,passwordVisible:Y,mergedPlaceholder:q,showPlaceholder1:de,showPlaceholder2:fe,mergedFocus:J,isComposing:U,activated:W,showClearButton:pe,mergedSize:R,mergedDisabled:z,textDecorationStyle:he,mergedClsPrefix:i,mergedBordered:d,mergedShowPasswordOn:me,placeholderStyle:it,mergedStatus:B,textAreaScrollContainerWidth:ge,handleTextAreaScroll:at,handleCompositionStart:Ae,handleCompositionEnd:je,handleInput:Q,handleInputBlur:Ne,handleInputFocus:Pe,handleWrapperBlur:Fe,handleWrapperFocus:Ie,handleMouseEnter:He,handleMouseLeave:Ue,handleMouseDown:Ve,handleChange:Le,handleClick:Re,handleClear:ze,handlePasswordToggleClick:We,handlePasswordToggleMousedown:Ge,handleWrapperKeydown:qe,handleWrapperKeyup:Ke,handleTextAreaMirrorResize:rt,getTextareaScrollContainer:()=>y.value,mergedTheme:g,cssVars:f?void 0:ut,themeClass:dt?.themeClass,onRender:dt?.onRender})},render(){let{mergedClsPrefix:e,mergedStatus:t,themeClass:n,type:r,countGraphemes:a,onRender:o}=this,s=this.$slots;return o?.(),i(`div`,{ref:`wrapperElRef`,class:[`${e}-input`,`${e}-input--${this.mergedSize}-size`,n,t&&`${e}-input--${t}-status`,{[`${e}-input--rtl`]:this.rtlEnabled,[`${e}-input--disabled`]:this.mergedDisabled,[`${e}-input--textarea`]:r===`textarea`,[`${e}-input--resizable`]:this.resizable&&!this.autosize,[`${e}-input--autosize`]:this.autosize,[`${e}-input--round`]:this.round&&r!==`textarea`,[`${e}-input--pair`]:this.pair,[`${e}-input--focus`]:this.mergedFocus,[`${e}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.handleWrapperKeyup,onKeydown:this.handleWrapperKeydown},i(`div`,{class:`${e}-input-wrapper`},g(s.prefix,t=>t&&i(`div`,{class:`${e}-input__prefix`},t)),r===`textarea`?i(I,{ref:`textareaScrollbarInstRef`,class:`${e}-input__textarea`,container:this.getTextareaScrollContainer,theme:this.theme?.peers?.Scrollbar,themeOverrides:this.themeOverrides?.peers?.Scrollbar,triggerDisplayManually:!0,useUnifiedContainer:!0,internalHoistYRail:!0},{default:()=>{let{textAreaScrollContainerWidth:t}=this,n={width:this.autosize&&t&&`${t}px`};return i(f,null,i(`textarea`,Object.assign({},this.inputProps,{ref:`textareaElRef`,class:[`${e}-input__textarea-el`,this.inputProps?.class],autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:a?void 0:this.maxlength,minlength:a?void 0:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],this.inputProps?.style,n],onBlur:this.handleInputBlur,onFocus:e=>{this.handleInputFocus(e,2)},onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?i(`div`,{class:`${e}-input__placeholder`,style:[this.placeholderStyle,n],key:`placeholder`},this.mergedPlaceholder[0]):null,this.autosize?i(F,{onResize:this.handleTextAreaMirrorResize},{default:()=>i(`div`,{ref:`textareaMirrorElRef`,class:`${e}-input__textarea-mirror`,key:`mirror`})}):null)}}):i(`div`,{class:`${e}-input__input`},i(`input`,Object.assign({type:r===`password`&&this.mergedShowPasswordOn&&this.passwordVisible?`text`:r},this.inputProps,{ref:`inputElRef`,class:[`${e}-input__input-el`,this.inputProps?.class],style:[this.textDecorationStyle[0],this.inputProps?.style],tabindex:this.passivelyActivated&&!this.activated?-1:this.inputProps?.tabindex,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:a?void 0:this.maxlength,minlength:a?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:e=>{this.handleInputFocus(e,0)},onInput:e=>{this.handleInput(e,0)},onChange:e=>{this.handleChange(e,0)}})),this.showPlaceholder1?i(`div`,{class:`${e}-input__placeholder`},i(`span`,null,this.mergedPlaceholder[0])):null,this.autosize?i(`div`,{class:`${e}-input__input-mirror`,key:`mirror`,ref:`inputMirrorElRef`},`\xA0`):null),!this.pair&&g(s.suffix,t=>t||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?i(`div`,{class:`${e}-input__suffix`},[g(s[`clear-icon-placeholder`],t=>(this.clearable||t)&&i(L,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{placeholder:()=>t,icon:()=>{var e;return(e=this.$slots)[`clear-icon`]?.call(e)}})),this.internalLoadingBeforeSuffix?null:t,this.loading===void 0?null:i(R,{clsPrefix:e,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}),this.internalLoadingBeforeSuffix?t:null,this.showCount&&this.type!==`textarea`?i(K,null,{default:e=>{let{renderCount:t}=this;return t?t(e):s.count?.call(s,e)}}):null,this.mergedShowPasswordOn&&this.type===`password`?i(`div`,{class:`${e}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},this.passwordVisible?_(s[`password-visible-icon`],()=>[i(z,{clsPrefix:e},{default:()=>i(B,null)})]):_(s[`password-invisible-icon`],()=>[i(z,{clsPrefix:e},{default:()=>i(V,null)})])):null]):null)),this.pair?i(`span`,{class:`${e}-input__separator`},_(s.separator,()=>[this.separator])):null,this.pair?i(`div`,{class:`${e}-input-wrapper`},i(`div`,{class:`${e}-input__input`},i(`input`,{ref:`inputEl2Ref`,type:this.type,class:`${e}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:a?void 0:this.maxlength,minlength:a?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:e=>{this.handleInputFocus(e,1)},onInput:e=>{this.handleInput(e,1)},onChange:e=>{this.handleChange(e,1)}}),this.showPlaceholder2?i(`div`,{class:`${e}-input__placeholder`},i(`span`,null,this.mergedPlaceholder[1])):null),g(s.suffix,t=>(this.clearable||t)&&i(`div`,{class:`${e}-input__suffix`},[this.clearable&&i(L,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{icon:()=>s[`clear-icon`]?.call(s),placeholder:()=>s[`clear-icon-placeholder`]?.call(s)}),t]))):null,this.mergedBordered?i(`div`,{class:`${e}-input__border`}):null,this.mergedBordered?i(`div`,{class:`${e}-input__state-border`}):null,this.showCount&&r===`textarea`?i(K,null,{default:e=>{let{renderCount:t}=this;return t?t(e):s.count?.call(s,e)}}):null)}});export{B as i,oe as n,H as r,q as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jobs-BnXwbdOs.js","assets/router-qWVkGgap.js"])))=>i.map(i=>d[i]);
2
- import{A as e,C as t,D as n,E as r,G as i,O as a,Q as o,T as s,U as c,ct as l,gt as u,j as d,k as f,mt as p,n as m,pt as h,q as g,w as _,y as v}from"./router-qWVkGgap.js";import{n as y}from"./pinia-Jb4QOAzE.js";import{r as b,t as x}from"./_plugin-vue_export-helper-DXZ6IauR.js";import{t as S}from"./Modal-rKb1tfQv.js";import{n as C,t as w}from"./FormItem-DIcSMjKz.js";import{t as T}from"./Select-CpNY3UGb.js";import{t as E}from"./Button-pgPN7RfC.js";import{t as D}from"./Input-CxMM68Q2.js";import{t as O}from"./InputNumber-Btyn8bQo.js";import{t as k}from"./Tooltip-U6DmMv6W.js";import{t as A}from"./use-message-Do_vF1fs.js";import{t as j}from"./Spin-CAOjab_F.js";import{a as M,c as N,i as P,n as F,o as I,s as L,t as ee}from"./jobs-BnXwbdOs.js";function R(e,t){return e.job_id===t||e.id===t}var z=y(`jobs`,()=>{let e=l([]),t=l(!1);async function n(){t.value=!0;try{e.value=await P()}catch(e){console.error(`Failed to fetch jobs:`,e)}finally{t.value=!1}}async function r(t){let n=await ee(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 L(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`},$=x(d({__name:`JobCard`,props:{job:{}},emits:[`edit`],setup(a,{emit:c}){let l=a,d=c,{t:m}=b(),g=z(),y=A(),x=t(()=>l.job.job_id||l.job.id),S=t(()=>l.job.state===`running`?m(`jobs.status.running`):l.job.state===`paused`?m(`jobs.status.paused`):l.job.enabled?m(`jobs.status.scheduled`):m(`jobs.status.disabled`)),C=t(()=>l.job.state===`running`?`info`:l.job.state===`paused`?`warning`:l.job.enabled?`success`:`error`),w=t(()=>{let e=l.job.schedule;return typeof e==`string`?e:e?.expr||l.job.schedule_display||`—`}),T=e=>e?new Date(e).toLocaleString():`—`;async function D(){try{await g.pauseJob(x.value),y.success(m(`jobs.jobPaused`))}catch(e){y.error(e.message)}}async function O(){try{await g.resumeJob(x.value),y.success(m(`jobs.jobResumed`))}catch(e){y.error(e.message)}}async function j(){try{await g.runJob(x.value),y.info(m(`jobs.jobTriggered`))}catch(e){y.error(e.message)}}async function M(){try{await g.deleteJob(x.value),y.success(m(`jobs.jobDeleted`))}catch(e){y.error(e.message)}}return(t,c)=>(i(),n(`div`,B,[_(`div`,V,[_(`h3`,H,u(a.job.name),1),_(`span`,{class:p([`status-badge`,C.value])},u(S.value),3)]),_(`div`,U,[_(`div`,W,[_(`span`,G,u(h(m)(`jobs.info.schedule`)),1),_(`code`,K,u(w.value),1)]),_(`div`,q,[_(`span`,J,u(h(m)(`jobs.info.lastRun`)),1),_(`span`,Y,[f(u(T(a.job.last_run_at))+` `,1),a.job.last_status?(i(),n(`span`,{key:0,class:p([`run-status`,{ok:a.job.last_status===`ok`,err:a.job.last_status!==`ok`}])},u(a.job.last_status===`ok`?h(m)(`common.ok`):a.job.last_status),3)):r(``,!0)])]),_(`div`,X,[_(`span`,Z,u(h(m)(`jobs.info.nextRun`)),1),_(`span`,Q,u(T(a.job.next_run_at)),1)]),_(`div`,te,[_(`span`,ne,u(h(m)(`jobs.info.deliver`)),1),_(`span`,re,[f(u(a.job.deliver),1),a.job.origin?(i(),n(v,{key:0},[f(` (`+u(a.job.origin.platform)+`)`,1)],64)):r(``,!0)])]),a.job.repeat?(i(),n(`div`,ie,[_(`span`,ae,u(h(m)(`jobs.info.repeat`)),1),_(`span`,oe,[typeof a.job.repeat==`string`?(i(),n(v,{key:0},[f(u(a.job.repeat),1)],64)):(i(),n(v,{key:1},[f(u(a.job.repeat.completed)+` / `+u(a.job.repeat.times??`∞`),1)],64))])])):r(``,!0)]),_(`div`,se,[a.job.state!==`paused`&&a.job.enabled?(i(),s(h(k),{key:0},{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:D},{default:o(()=>[f(u(h(m)(`jobs.action.pause`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.pauseJob`)),1)]),_:1})):a.job.state===`paused`?(i(),s(h(k),{key:1},{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:O},{default:o(()=>[f(u(h(m)(`jobs.action.resume`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.resumeJob`)),1)]),_:1})):r(``,!0),e(h(k),null,{trigger:o(()=>[e(h(E),{size:`tiny`,quaternary:``,onClick:j},{default:o(()=>[f(u(h(m)(`jobs.action.runNow`)),1)]),_:1})]),default:o(()=>[f(` `+u(h(m)(`jobs.action.triggerImmediately`)),1)]),_:1}),e(h(E),{size:`tiny`,quaternary:``,onClick:c[0]||=e=>d(`edit`,x.value)},{default:o(()=>[f(u(h(m)(`common.edit`)),1)]),_:1}),e(h(E),{size:`tiny`,quaternary:``,type:`error`,onClick:M},{default:o(()=>[f(u(h(m)(`common.delete`)),1)]),_:1})])]))}}),[[`__scopeId`,`data-v-5c958088`]]),ce={key:0,class:`empty-state`},le={key:1,class:`jobs-grid`},ue=x(d({__name:`JobsPanel`,emits:[`edit`],setup(e,{emit:t}){let{t:r}=b(),o=t,c=z();return(e,t)=>h(c).jobs.length===0?(i(),n(`div`,ce,[t[0]||=a(`<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="empty-icon" data-v-a0a8d138><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-a0a8d138></rect><line x1="16" y1="2" x2="16" y2="6" data-v-a0a8d138></line><line x1="8" y1="2" x2="8" y2="6" data-v-a0a8d138></line><line x1="3" y1="10" x2="21" y2="10" data-v-a0a8d138></line></svg>`,1),_(`p`,null,u(h(r)(`jobs.noJobs`)),1)])):(i(),n(`div`,le,[(i(!0),n(v,null,g(h(c).jobs,e=>(i(),s($,{key:e.id,job:e,onEdit:t=>o(`edit`,e.id)},null,8,[`job`,`onEdit`]))),128))]))}}),[[`__scopeId`,`data-v-a0a8d138`]]),de={class:`modal-footer`},fe=x(d({__name:`JobFormModal`,props:{jobId:{}},emits:[`close`,`saved`],setup(n,{emit:r}){let{t:a}=b(),d=n,p=r,g=z(),v=A(),y=l(!0),x=l(!1),k=l({name:``,schedule:``,prompt:``,deliver:`origin`,repeat_times:null}),j=l(null),M=t(()=>!!d.jobId),N=t(()=>[{label:a(`jobs.presetEveryMinute`),value:`* * * * *`},{label:a(`jobs.presetEvery5Min`),value:`*/5 * * * *`},{label:a(`jobs.presetEveryHour`),value:`0 * * * *`},{label:a(`jobs.presetEveryDay`),value:`0 0 * * *`},{label:a(`jobs.presetEveryDay9`),value:`0 9 * * *`},{label:a(`jobs.presetEveryMonday`),value:`0 9 * * 1`},{label:a(`jobs.presetEveryMonth`),value:`0 9 1 * *`}]),P=t(()=>[{label:a(`jobs.origin`),value:`origin`},{label:a(`jobs.local`),value:`local`}]),F=l(null);c(async()=>{if(d.jobId)try{let{getJob:e}=await m(async()=>{let{getJob:e}=await import(`./jobs-BnXwbdOs.js`).then(e=>e.r);return{getJob:e}},__vite__mapDeps([0,1])),t=await e(d.jobId);k.value={name:t.name,schedule:typeof t.schedule==`string`?t.schedule:t.schedule?.expr||t.schedule_display||``,prompt:t.prompt,deliver:t.deliver||`origin`,repeat_times:typeof t.repeat==`number`?t.repeat:typeof t.repeat==`object`?t.repeat.times:null},typeof t.schedule==`object`&&t.schedule&&(F.value=t.schedule)}catch(e){v.error(a(`jobs.loadFailed`)+`: `+e.message)}});async function I(){if(!k.value.name.trim()){v.warning(a(`jobs.nameRequired`));return}if(!k.value.schedule.trim()){v.warning(a(`jobs.scheduleRequired`));return}x.value=!0;try{let e={name:k.value.name,schedule:k.value.schedule,prompt:k.value.prompt,deliver:k.value.deliver,repeat:k.value.repeat_times??void 0};M.value&&F.value&&(e.schedule={kind:F.value.kind,expr:k.value.schedule,display:k.value.schedule}),M.value?(await g.updateJob(d.jobId,e),v.success(a(`jobs.jobUpdated`))):(await g.createJob(e),v.success(a(`jobs.jobCreated`))),p(`saved`)}catch(e){v.error(e.message)}finally{x.value=!1}}function L(){y.value=!1,setTimeout(()=>p(`close`),200)}return(t,n)=>(i(),s(h(S),{show:y.value,"onUpdate:show":n[7]||=e=>y.value=e,preset:`card`,title:M.value?h(a)(`jobs.editJob`):h(a)(`jobs.createJob`),style:{width:`min(520px, calc(100vw - 32px))`},"mask-closable":!x.value,onAfterLeave:n[8]||=e=>p(`close`)},{footer:o(()=>[_(`div`,de,[e(h(E),{onClick:L},{default:o(()=>[f(u(h(a)(`common.cancel`)),1)]),_:1}),e(h(E),{type:`primary`,loading:x.value,onClick:I},{default:o(()=>[f(u(M.value?h(a)(`common.update`):h(a)(`common.create`)),1)]),_:1},8,[`loading`])])]),default:o(()=>[e(h(C),{"label-placement":`top`},{default:o(()=>[e(h(w),{label:h(a)(`jobs.name`),required:``},{default:o(()=>[e(h(D),{value:k.value.name,"onUpdate:value":n[0]||=e=>k.value.name=e,placeholder:h(a)(`jobs.namePlaceholder`),maxlength:`200`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.schedule`),required:``},{default:o(()=>[e(h(D),{value:k.value.schedule,"onUpdate:value":n[1]||=e=>k.value.schedule=e,placeholder:h(a)(`jobs.schedulePlaceholder`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.quickPresets`)},{default:o(()=>[e(h(T),{value:j.value,"onUpdate:value":[n[2]||=e=>j.value=e,n[3]||=e=>k.value.schedule=e],options:N.value,placeholder:h(a)(`jobs.selectPreset`)},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.prompt`),required:``},{default:o(()=>[e(h(D),{value:k.value.prompt,"onUpdate:value":n[4]||=e=>k.value.prompt=e,type:`textarea`,placeholder:h(a)(`jobs.promptPlaceholder`),rows:4,maxlength:`5000`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.deliverTarget`)},{default:o(()=>[e(h(T),{value:k.value.deliver,"onUpdate:value":n[5]||=e=>k.value.deliver=e,options:P.value},null,8,[`value`,`options`])]),_:1},8,[`label`]),e(h(w),{label:h(a)(`jobs.repeatCount`)},{default:o(()=>[e(h(O),{value:k.value.repeat_times,"onUpdate:value":n[6]||=e=>k.value.repeat_times=e,min:1,placeholder:h(a)(`jobs.repeatPlaceholder`),clearable:``,style:{width:`100%`}},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-b339cfa2`]]),pe={class:`jobs-view`},me={class:`page-header`},he={class:`header-title`},ge={class:`jobs-content`},_e=x(d({__name:`JobsView`,setup(t){let{t:a}=b(),d=z(),p=l(!1),m=l(null);c(()=>{d.fetchJobs()});function g(){m.value=null,p.value=!0}function v(e){m.value=e,p.value=!0}function y(){p.value=!1,m.value=null}async function x(){await d.fetchJobs(),y()}return(t,c)=>(i(),n(`div`,pe,[_(`header`,me,[_(`h2`,he,u(h(a)(`jobs.title`)),1),e(h(E),{type:`primary`,size:`small`,onClick:g},{icon:o(()=>[...c[0]||=[_(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[_(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),_(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:o(()=>[f(` `+u(h(a)(`jobs.createJob`)),1)]),_:1})]),_(`div`,ge,[e(h(j),{show:h(d).loading&&h(d).jobs.length===0},{default:o(()=>[e(ue,{onEdit:v})]),_:1},8,[`show`])]),p.value?(i(),s(fe,{key:0,"job-id":m.value,onClose:y,onSaved:x},null,8,[`job-id`])):r(``,!0)]))}}),[[`__scopeId`,`data-v-c0d68ae3`]]);export{_e as default};