@mumulinya167/cc-web 1.0.0 → 1.0.1

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.
@@ -0,0 +1,55 @@
1
+ (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();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,ee=e(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),te=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ne=/-\w/g,T=te(e=>e.replace(ne,e=>e.slice(1).toUpperCase())),re=/\B([A-Z])/g,E=te(e=>e.replace(re,`-$1`).toLowerCase()),ie=te(e=>e.charAt(0).toUpperCase()+e.slice(1)),ae=te(e=>e?`on${ie(e)}`:``),D=(e,t)=>!Object.is(e,t),oe=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},O=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},se=e=>{let t=parseFloat(e);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 k(e){if(d(e)){let t={};for(let n=0;n<e.length;n++){let r=e[n],i=g(r)?pe(r):k(r);if(i)for(let e in i)t[e]=i[e]}return t}else if(g(e)||v(e))return e}var ue=/;(?![^(]*\))/g,de=/:([^]+)/,fe=/\/\*[^]*?\*\//g;function pe(e){let t={};return e.replace(fe,``).split(ue).forEach(e=>{if(e){let n=e.split(de);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function A(e){let t=``;if(g(e))t=e;else if(d(e))for(let n=0;n<e.length;n++){let r=A(e[n]);r&&(t+=r+` `)}else if(v(e))for(let n in e)e[n]&&(t+=n+` `);return t.trim()}var me=`itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`,he=e(me);me+``;function ge(e){return!!e||e===``}function _e(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&r<e.length;r++)n=ve(e[r],t[r]);return n}function ve(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?_e(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||!ve(e[n],t[n]))return!1}}return String(e)===String(t)}function ye(e,t){return e.findIndex(e=>ve(e,t))}var be=e=>!!(e&&e.__v_isRef===!0),j=e=>g(e)?e:e==null?``:d(e)||v(e)&&(e.toString===b||!h(e.toString))?be(e)?j(e.value):JSON.stringify(e,xe,2):String(e),xe=(e,t)=>be(t)?xe(e,t.value):f(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Se(t,r)+` =>`]=n,e),{})}:p(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Se(e))}:_(t)?Se(t):v(t)&&!d(t)&&!C(t)?String(t):t,Se=(e,t=``)=>_(e)?`Symbol(${e.description??t})`:e,M,Ce=class{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&M&&(M.active?(this.parent=M,this.index=(M.scopes||=[]).push(this)-1):(this._active=!1,this._warnOnRun=!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=M;try{return M=this,e()}finally{M=t}}}on(){++this._on===1&&(this.prevScope=M,M=this)}off(){if(this._on>0&&--this._on===0){if(M===this)M=this.prevScope;else{let e=M;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.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 we(){return M}var N,P=new WeakSet,Te=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,M&&(M.active?M.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,P.has(this)&&(P.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||ke(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,He(this),Me(this);let e=N,t=Re;N=this,Re=!0;try{return this.fn()}finally{Ne(this),N=e,Re=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)Ie(e);this.deps=this.depsTail=void 0,He(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?P.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Pe(this)&&this.run()}get dirty(){return Pe(this)}},Ee=0,De,Oe;function ke(e,t=!1){if(e.flags|=8,t){e.next=Oe,Oe=e;return}e.next=De,De=e}function Ae(){Ee++}function je(){if(--Ee>0)return;if(Oe){let e=Oe;for(Oe=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;De;){let t=De;for(De=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 Me(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ne(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ie(r),Le(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Pe(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Fe(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Fe(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ue)||(e.globalVersion=Ue,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Pe(e))))return;e.flags|=2;let t=e.dep,n=N,r=Re;N=e,Re=!0;try{Me(e);let n=e.fn(e._value);(t.version===0||D(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{N=n,Re=r,Ne(e),e.flags&=-3}}function Ie(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)Ie(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Le(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var Re=!0,ze=[];function Be(){ze.push(Re),Re=!1}function Ve(){let e=ze.pop();Re=e===void 0?!0:e}function He(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=N;N=void 0;try{t()}finally{N=e}}}var Ue=0,We=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}},Ge=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(!N||!Re||N===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==N)t=this.activeLink=new We(N,this),N.deps?(t.prevDep=N.depsTail,N.depsTail.nextDep=t,N.depsTail=t):N.deps=N.depsTail=t,Ke(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=N.depsTail,t.nextDep=void 0,N.depsTail.nextDep=t,N.depsTail=t,N.deps===t&&(N.deps=e)}return t}trigger(e){this.version++,Ue++,this.notify(e)}notify(e){Ae();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{je()}}};function Ke(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)Ke(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var qe=new WeakMap,Je=Symbol(``),Ye=Symbol(``),Xe=Symbol(``);function F(e,t,n){if(Re&&N){let t=qe.get(e);t||qe.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ge),r.map=t,r.key=n),r.track()}}function Ze(e,t,n,r,i,a){let o=qe.get(e);if(!o){Ue++;return}let s=e=>{e&&e.trigger()};if(Ae(),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===Xe||!_(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(Xe)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Je)),f(e)&&s(o.get(Ye)));break;case`delete`:i||(s(o.get(Je)),f(e)&&s(o.get(Ye)));break;case`set`:f(e)&&s(o.get(Je));break}}je()}function Qe(e){let t=I(e);return t===e?t:(F(t,`iterate`,Xe),Lt(e)?t:t.map(Bt))}function $e(e){return F(e=I(e),`iterate`,Xe),e}function et(e,t){return It(e)?Vt(Ft(e)?Bt(t):t):Bt(t)}var tt={__proto__:null,[Symbol.iterator](){return nt(this,Symbol.iterator,e=>et(this,e))},concat(...e){return Qe(this).concat(...e.map(e=>d(e)?Qe(e):e))},entries(){return nt(this,`entries`,e=>(e[1]=et(this,e[1]),e))},every(e,t){return it(this,`every`,e,t,void 0,arguments)},filter(e,t){return it(this,`filter`,e,t,e=>e.map(e=>et(this,e)),arguments)},find(e,t){return it(this,`find`,e,t,e=>et(this,e),arguments)},findIndex(e,t){return it(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return it(this,`findLast`,e,t,e=>et(this,e),arguments)},findLastIndex(e,t){return it(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return it(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ot(this,`includes`,e)},indexOf(...e){return ot(this,`indexOf`,e)},join(e){return Qe(this).join(e)},lastIndexOf(...e){return ot(this,`lastIndexOf`,e)},map(e,t){return it(this,`map`,e,t,void 0,arguments)},pop(){return st(this,`pop`)},push(...e){return st(this,`push`,e)},reduce(e,...t){return at(this,`reduce`,e,t)},reduceRight(e,...t){return at(this,`reduceRight`,e,t)},shift(){return st(this,`shift`)},some(e,t){return it(this,`some`,e,t,void 0,arguments)},splice(...e){return st(this,`splice`,e)},toReversed(){return Qe(this).toReversed()},toSorted(e){return Qe(this).toSorted(e)},toSpliced(...e){return Qe(this).toSpliced(...e)},unshift(...e){return st(this,`unshift`,e)},values(){return nt(this,`values`,e=>et(this,e))}};function nt(e,t,n){let r=$e(e),i=r[t]();return r!==e&&!Lt(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var rt=Array.prototype;function it(e,t,n,r,i,a){let o=$e(e),s=o!==e&&!Lt(e),c=o[t];if(c!==rt[t]){let t=c.apply(e,a);return s?Bt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,et(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 at(e,t,n,r){let i=$e(e),a=i!==e&&!Lt(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=et(e,t)),n.call(this,t,et(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?et(e,c):c}function ot(e,t,n){let r=I(e);F(r,`iterate`,Xe);let i=r[t](...n);return(i===-1||i===!1)&&Rt(n[0])?(n[0]=I(n[0]),r[t](...n)):i}function st(e,t,n=[]){Be(),Ae();let r=I(e)[t].apply(e,n);return je(),Ve(),r}var ct=e(`__proto__,__v_isRef,__isVue`),lt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(_));function ut(e){_(e)||(e=String(e));let t=I(this);return F(t,`has`,e),t.hasOwnProperty(e)}var dt=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?kt:Ot:i?Dt:Et).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=d(e);if(!r){let e;if(a&&(e=tt[t]))return e;if(t===`hasOwnProperty`)return ut}let o=Reflect.get(e,t,L(e)?e:n);if((_(t)?lt.has(t):ct(t))||(r||F(e,`get`,t),i))return o;if(L(o)){let e=a&&w(t)?o:o.value;return r&&v(e)?Nt(e):e}return v(o)?r?Nt(o):jt(o):o}},ft=class extends dt{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=It(i);if(!Lt(n)&&!It(n)&&(i=I(i),n=I(n)),!a&&L(i)&&!L(n))return e||(i.value=n),!0}let o=a?Number(t)<e.length:u(e,t),s=Reflect.set(e,t,n,L(e)?e:r);return e===I(r)&&(o?D(n,i)&&Ze(e,`set`,t,n,i):Ze(e,`add`,t,n)),s}deleteProperty(e,t){let n=u(e,t),r=e[t],i=Reflect.deleteProperty(e,t);return i&&n&&Ze(e,`delete`,t,void 0,r),i}has(e,t){let n=Reflect.has(e,t);return(!_(t)||!lt.has(t))&&F(e,`has`,t),n}ownKeys(e){return F(e,`iterate`,d(e)?`length`:Je),Reflect.ownKeys(e)}},pt=class extends dt{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}},mt=new ft,ht=new pt,gt=new ft(!0),_t=e=>e,vt=e=>Reflect.getPrototypeOf(e);function yt(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?_t:t?Vt:Bt;return!t&&F(a,`iterate`,l?Ye:Je),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 bt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function xt(e,t){let n={get(n){let r=this.__v_raw,i=I(r),a=I(n);e||(D(n,a)&&F(i,`get`,n),F(i,`get`,a));let{has:o}=vt(i),s=t?_t:e?Vt:Bt;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&&F(I(t),`iterate`,Je),t.size},has(t){let n=this.__v_raw,r=I(n),i=I(t);return e||(D(t,i)&&F(r,`has`,t),F(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?_t:e?Vt:Bt;return!e&&F(o,`iterate`,Je),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return s(n,e?{add:bt(`add`),set:bt(`set`),delete:bt(`delete`),clear:bt(`clear`)}:{add(e){let n=I(this),r=vt(n),i=I(e),a=!t&&!Lt(e)&&!It(e)?i:e;return r.has.call(n,a)||D(e,a)&&r.has.call(n,e)||D(i,a)&&r.has.call(n,i)||(n.add(a),Ze(n,`add`,a,a)),this},set(e,n){!t&&!Lt(n)&&!It(n)&&(n=I(n));let r=I(this),{has:i,get:a}=vt(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?D(n,s)&&Ze(r,`set`,e,n,s):Ze(r,`add`,e,n),this},delete(e){let t=I(this),{has:n,get:r}=vt(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&&Ze(t,`delete`,e,void 0,a),o},clear(){let e=I(this),t=e.size!==0,n=e.clear();return t&&Ze(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=yt(r,e,t)}),n}function St(e,t){let n=xt(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 Ct={get:St(!1,!1)},wt={get:St(!1,!0)},Tt={get:St(!0,!1)},Et=new WeakMap,Dt=new WeakMap,Ot=new WeakMap,kt=new WeakMap;function At(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function jt(e){return It(e)?e:Pt(e,!1,mt,Ct,Et)}function Mt(e){return Pt(e,!1,gt,wt,Dt)}function Nt(e){return Pt(e,!0,ht,Tt,Ot)}function Pt(e,t,n,r,i){if(!v(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let a=i.get(e);if(a)return a;let o=At(S(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Ft(e){return It(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function It(e){return!!(e&&e.__v_isReadonly)}function Lt(e){return!!(e&&e.__v_isShallow)}function Rt(e){return e?!!e.__v_raw:!1}function I(e){let t=e&&e.__v_raw;return t?I(t):e}function zt(e){return!u(e,`__v_skip`)&&Object.isExtensible(e)&&O(e,`__v_skip`,!0),e}var Bt=e=>v(e)?jt(e):e,Vt=e=>v(e)?Nt(e):e;function L(e){return e?e.__v_isRef===!0:!1}function R(e){return Ht(e,!1)}function Ht(e,t){return L(e)?e:new Ut(e,t)}var Ut=class{constructor(e,t){this.dep=new Ge,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:I(e),this._value=t?e:Bt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Lt(e)||It(e);e=n?e:I(e),D(e,t)&&(this._rawValue=e,this._value=n?e:Bt(e),this.dep.trigger())}};function Wt(e){return L(e)?e.value:e}var Gt={get:(e,t,n)=>t===`__v_raw`?e:Wt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return L(i)&&!L(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Kt(e){return Ft(e)?e:new Proxy(e,Gt)}var qt=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ge(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ue-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&N!==this)return ke(this,!0),!0}get value(){let e=this.dep.track();return Fe(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function Jt(e,t,n=!1){let r,i;return h(e)?r=e:(r=e.get,i=e.set),new qt(r,i,n)}var Yt={},Xt=new WeakMap,Zt=void 0;function Qt(e,t=!1,n=Zt){if(n){let t=Xt.get(n);t||Xt.set(n,t=[]),t.push(e)}}function $t(e,n,i=t){let{immediate:a,deep:o,once:s,scheduler:l,augmentJob:u,call:f}=i,p=e=>o?e:Lt(e)||o===!1||o===0?en(e,1):en(e),m,g,_,v,y=!1,b=!1;if(L(e)?(g=()=>e.value,y=Lt(e)):Ft(e)?(g=()=>p(e),y=!0):d(e)?(b=!0,y=e.some(e=>Ft(e)||Lt(e)),g=()=>e.map(e=>{if(L(e))return e.value;if(Ft(e))return p(e);if(h(e))return f?f(e,2):e()})):g=h(e)?n?f?()=>f(e,2):e:()=>{if(_){Be();try{_()}finally{Ve()}}let t=Zt;Zt=m;try{return f?f(e,3,[v]):e(v)}finally{Zt=t}}:r,n&&o){let e=g,t=o===!0?1/0:o;g=()=>en(e(),t)}let x=we(),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(Yt):Yt,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(n){let e=m.run();if(o||y||(b?e.some((e,t)=>D(e,C[t])):D(e,C))){_&&_();let t=Zt;Zt=m;try{let t=[e,C===Yt?void 0:b&&C[0]===Yt?[]:C,v];C=e,f?f(n,3,t):n(...t)}finally{Zt=t}}}else m.run()};return u&&u(w),m=new Te(g),m.scheduler=l?()=>l(w,!1):w,v=e=>Qt(e,!1,m),_=m.onStop=()=>{let e=Xt.get(m);if(e){if(f)f(e,4);else for(let t of e)t();Xt.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 en(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--,L(e))en(e.value,t,n);else if(d(e))for(let r=0;r<e.length;r++)en(e[r],t,n);else if(p(e)||f(e))e.forEach(e=>{en(e,t,n)});else if(C(e)){for(let r in e)en(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&en(e[r],t,n)}return e}function tn(e,t,n,r){try{return r?e(...r):e()}catch(e){rn(e,t,n)}}function nn(e,t,n,r){if(h(e)){let i=tn(e,t,n,r);return i&&y(i)&&i.catch(e=>{rn(e,t,n)}),i}if(d(e)){let i=[];for(let a=0;a<e.length;a++)i.push(nn(e[a],t,n,r));return i}}function rn(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){Be(),tn(o,null,10,[e,i,a]),Ve();return}}an(e,r,a,i,s)}function an(e,t,n,r=!0,i=!1){if(i)throw e;console.error(e)}var z=[],on=-1,sn=[],cn=null,ln=0,un=Promise.resolve(),dn=null;function fn(e){let t=dn||un;return e?t.then(this?e.bind(this):e):t}function pn(e){let t=on+1,n=z.length;for(;t<n;){let r=t+n>>>1,i=z[r],a=yn(i);a<e||a===e&&i.flags&2?t=r+1:n=r}return t}function mn(e){if(!(e.flags&1)){let t=yn(e),n=z[z.length-1];!n||!(e.flags&2)&&t>=yn(n)?z.push(e):z.splice(pn(t),0,e),e.flags|=1,hn()}}function hn(){dn||=un.then(bn)}function gn(e){d(e)?sn.push(...e):cn&&e.id===-1?cn.splice(ln+1,0,e):e.flags&1||(sn.push(e),e.flags|=1),hn()}function _n(e,t,n=on+1){for(;n<z.length;n++){let t=z[n];if(t&&t.flags&2){if(e&&t.id!==e.uid)continue;z.splice(n,1),n--,t.flags&4&&(t.flags&=-2),t(),t.flags&4||(t.flags&=-2)}}}function vn(e){if(sn.length){let e=[...new Set(sn)].sort((e,t)=>yn(e)-yn(t));if(sn.length=0,cn){cn.push(...e);return}for(cn=e,ln=0;ln<cn.length;ln++){let e=cn[ln];e.flags&4&&(e.flags&=-2),e.flags&8||e(),e.flags&=-2}cn=null,ln=0}}var yn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function bn(e){try{for(on=0;on<z.length;on++){let e=z[on];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),tn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;on<z.length;on++){let e=z[on];e&&(e.flags&=-2)}on=-1,z.length=0,vn(e),dn=null,(z.length||sn.length)&&bn(e)}}var xn=null,Sn=null;function Cn(e){let t=xn;return xn=e,Sn=e&&e.type.__scopeId||null,t}function wn(e,t=xn,n){if(!t||e._n)return e;let r=(...n)=>{r._d&&Di(-1);let i=Cn(t),a;try{a=e(...n)}finally{Cn(i),r._d&&Di(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function B(e,n){if(xn===null)return e;let r=la(xn),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&&en(o),i.push({dir:a,instance:r,value:o,oldValue:void 0,arg:s,modifiers:c}))}return e}function Tn(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&&(Be(),nn(c,n,8,[e.el,s,e,t]),Ve())}}function En(e,t){if(J){let n=J.provides,r=J.parent&&J.parent.provides;r===n&&(n=J.provides=Object.create(r)),n[e]=t}}function Dn(e,t,n=!1){let r=Ji();if(r||Ar){let i=Ar?Ar._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}}var On=Symbol.for(`v-scx`),kn=()=>Dn(On);function An(e,t,n){return jn(e,t,n)}function jn(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(ea){if(c===`sync`){let e=kn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=r,e.resume=r,e.pause=r,e}}let p=J;u.call=(e,t,n)=>nn(e,p,t,n);let m=!1;c===`post`?u.scheduler=e=>{si(e,p&&p.suspense)}:c!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():mn(e)}),u.augmentJob=e=>{n&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=$t(e,n,u);return ea&&(f?f.push(h):d&&h()),h}function Mn(e,t,n){let r=this.proxy,i=g(e)?e.includes(`.`)?Nn(r,e):()=>r[e]:e.bind(r,r),a;h(t)?a=t:(a=t.handler,n=t);let o=Zi(this),s=jn(i,a.bind(r),n);return o(),s}function Nn(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 Pn=Symbol(`_vte`),Fn=e=>e.__isTeleport,In=Symbol(`_leaveCb`);function Ln(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Ln(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 Rn(e){e.ids=[e.ids[0]+ e.ids[2]+++`-`,0,0]}function zn(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var Bn=new WeakMap;function Vn(e,n,r,a,o=!1){if(d(e)){e.forEach((e,t)=>Vn(e,n&&(d(n)?n[t]:n),r,a,o));return}if(Un(a)&&!o){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&Vn(e,n,r,a.component.subTree);return}let s=a.shapeFlag&4?la(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=>zn(_,e)?!1:u(y,e),x=(e,t)=>!(t&&zn(_,t));if(m!=null&&m!==p){if(Hn(n),g(m))_[m]=null,b(m)&&(v[m]=null);else if(L(m)){let e=n;x(m,e.k)&&(m.value=null),e.k&&(_[e.k]=null)}}if(h(p))tn(p,f,12,[l,_]);else{let t=g(p),n=L(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(),Bn.delete(e)};t.id=-1,Bn.set(e,t),si(t,r)}else Hn(e),i()}}}function Hn(e){let t=Bn.get(e);t&&(t.flags|=8,Bn.delete(e))}le().requestIdleCallback,le().cancelIdleCallback;var Un=e=>!!e.type.__asyncLoader,Wn=e=>e.type.__isKeepAlive;function Gn(e,t){qn(e,`a`,t)}function Kn(e,t){qn(e,`da`,t)}function qn(e,t,n=J){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Yn(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Wn(e.parent.vnode)&&Jn(r,t,n,e),e=e.parent}}function Jn(e,t,n,r){let i=Yn(t,e,r,!0);nr(()=>{c(r[t],i)},n)}function Yn(e,t,n=J,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{Be();let i=Zi(n),a=nn(t,n,e,r);return i(),Ve(),a};return r?i.unshift(a):i.push(a),a}}var Xn=e=>(t,n=J)=>{(!ea||e===`sp`)&&Yn(e,(...e)=>t(...e),n)},Zn=Xn(`bm`),Qn=Xn(`m`),$n=Xn(`bu`),er=Xn(`u`),tr=Xn(`bum`),nr=Xn(`um`),rr=Xn(`sp`),ir=Xn(`rtg`),ar=Xn(`rtc`);function or(e,t=J){Yn(`ec`,e,t)}var sr=Symbol.for(`v-ndc`);function V(e,t,n,r){let i,a=n&&n[r],o=d(e);if(o||g(e)){let n=o&&Ft(e),r=!1,s=!1;n&&(r=!Lt(e),s=It(e),e=$e(e)),i=Array(e.length);for(let n=0,o=e.length;n<o;n++)i[n]=t(r?s?Vt(Bt(e[n])):Bt(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}var cr=e=>e?$i(e)?la(e):cr(e.parent):null,lr=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=>cr(e.parent),$root:e=>cr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>vr(e),$forceUpdate:e=>e.f||=()=>{mn(e.update)},$nextTick:e=>e.n||=fn.bind(e.proxy),$watch:e=>Mn.bind(e)}),ur=(e,n)=>e!==t&&!e.__isScriptSetup&&u(e,n),dr={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(ur(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 pr&&(s[n]=0)}let d=lr[n],f,p;if(d)return n===`$attrs`&&F(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 ur(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)||ur(n,c)||u(o,c)||u(i,c)||u(lr,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 fr(e){return d(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var pr=!0;function mr(e){let t=vr(e),n=e.proxy,i=e.ctx;pr=!1,t.beforeCreate&&gr(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:ee,renderTracked:te,renderTriggered:ne,errorCaptured:T,serverPrefetch:re,expose:E,inheritAttrs:ie,components:ae,directives:D,filters:oe}=t;if(u&&hr(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=jt(t))}if(pr=!0,o)for(let e in o){let t=o[e],a=da({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)_r(c[e],i,n,e);if(l){let e=h(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{En(t,e[t])})}f&&gr(f,e,`c`);function O(e,t){d(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(O(Zn,p),O(Qn,m),O($n,g),O(er,_),O(Gn,y),O(Kn,b),O(or,T),O(ar,te),O(ir,ne),O(tr,S),O(nr,w),O(rr,re),d(E))if(E.length){let t=e.exposed||={};E.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};ee&&e.render===r&&(e.render=ee),ie!=null&&(e.inheritAttrs=ie),ae&&(e.components=ae),D&&(e.directives=D),re&&Rn(e)}function hr(e,t,n=r){d(e)&&(e=Cr(e));for(let n in e){let r=e[n],i;i=v(r)?`default`in r?Dn(r.from||n,r.default,!0):Dn(r.from||n):Dn(r),L(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function gr(e,t,n){nn(d(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function _r(e,t,n,r){let i=r.includes(`.`)?Nn(n,r):()=>n[r];if(g(e)){let n=t[e];h(n)&&An(i,n)}else if(h(e))An(i,e.bind(n));else if(v(e))if(d(e))e.forEach(e=>_r(e,t,n,r));else{let r=h(e.handler)?e.handler.bind(n):t[e.handler];h(r)&&An(i,r,e)}}function vr(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=>yr(c,e,o,!0)),yr(c,t,o)),v(t)&&a.set(t,c),c}function yr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&yr(e,a,n,!0),i&&i.forEach(t=>yr(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=br[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var br={data:xr,props:Tr,emits:Tr,methods:wr,computed:wr,beforeCreate:H,created:H,beforeMount:H,mounted:H,beforeUpdate:H,updated:H,beforeDestroy:H,beforeUnmount:H,destroyed:H,unmounted:H,activated:H,deactivated:H,errorCaptured:H,serverPrefetch:H,components:wr,directives:wr,watch:Er,provide:xr,inject:Sr};function xr(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 Sr(e,t){return wr(Cr(e),Cr(t))}function Cr(e){if(d(e)){let t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function H(e,t){return e?[...new Set([].concat(e,t))]:t}function wr(e,t){return e?s(Object.create(null),e,t):t}function Tr(e,t){return e?d(e)&&d(t)?[...new Set([...e,...t])]:s(Object.create(null),fr(e),fr(t??{})):t}function Er(e,t){if(!e)return t;if(!t)return e;let n=s(Object.create(null),e);for(let r in t)n[r]=H(e[r],t[r]);return n}function Dr(){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 Or=0;function kr(e,t){return function(n,r=null){h(n)||(n=s({},n)),r!=null&&!v(r)&&(r=null);let i=Dr(),a=new WeakSet,o=[],c=!1,l=i.app={_uid:Or++,_component:n,_props:r,_container:null,_context:i,_instance:null,version:fa,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||Pi(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,la(u.component)}},onUnmount(e){o.push(e)},unmount(){c&&(nn(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=Ar;Ar=l;try{return e()}finally{Ar=t}}};return l}}var Ar=null,jr=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${E(t)}Modifiers`];function Mr(e,n,...r){if(e.isUnmounted)return;let i=e.vnode.props||t,a=r,o=n.startsWith(`update:`),s=o&&jr(i,n.slice(7));s&&(s.trim&&(a=r.map(e=>g(e)?e.trim():e)),s.number&&(a=r.map(se)));let c,l=i[c=ae(n)]||i[c=ae(T(n))];!l&&o&&(l=i[c=ae(E(n))]),l&&nn(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,nn(u,e,6,a)}}var Nr=new WeakMap;function Pr(e,t,n=!1){let r=n?Nr: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=Pr(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 Fr(e,t){return!e||!a(t)?!1:(t=t.slice(2).replace(/Once$/,``),u(e,t[0].toLowerCase()+t.slice(1))||u(e,E(t))||u(e,t))}function Ir(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,_=Cn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Bi(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Bi(e.length>1?e(f,{attrs:c,slots:s,emit:l}):e(f,null)),y=t.props?c:Lr(c)}}catch(t){Ci.length=0,rn(t,e,1),v=Pi(xi)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(o)&&(y=Rr(y,a)),b=Li(b,y,!1,!0))}return n.dirs&&(b=Li(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Ln(b,n.transition),v=b,Cn(_),v}var Lr=e=>{let t;for(let n in e)(n===`class`||n===`style`||a(n))&&((t||={})[n]=e[n]);return t},Rr=(e,t)=>{let n={};for(let r in e)(!o(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function zr(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?Br(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;t<e.length;t++){let n=e[t];if(Vr(o,r,n)&&!Fr(l,n))return!0}}}else return(i||s)&&(!s||!s.$stable)?!0:r===o?!1:r?o?Br(r,o,l):!0:!!o;return!1}function Br(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(Vr(t,e,a)&&!Fr(n,a))return!0}return!1}function Vr(e,t,n){let r=e[n],i=t[n];return n===`style`&&v(r)&&v(i)?!ve(r,i):r!==i}function Hr({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 Ur={},Wr=()=>Object.create(Ur),Gr=e=>Object.getPrototypeOf(e)===Ur;function Kr(e,t,n,r=!1){let i={},a=Wr();e.propsDefaults=Object.create(null),Jr(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Mt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function qr(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(Fr(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=T(o);i[t]=Yr(c,s,t,d,e,!1)}else d!==a[o]&&(a[o]=d,l=!0)}}}else{Jr(e,t,i,a)&&(l=!0);let r;for(let a in s)(!t||!u(t,a)&&((r=E(a))===a||!u(t,r)))&&(c?n&&(n[a]!==void 0||n[r]!==void 0)&&(i[a]=Yr(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&&Ze(e.attrs,`set`,``)}function Jr(e,n,r,i){let[a,o]=e.propsOptions,s=!1,c;if(n)for(let t in n){if(ee(t))continue;let l=n[t],d;a&&u(a,d=T(t))?!o||!o.includes(d)?r[d]=l:(c||={})[d]=l:Fr(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]=Yr(a,n,s,i[s],e,!u(i,s))}}return s}function Yr(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=Zi(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===E(n))&&(r=!0))}return r}var Xr=new WeakMap;function Zr(e,r,i=!1){let a=i?Xr: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]=Zr(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=T(c[e]);Qr(n)&&(l[n]=t)}else if(c)for(let e in c){let t=T(e);if(Qr(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 Qr(e){return e[0]!==`$`&&!ee(e)}var $r=e=>e===`_`||e===`_ctx`||e===`$stable`,ei=e=>d(e)?e.map(Bi):[Bi(e)],ti=(e,t,n)=>{if(t._n)return t;let r=wn((...e)=>ei(t(...e)),n);return r._c=!1,r},ni=(e,t,n)=>{let r=e._ctx;for(let n in e){if($r(n))continue;let i=e[n];if(h(i))t[n]=ti(n,i,r);else if(i!=null){let e=ei(i);t[n]=()=>e}}},ri=(e,t)=>{let n=ei(t);e.slots.default=()=>n},ii=(e,t,n)=>{for(let r in t)(n||!$r(r))&&(e[r]=t[r])},ai=(e,t,n)=>{let r=e.slots=Wr();if(e.vnode.shapeFlag&32){let e=t._;e?(ii(r,t,n),n&&O(r,`_`,e,!0)):ni(t,r)}else t&&ri(e,t)},oi=(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:ii(a,n,r):(o=!n.$stable,ni(n,a)),s=n}else n&&(ri(e,n),s={default:1});if(o)for(let e in a)!$r(e)&&s[e]==null&&delete a[e]},si=yi;function ci(e){return li(e)}function li(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&&!ji(e,t)&&(r=ve(e),A(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 bi:y(e,t,n,r);break;case xi:b(e,t,n,r);break;case Si:e??x(t,n,r,o);break;case U:ae(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?D(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,j)}u!=null&&i?Vn(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Vn(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)te(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),re(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},te=(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&&T(e.children,d,null,r,i,ui(e,a),s,u),_&&Tn(e,null,r,`created`),ne(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ee(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&Wi(f,r,e)}_&&Tn(e,null,r,`beforeMount`);let v=fi(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&si(()=>{try{f&&Wi(f,r,e),v&&g.enter(d),_&&Tn(e,null,r,`mounted`)}finally{}},i)},ne=(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||vi(n.type)&&(n.ssContent===t||n.ssFallback===t)){let t=i.vnode;ne(e,t,t.scopeId,t.slotScopeIds,i.parent)}}},T=(e,t,n,r,i,a,o,s,c=0)=>{for(let l=c;l<e.length;l++)v(null,e[l]=s?Vi(e[l]):Bi(e[l]),t,n,r,i,a,o,s)},re=(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&&di(r,!1),(g=h.onVnodeBeforeUpdate)&&Wi(g,r,n,e),f&&Tn(n,e,r,`beforeUpdate`),r&&di(r,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?E(e.dynamicChildren,d,l,r,i,ui(n,a),o):s||ue(e,n,l,null,r,i,ui(n,a),o,!1),u>0){if(u&16)ie(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&&ie(l,m,h,r,a);((g=h.onVnodeUpdated)||f)&&si(()=>{g&&Wi(g,r,n,e),f&&Tn(n,e,r,`updated`)},i)},E=(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===U||!ji(c,l)||c.shapeFlag&198)?m(c.el):n,null,r,i,a,o,!0)}},ie=(e,n,r,i,a)=>{if(n!==r){if(n!==t)for(let t in n)!ee(t)&&!(t in r)&&c(e,t,n[t],null,a,i);for(let t in r){if(ee(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)}},ae=(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),T(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(E(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&pi(e,t,!0)):ue(e,t,n,f,i,a,s,c,l)},D=(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):O(t,n,r,i,a,o,c):se(e,t,c)},O=(e,t,n,r,i,a,o)=>{let s=e.component=qi(e,r,i);if(Wn(e)&&(s.ctx.renderer=j),ta(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,ce,o),!e.el){let r=s.subTree=Pi(xi);b(null,r,t,n),e.placeholder=r.el}}else ce(s,e,t,n,i,a,o)},se=(e,t,n)=>{let r=t.component=e.component;if(zr(e,t,n))if(r.asyncDep&&!r.asyncResolved){k(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},ce=(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=hi(e);if(n){t&&(t.el=c.el,k(e,t,o)),n.asyncDep.then(()=>{si(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;di(e,!1),t?(t.el=c.el,k(e,t,o)):t=c,n&&oe(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&Wi(d,s,t,c),di(e,!0);let f=Ir(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ve(p),e,i,a),t.el=f.el,u===null&&Hr(e,f.el),r&&si(r,i),(d=t.props&&t.props.onVnodeUpdated)&&si(()=>Wi(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=Un(t);if(di(e,!1),l&&oe(l),!m&&(o=c&&c.onVnodeBeforeMount)&&Wi(o,d,t),di(e,!0),s&&Se){let t=()=>{e.subTree=Ir(e),Se(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=Ir(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&si(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;si(()=>Wi(o,d,e),i)}(t.shapeFlag&256||d&&Un(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&si(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Te(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=()=>mn(u),di(e,!0),l()},k=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,qr(e,t.props,r,n),oi(e,t.children,n),Be(),_n(e),Ve()},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&&_e(l,i,a),d!==l&&p(n,d)):u&16?m&16?fe(l,d,n,r,i,a,o,s,c):_e(l,i,a,!0):(u&8&&p(n,``),m&16&&T(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?Vi(t[p]):Bi(t[p]);v(e[p],n,r,null,a,o,s,c,l)}u>d?_e(e,a,o,!0,!1,f):T(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?Vi(t[u]):Bi(t[u]);if(ji(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?Vi(t[p]):Bi(t[p]);if(ji(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?Vi(t[u]):Bi(t[u]),r,n,a,o,s,c,l),u++}}else if(u>p)for(;u<=f;)A(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?Vi(t[u]):Bi(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){A(n,a,o,!0);continue}let i;if(n.key!=null)i=g.get(n.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&ji(n,t[_])){i=_;break}i===void 0?A(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?mi(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||_i(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,j);return}if(c===U){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===Si){S(e,t,n);return}if(r!==2&&d&1&&l)if(r===0)l.persisted&&!a[In]?o(a,t,n):(l.beforeEnter(a),o(a,t,n),si(()=>l.enter(a),i));else{let{leave:r,delayLeave:i,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?s(a):o(a,t,n)},d=()=>{let e=a._isLeaving||!!a[In];a._isLeaving&&a[In](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},A=(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&&(Be(),Vn(s,null,n,e,!0),Ve()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Un(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&Wi(_,t,e),u&6)ge(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Tn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,j,r):l&&!l.hasOnce&&(a!==U||d>0&&d&64)?_e(l,t,n,!1,!0):(a===U&&d&384||!i&&u&16)&&_e(c,t,n),r&&me(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&si(()=>{_&&Wi(_,t,e),h&&Tn(e,null,t,`unmounted`),v&&(e.el=null)},n)},me=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===U){he(n,r);return}if(t===Si){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()},he=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},ge=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;gi(c),gi(l),r&&oe(r),i.stop(),a&&(a.flags|=8,A(o,e,t,n)),s&&si(s,t),si(()=>{e.isUnmounted=!0},t)},_e=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o<e.length;o++)A(e[o],t,n,r,i)},ve=e=>{if(e.shapeFlag&6)return ve(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Pn];return n?h(n):t},ye=!1,be=(e,t,n)=>{let r;e==null?t._vnode&&(A(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ye||=(ye=!0,_n(r),vn(),!1)},j={p:v,um:A,m:pe,r:me,mt:O,mc:T,pc:ue,pbc:E,n:ve,o:e},xe,Se;return i&&([xe,Se]=i(j)),{render:be,hydrate:xe,createApp:kr(be,xe)}}function ui({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 di({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function fi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function pi(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]=Vi(i[e]),a.el=t.el),!n&&a.patchFlag!==-2&&pi(t,a)),a.type===bi&&(a.patchFlag===-1&&(a=i[e]=Vi(a)),a.el=t.el),a.type===xi&&!a.el&&(a.el=t.el)}}function mi(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 hi(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:hi(t)}function gi(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function _i(e){if(e.placeholder)return e.placeholder;let t=e.component;return t?_i(t.subTree):null}var vi=e=>e.__isSuspense;function yi(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):gn(e)}var U=Symbol.for(`v-fgt`),bi=Symbol.for(`v-txt`),xi=Symbol.for(`v-cmt`),Si=Symbol.for(`v-stc`),Ci=[],wi=null;function W(e=!1){Ci.push(wi=e?null:[])}function Ti(){Ci.pop(),wi=Ci[Ci.length-1]||null}var Ei=1;function Di(e,t=!1){Ei+=e,e<0&&wi&&t&&(wi.hasOnce=!0)}function Oi(e){return e.dynamicChildren=Ei>0?wi||n:null,Ti(),Ei>0&&wi&&wi.push(e),e}function G(e,t,n,r,i,a){return Oi(K(e,t,n,r,i,a,!0))}function ki(e,t,n,r,i){return Oi(Pi(e,t,n,r,i,!0))}function Ai(e){return e?e.__v_isVNode===!0:!1}function ji(e,t){return e.type===t.type&&e.key===t.key}var Mi=({key:e})=>e??null,Ni=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:g(e)||L(e)||h(e)?{i:xn,r:e,k:t,f:!!n}:e);function K(e,t=null,n=null,r=0,i=null,a=e===U?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Mi(t),ref:t&&Ni(t),scopeId:Sn,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:xn};return s?(Hi(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=g(n)?8:16),Ei>0&&!o&&wi&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&wi.push(c),c}var Pi=Fi;function Fi(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===sr)&&(e=xi),Ai(e)){let r=Li(e,t,!0);return n&&Hi(r,n),Ei>0&&!a&&wi&&(r.shapeFlag&6?wi[wi.indexOf(e)]=r:wi.push(r)),r.patchFlag=-2,r}if(ua(e)&&(e=e.__vccOpts),t){t=Ii(t);let{class:e,style:n}=t;e&&!g(e)&&(t.class=A(e)),v(n)&&(Rt(n)&&!d(n)&&(n=s({},n)),t.style=k(n))}let o=g(e)?1:vi(e)?128:Fn(e)?64:v(e)?4:h(e)?2:0;return K(e,t,n,r,i,o,a,!0)}function Ii(e){return e?Rt(e)||Gr(e)?s({},e):e:null}function Li(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?Ui(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Mi(l),ref:t&&t.ref?n&&a?d(a)?a.concat(Ni(t)):[a,Ni(t)]:Ni(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!==U?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&&Li(e.ssContent),ssFallback:e.ssFallback&&Li(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Ln(u,c.clone(u)),u}function Ri(e=` `,t=0){return Pi(bi,null,e,t)}function zi(e,t){let n=Pi(Si,null,e);return n.staticCount=t,n}function q(e=``,t=!1){return t?(W(),ki(xi,null,e)):Pi(xi,null,e)}function Bi(e){return e==null||typeof e==`boolean`?Pi(xi):d(e)?Pi(U,null,e.slice()):Ai(e)?Vi(e):Pi(bi,null,String(e))}function Vi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Li(e)}function Hi(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),Hi(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!Gr(t)?t._ctx=xn:r===3&&xn&&(xn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else h(t)?(t={default:t,_ctx:xn},n=32):(t=String(t),r&64?(n=16,t=[Ri(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ui(...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=A([t.class,r.class]));else if(e===`style`)t.style=k([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 Wi(e,t,n,r=null){nn(e,t,7,[n,r])}var Gi=Dr(),Ki=0;function qi(e,n,r){let i=e.type,a=(n?n.appContext:e.appContext)||Gi,o={uid:Ki++,vnode:e,type:i,parent:n,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Ce(!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:Zr(i,a),emitsOptions:Pr(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=Mr.bind(null,o),e.ce&&e.ce(o),o}var J=null,Ji=()=>J||xn,Yi,Xi;{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)}};Yi=t(`__VUE_INSTANCE_SETTERS__`,e=>J=e),Xi=t(`__VUE_SSR_SETTERS__`,e=>ea=e)}var Zi=e=>{let t=J;return Yi(e),e.scope.on(),()=>{e.scope.off(),Yi(t)}},Qi=()=>{J&&J.scope.off(),Yi(null)};function $i(e){return e.vnode.shapeFlag&4}var ea=!1;function ta(e,t=!1,n=!1){t&&Xi(t);let{props:r,children:i}=e.vnode,a=$i(e);Kr(e,r,a,t),ai(e,i,n||t);let o=a?na(e,t):void 0;return t&&Xi(!1),o}function na(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,dr);let{setup:r}=n;if(r){Be();let n=e.setupContext=r.length>1?ca(e):null,i=Zi(e),a=tn(r,e,0,[e.props,n]),o=y(a);if(Ve(),i(),(o||e.sp)&&!Un(e)&&Rn(e),o){if(a.then(Qi,Qi),t)return a.then(n=>{ra(e,n,t)}).catch(t=>{rn(t,e,0)});e.asyncDep=a}else ra(e,a,t)}else oa(e,t)}function ra(e,t,n){h(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:v(t)&&(e.setupState=Kt(t)),oa(e,n)}var ia,aa;function oa(e,t,n){let i=e.type;if(!e.render){if(!t&&ia&&!i.render){let t=i.template||vr(e).template;if(t){let{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:o}=i;i.render=ia(t,s(s({isCustomElement:n,delimiters:a},r),o))}}e.render=i.render||r,aa&&aa(e)}{let t=Zi(e);Be();try{mr(e)}finally{Ve(),t()}}}var sa={get(e,t){return F(e,`get`,``),e[t]}};function ca(e){return{attrs:new Proxy(e.attrs,sa),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function la(e){return e.exposed?e.exposeProxy||=new Proxy(Kt(zt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in lr)return lr[n](e)},has(e,t){return t in e||t in lr}}):e.proxy}function ua(e){return h(e)&&`__vccOpts`in e}var da=(e,t)=>Jt(e,t,ea),fa=`3.5.35`,pa=void 0,ma=typeof window<`u`&&window.trustedTypes;if(ma)try{pa=ma.createPolicy(`vue`,{createHTML:e=>e})}catch{}var ha=pa?e=>pa.createHTML(e):e=>e,ga=`http://www.w3.org/2000/svg`,_a=`http://www.w3.org/1998/Math/MathML`,va=typeof document<`u`?document:null,ya=va&&va.createElement(`template`),ba={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?va.createElementNS(ga,e):t===`mathml`?va.createElementNS(_a,e):n?va.createElement(e,{is:n}):va.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>va.createTextNode(e),createComment:e=>va.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>va.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{ya.innerHTML=ha(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=ya.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xa=Symbol(`_vtc`);function Sa(e,t,n){let r=e[xa];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Ca=Symbol(`_vod`),wa=Symbol(`_vsh`),Ta=Symbol(``),Ea=/(?:^|;)\s*display\s*:/;function Da(e,t,n){let r=e.style,i=g(n),a=!1;if(n&&!i){if(t)if(g(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??ka(r,t,``)}else for(let e in t)n[e]??ka(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?ka(r,i,``):Na(e,i,!g(t)&&t?t[i]:void 0,o)||ka(r,i,o)}}else if(i){if(t!==n){let e=r[Ta];e&&(n+=`;`+e),r.cssText=n,a=Ea.test(n)}}else t&&e.removeAttribute(`style`);Ca in e&&(e[Ca]=a?r.display:``,e[wa]&&(r.display=`none`))}var Oa=/\s*!important$/;function ka(e,t,n){if(d(n))n.forEach(n=>ka(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Ma(e,t);Oa.test(n)?e.setProperty(E(r),n.replace(Oa,``),`important`):e[r]=n}}var Aa=[`Webkit`,`Moz`,`ms`],ja={};function Ma(e,t){let n=ja[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return ja[t]=r;r=ie(r);for(let n=0;n<Aa.length;n++){let i=Aa[n]+r;if(i in e)return ja[t]=i}return t}function Na(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&g(r)&&n===r}var Pa=`http://www.w3.org/1999/xlink`;function Fa(e,t,n,r,i,a=he(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Pa,t.slice(6,t.length)):e.setAttributeNS(Pa,t,n):n==null||a&&!ge(n)?e.removeAttribute(t):e.setAttribute(t,a?``:_(n)?String(n):n)}function Ia(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?ha(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=ge(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function La(e,t,n,r){e.addEventListener(t,n,r)}function Ra(e,t,n,r){e.removeEventListener(t,n,r)}var za=Symbol(`_vei`);function Ba(e,t,n,r,i=null){let a=e[za]||(e[za]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=Ha(t);r?La(e,n,a[t]=Ka(r,i),s):o&&(Ra(e,n,o,s),a[t]=void 0)}}var Va=/(?:Once|Passive|Capture)$/;function Ha(e){let t;if(Va.test(e)){t={};let n;for(;n=e.match(Va);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===`:`?e.slice(3):E(e.slice(2)),t]}var Ua=0,Wa=Promise.resolve(),Ga=()=>Ua||=(Wa.then(()=>Ua=0),Date.now());function Ka(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(d(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&nn(e,t,5,a)}}else nn(r,t,5,[e])};return n.value=e,n.attached=Ga(),n}var qa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ja=(e,t,n,r,i,s)=>{let c=i===`svg`;t===`class`?Sa(e,r,c):t===`style`?Da(e,n,r):a(t)?o(t)||Ba(e,t,n,r,s):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):Ya(e,t,r,c))?(Ia(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Fa(e,t,r,c,s,t!==`value`)):e._isVueCE&&(Xa(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!g(r)))?Ia(e,T(t),r,s,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Fa(e,t,r,c))};function Ya(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&qa(t)&&h(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return qa(t)&&g(n)?!1:t in e}function Xa(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var Za=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return d(t)?e=>oe(t,e):t};function Qa(e){e.target.composing=!0}function $a(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var eo=Symbol(`_assign`);function to(e,t,n){return t&&(e=e.trim()),n&&(e=se(e)),e}var Y={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[eo]=Za(i);let a=r||i.props&&i.props.type===`number`;La(e,t?`change`:`input`,t=>{t.target.composing||e[eo](to(e.value,n,a))}),(n||a)&&La(e,`change`,()=>{e.value=to(e.value,n,a)}),t||(La(e,`compositionstart`,Qa),La(e,`compositionend`,$a),La(e,`change`,$a))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[eo]=Za(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?se(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},no={deep:!0,created(e,t,n){e[eo]=Za(n),La(e,`change`,()=>{let t=e._modelValue,n=ao(e),r=e.checked,i=e[eo];if(d(t)){let e=ye(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(p(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(oo(e,r))})},mounted:ro,beforeUpdate(e,t,n){e[eo]=Za(n),ro(e,t,n)}};function ro(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(d(t))i=ye(t,r.props.value)>-1;else if(p(t))i=t.has(r.props.value);else{if(t===n)return;i=ve(t,oo(e,!0))}e.checked!==i&&(e.checked=i)}var X={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=p(t);La(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?se(ao(e)):ao(e));e[eo](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,fn(()=>{e._assigning=!1})}),e[eo]=Za(r)},mounted(e,{value:t}){io(e,t)},beforeUpdate(e,t,n){e[eo]=Za(n)},updated(e,{value:t}){e._assigning||io(e,t)}};function io(e,t){let n=e.multiple,r=d(t);if(!(n&&!r&&!p(t))){for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=ao(a);if(n)if(r){let e=typeof o;e===`string`||e===`number`?a.selected=t.some(e=>String(e)===String(o)):a.selected=ye(t,o)>-1}else a.selected=t.has(o);else if(ve(ao(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ao(e){return`_value`in e?e._value:e.value}function oo(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var so=[`ctrl`,`shift`,`alt`,`meta`],co={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>so.some(n=>e[`${n}Key`]&&!t.includes(n))},Z=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=co[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},lo={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},uo=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=E(n.key);if(t.some(e=>e===r||lo[e]===r))return e(n)}))},fo=s({patchProp:Ja},ba),po;function mo(){return po||=ci(fo)}var ho=((...e)=>{let t=mo().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=_o(e);if(!r)return;let i=t._component;!h(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,go(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function go(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function _o(e){return g(e)?document.querySelector(e):e}async function Q(e,t={}){try{let n=await fetch(e,t);if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);return n.json()}catch(t){throw console.error(`API Error:`,e,t.message),t}}var vo={list:()=>Q(`/api/projects`),create:e=>Q(`/api/projects/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),update:e=>Q(`/api/projects/update`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),delete:e=>Q(`/api/projects/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})}),start:(e,t)=>Q(`/api/start`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:e,agent:t})}),stop:e=>Q(`/api/stop`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:e})})},yo={list:e=>Q(`/api/projects/${encodeURIComponent(e)}/sessions`),detail:(e,t)=>Q(`/api/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}`),create:e=>Q(`/api/sessions/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),delete:e=>Q(`/api/sessions/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),rename:e=>Q(`/api/sessions/rename`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},bo={list:()=>Q(`/api/groups`),create:e=>Q(`/api/groups/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),delete:e=>Q(`/api/groups/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})}),rename:e=>Q(`/api/groups/rename`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),messages:(e,t=100)=>Q(`/api/groups/messages?id=${e}&limit=${t}`),send:e=>fetch(`/api/groups/send?stream=1`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),members:e=>Q(`/api/groups/members`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},xo={list:()=>Q(`/api/tasks`),create:e=>Q(`/api/tasks/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),update:e=>Q(`/api/tasks/update`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),delete:e=>Q(`/api/tasks/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})},So={mcp:{list:()=>Q(`/api/mcp`),create:e=>Q(`/api/mcp`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),delete:e=>Q(`/api/mcp/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})})},skills:{list:()=>Q(`/api/skills`),create:e=>Q(`/api/skills`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),delete:e=>Q(`/api/skills/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})})}},Co={exec:e=>Q(`/api/terminal/exec`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),info:()=>Q(`/api/terminal/info`)},wo=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},To={class:`toast-icon`},Eo={class:`toast-message`},Do=wo({__name:`Toast`,props:{message:{type:String,required:!0},type:{type:String,default:`info`},duration:{type:Number,default:3e3}},setup(e){let t=e,n=R(!0);return Qn(()=>{setTimeout(()=>{n.value=!1},t.duration)}),(t,r)=>n.value?(W(),G(`div`,{key:0,class:A([`toast`,e.type])},[K(`span`,To,j(e.type===`success`?`✅`:e.type===`error`?`❌`:e.type===`warning`?`⚠️`:`ℹ️`),1),K(`span`,Eo,j(e.message),1)],2)):q(``,!0)}},[[`__scopeId`,`data-v-77aad811`]]),Oo=null;function ko(){return Oo||(Oo=document.createElement(`div`),Oo.id=`toast-container`,Oo.style.cssText=`position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:10000;display:flex;flex-direction:column;gap:8px;padding:20px;pointer-events:none;align-items:center`,document.body.appendChild(Oo)),Oo}function Ao(e,t=`info`,n=3e3){let r=ko(),i=document.createElement(`div`);r.appendChild(i);let a=ho(Do,{message:e,type:t,duration:n});a.mount(i),setTimeout(()=>{a.unmount(),i.remove()},n+500)}var $={info:(e,t)=>Ao(e,`info`,t),success:(e,t)=>Ao(e,`success`,t),error:(e,t)=>Ao(e,`error`,t),warning:(e,t)=>Ao(e,`warning`,t)};function jo(e){return new Promise(t=>{let n=ko(),r=document.createElement(`div`);r.style.pointerEvents=`auto`,n.appendChild(r);let i=ho({template:`
2
+ <div class="confirm-overlay">
3
+ <div class="confirm-modal">
4
+ <div class="confirm-icon">❓</div>
5
+ <div class="confirm-message">{{ message }}</div>
6
+ <div class="confirm-actions">
7
+ <button class="btn btn-cancel" @click="onCancel">取消</button>
8
+ <button class="btn btn-primary" @click="onConfirm">确定</button>
9
+ </div>
10
+ </div>
11
+ </div>
12
+ `,setup(){return{message:e,onConfirm:()=>{i.unmount(),r.remove(),t(!0)},onCancel:()=>{i.unmount(),r.remove(),t(!1)}}}}),a=document.createElement(`style`);a.textContent=`
13
+ .confirm-overlay {
14
+ position: fixed;
15
+ inset: 0;
16
+ background: rgba(0,0,0,0.7);
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ z-index: 10001;
21
+ }
22
+ .confirm-modal {
23
+ background: var(--bg-secondary);
24
+ border: 1px solid var(--border-color);
25
+ border-radius: 16px;
26
+ padding: 28px;
27
+ min-width: 350px;
28
+ text-align: center;
29
+ }
30
+ .confirm-icon { font-size: 40px; margin-bottom: 16px; }
31
+ .confirm-message { font-size: 14px; color: var(--text-primary); margin-bottom: 24px; line-height: 1.6; }
32
+ .confirm-actions { display: flex; gap: 10px; justify-content: center; }
33
+ .btn { padding: 10px 24px; border-radius: 8px; border: none; cursor: pointer; font-size: 14px; transition: all 0.2s; }
34
+ .btn-primary { background: var(--gradient-blue); color: white; font-weight: 600; }
35
+ .btn-cancel { background: rgba(55,65,81,0.5); color: var(--text-secondary); }
36
+ `,document.head.appendChild(a),i.mount(r)})}var Mo={class:`project-manager`},No={class:`toolbar`},Po={class:`toolbar-left`},Fo={class:`project-select-wrapper`},Io=[`value`],Lo={key:0,class:`project-actions-inline`},Ro={class:`toolbar-right`},zo={class:`info`},Bo={class:`main-content`},Vo={class:`sidebar`},Ho={class:`sidebar-header`},Uo={style:{display:`flex`,gap:`6px`}},Wo={class:`session-list`},Go={key:0,class:`empty-sm`},Ko={key:1,class:`empty-sm`},qo={key:2},Jo=[`onClick`],Yo={style:{display:`flex`,"justify-content":`space-between`,"align-items":`flex-start`}},Xo={style:{flex:`1`,"min-width":`0`}},Zo={class:`session-name`},Qo={class:`session-meta`},$o={class:`session-actions`},es=[`onClick`],ts=[`onClick`],ns={class:`content`},rs={class:`content-header`},is={id:`messages`,class:`messages`},as={key:0,class:`empty`},os={key:0,class:`thinking-bubble`},ss={class:`thinking-content`},cs={key:1,class:`bubble`},ls={key:2,class:`bubble`},us={key:0,class:`stream-cursor`},ds={class:`msg-meta`},fs={class:`chat-bar`},ps=[`onKeydown`],ms={key:0,class:`logs-panel`},hs={style:{"font-size":`12px`,color:`var(--text-muted)`}},gs={class:`logs-content`},_s={class:`modal`},vs={class:`form-group`},ys={class:`form-group`},bs={style:{display:`flex`,gap:`8px`}},xs={class:`form-group`},Ss={class:`form-group`},Cs=[`value`],ws={key:0,style:{"margin-bottom":`16px`}},Ts={class:`form-actions`},Es={class:`modal`},Ds={class:`form-group`},Os={style:{display:`flex`,gap:`8px`}},ks={class:`form-group`},As={class:`form-actions`},js={class:`modal`,style:{"min-width":`500px`}},Ms={style:{display:`flex`,gap:`24px`,"margin-top":`16px`}},Ns={style:{flex:`1`}},Ps=[`disabled`],Fs={style:{width:`220px`,display:`flex`,"flex-direction":`column`,"align-items":`center`}},Is={id:`feishuQrArea`,style:{width:`200px`,height:`200px`,border:`2px dashed var(--border-color)`,"border-radius":`12px`,display:`flex`,"align-items":`center`,"justify-content":`center`,"flex-direction":`column`,gap:`8px`}},Ls=[`src`],Rs={key:0,style:{"margin-top":`8px`}},zs=[`href`],Bs={key:1,style:{"margin-top":`8px`,"font-size":`11px`,color:`var(--text-muted)`,"text-align":`center`}},Vs={style:{display:`flex`,"justify-content":`flex-end`,"margin-top":`16px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},Hs={class:`modal`,style:{"min-width":`600px`,"max-height":`75vh`,display:`flex`,"flex-direction":`column`}},Us={style:{display:`flex`,gap:`6px`,margin:`12px 0`,"flex-wrap":`wrap`}},Ws=[`onClick`],Gs={style:{padding:`8px 12px`,background:`var(--bg-glass)`,"border-radius":`6px`,"margin-bottom":`12px`,"font-size":`12px`,color:`var(--text-muted)`,"font-family":`monospace`,overflow:`hidden`,"text-overflow":`ellipsis`,"white-space":`nowrap`}},Ks={style:{flex:`1`,"overflow-y":`auto`,"min-height":`250px`,"max-height":`400px`,border:`1px solid var(--border-color)`,"border-radius":`8px`,padding:`8px`}},qs={key:0,style:{"text-align":`center`,padding:`40px`,color:`var(--text-muted)`}},Js=[`onClick`],Ys={style:{"font-size":`16px`}},Xs={style:{"font-size":`13px`,color:`var(--text-primary)`,flex:`1`,overflow:`hidden`,"text-overflow":`ellipsis`,"white-space":`nowrap`}},Zs={style:{display:`flex`,gap:`8px`,"margin-top":`12px`,"align-items":`center`}},Qs={class:`modal`},$s={style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`16px`}},ec={class:`agent-list`},tc=[`onClick`],nc={class:`agent-name`},rc={class:`agent-type`},ic={class:`modal`,style:{"min-width":`500px`,"max-height":`80vh`,display:`flex`,"flex-direction":`column`}},ac={style:{flex:`1`,"overflow-y":`auto`}},oc={style:{"margin-bottom":`20px`}},sc={key:0,style:{"font-size":`12px`,color:`var(--text-muted)`,padding:`8px`}},cc=[`checked`,`onChange`],lc={style:{flex:`1`}},uc={style:{"font-size":`13px`,color:`var(--text-primary)`}},dc={style:{"font-size":`11px`,color:`var(--text-muted)`}},fc={key:0,style:{"font-size":`12px`,color:`var(--text-muted)`,padding:`8px`}},pc=[`checked`,`onChange`],mc={style:{flex:`1`}},hc={style:{"font-size":`13px`,color:`var(--text-primary)`}},gc={style:{"font-size":`11px`,color:`var(--text-muted)`}},_c={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-top":`16px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},vc={style:{"font-size":`12px`,color:`var(--text-muted)`}},yc={style:{display:`flex`,gap:`8px`}},bc={class:`modal`,style:{"min-width":`500px`,"max-height":`80vh`,display:`flex`,"flex-direction":`column`}},xc={style:{flex:`1`,"overflow-y":`auto`}},Sc={key:0,style:{"text-align":`center`,padding:`40px`,color:`var(--text-muted)`}},Cc={style:{display:`flex`,"justify-content":`space-between`,"align-items":`flex-start`,"margin-bottom":`8px`}},wc={style:{display:`flex`,"align-items":`center`,gap:`8px`}},Tc={style:{"font-size":`14px`,"font-weight":`500`,color:`var(--text-primary)`}},Ec={style:{display:`flex`,gap:`4px`}},Dc=[`onClick`],Oc=[`onClick`],kc={style:{"font-size":`12px`,color:`var(--text-muted)`,"white-space":`pre-wrap`,"max-height":`60px`,overflow:`hidden`}},Ac={style:{display:`flex`,"justify-content":`flex-end`,"margin-top":`12px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},jc={class:`modal`,style:{"min-width":`500px`}},Mc={class:`form-group`},Nc={class:`form-group`},Pc={class:`form-actions`},Fc={class:`modal`,style:{"min-width":`500px`}},Ic={class:`form-group`},Lc={class:`form-actions`},Rc=wo({__name:`ProjectManager`,setup(e){let t=R([]),n=R(null),r=R(null),i=R([]),a=R([]),o=R(``),s=R(``),c=R(!1),l=R(!1),u=R(!1),d=R(!1),f=R(!1),p=R(!1),m=R(!1),h=R(null),g=R(``),_=R(``),v=R(!1),y=R(``),b=R([]),x=R(``),S=R([]),C=R({name:``,work_dir:``,agent:`claudecode`,platform:`feishu`}),w=[{value:`feishu`,label:`飞书`,hasQr:!0},{value:`lark`,label:`Lark`,hasQr:!0},{value:`weixin`,label:`微信`,hasQr:!1},{value:`telegram`,label:`Telegram`,hasQr:!1},{value:`slack`,label:`Slack`,hasQr:!1},{value:`discord`,label:`Discord`,hasQr:!1}],ee=async()=>{t.value=(await vo.list()).projects||[],s.value=`${t.value.length} 个项目 · ${t.value.filter(e=>e.running).length} 个运行中`},te=async e=>{n.value=e,r.value=null,await ne(e)},ne=async e=>{e&&(i.value=(await yo.list(e)).sessions||[])},T=async e=>{r.value=e,a.value=(await yo.detail(n.value,e)).history||[],fn(()=>{let e=document.getElementById(`messages`);e&&(e.scrollTop=e.scrollHeight)})},re=async e=>{await vo.start(e),setTimeout(ee,1500)},E=async e=>{await vo.stop(e),setTimeout(ee,500)},ie=async e=>{await jo(`确定删除项目 "${e}"?删除后无法恢复。`)&&(await vo.delete(e),n.value===e&&(n.value=null,i.value=[],a.value=[]),ee(),$.success(`项目已删除`))},ae=()=>{C.value={name:``,work_dir:``,agent:`claudecode`,platform:`feishu`},c.value=!0},D=async()=>{if(!C.value.name||!C.value.work_dir){$.warning(`请填写项目名称和目录`);return}let e=await vo.create(C.value);e.success?(c.value=!1,ee(),$.success(`项目创建成功!`)):$.error(`创建失败: `+(e.error||`未知错误`))},oe=e=>{h.value=e,C.value={name:e.name,work_dir:e.work_dir||``,agent:e.agent||`claudecode`,platform:e.platform||`feishu`},l.value=!0},O=async()=>{let e=await vo.update(C.value);e.success?(l.value=!1,ee(),$.success(`项目已更新!`)):$.error(`更新失败: `+(e.error||`未知错误`))},se=e=>{h.value=e,u.value=!0},ce=async e=>{await E(h.value.name),setTimeout(()=>{re(h.value.name,e),u.value=!1},1e3)},le=async()=>{if(!n.value){alert(`请先选择项目`);return}let e=await yo.create({project:n.value});e.success&&(await ne(n.value),T(e.sessionId))},ue=async e=>{let t=prompt(`输入新名称:`);t&&(await yo.rename({project:n.value,sessionId:e,name:t}),ne(n.value))},de=async e=>{confirm(`确定删除此会话?`)&&(await yo.delete({project:n.value,sessionId:e}),r.value===e&&(r.value=null,a.value=[]),ne(n.value))},fe=R(!1),pe=R([]),me=async()=>{if(!o.value.trim()||!n.value)return;let e=o.value.trim();o.value=``,a.value.push({role:`user`,content:e,timestamp:new Date().toISOString()});let t={role:`thinking`,content:``,timestamp:new Date().toISOString()};a.value.push(t);let i={role:`assistant`,content:``,timestamp:new Date().toISOString()};fe.value=!0,pe.value=[];let s=(await fetch(`/api/send-stream`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:n.value,message:e})})).body.getReader(),c=new TextDecoder,l=!1;for(;;){let{done:e,value:n}=await s.read();if(e)break;let r=c.decode(n);for(let e of r.split(`
37
+ `))if(e.startsWith(`data: `))try{let n=JSON.parse(e.slice(6));if(n.type===`status`)pe.value.push(n.text),t.content=pe.value.join(`
38
+ `),he();else if(n.type===`chunk`)l||=(a.value.push(i),!0),i.content+=n.text,he();else if(n.type===`done`){fe.value=!1;let e=a.value.indexOf(t);e!==-1&&a.value.splice(e,1)}else n.type===`error`&&(l||=(a.value.push(i),!0),i.content=`❌ 错误: `+n.text,fe.value=!1)}catch{}}fe.value=!1;let u=a.value.indexOf(t);u!==-1&&a.value.splice(u,1),ge.value&&r.value&&i.content&&_e(n.value,r.value,e)},he=()=>{fn(()=>{let e=document.getElementById(`messages`);e&&(e.scrollTop=e.scrollHeight)})},ge=R(!1),_e=async(e,t,n)=>{try{let r=await api(`/api/sessions/auto-name`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:e,sessionId:t,message:n})});r.success&&r.name&&($.success(`会话已自动命名为: ${r.name}`),ne(e))}catch(e){console.log(`自动命名失败:`,e)}},ve=R(!1),ye=R(``),be=()=>{m.value=!0,g.value=``,_.value=``,v.value=!1},xe=async()=>{let e=C.value.name||n.value||`default`;v.value=!0,_.value=`正在生成扫码链接...`;try{let t=await(await fetch(`/api/projects/feishu-setup`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e})})).json();if(t.success&&t.scan_url){g.value=t.scan_url,_.value=`请用飞书 App 扫码完成授权`;let e=0,n=setInterval(async()=>{if(e++,e>60){clearInterval(n),_.value=`❌ 扫码超时,请重试`,v.value=!1;return}let t=await(await fetch(`/api/feishu/config`)).json();t.config?.app_id&&(clearInterval(n),_.value=`✅ 飞书机器人配置完成!`,v.value=!1,document.getElementById(`feishuAppId`)&&(document.getElementById(`feishuAppId`).value=t.config.app_id))},3e3)}else _.value=`❌ `+(t.error||`生成扫码链接失败`),v.value=!1}catch(e){_.value=`❌ 请求失败: `+e.message,v.value=!1}},Se=async e=>{x.value=e,p.value=!0,await M(),await Ce(``)},M=async()=>{try{S.value=(await(await fetch(`/api/filesystem/drives`)).json()).drives||[]}catch{S.value=[]}},Ce=async e=>{try{let t=await(await fetch(`/api/filesystem/browse?dir=${encodeURIComponent(e)}`)).json();t.success&&(y.value=t.path,b.value=t.items||[])}catch{b.value=[]}},we=()=>{y.value&&Ce(y.value.replace(/[/\\][^/\\]+$/,``)||`/`)},N=()=>{x.value&&y.value&&(C.value.work_dir=y.value),p.value=!1},P=R({mcp:[],skill:[]}),Te=R({mcp:[],skill:[]}),Ee=async()=>{if(!n.value)return;P.value=(await(await fetch(`/api/projects/tools?project=${encodeURIComponent(n.value)}`)).json()).tools||{mcp:[],skill:[]};let e=await(await fetch(`/api/mcp`)).json();Te.value.mcp=e.tools||[];let t=await(await fetch(`/api/skills`)).json();Te.value.skill=t.skills||[],d.value=!0},De=async()=>{let e=await(await fetch(`/api/projects/tools`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:n.value,tools:P.value})})).json();e.success?(d.value=!1,$.success(`工具配置已保存`)):$.error(`保存失败: `+(e.error||`未知错误`))},Oe=(e,t)=>P.value[e]?.includes(t)||!1,ke=(e,t)=>{P.value[e]||(P.value[e]=[]);let n=P.value[e].indexOf(t);n>=0?P.value[e].splice(n,1):P.value[e].push(t)},Ae=R([]),je=R(!1),Me=R(!1),Ne=R(``),Pe=R(``),Fe=async()=>{n.value&&(Ae.value=(await(await fetch(`/api/projects/shared?project=${encodeURIComponent(n.value)}`)).json()).files||[],f.value=!0)},Ie=async()=>{Ne.value=``,Pe.value=``,je.value=!0},Le=async()=>{if(!Ne.value.trim()){$.warning(`请输入文件名`);return}await fetch(`/api/projects/shared/add`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:n.value,name:Ne.value.trim(),content:Pe.value})}),je.value=!1,Fe(),$.success(`文件创建成功`)},Re=async e=>{let t=Ae.value.find(t=>t.name===e);t&&(Ne.value=t.name,Pe.value=t.content||``,Me.value=!0)},ze=async()=>{await fetch(`/api/projects/shared/add`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:n.value,name:Ne.value,content:Pe.value})}),Me.value=!1,Fe(),$.success(`文件已保存`)},Be=async e=>{await jo(`确定删除文件 "${e}"?删除后无法恢复。`)&&(await fetch(`/api/projects/shared/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:n.value,name:e})}),Fe(),$.success(`文件已删除`))};return Qn(ee),(e,x)=>(W(),G(`div`,Mo,[K(`div`,No,[K(`div`,Po,[x[58]||=K(`span`,{class:`label`},`项目:`,-1),K(`div`,Fo,[B(K(`select`,{"onUpdate:modelValue":x[0]||=e=>n.value=e,onChange:x[1]||=e=>te(n.value),class:`select`},[x[57]||=K(`option`,{value:``},`选择项目...`,-1),(W(!0),G(U,null,V(t.value,e=>(W(),G(`option`,{key:e.name,value:e.name},j(e.running?`🟢`:`⚪`)+` `+j(e.name),9,Io))),128))],544),[[X,n.value]]),n.value?(W(),G(`div`,Lo,[t.value.find(e=>e.name===n.value)?.running?(W(),G(U,{key:0},[K(`button`,{class:`btn btn-stop btn-sm`,onClick:x[2]||=e=>E(n.value)},`⏹ 停止`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[3]||=e=>se(t.value.find(e=>e.name===n.value))},`🔄 切换`)],64)):(W(),G(`button`,{key:1,class:`btn btn-start btn-sm`,onClick:x[4]||=e=>re(n.value)},`▶ 启动`)),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[5]||=e=>oe(t.value.find(e=>e.name===n.value))},`✏️ 编辑`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[6]||=e=>Ee()},`🔧 工具`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[7]||=e=>Fe()},`📁 文件`),K(`button`,{class:`btn btn-danger btn-sm`,onClick:x[8]||=e=>ie(n.value)},`🗑️ 删除`)])):q(``,!0)])]),K(`div`,Ro,[K(`span`,zo,j(s.value),1),K(`button`,{class:`btn btn-primary`,onClick:ae},`+ 新建项目`)])]),K(`div`,Bo,[K(`div`,Vo,[K(`div`,Ho,[x[59]||=K(`span`,null,`💬 会话列表`,-1),K(`div`,Uo,[K(`button`,{class:`btn btn-primary btn-sm`,onClick:le},`+ 新建`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[9]||=e=>ne(n.value)},`↻`)])]),K(`div`,Wo,[n.value?i.value.length===0?(W(),G(`div`,Ko,[...x[61]||=[K(`span`,null,`💬`,-1),K(`span`,null,`暂无会话`,-1)]])):(W(),G(`div`,qo,[(W(!0),G(U,null,V(i.value,e=>(W(),G(`div`,{key:e.id,class:A([`session-item`,{active:r.value===e.id}]),onClick:t=>T(e.id)},[K(`div`,Yo,[K(`div`,Xo,[K(`div`,Zo,j(e.name||e.id),1),K(`div`,Qo,[K(`span`,null,j(e.message_count)+` 条`,1),K(`span`,null,j(e.id),1)])]),K(`div`,$o,[K(`button`,{class:`btn-icon`,onClick:Z(t=>ue(e.id),[`stop`]),title:`重命名`},`✏️`,8,es),K(`button`,{class:`btn-icon`,onClick:Z(t=>de(e.id),[`stop`]),title:`删除`},`🗑️`,8,ts)])])],10,Jo))),128))])):(W(),G(`div`,Go,[...x[60]||=[K(`span`,null,`💬`,-1),K(`span`,null,`选择项目查看会话`,-1)]]))])]),K(`div`,ns,[K(`div`,rs,[K(`span`,null,j(r.value?`${n.value} - 消息记录`:`消息记录`),1)]),K(`div`,is,[r.value?(W(!0),G(U,{key:1},V(a.value,(e,t)=>(W(),G(`div`,{key:t,class:A([`message`,e.role])},[e.role===`thinking`?(W(),G(`div`,os,[x[63]||=K(`div`,{class:`thinking-header`},[K(`span`,{class:`thinking-icon`},`🧠`),K(`span`,null,`Agent 思考中...`)],-1),K(`div`,ss,j(e.content),1),x[64]||=K(`span`,{class:`stream-cursor`},`▌`,-1)])):e.role===`user`?(W(),G(`div`,cs,[K(`div`,null,j(e.content),1)])):(W(),G(`div`,ls,[x[65]||=K(`span`,{class:`agent-label`},`🤖 Agent`,-1),K(`div`,null,j(e.content),1),fe.value&&t===a.value.length-1?(W(),G(`span`,us,`▌`)):q(``,!0)])),K(`div`,ds,j(new Date(e.timestamp).toLocaleString(`zh-CN`)),1)],2))),128)):(W(),G(`div`,as,[...x[62]||=[K(`span`,{class:`icon`},`💬`,-1),K(`span`,null,`选择一个会话开始对话`,-1)]]))]),K(`div`,fs,[B(K(`textarea`,{"onUpdate:modelValue":x[10]||=e=>o.value=e,placeholder:`输入消息发送给 Agent... (Enter 发送)`,rows:`1`,onKeydown:uo(Z(me,[`prevent`]),[`enter`])},null,40,ps),[[Y,o.value]]),K(`button`,{class:`btn btn-primary chat-send`,onClick:me},`发送 ➤`)]),ve.value?(W(),G(`div`,ms,[K(`div`,{class:`logs-header`,onClick:x[11]||=e=>ve.value=!1},[x[66]||=K(`span`,null,`📋 运行日志`,-1),K(`span`,hs,j(n.value),1)]),K(`div`,gs,j(ye.value),1)])):q(``,!0)])]),c.value?(W(),G(`div`,{key:0,class:`modal-overlay`,onClick:x[20]||=Z(e=>c.value=!1,[`self`])},[K(`div`,_s,[K(`button`,{class:`modal-close`,onClick:x[12]||=e=>c.value=!1},`×`),x[73]||=K(`h3`,null,`新建项目`,-1),K(`div`,vs,[x[67]||=K(`label`,null,`项目名称`,-1),B(K(`input`,{"onUpdate:modelValue":x[13]||=e=>C.value.name=e,placeholder:`如 my-app`},null,512),[[Y,C.value.name]])]),K(`div`,ys,[x[68]||=K(`label`,null,`代码目录路径`,-1),K(`div`,bs,[B(K(`input`,{"onUpdate:modelValue":x[14]||=e=>C.value.work_dir=e,placeholder:`如 D:\\projects\\my-app`,style:{flex:`1`}},null,512),[[Y,C.value.work_dir]]),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[15]||=e=>Se(`work_dir`)},`📁 浏览`)])]),K(`div`,xs,[x[70]||=K(`label`,null,`Agent`,-1),B(K(`select`,{"onUpdate:modelValue":x[16]||=e=>C.value.agent=e},[...x[69]||=[zi(`<option value="claudecode" data-v-6b2f85c7>Claude Code</option><option value="cursor" data-v-6b2f85c7>Cursor</option><option value="gemini" data-v-6b2f85c7>Gemini CLI</option><option value="codex" data-v-6b2f85c7>Codex</option><option value="qoder" data-v-6b2f85c7>Qoder CLI</option><option value="opencode" data-v-6b2f85c7>OpenCode</option>`,6)]],512),[[X,C.value.agent]])]),K(`div`,Ss,[x[71]||=K(`label`,null,`平台`,-1),B(K(`select`,{"onUpdate:modelValue":x[17]||=e=>C.value.platform=e},[(W(),G(U,null,V(w,e=>K(`option`,{key:e.value,value:e.value},j(e.label),9,Cs)),64))],512),[[X,C.value.platform]])]),C.value.platform===`feishu`||C.value.platform===`lark`?(W(),G(`div`,ws,[K(`button`,{class:`btn btn-outline`,onClick:x[18]||=e=>be(),style:{width:`100%`}},`🤖 扫码创建飞书机器人`),x[72]||=K(`div`,{style:{"font-size":`11px`,color:`var(--text-muted)`,"margin-top":`4px`,"text-align":`center`}},`自动配置飞书机器人并获取凭证`,-1)])):q(``,!0),K(`div`,Ts,[K(`button`,{class:`btn btn-cancel`,onClick:x[19]||=e=>c.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:D},`创建`)])])])):q(``,!0),l.value?(W(),G(`div`,{key:1,class:`modal-overlay`,onClick:x[26]||=Z(e=>l.value=!1,[`self`])},[K(`div`,Es,[K(`button`,{class:`modal-close`,onClick:x[21]||=e=>l.value=!1},`×`),K(`h3`,null,`编辑项目 - `+j(h.value?.name),1),K(`div`,Ds,[x[74]||=K(`label`,null,`代码目录`,-1),K(`div`,Os,[B(K(`input`,{"onUpdate:modelValue":x[22]||=e=>C.value.work_dir=e,placeholder:`项目代码目录路径`,style:{flex:`1`}},null,512),[[Y,C.value.work_dir]]),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[23]||=e=>Se(`work_dir`)},`📁 浏览`)])]),K(`div`,ks,[x[76]||=K(`label`,null,`Agent 类型`,-1),B(K(`select`,{"onUpdate:modelValue":x[24]||=e=>C.value.agent=e},[...x[75]||=[zi(`<option value="claudecode" data-v-6b2f85c7>Claude Code</option><option value="cursor" data-v-6b2f85c7>Cursor</option><option value="gemini" data-v-6b2f85c7>Gemini CLI</option><option value="codex" data-v-6b2f85c7>Codex</option><option value="qoder" data-v-6b2f85c7>Qoder CLI</option><option value="opencode" data-v-6b2f85c7>OpenCode</option>`,6)]],512),[[X,C.value.agent]])]),K(`div`,As,[K(`button`,{class:`btn btn-cancel`,onClick:x[25]||=e=>l.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:O},`保存修改`)])])])):q(``,!0),m.value?(W(),G(`div`,{key:2,class:`modal-overlay`,onClick:x[30]||=Z(e=>m.value=!1,[`self`])},[K(`div`,js,[K(`button`,{class:`modal-close`,onClick:x[27]||=e=>m.value=!1},`×`),x[80]||=K(`h3`,null,`🤖 飞书扫码创建机器人`,-1),K(`div`,Ms,[K(`div`,Ns,[x[77]||=zi(`<div style="font-size:13px;color:var(--text-secondary);line-height:1.8;margin-bottom:16px;" data-v-6b2f85c7><div style="font-weight:500;color:var(--text-primary);margin-bottom:8px;" data-v-6b2f85c7>扫码配置步骤:</div><ol style="padding-left:20px;" data-v-6b2f85c7><li data-v-6b2f85c7>点击&quot;生成扫码链接&quot;</li><li data-v-6b2f85c7>用飞书 App 扫描二维码</li><li data-v-6b2f85c7>授权后自动完成配置</li></ol></div><div style="padding:12px;background:rgba(56,189,248,0.05);border:1px solid rgba(56,189,248,0.2);border-radius:8px;" data-v-6b2f85c7><div style="font-size:12px;color:var(--accent-blue);" data-v-6b2f85c7>💡 提示</div><div style="font-size:11px;color:var(--text-muted);margin-top:4px;" data-v-6b2f85c7> 扫码配置会自动创建飞书应用并获取 App ID 和 Secret,无需手动填写。 </div></div>`,2),K(`button`,{class:`btn btn-primary`,onClick:x[28]||=e=>xe(),style:{width:`100%`,"margin-top":`16px`},disabled:v.value},j(v.value?`生成中...`:`📱 生成扫码链接`),9,Ps)]),K(`div`,Fs,[K(`div`,Is,[g.value?(W(),G(`img`,{key:0,src:`https://api.qrserver.com/v1/create-qr-code/?size=180x180&data=`+encodeURIComponent(g.value),style:{width:`180px`,height:`180px`,"border-radius":`8px`},alt:`飞书扫码`},null,8,Ls)):(W(),G(U,{key:1},[x[78]||=K(`span`,{style:{"font-size":`48px`,opacity:`0.3`}},`📱`,-1),x[79]||=K(`span`,{style:{"font-size":`11px`,color:`var(--text-muted)`}},`等待生成二维码`,-1)],64))]),g.value?(W(),G(`div`,Rs,[K(`a`,{href:g.value,target:`_blank`,style:{"font-size":`11px`,color:`var(--accent-blue)`}},`🔗 点击打开授权页面`,8,zs)])):q(``,!0),_.value?(W(),G(`div`,Bs,j(_.value),1)):q(``,!0)])]),K(`div`,Vs,[K(`button`,{class:`btn btn-primary`,onClick:x[29]||=e=>m.value=!1},`关闭`)])])])):q(``,!0),p.value?(W(),G(`div`,{key:3,class:`modal-overlay`,onClick:x[39]||=Z(e=>p.value=!1,[`self`])},[K(`div`,Hs,[K(`button`,{class:`modal-close`,onClick:x[31]||=e=>p.value=!1},`×`),x[82]||=K(`h3`,null,`📁 选择项目目录`,-1),K(`div`,Us,[(W(!0),G(U,null,V(S.value,e=>(W(),G(`button`,{key:e.name,class:`btn btn-outline btn-sm`,onClick:t=>Ce(e.path),style:{padding:`4px 10px`,"font-size":`11px`}},j(e.name)+`:`,9,Ws))),128)),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[32]||=e=>Ce(`/`),style:{padding:`4px 10px`,"font-size":`11px`}},`/ 根目录`)]),K(`div`,Gs,j(y.value||`加载中...`),1),K(`div`,Ks,[b.value.length===0?(W(),G(`div`,qs,`空目录`)):q(``,!0),(W(!0),G(U,null,V(b.value,e=>(W(),G(`div`,{key:e.path,style:k([{display:`flex`,"align-items":`center`,gap:`10px`,padding:`8px 12px`,cursor:`pointer`,"border-radius":`6px`,transition:`background 0.15s`},{cursor:e.isDirectory?`pointer`:`default`}]),onClick:t=>e.isDirectory&&Ce(e.path),onMouseover:x[33]||=e=>e.target.style.background=`rgba(56,189,248,0.05)`,onMouseout:x[34]||=e=>e.target.style.background=`transparent`},[K(`span`,Ys,j(e.isDirectory?`📁`:`📄`),1),K(`span`,Xs,j(e.name),1)],44,Js))),128))]),K(`div`,Zs,[K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[35]||=e=>we()},`⬆ 上级`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:x[36]||=e=>Ce(y.value)},`🔄 刷新`),x[81]||=K(`div`,{style:{flex:`1`}},null,-1),K(`button`,{class:`btn btn-cancel`,onClick:x[37]||=e=>p.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:x[38]||=e=>N()},`✓ 选择此目录`)])])])):q(``,!0),u.value?(W(),G(`div`,{key:4,class:`modal-overlay`,onClick:x[41]||=Z(e=>u.value=!1,[`self`])},[K(`div`,Qs,[K(`button`,{class:`modal-close`,onClick:x[40]||=e=>u.value=!1},`×`),K(`h3`,null,`切换 Agent - `+j(h.value?.name),1),K(`div`,$s,` 当前: `+j(h.value?.agent)+` · 需要先停止再切换 `,1),K(`div`,ec,[(W(),G(U,null,V([`claudecode`,`cursor`,`gemini`,`codex`],e=>K(`div`,{key:e,class:A([`agent-option`,{active:h.value?.agent===e}]),onClick:t=>ce(e)},[K(`span`,nc,j(e)+` `+j(h.value?.agent===e?`← 当前`:``),1),K(`span`,rc,j(e),1)],10,tc)),64))])])])):q(``,!0),d.value?(W(),G(`div`,{key:5,class:`modal-overlay`,onClick:x[44]||=Z(e=>d.value=!1,[`self`])},[K(`div`,ic,[K(`button`,{class:`modal-close`,onClick:x[42]||=e=>d.value=!1},`×`),K(`h3`,null,`🔧 项目工具配置 - `+j(n.value),1),x[87]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`16px`}},`配置此项目可用的工具,Agent 将能使用这些工具`,-1),K(`div`,ac,[K(`div`,oc,[x[84]||=K(`div`,{style:{"font-size":`13px`,"font-weight":`500`,color:`var(--text-secondary)`,"margin-bottom":`10px`}},`🔌 MCP 服务器`,-1),Te.value.mcp.length===0?(W(),G(`div`,sc,`暂无 MCP 服务器,请先在工具配置页面添加`)):q(``,!0),(W(!0),G(U,null,V(Te.value.mcp,e=>(W(),G(`label`,{key:e.name,style:k([{display:`flex`,"align-items":`center`,gap:`10px`,padding:`10px 12px`,cursor:`pointer`,"border-radius":`6px`,"margin-bottom":`4px`,border:`1px solid var(--border-color)`,transition:`all 0.2s`},{borderColor:Oe(`mcp`,e.name)?`var(--accent-blue)`:`var(--border-color)`,background:Oe(`mcp`,e.name)?`rgba(56,189,248,0.05)`:`transparent`}])},[K(`input`,{type:`checkbox`,checked:Oe(`mcp`,e.name),onChange:t=>ke(`mcp`,e.name),style:{"accent-color":`var(--accent-blue)`}},null,40,cc),x[83]||=K(`span`,null,`🔌`,-1),K(`div`,lc,[K(`div`,uc,j(e.name),1),K(`div`,dc,j(e.description||``),1)])],4))),128))]),K(`div`,null,[x[86]||=K(`div`,{style:{"font-size":`13px`,"font-weight":`500`,color:`var(--text-secondary)`,"margin-bottom":`10px`}},`⚡ Skills`,-1),Te.value.skill.length===0?(W(),G(`div`,fc,`暂无 Skills,请先在工具配置页面添加`)):q(``,!0),(W(!0),G(U,null,V(Te.value.skill,e=>(W(),G(`label`,{key:e.name,style:k([{display:`flex`,"align-items":`center`,gap:`10px`,padding:`10px 12px`,cursor:`pointer`,"border-radius":`6px`,"margin-bottom":`4px`,border:`1px solid var(--border-color)`,transition:`all 0.2s`},{borderColor:Oe(`skill`,e.name)?`var(--accent-blue)`:`var(--border-color)`,background:Oe(`skill`,e.name)?`rgba(56,189,248,0.05)`:`transparent`}])},[K(`input`,{type:`checkbox`,checked:Oe(`skill`,e.name),onChange:t=>ke(`skill`,e.name),style:{"accent-color":`var(--accent-blue)`}},null,40,pc),x[85]||=K(`span`,null,`⚡`,-1),K(`div`,mc,[K(`div`,hc,j(e.name),1),K(`div`,gc,j(e.description||``),1)])],4))),128))])]),K(`div`,_c,[K(`div`,vc,`已选择 `+j((P.value.mcp?.length||0)+(P.value.skill?.length||0))+` 个工具`,1),K(`div`,yc,[K(`button`,{class:`btn btn-cancel`,onClick:x[43]||=e=>d.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:De},`保存配置`)])])])])):q(``,!0),f.value?(W(),G(`div`,{key:6,class:`modal-overlay`,onClick:x[47]||=Z(e=>f.value=!1,[`self`])},[K(`div`,bc,[K(`button`,{class:`modal-close`,onClick:x[45]||=e=>f.value=!1},`×`),K(`h3`,null,`📁 项目共享文件 - `+j(n.value),1),x[89]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`16px`}},`项目共享文件,Agent 可以直接读取这些文件内容`,-1),K(`div`,{style:{"margin-bottom":`12px`}},[K(`button`,{class:`btn btn-primary btn-sm`,onClick:Ie},`+ 新建文件`)]),K(`div`,xc,[Ae.value.length===0?(W(),G(`div`,Sc,`暂无共享文件`)):q(``,!0),(W(!0),G(U,null,V(Ae.value,e=>(W(),G(`div`,{key:e.name,style:{padding:`12px`,border:`1px solid var(--border-color)`,"border-radius":`8px`,"margin-bottom":`8px`}},[K(`div`,Cc,[K(`div`,wc,[x[88]||=K(`span`,{style:{"font-size":`16px`}},`📄`,-1),K(`span`,Tc,j(e.name),1)]),K(`div`,Ec,[K(`button`,{class:`btn btn-outline btn-sm`,onClick:t=>Re(e.name)},`编辑`,8,Dc),K(`button`,{class:`btn btn-danger btn-sm`,onClick:t=>Be(e.name)},`删除`,8,Oc)])]),K(`div`,kc,j(e.content?.substring(0,150))+j(e.content?.length>150?`...`:``),1)]))),128))]),K(`div`,Ac,[K(`button`,{class:`btn btn-primary`,onClick:x[46]||=e=>f.value=!1},`关闭`)])])])):q(``,!0),je.value?(W(),G(`div`,{key:7,class:`modal-overlay`,onClick:x[52]||=Z(e=>je.value=!1,[`self`])},[K(`div`,jc,[K(`button`,{class:`modal-close`,onClick:x[48]||=e=>je.value=!1},`×`),x[92]||=K(`h3`,null,`新建项目共享文件`,-1),K(`div`,Mc,[x[90]||=K(`label`,null,`文件名`,-1),B(K(`input`,{"onUpdate:modelValue":x[49]||=e=>Ne.value=e,placeholder:`如 api-docs.md`},null,512),[[Y,Ne.value]])]),K(`div`,Nc,[x[91]||=K(`label`,null,`文件内容`,-1),B(K(`textarea`,{"onUpdate:modelValue":x[50]||=e=>Pe.value=e,rows:`10`,style:{width:`100%`,padding:`12px`,"border-radius":`8px`,border:`1px solid var(--border-color)`,background:`rgba(15,23,42,0.6)`,color:`var(--text-primary)`,"font-family":`monospace`,"font-size":`13px`,resize:`vertical`,outline:`none`},placeholder:`输入文件内容...`},null,512),[[Y,Pe.value]])]),K(`div`,Pc,[K(`button`,{class:`btn btn-cancel`,onClick:x[51]||=e=>je.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:Le},`创建`)])])])):q(``,!0),Me.value?(W(),G(`div`,{key:8,class:`modal-overlay`,onClick:x[56]||=Z(e=>Me.value=!1,[`self`])},[K(`div`,Fc,[K(`button`,{class:`modal-close`,onClick:x[53]||=e=>Me.value=!1},`×`),K(`h3`,null,`编辑文件 - `+j(Ne.value),1),K(`div`,Ic,[x[93]||=K(`label`,null,`文件内容`,-1),B(K(`textarea`,{"onUpdate:modelValue":x[54]||=e=>Pe.value=e,rows:`15`,style:{width:`100%`,padding:`12px`,"border-radius":`8px`,border:`1px solid var(--border-color)`,background:`rgba(15,23,42,0.6)`,color:`var(--text-primary)`,"font-family":`monospace`,"font-size":`13px`,resize:`vertical`,outline:`none`}},null,512),[[Y,Pe.value]])]),K(`div`,Lc,[K(`button`,{class:`btn btn-cancel`,onClick:x[55]||=e=>Me.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:ze},`保存`)])])])):q(``,!0)]))}},[[`__scopeId`,`data-v-6b2f85c7`]]),zc={class:`group-chat`},Bc={class:`toolbar`},Vc={class:`toolbar-left`},Hc={class:`group-list`},Uc=[`onClick`],Wc={class:`badge`},Gc={class:`main-content`},Kc={class:`content`},qc={class:`content-header`},Jc={key:0,style:{display:`flex`,gap:`6px`}},Yc={id:`groupMessages`,class:`messages`},Xc={key:0,class:`empty`},Zc={key:0,class:`thinking-bubble`},Qc={class:`thinking-content`},$c={key:1,class:`bubble`},el={class:`label`},tl=[`innerHTML`],nl={key:2,class:`bubble`},rl=[`innerHTML`],il={key:1,class:`stream-cursor`},al={class:`msg-meta`},ol={key:0,class:`chat-bar`},sl=[`value`],cl={style:{flex:`1`,position:`relative`}},ll={key:0,class:`mention-dropdown`},ul=[`onClick`],dl={class:`modal`},fl={class:`form-group`},pl={class:`form-group`},ml={class:`checkbox-list`},hl=[`onUpdate:modelValue`],gl={class:`tag`},_l={class:`form-actions`},vl={class:`modal`},yl={class:`form-group`},bl=[`placeholder`],xl={class:`form-actions`},Sl={class:`modal`,style:{"min-width":`600px`,"max-height":`80vh`,display:`flex`,"flex-direction":`column`}},Cl={style:{display:`flex`,gap:`8px`,margin:`12px 0`}},wl={style:{"font-size":`12px`,color:`var(--text-muted)`}},Tl={style:{flex:`1`,"overflow-y":`auto`,background:`rgba(15,23,42,0.6)`,"border-radius":`8px`,border:`1px solid var(--border-color)`,padding:`12px`,"font-family":`monospace`,"font-size":`12px`,"line-height":`1.6`}},El={key:0,style:{"text-align":`center`,padding:`40px`,color:`var(--text-muted)`}},Dl={style:{display:`flex`,"align-items":`center`,gap:`8px`,"margin-bottom":`4px`}},Ol={style:{color:`var(--text-muted)`,"margin-left":`auto`}},kl={style:{color:`var(--text-secondary)`,"white-space":`pre-wrap`}},Al={style:{display:`flex`,"justify-content":`flex-end`,gap:`8px`,"margin-top":`12px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},jl={class:`modal`,style:{"min-width":`500px`,"max-height":`80vh`,display:`flex`,"flex-direction":`column`}},Ml={style:{flex:`1`,"overflow-y":`auto`}},Nl={key:0,style:{"font-size":`12px`,color:`var(--text-muted)`,padding:`8px`}},Pl={key:1,style:{"font-size":`12px`,color:`var(--text-muted)`,padding:`8px`}},Fl={style:{display:`flex`,"justify-content":`flex-end`,gap:`8px`,"margin-top":`12px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},Il={class:`modal`,style:{"min-width":`500px`,"max-height":`80vh`,display:`flex`,"flex-direction":`column`}},Ll={style:{"margin-bottom":`12px`}},Rl={style:{flex:`1`,"overflow-y":`auto`}},zl={key:0,style:{"text-align":`center`,padding:`40px`,color:`var(--text-muted)`}},Bl={style:{"font-size":`13px`,color:`var(--text-primary)`}},Vl={style:{"font-size":`11px`,color:`var(--text-muted)`}},Hl=[`onClick`],Ul={style:{display:`flex`,"justify-content":`flex-end`,"margin-top":`12px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},Wl={class:`modal`,style:{"min-width":`450px`}},Gl={style:{"margin-bottom":`16px`}},Kl={style:{display:`flex`,"flex-wrap":`wrap`,gap:`6px`}},ql=[`onClick`],Jl={key:0,style:{"margin-bottom":`16px`}},Yl={style:{display:`flex`,"flex-wrap":`wrap`,gap:`6px`}},Xl=[`onClick`],Zl={key:1,style:{color:`var(--text-muted)`,"font-size":`13px`,padding:`8px 0`}},Ql={style:{display:`flex`,"justify-content":`flex-end`,"margin-top":`16px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},$l=wo({__name:`GroupChat`,setup(e){let t=R([]),n=R([]),r=R(null),i=R([]),a=R(``),o=R(`all`),s=R(!1),c=R(!1),l=R(!1),u=R(!1),d=R(!1),f=R(!1),p=R(``),m=R(``),h=R(!1),g=R(``),_=R(0),v=async()=>{t.value=(await bo.list()).groups||[]},y=async()=>{n.value=(await vo.list()).projects||[]},b=async e=>{r.value=t.value.find(t=>t.id===e),await x()},x=async()=>{r.value&&(i.value=((await bo.messages(r.value.id)).messages||[]).filter(e=>!e.content?.startsWith(`📤`)),fn(S))},S=()=>{let e=document.getElementById(`groupMessages`);e&&(e.scrollTop=e.scrollHeight)},C=e=>{let t=e.target.value,n=e.target.selectionStart,r=t.substring(0,n),i=r.lastIndexOf(`@`);i>=0&&!r.substring(i).includes(` `)?(g.value=r.substring(i+1).toLowerCase(),h.value=!0,_.value=0):h.value=!1},w=e=>{let t=a.value,n=t.lastIndexOf(`@`);a.value=t.substring(0,n)+`@${e} `,h.value=!1,fn(()=>document.getElementById(`groupChatInput`)?.focus())},ee=e=>{if(h.value){let t=te();if(e.key===`ArrowDown`)e.preventDefault(),_.value=(_.value+1)%t.length;else if(e.key===`ArrowUp`)e.preventDefault(),_.value=(_.value-1+t.length)%t.length;else if(e.key===`Enter`&&!e.shiftKey){if(h.value&&t.length>0){e.preventDefault(),w(t[_.value]);return}e.preventDefault(),D()}}else e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),D())},te=()=>r.value?r.value.members.filter(e=>e.project!==`coordinator`).map(e=>e.project).filter(e=>e.toLowerCase().includes(g.value)):[],ne=e=>e?e.replace(/@([\w-]+)/g,`<span style="color:var(--accent-blue);font-weight:600">@$1</span>`):``,T=async()=>{if(!p.value.trim()){$.warning(`请输入群聊名称`);return}let e=n.value.filter(e=>e.selected).map(e=>({project:e.name,agent:e.agent||`claudecode`})),t=await bo.create({name:p.value,members:e});t.success?(s.value=!1,p.value=``,await v(),b(t.group.id),$.success(`群聊创建成功!`)):$.error(`创建失败: `+(t.error||`未知错误`))},re=async()=>{if(!m.value.trim()){$.warning(`请输入名称`);return}await bo.rename({id:r.value.id,name:m.value}),r.value.name=m.value,c.value=!1,v(),$.success(`群聊已重命名`)},E=async()=>{await jo(`确定删除群聊 "${r.value.name}"?删除后无法恢复。`)&&(await bo.delete(r.value.id),r.value=null,i.value=[],v(),$.success(`群聊已删除`))},ie=R(!1),ae=R([]),D=async()=>{if(!a.value.trim()||!r.value)return;let e=a.value.trim();a.value=``,h.value=!1,i.value.push({role:`user`,target:o.value,content:e,timestamp:new Date().toISOString()}),S();let t={role:`thinking`,content:``,timestamp:new Date().toISOString()};i.value.push(t);let n={role:`assistant`,agent:o.value===`all`?`群发`:o.value,content:``,timestamp:new Date().toISOString()};ie.value=!0,ae.value=[];let s=(await bo.send({group_id:r.value.id,target_project:o.value===`all`?void 0:o.value,message:e})).body.getReader(),c=new TextDecoder,l=!1,u=!1;for(;;){let{done:e,value:r}=await s.read();if(e)break;let a=c.decode(r);for(let e of a.split(`
39
+ `))if(e.startsWith(`data: `))try{let r=JSON.parse(e.slice(6));if(r.type===`status`)ae.value.push(r.text),t.content=ae.value.join(`
40
+ `),S();else if(r.type===`chunk`)u||=(i.value.push(n),!0),n.content+=r.text,r.text.includes(`@`)&&(l=!0),S();else if(r.type===`done`){ie.value=!1;let e=i.value.indexOf(t);e!==-1&&i.value.splice(e,1)}else r.type===`error`&&(u||=(i.value.push(n),!0),n.content=`❌ 错误: `+r.text,ie.value=!1)}catch{}}ie.value=!1;let d=i.value.indexOf(t);d!==-1&&i.value.splice(d,1),(l||o.value===`coordinator`)&&oe()},oe=async()=>{if(!r.value)return;let e=((await(await fetch(`/api/groups/messages?id=${r.value.id}&limit=100`)).json()).messages||[]).length,t=0,n=setInterval(async()=>{if(t++,t>40){clearInterval(n);return}let a=(await(await fetch(`/api/groups/messages?id=${r.value.id}&limit=100`)).json()).messages||[];if(a.length>e){clearInterval(n);let t=a.slice(e).filter(e=>!e.content?.startsWith(`📤`));for(let e of t)i.value.push(e);S()}},3e3)},O=R([]),se=R(``),ce=null,le=async()=>{r.value&&(O.value=(await(await fetch(`/api/groups/logs?id=${r.value.id}&limit=100`)).json()).logs||[],f.value=!0,ue())},ue=()=>{ce&&ce.close(),r.value&&(ce=new EventSource(`/api/groups/logs/stream?id=${r.value.id}`),ce.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`log`&&(O.value.push(t.log),fn(()=>{let e=document.getElementById(`logsContent`);e&&(e.scrollTop=e.scrollHeight)}))}catch{}},ce.onerror=()=>{console.log(`日志流连接断开`)})},de=()=>{ce&&=(ce.close(),null)},fe=async()=>{await jo(`确定清空群聊日志?清空后无法恢复。`)&&(await fetch(`/api/groups/logs/clear`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({group_id:r.value.id})}),O.value=[],$.success(`日志已清空`))},pe=()=>se.value?O.value.filter(e=>e.category===se.value):O.value,me=async()=>{if(!r.value)return;let e=await fetch(`/api/groups/tools?id=${r.value.id}`).then(e=>e.json());groupTools.value=e.tools||{mcp:[],skill:[]},u.value=!0},he=async()=>{await fetch(`/api/groups/tools`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({group_id:r.value.id,tools:groupTools.value})}),u.value=!1,$.success(`工具配置已保存`)},ge=R([]),_e=async()=>{r.value&&(ge.value=(await fetch(`/api/groups/shared?id=${r.value.id}`).then(e=>e.json())).files||[],d.value=!0)},ve=async()=>{let e=document.createElement(`div`);e.className=`modal-overlay`,e.innerHTML=`<div class="modal">
41
+ <button class="modal-close" onclick="this.closest('.modal-overlay').remove()">&times;</button>
42
+ <h3>新建共享文件</h3>
43
+ <div class="form-group">
44
+ <label>文件名</label>
45
+ <input type="text" id="newGroupFileName" placeholder="如 api-docs.md">
46
+ </div>
47
+ <div class="form-group">
48
+ <label>文件内容</label>
49
+ <textarea id="newGroupFileContent" rows="8" style="width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border-color);background:rgba(15,23,42,0.6);color:var(--text-primary);font-size:13px;resize:vertical;outline:none" placeholder="输入文件内容..."></textarea>
50
+ </div>
51
+ <div class="form-actions">
52
+ <button class="btn btn-cancel" onclick="this.closest('.modal-overlay').remove()">取消</button>
53
+ <button class="btn btn-primary" onclick="submitAddGroupFile()">创建</button>
54
+ </div>
55
+ </div>`,e.onclick=t=>{t.target===e&&e.remove()},document.body.appendChild(e)},ye=async e=>{await jo(`确定删除文件 "${e}"?删除后无法恢复。`)&&(await fetch(`/api/groups/shared/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({group_id:r.value.id,name:e})}),_e(),$.success(`文件已删除`))},be=()=>{if(!r.value)return[];let e=r.value.members?.map(e=>e.project)||[];return n.value.filter(t=>!e.includes(t.name))},xe=async(e,t)=>{let n=await(await fetch(`/api/groups/members`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:r.value.id,add:[{project:e,agent:t}]})})).json();n.success?(r.value=n.group,v(),$.success(`已添加 ${e} 到群聊`),l.value=!1,fn(()=>{l.value=!0})):$.error(`添加失败: `+(n.error||`未知错误`))},Se=async e=>{if(!await jo(`确定移除 ${e}?`))return;let t=await(await fetch(`/api/groups/members`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:r.value.id,remove:[e]})})).json();t.success?(r.value=t.group,v(),$.success(`已移除 ${e}`),l.value=!1,fn(()=>{l.value=!0})):$.error(`移除失败: `+(t.error||`未知错误`))},M=null,Ce=R(0),we=()=>{M&&clearInterval(M),r.value&&(M=setInterval(async()=>{if(!r.value){clearInterval(M);return}try{let e=(await(await fetch(`/api/groups/messages?id=${r.value.id}&limit=100`)).json()).messages||[];if(e.length>Ce.value&&Ce.value>0){let t=e.slice(Ce.value);for(let e of t)e.content?.startsWith(`📤`)||i.value.push(e);S()}Ce.value=e.length}catch(e){console.error(`轮询消息失败:`,e)}},5e3))},N=()=>{M&&=(clearInterval(M),null)};Qn(()=>{v(),y()});let P=b;return b=async e=>{N(),de(),await P(e),Ce.value=i.value.length,we()},(e,g)=>(W(),G(`div`,zc,[K(`div`,Bc,[K(`div`,Vc,[g[33]||=K(`span`,{class:`label`},`群聊:`,-1),K(`div`,Hc,[(W(!0),G(U,null,V(t.value,e=>(W(),G(`div`,{key:e.id,class:A([`group-card`,{active:r.value?.id===e.id}]),onClick:t=>Wt(b)(e.id)},[g[32]||=K(`span`,null,`💬`,-1),K(`span`,null,j(e.name),1),K(`span`,Wc,j(e.members?.length||0)+`人`,1)],10,Uc))),128))])]),K(`button`,{class:`btn btn-primary`,onClick:g[0]||=e=>s.value=!0},`+ 新建群聊`)]),K(`div`,Gc,[K(`div`,Kc,[K(`div`,qc,[K(`span`,null,j(r.value?`💬 `+r.value.name:`选择或创建一个群聊`),1),r.value?(W(),G(`div`,Jc,[K(`button`,{class:`btn btn-outline btn-sm`,onClick:g[1]||=e=>me()},`🔧 工具`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:g[2]||=e=>_e()},`📁 共享文件`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:g[3]||=e=>le()},`📋 日志`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:g[4]||=e=>l.value=!0},`👥 成员`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:g[5]||=e=>x()},`↻ 刷新`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:g[6]||=e=>{m.value=r.value.name,c.value=!0}},`✏️ 重命名`),K(`button`,{class:`btn btn-danger btn-sm`,onClick:E},`🗑️ 删除`)])):q(``,!0)]),K(`div`,Yc,[r.value?(W(!0),G(U,{key:1},V(i.value,(e,t)=>(W(),G(`div`,{key:t,class:A([`message`,e.role])},[e.role===`thinking`?(W(),G(`div`,Zc,[g[35]||=K(`div`,{class:`thinking-header`},[K(`span`,{class:`thinking-icon`},`🧠`),K(`span`,null,`Agent 思考中...`)],-1),K(`div`,Qc,j(e.content),1),g[36]||=K(`span`,{class:`stream-cursor`},`▌`,-1)])):e.role===`user`?(W(),G(`div`,$c,[K(`span`,el,`👤 → @`+j(e.target),1),K(`div`,{innerHTML:ne(e.content)},null,8,tl)])):(W(),G(`div`,nl,[K(`span`,{class:A([`label`,{agent:e.agent!==`system`,system:e.agent===`system`}])},j(e.agent===`system`?`⚠️ 系统`:`🤖 `+(e.agent||`Agent`)),3),e.content?(W(),G(`div`,{key:0,innerHTML:ne(e.content)},null,8,rl)):q(``,!0),ie.value&&t===i.value.length-1?(W(),G(`span`,il,`▌`)):q(``,!0)])),K(`div`,al,j(new Date(e.timestamp).toLocaleString(`zh-CN`)),1)],2))),128)):(W(),G(`div`,Xc,[...g[34]||=[K(`span`,{class:`icon`},`💬`,-1),K(`span`,null,`开始群聊协作`,-1),K(`span`,{class:`sub`},`创建群聊并添加 Agent 成员`,-1)]]))]),r.value?(W(),G(`div`,ol,[B(K(`select`,{"onUpdate:modelValue":g[7]||=e=>o.value=e,class:`select`},[g[37]||=K(`option`,{value:`all`},`📢 群发`,-1),(W(!0),G(U,null,V(r.value.members,e=>(W(),G(`option`,{key:e.project,value:e.project},j(e.project),9,sl))),128))],512),[[X,o.value]]),K(`div`,cl,[B(K(`textarea`,{id:`groupChatInput`,"onUpdate:modelValue":g[8]||=e=>a.value=e,placeholder:`输入消息... (@ 提及其他Agent)`,rows:`1`,onKeydown:ee,onInput:C},null,544),[[Y,a.value]]),h.value&&te().length>0?(W(),G(`div`,ll,[(W(!0),G(U,null,V(te(),(e,t)=>(W(),G(`div`,{key:e,class:A([`mention-item`,{active:t===_.value}]),onClick:t=>w(e)},[g[38]||=K(`span`,null,`@`,-1),K(`span`,null,j(e),1)],10,ul))),128))])):q(``,!0)]),K(`button`,{class:`btn btn-primary chat-send`,onClick:g[9]||=e=>D()},`发送 ➤`)])):q(``,!0)])]),s.value?(W(),G(`div`,{key:0,class:`modal-overlay`,onClick:g[13]||=Z(e=>s.value=!1,[`self`])},[K(`div`,dl,[K(`button`,{class:`modal-close`,onClick:g[10]||=e=>s.value=!1},`×`),g[41]||=K(`h3`,null,`新建群聊`,-1),K(`div`,fl,[g[39]||=K(`label`,null,`群聊名称`,-1),B(K(`input`,{"onUpdate:modelValue":g[11]||=e=>p.value=e,placeholder:`如:智评生活开发群`},null,512),[[Y,p.value]])]),K(`div`,pl,[g[40]||=K(`label`,null,`选择加入的项目 Agent`,-1),K(`div`,ml,[(W(!0),G(U,null,V(n.value,e=>(W(),G(`label`,{key:e.name,class:`checkbox-item`},[B(K(`input`,{type:`checkbox`,"onUpdate:modelValue":t=>e.selected=t},null,8,hl),[[no,e.selected]]),K(`span`,null,j(e.name),1),K(`span`,gl,j(e.agent),1)]))),128))])]),K(`div`,_l,[K(`button`,{class:`btn btn-cancel`,onClick:g[12]||=e=>s.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:T},`创建`)])])])):q(``,!0),c.value?(W(),G(`div`,{key:1,class:`modal-overlay`,onClick:g[17]||=Z(e=>c.value=!1,[`self`])},[K(`div`,vl,[K(`button`,{class:`modal-close`,onClick:g[14]||=e=>c.value=!1},`×`),g[43]||=K(`h3`,null,`✏️ 重命名群聊`,-1),K(`div`,yl,[g[42]||=K(`label`,null,`新名称`,-1),B(K(`input`,{"onUpdate:modelValue":g[15]||=e=>m.value=e,placeholder:r.value?.name},null,8,bl),[[Y,m.value]])]),K(`div`,xl,[K(`button`,{class:`btn btn-cancel`,onClick:g[16]||=e=>c.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:re},`确定`)])])])):q(``,!0),f.value?(W(),G(`div`,{key:2,class:`modal-overlay`,onClick:g[21]||=Z(e=>f.value=!1,[`self`])},[K(`div`,Sl,[K(`button`,{class:`modal-close`,onClick:g[18]||=e=>f.value=!1},`×`),K(`h3`,null,`📋 群聊日志 - `+j(r.value?.name),1),K(`div`,Cl,[B(K(`select`,{"onUpdate:modelValue":g[19]||=e=>se.value=e,style:{padding:`6px 12px`,"border-radius":`6px`,border:`1px solid var(--border-color)`,background:`var(--bg-secondary)`,color:`var(--text-primary)`,"font-size":`12px`}},[...g[44]||=[zi(`<option value="" data-v-fd2060e8>全部类别</option><option value="message" data-v-fd2060e8>💬 消息</option><option value="response" data-v-fd2060e8>🤖 响应</option><option value="forward" data-v-fd2060e8>📤 转发</option><option value="error" data-v-fd2060e8>❌ 错误</option>`,5)]],512),[[X,se.value]]),g[45]||=K(`div`,{style:{flex:`1`}},null,-1),K(`span`,wl,`共 `+j(pe().length)+` 条`,1)]),K(`div`,Tl,[pe().length===0?(W(),G(`div`,El,`暂无日志`)):q(``,!0),(W(!0),G(U,null,V(pe(),(e,t)=>(W(),G(`div`,{key:t,style:k([{"margin-bottom":`8px`,padding:`8px`,"border-radius":`4px`,"border-left":`3px solid`},{borderColor:e.level===`error`?`var(--accent-red)`:e.level===`success`?`var(--accent-green)`:`var(--accent-blue)`}])},[K(`div`,Dl,[K(`span`,null,j(e.level===`error`?`❌`:e.level===`success`?`✅`:`ℹ️`),1),K(`span`,{style:k({color:e.level===`error`?`var(--accent-red)`:e.level===`success`?`var(--accent-green)`:`var(--accent-blue)`,fontWeight:500})},j(e.level?.toUpperCase()),5),K(`span`,Ol,j(new Date(e.timestamp).toLocaleString(`zh-CN`)),1)]),K(`div`,kl,j(e.message),1)],4))),128))]),K(`div`,Al,[K(`button`,{class:`btn btn-danger btn-sm`,onClick:fe},`清空日志`),K(`button`,{class:`btn btn-primary`,onClick:g[20]||=e=>f.value=!1},`关闭`)])])])):q(``,!0),u.value?(W(),G(`div`,{key:3,class:`modal-overlay`,onClick:g[24]||=Z(e=>u.value=!1,[`self`])},[K(`div`,jl,[K(`button`,{class:`modal-close`,onClick:g[22]||=e=>u.value=!1},`×`),K(`h3`,null,`🔧 群聊工具配置 - `+j(r.value?.name),1),g[52]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`16px`}},`配置此群聊可用的工具`,-1),K(`div`,Ml,[g[50]||=K(`div`,{style:{"font-size":`13px`,"font-weight":`500`,color:`var(--text-secondary)`,"margin-bottom":`10px`}},`🔌 MCP 服务器`,-1),(W(!0),G(U,null,V(e.groupTools.mcp,e=>(W(),G(`div`,{key:e,style:{display:`flex`,"align-items":`center`,gap:`8px`,padding:`8px`,border:`1px solid var(--border-color)`,"border-radius":`6px`,"margin-bottom":`6px`}},[g[46]||=K(`input`,{type:`checkbox`,checked:!0,style:{"accent-color":`var(--accent-blue)`}},null,-1),g[47]||=K(`span`,null,`🔌`,-1),K(`span`,null,j(e),1)]))),128)),e.groupTools.mcp.length===0?(W(),G(`div`,Nl,`暂无配置`)):q(``,!0),g[51]||=K(`div`,{style:{"font-size":`13px`,"font-weight":`500`,color:`var(--text-secondary)`,margin:`16px 0 10px`}},`⚡ Skills`,-1),(W(!0),G(U,null,V(e.groupTools.skill,e=>(W(),G(`div`,{key:e,style:{display:`flex`,"align-items":`center`,gap:`8px`,padding:`8px`,border:`1px solid var(--border-color)`,"border-radius":`6px`,"margin-bottom":`6px`}},[g[48]||=K(`input`,{type:`checkbox`,checked:!0,style:{"accent-color":`var(--accent-blue)`}},null,-1),g[49]||=K(`span`,null,`⚡`,-1),K(`span`,null,j(e),1)]))),128)),e.groupTools.skill.length===0?(W(),G(`div`,Pl,`暂无配置`)):q(``,!0)]),K(`div`,Fl,[K(`button`,{class:`btn btn-cancel`,onClick:g[23]||=e=>u.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:he},`保存`)])])])):q(``,!0),d.value?(W(),G(`div`,{key:4,class:`modal-overlay`,onClick:g[28]||=Z(e=>d.value=!1,[`self`])},[K(`div`,Il,[K(`button`,{class:`modal-close`,onClick:g[25]||=e=>d.value=!1},`×`),K(`h3`,null,`📁 群聊共享文件 - `+j(r.value?.name),1),g[53]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`16px`}},`Agent 可以直接读取这些文件`,-1),K(`div`,Ll,[K(`button`,{class:`btn btn-primary btn-sm`,onClick:g[26]||=e=>ve()},`+ 新建文件`)]),K(`div`,Rl,[ge.value.length===0?(W(),G(`div`,zl,`暂无共享文件`)):q(``,!0),(W(!0),G(U,null,V(ge.value,e=>(W(),G(`div`,{key:e.name,style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,padding:`10px`,border:`1px solid var(--border-color)`,"border-radius":`8px`,"margin-bottom":`8px`}},[K(`div`,null,[K(`div`,Bl,`📄 `+j(e.name),1),K(`div`,Vl,j(new Date(e.created_at).toLocaleString(`zh-CN`)),1)]),K(`button`,{class:`btn btn-danger btn-sm`,onClick:t=>ye(e.name)},`删除`,8,Hl)]))),128))]),K(`div`,Ul,[K(`button`,{class:`btn btn-primary`,onClick:g[27]||=e=>d.value=!1},`关闭`)])])])):q(``,!0),l.value?(W(),G(`div`,{key:5,class:`modal-overlay`,onClick:g[31]||=Z(e=>l.value=!1,[`self`])},[K(`div`,Wl,[K(`button`,{class:`modal-close`,onClick:g[29]||=e=>l.value=!1},`×`),K(`h3`,null,`👥 成员管理 - `+j(r.value?.name),1),K(`div`,Gl,[g[55]||=K(`div`,{style:{"font-size":`13px`,color:`var(--text-secondary)`,"margin-bottom":`8px`}},`当前成员`,-1),K(`div`,Kl,[g[54]||=K(`span`,{class:`tag`,style:{background:`rgba(56,189,248,0.1)`,color:`var(--accent-blue)`,padding:`6px 12px`}},`🎯 协调者(不可移除)`,-1),(W(!0),G(U,null,V(r.value?.members?.filter(e=>e.project!==`coordinator`),e=>(W(),G(`span`,{key:e.project,class:`tag`,style:{padding:`6px 12px`,display:`flex`,"align-items":`center`,gap:`4px`}},[Ri(j(e.project)+` `,1),K(`span`,{style:{cursor:`pointer`,color:`var(--accent-red)`,"margin-left":`4px`},onClick:t=>Se(e.project)},`×`,8,ql)]))),128))])]),be().length>0?(W(),G(`div`,Jl,[g[56]||=K(`div`,{style:{"font-size":`13px`,color:`var(--text-secondary)`,"margin-bottom":`8px`}},`添加成员`,-1),K(`div`,Yl,[(W(!0),G(U,null,V(be(),e=>(W(),G(`button`,{key:e.name,class:`btn btn-outline btn-sm`,onClick:t=>xe(e.name,e.agent||`claudecode`)},` + `+j(e.name),9,Xl))),128))])])):(W(),G(`div`,Zl,`所有项目都已加入群聊`)),K(`div`,Ql,[K(`button`,{class:`btn btn-primary`,onClick:g[30]||=e=>l.value=!1},`关闭`)])])])):q(``,!0)]))}},[[`__scopeId`,`data-v-fd2060e8`]]),eu={class:`tools-config`},tu={class:`toolbar`},nu={style:{display:`flex`,gap:`12px`}},ru={class:`count`},iu={class:`main-content`},au={class:`sidebar`},ou={class:`category-list`},su={class:`badge`},cu={class:`badge`},lu={class:`badge`},uu={class:`content`},du={class:`content-header`},fu={class:`tool-list`},pu={key:0,class:`empty`},mu={class:`tool-header`},hu={style:{display:`flex`,"align-items":`center`,gap:`10px`}},gu={style:{"font-size":`20px`}},_u={class:`tool-name`},vu={class:`tool-desc`},yu={key:0,class:`tool-cmd`},bu={style:{display:`flex`,"align-items":`center`,gap:`8px`}},xu={class:`toggle`},Su=[`checked`,`onChange`],Cu=[`onClick`],wu={class:`modal`},Tu={class:`form-group`},Eu={class:`form-group`},Du={class:`form-group`},Ou={class:`form-actions`},ku={class:`modal`},Au={class:`form-group`},ju={class:`form-group`},Mu={class:`form-actions`},Nu=wo({__name:`ToolsConfig`,setup(e){let t=R([]),n=R([]),r=R(`all`),i=R(!1),a=R(!1),o=R({name:``,description:``,command:``,env:``}),s=R({name:``,description:``}),c=async()=>{let[e,r]=await Promise.all([So.mcp.list(),So.skills.list()]);t.value=(e.tools||[]).map(e=>({...e,type:`mcp`,enabled:e.enabled!==!1})),n.value=(r.skills||[]).map(e=>({...e,type:`skill`,enabled:e.enabled!==!1}))},l=()=>r.value===`mcp`?t.value:r.value===`skill`?n.value:[...t.value,...n.value],u=async(e,t)=>{t.enabled=!t.enabled,e===`mcp`?await So.mcp.create(t):await So.skills.create(t)},d=async(e,t)=>{await jo(`确定删除工具 "${t}"?删除后无法恢复。`)&&(e===`mcp`?await So.mcp.delete(t):await So.skills.delete(t),c(),$.success(`工具已删除`))},f=async()=>{if(!o.value.name){$.warning(`请输入名称`);return}await So.mcp.create({...o.value,enabled:!0}),i.value=!1,o.value={name:``,description:``,command:``,env:``},c(),$.success(`MCP 服务器添加成功`)},p=async()=>{if(!s.value.name){$.warning(`请输入名称`);return}await So.skills.create({...s.value,enabled:!0}),a.value=!1,s.value={name:``,description:``},c(),$.success(`Skill 添加成功`)};return Qn(c),(e,m)=>(W(),G(`div`,eu,[K(`div`,tu,[K(`div`,nu,[K(`button`,{class:`btn btn-primary btn-sm`,onClick:m[0]||=e=>i.value=!0},`+ MCP 服务器`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:m[1]||=e=>a.value=!0},`+ Skill`)]),K(`span`,ru,j(t.value.length+n.value.length)+` 个工具`,1)]),K(`div`,iu,[K(`div`,au,[m[23]||=K(`div`,{class:`sidebar-header`},`🔧 工具分类`,-1),K(`div`,ou,[K(`div`,{class:A([`category-item`,{active:r.value===`all`}]),onClick:m[2]||=e=>r.value=`all`},[m[17]||=K(`span`,null,`🔧`,-1),m[18]||=K(`span`,null,`全部工具`,-1),K(`span`,su,j(t.value.length+n.value.length),1)],2),K(`div`,{class:A([`category-item`,{active:r.value===`mcp`}]),onClick:m[3]||=e=>r.value=`mcp`},[m[19]||=K(`span`,null,`🔌`,-1),m[20]||=K(`span`,null,`MCP 服务器`,-1),K(`span`,cu,j(t.value.length),1)],2),K(`div`,{class:A([`category-item`,{active:r.value===`skill`}]),onClick:m[4]||=e=>r.value=`skill`},[m[21]||=K(`span`,null,`⚡`,-1),m[22]||=K(`span`,null,`Skills`,-1),K(`span`,lu,j(n.value.length),1)],2)])]),K(`div`,uu,[K(`div`,du,[K(`span`,null,j(r.value===`all`?`全部工具`:r.value===`mcp`?`MCP 服务器`:`Skills`),1),K(`button`,{class:`btn btn-outline btn-sm`,onClick:m[5]||=e=>c()},`↻ 刷新`)]),K(`div`,fu,[l().length===0?(W(),G(`div`,pu,[...m[24]||=[K(`span`,{class:`icon`},`🔧`,-1),K(`span`,null,`暂无工具`,-1)]])):q(``,!0),(W(!0),G(U,null,V(l(),e=>(W(),G(`div`,{key:e.name,class:`tool-card`},[K(`div`,mu,[K(`div`,hu,[K(`span`,gu,j(e.type===`mcp`?`🔌`:`⚡`),1),K(`div`,null,[K(`div`,_u,j(e.name),1),K(`div`,vu,j(e.description||``),1),e.command?(W(),G(`div`,yu,j(e.command),1)):q(``,!0)])]),K(`div`,bu,[K(`span`,{class:`badge`,style:k({background:e.type===`mcp`?`rgba(167,139,250,0.2)`:`rgba(250,204,21,0.2)`,color:e.type===`mcp`?`var(--accent-purple)`:`var(--accent-yellow)`})},j(e.type===`mcp`?`MCP`:`Skill`),5),K(`label`,xu,[K(`input`,{type:`checkbox`,checked:e.enabled,onChange:t=>u(e.type,e)},null,40,Su),K(`span`,null,j(e.enabled?`启用`:`禁用`),1)]),K(`button`,{class:`btn btn-danger btn-sm`,onClick:t=>d(e.type,e.name)},`删除`,8,Cu)])])]))),128))])])]),i.value?(W(),G(`div`,{key:0,class:`modal-overlay`,onClick:m[11]||=Z(e=>i.value=!1,[`self`])},[K(`div`,wu,[K(`button`,{class:`modal-close`,onClick:m[6]||=e=>i.value=!1},`×`),m[28]||=K(`h3`,null,`添加 MCP 服务器`,-1),K(`div`,Tu,[m[25]||=K(`label`,null,`名称`,-1),B(K(`input`,{"onUpdate:modelValue":m[7]||=e=>o.value.name=e,placeholder:`如 mcp-feishu`},null,512),[[Y,o.value.name]])]),K(`div`,Eu,[m[26]||=K(`label`,null,`描述`,-1),B(K(`input`,{"onUpdate:modelValue":m[8]||=e=>o.value.description=e,placeholder:`简要描述功能`},null,512),[[Y,o.value.description]])]),K(`div`,Du,[m[27]||=K(`label`,null,`启动命令`,-1),B(K(`input`,{"onUpdate:modelValue":m[9]||=e=>o.value.command=e,placeholder:`如 npx @anthropic-ai/mcp-server`},null,512),[[Y,o.value.command]])]),K(`div`,Ou,[K(`button`,{class:`btn btn-cancel`,onClick:m[10]||=e=>i.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:f},`添加`)])])])):q(``,!0),a.value?(W(),G(`div`,{key:1,class:`modal-overlay`,onClick:m[16]||=Z(e=>a.value=!1,[`self`])},[K(`div`,ku,[K(`button`,{class:`modal-close`,onClick:m[12]||=e=>a.value=!1},`×`),m[31]||=K(`h3`,null,`添加 Skill`,-1),K(`div`,Au,[m[29]||=K(`label`,null,`名称`,-1),B(K(`input`,{"onUpdate:modelValue":m[13]||=e=>s.value.name=e,placeholder:`如 code-review`},null,512),[[Y,s.value.name]])]),K(`div`,ju,[m[30]||=K(`label`,null,`描述`,-1),B(K(`input`,{"onUpdate:modelValue":m[14]||=e=>s.value.description=e,placeholder:`简要描述功能`},null,512),[[Y,s.value.description]])]),K(`div`,Mu,[K(`button`,{class:`btn btn-cancel`,onClick:m[15]||=e=>a.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:p},`添加`)])])])):q(``,!0)]))}},[[`__scopeId`,`data-v-a2f315d4`]]),Pu={class:`task-manager`},Fu={class:`toolbar`},Iu={class:`stats`},Lu={class:`stat`},Ru={class:`stat-value`},zu={class:`stat`},Bu={class:`stat-value`,style:{color:`var(--accent-yellow)`}},Vu={class:`stat`},Hu={class:`stat-value`,style:{color:`var(--accent-blue)`}},Uu={class:`stat`},Wu={class:`stat-value`,style:{color:`var(--accent-green)`}},Gu={style:{display:`flex`,gap:`8px`}},Ku={class:`content`},qu={key:0,class:`empty`},Ju={key:1,class:`table`},Yu={key:0,class:`desc`},Xu={style:{display:`flex`,"align-items":`center`,gap:`6px`}},Zu={class:`tag`},Qu=[`value`,`onChange`],$u={class:`time`},ed={style:{display:`flex`,gap:`4px`}},td=[`onClick`],nd=[`onClick`],rd=[`onClick`],id=[`onClick`],ad={class:`modal`,style:{"min-width":`500px`}},od={class:`form-group`},sd={class:`form-group`},cd={class:`form-group`},ld={key:0,class:`form-group`},ud=[`value`],dd={key:1,class:`form-group`},fd=[`value`],pd={class:`form-group`},md={class:`form-group`},hd={style:{display:`flex`,"align-items":`center`,gap:`8px`}},gd={class:`form-actions`},_d={class:`modal`,style:{"min-width":`450px`}},vd={style:{"margin-top":`16px`}},yd={style:{display:`grid`,"grid-template-columns":`repeat(2,1fr)`,gap:`12px`}},bd={style:{padding:`16px`,background:`var(--bg-glass)`,"border-radius":`8px`,"text-align":`center`}},xd={style:{"font-size":`28px`,"font-weight":`600`,color:`var(--accent-blue)`}},Sd={style:{padding:`16px`,background:`var(--bg-glass)`,"border-radius":`8px`,"text-align":`center`}},Cd={style:{"font-size":`28px`,"font-weight":`600`,color:`var(--accent-green)`}},wd={class:`form-actions`,style:{"margin-top":`20px`}},Td={class:`modal`,style:{"min-width":`600px`,"max-height":`80vh`,display:`flex`,"flex-direction":`column`}},Ed={style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`12px`}},Dd={style:{flex:`1`,"overflow-y":`auto`,background:`rgba(15,23,42,0.6)`,"border-radius":`8px`,border:`1px solid var(--border-color)`,padding:`12px`,"font-family":`monospace`,"font-size":`12px`,"line-height":`1.6`}},Od={key:0,style:{"text-align":`center`,padding:`40px`,color:`var(--text-muted)`}},kd={style:{display:`flex`,"align-items":`center`,gap:`8px`,"margin-bottom":`4px`}},Ad={style:{color:`var(--text-muted)`,"margin-left":`auto`}},jd={style:{color:`var(--text-secondary)`,"white-space":`pre-wrap`,"word-break":`break-all`}},Md={style:{display:`flex`,"justify-content":`flex-end`,gap:`8px`,"margin-top":`12px`,"padding-top":`12px`,"border-top":`1px solid var(--border-color)`}},Nd=wo({__name:`TaskManager`,setup(e){let t=R([]),n=R([]),r=R([]),i=R({total:0,pending:0,inProgress:0,done:0}),a=R(!1),o=R(!1),s=R(!1),c=R([]),l=R(null),u=R({title:``,description:``,assignType:`group`,groupId:``,projectId:``,priority:`normal`,autoExecute:!0}),d=async()=>{t.value=(await xo.list()).tasks||[],m()},f=async()=>{n.value=(await bo.list()).groups||[]},p=async()=>{r.value=(await vo.list()).projects||[]},m=()=>{i.value={total:t.value.length,pending:t.value.filter(e=>e.status===`pending`).length,inProgress:t.value.filter(e=>e.status===`in_progress`).length,done:t.value.filter(e=>e.status===`done`).length}},h=async()=>{if(!u.value.title){alert(`请输入任务标题`);return}let e=await xo.create({title:u.value.title,description:u.value.description,target_project:u.value.assignType===`project`?u.value.projectId:`coordinator`,group_id:u.value.assignType===`group`?u.value.groupId:null,priority:u.value.priority,assign_type:u.value.assignType});e.success?(a.value=!1,d(),$.success(`任务创建成功!`)):$.error(`创建失败: `+(e.error||`未知错误`))},g=async(e,t)=>{await xo.update({id:e,status:t}),d(),$.info(`任务状态已更新`)},_=async e=>{await jo(`确定删除此任务?删除后无法恢复。`)&&(await xo.delete(e),d(),$.success(`任务已删除`))},v=async e=>{let t=await(await fetch(`/api/tasks/queue`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({task_id:e})})).json();t.success?($.success(`任务已加入队列`),d()):$.error(`加入队列失败: `+(t.error||`未知错误`))},y=async()=>{let e=t.value.filter(e=>e.status===`pending`);if(e.length===0){alert(`没有待处理的任务`);return}confirm(`确定将 ${e.length} 个任务加入队列?`)&&(await(await fetch(`/api/tasks/queue-batch`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({task_ids:e.map(e=>e.id)})})).json()).success&&(alert(`${e.length} 个任务已加入队列`),d())},b=R(null),x=async()=>{b.value=await(await fetch(`/api/tasks/queue/status`)).json(),o.value=!0},S=async e=>{l.value=e,c.value=(await(await fetch(`/api/tasks/logs?task_id=${e}&limit=100`)).json()).logs||[],s.value=!0},C=async e=>{confirm(`确定重新派发任务 "${e.title}"?`)&&(await xo.update({id:e.id,status:`pending`}),d(),alert(`任务已重新派发`))},w={high:`🔴 高`,normal:`🟡 中`,low:`⚪ 低`};return Qn(()=>{d(),f(),p()}),(e,l)=>(W(),G(`div`,Pu,[K(`div`,Fu,[K(`div`,Iu,[K(`div`,Lu,[l[19]||=K(`span`,{class:`stat-label`},`总计`,-1),K(`span`,Ru,j(i.value.total),1)]),K(`div`,zu,[l[20]||=K(`span`,{class:`stat-label`,style:{color:`var(--accent-yellow)`}},`待处理`,-1),K(`span`,Bu,j(i.value.pending),1)]),K(`div`,Vu,[l[21]||=K(`span`,{class:`stat-label`,style:{color:`var(--accent-blue)`}},`进行中`,-1),K(`span`,Hu,j(i.value.inProgress),1)]),K(`div`,Uu,[l[22]||=K(`span`,{class:`stat-label`,style:{color:`var(--accent-green)`}},`已完成`,-1),K(`span`,Wu,j(i.value.done),1)])]),K(`div`,Gu,[K(`button`,{class:`btn btn-outline btn-sm`,onClick:l[0]||=e=>x()},`📊 队列状态`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:l[1]||=e=>y()},`📥 全部加入队列`),K(`button`,{class:`btn btn-primary`,onClick:l[2]||=e=>a.value=!0},`+ 新建任务`)])]),K(`div`,Ku,[t.value.length===0?(W(),G(`div`,qu,[...l[23]||=[K(`span`,{class:`icon`},`📋`,-1),K(`span`,null,`暂无任务`,-1),K(`span`,{class:`sub`},`点击右上角创建并派发任务`,-1)]])):(W(),G(`table`,Ju,[l[25]||=K(`thead`,null,[K(`tr`,null,[K(`th`,null,`标题`),K(`th`,null,`分配目标`),K(`th`,null,`优先级`),K(`th`,null,`状态`),K(`th`,null,`创建时间`),K(`th`,null,`操作`)])],-1),K(`tbody`,null,[(W(!0),G(U,null,V(t.value,e=>(W(),G(`tr`,{key:e.id},[K(`td`,null,[K(`strong`,null,j(e.title),1),e.description?(W(),G(`div`,Yu,j(e.description?.substring(0,80)),1)):q(``,!0)]),K(`td`,null,[K(`div`,Xu,[K(`span`,null,j(e.assign_type===`group`?`💬`:`🤖`),1),K(`span`,Zu,j(e.assign_type===`group`?n.value.find(t=>t.id===e.group_id)?.name||e.group_id:e.target_project),1)])]),K(`td`,null,[K(`span`,{class:A(`priority-`+e.priority)},j(w[e.priority]),3)]),K(`td`,null,[K(`select`,{value:e.status,onChange:t=>g(e.id,t.target.value),class:`status-select`},[...l[24]||=[K(`option`,{value:`pending`},`待处理`,-1),K(`option`,{value:`in_progress`},`进行中`,-1),K(`option`,{value:`done`},`已完成`,-1)]],40,Qu)]),K(`td`,$u,j(new Date(e.created_at).toLocaleString(`zh-CN`)),1),K(`td`,null,[K(`div`,ed,[e.status===`pending`?(W(),G(`button`,{key:0,class:`btn btn-primary btn-sm`,onClick:t=>v(e.id),title:`加入队列`},`📥`,8,td)):q(``,!0),K(`button`,{class:`btn btn-outline btn-sm`,onClick:t=>S(e.id),title:`查看日志`},`📋`,8,nd),K(`button`,{class:`btn btn-outline btn-sm`,onClick:t=>C(e),title:`重新派发`},`🔄`,8,rd),K(`button`,{class:`btn btn-danger btn-sm`,onClick:t=>_(e.id),title:`删除`},`🗑️`,8,id)])])]))),128))])]))]),a.value?(W(),G(`div`,{key:0,class:`modal-overlay`,onClick:l[12]||=Z(e=>a.value=!1,[`self`])},[K(`div`,ad,[K(`button`,{class:`modal-close`,onClick:l[3]||=e=>a.value=!1},`×`),l[35]||=K(`h3`,null,`📋 新建任务`,-1),K(`div`,od,[l[26]||=K(`label`,null,`任务标题`,-1),B(K(`input`,{"onUpdate:modelValue":l[4]||=e=>u.value.title=e,placeholder:`简要描述任务`},null,512),[[Y,u.value.title]])]),K(`div`,sd,[l[27]||=K(`label`,null,`详细描述`,-1),B(K(`textarea`,{"onUpdate:modelValue":l[5]||=e=>u.value.description=e,rows:`3`,style:{width:`100%`,padding:`10px 12px`,"border-radius":`8px`,border:`1px solid var(--border-color)`,background:`rgba(15,23,42,0.6)`,color:`var(--text-primary)`,"font-size":`13px`,resize:`vertical`,outline:`none`},placeholder:`可选,详细描述任务需求`},null,512),[[Y,u.value.description]])]),K(`div`,cd,[l[29]||=K(`label`,null,`分配方式`,-1),B(K(`select`,{"onUpdate:modelValue":l[6]||=e=>u.value.assignType=e},[...l[28]||=[K(`option`,{value:`group`},`分配给群聊(由主 Agent 协调)`,-1),K(`option`,{value:`project`},`直接分配给项目 Agent`,-1)]],512),[[X,u.value.assignType]])]),u.value.assignType===`group`?(W(),G(`div`,ld,[l[30]||=K(`label`,null,`选择群聊`,-1),B(K(`select`,{"onUpdate:modelValue":l[7]||=e=>u.value.groupId=e},[(W(!0),G(U,null,V(n.value,e=>(W(),G(`option`,{key:e.id,value:e.id},j(e.name),9,ud))),128))],512),[[X,u.value.groupId]])])):(W(),G(`div`,dd,[l[31]||=K(`label`,null,`选择项目`,-1),B(K(`select`,{"onUpdate:modelValue":l[8]||=e=>u.value.projectId=e},[(W(!0),G(U,null,V(r.value,e=>(W(),G(`option`,{key:e.name,value:e.name},j(e.name),9,fd))),128))],512),[[X,u.value.projectId]])])),K(`div`,pd,[l[33]||=K(`label`,null,`优先级`,-1),B(K(`select`,{"onUpdate:modelValue":l[9]||=e=>u.value.priority=e},[...l[32]||=[K(`option`,{value:`high`},`🔴 高`,-1),K(`option`,{value:`normal`},`🟡 中`,-1),K(`option`,{value:`low`},`⚪ 低`,-1)]],512),[[X,u.value.priority]])]),K(`div`,md,[K(`label`,hd,[B(K(`input`,{type:`checkbox`,"onUpdate:modelValue":l[10]||=e=>u.value.autoExecute=e,style:{"accent-color":`var(--accent-blue)`}},null,512),[[no,u.value.autoExecute]]),l[34]||=Ri(` 立即执行 `,-1)])]),K(`div`,gd,[K(`button`,{class:`btn btn-cancel`,onClick:l[11]||=e=>a.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:h},`创建并派发`)])])])):q(``,!0),o.value?(W(),G(`div`,{key:1,class:`modal-overlay`,onClick:l[15]||=Z(e=>o.value=!1,[`self`])},[K(`div`,_d,[K(`button`,{class:`modal-close`,onClick:l[13]||=e=>o.value=!1},`×`),l[38]||=K(`h3`,null,`📊 任务队列状态`,-1),K(`div`,vd,[K(`div`,yd,[K(`div`,bd,[K(`div`,xd,j(b.value?.total_queued||0),1),l[36]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`}},`队列中`,-1)]),K(`div`,Sd,[K(`div`,Cd,j(b.value?.running_targets||0),1),l[37]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`}},`并行执行`,-1)])])]),K(`div`,wd,[K(`button`,{class:`btn btn-primary`,onClick:l[14]||=e=>o.value=!1},`关闭`)])])])):q(``,!0),s.value?(W(),G(`div`,{key:2,class:`modal-overlay`,onClick:l[18]||=Z(e=>s.value=!1,[`self`])},[K(`div`,Td,[K(`button`,{class:`modal-close`,onClick:l[16]||=e=>s.value=!1},`×`),l[39]||=K(`h3`,null,`📋 任务日志`,-1),K(`div`,Ed,`共 `+j(c.value.length)+` 条日志`,1),K(`div`,Dd,[c.value.length===0?(W(),G(`div`,Od,`暂无日志`)):q(``,!0),(W(!0),G(U,null,V(c.value,(e,t)=>(W(),G(`div`,{key:t,style:k([{"margin-bottom":`8px`,padding:`8px`,"border-radius":`4px`,"border-left":`3px solid`},{borderColor:e.level===`error`?`var(--accent-red)`:e.level===`success`?`var(--accent-green)`:e.level===`warning`?`var(--accent-yellow)`:`var(--accent-blue)`}])},[K(`div`,kd,[K(`span`,null,j(e.level===`error`?`❌`:e.level===`success`?`✅`:e.level===`warning`?`⚠️`:`ℹ️`),1),K(`span`,{style:k([{"font-weight":`500`},{color:e.level===`error`?`var(--accent-red)`:e.level===`success`?`var(--accent-green)`:e.level===`warning`?`var(--accent-yellow)`:`var(--accent-blue)`}])},j(e.level?.toUpperCase()),5),K(`span`,Ad,j(new Date(e.timestamp).toLocaleString(`zh-CN`)),1)]),K(`div`,jd,j(e.message),1)],4))),128))]),K(`div`,Md,[K(`button`,{class:`btn btn-primary`,onClick:l[17]||=e=>s.value=!1},`关闭`)])])])):q(``,!0)]))}},[[`__scopeId`,`data-v-9d68d764`]]),Pd={class:`terminal`},Fd={class:`toolbar`},Id={style:{display:`flex`,"align-items":`center`,gap:`12px`}},Ld=[`value`],Rd={class:`terminal-body`},zd={id:`terminal-output`,class:`terminal-output`},Bd={class:`terminal-input-bar`},Vd=wo({__name:`Terminal`,setup(e){let t=R([]),n=R(``),r=R([]),i=R(``),a=R([]),o=R(-1),s=R(null),c=async()=>{t.value=(await vo.list()).projects||[]},l=async()=>{let e=await Co.info();e.success&&(s.value=e,u(`[系统: ${e.platform} | 用户: ${e.user} | Shell: ${e.shell}]`,`system`),u(`[工作目录: ${e.home}]`,`system`),u(``,`system`))},u=(e,t=`output`)=>{r.value.push({text:e,type:t,time:new Date().toLocaleTimeString()}),fn(()=>{let e=document.getElementById(`terminal-output`);e&&(e.scrollTop=e.scrollHeight)})},d=async()=>{let e=i.value.trim();if(!e)return;if(i.value=``,a.value.push(e),o.value=-1,u(`$ ${e}`,`command`),e===`clear`||e===`cls`){r.value=[];return}let t=n.value||void 0;try{let n=await Co.exec({command:e,cwd:t});n.output&&u(n.output),n.error&&u(n.error,`error`)}catch(e){u(`错误: ${e.message}`,`error`)}},f=e=>{e.key===`ArrowUp`?(e.preventDefault(),o.value<a.value.length-1&&(o.value++,i.value=a.value[a.value.length-1-o.value])):e.key===`ArrowDown`&&(e.preventDefault(),o.value>0?(o.value--,i.value=a.value[a.value.length-1-o.value]):(o.value=-1,i.value=``))},p=()=>{r.value=[],u(`[已清屏]`,`system`)},m=()=>{p(),n.value=``,l()},h=()=>{n.value&&u(`[切换到项目目录: ${n.value}]`,`system`)};return Qn(()=>{c(),l()}),(e,a)=>(W(),G(`div`,Pd,[K(`div`,Fd,[K(`div`,Id,[a[3]||=K(`span`,{style:{"font-size":`13px`,color:`var(--text-muted)`}},`终端会话`,-1),B(K(`select`,{"onUpdate:modelValue":a[0]||=e=>n.value=e,onChange:h,class:`select`},[a[2]||=K(`option`,{value:``},`选择项目工作目录`,-1),(W(!0),G(U,null,V(t.value,e=>(W(),G(`option`,{key:e.name,value:e.work_dir},j(e.name),9,Ld))),128))],544),[[X,n.value]])]),K(`div`,{style:{display:`flex`,gap:`8px`}},[K(`button`,{class:`btn btn-outline btn-sm`,onClick:p},`🗑️ 清屏`),K(`button`,{class:`btn btn-primary btn-sm`,onClick:m},`+ 新建终端`)])]),K(`div`,Rd,[K(`div`,zd,[(W(!0),G(U,null,V(r.value,(e,t)=>(W(),G(`div`,{key:t,class:A([`line`,e.type])},j(e.text),3))),128))]),K(`div`,Bd,[a[4]||=K(`span`,{class:`prompt`},`$`,-1),B(K(`input`,{"onUpdate:modelValue":a[1]||=e=>i.value=e,onKeydown:[f,uo(d,[`enter`])],placeholder:`输入命令...`,class:`terminal-input`},null,544),[[Y,i.value]])])])]))}},[[`__scopeId`,`data-v-930b48f6`]]),Hd={class:`settings`},Ud={class:`settings-content`},Wd={class:`card`},Gd={key:0,class:`status-info`},Kd={key:1,class:`status-info`},qd={class:`form-group`},Jd={style:{display:`flex`,gap:`20px`}},Yd={style:{flex:`1`}},Xd={class:`form-group`},Zd={class:`form-group`},Qd={style:{display:`flex`,gap:`12px`,"margin-top":`20px`}},$d=[`disabled`],ef={style:{width:`220px`,display:`flex`,"flex-direction":`column`,"align-items":`center`}},tf={key:0,style:{"margin-top":`8px`,"font-size":`11px`,color:`var(--text-muted)`,"text-align":`center`}},nf={class:`auth-section`},rf={key:0,class:`auth-status`},af={class:`auth-success`},of={key:1,class:`auth-pending`},sf={class:`card`,style:{"margin-top":`20px`}},cf={class:`info-grid`},lf={class:`info-item`},uf={class:`info-value`},df=wo({__name:`Settings`,setup(e){let t=R({app_id:``,app_secret:``,enabled:!1,authorized:!1,authorized_user:null}),n=R([]),r=R(!1),i=R(``),a=R(!1),o=R(``),s=R(``),c=async()=>{t.value=(await(await fetch(`/api/feishu/config`)).json()).config||{}},l=async()=>{n.value=(await vo.list()).projects||[]},u=async()=>{r.value=!0,i.value=``;let e=await(await fetch(`/api/feishu/config`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t.value)})).json();e.success?$.success(`飞书配置已保存!`):$.error(`保存失败: `+(e.error||`未知错误`)),r.value=!1},d=async()=>{$.info(`正在发送测试消息...`);let e=await(await fetch(`/api/feishu/test`,{method:`POST`})).json();e.success?$.success(`测试消息已发送!请检查飞书`):$.error(`发送失败: `+(e.error||`未知错误`))},f=async()=>{if(!t.value.app_id){$.warning(`请先填写 App ID`);return}a.value=!0,s.value=`正在获取授权链接...`;let e=await(await fetch(`/api/feishu/auth-url`)).json();if(e.success&&e.auth_url){o.value=e.auth_url,s.value=`请用飞书 App 扫码授权`,window.open(e.auth_url,`feishu_auth`,`width=600,height=700`);let n=0,r=setInterval(async()=>{if(n++,n>120){clearInterval(r),s.value=`❌ 授权超时`,$.error(`授权超时,请重试`);return}let e=await(await fetch(`/api/feishu/config`)).json();e.config?.authorized&&(clearInterval(r),t.value=e.config,s.value=`✅ 授权成功!`,$.success(`飞书授权成功!`),setTimeout(()=>{a.value=!1},2e3))},2e3)}else s.value=`❌ `+(e.error||`获取授权链接失败`),$.error(`获取授权链接失败`)},p=async()=>{await jo(`确定撤销飞书授权?撤销后将无法发送通知。`)&&(await fetch(`/api/feishu/revoke`,{method:`POST`}),c(),$.success(`授权已撤销`))};return Qn(()=>{c(),l()}),(e,a)=>(W(),G(`div`,Hd,[K(`div`,Ud,[K(`div`,Wd,[a[9]||=K(`div`,{class:`card-header`},[K(`span`,{class:`icon`},`🔔`),K(`div`,null,[K(`div`,{class:`card-title`},`飞书通知配置`),K(`div`,{class:`card-desc`},`配置飞书机器人,任务完成时自动发送通知`)])],-1),K(`div`,{class:A([`status-box`,t.value.authorized?`success`:`warning`])},[K(`span`,null,j(t.value.authorized?`✅`:`⚠️`),1),K(`div`,null,[K(`div`,null,j(t.value.authorized?`已授权`:`未授权`),1),t.value.authorized_user?(W(),G(`div`,Gd,` 用户:`+j(t.value.authorized_user.name)+` | ID:`+j(t.value.authorized_user.open_id),1)):(W(),G(`div`,Kd,`请完成授权配置`))])],2),K(`div`,qd,[K(`label`,null,[B(K(`input`,{type:`checkbox`,"onUpdate:modelValue":a[0]||=e=>t.value.enabled=e,style:{"accent-color":`var(--accent-blue)`}},null,512),[[no,t.value.enabled]]),a[3]||=Ri(` 启用飞书通知 `,-1)])]),K(`div`,Jd,[K(`div`,Yd,[K(`div`,Xd,[a[4]||=K(`label`,null,`飞书 App ID`,-1),B(K(`input`,{"onUpdate:modelValue":a[1]||=e=>t.value.app_id=e,placeholder:`cli_xxxxxxxxxx`},null,512),[[Y,t.value.app_id]]),a[5]||=K(`div`,{class:`form-hint`},[Ri(`在 `),K(`a`,{href:`https://open.feishu.cn/app`,target:`_blank`,style:{color:`var(--accent-blue)`}},`飞书开放平台`),Ri(` 创建应用后获取`)],-1)]),K(`div`,Zd,[a[6]||=K(`label`,null,`飞书 App Secret`,-1),B(K(`input`,{"onUpdate:modelValue":a[2]||=e=>t.value.app_secret=e,type:`password`,placeholder:`输入 App Secret`},null,512),[[Y,t.value.app_secret]])]),K(`div`,Qd,[K(`button`,{class:`btn btn-primary`,onClick:u,disabled:r.value},j(r.value?`保存中...`:`💾 保存配置`),9,$d),K(`button`,{class:`btn btn-outline`,onClick:d},`🔔 测试`)]),i.value?(W(),G(`div`,{key:0,class:A([`message`,i.value.includes(`✅`)?`success`:`error`])},j(i.value),3)):q(``,!0)]),K(`div`,ef,[K(`div`,{class:`qr-area`,onClick:f},[...a[7]||=[K(`span`,{style:{"font-size":`48px`,opacity:`0.3`}},`📱`,-1),K(`span`,{style:{"font-size":`12px`,color:`var(--text-muted)`}},`点击扫码授权`,-1)]]),s.value?(W(),G(`div`,tf,j(s.value),1)):q(``,!0)])]),K(`div`,nf,[t.value.authorized&&t.value.authorized_user?(W(),G(`div`,rf,[K(`div`,af,`✅ 已授权 - `+j(t.value.authorized_user.name),1),K(`button`,{class:`btn btn-outline btn-sm`,onClick:p},`撤销授权`)])):(W(),G(`div`,of,[...a[8]||=[K(`div`,{class:`auth-steps`},[K(`div`,null,`1. 填写 App ID 和 Secret`),K(`div`,null,`2. 点击"扫码授权"`),K(`div`,null,`3. 用飞书 App 扫码`),K(`div`,null,`4. 自动获取用户 ID`)],-1)]]))])]),K(`div`,sf,[a[13]||=K(`div`,{class:`card-header`},[K(`span`,{class:`icon`},`ℹ️`),K(`div`,{class:`card-title`},`系统信息`)],-1),K(`div`,cf,[a[11]||=zi(`<div class="info-item" data-v-1639a8cc><div class="info-label" data-v-1639a8cc>版本</div><div class="info-value" data-v-1639a8cc>v1.0.0</div></div><div class="info-item" data-v-1639a8cc><div class="info-label" data-v-1639a8cc>框架</div><div class="info-value" data-v-1639a8cc>Vue 3 + Vite</div></div>`,2),K(`div`,lf,[a[10]||=K(`div`,{class:`info-label`},`项目数`,-1),K(`div`,uf,j(n.value.length),1)]),a[12]||=K(`div`,{class:`info-item`},[K(`div`,{class:`info-label`},`状态`),K(`div`,{class:`info-value`,style:{color:`var(--accent-green)`}},`运行中`)],-1)])])])]))}},[[`__scopeId`,`data-v-1639a8cc`]]),ff={class:`code-changes`},pf={class:`toolbar`},mf={style:{display:`flex`,"align-items":`center`,gap:`12px`}},hf=[`value`],gf={style:{display:`flex`,gap:`8px`}},_f=[`disabled`],vf={class:`main-content`},yf={class:`sidebar`},bf={class:`sidebar-header`},xf={class:`badge`},Sf={class:`file-list`},Cf={key:0,class:`empty-sm`},wf={key:1,class:`empty-sm`},Tf={key:2},Ef=[`onClick`],Df={class:`file-name`},Of={class:`content`},kf={class:`content-header`},Af={class:`diff-viewer`},jf={key:0,class:`empty`},Mf={key:1,class:`diff-content`},Nf=wo({__name:`CodeChanges`,setup(e){let t=R([]),n=R(``),r=R([]),i=R(null),a=R(``),o=R(``),s=async()=>{t.value=(await vo.list()).projects||[]},c=async()=>{if(!n.value)return;let e=await(await fetch(`/api/git/status?project=${encodeURIComponent(n.value)}`)).json();e.success&&(r.value=e.files||[],o.value=e.branch||``)},l=async e=>{i.value=e;let t=await(await fetch(`/api/git/diff?project=${encodeURIComponent(n.value)}&file=${encodeURIComponent(e)}`)).json();t.success&&(a.value=t.raw||``)},u=async()=>{!i.value||!confirm(`确定回滚 ${i.value}?`)||(await(await fetch(`/api/git/rollback`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({project:n.value,file:i.value})})).json()).success&&(alert(`回滚成功!`),c())};return Qn(s),(e,o)=>(W(),G(`div`,ff,[K(`div`,pf,[K(`div`,mf,[B(K(`select`,{"onUpdate:modelValue":o[0]||=e=>n.value=e,onChange:c,class:`select`},[o[1]||=K(`option`,{value:``},`选择项目`,-1),(W(!0),G(U,null,V(t.value,e=>(W(),G(`option`,{key:e.name,value:e.name},j(e.name),9,hf))),128))],544),[[X,n.value]]),K(`button`,{class:`btn btn-outline btn-sm`,onClick:c},`↻ 刷新`)]),K(`div`,gf,[K(`button`,{class:`btn btn-outline btn-sm`,disabled:!i.value,onClick:u},`↩ 回滚`,8,_f)])]),K(`div`,vf,[K(`div`,yf,[K(`div`,bf,[o[2]||=K(`span`,null,`📁 变更文件`,-1),K(`span`,xf,j(r.value.length),1)]),K(`div`,Sf,[n.value?r.value.length===0?(W(),G(`div`,wf,`没有变更`)):(W(),G(`div`,Tf,[(W(!0),G(U,null,V(r.value,e=>(W(),G(`div`,{key:e.path,class:A([`file-item`,{active:i.value===e.path}]),onClick:t=>l(e.path)},[K(`span`,{class:`dot`,style:k({background:e.statusColor})},null,4),K(`span`,Df,j(e.path),1),K(`span`,{class:`file-status`,style:k({color:e.statusColor})},j(e.statusText),5)],10,Ef))),128))])):(W(),G(`div`,Cf,`选择项目查看变更`))])]),K(`div`,Of,[K(`div`,kf,[K(`span`,null,j(i.value||`选择文件查看 diff`),1)]),K(`div`,Af,[i.value?(W(),G(`pre`,Mf,j(a.value||`没有差异`),1)):(W(),G(`div`,jf,`选择文件查看代码变更`))])])])]))}},[[`__scopeId`,`data-v-1d1b6487`]]),Pf={class:`cron-jobs`},Ff={class:`toolbar`},If={style:{display:`flex`,"align-items":`center`,gap:`16px`}},Lf={class:`stat`},Rf={class:`stat-value`},zf={class:`stat`},Bf={class:`stat-value`,style:{color:`var(--accent-green)`}},Vf={class:`stat`},Hf={class:`stat-value`,style:{color:`var(--text-muted)`}},Uf={class:`content`},Wf={key:0,class:`empty`},Gf={key:1,class:`table`},Kf={class:`tag`},qf={style:{"max-width":`200px`,overflow:`hidden`,"text-overflow":`ellipsis`,"white-space":`nowrap`,color:`var(--text-secondary)`}},Jf={class:`toggle`},Yf=[`checked`,`onChange`],Xf={class:`time`},Zf=[`onClick`],Qf={class:`modal`,style:{"min-width":`480px`}},$f={class:`form-group`},ep={class:`form-group`},tp=[`value`],np={class:`form-group`},rp={class:`form-group`},ip={class:`form-actions`},ap=wo({__name:`CronJobs`,setup(e){let t=R([]),n=R([]),r=R(!1),i=R({name:``,project:``,schedule:``,prompt:``}),a=async()=>{t.value=(await(await fetch(`/api/cron`)).json()).jobs||[]},o=async()=>{n.value=(await vo.list()).projects||[]},s=async(e,t)=>{await fetch(`/api/cron/update`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,enabled:t})}),a()},c=async e=>{await jo(`确定删除此定时任务?删除后无法恢复。`)&&(await fetch(`/api/cron/delete`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})}),a(),$.success(`定时任务已删除`))},l=async()=>{if(!i.value.name||!i.value.schedule||!i.value.prompt){$.warning(`请填写完整信息`);return}await fetch(`/api/cron/create`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i.value)}),r.value=!1,i.value={name:``,project:``,schedule:``,prompt:``},a(),$.success(`定时任务创建成功!`)};return Qn(()=>{a(),o()}),(e,a)=>(W(),G(`div`,Pf,[K(`div`,Ff,[K(`div`,If,[K(`div`,Lf,[a[8]||=K(`span`,{class:`stat-label`},`总计`,-1),K(`span`,Rf,j(t.value.length),1)]),K(`div`,zf,[a[9]||=K(`span`,{class:`stat-label`,style:{color:`var(--accent-green)`}},`启用`,-1),K(`span`,Bf,j(t.value.filter(e=>e.enabled).length),1)]),K(`div`,Vf,[a[10]||=K(`span`,{class:`stat-label`,style:{color:`var(--text-muted)`}},`禁用`,-1),K(`span`,Hf,j(t.value.filter(e=>!e.enabled).length),1)])]),K(`button`,{class:`btn btn-primary`,onClick:a[0]||=e=>r.value=!0},`+ 新建定时任务`)]),K(`div`,Uf,[t.value.length===0?(W(),G(`div`,Wf,[...a[11]||=[K(`span`,{class:`icon`},`⏰`,-1),K(`span`,null,`暂无定时任务`,-1)]])):(W(),G(`table`,Gf,[a[12]||=K(`thead`,null,[K(`tr`,null,[K(`th`,null,`名称`),K(`th`,null,`项目`),K(`th`,null,`调度`),K(`th`,null,`提示词`),K(`th`,null,`状态`),K(`th`,null,`上次执行`),K(`th`,null,`操作`)])],-1),K(`tbody`,null,[(W(!0),G(U,null,V(t.value,e=>(W(),G(`tr`,{key:e.id},[K(`td`,null,[K(`strong`,null,j(e.name),1)]),K(`td`,null,[K(`span`,Kf,j(e.project),1)]),K(`td`,null,[K(`code`,null,j(e.schedule),1)]),K(`td`,qf,j(e.prompt),1),K(`td`,null,[K(`label`,Jf,[K(`input`,{type:`checkbox`,checked:e.enabled,onChange:t=>s(e.id,t.target.checked)},null,40,Yf),K(`span`,null,j(e.enabled?`✅ 启用`:`⏸ 禁用`),1)])]),K(`td`,Xf,j(e.last_run?new Date(e.last_run).toLocaleString(`zh-CN`):`未执行`),1),K(`td`,null,[K(`button`,{class:`btn btn-danger btn-sm`,onClick:t=>c(e.id)},`🗑️`,8,Zf)])]))),128))])]))]),r.value?(W(),G(`div`,{key:0,class:`modal-overlay`,onClick:a[7]||=Z(e=>r.value=!1,[`self`])},[K(`div`,Qf,[K(`button`,{class:`modal-close`,onClick:a[1]||=e=>r.value=!1},`×`),a[18]||=K(`h3`,null,`新建定时任务`,-1),K(`div`,$f,[a[13]||=K(`label`,null,`任务名称`,-1),B(K(`input`,{"onUpdate:modelValue":a[2]||=e=>i.value.name=e,placeholder:`如 每日代码检查`},null,512),[[Y,i.value.name]])]),K(`div`,ep,[a[14]||=K(`label`,null,`目标项目`,-1),B(K(`select`,{"onUpdate:modelValue":a[3]||=e=>i.value.project=e},[(W(!0),G(U,null,V(n.value,e=>(W(),G(`option`,{key:e.name,value:e.name},j(e.name),9,tp))),128))],512),[[X,i.value.project]])]),K(`div`,np,[a[15]||=K(`label`,null,`Cron 表达式`,-1),B(K(`input`,{"onUpdate:modelValue":a[4]||=e=>i.value.schedule=e,placeholder:`如 0 9 * * 1-5`},null,512),[[Y,i.value.schedule]]),a[16]||=K(`div`,{style:{"font-size":`11px`,color:`var(--text-muted)`,"margin-top":`4px`}},`格式: 分 时 日 月 周 | 示例: */30 * * * * (每30分钟)`,-1)]),K(`div`,rp,[a[17]||=K(`label`,null,`执行提示词`,-1),B(K(`textarea`,{"onUpdate:modelValue":a[5]||=e=>i.value.prompt=e,rows:`3`,style:{width:`100%`,padding:`10px 12px`,"border-radius":`8px`,border:`1px solid var(--border-color)`,background:`rgba(15,23,42,0.6)`,color:`var(--text-primary)`,"font-size":`13px`,resize:`vertical`,outline:`none`},placeholder:`告诉 Agent 做什么`},null,512),[[Y,i.value.prompt]])]),K(`div`,ip,[K(`button`,{class:`btn btn-cancel`,onClick:a[6]||=e=>r.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:l},`创建`)])])])):q(``,!0)]))}},[[`__scopeId`,`data-v-6a72e3be`]]),op={class:`templates`},sp={class:`toolbar`},cp={style:{display:`flex`,"align-items":`center`,gap:`12px`}},lp=[`value`],up={class:`template-list`},dp={key:0,class:`empty`},fp={class:`template-grid`},pp={class:`card-header`},mp={class:`card-icon`},hp={class:`card-title`},gp={class:`card-desc`},_p={class:`card-tags`},vp={class:`card-preview`},yp={class:`card-actions`},bp=[`onClick`],xp=[`onClick`],Sp=wo({__name:`Templates`,setup(e){let t=R([]),n=R(``),r=R(``),i=[{id:``,name:`全部`,icon:`📚`},{id:`development`,name:`开发`,icon:`💻`},{id:`maintenance`,name:`维护`,icon:`🔧`},{id:`review`,name:`审查`,icon:`🔍`},{id:`collaboration`,name:`协作`,icon:`🤝`},{id:`planning`,name:`规划`,icon:`📋`},{id:`custom`,name:`自定义`,icon:`✏️`}],a=async()=>{let e=n.value?`/api/templates?category=${n.value}`:`/api/templates`;t.value=(await(await fetch(e)).json()).templates||[]},o=()=>{if(!r.value)return t.value;let e=r.value.toLowerCase();return t.value.filter(t=>t.name.toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e))},s=e=>{navigator.clipboard.writeText(e.prompt).then(()=>{$.success(`模板 "${e.name}" 已复制到剪贴板`)}).catch(()=>{$.error(`复制失败,请手动复制`)})},c=async e=>{await jo(`确定删除此模板?删除后无法恢复。`)&&(await fetch(`/api/templates/${e}`,{method:`DELETE`}),a(),$.success(`模板已删除`))};return Qn(a),(e,t)=>(W(),G(`div`,op,[K(`div`,sp,[K(`div`,cp,[B(K(`select`,{"onUpdate:modelValue":t[0]||=e=>n.value=e,onChange:a,class:`select`},[(W(),G(U,null,V(i,e=>K(`option`,{key:e.id,value:e.id},j(e.icon)+` `+j(e.name),9,lp)),64))],544),[[X,n.value]]),B(K(`input`,{"onUpdate:modelValue":t[1]||=e=>r.value=e,placeholder:`搜索模板...`,class:`search-input`},null,512),[[Y,r.value]])]),t[2]||=K(`button`,{class:`btn btn-primary`},`+ 新建模板`,-1)]),K(`div`,up,[o().length===0?(W(),G(`div`,dp,[...t[3]||=[K(`span`,{class:`icon`},`📚`,-1),K(`span`,null,`暂无模板`,-1)]])):q(``,!0),K(`div`,fp,[(W(!0),G(U,null,V(o(),e=>(W(),G(`div`,{key:e.id,class:`template-card`},[K(`div`,pp,[K(`span`,mp,j(e.icon||`📝`),1),K(`div`,null,[K(`div`,hp,j(e.name),1),K(`div`,gp,j(e.description||``),1)])]),K(`div`,_p,[(W(!0),G(U,null,V(e.tags||[],e=>(W(),G(`span`,{key:e,class:`tag`},j(e),1))),128))]),K(`div`,vp,j((e.prompt||``).substring(0,120))+`...`,1),K(`div`,yp,[K(`button`,{class:`btn btn-primary btn-sm`,onClick:t=>s(e)},`使用模板`,8,bp),K(`button`,{class:`btn btn-outline btn-sm`,onClick:t=>c(e.id)},`删除`,8,xp)])]))),128))])])]))}},[[`__scopeId`,`data-v-d4bd658d`]]),Cp={class:`dashboard`},wp={class:`toolbar`},Tp={style:{display:`flex`,gap:`12px`}},Ep={class:`dashboard-content`},Dp={class:`stats-grid`},Op={class:`stat-card`},kp={class:`stat-info`},Ap={class:`stat-value`},jp={class:`stat-card`},Mp={class:`stat-info`},Np={class:`stat-value`,style:{color:`var(--accent-yellow)`}},Pp={class:`stat-card`},Fp={class:`stat-info`},Ip={class:`stat-value`,style:{color:`var(--accent-blue)`}},Lp={class:`stat-card`},Rp={class:`stat-info`},zp={class:`stat-value`,style:{color:`var(--accent-green)`}},Bp={style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`20px`}},Vp={class:`card`},Hp={class:`card-header`},Up={class:`progress-value`},Wp={class:`progress-bar`},Gp={key:0,style:{"font-size":`11px`}},Kp={style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-top":`8px`}},qp={class:`card`},Jp={class:`card-header`},Yp={style:{"font-size":`12px`,color:`var(--text-muted)`}},Xp={style:{flex:`1`,color:`var(--text-primary)`,"font-size":`13px`}},Zp={style:{"font-size":`11px`,color:`var(--text-muted)`}},Qp={key:0,style:{"text-align":`center`,padding:`20px`,color:`var(--text-muted)`,"font-size":`12px`}},$p={class:`card`,style:{"margin-top":`20px`}},em={key:0,style:{"text-align":`center`,padding:`20px`,color:`var(--text-muted)`}},tm={key:1,style:{"max-height":`300px`,"overflow-y":`auto`}},nm={style:{color:`var(--accent-blue)`,"font-size":`12px`,"min-width":`80px`}},rm={style:{flex:`1`,"font-size":`13px`,color:`var(--text-secondary)`,overflow:`hidden`,"text-overflow":`ellipsis`,"white-space":`nowrap`}},im={style:{"font-size":`11px`,color:`var(--text-muted)`,"white-space":`nowrap`}},am={class:`modal`,style:{"min-width":`500px`}},om={class:`form-group`},sm=[`value`],cm={class:`form-group`},lm={class:`form-actions`},um={class:`modal`,style:{"min-width":`500px`}},dm={class:`form-group`},fm=[`value`],pm={class:`form-group`},mm={class:`form-actions`},hm=wo({__name:`Dashboard`,setup(e){let t=R({total_tasks:0,pending_tasks:0,in_progress_tasks:0,done_tasks:0,completion_rate:0,groups_count:0,recent_activities:[]}),n=R([]),r=R([]),i=R(!1),a=R(!1),o=R(``),s=R(``),c=R(``),l=R(``),u=async()=>{t.value=await(await fetch(`/api/collaboration/stats`)).json()},d=async()=>{n.value=(await bo.list()).groups||[]},f=async()=>{r.value=(await vo.list()).projects||[]},p=async()=>{if(!o.value.trim()){$.warning(`请输入需求描述`);return}if(!s.value){$.warning(`请选择群聊`);return}$.info(`正在分解任务,请稍候...`);let e=await(await fetch(`/api/groups/decompose`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({group_id:s.value,requirement:o.value})})).json();e.success?(i.value=!1,$.success(`任务分解完成!共创建 ${e.tasks?.length||0} 个任务`),u()):$.error(`分解失败: `+(e.error||`未知错误`))},m=async()=>{if(!await jo(`确定要执行所有待处理任务?这可能需要较长时间。`))return;$.info(`正在执行任务,请稍候...`);let e=await(await fetch(`/api/tasks/auto-execute-all`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({group_id:n.value[0]?.id})})).json();if(e.success){let t=e.results?.filter(e=>e.completed).length||0;$.success(`任务执行完成!${t}/${e.results?.length||0} 个任务已完成`),u()}else $.error(`执行失败: `+(e.error||`未知错误`))},h=async()=>{if(!l.value.trim()){$.warning(`请输入代码变更`);return}$.info(`正在进行代码审查,请稍候...`);let e=n.value[0]?.members?.filter(e=>e.project!==`coordinator`).map(e=>e.project)||[],t=await(await fetch(`/api/review`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({group_id:n.value[0]?.id,project:c.value,diff:l.value,reviewers:e})})).json();t.success?(a.value=!1,$.success(`代码审查完成!请查看群聊消息`),u()):$.error(`审查失败: `+(t.error||`未知错误`))};return Qn(()=>{u(),d(),f()}),(e,d)=>(W(),G(`div`,Cp,[K(`div`,wp,[K(`div`,Tp,[K(`button`,{class:`btn btn-primary btn-sm`,onClick:d[0]||=e=>i.value=!0},`📋 智能分解`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:d[1]||=e=>m()},`🚀 执行任务`),K(`button`,{class:`btn btn-outline btn-sm`,onClick:d[2]||=e=>a.value=!0},`🔍 代码审查`)]),K(`button`,{class:`btn btn-outline btn-sm`,onClick:d[3]||=e=>u()},`↻ 刷新`)]),K(`div`,Ep,[K(`div`,Dp,[K(`div`,Op,[d[15]||=K(`div`,{class:`stat-icon`,style:{background:`var(--gradient-blue)`}},`📋`,-1),K(`div`,kp,[K(`div`,Ap,j(t.value.total_tasks),1),d[14]||=K(`div`,{class:`stat-label`},`总任务数`,-1)])]),K(`div`,jp,[d[17]||=K(`div`,{class:`stat-icon`,style:{background:`linear-gradient(135deg,#facc15,#f59e0b)`}},`⏳`,-1),K(`div`,Mp,[K(`div`,Np,j(t.value.pending_tasks),1),d[16]||=K(`div`,{class:`stat-label`},`待处理`,-1)])]),K(`div`,Pp,[d[19]||=K(`div`,{class:`stat-icon`,style:{background:`linear-gradient(135deg,#38bdf8,#818cf8)`}},`🔄`,-1),K(`div`,Fp,[K(`div`,Ip,j(t.value.in_progress_tasks),1),d[18]||=K(`div`,{class:`stat-label`},`进行中`,-1)])]),K(`div`,Lp,[d[21]||=K(`div`,{class:`stat-icon`,style:{background:`linear-gradient(135deg,#22c55e,#10b981)`}},`✅`,-1),K(`div`,Rp,[K(`div`,zp,j(t.value.done_tasks),1),d[20]||=K(`div`,{class:`stat-label`},`已完成`,-1)])])]),K(`div`,Bp,[K(`div`,Vp,[K(`div`,Hp,[d[22]||=K(`span`,null,`📈 完成进度`,-1),K(`span`,Up,j(t.value.completion_rate)+`%`,1)]),K(`div`,Wp,[K(`div`,{class:`progress-fill`,style:k({width:t.value.completion_rate+`%`})},[t.value.completion_rate>10?(W(),G(`span`,Gp,j(t.value.completion_rate)+`%`,1)):q(``,!0)],4)]),K(`div`,Kp,j(t.value.done_tasks)+`/`+j(t.value.total_tasks)+` 个任务已完成`,1)]),K(`div`,qp,[K(`div`,Jp,[d[23]||=K(`span`,null,`💬 群聊协作`,-1),K(`span`,Yp,j(n.value.length)+` 个群聊`,1)]),(W(!0),G(U,null,V(n.value,e=>(W(),G(`div`,{key:e.id,style:{display:`flex`,"align-items":`center`,gap:`8px`,padding:`8px`,background:`var(--bg-glass)`,"border-radius":`8px`,"margin-bottom":`6px`}},[d[24]||=K(`span`,null,`💬`,-1),K(`span`,Xp,j(e.name),1),K(`span`,Zp,j(e.members?.length||0)+` 成员`,1)]))),128)),n.value.length===0?(W(),G(`div`,Qp,`暂无群聊`)):q(``,!0)])]),K(`div`,$p,[d[25]||=K(`div`,{class:`card-header`},[K(`span`,null,`📝 最近活动`)],-1),t.value.recent_activities.length===0?(W(),G(`div`,em,`暂无活动记录`)):(W(),G(`div`,tm,[(W(!0),G(U,null,V(t.value.recent_activities,(e,t)=>(W(),G(`div`,{key:t,style:{display:`flex`,gap:`12px`,padding:`10px`,"border-bottom":`1px solid var(--border-color)`}},[K(`span`,nm,j(e.agent||`user`),1),K(`span`,rm,j(e.content?.substring(0,100)),1),K(`span`,im,j(new Date(e.timestamp).toLocaleString(`zh-CN`)),1)]))),128))]))])]),i.value?(W(),G(`div`,{key:0,class:`modal-overlay`,onClick:d[8]||=Z(e=>i.value=!1,[`self`])},[K(`div`,am,[K(`button`,{class:`modal-close`,onClick:d[4]||=e=>i.value=!1},`×`),d[28]||=K(`h3`,null,`📋 智能任务分解`,-1),d[29]||=K(`div`,{style:{"font-size":`12px`,color:`var(--text-muted)`,"margin-bottom":`16px`}},`输入需求,协调者会自动分解为多个子任务`,-1),K(`div`,om,[d[26]||=K(`label`,null,`选择群聊`,-1),B(K(`select`,{"onUpdate:modelValue":d[5]||=e=>s.value=e},[(W(!0),G(U,null,V(n.value,e=>(W(),G(`option`,{key:e.id,value:e.id},j(e.name),9,sm))),128))],512),[[X,s.value]])]),K(`div`,cm,[d[27]||=K(`label`,null,`需求描述`,-1),B(K(`textarea`,{"onUpdate:modelValue":d[6]||=e=>o.value=e,rows:`5`,style:{width:`100%`,padding:`12px`,"border-radius":`8px`,border:`1px solid var(--border-color)`,background:`rgba(15,23,42,0.6)`,color:`var(--text-primary)`,"font-size":`13px`,resize:`vertical`,outline:`none`},placeholder:`描述你的需求,例如:实现用户头像上传功能,包括后端接口和前端页面`},null,512),[[Y,o.value]])]),K(`div`,lm,[K(`button`,{class:`btn btn-cancel`,onClick:d[7]||=e=>i.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:p},`开始分解`)])])])):q(``,!0),a.value?(W(),G(`div`,{key:1,class:`modal-overlay`,onClick:d[13]||=Z(e=>a.value=!1,[`self`])},[K(`div`,um,[K(`button`,{class:`modal-close`,onClick:d[9]||=e=>a.value=!1},`×`),d[32]||=K(`h3`,null,`🔍 多 Agent 代码审查`,-1),K(`div`,dm,[d[30]||=K(`label`,null,`选择项目`,-1),B(K(`select`,{"onUpdate:modelValue":d[10]||=e=>c.value=e},[(W(!0),G(U,null,V(r.value,e=>(W(),G(`option`,{key:e.name,value:e.name},j(e.name),9,fm))),128))],512),[[X,c.value]])]),K(`div`,pm,[d[31]||=K(`label`,null,`代码变更`,-1),B(K(`textarea`,{"onUpdate:modelValue":d[11]||=e=>l.value=e,rows:`8`,style:{width:`100%`,padding:`12px`,"border-radius":`8px`,border:`1px solid var(--border-color)`,background:`rgba(15,23,42,0.6)`,color:`var(--text-primary)`,"font-family":`monospace`,"font-size":`12px`,resize:`vertical`,outline:`none`},placeholder:`粘贴 git diff 或代码变更`},null,512),[[Y,l.value]])]),K(`div`,mm,[K(`button`,{class:`btn btn-cancel`,onClick:d[12]||=e=>a.value=!1},`取消`),K(`button`,{class:`btn btn-primary`,onClick:h},`开始审查`)])])])):q(``,!0)]))}},[[`__scopeId`,`data-v-5a9f8170`]]),gm={class:`app-container`},_m={class:`nav-sidebar`},vm={class:`nav-menu`},ym=[`onClick`],bm={class:`nav-icon`},xm={class:`main-wrapper`},Sm={class:`header`},Cm={class:`content-area`},wm={key:10,class:`empty-state`},Tm={class:`icon`};ho(wo({__name:`App`,setup(e){let t=R(`projects`),n=[{id:`projects`,icon:`📂`,label:`项目管理`},{id:`groups`,icon:`💬`,label:`群聊协作`},{id:`tools`,icon:`🔧`,label:`工具配置`},{id:`changes`,icon:`📝`,label:`代码变更`},{id:`tasks`,icon:`📋`,label:`任务派发`},{id:`cron`,icon:`⏰`,label:`定时任务`},{id:`terminal`,icon:`💻`,label:`内置终端`},{id:`templates`,icon:`📚`,label:`对话模板`},{id:`dashboard`,icon:`📊`,label:`协作仪表盘`},{id:`settings`,icon:`⚙️`,label:`系统设置`}],r=()=>n.find(e=>e.id===t.value);return(e,i)=>(W(),G(`div`,gm,[K(`nav`,_m,[i[0]||=K(`div`,{class:`nav-logo`},[K(`h1`,null,`cc-web`),K(`div`,{class:`info`},`v1.0.0`)],-1),K(`div`,vm,[(W(),G(U,null,V(n,e=>K(`div`,{key:e.id,class:A([`nav-item`,{active:t.value===e.id}]),onClick:n=>t.value=e.id},[K(`span`,bm,j(e.icon),1),K(`span`,null,j(e.label),1)],10,ym)),64))])]),K(`main`,xm,[K(`div`,Sm,[K(`h2`,null,j(r()?.icon)+` `+j(r()?.label),1)]),K(`div`,Cm,[t.value===`projects`?(W(),ki(Rc,{key:0})):t.value===`groups`?(W(),ki($l,{key:1})):t.value===`tools`?(W(),ki(Nu,{key:2})):t.value===`changes`?(W(),ki(Nf,{key:3})):t.value===`tasks`?(W(),ki(Nd,{key:4})):t.value===`cron`?(W(),ki(ap,{key:5})):t.value===`terminal`?(W(),ki(Vd,{key:6})):t.value===`templates`?(W(),ki(Sp,{key:7})):t.value===`dashboard`?(W(),ki(hm,{key:8})):t.value===`settings`?(W(),ki(df,{key:9})):(W(),G(`div`,wm,[K(`span`,Tm,j(r()?.icon),1),K(`p`,null,j(r()?.label),1),i[1]||=K(`p`,{class:`sub`},`功能开发中...`,-1)]))])])]))}},[[`__scopeId`,`data-v-7cf31df1`]])).mount(`#app`);
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>