hermes-web-ui 0.3.6 → 0.3.8

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 (87) hide show
  1. package/README.md +21 -2
  2. package/bin/hermes-web-ui.mjs +15 -1
  3. package/dist/client/assets/{Add-CKf6ViXR.js → Add-s316k4Av.js} +1 -1
  4. package/dist/client/assets/{Button-CrrCCorI.js → Button-BkA_RI8a.js} +1 -1
  5. package/dist/client/assets/{ChannelsView-D4I7hhZO.js → ChannelsView-DPmPn8DW.js} +1 -1
  6. package/dist/client/assets/ChatView-DEtziOPB.js +127 -0
  7. package/dist/client/assets/{ChatView-Vfi_jEpI.css → ChatView-DI3XN8vz.css} +1 -1
  8. package/dist/client/assets/{Close-C9xwy-pW.js → Close-CrLD0IXG.js} +1 -1
  9. package/dist/client/assets/{FormItem-BgJdrTW0.js → FormItem-CQLdFrl9.js} +1 -1
  10. package/dist/client/assets/{GatewaysView-Cib2JydO.js → GatewaysView-CC1Y0tZZ.js} +1 -1
  11. package/dist/client/assets/{Input-ChENEW-Z.js → Input-nXKlujwJ.js} +1 -1
  12. package/dist/client/assets/{InputNumber-Xd6HWSdp.js → InputNumber-DLZwwIyX.js} +1 -1
  13. package/dist/client/assets/{JobsView-SnToCbDd.js → JobsView-BC0bBrJO.js} +2 -2
  14. package/dist/client/assets/{LoginView-BZdmMnsf.js → LoginView-PqpFR9bV.js} +1 -1
  15. package/dist/client/assets/{LogsView-DblvOJIg.js → LogsView-DtR88N0b.js} +1 -1
  16. package/dist/client/assets/{MarkdownRenderer-DJLVk7ei.js → MarkdownRenderer-BSLfTurm.js} +1 -1
  17. package/dist/client/assets/{MemoryView-exXvRwCc.js → MemoryView-CJRWnePL.js} +1 -1
  18. package/dist/client/assets/{Modal-B2zvXTrk.js → Modal-Bp9RK8LZ.js} +1 -1
  19. package/dist/client/assets/ModelsView-7Obe34Cz.js +1 -0
  20. package/dist/client/assets/{ModelsView-jbgZP3YF.css → ModelsView-VM-oMq5M.css} +1 -1
  21. package/dist/client/assets/{Popconfirm-BoZc0kKk.js → Popconfirm-DTdUi7r_.js} +1 -1
  22. package/dist/client/assets/{Popover-Cu52vG3D.js → Popover-_M3o0B7L.js} +1 -1
  23. package/dist/client/assets/{ProfilesView-D0FY7Jwe.js → ProfilesView-1_GmRx-S.js} +1 -1
  24. package/dist/client/assets/{Select-BHc7u-Yf.js → Select-aHPR3urY.js} +2 -2
  25. package/dist/client/assets/{SettingRow-i-UXlco7.js → SettingRow-DKasLuS5.js} +1 -1
  26. package/dist/client/assets/{SettingsView-Dhr2wzAB.css → SettingsView-C3sd8K0e.css} +1 -1
  27. package/dist/client/assets/SettingsView-DZCA7_CM.js +352 -0
  28. package/dist/client/assets/{SkillsView-B5QBaAzi.js → SkillsView-Dk7O05cK.js} +1 -1
  29. package/dist/client/assets/{Spin-DsNCRPk9.js → Spin-Bt_9cTiO.js} +1 -1
  30. package/dist/client/assets/{Suffix-3xK0KZGt.js → Suffix-XaH8SDbR.js} +1 -1
  31. package/dist/client/assets/{Switch-Bf63XXgA.js → Switch-D1_psmjT.js} +1 -1
  32. package/dist/client/assets/{Tag-Dmbj68Ki.js → Tag-3FaOhoJN.js} +1 -1
  33. package/dist/client/assets/{TerminalView-DrJHZ0qI.js → TerminalView-DNU7oQxK.js} +1 -1
  34. package/dist/client/assets/{Tooltip-CRbZNhG0.js → Tooltip-YHrHWGPa.js} +1 -1
  35. package/dist/client/assets/{UsageView-DQ43JasX.js → UsageView-COCrOiiV.js} +1 -1
  36. package/dist/client/assets/{Warning-kBbRMAif.js → Warning-B6CM9aBl.js} +1 -1
  37. package/dist/client/assets/{_plugin-vue_export-helper-CnosYBkx.js → _plugin-vue_export-helper-BGG8ORDx.js} +1 -1
  38. package/dist/client/assets/app-B7ktf7Fh.js +1 -0
  39. package/dist/client/assets/app-BPvTl2-V.js +1 -0
  40. package/dist/client/assets/{browser-Djp4tkp3.js → browser-f5W8abIG.js} +1 -1
  41. package/dist/client/assets/chat-6q6pkzEW.js +6 -0
  42. package/dist/client/assets/composables-xV7dhNpf.js +1 -0
  43. package/dist/client/assets/{fade-in.cssr-CIVyTG6A.js → fade-in.cssr-ifHK7yH1.js} +1 -1
  44. package/dist/client/assets/index-CSCYx7ux.js +284 -0
  45. package/dist/client/assets/{jobs-CcVaCGMJ.js → jobs-DObWfhbO.js} +1 -1
  46. package/dist/client/assets/{light-D9G2GshF.js → light-CxjyoF0s.js} +1 -1
  47. package/dist/client/assets/{light-KCEDTUGE.js → light-D1yfed_s.js} +1 -1
  48. package/dist/client/assets/{light-BPqyaxve.js → light-DWy-mwyK.js} +1 -1
  49. package/dist/client/assets/{light-CSp9-LhE.js → light-D_3MwJj1.js} +1 -1
  50. package/dist/client/assets/{light-BF6E9z0k.js → light-DgLcPjgU.js} +1 -1
  51. package/dist/client/assets/{light-BJ96fCLC.js → light-TGFKT-UB.js} +1 -1
  52. package/dist/client/assets/models-DQ4CT-vv.js +1 -0
  53. package/dist/client/assets/{pinia-iHE5_ZXa.js → pinia-DcAkZ8vx.js} +1 -1
  54. package/dist/client/assets/{profiles-CJCR84uQ.js → profiles-DzkigJwq.js} +1 -1
  55. package/dist/client/assets/{router-C-NNJUuf.js → router-D8sJ39Io.js} +2 -2
  56. package/dist/client/assets/{sessions-C4bnNvzS.js → sessions-Dg8n9PBo.js} +1 -1
  57. package/dist/client/assets/{skills-B4slZfeZ.js → skills-BehzdECn.js} +1 -1
  58. package/dist/client/assets/{use-message-BIpqgDet.js → use-message-DBz2JSTt.js} +1 -1
  59. package/dist/client/assets/{useTheme-B78N9tyz.js → useTheme-UdVT814n.js} +1 -1
  60. package/dist/client/index.html +27 -27
  61. package/dist/server/index.js +8 -3
  62. package/dist/server/routes/hermes/filesystem.js +231 -199
  63. package/dist/server/routes/hermes/group-chat.d.ts +2 -0
  64. package/dist/server/routes/hermes/group-chat.js +135 -0
  65. package/dist/server/routes/hermes/logs.js +50 -11
  66. package/dist/server/routes/hermes/proxy-handler.js +16 -6
  67. package/dist/server/routes/upload.js +41 -11
  68. package/dist/server/services/group-chat/coordinator.d.ts +14 -0
  69. package/dist/server/services/group-chat/coordinator.js +230 -0
  70. package/dist/server/services/group-chat/index.d.ts +5 -0
  71. package/dist/server/services/group-chat/index.js +115 -0
  72. package/dist/server/services/group-chat/rooms-db.d.ts +56 -0
  73. package/dist/server/services/group-chat/rooms-db.js +199 -0
  74. package/dist/server/services/hermes/gateway-manager.d.ts +2 -0
  75. package/dist/server/services/hermes/gateway-manager.js +15 -0
  76. package/dist/server/services/hermes/hermes-profile.d.ts +6 -0
  77. package/dist/server/services/hermes/hermes-profile.js +12 -0
  78. package/dist/server/shared/providers.js +1 -13
  79. package/package.json +1 -1
  80. package/dist/client/assets/ChatView-DxyBUK57.js +0 -127
  81. package/dist/client/assets/ModelsView-DGs47Cj4.js +0 -1
  82. package/dist/client/assets/SettingsView-BW6ctYG5.js +0 -352
  83. package/dist/client/assets/app-BT9yU6N6.js +0 -1
  84. package/dist/client/assets/app-CjNVVG5x.js +0 -1
  85. package/dist/client/assets/chat-DlC9S9DK.js +0 -6
  86. package/dist/client/assets/composables-DCA4Yga5.js +0 -1
  87. package/dist/client/assets/index-D12ukDT7.js +0 -284
@@ -1,352 +0,0 @@
1
- import{$ as e,A as t,C as n,D as r,F as i,G as a,K as o,L as s,N as c,Q as l,R as u,S as d,U as f,X as p,Z as m,ct as h,dt as g,f as _,gt as v,h as y,j as b,pt as x,w as S,y as C}from"./router-C-NNJUuf.js";import{r as w,t as T}from"./_plugin-vue_export-helper-CnosYBkx.js";import{$ as E,B as ee,I as D,K as O,Y as k,Z as te,c as ne,ct as A,dt as j,ft as M,j as N,pt as P,q as F,st as I,ut as L,z as re}from"./browser-Djp4tkp3.js";import{M as ie,c as R,d as z,v as B,y as ae}from"./Popover-Cu52vG3D.js";import{d as oe,l as V}from"./Suffix-3xK0KZGt.js";import{c as H,o as se,r as U,s as ce}from"./fade-in.cssr-CIVyTG6A.js";import{n as le,t as ue}from"./Close-C9xwy-pW.js";import{t as W}from"./Select-BHc7u-Yf.js";import{t as de}from"./omit-1BRB6K75.js";import{t as fe}from"./Add-CKf6ViXR.js";import{t as G}from"./InputNumber-Xd6HWSdp.js";import{t as K}from"./use-message-BIpqgDet.js";import{t as q}from"./Switch-Bf63XXgA.js";import{n as pe}from"./light-CSp9-LhE.js";import{t as J}from"./Spin-DsNCRPk9.js";import{t as me}from"./useTheme-B78N9tyz.js";import{n as Y,t as X}from"./SettingRow-i-UXlco7.js";var he=B(`.v-x-scroll`,{overflow:`auto`,scrollbarWidth:`none`},[B(`&::-webkit-scrollbar`,{width:0,height:0})]),ge=b({name:`XScroll`,props:{disabled:Boolean,onScroll:Function},setup(){let e=h(null);function t(e){!(e.currentTarget.offsetWidth<e.currentTarget.scrollWidth)||e.deltaY===0||(e.currentTarget.scrollLeft+=e.deltaY+e.deltaX,e.preventDefault())}let n=te();return he.mount({id:`vueuc/x-scroll`,head:!0,anchorMetaName:ae,ssr:n}),Object.assign({selfRef:e,handleWheel:t},{scrollTo(...t){var n;(n=e.value)==null||n.scrollTo(...t)}})},render(){return c(`div`,{ref:`selfRef`,onScroll:this.onScroll,onWheel:this.disabled?void 0:this.handleWheel,class:`v-x-scroll`},this.$slots)}}),_e=/\s/;function Z(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}var ve=/^\s+/;function ye(e){return e&&e.slice(0,Z(e)+1).replace(ve,``)}var be=NaN,xe=/^[-+]0x[0-9a-f]+$/i,Q=/^0b[01]+$/i,Se=/^0o[0-7]+$/i,Ce=parseInt;function we(e){if(typeof e==`number`)return e;if(se(e))return be;if(N(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=N(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=ye(e);var n=Q.test(e);return n||Se.test(e)?Ce(e.slice(2),n?2:8):xe.test(e)?be:+e}var Te=function(){return D.Date.now()},Ee=`Expected a function`,De=Math.max,Oe=Math.min;function ke(e,t,n){var r,i,a,o,s,c,l=0,u=!1,d=!1,f=!0;if(typeof e!=`function`)throw TypeError(Ee);t=we(t)||0,N(n)&&(u=!!n.leading,d=`maxWait`in n,a=d?De(we(n.maxWait)||0,t):a,f=`trailing`in n?!!n.trailing:f);function p(t){var n=r,a=i;return r=i=void 0,l=t,o=e.apply(a,n),o}function m(e){return l=e,s=setTimeout(_,t),u?p(e):o}function h(e){var n=e-c,r=e-l,i=t-n;return d?Oe(i,a-r):i}function g(e){var n=e-c,r=e-l;return c===void 0||n>=t||n<0||d&&r>=a}function _(){var e=Te();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(Te())}function x(){var e=Te(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}var Ae=`Expected a function`;function je(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw TypeError(Ae);return N(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),ke(e,t,{leading:r,maxWait:t,trailing:i})}var Me=E(`n-tabs`),Ne={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:`if`},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},$=b({__TAB_PANE__:!0,name:`TabPane`,alias:[`TabPanel`],props:Ne,slots:Object,setup(e){let t=i(Me,null);return t||k(`tab-pane`,"`n-tab-pane` must be placed inside `n-tabs`."),{style:t.paneStyleRef,class:t.paneClassRef,mergedClsPrefix:t.mergedClsPrefixRef}},render(){return c(`div`,{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),Pe=b({__TAB__:!0,inheritAttrs:!1,name:`Tab`,props:Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},de(Ne,[`displayDirective`])),setup(e){let{mergedClsPrefixRef:t,valueRef:r,typeRef:a,closableRef:o,tabStyleRef:s,addTabStyleRef:c,tabClassRef:l,addTabClassRef:u,tabChangeIdRef:d,onBeforeLeaveRef:f,triggerRef:p,handleAdd:m,activateTab:h,handleClose:g}=i(Me);return{trigger:p,mergedClosable:n(()=>{if(e.internalAddable)return!1;let{closable:t}=e;return t===void 0?o.value:t}),style:s,addStyle:c,tabClass:l,addTabClass:u,clsPrefix:t,value:r,type:a,handleClose(t){t.stopPropagation(),!e.disabled&&g(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable){m();return}let{name:t}=e,n=++d.id;if(t!==r.value){let{value:i}=f;i?Promise.resolve(i(e.name,r.value)).then(e=>{e&&d.id===n&&h(t)}):h(t)}}}},render(){let{internalAddable:e,clsPrefix:t,name:n,disabled:r,label:i,tab:a,value:o,mergedClosable:l,trigger:u,$slots:{default:d}}=this,f=i??a;return c(`div`,{class:`${t}-tabs-tab-wrapper`},this.internalLeftPadded?c(`div`,{class:`${t}-tabs-tab-pad`}):null,c(`div`,Object.assign({key:n,"data-name":n,"data-disabled":r?!0:void 0},s({class:[`${t}-tabs-tab`,o===n&&`${t}-tabs-tab--active`,r&&`${t}-tabs-tab--disabled`,l&&`${t}-tabs-tab--closable`,e&&`${t}-tabs-tab--addable`,e?this.addTabClass:this.tabClass],onClick:u===`click`?this.activateTab:void 0,onMouseenter:u===`hover`?this.activateTab:void 0,style:e?this.addStyle:this.style},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),c(`span`,{class:`${t}-tabs-tab__label`},e?c(C,null,c(`div`,{class:`${t}-tabs-tab__height-placeholder`},`\xA0`),c(U,{clsPrefix:t},{default:()=>c(fe,null)})):d?d():typeof f==`object`?f:R(f??n)),l&&this.type===`card`?c(ue,{clsPrefix:t,class:`${t}-tabs-tab__close`,onClick:this.handleClose,disabled:r}):null))}}),Fe=A(`tabs`,`
2
- box-sizing: border-box;
3
- width: 100%;
4
- display: flex;
5
- flex-direction: column;
6
- transition:
7
- background-color .3s var(--n-bezier),
8
- border-color .3s var(--n-bezier);
9
- `,[j(`segment-type`,[A(`tabs-rail`,[I(`&.transition-disabled`,[A(`tabs-capsule`,`
10
- transition: none;
11
- `)])])]),j(`top`,[A(`tab-pane`,`
12
- padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left);
13
- `)]),j(`left`,[A(`tab-pane`,`
14
- padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top);
15
- `)]),j(`left, right`,`
16
- flex-direction: row;
17
- `,[A(`tabs-bar`,`
18
- width: 2px;
19
- right: 0;
20
- transition:
21
- top .2s var(--n-bezier),
22
- max-height .2s var(--n-bezier),
23
- background-color .3s var(--n-bezier);
24
- `),A(`tabs-tab`,`
25
- padding: var(--n-tab-padding-vertical);
26
- `)]),j(`right`,`
27
- flex-direction: row-reverse;
28
- `,[A(`tab-pane`,`
29
- padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom);
30
- `),A(`tabs-bar`,`
31
- left: 0;
32
- `)]),j(`bottom`,`
33
- flex-direction: column-reverse;
34
- justify-content: flex-end;
35
- `,[A(`tab-pane`,`
36
- padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left);
37
- `),A(`tabs-bar`,`
38
- top: 0;
39
- `)]),A(`tabs-rail`,`
40
- position: relative;
41
- padding: 3px;
42
- border-radius: var(--n-tab-border-radius);
43
- width: 100%;
44
- background-color: var(--n-color-segment);
45
- transition: background-color .3s var(--n-bezier);
46
- display: flex;
47
- align-items: center;
48
- `,[A(`tabs-capsule`,`
49
- border-radius: var(--n-tab-border-radius);
50
- position: absolute;
51
- pointer-events: none;
52
- background-color: var(--n-tab-color-segment);
53
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08);
54
- transition: transform 0.3s var(--n-bezier);
55
- `),A(`tabs-tab-wrapper`,`
56
- flex-basis: 0;
57
- flex-grow: 1;
58
- display: flex;
59
- align-items: center;
60
- justify-content: center;
61
- `,[A(`tabs-tab`,`
62
- overflow: hidden;
63
- border-radius: var(--n-tab-border-radius);
64
- width: 100%;
65
- display: flex;
66
- align-items: center;
67
- justify-content: center;
68
- `,[j(`active`,`
69
- font-weight: var(--n-font-weight-strong);
70
- color: var(--n-tab-text-color-active);
71
- `),I(`&:hover`,`
72
- color: var(--n-tab-text-color-hover);
73
- `)])])]),j(`flex`,[A(`tabs-nav`,`
74
- width: 100%;
75
- position: relative;
76
- `,[A(`tabs-wrapper`,`
77
- width: 100%;
78
- `,[A(`tabs-tab`,`
79
- margin-right: 0;
80
- `)])])]),A(`tabs-nav`,`
81
- box-sizing: border-box;
82
- line-height: 1.5;
83
- display: flex;
84
- transition: border-color .3s var(--n-bezier);
85
- `,[L(`prefix, suffix`,`
86
- display: flex;
87
- align-items: center;
88
- `),L(`prefix`,`padding-right: 16px;`),L(`suffix`,`padding-left: 16px;`)]),j(`top, bottom`,[I(`>`,[A(`tabs-nav`,[A(`tabs-nav-scroll-wrapper`,[I(`&::before`,`
89
- top: 0;
90
- bottom: 0;
91
- left: 0;
92
- width: 20px;
93
- `),I(`&::after`,`
94
- top: 0;
95
- bottom: 0;
96
- right: 0;
97
- width: 20px;
98
- `),j(`shadow-start`,[I(`&::before`,`
99
- box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12);
100
- `)]),j(`shadow-end`,[I(`&::after`,`
101
- box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12);
102
- `)])])])])]),j(`left, right`,[A(`tabs-nav-scroll-content`,`
103
- flex-direction: column;
104
- `),I(`>`,[A(`tabs-nav`,[A(`tabs-nav-scroll-wrapper`,[I(`&::before`,`
105
- top: 0;
106
- left: 0;
107
- right: 0;
108
- height: 20px;
109
- `),I(`&::after`,`
110
- bottom: 0;
111
- left: 0;
112
- right: 0;
113
- height: 20px;
114
- `),j(`shadow-start`,[I(`&::before`,`
115
- box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12);
116
- `)]),j(`shadow-end`,[I(`&::after`,`
117
- box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12);
118
- `)])])])])]),A(`tabs-nav-scroll-wrapper`,`
119
- flex: 1;
120
- position: relative;
121
- overflow: hidden;
122
- `,[A(`tabs-nav-y-scroll`,`
123
- height: 100%;
124
- width: 100%;
125
- overflow-y: auto;
126
- scrollbar-width: none;
127
- `,[I(`&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb`,`
128
- width: 0;
129
- height: 0;
130
- display: none;
131
- `)]),I(`&::before, &::after`,`
132
- transition: box-shadow .3s var(--n-bezier);
133
- pointer-events: none;
134
- content: "";
135
- position: absolute;
136
- z-index: 1;
137
- `)]),A(`tabs-nav-scroll-content`,`
138
- display: flex;
139
- position: relative;
140
- min-width: 100%;
141
- min-height: 100%;
142
- width: fit-content;
143
- box-sizing: border-box;
144
- `),A(`tabs-wrapper`,`
145
- display: inline-flex;
146
- flex-wrap: nowrap;
147
- position: relative;
148
- `),A(`tabs-tab-wrapper`,`
149
- display: flex;
150
- flex-wrap: nowrap;
151
- flex-shrink: 0;
152
- flex-grow: 0;
153
- `),A(`tabs-tab`,`
154
- cursor: pointer;
155
- white-space: nowrap;
156
- flex-wrap: nowrap;
157
- display: inline-flex;
158
- align-items: center;
159
- color: var(--n-tab-text-color);
160
- font-size: var(--n-tab-font-size);
161
- background-clip: padding-box;
162
- padding: var(--n-tab-padding);
163
- transition:
164
- box-shadow .3s var(--n-bezier),
165
- color .3s var(--n-bezier),
166
- background-color .3s var(--n-bezier),
167
- border-color .3s var(--n-bezier);
168
- `,[j(`disabled`,{cursor:`not-allowed`}),L(`close`,`
169
- margin-left: 6px;
170
- transition:
171
- background-color .3s var(--n-bezier),
172
- color .3s var(--n-bezier);
173
- `),L(`label`,`
174
- display: flex;
175
- align-items: center;
176
- z-index: 1;
177
- `)]),A(`tabs-bar`,`
178
- position: absolute;
179
- bottom: 0;
180
- height: 2px;
181
- border-radius: 1px;
182
- background-color: var(--n-bar-color);
183
- transition:
184
- left .2s var(--n-bezier),
185
- max-width .2s var(--n-bezier),
186
- opacity .3s var(--n-bezier),
187
- background-color .3s var(--n-bezier);
188
- `,[I(`&.transition-disabled`,`
189
- transition: none;
190
- `),j(`disabled`,`
191
- background-color: var(--n-tab-text-color-disabled)
192
- `)]),A(`tabs-pane-wrapper`,`
193
- position: relative;
194
- overflow: hidden;
195
- transition: max-height .2s var(--n-bezier);
196
- `),A(`tab-pane`,`
197
- color: var(--n-pane-text-color);
198
- width: 100%;
199
- transition:
200
- color .3s var(--n-bezier),
201
- background-color .3s var(--n-bezier),
202
- opacity .2s var(--n-bezier);
203
- left: 0;
204
- right: 0;
205
- top: 0;
206
- `,[I(`&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active`,`
207
- transition:
208
- color .3s var(--n-bezier),
209
- background-color .3s var(--n-bezier),
210
- transform .2s var(--n-bezier),
211
- opacity .2s var(--n-bezier);
212
- `),I(`&.next-transition-leave-active, &.prev-transition-leave-active`,`
213
- position: absolute;
214
- `),I(`&.next-transition-enter-from, &.prev-transition-leave-to`,`
215
- transform: translateX(32px);
216
- opacity: 0;
217
- `),I(`&.next-transition-leave-to, &.prev-transition-enter-from`,`
218
- transform: translateX(-32px);
219
- opacity: 0;
220
- `),I(`&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to`,`
221
- transform: translateX(0);
222
- opacity: 1;
223
- `)]),A(`tabs-tab-pad`,`
224
- box-sizing: border-box;
225
- width: var(--n-tab-gap);
226
- flex-grow: 0;
227
- flex-shrink: 0;
228
- `),j(`line-type, bar-type`,[A(`tabs-tab`,`
229
- font-weight: var(--n-tab-font-weight);
230
- box-sizing: border-box;
231
- vertical-align: bottom;
232
- `,[I(`&:hover`,{color:`var(--n-tab-text-color-hover)`}),j(`active`,`
233
- color: var(--n-tab-text-color-active);
234
- font-weight: var(--n-tab-font-weight-active);
235
- `),j(`disabled`,{color:`var(--n-tab-text-color-disabled)`})])]),A(`tabs-nav`,[j(`line-type`,[j(`top`,[L(`prefix, suffix`,`
236
- border-bottom: 1px solid var(--n-tab-border-color);
237
- `),A(`tabs-nav-scroll-content`,`
238
- border-bottom: 1px solid var(--n-tab-border-color);
239
- `),A(`tabs-bar`,`
240
- bottom: -1px;
241
- `)]),j(`left`,[L(`prefix, suffix`,`
242
- border-right: 1px solid var(--n-tab-border-color);
243
- `),A(`tabs-nav-scroll-content`,`
244
- border-right: 1px solid var(--n-tab-border-color);
245
- `),A(`tabs-bar`,`
246
- right: -1px;
247
- `)]),j(`right`,[L(`prefix, suffix`,`
248
- border-left: 1px solid var(--n-tab-border-color);
249
- `),A(`tabs-nav-scroll-content`,`
250
- border-left: 1px solid var(--n-tab-border-color);
251
- `),A(`tabs-bar`,`
252
- left: -1px;
253
- `)]),j(`bottom`,[L(`prefix, suffix`,`
254
- border-top: 1px solid var(--n-tab-border-color);
255
- `),A(`tabs-nav-scroll-content`,`
256
- border-top: 1px solid var(--n-tab-border-color);
257
- `),A(`tabs-bar`,`
258
- top: -1px;
259
- `)]),L(`prefix, suffix`,`
260
- transition: border-color .3s var(--n-bezier);
261
- `),A(`tabs-nav-scroll-content`,`
262
- transition: border-color .3s var(--n-bezier);
263
- `),A(`tabs-bar`,`
264
- border-radius: 0;
265
- `)]),j(`card-type`,[L(`prefix, suffix`,`
266
- transition: border-color .3s var(--n-bezier);
267
- `),A(`tabs-pad`,`
268
- flex-grow: 1;
269
- transition: border-color .3s var(--n-bezier);
270
- `),A(`tabs-tab-pad`,`
271
- transition: border-color .3s var(--n-bezier);
272
- `),A(`tabs-tab`,`
273
- font-weight: var(--n-tab-font-weight);
274
- border: 1px solid var(--n-tab-border-color);
275
- background-color: var(--n-tab-color);
276
- box-sizing: border-box;
277
- position: relative;
278
- vertical-align: bottom;
279
- display: flex;
280
- justify-content: space-between;
281
- font-size: var(--n-tab-font-size);
282
- color: var(--n-tab-text-color);
283
- `,[j(`addable`,`
284
- padding-left: 8px;
285
- padding-right: 8px;
286
- font-size: 16px;
287
- justify-content: center;
288
- `,[L(`height-placeholder`,`
289
- width: 0;
290
- font-size: var(--n-tab-font-size);
291
- `),M(`disabled`,[I(`&:hover`,`
292
- color: var(--n-tab-text-color-hover);
293
- `)])]),j(`closable`,`padding-right: 8px;`),j(`active`,`
294
- background-color: #0000;
295
- font-weight: var(--n-tab-font-weight-active);
296
- color: var(--n-tab-text-color-active);
297
- `),j(`disabled`,`color: var(--n-tab-text-color-disabled);`)])]),j(`left, right`,`
298
- flex-direction: column;
299
- `,[L(`prefix, suffix`,`
300
- padding: var(--n-tab-padding-vertical);
301
- `),A(`tabs-wrapper`,`
302
- flex-direction: column;
303
- `),A(`tabs-tab-wrapper`,`
304
- flex-direction: column;
305
- `,[A(`tabs-tab-pad`,`
306
- height: var(--n-tab-gap-vertical);
307
- width: 100%;
308
- `)])]),j(`top`,[j(`card-type`,[A(`tabs-scroll-padding`,`border-bottom: 1px solid var(--n-tab-border-color);`),L(`prefix, suffix`,`
309
- border-bottom: 1px solid var(--n-tab-border-color);
310
- `),A(`tabs-tab`,`
311
- border-top-left-radius: var(--n-tab-border-radius);
312
- border-top-right-radius: var(--n-tab-border-radius);
313
- `,[j(`active`,`
314
- border-bottom: 1px solid #0000;
315
- `)]),A(`tabs-tab-pad`,`
316
- border-bottom: 1px solid var(--n-tab-border-color);
317
- `),A(`tabs-pad`,`
318
- border-bottom: 1px solid var(--n-tab-border-color);
319
- `)])]),j(`left`,[j(`card-type`,[A(`tabs-scroll-padding`,`border-right: 1px solid var(--n-tab-border-color);`),L(`prefix, suffix`,`
320
- border-right: 1px solid var(--n-tab-border-color);
321
- `),A(`tabs-tab`,`
322
- border-top-left-radius: var(--n-tab-border-radius);
323
- border-bottom-left-radius: var(--n-tab-border-radius);
324
- `,[j(`active`,`
325
- border-right: 1px solid #0000;
326
- `)]),A(`tabs-tab-pad`,`
327
- border-right: 1px solid var(--n-tab-border-color);
328
- `),A(`tabs-pad`,`
329
- border-right: 1px solid var(--n-tab-border-color);
330
- `)])]),j(`right`,[j(`card-type`,[A(`tabs-scroll-padding`,`border-left: 1px solid var(--n-tab-border-color);`),L(`prefix, suffix`,`
331
- border-left: 1px solid var(--n-tab-border-color);
332
- `),A(`tabs-tab`,`
333
- border-top-right-radius: var(--n-tab-border-radius);
334
- border-bottom-right-radius: var(--n-tab-border-radius);
335
- `,[j(`active`,`
336
- border-left: 1px solid #0000;
337
- `)]),A(`tabs-tab-pad`,`
338
- border-left: 1px solid var(--n-tab-border-color);
339
- `),A(`tabs-pad`,`
340
- border-left: 1px solid var(--n-tab-border-color);
341
- `)])]),j(`bottom`,[j(`card-type`,[A(`tabs-scroll-padding`,`border-top: 1px solid var(--n-tab-border-color);`),L(`prefix, suffix`,`
342
- border-top: 1px solid var(--n-tab-border-color);
343
- `),A(`tabs-tab`,`
344
- border-bottom-left-radius: var(--n-tab-border-radius);
345
- border-bottom-right-radius: var(--n-tab-border-radius);
346
- `,[j(`active`,`
347
- border-top: 1px solid #0000;
348
- `)]),A(`tabs-tab-pad`,`
349
- border-top: 1px solid var(--n-tab-border-color);
350
- `),A(`tabs-pad`,`
351
- border-top: 1px solid var(--n-tab-border-color);
352
- `)])])])]),Ie=je,Le=b({name:`Tabs`,props:Object.assign(Object.assign({},ne.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:`click`},type:{type:String,default:`bar`},closable:Boolean,justifyContent:String,size:String,placement:{type:String,default:`top`},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),slots:Object,setup(e,{slots:t}){let{mergedClsPrefixRef:r,inlineThemeDisabled:i,mergedComponentPropsRef:a}=ee(e),s=ne(`Tabs`,`-tabs`,Fe,pe,e,r),c=h(null),l=h(null),d=h(null),_=h(null),v=h(null),y=h(null),b=h(!0),x=h(!0),S=le(e,[`labelSize`,`size`]),C=n(()=>S.value?S.value:a?.value?.Tabs?.size||`medium`),w=le(e,[`activeName`,`value`]),T=h(w.value??e.defaultValue??(t.default?z(t.default())[0]?.props?.name:null)),E=oe(w,T),D={id:0},O=n(()=>{if(!(!e.justifyContent||e.type===`card`))return{display:`flex`,justifyContent:e.justifyContent}});p(E,()=>{D.id=0,M(),N()});function k(){let{value:e}=E;return e===null?null:c.value?.querySelector(`[data-name="${e}"]`)}function te(t){if(e.type===`card`)return;let{value:n}=l;if(!n)return;let i=n.style.opacity===`0`;if(t){let a=`${r.value}-tabs-bar--disabled`,{barWidth:o,placement:s}=e;if(t.dataset.disabled===`true`?n.classList.add(a):n.classList.remove(a),[`top`,`bottom`].includes(s)){if(j([`top`,`maxHeight`,`height`]),typeof o==`number`&&t.offsetWidth>=o){let e=Math.floor((t.offsetWidth-o)/2)+t.offsetLeft;n.style.left=`${e}px`,n.style.maxWidth=`${o}px`}else n.style.left=`${t.offsetLeft}px`,n.style.maxWidth=`${t.offsetWidth}px`;n.style.width=`8192px`,i&&(n.style.transition=`none`),n.offsetWidth,i&&(n.style.transition=``,n.style.opacity=`1`)}else{if(j([`left`,`maxWidth`,`width`]),typeof o==`number`&&t.offsetHeight>=o){let e=Math.floor((t.offsetHeight-o)/2)+t.offsetTop;n.style.top=`${e}px`,n.style.maxHeight=`${o}px`}else n.style.top=`${t.offsetTop}px`,n.style.maxHeight=`${t.offsetHeight}px`;n.style.height=`8192px`,i&&(n.style.transition=`none`),n.offsetHeight,i&&(n.style.transition=``,n.style.opacity=`1`)}}}function A(){if(e.type===`card`)return;let{value:t}=l;t&&(t.style.opacity=`0`)}function j(e){let{value:t}=l;if(t)for(let n of e)t.style[n]=``}function M(){if(e.type===`card`)return;let t=k();t?te(t):A()}function N(){let e=v.value?.$el;if(!e)return;let t=k();if(!t)return;let{scrollLeft:n,offsetWidth:r}=e,{offsetLeft:i,offsetWidth:a}=t;n>i?e.scrollTo({top:0,left:i,behavior:`smooth`}):i+a>n+r&&e.scrollTo({top:0,left:i+a-r,behavior:`smooth`})}let I=h(null),L=0,R=null;function B(e){let t=I.value;if(t){L=e.getBoundingClientRect().height;let n=`${L}px`,r=()=>{t.style.height=n,t.style.maxHeight=n};R?(r(),R(),R=null):R=r}}function ae(e){let t=I.value;if(t){let n=e.getBoundingClientRect().height,r=()=>{document.body.offsetHeight,t.style.maxHeight=`${n}px`,t.style.height=`${Math.max(L,n)}px`};R?(R(),R=null,r()):R=r}}function V(){let t=I.value;if(t){t.style.maxHeight=``,t.style.height=``;let{paneWrapperStyle:n}=e;if(typeof n==`string`)t.style.cssText=n;else if(n){let{maxHeight:e,height:r}=n;e!==void 0&&(t.style.maxHeight=e),r!==void 0&&(t.style.height=r)}}}let se={value:[]},U=h(`next`);function ue(e){let t=E.value,n=`next`;for(let r of se.value){if(r===t)break;if(r===e){n=`prev`;break}}U.value=n,W(e)}function W(t){let{onActiveNameChange:n,onUpdateValue:r,"onUpdate:value":i}=e;n&&F(n,t),r&&F(r,t),i&&F(i,t),T.value=t}function de(t){let{onClose:n}=e;n&&F(n,t)}let fe=!0;function G(){let{value:e}=l;if(!e)return;fe||=!1;let t=`transition-disabled`;e.classList.add(t),M(),e.classList.remove(t)}let K=h(null);function q({transitionDisabled:e}){let t=c.value;if(!t)return;e&&t.classList.add(`transition-disabled`);let n=k();n&&K.value&&(K.value.style.width=`${n.offsetWidth}px`,K.value.style.height=`${n.offsetHeight}px`,K.value.style.transform=`translateX(${n.offsetLeft-ce(getComputedStyle(t).paddingLeft)}px)`,e&&K.value.offsetWidth),e&&t.classList.remove(`transition-disabled`)}p([E],()=>{e.type===`segment`&&u(()=>{q({transitionDisabled:!1})})}),f(()=>{e.type===`segment`&&q({transitionDisabled:!0})});let J=0;function me(t){if(t.contentRect.width===0&&t.contentRect.height===0||J===t.contentRect.width)return;J=t.contentRect.width;let{type:n}=e;if((n===`line`||n===`bar`)&&(fe||e.justifyContent?.startsWith(`space`))&&G(),n!==`segment`){let{placement:t}=e;Z((t===`top`||t===`bottom`?v.value?.$el:y.value)||null)}}let Y=Ie(me,64);p([()=>e.justifyContent,()=>e.size],()=>{u(()=>{let{type:t}=e;(t===`line`||t===`bar`)&&G()})});let X=h(!1);function he(t){let{target:n,contentRect:{width:r,height:i}}=t,a=n.parentElement.parentElement.offsetWidth,o=n.parentElement.parentElement.offsetHeight,{placement:s}=e;if(!X.value)s===`top`||s===`bottom`?a<r&&(X.value=!0):o<i&&(X.value=!0);else{let{value:e}=_;if(!e)return;s===`top`||s===`bottom`?a-r>e.$el.offsetWidth&&(X.value=!1):o-i>e.$el.offsetHeight&&(X.value=!1)}Z(v.value?.$el||null)}let ge=Ie(he,64);function _e(){let{onAdd:t}=e;t&&t(),u(()=>{let e=k(),{value:t}=v;!e||!t||t.scrollTo({left:e.offsetLeft,top:0,behavior:`smooth`})})}function Z(t){if(!t)return;let{placement:n}=e;if(n===`top`||n===`bottom`){let{scrollLeft:e,scrollWidth:n,offsetWidth:r}=t;b.value=e<=0,x.value=e+r>=n}else{let{scrollTop:e,scrollHeight:n,offsetHeight:r}=t;b.value=e<=0,x.value=e+r>=n}}let ve=Ie(e=>{Z(e.target)},64);o(Me,{triggerRef:g(e,`trigger`),tabStyleRef:g(e,`tabStyle`),tabClassRef:g(e,`tabClass`),addTabStyleRef:g(e,`addTabStyle`),addTabClassRef:g(e,`addTabClass`),paneClassRef:g(e,`paneClass`),paneStyleRef:g(e,`paneStyle`),mergedClsPrefixRef:r,typeRef:g(e,`type`),closableRef:g(e,`closable`),valueRef:E,tabChangeIdRef:D,onBeforeLeaveRef:g(e,`onBeforeLeave`),activateTab:ue,handleClose:de,handleAdd:_e}),ie(()=>{M(),N()}),m(()=>{let{value:e}=d;if(!e)return;let{value:t}=r,n=`${t}-tabs-nav-scroll-wrapper--shadow-start`,i=`${t}-tabs-nav-scroll-wrapper--shadow-end`;b.value?e.classList.remove(n):e.classList.add(n),x.value?e.classList.remove(i):e.classList.add(i)});let ye={syncBarPosition:()=>{M()}},be=()=>{q({transitionDisabled:!0})},xe=n(()=>{let{value:t}=C,{type:n}=e,r=`${t}${{card:`Card`,bar:`Bar`,line:`Line`,segment:`Segment`}[n]}`,{self:{barColor:i,closeIconColor:a,closeIconColorHover:o,closeIconColorPressed:c,tabColor:l,tabBorderColor:u,paneTextColor:d,tabFontWeight:f,tabBorderRadius:p,tabFontWeightActive:m,colorSegment:h,fontWeightStrong:g,tabColorSegment:_,closeSize:v,closeIconSize:y,closeColorHover:b,closeColorPressed:x,closeBorderRadius:S,[P(`panePadding`,t)]:w,[P(`tabPadding`,r)]:T,[P(`tabPaddingVertical`,r)]:E,[P(`tabGap`,r)]:ee,[P(`tabGap`,`${r}Vertical`)]:D,[P(`tabTextColor`,n)]:O,[P(`tabTextColorActive`,n)]:k,[P(`tabTextColorHover`,n)]:te,[P(`tabTextColorDisabled`,n)]:ne,[P(`tabFontSize`,t)]:A},common:{cubicBezierEaseInOut:j}}=s.value;return{"--n-bezier":j,"--n-color-segment":h,"--n-bar-color":i,"--n-tab-font-size":A,"--n-tab-text-color":O,"--n-tab-text-color-active":k,"--n-tab-text-color-disabled":ne,"--n-tab-text-color-hover":te,"--n-pane-text-color":d,"--n-tab-border-color":u,"--n-tab-border-radius":p,"--n-close-size":v,"--n-close-icon-size":y,"--n-close-color-hover":b,"--n-close-color-pressed":x,"--n-close-border-radius":S,"--n-close-icon-color":a,"--n-close-icon-color-hover":o,"--n-close-icon-color-pressed":c,"--n-tab-color":l,"--n-tab-font-weight":f,"--n-tab-font-weight-active":m,"--n-tab-padding":T,"--n-tab-padding-vertical":E,"--n-tab-gap":ee,"--n-tab-gap-vertical":D,"--n-pane-padding-left":H(w,`left`),"--n-pane-padding-right":H(w,`right`),"--n-pane-padding-top":H(w,`top`),"--n-pane-padding-bottom":H(w,`bottom`),"--n-font-weight-strong":g,"--n-tab-color-segment":_}}),Q=i?re(`tabs`,n(()=>`${C.value[0]}${e.type[0]}`),xe,e):void 0;return Object.assign({mergedClsPrefix:r,mergedValue:E,renderedNames:new Set,segmentCapsuleElRef:K,tabsPaneWrapperRef:I,tabsElRef:c,barElRef:l,addTabInstRef:_,xScrollInstRef:v,scrollWrapperElRef:d,addTabFixed:X,tabWrapperStyle:O,handleNavResize:Y,mergedSize:C,handleScroll:ve,handleTabsResize:ge,cssVars:i?void 0:xe,themeClass:Q?.themeClass,animationDirection:U,renderNameListRef:se,yScrollElRef:y,handleSegmentResize:be,onAnimationBeforeLeave:B,onAnimationEnter:ae,onAnimationAfterEnter:V,onRender:Q?.onRender},ye)},render(){let{mergedClsPrefix:e,type:t,placement:n,addTabFixed:r,addable:i,mergedSize:a,renderNameListRef:o,onRender:s,paneWrapperClass:l,paneWrapperStyle:u,$slots:{default:d,prefix:f,suffix:p}}=this;s?.();let m=d?z(d()).filter(e=>e.type.__TAB_PANE__===!0):[],h=d?z(d()).filter(e=>e.type.__TAB__===!0):[],g=!h.length,_=t===`card`,v=t===`segment`,y=!_&&!v&&this.justifyContent;o.value=[];let b=()=>{let t=c(`div`,{style:this.tabWrapperStyle,class:`${e}-tabs-wrapper`},y?null:c(`div`,{class:`${e}-tabs-scroll-padding`,style:n===`top`||n===`bottom`?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),g?m.map((e,t)=>(o.value.push(e.props.name),Ve(c(Pe,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:t!==0&&(!y||y===`center`||y===`start`||y===`end`)}),e.children?{default:e.children.tab}:void 0)))):h.map((e,t)=>(o.value.push(e.props.name),Ve(t!==0&&!y?Be(e):e))),!r&&i&&_?ze(i,(g?m.length:h.length)!==0):null,y?null:c(`div`,{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return c(`div`,{ref:`tabsElRef`,class:`${e}-tabs-nav-scroll-content`},_&&i?c(V,{onResize:this.handleTabsResize},{default:()=>t}):t,_?c(`div`,{class:`${e}-tabs-pad`}):null,_?null:c(`div`,{ref:`barElRef`,class:`${e}-tabs-bar`}))},x=v?`top`:n;return c(`div`,{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${a}-size`,y&&`${e}-tabs--flex`,`${e}-tabs--${x}`],style:this.cssVars},c(`div`,{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${x}`,`${e}-tabs-nav`]},O(f,t=>t&&c(`div`,{class:`${e}-tabs-nav__prefix`},t)),v?c(V,{onResize:this.handleSegmentResize},{default:()=>c(`div`,{class:`${e}-tabs-rail`,ref:`tabsElRef`},c(`div`,{class:`${e}-tabs-capsule`,ref:`segmentCapsuleElRef`},c(`div`,{class:`${e}-tabs-wrapper`},c(`div`,{class:`${e}-tabs-tab`}))),g?m.map((e,t)=>(o.value.push(e.props.name),c(Pe,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:t!==0}),e.children?{default:e.children.tab}:void 0))):h.map((e,t)=>(o.value.push(e.props.name),t===0?e:Be(e))))}):c(V,{onResize:this.handleNavResize},{default:()=>c(`div`,{class:`${e}-tabs-nav-scroll-wrapper`,ref:`scrollWrapperElRef`},[`top`,`bottom`].includes(x)?c(ge,{ref:`xScrollInstRef`,onScroll:this.handleScroll},{default:b}):c(`div`,{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:`yScrollElRef`},b()))}),r&&i&&_?ze(i,!0):null,O(p,t=>t&&c(`div`,{class:`${e}-tabs-nav__suffix`},t))),g&&(this.animated&&(x===`top`||x===`bottom`)?c(`div`,{ref:`tabsPaneWrapperRef`,style:u,class:[`${e}-tabs-pane-wrapper`,l]},Re(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Re(m,this.mergedValue,this.renderedNames)))}});function Re(t,n,r,i,a,o,s){let l=[];return t.forEach(t=>{let{name:i,displayDirective:a,"display-directive":o}=t.props,s=e=>a===e||o===e,c=n===i;if(t.key!==void 0&&(t.key=i),c||s(`show`)||s(`show:lazy`)&&r.has(i)){r.has(i)||r.add(i);let n=!s(`if`);l.push(n?e(t,[[y,c]]):t)}}),s?c(_,{name:`${s}-transition`,onBeforeLeave:i,onEnter:a,onAfterEnter:o},{default:()=>l}):l}function ze(e,t){return c(Pe,{ref:`addTabInstRef`,key:`__addable`,name:`__addable`,internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e==`object`&&e.disabled})}function Be(e){let t=d(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function Ve(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes(`internalLeftPadded`)||e.dynamicProps.push(`internalLeftPadded`):e.dynamicProps=[`internalLeftPadded`],e}var He={class:`settings-section`},Ue=T(b({__name:`DisplaySettings`,setup(e){let n=Y(),i=K(),{t:o}=w(),{mode:s,setMode:c}=me(),u=[{label:o(`settings.display.themeLight`),value:`light`},{label:o(`settings.display.themeDark`),value:`dark`},{label:o(`settings.display.themeSystem`),value:`system`}];async function d(e){try{await n.saveSection(`display`,e),i.success(o(`settings.saved`))}catch{i.error(o(`settings.saveFailed`))}}function f(e){let t=e;c(t),d({skin:t})}return(e,i)=>(a(),r(`section`,He,[t(X,{label:x(o)(`settings.display.theme`),hint:x(o)(`settings.display.themeHint`)},{default:l(()=>[t(x(W),{value:x(s),options:u,size:`small`,"consistent-menu-width":!1,class:`input-sm`,"onUpdate:value":f},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.streaming`),hint:x(o)(`settings.display.streamingHint`)},{default:l(()=>[t(x(q),{value:x(n).display.streaming,"onUpdate:value":i[0]||=e=>d({streaming:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.compact`),hint:x(o)(`settings.display.compactHint`)},{default:l(()=>[t(x(q),{value:x(n).display.compact,"onUpdate:value":i[1]||=e=>d({compact:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.showReasoning`),hint:x(o)(`settings.display.showReasoningHint`)},{default:l(()=>[t(x(q),{value:x(n).display.show_reasoning,"onUpdate:value":i[2]||=e=>d({show_reasoning:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.showCost`),hint:x(o)(`settings.display.showCostHint`)},{default:l(()=>[t(x(q),{value:x(n).display.show_cost,"onUpdate:value":i[3]||=e=>d({show_cost:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.inlineDiffs`),hint:x(o)(`settings.display.inlineDiffsHint`)},{default:l(()=>[t(x(q),{value:x(n).display.inline_diffs,"onUpdate:value":i[4]||=e=>d({inline_diffs:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.bellOnComplete`),hint:x(o)(`settings.display.bellOnCompleteHint`)},{default:l(()=>[t(x(q),{value:x(n).display.bell_on_complete,"onUpdate:value":i[5]||=e=>d({bell_on_complete:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.display.busyInputMode`),hint:x(o)(`settings.display.busyInputModeHint`)},{default:l(()=>[t(x(q),{value:x(n).display.busy_input_mode===`interrupt`,"onUpdate:value":i[6]||=e=>d({busy_input_mode:e?`interrupt`:`off`})},null,8,[`value`])]),_:1},8,[`label`,`hint`])]))}}),[[`__scopeId`,`data-v-e737ef30`]]),We={class:`settings-section`},Ge=T(b({__name:`AgentSettings`,setup(e){let n=Y(),i=K(),{t:o}=w();async function s(e){try{await n.saveSection(`agent`,e),i.success(o(`settings.saved`))}catch{i.error(o(`settings.saveFailed`))}}return(e,i)=>(a(),r(`section`,We,[t(X,{label:x(o)(`settings.agent.maxTurns`),hint:x(o)(`settings.agent.maxTurnsHint`)},{default:l(()=>[t(x(G),{value:x(n).agent.max_turns,min:1,max:200,step:5,size:`small`,class:`input-sm`,"onUpdate:value":i[0]||=e=>e!=null&&s({max_turns:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.agent.gatewayTimeout`),hint:x(o)(`settings.agent.gatewayTimeoutHint`)},{default:l(()=>[t(x(G),{value:x(n).agent.gateway_timeout,min:60,max:7200,step:60,size:`small`,class:`input-sm`,"onUpdate:value":i[1]||=e=>e!=null&&s({gateway_timeout:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.agent.restartDrainTimeout`),hint:x(o)(`settings.agent.restartDrainTimeoutHint`)},{default:l(()=>[t(x(G),{value:x(n).agent.restart_drain_timeout,min:10,max:300,step:10,size:`small`,class:`input-sm`,"onUpdate:value":i[2]||=e=>e!=null&&s({restart_drain_timeout:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.agent.toolEnforcement`),hint:x(o)(`settings.agent.toolEnforcementHint`)},{default:l(()=>[t(x(W),{value:x(n).agent.tool_use_enforcement||`auto`,options:[{label:x(o)(`settings.agent.auto`),value:`auto`},{label:x(o)(`settings.agent.always`),value:`always`},{label:x(o)(`settings.agent.never`),value:`never`}],size:`small`,class:`input-sm`,"onUpdate:value":i[3]||=e=>s({tool_use_enforcement:e})},null,8,[`value`,`options`])]),_:1},8,[`label`,`hint`])]))}}),[[`__scopeId`,`data-v-1f96245d`]]),Ke={class:`settings-section`},qe=T(b({__name:`MemorySettings`,setup(e){let n=Y(),i=K(),{t:o}=w();async function s(e){try{await n.saveSection(`memory`,e),i.success(o(`settings.saved`))}catch{i.error(o(`settings.saveFailed`))}}return(e,i)=>(a(),r(`section`,Ke,[t(X,{label:x(o)(`settings.memory.enabled`),hint:x(o)(`settings.memory.enabledHint`)},{default:l(()=>[t(x(q),{value:x(n).memory.memory_enabled,"onUpdate:value":i[0]||=e=>s({memory_enabled:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.memory.userProfile`),hint:x(o)(`settings.memory.userProfileHint`)},{default:l(()=>[t(x(q),{value:x(n).memory.user_profile_enabled,"onUpdate:value":i[1]||=e=>s({user_profile_enabled:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.memory.charLimit`),hint:x(o)(`settings.memory.charLimitHint`)},{default:l(()=>[t(x(G),{value:x(n).memory.memory_char_limit,min:100,max:1e4,step:100,size:`small`,class:`input-sm`,"onUpdate:value":i[2]||=e=>e!=null&&s({memory_char_limit:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.memory.userCharLimit`),hint:x(o)(`settings.memory.userCharLimitHint`)},{default:l(()=>[t(x(G),{value:x(n).memory.user_char_limit,min:100,max:1e4,step:100,size:`small`,class:`input-sm`,"onUpdate:value":i[3]||=e=>e!=null&&s({user_char_limit:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])]))}}),[[`__scopeId`,`data-v-0c8e2aa7`]]),Je={class:`settings-section`},Ye=T(b({__name:`SessionSettings`,setup(e){let n=Y(),i=K(),{t:o}=w();async function s(e){try{await n.saveSection(`session_reset`,e),i.success(o(`settings.saved`))}catch{i.error(o(`settings.saveFailed`))}}return(e,i)=>(a(),r(`section`,Je,[t(X,{label:x(o)(`settings.session.mode`),hint:x(o)(`settings.session.modeHint`)},{default:l(()=>[t(x(W),{value:x(n).sessionReset.mode||`both`,options:[{label:x(o)(`settings.session.modeBoth`),value:`both`},{label:x(o)(`settings.session.modeIdle`),value:`idle`},{label:x(o)(`settings.session.modeHourly`),value:`hourly`}],size:`small`,class:`input-md`,"onUpdate:value":i[0]||=e=>s({mode:e})},null,8,[`value`,`options`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.session.idleMinutes`),hint:x(o)(`settings.session.idleMinutesHint`)},{default:l(()=>[t(x(G),{value:x(n).sessionReset.idle_minutes,min:10,max:10080,step:30,size:`small`,class:`input-sm`,"onUpdate:value":i[1]||=e=>e!=null&&s({idle_minutes:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`]),t(X,{label:x(o)(`settings.session.atHour`),hint:x(o)(`settings.session.atHourHint`)},{default:l(()=>[t(x(G),{value:x(n).sessionReset.at_hour,min:0,max:23,step:1,size:`small`,class:`input-sm`,"onUpdate:value":i[2]||=e=>e!=null&&s({at_hour:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])]))}}),[[`__scopeId`,`data-v-46301ac7`]]),Xe={class:`settings-section`},Ze=T(b({__name:`PrivacySettings`,setup(e){let n=Y(),i=K(),{t:o}=w();async function s(e){try{await n.saveSection(`privacy`,e),i.success(o(`settings.saved`))}catch{i.error(o(`settings.saveFailed`))}}return(e,i)=>(a(),r(`section`,Xe,[t(X,{label:x(o)(`settings.privacy.redactPii`),hint:x(o)(`settings.privacy.redactPiiHint`)},{default:l(()=>[t(x(q),{value:x(n).privacy.redact_pii,"onUpdate:value":i[0]||=e=>s({redact_pii:e})},null,8,[`value`])]),_:1},8,[`label`,`hint`])]))}}),[[`__scopeId`,`data-v-43145f27`]]),Qe={class:`settings-view`},$e={class:`page-header`},et={class:`header-title`},tt={class:`settings-content`},nt=T(b({__name:`SettingsView`,setup(e){let n=Y(),{t:i}=w();return f(()=>{n.fetchSettings()}),(e,o)=>(a(),r(`div`,Qe,[S(`header`,$e,[S(`h2`,et,v(x(i)(`settings.title`)),1)]),S(`div`,tt,[t(x(J),{show:x(n).loading||x(n).saving,size:`large`,description:x(i)(`common.loading`)},{default:l(()=>[t(x(Le),{type:`line`,animated:``},{default:l(()=>[t(x($),{name:`display`,tab:x(i)(`settings.tabs.display`)},{default:l(()=>[t(Ue)]),_:1},8,[`tab`]),t(x($),{name:`agent`,tab:x(i)(`settings.tabs.agent`)},{default:l(()=>[t(Ge)]),_:1},8,[`tab`]),t(x($),{name:`memory`,tab:x(i)(`settings.tabs.memory`)},{default:l(()=>[t(qe)]),_:1},8,[`tab`]),t(x($),{name:`session`,tab:x(i)(`settings.tabs.session`)},{default:l(()=>[t(Ye)]),_:1},8,[`tab`]),t(x($),{name:`privacy`,tab:x(i)(`settings.tabs.privacy`)},{default:l(()=>[t(Ze)]),_:1},8,[`tab`])]),_:1})]),_:1},8,[`show`,`description`])])]))}}),[[`__scopeId`,`data-v-d6519d29`]]);export{nt as default};
@@ -1 +0,0 @@
1
- import{ct as e,o as t}from"./router-C-NNJUuf.js";import{n}from"./pinia-iHE5_ZXa.js";async function r(){return t(`/health`)}async function i(){return t(`/api/hermes/update`,{method:`POST`})}async function a(){return t(`/api/hermes/available-models`)}async function o(e){await t(`/api/hermes/config/model`,{method:`PUT`,body:JSON.stringify(e)})}async function s(e){await t(`/api/hermes/config/providers`,{method:`POST`,body:JSON.stringify(e)})}async function c(e){await t(`/api/hermes/config/providers/${encodeURIComponent(e)}`,{method:`DELETE`})}var l=`0.3.6`,u=`hermes_sidebar_collapsed`,d=n(`app`,()=>{let t=e(!1),n=e(localStorage.getItem(u)===`1`),s=e(!1),c=e(l),d=e(``),f=e(!1),p=e(!1),m=e([]),h=e(``),g=e(``),_=e(),v=e(!0),y=e(!0),b=e(4096);async function x(){p.value=!0;try{let e=await i();return e.success&&(f.value=!1,await S()),e.success}finally{p.value=!1}}async function S(){try{let e=await r();s.value=e.status===`ok`,e.webui_version&&(c.value=e.webui_version),e.webui_latest&&(d.value=e.webui_latest),f.value=!!e.webui_update_available}catch{s.value=!1}}async function C(){try{let e=await a();m.value=e.groups,h.value=e.default,g.value=e.default_provider||``}catch{}}async function w(e,t){try{let n=m.value.find(t=>t.models.includes(e)),r=t||n?.provider||``;await o({default:e,provider:r}),h.value=e,g.value=r||``}catch(e){console.error(`Failed to switch model:`,e)}}function T(e=3e4){E(),S(),_.value=setInterval(S,e)}function E(){_.value&&=(clearInterval(_.value),void 0)}function D(){t.value=!t.value}function O(){t.value=!1}function k(){n.value=!n.value;try{localStorage.setItem(u,n.value?`1`:`0`)}catch{}}return{sidebarOpen:t,sidebarCollapsed:n,toggleSidebar:D,closeSidebar:O,toggleSidebarCollapsed:k,connected:s,serverVersion:c,latestVersion:d,updateAvailable:f,updating:p,doUpdate:x,modelGroups:m,selectedModel:h,selectedProvider:g,streamEnabled:v,sessionPersistence:y,maxTokens:b,checkConnection:S,loadModels:C,switchModel:w,startHealthPolling:T,stopHealthPolling:E}});export{o as a,c as i,s as n,a as r,d as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./app-BT9yU6N6.js";export{e as useAppStore};
@@ -1,6 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-CjNVVG5x.js","assets/app-BT9yU6N6.js","assets/router-C-NNJUuf.js","assets/pinia-iHE5_ZXa.js"])))=>i.map(i=>d[i]);
2
- import{C as e,ct as t,i as n,n as r,o as i,r as a}from"./router-C-NNJUuf.js";import{n as o}from"./pinia-iHE5_ZXa.js";import{n as s,nt as c,s as l}from"./browser-Djp4tkp3.js";import{i as u}from"./Popover-Cu52vG3D.js";import{t as d}from"./app-BT9yU6N6.js";import{t as f}from"./profiles-CJCR84uQ.js";import{n as p,r as m,t as h}from"./sessions-C4bnNvzS.js";var g={padding:`4px 0`,optionIconSizeSmall:`14px`,optionIconSizeMedium:`16px`,optionIconSizeLarge:`16px`,optionIconSizeHuge:`18px`,optionSuffixWidthSmall:`14px`,optionSuffixWidthMedium:`14px`,optionSuffixWidthLarge:`16px`,optionSuffixWidthHuge:`16px`,optionIconSuffixWidthSmall:`32px`,optionIconSuffixWidthMedium:`32px`,optionIconSuffixWidthLarge:`36px`,optionIconSuffixWidthHuge:`36px`,optionPrefixWidthSmall:`14px`,optionPrefixWidthMedium:`14px`,optionPrefixWidthLarge:`16px`,optionPrefixWidthHuge:`16px`,optionIconPrefixWidthSmall:`36px`,optionIconPrefixWidthMedium:`36px`,optionIconPrefixWidthLarge:`40px`,optionIconPrefixWidthHuge:`40px`};function _(e){let{primaryColor:t,textColor2:n,dividerColor:r,hoverColor:i,popoverColor:a,invertedColor:o,borderRadius:s,fontSizeSmall:l,fontSizeMedium:u,fontSizeLarge:d,fontSizeHuge:f,heightSmall:p,heightMedium:m,heightLarge:h,heightHuge:_,textColor3:v,opacityDisabled:y}=e;return Object.assign(Object.assign({},g),{optionHeightSmall:p,optionHeightMedium:m,optionHeightLarge:h,optionHeightHuge:_,borderRadius:s,fontSizeSmall:l,fontSizeMedium:u,fontSizeLarge:d,fontSizeHuge:f,optionTextColor:n,optionTextColorHover:n,optionTextColorActive:t,optionTextColorChildActive:t,color:a,dividerColor:r,suffixColor:n,prefixColor:n,optionColorHover:i,optionColorActive:c(t,{alpha:.1}),groupHeaderTextColor:v,optionTextColorInverted:`#BBB`,optionTextColorHoverInverted:`#FFF`,optionTextColorActiveInverted:`#FFF`,optionTextColorChildActiveInverted:`#FFF`,colorInverted:o,dividerColorInverted:`#BBB`,suffixColorInverted:`#BBB`,prefixColorInverted:`#BBB`,optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:`#AAA`,optionOpacityDisabled:y})}var v=l({name:`Dropdown`,common:s,peers:{Popover:u},self:_});function y(e){let{textColorBase:t,opacity1:n,opacity2:r,opacity3:i,opacity4:a,opacity5:o}=e;return{color:t,opacity1Depth:n,opacity2Depth:r,opacity3Depth:i,opacity4Depth:a,opacity5Depth:o}}var b={name:`Icon`,common:s,self:y};async function x(e){return i(`/api/hermes/v1/runs`,{method:`POST`,body:JSON.stringify(e)})}function S(e,t,r,i){let o=n(),s=a(),c=`${o}/api/hermes/v1/runs/${e}/events${s?`?token=${encodeURIComponent(s)}`:``}`,l=!1,u=new EventSource(c);return u.onmessage=e=>{if(!l)try{let n=JSON.parse(e.data);t(n),(n.event===`run.completed`||n.event===`run.failed`)&&(l=!0,u.close(),r())}catch{t({event:`message`,delta:e.data})}},u.onerror=()=>{l||(l=!0,u.close(),i(Error(`SSE connection error`)))},{abort:()=>{l||(l=!0,u.close())}}}function C(){return Date.now().toString(36)+Math.random().toString(36).slice(2,8)}async function w(e){if(e.length===0)return[];let t=new FormData;for(let n of e)n.file&&t.append(`file`,n.file,n.name);let n=localStorage.getItem(`hermes_api_key`)||``,r=await fetch(`/upload`,{method:`POST`,body:t,headers:n?{Authorization:`Bearer ${n}`}:{}});if(!r.ok)throw Error(`Upload failed: ${r.status}`);return(await r.json()).files}function T(e){let t=new Map,n=new Map;for(let r of e)if(r.role===`assistant`&&r.tool_calls)for(let e of r.tool_calls)e.id&&(e.function?.name&&t.set(e.id,e.function.name),e.function?.arguments&&n.set(e.id,e.function.arguments));let r=[];for(let i of e){if(i.role===`assistant`&&i.tool_calls?.length&&!i.content?.trim()){for(let e of i.tool_calls)r.push({id:String(i.id)+`_`+e.id,role:`tool`,content:``,timestamp:Math.round(i.timestamp*1e3),toolName:e.function?.name||`tool`,toolArgs:e.function?.arguments||void 0,toolStatus:`done`});continue}if(i.role===`tool`){let e=i.tool_call_id||``,a=i.tool_name||t.get(e)||`tool`,o=n.get(e)||void 0,s=``;if(i.content)try{let e=JSON.parse(i.content);s=e.url||e.title||e.preview||e.summary||``}catch{s=i.content.slice(0,80)}let c=r.findIndex(t=>t.role===`tool`&&t.toolName===a&&!t.toolResult&&t.id.includes(`_`+e));c!==-1&&r.splice(c,1),r.push({id:String(i.id),role:`tool`,content:``,timestamp:Math.round(i.timestamp*1e3),toolName:a,toolArgs:o,toolPreview:typeof s==`string`&&s.slice(0,100)||void 0,toolResult:i.content||void 0,toolStatus:`done`});continue}r.push({id:String(i.id),role:i.role,content:i.content||``,timestamp:Math.round(i.timestamp*1e3)})}return r}function E(e){return{id:e.id,title:e.title||``,source:e.source||void 0,messages:[],createdAt:Math.round(e.started_at*1e3),updatedAt:Math.round((e.ended_at||e.started_at)*1e3),model:e.model,provider:e.billing_provider||``,messageCount:e.message_count,inputTokens:e.input_tokens,outputTokens:e.output_tokens}}var D=`hermes_active_session_`,O=`hermes_sessions_cache_v1_`,k=900*1e3,A=2e3,j=3;function M(){try{return f().activeProfileName||`default`}catch{return`default`}}function N(){return D+M()}function P(){return O+M()}function F(e){return`hermes_session_msgs_v1_${M()}_${e}_`}function I(e){return`hermes_in_flight_v1_${M()}_${e}`}function L(e){try{let t=localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function R(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function z(e){try{localStorage.removeItem(e)}catch{}}function B(e){return e.map(e=>e.attachments?.length?{...e,attachments:e.attachments.map(e=>({id:e.id,name:e.name,type:e.type,size:e.size,url:e.url}))}:e)}var V=o(`chat`,()=>{let n=t([]),i=t(null),a=t(new Map),o=e(()=>i.value!=null&&a.value.has(i.value)),s=t(!1),c=t(!1),l=t(new Set),u=e(()=>o.value||i.value!=null&&l.value.has(i.value)),f=new Map,g=new Map,_=t(null),v=e(()=>_.value?.messages||[]);function y(){R(P(),n.value.map(e=>({...e,messages:[]})))}function b(){let e=i.value;if(!e)return;let t=n.value.find(t=>t.id===e);t&&R(F(e),B(t.messages))}function D(e,t){R(I(e),{runId:t,startedAt:Date.now()})}function O(e){z(I(e))}function M(e){let t=L(I(e));return t?Date.now()-t.startedAt>k?(z(I(e)),null):t:null}function V(e){let t=f.get(e);t&&(clearInterval(t),f.delete(e)),g.delete(e),l.value=new Set([...l.value].filter(t=>t!==e))}function H(e){if(f.has(e))return;l.value=new Set([...l.value,e]);let t=setInterval(async()=>{if(a.value.has(e)){V(e);return}if(!M(e)){V(e);return}try{let t=await p(e);if(!t)return;let r=T(t.messages||[]),a=n.value.find(t=>t.id===e);if(!a)return;let o=a.messages,s=[...o].reverse().find(e=>e.role===`assistant`),c=[...r].reverse().find(e=>e.role===`assistant`),l=s?.content?.length??0,u=c?.content?.length??0,d=o.filter(e=>e.role===`user`).length,f=r.filter(e=>e.role===`user`).length,m=f>=d;if((f>d||f===d&&u>=l)&&(a.messages=r,a.inputTokens=t.input_tokens,a.outputTokens=t.output_tokens,t.title&&!a.title&&(a.title=t.title),e===i.value&&b()),!m)g.delete(e);else{let n=r[r.length-1],o=`${r.length}|${n?.content?.slice(-40)||``}|${n?.toolStatus||``}`,s=g.get(e);s&&s.sig===o?(s.stableTicks+=1,s.stableTicks>=j&&(a.messages=r,a.inputTokens=t.input_tokens,a.outputTokens=t.output_tokens,t.title&&(a.title=t.title),e===i.value&&b(),O(e),V(e))):g.set(e,{sig:o,stableTicks:0})}}catch{}},A);f.set(e,t)}async function U(){s.value=!0;try{let e=L(P());if(e?.length){n.value=e;let t=localStorage.getItem(N());if(t){let n=e.find(e=>e.id===t)||null;if(n){let e=L(F(t));e&&(n.messages=e),_.value=n,i.value=t}}}let t=(await m()).map(E),r=new Set(t.map(e=>e.id)),a=new Map(n.value.map(e=>[e.id,e.messages]));for(let e of t){let t=a.get(e.id);t&&t.length&&(e.messages=t)}n.value=[...n.value.filter(e=>!r.has(e.id)),...t],y();let o=i.value,s=o&&n.value.some(e=>e.id===o)?o:n.value[0]?.id;s&&await K(s)}catch(e){console.error(`Failed to load sessions:`,e)}finally{s.value=!1}}async function W(){let e=i.value;if(!e)return!1;try{let t=await p(e);if(!t)return!1;let r=n.value.find(t=>t.id===e);return r?(r.messages=T(t.messages||[]),r.inputTokens=t.input_tokens,r.outputTokens=t.output_tokens,t.title&&(r.title=t.title),b(),!0):!1}catch(e){return console.error(`Failed to refresh active session:`,e),!1}}function G(){let e={id:C(),title:``,source:`api_server`,messages:[],createdAt:Date.now(),updatedAt:Date.now()};return n.value.unshift(e),y(),e}async function K(e){if(i.value=e,localStorage.setItem(N(),e),_.value=n.value.find(t=>t.id===e)||null,_.value){if(!(_.value.messages.length>0)){let t=L(F(e));t?.length&&(_.value.messages=t)}_.value.messages.length===0&&(c.value=!0);try{let t=await p(e);if(t&&t.messages){let e=T(t.messages),n=_.value.messages,r=[...n].reverse().find(e=>e.role===`assistant`),i=[...e].reverse().find(e=>e.role===`assistant`),a=r?.content?.length??0,o=i?.content?.length??0,s=n.filter(e=>e.role===`user`).length,c=e.filter(e=>e.role===`user`).length;if((c>s||c===s&&o>=a)&&(_.value.messages=e),_.value.inputTokens=t.input_tokens,_.value.outputTokens=t.output_tokens,t.title)_.value.title=t.title;else if(!_.value.title){let e=_.value.messages.find(e=>e.role===`user`);if(e){let t=e.content.slice(0,40);_.value.title=t+(e.content.length>40?`...`:``)}}b()}}catch(e){console.error(`Failed to load session messages:`,e)}finally{c.value=!1}M(e)&&!a.value.has(e)&&H(e)}}function q(){if(o.value)return;let e=G();e.model=d().selectedModel||void 0,K(e.id)}async function J(e,t){if(_.value&&(_.value.model=e,_.value.provider=t||``,t)){let{useAppStore:n}=await r(async()=>{let{useAppStore:e}=await import(`./app-CjNVVG5x.js`);return{useAppStore:e}},__vite__mapDeps([0,1,2,3]));await n().switchModel(e,t)}}async function Y(e){await h(e),n.value=n.value.filter(t=>t.id!==e),z(F(e)),y(),i.value===e&&(n.value.length>0?await K(n.value[0].id):K(G().id))}function X(e){return n.value.find(t=>t.id===e)?.messages||[]}function Z(e,t){let r=n.value.find(t=>t.id===e);r&&r.messages.push(t)}function Q(e,t,r){let i=n.value.find(t=>t.id===e);if(!i)return;let a=i.messages.findIndex(e=>e.id===t);a!==-1&&(i.messages[a]={...i.messages[a],...r})}function $(e){let t=n.value.find(t=>t.id===e);if(t){if(!t.title){let e=t.messages.find(e=>e.role===`user`);if(e){let n=e.attachments?.length?e.attachments.map(e=>e.name).join(`, `):e.content;t.title=n.slice(0,40)+(n.length>40?`...`:``)}}t.updatedAt=Date.now()}}async function ee(e,t){if(!e.trim()&&!(t&&t.length>0)||o.value)return;_.value||K(G().id);let n=i.value;Z(n,{id:C(),role:`user`,content:e.trim(),timestamp:Date.now(),attachments:t&&t.length>0?t:void 0}),$(n),n===i.value&&(b(),y());try{let r=X(n).filter(e=>(e.role===`user`||e.role===`assistant`)&&e.content.trim()).map(e=>({role:e.role,content:e.content})),o=e.trim();if(t&&t.length>0){let e=(await w(t)).map(e=>`[File: ${e.name}](${e.path})`);o=o?o+`
3
-
4
- `+e.join(`
5
- `):e.join(`
6
- `)}let s=d(),c=_.value?.model||s.selectedModel,l=await x({input:o,conversation_history:r,session_id:n,model:c||void 0}),u=l.run_id||l.id;if(!u){Z(n,{id:C(),role:`system`,content:`Error: startRun returned no run ID. Response: ${JSON.stringify(l)}`,timestamp:Date.now()});return}D(n,u),V(n);let f=()=>{a.value.delete(n),p&&=(clearTimeout(p),null)},p=null,m=()=>{n!==i.value||p||(p=setTimeout(()=>{p=null,b()},800))},h=S(u,e=>{switch(e.event){case`run.started`:break;case`message.delta`:{let t=X(n),r=t[t.length-1];r?.role===`assistant`&&r.isStreaming?r.content+=e.delta||``:Z(n,{id:C(),role:`assistant`,content:e.delta||``,timestamp:Date.now(),isStreaming:!0}),m();break}case`tool.started`:{let t=X(n),r=t[t.length-1];r?.isStreaming&&Q(n,r.id,{isStreaming:!1}),Z(n,{id:C(),role:`tool`,content:``,timestamp:Date.now(),toolName:e.tool||e.name,toolPreview:e.preview,toolStatus:`running`}),m();break}case`tool.completed`:{let e=X(n).filter(e=>e.role===`tool`&&e.toolStatus===`running`);if(e.length>0){let t=e[e.length-1];Q(n,t.id,{toolStatus:`done`})}m();break}case`run.completed`:{let e=X(n),t=e[e.length-1];t?.isStreaming&&Q(n,t.id,{isStreaming:!1}),f(),$(n),n===i.value&&b(),O(n),V(n);break}case`run.failed`:{let t=X(n),r=t[t.length-1];r?.isStreaming?Q(n,r.id,{isStreaming:!1,content:e.error?`Error: ${e.error}`:`Run failed`,role:`system`}):Z(n,{id:C(),role:`system`,content:e.error?`Error: ${e.error}`:`Run failed`,timestamp:Date.now()}),t.forEach((e,n)=>{e.role===`tool`&&e.toolStatus===`running`&&(t[n]={...e,toolStatus:`error`})}),f(),n===i.value&&b(),O(n),V(n);break}}},()=>{let e=X(n),t=e[e.length-1];t?.isStreaming&&Q(n,t.id,{isStreaming:!1}),f(),$(n)},e=>{console.warn(`SSE connection dropped, resyncing from server:`,e.message);let t=X(n),r=t[t.length-1];r?.isStreaming&&Q(n,r.id,{isStreaming:!1}),t.forEach((e,n)=>{e.role===`tool`&&e.toolStatus===`running`&&(t[n]={...e,toolStatus:`done`})}),f(),n===i.value&&W(),M(n)&&H(n)});a.value.set(n,h)}catch(e){Z(n,{id:C(),role:`system`,content:`Error: ${e.message}`,timestamp:Date.now()})}}function te(){let e=i.value;if(!e)return;let t=a.value.get(e);if(t){t.abort();let n=X(e),r=n[n.length-1];r?.isStreaming&&Q(e,r.id,{isStreaming:!1}),a.value.delete(e),O(e),V(e)}}return typeof document<`u`&&document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`visible`&&i.value&&!o.value&&(W(),M(i.value)&&H(i.value))}),{sessions:n,activeSessionId:i,activeSession:_,messages:v,isStreaming:o,isRunActive:u,isLoadingSessions:s,isLoadingMessages:c,newChat:q,switchSession:K,switchSessionModel:J,deleteSession:Y,sendMessage:ee,stopStreaming:te,loadSessions:U,refreshActiveSession:W}});export{_ as a,v as i,b as n,y as r,V as t};
@@ -1 +0,0 @@
1
- import{F as e}from"./router-C-NNJUuf.js";import{Y as t}from"./browser-Djp4tkp3.js";import{s as n}from"./Modal-B2zvXTrk.js";function r(){let r=e(n,null);return r===null&&t(`use-dialog`,`No outer <n-dialog-provider /> founded.`),r}export{r as t};