From 0fd925d0c90d1a5cae3fab2663ac547ad9c369f1 Mon Sep 17 00:00:00 2001 From: tzt <14718231+flying-travel@user.noreply.gitee.com> Date: Sat, 5 Sep 2026 16:24:56 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20T-P8=20=E6=94=B6=E5=B0=BE=EF=BC=88?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E4=BA=A7=E7=89=A9=E5=88=B7=E6=96=B0=20+=20be?= =?UTF-8?q?nch=20=E8=BF=90=E8=A1=8C=E6=97=B6=E6=96=87=E4=BB=B6=20ignore?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ bench.sqlite3 | Bin 0 -> 65536 bytes bench_pool.json | 25 ++++++++++++++++++ .../assets/CollaborationView-BAah4JZr.js | 1 - .../assets/CollaborationView-DkakRBog.js | 1 + gateway/static/assets/MetricsView-CGO4DxSK.js | 1 + gateway/static/assets/MetricsView-Dveh4O03.js | 1 - gateway/static/assets/ProxyView-BLQA9Gut.js | 1 + gateway/static/assets/ProxyView-DM7XIOGZ.css | 1 + gateway/static/assets/ReviewView-BWMKu4Ns.js | 1 + gateway/static/assets/ReviewView-D2qulLRD.js | 1 - .../static/assets/SettingsView-DDuLU_To.js | 1 + .../static/assets/SettingsView-yLQ4Nsmb.js | 1 - .../{index-DbIiNlXp.js => index-C3pjQqOl.js} | 6 ++--- gateway/static/index.html | 2 +- 15 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 bench.sqlite3 create mode 100644 bench_pool.json delete mode 100644 gateway/static/assets/CollaborationView-BAah4JZr.js create mode 100644 gateway/static/assets/CollaborationView-DkakRBog.js create mode 100644 gateway/static/assets/MetricsView-CGO4DxSK.js delete mode 100644 gateway/static/assets/MetricsView-Dveh4O03.js create mode 100644 gateway/static/assets/ProxyView-BLQA9Gut.js create mode 100644 gateway/static/assets/ProxyView-DM7XIOGZ.css create mode 100644 gateway/static/assets/ReviewView-BWMKu4Ns.js delete mode 100644 gateway/static/assets/ReviewView-D2qulLRD.js create mode 100644 gateway/static/assets/SettingsView-DDuLU_To.js delete mode 100644 gateway/static/assets/SettingsView-yLQ4Nsmb.js rename gateway/static/assets/{index-DbIiNlXp.js => index-C3pjQqOl.js} (69%) diff --git a/.gitignore b/.gitignore index 2b5b129..b17b775 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,5 @@ test_models.py # e2e 工程 node_modules(源文件入库) tests/e2e/node_modules/ !AI代理功能开发/实施方案_语义分析器与三级分级.md +bench.sqlite3 +bench_pool.json diff --git a/bench.sqlite3 b/bench.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..91351c0460f50221bd97578941d9cdf4ba25c466 GIT binary patch literal 65536 zcmeHw378hexo-XY-~Io8H;W30=zt&)L3>{mkx_6(R2HK~9eb$;WE*D&1x3RkDhi5G zR9vEHT!{ksYP?yDS?-N7o^wpXAZEKhiO1xggunntGnK>y1rRwPoLj~TY@DWi=3_&6%9c7Jetzdf)Fahe*@sZ_$T~#G5!bq ze~z;EWtP!VHy+Rs9!Fet780JVzbjnEFR4Gk3H;>hW`MGv%mbMRG7n@P$UKmF;J=3l zW^v^qW5?v?&tL50W%K=IZ40qK7k9LEbuR66=Hlp|{E0KCwa%W_a_Wq!)6Q+_Q>^98 z87*|tab2C`{c2^1IwIFyN^0%Ii#*4hhuhqx-U8ee|C3AA8~-IL7}g#`;|O;`OIO!I zXy5o%6U&t$BSz#_PwaBsg*Yx2|9>T_dv@yy)2HpNgl}mfEm?q&)|7PM>z(1o$gC3i;EFGiSHVm@|F)gqBO&7QB2rV9sD?Z+R4*qw(PB+oKyM_!1I@QZI|JW&iP9gr~ckDb=pa-bEeO3ktejwo8P47 zq<}R3=t_CWi6e5T_o8%Ox)5F^+nl9cOM3s^7Q3xYj;-qIql=XxW5(pxjO=wVeU)ju z)W^~EU&cY}JMg7Tac5WCe4luP_I68?22W^#3lo-3`3Nd&=GmqfEIIA5J`S9v3%kaK zmv;W*wng(hJKMUJEJ#(KFr*1#IdCSc7*x1qDYI0|T)60$JImX8dtLgpsN+I~OWQlU zpqnge^Ok_m7R_I{aQ>&Z)SKsY%!NM1EEzfviuQVdRcTjO;I=JFdMVs+OS+teGy=7C zb~#;3JNx$X@n)$!SA=)Xp`xGm9H6=uM8PEGI#A&yI>vysr6| z;ogzKbrw2{J^T;dN4_(EVR$>Yvr6j{@qcG~*pYg#0E+_Gfs}4~B^uz+y!Z?fe-6L0 zpUeZ92Qm+29>_e9c_8yZ=7G!unFlftWFE*oka^&9;(;-F4h?AxD-^3EUA!37x?aga zJYmYQcYhZtl44Ah?1_>-Cif2&BlG`}Nc@U8@^f;6Su-*ZWFE*oka-~UK<0tW1DOXh z4`d$5Jdk-H^T7Xq4=m2tQFmiZu2?M;aw9$8HC-9&l4kg z<8kD8x*?m`kfi{duH)e#@O8(~9o;ev7yE&y`idO5fvXy-E6ZkJo094|w(Og#W%-)6 z_js2tzT}>_|CTx&4<5~nOOf~j{K|eZ4`d$5Jdk-H^FZc-%mbMRG7n@P$UKmFAoD=x zf&V%WOe=Oba{DVKZjG~wYO@w)MnNW;QtrDkw2e5g!^Z16X$ZHtGnSl{!6M8Du1YKt#nkh@+al(C{M->}4|?n$aP4uE zjvp|-$c-IdtyVesuZo7XFOzg^`-)))pv8pphL3T3C&nPM%yYV;&$P%#Qj;d9*@hK3 zfhBpm;1r;6ZKT=0 z>$%WbV2O;&YPsHoZ93SMb;Xk;hjDBz&9)4zfjp?X3e#(9nk^}kV+V%qVNYTlTS>Dm zN0p(s*|u)8S}v#Aj%?eiX=sjVdW>UBX|}FvzTv|yqT3pSeRP_w>3S%)s-SbK4E9lJ zwx#PX)>J(Jsg%K7HGnnYk(MSvRXbq%??!6P;3bYhQ>PfxHMY{6iW)6a9lGOEgzd^8``g9<(jIBb*!j1W*mEDn(Zhq+#!x*1TO1(x1`y=qhst!u4_81d+e|@Teoa1 zDXQ*5Fon_bLz}R%5jgNXu_cq$TSlbWw&TGon4&1E!8-OKX*R@vATXmjwid9SM8lh~ zWi{|66<%9hR!==R&4$1dgq0LcQ&g7Eho#x33(o;n@ibj#^|hgCwyIjLuPUyqc{<~Y z4N0@HZ)vtKIhM)1zYj{YearP6-&ZurVzvChG+S06lxBOnY%$-s4oI^#4Bf?*dLQD9 z^B$aLI}(;1$J2aSWA)TQX*R?UeRy3ou&l7odtjO!Xr_t-4DUUdb?gCYwrXO}2u#C~ zbXHFl(`*?A7st^ZtlO+(3u(5Z7{2Dak_SOnhR+*mwj}v5FYvK1W7fDWDE~g+pAvo{%{L&}@44_Ir0@H= zl<@OS_@*T}z6D*#+UH%9@N<3m92fQZYr)T4K4gG_m|4r^1@P4=&1ZAe~Pe+|6%o)g*D=Xg?nq& z>g~dxxmmdl+&lReaeadm&uPpN?BX`zM`fuouQa8+p>kjCsNzStUG>%6I&Na|EaBR` zR=>2ksj;oNEdRH{fYQ9icd9RNe=kkQZxr7Yf6+Lk{&sCHe@&sQ^6&M>s;8FTFCHME z;(PpsjT6NAjo()X2uD=k;_ffJR(PlOMiJG2-8h;*Ew{OTXYTF#82;<^(;HXje=16) z73KH2O7-x{&#Fsmt(6Ilcgt1onac6`y7*jWCigl&TG&{>s5ZQDbNzRe2@1oSRY^ z#+%}a^_Pm{xIlP3_hP}S52~&b+W0#f57hpn@^oQq1@i-I&(?ld-7HKmeO%sA^ts>G zKPf*dyj*#Wf3bXS`4DkL>6Xy_dw&KO#^>9YDVh~nhN)=qyhg7O%+djc_Z>&`9rQB6 ze0bwjEUasm7oeBoa)IOpa^UEmf?gz;reMzp$-z=x4ZT1x2^-MQZLGm?gLV+i_F?IW z6c~;b$mn^3DTZaj`-<(t9f7tJOqX08#&s1|pJ4P&g2|?jRn;}axd-|N!C(fYNbvZQ zWErF92qr=6d|Q@G*^|(=sGOz+p6_X%>3Qf`g24+Gypu~3yw$tt8G?DbCBdzsIKE?` zrwQgLut3JavK8nq+Db4B?qW-mHAxE`w1r@<1s=erAz8A9o+6kIz5{PLE8F^lc2QY7|{Yj}y!{buG{(T`>#;Jw`A%o`+2szD-3%UniJr!_~pq z@GVnCn+ayXq8$k)YOs7rMUN6pc0CEW5{w`|dL+VpP^o;~z?Op1!vw>U4UY&AL3C9? z4-w1^6d3O$$yIEOz7}JiY-z4? zvf$O+(*xN@_Y=(5YzevxTuV(s_Yus+iUkXj{J`~O^i_gsJ~$W}q^oev?sf&WJ2`NDY03V4*-^$(CcvP~R;Cb9K!$eVEa?;J@_*gOyt* zy!yMkqeJLFHDQDZR0my8Fx!)5KkUyIw$XJ2 zg9UA#OtmE#4Ri^fQ9fEtFxQ1%>3Xn|4aS3OBCccl3anhSRoO(V2qpz^ zH=CwnsE&)e3Feu)3Qo2$hGVQ8R2ZLYU#5ECbPXJ)82HNs3RGLsY!8;;Y3|ho!hzzs z4lo@T(?on-~TM&0R(y+j6n)n1GtzUW$+9X3dH_x9 zB9LRi0Pkyt5947cfusONcMI-2=$#z|QZa^}?l{oL@TCL_&nA>{O+~WW2^7HX0qg!8 z(~;dJ1hQem0q?(o?>qKl0?E23!xTvIJ=Ix6Aj8uFsLA$V)LBR%(+*r2?t740#kS;#)z^p@L3AR8(%OgX@oiZ3D%+%Qc z;6^a?z_k2X1cLiTQzRH`;Qf3ifecB~U|Md&T@{>7APiRwx`Xb+qSdnqWCt+R!qW*J z3c;BK3MXb5Ml%bp+zbMN24~5h;hS)Cok1YekPRF9xdF1`bOON}0-*3F15tp}31qmE z3WGT;r1iAZ2;@7eDJ$S*_;o6QEK3JHHe7zIDW?z!A~^5}a{F^xbjy!XIsgbEXDb1H#AW{2C|P+@SAPb83|SgNVR3SQq2P9PBI z4?f&!o(;ozD}ij7FUcTV%J9lPg+O#{>UaXt0jJ4vsl8F8<06O(4NW2t9q&1oKy(o2 z7y{9e89O3U;T9_*QZW>hKy+Zlh#)H3p%aJ>VQ2)R;}U9AiV8L;1fnAdGJ)u@fJ7i# z>pwcGixTjUA`q?0Pb3g6wNHpjQTq9jQC*ZM{sjWjO80mI(em}UxURjL^w_wry+ZR5 z1ftdBF$AI|;n5L9>AZ(Wby4E&C<4)n>_`I9GHVNgXzlc{2%-ehLkUEyoFfQCOP7a4 z5T!>BClD<%9vqdTl*3^JqUFG$1fn&*Aq1j@yMqWst8oVsh?dw6AP}va4UX!f#IQjG zq7|-z1fpfD0R*D8D3L(4z$6feR*f12qNSiZfoOfFMj%?W;R!_RFdTtsX{AaaS}mzW zL`ncD6NuI{N(7>1iXwq%<)IKkL`;C$rAXej;4Pe*8;0Ni^VOG-I8#{L_@~BUFe~25 z|An8#T@7INlX)QXK<0tW1DOXh4`d$rym_E|GGFf=IlOzsfn$qBt{N@)TOqH2Wd-m( zq$+!$=-8Gffgk}vP?$i&tQpiXP(W>%mxK6Vz#1D*4X^}iqJ}j^3t*ZJ>N?rs{YzJl z@|G;_f~}TE9n&(Z=b`KOth{FTlV9subJv~+Ht%`)<(?PUe|Yc8J&$znes=Tj)$4b? zuyWV)Yer3I8P&05Ar2`^J8{RTt1eu$#9Pp3X<``Fy5#=XS9BlC^`5|x{wJV08hl3z z5kOELG*C)3XtSe(>Slsq0lIy=t308T*xz0%wETK~37wik+w&`cwYp@G^B zy0#5hFYqBO0%DZn*(S(auuurgpksQTB?lntxp2u$SUS|S?R#Fi=Y!2_cWuA2?P(i{1 zDG&r!1vDzqX$=j;HTZ}abTU{LV8BwZrp^9f!{%KtukCsAmOWdx?cR9v?seCHcqGyN@k4 zzd;q+A8UzHPd&&Kj0m!=h#Q0^V~ZB@EcXc;|VZ z42rQ1u`x}DkMI=?pXN)J4T`$0>YDEPRsgY{rp>)^^X`@1dmdfgv*y;GTi5mLFK}1( zta*I*#x4IBWBQS~rcMvw%Y1MvEJ|>&Vj2(#(_mN(gD^0pgM#W?5L59WAc}1r?gUt? z453xswk(imVfij@dKP;g{o04u-}vFmTYFx*HSFe(tm=8?xzFPC@cVzh{!7&Ok+8GT z-H^qB!lm_J3L`~FeEReDxX;>?c_8yZ=7G!unFlftWFE*oka-~UK<0r@^}w0M?vc4@ z?(|=v4D$Wz+h3uM>sR0YN@vx6_3f{mRq0pX{_0HSe)U=Q{s}>)e)a9IE>rAR-~LJ^ zg?{ycc)MR(Mt%nLXKrtQ-d|Orcm6Ma5s4p(|02F6z9c>&-Xq>9E*IwknEhlP$UKmF zAoD=xfy@J$2Qm+29>_e9c_8yZ=7G!upXPx9#o@(RbqW`H@%;g=KTz!tRQdzu{y?ce zQ0xyB`U80p8Wzh3y$yr2c(b|{iGLCQx42vUC-JA^_r!0B&x>2dN5%WZ+r@R_HR2WG zrJx72iRXxCh*QO5MMWGhwunPSK`aS>6aFOpM);-hj_^a_4dEqWoA9{spm3LPi*UVg zwXjrJD0ss8!r8(p!tsJ3OcX{7!-YWt2RjV@x$%caPvgDDPa5BC>}+grY-v2w_-bQA zV{KzqV|k;!F}HD1V@_jw4Y@I{aaiM^Mgw*v{A>M>^$+Xs*MC-jtNwcZ#rm`L z$LbH%H`dqJud82G@2W4TyY=(xXVp)xPp<3r3H8J42iFJItF`~AeNy{Z;R&mR?#hlNb&z;4c#7*K9ZX9JS;eXY6! zE=cy1c_8yZ=7G!unFlftBp%=j#V~KuF!W|(eJ8QrNUYZr>$SxCc4B=iv34fbtBLhW zV!fPLFD2HCiShj3u`Du%ULG5l#m3Uu z=!%Wb*yxCjOJk!wHkQQ3;@DUe8w+D&L2O(S8}nmhUTn;bjUYBKF<{&7*zjV*jSVL@ zE{=`1*tjS*E{u%}V&hA(aei!^7aQls#usDboY932}+#m2N+7V|;9ki;c0daYSs4 ziH*^*ad>Quij9%6(GnYn#m1qrF(Nh&iH+g0ad2!5i;bbNF(ft)ij4zfZ~lX9|NsAY`~SyT@#6deWd8pUf|&nm@g%V- zd{=pu*1z8w=+Z4$l7~e{cRm z$p7~*xlK7IHwyh4J(S4%&5X&%T@8IC*EjPYy%lt*n&$iLuM>SAL8idRU6rQO+eWkK zE7Ej&i)j}9$~2wcj+#ZkB2A~au4d7fr|I-I*DU(7G#$3vPPW8m(JxQa>Fu+DKJ?Qr z++|JZ)K=Rp`qCzJYFlm=y(>+pxA11sJJWP}yKfe~BTc8b24~SPP1EUZ#98$AG@agZ zoJC)frqkP#v*?S{bb2du7JX5gPH%h8qAyI-=`GS(^aW`;y`4IXeo2~c(_61IZkhRM zI=xLh>*({+bc5Q`okgFUrqkQMv*Rg9oTk&;$}{Mbe4zKsFH3Jh|LN~> zle{#W-mRX&cGGNnV|xbMNweua@EPoj(`4X6c_IYVGom+sxJ~z#VjJ!!20tWkwX*Qj)fWbZ| z&8CwZFxYd_Y&s7DgFU+mn@X9$V9!dk>Ff#&_RKV!PQ<`qpPgpYIU5-4v(jujy#s@N zW|~cBf?%*`q}g=R2nPF%G@H&Z!C+5Mv*}b64EE`1Hl4MC!9Fd`rW0H+*r%r1bS?}A z`;;`BPMg7CpPXjX88#T~lhSND83%(sEzPF$b}-me(`-7$2ZMcLnoVZ|VX#j~v+2Yk z40dapP3IV4u&1QibUKnxXNU9uITzzM~yWU#Q z)ppjpYpt~$zmxCgTlpNflk4VMxm3n-kzM1CJx%rrUBh9Dt_%Zomth}H9=$wB{zLw_G z`2m@HHO+UaT!Ku#lIGKS2bp|1&8Kq|GWlWDyr2K*e1=T^(P=)N`;f^$D$S?!Br^FE z(|kIoB9lL%37^Wp$mECd^Zx#$ay2sfUr6)mypBx%_%xr+0mblA=F@p7nfx(L_*BkHCVzCAPv^H}@()k*>0Fph{-|dBy?Ha4{E=xsonw>9Z%Om% ze4I@FVQIcefhn^XZ(RO#UHhKAk_5$seBP)44{O{DaecIxi`c zAI8}G`H#+F%H$7C^C9VFlJAtsACl(Nxlx(?gVKCDk1CUYV46?oTxIgZXnQ~Z(fL`K z{K08Hoy(QUAC%_Pd0(0QfoVRSBbLb@kml3*WSRUh?%vOTbnaOuUr6)mJhe=IBh9CC z+A{g|G@s6Y%jDP6e3#0V%jEM-_*7n9CZB7Iu|jMpHK4xDsM59pG))U9LG#PO7rP_$SnSs({ws@ zGJ_t@{~PsJo3H<$(m?R1>?iX;=7G!unFlftWFE*oka-~UK<0tW1D^*EK=>~VclVP& z9N$qOb)%_jmd=>}9M>HNy!-JbNTI1(0nFlTpUDqH-u?KH%F>Y`IUr=L)0q4)=-rR6 z1cBjsSb;T@?Bj=F?|yt8a)jERVf%(6F^?YxzWebNNL(m`2J9$`!{mpd?|ys<`?3pJ zNM*=A$>fK@?|%G1#WuDi--EoAOnw;t?#FjrN%jm&Q%s3{{NvMnMY96SfaHy?&F(*w z(|k*Z8f;sFM6zuE9hc_&ItaiP)-}runCCw!&9`*Oj~K{-qk9U2&*z^&L2d)ew~Kt; zs+6lA=l2w**JjtQsNGatR~lOQUG6Wrw<~MQ3rj_zqw<^lDZ(!Pht*#e)`$-l?yXg; zw+nyHy~xeVZQ$O?w}|T-oOn+Dg2o)dE^ZTkRF)d^N>j=kD)-fnDt?sPRbLIe;7u%^ zC0v`=>X#NbHMSL(<^PsnT^LZBm#;UzQ+EO+H^md{ zFBQjef$(_l#e!8IR9z*s@pm*HsQpLf>B80u<_FfEt^KaLS(sk>xV)q2bHA;BQhro; zx$+wSV)@+iA>xSAEq#a5!G-bp_GNS@M6VEx?pWyMs2p{(qHhz7z5&s<2u81oKrh7Q z3>6aZV$Icjw1Z&u;DKHv7`+|=ZI8-Hu8wsZl2p1FeUo7Hx&ic!h)WG-=yih8@qM%{ zs*f5p(HjJ#&cQ&G{^3tPjs(D7WfnUter zwCGWS(Q#MwNQ6M;!-h0 zbbrwgeL%+r(S5}?d(RCkka*gHY}%fTzDl@s{0`kq%F!`7bPp*<$Jx-`1fyeT=&q<7 z6%Ruj2}Z}b(4D2(y>0QZ3VE@i8+tmrgOsCVQRsGp(eWj;fnapZ2;D|7Iu3+xB^Vvs zL0=&l9j`&Rkp4%VYabzVDjoCQ^=$f1q_x4*ESE(?DxU zIhTr4pc^BMianqk2u8;f(3t9KT^hZ=z5QzRTYI)^p)B$x-A3H6p zEDNirKVZ6?5FvB9t+?>YX9W1N2%Y_dtnOEH$HkJMWWG+|fZ5Q=XM?i@5hZ>kb^v4%IA<|z|c%&5l znS@Iq`r8MGK=cO<7ZZs7N}-LLLe9}v49L!nEfrrxO3~jFTu31LBY_LJAUq*@<^PvR zDSA2o`P?&M_4FG3^GGRr;r+Q$^{@$sr#X-p+VZ|gAbN@XIoxl1n;H)6kQ5u<@Rd2F z6fDbjY!B<6s%WzbM6Xbv#SaXdN-sN~NlMXc$JhO9hq*8NncpynI{)8IBj| zhUB@HHL3RVu=VtQPsfr{*pOw&hpu}tt{p=lGl1mco*9_FY1;ME!x7WfU@mIc z6%k#_(+yQMUClM2R5+SIvT8qNz#0s5DvYkCMoLNG zFgq}y*Ljj!e<^IL<*1OYJg{vYrjMi)y@QZUAYIjb!-sR$ZA~JO29q9F#^Iw>J(@t4 zuDe)M;TFgKQ3NtPQ-+lF*mjj*V*Qh_UG!Ev6QWX9U`RmrB}qCms!NdrxN{ZPGJ`KP zt_+ERsv3$d;lR+O@uZXzD3%mBq3?}xaa}MIH4Psg(aPAkF3pftRkJn4If6i@;To>v zIDVj-V+f?GDm-z(5pZIoBgnR03mPF?o_ToV-O%@zYpN>Nv7*{|6e;B>E}XIhx#C@E zB!PTK$Jmuz*L3_A0_m2GB}LU;UBZV&5Hx^ ziQ&!K)&lpC2$I#nmsIGgt}|Si9unzIMh=cj!F1SG706pJo5KjCs_;Zr71z}~eW;TxeAf-J#YE4HO0ua>YTP}={z5+Lnc@QDeyKx*yAPqxXU8%Q|9UzVfode^I?7&dy z%bGHnl=5}eha1GevSJP*P@tJA4ls0JtPCU&y=}z+0>SG&_*8db&Z39}QWV42d{+v` zF@Zpm6?Bs#s!`%Q^$ueq$==r(=vnb#8Wt)$x z4|GtGJP=V_n z#$OvBG=2(S3Ow1ktGcCeU8AGX);PUkHbyrF)c*#1^#4!zdf>_W-SzA1o%M_B)9Y4! zOnngS!~gr*&ueego~hkmTUT2Sy9&&zO{q<&4Xc&;Kl1;~e-C!qf0)0O|1!UjKaZcr zEBs-6o%=tqqyA60SGXs*joh_d2iI2pHaDHKxg)qi)xTGNTm4zzIdt}~%mbMRG7n@P z$UKmF;J=Lrh=fGP_t2Y>)I`OM(9Q@0)k>2!!!#Tftt0P4ectAxVoek-dIcz26;Uk- zK5THXY3o`v)9fRh~au5UqSfjny8rT zYcM~SCDoTBnWK+L6ESUwi(+i}mZ`?U6#9cj^i))i`Un86jgDZ#U?4+m7W9zQqhd|; z^1j-AM5U#ah)R8Cik^)y#Ze@fph~ig(Q^@1fvc&5oT4h`g;B9S%6(K!QY;xnBUAVE zD@d_sK_@!8jb0_xJ|b%b(b{rUn-XBqb!02hU9>eSmKGbDNM21OoF;SgCK6#2Q4;Q* zFrpB^eB6$taX9C_Q(4kh`V(sOJZWn)ot@S}BPOgn@O4R7ENr9eB4%0!X{O`D)LaIk zM}~=Uq~g*04@FXS6IH#5I8JY46KToxwr^LGw)PGFkhb;_7ouX|9}Avj@Lj2cwnW9! P!ci0Lt%+dTN5}h5o}Nu- literal 0 HcmV?d00001 diff --git a/bench_pool.json b/bench_pool.json new file mode 100644 index 0000000..7033d48 --- /dev/null +++ b/bench_pool.json @@ -0,0 +1,25 @@ +{ + "roles": { + "architect": "", + "worker": "", + "agent": "" + }, + "entries": [ + { + "id": "b1", + "name": "mock 云", + "tier": "budget", + "backend": "openai", + "base_url": "http://upstream.bench", + "model": "deepseek-chat", + "api_key": "bench", + "price_in": 3.0, + "price_out": 9.0, + "temperature": 0.3, + "max_tokens": 4096, + "enabled": true, + "provider": "deepseek", + "in_hit_price": 0.1 + } + ] +} \ No newline at end of file diff --git a/gateway/static/assets/CollaborationView-BAah4JZr.js b/gateway/static/assets/CollaborationView-BAah4JZr.js deleted file mode 100644 index a31ba9c..0000000 --- a/gateway/static/assets/CollaborationView-BAah4JZr.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,C as t,D as n,G as r,H as ee,I as i,L as a,M as o,N as s,O as c,R as l,U as u,V as d,W as te,j as f,k as p,n as ne,t as m}from"./index-DbIiNlXp.js";var re={class:`collab-view`},ie={class:`collab-sidebar`},ae={class:`session-list`},oe=[`onClick`],se={class:`meta`},ce={key:0,class:`stats`},h={class:`stat-grid`},g={class:`route-flow`},_={class:`collab-main`},v={key:0,class:`empty`},y={class:`section brief-section`},b={class:`brief-card`},x={class:`goal`},S={class:`tags`},C={key:0,class:`domain`},w={key:0,class:`constraints`},T={class:`section plan-section`},E={class:`plan-timeline`},D={class:`step-content`},O={class:`step-header`},k={class:`step-id`},A={class:`step-status`},j={class:`step-task`},M={key:0,class:`step-deps`},N={key:1,class:`step-artifact`},P={class:`section progress-section`},le={class:`progress-bar-wrap`},F={class:`progress-label`},I={class:`progress-bar`},L={class:`progress-steps`},R={class:`pg-icon`},z={key:0,class:`pg-note`},B={key:0,class:`section issues-section`},V={class:`issue-header`},H={class:`issue-id`},U={class:`issue-step`},W={key:0,class:`decision`},ue={key:1,class:`section archive-section`},de={class:`archive-list`},fe={key:2,class:`section deliver-section`},pe={class:`response-block`},G=m(s({__name:`CollaborationView`,setup(s){let m=ne(),G=d(m.currentId),K=d(null),q=c(()=>m.sessions.find(e=>e.requestId===G.value)??null),J=c(()=>K.value??q.value?.workspace??null);function Y(e){G.value=e,K.value=null}let X=null;function me(e){X?.close(),X=t(e),X.subscribe({onWorkspace(t){t.request_id===G.value&&(K.value=t,m.updateWorkspace(e,t))},onStatus(){m.pollStatus(e)},onDone(){m.pollStatus(e)},onError(){}})}l(()=>m.sessions,e=>{G.value&&(e.find(e=>e.requestId===G.value)||(G.value=e[0]?.requestId??null))},{deep:!0}),l(G,e=>{if(!e)return;let t=m.sessions.find(t=>t.requestId===e);t?.workspace&&(K.value=t.workspace),me(e)},{immediate:!0});function Z(e){return J.value?.progress?.find(t=>t.step===e)?.status??`pending`}function Q(e){return J.value?.progress?.find(t=>t.step===e)?.artifact??null}function $(e){return J.value?.decisions?.find(t=>t.ref===e)??null}return(t,s)=>(i(),f(`div`,re,[p(`aside`,ie,[s[6]||=p(`h3`,null,`协作会话`,-1),p(`ul`,ae,[(i(!0),f(n,null,a(ee(m).sessions,e=>(i(),f(`li`,{key:e.requestId,class:u([`session-item`,{active:e.requestId===G.value}]),onClick:t=>Y(e.requestId)},[p(`span`,null,r(e.query.slice(0,24))+r(e.query.length>24?`…`:``),1),p(`span`,se,r(e.status?.rounds_used??`?`)+` 轮 · `+r(e.status?.model_used??`—`),1)],10,oe))),128))]),q.value?(i(),f(`div`,ce,[s[4]||=p(`h4`,null,`运行统计`,-1),p(`div`,h,[s[0]||=p(`span`,null,`输入 Token`,-1),p(`b`,null,r(q.value.status?.api_input_tokens??0),1),s[1]||=p(`span`,null,`输出 Token`,-1),p(`b`,null,r(q.value.status?.api_output_tokens??0),1),s[2]||=p(`span`,null,`延迟`,-1),p(`b`,null,r(q.value.status?.latency_ms?.toFixed(0)??`—`)+` ms`,1),s[3]||=p(`span`,null,`快路径`,-1),p(`b`,null,r(q.value.status?.fast_path?`是`:`否`),1)]),s[5]||=p(`h4`,null,`路由路径`,-1),p(`div`,g,[(i(!0),f(n,null,a(q.value.status?.route??[],(e,t)=>(i(),f(`span`,{key:t,class:`route-node`},r(e),1))),128))])])):e(``,!0)]),p(`main`,_,[J.value?(i(),f(n,{key:1},[p(`section`,y,[s[8]||=p(`h2`,{class:`section-title`},`📋 Brief(任务简报)`,-1),p(`div`,b,[p(`div`,x,r(J.value.brief?.goal??`(未生成)`),1),p(`div`,S,[(i(!0),f(n,null,a(J.value.brief?.tags??[],e=>(i(),f(`span`,{key:e,class:`tag`},r(e),1))),128)),J.value.brief?.domain?(i(),f(`span`,C,r(J.value.brief.domain),1)):e(``,!0)]),J.value.brief?.constraints?.length?(i(),f(`ul`,w,[(i(!0),f(n,null,a(J.value.brief.constraints,(e,t)=>(i(),f(`li`,{key:t},r(e),1))),128))])):e(``,!0)])]),p(`section`,T,[s[12]||=p(`h2`,{class:`section-title`},`📌 Plan(执行计划)`,-1),p(`div`,E,[(i(!0),f(n,null,a(J.value.plan??[],t=>(i(),f(`div`,{key:t.id,class:u([`plan-step`,Z(t.id)])},[s[11]||=p(`div`,{class:`step-dot`},null,-1),p(`div`,D,[p(`div`,O,[p(`span`,k,r(t.id),1),p(`span`,A,r(Z(t.id)),1)]),p(`p`,j,r(t.task),1),t.deps.length?(i(),f(`div`,M,[s[9]||=o(` 依赖:`,-1),(i(!0),f(n,null,a(t.deps,e=>(i(),f(`span`,{key:e,class:`dep`},r(e),1))),128))])):e(``,!0),Q(t.id)?(i(),f(`div`,N,[p(`details`,null,[s[10]||=p(`summary`,null,`📄 工件内容`,-1),p(`pre`,null,r(Q(t.id)),1)])])):e(``,!0)])],2))),128))])]),p(`section`,P,[s[13]||=p(`h2`,{class:`section-title`},`🔄 进度(实时)`,-1),p(`div`,le,[p(`div`,F,` 第 `+r(J.value.meta.round)+` / `+r(J.value.meta.rounds_cap)+` 轮 `,1),p(`div`,I,[p(`div`,{class:`progress-fill`,style:te({width:`${J.value.meta.round/J.value.meta.rounds_cap*100}%`})},null,4)])]),p(`div`,L,[(i(!0),f(n,null,a(J.value.progress??[],t=>(i(),f(`div`,{key:t.step,class:u([`pg-step`,t.status])},[p(`span`,R,r(t.status===`done`?`✅`:t.status===`running`?`⏳`:`⭕`),1),p(`span`,null,r(t.step),1),t.note?(i(),f(`span`,z,r(t.note),1)):e(``,!0)],2))),128))])]),J.value.issues?.length?(i(),f(`section`,B,[s[15]||=p(`h2`,{class:`section-title`},`⚠️ Issues & 裁决`,-1),(i(!0),f(n,null,a(J.value.issues,t=>(i(),f(`div`,{key:t.id,class:`issue-card`},[p(`div`,V,[p(`span`,H,r(t.id),1),p(`span`,U,`Step: `+r(t.step),1)]),p(`p`,null,r(t.description),1),$(t.id)?(i(),f(`div`,W,[s[14]||=p(`strong`,null,`Architect 裁决:`,-1),o(r($(t.id)?.reply),1)])):e(``,!0)]))),128))])):e(``,!0),J.value.archive?.length?(i(),f(`section`,ue,[s[16]||=p(`h2`,{class:`section-title`},`📦 Archive(摘要归档)`,-1),p(`ul`,de,[(i(!0),f(n,null,a(J.value.archive,(e,t)=>(i(),f(`li`,{key:t},r(e),1))),128))])])):e(``,!0),J.value.meta.state===`done`?(i(),f(`section`,fe,[s[17]||=p(`h2`,{class:`section-title`},`🎉 交付`,-1),p(`div`,pe,[p(`pre`,null,r(q.value?.status?.response??`(无内容)`),1)])])):e(``,!0)],64)):(i(),f(`div`,v,[...s[7]||=[p(`p`,null,`从左侧选择一个会话,或在「对话」页发起新提问。`,-1),p(`p`,null,`协作过程通过 SSE 实时推送,无需刷新。`,-1)]]))])]))}}),[[`__scopeId`,`data-v-556e88a4`]]);export{G as default}; \ No newline at end of file diff --git a/gateway/static/assets/CollaborationView-DkakRBog.js b/gateway/static/assets/CollaborationView-DkakRBog.js new file mode 100644 index 0000000..176efd7 --- /dev/null +++ b/gateway/static/assets/CollaborationView-DkakRBog.js @@ -0,0 +1 @@ +import{B as e,F as t,G as n,I as r,J as i,L as a,P as o,Q as s,R as c,U as l,W as u,X as d,Y as ee,Z as te,k as ne,n as re,t as f,z as p}from"./index-C3pjQqOl.js";var ie={class:`collab-view`},ae={class:`collab-sidebar`},oe={class:`session-list`},se=[`onClick`],ce={class:`meta`},m={key:0,class:`stats`},h={class:`stat-grid`},g={class:`route-flow`},_={class:`collab-main`},v={key:0,class:`empty`},y={class:`section brief-section`},b={class:`brief-card`},x={class:`goal`},S={class:`tags`},C={key:0,class:`domain`},w={key:0,class:`constraints`},T={class:`section plan-section`},E={class:`plan-timeline`},D={class:`step-content`},O={class:`step-header`},k={class:`step-id`},A={class:`step-status`},j={class:`step-task`},M={key:0,class:`step-deps`},N={key:1,class:`step-artifact`},le={class:`section progress-section`},P={class:`progress-bar-wrap`},F={class:`progress-label`},I={class:`progress-bar`},L={class:`progress-steps`},R={class:`pg-icon`},z={key:0,class:`pg-note`},B={key:0,class:`section issues-section`},V={class:`issue-header`},H={class:`issue-id`},U={class:`issue-step`},W={key:0,class:`decision`},ue={key:1,class:`section archive-section`},de={class:`archive-list`},fe={key:2,class:`section deliver-section`},pe={class:`response-block`},G=f(e({__name:`CollaborationView`,setup(e){let f=re(),G=i(f.currentId),K=i(null),q=t(()=>f.sessions.find(e=>e.requestId===G.value)??null),J=t(()=>K.value??q.value?.workspace??null);function Y(e){G.value=e,K.value=null}let X=null;function me(e){X?.close(),X=ne(e),X.subscribe({onWorkspace(t){t.request_id===G.value&&(K.value=t,f.updateWorkspace(e,t))},onStatus(){f.pollStatus(e)},onDone(){f.pollStatus(e)},onError(){}})}n(()=>f.sessions,e=>{G.value&&(e.find(e=>e.requestId===G.value)||(G.value=e[0]?.requestId??null))},{deep:!0}),n(G,e=>{if(!e)return;let t=f.sessions.find(t=>t.requestId===e);t?.workspace&&(K.value=t.workspace),me(e)},{immediate:!0});function Z(e){return J.value?.progress?.find(t=>t.step===e)?.status??`pending`}function Q(e){return J.value?.progress?.find(t=>t.step===e)?.artifact??null}function $(e){return J.value?.decisions?.find(t=>t.ref===e)??null}return(e,t)=>(l(),c(`div`,ie,[r(`aside`,ae,[t[6]||=r(`h3`,null,`协作会话`,-1),r(`ul`,oe,[(l(!0),c(o,null,u(ee(f).sessions,e=>(l(),c(`li`,{key:e.requestId,class:d([`session-item`,{active:e.requestId===G.value}]),onClick:t=>Y(e.requestId)},[r(`span`,null,s(e.query.slice(0,24))+s(e.query.length>24?`…`:``),1),r(`span`,ce,s(e.status?.rounds_used??`?`)+` 轮 · `+s(e.status?.model_used??`—`),1)],10,se))),128))]),q.value?(l(),c(`div`,m,[t[4]||=r(`h4`,null,`运行统计`,-1),r(`div`,h,[t[0]||=r(`span`,null,`输入 Token`,-1),r(`b`,null,s(q.value.status?.api_input_tokens??0),1),t[1]||=r(`span`,null,`输出 Token`,-1),r(`b`,null,s(q.value.status?.api_output_tokens??0),1),t[2]||=r(`span`,null,`延迟`,-1),r(`b`,null,s(q.value.status?.latency_ms?.toFixed(0)??`—`)+` ms`,1),t[3]||=r(`span`,null,`快路径`,-1),r(`b`,null,s(q.value.status?.fast_path?`是`:`否`),1)]),t[5]||=r(`h4`,null,`路由路径`,-1),r(`div`,g,[(l(!0),c(o,null,u(q.value.status?.route??[],(e,t)=>(l(),c(`span`,{key:t,class:`route-node`},s(e),1))),128))])])):a(``,!0)]),r(`main`,_,[J.value?(l(),c(o,{key:1},[r(`section`,y,[t[8]||=r(`h2`,{class:`section-title`},`📋 Brief(任务简报)`,-1),r(`div`,b,[r(`div`,x,s(J.value.brief?.goal??`(未生成)`),1),r(`div`,S,[(l(!0),c(o,null,u(J.value.brief?.tags??[],e=>(l(),c(`span`,{key:e,class:`tag`},s(e),1))),128)),J.value.brief?.domain?(l(),c(`span`,C,s(J.value.brief.domain),1)):a(``,!0)]),J.value.brief?.constraints?.length?(l(),c(`ul`,w,[(l(!0),c(o,null,u(J.value.brief.constraints,(e,t)=>(l(),c(`li`,{key:t},s(e),1))),128))])):a(``,!0)])]),r(`section`,T,[t[12]||=r(`h2`,{class:`section-title`},`📌 Plan(执行计划)`,-1),r(`div`,E,[(l(!0),c(o,null,u(J.value.plan??[],e=>(l(),c(`div`,{key:e.id,class:d([`plan-step`,Z(e.id)])},[t[11]||=r(`div`,{class:`step-dot`},null,-1),r(`div`,D,[r(`div`,O,[r(`span`,k,s(e.id),1),r(`span`,A,s(Z(e.id)),1)]),r(`p`,j,s(e.task),1),e.deps.length?(l(),c(`div`,M,[t[9]||=p(` 依赖:`,-1),(l(!0),c(o,null,u(e.deps,e=>(l(),c(`span`,{key:e,class:`dep`},s(e),1))),128))])):a(``,!0),Q(e.id)?(l(),c(`div`,N,[r(`details`,null,[t[10]||=r(`summary`,null,`📄 工件内容`,-1),r(`pre`,null,s(Q(e.id)),1)])])):a(``,!0)])],2))),128))])]),r(`section`,le,[t[13]||=r(`h2`,{class:`section-title`},`🔄 进度(实时)`,-1),r(`div`,P,[r(`div`,F,` 第 `+s(J.value.meta.round)+` / `+s(J.value.meta.rounds_cap)+` 轮 `,1),r(`div`,I,[r(`div`,{class:`progress-fill`,style:te({width:`${J.value.meta.round/J.value.meta.rounds_cap*100}%`})},null,4)])]),r(`div`,L,[(l(!0),c(o,null,u(J.value.progress??[],e=>(l(),c(`div`,{key:e.step,class:d([`pg-step`,e.status])},[r(`span`,R,s(e.status===`done`?`✅`:e.status===`running`?`⏳`:`⭕`),1),r(`span`,null,s(e.step),1),e.note?(l(),c(`span`,z,s(e.note),1)):a(``,!0)],2))),128))])]),J.value.issues?.length?(l(),c(`section`,B,[t[15]||=r(`h2`,{class:`section-title`},`⚠️ Issues & 裁决`,-1),(l(!0),c(o,null,u(J.value.issues,e=>(l(),c(`div`,{key:e.id,class:`issue-card`},[r(`div`,V,[r(`span`,H,s(e.id),1),r(`span`,U,`Step: `+s(e.step),1)]),r(`p`,null,s(e.description),1),$(e.id)?(l(),c(`div`,W,[t[14]||=r(`strong`,null,`Architect 裁决:`,-1),p(s($(e.id)?.reply),1)])):a(``,!0)]))),128))])):a(``,!0),J.value.archive?.length?(l(),c(`section`,ue,[t[16]||=r(`h2`,{class:`section-title`},`📦 Archive(摘要归档)`,-1),r(`ul`,de,[(l(!0),c(o,null,u(J.value.archive,(e,t)=>(l(),c(`li`,{key:t},s(e),1))),128))])])):a(``,!0),J.value.meta.state===`done`?(l(),c(`section`,fe,[t[17]||=r(`h2`,{class:`section-title`},`🎉 交付`,-1),r(`div`,pe,[r(`pre`,null,s(q.value?.status?.response??`(无内容)`),1)])])):a(``,!0)],64)):(l(),c(`div`,v,[...t[7]||=[r(`p`,null,`从左侧选择一个会话,或在「对话」页发起新提问。`,-1),r(`p`,null,`协作过程通过 SSE 实时推送,无需刷新。`,-1)]]))])]))}}),[[`__scopeId`,`data-v-556e88a4`]]);export{G as default}; \ No newline at end of file diff --git a/gateway/static/assets/MetricsView-CGO4DxSK.js b/gateway/static/assets/MetricsView-CGO4DxSK.js new file mode 100644 index 0000000..7bc3f0d --- /dev/null +++ b/gateway/static/assets/MetricsView-CGO4DxSK.js @@ -0,0 +1 @@ +import{B as e,F as t,I as n,J as r,L as i,P as a,Q as o,R as s,U as c,V as l,W as u,Z as d,c as f,t as p}from"./index-C3pjQqOl.js";var m={class:`metrics-view`},h={key:0,class:`loading`},g={key:1,class:`error`},_={class:`card-grid`},v={class:`metric-card`},y={class:`kv-list`},b={class:`metric-card`},x={class:`kv-list`},S={key:0,class:`metric-card highlight`},C={class:`kv-list`},w={key:0},T={key:1},E={key:1,class:`metric-card`},D={class:`by-model`},O={class:`mono`},k={key:2,class:`metric-card`},A={class:`kv-list`},j={class:`hint`},M={key:3,class:`metric-card review-card`},N={class:`review-stats`},P={class:`stat-item`},F={class:`stat-num`},I={class:`stat-item`},L={class:`stat-num`},R={key:0,class:`progress-wrap`},z={class:`review-rate`},B={class:`raw-json`},V=p(e({__name:`MetricsView`,setup(e){let p=r(null),V=r(!1),H=r(``),U=t(()=>p.value?.v2?.by_model||null),W=t(()=>p.value?.sense||null);async function G(){V.value=!0,H.value=``;try{p.value=await f()}catch(e){H.value=e instanceof Error?e.message:`指标加载失败,请检查后端服务`}finally{V.value=!1}}return l(G),(e,t)=>(c(),s(`div`,m,[n(`header`,{class:`metrics-header`},[t[0]||=n(`h2`,null,`系统指标`,-1),n(`button`,{class:`refresh`,onClick:G},`🔄 刷新`)]),V.value?(c(),s(`div`,h,`加载中…`)):H.value?(c(),s(`div`,g,o(H.value),1)):p.value?(c(),s(a,{key:2},[n(`div`,_,[n(`div`,v,[t[1]||=n(`h3`,null,`路由器(v1)`,-1),n(`div`,y,[(c(!0),s(a,null,u(p.value.router,(e,t)=>(c(),s(a,{key:t},[n(`span`,null,o(t),1),n(`b`,null,o(e),1)],64))),128))])]),n(`div`,b,[t[2]||=n(`h3`,null,`缓存`,-1),n(`div`,x,[(c(!0),s(a,null,u(p.value.cache,(e,t)=>(c(),s(a,{key:t},[n(`span`,null,o(t),1),n(`b`,null,o(e),1)],64))),128))])]),p.value.v2?(c(),s(`div`,S,[t[3]||=n(`h3`,null,`协作管线(v2)`,-1),n(`div`,C,[(c(!0),s(a,null,u(p.value.v2,(e,t)=>(c(),s(a,{key:t},[t===`by_model`?i(``,!0):(c(),s(`span`,w,o(t),1)),t===`by_model`?i(``,!0):(c(),s(`b`,T,o(e),1))],64))),128))])])):i(``,!0),U.value&&Object.keys(U.value).length?(c(),s(`div`,E,[t[5]||=n(`h3`,null,`按模型分账(token / 成本)`,-1),n(`table`,D,[t[4]||=n(`thead`,null,[n(`tr`,null,[n(`th`,null,`模型`),n(`th`,null,`次数`),n(`th`,null,`入`),n(`th`,null,`出`),n(`th`,null,`成本 $`)])],-1),n(`tbody`,null,[(c(!0),s(a,null,u(U.value,(e,t)=>(c(),s(`tr`,{key:t},[n(`td`,O,o(t),1),n(`td`,null,o(e.requests),1),n(`td`,null,o(e.input_tokens),1),n(`td`,null,o(e.output_tokens),1),n(`td`,null,o(e.cost_est_usd),1)]))),128))])]),t[6]||=n(`p`,{class:`hint`},`单价来自模型池条目($/1M tokens);经典设置下的模型成本不计入。`,-1)])):i(``,!0),W.value&&W.value.observations?(c(),s(`div`,k,[n(`h3`,null,`语义分级(sense · `+o(W.value.mode)+`)`,1),n(`div`,A,[t[7]||=n(`span`,null,`观察数`,-1),n(`b`,null,o(W.value.observations),1),t[8]||=n(`span`,null,`已标签`,-1),n(`b`,null,o(W.value.labeled)+` / `+o(W.value.min_labels),1),t[9]||=n(`span`,null,`一致率`,-1),n(`b`,null,o(((W.value.agreement??0)*100).toFixed(1))+`%`,1),(c(!0),s(a,null,u(W.value.by_decided_tier,(e,t)=>(c(),s(a,{key:t},[n(`span`,null,`判 `+o(t),1),n(`b`,null,o(e),1)],64))),128))]),n(`p`,j,` 晋升门:一致率 ≥85% + 标签 ≥`+o(W.value.min_labels)+` + 审计无误判(collect 攒满前不开 live) `,1)])):i(``,!0),p.value.review?(c(),s(`div`,M,[t[12]||=n(`h3`,null,`人工检验`,-1),n(`div`,N,[n(`div`,P,[n(`span`,F,o(p.value.review.pending),1),t[10]||=n(`span`,{class:`stat-label`},`待审核`,-1)]),n(`div`,I,[n(`span`,L,o(p.value.review.total),1),t[11]||=n(`span`,{class:`stat-label`},`总提交`,-1)])]),p.value.review.total>0?(c(),s(`div`,R,[n(`div`,{class:`reviewed-bar`,style:d({width:`${(p.value.review.total-p.value.review.pending)/p.value.review.total*100}%`})},null,4)])):i(``,!0),n(`p`,z,` 通过率: `+o(((p.value.review.total-p.value.review.pending)/p.value.review.total*100).toFixed(1))+`% `,1)])):i(``,!0)]),n(`details`,B,[t[13]||=n(`summary`,null,`原始 JSON`,-1),n(`pre`,null,o(JSON.stringify(p.value,null,2)),1)])],64)):i(``,!0)]))}}),[[`__scopeId`,`data-v-7bf57003`]]);export{V as default}; \ No newline at end of file diff --git a/gateway/static/assets/MetricsView-Dveh4O03.js b/gateway/static/assets/MetricsView-Dveh4O03.js deleted file mode 100644 index d99b3be..0000000 --- a/gateway/static/assets/MetricsView-Dveh4O03.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,D as t,G as n,I as r,L as i,N as a,O as o,P as s,V as c,W as l,j as u,k as d,s as f,t as p}from"./index-DbIiNlXp.js";var m={class:`metrics-view`},h={key:0,class:`loading`},g={key:1,class:`error`},_={class:`card-grid`},v={class:`metric-card`},y={class:`kv-list`},b={class:`metric-card`},x={class:`kv-list`},S={key:0,class:`metric-card highlight`},C={class:`kv-list`},w={key:0},T={key:1},E={key:1,class:`metric-card`},D={class:`by-model`},O={class:`mono`},k={key:2,class:`metric-card`},A={class:`kv-list`},j={class:`hint`},M={key:3,class:`metric-card review-card`},N={class:`review-stats`},P={class:`stat-item`},F={class:`stat-num`},I={class:`stat-item`},L={class:`stat-num`},R={key:0,class:`progress-wrap`},z={class:`review-rate`},B={class:`raw-json`},V=p(a({__name:`MetricsView`,setup(a){let p=c(null),V=c(!1),H=c(``),U=o(()=>p.value?.v2?.by_model||null),W=o(()=>p.value?.sense||null);async function G(){V.value=!0,H.value=``;try{p.value=await f()}catch(e){H.value=e instanceof Error?e.message:`指标加载失败,请检查后端服务`}finally{V.value=!1}}return s(G),(a,o)=>(r(),u(`div`,m,[d(`header`,{class:`metrics-header`},[o[0]||=d(`h2`,null,`系统指标`,-1),d(`button`,{class:`refresh`,onClick:G},`🔄 刷新`)]),V.value?(r(),u(`div`,h,`加载中…`)):H.value?(r(),u(`div`,g,n(H.value),1)):p.value?(r(),u(t,{key:2},[d(`div`,_,[d(`div`,v,[o[1]||=d(`h3`,null,`路由器(v1)`,-1),d(`div`,y,[(r(!0),u(t,null,i(p.value.router,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,n(i),1),d(`b`,null,n(e),1)],64))),128))])]),d(`div`,b,[o[2]||=d(`h3`,null,`缓存`,-1),d(`div`,x,[(r(!0),u(t,null,i(p.value.cache,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,n(i),1),d(`b`,null,n(e),1)],64))),128))])]),p.value.v2?(r(),u(`div`,S,[o[3]||=d(`h3`,null,`协作管线(v2)`,-1),d(`div`,C,[(r(!0),u(t,null,i(p.value.v2,(i,a)=>(r(),u(t,{key:a},[a===`by_model`?e(``,!0):(r(),u(`span`,w,n(a),1)),a===`by_model`?e(``,!0):(r(),u(`b`,T,n(i),1))],64))),128))])])):e(``,!0),U.value&&Object.keys(U.value).length?(r(),u(`div`,E,[o[5]||=d(`h3`,null,`按模型分账(token / 成本)`,-1),d(`table`,D,[o[4]||=d(`thead`,null,[d(`tr`,null,[d(`th`,null,`模型`),d(`th`,null,`次数`),d(`th`,null,`入`),d(`th`,null,`出`),d(`th`,null,`成本 $`)])],-1),d(`tbody`,null,[(r(!0),u(t,null,i(U.value,(e,t)=>(r(),u(`tr`,{key:t},[d(`td`,O,n(t),1),d(`td`,null,n(e.requests),1),d(`td`,null,n(e.input_tokens),1),d(`td`,null,n(e.output_tokens),1),d(`td`,null,n(e.cost_est_usd),1)]))),128))])]),o[6]||=d(`p`,{class:`hint`},`单价来自模型池条目($/1M tokens);经典设置下的模型成本不计入。`,-1)])):e(``,!0),W.value&&W.value.observations?(r(),u(`div`,k,[d(`h3`,null,`语义分级(sense · `+n(W.value.mode)+`)`,1),d(`div`,A,[o[7]||=d(`span`,null,`观察数`,-1),d(`b`,null,n(W.value.observations),1),o[8]||=d(`span`,null,`已标签`,-1),d(`b`,null,n(W.value.labeled)+` / `+n(W.value.min_labels),1),o[9]||=d(`span`,null,`一致率`,-1),d(`b`,null,n(((W.value.agreement??0)*100).toFixed(1))+`%`,1),(r(!0),u(t,null,i(W.value.by_decided_tier,(e,i)=>(r(),u(t,{key:i},[d(`span`,null,`判 `+n(i),1),d(`b`,null,n(e),1)],64))),128))]),d(`p`,j,` 晋升门:一致率 ≥85% + 标签 ≥`+n(W.value.min_labels)+` + 审计无误判(collect 攒满前不开 live) `,1)])):e(``,!0),p.value.review?(r(),u(`div`,M,[o[12]||=d(`h3`,null,`人工检验`,-1),d(`div`,N,[d(`div`,P,[d(`span`,F,n(p.value.review.pending),1),o[10]||=d(`span`,{class:`stat-label`},`待审核`,-1)]),d(`div`,I,[d(`span`,L,n(p.value.review.total),1),o[11]||=d(`span`,{class:`stat-label`},`总提交`,-1)])]),p.value.review.total>0?(r(),u(`div`,R,[d(`div`,{class:`reviewed-bar`,style:l({width:`${(p.value.review.total-p.value.review.pending)/p.value.review.total*100}%`})},null,4)])):e(``,!0),d(`p`,z,` 通过率: `+n(((p.value.review.total-p.value.review.pending)/p.value.review.total*100).toFixed(1))+`% `,1)])):e(``,!0)]),d(`details`,B,[o[13]||=d(`summary`,null,`原始 JSON`,-1),d(`pre`,null,n(JSON.stringify(p.value,null,2)),1)])],64)):e(``,!0)]))}}),[[`__scopeId`,`data-v-7bf57003`]]);export{V as default}; \ No newline at end of file diff --git a/gateway/static/assets/ProxyView-BLQA9Gut.js b/gateway/static/assets/ProxyView-BLQA9Gut.js new file mode 100644 index 0000000..4ba6b8f --- /dev/null +++ b/gateway/static/assets/ProxyView-BLQA9Gut.js @@ -0,0 +1 @@ +import{B as e,F as t,I as n,J as r,K as i,L as a,M as o,N as s,P as c,Q as l,R as u,T as d,U as f,V as p,W as m,X as h,d as g,f as _,g as v,r as y,t as b,u as x,z as S}from"./index-C3pjQqOl.js";var C={class:`proxy-view`},ee={key:0,class:`error`},te={key:1,class:`card-grid`},w={class:`metric-card highlight`},T={class:`kv-list`},E={class:`metric-card`},D={class:`kv-list`},O={key:0,class:`metric-card`},k={class:`kv-list`},A={class:`metric-card`},j={class:`issue-row`},M=[`disabled`],N=[`disabled`],P={key:0,class:`issued`},F={key:1,class:`tbl`},I=[`onClick`],L=[`onClick`],R={key:2,class:`hint`},z={class:`metric-card`},ne={key:0,class:`tbl`},B={class:`mono`},V={class:`mono`},H={key:1,class:`hint`},U=b(e({__name:`ProxyView`,setup(e){let b=r(null),U=r([]),W=r([]),G=r(0),K=r(``),q=r(`1`),J=r(``),Y=r(``),X=t(()=>{let e=b.value?.by_bucket||{};return Object.entries(e).map(([e,t])=>({name:e,...t}))});function Z(e){return(e*100).toFixed(1)+`%`}function re(e){let t=new Date(e*1e3);return`${t.getMonth()+1}/${t.getDate()} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}async function Q(){Y.value=``;try{let[e,t,n]=await Promise.all([g(),x(0,50,0),v()]);b.value=e,U.value=t,W.value=n}catch(e){Y.value=e?.response?.data?.detail||e?.message||String(e)}}async function ie(){if(K.value.trim())try{let e=await y(K.value.trim(),Number(q.value)||0);G.value=e.student_id||0,K.value=``,J.value=``,await Q()}catch(e){Y.value=e?.message||String(e)}}async function $(){if(G.value)try{let e=await _(G.value);J.value=e.key,await Q()}catch(e){Y.value=e?.response?.data?.detail||e?.message||String(e)}}async function ae(){if(G.value)try{await d(G.value,1),await Q()}catch(e){Y.value=e?.message||String(e)}}return p(Q),(e,t)=>(f(),u(`div`,C,[t[18]||=n(`header`,{class:`page-head`},[n(`h2`,null,`🏷️ 校园代理管理`),n(`p`,{class:`sub`},`学生 key / 用量流水 / 命中率-毛利看板(毫元计费,1 元 = 1000 毫元)`)],-1),Y.value?(f(),u(`div`,ee,l(Y.value),1)):a(``,!0),b.value?(f(),u(`div`,te,[n(`div`,w,[t[5]||=n(`h3`,null,`缓存命中率`,-1),n(`div`,T,[t[2]||=n(`span`,null,`网关直答 h_g`,-1),n(`b`,null,l(Z(b.value.h_g)),1),t[3]||=n(`span`,null,`上游前缀 h_p`,-1),n(`b`,null,l(Z(b.value.h_p)),1),t[4]||=n(`span`,null,`综合(近似)`,-1),n(`b`,null,l(Z(b.value.h_g+b.value.h_p)),1)]),t[6]||=n(`p`,{class:`hint`},`北极星:h = h_g + h_p;目标 ≥50%`,-1)]),n(`div`,E,[t[11]||=n(`h3`,null,`毛利(毫元)`,-1),n(`div`,D,[t[7]||=n(`span`,null,`收入 Σcharged`,-1),n(`b`,null,l(b.value.revenue_milli),1),t[8]||=n(`span`,null,`成本 Σcost`,-1),n(`b`,null,l(b.value.cost_milli),1),t[9]||=n(`span`,null,`毛利`,-1),n(`b`,{class:h(b.value.margin_milli>=0?`pos`:`neg`)},l(b.value.margin_milli),3),t[10]||=n(`span`,null,`请求数`,-1),n(`b`,null,l(b.value.requests),1)])]),X.value.length?(f(),u(`div`,O,[t[12]||=n(`h3`,null,`分桶`,-1),n(`div`,k,[(f(!0),u(c,null,m(X.value,e=>(f(),u(c,{key:e.name},[n(`span`,null,l(e.name),1),n(`b`,null,l(e.requests)+` 次 / `+l(e.revenue_milli)+` 毫元`,1)],64))),128))])])):a(``,!0)])):a(``,!0),n(`div`,A,[t[15]||=n(`h3`,null,`学生与 Key 管理`,-1),n(`div`,j,[i(n(`input`,{"onUpdate:modelValue":t[0]||=e=>K.value=e,placeholder:`学生姓名`,class:`sm`},null,512),[[o,K.value]]),i(n(`input`,{"onUpdate:modelValue":t[1]||=e=>q.value=e,placeholder:`初始余额(元)`,class:`sm num`},null,512),[[o,q.value]]),n(`button`,{class:`btn`,onClick:ie},`建学生`),n(`button`,{class:`btn`,disabled:!G.value,onClick:$},`签发 Key`,8,M),n(`button`,{class:`btn`,disabled:!G.value,onClick:ae},`充值 1 元`,8,N)]),J.value?(f(),u(`div`,P,[t[13]||=S(` ⚠️ 新 key(仅显示一次,请复制): `,-1),n(`code`,null,l(J.value),1)])):a(``,!0),W.value.length?(f(),u(`table`,F,[t[14]||=n(`thead`,null,[n(`tr`,null,[n(`th`,null,`ID`),n(`th`,null,`姓名`),n(`th`,null,`余额(毫元)`),n(`th`,null,`状态`),n(`th`,null,`操作`)])],-1),n(`tbody`,null,[(f(!0),u(c,null,m(W.value,e=>(f(),u(`tr`,{key:e.id,class:h({sel:e.id===G.value}),onClick:t=>G.value=e.id},[n(`td`,null,l(e.id),1),n(`td`,null,l(e.name),1),n(`td`,null,l(e.balance_milli),1),n(`td`,null,l(e.status),1),n(`td`,null,[n(`button`,{class:`mini`,onClick:s(t=>{G.value=e.id,$()},[`stop`])},`签发`,8,L)])],10,I))),128))])])):(f(),u(`p`,R,`暂无学生(后端列表接口待补时,可用上方"建学生"先创建)`))]),n(`div`,z,[t[17]||=n(`h3`,null,`用量流水`,-1),U.value.length?(f(),u(`table`,ne,[t[16]||=n(`thead`,null,[n(`tr`,null,[n(`th`,null,`时间`),n(`th`,null,`模型`),n(`th`,null,`状态`),n(`th`,null,`收入`),n(`th`,null,`成本`),n(`th`,null,`毛利`)])],-1),n(`tbody`,null,[(f(!0),u(c,null,m(U.value,e=>(f(),u(`tr`,{key:e.request_id},[n(`td`,B,l(re(e.ts)),1),n(`td`,V,l(e.model),1),n(`td`,null,[n(`span`,{class:h([`st`,e.status])},l(e.status),3)]),n(`td`,null,l(e.charged_milli),1),n(`td`,null,l(e.upstream_cost_milli),1),n(`td`,null,l(e.margin_milli),1)]))),128))])])):(f(),u(`p`,H,`暂无流水`))])]))}}),[[`__scopeId`,`data-v-42979962`]]);export{U as default}; \ No newline at end of file diff --git a/gateway/static/assets/ProxyView-DM7XIOGZ.css b/gateway/static/assets/ProxyView-DM7XIOGZ.css new file mode 100644 index 0000000..4aa1618 --- /dev/null +++ b/gateway/static/assets/ProxyView-DM7XIOGZ.css @@ -0,0 +1 @@ +.proxy-view[data-v-42979962]{height:100%;padding:20px 24px;overflow-y:auto}.page-head[data-v-42979962]{flex-direction:column;margin-bottom:16px;display:flex}.sub[data-v-42979962]{color:var(--c-text-2);margin-top:2px;font-size:13px}.error[data-v-42979962]{color:var(--c-err);margin-bottom:10px}.card-grid[data-v-42979962]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px;display:grid}.metric-card[data-v-42979962]{background:var(--c-surface);border:1px solid var(--c-border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 16px}.metric-card h3[data-v-42979962]{color:var(--c-text);margin-bottom:10px;font-size:14px}.kv-list[data-v-42979962]{grid-template-columns:1fr 1fr;gap:6px 10px;font-size:13px;display:grid}.kv-list span[data-v-42979962]{color:var(--c-text-2)}.pos[data-v-42979962]{color:var(--c-ok)}.neg[data-v-42979962]{color:var(--c-err)}.hint[data-v-42979962]{color:var(--c-caption);margin-top:8px;font-size:11px}.issue-row[data-v-42979962]{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.issue-row .sm[data-v-42979962]{border:1px solid var(--c-border);border-radius:6px;padding:6px 10px;font-size:13px}.issue-row .num[data-v-42979962]{width:110px}.btn[data-v-42979962]{border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.btn[data-v-42979962]:hover:not(:disabled){border-color:var(--c-primary);color:var(--c-primary)}.btn[data-v-42979962]:disabled{opacity:.5;cursor:not-allowed}.issued[data-v-42979962]{background:var(--c-warn-soft);border:1px solid var(--c-warn);word-break:break-all;border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:12px}.tbl[data-v-42979962]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl th[data-v-42979962],.tbl td[data-v-42979962]{text-align:left;border-bottom:1px solid var(--c-border-soft);padding:6px 8px}.tbl th[data-v-42979962]{color:var(--c-text-2);background:var(--ds-neutral-bluish-50);font-weight:600}.tbl tr.sel[data-v-42979962]{background:var(--c-primary-soft)}.mono[data-v-42979962]{font-family:var(--font-mono);font-size:11.5px}.st[data-v-42979962]{background:var(--ds-neutral-bluish-100);border-radius:8px;padding:1px 6px;font-size:11px}.st.cached[data-v-42979962]{background:var(--c-ok-soft);color:var(--c-ok)}.st.failed[data-v-42979962],.st.aborted[data-v-42979962],.st.insufficient[data-v-42979962]{background:var(--c-err-soft);color:var(--c-err)}.mini[data-v-42979962]{border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;border-radius:5px;padding:2px 8px;font-size:11px}.mini[data-v-42979962]:hover{border-color:var(--c-primary);color:var(--c-primary)} diff --git a/gateway/static/assets/ReviewView-BWMKu4Ns.js b/gateway/static/assets/ReviewView-BWMKu4Ns.js new file mode 100644 index 0000000..8bc67af --- /dev/null +++ b/gateway/static/assets/ReviewView-BWMKu4Ns.js @@ -0,0 +1 @@ +import{B as e,C as t,F as n,I as r,J as i,K as a,L as o,M as s,P as c,Q as l,R as u,U as d,V as f,W as p,X as m,_ as h,t as g,z as _}from"./index-C3pjQqOl.js";var v={class:`review-view`},y={class:`review-header`},b={class:`controls`},x={key:0,class:`loading`},S={key:1,class:`error`},C={key:2,class:`queue-list`},w={key:0,class:`empty`},T={class:`card-header`},E={class:`card-id`},D={class:`tags`},O={class:`date`},k={class:`query-block`},A={class:`response-block`},j={key:0,class:`actions`},M=[`onUpdate:modelValue`],N={class:`btn-row`},P=[`onClick`],F=[`onClick`],I={key:1,class:`correction`},L=g(e({__name:`ReviewView`,setup(e){let g=i([]),L=i(!1),R=i(``),z=i(`pending`),B=i({}),V=n(()=>z.value===`all`?g.value:g.value.filter(e=>e.verdict===z.value));async function H(){L.value=!0,R.value=``;try{g.value=await h()}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=!1}}async function U(e,n){try{await t(e,n,B.value[e]||void 0),await H()}catch(e){R.value=e instanceof Error?e.message:String(e)}}return f(H),(e,t)=>(d(),u(`div`,v,[r(`header`,y,[t[4]||=r(`h2`,null,`人工检验队列`,-1),r(`div`,b,[r(`button`,{class:m({active:z.value===`all`}),onClick:t[0]||=e=>z.value=`all`},`全部`,2),r(`button`,{class:m({active:z.value===`pending`}),onClick:t[1]||=e=>z.value=`pending`},`待审核`,2),r(`button`,{class:m({active:z.value===`approved`}),onClick:t[2]||=e=>z.value=`approved`},`已通过`,2),r(`button`,{class:m({active:z.value===`rejected`}),onClick:t[3]||=e=>z.value=`rejected`},`已拒绝`,2),r(`button`,{class:`refresh-btn`,onClick:H},`🔄 刷新`)])]),L.value?(d(),u(`div`,x,`加载中…`)):R.value?(d(),u(`div`,S,l(R.value),1)):(d(),u(`div`,C,[V.value.length?o(``,!0):(d(),u(`div`,w,`队列为空。`)),(d(!0),u(c,null,p(V.value,e=>(d(),u(`div`,{key:e.id,class:`review-card`},[r(`div`,T,[r(`span`,E,`#`+l(e.id),1),r(`span`,{class:m([`verdict-badge`,e.verdict])},l(e.verdict),3),r(`span`,D,[(d(!0),u(c,null,p(e.tags,e=>(d(),u(`span`,{key:e,class:`tag`},l(e),1))),128))]),r(`span`,O,l(e.created_at),1)]),r(`div`,k,[t[5]||=r(`strong`,null,`Query:`,-1),_(l(e.query),1)]),r(`div`,A,[t[6]||=r(`strong`,null,`Response:`,-1),r(`pre`,null,l(e.response),1)]),e.verdict===`pending`?(d(),u(`div`,j,[a(r(`textarea`,{"onUpdate:modelValue":t=>B.value[e.id]=t,placeholder:`修正意见(可选)`,rows:`2`},null,8,M),[[s,B.value[e.id]]]),r(`div`,N,[r(`button`,{class:`approve`,onClick:t=>U(e.id,`approved`)},`✅ 通过`,8,P),r(`button`,{class:`reject`,onClick:t=>U(e.id,`rejected`)},`❌ 拒绝`,8,F)])])):e.correction?(d(),u(`div`,I,[t[7]||=r(`strong`,null,`修正:`,-1),_(l(e.correction),1)])):o(``,!0)]))),128))]))]))}}),[[`__scopeId`,`data-v-d5b38f1c`]]);export{L as default}; \ No newline at end of file diff --git a/gateway/static/assets/ReviewView-D2qulLRD.js b/gateway/static/assets/ReviewView-D2qulLRD.js deleted file mode 100644 index 807db9d..0000000 --- a/gateway/static/assets/ReviewView-D2qulLRD.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,D as t,E as n,G as r,I as i,L as a,M as o,N as s,O as c,P as l,U as u,V as d,f,j as p,k as m,t as h,v as g,z as _}from"./index-DbIiNlXp.js";var v={class:`review-view`},y={class:`review-header`},b={class:`controls`},x={key:0,class:`loading`},S={key:1,class:`error`},C={key:2,class:`queue-list`},w={key:0,class:`empty`},T={class:`card-header`},E={class:`card-id`},D={class:`tags`},O={class:`date`},k={class:`query-block`},A={class:`response-block`},j={key:0,class:`actions`},M=[`onUpdate:modelValue`],N={class:`btn-row`},P=[`onClick`],F=[`onClick`],I={key:1,class:`correction`},L=h(s({__name:`ReviewView`,setup(s){let h=d([]),L=d(!1),R=d(``),z=d(`pending`),B=d({}),V=c(()=>z.value===`all`?h.value:h.value.filter(e=>e.verdict===z.value));async function H(){L.value=!0,R.value=``;try{h.value=await f()}catch(e){R.value=e instanceof Error?e.message:String(e)}finally{L.value=!1}}async function U(e,t){try{await g(e,t,B.value[e]||void 0),await H()}catch(e){R.value=e instanceof Error?e.message:String(e)}}return l(H),(s,c)=>(i(),p(`div`,v,[m(`header`,y,[c[4]||=m(`h2`,null,`人工检验队列`,-1),m(`div`,b,[m(`button`,{class:u({active:z.value===`all`}),onClick:c[0]||=e=>z.value=`all`},`全部`,2),m(`button`,{class:u({active:z.value===`pending`}),onClick:c[1]||=e=>z.value=`pending`},`待审核`,2),m(`button`,{class:u({active:z.value===`approved`}),onClick:c[2]||=e=>z.value=`approved`},`已通过`,2),m(`button`,{class:u({active:z.value===`rejected`}),onClick:c[3]||=e=>z.value=`rejected`},`已拒绝`,2),m(`button`,{class:`refresh-btn`,onClick:H},`🔄 刷新`)])]),L.value?(i(),p(`div`,x,`加载中…`)):R.value?(i(),p(`div`,S,r(R.value),1)):(i(),p(`div`,C,[V.value.length?e(``,!0):(i(),p(`div`,w,`队列为空。`)),(i(!0),p(t,null,a(V.value,s=>(i(),p(`div`,{key:s.id,class:`review-card`},[m(`div`,T,[m(`span`,E,`#`+r(s.id),1),m(`span`,{class:u([`verdict-badge`,s.verdict])},r(s.verdict),3),m(`span`,D,[(i(!0),p(t,null,a(s.tags,e=>(i(),p(`span`,{key:e,class:`tag`},r(e),1))),128))]),m(`span`,O,r(s.created_at),1)]),m(`div`,k,[c[5]||=m(`strong`,null,`Query:`,-1),o(r(s.query),1)]),m(`div`,A,[c[6]||=m(`strong`,null,`Response:`,-1),m(`pre`,null,r(s.response),1)]),s.verdict===`pending`?(i(),p(`div`,j,[_(m(`textarea`,{"onUpdate:modelValue":e=>B.value[s.id]=e,placeholder:`修正意见(可选)`,rows:`2`},null,8,M),[[n,B.value[s.id]]]),m(`div`,N,[m(`button`,{class:`approve`,onClick:e=>U(s.id,`approved`)},`✅ 通过`,8,P),m(`button`,{class:`reject`,onClick:e=>U(s.id,`rejected`)},`❌ 拒绝`,8,F)])])):s.correction?(i(),p(`div`,I,[c[7]||=m(`strong`,null,`修正:`,-1),o(r(s.correction),1)])):e(``,!0)]))),128))]))]))}}),[[`__scopeId`,`data-v-d5b38f1c`]]);export{L as default}; \ No newline at end of file diff --git a/gateway/static/assets/SettingsView-DDuLU_To.js b/gateway/static/assets/SettingsView-DDuLU_To.js new file mode 100644 index 0000000..2cf1d8b --- /dev/null +++ b/gateway/static/assets/SettingsView-DDuLU_To.js @@ -0,0 +1 @@ +import{A as e,B as t,D as n,E as r,F as ee,H as te,I as i,J as a,K as o,L as s,M as c,O as ne,P as l,Q as u,R as d,S as re,U as f,V as ie,W as p,X as m,Z as ae,a as oe,b as se,c as ce,h as le,i as ue,j as h,l as de,m as fe,o as pe,p as me,q as g,s as he,t as _,v as ge,w as _e,x as ve,y as ye,z as v}from"./index-C3pjQqOl.js";var be={class:`settings-view`},xe={class:`settings-section`},Se={class:`section-body`},Ce={class:`role-bar`},we=[`onUpdate:modelValue`],Te=[`value`],Ee={key:0,class:`pool-table`},De={class:`mono`},Oe=[`onUpdate:modelValue`,`onChange`],ke={class:`row-actions`},Ae=[`disabled`,`onClick`],je=[`onClick`],Me=[`onClick`],Ne={key:1,class:`no-models`},Pe={key:3,class:`pool-edit`},Fe={class:`pool-edit-title`},Ie={class:`form-grid`},Le={class:`field`},Re={class:`field`},ze={class:`field`},Be={class:`field`},Ve=[`disabled`],He={id:`pool-model-options`},Ue=[`value`],We={key:0,class:`field full-width`},Ge={key:1,class:`field`},Ke={class:`field`},qe={class:`field`},Je={class:`field`},Ye={class:`field`},Xe={class:`pool-edit-actions`},Ze={class:`checkbox-label`},Qe=[`disabled`],$e={class:`settings-section`},et={class:`section-title`},tt={class:`title-right`},nt={class:`section-body`},rt={class:`server-control-bar`},it={class:`server-info`},at={class:`model-chip`},ot={class:`model-chip port-chip`},st={class:`model-chip pid-chip`},ct={key:1,class:`server-idle`},lt={class:`server-actions`},ut=[`disabled`],dt=[`disabled`],ft={key:0,class:`error-msg llama-error`},pt={class:`local-models`},mt={class:`local-models-header`},ht=[`disabled`],gt={key:0,class:`no-models`},_t={key:1,class:`model-list`},vt=[`onClick`],yt={class:`model-item-name`},bt={class:`model-item-size`},xt={class:`download-section`},St={class:`download-form`},Ct=[`disabled`],wt=[`disabled`],Tt={key:0,class:`progress-wrap`},Et={class:`progress-bar`},Dt={class:`progress-info`},Ot={key:1,class:`error-msg download-error`},kt={key:2,class:`done-msg`},At={class:`form-grid`,style:{"margin-top":`16px`}},jt={class:`field full-width`},Mt={key:0,class:`field full-width`},Nt=[`disabled`],Pt={class:`input-row`},Ft=[`placeholder`],It={key:1,class:`field full-width`},Lt=[`disabled`],Rt=[`value`],zt=[`value`],Bt={key:3,class:`field-hint warn`},Vt={key:2,class:`field`},Ht={class:`field`},Ut={class:`field`},Wt={class:`field`},Gt={class:`settings-section`},Kt={class:`section-title`},qt={class:`title-right`},Jt={class:`section-body`},Yt={class:`form-grid`},Xt={class:`field full-width`},Zt=[`disabled`],Qt={class:`field full-width`},$t=[`placeholder`],en={class:`field full-width`},tn=[`disabled`],nn=[`value`],rn={key:0,class:`field-hint warn`},an={class:`settings-section`},on={class:`section-body`},sn={class:`form-grid`},cn={class:`field full-width`},ln={class:`checkbox-label`},un={class:`field`},dn={class:`field`},fn={class:`field full-width`},pn={class:`settings-section`},mn={class:`section-title`},hn={class:`title-right`},gn={class:`section-body`},_n={class:`role-hint`},vn={class:`form-grid`},yn={class:`field`},bn={class:`checkbox-label`},xn={class:`field`},Sn=[`disabled`],Cn={class:`field`},wn=[`value`],Tn={class:`actions`},En=[`disabled`],Dn=[`disabled`],On=_(t({__name:`SettingsView`,setup(t){let _=a(!1),On=a(``),y=a(null),kn=[{key:`architect`,label:`🧠 Architect(决策/终审)`},{key:`worker`,label:`🔧 Worker(实现/自验证)`},{key:`agent`,label:`🤖 Agent(智能体工具)`}],An={local:`本地/零成本`,budget:`低价 API`,premium:`旗舰 API`},b=a({roles:{architect:``,worker:``,agent:``},entries:[]}),x=g({architect:``,worker:``,agent:``}),S=a(null),C=a(!1),w=a(``),T=a(``),E=a(!1),D=a(!1),O=a(!1),jn=a([]),Mn=ee(()=>b.value.entries.filter(e=>e.enabled));function Nn(e){return An[e]??e}async function Pn(){try{b.value=await de(),x.architect=b.value.roles.architect||``,x.worker=b.value.roles.worker||``,x.agent=b.value.roles.agent||``}catch{}}async function Fn(){try{b.value=await se({...x}),y.value={ok:!0,msg:`✅ 角色已更新,管线已重建`}}catch(e){y.value={ok:!1,msg:`❌ 角色指派失败:`+(e?.response?.data?.detail||e?.message||e)},await Pn()}setTimeout(()=>y.value=null,3e3)}function In(){C.value=!0,S.value={name:``,tier:`budget`,backend:`openai`,base_url:``,model:``,api_key:``,price_in:.1,price_out:.1,temperature:.3,max_tokens:4096,enabled:!0}}function Ln(e){C.value=!1,S.value={...e,api_key:``}}async function Rn(){if(S.value){D.value=!0;try{b.value=await n(S.value),S.value=null,y.value={ok:!0,msg:`✅ 模型条目已保存`}}catch(e){y.value={ok:!1,msg:`❌ 保存失败:`+(e?.response?.data?.detail||e?.message||e)}}finally{D.value=!1,setTimeout(()=>y.value=null,3e3)}}}async function zn(e){confirm(`删除模型条目「${e.name}」?相关角色指派会一并清空。`)&&(b.value=await ue(e.id))}async function Bn(e){b.value=await n({...e,api_key:``})}async function Vn(e){w.value=e.id,T.value=``;try{let t=await _e(e.id);E.value=t.ok,T.value=t.ok?`✅ ${e.name} 连接正常`:`❌ ${e.name}: ${t.detail||`连接失败`}`}catch(e){E.value=!1,T.value=`❌ `+(e?.message||String(e))}finally{w.value=``}}async function Hn(){if(S.value){O.value=!0;try{let e;e=!C.value&&S.value.id?await le(S.value.id):S.value.backend===`mock`?{models:[{id:`mock`,name:`mock(内置模拟)`}]}:await fe(S.value.backend||`openai`,S.value.base_url||``,S.value.api_key||``),e.error?(E.value=!1,T.value=e.error,jn.value=[]):jn.value=e.models||[]}finally{O.value=!1}}}let k=a({running:!1}),A=a(!1),j=a(!1),M=a([]),N=a(!1),P=a(``),F=a(!1),I=a(``),L=a(0),Un=a(``),Wn=a(``),Gn=a(``),Kn=a(null),qn=a(``),R=a(``),Jn=a(!1),z=null,B=a([]),V=a([]),H=g({worker:!1,architect:!1}),U=g({worker:``,architect:``}),W=g({worker:!1,architect:!1}),G=g({worker:null,architect:null}),K=g({worker:``,architect:``}),q=[{id:`deepseek-v4-flash`,name:`deepseek-v4-flash(推荐)`},{id:`deepseek-v4-pro`,name:`deepseek-v4-pro(推理模式)`},{id:`deepseek-coder`,name:`deepseek-coder`},{id:`gpt-4o-mini`,name:`gpt-4o-mini`},{id:`gpt-4o`,name:`gpt-4o`},{id:`claude-3-5-sonnet-20241022`,name:`claude-3.5-sonnet`},{id:`qwen-plus`,name:`qwen-plus`},{id:`qwen-max`,name:`qwen-max`}],J=a(null),Y=g({worker:{backend:`mock`,model:``,base_url:``,port:8901,temperature:.3,max_fix_attempts:2,code_timeout_s:10},architect:{model:`deepseek-v4-flash`,base_url:`https://api.deepseek.com`,api_key:``},pipeline:{fast_path:!0,rounds_cap:6,api_token_cap:8e3,breach_policy:`architect_do`}}),Yn=ee(()=>Y.worker.backend===`llama_server`?`http://127.0.0.1:${Y.worker.port}/v1`:`http://127.0.0.1:11434/v1`),Xn=ee(()=>J.value?JSON.stringify(Y)!==JSON.stringify(J.value):!1);function Zn(e){return e>=1e9?(e/1e9).toFixed(1)+` GB`:e>=1e6?(e/1e6).toFixed(1)+` MB`:e>=1e3?(e/1e3).toFixed(0)+` KB`:e+` B`}async function Qn(){try{let e=await he();return k.value=e,e}catch{return k.value={running:!1},{running:!1}}}async function X(){N.value=!0;try{M.value=await me()}catch{M.value=[]}finally{N.value=!1}}async function $n(){if(!Y.worker.model){alert(`请先从上方「本地模型」列表中选择一个模型,再启动服务`);return}A.value=!0;try{let e=await ve(Y.worker.model,Y.worker.port,99,4096);k.value=e,e.running&&(Y.worker.backend=`llama_server`,Y.worker.base_url=`http://127.0.0.1:${e.port}/v1`,await X(),await Z())}catch(e){k.value={running:!1,error:String(e?.message||e)}}finally{A.value=!1}}async function er(){j.value=!0;try{await re(),k.value={running:!1}}catch{k.value={running:!1}}finally{j.value=!1}}function tr(e){P.value=e.id,Y.worker.model=e.id}function nr(){I.value.trim()&&(R.value=``,Jn.value=!1,L.value=0,Un.value=``,Wn.value=``,Gn.value=`0 B`,Kn.value=null,F.value=!0,oe(I.value.trim()).then(e=>{if(e.error){R.value=e.error,F.value=!1;return}if(e.done){rr(e);return}z=ne(I.value.trim()),z.subscribe({onProgress:rr,onDone:e=>{rr(e),z?.close(),z=null}})}))}function rr(e){L.value=Math.round(e.progress_pct),Un.value=e.speed,Wn.value=e.eta,Gn.value=Zn(e.downloaded_bytes),Kn.value=e.total_bytes?Zn(e.total_bytes):null,qn.value=e.dest,e.done&&(F.value=!1,e.error?R.value=e.error:(Jn.value=!0,X()))}async function ir(){U.worker=``,B.value=[],Y.worker.backend!==`mock`&&await Z()}async function ar(){U.architect=``,V.value=[],await or()}async function Z(){if(Y.worker.backend!==`mock`){H.worker=!0,U.worker=``;try{let e=await fe(Y.worker.backend,Y.worker.base_url,``);e.error?Y.worker.backend===`llama_server`?U.worker=`💡 llama-server 未启动,请先点击上方「启动服务」`:U.worker=e.error||`连接失败`:B.value=e.models||[]}catch{U.worker=`获取模型列表失败`}finally{H.worker=!1}}}async function or(){if(H.architect=!0,U.architect=``,!Y.architect.base_url){V.value=[...q],H.architect=!1;return}try{let e=await fe(`openai`,Y.architect.base_url,Y.architect.api_key||``);e.error?(U.architect=e.error,V.value=[...q]):(e.models||[]).length>0?V.value=e.models||[]:V.value=[...q]}catch{U.architect=`获取模型列表失败`,V.value=[...q]}finally{H.architect=!1}}async function sr(){if(Y.worker.backend!==`mock`){W.worker=!0,G.worker=null,K.worker=``;try{let e=await ge(Y.worker.backend,Y.worker.base_url,``);G.worker=e.ok,e.ok||(K.worker=e.detail||`连接失败`)}catch(e){G.worker=!1,K.worker=e?.message||String(e)}finally{W.worker=!1}}}async function cr(){if(!Y.architect.base_url){G.architect=!1,K.architect=`请先填写 API 端点`;return}W.architect=!0,G.architect=null,K.architect=``;try{let e=await ge(`openai`,Y.architect.base_url,Y.architect.api_key||``);G.architect=e.ok,e.ok||(K.architect=e.detail||`连接失败`)}catch(e){G.architect=!1,K.architect=e?.message||String(e)}finally{W.architect=!1}}function Q(e,t){if(t)for(let n of Object.keys(e))t[n]!==void 0&&(typeof e[n]==`object`&&typeof t[n]==`object`&&e[n]!==null?Q(e[n],t[n]):e[n]=t[n])}function lr(e){if(!e)return;let{api_key:t,api_key_set:n,...r}=e;Q(Y.architect,r),Y.architect.api_key_set=!!n,Y.architect.api_key=``}async function ur(){On.value=``;try{let[e,t]=await Promise.all([pe(),Qn()]);k.value=t,Pn(),e.worker&&Q(Y.worker,e.worker),e.architect&&lr(e.architect),e.pipeline&&Q(Y.pipeline,e.pipeline),J.value=JSON.parse(JSON.stringify(Y)),await X(),V.value=[...q],Y.worker.backend!==`mock`&&Z(),Y.worker.model&&(P.value=Y.worker.model)}catch(e){On.value=`加载配置失败:`+(e?.message||String(e))}}async function dr(){_.value=!0,y.value=null;try{let e=JSON.parse(JSON.stringify(Y));e.architect.api_key||delete e.architect.api_key;let t=await r(e);Q(Y.worker,t.worker||{}),lr(t.architect||{}),Q(Y.pipeline,t.pipeline||{}),J.value=JSON.parse(JSON.stringify(Y)),y.value={ok:!0,msg:`✅ 设置已保存,管线已重建`},setTimeout(()=>y.value=null,3e3)}catch(e){y.value={ok:!1,msg:`❌ 保存失败:`+(e?.message||String(e))}}finally{_.value=!1}}async function fr(){if(confirm(`确定恢复默认设置?`)){_.value=!0,y.value=null;try{let e=await ye();Q(Y.worker,e.worker||{}),lr(e.architect||{}),Q(Y.pipeline,e.pipeline||{}),J.value=JSON.parse(JSON.stringify(Y)),B.value=[],V.value=[...q],G.worker=null,G.architect=null,y.value={ok:!0,msg:`✅ 已恢复默认设置`},setTimeout(()=>y.value=null,3e3)}catch(e){y.value={ok:!1,msg:`❌ 重置失败:`+(e?.message||String(e))}}finally{_.value=!1}}}let $=g({enabled:!1,mode:`collect`,obs:0,labeled:0,min_labels:500});async function pr(){try{let[e,t]=await Promise.all([pe(),ce()]),n=e.sense||{};$.enabled=!!n.enabled,$.mode=n.mode||`collect`,$.min_labels=n.policy?.min_labels??500;let r=t.sense||{};$.obs=r.observations??0,$.labeled=r.labeled??0}catch{}}async function mr(){try{await r({sense:{enabled:$.enabled,mode:$.mode}}),y.value={ok:!0,msg:`✅ 语义分级已${$.enabled?`启用(`+$.mode+`)`:`关闭`}`}}catch(e){y.value={ok:!1,msg:`❌ 保存失败:`+(e?.response?.data?.detail||e?.message||e)},await pr()}setTimeout(()=>y.value=null,3e3)}return ie(()=>{ur(),pr()}),te(()=>{z?.close()}),(t,n)=>(f(),d(`div`,be,[n[73]||=i(`header`,{class:`settings-header`},[i(`h2`,null,`⚙️ 模型设置`),i(`p`,{class:`subtitle`},`配置小模型(Worker)与大模型(Architect)参数,保存后实时生效`)],-1),i(`section`,xe,[i(`div`,{class:`section-title`},[n[31]||=i(`span`,null,`🗄️ 模型池(多价位异构模型)`,-1),i(`div`,{class:`title-right`},[i(`button`,{class:`btn-refresh`,onClick:In},`+ 添加模型`)])]),i(`div`,Se,[i(`div`,Ce,[(f(),d(l,null,p(kn,e=>i(`div`,{class:`role-item`,key:e.key},[i(`label`,null,u(e.label),1),o(i(`select`,{"onUpdate:modelValue":t=>x[e.key]=t,onChange:Fn},[n[32]||=i(`option`,{value:``},`经典设置(下方表单)`,-1),(f(!0),d(l,null,p(Mn.value,e=>(f(),d(`option`,{key:e.id,value:e.id},u(e.name),9,Te))),128))],40,we),[[h,x[e.key]]])])),64))]),n[46]||=i(`p`,{class:`role-hint`},` 按价位组织模型:本地 llama.cpp 为零成本档,低价 API 干批量活,旗舰 API 做决策—— 随时切换,保存后管线自动重建。 `,-1),b.value.entries.length?(f(),d(`table`,Ee,[n[33]||=i(`thead`,null,[i(`tr`,null,[i(`th`,null,`名称`),i(`th`,null,`档位`),i(`th`,null,`后端`),i(`th`,null,`模型`),i(`th`,null,`单价 $/1M(入/出)`),i(`th`,null,`启用`),i(`th`,null,`操作`)])],-1),i(`tbody`,null,[(f(!0),d(l,null,p(b.value.entries,t=>(f(),d(`tr`,{key:t.id},[i(`td`,null,u(t.name),1),i(`td`,null,[i(`span`,{class:m([`tier-badge`,`tier-`+t.tier])},u(Nn(t.tier)),3)]),i(`td`,null,u(t.backend),1),i(`td`,De,u(t.model||`—`),1),i(`td`,null,u(t.price_in)+` / `+u(t.price_out),1),i(`td`,null,[o(i(`input`,{type:`checkbox`,"onUpdate:modelValue":e=>t.enabled=e,onChange:e=>Bn(t)},null,40,Oe),[[e,t.enabled]])]),i(`td`,ke,[i(`button`,{class:`btn-refresh`,disabled:w.value===t.id,onClick:e=>Vn(t)},u(w.value===t.id?`…`:`测试`),9,Ae),i(`button`,{class:`btn-refresh`,onClick:e=>Ln(t)},`编辑`,8,je),i(`button`,{class:`btn-refresh danger`,onClick:e=>zn(t)},`删除`,8,Me)])]))),128))])])):(f(),d(`div`,Ne,` 池为空——可添加本地 llama.cpp 模型(零成本档)、低价 API、旗舰 API 等,随时指派给 Architect / Worker / Agent。 `)),T.value?(f(),d(`div`,{key:2,class:m([`field-hint`,E.value?`ok`:`warn`])},u(T.value),3)):s(``,!0),S.value?(f(),d(`div`,Pe,[i(`div`,Fe,u(C.value?`添加模型`:`编辑模型`),1),i(`div`,Ie,[i(`div`,Le,[n[34]||=i(`label`,null,`名称`,-1),o(i(`input`,{"onUpdate:modelValue":n[0]||=e=>S.value.name=e,placeholder:`如:DeepSeek 旗舰 / 本地 Qwen4B`},null,512),[[c,S.value.name]])]),i(`div`,Re,[n[36]||=i(`label`,null,`档位`,-1),o(i(`select`,{"onUpdate:modelValue":n[1]||=e=>S.value.tier=e},[...n[35]||=[i(`option`,{value:`local`},`local(本地 / 零边际成本)`,-1),i(`option`,{value:`budget`},`budget(低价 API)`,-1),i(`option`,{value:`premium`},`premium(旗舰 API)`,-1)]],512),[[h,S.value.tier]])]),i(`div`,ze,[n[38]||=i(`label`,null,`后端`,-1),o(i(`select`,{"onUpdate:modelValue":n[2]||=e=>S.value.backend=e},[...n[37]||=[i(`option`,{value:`openai`},`openai / 兼容 API`,-1),i(`option`,{value:`llama_server`},`llama_server(内置本地)`,-1),i(`option`,{value:`mock`},`mock(模拟)`,-1)]],512),[[h,S.value.backend]])]),i(`div`,Be,[i(`label`,null,[n[39]||=v(` 模型 `,-1),i(`button`,{class:`btn-refresh btn-inline`,disabled:O.value,onClick:Hn},u(O.value?`…`:`🔄 刷新列表`),9,Ve)]),o(i(`input`,{"onUpdate:modelValue":n[3]||=e=>S.value.model=e,list:`pool-model-options`,placeholder:`模型名`},null,512),[[c,S.value.model]]),i(`datalist`,He,[(f(!0),d(l,null,p(jn.value,e=>(f(),d(`option`,{key:e.id,value:e.id},null,8,Ue))),128))])]),S.value.backend===`mock`?s(``,!0):(f(),d(`div`,We,[n[40]||=i(`label`,null,`API 地址`,-1),o(i(`input`,{"onUpdate:modelValue":n[4]||=e=>S.value.base_url=e,placeholder:`https://api.deepseek.com 或 http://127.0.0.1:8901/v1`},null,512),[[c,S.value.base_url]])])),S.value.backend===`openai`?(f(),d(`div`,Ge,[i(`label`,null,`API Key`+u(S.value.api_key_set?`(已设置,留空保留)`:``),1),o(i(`input`,{"onUpdate:modelValue":n[5]||=e=>S.value.api_key=e,type:`password`,autocomplete:`off`,placeholder:`sk-…`},null,512),[[c,S.value.api_key]])])):s(``,!0),i(`div`,Ke,[n[41]||=i(`label`,null,`输入单价 $/1M`,-1),o(i(`input`,{"onUpdate:modelValue":n[6]||=e=>S.value.price_in=e,type:`number`,min:`0`,step:`0.01`},null,512),[[c,S.value.price_in,void 0,{number:!0}]])]),i(`div`,qe,[n[42]||=i(`label`,null,`输出单价 $/1M`,-1),o(i(`input`,{"onUpdate:modelValue":n[7]||=e=>S.value.price_out=e,type:`number`,min:`0`,step:`0.01`},null,512),[[c,S.value.price_out,void 0,{number:!0}]])]),i(`div`,Je,[n[43]||=i(`label`,null,`Temperature`,-1),o(i(`input`,{"onUpdate:modelValue":n[8]||=e=>S.value.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[c,S.value.temperature,void 0,{number:!0}]])]),i(`div`,Ye,[n[44]||=i(`label`,null,`Max Tokens`,-1),o(i(`input`,{"onUpdate:modelValue":n[9]||=e=>S.value.max_tokens=e,type:`number`,min:`256`,max:`32768`},null,512),[[c,S.value.max_tokens,void 0,{number:!0}]])])]),i(`div`,Xe,[i(`label`,Ze,[o(i(`input`,{type:`checkbox`,"onUpdate:modelValue":n[10]||=e=>S.value.enabled=e},null,512),[[e,S.value.enabled]]),n[45]||=v(` 启用 `,-1)]),i(`button`,{class:`btn-primary`,disabled:D.value,onClick:Rn},u(D.value?`保存中…`:`保存条目`),9,Qe),i(`button`,{class:`btn-secondary`,onClick:n[11]||=e=>S.value=null},`取消`)])])):s(``,!0)])]),i(`section`,$e,[i(`div`,et,[n[47]||=i(`span`,null,`🔧 小模型 (Worker · 本地 llama.cpp)`,-1),i(`div`,tt,[i(`span`,{class:m([`server-badge`,k.value.running?`badge-running`:`badge-stopped`])},u(k.value.running?`● 运行中`:`○ 已停止`),3)])]),i(`div`,nt,[i(`div`,rt,[i(`div`,it,[k.value.running?(f(),d(l,{key:0},[i(`span`,at,u(k.value.model?.split(/[/\\]/).pop()),1),i(`span`,ot,`:`+u(k.value.port),1),i(`span`,st,`PID `+u(k.value.pid),1)],64)):(f(),d(`span`,ct,`llama-server 未运行 — 点击「启动服务」即可启用`))]),i(`div`,lt,[k.value.running?(f(),d(`button`,{key:1,class:`btn-stop`,disabled:A.value||j.value,onClick:er},u(j.value?`停止中…`:`■ 停止服务`),9,dt)):(f(),d(`button`,{key:0,class:`btn-start`,disabled:A.value||j.value,onClick:$n},u(A.value?`启动中…`:`▶ 启动服务`),9,ut))])]),k.value.error?(f(),d(`div`,ft,u(k.value.error),1)):s(``,!0),i(`div`,pt,[i(`div`,mt,[i(`span`,null,`📁 本地模型 (`+u(M.value.length)+`)`,1),i(`button`,{class:`btn-refresh`,disabled:N.value,onClick:X},u(N.value?`…`:`🔄`),9,ht)]),M.value.length===0&&!N.value?(f(),d(`div`,gt,` 暂无本地模型,请下载或放置 .gguf 文件到 models/ 目录 `)):(f(),d(`div`,_t,[(f(!0),d(l,null,p(M.value,e=>(f(),d(`div`,{key:e.id,class:m([`model-item`,P.value===e.id?`selected`:``]),onClick:t=>tr(e)},[i(`span`,yt,u(e.name),1),i(`span`,bt,u(e.size_mb)+` MB`,1)],10,vt))),128))]))]),i(`div`,xt,[n[48]||=i(`div`,{class:`download-header`},`⬇️ 下载模型`,-1),i(`div`,St,[o(i(`input`,{"onUpdate:modelValue":n[12]||=e=>I.value=e,class:`download-input`,placeholder:`HuggingFace 路径或直链,如:Qwen/Qwen3-4B-GGUF/Qwen3-4B-Q4_K_M.gguf`,disabled:F.value},null,8,Ct),[[c,I.value]]),i(`button`,{class:`btn-download`,disabled:F.value||!I.value.trim(),onClick:nr},u(F.value?L.value+`%`:`下载`),9,wt)]),F.value?(f(),d(`div`,Tt,[i(`div`,Et,[i(`div`,{class:`progress-fill`,style:ae({width:L.value+`%`})},null,4)]),i(`div`,Dt,[i(`span`,null,u(Un.value),1),i(`span`,null,u(Wn.value),1),i(`span`,null,u(Gn.value)+`/`+u(Kn.value||`?`),1)])])):s(``,!0),R.value?(f(),d(`div`,Ot,u(R.value),1)):s(``,!0),Jn.value&&!R.value?(f(),d(`div`,kt,` ✅ 下载完成:`+u(qn.value),1)):s(``,!0)]),i(`div`,At,[i(`div`,jt,[n[50]||=i(`label`,null,`后端类型`,-1),o(i(`select`,{"onUpdate:modelValue":n[13]||=e=>Y.worker.backend=e,onChange:ir},[...n[49]||=[i(`option`,{value:`mock`},`mock(模拟,不真实调用)`,-1),i(`option`,{value:`llama_server`},`llama_server(内置本地服务,推荐)`,-1),i(`option`,{value:`openai`},`openai / 兼容 API(Ollama 等)`,-1)]],544),[[h,Y.worker.backend]])]),Y.worker.backend===`mock`?s(``,!0):(f(),d(`div`,Mt,[i(`label`,null,[n[51]||=v(` API 地址 `,-1),i(`button`,{class:`btn-refresh btn-inline`,disabled:W.worker,onClick:sr},u(W.worker?`…`:`🔗 连接测试`),9,Nt)]),i(`div`,Pt,[o(i(`input`,{"onUpdate:modelValue":n[14]||=e=>Y.worker.base_url=e,placeholder:Yn.value,onBlur:ir},null,40,Ft),[[c,Y.worker.base_url]]),G.worker===null?s(``,!0):(f(),d(`span`,{key:0,class:m([`ping-badge`,G.worker?`ping-ok`:`ping-err`])},u(G.worker?`✅ 正常`:`❌ `+K.worker),3))])])),Y.worker.backend===`mock`?s(``,!0):(f(),d(`div`,It,[i(`label`,null,[n[52]||=v(` 模型 `,-1),i(`button`,{class:`btn-refresh btn-inline`,disabled:H.worker,onClick:Z},u(H.worker?`…`:`🔄 刷新列表`),9,Lt)]),Y.worker.backend===`llama_server`?o((f(),d(`select`,{key:0,"onUpdate:modelValue":n[15]||=e=>Y.worker.model=e},[n[53]||=i(`option`,{value:``,disabled:``},`—— 从本地模型中选择 ——`,-1),(f(!0),d(l,null,p(M.value,e=>(f(),d(`option`,{key:e.id,value:e.id},u(e.name),9,Rt))),128))],512)),[[h,Y.worker.model]]):Y.worker.backend===`openai`?o((f(),d(`select`,{key:1,"onUpdate:modelValue":n[16]||=e=>Y.worker.model=e},[n[54]||=i(`option`,{value:``,disabled:``},`—— 从 API 获取 ——`,-1),(f(!0),d(l,null,p(B.value,e=>(f(),d(`option`,{key:e.id,value:e.id},u(e.name||e.id),9,zt))),128))],512)),[[h,Y.worker.model]]):o((f(),d(`input`,{key:2,"onUpdate:modelValue":n[17]||=e=>Y.worker.model=e,placeholder:`输入模型名称…`},null,512)),[[c,Y.worker.model]]),U.worker?(f(),d(`span`,Bt,u(U.worker),1)):s(``,!0)])),Y.worker.backend===`llama_server`?(f(),d(`div`,Vt,[n[55]||=i(`label`,null,`端口`,-1),o(i(`input`,{"onUpdate:modelValue":n[18]||=e=>Y.worker.port=e,type:`number`,min:`1`,max:`65535`},null,512),[[c,Y.worker.port,void 0,{number:!0}]])])):s(``,!0),i(`div`,Ht,[n[56]||=i(`label`,null,`Temperature`,-1),o(i(`input`,{"onUpdate:modelValue":n[19]||=e=>Y.worker.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[c,Y.worker.temperature,void 0,{number:!0}]])]),i(`div`,Ut,[n[57]||=i(`label`,null,`最大修复轮次`,-1),o(i(`input`,{"onUpdate:modelValue":n[20]||=e=>Y.worker.max_fix_attempts=e,type:`number`,min:`0`,max:`10`},null,512),[[c,Y.worker.max_fix_attempts,void 0,{number:!0}]])]),i(`div`,Wt,[n[58]||=i(`label`,null,`代码执行超时 (秒)`,-1),o(i(`input`,{"onUpdate:modelValue":n[21]||=e=>Y.worker.code_timeout_s=e,type:`number`,min:`1`,max:`300`},null,512),[[c,Y.worker.code_timeout_s,void 0,{number:!0}]])])])])]),i(`section`,Gt,[i(`div`,Kt,[n[59]||=i(`span`,null,`🧠 大模型 (Architect · API 云端)`,-1),i(`div`,qt,[G.architect===null?s(``,!0):(f(),d(`span`,{key:0,class:m([`ping-badge`,G.architect?`ping-ok`:`ping-err`])},u(G.architect?`✅ 已连接`:`❌ `+K.architect),3))])]),i(`div`,Jt,[i(`div`,Yt,[i(`div`,Xt,[i(`label`,null,[n[60]||=v(` API 端点 `,-1),i(`button`,{class:`btn-refresh btn-inline`,disabled:W.architect,onClick:cr},u(W.architect?`…`:`🔗 连接测试`),9,Zt)]),o(i(`input`,{"onUpdate:modelValue":n[22]||=e=>Y.architect.base_url=e,placeholder:`https://api.deepseek.com`,onBlur:ar},null,544),[[c,Y.architect.base_url]])]),i(`div`,Qt,[i(`label`,null,`API Key`+u(Y.architect.api_key_set?`(已设置,留空保留)`:`(保存在本地 config/settings.json,不入代码库;优先级高于 .env)`),1),o(i(`input`,{"onUpdate:modelValue":n[23]||=e=>Y.architect.api_key=e,type:`password`,placeholder:Y.architect.api_key_set?`已设置,留空保留原值`:`sk-xxxxxxxxxxxxxxxx`,autocomplete:`off`},null,8,$t),[[c,Y.architect.api_key]])]),i(`div`,en,[i(`label`,null,[n[61]||=v(` 模型 `,-1),i(`button`,{class:`btn-refresh btn-inline`,disabled:H.architect,onClick:or},u(H.architect?`…`:`🔄 刷新列表`),9,tn)]),o(i(`select`,{"onUpdate:modelValue":n[24]||=e=>Y.architect.model=e,class:`model-select`},[n[62]||=i(`option`,{value:``,disabled:``},`—— 从 API 获取模型列表 ——`,-1),(f(!0),d(l,null,p(V.value,e=>(f(),d(`option`,{key:e.id,value:e.id},u(e.name||e.id),9,nn))),128))],512),[[h,Y.architect.model]]),U.architect?(f(),d(`span`,rn,u(U.architect),1)):s(``,!0)])])])]),i(`section`,an,[n[68]||=i(`div`,{class:`section-title`},[i(`span`,null,`⚙️ 协作管线 (Pipeline)`)],-1),i(`div`,on,[i(`div`,sn,[i(`div`,cn,[i(`label`,ln,[o(i(`input`,{type:`checkbox`,"onUpdate:modelValue":n[25]||=e=>Y.pipeline.fast_path=e},null,512),[[e,Y.pipeline.fast_path]]),n[63]||=v(` 启用快路径(简单查询跳过本地模型,直接由大模型回答,省 API 费用) `,-1)])]),i(`div`,un,[n[64]||=i(`label`,null,`最大协作轮次`,-1),o(i(`input`,{"onUpdate:modelValue":n[26]||=e=>Y.pipeline.rounds_cap=e,type:`number`,min:`1`,max:`20`},null,512),[[c,Y.pipeline.rounds_cap,void 0,{number:!0}]])]),i(`div`,dn,[n[65]||=i(`label`,null,`API Token 熔断上限`,-1),o(i(`input`,{"onUpdate:modelValue":n[27]||=e=>Y.pipeline.api_token_cap=e,type:`number`,min:`100`,max:`100000`},null,512),[[c,Y.pipeline.api_token_cap,void 0,{number:!0}]])]),i(`div`,fn,[n[67]||=i(`label`,null,`超限策略`,-1),o(i(`select`,{"onUpdate:modelValue":n[28]||=e=>Y.pipeline.breach_policy=e},[...n[66]||=[i(`option`,{value:`architect_do`},`architect_do(超限交给大模型处理,推荐)`,-1),i(`option`,{value:`local_only`},`local_only(强制留在本地小模型)`,-1)]],512),[[h,Y.pipeline.breach_policy]])])])])]),i(`section`,pn,[i(`div`,mn,[n[69]||=i(`span`,null,`🧠 语义分级(Sense · 三级任务分级)`,-1),i(`div`,hn,[i(`span`,{class:m([`server-badge`,$.enabled?`badge-running`:`badge-stopped`])},u($.enabled?`● ${$.mode}`:`○ 未启用`),3)])]),i(`div`,gn,[i(`p`,_n,` 灰度纪律:collect(只记不决策)攒满 `+u($.min_labels)+` 条标签并过晋升门 (一致率 ≥85% + conformal 覆盖 ≤α+2% + 审计无误判)后才可开 live。 `,1),i(`div`,vn,[i(`div`,yn,[i(`label`,bn,[o(i(`input`,{type:`checkbox`,"onUpdate:modelValue":n[29]||=e=>$.enabled=e,onChange:mr},null,544),[[e,$.enabled]]),n[70]||=v(` 启用语义分析器(总开关,改后保存生效) `,-1)])]),i(`div`,xn,[n[72]||=i(`label`,null,`灰度模式`,-1),o(i(`select`,{"onUpdate:modelValue":n[30]||=e=>$.mode=e,onChange:mr,disabled:!$.enabled},[...n[71]||=[i(`option`,{value:`collect`},`collect — 只采集观察`,-1),i(`option`,{value:`shadow`},`shadow — 决策只比对不执行`,-1),i(`option`,{value:`live`},`live — 真分流(需晋升门通过)`,-1)]],40,Sn),[[h,$.mode]])]),i(`div`,Cn,[i(`label`,null,`观察/标签数(min_labels=`+u($.min_labels)+`)`,1),i(`input`,{value:`${$.obs} / ${$.labeled}`,disabled:``},null,8,wn)])])])]),i(`div`,Tn,[i(`button`,{class:`btn-primary`,disabled:_.value||!Xn.value,onClick:dr},u(_.value?`保存中…`:`💾 保存设置`),9,En),i(`button`,{class:`btn-secondary`,disabled:_.value,onClick:fr},` 🔁 恢复默认 `,8,Dn)]),y.value?(f(),d(`div`,{key:0,class:m([`toast`,y.value.ok?`toast-ok`:`toast-err`])},u(y.value.msg),3)):s(``,!0)]))}}),[[`__scopeId`,`data-v-bedfedd6`]]);export{On as default}; \ No newline at end of file diff --git a/gateway/static/assets/SettingsView-yLQ4Nsmb.js b/gateway/static/assets/SettingsView-yLQ4Nsmb.js deleted file mode 100644 index fc4629d..0000000 --- a/gateway/static/assets/SettingsView-yLQ4Nsmb.js +++ /dev/null @@ -1 +0,0 @@ -import{A as e,B as t,D as n,E as r,F as i,G as a,I as o,L as s,M as c,N as ee,O as l,P as te,S as ne,T as u,U as d,V as f,W as re,_ as ie,a as ae,b as oe,c as se,d as ce,g as le,h as ue,i as de,j as p,k as m,l as fe,m as pe,o as me,p as he,r as ge,s as _e,t as h,u as ve,w as g,x as ye,y as be,z as _}from"./index-DbIiNlXp.js";var xe={class:`settings-view`},Se={class:`settings-section`},Ce={class:`section-body`},we={class:`role-bar`},Te=[`onUpdate:modelValue`],Ee=[`value`],De={key:0,class:`pool-table`},Oe={class:`mono`},ke=[`onUpdate:modelValue`,`onChange`],Ae={class:`row-actions`},je=[`disabled`,`onClick`],Me=[`onClick`],Ne=[`onClick`],Pe={key:1,class:`no-models`},Fe={key:3,class:`pool-edit`},Ie={class:`pool-edit-title`},Le={class:`form-grid`},Re={class:`field`},ze={class:`field`},Be={class:`field`},Ve={class:`field`},He=[`disabled`],Ue={id:`pool-model-options`},We=[`value`],Ge={key:0,class:`field full-width`},Ke={key:1,class:`field`},qe={class:`field`},Je={class:`field`},Ye={class:`field`},Xe={class:`field`},Ze={class:`pool-edit-actions`},Qe={class:`checkbox-label`},$e=[`disabled`],et={class:`settings-section`},tt={class:`section-title`},nt={class:`title-right`},rt={class:`section-body`},it={class:`server-control-bar`},at={class:`server-info`},ot={class:`model-chip`},st={class:`model-chip port-chip`},ct={class:`model-chip pid-chip`},lt={key:1,class:`server-idle`},ut={class:`server-actions`},dt=[`disabled`],ft=[`disabled`],pt={key:0,class:`error-msg llama-error`},mt={class:`local-models`},ht={class:`local-models-header`},gt=[`disabled`],_t={key:0,class:`no-models`},vt={key:1,class:`model-list`},yt=[`onClick`],bt={class:`model-item-name`},xt={class:`model-item-size`},St={class:`download-section`},Ct={class:`download-form`},wt=[`disabled`],Tt=[`disabled`],Et={key:0,class:`progress-wrap`},Dt={class:`progress-bar`},Ot={class:`progress-info`},kt={key:1,class:`error-msg download-error`},At={key:2,class:`done-msg`},jt={class:`form-grid`,style:{"margin-top":`16px`}},Mt={class:`field full-width`},Nt={key:0,class:`field full-width`},Pt=[`disabled`],Ft={class:`input-row`},It=[`placeholder`],Lt={key:1,class:`field full-width`},Rt=[`disabled`],zt=[`value`],Bt=[`value`],Vt={key:3,class:`field-hint warn`},Ht={key:2,class:`field`},Ut={class:`field`},Wt={class:`field`},Gt={class:`field`},Kt={class:`settings-section`},qt={class:`section-title`},Jt={class:`title-right`},Yt={class:`section-body`},Xt={class:`form-grid`},Zt={class:`field full-width`},Qt=[`disabled`],$t={class:`field full-width`},en=[`placeholder`],tn={class:`field full-width`},nn=[`disabled`],rn=[`value`],an={key:0,class:`field-hint warn`},on={class:`settings-section`},sn={class:`section-body`},cn={class:`form-grid`},ln={class:`field full-width`},un={class:`checkbox-label`},dn={class:`field`},fn={class:`field`},pn={class:`field full-width`},mn={class:`settings-section`},hn={class:`section-title`},gn={class:`title-right`},_n={class:`section-body`},vn={class:`role-hint`},yn={class:`form-grid`},bn={class:`field`},xn={class:`checkbox-label`},Sn={class:`field`},Cn=[`disabled`],wn={class:`field`},Tn=[`value`],En={class:`actions`},Dn=[`disabled`],On=[`disabled`],v=h(ee({__name:`SettingsView`,setup(ee){let h=f(!1),v=f(``),y=f(null),kn=[{key:`architect`,label:`🧠 Architect(决策/终审)`},{key:`worker`,label:`🔧 Worker(实现/自验证)`},{key:`agent`,label:`🤖 Agent(智能体工具)`}],An={local:`本地/零成本`,budget:`低价 API`,premium:`旗舰 API`},b=f({roles:{architect:``,worker:``,agent:``},entries:[]}),x=t({architect:``,worker:``,agent:``}),S=f(null),C=f(!1),w=f(``),T=f(``),E=f(!1),D=f(!1),O=f(!1),jn=f([]),Mn=l(()=>b.value.entries.filter(e=>e.enabled));function Nn(e){return An[e]??e}async function Pn(){try{b.value=await se(),x.architect=b.value.roles.architect||``,x.worker=b.value.roles.worker||``,x.agent=b.value.roles.agent||``}catch{}}async function Fn(){try{b.value=await ue({...x}),y.value={ok:!0,msg:`✅ 角色已更新,管线已重建`}}catch(e){y.value={ok:!1,msg:`❌ 角色指派失败:`+(e?.response?.data?.detail||e?.message||e)},await Pn()}setTimeout(()=>y.value=null,3e3)}function In(){C.value=!0,S.value={name:``,tier:`budget`,backend:`openai`,base_url:``,model:``,api_key:``,price_in:.1,price_out:.1,temperature:.3,max_tokens:4096,enabled:!0}}function Ln(e){C.value=!1,S.value={...e,api_key:``}}async function Rn(){if(S.value){D.value=!0;try{b.value=await ye(S.value),S.value=null,y.value={ok:!0,msg:`✅ 模型条目已保存`}}catch(e){y.value={ok:!1,msg:`❌ 保存失败:`+(e?.response?.data?.detail||e?.message||e)}}finally{D.value=!1,setTimeout(()=>y.value=null,3e3)}}}async function zn(e){confirm(`删除模型条目「${e.name}」?相关角色指派会一并清空。`)&&(b.value=await ge(e.id))}async function Bn(e){b.value=await ye({...e,api_key:``})}async function Vn(e){w.value=e.id,T.value=``;try{let t=await be(e.id);E.value=t.ok,T.value=t.ok?`✅ ${e.name} 连接正常`:`❌ ${e.name}: ${t.detail||`连接失败`}`}catch(e){E.value=!1,T.value=`❌ `+(e?.message||String(e))}finally{w.value=``}}async function Hn(){if(S.value){O.value=!0;try{let e;e=!C.value&&S.value.id?await ce(S.value.id):S.value.backend===`mock`?{models:[{id:`mock`,name:`mock(内置模拟)`}]}:await ve(S.value.backend||`openai`,S.value.base_url||``,S.value.api_key||``),e.error?(E.value=!1,T.value=e.error,jn.value=[]):jn.value=e.models||[]}finally{O.value=!1}}}let k=f({running:!1}),A=f(!1),j=f(!1),M=f([]),N=f(!1),Un=f(``),P=f(!1),F=f(``),I=f(0),Wn=f(``),Gn=f(``),Kn=f(``),qn=f(null),Jn=f(``),L=f(``),R=f(!1),z=null,B=f([]),V=f([]),H=t({worker:!1,architect:!1}),U=t({worker:``,architect:``}),W=t({worker:!1,architect:!1}),G=t({worker:null,architect:null}),K=t({worker:``,architect:``}),q=[{id:`deepseek-v4-flash`,name:`deepseek-v4-flash(推荐)`},{id:`deepseek-v4-pro`,name:`deepseek-v4-pro(推理模式)`},{id:`deepseek-coder`,name:`deepseek-coder`},{id:`gpt-4o-mini`,name:`gpt-4o-mini`},{id:`gpt-4o`,name:`gpt-4o`},{id:`claude-3-5-sonnet-20241022`,name:`claude-3.5-sonnet`},{id:`qwen-plus`,name:`qwen-plus`},{id:`qwen-max`,name:`qwen-max`}],J=f(null),Y=t({worker:{backend:`mock`,model:``,base_url:``,port:8901,temperature:.3,max_fix_attempts:2,code_timeout_s:10},architect:{model:`deepseek-v4-flash`,base_url:`https://api.deepseek.com`,api_key:``},pipeline:{fast_path:!0,rounds_cap:6,api_token_cap:8e3,breach_policy:`architect_do`}}),Yn=l(()=>Y.worker.backend===`llama_server`?`http://127.0.0.1:${Y.worker.port}/v1`:`http://127.0.0.1:11434/v1`),Xn=l(()=>J.value?JSON.stringify(Y)!==JSON.stringify(J.value):!1);function Zn(e){return e>=1e9?(e/1e9).toFixed(1)+` GB`:e>=1e6?(e/1e6).toFixed(1)+` MB`:e>=1e3?(e/1e3).toFixed(0)+` KB`:e+` B`}async function Qn(){try{let e=await me();return k.value=e,e}catch{return k.value={running:!1},{running:!1}}}async function X(){N.value=!0;try{M.value=await fe()}catch{M.value=[]}finally{N.value=!1}}async function $n(){if(!Y.worker.model){alert(`请先从上方「本地模型」列表中选择一个模型,再启动服务`);return}A.value=!0;try{let e=await le(Y.worker.model,Y.worker.port,99,4096);k.value=e,e.running&&(Y.worker.backend=`llama_server`,Y.worker.base_url=`http://127.0.0.1:${e.port}/v1`,await X(),await Z())}catch(e){k.value={running:!1,error:String(e?.message||e)}}finally{A.value=!1}}async function er(){j.value=!0;try{await ie(),k.value={running:!1}}catch{k.value={running:!1}}finally{j.value=!1}}function tr(e){Un.value=e.id,Y.worker.model=e.id}function nr(){F.value.trim()&&(L.value=``,R.value=!1,I.value=0,Wn.value=``,Gn.value=``,Kn.value=`0 B`,qn.value=null,P.value=!0,de(F.value.trim()).then(e=>{if(e.error){L.value=e.error,P.value=!1;return}if(e.done){rr(e);return}z=ne(F.value.trim()),z.subscribe({onProgress:rr,onDone:e=>{rr(e),z?.close(),z=null}})}))}function rr(e){I.value=Math.round(e.progress_pct),Wn.value=e.speed,Gn.value=e.eta,Kn.value=Zn(e.downloaded_bytes),qn.value=e.total_bytes?Zn(e.total_bytes):null,Jn.value=e.dest,e.done&&(P.value=!1,e.error?L.value=e.error:(R.value=!0,X()))}async function ir(){U.worker=``,B.value=[],Y.worker.backend!==`mock`&&await Z()}async function ar(){U.architect=``,V.value=[],await or()}async function Z(){if(Y.worker.backend!==`mock`){H.worker=!0,U.worker=``;try{let e=await ve(Y.worker.backend,Y.worker.base_url,``);e.error?Y.worker.backend===`llama_server`?U.worker=`💡 llama-server 未启动,请先点击上方「启动服务」`:U.worker=e.error||`连接失败`:B.value=e.models||[]}catch{U.worker=`获取模型列表失败`}finally{H.worker=!1}}}async function or(){if(H.architect=!0,U.architect=``,!Y.architect.base_url){V.value=[...q],H.architect=!1;return}try{let e=await ve(`openai`,Y.architect.base_url,Y.architect.api_key||``);e.error?(U.architect=e.error,V.value=[...q]):(e.models||[]).length>0?V.value=e.models||[]:V.value=[...q]}catch{U.architect=`获取模型列表失败`,V.value=[...q]}finally{H.architect=!1}}async function sr(){if(Y.worker.backend!==`mock`){W.worker=!0,G.worker=null,K.worker=``;try{let e=await he(Y.worker.backend,Y.worker.base_url,``);G.worker=e.ok,e.ok||(K.worker=e.detail||`连接失败`)}catch(e){G.worker=!1,K.worker=e?.message||String(e)}finally{W.worker=!1}}}async function cr(){if(!Y.architect.base_url){G.architect=!1,K.architect=`请先填写 API 端点`;return}W.architect=!0,G.architect=null,K.architect=``;try{let e=await he(`openai`,Y.architect.base_url,Y.architect.api_key||``);G.architect=e.ok,e.ok||(K.architect=e.detail||`连接失败`)}catch(e){G.architect=!1,K.architect=e?.message||String(e)}finally{W.architect=!1}}function Q(e,t){if(t)for(let n of Object.keys(e))t[n]!==void 0&&(typeof e[n]==`object`&&typeof t[n]==`object`&&e[n]!==null?Q(e[n],t[n]):e[n]=t[n])}function lr(e){if(!e)return;let{api_key:t,api_key_set:n,...r}=e;Q(Y.architect,r),Y.architect.api_key_set=!!n,Y.architect.api_key=``}async function ur(){v.value=``;try{let[e,t]=await Promise.all([ae(),Qn()]);k.value=t,Pn(),e.worker&&Q(Y.worker,e.worker),e.architect&&lr(e.architect),e.pipeline&&Q(Y.pipeline,e.pipeline),J.value=JSON.parse(JSON.stringify(Y)),await X(),V.value=[...q],Y.worker.backend!==`mock`&&Z(),Y.worker.model&&(Un.value=Y.worker.model)}catch(e){v.value=`加载配置失败:`+(e?.message||String(e))}}async function dr(){h.value=!0,y.value=null;try{let e=JSON.parse(JSON.stringify(Y));e.architect.api_key||delete e.architect.api_key;let t=await oe(e);Q(Y.worker,t.worker||{}),lr(t.architect||{}),Q(Y.pipeline,t.pipeline||{}),J.value=JSON.parse(JSON.stringify(Y)),y.value={ok:!0,msg:`✅ 设置已保存,管线已重建`},setTimeout(()=>y.value=null,3e3)}catch(e){y.value={ok:!1,msg:`❌ 保存失败:`+(e?.message||String(e))}}finally{h.value=!1}}async function fr(){if(confirm(`确定恢复默认设置?`)){h.value=!0,y.value=null;try{let e=await pe();Q(Y.worker,e.worker||{}),lr(e.architect||{}),Q(Y.pipeline,e.pipeline||{}),J.value=JSON.parse(JSON.stringify(Y)),B.value=[],V.value=[...q],G.worker=null,G.architect=null,y.value={ok:!0,msg:`✅ 已恢复默认设置`},setTimeout(()=>y.value=null,3e3)}catch(e){y.value={ok:!1,msg:`❌ 重置失败:`+(e?.message||String(e))}}finally{h.value=!1}}}let $=t({enabled:!1,mode:`collect`,obs:0,labeled:0,min_labels:500});async function pr(){try{let[e,t]=await Promise.all([ae(),_e()]),n=e.sense||{};$.enabled=!!n.enabled,$.mode=n.mode||`collect`,$.min_labels=n.policy?.min_labels??500;let r=t.sense||{};$.obs=r.observations??0,$.labeled=r.labeled??0}catch{}}async function mr(){try{await oe({sense:{enabled:$.enabled,mode:$.mode}}),y.value={ok:!0,msg:`✅ 语义分级已${$.enabled?`启用(`+$.mode+`)`:`关闭`}`}}catch(e){y.value={ok:!1,msg:`❌ 保存失败:`+(e?.response?.data?.detail||e?.message||e)},await pr()}setTimeout(()=>y.value=null,3e3)}return te(()=>{ur(),pr()}),i(()=>{z?.close()}),(t,i)=>(o(),p(`div`,xe,[i[73]||=m(`header`,{class:`settings-header`},[m(`h2`,null,`⚙️ 模型设置`),m(`p`,{class:`subtitle`},`配置小模型(Worker)与大模型(Architect)参数,保存后实时生效`)],-1),m(`section`,Se,[m(`div`,{class:`section-title`},[i[31]||=m(`span`,null,`🗄️ 模型池(多价位异构模型)`,-1),m(`div`,{class:`title-right`},[m(`button`,{class:`btn-refresh`,onClick:In},`+ 添加模型`)])]),m(`div`,Ce,[m(`div`,we,[(o(),p(n,null,s(kn,e=>m(`div`,{class:`role-item`,key:e.key},[m(`label`,null,a(e.label),1),_(m(`select`,{"onUpdate:modelValue":t=>x[e.key]=t,onChange:Fn},[i[32]||=m(`option`,{value:``},`经典设置(下方表单)`,-1),(o(!0),p(n,null,s(Mn.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name),9,Ee))),128))],40,Te),[[u,x[e.key]]])])),64))]),i[46]||=m(`p`,{class:`role-hint`},` 按价位组织模型:本地 llama.cpp 为零成本档,低价 API 干批量活,旗舰 API 做决策—— 随时切换,保存后管线自动重建。 `,-1),b.value.entries.length?(o(),p(`table`,De,[i[33]||=m(`thead`,null,[m(`tr`,null,[m(`th`,null,`名称`),m(`th`,null,`档位`),m(`th`,null,`后端`),m(`th`,null,`模型`),m(`th`,null,`单价 $/1M(入/出)`),m(`th`,null,`启用`),m(`th`,null,`操作`)])],-1),m(`tbody`,null,[(o(!0),p(n,null,s(b.value.entries,e=>(o(),p(`tr`,{key:e.id},[m(`td`,null,a(e.name),1),m(`td`,null,[m(`span`,{class:d([`tier-badge`,`tier-`+e.tier])},a(Nn(e.tier)),3)]),m(`td`,null,a(e.backend),1),m(`td`,Oe,a(e.model||`—`),1),m(`td`,null,a(e.price_in)+` / `+a(e.price_out),1),m(`td`,null,[_(m(`input`,{type:`checkbox`,"onUpdate:modelValue":t=>e.enabled=t,onChange:t=>Bn(e)},null,40,ke),[[g,e.enabled]])]),m(`td`,Ae,[m(`button`,{class:`btn-refresh`,disabled:w.value===e.id,onClick:t=>Vn(e)},a(w.value===e.id?`…`:`测试`),9,je),m(`button`,{class:`btn-refresh`,onClick:t=>Ln(e)},`编辑`,8,Me),m(`button`,{class:`btn-refresh danger`,onClick:t=>zn(e)},`删除`,8,Ne)])]))),128))])])):(o(),p(`div`,Pe,` 池为空——可添加本地 llama.cpp 模型(零成本档)、低价 API、旗舰 API 等,随时指派给 Architect / Worker / Agent。 `)),T.value?(o(),p(`div`,{key:2,class:d([`field-hint`,E.value?`ok`:`warn`])},a(T.value),3)):e(``,!0),S.value?(o(),p(`div`,Fe,[m(`div`,Ie,a(C.value?`添加模型`:`编辑模型`),1),m(`div`,Le,[m(`div`,Re,[i[34]||=m(`label`,null,`名称`,-1),_(m(`input`,{"onUpdate:modelValue":i[0]||=e=>S.value.name=e,placeholder:`如:DeepSeek 旗舰 / 本地 Qwen4B`},null,512),[[r,S.value.name]])]),m(`div`,ze,[i[36]||=m(`label`,null,`档位`,-1),_(m(`select`,{"onUpdate:modelValue":i[1]||=e=>S.value.tier=e},[...i[35]||=[m(`option`,{value:`local`},`local(本地 / 零边际成本)`,-1),m(`option`,{value:`budget`},`budget(低价 API)`,-1),m(`option`,{value:`premium`},`premium(旗舰 API)`,-1)]],512),[[u,S.value.tier]])]),m(`div`,Be,[i[38]||=m(`label`,null,`后端`,-1),_(m(`select`,{"onUpdate:modelValue":i[2]||=e=>S.value.backend=e},[...i[37]||=[m(`option`,{value:`openai`},`openai / 兼容 API`,-1),m(`option`,{value:`llama_server`},`llama_server(内置本地)`,-1),m(`option`,{value:`mock`},`mock(模拟)`,-1)]],512),[[u,S.value.backend]])]),m(`div`,Ve,[m(`label`,null,[i[39]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:O.value,onClick:Hn},a(O.value?`…`:`🔄 刷新列表`),9,He)]),_(m(`input`,{"onUpdate:modelValue":i[3]||=e=>S.value.model=e,list:`pool-model-options`,placeholder:`模型名`},null,512),[[r,S.value.model]]),m(`datalist`,Ue,[(o(!0),p(n,null,s(jn.value,e=>(o(),p(`option`,{key:e.id,value:e.id},null,8,We))),128))])]),S.value.backend===`mock`?e(``,!0):(o(),p(`div`,Ge,[i[40]||=m(`label`,null,`API 地址`,-1),_(m(`input`,{"onUpdate:modelValue":i[4]||=e=>S.value.base_url=e,placeholder:`https://api.deepseek.com 或 http://127.0.0.1:8901/v1`},null,512),[[r,S.value.base_url]])])),S.value.backend===`openai`?(o(),p(`div`,Ke,[m(`label`,null,`API Key`+a(S.value.api_key_set?`(已设置,留空保留)`:``),1),_(m(`input`,{"onUpdate:modelValue":i[5]||=e=>S.value.api_key=e,type:`password`,autocomplete:`off`,placeholder:`sk-…`},null,512),[[r,S.value.api_key]])])):e(``,!0),m(`div`,qe,[i[41]||=m(`label`,null,`输入单价 $/1M`,-1),_(m(`input`,{"onUpdate:modelValue":i[6]||=e=>S.value.price_in=e,type:`number`,min:`0`,step:`0.01`},null,512),[[r,S.value.price_in,void 0,{number:!0}]])]),m(`div`,Je,[i[42]||=m(`label`,null,`输出单价 $/1M`,-1),_(m(`input`,{"onUpdate:modelValue":i[7]||=e=>S.value.price_out=e,type:`number`,min:`0`,step:`0.01`},null,512),[[r,S.value.price_out,void 0,{number:!0}]])]),m(`div`,Ye,[i[43]||=m(`label`,null,`Temperature`,-1),_(m(`input`,{"onUpdate:modelValue":i[8]||=e=>S.value.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[r,S.value.temperature,void 0,{number:!0}]])]),m(`div`,Xe,[i[44]||=m(`label`,null,`Max Tokens`,-1),_(m(`input`,{"onUpdate:modelValue":i[9]||=e=>S.value.max_tokens=e,type:`number`,min:`256`,max:`32768`},null,512),[[r,S.value.max_tokens,void 0,{number:!0}]])])]),m(`div`,Ze,[m(`label`,Qe,[_(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[10]||=e=>S.value.enabled=e},null,512),[[g,S.value.enabled]]),i[45]||=c(` 启用 `,-1)]),m(`button`,{class:`btn-primary`,disabled:D.value,onClick:Rn},a(D.value?`保存中…`:`保存条目`),9,$e),m(`button`,{class:`btn-secondary`,onClick:i[11]||=e=>S.value=null},`取消`)])])):e(``,!0)])]),m(`section`,et,[m(`div`,tt,[i[47]||=m(`span`,null,`🔧 小模型 (Worker · 本地 llama.cpp)`,-1),m(`div`,nt,[m(`span`,{class:d([`server-badge`,k.value.running?`badge-running`:`badge-stopped`])},a(k.value.running?`● 运行中`:`○ 已停止`),3)])]),m(`div`,rt,[m(`div`,it,[m(`div`,at,[k.value.running?(o(),p(n,{key:0},[m(`span`,ot,a(k.value.model?.split(/[/\\]/).pop()),1),m(`span`,st,`:`+a(k.value.port),1),m(`span`,ct,`PID `+a(k.value.pid),1)],64)):(o(),p(`span`,lt,`llama-server 未运行 — 点击「启动服务」即可启用`))]),m(`div`,ut,[k.value.running?(o(),p(`button`,{key:1,class:`btn-stop`,disabled:A.value||j.value,onClick:er},a(j.value?`停止中…`:`■ 停止服务`),9,ft)):(o(),p(`button`,{key:0,class:`btn-start`,disabled:A.value||j.value,onClick:$n},a(A.value?`启动中…`:`▶ 启动服务`),9,dt))])]),k.value.error?(o(),p(`div`,pt,a(k.value.error),1)):e(``,!0),m(`div`,mt,[m(`div`,ht,[m(`span`,null,`📁 本地模型 (`+a(M.value.length)+`)`,1),m(`button`,{class:`btn-refresh`,disabled:N.value,onClick:X},a(N.value?`…`:`🔄`),9,gt)]),M.value.length===0&&!N.value?(o(),p(`div`,_t,` 暂无本地模型,请下载或放置 .gguf 文件到 models/ 目录 `)):(o(),p(`div`,vt,[(o(!0),p(n,null,s(M.value,e=>(o(),p(`div`,{key:e.id,class:d([`model-item`,Un.value===e.id?`selected`:``]),onClick:t=>tr(e)},[m(`span`,bt,a(e.name),1),m(`span`,xt,a(e.size_mb)+` MB`,1)],10,yt))),128))]))]),m(`div`,St,[i[48]||=m(`div`,{class:`download-header`},`⬇️ 下载模型`,-1),m(`div`,Ct,[_(m(`input`,{"onUpdate:modelValue":i[12]||=e=>F.value=e,class:`download-input`,placeholder:`HuggingFace 路径或直链,如:Qwen/Qwen3-4B-GGUF/Qwen3-4B-Q4_K_M.gguf`,disabled:P.value},null,8,wt),[[r,F.value]]),m(`button`,{class:`btn-download`,disabled:P.value||!F.value.trim(),onClick:nr},a(P.value?I.value+`%`:`下载`),9,Tt)]),P.value?(o(),p(`div`,Et,[m(`div`,Dt,[m(`div`,{class:`progress-fill`,style:re({width:I.value+`%`})},null,4)]),m(`div`,Ot,[m(`span`,null,a(Wn.value),1),m(`span`,null,a(Gn.value),1),m(`span`,null,a(Kn.value)+`/`+a(qn.value||`?`),1)])])):e(``,!0),L.value?(o(),p(`div`,kt,a(L.value),1)):e(``,!0),R.value&&!L.value?(o(),p(`div`,At,` ✅ 下载完成:`+a(Jn.value),1)):e(``,!0)]),m(`div`,jt,[m(`div`,Mt,[i[50]||=m(`label`,null,`后端类型`,-1),_(m(`select`,{"onUpdate:modelValue":i[13]||=e=>Y.worker.backend=e,onChange:ir},[...i[49]||=[m(`option`,{value:`mock`},`mock(模拟,不真实调用)`,-1),m(`option`,{value:`llama_server`},`llama_server(内置本地服务,推荐)`,-1),m(`option`,{value:`openai`},`openai / 兼容 API(Ollama 等)`,-1)]],544),[[u,Y.worker.backend]])]),Y.worker.backend===`mock`?e(``,!0):(o(),p(`div`,Nt,[m(`label`,null,[i[51]||=c(` API 地址 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:W.worker,onClick:sr},a(W.worker?`…`:`🔗 连接测试`),9,Pt)]),m(`div`,Ft,[_(m(`input`,{"onUpdate:modelValue":i[14]||=e=>Y.worker.base_url=e,placeholder:Yn.value,onBlur:ir},null,40,It),[[r,Y.worker.base_url]]),G.worker===null?e(``,!0):(o(),p(`span`,{key:0,class:d([`ping-badge`,G.worker?`ping-ok`:`ping-err`])},a(G.worker?`✅ 正常`:`❌ `+K.worker),3))])])),Y.worker.backend===`mock`?e(``,!0):(o(),p(`div`,Lt,[m(`label`,null,[i[52]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:H.worker,onClick:Z},a(H.worker?`…`:`🔄 刷新列表`),9,Rt)]),Y.worker.backend===`llama_server`?_((o(),p(`select`,{key:0,"onUpdate:modelValue":i[15]||=e=>Y.worker.model=e},[i[53]||=m(`option`,{value:``,disabled:``},`—— 从本地模型中选择 ——`,-1),(o(!0),p(n,null,s(M.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name),9,zt))),128))],512)),[[u,Y.worker.model]]):Y.worker.backend===`openai`?_((o(),p(`select`,{key:1,"onUpdate:modelValue":i[16]||=e=>Y.worker.model=e},[i[54]||=m(`option`,{value:``,disabled:``},`—— 从 API 获取 ——`,-1),(o(!0),p(n,null,s(B.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name||e.id),9,Bt))),128))],512)),[[u,Y.worker.model]]):_((o(),p(`input`,{key:2,"onUpdate:modelValue":i[17]||=e=>Y.worker.model=e,placeholder:`输入模型名称…`},null,512)),[[r,Y.worker.model]]),U.worker?(o(),p(`span`,Vt,a(U.worker),1)):e(``,!0)])),Y.worker.backend===`llama_server`?(o(),p(`div`,Ht,[i[55]||=m(`label`,null,`端口`,-1),_(m(`input`,{"onUpdate:modelValue":i[18]||=e=>Y.worker.port=e,type:`number`,min:`1`,max:`65535`},null,512),[[r,Y.worker.port,void 0,{number:!0}]])])):e(``,!0),m(`div`,Ut,[i[56]||=m(`label`,null,`Temperature`,-1),_(m(`input`,{"onUpdate:modelValue":i[19]||=e=>Y.worker.temperature=e,type:`number`,min:`0`,max:`2`,step:`0.05`},null,512),[[r,Y.worker.temperature,void 0,{number:!0}]])]),m(`div`,Wt,[i[57]||=m(`label`,null,`最大修复轮次`,-1),_(m(`input`,{"onUpdate:modelValue":i[20]||=e=>Y.worker.max_fix_attempts=e,type:`number`,min:`0`,max:`10`},null,512),[[r,Y.worker.max_fix_attempts,void 0,{number:!0}]])]),m(`div`,Gt,[i[58]||=m(`label`,null,`代码执行超时 (秒)`,-1),_(m(`input`,{"onUpdate:modelValue":i[21]||=e=>Y.worker.code_timeout_s=e,type:`number`,min:`1`,max:`300`},null,512),[[r,Y.worker.code_timeout_s,void 0,{number:!0}]])])])])]),m(`section`,Kt,[m(`div`,qt,[i[59]||=m(`span`,null,`🧠 大模型 (Architect · API 云端)`,-1),m(`div`,Jt,[G.architect===null?e(``,!0):(o(),p(`span`,{key:0,class:d([`ping-badge`,G.architect?`ping-ok`:`ping-err`])},a(G.architect?`✅ 已连接`:`❌ `+K.architect),3))])]),m(`div`,Yt,[m(`div`,Xt,[m(`div`,Zt,[m(`label`,null,[i[60]||=c(` API 端点 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:W.architect,onClick:cr},a(W.architect?`…`:`🔗 连接测试`),9,Qt)]),_(m(`input`,{"onUpdate:modelValue":i[22]||=e=>Y.architect.base_url=e,placeholder:`https://api.deepseek.com`,onBlur:ar},null,544),[[r,Y.architect.base_url]])]),m(`div`,$t,[m(`label`,null,`API Key`+a(Y.architect.api_key_set?`(已设置,留空保留)`:`(保存在本地 config/settings.json,不入代码库;优先级高于 .env)`),1),_(m(`input`,{"onUpdate:modelValue":i[23]||=e=>Y.architect.api_key=e,type:`password`,placeholder:Y.architect.api_key_set?`已设置,留空保留原值`:`sk-xxxxxxxxxxxxxxxx`,autocomplete:`off`},null,8,en),[[r,Y.architect.api_key]])]),m(`div`,tn,[m(`label`,null,[i[61]||=c(` 模型 `,-1),m(`button`,{class:`btn-refresh btn-inline`,disabled:H.architect,onClick:or},a(H.architect?`…`:`🔄 刷新列表`),9,nn)]),_(m(`select`,{"onUpdate:modelValue":i[24]||=e=>Y.architect.model=e,class:`model-select`},[i[62]||=m(`option`,{value:``,disabled:``},`—— 从 API 获取模型列表 ——`,-1),(o(!0),p(n,null,s(V.value,e=>(o(),p(`option`,{key:e.id,value:e.id},a(e.name||e.id),9,rn))),128))],512),[[u,Y.architect.model]]),U.architect?(o(),p(`span`,an,a(U.architect),1)):e(``,!0)])])])]),m(`section`,on,[i[68]||=m(`div`,{class:`section-title`},[m(`span`,null,`⚙️ 协作管线 (Pipeline)`)],-1),m(`div`,sn,[m(`div`,cn,[m(`div`,ln,[m(`label`,un,[_(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[25]||=e=>Y.pipeline.fast_path=e},null,512),[[g,Y.pipeline.fast_path]]),i[63]||=c(` 启用快路径(简单查询跳过本地模型,直接由大模型回答,省 API 费用) `,-1)])]),m(`div`,dn,[i[64]||=m(`label`,null,`最大协作轮次`,-1),_(m(`input`,{"onUpdate:modelValue":i[26]||=e=>Y.pipeline.rounds_cap=e,type:`number`,min:`1`,max:`20`},null,512),[[r,Y.pipeline.rounds_cap,void 0,{number:!0}]])]),m(`div`,fn,[i[65]||=m(`label`,null,`API Token 熔断上限`,-1),_(m(`input`,{"onUpdate:modelValue":i[27]||=e=>Y.pipeline.api_token_cap=e,type:`number`,min:`100`,max:`100000`},null,512),[[r,Y.pipeline.api_token_cap,void 0,{number:!0}]])]),m(`div`,pn,[i[67]||=m(`label`,null,`超限策略`,-1),_(m(`select`,{"onUpdate:modelValue":i[28]||=e=>Y.pipeline.breach_policy=e},[...i[66]||=[m(`option`,{value:`architect_do`},`architect_do(超限交给大模型处理,推荐)`,-1),m(`option`,{value:`local_only`},`local_only(强制留在本地小模型)`,-1)]],512),[[u,Y.pipeline.breach_policy]])])])])]),m(`section`,mn,[m(`div`,hn,[i[69]||=m(`span`,null,`🧠 语义分级(Sense · 三级任务分级)`,-1),m(`div`,gn,[m(`span`,{class:d([`server-badge`,$.enabled?`badge-running`:`badge-stopped`])},a($.enabled?`● ${$.mode}`:`○ 未启用`),3)])]),m(`div`,_n,[m(`p`,vn,` 灰度纪律:collect(只记不决策)攒满 `+a($.min_labels)+` 条标签并过晋升门 (一致率 ≥85% + conformal 覆盖 ≤α+2% + 审计无误判)后才可开 live。 `,1),m(`div`,yn,[m(`div`,bn,[m(`label`,xn,[_(m(`input`,{type:`checkbox`,"onUpdate:modelValue":i[29]||=e=>$.enabled=e,onChange:mr},null,544),[[g,$.enabled]]),i[70]||=c(` 启用语义分析器(总开关,改后保存生效) `,-1)])]),m(`div`,Sn,[i[72]||=m(`label`,null,`灰度模式`,-1),_(m(`select`,{"onUpdate:modelValue":i[30]||=e=>$.mode=e,onChange:mr,disabled:!$.enabled},[...i[71]||=[m(`option`,{value:`collect`},`collect — 只采集观察`,-1),m(`option`,{value:`shadow`},`shadow — 决策只比对不执行`,-1),m(`option`,{value:`live`},`live — 真分流(需晋升门通过)`,-1)]],40,Cn),[[u,$.mode]])]),m(`div`,wn,[m(`label`,null,`观察/标签数(min_labels=`+a($.min_labels)+`)`,1),m(`input`,{value:`${$.obs} / ${$.labeled}`,disabled:``},null,8,Tn)])])])]),m(`div`,En,[m(`button`,{class:`btn-primary`,disabled:h.value||!Xn.value,onClick:dr},a(h.value?`保存中…`:`💾 保存设置`),9,Dn),m(`button`,{class:`btn-secondary`,disabled:h.value,onClick:fr},` 🔁 恢复默认 `,8,On)]),y.value?(o(),p(`div`,{key:0,class:d([`toast`,y.value.ok?`toast-ok`:`toast-err`])},a(y.value.msg),3)):e(``,!0)]))}}),[[`__scopeId`,`data-v-bedfedd6`]]);export{v as default}; \ No newline at end of file diff --git a/gateway/static/assets/index-DbIiNlXp.js b/gateway/static/assets/index-C3pjQqOl.js similarity index 69% rename from gateway/static/assets/index-DbIiNlXp.js rename to gateway/static/assets/index-C3pjQqOl.js index f3b181f..e4f529a 100644 --- a/gateway/static/assets/index-DbIiNlXp.js +++ b/gateway/static/assets/index-C3pjQqOl.js @@ -1,6 +1,6 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CollaborationView-BAah4JZr.js","assets/CollaborationView-CfueFZKz.css","assets/ReviewView-D2qulLRD.js","assets/ReviewView-9PXrv1jO.css","assets/MetricsView-Dveh4O03.js","assets/MetricsView-CdV5XjQu.css","assets/SettingsView-yLQ4Nsmb.js","assets/SettingsView-cyr4PQvL.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CollaborationView-DkakRBog.js","assets/CollaborationView-CfueFZKz.css","assets/ReviewView-BWMKu4Ns.js","assets/ReviewView-9PXrv1jO.css","assets/MetricsView-CGO4DxSK.js","assets/MetricsView-CdV5XjQu.css","assets/ProxyView-BLQA9Gut.js","assets/ProxyView-DM7XIOGZ.css","assets/SettingsView-DDuLU_To.js","assets/SettingsView-cyr4PQvL.css"])))=>i.map(i=>d[i]); var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};(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),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function n(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var r={},i=[],a=()=>{},o=()=>!1,s=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),c=e=>e.startsWith(`onUpdate:`),l=Object.assign,u=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},d=Object.prototype.hasOwnProperty,f=(e,t)=>d.call(e,t),p=Array.isArray,m=e=>C(e)===`[object Map]`,h=e=>C(e)===`[object Set]`,g=e=>C(e)===`[object Date]`,_=e=>typeof e==`function`,v=e=>typeof e==`string`,y=e=>typeof e==`symbol`,b=e=>typeof e==`object`&&!!e,x=e=>(b(e)||_(e))&&_(e.then)&&_(e.catch),S=Object.prototype.toString,C=e=>S.call(e),w=e=>C(e).slice(8,-1),ee=e=>C(e)===`[object Object]`,te=e=>v(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,ne=n(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),re=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ie=/-\w/g,T=re(e=>e.replace(ie,e=>e.slice(1).toUpperCase())),E=/\B([A-Z])/g,D=re(e=>e.replace(E,`-$1`).toLowerCase()),O=re(e=>e.charAt(0).toUpperCase()+e.slice(1)),ae=re(e=>e?`on${O(e)}`:``),k=(e,t)=>!Object.is(e,t),oe=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},A=e=>{let t=parseFloat(e);return isNaN(t)?e:t},j,M=()=>j||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ce(e){if(p(e)){let t={};for(let n=0;n{if(e){let n=e.split(ue);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function pe(e){let t=``;if(v(e))t=e;else if(p(e))for(let n=0;nye(e,t))}var xe=e=>!!(e&&e.__v_isRef===!0),N=e=>v(e)?e:e==null?``:p(e)||b(e)&&(e.toString===S||!_(e.toString))?xe(e)?N(e.value):JSON.stringify(e,Se,2):String(e),Se=(e,t)=>xe(t)?Se(e,t.value):m(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Ce(t,r)+` =>`]=n,e),{})}:h(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Ce(e))}:y(t)?Ce(t):b(t)&&!p(t)&&!ee(t)?String(t):t,Ce=(e,t=``)=>y(e)?`Symbol(${e.description??t})`:e,P,we=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&&P&&(P.active?(this.parent=P,this.index=(P.scopes||(P.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){let n=this.scopes.slice();for(e=0,t=n.length;e0&&--this._on===0){if(P===this)P=this.prevScope;else{let e=P;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;t0)return;if(Me){let e=Me;for(Me=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;je;){let t=je;for(je=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 Ie(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Le(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Be(r),Ve(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Re(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ze(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ze(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===qe)||(e.globalVersion=qe,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Re(e))))return;e.flags|=2;let t=e.dep,n=F,r=He;F=e,He=!0;try{Ie(e);let n=e.fn(e._value);(t.version===0||k(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{F=n,He=r,Le(e),e.flags&=-3}}function Be(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)Be(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Ve(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var He=!0,Ue=[];function We(){Ue.push(He),He=!1}function Ge(){let e=Ue.pop();He=e===void 0||e}function Ke(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=F;F=void 0;try{t()}finally{F=e}}}var qe=0,Je=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Ye=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!F||!He||F===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==F)t=this.activeLink=new Je(F,this),F.deps?(t.prevDep=F.depsTail,F.depsTail.nextDep=t,F.depsTail=t):F.deps=F.depsTail=t,Xe(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=F.depsTail,t.nextDep=void 0,F.depsTail.nextDep=t,F.depsTail=t,F.deps===t&&(F.deps=e)}return t}trigger(e){this.version++,qe++,this.notify(e)}notify(e){Pe();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Fe()}}};function Xe(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)Xe(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var Ze=new WeakMap,Qe=Symbol(``),$e=Symbol(``),et=Symbol(``);function tt(e,t,n){if(He&&F){let t=Ze.get(e);t||Ze.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Ye),r.map=t,r.key=n),r.track()}}function nt(e,t,n,r,i,a){let o=Ze.get(e);if(!o){qe++;return}let s=e=>{e&&e.trigger()};if(Pe(),t===`clear`)o.forEach(s);else{let i=p(e),a=i&&te(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===et||!y(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(et)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(Qe)),m(e)&&s(o.get($e)));break;case`delete`:i||(s(o.get(Qe)),m(e)&&s(o.get($e)));break;case`set`:m(e)&&s(o.get(Qe))}}Fe()}function rt(e,t){let n=Ze.get(e);return n&&n.get(t)}function it(e){let t=I(e);return t===e?t:(tt(t,`iterate`,et),Ut(e)?t:t.map(Kt))}function at(e){return tt(e=I(e),`iterate`,et),e}function ot(e,t){return Ht(e)?qt(Vt(e)?Kt(t):t):Kt(t)}var st={__proto__:null,[Symbol.iterator](){return ct(this,Symbol.iterator,e=>ot(this,e))},concat(...e){return it(this).concat(...e.map(e=>p(e)?it(e):e))},entries(){return ct(this,`entries`,e=>(e[1]=ot(this,e[1]),e))},every(e,t){return ut(this,`every`,e,t,void 0,arguments)},filter(e,t){return ut(this,`filter`,e,t,e=>e.map(e=>ot(this,e)),arguments)},find(e,t){return ut(this,`find`,e,t,e=>ot(this,e),arguments)},findIndex(e,t){return ut(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return ut(this,`findLast`,e,t,e=>ot(this,e),arguments)},findLastIndex(e,t){return ut(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return ut(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ft(this,`includes`,e)},indexOf(...e){return ft(this,`indexOf`,e)},join(e){return it(this).join(e)},lastIndexOf(...e){return ft(this,`lastIndexOf`,e)},map(e,t){return ut(this,`map`,e,t,void 0,arguments)},pop(){return pt(this,`pop`)},push(...e){return pt(this,`push`,e)},reduce(e,...t){return dt(this,`reduce`,e,t)},reduceRight(e,...t){return dt(this,`reduceRight`,e,t)},shift(){return pt(this,`shift`)},some(e,t){return ut(this,`some`,e,t,void 0,arguments)},splice(...e){return pt(this,`splice`,e)},toReversed(){return it(this).toReversed()},toSorted(e){return it(this).toSorted(e)},toSpliced(...e){return it(this).toSpliced(...e)},unshift(...e){return pt(this,`unshift`,e)},values(){return ct(this,`values`,e=>ot(this,e))}};function ct(e,t,n){let r=at(e),i=r[t]();return r!==e&&!Ut(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var lt=Array.prototype;function ut(e,t,n,r,i,a){let o=at(e),s=o!==e&&!Ut(e),c=o[t];if(c!==lt[t]){let t=c.apply(e,a);return s?Kt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,ot(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 dt(e,t,n,r){let i=at(e),a=i!==e&&!Ut(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=ot(e,t)),n.call(this,t,ot(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?ot(e,c):c}function ft(e,t,n){let r=I(e);tt(r,`iterate`,et);let i=r[t](...n);return(i===-1||i===!1)&&Wt(n[0])?(n[0]=I(n[0]),r[t](...n)):i}function pt(e,t,n=[]){We(),Pe();let r=I(e)[t].apply(e,n);return Fe(),Ge(),r}var mt=n(`__proto__,__v_isRef,__isVue`),ht=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(y));function gt(e){y(e)||(e=String(e));let t=I(this);return tt(t,`has`,e),t.hasOwnProperty(e)}var _t=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?Ft:Pt:i?Nt:Mt).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=p(e);if(!r){let e;if(a&&(e=st[t]))return e;if(t===`hasOwnProperty`)return gt}let o=Reflect.get(e,t,L(e)?e:n);if((y(t)?ht.has(t):mt(t))||(r||tt(e,`get`,t),i))return o;if(L(o)){let e=a&&te(t)?o:o.value;return r&&b(e)?zt(e):e}return b(o)?r?zt(o):Lt(o):o}},vt=class extends _t{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=p(e)&&te(t);if(!this._isShallow){let e=Ht(i);if(!Ut(n)&&!Ht(n)&&(i=I(i),n=I(n)),!a&&L(i)&&!L(n))return e||(i.value=n),!0}let o=a?Number(t)e,wt=e=>Reflect.getPrototypeOf(e);function Tt(e,t,n){return function(...r){let i=this.__v_raw,a=I(i),o=m(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,u=i[e](...r),d=n?Ct:t?qt:Kt;return!t&&tt(a,`iterate`,c?$e:Qe),l(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function Et(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function Dt(e,t){let n={get(n){let r=this.__v_raw,i=I(r),a=I(n);e||(k(n,a)&&tt(i,`get`,n),tt(i,`get`,a));let{has:o}=wt(i),s=t?Ct:e?qt:Kt;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&&tt(I(t),`iterate`,Qe),t.size},has(t){let n=this.__v_raw,r=I(n),i=I(t);return e||(k(t,i)&&tt(r,`has`,t),tt(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?Ct:e?qt:Kt;return!e&&tt(o,`iterate`,Qe),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return l(n,e?{add:Et(`add`),set:Et(`set`),delete:Et(`delete`),clear:Et(`clear`)}:{add(e){let n=I(this),r=wt(n),i=I(e),a=!t&&!Ut(e)&&!Ht(e)?i:e;return r.has.call(n,a)||k(e,a)&&r.has.call(n,e)||k(i,a)&&r.has.call(n,i)||(n.add(a),nt(n,`add`,a,a)),this},set(e,n){!t&&!Ut(n)&&!Ht(n)&&(n=I(n));let r=I(this),{has:i,get:a}=wt(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?k(n,s)&&nt(r,`set`,e,n,s):nt(r,`add`,e,n),this},delete(e){let t=I(this),{has:n,get:r}=wt(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&&nt(t,`delete`,e,void 0,a),o},clear(){let e=I(this),t=e.size!==0,n=e.clear();return t&&nt(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Tt(r,e,t)}),n}function Ot(e,t){let n=Dt(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(f(n,r)&&r in t?n:t,r,i)}var kt={get:Ot(!1,!1)},At={get:Ot(!1,!0)},jt={get:Ot(!0,!1)},Mt=new WeakMap,Nt=new WeakMap,Pt=new WeakMap,Ft=new WeakMap;function It(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Lt(e){return Ht(e)?e:Bt(e,!1,bt,kt,Mt)}function Rt(e){return Bt(e,!1,St,At,Nt)}function zt(e){return Bt(e,!0,xt,jt,Pt)}function Bt(e,t,n,r,i){if(!b(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=It(w(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Vt(e){return Ht(e)?Vt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ht(e){return!!(e&&e.__v_isReadonly)}function Ut(e){return!!(e&&e.__v_isShallow)}function Wt(e){return e?!!e.__v_raw:!1}function I(e){let t=e&&e.__v_raw;return t?I(t):e}function Gt(e){return!f(e,`__v_skip`)&&Object.isExtensible(e)&&se(e,`__v_skip`,!0),e}var Kt=e=>b(e)?Lt(e):e,qt=e=>b(e)?zt(e):e;function L(e){return e?e.__v_isRef===!0:!1}function R(e){return Yt(e,!1)}function Jt(e){return Yt(e,!0)}function Yt(e,t){return L(e)?e:new Xt(e,t)}var Xt=class{constructor(e,t){this.dep=new Ye,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:I(e),this._value=t?e:Kt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Ut(e)||Ht(e);e=n?e:I(e),k(e,t)&&(this._rawValue=e,this._value=n?e:Kt(e),this.dep.trigger())}};function z(e){return L(e)?e.value:e}var Zt={get:(e,t,n)=>t===`__v_raw`?e:z(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 Qt(e){return Vt(e)?e:new Proxy(e,Zt)}function $t(e){let t=p(e)?Array(e.length):{};for(let n in e)t[n]=tn(e,n);return t}var en=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=y(t)?t:String(t),this._raw=I(e);let r=!0,i=e;if(!p(e)||y(this._key)||!te(this._key))do r=!Wt(i)||Ut(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=z(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&L(this._raw[this._key])){let t=this._object[this._key];if(L(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return rt(this._raw,this._key)}};function tn(e,t,n){return new en(e,t,n)}var nn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Ye(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=qe-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&F!==this)return Ne(this,!0),!0}get value(){let e=this.dep.track();return ze(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function rn(e,t,n=!1){let r,i;return _(e)?r=e:(r=e.get,i=e.set),new nn(r,i,n)}var an={},on=new WeakMap,sn=void 0;function cn(e,t=!1,n=sn){if(n){let t=on.get(n);t||on.set(n,t=[]),t.push(e)}}function ln(e,t,n=r){let{immediate:i,deep:o,once:s,scheduler:c,augmentJob:l,call:d}=n,f=e=>o?e:Ut(e)||o===!1||o===0?un(e,1):un(e),m,h,g,v,y=!1,b=!1;if(L(e)?(h=()=>e.value,y=Ut(e)):Vt(e)?(h=()=>f(e),y=!0):p(e)?(b=!0,y=e.some(e=>Vt(e)||Ut(e)),h=()=>e.map(e=>{if(L(e))return e.value;if(Vt(e))return f(e);if(_(e))return d?d(e,2):e()})):h=_(e)?t?d?()=>d(e,2):e:()=>{if(g){We();try{g()}finally{Ge()}}let t=sn;sn=m;try{return d?d(e,3,[v]):e(v)}finally{sn=t}}:a,t&&o){let e=h,t=o===!0?1/0:o;h=()=>un(e(),t)}let x=Ee(),S=()=>{m.stop(),x&&x.active&&u(x.effects,m)};if(s&&t){let e=t;t=(...t)=>{let n=e(...t);return S(),n}}let C=b?Array(e.length).fill(an):an,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e)){if(t){let n=m.run();if(e||o||y||(b?n.some((e,t)=>k(e,C[t])):k(n,C))){g&&g();let e=sn;sn=m;try{let e=[n,C===an?void 0:b&&C[0]===an?[]:C,v];C=n,d?d(t,3,e):t(...e)}finally{sn=e}}}else m.run()}};return l&&l(w),m=new ke(h),m.scheduler=c?()=>c(w,!1):w,v=e=>cn(e,!1,m),g=m.onStop=()=>{let e=on.get(m);if(e){if(d)d(e,4);else for(let t of e)t();on.delete(m)}},t?i?w(!0):C=m.run():c?c(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function un(e,t=1/0,n){if(t<=0||!b(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,L(e))un(e.value,t,n);else if(p(e))for(let r=0;r{un(e,t,n)});else if(ee(e)){for(let r in e)un(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&un(e[r],t,n)}return e}function dn(e,t,n,r){try{return r?e(...r):e()}catch(e){pn(e,t,n)}}function fn(e,t,n,r){if(_(e)){let i=dn(e,t,n,r);return i&&x(i)&&i.catch(e=>{pn(e,t,n)}),i}if(p(e)){let i=[];for(let a=0;a>>1,i=hn[r],a=kn(i);a=kn(n)?hn.push(e):hn.splice(Cn(t),0,e),e.flags|=1,Tn()}}function Tn(){xn||=bn.then(An)}function En(e){if(!p(e))vn&&e.id===-1?vn.splice(yn+1,0,e):e.flags&1||(_n.push(e),e.flags|=1);else for(let t=0;tkn(e)-kn(t));if(_n.length=0,vn){for(let t=0;te.id==null?e.flags&2?-1:1/0:e.id;function An(e){try{for(gn=0;gn{r._d&&Ji(-1);let i=Nn(t),a=Wi.length,o;try{o=e(...n)}finally{for(let e=Wi.length;e>a;e--)Ki();Nn(i),r._d&&Ji(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Fn(e,t){if(jn===null)return e;let n=Oa(jn),i=e.dirs||=[];for(let e=0;e1)return n&&_(t)?t.call(r&&r.proxy):t}}function zn(){return!!(ha()||Zr)}var Bn=Symbol.for(`v-scx`),Vn=()=>Rn(Bn);function Hn(e,t,n){return Un(e,t,n)}function Un(e,t,n=r){let{immediate:i,deep:o,flush:s,once:c}=n,u=l({},n),d=t&&i||!t&&s!==`post`,f;if(xa){if(s===`sync`){let e=Vn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=a,e.resume=a,e.pause=a,e}}let p=ma;u.call=(e,t,n)=>fn(e,p,t,n);let m=!1;s===`post`?u.scheduler=e=>{Oi(e,p&&p.suspense)}:s!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():wn(e)}),u.augmentJob=e=>{t&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=ln(e,t,u);return xa&&(f?f.push(h):d&&h()),h}function Wn(e,t,n){let r=this.proxy,i=v(e)?e.includes(`.`)?Gn(r,e):()=>r[e]:e.bind(r,r),a;_(t)?a=t:(a=t.handler,n=t);let o=va(this),s=Un(i,a.bind(r),n);return o(),s}function Gn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,Jn=Symbol(`_leaveCb`);function Yn(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==Hi){t=n;break}}return t}function Xn(e){if(!ar(e))return qn(e.type)&&e.children?Yn(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&_(n.default))return n.default()}}function Zn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Zn(qn(n.type)&&Xn(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Qn(e,t){return _(e)?l({name:e.name},t,{setup:e}):e}function $n(e){e.ids=[e.ids[0]+e.ids[2]+++`-`,0,0]}function er(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var tr=new WeakMap;function nr(e,t,n,i,a=!1){if(p(e)){e.forEach((e,r)=>nr(e,t&&(p(t)?t[r]:t),n,i,a));return}if(ir(i)&&!a){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&nr(e,t,n,i.component.subTree);return}let s=i.shapeFlag&4?Oa(i.component):i.el,c=a?null:s,{i:l,r:d}=e,m=t&&t.r,h=l.refs===r?l.refs={}:l.refs,g=l.setupState,y=I(g),b=g===r?o:e=>!er(h,e)&&f(y,e),x=(e,t)=>!(t&&er(h,t));if(m!=null&&m!==d){if(rr(t),v(m))h[m]=null,b(m)&&(g[m]=null);else if(L(m)){let e=t;x(m,e.k)&&(m.value=null),e.k&&(h[e.k]=null)}}if(_(d))dn(d,l,12,[c,h]);else{let t=v(d),r=L(d);if(t||r){let i=()=>{if(e.f){let n=t?b(d)?g[d]:h[d]:x(d)||!e.k?d.value:h[e.k];if(a)p(n)&&u(n,s);else if(p(n))n.includes(s)||n.push(s);else if(t)h[d]=[s],b(d)&&(g[d]=h[d]);else{let t=[s];x(d,e.k)&&(d.value=t),e.k&&(h[e.k]=t)}}else t?(h[d]=c,b(d)&&(g[d]=c)):r&&(x(d,e.k)&&(d.value=c),e.k&&(h[e.k]=c))};if(c){let t=()=>{i(),tr.delete(e)};t.id=-1,tr.set(e,t),Oi(t,n)}else rr(e),i()}}}function rr(e){let t=tr.get(e);t&&(t.flags|=8,tr.delete(e))}M().requestIdleCallback,M().cancelIdleCallback;var ir=e=>!!e.type.__asyncLoader,ar=e=>e.type.__isKeepAlive;function or(e,t){cr(e,`a`,t)}function sr(e,t){cr(e,`da`,t)}function cr(e,t,n=ma){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(ur(t,r,n),n){let e=n.parent;for(;e&&e.parent;)ar(e.parent.vnode)&&lr(r,t,n,e),e=e.parent}}function lr(e,t,n,r){let i=ur(t,e,r,!0);_r(()=>{u(r[t],i)},n)}function ur(e,t,n=ma,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{We();let i=va(n),a=fn(t,n,e,r);return i(),Ge(),a};return r?i.unshift(a):i.push(a),a}}var dr=e=>(t,n=ma)=>{(!xa||e===`sp`)&&ur(e,(...e)=>t(...e),n)},fr=dr(`bm`),pr=dr(`m`),mr=dr(`bu`),hr=dr(`u`),gr=dr(`bum`),_r=dr(`um`),vr=dr(`sp`),yr=dr(`rtg`),br=dr(`rtc`);function xr(e,t=ma){ur(`ec`,e,t)}var Sr=`components`;function Cr(e,t){return Tr(Sr,e,!0,t)||e}var wr=Symbol.for(`v-ndc`);function Tr(e,t,n=!0,r=!1){let i=jn||ma;if(i){let n=i.type;if(e===Sr){let e=ka(n,!1);if(e&&(e===t||e===T(t)||e===O(T(t))))return n}let a=Er(i[e]||n[e],t)||Er(i.appContext[e],t);return!a&&r?n:a}}function Er(e,t){return e&&(e[t]||e[T(t)]||e[O(T(t))])}function Dr(e,t,n,r){let i,a=n&&n[r],o=p(e);if(o||v(e)){let n=o&&Vt(e),r=!1,s=!1;n&&(r=!Ut(e),s=Ht(e),e=at(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,a&&a[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;re?ba(e)?Oa(e):Or(e.parent):null,kr=l(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=>Or(e.parent),$root:e=>Or(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Rr(e),$forceUpdate:e=>e.f||=()=>{wn(e.update)},$nextTick:e=>e.n||=Sn.bind(e.proxy),$watch:e=>Wn.bind(e)}),Ar=(e,t)=>e!==r&&!e.__isScriptSetup&&f(e,t),jr={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(t[0]!==`$`){let e=s[t];if(e!==void 0)switch(e){case 1:return i[t];case 2:return a[t];case 4:return n[t];case 3:return o[t]}else if(Ar(i,t))return s[t]=1,i[t];else if(a!==r&&f(a,t))return s[t]=2,a[t];else if(f(o,t))return s[t]=3,o[t];else if(n!==r&&f(n,t))return s[t]=4,n[t];else Nr&&(s[t]=0)}let u=kr[t],d,p;if(u)return t===`$attrs`&&tt(e.attrs,`get`,``),u(e);if((d=c.__cssModules)&&(d=d[t]))return d;if(n!==r&&f(n,t))return s[t]=4,n[t];if(p=l.config.globalProperties,f(p,t))return p[t]},set({_:e},t,n){let{data:i,setupState:a,ctx:o}=e;return Ar(a,t)?(a[t]=n,!0):i!==r&&f(i,t)?(i[t]=n,!0):f(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(n[c]||e!==r&&c[0]!==`$`&&f(e,c)||Ar(t,c)||f(o,c)||f(i,c)||f(kr,c)||f(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?f(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function Mr(e){return p(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var Nr=!0;function Pr(e){let t=Rr(e),n=e.proxy,r=e.ctx;Nr=!1,t.beforeCreate&&Ir(t.beforeCreate,e,`bc`);let{data:i,computed:o,methods:s,watch:c,provide:l,inject:u,created:d,beforeMount:f,mounted:m,beforeUpdate:h,updated:g,activated:v,deactivated:y,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:ee,renderTracked:te,renderTriggered:ne,errorCaptured:re,serverPrefetch:ie,expose:T,inheritAttrs:E,components:D,directives:O,filters:ae}=t;if(u&&Fr(u,r,null),s)for(let e in s){let t=s[e];_(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);b(t)&&(e.data=Lt(t))}if(Nr=!0,o)for(let e in o){let t=o[e],i=G({get:_(t)?t.bind(n,n):_(t.get)?t.get.bind(n,n):a,set:!_(t)&&_(t.set)?t.set.bind(n):a});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(c)for(let e in c)Lr(c[e],r,n,e);if(l){let e=_(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Ln(t,e[t])})}d&&Ir(d,e,`c`);function k(e,t){p(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(k(fr,f),k(pr,m),k(mr,h),k(hr,g),k(or,v),k(sr,y),k(xr,re),k(br,te),k(yr,ne),k(gr,S),k(_r,w),k(vr,ie),p(T)){if(T.length){let t=e.exposed||={};T.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={}}ee&&e.render===a&&(e.render=ee),E!=null&&(e.inheritAttrs=E),D&&(e.components=D),O&&(e.directives=O),ie&&$n(e)}function Fr(e,t,n=a){p(e)&&(e=Ur(e));for(let n in e){let r=e[n],i;i=b(r)?`default`in r?Rn(r.from||n,r.default,!0):Rn(r.from||n):Rn(r),L(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function Ir(e,t,n){fn(p(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Lr(e,t,n,r){let i=r.includes(`.`)?Gn(n,r):()=>n[r];if(v(e)){let n=t[e];_(n)&&Hn(i,n)}else if(_(e))Hn(i,e.bind(n));else if(b(e)){if(p(e))e.forEach(e=>Lr(e,t,n,r));else{let r=_(e.handler)?e.handler.bind(n):t[e.handler];_(r)&&Hn(i,r,e)}}}function Rr(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=>zr(c,e,o,!0)),zr(c,t,o)),b(t)&&a.set(t,c),c}function zr(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&zr(e,a,n,!0),i&&i.forEach(t=>zr(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:Vr,props:Kr,emits:Kr,methods:Gr,computed:Gr,beforeCreate:Wr,created:Wr,beforeMount:Wr,mounted:Wr,beforeUpdate:Wr,updated:Wr,beforeDestroy:Wr,beforeUnmount:Wr,destroyed:Wr,unmounted:Wr,activated:Wr,deactivated:Wr,errorCaptured:Wr,serverPrefetch:Wr,components:Gr,directives:Gr,watch:qr,provide:Vr,inject:Hr};function Vr(e,t){return t?e?function(){return l(_(e)?e.call(this,this):e,_(t)?t.call(this,this):t)}:t:e}function Hr(e,t){return Gr(Ur(e),Ur(t))}function Ur(e){if(p(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${T(t)}Modifiers`]||e[`${D(t)}Modifiers`];function $r(e,t,...n){if(e.isUnmounted)return;let i=e.vnode.props||r,a=n,o=t.startsWith(`update:`),s=o&&Qr(i,t.slice(7));s&&(s.trim&&(a=n.map(e=>v(e)?e.trim():e)),s.number&&(a=a.map(A)));let c,l=i[c=ae(t)]||i[c=ae(T(t))];!l&&o&&(l=i[c=ae(D(t))]),l&&fn(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,fn(u,e,6,a)}}var ei=new WeakMap;function ti(e,t,n=!1){let r=n?ei:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!_(e)){let r=e=>{let n=ti(e,t,!0);n&&(s=!0,l(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(b(e)&&r.set(e,null),null):(p(a)?a.forEach(e=>o[e]=null):l(o,a),b(e)&&r.set(e,o),o)}function ni(e,t){return!e||!s(t)?!1:(t=t.slice(2),t=t===`Once`?t:t.replace(/Once$/,``),f(e,t[0].toLowerCase()+t.slice(1))||f(e,D(t))||f(e,t))}function ri(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=Nn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=oa(u.call(t,e,d,f,m,p,h)),y=s}else{let e=t;v=oa(e.length>1?e(f,{attrs:s,slots:o,emit:l}):e(f,null)),y=t.props?s:ii(s)}}catch(t){Wi.length=0,pn(t,e,1),v=ta(Hi)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(c)&&(y=ai(y,a)),b=ia(b,y,!1,!0))}return n.dirs&&(b=ia(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Zn(qn(b.type)&&Xn(b)||b,n.transition),v=b,Nn(_),v}var ii=e=>{let t;for(let n in e)(n===`class`||n===`style`||s(n))&&((t||={})[n]=e[n]);return t},ai=(e,t)=>{let n={};for(let r in e)(!c(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function oi(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?si(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(ui),fi=e=>Object.getPrototypeOf(e)===ui;function pi(e,t,n,r=!1){let i={},a=di();e.propsDefaults=Object.create(null),hi(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);e.props=n?r?i:Rt(i):e.type.props?i:a,e.attrs=a}function mi(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{d=!0;let[n,r]=vi(e,t,!0);l(c,n),r&&u.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!d)return b(e)&&a.set(e,i),i;if(p(s))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,xi=e=>p(e)?e.map(oa):[oa(e)],Si=(e,t,n)=>{if(t._n)return t;let r=Pn((...e)=>xi(t(...e)),n);return r._c=!1,r},Ci=(e,t,n)=>{let r=e._ctx;for(let n in e){if(bi(n))continue;let i=e[n];if(_(i))t[n]=Si(n,i,r);else if(i!=null){let e=xi(i);t[n]=()=>e}}},wi=(e,t)=>{let n=xi(t);e.slots.default=()=>n},Ti=(e,t,n)=>{for(let r in t)(n||!bi(r))&&(e[r]=t[r])},Ei=(e,t,n)=>{let r=e.slots=di();if(e.vnode.shapeFlag&32){let e=t._;e?(Ti(r,t,n),n&&se(r,`_`,e,!0)):Ci(t,r)}else t&&wi(e,t)},Di=(e,t,n)=>{let{vnode:i,slots:a}=e,o=!0,s=r;if(i.shapeFlag&32){let e=t._;e?n&&e===1?o=!1:Ti(a,t,n):(o=!t.$stable,Ci(t,a)),s=t}else t&&(wi(e,t),s={default:1});if(o)for(let e in a)!bi(e)&&s[e]==null&&delete a[e]},Oi=Bi;function ki(e){return Ai(e)}function Ai(e,t){let n=M();n.__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=a,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&&!Qi(e,t)&&(r=ge(e),de(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 Vi:y(e,t,n,r);break;case Hi:b(e,t,n,r);break;case Ui:e??x(t,n,r,o);break;case B:D(e,t,n,r,i,a,o,s,c);break;default:d&1?w(e,t,n,r,i,a,o,s,c):d&6?O(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ye)}u!=null&&i?nr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&nr(e.ref,null,a,e,!0)},y=(e,t,n,r)=>{if(e==null)o(t.el=u(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&f(n,t.children)}},b=(e,t,n,r)=>{e==null?o(t.el=d(t.children||``),n,r):t.el=e.el},x=(e,t,n,r)=>{[e.el,e.anchor]=_(e.children,t,n,r,e.el,e.anchor)},S=({el:e,anchor:t},n,r)=>{let i;for(;e&&e!==t;)i=h(e),o(e,n,r),e=i;o(t,n,r)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),s(e),e=n;s(t)},w=(e,t,n,r,i,a,o,s,c)=>{if(t.type===`svg`?o=`svg`:t.type===`math`&&(o=`mathml`),e==null)ee(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ie(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},ee=(e,t,n,r,i,a,s,u)=>{let d,f,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(d=e.el=l(e.type,a,m&&m.is,m),h&8?p(d,e.children):h&16&&re(e.children,d,null,r,i,ji(e,a),s,u),_&&In(e,null,r,`created`),te(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ne(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&ua(f,r,e)}_&&In(e,null,r,`beforeMount`);let v=Ni(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&Oi(()=>{try{f&&ua(f,r,e),v&&g.enter(d),_&&In(e,null,r,`mounted`)}finally{}},i)},te=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=t;u|=e.patchFlag&16;let m=e.props||r,h=t.props||r,g;if(n&&Mi(n,!1),(g=h.onVnodeBeforeUpdate)&&ua(g,n,t,e),f&&In(t,e,n,`beforeUpdate`),n&&Mi(n,!0),d&&(!e.dynamicChildren||e.dynamicChildren.length!==d.length)&&(u=0,s=!1,d=null),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?T(e.dynamicChildren,d,l,n,i,ji(t,a),o):s||j(e,t,l,null,n,i,ji(t,a),o,!1),u>0){if(u&16)E(l,m,h,n,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=t.dynamicProps;for(let t=0;t{g&&ua(g,n,t,e),f&&In(t,e,n,`updated`)},i)},T=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==r)for(let r in t)!ne(r)&&!(r in n)&&c(e,r,t[r],null,a,i);for(let r in n){if(ne(r))continue;let o=n[r],s=t[r];o!==s&&r!==`value`&&c(e,r,s,o,a,i)}`value`in n&&c(e,`value`,t.value,n.value,a)}},D=(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),re(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(T(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&Pi(e,t,!0)):j(e,t,n,f,i,a,s,c,l)},O=(e,t,n,r,i,a,o,s,c)=>{t.slotScopeIds=s,e==null?t.shapeFlag&512?i.ctx.activate(t,n,r,o,c):ae(t,n,r,i,a,o,c):k(e,t,c)},ae=(e,t,n,r,i,a,o)=>{let s=e.component=pa(e,r,i);if(ar(e)&&(s.ctx.renderer=ye),Sa(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,se,o),!e.el){let r=s.subTree=ta(Hi);b(null,r,t,n),e.placeholder=r.el}}else se(s,e,t,n,i,a,o)},k=(e,t,n)=>{let r=t.component=e.component;if(oi(e,t,n)){if(r.asyncDep&&!r.asyncResolved){A(r,t,n);return}r.next=t,r.update()}else t.el=e.el,r.vnode=t},se=(e,t,n,r,i,a,o)=>{let s=()=>{if(e.isMounted){let{next:t,bu:n,u:r,parent:s,vnode:c}=e;{let n=Ii(e);if(n){t&&(t.el=c.el,A(e,t,o)),n.asyncDep.then(()=>{Oi(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;Mi(e,!1),t?(t.el=c.el,A(e,t,o)):t=c,n&&oe(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&ua(d,s,t,c),Mi(e,!0);let f=ri(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ge(p),e,i,a),t.el=f.el,u===null&&li(e,f.el),r&&Oi(r,i),(d=t.props&&t.props.onVnodeUpdated)&&Oi(()=>ua(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=ir(t);if(Mi(e,!1),l&&oe(l),!m&&(o=c&&c.onVnodeBeforeMount)&&ua(o,d,t),Mi(e,!0),s&&xe){let t=()=>{e.subTree=ri(e),xe(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=ri(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&Oi(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;Oi(()=>ua(o,d,e),i)}(t.shapeFlag&256||d&&ir(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&Oi(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new ke(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=()=>wn(u),Mi(e,!0),l()},A=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,mi(e,t.props,r,n),Di(e,t.children,n),We(),Dn(e),Ge()},j=(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){le(l,d,n,r,i,a,o,s,c);return}if(f&256){ce(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&he(l,i,a),d!==l&&p(n,d)):u&16?m&16?le(l,d,n,r,i,a,o,s,c):he(l,i,a,!0):(u&8&&p(n,``),m&16&&re(d,n,r,i,a,o,s,c))},ce=(e,t,n,r,a,o,s,c,l)=>{e||=i,t||=i;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?he(e,a,o,!0,!1,f):re(t,n,r,a,o,s,c,l,f)},le=(e,t,n,r,a,o,s,c,l)=>{let u=0,d=t.length,f=e.length-1,p=d-1;for(;u<=f&&u<=p;){let r=e[u],i=t[u]=l?sa(t[u]):oa(t[u]);if(Qi(r,i))v(r,i,n,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let r=e[f],i=t[p]=l?sa(t[p]):oa(t[p]);if(Qi(r,i))v(r,i,n,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,i=ep)for(;u<=f;)de(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?sa(t[u]):oa(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){de(r,a,o,!0);continue}let i;if(r.key!=null)i=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Qi(r,t[_])){i=_;break}i===void 0?de(r,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(r,t[i],n,null,a,o,s,c,l),y++)}let w=x?Fi(C):i;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,i=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){ue(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,ye);return}if(c===B){o(a,t,n);for(let e=0;el.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[Jn];a._isLeaving&&a[Jn](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}}else o(a,t,n)},de=(e,t,n,r=!1,i=!1)=>{let{type:a,props:o,ref:s,children:c,dynamicChildren:l,shapeFlag:u,patchFlag:d,dirs:f,cacheIndex:p,memo:m}=e;if(d===-2&&(i=!1),s!=null&&(We(),nr(s,null,n,e,!0),Ge()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!ir(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&ua(_,t,e),u&6)me(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&In(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ye,r):l&&!l.hasOnce&&(a!==B||d>0&&d&64)?he(l,t,n,!1,!0):(a===B&&d&384||!i&&u&16)&&he(c,t,n),r&&fe(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&Oi(()=>{_&&ua(_,t,e),h&&In(e,null,t,`unmounted`),v&&(e.el=null)},n)},fe=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===B){pe(n,r);return}if(t===Ui){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()},pe=(e,t)=>{let n;for(;e!==t;)n=h(e),s(e),e=n;s(t)},me=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Li(c),Li(l),r&&oe(r),i.stop(),a&&(a.flags|=8,de(o,e,t,n)),s&&Oi(s,t),Oi(()=>{e.isUnmounted=!0},t)},he=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ge(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Kn];return n?h(n):t},_e=!1,ve=(e,t,n)=>{let r;e==null?t._vnode&&(de(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,_e||=(_e=!0,Dn(r),On(),!1)},ye={p:v,um:de,m:ue,r:fe,mt:ae,mc:re,pc:j,pbc:T,n:ge,o:e},be,xe;return t&&([be,xe]=t(ye)),{render:ve,hydrate:be,createApp:Xr(ve,be)}}function ji({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 Mi({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ni(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Pi(e,t,n=!1){let r=e.children,i=t.children;if(p(r)&&p(i))for(let e=0;e>1,e[n[s]]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 Ii(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ii(t)}function Li(e){if(e)for(let t=0;te.__isSuspense;function Bi(e,t){t&&t.pendingBranch?p(e)?t.effects.push(...e):t.effects.push(e):En(e)}var B=Symbol.for(`v-fgt`),Vi=Symbol.for(`v-txt`),Hi=Symbol.for(`v-cmt`),Ui=Symbol.for(`v-stc`),Wi=[],Gi=null;function V(e=!1){Wi.push(Gi=e?null:[])}function Ki(){Wi.pop(),Gi=Wi[Wi.length-1]||null}var qi=1;function Ji(e,t=!1){qi+=e,e<0&&Gi&&t&&(Gi.hasOnce=!0)}function Yi(e){return e.dynamicChildren=qi>0?Gi||i:null,Ki(),qi>0&&Gi&&Gi.push(e),e}function H(e,t,n,r,i,a){return Yi(U(e,t,n,r,i,a,!0))}function Xi(e,t,n,r,i){return Yi(ta(e,t,n,r,i,!0))}function Zi(e){return e?e.__v_isVNode===!0:!1}function Qi(e,t){return e.type===t.type&&e.key===t.key}var $i=({key:e})=>e??null,ea=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:v(e)||L(e)||_(e)?{i:jn,r:e,k:t,f:!!n}:e);function U(e,t=null,n=null,r=0,i=null,a=e===B?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$i(t),ref:t&&ea(t),scopeId:Mn,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:jn};return s?(ca(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=v(n)?8:16),qi>0&&!o&&Gi&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Gi.push(c),c}var ta=na;function na(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===wr)&&(e=Hi),Zi(e)){let r=ia(e,t,!0);return n&&ca(r,n),qi>0&&!a&&Gi&&(r.shapeFlag&6?Gi[Gi.indexOf(e)]=r:Gi.push(r)),r.patchFlag=-2,r}if(Aa(e)&&(e=e.__vccOpts),t){t=ra(t);let{class:e,style:n}=t;e&&!v(e)&&(t.class=pe(e)),b(n)&&(Wt(n)&&!p(n)&&(n=l({},n)),t.style=ce(n))}let o=v(e)?1:zi(e)?128:qn(e)?64:b(e)?4:_(e)?2:0;return U(e,t,n,r,i,o,a,!0)}function ra(e){return e?Wt(e)||fi(e)?l({},e):e:null}function ia(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?la(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&$i(l),ref:t&&t.ref?n&&a?p(a)?a.concat(ea(t)):[a,ea(t)]:ea(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!==B?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&&ia(e.ssContent),ssFallback:e.ssFallback&&ia(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Zn(u,c.clone(u)),u}function aa(e=` `,t=0){return ta(Vi,null,e,t)}function W(e=``,t=!1){return t?(V(),Xi(Hi,null,e)):ta(Hi,null,e)}function oa(e){return e==null||typeof e==`boolean`?ta(Hi):p(e)?ta(B,null,e.slice()):Zi(e)?sa(e):ta(Vi,null,String(e))}function sa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ia(e)}function ca(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(p(t))n=16;else if(typeof t==`object`){if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),ca(e,n()),n._c&&(n._d=!0));return}{n=32;let r=t._;!r&&!fi(t)?t._ctx=jn:r===3&&jn&&(jn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}}else if(_(t)){if(r&65){ca(e,{default:t});return}t={default:t,_ctx:jn},n=32}else t=String(t),r&64?(n=16,t=[aa(t)]):n=8;e.children=t,e.shapeFlag|=n}function la(...e){let t={};for(let n=0;nma||jn,ga,_a;{let e=M(),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)}};ga=t(`__VUE_INSTANCE_SETTERS__`,e=>ma=e),_a=t(`__VUE_SSR_SETTERS__`,e=>xa=e)}var va=e=>{let t=ma;return ga(e),e.scope.on(),()=>{e.scope.off(),ga(t)}},ya=()=>{ma&&ma.scope.off(),ga(null)};function ba(e){return e.vnode.shapeFlag&4}var xa=!1;function Sa(e,t=!1,n=!1){t&&_a(t);let{props:r,children:i}=e.vnode,a=ba(e);pi(e,r,a,t),Ei(e,i,n||t);let o=a?Ca(e,t):void 0;return t&&_a(!1),o}function Ca(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,jr);let{setup:r}=n;if(r){We();let n=e.setupContext=r.length>1?Da(e):null,i=va(e),a=dn(r,e,0,[e.props,n]),o=x(a);if(Ge(),i(),(o||e.sp)&&!ir(e)&&$n(e),o){if(a.then(ya,ya),t)return a.then(n=>{_a(!0);try{wa(e,n,t)}finally{_a(!1)}}).catch(t=>{pn(t,e,0)});e.asyncDep=a}else wa(e,a,t)}else Ta(e,t)}function wa(e,t,n){_(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:b(t)&&(e.setupState=Qt(t)),Ta(e,n)}function Ta(e,t,n){let r=e.type;e.render||=r.render||a;{let t=va(e);We();try{Pr(e)}finally{Ge(),t()}}}var Ea={get(e,t){return tt(e,`get`,``),e[t]}};function Da(e){return{attrs:new Proxy(e.attrs,Ea),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Oa(e){return e.exposed?e.exposeProxy||=new Proxy(Qt(Gt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in kr)return kr[n](e)},has(e,t){return t in e||t in kr}}):e.proxy}function ka(e,t=!0){return _(e)?e.displayName||e.name:e.name||t&&e.__name}function Aa(e){return _(e)&&`__vccOpts`in e}var G=(e,t)=>rn(e,t,xa);function ja(e,t,n){try{Ji(-1);let r=arguments.length;return r===2?b(t)&&!p(t)?Zi(t)?ta(e,null,[t]):ta(e,t):ta(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Zi(n)&&(n=[n]),ta(e,t,n))}finally{Ji(1)}}var Ma=`3.5.42`,Na=void 0,Pa=typeof window<`u`&&window.trustedTypes;if(Pa)try{Na=Pa.createPolicy(`vue`,{createHTML:e=>e})}catch{}var Fa=Na?e=>Na.createHTML(e):e=>e,Ia=`http://www.w3.org/2000/svg`,La=`http://www.w3.org/1998/Math/MathML`,Ra=typeof document<`u`?document:null,za=Ra&&Ra.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`?Ra.createElementNS(Ia,e):t===`mathml`?Ra.createElementNS(La,e):n?Ra.createElement(e,{is:n}):Ra.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>Ra.createTextNode(e),createComment:e=>Ra.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ra.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{za.innerHTML=Fa(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=za.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]}},Va=Symbol(`_vtc`);function Ha(e,t,n){let r=e[Va];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var Ua=Symbol(`_vod`),Wa=Symbol(`_vsh`),Ga=Symbol(``),Ka=/(?:^|;)\s*display\s*:/;function qa(e,t,n){let r=e.style,i=v(n),a=!1;if(n&&!i){if(t){if(v(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Ya(r,t,``)}else for(let e in t)n[e]??Ya(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Ya(r,i,``):$a(e,i,!v(t)&&t?t[i]:void 0,o)||Ya(r,i,o)}}else if(i){if(t!==n){let e=r[Ga];e&&(n+=`;`+e),r.cssText=n,a=Ka.test(n)}}else t&&e.removeAttribute(`style`);Ua in e&&(e[Ua]=a?r.display:``,e[Wa]&&(r.display=`none`))}var Ja=/\s*!important$/;function Ya(e,t,n){if(p(n))n.forEach(n=>Ya(e,t,n));else if(n??=``,t.startsWith(`--`))Ja.test(n)?e.setProperty(t,n.replace(Ja,``),`important`):e.setProperty(t,n);else{let r=Qa(e,t);Ja.test(n)?e.setProperty(D(r),n.replace(Ja,``),`important`):e[r]=n}}var Xa=[`Webkit`,`Moz`,`ms`],Za={};function Qa(e,t){let n=Za[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return Za[t]=r;r=O(r);for(let n=0;nuo||=(fo.then(()=>uo=0),Date.now());function mo(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(p(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;ne.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,go=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ha(e,r,o):t===`style`?qa(e,n,r):s(t)?c(t)||oo(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):_o(e,t,r,o))?(no(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&to(e,t,r,o,a,t!==`value`)):e._isVueCE&&(vo(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!v(r)))?no(e,T(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),to(e,t,r,o))};function _o(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&ho(t)&&_(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 ho(t)&&v(n)?!1:t in e}function vo(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 yo=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return p(t)?e=>oe(t,e):t};function bo(e){e.target.composing=!0}function xo(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var So=Symbol(`_assign`),Co=Symbol(`_initialValue`);function wo(e,t,n){return t&&(e=e.trim()),n&&(e=A(e)),e}var To={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&(e.type===`text`?e[Co]=e.defaultValue.replace(/[\r\n]/g,``):e.type===`textarea`&&(e[Co]=e.defaultValue.replace(/\r\n?/g,` -`))),e[So]=yo(i);let a=r||i.props&&i.props.type===`number`;ro(e,t?`change`:`input`,t=>{t.target.composing||e[So](wo(e.value,n,a))}),(n||a)&&ro(e,`change`,()=>{e.value=wo(e.value,n,a)}),t||(ro(e,`compositionstart`,bo),ro(e,`compositionend`,xo),ro(e,`change`,xo))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[Co];delete e[Co],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[So](wo(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[So]=yo(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?A(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)}},Eo={deep:!0,created(e,t,n){e[So]=yo(n),ro(e,`change`,()=>{let t=e._modelValue,n=jo(e),r=e.checked,i=e[So];if(p(t)){let e=be(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(h(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Mo(e,r))})},mounted:Do,beforeUpdate(e,t,n){e[So]=yo(n),Do(e,t,n)}};function Do(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(p(t))i=be(t,r.props.value)>-1;else if(h(t))i=t.has(r.props.value);else{if(t===n)return;i=ye(t,Mo(e,!0))}e.checked!==i&&(e.checked=i)}var Oo={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,ro(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?A(jo(e)):jo(e)),r=e.multiple,i=r?h(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?p(i)?t.slice():t:i];try{e[So](i)}finally{Sn(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[So]=yo(r)},mounted(e,{value:t}){Ao(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[So]=yo(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!ko(t,n[1],n[0]))&&Ao(e,t)}};function ko(e,t,n){if(!n||p(e))return ye(e,t);if(h(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Ao(e,t){let n=e.multiple,r=p(t);if(!(n&&!r&&!h(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):be(t,o)>-1}else a.selected=t.has(o)}else if(ye(jo(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function jo(e){return`_value`in e?e._value:e.value}function Mo(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var No=[`ctrl`,`shift`,`alt`,`meta`],Po={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)=>No.some(n=>e[`${n}Key`]&&!t.includes(n))},Fo=(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{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=D(n.key);if(t.some(e=>e===r||Io[e]===r))return e(n)}))},Ro=l({patchProp:go},Ba),zo;function Bo(){return zo||=ki(Ro)}var Vo=((...e)=>{let t=Bo().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Uo(e);if(!r)return;let i=t._component;!_(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Ho(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Ho(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Uo(e){return v(e)?document.querySelector(e):e}var Wo=typeof window<`u`,Go,Ko=e=>Go=e,qo=Symbol();function Jo(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Yo=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Xo(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function Zo(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){ns(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Qo(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function $o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var es=typeof navigator==`object`?navigator:{userAgent:``},ts=/Macintosh/.test(es.userAgent)&&/AppleWebKit/.test(es.userAgent)&&!/Safari/.test(es.userAgent),ns=Wo?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!ts?rs:`msSaveOrOpenBlob`in es?is:as:()=>{};function rs(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?$o(r):Qo(r.href)?Zo(e,t,n):(r.target=`_blank`,$o(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){$o(r)},0))}function is(e,t=`download`,n){if(typeof e==`string`){if(Qo(e))Zo(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){$o(t)})}}else navigator.msSaveOrOpenBlob(Xo(e,n),t)}function as(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Zo(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Yo.HTMLElement))||`safari`in Yo,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||ts)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:os}=Object;function ss(){let e=Te(!0),t=e.run(()=>R({})),n=[],r=[],i=Gt({install(e){Ko(i),i._a=e,e.provide(qo,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var cs=()=>{};function ls(e,t,n,r=cs){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ee()&&De(i),i}function us(e,...t){e.forEach(e=>{e(...t)})}var ds=e=>e(),fs=Symbol(),ps=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=Jo(i)&&Jo(r)&&Object.hasOwn(e,n)&&!L(r)&&!Vt(r)?ms(i,r):r}return e}var hs=Symbol();function gs(e){return!e||typeof e!=`object`||!Object.hasOwn(e,hs)}var{assign:_s}=Object;function vs(e){return!!(L(e)&&e.effect)}function ys(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),_s($t(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Gt(G(()=>{Ko(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=bs(e,l,t,n,r,!0),c}function bs(e,t,n={},r,i,a){let o,s=_s({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(ms(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();Sn().then(()=>{h===i&&(l=!0)}),u=!0,us(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{_s(e,t)})}:cs;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(fs in t)return t[ps]=n,t;let i=function(){Ko(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}us(f,{args:n,name:i[ps],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw us(o,e),e}return l instanceof Promise?l.then(e=>(us(a,e),e)).catch(e=>(us(o,e),Promise.reject(e))):(us(a,l),l)};return i[fs]=!0,i[ps]=n,i},b=Lt({_p:r,$id:e,$onAction:ls.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return cs;let i=ls(d,t,n.detached,()=>a()),a=o.run(()=>Hn(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},_s({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||ds)(()=>r._e.run(()=>(o=Te()).run(()=>t({action:y}))));for(let t in x){let n=x[t];L(n)&&!vs(n)||Vt(n)?a||(m&&gs(n)&&(L(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),ms(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return _s(b,x),_s(I(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{_s(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));_s(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function xs(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=zn();return n||=o?Rn(qo,null):null,n&&Ko(n),n=Go,n._s.has(e)||(i?bs(e,t,r,n):ys(e,r,n)),n._s.get(e)}return a.$id=e,a}var Ss={class:`app`},Cs={class:`side`},ws={class:`nav`},Ts={class:`nav-icon`},Es={class:`nav-label`},Ds={class:`main-col`},Os=Qn({__name:`App`,setup(e){let t=[{to:`/chat`,icon:`💬`,label:`对话`},{to:`/collaboration`,icon:`🔄`,label:`协作过程`},{to:`/agent`,icon:`🤖`,label:`智能体`},{to:`/review`,icon:`🔍`,label:`人工检验`},{to:`/metrics`,icon:`📊`,label:`指标`},{to:`/settings`,icon:`⚙️`,label:`设置`}];return(e,n)=>{let r=Cr(`router-link`),i=Cr(`router-view`);return V(),H(`div`,Ss,[U(`aside`,Cs,[n[0]||=U(`div`,{class:`brand`},[U(`div`,{class:`brand-logo`},`🤖`),U(`div`,{class:`brand-text`},[U(`b`,null,`端云协同`),U(`span`,null,`编程智能体系统`)])],-1),U(`nav`,ws,[(V(),H(B,null,Dr(t,e=>ta(r,{key:e.to,to:e.to,class:`nav-item`},{default:Pn(()=>[U(`span`,Ts,N(e.icon),1),U(`span`,Es,N(e.label),1)]),_:2},1032,[`to`])),64))]),n[1]||=U(`div`,{class:`side-foot`},[U(`div`,{class:`foot-dot`}),U(`span`,null,`本地网关 · :8000`)],-1)]),U(`div`,Ds,[ta(i,{class:`content`})])])}}}),ks=typeof document<`u`;function As(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function js(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&As(e.default)}var K=Object.assign;function Ms(e,t){let n={};for(let r in t){let i=t[r];n[r]=Ps(i)?i.map(e):e(i)}return n}var Ns=()=>{},Ps=Array.isArray;function Fs(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Is=/#/g,Ls=/&/g,Rs=/\//g,zs=/=/g,Bs=/\?/g,Vs=/\+/g,Hs=/%5B/g,Us=/%5D/g,Ws=/%5E/g,Gs=/%60/g,Ks=/%7B/g,qs=/%7C/g,Js=/%7D/g,Ys=/%20/g;function Xs(e){return e==null?``:encodeURI(``+e).replace(qs,`|`).replace(Hs,`[`).replace(Us,`]`)}function Zs(e){return Xs(e).replace(Ks,`{`).replace(Js,`}`).replace(Ws,`^`)}function Qs(e){return Xs(e).replace(Vs,`%2B`).replace(Ys,`+`).replace(Is,`%23`).replace(Ls,`%26`).replace(Gs,"`").replace(Ks,`{`).replace(Js,`}`).replace(Ws,`^`)}function $s(e){return Qs(e).replace(zs,`%3D`)}function ec(e){return Xs(e).replace(Is,`%23`).replace(Bs,`%3F`)}function tc(e){return ec(e).replace(Rs,`%2F`)}function nc(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var rc=/\/$/,ic=e=>e.replace(rc,``);function ac(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=pc(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:nc(o)}}function oc(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function sc(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function cc(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&lc(t.matched[r],n.matched[i])&&uc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function lc(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function uc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!dc(e[n],t[n]))return!1;return!0}function dc(e,t){return Ps(e)?fc(e,t):Ps(t)?fc(t,e):e?.valueOf()===t?.valueOf()}function fc(e,t){return Ps(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function pc(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var mc={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},hc=function(e){return e.pop=`pop`,e.push=`push`,e}({}),gc=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function _c(e){if(!e){if(ks){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ic(e)}var vc=/^[^#]+#/;function yc(e,t){return e.replace(vc,`#`)+t}function bc(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var xc=()=>({left:window.scrollX,top:window.scrollY});function Sc(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=bc(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Cc(e,t){return(history.state?history.state.position-t:-1)+e}var wc=new Map;function Tc(e,t){wc.set(e,t)}function Ec(e){let t=wc.get(e);return wc.delete(e),t}function Dc(e){return typeof e==`string`||e&&typeof e==`object`}function Oc(e){return typeof e==`string`||typeof e==`symbol`}var q=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),kc=Symbol(``);q.MATCHER_NOT_FOUND,q.NAVIGATION_GUARD_REDIRECT,q.NAVIGATION_ABORTED,q.NAVIGATION_CANCELLED,q.NAVIGATION_DUPLICATED;function Ac(e,t){return K(Error(),{type:e,[kc]:!0},t)}function jc(e,t){return e instanceof Error&&kc in e&&(t==null||!!(e.type&t))}function Mc(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Qs(e)):[r&&Qs(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Pc(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Ps(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var Fc=Symbol(``),Ic=Symbol(``),Lc=Symbol(``),Rc=Symbol(``),zc=Symbol(``);function Bc(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Vc(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Ac(q.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Dc(e)?c(Ac(q.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Hc(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e])){if(As(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Vc(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=js(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Vc(c,n,r,o,e,i)()}))}}}return a}function Uc(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;olc(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>lc(e,s))||i.push(s))}return[n,r,i]}var Wc=()=>location.protocol+`//`+location.host;function Gc(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),sc(n,``)}return sc(n,e)+r+i}function Kc(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Gc(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:hc.pop,direction:u?u>0?gc.forward:gc.back:gc.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(K({},e.state,{scroll:xc()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function qc(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?xc():null}}function Jc(e){let{history:t,location:n}=window,r={value:Gc(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Wc()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,K({},t.state,qc(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=K({},i.value,t.state,{forward:e,scroll:xc()});a(o.current,o,!0),a(e,K({},qc(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Yc(e){e=_c(e);let t=Jc(e),n=Kc(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=K({location:``,base:e,go:r,createHref:yc.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Xc=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),J=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(J||{}),Zc={type:Xc.Static,value:``},Qc=/[a-zA-Z0-9_]/;function $c(e){if(!e)return[[]];if(e===`/`)return[[Zc]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=J.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===J.Static?a.push({type:Xc.Static,value:l}):n===J.Param||n===J.ParamRegExp||n===J.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Xc.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===nl.Static+nl.Segment?1:-1:0}function ol(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var cl={strict:!1,end:!0,sensitive:!1};function ll(e,t,n){let r=K(il($c(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function ul(e,t){let n=[],r=new Map;t=Fs(cl,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=fl(e);s.aliasOf=r&&r.record;let l=Fs(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(fl(K({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=ll(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ml(d)&&o(e.name)),vl(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:Ns}function o(e){if(Oc(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=gl(e,n);n.splice(t,0,e),e.record.name&&!ml(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Ac(q.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=K(dl(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&dl(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Ac(q.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=K({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:hl(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function dl(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function fl(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pl(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function pl(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ml(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hl(e){return e.reduce((e,t)=>K(e,t.meta),{})}function gl(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ol(e,t[i])<0?r=i:n=i+1}let i=_l(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function _l(e){let t=e;for(;t=t.parent;)if(vl(t)&&ol(e,t)===0)return t}function vl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function yl(e){let t=Rn(Lc),n=Rn(Rc),r=G(()=>{let n=z(e.to);return t.resolve(n)}),i=G(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(lc.bind(null,i));if(o>-1)return o;let s=wl(e[t-2]);return t>1&&wl(i)===s&&a[a.length-1].path!==s?a.findIndex(lc.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&Cl(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&uc(n.params,r.value.params));function s(n={}){if(Sl(n)){let n=t[z(e.replace)?`replace`:`push`](z(e.to)).catch(Ns);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function bl(e){return e.length===1?e[0]:e}var xl=Qn({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:yl,setup(e,{slots:t}){let n=Lt(yl(e)),{options:r}=Rn(Lc),i=G(()=>({[Tl(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Tl(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&bl(t.default(n));return e.custom?r:ja(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Sl(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Cl(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Ps(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function wl(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Tl=(e,t,n)=>e??t??n,El=Qn({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=Rn(zc),i=G(()=>e.route||r.value),a=Rn(Ic,0),o=G(()=>{let e=z(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);Ln(Ic,G(()=>o.value+1)),Ln(Fc,s),Ln(zc,i);let c=R();return Hn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!lc(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Dl(n.default,{Component:l,route:r});let u=o.props[a],d=ja(l,K({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Dl(n.default,{Component:d,route:r})||d}}});function Dl(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Ol=El;function kl(e){let t=ul(e.routes,e),n=e.parseQuery||Mc,r=e.stringifyQuery||Nc,i=e.history,a=Bc(),o=Bc(),s=Bc(),c=Jt(mc),l=mc;ks&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Ms.bind(null,e=>``+e),d=Ms.bind(null,tc),f=Ms.bind(null,nc);function p(e,n){let r,i;return Oc(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=K({},a||c.value),typeof e==`string`){let r=ac(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return K(r,o,{params:f(o.params),hash:nc(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=K({},e,{path:ac(n,e.path,a.path).path});else{let t=K({},e.params);for(let e in t)t[e]??delete t[e];o=K({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=oc(r,K({},e,{hash:Zs(l),path:s.path})),m=i.createHref(p);return K({fullPath:p,hash:l,query:r===Nc?Pc(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?ac(n,e,c.value.path):K({},e)}function y(e,t){if(l!==e)return Ac(q.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(K(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),K({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(K(v(u),{state:typeof u==`object`?K({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&cc(r,i,n)&&(f=Ac(q.NAVIGATION_DUPLICATED,{to:d,from:i}),se(i,i,!0,!1)),(f?Promise.resolve(f):te(d,i)).catch(e=>jc(e)?jc(e,q.NAVIGATION_GUARD_REDIRECT)?e:oe(e):ae(e,d,i)).then(e=>{if(e){if(jc(e,q.NAVIGATION_GUARD_REDIRECT))return C(K({replace:s},v(e.to),{state:typeof e.to==`object`?K({},a,e.to.state):a,force:o}),t||d)}else e=re(d,i,!0,s,a);return ne(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function ee(e){let t=M.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function te(e,t){let n,[r,i,s]=Uc(e,t);n=Hc(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Vc(r,e,t))});let c=w.bind(null,e,t);return n.push(c),le(n).then(()=>{n=[];for(let r of a.list())n.push(Vc(r,e,t));return n.push(c),le(n)}).then(()=>{n=Hc(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Vc(r,e,t))});return n.push(c),le(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Ps(r.beforeEnter))for(let i of r.beforeEnter)n.push(Vc(i,e,t));else n.push(Vc(r.beforeEnter,e,t))}return n.push(c),le(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Hc(s,`beforeRouteEnter`,e,t,ee),n.push(c),le(n))).then(()=>{n=[];for(let r of o.list())n.push(Vc(r,e,t));return n.push(c),le(n)}).catch(e=>jc(e,q.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ne(e,t,n){s.list().forEach(r=>ee(()=>r(e,t,n)))}function re(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===mc,l=ks?history.state:{};n&&(r||s?i.replace(e.fullPath,K({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,se(e,t,n,s),oe()}let ie;function T(){ie||=i.listen((e,t,n)=>{if(!ce.listening)return;let r=_(e),a=S(r,ce.currentRoute.value);if(a){C(K(a,{replace:!0,force:!0}),r).catch(Ns);return}l=r;let o=c.value;ks&&Tc(Cc(o.fullPath,n.delta),xc()),te(r,o).catch(e=>jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_CANCELLED)?e:jc(e,q.NAVIGATION_GUARD_REDIRECT)?(C(K(v(e.to),{force:!0}),r).then(e=>{jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===hc.pop&&i.go(-1,!1)}).catch(Ns),Promise.reject()):(n.delta&&i.go(-n.delta,!1),ae(e,r,o))).then(e=>{e||=re(r,o,!1),e&&(n.delta&&!jc(e,q.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===hc.pop&&jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ne(r,o,e)}).catch(Ns)})}let E=Bc(),D=Bc(),O;function ae(e,t,n){oe(e);let r=D.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function k(){return O&&c.value!==mc?Promise.resolve():new Promise((e,t)=>{E.add([e,t])})}function oe(e){return O||(O=!e,T(),E.list().forEach(([t,n])=>e?n(e):t()),E.reset()),e}function se(t,n,r,i){let{scrollBehavior:a}=e;if(!ks||!a)return Promise.resolve();let o=!r&&Ec(Cc(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return Sn().then(()=>a(t,n,o)).then(e=>e&&Sc(e)).catch(e=>ae(e,t,n))}let A=e=>i.go(e),j,M=new Set,ce={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:A,back:()=>A(-1),forward:()=>A(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:D.add,isReady:k,install(e){e.component(`RouterLink`,xl),e.component(`RouterView`,Ol),e.config.globalProperties.$router=ce,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>z(c)}),ks&&!j&&c.value===mc&&(j=!0,b(i.location).catch(e=>{}));let t={};for(let e in mc)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Lc,ce),e.provide(Rc,Rt(t)),e.provide(zc,c);let n=e.unmount;M.add(e),e.unmount=function(){M.delete(e),M.size<1&&(l=mc,ie&&ie(),ie=null,c.value=mc,j=!1,O=!1),n()}}};function le(e){return e.reduce((e,t)=>e.then(()=>ee(t)),Promise.resolve())}return ce}function Al(e,t){return function(){return e.apply(t,arguments)}}var{toString:jl}=Object.prototype,{getPrototypeOf:Ml}=Object,{iterator:Nl,toStringTag:Pl}=Symbol,Fl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Il=e=>typeof e==`string`&&(e===`__proto__`||e===`constructor`||e===`prototype`),Ll=(e,t,n)=>e===Object.prototype||!n&&t===null,Rl=e=>{if(!Object.isExtensible(e))return!1;let t=Object.getOwnPropertyNames(e);return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(t=>{if(Il(t))return!1;let n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.configurable&&n.writable===!0})},zl=(e,t)=>{let n=e,r=[];for(;n!=null;){if(r.indexOf(n)!==-1)return!1;r.push(n);let i=Ml(n);if(Ll(n,i,n===e))return!1;if(Fl(n,t))return!0;n=i}return!1},Bl=(e,t)=>e!=null&&zl(e,t)?e[t]:void 0,Vl=e=>{if(e==null||typeof e!=`object`&&typeof e!=`function`)return e;let t=Ml(e);if(t===null&&Rl(e))return e;let n=Object.create(null),r=Object.create(null),i=[],a=e;for(;a!=null&&i.indexOf(a)===-1;){i.push(a);let o=a===e?t:Ml(a);if(Ll(a,o,a===e))break;let s=Object.getOwnPropertyNames(a);Object.getOwnPropertySymbols&&s.push(...Object.getOwnPropertySymbols(a));for(let t of s)Il(t)||Fl(r,t)||(n[t]=e[t],r[t]=!0);a=o}return n},Hl=(e=>t=>{let n=jl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ul=e=>(e=e.toLowerCase(),t=>Hl(t)===e),Wl=e=>t=>typeof t===e,{isArray:Gl}=Array,Kl=Wl(`undefined`);function ql(e){return e!==null&&!Kl(e)&&e.constructor!==null&&!Kl(e.constructor)&&Zl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var Jl=Ul(`ArrayBuffer`);function Yl(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Jl(e.buffer),t}var Xl=Wl(`string`),Zl=Wl(`function`),Ql=Wl(`number`),$l=e=>typeof e==`object`&&!!e,eu=e=>e===!0||e===!1,tu=e=>{if(!$l(e))return!1;let t=Ml(e);return(t===null||t===Object.prototype||Ml(t)===null)&&!zl(e,Pl)&&!zl(e,Nl)},nu=e=>{if(!$l(e)||ql(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ru=Ul(`Date`),iu=Ul(`File`),au=e=>!!(e&&e.uri!==void 0),ou=e=>e&&e.getParts!==void 0,su=Ul(`Blob`),cu=Ul(`FileList`),lu=Ul(`Set`),uu=e=>$l(e)&&Zl(e.pipe);function du(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var fu=du(),pu=fu.FormData===void 0?void 0:fu.FormData,mu=e=>{if(!e)return!1;if(pu&&e instanceof pu)return!0;let t=Ml(e);if(!t||t===Object.prototype||!Zl(e.append))return!1;let n=Hl(e);return n===`formdata`||n===`object`&&Zl(e.toString)&&e.toString()===`[object FormData]`},hu=Ul(`URLSearchParams`),[gu,_u,vu,yu]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Ul),bu=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function xu(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Gl(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var Cu=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,wu=e=>!Kl(e)&&e!==Cu;function Tu(...e){let{caseless:t,skipUndefined:n}=wu(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&Su(r,i)||i,o=Fl(r,a)?r[a]:void 0;tu(o)&&tu(e)?r[a]=Tu(o,e):tu(e)?r[a]=Tu({},e):Gl(e)?r[a]=e.slice():(!n||!Kl(e))&&(r[a]=e)};for(let t=0,n=e.length;t(xu(t,(t,r)=>{n&&Zl(t)?Object.defineProperty(e,r,{__proto__:null,value:Al(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),Du=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ou=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},ku=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Ml(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Au=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},ju=e=>{if(!e)return null;if(Gl(e))return e;let t=e.length;if(!Ql(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Mu=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Ml(Uint8Array)),Nu=(e,t)=>{let n=(e&&e[Nl]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Pu=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fu=Ul(`HTMLFormElement`),Iu=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Lu}=Object.prototype,Ru=Ul(`RegExp`),zu=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};xu(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Bu=e=>{zu(e,(t,n)=>{if(Zl(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Zl(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Vu=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Gl(e)?r(e):r(String(e).split(t)),n},Hu=()=>{},Uu=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wu(e){return!!(e&&Zl(e.append)&&e[Pl]===`FormData`&&e[Nl])}var Gu=e=>{let t=new WeakSet,n=e=>{if($l(e)){if(t.has(e))return;if(ql(e))return e;if(!(`toJSON`in e)){t.add(e);let r;if(lu(e)){r=[];for(let t of e){let e=n(t);!Kl(e)&&r.push(e)}}else r=Gl(e)?[]:{},xu(e,(e,t)=>{let i=n(e);!Kl(i)&&(r[t]=i)});return t.delete(e),r}}return e};return n(e)},Ku=Ul(`AsyncFunction`),qu=e=>e&&($l(e)||Zl(e))&&Zl(e.then)&&Zl(e.catch),Ju=((e,t)=>e?setImmediate:t?((e,t)=>(Cu.addEventListener(`message`,({source:n,data:r})=>{n===Cu&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),Cu.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Zl(Cu.postMessage)),Yu=typeof queueMicrotask<`u`?queueMicrotask.bind(Cu):typeof process<`u`&&process.nextTick||Ju,Xu=e=>e!=null&&Zl(e[Nl]),Y={isArray:Gl,isArrayBuffer:Jl,isBuffer:ql,isFormData:mu,isArrayBufferView:Yl,isString:Xl,isNumber:Ql,isBoolean:eu,isObject:$l,isPlainObject:tu,isEmptyObject:nu,isReadableStream:gu,isRequest:_u,isResponse:vu,isHeaders:yu,isUndefined:Kl,isDate:ru,isFile:iu,isReactNativeBlob:au,isReactNative:ou,isBlob:su,isRegExp:Ru,isFunction:Zl,isStream:uu,isURLSearchParams:hu,isTypedArray:Mu,isFileList:cu,forEach:xu,merge:Tu,extend:Eu,trim:bu,stripBOM:Du,inherits:Ou,toFlatObject:ku,kindOf:Hl,kindOfTest:Ul,endsWith:Au,toArray:ju,forEachEntry:Nu,matchAll:Pu,isHTMLForm:Fu,hasOwnProperty:Fl,hasOwnProp:Fl,hasOwnInPrototypeChain:zl,getSafeProp:Bl,toSafeFlatObject:Vl,reduceDescriptors:zu,freezeMethods:Bu,toObjectSet:Vu,toCamelCase:Iu,noop:Hu,toFiniteNumber:Uu,findKey:Su,global:Cu,isContextDefined:wu,isSpecCompliantForm:Wu,toJSONObject:Gu,isAsyncFn:Ku,isThenable:qu,setImmediate:Ju,asap:Yu,isIterable:Xu,isSafeIterable:e=>e!=null&&zl(e,Nl)&&Xu(e)},Zu=Y.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Qu=e=>{let t={},n,r,i;return e&&e.split(` +`))),e[So]=yo(i);let a=r||i.props&&i.props.type===`number`;ro(e,t?`change`:`input`,t=>{t.target.composing||e[So](wo(e.value,n,a))}),(n||a)&&ro(e,`change`,()=>{e.value=wo(e.value,n,a)}),t||(ro(e,`compositionstart`,bo),ro(e,`compositionend`,xo),ro(e,`change`,xo))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[Co];delete e[Co],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[So](wo(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[So]=yo(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?A(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)}},Eo={deep:!0,created(e,t,n){e[So]=yo(n),ro(e,`change`,()=>{let t=e._modelValue,n=jo(e),r=e.checked,i=e[So];if(p(t)){let e=be(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(h(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(Mo(e,r))})},mounted:Do,beforeUpdate(e,t,n){e[So]=yo(n),Do(e,t,n)}};function Do(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(p(t))i=be(t,r.props.value)>-1;else if(h(t))i=t.has(r.props.value);else{if(t===n)return;i=ye(t,Mo(e,!0))}e.checked!==i&&(e.checked=i)}var Oo={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,ro(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?A(jo(e)):jo(e)),r=e.multiple,i=r?h(e._modelValue)?new Set(t):t:t[0],a=e._pendingValue=[r,r?p(i)?t.slice():t:i];try{e[So](i)}finally{Sn(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[So]=yo(r)},mounted(e,{value:t}){Ao(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[So]=yo(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!ko(t,n[1],n[0]))&&Ao(e,t)}};function ko(e,t,n){if(!n||p(e))return ye(e,t);if(h(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Ao(e,t){let n=e.multiple,r=p(t);if(!(n&&!r&&!h(t))){for(let i=0,a=e.options.length;iString(e)===String(o)):be(t,o)>-1}else a.selected=t.has(o)}else if(ye(jo(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function jo(e){return`_value`in e?e._value:e.value}function Mo(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var No=[`ctrl`,`shift`,`alt`,`meta`],Po={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)=>No.some(n=>e[`${n}Key`]&&!t.includes(n))},Fo=(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{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=D(n.key);if(t.some(e=>e===r||Io[e]===r))return e(n)}))},Ro=l({patchProp:go},Ba),zo;function Bo(){return zo||=ki(Ro)}var Vo=((...e)=>{let t=Bo().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=Uo(e);if(!r)return;let i=t._component;!_(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,Ho(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function Ho(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Uo(e){return v(e)?document.querySelector(e):e}var Wo=typeof window<`u`,Go,Ko=e=>Go=e,qo=Symbol();function Jo(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Yo=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function Xo(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function Zo(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){ns(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Qo(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function $o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var es=typeof navigator==`object`?navigator:{userAgent:``},ts=/Macintosh/.test(es.userAgent)&&/AppleWebKit/.test(es.userAgent)&&!/Safari/.test(es.userAgent),ns=Wo?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!ts?rs:`msSaveOrOpenBlob`in es?is:as:()=>{};function rs(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?$o(r):Qo(r.href)?Zo(e,t,n):(r.target=`_blank`,$o(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){$o(r)},0))}function is(e,t=`download`,n){if(typeof e==`string`){if(Qo(e))Zo(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){$o(t)})}}else navigator.msSaveOrOpenBlob(Xo(e,n),t)}function as(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Zo(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Yo.HTMLElement))||`safari`in Yo,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||ts)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:os}=Object;function ss(){let e=Te(!0),t=e.run(()=>R({})),n=[],r=[],i=Gt({install(e){Ko(i),i._a=e,e.provide(qo,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var cs=()=>{};function ls(e,t,n,r=cs){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ee()&&De(i),i}function us(e,...t){e.forEach(e=>{e(...t)})}var ds=e=>e(),fs=Symbol(),ps=Symbol();function ms(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=Jo(i)&&Jo(r)&&Object.hasOwn(e,n)&&!L(r)&&!Vt(r)?ms(i,r):r}return e}var hs=Symbol();function gs(e){return!e||typeof e!=`object`||!Object.hasOwn(e,hs)}var{assign:_s}=Object;function vs(e){return!!(L(e)&&e.effect)}function ys(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),_s($t(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Gt(G(()=>{Ko(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=bs(e,l,t,n,r,!0),c}function bs(e,t,n={},r,i,a){let o,s=_s({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p,m=r.state.value[e];!a&&!m&&(r.state.value[e]={});let h;function g(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:`patch function`,storeId:e,events:p}):(ms(r.state.value[e],t),n={type:`patch object`,payload:t,storeId:e,events:p});let i=h=Symbol();Sn().then(()=>{h===i&&(l=!0)}),u=!0,us(d,n,r.state.value[e])}let _=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{_s(e,t)})}:cs;function v(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let y=(t,n=``)=>{if(fs in t)return t[ps]=n,t;let i=function(){Ko(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}us(f,{args:n,name:i[ps],store:b,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:b,n)}catch(e){throw us(o,e),e}return l instanceof Promise?l.then(e=>(us(a,e),e)).catch(e=>(us(o,e),Promise.reject(e))):(us(a,l),l)};return i[fs]=!0,i[ps]=n,i},b=Lt({_p:r,$id:e,$onAction:ls.bind(null,f),$patch:g,$reset:_,$subscribe(t,n={}){if(d.has(t))return cs;let i=ls(d,t,n.detached,()=>a()),a=o.run(()=>Hn(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:`direct`,events:p},r)},_s({},c,n)));return i},$dispose:v});r._s.set(e,b);let x=(r._a&&r._a.runWithContext||ds)(()=>r._e.run(()=>(o=Te()).run(()=>t({action:y}))));for(let t in x){let n=x[t];L(n)&&!vs(n)||Vt(n)?a||(m&&gs(n)&&(L(n)?n.value=m[t]:((n instanceof Set||n instanceof Map)&&n.clear(),ms(n,m[t]))),r.state.value[e][t]=n):typeof n==`function`&&(x[t]=y(n,t),s.actions[t]=n)}return _s(b,x),_s(I(b),x),Object.defineProperty(b,"$state",{get:()=>r.state.value[e],set:e=>{g(t=>{_s(t,e)})}}),r._p.forEach(e=>{let t=o.run(()=>e({store:b,app:r._a,pinia:r,options:s}));_s(b,t)}),m&&a&&n.hydrate&&n.hydrate(b.$state,m),l=!0,u=!0,b}function xs(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=zn();return n||=o?Rn(qo,null):null,n&&Ko(n),n=Go,n._s.has(e)||(i?bs(e,t,r,n):ys(e,r,n)),n._s.get(e)}return a.$id=e,a}var Ss={class:`app`},Cs={class:`side`},ws={class:`nav`},Ts={class:`nav-icon`},Es={class:`nav-label`},Ds={class:`main-col`},Os=Qn({__name:`App`,setup(e){let t=[{to:`/chat`,icon:`💬`,label:`对话`},{to:`/collaboration`,icon:`🔄`,label:`协作过程`},{to:`/agent`,icon:`🤖`,label:`智能体`},{to:`/review`,icon:`🔍`,label:`人工检验`},{to:`/metrics`,icon:`📊`,label:`指标`},{to:`/proxy`,icon:`🏷️`,label:`代理`},{to:`/settings`,icon:`⚙️`,label:`设置`}];return(e,n)=>{let r=Cr(`router-link`),i=Cr(`router-view`);return V(),H(`div`,Ss,[U(`aside`,Cs,[n[0]||=U(`div`,{class:`brand`},[U(`div`,{class:`brand-logo`},`🤖`),U(`div`,{class:`brand-text`},[U(`b`,null,`端云协同`),U(`span`,null,`编程智能体系统`)])],-1),U(`nav`,ws,[(V(),H(B,null,Dr(t,e=>ta(r,{key:e.to,to:e.to,class:`nav-item`},{default:Pn(()=>[U(`span`,Ts,N(e.icon),1),U(`span`,Es,N(e.label),1)]),_:2},1032,[`to`])),64))]),n[1]||=U(`div`,{class:`side-foot`},[U(`div`,{class:`foot-dot`}),U(`span`,null,`本地网关 · :8000`)],-1)]),U(`div`,Ds,[ta(i,{class:`content`})])])}}}),ks=typeof document<`u`;function As(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function js(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&As(e.default)}var K=Object.assign;function Ms(e,t){let n={};for(let r in t){let i=t[r];n[r]=Ps(i)?i.map(e):e(i)}return n}var Ns=()=>{},Ps=Array.isArray;function Fs(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Is=/#/g,Ls=/&/g,Rs=/\//g,zs=/=/g,Bs=/\?/g,Vs=/\+/g,Hs=/%5B/g,Us=/%5D/g,Ws=/%5E/g,Gs=/%60/g,Ks=/%7B/g,qs=/%7C/g,Js=/%7D/g,Ys=/%20/g;function Xs(e){return e==null?``:encodeURI(``+e).replace(qs,`|`).replace(Hs,`[`).replace(Us,`]`)}function Zs(e){return Xs(e).replace(Ks,`{`).replace(Js,`}`).replace(Ws,`^`)}function Qs(e){return Xs(e).replace(Vs,`%2B`).replace(Ys,`+`).replace(Is,`%23`).replace(Ls,`%26`).replace(Gs,"`").replace(Ks,`{`).replace(Js,`}`).replace(Ws,`^`)}function $s(e){return Qs(e).replace(zs,`%3D`)}function ec(e){return Xs(e).replace(Is,`%23`).replace(Bs,`%3F`)}function tc(e){return ec(e).replace(Rs,`%2F`)}function nc(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var rc=/\/$/,ic=e=>e.replace(rc,``);function ac(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=pc(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:nc(o)}}function oc(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function sc(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function cc(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&lc(t.matched[r],n.matched[i])&&uc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function lc(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function uc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!dc(e[n],t[n]))return!1;return!0}function dc(e,t){return Ps(e)?fc(e,t):Ps(t)?fc(t,e):e?.valueOf()===t?.valueOf()}function fc(e,t){return Ps(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function pc(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var mc={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},hc=function(e){return e.pop=`pop`,e.push=`push`,e}({}),gc=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function _c(e){if(!e){if(ks){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),ic(e)}var vc=/^[^#]+#/;function yc(e,t){return e.replace(vc,`#`)+t}function bc(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var xc=()=>({left:window.scrollX,top:window.scrollY});function Sc(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=bc(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Cc(e,t){return(history.state?history.state.position-t:-1)+e}var wc=new Map;function Tc(e,t){wc.set(e,t)}function Ec(e){let t=wc.get(e);return wc.delete(e),t}function Dc(e){return typeof e==`string`||e&&typeof e==`object`}function Oc(e){return typeof e==`string`||typeof e==`symbol`}var q=function(e){return e[e.MATCHER_NOT_FOUND=1]=`MATCHER_NOT_FOUND`,e[e.NAVIGATION_GUARD_REDIRECT=2]=`NAVIGATION_GUARD_REDIRECT`,e[e.NAVIGATION_ABORTED=4]=`NAVIGATION_ABORTED`,e[e.NAVIGATION_CANCELLED=8]=`NAVIGATION_CANCELLED`,e[e.NAVIGATION_DUPLICATED=16]=`NAVIGATION_DUPLICATED`,e}({}),kc=Symbol(``);q.MATCHER_NOT_FOUND,q.NAVIGATION_GUARD_REDIRECT,q.NAVIGATION_ABORTED,q.NAVIGATION_CANCELLED,q.NAVIGATION_DUPLICATED;function Ac(e,t){return K(Error(),{type:e,[kc]:!0},t)}function jc(e,t){return e instanceof Error&&kc in e&&(t==null||!!(e.type&t))}function Mc(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Qs(e)):[r&&Qs(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Pc(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Ps(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var Fc=Symbol(``),Ic=Symbol(``),Lc=Symbol(``),Rc=Symbol(``),zc=Symbol(``);function Bc(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Vc(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(Ac(q.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):Dc(e)?c(Ac(q.NAVIGATION_GUARD_REDIRECT,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Hc(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e])){if(As(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Vc(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=js(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Vc(c,n,r,o,e,i)()}))}}}return a}function Uc(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;olc(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>lc(e,s))||i.push(s))}return[n,r,i]}var Wc=()=>location.protocol+`//`+location.host;function Gc(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),sc(n,``)}return sc(n,e)+r+i}function Kc(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Gc(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:hc.pop,direction:u?u>0?gc.forward:gc.back:gc.unknown})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(K({},e.state,{scroll:xc()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function qc(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?xc():null}}function Jc(e){let{history:t,location:n}=window,r={value:Gc(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Wc()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,K({},t.state,qc(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=K({},i.value,t.state,{forward:e,scroll:xc()});a(o.current,o,!0),a(e,K({},qc(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Yc(e){e=_c(e);let t=Jc(e),n=Kc(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=K({location:``,base:e,go:r,createHref:yc.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Xc=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),J=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.ParamRegExp=2]=`ParamRegExp`,e[e.ParamRegExpEnd=3]=`ParamRegExpEnd`,e[e.EscapeNext=4]=`EscapeNext`,e}(J||{}),Zc={type:Xc.Static,value:``},Qc=/[a-zA-Z0-9_]/;function $c(e){if(!e)return[[]];if(e===`/`)return[[Zc]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=J.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===J.Static?a.push({type:Xc.Static,value:l}):n===J.Param||n===J.ParamRegExp||n===J.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Xc.Param,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===nl.Static+nl.Segment?1:-1:0}function ol(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var cl={strict:!1,end:!0,sensitive:!1};function ll(e,t,n){let r=K(il($c(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function ul(e,t){let n=[],r=new Map;t=Fs(cl,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=fl(e);s.aliasOf=r&&r.record;let l=Fs(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(fl(K({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=ll(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ml(d)&&o(e.name)),vl(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:Ns}function o(e){if(Oc(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=gl(e,n);n.splice(t,0,e),e.record.name&&!ml(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw Ac(q.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=K(dl(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&dl(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name);else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw Ac(q.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=K({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:hl(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function dl(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function fl(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pl(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function pl(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ml(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hl(e){return e.reduce((e,t)=>K(e,t.meta),{})}function gl(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ol(e,t[i])<0?r=i:n=i+1}let i=_l(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function _l(e){let t=e;for(;t=t.parent;)if(vl(t)&&ol(e,t)===0)return t}function vl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function yl(e){let t=Rn(Lc),n=Rn(Rc),r=G(()=>{let n=z(e.to);return t.resolve(n)}),i=G(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(lc.bind(null,i));if(o>-1)return o;let s=wl(e[t-2]);return t>1&&wl(i)===s&&a[a.length-1].path!==s?a.findIndex(lc.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&Cl(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&uc(n.params,r.value.params));function s(n={}){if(Sl(n)){let n=t[z(e.replace)?`replace`:`push`](z(e.to)).catch(Ns);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function bl(e){return e.length===1?e[0]:e}var xl=Qn({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:yl,setup(e,{slots:t}){let n=Lt(yl(e)),{options:r}=Rn(Lc),i=G(()=>({[Tl(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Tl(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&bl(t.default(n));return e.custom?r:ja(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function Sl(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Cl(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Ps(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function wl(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Tl=(e,t,n)=>e??t??n,El=Qn({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=Rn(zc),i=G(()=>e.route||r.value),a=Rn(Ic,0),o=G(()=>{let e=z(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);Ln(Ic,G(()=>o.value+1)),Ln(Fc,s),Ln(zc,i);let c=R();return Hn(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!lc(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Dl(n.default,{Component:l,route:r});let u=o.props[a],d=ja(l,K({},u?u===!0?r.params:typeof u==`function`?u(r):u:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Dl(n.default,{Component:d,route:r})||d}}});function Dl(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Ol=El;function kl(e){let t=ul(e.routes,e),n=e.parseQuery||Mc,r=e.stringifyQuery||Nc,i=e.history,a=Bc(),o=Bc(),s=Bc(),c=Jt(mc),l=mc;ks&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Ms.bind(null,e=>``+e),d=Ms.bind(null,tc),f=Ms.bind(null,nc);function p(e,n){let r,i;return Oc(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function h(){return t.getRoutes().map(e=>e.record)}function g(e){return!!t.getRecordMatcher(e)}function _(e,a){if(a=K({},a||c.value),typeof e==`string`){let r=ac(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return K(r,o,{params:f(o.params),hash:nc(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=K({},e,{path:ac(n,e.path,a.path).path});else{let t=K({},e.params);for(let e in t)t[e]??delete t[e];o=K({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=oc(r,K({},e,{hash:Zs(l),path:s.path})),m=i.createHref(p);return K({fullPath:p,hash:l,query:r===Nc?Pc(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?ac(n,e,c.value.path):K({},e)}function y(e,t){if(l!==e)return Ac(q.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(K(v(e),{replace:!0}))}function S(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=v(i):{path:i},i.params={}),K({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function C(e,t){let n=l=_(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=S(n,i);if(u)return C(K(v(u),{state:typeof u==`object`?K({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&cc(r,i,n)&&(f=Ac(q.NAVIGATION_DUPLICATED,{to:d,from:i}),se(i,i,!0,!1)),(f?Promise.resolve(f):te(d,i)).catch(e=>jc(e)?jc(e,q.NAVIGATION_GUARD_REDIRECT)?e:oe(e):ae(e,d,i)).then(e=>{if(e){if(jc(e,q.NAVIGATION_GUARD_REDIRECT))return C(K({replace:s},v(e.to),{state:typeof e.to==`object`?K({},a,e.to.state):a,force:o}),t||d)}else e=re(d,i,!0,s,a);return ne(d,i,e),e})}function w(e,t){let n=y(e,t);return n?Promise.reject(n):Promise.resolve()}function ee(e){let t=M.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function te(e,t){let n,[r,i,s]=Uc(e,t);n=Hc(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Vc(r,e,t))});let c=w.bind(null,e,t);return n.push(c),le(n).then(()=>{n=[];for(let r of a.list())n.push(Vc(r,e,t));return n.push(c),le(n)}).then(()=>{n=Hc(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Vc(r,e,t))});return n.push(c),le(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(Ps(r.beforeEnter))for(let i of r.beforeEnter)n.push(Vc(i,e,t));else n.push(Vc(r.beforeEnter,e,t))}return n.push(c),le(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Hc(s,`beforeRouteEnter`,e,t,ee),n.push(c),le(n))).then(()=>{n=[];for(let r of o.list())n.push(Vc(r,e,t));return n.push(c),le(n)}).catch(e=>jc(e,q.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ne(e,t,n){s.list().forEach(r=>ee(()=>r(e,t,n)))}function re(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===mc,l=ks?history.state:{};n&&(r||s?i.replace(e.fullPath,K({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,se(e,t,n,s),oe()}let ie;function T(){ie||=i.listen((e,t,n)=>{if(!ce.listening)return;let r=_(e),a=S(r,ce.currentRoute.value);if(a){C(K(a,{replace:!0,force:!0}),r).catch(Ns);return}l=r;let o=c.value;ks&&Tc(Cc(o.fullPath,n.delta),xc()),te(r,o).catch(e=>jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_CANCELLED)?e:jc(e,q.NAVIGATION_GUARD_REDIRECT)?(C(K(v(e.to),{force:!0}),r).then(e=>{jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===hc.pop&&i.go(-1,!1)}).catch(Ns),Promise.reject()):(n.delta&&i.go(-n.delta,!1),ae(e,r,o))).then(e=>{e||=re(r,o,!1),e&&(n.delta&&!jc(e,q.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===hc.pop&&jc(e,q.NAVIGATION_ABORTED|q.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ne(r,o,e)}).catch(Ns)})}let E=Bc(),D=Bc(),O;function ae(e,t,n){oe(e);let r=D.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function k(){return O&&c.value!==mc?Promise.resolve():new Promise((e,t)=>{E.add([e,t])})}function oe(e){return O||(O=!e,T(),E.list().forEach(([t,n])=>e?n(e):t()),E.reset()),e}function se(t,n,r,i){let{scrollBehavior:a}=e;if(!ks||!a)return Promise.resolve();let o=!r&&Ec(Cc(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return Sn().then(()=>a(t,n,o)).then(e=>e&&Sc(e)).catch(e=>ae(e,t,n))}let A=e=>i.go(e),j,M=new Set,ce={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:A,back:()=>A(-1),forward:()=>A(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:D.add,isReady:k,install(e){e.component(`RouterLink`,xl),e.component(`RouterView`,Ol),e.config.globalProperties.$router=ce,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>z(c)}),ks&&!j&&c.value===mc&&(j=!0,b(i.location).catch(e=>{}));let t={};for(let e in mc)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Lc,ce),e.provide(Rc,Rt(t)),e.provide(zc,c);let n=e.unmount;M.add(e),e.unmount=function(){M.delete(e),M.size<1&&(l=mc,ie&&ie(),ie=null,c.value=mc,j=!1,O=!1),n()}}};function le(e){return e.reduce((e,t)=>e.then(()=>ee(t)),Promise.resolve())}return ce}function Al(e,t){return function(){return e.apply(t,arguments)}}var{toString:jl}=Object.prototype,{getPrototypeOf:Ml}=Object,{iterator:Nl,toStringTag:Pl}=Symbol,Fl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Il=e=>typeof e==`string`&&(e===`__proto__`||e===`constructor`||e===`prototype`),Ll=(e,t,n)=>e===Object.prototype||!n&&t===null,Rl=e=>{if(!Object.isExtensible(e))return!1;let t=Object.getOwnPropertyNames(e);return Object.getOwnPropertySymbols&&t.push(...Object.getOwnPropertySymbols(e)),t.every(t=>{if(Il(t))return!1;let n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.configurable&&n.writable===!0})},zl=(e,t)=>{let n=e,r=[];for(;n!=null;){if(r.indexOf(n)!==-1)return!1;r.push(n);let i=Ml(n);if(Ll(n,i,n===e))return!1;if(Fl(n,t))return!0;n=i}return!1},Bl=(e,t)=>e!=null&&zl(e,t)?e[t]:void 0,Vl=e=>{if(e==null||typeof e!=`object`&&typeof e!=`function`)return e;let t=Ml(e);if(t===null&&Rl(e))return e;let n=Object.create(null),r=Object.create(null),i=[],a=e;for(;a!=null&&i.indexOf(a)===-1;){i.push(a);let o=a===e?t:Ml(a);if(Ll(a,o,a===e))break;let s=Object.getOwnPropertyNames(a);Object.getOwnPropertySymbols&&s.push(...Object.getOwnPropertySymbols(a));for(let t of s)Il(t)||Fl(r,t)||(n[t]=e[t],r[t]=!0);a=o}return n},Hl=(e=>t=>{let n=jl.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ul=e=>(e=e.toLowerCase(),t=>Hl(t)===e),Wl=e=>t=>typeof t===e,{isArray:Gl}=Array,Kl=Wl(`undefined`);function ql(e){return e!==null&&!Kl(e)&&e.constructor!==null&&!Kl(e.constructor)&&Zl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var Jl=Ul(`ArrayBuffer`);function Yl(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&Jl(e.buffer),t}var Xl=Wl(`string`),Zl=Wl(`function`),Ql=Wl(`number`),$l=e=>typeof e==`object`&&!!e,eu=e=>e===!0||e===!1,tu=e=>{if(!$l(e))return!1;let t=Ml(e);return(t===null||t===Object.prototype||Ml(t)===null)&&!zl(e,Pl)&&!zl(e,Nl)},nu=e=>{if(!$l(e)||ql(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ru=Ul(`Date`),iu=Ul(`File`),au=e=>!!(e&&e.uri!==void 0),ou=e=>e&&e.getParts!==void 0,su=Ul(`Blob`),cu=Ul(`FileList`),lu=Ul(`Set`),uu=e=>$l(e)&&Zl(e.pipe);function du(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var fu=du(),pu=fu.FormData===void 0?void 0:fu.FormData,mu=e=>{if(!e)return!1;if(pu&&e instanceof pu)return!0;let t=Ml(e);if(!t||t===Object.prototype||!Zl(e.append))return!1;let n=Hl(e);return n===`formdata`||n===`object`&&Zl(e.toString)&&e.toString()===`[object FormData]`},hu=Ul(`URLSearchParams`),[gu,_u,vu,yu]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Ul),bu=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function xu(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Gl(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var Cu=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,wu=e=>!Kl(e)&&e!==Cu;function Tu(...e){let{caseless:t,skipUndefined:n}=wu(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&Su(r,i)||i,o=Fl(r,a)?r[a]:void 0;tu(o)&&tu(e)?r[a]=Tu(o,e):tu(e)?r[a]=Tu({},e):Gl(e)?r[a]=e.slice():(!n||!Kl(e))&&(r[a]=e)};for(let t=0,n=e.length;t(xu(t,(t,r)=>{n&&Zl(t)?Object.defineProperty(e,r,{__proto__:null,value:Al(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),Du=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ou=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},ku=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-->0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Ml(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Au=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},ju=e=>{if(!e)return null;if(Gl(e))return e;let t=e.length;if(!Ql(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},Mu=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Ml(Uint8Array)),Nu=(e,t)=>{let n=(e&&e[Nl]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},Pu=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fu=Ul(`HTMLFormElement`),Iu=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Lu}=Object.prototype,Ru=Ul(`RegExp`),zu=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};xu(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Bu=e=>{zu(e,(t,n)=>{if(Zl(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(Zl(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Vu=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Gl(e)?r(e):r(String(e).split(t)),n},Hu=()=>{},Uu=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wu(e){return!!(e&&Zl(e.append)&&e[Pl]===`FormData`&&e[Nl])}var Gu=e=>{let t=new WeakSet,n=e=>{if($l(e)){if(t.has(e))return;if(ql(e))return e;if(!(`toJSON`in e)){t.add(e);let r;if(lu(e)){r=[];for(let t of e){let e=n(t);!Kl(e)&&r.push(e)}}else r=Gl(e)?[]:{},xu(e,(e,t)=>{let i=n(e);!Kl(i)&&(r[t]=i)});return t.delete(e),r}}return e};return n(e)},Ku=Ul(`AsyncFunction`),qu=e=>e&&($l(e)||Zl(e))&&Zl(e.then)&&Zl(e.catch),Ju=((e,t)=>e?setImmediate:t?((e,t)=>(Cu.addEventListener(`message`,({source:n,data:r})=>{n===Cu&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),Cu.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,Zl(Cu.postMessage)),Yu=typeof queueMicrotask<`u`?queueMicrotask.bind(Cu):typeof process<`u`&&process.nextTick||Ju,Xu=e=>e!=null&&Zl(e[Nl]),Y={isArray:Gl,isArrayBuffer:Jl,isBuffer:ql,isFormData:mu,isArrayBufferView:Yl,isString:Xl,isNumber:Ql,isBoolean:eu,isObject:$l,isPlainObject:tu,isEmptyObject:nu,isReadableStream:gu,isRequest:_u,isResponse:vu,isHeaders:yu,isUndefined:Kl,isDate:ru,isFile:iu,isReactNativeBlob:au,isReactNative:ou,isBlob:su,isRegExp:Ru,isFunction:Zl,isStream:uu,isURLSearchParams:hu,isTypedArray:Mu,isFileList:cu,forEach:xu,merge:Tu,extend:Eu,trim:bu,stripBOM:Du,inherits:Ou,toFlatObject:ku,kindOf:Hl,kindOfTest:Ul,endsWith:Au,toArray:ju,forEachEntry:Nu,matchAll:Pu,isHTMLForm:Fu,hasOwnProperty:Fl,hasOwnProp:Fl,hasOwnInPrototypeChain:zl,getSafeProp:Bl,toSafeFlatObject:Vl,reduceDescriptors:zu,freezeMethods:Bu,toObjectSet:Vu,toCamelCase:Iu,noop:Hu,toFiniteNumber:Uu,findKey:Su,global:Cu,isContextDefined:wu,isSpecCompliantForm:Wu,toJSONObject:Gu,isAsyncFn:Ku,isThenable:qu,setImmediate:Ju,asap:Yu,isIterable:Xu,isSafeIterable:e=>e!=null&&zl(e,Nl)&&Xu(e)},Zu=Y.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Qu=e=>{let t={},n,r,i;return e&&e.split(` `).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim();let a=Y.hasOwnProp(t,n);!n||a&&Y.hasOwnProp(Zu,n)||(n===`set-cookie`?a?t[n].push(r):t[n]=[r]:t[n]=a?t[n]+`, `+r:r)}),t};function $u(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var ed=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),td=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function nd(e,t){return Y.isArray(e)?e.map(e=>nd(e,t)):$u(String(e).replace(t,``))}var rd=e=>nd(e,ed),id=e=>nd(e,td);function ad(e){let t=Object.create(null);return Y.forEach(e.toJSON(),(e,n)=>{t[n]=id(e)}),t}var od=Symbol(`internals`);function sd(e){return e&&String(e).trim().toLowerCase()}function cd(e){return e===!1||e==null?e:Y.isArray(e)?e.map(cd):rd(String(e))}function ld(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var ud=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function dd(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}function fd(e){let t=e.length-1;if(t<1||e.charCodeAt(0)!==34||e.charCodeAt(t)!==34)return e;let n=``;for(let r=1;r=t))return e;n+=e[r]}return n}function pd(e){let t=Object.create(null),n=String(e),r=0,i=!1,a=!1;function o(e){let i=dd(n.slice(r,e)),a=i.indexOf(`=`);if(a<1)return;let o=dd(i.slice(0,a));if(!ud.test(o))return;let s=o.toLowerCase();if(s===`__proto__`||s===`constructor`||s===`prototype`)return;let c=dd(i.slice(a+1));t[s]=fd(c)}for(let e=0;e/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function hd(e,t,n,r,i){if(Y.isFunction(r))return r.call(this,t,n);if(i&&(t=n),Y.isString(t)){if(Y.isString(r))return t.indexOf(r)!==-1;if(Y.isRegExp(r))return r.test(t)}}function gd(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function _d(e,t){let n=Y.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var vd=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=sd(t);if(!i)return;let a=Y.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=cd(e))}let a=(e,t)=>Y.forEach(e,(e,n)=>i(e,n,t));if(Y.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(Y.isString(e)&&(e=e.trim())&&!md(e))a(Qu(e),t);else if(Y.isObject(e)&&Y.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!Y.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],Y.hasOwnProp(n,i)?(r=n[i],n[i]=Y.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=sd(e),e){let n=Y.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return ld(e);if(Y.isFunction(t))return t.call(this,e,n);if(Y.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=sd(e),e){let n=Y.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||hd(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=sd(e),e){let i=Y.findKey(n,e);i&&(!t||hd(n,n[i],i,t))&&(delete n[i],r=!0)}}return Y.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||hd(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return Y.forEach(this,(r,i)=>{let a=Y.findKey(n,i);if(a){t[a]=cd(r),delete t[i];return}let o=e?gd(i):String(i).trim();o!==i&&delete t[i],t[o]=cd(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return Y.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&Y.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(` `)}getSetCookie(){let e=this.get(`set-cookie`);return Y.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return pd(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[od]=this[od]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=sd(e);t[r]||(_d(n,e),t[r]=!0)}return Y.isArray(e)?e.forEach(r):r(e),this}};vd.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),Y.reduceDescriptors(vd.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),Y.freezeMethods(vd);var yd=`[REDACTED ****]`;function bd(e){if(Y.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(Y.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function xd(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||Y.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof vd&&(e=e.toJSON()),r.push(e);let t;if(Y.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);Y.isUndefined(r)||(t[n]=r)});else{if(!Y.isPlainObject(e)&&bd(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?yd:i(a);Y.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}function Sd(e){try{return String(e)}catch{return``}}function Cd(e){return e.errors.map(e=>{try{return e&&e.message?Sd(e.message):Sd(e)}catch{return``}}).filter(Boolean).join(`; `)||e.name||`AggregateError`}var X=class e extends Error{static from(t,n,r,i,a,o){let s=t.message;!s&&Y.isArray(t.errors)&&t.errors.length&&(s=Cd(t));let c=new e(s,n||t.code,r,i,a);return Object.defineProperty(c,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),c.name=t.name,t.status!=null&&c.status==null&&(c.status=t.status),o&&Object.assign(c,o),c}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&Y.hasOwnProp(e,`redact`)?e.redact:void 0,n=Y.isArray(t)&&t.length>0?xd(e,t):Y.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};X.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,X.ERR_BAD_OPTION=`ERR_BAD_OPTION`,X.ECONNABORTED=`ECONNABORTED`,X.ETIMEDOUT=`ETIMEDOUT`,X.ECONNREFUSED=`ECONNREFUSED`,X.ERR_NETWORK=`ERR_NETWORK`,X.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,X.ERR_DEPRECATED=`ERR_DEPRECATED`,X.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,X.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,X.ERR_CANCELED=`ERR_CANCELED`,X.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,X.ERR_INVALID_URL=`ERR_INVALID_URL`,X.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function wd(e){return Y.isPlainObject(e)||Y.isArray(e)}function Td(e){return Y.endsWith(e,`[]`)?e.slice(0,-2):e}function Ed(e,t,n){return e?e.concat(t).map(function(e,t){return e=Td(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function Dd(e){return Y.isArray(e)&&!e.some(wd)}var Od=Y.toFlatObject(Y,{},null,function(e){return/^is[A-Z]/.test(e)});function kd(e,t,n){if(!Y.isObject(e))throw TypeError(`target must be an object`);t||=new FormData;let r=(e,t)=>{let r=Y.getSafeProp(n,e);return Y.isUndefined(r)?t:r},i=r(`metaTokens`,!0),a=r(`visitor`)||h,o=r(`dots`,!1),s=r(`indexes`,!1),c=r(`Blob`)||typeof Blob<`u`&&Blob,l=r(`maxDepth`,100),u=c&&Y.isSpecCompliantForm(t),d=[];if(!Y.isFunction(a))throw TypeError(`visitor must be a function`);function f(e){if(e===null)return``;if(Y.isDate(e))return e.toISOString();if(Y.isBoolean(e))return e.toString();if(!u&&Y.isBlob(e))throw new X(`Blob is not supported. Use a Buffer instead.`);if(Y.isArrayBuffer(e)||Y.isTypedArray(e)){if(u&&typeof c==`function`)return new c([e]);throw new X(`Blob is not supported. Use a Buffer instead.`,X.ERR_NOT_SUPPORT)}return e}function p(e){if(e>l)throw new X(`Object is too deeply nested (`+e+` levels). Max depth: `+l,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function m(e,t){if(l===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!Y.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),p(t+n.length-1),r})}function h(e,n,r){let a=e;if(Y.isReactNative(t)&&Y.isReactNativeBlob(e))return t.append(Ed(r,n,o),f(e)),!1;if(e&&!r&&typeof e==`object`){if(Y.endsWith(n,`{}`))n=i?n:n.slice(0,-2),e=m(e,1);else if(Y.isArray(e)&&Dd(e)||(Y.isFileList(e)||Y.endsWith(n,`[]`))&&(a=Y.toArray(e)))return n=Td(n),a.forEach(function(e,r){!(Y.isUndefined(e)||e===null)&&t.append(s===!0?Ed([n],r,o):s===null?n:n+`[]`,f(e))}),!1}return wd(e)?!0:(t.append(Ed(r,n,o),f(e)),!1)}let g=Object.assign(Od,{defaultVisitor:h,convertValue:f,isVisitable:wd});function _(e,n,r=0){if(!Y.isUndefined(e)){if(p(r),d.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));d.push(e),Y.forEach(e,function(e,i){(!(Y.isUndefined(e)||e===null)&&a.call(t,e,Y.isString(i)?i.trim():i,n,g))===!0&&_(e,n?n.concat(i):[i],r+1)}),d.pop()}}if(!Y.isObject(e))throw TypeError(`data must be an object`);return _(e),t}function Ad(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function jd(e,t){this._pairs=[],e&&kd(e,this,t)}var Md=jd.prototype;Md.append=function(e,t){this._pairs.push([e,t])},Md.toString=function(e){let t=e?t=>e.call(this,t,Ad):Ad;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function Nd(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function Pd(e,t,n){if(!t)return e;e||=``;let r=Y.isFunction(n)?{serialize:n}:n,i=Y.getSafeProp(r,`encode`)||Nd,a=Y.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):Y.isURLSearchParams(t)?t.toString():new jd(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var Fd=Symbol(`internals`);function Id(e){return e?e.length:0}function Ld(e){if(e)for(;e.length&&e[e.length-1]===null;)e.pop()}function Rd(e,t){let n=e.handlers,r=Id(n);n===t.handlersRef?r!==t.handlersLength&&(r?t.handlerEntries.forEach(function(e,r){n[e.index]!==e.handler&&t.handlerEntries.delete(r)}):t.handlerEntries.clear()):(t.handlersRef=n,t.handlerEntries.clear()),t.handlersLength=r}var zd=class{constructor(){this.handlers=[],this[Fd]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(e,t,n){let r={fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null},i=this[Fd];this.handlers??=[],Rd(this,i);let a=i.nextId++;return this.handlers.push(r),i.handlerEntries.set(a,{handler:r,index:this.handlers.length-1}),i.handlersLength=this.handlers.length,a}eject(e){let t=this[Fd];Rd(this,t);let n=t.handlerEntries.get(e);if(n){if(t.handlerEntries.delete(e),this.handlers[n.index]!==n.handler)return;this.handlers[n.index]=null,t.iterationDepth||(Ld(this.handlers),t.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Rd(this,this[Fd]))}forEach(e){let t=this[Fd];Rd(this,t),t.iterationDepth++;try{Y.forEach(this.handlers,function(t){t!==null&&e(t)})}finally{--t.iterationDepth||(Rd(this,t),Ld(this.handlers),t.handlersLength=Id(this.handlers))}}},Bd={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Vd={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:jd,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},Hd=t({hasBrowserEnv:()=>Ud,hasStandardBrowserEnv:()=>Gd,hasStandardBrowserWebWorkerEnv:()=>Kd,navigator:()=>Wd,origin:()=>qd}),Ud=typeof window<`u`&&typeof document<`u`,Wd=typeof navigator==`object`&&navigator||void 0,Gd=Ud&&(!Wd||[`ReactNative`,`NativeScript`,`NS`].indexOf(Wd.product)<0),Kd=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,qd=Ud&&window.location.href||`http://localhost`,Z={...Hd,...Vd};function Jd(e,t){return kd(e,new Z.classes.URLSearchParams,{visitor:function(e,t,n,r){return Z.isNode&&Y.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var Yd=100;function Xd(e){if(e>Yd)throw new X(`FormData field is too deeply nested (`+e+` levels). Max depth: `+Yd,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Zd(e){let t=[],n=/[^.[\]]+|\[([^.[\]]*)]/g,r;for(;(r=n.exec(e))!==null;)Xd(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Qd(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&Y.isArray(r)?r.length:a,s?(Y.hasOwnProp(r,a)?r[a]=Y.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!Y.hasOwnProp(r,a)||!Y.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&Y.isArray(r[a])&&(r[a]=Qd(r[a])),!o)}if(Y.isFormData(e)&&Y.isFunction(e.entries)){let n={};return Y.forEachEntry(e,(e,r)=>{t(Zd(e),r,n,0)}),n}return null}var ef=Object.freeze([`get`,`delete`,`head`,`options`,`post`,`put`,`patch`,`purge`,`link`,`unlink`,`query`]),tf=(e,t)=>e!=null&&Y.hasOwnProp(e,t)?e[t]:void 0;function nf(e,t,n){if(Y.isString(e))try{return(t||JSON.parse)(e),Y.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var rf={transitional:Bd,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=Y.isObject(e);if(i&&Y.isHTMLForm(e)&&(e=new FormData(e)),Y.isFormData(e))return r?JSON.stringify($d(e)):e;if(Y.isArrayBuffer(e)||Y.isBuffer(e)||Y.isStream(e)||Y.isFile(e)||Y.isBlob(e)||Y.isReadableStream(e))return e;if(Y.isArrayBufferView(e))return e.buffer;if(Y.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=tf(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Jd(e,t).toString();if((a=Y.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=tf(this,`env`),r=n&&n.FormData;return kd(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),nf(e)):e}],transformResponse:[function(e){let t=tf(this,`transitional`)||rf.transitional,n=t&&t.forcedJSONParsing,r=tf(this,`responseType`),i=r===`json`;if(Y.isResponse(e)||Y.isReadableStream(e))return e;if(e&&Y.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,tf(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?X.from(e,X.ERR_BAD_RESPONSE,this,null,tf(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};Y.forEach(ef,e=>{rf.headers[e]={}});function af(e,t){let n=this||rf,r=t||n,i=vd.from(r.headers),a=r.data;return Y.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function of(e){return!!(e&&e.__CANCEL__)}var sf=class extends X{constructor(e,t,n){super(e??`canceled`,X.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function cf(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X(`Request failed with status code `+n.status,n.status>=400&&n.status<500?X.ERR_BAD_REQUEST:X.ERR_BAD_RESPONSE,n.config,n.request,n))}var lf=/[\t\n\r]/g;function uf(e){if(typeof e!=`string`)return e;let t=0;for(;t{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i),(...e)=>o(e)]}var mf=(e,t,n=3)=>{let r=0,i=ff(50,250);return pf(n=>{if(!n||!Y.isNumber(n.loaded))return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=Math.max(0,o==null?a:Math.min(a,o)),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},hf=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},gf=(e,t=Y.asap)=>(...n)=>t(()=>e(...n)),_f=Z.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Z.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,vf=Z.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];Y.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),Y.isString(r)&&s.push(`path=${r}`),Y.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),Y.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;n0&&e.charCodeAt(n-1)===47;)n--;return e.slice(0,n)+`/`+t.replace(/^\/+/,``)}var xf=/^https?:(?!\/\/)/i;function Sf(e){return e&&e.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,t,n=``)=>`${t}${n}${yd}`)}function Cf(e){let t=e.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${yd}@`),n=t.indexOf(`#`),r=(n===-1?t:t.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${yd}`);return n===-1?r:`${r}#${Sf(t.slice(n+1))}`}function wf(e,t){if(typeof e==`string`){let n=uf(e);if(xf.test(n))throw new X(`Invalid URL ${JSON.stringify(Cf(n))}: missing "//" after protocol`,X.ERR_INVALID_URL,t)}}function Tf(e,t,n,r){wf(t,r);let i=!yf(t);return e&&(i||n===!1)?(wf(e,r),bf(e,t)):t}var Ef=e=>e instanceof vd?{...e}:e,Df=e=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(e).concat(Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)):Object.keys(e);function Of(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return Y.isPlainObject(e)&&Y.isPlainObject(t)?Y.merge.call({caseless:r},e,t):Y.isPlainObject(t)?Y.merge({},t):Y.isArray(t)?t.slice():t}function i(e,t,n,i){if(!Y.isUndefined(t))return r(e,t,n,i);if(!Y.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!Y.isUndefined(t))return r(void 0,t)}function o(e,t){if(!Y.isUndefined(t))return r(void 0,t);if(!Y.isUndefined(e))return r(void 0,e)}function s(n){let r=Y.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!Y.isUndefined(r)){if(Y.isPlainObject(r)){if(Y.hasOwnProp(r,n))return r[n]}else return}let i=Y.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(Y.isPlainObject(i)&&Y.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(Y.hasOwnProp(t,a))return r(n,i);if(Y.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutErrorMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(Ef(e),Ef(t),n,!0)};return Y.forEach(Df({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=Y.hasOwnProp(l,r)?l[r]:i,o=a(Y.hasOwnProp(e,r)?e[r]:void 0,Y.hasOwnProp(t,r)?t[r]:void 0,r);Y.isUndefined(o)&&a!==c||(n[r]=o)}),Y.hasOwnProp(t,`validateStatus`)&&Y.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(Y.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var kf=[`content-type`,`content-length`];function Af(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{kf.includes(t.toLowerCase())&&e.set(t,n)})}var jf=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function Mf(e){let t=Of({},e),n=e=>Y.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=vd.from(s),t.url=Pd(Tf(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=Y.getSafeProp(c,`username`)||``,n=Y.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?jf(n):``)))}catch(t){throw X.from(t,X.ERR_BAD_OPTION_VALUE,e)}}if(Y.isFormData(r)){let e=Y.getSafeProp(r,`getHeaders`);Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv||Y.isReactNative(r)?s.setContentType(void 0):Y.isFunction(e)&&Af(s,e.call(r),n(`formDataHeaderPolicy`))}if(Z.hasStandardBrowserEnv&&(Y.isFunction(i)&&(i=i(t)),i===!0||i==null&&_f(t.url))){let e=a&&o&&vf.read(o);e&&s.set(a,e)}return t}var Nf=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=Mf(e),i=r.data,a=vd.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p,m;function h(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let g=new XMLHttpRequest;g.open(r.method.toUpperCase(),r.url,!0),g.timeout=r.timeout;function _(i){if(!g)return;if(g.status===0&&(df(uf(r.url))||df(Z.origin))!==`file`&&!(g.responseURL&&g.responseURL.startsWith(`file:`))){n(new X(`Request aborted`,X.ECONNABORTED,e,g)),h(),g=null;return}try{i?m&&m(i):p&&p()}catch(e){setTimeout(()=>{throw e})}if(!g)return;let a=vd.from(`getAllResponseHeaders`in g&&g.getAllResponseHeaders());cf(function(e){t(e),h()},function(e){n(e),h()},{data:!o||o===`text`||o===`json`?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:a,config:e,request:g}),g=null}`onloadend`in g?g.onloadend=_:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.startsWith(`file:`))||setTimeout(_)},g.onabort=function(){g&&=(n(new X(`Request aborted`,X.ECONNABORTED,e,g)),h(),null)},g.onerror=function(t){let r=new X(t&&t.message?t.message:`Network Error`,X.ERR_NETWORK,e,g);r.event=t||null,n(r),h(),g=null},g.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||Bd;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new X(t,i.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,g)),h(),g=null},i===void 0&&a.setContentType(null),`setRequestHeader`in g&&Y.forEach(ad(a),function(e,t){g.setRequestHeader(t,e)}),Y.isUndefined(r.withCredentials)||(g.withCredentials=!!r.withCredentials),o&&o!==`json`&&(g.responseType=r.responseType),c&&([d,p,m]=mf(c,!0),g.addEventListener(`progress`,d)),s&&g.upload&&([u,f]=mf(s),g.upload.addEventListener(`progress`,u),g.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{g&&=(n(!t||t.type?new sf(null,e,g):t),g.abort(),h(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let v=df(r.url);if(v&&!Z.protocols.includes(v)){n(new X(`Unsupported protocol `+v+`:`,X.ERR_BAD_REQUEST,e)),h();return}g.send(i||null)})},Pf=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new sf(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new X(`timeout of ${t}ms exceeded`,X.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>{if(!r){if(e.aborted){i.call(e);return}e.addEventListener(`abort`,i,{once:!0})}});let{signal:s}=n;return s.unsubscribe=()=>Y.asap(o),s},Ff=function*(e,t){let n=e.byteLength;if(!t||n{let i=If(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},zf=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Bf=(e,t,n)=>t+2e<=57?e-48:(e&223)-55,Hf=e=>e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e===43||e===47||e===45||e===95,Uf=e=>e===9||e===10||e===12||e===13||e===32,Wf=e=>{let t=Math.floor(e/4),n=e%4;return t*3+(n===2?1:n===3?2:0)},Gf=e=>{let t=e.length,n=0;return t>0&&e.charCodeAt(t-1)===61&&(n++,t>1&&e.charCodeAt(t-2)===61&&n++),Math.floor((t-n)*3/4)},Kf=e=>{let t=e.length,n=0,r=0,i=!1;for(let a=0;a0){i=!0;continue}n++}}return i||r>2||r>0&&(n+r)%4!=0||n%4==1?Gf(e):Wf(n)},qf=(e,t)=>{if(!e||typeof e!=`string`||!e.startsWith(`data:`))return 0;let n=e.indexOf(`,`);if(n<0)return 0;let r=e.slice(5,n),i=e.slice(n+1);if(/;base64/i.test(r))return t(i);let a=0;for(let e=0,t=i.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(a+=4,e++):a+=3}else a+=3}return a};function Jf(e){let t=typeof e==`string`?e.indexOf(`#`):-1;return qf(t===-1?e:e.slice(0,t),Kf)}var Yf=`1.20.0`,Xf=65536,Zf={cache:`default`,redirect:`follow`,referrer:`about:client`,referrerPolicy:``,mode:`cors`,integrity:``,keepalive:!1,priority:`auto`,window:null},{isFunction:Qf}=Y,$f=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),ep=e=>{if(!Y.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},tp=(e,...t)=>{try{return!!e(...t)}catch{return!1}},np=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},rp=e=>{let t=Y.global!==void 0&&Y.global!==null?Y.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=Y.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?Qf(i):typeof fetch==`function`,c=Qf(a),l=Qf(o);if(!s)return!1;let u=s&&Qf(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&tp(()=>{let e=!1,t=new a(Z.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&tp(()=>Y.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(Y.isBlob(e))return e.size;if(Y.isSpecCompliantForm(e))return(await new a(Z.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(Y.isArrayBufferView(e)||Y.isArrayBuffer(e))return e.byteLength;if(Y.isURLSearchParams(e)&&(e+=``),Y.isString(e))return(await d(e)).byteLength},g=async(e,t)=>Y.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:ee,maxRedirects:te}=Mf(e),ne=Y.isNumber(w)&&w>-1,re=Y.isNumber(ee)&&ee>-1,ie=t=>Y.hasOwnProp(e,t)?e[t]:void 0,T=i||fetch;b=b?(b+``).toLowerCase():`text`;let E=Pf([l,d&&d.toAbortSignal()],_),D=null,O=E&&E.unsubscribe&&(()=>{E.unsubscribe()}),ae,k=null,oe=()=>new X(`Request body larger than maxBodyLength limit`,X.ERR_BAD_REQUEST,e,D);try{let i,l=ie(`auth`);if(l&&(i={username:Y.getSafeProp(l,`username`)||``,password:Y.getSafeProp(l,`password`)||``}),np(t)){let e=new URL(t,Z.origin);!i&&(e.username||e.password)&&(i={username:ep(e.username),password:ep(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa($f((i.username||``)+`:`+(i.password||``))))),ne&&typeof t==`string`&&t.startsWith(`data:`)&&Jf(t)>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D);if(re&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(ae=e,e>ee))throw oe()}let d=re&&(Y.isReadableStream(s)||Y.isStream(s)),_=(e,t,n)=>Rf(e,Xf,e=>{if(re&&e>ee)throw k=oe();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(ae??=await g(x,s),ae!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(Y.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&hf(ae,mf(gf(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new X(`Stream request bodies are not supported by the current fetch implementation`,X.ERR_NOT_SUPPORT,e,D);Y.isString(S)||(S=S?`include`:`omit`);let se=c&&`credentials`in a.prototype;if(Y.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+Yf,!1);let A=C==null?C:Object.assign(Object.create(null),C);A&&(delete A.body,delete A.headers,delete A.method,delete A.signal,delete A.duplex,delete A.credentials);let j=Object.assign(Object.create(null),A,{signal:E,method:n.toUpperCase(),headers:ad(x.normalize()),body:s,duplex:`half`,credentials:se?S:void 0});c&&(Y.forEach(Zf,(e,t)=>{j[t]===void 0&&(j[t]=e)}),j.signal===void 0&&(j.signal=null),j.body===void 0&&(j.body=null)),te===0&&(j.redirect=`manual`,A&&(A.redirect=`manual`)),D=c&&new a(t,j);let M=await(c?T(D,A):T(t,j)),ce=vd.from(M.headers);if(ne){let t=Y.toFiniteNumber(ce.getContentLength());if(t!=null&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D)}let le=p&&(b===`stream`||b===`response`);if(p&&M.body&&(v||ne||le&&O)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=M[e]});let n=Y.toFiniteNumber(ce.getContentLength()),[r,i]=v&&hf(n,mf(gf(v),!0))||[],a=0;M=new o(Rf(M.body,Xf,t=>{if(ne&&(a=t,a>w))throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D);r&&r(t)},()=>{i&&i(),O&&O()}),t)}b||=`text`;let ue=await m[Y.findKey(m,b)||`text`](M,e);if(ne&&!p&&!le){let t;if(ue!=null&&(typeof ue.byteLength==`number`?t=ue.byteLength:typeof ue.size==`number`?t=ue.size:typeof ue==`string`&&(t=typeof r==`function`?new r().encode(ue).byteLength:ue.length)),typeof t==`number`&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,D)}return!le&&O&&O(),await new Promise((t,n)=>{cf(t,n,{data:ue,headers:vd.from(M.headers),status:M.status,statusText:M.statusText,config:e,request:D})})}catch(t){if(O&&O(),E&&E.aborted&&E.reason instanceof X){let n=E.reason;throw n.config=e,D&&(n.request=D),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(k)throw D&&!k.request&&(k.request=D),k;if(t instanceof X)throw D&&!t.request&&(t.request=D),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new X(`Network Error`,X.ERR_NETWORK,e,D,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw X.from(t,t&&t.code,e,D,t&&t.response)}}},ip=new Map,ap=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=ip;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:rp(t)),l=c;return c};ap();var op={http:null,xhr:Nf,fetch:{get:ap}};Y.forEach(op,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var sp=e=>`- ${e}`,cp=e=>Y.isFunction(e)||e===null||e===!1;function lp(e,t){e=Y.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new X(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since : `+e.map(sp).join(` @@ -8,4 +8,4 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en `);r=e===-1?``:n.slice(e+1)}if(!e.stack)e.stack=r;else if(r){let t=r.indexOf(` `),n=t===-1?-1:r.indexOf(` `,t+1),i=n===-1?``:r.slice(n+1);String(e.stack).endsWith(i)||(e.stack+=` -`+r)}}catch{}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Of(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&gp.assertOptions(n,{silentJSONParsing:_p.transitional(_p.boolean),forcedJSONParsing:_p.transitional(_p.boolean),clarifyTimeoutError:_p.transitional(_p.boolean),legacyInterceptorReqResOrdering:_p.transitional(_p.boolean),advertiseZstdAcceptEncoding:_p.transitional(_p.boolean),validateStatusUndefinedResolves:_p.transitional(_p.boolean)},!1),r!=null&&(Y.isFunction(r)?t.paramsSerializer={serialize:r}:gp.assertOptions(r,{encode:_p.function,serialize:_p.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),gp.assertOptions(t,{baseUrl:_p.spelling(`baseURL`),withXsrfToken:_p.spelling(`withXSRFToken`)},!0),t.method=(Y.getSafeProp(t,`method`)||Y.getSafeProp(this.defaults,`method`)||`get`).toLowerCase();let a=i&&Y.merge(i.common,i[t.method]);i&&Y.forEach(ef.concat(`common`),e=>{delete i[e]}),t.headers=vd.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Bd;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[fp.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);ufp.call(this,f)))}catch(e){l=Promise.reject(e)}break}}if(!l)try{l=fp.call(this,f)}catch(e){l=Promise.reject(e)}for(u=0,d=c.length;u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new sf(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function bp(e){return function(t){return e.apply(null,t)}}function xp(e){return Y.isObject(e)&&e.isAxiosError===!0}var Sp={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Sp).forEach(([e,t])=>{Sp[t]===void 0&&(Sp[t]=e)});function Cp(e){let t=new vp(e),n=Al(vp.prototype.request,t);return Y.extend(n,vp.prototype,t,{allOwnKeys:!0}),Y.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return Cp(Of(e,t))},n}var Q=Cp(rf);Q.Axios=vp,Q.CanceledError=sf,Q.CancelToken=yp,Q.isCancel=of,Q.VERSION=Yf,Q.toFormData=kd,Q.AxiosError=X,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=bp,Q.isAxiosError=xp,Q.mergeConfig=Of,Q.AxiosHeaders=vd,Q.formToJSON=e=>$d(Y.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=up.getAdapter,Q.HttpStatusCode=Sp,Q.default=Q;var $=Q.create({timeout:1e4});async function wp(e,t){let{data:n}=await $.post(`/chat`,{query:e,domain_group:t});return n}async function Tp(e){let{data:t}=await $.get(`/runs/${e}/status`);return t}function Ep(e){let t=new EventSource(`/runs/${e}/stream`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);n.type===`workspace`?e.onWorkspace(n.workspace):n.type===`status`?(e.onStatus(n.value),(n.value===`done`||n.value===`failed`)&&e.onDone()):n.type===`error`&&e.onError(n.detail)}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function Dp(e){let t=e?{status:e}:{},{data:n}=await $.get(`/review/queue`,{params:t});return n}async function Op(e,t,n){let{data:r}=await $.post(`/review/${e}`,null,{params:{verdict:t,correction:n}});return r}async function kp(){let{data:e}=await $.get(`/api/metrics`);return e}async function Ap(){let{data:e}=await $.get(`/config`);return e}async function jp(e){let{data:t}=await $.put(`/config`,e);return t}async function Mp(){let{data:e}=await $.post(`/config/reset`);return e}async function Np(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/models`,{params:r});return i}async function Pp(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/ping`,{params:r});return i}async function Fp(){let{data:e}=await $.get(`/llama/status`);return e}async function Ip(){let{data:e}=await $.get(`/llama/models`);return e.models}async function Lp(e,t=8901,n=99,r=4096){let{data:i}=await $.post(`/llama/start`,null,{params:{model:e,port:t,ngl:n,ctx:r}});return i}async function Rp(){let{data:e}=await $.post(`/llama/stop`);return e}async function zp(e,t){let n={url:e};t&&(n.dest=t);let{data:r}=await $.post(`/llama/download`,null,{params:n});return r}function Bp(e){let t=new EventSource(`/llama/download/stream?url=${encodeURIComponent(e)}`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);e.onProgress(n),n.done&&e.onDone(n)}),t.addEventListener(`error`,()=>{t.close()})},close(){t.close()}}}async function Vp(){let{data:e}=await $.get(`/pool`);return e}async function Hp(e){let{data:t}=await $.post(`/pool`,e);return t}async function Up(e){let{data:t}=await $.delete(`/pool/${e}`);return t}async function Wp(e){let{data:t}=await $.put(`/pool/roles`,e);return t}async function Gp(e){let{data:t}=await $.post(`/pool/${e}/test`);return t}async function Kp(e){let{data:t}=await $.get(`/pool/${e}/models`);return t}async function qp(e,t,n){let{data:r}=await $.post(`/agent/${e}/approve`,{approval_id:t,allowed:n});return r}async function Jp(e,t,n,r,i){let{data:a}=await $.post(`/agent`,{task:e,pool_id:t||void 0,workspace:n||void 0,executor_pool_id:r||void 0,session_id:i||void 0});return a}async function Yp(e){let{data:t}=await $.post(`/agent/${e}/cancel`);return t}async function Xp(e,t,n){let{data:r}=await $.post(`/agent/sessions`,{title:n||void 0,workspace:e||void 0,executor_pool_id:t||void 0});return r}async function Zp(){let{data:e}=await $.get(`/agent/sessions`);return e}async function Qp(e){let{data:t}=await $.get(`/agent/sessions/${e}`);return t}async function $p(e){let{data:t}=await $.delete(`/agent/sessions/${e}`);return t}async function em(e,t){let{data:n}=await $.patch(`/agent/sessions/${e}`,{title:t});return n}async function tm(e){let{data:t}=await $.get(`/agent/${e}/status`);return t}async function nm(e=``){let{data:t}=await $.get(`/agent/fs`,{params:e?{path:e}:{}});return t}async function rm(){let{data:e}=await $.get(`/agent/workspaces`);return e}async function im(e,t=!1){let{data:n}=await $.post(`/agent/workspaces`,{path:e,create:t});return n}function am(e){let t=new EventSource(`/agent/${e}/stream`),n=!1;return{subscribe(e){t.addEventListener(`message`,r=>{if(n)return;let i=JSON.parse(r.data);e.onEvent(i),i.type===`final`&&(n=!0,t.close(),e.onDone())}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function om(e,{timeout:t=6e4,interval:n=500}={}){let r=Date.now();for(;Date.now()-rsetTimeout(e,n))}throw Error(`poll timeout`)}var sm=xs(`chat`,()=>{let e=R([]),t=R(null),n=()=>e.value.find(e=>e.requestId===t.value)??null;async function r(n){let r=await wp(n),i={requestId:r.request_id,query:n,init:r,status:null,workspace:null,error:null};return e.value.unshift(i),t.value=r.request_id,i}async function i(t){let n=await Tp(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}async function a(t){let n=await om(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}function o(t,n){let r=e.value.find(e=>e.requestId===t);r&&(r.workspace=n)}function s(e){t.value=e}return{sessions:e,currentId:t,current:n,sendQuery:r,pollStatus:i,waitForDone:a,updateWorkspace:o,setCurrent:s}}),cm={class:`chat-view`},lm={class:`sidebar`},um={class:`session-list`},dm=[`onClick`],fm={class:`s-query`},pm={class:`main`},mm={key:0,class:`empty`},hm={class:`user-msg`},gm={class:`status-bar`},_m={key:0,class:`badge pending`},vm={key:1,class:`badge running`},ym={key:2,class:`badge done`},bm={key:3,class:`badge failed`},xm={key:4,class:`route-path`},Sm={key:0,class:`ws-meta`},Cm={key:1,class:`assistant-msg`},wm={key:2,class:`ws-preview`},Tm={key:0,class:`brief-block`},Em={class:`tags`},Dm={key:1,class:`plan-list`},Om={class:`step-id`},km={key:0,class:`deps`},Am={key:2,class:`progress-list`},jm={key:3,class:`error-msg`},Mm=[`disabled`],Nm=[`disabled`],Pm=Qn({__name:`ChatView`,setup(e){let t=sm(),n=R(``),r=R(!1),i=G(()=>t.current()),a=G(()=>i.value?.status?.status??`pending`),o=G(()=>i.value?.workspace),s=G(()=>i.value?.status?.response??null),c=null;function l(e){c?.close(),c=Ep(e),c.subscribe({onWorkspace(n){t.updateWorkspace(e,n)},onStatus(n){t.pollStatus(e)},onError(n){let r=t.sessions.find(t=>t.requestId===e);r&&(r.error=n)},onDone(){t.pollStatus(e)}})}Hn(()=>t.currentId,e=>{e&&(l(e),i.value?.status?.status===`done`&&t.pollStatus(e))},{immediate:!0});async function u(){if(!n.value.trim()||r.value)return;let e=n.value.trim();n.value=``,r.value=!0;try{l((await t.sendQuery(e)).requestId)}finally{r.value=!1}}return(e,i)=>(V(),H(`div`,cm,[U(`aside`,lm,[i[1]||=U(`h3`,null,`会话记录`,-1),U(`ul`,um,[(V(!0),H(B,null,Dr(z(t).sessions,e=>(V(),H(`li`,{key:e.requestId,class:pe([`session-item`,{active:e.requestId===z(t).currentId}]),onClick:n=>z(t).setCurrent(e.requestId)},[U(`span`,fm,N(e.query.slice(0,28))+N(e.query.length>28?`…`:``),1),U(`span`,{class:pe([`s-status`,e.status?.status??`pending`])},N(e.status?.status??`pending`),3)],10,dm))),128))])]),U(`main`,pm,[z(t).current()?(V(),H(B,{key:1},[U(`div`,hm,[i[3]||=U(`span`,{class:`role-label`},`你`,-1),U(`p`,null,N(z(t).current().query),1)]),U(`div`,gm,[a.value===`pending`?(V(),H(`span`,_m,`⏳ 排队中…`)):a.value===`running`?(V(),H(`span`,vm,` 🔄 协作中 (`+N(o.value?.meta.round??0)+`/`+N(o.value?.meta.rounds_cap??6)+`) `,1)):a.value===`done`?(V(),H(`span`,ym,`✅ 完成`)):a.value===`failed`?(V(),H(`span`,bm,`❌ 失败`)):W(``,!0),o.value?(V(),H(`span`,xm,` 路由:`+N(z(t).current().status?.route?.join(` → `)??`—`),1)):W(``,!0)]),o.value?(V(),H(`div`,Sm,[U(`span`,null,`tokens: `+N(o.value.meta.api_input_tokens)+` in / `+N(o.value.meta.api_output_tokens)+` out`,1),U(`span`,null,`延迟: `+N(z(t).current().status?.latency_ms?.toFixed(0))+` ms`,1),U(`span`,null,`模型: `+N(z(t).current().status?.model_used??`—`),1)])):W(``,!0),s.value?(V(),H(`div`,Cm,[i[4]||=U(`span`,{class:`role-label`},`系统`,-1),U(`pre`,null,N(s.value),1)])):W(``,!0),o.value?(V(),H(`details`,wm,[i[6]||=U(`summary`,null,`📄 交流文本预览`,-1),o.value.brief?(V(),H(`div`,Tm,[i[5]||=U(`strong`,null,`Brief:`,-1),aa(` `+N(o.value.brief.goal)+` `,1),U(`span`,Em,N(o.value.brief.tags.join(`, `)),1)])):W(``,!0),o.value.plan?.length?(V(),H(`ul`,Dm,[(V(!0),H(B,null,Dr(o.value.plan,e=>(V(),H(`li`,{key:e.id,class:pe(e.status)},[U(`span`,Om,N(e.id),1),U(`span`,null,N(e.task),1),e.deps.length?(V(),H(`span`,km,`←`+N(e.deps.join(`,`)),1)):W(``,!0)],2))),128))])):W(``,!0),o.value.progress?.length?(V(),H(`ul`,Am,[(V(!0),H(B,null,Dr(o.value.progress,e=>(V(),H(`li`,{key:e.step,class:pe(e.status)},N(e.step)+`: `+N(e.status),3))),128))])):W(``,!0)])):W(``,!0),z(t).current().error?(V(),H(`div`,jm,N(z(t).current().error),1)):W(``,!0)],64)):(V(),H(`div`,mm,[...i[2]||=[U(`p`,null,`输入问题,开启端云协同协作之旅。`,-1),U(`p`,{class:`hint`},`结果通过 SSE 实时推送,可切换「协作」页面查看交流文本可视化。`,-1)]])),U(`form`,{class:`input-bar`,onSubmit:Fo(u,[`prevent`])},[Fn(U(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,placeholder:`输入你的问题…`,disabled:r.value,autofocus:``},null,8,Mm),[[To,n.value]]),U(`button`,{type:`submit`,disabled:r.value||!n.value.trim()},N(r.value?`发送中…`:`发送`),9,Nm)],32)])]))}}),Fm=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Im=Fm(Pm,[[`__scopeId`,`data-v-d79f05ea`]]),Lm={class:`agent-view`},Rm={class:`sess-panel`},zm={class:`sess-list`},Bm=[`onClick`],Vm={class:`sess-title`},Hm={class:`sess-meta`},Um=[`onClick`],Wm=[`onClick`],Gm={key:0,class:`sess-empty`},Km={class:`chat-col`},qm={key:0,class:`hero`},Jm={class:`hero-tips`},Ym=[`onClick`],Xm={class:`stream-inner`},Zm={key:0,class:`row user`},Qm={class:`bubble-user`},$m={key:1,class:`row assistant`},eh={class:`bubble-ai`},th=[`open`],nh={class:`fold-body`},rh={key:0,class:`mini-phase`},ih={key:2,class:`mini-row`},ah={class:`mini-args`},oh={key:4,class:`mini-row delta-row`},sh={key:1,class:`tool-summary`},ch={key:2,class:`approval-card`},lh={class:`ap-head`},uh={class:`ap-args`},dh={class:`ap-actions`},fh=[`onClick`],ph=[`onClick`],mh={key:4,class:`ai-stream`},hh={key:5,class:`ai-text`},gh={key:6,class:`ai-error`},_h={key:7,class:`ai-running`},vh={class:`composer-wrap`},yh={class:`composer`},bh={class:`composer-bar`},xh=[`value`],Sh={class:`chip toggle-chip`,title:`开启后智能体可执行 shell 命令`},Ch={key:0,class:`composer-err`},wh={class:`composer-main`},Th=[`placeholder`,`disabled`,`onKeydown`],Eh=[`disabled`],Dh={class:`modal`},Oh={class:`crumb`},kh={class:`dir-list`},Ah=[`onClick`],jh={key:1,class:`dir-item empty`},Mh={class:`path-row`},Nh={class:`create-toggle`},Ph={key:0,class:`recent-row`},Fh=[`title`,`onClick`],Ih={key:1,class:`picker-msg`},Lh={class:`modal-actions`},Rh=Fm(Qn({__name:`AgentView`,setup(e){let t=[`浏览这个项目,总结目录结构和入口文件`,`运行测试,修复失败的用例,再跑一遍确认`,`给 README 补充安装与运行说明`],n=R([]),r=R(``),i=R([]),a=R(``),o=R(!1),s=R(``),c=R(``),l=R(``),u=R(``),d=R(!1),f=R(`dangerous`),p=R([]),m=R([]),h=R(!1),g=R(``),_=R({ok:!0,path:``,parent:``,dirs:[]}),v=R(``),y=R(!1),b=R(null),x=null,S=G(()=>m.value.filter(e=>e.enabled&&e.backend!==`mock`).sort((e,t)=>(e.backend===`llama_server`?-1:0)-(t.backend===`llama_server`?-1:0))),C=G(()=>!!a.value.trim()&&!!l.value);function w(e){if(!e)return``;let t=e.replace(/[\\/]+$/,``).split(/[\\/]/);return t[t.length-1]||e}function ee(e,t){if(!e)return t;let n=e.includes(`\\`)?`\\`:`/`;return e.endsWith(`\\`)||e.endsWith(`/`)?e+t:e+n+t}function te(e){if(!e)return``;let t=new Date(e*1e3);return`${t.getMonth()+1}/${t.getDate()} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function ne(e,t){return String(e??``).slice(0,t)}function re(e){let t=JSON.stringify(e)??``;return t.length>80?t.slice(0,80)+`…`:t}function ie(e){let t=e.model?` · ${e.model}`:``;return e.phase===`plan`?`🧠 规划者 · 拆解任务${t}`:e.phase===`execute`?`🔧 执行者 · 第 ${e.handoff} 轮交接${t}`:`🔍 规划者 · 审查裁决${t}`}function T(){Sn(()=>b.value?.scrollTo({top:b.value.scrollHeight}))}async function E(){try{n.value=await Zp()}catch{n.value=[]}}function D(e){return typeof e.turns==`number`?e.turns:e.turns.length}async function O(){try{let e=await Xp(l.value,u.value);r.value=e.id,i.value=[],await E()}catch(e){c.value=e?.message||String(e)}}async function ae(e){if(!o.value){r.value=e;try{let t=await Qp(e);l.value=t.workspace||l.value,t.executor_pool_id&&(u.value=t.executor_pool_id);let n=t.turns||[];i.value=n.flatMap(e=>[{role:`user`,content:e.task},{role:`assistant`,content:e.response||``,toolCalls:e.tool_calls||0,error:e.error,requestId:e.request_id}]),T()}catch{i.value=[]}}}async function k(e){confirm(`删除该会话?`)&&(await $p(e),r.value===e&&(r.value=``,i.value=[]),E())}async function oe(e){let t=n.value.find(t=>t.id===e),r=prompt(`新的会话名称:`,t?.title||``);if(r===null)return;let i=r.trim();if(!i){alert(`名称不能为空`);return}await em(e,i),E()}async function se(){h.value=!0,g.value=``,v.value=l.value;try{_.value=await nm(``)}catch{}}async function A(e){try{let t=await nm(e);t.ok?(_.value=t,v.value=t.path):g.value=t.error||`路径不可用`}catch{g.value=`浏览失败`}}async function j(e){if(e=(e||``).trim(),!e){g.value=`请先选择或输入目录路径`;return}try{let t=await im(e,y.value);l.value=t.current,p.value=t.recent,h.value=!1}catch(e){g.value=e?.response?.data?.detail||e?.message||String(e)}}async function M(){try{await jp({agent:{allow_shell:d.value}})}catch{d.value=!d.value}}async function ce(){try{await jp({agent:{approval_policy:f.value}})}catch{}}async function le(){if(!C.value||o.value)return;let e=a.value.trim();if(c.value=``,a.value=``,o.value=!0,!r.value)try{let e=await Xp(l.value,u.value);r.value=e.id,E()}catch(t){o.value=!1,c.value=t?.message||String(t),a.value=e;return}i.value.push({role:`user`,content:e}),i.value.push({role:`assistant`,content:``,liveEvents:[]});let t=i.value[i.value.length-1];T();try{let n=await Jp(e,``,l.value,u.value,r.value);s.value=n.request_id,n.workspace&&(l.value=n.workspace),x=am(n.request_id),x.subscribe({onEvent:e=>{if(e.type!==`final`){if(e.type===`approval_request`)t.approval={id:e.id,name:e.name,arguments:e.arguments,decided:!1,allowed:!1};else if(e.type===`approval_decided`)t.approval&&t.approval.id===e.id&&(t.approval.decided=!0,t.approval.allowed=!!e.allowed);else if(e.type===`delta`){t.streamText=(t.streamText||``)+(e.text||``),T();return}else(e.type===`tool_call`||e.type===`phase`||e.type===`message`)&&(t.streamText=``);t.liveEvents.push(e),T()}},onDone:async()=>{try{let e=await tm(n.request_id);t.content=e.response||``,!t.content&&!t.error&&(t.content=`(本轮模型未返回文本内容——小模型能力有限或响应为空,可重试或换用更强的模型)`),t.toolCalls=e.tool_calls??t.liveEvents.filter(e=>e.type===`tool_call`).length,t.error=e.error||null}catch{}o.value=!1,s.value=``,E(),T()}})}catch(n){o.value=!1,t.error=n?.response?.data?.detail||n?.message||String(n),a.value=e}}async function ue(){if(s.value)try{await Yp(s.value)}catch{}}async function de(e,t){if(!(!e.approval||!e.requestId)){e.approval.decided=!0,e.approval.allowed=t;try{await qp(e.requestId,e.approval.id,t)}catch(t){e.approval.decided=!1,c.value=t?.response?.data?.detail||t?.message||String(t)}}}return pr(async()=>{E();try{let[e,t,n]=await Promise.all([Vp(),rm(),Ap()]);m.value=e.entries,l.value=t.current||``,p.value=t.recent||[],n.agent?.approval_policy&&(f.value=n.agent.approval_policy)}catch{}}),(e,s)=>(V(),H(`div`,Lm,[U(`aside`,Rm,[U(`button`,{class:`new-sess`,onClick:O},`+ 新会话`),U(`div`,zm,[(V(!0),H(B,null,Dr(n.value,e=>(V(),H(`div`,{key:e.id,class:pe([`sess-item`,{active:e.id===r.value}]),onClick:t=>ae(e.id)},[U(`div`,Vm,N(e.title),1),U(`div`,Hm,[U(`span`,null,N(D(e))+` 轮`,1),s[10]||=U(`span`,null,`·`,-1),U(`span`,null,N(te(e.updated_at)),1),U(`span`,{class:`sess-rename`,title:`重命名会话`,onClick:Fo(t=>oe(e.id),[`stop`])},`✎`,8,Um),U(`span`,{class:`sess-del`,title:`删除会话`,onClick:Fo(t=>k(e.id),[`stop`])},`✕`,8,Wm)])],10,Bm))),128)),n.value.length?W(``,!0):(V(),H(`div`,Gm,`暂无会话`))])]),U(`main`,Km,[!i.value.length&&!o.value?(V(),H(`div`,qm,[s[11]||=U(`div`,{class:`hero-logo`},`🤖`,-1),s[12]||=U(`h2`,null,`智能体`,-1),s[13]||=U(`p`,null,`选择工作目录,用一句话派活——读 / 写 / 编辑 / 搜索 / 执行命令全程可视化。`,-1),U(`div`,Jm,[(V(),H(B,null,Dr(t,e=>U(`button`,{key:e,class:`tip-chip`,onClick:t=>a.value=e},N(e),9,Ym)),64))])])):(V(),H(`div`,{key:1,class:`stream`,ref_key:`streamEl`,ref:b},[U(`div`,Xm,[(V(!0),H(B,null,Dr(i.value,(e,t)=>(V(),H(B,{key:t},[e.role===`user`?(V(),H(`div`,Zm,[U(`div`,Qm,N(e.content),1)])):(V(),H(`div`,$m,[U(`div`,eh,[e.liveEvents&&e.liveEvents.length?(V(),H(`details`,{key:0,class:`tool-fold`,open:o.value&&t===i.value.length-1},[U(`summary`,null,`⚙ 工具执行过程(`+N(e.liveEvents.length)+` 条事件)`,1),U(`div`,nh,[(V(!0),H(B,null,Dr(e.liveEvents,(e,t)=>(V(),H(B,{key:t},[e.type===`phase`?(V(),H(`div`,rh,N(ie(e)),1)):e.type===`message`?(V(),H(`div`,{key:1,class:pe([`mini-msg`,e.role===`planner`?`mp`:`me`])},N(e.role===`planner`?`🧠`:`🔧`)+` `+N(ne(e.content,300)),3)):e.type===`tool_call`?(V(),H(`div`,ih,[s[14]||=aa(` 🛠️ `,-1),U(`b`,null,N(e.name),1),U(`span`,ah,N(re(e.arguments)),1)])):e.type===`tool_result`?(V(),H(`div`,{key:3,class:pe([`mini-row`,e.ok?`ok`:`err`])},N(e.ok?`✓`:`✕`)+` `+N(e.name)+` · `+N(ne(e.preview,120)),3)):e.type===`delta`?(V(),H(`div`,oh,N(ne(e.text,200)),1)):W(``,!0)],64))),128))])],8,th)):e.toolCalls?(V(),H(`div`,sh,`⚙ 执行了 `+N(e.toolCalls)+` 步工具调用`,1)):W(``,!0),e.approval&&!e.approval.decided?(V(),H(`div`,ch,[U(`div`,lh,[s[15]||=aa(`⏸ 等待审批:`,-1),U(`b`,null,N(e.approval.name),1),s[16]||=aa(` 请求执行`,-1)]),U(`pre`,uh,N(re(e.approval.arguments)),1),U(`div`,dh,[U(`button`,{class:`ap-btn reject`,onClick:t=>de(e,!1)},`拒绝`,8,fh),U(`button`,{class:`ap-btn allow`,onClick:t=>de(e,!0)},`允许一次`,8,ph)])])):e.approval&&e.approval.decided?(V(),H(`div`,{key:3,class:pe([`ap-done`,e.approval.allowed?`ok`:`no`])},N(e.approval.allowed?`✓ 已允许执行`:`✕ 已拒绝`),3)):W(``,!0),e.streamText?(V(),H(`div`,mh,[aa(N(e.streamText),1),s[17]||=U(`span`,{class:`cursor`},null,-1)])):W(``,!0),e.content?(V(),H(`div`,hh,N(e.content),1)):e.error?(V(),H(`div`,gh,`❌ `+N(e.error),1)):o.value&&t===i.value.length-1?(V(),H(`div`,_h,[...s[18]||=[U(`span`,{class:`spinner`},null,-1),aa(` 正在思考与执行… `,-1)]])):W(``,!0)])]))],64))),128))])],512)),U(`div`,vh,[U(`div`,yh,[U(`div`,bh,[U(`button`,{class:`chip`,onClick:se,title:`选择工作目录`},` 📁 `+N(w(l.value)||`选择目录`),1),Fn(U(`select`,{"onUpdate:modelValue":s[0]||=e=>u.value=e,class:`chip select-chip`,title:`两级模式:大模型拆解/审查,本地小模型执行`},[s[19]||=U(`option`,{value:``},`单模型`,-1),(V(!0),H(B,null,Dr(S.value,e=>(V(),H(`option`,{key:e.id,value:e.id},` 🔧 `+N(e.name),9,xh))),128))],512),[[Oo,u.value]]),U(`label`,Sh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":s[1]||=e=>d.value=e,onChange:M},null,544),[[Eo,d.value]]),s[20]||=aa(` 命令 `,-1)]),Fn(U(`select`,{"onUpdate:modelValue":s[2]||=e=>f.value=e,class:`chip select-chip`,title:`审批策略:哪些操作需要你确认`,onChange:ce},[...s[21]||=[U(`option`,{value:`off`},`审批:关`,-1),U(`option`,{value:`dangerous`},`审批:写与命令`,-1),U(`option`,{value:`all`},`审批:全部操作`,-1)]],544),[[Oo,f.value]]),c.value?(V(),H(`span`,Ch,N(c.value),1)):W(``,!0)]),U(`div`,wh,[Fn(U(`textarea`,{"onUpdate:modelValue":s[3]||=e=>a.value=e,class:`composer-input`,rows:`1`,placeholder:l.value?`给智能体派活…(Enter 发送,Shift+Enter 换行)`:`先点击左上角 📁 选择工作目录`,disabled:o.value,onKeydown:Lo(Fo(le,[`exact`,`prevent`]),[`enter`])},null,40,Th),[[To,a.value]]),o.value?(V(),H(`button`,{key:0,class:`send-btn stop`,onClick:ue,title:`停止`},`■`)):(V(),H(`button`,{key:1,class:`send-btn`,disabled:!C.value,onClick:le,title:`发送(Enter)`},`↑`,8,Eh))])])])]),h.value?(V(),H(`div`,{key:0,class:`modal-mask`,onClick:s[9]||=Fo(e=>h.value=!1,[`self`])},[U(`div`,Dh,[s[24]||=U(`div`,{class:`modal-title`},`选择工作目录`,-1),U(`div`,Oh,N(_.value.path||`(此电脑 — 点击选择盘符)`),1),U(`div`,kh,[_.value.parent?(V(),H(`div`,{key:0,class:`dir-item up`,onClick:s[4]||=e=>A(_.value.parent)},` ↰ 上级:`+N(_.value.parent),1)):W(``,!0),(V(!0),H(B,null,Dr(_.value.dirs,e=>(V(),H(`div`,{key:e,class:`dir-item`,onClick:t=>A(ee(_.value.path,e))},` 📂 `+N(e),9,Ah))),128)),_.value.dirs.length?W(``,!0):(V(),H(`div`,jh,`(无子目录——可直接点下方"打开此目录")`))]),U(`div`,Mh,[Fn(U(`input`,{"onUpdate:modelValue":s[5]||=e=>v.value=e,placeholder:`或直接输入绝对路径,如 E:\\my-project`},null,512),[[To,v.value]]),U(`label`,Nh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":s[6]||=e=>y.value=e},null,512),[[Eo,y.value]]),s[22]||=aa(` 不存在则新建 `,-1)])]),p.value.length?(V(),H(`div`,Ph,[s[23]||=U(`span`,{class:`recent-label`},`最近:`,-1),(V(!0),H(B,null,Dr(p.value,e=>(V(),H(`button`,{key:e,class:`recent-chip`,title:e,onClick:t=>j(e)},N(w(e)),9,Fh))),128))])):W(``,!0),g.value?(V(),H(`div`,Ih,N(g.value),1)):W(``,!0),U(`div`,Lh,[U(`button`,{class:`btn-primary`,onClick:s[7]||=e=>j(v.value.trim()||_.value.path)},` 打开此目录 `),U(`button`,{class:`btn-secondary`,onClick:s[8]||=e=>h.value=!1},`取消`)])])])):W(``,!0)]))}}),[[`__scopeId`,`data-v-dc3e64d8`]]),zh=`modulepreload`,Bh=function(e){return`/static/`+e},Vh={},Hh=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Bh(t,n),t=s(t),t in Vh)return;Vh[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:zh,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Uh=kl({history:Yc(`/`),routes:[{path:`/`,redirect:`/chat`},{path:`/chat`,name:`chat`,component:Im},{path:`/collaboration`,name:`collaboration`,component:()=>Hh(()=>import(`./CollaborationView-BAah4JZr.js`),__vite__mapDeps([0,1]))},{path:`/agent`,name:`agent`,component:Rh},{path:`/review`,name:`review`,component:()=>Hh(()=>import(`./ReviewView-D2qulLRD.js`),__vite__mapDeps([2,3]))},{path:`/metrics`,name:`metrics`,component:()=>Hh(()=>import(`./MetricsView-Dveh4O03.js`),__vite__mapDeps([4,5]))},{path:`/settings`,name:`settings`,component:()=>Hh(()=>import(`./SettingsView-yLQ4Nsmb.js`),__vite__mapDeps([6,7]))}]}),Wh=Vo(Os);Wh.use(ss()),Wh.use(Uh),Wh.mount(`#app`);export{W as A,Lt as B,Ep as C,B as D,To as E,_r as F,N as G,z as H,V as I,Dr as L,aa as M,Qn as N,G as O,pr as P,Hn as R,Bp as S,Oo as T,pe as U,R as V,ce as W,Rp as _,Ap as a,jp as b,Vp as c,Kp as d,Dp as f,Lp as g,Wp as h,zp as i,H as j,U as k,Ip as l,Mp as m,sm as n,Fp as o,Pp as p,Up as r,kp as s,Fm as t,Np as u,Op as v,Eo as w,Hp as x,Gp as y,Fn as z}; \ No newline at end of file +`+r)}}catch{}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=Of(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&gp.assertOptions(n,{silentJSONParsing:_p.transitional(_p.boolean),forcedJSONParsing:_p.transitional(_p.boolean),clarifyTimeoutError:_p.transitional(_p.boolean),legacyInterceptorReqResOrdering:_p.transitional(_p.boolean),advertiseZstdAcceptEncoding:_p.transitional(_p.boolean),validateStatusUndefinedResolves:_p.transitional(_p.boolean)},!1),r!=null&&(Y.isFunction(r)?t.paramsSerializer={serialize:r}:gp.assertOptions(r,{encode:_p.function,serialize:_p.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),gp.assertOptions(t,{baseUrl:_p.spelling(`baseURL`),withXsrfToken:_p.spelling(`withXSRFToken`)},!0),t.method=(Y.getSafeProp(t,`method`)||Y.getSafeProp(this.defaults,`method`)||`get`).toLowerCase();let a=i&&Y.merge(i.common,i[t.method]);i&&Y.forEach(ef.concat(`common`),e=>{delete i[e]}),t.headers=vd.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Bd;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[fp.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);ufp.call(this,f)))}catch(e){l=Promise.reject(e)}break}}if(!l)try{l=fp.call(this,f)}catch(e){l=Promise.reject(e)}for(u=0,d=c.length;u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new sf(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function bp(e){return function(t){return e.apply(null,t)}}function xp(e){return Y.isObject(e)&&e.isAxiosError===!0}var Sp={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Sp).forEach(([e,t])=>{Sp[t]===void 0&&(Sp[t]=e)});function Cp(e){let t=new vp(e),n=Al(vp.prototype.request,t);return Y.extend(n,vp.prototype,t,{allOwnKeys:!0}),Y.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return Cp(Of(e,t))},n}var Q=Cp(rf);Q.Axios=vp,Q.CanceledError=sf,Q.CancelToken=yp,Q.isCancel=of,Q.VERSION=Yf,Q.toFormData=kd,Q.AxiosError=X,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=bp,Q.isAxiosError=xp,Q.mergeConfig=Of,Q.AxiosHeaders=vd,Q.formToJSON=e=>$d(Y.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=up.getAdapter,Q.HttpStatusCode=Sp,Q.default=Q;var $=Q.create({timeout:1e4});async function wp(e,t){let{data:n}=await $.post(`/chat`,{query:e,domain_group:t});return n}async function Tp(e){let{data:t}=await $.get(`/runs/${e}/status`);return t}function Ep(e){let t=new EventSource(`/runs/${e}/stream`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);n.type===`workspace`?e.onWorkspace(n.workspace):n.type===`status`?(e.onStatus(n.value),(n.value===`done`||n.value===`failed`)&&e.onDone()):n.type===`error`&&e.onError(n.detail)}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function Dp(e){let t=e?{status:e}:{},{data:n}=await $.get(`/review/queue`,{params:t});return n}async function Op(e,t,n){let{data:r}=await $.post(`/review/${e}`,null,{params:{verdict:t,correction:n}});return r}async function kp(){let{data:e}=await $.get(`/api/metrics`);return e}async function Ap(){let{data:e}=await $.get(`/config`);return e}async function jp(e){let{data:t}=await $.put(`/config`,e);return t}async function Mp(){let{data:e}=await $.post(`/config/reset`);return e}async function Np(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/models`,{params:r});return i}async function Pp(e,t,n){let r={backend:e};t&&(r.base_url=t),n&&(r.api_key=n);let{data:i}=await $.get(`/config/ping`,{params:r});return i}async function Fp(){let{data:e}=await $.get(`/llama/status`);return e}async function Ip(){let{data:e}=await $.get(`/llama/models`);return e.models}async function Lp(e,t=8901,n=99,r=4096){let{data:i}=await $.post(`/llama/start`,null,{params:{model:e,port:t,ngl:n,ctx:r}});return i}async function Rp(){let{data:e}=await $.post(`/llama/stop`);return e}async function zp(e,t){let n={url:e};t&&(n.dest=t);let{data:r}=await $.post(`/llama/download`,null,{params:n});return r}function Bp(e){let t=new EventSource(`/llama/download/stream?url=${encodeURIComponent(e)}`);return{subscribe(e){t.addEventListener(`message`,t=>{let n=JSON.parse(t.data);e.onProgress(n),n.done&&e.onDone(n)}),t.addEventListener(`error`,()=>{t.close()})},close(){t.close()}}}async function Vp(){let{data:e}=await $.get(`/pool`);return e}async function Hp(e){let{data:t}=await $.post(`/pool`,e);return t}async function Up(e){let{data:t}=await $.delete(`/pool/${e}`);return t}async function Wp(e){let{data:t}=await $.put(`/pool/roles`,e);return t}async function Gp(e){let{data:t}=await $.post(`/pool/${e}/test`);return t}async function Kp(e){let{data:t}=await $.get(`/pool/${e}/models`);return t}async function qp(e,t,n){let{data:r}=await $.post(`/agent/${e}/approve`,{approval_id:t,allowed:n});return r}async function Jp(e,t,n,r,i){let{data:a}=await $.post(`/agent`,{task:e,pool_id:t||void 0,workspace:n||void 0,executor_pool_id:r||void 0,session_id:i||void 0});return a}async function Yp(e){let{data:t}=await $.post(`/agent/${e}/cancel`);return t}async function Xp(e,t,n){let{data:r}=await $.post(`/agent/sessions`,{title:n||void 0,workspace:e||void 0,executor_pool_id:t||void 0});return r}async function Zp(){let{data:e}=await $.get(`/agent/sessions`);return e}async function Qp(e){let{data:t}=await $.get(`/agent/sessions/${e}`);return t}async function $p(e){let{data:t}=await $.delete(`/agent/sessions/${e}`);return t}async function em(e,t){let{data:n}=await $.patch(`/agent/sessions/${e}`,{title:t});return n}async function tm(e){let{data:t}=await $.get(`/agent/${e}/status`);return t}async function nm(e=``){let{data:t}=await $.get(`/agent/fs`,{params:e?{path:e}:{}});return t}async function rm(){let{data:e}=await $.get(`/agent/workspaces`);return e}async function im(e,t=!1){let{data:n}=await $.post(`/agent/workspaces`,{path:e,create:t});return n}function am(e){let t=new EventSource(`/agent/${e}/stream`),n=!1;return{subscribe(e){t.addEventListener(`message`,r=>{if(n)return;let i=JSON.parse(r.data);e.onEvent(i),i.type===`final`&&(n=!0,t.close(),e.onDone())}),t.addEventListener(`error`,()=>{})},close(){t.close()}}}async function om(){let{data:e}=await $.get(`/proxy/admin/stats`);return e}async function sm(e=0,t=50,n=0){let{data:r}=await $.get(`/proxy/admin/ledger`,{params:{student_id:e||void 0,limit:t,offset:n}});return r}async function cm(){try{let{data:e}=await $.get(`/proxy/admin/students`);return e}catch{return[]}}async function lm(e,t,n=``){let{data:r}=await $.post(`/proxy/admin/students`,{name:e,class:n,balance_yuan:t});return r}async function um(e,t){let{data:n}=await $.post(`/proxy/admin/students/${e}/topup`,{amount_yuan:t});return n}async function dm(e){let{data:t}=await $.post(`/proxy/admin/keys`,{student_id:e});return t}async function fm(e,{timeout:t=6e4,interval:n=500}={}){let r=Date.now();for(;Date.now()-rsetTimeout(e,n))}throw Error(`poll timeout`)}var pm=xs(`chat`,()=>{let e=R([]),t=R(null),n=()=>e.value.find(e=>e.requestId===t.value)??null;async function r(n){let r=await wp(n),i={requestId:r.request_id,query:n,init:r,status:null,workspace:null,error:null};return e.value.unshift(i),t.value=r.request_id,i}async function i(t){let n=await Tp(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}async function a(t){let n=await fm(t),r=e.value.find(e=>e.requestId===t);return r&&(r.status=n),n}function o(t,n){let r=e.value.find(e=>e.requestId===t);r&&(r.workspace=n)}function s(e){t.value=e}return{sessions:e,currentId:t,current:n,sendQuery:r,pollStatus:i,waitForDone:a,updateWorkspace:o,setCurrent:s}}),mm={class:`chat-view`},hm={class:`sidebar`},gm={class:`session-list`},_m=[`onClick`],vm={class:`s-query`},ym={class:`main`},bm={key:0,class:`empty`},xm={class:`user-msg`},Sm={class:`status-bar`},Cm={key:0,class:`badge pending`},wm={key:1,class:`badge running`},Tm={key:2,class:`badge done`},Em={key:3,class:`badge failed`},Dm={key:4,class:`route-path`},Om={key:0,class:`ws-meta`},km={key:1,class:`assistant-msg`},Am={key:2,class:`ws-preview`},jm={key:0,class:`brief-block`},Mm={class:`tags`},Nm={key:1,class:`plan-list`},Pm={class:`step-id`},Fm={key:0,class:`deps`},Im={key:2,class:`progress-list`},Lm={key:3,class:`error-msg`},Rm=[`disabled`],zm=[`disabled`],Bm=Qn({__name:`ChatView`,setup(e){let t=pm(),n=R(``),r=R(!1),i=G(()=>t.current()),a=G(()=>i.value?.status?.status??`pending`),o=G(()=>i.value?.workspace),s=G(()=>i.value?.status?.response??null),c=null;function l(e){c?.close(),c=Ep(e),c.subscribe({onWorkspace(n){t.updateWorkspace(e,n)},onStatus(n){t.pollStatus(e)},onError(n){let r=t.sessions.find(t=>t.requestId===e);r&&(r.error=n)},onDone(){t.pollStatus(e)}})}Hn(()=>t.currentId,e=>{e&&(l(e),i.value?.status?.status===`done`&&t.pollStatus(e))},{immediate:!0});async function u(){if(!n.value.trim()||r.value)return;let e=n.value.trim();n.value=``,r.value=!0;try{l((await t.sendQuery(e)).requestId)}finally{r.value=!1}}return(e,i)=>(V(),H(`div`,mm,[U(`aside`,hm,[i[1]||=U(`h3`,null,`会话记录`,-1),U(`ul`,gm,[(V(!0),H(B,null,Dr(z(t).sessions,e=>(V(),H(`li`,{key:e.requestId,class:pe([`session-item`,{active:e.requestId===z(t).currentId}]),onClick:n=>z(t).setCurrent(e.requestId)},[U(`span`,vm,N(e.query.slice(0,28))+N(e.query.length>28?`…`:``),1),U(`span`,{class:pe([`s-status`,e.status?.status??`pending`])},N(e.status?.status??`pending`),3)],10,_m))),128))])]),U(`main`,ym,[z(t).current()?(V(),H(B,{key:1},[U(`div`,xm,[i[3]||=U(`span`,{class:`role-label`},`你`,-1),U(`p`,null,N(z(t).current().query),1)]),U(`div`,Sm,[a.value===`pending`?(V(),H(`span`,Cm,`⏳ 排队中…`)):a.value===`running`?(V(),H(`span`,wm,` 🔄 协作中 (`+N(o.value?.meta.round??0)+`/`+N(o.value?.meta.rounds_cap??6)+`) `,1)):a.value===`done`?(V(),H(`span`,Tm,`✅ 完成`)):a.value===`failed`?(V(),H(`span`,Em,`❌ 失败`)):W(``,!0),o.value?(V(),H(`span`,Dm,` 路由:`+N(z(t).current().status?.route?.join(` → `)??`—`),1)):W(``,!0)]),o.value?(V(),H(`div`,Om,[U(`span`,null,`tokens: `+N(o.value.meta.api_input_tokens)+` in / `+N(o.value.meta.api_output_tokens)+` out`,1),U(`span`,null,`延迟: `+N(z(t).current().status?.latency_ms?.toFixed(0))+` ms`,1),U(`span`,null,`模型: `+N(z(t).current().status?.model_used??`—`),1)])):W(``,!0),s.value?(V(),H(`div`,km,[i[4]||=U(`span`,{class:`role-label`},`系统`,-1),U(`pre`,null,N(s.value),1)])):W(``,!0),o.value?(V(),H(`details`,Am,[i[6]||=U(`summary`,null,`📄 交流文本预览`,-1),o.value.brief?(V(),H(`div`,jm,[i[5]||=U(`strong`,null,`Brief:`,-1),aa(` `+N(o.value.brief.goal)+` `,1),U(`span`,Mm,N(o.value.brief.tags.join(`, `)),1)])):W(``,!0),o.value.plan?.length?(V(),H(`ul`,Nm,[(V(!0),H(B,null,Dr(o.value.plan,e=>(V(),H(`li`,{key:e.id,class:pe(e.status)},[U(`span`,Pm,N(e.id),1),U(`span`,null,N(e.task),1),e.deps.length?(V(),H(`span`,Fm,`←`+N(e.deps.join(`,`)),1)):W(``,!0)],2))),128))])):W(``,!0),o.value.progress?.length?(V(),H(`ul`,Im,[(V(!0),H(B,null,Dr(o.value.progress,e=>(V(),H(`li`,{key:e.step,class:pe(e.status)},N(e.step)+`: `+N(e.status),3))),128))])):W(``,!0)])):W(``,!0),z(t).current().error?(V(),H(`div`,Lm,N(z(t).current().error),1)):W(``,!0)],64)):(V(),H(`div`,bm,[...i[2]||=[U(`p`,null,`输入问题,开启端云协同协作之旅。`,-1),U(`p`,{class:`hint`},`结果通过 SSE 实时推送,可切换「协作」页面查看交流文本可视化。`,-1)]])),U(`form`,{class:`input-bar`,onSubmit:Fo(u,[`prevent`])},[Fn(U(`input`,{"onUpdate:modelValue":i[0]||=e=>n.value=e,placeholder:`输入你的问题…`,disabled:r.value,autofocus:``},null,8,Rm),[[To,n.value]]),U(`button`,{type:`submit`,disabled:r.value||!n.value.trim()},N(r.value?`发送中…`:`发送`),9,zm)],32)])]))}}),Vm=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Hm=Vm(Bm,[[`__scopeId`,`data-v-d79f05ea`]]),Um={class:`agent-view`},Wm={class:`sess-panel`},Gm={class:`sess-list`},Km=[`onClick`],qm={class:`sess-title`},Jm={class:`sess-meta`},Ym=[`onClick`],Xm=[`onClick`],Zm={key:0,class:`sess-empty`},Qm={class:`chat-col`},$m={key:0,class:`hero`},eh={class:`hero-tips`},th=[`onClick`],nh={class:`stream-inner`},rh={key:0,class:`row user`},ih={class:`bubble-user`},ah={key:1,class:`row assistant`},oh={class:`bubble-ai`},sh=[`open`],ch={class:`fold-body`},lh={key:0,class:`mini-phase`},uh={key:2,class:`mini-row`},dh={class:`mini-args`},fh={key:4,class:`mini-row delta-row`},ph={key:1,class:`tool-summary`},mh={key:2,class:`approval-card`},hh={class:`ap-head`},gh={class:`ap-args`},_h={class:`ap-actions`},vh=[`onClick`],yh=[`onClick`],bh={key:4,class:`ai-stream`},xh={key:5,class:`ai-text`},Sh={key:6,class:`ai-error`},Ch={key:7,class:`ai-running`},wh={class:`composer-wrap`},Th={class:`composer`},Eh={class:`composer-bar`},Dh=[`value`],Oh={class:`chip toggle-chip`,title:`开启后智能体可执行 shell 命令`},kh={key:0,class:`composer-err`},Ah={class:`composer-main`},jh=[`placeholder`,`disabled`,`onKeydown`],Mh=[`disabled`],Nh={class:`modal`},Ph={class:`crumb`},Fh={class:`dir-list`},Ih=[`onClick`],Lh={key:1,class:`dir-item empty`},Rh={class:`path-row`},zh={class:`create-toggle`},Bh={key:0,class:`recent-row`},Vh=[`title`,`onClick`],Hh={key:1,class:`picker-msg`},Uh={class:`modal-actions`},Wh=Vm(Qn({__name:`AgentView`,setup(e){let t=[`浏览这个项目,总结目录结构和入口文件`,`运行测试,修复失败的用例,再跑一遍确认`,`给 README 补充安装与运行说明`],n=R([]),r=R(``),i=R([]),a=R(``),o=R(!1),s=R(``),c=R(``),l=R(``),u=R(``),d=R(!1),f=R(`dangerous`),p=R([]),m=R([]),h=R(!1),g=R(``),_=R({ok:!0,path:``,parent:``,dirs:[]}),v=R(``),y=R(!1),b=R(null),x=null,S=G(()=>m.value.filter(e=>e.enabled&&e.backend!==`mock`).sort((e,t)=>(e.backend===`llama_server`?-1:0)-(t.backend===`llama_server`?-1:0))),C=G(()=>!!a.value.trim()&&!!l.value);function w(e){if(!e)return``;let t=e.replace(/[\\/]+$/,``).split(/[\\/]/);return t[t.length-1]||e}function ee(e,t){if(!e)return t;let n=e.includes(`\\`)?`\\`:`/`;return e.endsWith(`\\`)||e.endsWith(`/`)?e+t:e+n+t}function te(e){if(!e)return``;let t=new Date(e*1e3);return`${t.getMonth()+1}/${t.getDate()} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function ne(e,t){return String(e??``).slice(0,t)}function re(e){let t=JSON.stringify(e)??``;return t.length>80?t.slice(0,80)+`…`:t}function ie(e){let t=e.model?` · ${e.model}`:``;return e.phase===`plan`?`🧠 规划者 · 拆解任务${t}`:e.phase===`execute`?`🔧 执行者 · 第 ${e.handoff} 轮交接${t}`:`🔍 规划者 · 审查裁决${t}`}function T(){Sn(()=>b.value?.scrollTo({top:b.value.scrollHeight}))}async function E(){try{n.value=await Zp()}catch{n.value=[]}}function D(e){return typeof e.turns==`number`?e.turns:e.turns.length}async function O(){try{let e=await Xp(l.value,u.value);r.value=e.id,i.value=[],await E()}catch(e){c.value=e?.message||String(e)}}async function ae(e){if(!o.value){r.value=e;try{let t=await Qp(e);l.value=t.workspace||l.value,t.executor_pool_id&&(u.value=t.executor_pool_id);let n=t.turns||[];i.value=n.flatMap(e=>[{role:`user`,content:e.task},{role:`assistant`,content:e.response||``,toolCalls:e.tool_calls||0,error:e.error,requestId:e.request_id}]),T()}catch{i.value=[]}}}async function k(e){confirm(`删除该会话?`)&&(await $p(e),r.value===e&&(r.value=``,i.value=[]),E())}async function oe(e){let t=n.value.find(t=>t.id===e),r=prompt(`新的会话名称:`,t?.title||``);if(r===null)return;let i=r.trim();if(!i){alert(`名称不能为空`);return}await em(e,i),E()}async function se(){h.value=!0,g.value=``,v.value=l.value;try{_.value=await nm(``)}catch{}}async function A(e){try{let t=await nm(e);t.ok?(_.value=t,v.value=t.path):g.value=t.error||`路径不可用`}catch{g.value=`浏览失败`}}async function j(e){if(e=(e||``).trim(),!e){g.value=`请先选择或输入目录路径`;return}try{let t=await im(e,y.value);l.value=t.current,p.value=t.recent,h.value=!1}catch(e){g.value=e?.response?.data?.detail||e?.message||String(e)}}async function M(){try{await jp({agent:{allow_shell:d.value}})}catch{d.value=!d.value}}async function ce(){try{await jp({agent:{approval_policy:f.value}})}catch{}}async function le(){if(!C.value||o.value)return;let e=a.value.trim();if(c.value=``,a.value=``,o.value=!0,!r.value)try{let e=await Xp(l.value,u.value);r.value=e.id,E()}catch(t){o.value=!1,c.value=t?.message||String(t),a.value=e;return}i.value.push({role:`user`,content:e}),i.value.push({role:`assistant`,content:``,liveEvents:[]});let t=i.value[i.value.length-1];T();try{let n=await Jp(e,``,l.value,u.value,r.value);s.value=n.request_id,n.workspace&&(l.value=n.workspace),x=am(n.request_id),x.subscribe({onEvent:e=>{if(e.type!==`final`){if(e.type===`approval_request`)t.approval={id:e.id,name:e.name,arguments:e.arguments,decided:!1,allowed:!1};else if(e.type===`approval_decided`)t.approval&&t.approval.id===e.id&&(t.approval.decided=!0,t.approval.allowed=!!e.allowed);else if(e.type===`delta`){t.streamText=(t.streamText||``)+(e.text||``),T();return}else(e.type===`tool_call`||e.type===`phase`||e.type===`message`)&&(t.streamText=``);t.liveEvents.push(e),T()}},onDone:async()=>{try{let e=await tm(n.request_id);t.content=e.response||``,!t.content&&!t.error&&(t.content=`(本轮模型未返回文本内容——小模型能力有限或响应为空,可重试或换用更强的模型)`),t.toolCalls=e.tool_calls??t.liveEvents.filter(e=>e.type===`tool_call`).length,t.error=e.error||null}catch{}o.value=!1,s.value=``,E(),T()}})}catch(n){o.value=!1,t.error=n?.response?.data?.detail||n?.message||String(n),a.value=e}}async function ue(){if(s.value)try{await Yp(s.value)}catch{}}async function de(e,t){if(!(!e.approval||!e.requestId)){e.approval.decided=!0,e.approval.allowed=t;try{await qp(e.requestId,e.approval.id,t)}catch(t){e.approval.decided=!1,c.value=t?.response?.data?.detail||t?.message||String(t)}}}return pr(async()=>{E();try{let[e,t,n]=await Promise.all([Vp(),rm(),Ap()]);m.value=e.entries,l.value=t.current||``,p.value=t.recent||[],n.agent?.approval_policy&&(f.value=n.agent.approval_policy)}catch{}}),(e,s)=>(V(),H(`div`,Um,[U(`aside`,Wm,[U(`button`,{class:`new-sess`,onClick:O},`+ 新会话`),U(`div`,Gm,[(V(!0),H(B,null,Dr(n.value,e=>(V(),H(`div`,{key:e.id,class:pe([`sess-item`,{active:e.id===r.value}]),onClick:t=>ae(e.id)},[U(`div`,qm,N(e.title),1),U(`div`,Jm,[U(`span`,null,N(D(e))+` 轮`,1),s[10]||=U(`span`,null,`·`,-1),U(`span`,null,N(te(e.updated_at)),1),U(`span`,{class:`sess-rename`,title:`重命名会话`,onClick:Fo(t=>oe(e.id),[`stop`])},`✎`,8,Ym),U(`span`,{class:`sess-del`,title:`删除会话`,onClick:Fo(t=>k(e.id),[`stop`])},`✕`,8,Xm)])],10,Km))),128)),n.value.length?W(``,!0):(V(),H(`div`,Zm,`暂无会话`))])]),U(`main`,Qm,[!i.value.length&&!o.value?(V(),H(`div`,$m,[s[11]||=U(`div`,{class:`hero-logo`},`🤖`,-1),s[12]||=U(`h2`,null,`智能体`,-1),s[13]||=U(`p`,null,`选择工作目录,用一句话派活——读 / 写 / 编辑 / 搜索 / 执行命令全程可视化。`,-1),U(`div`,eh,[(V(),H(B,null,Dr(t,e=>U(`button`,{key:e,class:`tip-chip`,onClick:t=>a.value=e},N(e),9,th)),64))])])):(V(),H(`div`,{key:1,class:`stream`,ref_key:`streamEl`,ref:b},[U(`div`,nh,[(V(!0),H(B,null,Dr(i.value,(e,t)=>(V(),H(B,{key:t},[e.role===`user`?(V(),H(`div`,rh,[U(`div`,ih,N(e.content),1)])):(V(),H(`div`,ah,[U(`div`,oh,[e.liveEvents&&e.liveEvents.length?(V(),H(`details`,{key:0,class:`tool-fold`,open:o.value&&t===i.value.length-1},[U(`summary`,null,`⚙ 工具执行过程(`+N(e.liveEvents.length)+` 条事件)`,1),U(`div`,ch,[(V(!0),H(B,null,Dr(e.liveEvents,(e,t)=>(V(),H(B,{key:t},[e.type===`phase`?(V(),H(`div`,lh,N(ie(e)),1)):e.type===`message`?(V(),H(`div`,{key:1,class:pe([`mini-msg`,e.role===`planner`?`mp`:`me`])},N(e.role===`planner`?`🧠`:`🔧`)+` `+N(ne(e.content,300)),3)):e.type===`tool_call`?(V(),H(`div`,uh,[s[14]||=aa(` 🛠️ `,-1),U(`b`,null,N(e.name),1),U(`span`,dh,N(re(e.arguments)),1)])):e.type===`tool_result`?(V(),H(`div`,{key:3,class:pe([`mini-row`,e.ok?`ok`:`err`])},N(e.ok?`✓`:`✕`)+` `+N(e.name)+` · `+N(ne(e.preview,120)),3)):e.type===`delta`?(V(),H(`div`,fh,N(ne(e.text,200)),1)):W(``,!0)],64))),128))])],8,sh)):e.toolCalls?(V(),H(`div`,ph,`⚙ 执行了 `+N(e.toolCalls)+` 步工具调用`,1)):W(``,!0),e.approval&&!e.approval.decided?(V(),H(`div`,mh,[U(`div`,hh,[s[15]||=aa(`⏸ 等待审批:`,-1),U(`b`,null,N(e.approval.name),1),s[16]||=aa(` 请求执行`,-1)]),U(`pre`,gh,N(re(e.approval.arguments)),1),U(`div`,_h,[U(`button`,{class:`ap-btn reject`,onClick:t=>de(e,!1)},`拒绝`,8,vh),U(`button`,{class:`ap-btn allow`,onClick:t=>de(e,!0)},`允许一次`,8,yh)])])):e.approval&&e.approval.decided?(V(),H(`div`,{key:3,class:pe([`ap-done`,e.approval.allowed?`ok`:`no`])},N(e.approval.allowed?`✓ 已允许执行`:`✕ 已拒绝`),3)):W(``,!0),e.streamText?(V(),H(`div`,bh,[aa(N(e.streamText),1),s[17]||=U(`span`,{class:`cursor`},null,-1)])):W(``,!0),e.content?(V(),H(`div`,xh,N(e.content),1)):e.error?(V(),H(`div`,Sh,`❌ `+N(e.error),1)):o.value&&t===i.value.length-1?(V(),H(`div`,Ch,[...s[18]||=[U(`span`,{class:`spinner`},null,-1),aa(` 正在思考与执行… `,-1)]])):W(``,!0)])]))],64))),128))])],512)),U(`div`,wh,[U(`div`,Th,[U(`div`,Eh,[U(`button`,{class:`chip`,onClick:se,title:`选择工作目录`},` 📁 `+N(w(l.value)||`选择目录`),1),Fn(U(`select`,{"onUpdate:modelValue":s[0]||=e=>u.value=e,class:`chip select-chip`,title:`两级模式:大模型拆解/审查,本地小模型执行`},[s[19]||=U(`option`,{value:``},`单模型`,-1),(V(!0),H(B,null,Dr(S.value,e=>(V(),H(`option`,{key:e.id,value:e.id},` 🔧 `+N(e.name),9,Dh))),128))],512),[[Oo,u.value]]),U(`label`,Oh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":s[1]||=e=>d.value=e,onChange:M},null,544),[[Eo,d.value]]),s[20]||=aa(` 命令 `,-1)]),Fn(U(`select`,{"onUpdate:modelValue":s[2]||=e=>f.value=e,class:`chip select-chip`,title:`审批策略:哪些操作需要你确认`,onChange:ce},[...s[21]||=[U(`option`,{value:`off`},`审批:关`,-1),U(`option`,{value:`dangerous`},`审批:写与命令`,-1),U(`option`,{value:`all`},`审批:全部操作`,-1)]],544),[[Oo,f.value]]),c.value?(V(),H(`span`,kh,N(c.value),1)):W(``,!0)]),U(`div`,Ah,[Fn(U(`textarea`,{"onUpdate:modelValue":s[3]||=e=>a.value=e,class:`composer-input`,rows:`1`,placeholder:l.value?`给智能体派活…(Enter 发送,Shift+Enter 换行)`:`先点击左上角 📁 选择工作目录`,disabled:o.value,onKeydown:Lo(Fo(le,[`exact`,`prevent`]),[`enter`])},null,40,jh),[[To,a.value]]),o.value?(V(),H(`button`,{key:0,class:`send-btn stop`,onClick:ue,title:`停止`},`■`)):(V(),H(`button`,{key:1,class:`send-btn`,disabled:!C.value,onClick:le,title:`发送(Enter)`},`↑`,8,Mh))])])])]),h.value?(V(),H(`div`,{key:0,class:`modal-mask`,onClick:s[9]||=Fo(e=>h.value=!1,[`self`])},[U(`div`,Nh,[s[24]||=U(`div`,{class:`modal-title`},`选择工作目录`,-1),U(`div`,Ph,N(_.value.path||`(此电脑 — 点击选择盘符)`),1),U(`div`,Fh,[_.value.parent?(V(),H(`div`,{key:0,class:`dir-item up`,onClick:s[4]||=e=>A(_.value.parent)},` ↰ 上级:`+N(_.value.parent),1)):W(``,!0),(V(!0),H(B,null,Dr(_.value.dirs,e=>(V(),H(`div`,{key:e,class:`dir-item`,onClick:t=>A(ee(_.value.path,e))},` 📂 `+N(e),9,Ih))),128)),_.value.dirs.length?W(``,!0):(V(),H(`div`,Lh,`(无子目录——可直接点下方"打开此目录")`))]),U(`div`,Rh,[Fn(U(`input`,{"onUpdate:modelValue":s[5]||=e=>v.value=e,placeholder:`或直接输入绝对路径,如 E:\\my-project`},null,512),[[To,v.value]]),U(`label`,zh,[Fn(U(`input`,{type:`checkbox`,"onUpdate:modelValue":s[6]||=e=>y.value=e},null,512),[[Eo,y.value]]),s[22]||=aa(` 不存在则新建 `,-1)])]),p.value.length?(V(),H(`div`,Bh,[s[23]||=U(`span`,{class:`recent-label`},`最近:`,-1),(V(!0),H(B,null,Dr(p.value,e=>(V(),H(`button`,{key:e,class:`recent-chip`,title:e,onClick:t=>j(e)},N(w(e)),9,Vh))),128))])):W(``,!0),g.value?(V(),H(`div`,Hh,N(g.value),1)):W(``,!0),U(`div`,Uh,[U(`button`,{class:`btn-primary`,onClick:s[7]||=e=>j(v.value.trim()||_.value.path)},` 打开此目录 `),U(`button`,{class:`btn-secondary`,onClick:s[8]||=e=>h.value=!1},`取消`)])])])):W(``,!0)]))}}),[[`__scopeId`,`data-v-dc3e64d8`]]),Gh=`modulepreload`,Kh=function(e){return`/static/`+e},qh={},Jh=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Kh(t,n),t=s(t),t in qh)return;qh[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Gh,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Yh=kl({history:Yc(`/`),routes:[{path:`/`,redirect:`/chat`},{path:`/chat`,name:`chat`,component:Hm},{path:`/collaboration`,name:`collaboration`,component:()=>Jh(()=>import(`./CollaborationView-DkakRBog.js`),__vite__mapDeps([0,1]))},{path:`/agent`,name:`agent`,component:Wh},{path:`/review`,name:`review`,component:()=>Jh(()=>import(`./ReviewView-BWMKu4Ns.js`),__vite__mapDeps([2,3]))},{path:`/metrics`,name:`metrics`,component:()=>Jh(()=>import(`./MetricsView-CGO4DxSK.js`),__vite__mapDeps([4,5]))},{path:`/proxy`,name:`proxy`,component:()=>Jh(()=>import(`./ProxyView-BLQA9Gut.js`),__vite__mapDeps([6,7]))},{path:`/settings`,name:`settings`,component:()=>Jh(()=>import(`./SettingsView-DDuLU_To.js`),__vite__mapDeps([8,9]))}]}),Xh=Vo(Os);Xh.use(ss()),Xh.use(Yh),Xh.mount(`#app`);export{Eo as A,Qn as B,Op as C,Hp as D,jp as E,G as F,Hn as G,_r as H,U as I,R as J,Fn as K,W as L,To as M,Fo as N,Bp as O,B as P,N as Q,H as R,Rp as S,um as T,V as U,pr as V,Dr as W,pe as X,z as Y,ce as Z,Dp as _,zp as a,Wp as b,kp as c,om as d,dm as f,cm as g,Kp as h,Up as i,Oo as j,Ep as k,Vp as l,Np as m,pm as n,Ap as o,Ip as p,Lt as q,lm as r,Fp as s,Vm as t,sm as u,Pp as v,Gp as w,Lp as x,Mp as y,aa as z}; \ No newline at end of file diff --git a/gateway/static/index.html b/gateway/static/index.html index a0e6e6f..571893a 100644 --- a/gateway/static/index.html +++ b/gateway/static/index.html @@ -5,7 +5,7 @@ 端云协同编程智能体系统 - +