hermes-web-ui 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -2
- package/dist/assets/ChatView-BCcUaLWg.css +1 -0
- package/dist/assets/ChatView-gu2Y-jpZ.js +16 -0
- package/dist/assets/Input-yD_s5hp8.js +234 -0
- package/dist/assets/JobsView-C1YU-sgU.js +123 -0
- package/dist/assets/LogsView-BSNn4Rmi.js +1 -0
- package/dist/assets/MarkdownRenderer-CrMwC_5d.css +1 -0
- package/dist/assets/MarkdownRenderer-DNP-kPA8.js +23 -0
- package/dist/assets/MemoryView-BsGBmN7h.js +5 -0
- package/dist/assets/MemoryView-CK0PemlP.css +1 -0
- package/dist/assets/Modal-CSHJclVU.js +232 -0
- package/dist/assets/Popover-blRIsd-8.js +117 -0
- package/dist/assets/Scrollbar-CYtpM7mc.js +77 -0
- package/dist/assets/Select-DTG-wtu5.js +454 -0
- package/dist/assets/SettingsView-BzBMKaLz.css +1 -0
- package/dist/assets/SettingsView-CppuSCZA.js +1129 -0
- package/dist/assets/SkillsView-86Z-HE_X.css +1 -0
- package/dist/assets/SkillsView-CciuH5wp.js +1 -0
- package/dist/assets/Spin-DWreY5m0.js +43 -0
- package/dist/assets/Suffix-B828Aenx.js +25 -0
- package/dist/assets/Tooltip-BCHslENT.js +1 -0
- package/dist/assets/Warning-Ba-wYRRB.js +1 -0
- package/dist/assets/_plugin-vue_export-helper-CV9qMihF.js +47 -0
- package/dist/assets/app-4gFjNUoo.js +1 -0
- package/dist/assets/chat-P2QaPvpZ.js +6 -0
- package/dist/assets/context-B74FvHiJ.js +109 -0
- package/dist/assets/index-Cx8mFF2D.js +307 -0
- package/dist/assets/index-DwVgwUIX.css +1 -0
- package/dist/assets/jobs-DVxci1LY.js +1 -0
- package/dist/assets/keysOf-Dvq9k1rv.js +1 -0
- package/dist/assets/omit-QZj0aLfU.js +1 -0
- package/dist/assets/pinia-tE0RcsDr.js +1 -0
- package/dist/assets/runtime-core.esm-bundler-yNW65ghW.js +1 -0
- package/dist/assets/skills-DgbQAgoB.js +1 -0
- package/dist/assets/use-message-Dz_GbH5h.js +1 -0
- package/dist/index.html +19 -8
- package/dist/server/index.js +2 -0
- package/dist/server/routes/filesystem.d.ts +2 -0
- package/dist/server/routes/filesystem.js +427 -0
- package/package.json +1 -1
- package/dist/assets/ChatView-BBqtEbUW.js +0 -38
- package/dist/assets/ChatView-DC6_7Uwg.css +0 -1
- package/dist/assets/JobsView-sQ8sqrxF.js +0 -356
- package/dist/assets/LogsView-DukKyFJt.js +0 -1
- package/dist/assets/Modal-oIDM0xXN.js +0 -232
- package/dist/assets/Spin-zWt--szS.js +0 -476
- package/dist/assets/Tooltip-BGvPCNBt.js +0 -1
- package/dist/assets/Warning-B9_T2nKK.js +0 -1
- package/dist/assets/_plugin-vue_export-helper-V8xgnEJh.js +0 -231
- package/dist/assets/chat-CGF6ipPC.js +0 -5
- package/dist/assets/fade-in-scale-up.cssr-DQYNrBys.js +0 -45
- package/dist/assets/index-BsLYVWlc.js +0 -307
- package/dist/assets/index-DDAe8BhJ.css +0 -1
- package/dist/assets/jobs-QHXENDTQ.js +0 -1
- package/dist/assets/use-message-42wmA96q.js +0 -117
- /package/dist/assets/{client-ZYGCrm9m.js → client-BKiVmpru.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.startsWith(`onUpdate:`),s=Object.assign,c=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},l=Object.prototype.hasOwnProperty,u=(e,t)=>l.call(e,t),d=Array.isArray,f=e=>x(e)===`[object Map]`,p=e=>x(e)===`[object Set]`,m=e=>x(e)===`[object Date]`,h=e=>typeof e==`function`,g=e=>typeof e==`string`,_=e=>typeof e==`symbol`,v=e=>typeof e==`object`&&!!e,y=e=>(v(e)||h(e))&&h(e.then)&&h(e.catch),b=Object.prototype.toString,x=e=>b.call(e),S=e=>x(e).slice(8,-1),C=e=>x(e)===`[object Object]`,w=e=>g(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,T=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ee=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},te=/-\w/g,E=ee(e=>e.replace(te,e=>e.slice(1).toUpperCase())),ne=/\B([A-Z])/g,D=ee(e=>e.replace(ne,`-$1`).toLowerCase()),re=ee(e=>e.charAt(0).toUpperCase()+e.slice(1)),ie=ee(e=>e?`on${re(e)}`:``),O=(e,t)=>!Object.is(e,t),ae=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},k=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},oe=e=>{let t=parseFloat(e);return isNaN(t)?e:t},se=e=>{let t=g(e)?Number(e):NaN;return isNaN(t)?e:t},ce,le=()=>ce||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ue(e){if(d(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=g(r)?me(r):ue(r);if(i)for(let e in i)t[e]=i[e]}return t}else if(g(e)||v(e))return e}var de=/;(?![^(]*\))/g,fe=/:([^]+)/,pe=/\/\*[^]*?\*\//g;function me(e){let t={};return e.replace(pe,``).split(de).forEach(e=>{if(e){let n=e.split(fe);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function he(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;n<e.length;n++){let r=he(e[n]);r&&(t+=r+` `)}else if(v(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var ge=`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`,_e=e(ge);ge+``;function ve(e){return!!e||e===``}function ye(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=be(e[r],t[r]);return n}function be(e,t){if(e===t)return!0;let n=m(e),r=m(t);if(n||r)return n&&r?e.getTime()===t.getTime():!1;if(n=_(e),r=_(t),n||r)return e===t;if(n=d(e),r=d(t),n||r)return n&&r?ye(e,t):!1;if(n=v(e),r=v(t),n||r){if(!n||!r||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e){let r=e.hasOwnProperty(n),i=t.hasOwnProperty(n);if(r&&!i||!r&&i||!be(e[n],t[n]))return!1}}return String(e)===String(t)}var xe=e=>!!(e&&e.__v_isRef===!0),Se=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?xe(e)?Se(e.value):JSON.stringify(e,Ce,2):String(e),Ce=(e,t)=>xe(t)?Ce(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[we(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>we(e))}:_(t)?we(t):v(t)&&!d(t)&&!C(t)?String(t):t,we=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e,A,Te=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=A,!e&&A&&(this.index=(A.scopes||=[]).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){let t=A;try{return A=this,e()}finally{A=t}}}on(){++this._on===1&&(this.prevScope=A,A=this)}off(){this._on>0&&--this._on===0&&(A=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(this.effects.length=0,t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){let e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0}}};function Ee(e){return new Te(e)}function De(){return A}function Oe(e,t=!1){A&&A.cleanups.push(e)}var j,ke=new WeakSet,Ae=class{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,A&&A.active&&A.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ke.has(this)&&(ke.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Pe(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Ke(this),Le(this);let e=j,t=M;j=this,M=!0;try{return this.fn()}finally{Re(this),j=e,M=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Ve(e);this.deps=this.depsTail=void 0,Ke(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ke.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ze(this)&&this.run()}get dirty(){return ze(this)}},je=0,Me,Ne;function Pe(e,t=!1){if(e.flags|=8,t){e.next=Ne,Ne=e;return}e.next=Me,Me=e}function Fe(){je++}function Ie(){if(--je>0)return;if(Ne){let e=Ne;for(Ne=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Me;){let t=Me;for(Me=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(t){e||=t}t=n}}if(e)throw e}function Le(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Re(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ve(r),He(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ze(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Be(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Be(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===qe)||(e.globalVersion=qe,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ze(e))))return;e.flags|=2;let t=e.dep,n=j,r=M;j=e,M=!0;try{Le(e);let n=e.fn(e._value);(t.version===0||O(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{j=n,M=r,Re(e),e.flags&=-3}}function Ve(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)Ve(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function He(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var M=!0,Ue=[];function We(){Ue.push(M),M=!1}function Ge(){let e=Ue.pop();M=e===void 0?!0:e}function Ke(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=j;j=void 0;try{t()}finally{j=e}}}var qe=0,Je=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ye=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!j||!M||j===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==j)t=this.activeLink=new Je(j,this),j.deps?(t.prevDep=j.depsTail,j.depsTail.nextDep=t,j.depsTail=t):j.deps=j.depsTail=t,Xe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=j.depsTail,t.nextDep=void 0,j.depsTail.nextDep=t,j.depsTail=t,j.deps===t&&(j.deps=e)}return t}trigger(e){this.version++,qe++,this.notify(e)}notify(e){Fe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Ie()}}};function Xe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Xe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Ze=new WeakMap,Qe=Symbol(``),$e=Symbol(``),et=Symbol(``);function N(e,t,n){if(M&&j){let t=Ze.get(e);t||Ze.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ye),r.map=t,r.key=n),r.track()}}function tt(e,t,n,r,i,a){let o=Ze.get(e);if(!o){qe++;return}let s=e=>{e&&e.trigger()};if(Fe(),t===`clear`)o.forEach(s);else{let i=d(e),a=i&&w(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===et||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(et)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Qe)),f(e)&&s(o.get($e)));break;case`delete`:i||(s(o.get(Qe)),f(e)&&s(o.get($e)));break;case`set`:f(e)&&s(o.get(Qe));break}}Ie()}function nt(e,t){let n=Ze.get(e);return n&&n.get(t)}function rt(e){let t=I(e);return t===e?t:(N(t,`iterate`,et),F(e)?t:t.map(L))}function it(e){return N(e=I(e),`iterate`,et),e}function P(e,t){return Vt(e)?Wt(Bt(e)?L(t):t):L(t)}var at={__proto__:null,[Symbol.iterator](){return ot(this,Symbol.iterator,e=>P(this,e))},concat(...e){return rt(this).concat(...e.map(e=>d(e)?rt(e):e))},entries(){return ot(this,`entries`,e=>(e[1]=P(this,e[1]),e))},every(e,t){return ct(this,`every`,e,t,void 0,arguments)},filter(e,t){return ct(this,`filter`,e,t,e=>e.map(e=>P(this,e)),arguments)},find(e,t){return ct(this,`find`,e,t,e=>P(this,e),arguments)},findIndex(e,t){return ct(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ct(this,`findLast`,e,t,e=>P(this,e),arguments)},findLastIndex(e,t){return ct(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ct(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ut(this,`includes`,e)},indexOf(...e){return ut(this,`indexOf`,e)},join(e){return rt(this).join(e)},lastIndexOf(...e){return ut(this,`lastIndexOf`,e)},map(e,t){return ct(this,`map`,e,t,void 0,arguments)},pop(){return dt(this,`pop`)},push(...e){return dt(this,`push`,e)},reduce(e,...t){return lt(this,`reduce`,e,t)},reduceRight(e,...t){return lt(this,`reduceRight`,e,t)},shift(){return dt(this,`shift`)},some(e,t){return ct(this,`some`,e,t,void 0,arguments)},splice(...e){return dt(this,`splice`,e)},toReversed(){return rt(this).toReversed()},toSorted(e){return rt(this).toSorted(e)},toSpliced(...e){return rt(this).toSpliced(...e)},unshift(...e){return dt(this,`unshift`,e)},values(){return ot(this,`values`,e=>P(this,e))}};function ot(e,t,n){let r=it(e),i=r[t]();return r!==e&&!F(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var st=Array.prototype;function ct(e,t,n,r,i,a){let o=it(e),s=o!==e&&!F(e),c=o[t];if(c!==st[t]){let t=c.apply(e,a);return s?L(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,P(e,t),r,e)}:n.length>2&&(l=function(t,r){return n.call(this,t,r,e)}));let u=c.call(o,l,r);return s&&i?i(u):u}function lt(e,t,n,r){let i=it(e),a=i!==e&&!F(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=P(e,t)),n.call(this,t,P(e,r),i,e)}):n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}));let c=i[t](o,...r);return s?P(e,c):c}function ut(e,t,n){let r=I(e);N(r,`iterate`,et);let i=r[t](...n);return(i===-1||i===!1)&&Ht(n[0])?(n[0]=I(n[0]),r[t](...n)):i}function dt(e,t,n=[]){We(),Fe();let r=I(e)[t].apply(e,n);return Ie(),Ge(),r}var ft=e(`__proto__,__v_isRef,__isVue`),pt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function mt(e){_(e)||(e=String(e));let t=I(this);return N(t,`has`,e),t.hasOwnProperty(e)}var ht=class{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if(t===`__v_skip`)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if(t===`__v_isReactive`)return!r;if(t===`__v_isReadonly`)return r;if(t===`__v_isShallow`)return i;if(t===`__v_raw`)return n===(r?i?Nt:Mt:i?jt:At).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=at[t]))return e;if(t===`hasOwnProperty`)return mt}let o=Reflect.get(e,t,R(e)?e:n);if((_(t)?pt.has(t):ft(t))||(r||N(e,`get`,t),i))return o;if(R(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Rt(e):e}return v(o)?r?Rt(o):It(o):o}},gt=class extends ht{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=d(e)&&w(t);if(!this._isShallow){let e=Vt(i);if(!F(n)&&!Vt(n)&&(i=I(i),n=I(n)),!a&&R(i)&&!R(n))return e||(i.value=n),!0}let o=a?Number(t)<e.length:u(e,t),s=Reflect.set(e,t,n,R(e)?e:r);return e===I(r)&&(o?O(n,i)&&tt(e,`set`,t,n,i):tt(e,`add`,t,n)),s}deleteProperty(e,t){let n=u(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&tt(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!_(t)||!pt.has(t))&&N(e,`has`,t),n}ownKeys(e){return N(e,`iterate`,d(e)?`length`:Qe),Reflect.ownKeys(e)}},_t=class extends ht{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},vt=new gt,yt=new _t,bt=new gt(!0),xt=e=>e,St=e=>Reflect.getPrototypeOf(e);function Ct(e,t,n){return function(...r){let i=this.__v_raw,a=I(i),o=f(a),c=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?xt:t?Wt:L;return!t&&N(a,`iterate`,l?$e:Qe),s(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function wt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Tt(e,t){let n={get(n){let r=this.__v_raw,i=I(r),a=I(n);e||(O(n,a)&&N(i,`get`,n),N(i,`get`,a));let{has:o}=St(i),s=t?xt:e?Wt:L;if(o.call(i,n))return s(r.get(n));if(o.call(i,a))return s(r.get(a));r!==i&&r.get(n)},get size(){let t=this.__v_raw;return!e&&N(I(t),`iterate`,Qe),t.size},has(t){let n=this.__v_raw,r=I(n),i=I(t);return e||(O(t,i)&&N(r,`has`,t),N(r,`has`,i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,a=i.__v_raw,o=I(a),s=t?xt:e?Wt:L;return!e&&N(o,`iterate`,Qe),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:wt(`add`),set:wt(`set`),delete:wt(`delete`),clear:wt(`clear`)}:{add(e){let n=I(this),r=St(n),i=I(e),a=!t&&!F(e)&&!Vt(e)?i:e;return r.has.call(n,a)||O(e,a)&&r.has.call(n,e)||O(i,a)&&r.has.call(n,i)||(n.add(a),tt(n,`add`,a,a)),this},set(e,n){!t&&!F(n)&&!Vt(n)&&(n=I(n));let r=I(this),{has:i,get:a}=St(r),o=i.call(r,e);o||=(e=I(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?O(n,s)&&tt(r,`set`,e,n,s):tt(r,`add`,e,n),this},delete(e){let t=I(this),{has:n,get:r}=St(t),i=n.call(t,e);i||=(e=I(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&tt(t,`delete`,e,void 0,a),o},clear(){let e=I(this),t=e.size!==0,n=e.clear();return t&&tt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Ct(r,e,t)}),n}function Et(e,t){let n=Tt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(u(n,r)&&r in t?n:t,r,i)}var Dt={get:Et(!1,!1)},Ot={get:Et(!1,!0)},kt={get:Et(!0,!1)},At=new WeakMap,jt=new WeakMap,Mt=new WeakMap,Nt=new WeakMap;function Pt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Ft(e){return e.__v_skip||!Object.isExtensible(e)?0:Pt(S(e))}function It(e){return Vt(e)?e:zt(e,!1,vt,Dt,At)}function Lt(e){return zt(e,!1,bt,Ot,jt)}function Rt(e){return zt(e,!0,yt,kt,Mt)}function zt(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let a=Ft(e);if(a===0)return e;let o=i.get(e);if(o)return o;let s=new Proxy(e,a===2?r:n);return i.set(e,s),s}function Bt(e){return Vt(e)?Bt(e.__v_raw):!!(e&&e.__v_isReactive)}function Vt(e){return!!(e&&e.__v_isReadonly)}function F(e){return!!(e&&e.__v_isShallow)}function Ht(e){return e?!!e.__v_raw:!1}function I(e){let t=e&&e.__v_raw;return t?I(t):e}function Ut(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&k(e,`__v_skip`,!0),e}var L=e=>v(e)?It(e):e,Wt=e=>v(e)?Rt(e):e;function R(e){return e?e.__v_isRef===!0:!1}function Gt(e){return qt(e,!1)}function Kt(e){return qt(e,!0)}function qt(e,t){return R(e)?e:new Jt(e,t)}var Jt=class{constructor(e,t){this.dep=new Ye,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:I(e),this._value=t?e:L(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||F(e)||Vt(e);e=n?e:I(e),O(e,t)&&(this._rawValue=e,this._value=n?e:L(e),this.dep.trigger())}};function Yt(e){return R(e)?e.value:e}var Xt={get:(e,t,n)=>t===`__v_raw`?e:Yt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return R(i)&&!R(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Zt(e){return Bt(e)?e:new Proxy(e,Xt)}function Qt(e){let t=d(e)?Array(e.length):{};for(let n in e)t[n]=nn(e,n);return t}var $t=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=_(t)?t:String(t),this._raw=I(e);let r=!0,i=e;if(!d(e)||_(this._key)||!w(this._key))do r=!Ht(i)||F(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=Yt(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&R(this._raw[this._key])){let t=this._object[this._key];if(R(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return nt(this._raw,this._key)}},en=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function tn(e,t,n){return R(e)?e:h(e)?new en(e):v(e)&&arguments.length>1?nn(e,t,n):Gt(e)}function nn(e,t,n){return new $t(e,t,n)}var rn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ye(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=qe-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&j!==this)return Pe(this,!0),!0}get value(){let e=this.dep.track();return Be(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function an(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new rn(r,i,n)}var on={},sn=new WeakMap,cn=void 0;function ln(e,t=!1,n=cn){if(n){let t=sn.get(n);t||sn.set(n,t=[]),t.push(e)}}function un(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:F(e)||o===!1||o===0?dn(e,1):dn(e),m,g,_,v,y=!1,b=!1;if(R(e)?(g=()=>e.value,y=F(e)):Bt(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Bt(e)||F(e)),g=()=>e.map(e=>{if(R(e))return e.value;if(Bt(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){We();try{_()}finally{Ge()}}let t=cn;cn=m;try{return f?f(e,3,[v]):e(v)}finally{cn=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>dn(e(),t)}let x=De(),S=()=>{m.stop(),x&&x.active&&c(x.effects,m)};if(s&&n){let e=n;n=(...t)=>{e(...t),S()}}let C=b?Array(e.length).fill(on):on,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(n){let e=m.run();if(o||y||(b?e.some((e,t)=>O(e,C[t])):O(e,C))){_&&_();let t=cn;cn=m;try{let t=[e,C===on?void 0:b&&C[0]===on?[]:C,v];C=e,f?f(n,3,t):n(...t)}finally{cn=t}}}else m.run()};return u&&u(w),m=new Ae(g),m.scheduler=l?()=>l(w,!1):w,v=e=>ln(e,!1,m),_=m.onStop=()=>{let e=sn.get(m);if(e){if(f)f(e,4);else for(let t of e)t();sn.delete(m)}},n?a?w(!0):C=m.run():l?l(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function dn(e,t=1/0,n){if(t<=0||!v(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,R(e))dn(e.value,t,n);else if(d(e))for(let r=0;r<e.length;r++)dn(e[r],t,n);else if(p(e)||f(e))e.forEach(e=>{dn(e,t,n)});else if(C(e)){for(let r in e)dn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&dn(e[r],t,n)}return e}function fn(e,t,n,r){try{return r?e(...r):e()}catch(e){pn(e,t,n)}}function z(e,t,n,r){if(h(e)){let i=fn(e,t,n,r);return i&&y(i)&&i.catch(e=>{pn(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a<e.length;a++)i.push(z(e[a],t,n,r));return i}}function pn(e,n,r,i=!0){let a=n?n.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:s}=n&&n.appContext.config||t;if(n){let t=n.parent,i=n.proxy,a=`https://vuejs.org/error-reference/#runtime-${r}`;for(;t;){let n=t.ec;if(n){for(let t=0;t<n.length;t++)if(n[t](e,i,a)===!1)return}t=t.parent}if(o){We(),fn(o,null,10,[e,i,a]),Ge();return}}mn(e,r,a,i,s)}function mn(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}var B=[],V=-1,hn=[],gn=null,_n=0,vn=Promise.resolve(),yn=null;function bn(e){let t=yn||vn;return e?t.then(this?e.bind(this):e):t}function xn(e){let t=V+1,n=B.length;for(;t<n;){let r=t+n>>>1,i=B[r],a=Dn(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function Sn(e){if(!(e.flags&1)){let t=Dn(e),n=B[B.length-1];!n||!(e.flags&2)&&t>=Dn(n)?B.push(e):B.splice(xn(t),0,e),e.flags|=1,Cn()}}function Cn(){yn||=vn.then(On)}function wn(e){d(e)?hn.push(...e):gn&&e.id===-1?gn.splice(_n+1,0,e):e.flags&1||(hn.push(e),e.flags|=1),Cn()}function Tn(e,t,n=V+1){for(;n<B.length;n++){let t=B[n];if(t&&t.flags&2){if(e&&t.id!==e.uid)continue;B.splice(n,1),n--,t.flags&4&&(t.flags&=-2),t(),t.flags&4||(t.flags&=-2)}}}function En(e){if(hn.length){let e=[...new Set(hn)].sort((e,t)=>Dn(e)-Dn(t));if(hn.length=0,gn){gn.push(...e);return}for(gn=e,_n=0;_n<gn.length;_n++){let e=gn[_n];e.flags&4&&(e.flags&=-2),e.flags&8||e(),e.flags&=-2}gn=null,_n=0}}var Dn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function On(e){try{for(V=0;V<B.length;V++){let e=B[V];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),fn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;V<B.length;V++){let e=B[V];e&&(e.flags&=-2)}V=-1,B.length=0,En(e),yn=null,(B.length||hn.length)&&On(e)}}var H=null,kn=null;function An(e){let t=H;return H=e,kn=e&&e.type.__scopeId||null,t}function jn(e,t=H,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&fa(-1);let i=An(t),a;try{a=e(...n)}finally{An(i),r._d&&fa(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function Mn(e,n){if(H===null)return e;let r=Ja(H),i=e.dirs||=[];for(let e=0;e<n.length;e++){let[a,o,s,c=t]=n[e];a&&(h(a)&&(a={mounted:a,updated:a}),a.deep&&dn(o),i.push({dir:a,instance:r,value:o,oldValue:void 0,arg:s,modifiers:c}))}return e}function Nn(e,t,n,r){let i=e.dirs,a=t&&t.dirs;for(let o=0;o<i.length;o++){let s=i[o];a&&(s.oldValue=a[o].value);let c=s.dir[r];c&&(We(),z(c,n,8,[e.el,s,e,t]),Ge())}}function Pn(e,t){if($){let n=$.provides,r=$.parent&&$.parent.provides;r===n&&(n=$.provides=Object.create(r)),n[e]=t}}function Fn(e,t,n=!1){let r=Na();if(r||_i){let i=_i?_i._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return n&&h(t)?t.call(r&&r.proxy):t}}function In(){return!!(Na()||_i)}var Ln=Symbol.for(`v-scx`),Rn=()=>Fn(Ln);function zn(e,t){return Vn(e,null,t)}function Bn(e,t,n){return Vn(e,t,n)}function Vn(e,n,i=t){let{immediate:a,deep:o,flush:c,once:l}=i,u=s({},i),d=n&&a||!n&&c!==`post`,f;if(za){if(c===`sync`){let e=Rn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=$;u.call=(e,t,n)=>z(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{K(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():Sn(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=un(e,n,u);return za&&(f?f.push(h):d&&h()),h}function Hn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?Un(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=Ia(this),s=Vn(i,a.bind(r),n);return o(),s}function Un(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}var Wn=new WeakMap,Gn=Symbol(`_vte`),Kn=e=>e.__isTeleport,qn=e=>e&&(e.disabled||e.disabled===``),Jn=e=>e&&(e.defer||e.defer===``),Yn=e=>typeof SVGElement<`u`&&e instanceof SVGElement,Xn=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,Zn=(e,t)=>{let n=e&&e.to;return g(n)?t?t(n):null:n},Qn={name:`Teleport`,__isTeleport:!0,process(e,t,n,r,i,a,o,s,c,l){let{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:h,createComment:g}}=l,_=qn(t.props),{dynamicChildren:v}=t,y=(e,t,n)=>{e.shapeFlag&16&&u(e.children,t,n,i,a,o,s,c)},b=(e=t)=>{let n=qn(e.props),r=e.target=Zn(e.props,m),a=rr(r,e,h,p);r&&(o!==`svg`&&Yn(r)?o=`svg`:o!==`mathml`&&Xn(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(y(e,r,a),nr(e,!1)))},x=e=>{let t=()=>{Wn.get(e)===t&&(Wn.delete(e),qn(e.props)&&(y(e,n,e.anchor),nr(e,!0)),b(e))};Wn.set(e,t),K(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),Jn(t.props)||a&&a.pendingBranch){x(t);return}_&&(y(t,n,i),nr(t,!0)),b()}else{t.el=e.el;let r=t.anchor=e.anchor,u=Wn.get(e);if(u){u.flags|=8,Wn.delete(e),x(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=qn(e.props),y=g?n:p,b=g?r:h;if(o===`svg`||Yn(p)?o=`svg`:(o===`mathml`||Xn(p))&&(o=`mathml`),v?(f(e.dynamicChildren,v,y,i,a,o,s),$i(e,t,!0)):c||d(e,t,y,b,i,a,o,s,!1),_)g?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):$n(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=Zn(t.props,m);e&&$n(t,e,null,l,0)}else g&&$n(t,p,h,l,1);nr(t,_)}},remove(e,t,n,{um:r,o:{remove:i}},a){let{shapeFlag:o,children:s,anchor:c,targetStart:l,targetAnchor:u,target:d,props:f}=e,p=a||!qn(f),m=Wn.get(e);if(m&&(m.flags|=8,Wn.delete(e),p=!1),d&&(i(l),i(u)),a&&i(c),o&16)for(let e=0;e<s.length;e++){let i=s[e];r(i,t,n,p,!!i.dynamicChildren)}},move:$n,hydrate:er};function $n(e,t,n,{o:{insert:r},m:i},a=2){a===0&&r(e.targetAnchor,t,n);let{el:o,anchor:s,shapeFlag:c,children:l,props:u}=e,d=a===2;if(d&&r(o,t,n),(!d||qn(u))&&c&16)for(let e=0;e<l.length;e++)i(l[e],t,n,2);d&&r(s,t,n)}function er(e,t,n,r,i,a,{o:{nextSibling:o,parentNode:s,querySelector:c,insert:l,createText:u}},d){function f(e,n){let r=n;for(;r;){if(r&&r.nodeType===8){if(r.data===`teleport start anchor`)t.targetStart=r;else if(r.data===`teleport anchor`){t.targetAnchor=r,e._lpa=t.targetAnchor&&o(t.targetAnchor);break}}r=o(r)}}function p(e,t){t.anchor=d(o(e),t,s(e),n,r,i,a)}let m=t.target=Zn(t.props,c),h=qn(t.props);if(m){let c=m._lpa||m.firstChild;t.shapeFlag&16&&(h?(p(e,t),f(m,c),t.targetAnchor||rr(m,t,u,l,s(e)===m?e:null)):(t.anchor=o(e),f(m,c),t.targetAnchor||rr(m,t,u,l),d(c&&o(c),t,m,n,r,i,a))),nr(t,h)}else h&&t.shapeFlag&16&&(p(e,t),t.targetStart=e,t.targetAnchor=o(e));return t.anchor&&o(t.anchor)}var tr=Qn;function nr(e,t){let n=e.ctx;if(n&&n.ut){let r,i;for(t?(r=e.el,i=e.anchor):(r=e.targetStart,i=e.targetAnchor);r&&r!==i;)r.nodeType===1&&r.setAttribute(`data-v-owner`,n.uid),r=r.nextSibling;n.ut()}}function rr(e,t,n,r,i=null){let a=t.targetStart=n(``),o=t.targetAnchor=n(``);return a[Gn]=o,e&&(r(a,e,i),r(o,e,i)),o}var U=Symbol(`_leaveCb`),ir=Symbol(`_enterCb`);function ar(){let e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Mr(()=>{e.isMounted=!0}),Fr(()=>{e.isUnmounting=!0}),e}var W=[Function,Array],or={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:W,onEnter:W,onAfterEnter:W,onEnterCancelled:W,onBeforeLeave:W,onLeave:W,onAfterLeave:W,onLeaveCancelled:W,onBeforeAppear:W,onAppear:W,onAfterAppear:W,onAppearCancelled:W},sr=e=>{let t=e.subTree;return t.component?sr(t.component):t},cr={name:`BaseTransition`,props:or,setup(e,{slots:t}){let n=Na(),r=ar();return()=>{let i=t.default&&gr(t.default(),!0);if(!i||!i.length)return;let a=lr(i),o=I(e),{mode:s}=o;if(r.isLeaving)return pr(a);let c=mr(a);if(!c)return pr(a);let l=fr(c,o,r,n,e=>l=e);c.type!==J&&hr(c,l);let u=n.subTree&&mr(n.subTree);if(u&&u.type!==J&&!_a(u,c)&&sr(n).type!==J){let e=fr(u,o,r,n);if(hr(u,e),s===`out-in`&&c.type!==J)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},pr(a);s===`in-out`&&c.type!==J?e.delayLeave=(e,t,n)=>{let i=dr(r,u);i[String(u.key)]=u,e[U]=()=>{t(),e[U]=void 0,delete l.delayedLeave,u=void 0},l.delayedLeave=()=>{n(),delete l.delayedLeave,u=void 0}}:u=void 0}else u&&=void 0;return a}}};function lr(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==J){t=n;break}}return t}var ur=cr;function dr(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function fr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:p,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=dr(n,e),C=(e,t)=>{e&&z(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),d(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:o,persisted:s,beforeEnter(t){let r=c;if(!n.isMounted)if(a)r=_||c;else return;t[U]&&t[U](!0);let i=S[x];i&&_a(e,i)&&i.el[U]&&i.el[U](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=f;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||f;else return;let s=!1;t[ir]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[ir]=void 0)};let c=t[ir].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[ir]&&t[ir](!0),n.isUnmounting)return r();C(p,[t]);let a=!1;t[U]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[U]=void 0,S[i]===e&&delete S[i])};let o=t[U].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=fr(e,t,n,r,i);return i&&i(a),a}};return T}function pr(e){if(wr(e))return e=Ca(e),e.children=null,e}function mr(e){if(!wr(e))return Kn(e.type)&&e.children?lr(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&h(n.default))return n.default()}}function hr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,hr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function gr(e,t=!1,n){let r=[],i=0;for(let a=0;a<e.length;a++){let o=e[a],s=n==null?o.key:String(n)+String(o.key==null?a:o.key);o.type===q?(o.patchFlag&128&&i++,r=r.concat(gr(o.children,t,s))):(t||o.type!==J)&&r.push(s==null?o:Ca(o,{key:s}))}if(i>1)for(let e=0;e<r.length;e++)r[e].patchFlag=-2;return r}function _r(e,t){return h(e)?s({name:e.name},t,{setup:e}):e}function vr(e){e.ids=[e.ids[0]+ e.ids[2]+++`-`,0,0]}function yr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var br=new WeakMap;function xr(e,n,r,a,o=!1){if(d(e)){e.forEach((e,t)=>xr(e,n&&(d(n)?n[t]:n),r,a,o));return}if(Cr(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&xr(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?Ja(a.component):a.el,l=o?null:s,{i:f,r:p}=e,m=n&&n.r,_=f.refs===t?f.refs={}:f.refs,v=f.setupState,y=I(v),b=v===t?i:e=>yr(_,e)?!1:u(y,e),x=(e,t)=>!(t&&yr(_,t));if(m!=null&&m!==p){if(Sr(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(R(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))fn(p,f,12,[l,_]);else{let t=g(p),n=R(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?v[p]:_[p]:x(p)||!e.k?p.value:_[e.k];if(o)d(n)&&c(n,s);else if(d(n))n.includes(s)||n.push(s);else if(t)_[p]=[s],b(p)&&(v[p]=_[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(_[e.k]=t)}}else t?(_[p]=l,b(p)&&(v[p]=l)):n&&(x(p,e.k)&&(p.value=l),e.k&&(_[e.k]=l))};if(l){let t=()=>{i(),br.delete(e)};t.id=-1,br.set(e,t),K(t,r)}else Sr(e),i()}}}function Sr(e){let t=br.get(e);t&&(t.flags|=8,br.delete(e))}le().requestIdleCallback,le().cancelIdleCallback;var Cr=e=>!!e.type.__asyncLoader,wr=e=>e.type.__isKeepAlive;function Tr(e,t){Dr(e,`a`,t)}function Er(e,t){Dr(e,`da`,t)}function Dr(e,t,n=$){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(kr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)wr(e.parent.vnode)&&Or(r,t,n,e),e=e.parent}}function Or(e,t,n,r){let i=kr(t,e,r,!0);Ir(()=>{c(r[t],i)},n)}function kr(e,t,n=$,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{We();let i=Ia(n),a=z(t,n,e,r);return i(),Ge(),a};return r?i.unshift(a):i.push(a),a}}var Ar=e=>(t,n=$)=>{(!za||e===`sp`)&&kr(e,(...e)=>t(...e),n)},jr=Ar(`bm`),Mr=Ar(`m`),Nr=Ar(`bu`),Pr=Ar(`u`),Fr=Ar(`bum`),Ir=Ar(`um`),Lr=Ar(`sp`),Rr=Ar(`rtg`),zr=Ar(`rtc`);function Br(e,t=$){kr(`ec`,e,t)}var Vr=`components`;function Hr(e,t){return Wr(Vr,e,!0,t)||e}var Ur=Symbol.for(`v-ndc`);function Wr(e,t,n=!0,r=!1){let i=H||$;if(i){let n=i.type;if(e===Vr){let e=Ya(n,!1);if(e&&(e===t||e===E(t)||e===re(E(t))))return n}let a=Gr(i[e]||n[e],t)||Gr(i.appContext[e],t);return!a&&r?n:a}}function Gr(e,t){return e&&(e[t]||e[E(t)]||e[re(E(t))])}function Kr(e,t,n,r){let i,a=n&&n[r],o=d(e);if(o||g(e)){let n=o&&Bt(e),r=!1,s=!1;n&&(r=!F(e),s=Vt(e),e=it(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?Wt(L(e[n])):L(e[n]):e[n],n,void 0,a&&a[n])}else if(typeof e==`number`){i=Array(e);for(let n=0;n<e;n++)i[n]=t(n+1,n,void 0,a&&a[n])}else if(v(e))if(e[Symbol.iterator])i=Array.from(e,(e,n)=>t(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r<o;r++){let o=n[r];i[r]=t(e[o],o,r,a&&a[r])}}else i=[];return n&&(n[r]=i),i}function qr(e,t,n={},r,i){if(H.ce||H.parent&&Cr(H.parent)&&H.parent.ce){let e=Object.keys(n).length>0;return t!==`default`&&(n.name=t),la(),ha(q,null,[X(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),la();let o=a&&Jr(a(n)),s=n.key||o&&o.key,c=ha(q,{key:(s&&!_(s)?s:`_${t}`)+(!o&&r?`_fb`:``)},o||(r?r():[]),o&&e._===1?64:-2);return!i&&c.scopeId&&(c.slotScopeIds=[c.scopeId+`-s`]),a&&a._c&&(a._d=!0),c}function Jr(e){return e.some(e=>ga(e)?!(e.type===J||e.type===q&&!Jr(e.children)):!0)?e:null}var Yr=e=>e?Ra(e)?Ja(e):Yr(e.parent):null,Xr=s(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Yr(e.parent),$root:e=>Yr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ai(e),$forceUpdate:e=>e.f||=()=>{Sn(e.update)},$nextTick:e=>e.n||=bn.bind(e.proxy),$watch:e=>Hn.bind(e)}),Zr=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),Qr={get({_:e},n){if(n===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(n[0]!==`$`){let e=s[n];if(e!==void 0)switch(e){case 1:return i[n];case 2:return a[n];case 4:return r[n];case 3:return o[n]}else if(Zr(i,n))return s[n]=1,i[n];else if(a!==t&&u(a,n))return s[n]=2,a[n];else if(u(o,n))return s[n]=3,o[n];else if(r!==t&&u(r,n))return s[n]=4,r[n];else ei&&(s[n]=0)}let d=Xr[n],f,p;if(d)return n===`$attrs`&&N(e.attrs,`get`,``),d(e);if((f=c.__cssModules)&&(f=f[n]))return f;if(r!==t&&u(r,n))return s[n]=4,r[n];if(p=l.config.globalProperties,u(p,n))return p[n]},set({_:e},n,r){let{data:i,setupState:a,ctx:o}=e;return Zr(a,n)?(a[n]=r,!0):i!==t&&u(i,n)?(i[n]=r,!0):u(e.props,n)||n[0]===`$`&&n.slice(1)in e?!1:(o[n]=r,!0)},has({_:{data:e,setupState:n,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==t&&c[0]!==`$`&&u(e,c)||Zr(n,c)||u(o,c)||u(i,c)||u(Xr,c)||u(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?u(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function $r(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var ei=!0;function ti(e){let t=ai(e),n=e.proxy,i=e.ctx;ei=!1,t.beforeCreate&&ri(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:f,beforeMount:p,mounted:m,beforeUpdate:g,updated:_,activated:y,deactivated:b,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:ee,renderTriggered:te,errorCaptured:E,serverPrefetch:ne,expose:D,inheritAttrs:re,components:ie,directives:O,filters:ae}=t;if(u&&ni(u,i,null),s)for(let e in s){let t=s[e];h(t)&&(i[e]=t.bind(n))}if(a){let t=a.call(n,n);v(t)&&(e.data=It(t))}if(ei=!0,o)for(let e in o){let t=o[e],a=Za({get:h(t)?t.bind(n,n):h(t.get)?t.get.bind(n,n):r,set:!h(t)&&h(t.set)?t.set.bind(n):r});Object.defineProperty(i,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)ii(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Pn(t,e[t])})}f&&ri(f,e,`c`);function k(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(k(jr,p),k(Mr,m),k(Nr,g),k(Pr,_),k(Tr,y),k(Er,b),k(Br,E),k(zr,ee),k(Rr,te),k(Fr,S),k(Ir,w),k(Lr,ne),d(D))if(D.length){let t=e.exposed||={};D.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===r&&(e.render=T),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),O&&(e.directives=O),ne&&vr(e)}function ni(e,t,n=r){d(e)&&(e=ui(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?Fn(r.from||n,r.default,!0):Fn(r.from||n):Fn(r),R(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function ri(e,t,n){z(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ii(e,t,n,r){let i=r.includes(`.`)?Un(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&Bn(i,n)}else if(h(e))Bn(i,e.bind(n));else if(v(e))if(d(e))e.forEach(e=>ii(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&Bn(i,r,e)}}function ai(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,s=a.get(t),c;return s?c=s:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(e=>oi(c,e,o,!0)),oi(c,t,o)),v(t)&&a.set(t,c),c}function oi(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&oi(e,a,n,!0),i&&i.forEach(t=>oi(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=si[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var si={data:ci,props:fi,emits:fi,methods:di,computed:di,beforeCreate:G,created:G,beforeMount:G,mounted:G,beforeUpdate:G,updated:G,beforeDestroy:G,beforeUnmount:G,destroyed:G,unmounted:G,activated:G,deactivated:G,errorCaptured:G,serverPrefetch:G,components:di,directives:di,watch:pi,provide:ci,inject:li};function ci(e,t){return t?e?function(){return s(h(e)?e.call(this,this):e,h(t)?t.call(this,this):t)}:t:e}function li(e,t){return di(ui(e),ui(t))}function ui(e){if(d(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function G(e,t){return e?[...new Set([].concat(e,t))]:t}function di(e,t){return e?s(Object.create(null),e,t):t}function fi(e,t){return e?d(e)&&d(t)?[...new Set([...e,...t])]:s(Object.create(null),$r(e),$r(t??{})):t}function pi(e,t){if(!e)return t;if(!t)return e;let n=s(Object.create(null),e);for(let r in t)n[r]=G(e[r],t[r]);return n}function mi(){return{app:null,config:{isNativeTag:i,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}var hi=0;function gi(e,t){return function(n,r=null){h(n)||(n=s({},n)),r!=null&&!v(r)&&(r=null);let i=mi(),a=new WeakSet,o=[],c=!1,l=i.app={_uid:hi++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:$a,get config(){return i.config},set config(e){},use(e,...t){return a.has(e)||(e&&h(e.install)?(a.add(e),e.install(l,...t)):h(e)&&(a.add(e),e(l,...t))),l},mixin(e){return i.mixins.includes(e)||i.mixins.push(e),l},component(e,t){return t?(i.components[e]=t,l):i.components[e]},directive(e,t){return t?(i.directives[e]=t,l):i.directives[e]},mount(a,o,s){if(!c){let u=l._ceVNode||X(n,r);return u.appContext=i,s===!0?s=`svg`:s===!1&&(s=void 0),o&&t?t(u,a):e(u,a,s),c=!0,l._container=a,a.__vue_app__=l,Ja(u.component)}},onUnmount(e){o.push(e)},unmount(){c&&(z(o,l._instance,16),e(null,l._container),delete l._container.__vue_app__)},provide(e,t){return i.provides[e]=t,l},runWithContext(e){let t=_i;_i=l;try{return e()}finally{_i=t}}};return l}}var _i=null,vi=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${E(t)}Modifiers`]||e[`${D(t)}Modifiers`];function yi(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&vi(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=r.map(oe)));let c,l=i[c=ie(n)]||i[c=ie(E(n))];!l&&o&&(l=i[c=ie(D(n))]),l&&z(l,e,6,a);let u=i[c+`Once`];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,z(u,e,6,a)}}var bi=new WeakMap;function xi(e,t,n=!1){let r=n?bi:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},c=!1;if(!h(e)){let r=e=>{let n=xi(e,t,!0);n&&(c=!0,s(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!c?(v(e)&&r.set(e,null),null):(d(a)?a.forEach(e=>o[e]=null):s(o,a),v(e)&&r.set(e,o),o)}function Si(e,t){return!e||!a(t)?!1:(t=t.slice(2).replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,D(t))||u(e,t))}function Ci(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:s,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=An(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Z(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Z(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:wi(c)}}catch(t){ca.length=0,pn(t,e,1),v=X(J)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=Ti(y,a)),b=Ca(b,y,!1,!0))}return n.dirs&&(b=Ca(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&hr(b,n.transition),v=b,An(_),v}var wi=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},Ti=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ei(e,t,n){let{props:r,children:i,component:a}=e,{props:o,children:s,patchFlag:c}=t,l=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Di(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(Oi(o,r,n)&&!Si(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?o?Di(r,o,l):!0:!!o;return!1}function Di(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;i<r.length;i++){let a=r[i];if(Oi(t,e,a)&&!Si(n,a))return!0}return!1}function Oi(e,t,n){let r=e[n],i=t[n];return n===`style`&&v(r)&&v(i)?!be(r,i):r!==i}function ki({vnode:e,parent:t,suspense:n},r){for(;t;){let n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=r,e=n),n===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}var Ai={},ji=()=>Object.create(Ai),Mi=e=>Object.getPrototypeOf(e)===Ai;function Ni(e,t,n,r=!1){let i={},a=ji();e.propsDefaults=Object.create(null),Fi(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Lt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function Pi(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=I(i),[c]=e.propsOptions,l=!1;if((r||o>0)&&!(o&16)){if(o&8){let n=e.vnode.dynamicProps;for(let r=0;r<n.length;r++){let o=n[r];if(Si(e.emitsOptions,o))continue;let d=t[o];if(c)if(u(a,o))d!==a[o]&&(a[o]=d,l=!0);else{let t=E(o);i[t]=Ii(c,s,t,d,e,!1)}else d!==a[o]&&(a[o]=d,l=!0)}}}else{Fi(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!u(t,a)&&((r=D(a))===a||!u(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=Ii(c,s,a,void 0,e,!0)):delete i[a]);if(a!==s)for(let e in a)(!t||!u(t,e))&&(delete a[e],l=!0)}l&&tt(e.attrs,`set`,``)}function Fi(e,n,r,i){let[a,o]=e.propsOptions,s=!1,c;if(n)for(let t in n){if(T(t))continue;let l=n[t],d;a&&u(a,d=E(t))?!o||!o.includes(d)?r[d]=l:(c||={})[d]=l:Si(e.emitsOptions,t)||(!(t in i)||l!==i[t])&&(i[t]=l,s=!0)}if(o){let n=I(r),i=c||t;for(let t=0;t<o.length;t++){let s=o[t];r[s]=Ii(a,n,s,i[s],e,!u(i,s))}}return s}function Ii(e,t,n,r,i,a){let o=e[n];if(o!=null){let e=u(o,`default`);if(e&&r===void 0){let e=o.default;if(o.type!==Function&&!o.skipFactory&&h(e)){let{propsDefaults:a}=i;if(n in a)r=a[n];else{let o=Ia(i);r=a[n]=e.call(null,t),o()}}else r=e;i.ce&&i.ce._setProp(n,r)}o[0]&&(a&&!e?r=!1:o[1]&&(r===``||r===D(n))&&(r=!0))}return r}var Li=new WeakMap;function Ri(e,r,i=!1){let a=i?Li:r.propsCache,o=a.get(e);if(o)return o;let c=e.props,l={},f=[],p=!1;if(!h(e)){let t=e=>{p=!0;let[t,n]=Ri(e,r,!0);s(l,t),n&&f.push(...n)};!i&&r.mixins.length&&r.mixins.forEach(t),e.extends&&t(e.extends),e.mixins&&e.mixins.forEach(t)}if(!c&&!p)return v(e)&&a.set(e,n),n;if(d(c))for(let e=0;e<c.length;e++){let n=E(c[e]);zi(n)&&(l[n]=t)}else if(c)for(let e in c){let t=E(e);if(zi(t)){let n=c[e],r=l[t]=d(n)||h(n)?{type:n}:s({},n),i=r.type,a=!1,o=!0;if(d(i))for(let e=0;e<i.length;++e){let t=i[e],n=h(t)&&t.name;if(n===`Boolean`){a=!0;break}else n===`String`&&(o=!1)}else a=h(i)&&i.name===`Boolean`;r[0]=a,r[1]=o,(a||u(r,`default`))&&f.push(t)}}let m=[l,f];return v(e)&&a.set(e,m),m}function zi(e){return e[0]!==`$`&&!T(e)}var Bi=e=>e===`_`||e===`_ctx`||e===`$stable`,Vi=e=>d(e)?e.map(Z):[Z(e)],Hi=(e,t,n)=>{if(t._n)return t;let r=jn((...e)=>Vi(t(...e)),n);return r._c=!1,r},Ui=(e,t,n)=>{let r=e._ctx;for(let n in e){if(Bi(n))continue;let i=e[n];if(h(i))t[n]=Hi(n,i,r);else if(i!=null){let e=Vi(i);t[n]=()=>e}}},Wi=(e,t)=>{let n=Vi(t);e.slots.default=()=>n},Gi=(e,t,n)=>{for(let r in t)(n||!Bi(r))&&(e[r]=t[r])},Ki=(e,t,n)=>{let r=e.slots=ji();if(e.vnode.shapeFlag&32){let e=t._;e?(Gi(r,t,n),n&&k(r,`_`,e,!0)):Ui(t,r)}else t&&Wi(e,t)},qi=(e,n,r)=>{let{vnode:i,slots:a}=e,o=!0,s=t;if(i.shapeFlag&32){let e=n._;e?r&&e===1?o=!1:Gi(a,n,r):(o=!n.$stable,Ui(n,a)),s=n}else n&&(Wi(e,n),s={default:1});if(o)for(let e in a)!Bi(e)&&s[e]==null&&delete a[e]},K=aa;function Ji(e){return Yi(e)}function Yi(e,i){let a=le();a.__VUE__=!0;let{insert:o,remove:s,patchProp:c,createElement:l,createText:u,createComment:d,setText:f,setElementText:p,parentNode:m,nextSibling:h,setScopeId:g=r,insertStaticContent:_}=e,v=(e,t,n,r=null,i=null,a=null,o=void 0,s=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!_a(e,t)&&(r=ye(e),me(e,i,a,!0),e=null),t.patchFlag===-2&&(c=!1,t.dynamicChildren=null);let{type:l,ref:u,shapeFlag:d}=t;switch(l){case oa:y(e,t,n,r);break;case J:b(e,t,n,r);break;case sa:e??x(t,n,r,o);break;case q:ie(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?O(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,Se)}u!=null&&i?xr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&xr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)ee(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ne(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},ee=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&E(e.children,d,null,r,i,Xi(e,a),s,u),_&&Nn(e,null,r,`created`),te(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!T(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Q(f,r,e)}_&&Nn(e,null,r,`beforeMount`);let v=Qi(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&K(()=>{try{f&&Q(f,r,e),v&&g.enter(d),_&&Nn(e,null,r,`mounted`)}finally{}},i)},te=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t<r.length;t++)g(e,r[t]);if(i){let n=i.subTree;if(t===n||ia(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;te(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},E=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++)v(null,e[l]=s?Da(e[l]):Z(e[l]),t,n,r,i,a,o,s)},ne=(e,n,r,i,a,o,s)=>{let l=n.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=n;u|=e.patchFlag&16;let m=e.props||t,h=n.props||t,g;if(r&&Zi(r,!1),(g=h.onVnodeBeforeUpdate)&&Q(g,r,n,e),f&&Nn(n,e,r,`beforeUpdate`),r&&Zi(r,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?D(e.dynamicChildren,d,l,r,i,Xi(n,a),o):s||ue(e,n,l,null,r,i,Xi(n,a),o,!1),u>0){if(u&16)re(l,m,h,r,a);else if(u&2&&m.class!==h.class&&c(l,`class`,null,h.class,a),u&4&&c(l,`style`,m.style,h.style,a),u&8){let e=n.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t],i=m[n],o=h[n];(o!==i||n===`value`)&&c(l,n,i,o,a,r)}}u&1&&e.children!==n.children&&p(l,n.children)}else !s&&d==null&&re(l,m,h,r,a);((g=h.onVnodeUpdated)||f)&&K(()=>{g&&Q(g,r,n,e),f&&Nn(n,e,r,`updated`)},i)},D=(e,t,n,r,i,a,o)=>{for(let s=0;s<t.length;s++){let c=e[s],l=t[s];v(c,l,c.el&&(c.type===q||!_a(c,l)||c.shapeFlag&198)?m(c.el):n,null,r,i,a,o,!0)}},re=(e,n,r,i,a)=>{if(n!==r){if(n!==t)for(let t in n)!T(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(T(t))continue;let o=r[t],s=n[t];o!==s&&t!==`value`&&c(e,t,s,o,a,i)}`value`in r&&c(e,`value`,n.value,r.value,a)}},ie=(e,t,n,r,i,a,s,c,l)=>{let d=t.el=e?e.el:u(``),f=t.anchor=e?e.anchor:u(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(c=c?c.concat(h):h),e==null?(o(d,n,r),o(f,n,r),E(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(D(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&$i(e,t,!0)):ue(e,t,n,f,i,a,s,c,l)},O=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):k(t,n,r,i,a,o,c):oe(e,t,c)},k=(e,t,n,r,i,a,o)=>{let s=e.component=Ma(e,r,i);if(wr(e)&&(s.ctx.renderer=Se),Ba(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,se,o),!e.el){let r=s.subTree=X(J);b(null,r,t,n),e.placeholder=r.el}}else se(s,e,t,n,i,a,o)},oe=(e,t,n)=>{let r=t.component=e.component;if(Ei(e,t,n))if(r.asyncDep&&!r.asyncResolved){ce(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},se=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=ta(e);if(n){t&&(t.el=c.el,ce(e,t,o)),n.asyncDep.then(()=>{K(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;Zi(e,!1),t?(t.el=c.el,ce(e,t,o)):t=c,n&&ae(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Q(d,s,t,c),Zi(e,!0);let f=Ci(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ye(p),e,i,a),t.el=f.el,u===null&&ki(e,f.el),r&&K(r,i),(d=t.props&&t.props.onVnodeUpdated)&&K(()=>Q(d,s,t,c),i)}else{let o,{el:s,props:c}=t,{bm:l,m:u,parent:d,root:f,type:p}=e,m=Cr(t);if(Zi(e,!1),l&&ae(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Q(o,d,t),Zi(e,!0),s&&we){let t=()=>{e.subTree=Ci(e),we(s,e.subTree,e,i,null)};m&&p.__asyncHydrate?p.__asyncHydrate(s,e,t):t()}else{f.ce&&f.ce._hasShadowRoot()&&f.ce._injectChildStyle(p,e.parent?e.parent.type:void 0);let o=e.subTree=Ci(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&K(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;K(()=>Q(o,d,e),i)}(t.shapeFlag&256||d&&Cr(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&K(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Ae(s);e.scope.off();let l=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>Sn(u),Zi(e,!0),l()},ce=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,Pi(e,t.props,r,n),qi(e,t.children,n),We(),Tn(e),Ge()},ue=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:f,shapeFlag:m}=t;if(f>0){if(f&128){fe(l,d,n,r,i,a,o,s,c);return}else if(f&256){de(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&ve(l,i,a),d!==l&&p(n,d)):u&16?m&16?fe(l,d,n,r,i,a,o,s,c):ve(l,i,a,!0):(u&8&&p(n,``),m&16&&E(d,n,r,i,a,o,s,c))},de=(e,t,r,i,a,o,s,c,l)=>{e||=n,t||=n;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;p<f;p++){let n=t[p]=l?Da(t[p]):Z(t[p]);v(e[p],n,r,null,a,o,s,c,l)}u>d?ve(e,a,o,!0,!1,f):E(t,r,i,a,o,s,c,l,f)},fe=(e,t,r,i,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let n=e[u],i=t[u]=l?Da(t[u]):Z(t[u]);if(_a(n,i))v(n,i,r,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let n=e[f],i=t[p]=l?Da(t[p]):Z(t[p]);if(_a(n,i))v(n,i,r,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,n=e<d?t[e].el:i;for(;u<=p;)v(null,t[u]=l?Da(t[u]):Z(t[u]),r,n,a,o,s,c,l),u++}}else if(u>p)for(;u<=f;)me(e[u],a,o,!0),u++;else{let m=u,h=u,g=new Map;for(u=h;u<=p;u++){let e=t[u]=l?Da(t[u]):Z(t[u]);e.key!=null&&g.set(e.key,u)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(u=0;u<b;u++)C[u]=0;for(u=m;u<=f;u++){let n=e[u];if(y>=b){me(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&_a(n,t[_])){i=_;break}i===void 0?me(n,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(n,t[i],r,null,a,o,s,c,l),y++)}let w=x?ea(C):n;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,n=t[e],f=t[e+1],p=e+1<d?f.el||ra(f):i;C[u]===0?v(null,n,r,p,a,o,s,c,l):x&&(_<0||u!==w[_]?pe(n,r,p,2):_--)}}},pe=(e,t,n,r,i=null)=>{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){pe(e.component.subTree,t,n,r);return}if(d&128){e.suspense.move(t,n,r);return}if(d&64){c.move(e,t,n,Se);return}if(c===q){o(a,t,n);for(let e=0;e<u.length;e++)pe(u[e],t,n,r);o(e.anchor,t,n);return}if(c===sa){S(e,t,n);return}if(r!==2&&d&1&&l)if(r===0)l.beforeEnter(a),o(a,t,n),K(()=>l.enter(a),i);else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{a._isLeaving&&a[U](!0),r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},me=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(We(),xr(s,null,n,e,!0),Ge()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Cr(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Q(_,t,e),u&6)_e(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Nn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,Se,r):l&&!l.hasOnce&&(a!==q||d>0&&d&64)?ve(l,t,n,!1,!0):(a===q&&d&384||!i&&u&16)&&ve(c,t,n),r&&he(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&K(()=>{_&&Q(_,t,e),h&&Nn(e,null,t,`unmounted`),v&&(e.el=null)},n)},he=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===q){ge(n,r);return}if(t===sa){C(e);return}let a=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(e.shapeFlag&1&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,a);r?r(e.el,a,o):o()}else a()},ge=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},_e=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;na(c),na(l),r&&ae(r),i.stop(),a&&(a.flags|=8,me(o,e,t,n)),s&&K(s,t),K(()=>{e.isUnmounted=!0},t)},ve=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)me(e[o],t,n,r,i)},ye=e=>{if(e.shapeFlag&6)return ye(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Gn];return n?h(n):t},be=!1,xe=(e,t,n)=>{let r;e==null?t._vnode&&(me(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,be||=(be=!0,Tn(r),En(),!1)},Se={p:v,um:me,m:pe,r:he,mt:k,mc:E,pc:ue,pbc:D,n:ye,o:e},Ce,we;return i&&([Ce,we]=i(Se)),{render:xe,hydrate:Ce,createApp:gi(xe,Ce)}}function Xi({type:e,props:t},n){return n===`svg`&&e===`foreignObject`||n===`mathml`&&e===`annotation-xml`&&t&&t.encoding&&t.encoding.includes(`html`)?void 0:n}function Zi({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Qi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function $i(e,t,n=!1){let r=e.children,i=t.children;if(d(r)&&d(i))for(let e=0;e<r.length;e++){let t=r[e],a=i[e];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[e]=Da(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&$i(t,a)),a.type===oa&&(a.patchFlag===-1&&(a=i[e]=Da(a)),a.el=t.el),a.type===J&&!a.el&&(a.el=t.el)}}function ea(e){let t=e.slice(),n=[0],r,i,a,o,s,c=e.length;for(r=0;r<c;r++){let c=e[r];if(c!==0){if(i=n[n.length-1],e[i]<c){t[r]=i,n.push(r);continue}for(a=0,o=n.length-1;a<o;)s=a+o>>1,e[n[s]]<c?a=s+1:o=s;c<e[n[a]]&&(a>0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,o=n[a-1];a-- >0;)n[a]=o,o=t[o];return n}function ta(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ta(t)}function na(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function ra(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?ra(t.subTree):null}var ia=e=>e.__isSuspense;function aa(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):wn(e)}var q=Symbol.for(`v-fgt`),oa=Symbol.for(`v-txt`),J=Symbol.for(`v-cmt`),sa=Symbol.for(`v-stc`),ca=[],Y=null;function la(e=!1){ca.push(Y=e?null:[])}function ua(){ca.pop(),Y=ca[ca.length-1]||null}var da=1;function fa(e,t=!1){da+=e,e<0&&Y&&t&&(Y.hasOnce=!0)}function pa(e){return e.dynamicChildren=da>0?Y||n:null,ua(),da>0&&Y&&Y.push(e),e}function ma(e,t,n,r,i,a){return pa(ba(e,t,n,r,i,a,!0))}function ha(e,t,n,r,i){return pa(X(e,t,n,r,i,!0))}function ga(e){return e?e.__v_isVNode===!0:!1}function _a(e,t){return e.type===t.type&&e.key===t.key}var va=({key:e})=>e??null,ya=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||R(e)||h(e)?{i:H,r:e,k:t,f:!!n}:e);function ba(e,t=null,n=null,r=0,i=null,a=e===q?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&va(t),ref:t&&ya(t),scopeId:kn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:H};return s?(Oa(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),da>0&&!o&&Y&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Y.push(c),c}var X=xa;function xa(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===Ur)&&(e=J),ga(e)){let r=Ca(e,t,!0);return n&&Oa(r,n),da>0&&!a&&Y&&(r.shapeFlag&6?Y[Y.indexOf(e)]=r:Y.push(r)),r.patchFlag=-2,r}if(Xa(e)&&(e=e.__vccOpts),t){t=Sa(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=he(e)),v(n)&&(Ht(n)&&!d(n)&&(n=s({},n)),t.style=ue(n))}let o=g(e)?1:ia(e)?128:Kn(e)?64:v(e)?4:h(e)?2:0;return ba(e,t,n,r,i,o,a,!0)}function Sa(e){return e?Ht(e)||Mi(e)?s({},e):e:null}function Ca(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?ka(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&va(l),ref:t&&t.ref?n&&a?d(a)?a.concat(ya(t)):[a,ya(t)]:ya(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==q?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ca(e.ssContent),ssFallback:e.ssFallback&&Ca(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&hr(u,c.clone(u)),u}function wa(e=` `,t=0){return X(oa,null,e,t)}function Ta(e,t){let n=X(sa,null,e);return n.staticCount=t,n}function Ea(e=``,t=!1){return t?(la(),ha(J,null,e)):X(J,null,e)}function Z(e){return e==null||typeof e==`boolean`?X(J):d(e)?X(q,null,e.slice()):ga(e)?Da(e):X(oa,null,String(e))}function Da(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ca(e)}function Oa(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(d(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),Oa(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!Mi(t)?t._ctx=H:r===3&&H&&(H.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else h(t)?(t={default:t,_ctx:H},n=32):(t=String(t),r&64?(n=16,t=[wa(t)]):n=8);e.children=t,e.shapeFlag|=n}function ka(...e){let t={};for(let n=0;n<e.length;n++){let r=e[n];for(let e in r)if(e===`class`)t.class!==r.class&&(t.class=he([t.class,r.class]));else if(e===`style`)t.style=ue([t.style,r.style]);else if(a(e)){let n=t[e],i=r[e];i&&n!==i&&!(d(n)&&n.includes(i))?t[e]=n?[].concat(n,i):i:i==null&&n==null&&!o(e)&&(t[e]=i)}else e!==``&&(t[e]=r[e])}return t}function Q(e,t,n,r=null){z(e,t,7,[n,r])}var Aa=mi(),ja=0;function Ma(e,n,r){let i=e.type,a=(n?n.appContext:e.appContext)||Aa,o={uid:ja++,vnode:e,type:i,parent:n,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Te(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:n?n.provides:Object.create(a.provides),ids:n?n.ids:[``,0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Ri(i,a),emitsOptions:xi(i,a),emit:null,emitted:null,propsDefaults:t,inheritAttrs:i.inheritAttrs,ctx:t,data:t,props:t,attrs:t,slots:t,refs:t,setupState:t,setupContext:null,suspense:r,suspenseId:r?r.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=n?n.root:o,o.emit=yi.bind(null,o),e.ce&&e.ce(o),o}var $=null,Na=()=>$||H,Pa,Fa;{let e=le(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};Pa=t(`__VUE_INSTANCE_SETTERS__`,e=>$=e),Fa=t(`__VUE_SSR_SETTERS__`,e=>za=e)}var Ia=e=>{let t=$;return Pa(e),e.scope.on(),()=>{e.scope.off(),Pa(t)}},La=()=>{$&&$.scope.off(),Pa(null)};function Ra(e){return e.vnode.shapeFlag&4}var za=!1;function Ba(e,t=!1,n=!1){t&&Fa(t);let{props:r,children:i}=e.vnode,a=Ra(e);Ni(e,r,a,t),Ki(e,i,n||t);let o=a?Va(e,t):void 0;return t&&Fa(!1),o}function Va(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qr);let{setup:r}=n;if(r){We();let n=e.setupContext=r.length>1?qa(e):null,i=Ia(e),a=fn(r,e,0,[e.props,n]),o=y(a);if(Ge(),i(),(o||e.sp)&&!Cr(e)&&vr(e),o){if(a.then(La,La),t)return a.then(n=>{Ha(e,n,t)}).catch(t=>{pn(t,e,0)});e.asyncDep=a}else Ha(e,a,t)}else Ga(e,t)}function Ha(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=Zt(t)),Ga(e,n)}var Ua,Wa;function Ga(e,t,n){let i=e.type;if(!e.render){if(!t&&Ua&&!i.render){let t=i.template||ai(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:o}=i;i.render=Ua(t,s(s({isCustomElement:n,delimiters:a},r),o))}}e.render=i.render||r,Wa&&Wa(e)}{let t=Ia(e);We();try{ti(e)}finally{Ge(),t()}}}var Ka={get(e,t){return N(e,`get`,``),e[t]}};function qa(e){return{attrs:new Proxy(e.attrs,Ka),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Ja(e){return e.exposed?e.exposeProxy||=new Proxy(Zt(Ut(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xr)return Xr[n](e)},has(e,t){return t in e||t in Xr}}):e.proxy}function Ya(e,t=!0){return h(e)?e.displayName||e.name:e.name||t&&e.__name}function Xa(e){return h(e)&&`__vccOpts`in e}var Za=(e,t)=>an(e,t,za);function Qa(e,t,n){try{fa(-1);let r=arguments.length;return r===2?v(t)&&!d(t)?ga(t)?X(e,null,[t]):X(e,t):X(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ga(n)&&(n=[n]),X(e,t,n))}finally{fa(1)}}var $a=`3.5.32`;export{It as $,Nr as A,fr as B,Fn as C,he as Ct,Tr as D,bn as E,la as F,jn as G,ar as H,Pn as I,De as J,Mn as K,Kr as L,Mr as M,Ir as N,jr as O,Pr as P,Oe as Q,qr as R,In as S,oe as St,ka as T,se as Tt,Bn as U,hr as V,zn as W,R as X,Bt as Y,Ut as Z,X as _,v as _t,tr as a,tn as at,gr as b,g as bt,Ca as c,E as ct,ha as d,D as dt,Rt as et,Ea as f,ve as ft,wa as g,o as gt,Ta as h,h as ht,q as i,I as it,Er as j,Fr as k,Za as l,re as lt,Ji as m,d as mt,or as n,Lt as nt,oa as o,Qt as ot,ma as p,ae as pt,Ee as q,J as r,Kt as rt,z as s,Yt as st,ur as t,Gt as tt,ba as u,s as ut,_r as v,a as vt,ga as w,Se as wt,Qa as x,_ as xt,Na as y,_e as yt,Hr as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./client-BKiVmpru.js";async function t(){return(await e(`/api/skills`)).categories}async function n(t){return(await e(`/api/skills/${t}`)).content}async function r(t,n){return(await e(`/api/skills/${t}/${n}/files`)).files}async function i(){return e(`/api/memory`)}async function a(t,n){await e(`/api/memory`,{method:`POST`,body:JSON.stringify({section:t,content:n})})}export{a,t as i,n,r,i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e}from"./runtime-core.esm-bundler-yNW65ghW.js";import{Z as t}from"./_plugin-vue_export-helper-CV9qMihF.js";import{t as n}from"./context-B74FvHiJ.js";function r(){let r=e(n,null);return r===null&&t(`use-message`,"No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),r}export{r as t};
|
package/dist/index.html
CHANGED
|
@@ -6,14 +6,25 @@
|
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
8
|
<title>Hermes</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
16
|
-
<link rel="
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-Cx8mFF2D.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-core.esm-bundler-yNW65ghW.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-CV9qMihF.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/Scrollbar-CYtpM7mc.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/Warning-Ba-wYRRB.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/pinia-tE0RcsDr.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/client-BKiVmpru.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/MarkdownRenderer-DNP-kPA8.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/app-4gFjNUoo.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/chat-P2QaPvpZ.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/Popover-blRIsd-8.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/Suffix-B828Aenx.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/context-B74FvHiJ.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/Select-DTG-wtu5.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/keysOf-Dvq9k1rv.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/Modal-CSHJclVU.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/omit-QZj0aLfU.js">
|
|
26
|
+
<link rel="stylesheet" crossorigin href="/assets/MarkdownRenderer-CrMwC_5d.css">
|
|
27
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DwVgwUIX.css">
|
|
17
28
|
</head>
|
|
18
29
|
|
|
19
30
|
<body>
|
package/dist/server/index.js
CHANGED
|
@@ -50,6 +50,7 @@ const upload_1 = require("./routes/upload");
|
|
|
50
50
|
const sessions_1 = require("./routes/sessions");
|
|
51
51
|
const webhook_1 = require("./routes/webhook");
|
|
52
52
|
const logs_1 = require("./routes/logs");
|
|
53
|
+
const filesystem_1 = require("./routes/filesystem");
|
|
53
54
|
const hermesCli = __importStar(require("./services/hermes-cli"));
|
|
54
55
|
const { restartGateway } = hermesCli;
|
|
55
56
|
async function bootstrap() {
|
|
@@ -63,6 +64,7 @@ async function bootstrap() {
|
|
|
63
64
|
app.use(logs_1.logRoutes.routes());
|
|
64
65
|
app.use(upload_1.uploadRoutes.routes());
|
|
65
66
|
app.use(sessions_1.sessionRoutes.routes());
|
|
67
|
+
app.use(filesystem_1.fsRoutes.routes());
|
|
66
68
|
// Health endpoint with version
|
|
67
69
|
app.use(async (ctx, next) => {
|
|
68
70
|
if (ctx.path === '/health') {
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fsRoutes = void 0;
|
|
7
|
+
const router_1 = __importDefault(require("@koa/router"));
|
|
8
|
+
const promises_1 = require("fs/promises");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const os_1 = require("os");
|
|
11
|
+
const authPath = (0, path_1.resolve)((0, os_1.homedir)(), '.hermes', 'auth.json');
|
|
12
|
+
async function loadAuthJson() {
|
|
13
|
+
try {
|
|
14
|
+
const raw = await (0, promises_1.readFile)(authPath, 'utf-8');
|
|
15
|
+
return JSON.parse(raw);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function fetchProviderModels(baseUrl, apiKey) {
|
|
22
|
+
try {
|
|
23
|
+
const url = baseUrl.replace(/\/+$/, '') + '/models';
|
|
24
|
+
const res = await fetch(url, {
|
|
25
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
26
|
+
signal: AbortSignal.timeout(8000),
|
|
27
|
+
});
|
|
28
|
+
if (!res.ok) {
|
|
29
|
+
console.error(`[available-models] ${baseUrl} returned ${res.status}`);
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
const data = await res.json();
|
|
33
|
+
if (!Array.isArray(data.data)) {
|
|
34
|
+
console.error(`[available-models] ${baseUrl} returned unexpected format`);
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
return data.data.map(m => m.id).sort();
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
console.error(`[available-models] ${baseUrl} failed: ${err.message}`);
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.fsRoutes = new router_1.default();
|
|
45
|
+
const hermesDir = (0, path_1.resolve)((0, os_1.homedir)(), '.hermes');
|
|
46
|
+
// --- Helpers ---
|
|
47
|
+
function extractDescription(content) {
|
|
48
|
+
// SKILL.md format: YAML frontmatter between --- delimiters, then markdown body
|
|
49
|
+
// Extract first non-empty, non-frontmatter, non-heading line as description
|
|
50
|
+
const lines = content.split('\n');
|
|
51
|
+
let inFrontmatter = false;
|
|
52
|
+
let bodyStarted = false;
|
|
53
|
+
for (const line of lines) {
|
|
54
|
+
if (!bodyStarted && line.trim() === '---') {
|
|
55
|
+
if (!inFrontmatter) {
|
|
56
|
+
inFrontmatter = true;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
inFrontmatter = false;
|
|
61
|
+
bodyStarted = true;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (inFrontmatter)
|
|
66
|
+
continue;
|
|
67
|
+
if (line.trim() === '')
|
|
68
|
+
continue;
|
|
69
|
+
if (line.startsWith('#'))
|
|
70
|
+
continue;
|
|
71
|
+
// Return first meaningful line, truncated
|
|
72
|
+
return line.trim().slice(0, 80);
|
|
73
|
+
}
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
async function safeReadFile(filePath) {
|
|
77
|
+
try {
|
|
78
|
+
return await (0, promises_1.readFile)(filePath, 'utf-8');
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function safeStat(filePath) {
|
|
85
|
+
try {
|
|
86
|
+
const s = await (0, promises_1.stat)(filePath);
|
|
87
|
+
return { mtime: Math.round(s.mtimeMs) };
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// --- Skills Routes ---
|
|
94
|
+
// List all skills grouped by category
|
|
95
|
+
exports.fsRoutes.get('/api/skills', async (ctx) => {
|
|
96
|
+
const skillsDir = (0, path_1.join)(hermesDir, 'skills');
|
|
97
|
+
try {
|
|
98
|
+
const entries = await (0, promises_1.readdir)(skillsDir, { withFileTypes: true });
|
|
99
|
+
const categories = [];
|
|
100
|
+
for (const entry of entries) {
|
|
101
|
+
if (!entry.isDirectory() || entry.name.startsWith('.'))
|
|
102
|
+
continue;
|
|
103
|
+
const catDir = (0, path_1.join)(skillsDir, entry.name);
|
|
104
|
+
const catDesc = await safeReadFile((0, path_1.join)(catDir, 'DESCRIPTION.md'));
|
|
105
|
+
const catDescription = catDesc ? catDesc.trim().split('\n')[0].replace(/^#+\s*/, '').slice(0, 100) : '';
|
|
106
|
+
const skillEntries = await (0, promises_1.readdir)(catDir, { withFileTypes: true });
|
|
107
|
+
const skills = [];
|
|
108
|
+
for (const se of skillEntries) {
|
|
109
|
+
if (!se.isDirectory())
|
|
110
|
+
continue;
|
|
111
|
+
const skillMd = await safeReadFile((0, path_1.join)(catDir, se.name, 'SKILL.md'));
|
|
112
|
+
if (skillMd) {
|
|
113
|
+
skills.push({
|
|
114
|
+
name: se.name,
|
|
115
|
+
description: extractDescription(skillMd),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (skills.length > 0) {
|
|
120
|
+
categories.push({ name: entry.name, description: catDescription, skills });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Sort categories alphabetically
|
|
124
|
+
categories.sort((a, b) => a.name.localeCompare(b.name));
|
|
125
|
+
for (const cat of categories) {
|
|
126
|
+
cat.skills.sort((a, b) => a.name.localeCompare(b.name));
|
|
127
|
+
}
|
|
128
|
+
ctx.body = { categories };
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
ctx.status = 500;
|
|
132
|
+
ctx.body = { error: `Failed to read skills directory: ${err.message}` };
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
// List files in a skill directory (for references/templates/scripts)
|
|
136
|
+
// Must be registered before the wildcard route
|
|
137
|
+
async function listFilesRecursive(dir, prefix) {
|
|
138
|
+
const result = [];
|
|
139
|
+
let entries;
|
|
140
|
+
try {
|
|
141
|
+
entries = await (0, promises_1.readdir)(dir, { withFileTypes: true });
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
for (const entry of entries) {
|
|
147
|
+
const relPath = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
148
|
+
if (entry.isDirectory()) {
|
|
149
|
+
result.push(...await listFilesRecursive((0, path_1.join)(dir, entry.name), relPath));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
result.push({ path: relPath, name: entry.name });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
exports.fsRoutes.get('/api/skills/:category/:skill/files', async (ctx) => {
|
|
158
|
+
const { category, skill } = ctx.params;
|
|
159
|
+
const skillDir = (0, path_1.join)(hermesDir, 'skills', category, skill);
|
|
160
|
+
try {
|
|
161
|
+
const allFiles = await listFilesRecursive(skillDir, '');
|
|
162
|
+
const files = allFiles.filter(f => f.path !== 'SKILL.md');
|
|
163
|
+
ctx.body = { files };
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
ctx.status = 500;
|
|
167
|
+
ctx.body = { error: err.message };
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
// Read a specific file under skills/
|
|
171
|
+
exports.fsRoutes.get('/api/skills/:path(.+)', async (ctx) => {
|
|
172
|
+
const filePath = ctx.params.path;
|
|
173
|
+
const fullPath = (0, path_1.resolve)((0, path_1.join)(hermesDir, 'skills', filePath));
|
|
174
|
+
// Security: ensure path stays within skills directory
|
|
175
|
+
if (!fullPath.startsWith((0, path_1.join)(hermesDir, 'skills'))) {
|
|
176
|
+
ctx.status = 403;
|
|
177
|
+
ctx.body = { error: 'Access denied' };
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const content = await safeReadFile(fullPath);
|
|
181
|
+
if (content === null) {
|
|
182
|
+
ctx.status = 404;
|
|
183
|
+
ctx.body = { error: 'File not found' };
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
ctx.body = { content };
|
|
187
|
+
});
|
|
188
|
+
// --- Memory Routes ---
|
|
189
|
+
// Read MEMORY.md and USER.md
|
|
190
|
+
exports.fsRoutes.get('/api/memory', async (ctx) => {
|
|
191
|
+
const memoryPath = (0, path_1.join)(hermesDir, 'memories', 'MEMORY.md');
|
|
192
|
+
const userPath = (0, path_1.join)(hermesDir, 'memories', 'USER.md');
|
|
193
|
+
const [memory, user, memoryStat, userStat] = await Promise.all([
|
|
194
|
+
safeReadFile(memoryPath),
|
|
195
|
+
safeReadFile(userPath),
|
|
196
|
+
safeStat(memoryPath),
|
|
197
|
+
safeStat(userPath),
|
|
198
|
+
]);
|
|
199
|
+
ctx.body = {
|
|
200
|
+
memory: memory || '',
|
|
201
|
+
user: user || '',
|
|
202
|
+
memory_mtime: memoryStat?.mtime || null,
|
|
203
|
+
user_mtime: userStat?.mtime || null,
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
// Write MEMORY.md or USER.md
|
|
207
|
+
exports.fsRoutes.post('/api/memory', async (ctx) => {
|
|
208
|
+
const { section, content } = ctx.request.body;
|
|
209
|
+
if (!section || !content) {
|
|
210
|
+
ctx.status = 400;
|
|
211
|
+
ctx.body = { error: 'Missing section or content' };
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
if (section !== 'memory' && section !== 'user') {
|
|
215
|
+
ctx.status = 400;
|
|
216
|
+
ctx.body = { error: 'Section must be "memory" or "user"' };
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const fileName = section === 'memory' ? 'MEMORY.md' : 'USER.md';
|
|
220
|
+
const filePath = (0, path_1.join)(hermesDir, 'memories', fileName);
|
|
221
|
+
try {
|
|
222
|
+
await (0, promises_1.writeFile)(filePath, content, 'utf-8');
|
|
223
|
+
ctx.body = { success: true };
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
ctx.status = 500;
|
|
227
|
+
ctx.body = { error: err.message };
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
// --- Config Model Routes ---
|
|
231
|
+
const configPath = (0, path_1.resolve)((0, os_1.homedir)(), '.hermes/config.yaml');
|
|
232
|
+
// Build model list from user's actual config.yaml configuration
|
|
233
|
+
// Only shows models the user has explicitly configured, not entire provider catalogs
|
|
234
|
+
function buildModelGroups(yaml) {
|
|
235
|
+
let defaultModel = '';
|
|
236
|
+
let defaultProvider = '';
|
|
237
|
+
const groups = [];
|
|
238
|
+
const allModelIds = new Set();
|
|
239
|
+
// 1. Extract current model from `model:` section
|
|
240
|
+
const defaultMatch = yaml.match(/^model:\s*\n\s+default:\s*(.+)/m);
|
|
241
|
+
if (defaultMatch)
|
|
242
|
+
defaultModel = defaultMatch[1].trim();
|
|
243
|
+
const providerMatch = yaml.match(/^model:\s*\n(?:.*\n)*?\s+provider:\s*(.+)/m);
|
|
244
|
+
if (providerMatch)
|
|
245
|
+
defaultProvider = providerMatch[1].trim();
|
|
246
|
+
// 2. Extract providers: section (user-defined endpoints)
|
|
247
|
+
const providersSection = yaml.match(/^providers:\s*\n((?: .+\n(?: .+\n)*)*)/m);
|
|
248
|
+
if (providersSection) {
|
|
249
|
+
const entries = providersSection[1].match(/^ (\S+):\s*\n((?: .+\n)*)/gm);
|
|
250
|
+
if (entries) {
|
|
251
|
+
for (const entry of entries) {
|
|
252
|
+
const nameMatch = entry.match(/^ (\S+):/);
|
|
253
|
+
const baseUrlMatch = entry.match(/base_url:\s*(.+)/);
|
|
254
|
+
const name = nameMatch?.[1]?.trim();
|
|
255
|
+
if (name) {
|
|
256
|
+
// Provider entry itself — mark as available but don't add model yet
|
|
257
|
+
// (it's an endpoint the user can switch to, models are fetched at runtime)
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// 3. Extract custom_providers: section
|
|
263
|
+
const customSection = yaml.match(/^custom_providers:\s*\n((?:\s*- .+\n(?: .+\n)*)*)/m);
|
|
264
|
+
if (customSection) {
|
|
265
|
+
const entryBlocks = customSection[1].match(/\s*- name:\s*(.+)\n((?: .+\n)*)/g);
|
|
266
|
+
if (entryBlocks) {
|
|
267
|
+
const customModels = [];
|
|
268
|
+
for (const block of entryBlocks) {
|
|
269
|
+
const cName = block.match(/name:\s*(.+)/)?.[1]?.trim();
|
|
270
|
+
const cModel = block.match(/model:\s*(.+)/)?.[1]?.trim();
|
|
271
|
+
if (cName && cModel) {
|
|
272
|
+
customModels.push({ id: cModel, label: `${cName}: ${cModel}` });
|
|
273
|
+
allModelIds.add(cModel);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
if (customModels.length > 0) {
|
|
277
|
+
groups.push({ provider: 'Custom', models: customModels });
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// 4. Add current default model (if not already in custom_providers)
|
|
282
|
+
if (defaultModel && !allModelIds.has(defaultModel)) {
|
|
283
|
+
groups.unshift({ provider: 'Current', models: [{ id: defaultModel, label: defaultModel }] });
|
|
284
|
+
}
|
|
285
|
+
return { default: defaultModel, groups };
|
|
286
|
+
}
|
|
287
|
+
// GET /api/available-models — fetch models from all credential pool endpoints
|
|
288
|
+
exports.fsRoutes.get('/api/available-models', async (ctx) => {
|
|
289
|
+
try {
|
|
290
|
+
const auth = await loadAuthJson();
|
|
291
|
+
const pool = auth?.credential_pool || {};
|
|
292
|
+
// Read current default model from config.yaml
|
|
293
|
+
const yaml = await safeReadFile(configPath) || '';
|
|
294
|
+
const defaultMatch = yaml.match(/^model:\s*\n\s+default:\s*(.+)/m);
|
|
295
|
+
const currentDefault = defaultMatch?.[1]?.trim() || '';
|
|
296
|
+
// Collect unique endpoints from credential pool
|
|
297
|
+
const endpoints = [];
|
|
298
|
+
const seenUrls = new Set();
|
|
299
|
+
for (const [providerKey, entries] of Object.entries(pool)) {
|
|
300
|
+
if (!Array.isArray(entries) || entries.length === 0)
|
|
301
|
+
continue;
|
|
302
|
+
const entry = entries.find(e => e.last_status !== 'exhausted') || entries[0];
|
|
303
|
+
if (!entry?.base_url || !entry?.access_token)
|
|
304
|
+
continue;
|
|
305
|
+
const baseUrl = entry.base_url.replace(/\/+$/, '');
|
|
306
|
+
if (seenUrls.has(baseUrl))
|
|
307
|
+
continue;
|
|
308
|
+
seenUrls.add(baseUrl);
|
|
309
|
+
endpoints.push({
|
|
310
|
+
key: providerKey,
|
|
311
|
+
label: providerKey.replace(/^custom:/, '') || entry.label || baseUrl,
|
|
312
|
+
base_url: baseUrl,
|
|
313
|
+
token: entry.access_token,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
// Fetch all provider models in parallel
|
|
317
|
+
const results = await Promise.allSettled(endpoints.map(async (ep) => {
|
|
318
|
+
const models = await fetchProviderModels(ep.base_url, ep.token);
|
|
319
|
+
return { ...ep, models };
|
|
320
|
+
}));
|
|
321
|
+
const groups = [];
|
|
322
|
+
for (const result of results) {
|
|
323
|
+
if (result.status === 'fulfilled' && result.value.models.length > 0) {
|
|
324
|
+
const { key, label, base_url, models } = result.value;
|
|
325
|
+
groups.push({ provider: key, label, base_url, models });
|
|
326
|
+
}
|
|
327
|
+
else if (result.status === 'rejected') {
|
|
328
|
+
console.error(`[available-models] Failed: ${result.reason?.message || result.reason}`);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
// Fallback: if no providers returned models, fall back to config.yaml parsing
|
|
332
|
+
if (groups.length === 0) {
|
|
333
|
+
const fallback = buildModelGroups(yaml);
|
|
334
|
+
ctx.body = fallback;
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
ctx.body = { default: currentDefault, groups };
|
|
338
|
+
}
|
|
339
|
+
catch (err) {
|
|
340
|
+
ctx.status = 500;
|
|
341
|
+
ctx.body = { error: err.message };
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
// GET /api/config/models
|
|
345
|
+
exports.fsRoutes.get('/api/config/models', async (ctx) => {
|
|
346
|
+
try {
|
|
347
|
+
const yaml = await safeReadFile(configPath);
|
|
348
|
+
ctx.body = yaml ? buildModelGroups(yaml) : { default: '', groups: [] };
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
ctx.status = 500;
|
|
352
|
+
ctx.body = { error: err.message };
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
// PUT /api/config/model
|
|
356
|
+
exports.fsRoutes.put('/api/config/model', async (ctx) => {
|
|
357
|
+
const { default: defaultModel, provider: reqProvider } = ctx.request.body;
|
|
358
|
+
if (!defaultModel) {
|
|
359
|
+
ctx.status = 400;
|
|
360
|
+
ctx.body = { error: 'Missing default model' };
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
try {
|
|
364
|
+
await (0, promises_1.copyFile)(configPath, configPath + '.bak');
|
|
365
|
+
let yaml = await safeReadFile(configPath) || '';
|
|
366
|
+
// Rebuild the model: block
|
|
367
|
+
const modelBlockMatch = yaml.match(/^(model:\s*\n(?: .+\n)*)/m);
|
|
368
|
+
if (modelBlockMatch) {
|
|
369
|
+
const lines = [`model:`, ` default: ${defaultModel}`];
|
|
370
|
+
if (reqProvider) {
|
|
371
|
+
// Provider from credential pool key (e.g. "zai" or "custom:subrouter.ai")
|
|
372
|
+
// Hermes resolves base_url/api_key from auth.json automatically
|
|
373
|
+
lines.push(` provider: ${reqProvider}`);
|
|
374
|
+
}
|
|
375
|
+
yaml = yaml.replace(modelBlockMatch[1], lines.join('\n') + '\n');
|
|
376
|
+
}
|
|
377
|
+
await (0, promises_1.writeFile)(configPath, yaml, 'utf-8');
|
|
378
|
+
ctx.body = { success: true };
|
|
379
|
+
}
|
|
380
|
+
catch (err) {
|
|
381
|
+
ctx.status = 500;
|
|
382
|
+
ctx.body = { error: err.message };
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
// POST /api/config/providers
|
|
386
|
+
exports.fsRoutes.post('/api/config/providers', async (ctx) => {
|
|
387
|
+
const { name, base_url, api_key, model } = ctx.request.body;
|
|
388
|
+
if (!name || !base_url || !model) {
|
|
389
|
+
ctx.status = 400;
|
|
390
|
+
ctx.body = { error: 'Missing name, base_url, or model' };
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
try {
|
|
394
|
+
await (0, promises_1.copyFile)(configPath, configPath + '.bak');
|
|
395
|
+
let yaml = await safeReadFile(configPath) || '';
|
|
396
|
+
const newEntry = `- name: ${name}\n base_url: ${base_url}\n api_key: ${api_key || ''}\n model: ${model}\n`;
|
|
397
|
+
if (/^custom_providers:/m.test(yaml)) {
|
|
398
|
+
yaml = yaml.replace(/^(custom_providers:)/m, `$1\n${newEntry}`);
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
yaml = yaml.trimEnd() + `\n\ncustom_providers:\n${newEntry}\n`;
|
|
402
|
+
}
|
|
403
|
+
await (0, promises_1.writeFile)(configPath, yaml, 'utf-8');
|
|
404
|
+
ctx.body = { success: true };
|
|
405
|
+
}
|
|
406
|
+
catch (err) {
|
|
407
|
+
ctx.status = 500;
|
|
408
|
+
ctx.body = { error: err.message };
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
// DELETE /api/config/providers/:name
|
|
412
|
+
exports.fsRoutes.delete('/api/config/providers/:name', async (ctx) => {
|
|
413
|
+
const name = ctx.params.name;
|
|
414
|
+
try {
|
|
415
|
+
await (0, promises_1.copyFile)(configPath, configPath + '.bak');
|
|
416
|
+
let yaml = await safeReadFile(configPath) || '';
|
|
417
|
+
const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
418
|
+
const blockRegex = new RegExp(` - name:\\s*${escaped}\\s*\\n(?: .+\\n)*`, 'g');
|
|
419
|
+
yaml = yaml.replace(blockRegex, '');
|
|
420
|
+
await (0, promises_1.writeFile)(configPath, yaml, 'utf-8');
|
|
421
|
+
ctx.body = { success: true };
|
|
422
|
+
}
|
|
423
|
+
catch (err) {
|
|
424
|
+
ctx.status = 500;
|
|
425
|
+
ctx.body = { error: err.message };
|
|
426
|
+
}
|
|
427
|
+
});
|