From af991a7bda3745fb7f78a4c259b9079c411bfb1f Mon Sep 17 00:00:00 2001 From: KimiSwitch Dev Date: Wed, 8 Jul 2026 08:53:26 +0800 Subject: [PATCH] feat: implement Pi Switch i18n UI and agent config switch --- .gitignore | 2 + Snipaste_2026-07-07_16-28-01.png | Bin 0 -> 73971 bytes Snipaste_2026-07-07_16-28-30.png | Bin 0 -> 61852 bytes Snipaste_2026-07-07_17-13-14.png | Bin 0 -> 37116 bytes Snipaste_2026-07-07_17-39-23.png | Bin 0 -> 62241 bytes Snipaste_2026-07-07_17-40-54.png | Bin 0 -> 57545 bytes Snipaste_2026-07-07_23-03-39.png | Bin 0 -> 13588 bytes .../plans/2026-07-07-i18n-ui-agent-switch.md | 270 ++++++ index.html | 4 +- package-lock.json | 4 +- package.json | 2 +- public/pi.svg | 10 + scripts/generate-icons.py | 82 ++ src-tauri/Cargo.lock | 841 +++++++++++++++--- src-tauri/Cargo.toml | 10 +- src-tauri/build.rs | 3 + src-tauri/capabilities/default.json | 12 + src-tauri/icons/128x128.png | Bin 0 -> 1640 bytes src-tauri/icons/128x128@2x.png | Bin 0 -> 3172 bytes src-tauri/icons/32x32.png | Bin 0 -> 484 bytes src-tauri/icons/64x64.png | Bin 0 -> 1245 bytes src-tauri/icons/Square107x107Logo.png | Bin 0 -> 1968 bytes src-tauri/icons/Square142x142Logo.png | Bin 0 -> 2438 bytes src-tauri/icons/Square150x150Logo.png | Bin 0 -> 2520 bytes src-tauri/icons/Square284x284Logo.png | Bin 0 -> 4631 bytes src-tauri/icons/Square30x30Logo.png | Bin 0 -> 654 bytes src-tauri/icons/Square310x310Logo.png | Bin 0 -> 4995 bytes src-tauri/icons/Square44x44Logo.png | Bin 0 -> 874 bytes src-tauri/icons/Square71x71Logo.png | Bin 0 -> 1374 bytes src-tauri/icons/Square89x89Logo.png | Bin 0 -> 1575 bytes src-tauri/icons/StoreLogo.png | Bin 0 -> 980 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 0 -> 993 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 2726 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 1180 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 0 -> 987 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 1960 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1126 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 1788 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 3351 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 2219 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 2668 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 5202 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 3259 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 3302 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 7024 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 4172 bytes .../android/values/ic_launcher_background.xml | 4 + src-tauri/icons/icon-source.png | Bin 0 -> 15779 bytes src-tauri/icons/icon.icns | Bin 0 -> 45745 bytes src-tauri/icons/icon.ico | Bin 0 -> 506 bytes src-tauri/icons/icon.png | Bin 0 -> 1592 bytes src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 0 -> 478 bytes src-tauri/icons/ios/AppIcon-20x20@2x-1.png | Bin 0 -> 810 bytes src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 0 -> 810 bytes src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 0 -> 1147 bytes src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 0 -> 634 bytes src-tauri/icons/ios/AppIcon-29x29@2x-1.png | Bin 0 -> 1068 bytes src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 0 -> 1068 bytes src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 0 -> 1586 bytes src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 0 -> 810 bytes src-tauri/icons/ios/AppIcon-40x40@2x-1.png | Bin 0 -> 1432 bytes src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 0 -> 1432 bytes src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 0 -> 2053 bytes src-tauri/icons/ios/AppIcon-512@2x.png | Bin 0 -> 14000 bytes src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 0 -> 2053 bytes src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 0 -> 2899 bytes src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 0 -> 1409 bytes src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 0 -> 2581 bytes src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png | Bin 0 -> 2764 bytes src-tauri/src/commands.rs | 277 ++++-- src-tauri/src/kimi_code_io.rs | 503 +++++++++++ src-tauri/src/lib.rs | 21 +- src-tauri/src/models.rs | 173 +++- src-tauri/src/pi_io.rs | 358 ++++++++ src-tauri/tauri.conf.json | 22 +- src/App.tsx | 471 +++++++++- src/components/ProviderEdit.tsx | 662 ++++++++++++++ src/components/ProviderList.tsx | 194 ++++ src/hooks/useConfig.ts | 80 ++ src/i18n/en.ts | 111 +++ src/i18n/index.tsx | 82 ++ src/i18n/zh.ts | 111 +++ src/index.css | 33 + src/main.tsx | 45 +- src/types/index.ts | 57 ++ 86 files changed, 4214 insertions(+), 235 deletions(-) create mode 100644 Snipaste_2026-07-07_16-28-01.png create mode 100644 Snipaste_2026-07-07_16-28-30.png create mode 100644 Snipaste_2026-07-07_17-13-14.png create mode 100644 Snipaste_2026-07-07_17-39-23.png create mode 100644 Snipaste_2026-07-07_17-40-54.png create mode 100644 Snipaste_2026-07-07_23-03-39.png create mode 100644 docs/superpowers/plans/2026-07-07-i18n-ui-agent-switch.md create mode 100644 public/pi.svg create mode 100644 scripts/generate-icons.py create mode 100644 src-tauri/build.rs create mode 100644 src-tauri/capabilities/default.json create mode 100644 src-tauri/icons/128x128.png create mode 100644 src-tauri/icons/128x128@2x.png create mode 100644 src-tauri/icons/32x32.png create mode 100644 src-tauri/icons/64x64.png create mode 100644 src-tauri/icons/Square107x107Logo.png create mode 100644 src-tauri/icons/Square142x142Logo.png create mode 100644 src-tauri/icons/Square150x150Logo.png create mode 100644 src-tauri/icons/Square284x284Logo.png create mode 100644 src-tauri/icons/Square30x30Logo.png create mode 100644 src-tauri/icons/Square310x310Logo.png create mode 100644 src-tauri/icons/Square44x44Logo.png create mode 100644 src-tauri/icons/Square71x71Logo.png create mode 100644 src-tauri/icons/Square89x89Logo.png create mode 100644 src-tauri/icons/StoreLogo.png create mode 100644 src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/icons/android/values/ic_launcher_background.xml create mode 100644 src-tauri/icons/icon-source.png create mode 100644 src-tauri/icons/icon.icns create mode 100644 src-tauri/icons/icon.ico create mode 100644 src-tauri/icons/icon.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-20x20@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-29x29@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x-1.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-40x40@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-512@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-60x60@3x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@1x.png create mode 100644 src-tauri/icons/ios/AppIcon-76x76@2x.png create mode 100644 src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png create mode 100644 src-tauri/src/kimi_code_io.rs create mode 100644 src-tauri/src/pi_io.rs create mode 100644 src/components/ProviderEdit.tsx create mode 100644 src/components/ProviderList.tsx create mode 100644 src/hooks/useConfig.ts create mode 100644 src/i18n/en.ts create mode 100644 src/i18n/index.tsx create mode 100644 src/i18n/zh.ts create mode 100644 src/types/index.ts diff --git a/.gitignore b/.gitignore index a8ab969..0aa6617 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ node_modules/ dist/ src-tauri/target/ +src-tauri/gen/ +src-tauri/wix314-binaries/ .vscode/ *.log .env* diff --git a/Snipaste_2026-07-07_16-28-01.png b/Snipaste_2026-07-07_16-28-01.png new file mode 100644 index 0000000000000000000000000000000000000000..80d2acf9c4627cf34e7e37b71a1669a37e95b127 GIT binary patch literal 73971 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%0DkP|b{ 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%0Afe z&9IS)W6@L4yr>!;E`1jp9}_cWh4`l`#)8Sp^vCD^NCP!0TrA-v{GzuIa3jHc}*4-Wc5Tga(24?K?%dhc@K4=HTV zf8QIyaFpG=HXO{-yL?5Bef&+sdZO-wWy^_~=H zs#gbw?M#t0oCj*J+VC2$XPKRh2M^SmGb&iPtQV+I#Z3+34)q^mrQ<%2!y1h?AtGmB z0NWRgvQ~3rGHNP&UR@kJuH6s6Dzp0VA!E|hNJjSWpLe-5*peaO<8y;+L$xg`eCZb^ z#%XKRxaQL&5fCj_y}eeZEE@oCd%KI{h9#=#fy$HUYp~@|YgV3I(RgFNVq36Jg|`*K5Nq=9+G+ zh_qgSa&;#fE|O*KWgTboHG56DRUz|LQd+eymY#0#CCxj=oV^1KThozGVhroDy(ZYH zGqCW$uVNk;Y9*DXMn;687|BVD0zMVrzgPbF5wRp-I=~TH{R))u8=_fU{q5Vg2Cqw) z-(Yv*(2O<7;W}HQ)%E2)h||WXB>1toEQT1PgWJMDBp^P=))tL@bR-eEQm>@A*dilFW6m75zopitz*r=u3%Z*Y$L32Qzr zGBF?Sd2Wyr8_f-Xrc*5~ZjjMwPyfJ{ba>t33@x{!nE$}~7LlW=SdL=$Tn+09|IN~e z@MZ-V@`IWfBqNj6W7W;iU0ztYxiR)+;SSC_Z*t#^C36Kzlk++C(`}J^$7z=%{5}nQ zH9tz-)@+6AUrz_IlH4qd2nhi7p@@0_h+x(>3p#hxZhNSyE1b@Clr5G^ z7xrnsJjeJ_iGQ8aWqG1wwjF6q(Ek#Q%fiw3t(slU*7*rg24I1+2*5;ehKumD+Bm+Y zYd1)U{W!;5_9_DuE`EE$>wM~6cdmde@rjkWh2I&!!q6>icOA%Wfvjp#{|ClWtxkh} zXaVtey|^B4Z!h?WLv_rP+&YB!#5^(`FMs#Nk1O~U{rq! zujOi=hNy6O@B-JsihSzkw=HuecV=~iriv&0fXxAHKgpu&9Vr1ehf4FwXGu?qt_7;q zDzUIMTWux>(N{<9*&`!^WDVpfR6?oypM|%?7XZeT%Z*-|Zg~LydMR)pFwr9EsIhB! zYwTWptn#iY-e{d)TWzWzBE587Xq~em+IiOe%jD17>yQS}tnkjmc7o29fXMVtU_uXW zH%Oy+RssQoadFy(WoU4NG8uq;i{UceJS+PA*O96W@=2>?GFkcW;uJ2 zZ|=LG!bXh~DU%#MiylJSavVY+?jr~F(&ASHb(@? z^~YA@eSu4}K(Yt3M72OcuUcUHa?`lU)v^7c+MT)Jro)dVVEK$^(dmv}?t4?o4S+~m z{J`aS%qM($IZSjoJe$QPWu!d&!fwy*gd0)({i)uZ6QvNa~hkhPtVIZo`UdtfChssyPOt|5vQGE!7dq1UXy&d zlx4)1&Ms>GK#}_d=-5AB5D2@WLgkNgR@|;fqr`vz8uISWmJfFt-m+CS@!R}y5zu%Y z+KIt-Zb>We^qpC|?n_`GpPXl`(%D(Cu-26G#k`(y`Gjj`rrWzy4!UGz{sGr$_CR{pGf^1Slx%Sf^DUDS%H7c&?P^&f-3NsoF9q3Vvnb-P1* zVPn|fp<1^nC2dEzeVInsT(mI5bhOw(9lj;xyt&XRgcX z0&~tz#NwKs_j!8!Kz9@lPMO9Ch30t{1yee{hHtHHv!_OH3HRL9kpTtH&?riJO_mzG z0r&iU4}sML9a7pG6B!p zB99!El%%YRoi=*g>VytISc7Y9X@SQEQ)$H)!0~j%8l2Z?79xtx6lW$Z3QLIqZ9A8^ zggoobH({e{g$`P&`~kvm^@_Eu4FadvYz}*%c(4)u2Bg=GFBrOY#Vt33o`#w}c7#l zZZD0unAl9+t$bR{?Cu`vZA@c3yUX(yvW!}~4)%E|)jL{m)N?iq-idCi)e)7i^K0cS z)zLccaU{_TO?dhU6g|4!bK5Z={LQVTq@v40;Ao9x0{kJ$JtwF9wzNN}0nr@TSZxK3 zXCL9$u7iOeWMgWZssy!At8CM8`8r`h6fWXuqJ6OGJ)J3`#{-$3ha zM?qCq!1AP7V%Z?=Jol{EPAgE%KKB$#Tf6c`ckQ<02Pw80u(rO&4FWujyrd@zJN)Im zUZS-rfnDp<3XA2qT0`HvsWTm}{2icIs*SD9Lnx@d` zu&V*)4|Mi1KGU%teOC+$O~gb&V4fnc)!+@JS2%h{ZP^b;BunZn2?hzlBHla_3CJHa ze-u}SBWTn^>@1cnIE@AVYSsV2g-_;y1i)W8>=eLY2Ly?B-KSt&oGS5Y=h1H~Z@4oH z{{sDNYa#RUK`Dr_UX^_{jr|&fyAoN~x@J9taMCO73(9jgLXe0D*4pZ3pj*s0ePc@p z_)e3d^3Ry*D>dYtLe1k}HyHR&c$8Ceyrh-A8ed9WjAIZMSXd`kJUtI^OiN!ZLH(XW zualJ2CQ~-x=2hgDs`E$xZu!Ca1hJJ~Wj{bUirrviZE~JzF4!3$j04&siU!<q!m7G6+*KRQ!tJg;o{qn>e{PnsS+feu$;@a{+Lm9fiXammT{bI+lQ&K z+az>Il`^((L}>%Gf^mhv8BM9nxoXJHt<2hq;cbw(DIT#$|DdV&;X`5^5%8NQRuzn! zYEx)GG%Xs5SNP!>AWPn(Ha$=*=j>Joppy)t%hRk>KUPwo?{vA# z4EF<|B+DQ6?DEAY3sDJWa(X$AJJ@n_8_MyUJ@mF-S-?=JVuw7fz_x>pZ)FzDo--QK!wmwbw|IvM>Bbt7;?~;IP2a<`K7E z8t@_|!hT(P#i&~A{**q(!Az&>0R+OSjg+qY+%Fg>3rU{T&PBcNFGg82szve&gmjFR zzAR8)&7VG|&X}$Oz)id)V~hj0-f{g}=g^tqyk6`l7TTRX$L(XDpCkzw z9VjrKyo@r=Zulno{Jf!2)39=~5WJ+3eLxglI{R9C{#hMPUxV@zpK1v`vvJ;iTSE{i zA#kF;e62}k^lG195C8JFxkIAx#Q4>64-x%F;6z2@kl8@8YLU@T)wbS zuu#w4e5?cp#aQWaa(1sXIZLE|nc3p>>Uj2Hv2XN%Btf(Y{Q6a~-89mnb`fIsP;O9; zdVlmCd-dIL9iQ{Vs%^-~<8mKsY@G9LvT-KL`jpVX-*)||Dd$1k=`$XH(T=y~U0@bg zfQRm*=XC>Ho`MPeIfCR0XH(>u<$uXMiRP=2B^-Z3u^t%6$WW}DJNN5ZnjujT>oWx; zKhA;?dor@e&xK-Pb906ygb~M-qX)TJY;QH${M%{y2c{hVdB{|^9tqE?HCIosNnVsf z^sct-mOmrI_B~nRs>y2h0ud)mUu!u%o#j~tT%y5=ug3?~#az91xtQx6oFt`TEL3*@ zL}MYbk=@4|>6w_Wg3V}l{=M2S;T?M0wAV3jcla*`99yUkk7C0bgg|g_x~|itSJ6G` zi#=20=6o0wzWN1C%v)x;8RW`L?0Q&%Vf%#C-RE2(#OSEQwAdCK=eX32=;AcNbZKY& z%r(4GH-+828ZE3Sy*TUiA=TnArTi6|#sU%0pcC zEa4SHGz=kLWQ}aA;w}@*{OoyJ8@sQ~71Ig6BhRq=o>eIbOqrhLn@c=frdv`-_1NWO zHz2PxqEg=JAAJ?} zflNI3ZhX3l1b+=jultaN=NaLYPXy^8GewAeR{AEtKyg7YhG^E^s~^3wR=gjdu0o&w zh*{XMXCuZPj4L)92%eKRxoI3q@J+8|vV4 z^=XS}no9Bzrb3fEe@n-n-VKr7J6yT(_tbvvbEkxq38;6Q(|g$JqAia@}*AELyF-5J}+*a}qxP5^f7fJ7Fv;dmSz1&`vYM*l!p zl6=(%YM!;5Sj-H5@v0RHS*90?ys1^E{})7VR?lUr_B%aos>&QVsA*;|Bc)A^Jjz8w6wq01$5SWZ=Ij4wzcjWXUaEol)+;NUu8M zs+%5gTEe6Nxg0o>ssu0-f$ifXad4!oK$a_${om{)oweDD=8IE*P}BrF00r%=T`Eog z)z^U&M0j7+`t}kK1cFKV64zeaA*2E)a%4TCcjZyTpVI$?yo~QnmFvut1E{ziYf~Up z(J%i&d5vhPC|^>yvn=e6RwHczQue-x+iN~{hkT%V?AKz`#5#os0Cx4dgP|lk^s&Tc ze*j1tTK~vA>FEb(x6+Qa5n0iatd z8;BFdyH~GUirhXy>9lzL7a8XV#LlU3gWG|Zkkw6v%bWTnzSoW4dbYL?KyCpaI(TE# zald{yOb7600NeZk@O~hFr8RXQ3c=v%HyuMUolZr~ufn*)G1^_N5 zxYgeVfoSfeo${tO=$6_7`Cp^T?GwbccuQ9K`Hw@zkjTw9nzv>D*xj*YkGiTC%c9P_ zzHS^!OWU*O%2$qy%y8zznYewpe$=8{`p9}$*DtB;@}V>!7bs`Q=;-+P<-Z_x$04Ba zC-fmaTmk6aO7tp_<^38w_vg14e_Z~jf0x}v$HQm-D18H-5{L~n`KOqONUtmil{qsKv z_UQjKu;BkVN}>9TNAXS@Ajk+vE0%4pjbt|VT%SK^Q41*4Bdo<4L0@m)9HVfp@cdSE zG>6^$Wo`rqc9N+;15{>}` z>Vyh@k}(s}jFzGX5aP8%hZJGJX(!?pN%xKspB9jM#~BLMYn&G9P^J3H!HVcTw^fj37mR1FLi(t_dC-T++>kgLAEZEXp+TkTs1;0jI-PobVTkiJ23$dVOfZ^0OG=EsrAUVEFg z(@;`?oD#bR7(QW+{HYC)zp6A_%eV5Fr#ufBGR-j>Vf5OHjhXMIb>gCRd^c8#)X~VP z)=uA%S5JLTnr-Pn-?3cP+u}OKmGv;%4$n!v-u9!`%&him@(2&i+dF513-ME>I9!}% z2sT}gK5(Zv{=TaLF%hbrBV{XXb*R#t9&0~2pG zZ`pkqPnpzMxRcI(_$mA8x}R^1MvmXeh)wKyrXczkjRCWnFE{$Ck+;71sCHD;fl2P61W6_hS zC9%v~<=#t=?l!oeyX*kpCVi2f?(XfK zot-TvlNkURdI6Gzyj3QB*38FWtf6s{k}~}^nhImAM3iD{lL~GO?CB7RwoOlQ!oitYo;e{u=%{o5e};%3TR|%In_E^_S2LOnQ}_|nv)-%& zVxajn)}U3fukA7x1z(pgY}tQ2`ukHdDIz_o;H!^X)ReII5YBYa_cPjT$9(jtX%lg! zR~M9EwL6gS`r6$!NOOB=TsMlUC2nMmG1ZNidAg^5>;0%4O<%KlRZq7a7bUsJ) zZ$rNKdvCey+&Gmpd;0o9Fs%TaV=tp(gr3osPRNXe)WE1RqH6ZjXJ+YOZrcT` z1#a3zo96OPe3?kabOz&s959=Dx9QO0gPh^5_MAz` z#pFG94*R*!a@^TvWiJbUWGo!|`wt3V0W#Oge|_|5qw28&!eO2-7kk-CqLCX^Hv zWpbh->5XF<6;qG|yj@~e3So6{!(S3J{c%ca&)9>PArNw8x7PzX-BVoWbRiaI&m#Rj zdT5z;Rx+PT?uT~6t&?hNtpJq8Ox>}e)icm7i8v7RLm%rZP`1YUxS4TPs7_=7(E3_h z_^v29Eo!X>+u~ozFb}`ZQg|{+H$1(QFQ*P8bIGk~X>#T#N z7#Od-e=}M03NxihE$^BMV(aAsbL|cj5Qm_l(R?LbS6A1!+94g!jH{p;*9eF67nFPN z!_qtg!*=;eG!odhKM7dy5;e4a+ic-9w~2JI%V@fisDNJ7zg>dP4&>Z9Zhp^A(;Ht( z$8@D>zK+Q3k(QFOuHO8oD&=WFXwijdt92OzZje8PEXMc?Fpffq1rXpxA6qxGZ+(UK zK^v4LG(i}$dTA|50z9><9On>vI&l??p?BO?#Xda6WpZo0*euN)(fJY%^E~>z?pK@R zj4oRnV)^V5@m&$on5y+70WgATvU}r^YkjY}dWHi`B_0P)0wnfKaV!s1m>9Jn;?V8T zSx*SFBP^x-NP)v+^WEAsM;sj|+-Zy+S9;qt==bWmzkJZ+-uoMp6`0|%&m(zMHVBa< z_wkwN8@;bCY8`z$uhpx6{P<-h#Fj(zm;T>3`F-HX3r|*b8G{RMFg11s+l|MKV+V^0 z3S`qgjW0?VpWch(9fzT>P~~&VSMx))j`0HQ@t0|{)&6MLD_Sja89g$UIj>3dDnsGd z!(fU*+RWLK)rKbYdIydH0Lc9m-1$A!(H<<_QYQP*N<3T)?P$KhQ7mw1IkFp%pN$fgA|9n%WCig zJ{9b2Y#|+fvalcv8vYl_rGR^u8}Qk%YDChszcA6 z5@oo2uKxxD;zd+Ae!?CCX{?oi(RXrOo9ROF=&r$F0BQ3tB}nEoKM`}7_+S;#!9Kz_ zUFHC;?D^r?s0dcI4B&*d_`tGSWka0_#@YP_LQzwA>T-W@nPC^4!eXOLvj z!<5NuDq;cVeI9fU45)99SO(I#cdzT~fp9l-zSNS!UXwDX z90lX*4jS1$k@hFMmpZRjjc^tme>7Q9e$_XtxGffFi5d{g?p!)w3^rV7?HV)$CiHd#*1@Nb)xbD7L4k`DG=N15 zU>gQybGuEcjldIs)_frJUpt4-U;uD&OnsuY=eeh@{|DDu?&ah+(`8I9ocKB@3)Jo>_WXH#PQC_)6y5! ze*r;PK%QeMf+4=w?@^rSUH<`BQbk|?upf`8a3y_w&^%5!H}~D6PmBtb$my5dMgQLB zPI3c-8_eBiv*iPnO)%2k_w$P|0+<+4BbDIjujsb7q); zd%%2B(Tm5G2S89&hXYD?YhQRCyK>>+IFq_=&xmD4agtELSv*aCV1sBr0U4H;-m{y> z04CLmx8yS~q92?%{iS6AH&v#?y+Npn0v!kR$k*2<0vgxHU}_vz%-;9s^17=*UCz}D znyRYYlVHo7K^C8#AOS?ihA`=F#$dASVB=Y-FynL+e82z$O_thdHU_IGyd-+0&@4^I`q1SLeN-yS;F+wJ0M$^OqK$B!g5= zG2H_3b+7$rNYNK}Wa(vH5N&4iENk(%gsXn%@R3i5Y7X3?E!z@$YKs@(x;h_e**iEl zO}9VhtTZ=Qjk;7%dhqd)G0J~Wv!>9;iUMYo!m4L!feI}}0<()?u1<}ISPlsMDwvRF?)^a4_rB_Wh8#_DG zw4Re&o>Si3)qleCf|bn*GU(W6Q}cwlc*}?A zkMHf^yW1~CiMyl=3oP@4YC5ToQIj3y!sFzFi<+ll`i(`#2tYThRY07Q2Hj5rWITg&Dm8d1gp<*0 zot$$Y#C?#E(O(Y7joF($;+~w=qP=4%lh}}aH&DWRnjsz%9D7n)-0bf;^gJbK7cP%y z!R?I68~b*o-2V9oZvn8IIcv7gG1{(6l_THAs%i`oQroQ0FD)}#?fgP~qfn)`cp$Yk z{afjHF&8Uj#}VeX0uKV*qqEz9i}L3g|H(B;?vBq6yuvr2{&;>s9)49Pe&1q`DP0)@ z89`c!iz67NN8ePA)_2W7e7g8l;3c@vY~t!3rit8iWmr@xmhxLfNONu-4?w2^R0#wd zB%0Wwxp$!{FTe*^_UQH|>}+ETT{dG+Tb$GGx#^M&+L@MxBt%KE`$}zSsaRjY-H(zM zKrrh~$Gr0?IX|DiG(NbtdOOaDO_kmlg-V6tP2idUAjQVC2A+@!<~t)d(}}Q+Lg&KZ zY5wYA_D$Lu3Lrj8!hH*X_~~NULmGSoyLO{DR)r3>kACJiGYpe^@2m{(jgyAN5N;3Z zJ_#2(PA&0T%L>k_FS!iTmQ)MwCFN5!DVWnNP&u9OcKoqh_`7FuS1{$u^Q0e7yr^jl zUrGdz5mm=_)KisM6f}(zo4f-CTTEVE#LXN@tQ3+km?uoEZq$+&5(1WI^ge-e*pjD^ zF0;H!{;;PI;CA$G@>xDL2!^}@l5;)~0(m&c7o<;6bf;vKKpL*L9Aw#Pht6IjsMu_H z8CRj!TeKGL&7fDWn@!WBQ_9`A3;@VUnt%s-GHl(+_#6UxQellEUU1LA^YxQ?7wvD+ z>g#L--~voIKG7=WZp*V;qCjW2NUg9ieqHbPwAj*01#ps+R<8jr{!NvQPYeew4>J^~ zJ^Qu59rr_lgy7cEjmo>d6M^Jx#-V&!{p36Mao$z0zUC*RIS(zab|pCi>6LeWcw*)6~k|LsWyf^n{?0aJ=()OIN z@==$qyo2)g2rs8?^br<%jTEn}N!OB4l_`myc#vABYxfdn}fe{$(iOL+6FT)lB&RY4oI%z;v}(>?q`ySUcx zc=(n;5}!pyF^~n!HWB8GSu2-a&NBxDxnvUdsyM|};A)Uehk0^U8ieW?fTgWTv%cKC z`W0&}-x)JX;x3(=Cu*u}vX?w%{=z=K-b<(6*h=$sg~4V`HMdS+Mgo!?E9S66h&ypG z@EB?&n4|Q_KE^^D>38BQpWi9s=@rB|QInXfin5dJ1CWUkUg*PITjzpaXX98{qXIA# zG?P&2*J6=P$g$J#t9S=hZ`1P@nbpg*q&!6V3~a0Yt9W_r9Us9%PqF=^s=~*V_|g5k z*R9T$@q;;9^u2KvLZ{vH--rZlf5~ibmz+OH&%ze|hRqUz9eK7wdvGd{#HW*?nCL<$$8yZl*bcg!#lViyY<<^D*S*zEo47@=8+FP2`)saTqA1YT^07S&Uw`l z$ShWGA!9o%3}wU-hiuHR*Bj&E>_=|a9A!JOA(`%2-=wb^GPr>=iA%Prb(&YnducNJ ztx86`@>a*MxZ(=CNXf;PHW1h<^oPnj7g6tbrk2ZN9`%>sJFhpk{4rhEVPigO{O|#1 ziQ&q{qDA9Rsxqr>qROqJsD7o|@OuH+-Q~l&zrKIH)YU6yo!U}~+%E!fuWmJ4LT09R0@iSt<*L_Yp^JABEMXx5EnNb7#obWZ!S{ zvsK4lc9zlWh3G?^#O=%6v9YuOG3MkbNg=gyL*%kwFhO!Iq_OjM$nz9xMxKBmA1Tof>FYp4e}_A_5QJJ3ijQ5{nCDCtle;9_Ojv(s$x>P`{s> z>M6FpT#7|{$VIYZ%&y#>*9|S9aS@G+J^4%n0EkE;m6vr@&0M*q%nrMBK_RAA?e1&Cu8`iJ&djRvy-a5sDvJkuO5WwDxeVKT1COlg<3)Ef=`Fs8aLG zJ@Zfwx@v1x;_iklAT}u`wi`fR$E&Rur;^nv72Y#iS|KB($zj#1h5r#K!YtZJ z5PA0-*DK%NLHgLiyYcC)#?DfLIFBf8A(6Y(w~d2?Qxerrxt8%ZxUt5u_~0`i7c7>< zCFN@%Kml=q<;(~qt=Lpa;%PqZh*M!#Zmr^7F?P;a`73#(_cO!qGZHy~aext_7NDA= zU{_Y% z*@znMeS%C=8hXA`R?qkBfLLSwNo0I&{~=|&g{7etc|;bm3&)5W81?%D_|>%^OX|opOgDc&ll0KVOA*PUrDpZVyN;ruvY70#1@Ix6)tZ5**yLWGUTa^1{y$&xgdmY?*X?E+oe$fa4vIT{j(;QX3UOM&P;kWwia+}Vn zugu2o9M7T`Qo(kE1rv%6%{QR9D{717sBUlp(8r*s|M#roo86$-B@vTRQ9pQ>ms__< zPul;aKStxN{(}epk9ouYV!u&0O5-oEfxN*W%iD*5^jiQF4}k5iFMym!$iG>okx?`i z`}OjS_-ORWPEM!w66X9Frlh%EB@1)?al4J;w_<`v?h@fx`UJmUc9J@nDIERMdW!nw z`CI&V#v6~FY&vW`%}ToY%!k7u`|S=J7d3ThxU~7JvIk$`F=t%tDKD$`(GR{5buI3> z`KK)ON@zllZ=41{i51@O#6kLqA$JQo3+p1xCyt;8hsoNs(`>*78L{ToW~>U%g39g0IC9op85smj;xQ3 zjahNwfy0(+s$K(Efqvq=%Elf(z0xg3?4J5XWDOEo=`SdGiBw2Y6+Fq9F)RZ?lzuG}f5jH1o&fcEQ^r zP{gt`d2^<|m;K;vV!>vx$L$sBdT*i0aUw1-`;2;IIL@ zxD5wS;6|v{HP1y23b-DuN;cx+q`$5#cDpD7OPpj}VqMc3~&RQRCu z(Cy*O5T{qBkr5(o2IjB6VB6X@bLEpbJ>x7zwcee*n z@S)UQ*{8xmCTiEg@>lWl$Ru6W$VPcI((;mIJUh+R`H+3vm$23a_a1b>m zOwkHa)YNpu7p1cQq)dFEu%f%D_&`{y*`58i_tQCZ=gi!5&dmLtx$`^c8g^cZOl>8d zlm>$k#UldR?yTEzE=?@^#Q#vhpNB84f8PRCoWK>u%n-cOIIY^(78UW5+N!N7ti{&( zfl0rYLHa99k(U*-+Mm1TahmNHqTkeh&`#=BZJF0e^3q7&i=j8+2uMc)3c9#M|0Xgq zC$!5;yrU$=$3)GX>rYu2Mw?D=8|HBV&q^RekGMT8221_fS7Qb@X}^^tBNxQ80tLoQ zTwIvNl!!-P80NRcaV-mB@8TaZIZFrLA>(>$A~S#+DeY!akaQpS&5Bxmfg?0ygZK-lvB_Z?=|fL_H+sdXe&I)3F?4d z_>493unBJe_WX1gd51@Uqn*PABTbT8CKRcLV&P#j_g|wvcE^3_+do7 zF9$82RdvtWBulY+vIVGojuGhOBLFIvTIO=vc(+$h*#8hsSxIXdmNW@B+ zDOXF6fopU-NMr^(6Y9n<$B1vl82j%mPu}9ZYS~GP*0K#n1lY(w0UO;q2!71Jc)^OUd61fRyplaf>TXg7UcV$Se^4 z2$0C(kw+3#N0&y8I3MOohov5yt+$yB5E#7u<7lt8Z{?zV1iKRS>{!?!{R|{+sa&R< zu{xv(-XN6eL*BdH>l-)ph)21l<7Y1V@B+lPhWDQV`adQ=WXc02n+~C4#z~GJXS~~n zt}TG+t2wN@n6PxqQAQC6FF+XFVa4}4)b*GzK9%R5$JjrGuRkX7r9cC_ft#N*?IA&F zvbe=Dwr3fjS!1JF!brrVeYk;TAr1w}=nvRhV~-`Z%cMYADLoMB>*)VhD|-qTNfTQB z?gOZD`q!2WBvaTO5a$5J6&w?7dlUvqTNH#slQYFak0LMv1ZNLPYz*8BVFh0LZE)*T5uG^ z+-Mp>Pp)zKPAwf)9}*eFh?y|*Yf$CSCN`8WnJOxClIE|ScIWc` z0b1Udc{A-Be8Lw>-I&4uVl~<|_efsG#G=C&idp+H-<>+ym)j;p|LR_bpY{LjE9(vE zYD!uwNfiG16e?$B9pSs-oDAo-q$q_<)*w>;XP{hASeWXlqf!8W<^m{T_@*6r@ESc` hDppfH{k6Om@fEK{A5F{(8>~NDoPqne(_F(d{|4dd)UW^m literal 0 HcmV?d00001 diff --git a/Snipaste_2026-07-07_16-28-30.png b/Snipaste_2026-07-07_16-28-30.png new file mode 100644 index 0000000000000000000000000000000000000000..1334f56a1a236224651fc0184692b08fa458aacc GIT binary patch literal 61852 zcmbrlby!vH9yYk>4bmM_N{MtygCHrL(jYBT(%q7Rba%Hj(x8-dOUI_WHXXA#?|aTS z|I9UWT|?|x_0;|A`w3N2kitMCMFRi;Lq__Y3IHHx0RVgo1Rgx{6|J5Wd_%R9)^Y#< z%->J{aPhA($-sj+juIanRc*~2U5vh%0;)Eac18}4rg}ufivU0c$h>>2=9;#@=;o=a zej{?cwLoi?n)eK!f!TVtjyVJ(ErCDtqA^QE!qiR;znvp;c>8nY%e5=h9ujgXDe`+X zj+~HR5skhp$VK~MA7rEJ1ax*%YGqQ^mmIu((zr0JwVT!pEN@#32qscfJ#43!6f
8@v@{qEAzFH9lceG2 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 literal 0 HcmV?d00001 diff --git a/Snipaste_2026-07-07_17-13-14.png b/Snipaste_2026-07-07_17-13-14.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a755c320ad4a700eb4fcbd23cff2504c826fb1 GIT binary patch literal 37116 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%0AR#UA5@l6p=k7p(&5o&uu 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 literal 0 HcmV?d00001 diff --git a/Snipaste_2026-07-07_23-03-39.png b/Snipaste_2026-07-07_23-03-39.png new file mode 100644 index 0000000000000000000000000000000000000000..ff80bef9504073cc9a181648ccf9a15f73eab5c3 GIT binary patch literal 13588 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

kVIB7C~)4X<=Q}4!F&Mr;bOL zdG?R2#2+ogmwwOx&d>jJFj@t=Z!jQe1b={U1Nw@74;e%g;qdBQ)l!thi4!N5z3hJ$ zYQL0aBIuEL>;{D8(cZ81{a+V~F0HHr1${=KC8XJv44h!lwY6v2yb8n(VuV=W2WLKc z@?=Tv_x#tqf|guR%H3!S5DF6NvKX3*gM>4imsZQyl^qAYV<{;qfAv~hT3SGz{^G(M z=dWHXKx%Pao=he$#SOVN68B&;^+!Q*c+Zl7LPZ$W3dRFURhGfNRz#~)v!Mq2E!&&q zI5}3zo1;O^d!ldMHF9+-yu`pf% zFkQK-`n`9LE{}SD8L)%yJkTXHu$WbNupAVA=}h@}?hu=(B^Qn81iJc`BZj59h#(Ml zHM=$!gaRSi7smy0rYfx=-A59NnRxry2=MMv(6(R1xyAntK#HK%TS==dIXI2p^=B)` zm~+4Tz-mYRQJo{?oe}C{XXN6m*s$1T_a+uformYDsuYS9?RJ;pV$en|=C_G#eZ@Y> z#`HcNACc*@lBt0r?`Tf>vMb=eK~juKkB7m$N9+IpGI9U3k@@d{$-nbm1XEPNlUsst zWgM@VogVw%7}{z(gl(R(+O+II(?R#L*dtUW_p_W}x%zHLnb9`oRA;`Ey`}UwXdV1b(EEG2mRX zOJ@X49Dmjg{d$9c-3ahT&+S>xpVa?p*hU0_W>Ju(LJ%$Y#DVtejmz{-)%Cd~j*(Pp zwFjrGm;J;lKF%2*;t$$l-xGtN0a=5Vi$HZ%*%6l}`h}l`EMD zjlFMF3l{md>1Ut*>Sc#U4T%DP`6k;Yy}^QcO)uvPmR2GGbJm7~Ht$S8MK6U>BW^ z7!^n28;QVxP93bvRjr$DZ*Px`jBJYm!#_ohh{=6_w>Z7=r=GHkQWkcw$h8(s+_Xc7 z*fZLwikahn7$H}EIKz+0h#WaQDvo|OX8n9lnW{hO<&_NoDWQaISHT3gIh6KLoW?(y zB$k1bh`y=atT`$!c|fw}{gDxJ8(Ms%bF*{drNY_y{!#CVK4uVk8(N%$s8~}f4B{mx z=FyUy?dPtD^Ll6YI{)coFI`X;Hak0gf_O`nwza0xlsWWn=}dcASdMk-z)mm*7YuUy zRk`8>;~GESh9UWBwgq%8K0vx#9IQXOK&q7u^Dbz{s&tEM9k+RVBqcPm*J0^V2Y~or z?e28yLcu*tUJEN3Vp(YFaO!IR_-Ptda#Mfl`y$H306Vpk4i-DKF*^@rPfyaRs@oJ4 zBFSRI`O~;l*M+?Y;PB}Ei}OSK`uajcLse<%>FNCg1Jcscj;3O-l7ap0$op?NC>) z?Bj|v*SF6o%F8oYEEW(8I(?WEJmz1-81wY>tgWtY8sW4}gE_NMg>Bnn!^6Wh)YWrU zlT%a2ef5G;NhA^qg<_A7Yj2Ir%F0@QglHLI0O0qk=ro1V$zULDZEdZs`Er{b7aZL( T&wT<5K~5br`6c_vh2Q=I8*B **For agentic workers:** REQUIRED SUB-SKILL: Use `superpowers:subagent-driven-development` (recommended) or `superpowers:executing-plans` to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Complete Chinese/English i18n, replace the target dropdown with a CC Switch-style icon selector, clean up the header/footer layout, fix backend validation so managed providers and half-empty models don’t block saving, and ensure the app only fetches model lists on explicit user action. + +**Architecture:** Keep the existing Rust backend commands and `ConfigTarget` abstraction. Front-end state stays in `App.tsx`; UI pieces live in `src/components/`. Validation/sanitization moves into a small Rust helper that normalizes config before validation, so legacy or in-progress configs can be saved without surprising the user. + +**Tech Stack:** Tauri v2 (Rust), React + Tailwind CSS, TypeScript, `toml_edit`, `serde_yaml`. + +--- + +### Task 1: Fix backend validation / sanitization + +**Files:** +- Modify: `src-tauri/src/validators.rs` +- Modify: `src-tauri/src/commands.rs` +- Test: `src-tauri/tests/validators.rs` + +- [ ] **Step 1.1: Treat `managed:*` providers as managed** + +In `validators.rs`, add a helper and use it in the credential check: + +```rust +fn is_managed_provider(provider: &Provider) -> bool { + provider.managed || provider.name.starts_with("managed:") +} +``` + +Replace the credential guard condition: + +```rust +if !is_managed_provider(provider) && !matches!(provider.provider_type, ProviderType::Vertexai) { + // existing ambiguous / missing checks +} +``` + +- [ ] **Step 1.2: Sanitize config before validation** + +In `commands.rs`, add a `sanitize_config(config: &mut Config)` function before `validate_config` is called in `save_config_command`: + +```rust +fn sanitize_config(config: &mut Config) { + // Managed:* providers should carry the managed flag. + for provider in config.providers.values_mut() { + if provider.name.starts_with("managed:") { + provider.managed = true; + } + } + + let first_provider = config.providers.keys().next().cloned(); + for model in config.models.values_mut() { + if model.provider.trim().is_empty() { + if let Some(name) = &first_provider { + model.provider = name.clone(); + } + } + if model.model.trim().is_empty() { + model.model = model.alias.clone(); + } + if model.max_context_size == 0 { + model.max_context_size = 262_144; + } + } +} +``` + +Call it at the top of `save_config_command`: + +```rust +pub fn save_config_command( + app: tauri::AppHandle, + target: ConfigTarget, + mut config: Config, +) -> Result<(), String> { + sanitize_config(&mut config); + if let Err(errors) = validate_config(&config) { ... } + ... +} +``` + +- [ ] **Step 1.3: Add/update tests** + +Add tests in `src-tauri/tests/validators.rs` for: +1. `managed:kimi-code` with empty credentials passes. +2. `glm-5` with empty provider/model/max_context_size is sanitized and then passes. + +Run: `cd src-tauri && cargo test` +Expected: all tests pass. + +--- + +### Task 2: Remove implicit model auto-fetch + +**Files:** +- Modify: `src/components/ProviderEdit.tsx` + +- [ ] **Step 2.1: Delete the auto-fetch `useEffect`** + +Remove: + +```tsx +const [autoFetched, setAutoFetched] = useState(false); + +useEffect(() => { + if (models.length === 0 && !autoFetched && !discovering) { + setAutoFetched(true); + handleDiscover(); + } +}, [models.length, autoFetched, discovering, handleDiscover]); +``` + +Keep the explicit `获取模型列表` button and the discovered-models panel. Models are now fetched only when the user clicks the button. + +--- + +### Task 3: Redesign header and footer + +**Files:** +- Modify: `src/App.tsx` +- Modify: `src/i18n/zh.ts` +- Modify: `src/i18n/en.ts` +- Modify: `src/index.css` (if needed for footer) + +- [ ] **Step 3.1: Replace target dropdown with icon selector** + +In `App.tsx`, replace the `` in the top-right of the header, next to the agent selector. + +- [ ] **Step 3.4: Add missing translation keys** + +Add `unsavedChanges: "未保存修改"` / `"Unsaved changes"` to both translation files. + +--- + +### Task 4: Improve adaptive / maximize-friendly layout + +**Files:** +- Modify: `src/components/ProviderList.tsx` +- Modify: `src/components/ProviderEdit.tsx` + +- [ ] **Step 4.1: ProviderList cards adapt to width** + +Ensure the list container is `flex-1 overflow-auto` and cards use `w-full`. The right-side action buttons should wrap on narrow widths by adding `flex-wrap` to their container. + +- [ ] **Step 4.2: ProviderEdit table scrolls horizontally** + +Wrap the model mapping table in a `div` with `overflow-auto`: + +```tsx +

+ ...
+
+``` + +Change the two-column basic-info grid to collapse on small widths by using `grid-cols-1 md:grid-cols-2`. + +--- + +### Task 5: Complete zh/en i18n + +**Files:** +- Modify: `src/i18n/zh.ts` +- Modify: `src/i18n/en.ts` + +- [ ] **Step 5.1: Audit for hardcoded strings** + +Search `src/components/` and `src/App.tsx` for any literal Chinese or English UI text not using `t()`. Add keys and replace them. Ensure keys added to both `zh.ts` and `en.ts`. + +--- + +### Task 6: Rename / update logo and icons + +**Files:** +- Modify: `index.html` +- Create/overwrite: `public/pi.svg` +- Create/overwrite: `src-tauri/icons/32x32.png`, `src-tauri/icons/128x128.png`, `src-tauri/icons/128x128@2x.png`, `src-tauri/icons/icon.ico` + +- [ ] **Step 6.1: Generate Pi Switch icons** + +Use a Python script (Pillow) to generate PNG/ICO files with a π symbol. Update `index.html` favicon to `/pi.svg`. + +- [ ] **Step 6.2: Verify app title** + +`tauri.conf.json` already has `"title": "Pi Switch"`. Ensure `index.html` `` is also `Pi Switch`. + +--- + +### Task 7: Build and run + +**Files:** N/A + +- [ ] **Step 7.1: Run frontend build** + +`npm run build` +Expected: no TypeScript or build errors. + +- [ ] **Step 7.2: Run Rust tests** + +`cd src-tauri && cargo test` +Expected: all tests pass. + +- [ ] **Step 7.3: Start dev app** + +`npm run tauri-dev` +Expected: app window opens, agent switch works, save/reload/open buttons work, model fetch is manual. + +--- + +### Self-Review + +- **Spec coverage:** managed-provider error → Task 1.1; glm-5 empty fields → Task 1.2; manual model fetch → Task 2; CC Switch icon selector → Task 3.1; footer action placement → Task 3.2; adaptive layout → Task 4; i18n → Task 5; logo/title → Task 6. +- **Placeholder scan:** no TBD/TODO/fill-in details; each step has file paths and code. +- **Type consistency:** `ConfigTarget` values remain `"kimi"` / `"omp"`; translation keys match existing `TranslationKey` type. diff --git a/index.html b/index.html index 84a0147..868db57 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ <html lang="zh-CN"> <head> <meta charset="UTF-8" /> - <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <link rel="icon" type="image/svg+xml" href="/pi.svg" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>KimiSwitch + Pi Switch
diff --git a/package-lock.json b/package-lock.json index 7e58c71..e15ae53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "kimiswitch", + "name": "piswitch", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "kimiswitch", + "name": "piswitch", "version": "0.1.0", "dependencies": { "@tauri-apps/api": "^2.0.0", diff --git a/package.json b/package.json index 91480ac..8f5fc39 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "kimiswitch", + "name": "piswitch", "private": true, "version": "0.1.0", "type": "module", diff --git a/public/pi.svg b/public/pi.svg new file mode 100644 index 0000000..55a4412 --- /dev/null +++ b/public/pi.svg @@ -0,0 +1,10 @@ + + + + + + + + + π + \ No newline at end of file diff --git a/scripts/generate-icons.py b/scripts/generate-icons.py new file mode 100644 index 0000000..6d7b0e0 --- /dev/null +++ b/scripts/generate-icons.py @@ -0,0 +1,82 @@ +from PIL import Image, ImageDraw, ImageFont +import os + +ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +OUT_DIR = os.path.join(ROOT, "src-tauri", "icons") +SVG_PATH = os.path.join(ROOT, "public", "pi.svg") + +os.makedirs(OUT_DIR, exist_ok=True) +os.makedirs(os.path.dirname(SVG_PATH), exist_ok=True) + +def draw_icon(size): + img = Image.new("RGBA", (size, size), (0, 0, 0, 0)) + draw = ImageDraw.Draw(img) + + # Gradient-ish circular background: blue -> purple + for y in range(size): + ratio = y / size + r = int(59 + (139 - 59) * ratio) + g = int(130 + (92 - 130) * ratio) + b = int(246 + (246 - 246) * ratio) + draw.line([(0, y), (size, y)], fill=(r, g, b, 255)) + + # Clip to circle + mask = Image.new("L", (size, size), 0) + mask_draw = ImageDraw.Draw(mask) + mask_draw.ellipse((0, 0, size, size), fill=255) + img.putalpha(mask) + + # Draw π symbol + font_size = int(size * 0.55) + try: + font = ImageFont.truetype("segoeui.ttf", font_size) + except Exception: + try: + font = ImageFont.truetype("arial.ttf", font_size) + except Exception: + font = ImageFont.load_default() + + draw = ImageDraw.Draw(img) + text = "π" + bbox = draw.textbbox((0, 0), text, font=font) + text_w = bbox[2] - bbox[0] + text_h = bbox[3] - bbox[1] + x = (size - text_w) // 2 - bbox[0] + y = (size - text_h) // 2 - bbox[1] + draw.text((x, y), text, font=font, fill=(255, 255, 255, 255)) + return img + +sizes = [32, 128, 256] +for s in sizes: + img = draw_icon(s) + if s == 128: + img.save(os.path.join(OUT_DIR, "128x128.png")) + img2x = draw_icon(256) + img2x.save(os.path.join(OUT_DIR, "128x128@2x.png")) + elif s == 32: + img.save(os.path.join(OUT_DIR, "32x32.png")) + +# Multi-size ICO +ico_sizes = [(32, 32), (64, 64), (128, 128), (256, 256)] +imgs = [draw_icon(s[0]) for s in ico_sizes] +imgs[0].save( + os.path.join(OUT_DIR, "icon.ico"), + format="ICO", + sizes=ico_sizes, +) + +# Simple SVG favicon for the web +svg = ''' + + + + + + + + π +''' +with open(SVG_PATH, "w", encoding="utf-8") as f: + f.write(svg) + +print("Icons generated.") diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 5117444..10a703c 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -47,6 +47,137 @@ version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "pin-project-lite", + "slab", +] + +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-lock" +version = "3.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-process" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "async-signal" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.61.2", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "atk" version = "0.18.2" @@ -142,6 +273,19 @@ dependencies = [ "objc2", ] +[[package]] +name = "blocking" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + [[package]] name = "brotli" version = "8.0.4" @@ -309,6 +453,23 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core", +] + [[package]] name = "chrono" version = "0.4.45" @@ -333,6 +494,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "cookie" version = "0.18.1" @@ -392,6 +562,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -725,12 +904,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" [[package]] -name = "encoding_rs" -version = "0.8.35" +name = "endi" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" + +[[package]] +name = "enumflags2" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ - "cfg-if", + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", ] [[package]] @@ -760,6 +957,27 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "event-listener" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +dependencies = [ + "event-listener", + "pin-project-lite", +] + [[package]] name = "fastrand" version = "2.4.1" @@ -881,6 +1099,19 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +[[package]] +name = "futures-lite" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.32" @@ -1036,8 +1267,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -1059,8 +1292,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 6.0.0", + "rand_core", + "wasm-bindgen", ] [[package]] @@ -1235,6 +1471,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + [[package]] name = "hex" version = "0.4.3" @@ -1310,6 +1552,22 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + [[package]] name = "hyper-util" version = "0.1.20" @@ -1658,13 +1916,13 @@ dependencies = [ "chrono", "dirs 5.0.1", "indexmap 2.14.0", + "reqwest 0.12.28", "serde", "serde_json", "tauri", "tauri-build", - "tauri-plugin-shell", - "thiserror 1.0.69", - "toml_edit 0.22.27", + "tauri-plugin-opener", + "toml 0.8.23", ] [[package]] @@ -1725,6 +1983,12 @@ dependencies = [ "libc", ] +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + [[package]] name = "litemap" version = "0.8.2" @@ -1746,6 +2010,12 @@ version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "markup5ever" version = "0.38.0" @@ -2106,13 +2376,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] -name = "os_pipe" -version = "1.2.3" +name = "ordered-stream" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" dependencies = [ - "libc", - "windows-sys 0.61.2", + "futures-core", + "pin-project-lite", ] [[package]] @@ -2140,6 +2410,12 @@ dependencies = [ "system-deps", ] +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + [[package]] name = "parking_lot" version = "0.12.5" @@ -2228,6 +2504,17 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" +[[package]] +name = "piper" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + [[package]] name = "pkg-config" version = "0.3.33" @@ -2273,6 +2560,20 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix", + "windows-sys 0.61.2", +] + [[package]] name = "potential_utf" version = "0.1.5" @@ -2364,6 +2665,62 @@ dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" +dependencies = [ + "bytes", + "getrandom 0.4.3", + "lru-slab", + "rand", + "rand_pcg", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.61.2", +] + [[package]] name = "quote" version = "1.0.46" @@ -2385,6 +2742,32 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_pcg" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" +dependencies = [ + "rand_core", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -2471,6 +2854,44 @@ version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-rustls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", +] + [[package]] name = "reqwest" version = "0.13.4" @@ -2505,6 +2926,20 @@ dependencies = [ "web-sys", ] +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rustc-hash" version = "2.1.3" @@ -2520,12 +2955,66 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.13.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + [[package]] name = "same-file" version = "1.0.6" @@ -2716,6 +3205,18 @@ dependencies = [ "serde_core", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "serde_with" version = "3.21.0" @@ -2786,48 +3287,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] -[[package]] -name = "shared_child" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" -dependencies = [ - "libc", - "sigchld", - "windows-sys 0.60.2", -] - [[package]] name = "shlex" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" -[[package]] -name = "sigchld" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" -dependencies = [ - "libc", - "os_pipe", - "signal-hook", -] - -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -2956,6 +3425,12 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "swift-rs" version = "1.0.7" @@ -3108,7 +3583,7 @@ dependencies = [ "percent-encoding", "plist", "raw-window-handle", - "reqwest", + "reqwest 0.13.4", "serde", "serde_json", "serde_repr", @@ -3208,24 +3683,25 @@ dependencies = [ ] [[package]] -name = "tauri-plugin-shell" -version = "2.3.5" +name = "tauri-plugin-opener" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8457dbf9e2bab1edd8df22bb2c20857a59a9868e79cb3eac5ed639eec4d0c73b" +checksum = "17e1bea14edce6b793a04e2417e3fd924b9bc4faae83cdee7d714156cceeed29" dependencies = [ - "encoding_rs", - "log", + "dunce", + "glob", + "objc2-app-kit", + "objc2-foundation", "open", - "os_pipe", - "regex", "schemars 0.8.22", "serde", "serde_json", - "shared_child", "tauri", "tauri-plugin", "thiserror 2.0.18", - "tokio", + "url", + "windows", + "zbus", ] [[package]] @@ -3328,6 +3804,19 @@ dependencies = [ "toml 1.1.2+spec-1.1.0", ] +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.3", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + [[package]] name = "tendril" version = "0.5.0" @@ -3447,6 +3936,16 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.18" @@ -3650,9 +4149,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "tracing-core" version = "0.1.36" @@ -3702,6 +4213,17 @@ version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" +[[package]] +name = "uds_windows" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" +dependencies = [ + "memoffset", + "tempfile", + "windows-sys 0.61.2", +] + [[package]] name = "unic-char-property" version = "0.9.0" @@ -3755,6 +4277,12 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.8" @@ -3948,6 +4476,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "web_atoms" version = "0.2.5" @@ -4004,6 +4542,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "webpki-roots" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webview2-com" version = "0.38.2" @@ -4245,20 +4792,20 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.59.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets 0.52.6", ] [[package]] name = "windows-sys" -version = "0.60.2" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.53.5", + "windows-targets 0.52.6", ] [[package]] @@ -4309,30 +4856,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link 0.2.1", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - [[package]] name = "windows-threading" version = "0.1.0" @@ -4369,12 +4899,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -4393,12 +4917,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -4417,24 +4935,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -4453,12 +4959,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -4477,12 +4977,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -4501,12 +4995,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -4525,12 +5013,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" version = "0.5.40" @@ -4668,6 +5150,67 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zbus" +version = "5.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee682d202a77e4a9f3b2c2bdf48a7b28af5c08c34ddf66f98c93e5e39464285" +dependencies = [ + "async-broadcast", + "async-executor", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-lite", + "hex", + "libc", + "ordered-stream", + "rustix", + "serde", + "serde_repr", + "tracing", + "uds_windows", + "uuid", + "windows-sys 0.61.2", + "winnow 1.0.3", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "5.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adf1bd45a81a103745b1757754762a26e8cd01e4532e4d6c8ec431624b80d1d6" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", + "zbus_names", + "zvariant", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" +dependencies = [ + "serde", + "winnow 1.0.3", + "zvariant", +] + [[package]] name = "zerofrom" version = "0.1.8" @@ -4689,6 +5232,12 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zeroize" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" + [[package]] name = "zerotrie" version = "0.2.4" @@ -4727,3 +5276,43 @@ name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zvariant" +version = "5.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a192a0bde63360d77a7523c833d4b4ce6070a927e2c53246e4c540b1a3e27be0" +dependencies = [ + "endi", + "enumflags2", + "serde", + "winnow 1.0.3", + "zvariant_derive", + "zvariant_utils", +] + +[[package]] +name = "zvariant_derive" +version = "5.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc6cde9c01c511074be97f7ccb6c19d0da89e3f8662e812e999dcfd4638737" +dependencies = [ + "proc-macro-crate 3.5.0", + "proc-macro2", + "quote", + "syn 2.0.118", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8535915cfa75547e559d8c68e8139909a4aeee076831e4ef7fc59d8172c4d6" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "syn 2.0.118", + "winnow 1.0.3", +] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 0e78e1f..6a25c86 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kimiswitch" version = "0.1.0" -description = "Kimi Code CLI config manager" +description = "Pi Switch - model config manager" authors = ["you"] edition = "2021" @@ -10,15 +10,15 @@ tauri-build = { version = "2.0.0", features = [] } [dependencies] tauri = { version = "2.0.0", features = [] } -tauri-plugin-shell = "2.0.0" +tauri-plugin-opener = "2.0.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -toml_edit = "0.22" indexmap = { version = "2.2", features = ["serde"] } -dirs = "5.0" -thiserror = "1.0" chrono = "0.4" anyhow = "1.0" +reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false } +dirs = "5.0" +toml = "0.8" [lib] name = "kimiswitch_lib" diff --git a/src-tauri/build.rs b/src-tauri/build.rs new file mode 100644 index 0000000..d860e1e --- /dev/null +++ b/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..620b328 --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,12 @@ +{ + "$schema": "../gen/schemas/desktop-schema.json", + "identifier": "default", + "description": "Default capabilities for KimiSwitch", + "windows": ["main"], + "permissions": [ + "core:default", + "opener:allow-open-path", + "opener:allow-open-url", + "opener:allow-reveal-item-in-dir" + ] +} diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7548407d5735578548b31acd30d953f338353c GIT binary patch literal 1640 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 F{uiXZkT(DT literal 0 HcmV?d00001 diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..274362a91cbf8673b6e15b3781320fc6ee038bf1 GIT binary patch literal 484 zcmV-FLI?88cdNhbtgWm#~2JK*HNA?^6h9nfV8h*ugFv78Q=aps(WJek)vdW8GnC zQCML)3Z(q`b|$0dLA@?$y{Y)w>x<&yame1T$Ihl}j1>*hJnh2lI-&h8C|$sRIS&YC z^BF{;K2T=pH85=#ew~P>DIz(P7U^DPMp_M2?LzLoK!2%BAyzjdJ*f;4h3|%XauFf9 ax8rZkqqm{WWYbXq0000W06jUgpXhp=L?W3Y7RHT9sBt90j6hZ2PiVrFJAQZ7QA}C&q z^g;1budSE*pgss*s-;$?YSn73Msv^1?40BI&g?YXq}ENDnPj);Kp?xBoy_+;|NB{Q z)!?MUDZD(K;>!ZC04x9tzyh!UEC36@0Aoh4;=UAI!?v^a6}sM!{Z9QRnZzj zaK72%c;Y*>yL|h*#2wFs+Jb;i9sClB_NoIK#c!P@e($dmcRm{$-=`%MA$~yt%oe|* zLHrj7B{n=4BCHiFe!&2oNc^VvK&1gO{15RTf0y9y7b0_M;1(~w z&@3=VyQ&vCwPVFcwN(7>eTm-r$fQf(&A;SbPyni)3MrQ28pX5d+4)t1joTx5Zdx|W z5>G2j0l=Cd6F)Rd{Gopo?td{de=A#jX#m1(=WkC_9ZO}3XNP!}?iU7Ddl;WqP4x;b z34p0=3-kOrj_L9UBZ~=K>#y~(@&eZsJg(Db02s-aFLiL``Ht!8Xy!xj#(3bRG}_Y| zxHjDqpsy=+6(QOP0L5^(34%fH$=xxY_#nn>pVjd8p2S!K)8f)zfqT~kx&bQJ6`V5C zA0g1RAAc{#qdQ~tcIv@~?&=upWeXP8-DluC2RbWBR9e z31bc1`MH zuYX>{4*iq0&?X+-oRp8Vlx=Kq`(vN_7C!OS{*2e}=Qc}2NEca0DIanPAO@C00000NkvXX Hu0mjf?%Phq literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d494625e3bfe0a55b9e3aef34729d04577178ace GIT binary patch literal 1968 zcma)-YdjMQAIGp&o zB9S@b5DAt0X+16_bE#bBay-0$UOX@UzyIg+{e6C~zjugEwovdPFaQ96+S?IacYny< zNlWc!cxwy<0N5X8Pq1`njEYKFw>_+po$uamFR!LHRby(B1-X~7)FewyMET*Md-*$0 zSp;uyZ3UzzmRdvkHE030>KU-B*WGfdI?M^Wt$-@h%*XtpdFaVPQ_beW%QYw3ObgS3 z{&&rVn$4M(sFvF1&4tMc=3?BXzEf*&3+uFu8e|T4Se=~Mmtd_<0;Lmb?Lg_|9BI@Y zGD26bO&y`T$B!mh?{Pxy9^WnZ_-?t!cSqI10e&TlvE!4|q0f(!C4VePBPRYFM^l$4 z!_w<3U*YD*RRiBM`^vscdjdV0Fq^9*)a8pUT4xZwvG z+Q8XYUnC5{sMV=^@Fkl>Sz|~&yH|d$q{X)0OH-K!oi7Cqxhtp|R1`_-l4je!p-Ro2NkOw6jz)>Y)km(S)N1|5OpX&3{Y>hFRYG*s zB~Ukf@LJa+_a;#pD|P8L|LB%DE1pYOwk$+L`SaE0QuO6Y(N4SoM)`SFD`M)anY!cO z@&i*3ujRFzFSbpS+FVMf1G~F{R0m?}KVV89_vq6G3HQdCcpWs!O!CXKKGLz87k@Y^n~uR4PVjffcdcMe-1J@ilmh_4@Y1Ez#vv4Lf6<`S5!R&(Vp zgu*SsXLU&Lwo~)(me6miL#v5E{L43PvkKVuD3A~XofG!4uUEEEF9Lp=FTZ}qS))K2 zLWR>(;4I^RKDQ^l!z0E zMyyN5L<7!g#Ulm`WMnJ+2*G{GSnt;Z?4q%z%#8!ceK%<#U{BGxw!< zmP#Dy-1_jIiip)>hT}x!0Ks-mn1Y81Qi+uw}-4IILdFw9YuSE?w#d;MQThci{T^e*59=5P%mn zXsP>wY65B^vBD9emd42{ZYK;qKnADinZA3}b#$FIi8wd|M?3uTgSf3UlYZf*uw zjr*)9F5W1u$*=C7G}+*h+6LI8xqz%1J3$r;q+@ui9LDm}aA3EJG1+iI+{04@93$h? z@sgRKD-tpvsky5jvq8A!t~9zyxNjyFq%hU~I49?e>6jb$_qQ`6+5T!-YM0yIj$JdM znaBNe45g+R3(L$b_bjzRCY-^>5r->;*ekw^H=O3mTSdwTuZ|lCTnn>J#5~f<6ES~b z>+>C=7;7;f4O-2c?%O|g!+{!#GnVX#%v9_NZ)rFUc2&|Kz4CFoTUO?66X_B9iT(5* zEB8zU9}!z{KM=OkRb5TR?Sy(A7vFI{tz!=F(DkwAD85=Dtot?uxt*Kd{{$w)3ySe? z5>hUx1gG8E`BGP`CWZs;tx$iKn8@pplRfdAnaOXjhbhW^nBKLEnC!`U^C8=v2IeC; zdUfNVd_i%h;8Ta8Z{>B4>y^B1FZ=dxkg~#gNpxrNk9zcJ6%UJo_VKFBXx-1C>K7CX zC(^?_2L|fNnt>*9YAAxO);z0;F3&RD6jx7CF4Jy@q(lG(H%;9NX)20~leyU9yZacn1j`{Ha=jmNXZrpX z=1*^VOcn-L<^Rl1bxv8@xTL4|GH3bXkJxqwy4+W9`vGN8n<{xM5Jug%J{T4|%*1wO zRA%~^Ox&U*z9>r5?_k|m(N#I3sVt?(%IPMsO1pTOb9(KuB|BgU*LbRY@_g6Grg}Zx zCQQJOaLYa5KU&aj$}`;hI{4-Tt>A<{c-9e@IzALFEBduUKf}Bk@XOUCYx?RKZ2ii? z1OFa5xzuUTO7WIgDKOG3auSwwSC~3Z1UkQg)}CINK!V;&aug+CMp0pZMX!GkD!i~w zma?}PvkZT3bpCAb!>QNrI`ihlJpmnt=~t}+iz6g`3gSiSe(w$5ku2}M=S7+>W}vtb zX)7dmJ75NO*S8?PjLTa^yUU6O(p%pTDU8#I{y}wLw3v63sC9y|khC79eq8)c`_EoW#>o{r};l|4U?%D|(Xp_F-hz^6_001MIDx2sKvZg#QAUi=eLn literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..85865cdd3300700d2b0df19825ce3f3d61172e08 GIT binary patch literal 2438 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..edb080be770bc916e7bc2e88aa67b919bdaa0ac1 GIT binary patch literal 4631 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4ee6066ce1ebda1d3fc184fe556084a0add588 GIT binary patch literal 4995 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 Rz;JDw?Kwxwx?g|0`Ck(i-4y@; literal 0 HcmV?d00001 diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0ea8abb08b35baa2622d98d9c7a5f9fec86d48 GIT binary patch literal 874 zcmV-w1C{)VP)3^D@^T052%zPlNJ$0LaT~sQ9;n6h#-iFf(U9+ixv_I1yWJ%L?R*z z!d_bK3M^Vw+5-aHq}C$Hq#SkbyYD;KYl_dAxy>lt1BaQp_YCKEzVkodU9*vMs9UP@y6wm^)KyDK63eb_j`UOf=Q>O~%G-4jy+mlTMUVKY8-{&tE9V6P2>z0hRhW{ZikA_3dUrCSq| z!=8I!;Ld9cC57q32JVL$w%-^Hd-k4z#y1v93D$C^L*Q`7x9sV=1|GKt11r5wFqRbr z>q^+`gRp-FT%5d3ux-J?1_sQqc@zlPvXz6D{rJs66Ty}R2%9mm?KWL~wAEhMx(JgwqVTimbYRxq?0ly@wlgv~_qUJ+V#08VVK(-P8EAkp#mebQi~N z=y?9w#>Hj>rcEb00@Un|N^M&<(#jnI1@^c9H(hNUX)w^*VPi?Dz=uu;m!FyP-Lkm~ zPHorFn{>y_HF5&{i4Is>r;XwQAzj;S`n>hZLQA_X-|t+jVi)zEzRdL;h$MLHO6zkwvm=U%`J{6L8ChBhC~l0%()c^)$KQJ#)IRd0!8&F=Gc3Osxdg@- zSr_LE#rXow?=9Sa>!o#-=G3O)g1NXvVG@n1uX z{}LjX0-)63@RKfh8tYbPFnC8c>HqXZfTJgi^t6?E@^gV<$meMdU>n`zkz2AA@1Hsw zV))yjs=F=77*cgBdbvS#T=1gb`C{Z^wR|=PGgtx>hUNQ=P6XKeS`ojU*T`nlajR6} zByKSym|8WEnGNP)2BV`G!|~b!8B#IiU6nzi;0yrTg_Wv_;~4{hn2l5RmI)1Q+Wi&NnA;ntcKf$D=b{RR2em2 zi_GXKI0ZMdn1?pn1`G#Yewh*kov**l!sB;l@mE1t)PXu0PCU@t*GDRyt%ad@Buqc1 z1TQX%ang6s1{(wYHqKE@vaLk`huLuW;AxpHBzBqYdtGdOyJ$2M_r+z5r|)*K_EHN| zE}CXR4TGamcAZ$EKS?@ic-+S&%M^AVaPh}fRDNJ<;$qm){SGpv#7}j!!9eRpZl~VoY=iM2ip6MkHa*(SynkN-F$Th58jl%yl7cCWeZZK8hCcH62#!9Ec&m? zV6uSrT=AS4f8&@D)={A0OIb$zenDf$0XOOAb$6r71{~vl#>G^d!C?%%l)|m6w9MT@ zh4Oj|SSEWWv3lfWfZbpE#!8%0{c_DJvZ@E1)N&s?O_$)!0w+#~c;%2+vCD$Djf8aq z;zaO`qaIG5i`+}kuq@8D? zR{igtU2(~S6U1tk)t0LdT4T5)a7!x&q z&_ry&sKJCss}e%uBZ@|Y1c(ADX&Mk}F{K5ebZ2+wde5D?`=ARgbh|s-Jtx`Bq|?ss z{N}&^Ip^GaYqzuwOK?nT*o=T7Gh_~i%#ax}2SaAa91NKuGh_~i%#ax}2SaAa91NKu zGh_~i%#b-4a(O|v#OR-Sd77Xg)Vakaj(M_7AWLMKnJ*Z$zEj_0s1y zTiUITl>uY|8&&T-Yo?_YCj-FoB+zrpo6xx<7I1C^xVcGSdbQA?Gv9-b|8>GEsG187 znJzft0!=jnA3s@<2C0aiiff3*pUrYoTI4AMYY#VR4=9cSwyAt@L*VEq^Ss>6> z(d!+joR zgbZ*=KpqS5X?5)BjdAq!OH8i{AK=hK9t-fPvkI_M@Ua1jx+)Yc4=!2ADZqD(&Vvas zHIoQ%-;e@a8D7Alg=_~lpaCyS0~SGlqr2b3a~%!_&P&vW9B@&)aF{5DnLrL0z!zDBX}S~C+po9q@}eltD9{m$Azx7pt6X=%92*;! zT~sOy-zL1^fk)fLciVXQE*nG2GHi<>W4tZT8yYOMKbDS4x$lXp>=BH zx#OoKe(&-0ar1km`X^d!%)2e3GmbEV4%J8U0tN3p;Nq1p9mMSPgH8liv2MGgJvb5o zHfh~!OJbN=Z|U?dZ2oM82{6Iw+UH{R7DxN70c?)bq?F!&J*@9?vi^otO?`{k7sqt( zLb8%`Pj(?#|ELm~hV5y{-eeM)K^{z9wry%ql+}Ds)@a3PVmTGYXA~ zD!R5(;GJ(0I58+wc46kok&;(F7}ec6VU+=7Qc~1T5Ahpco$!L62+b%`s@>}3Ja_B; zHkRCD>%}{TvJFv;f9-2lKQ%YzfAy2`VLDfHqtMFME1-gJ45^!1rAPby0!B{Nc^7&G zl!CBdjdo1NIzBJxZ*;4vTV6(|DK!`?{0F6+>XTdOf^#ie%-8xlx_MR6OFs(AX7$r# zFIe;>PtyV~VCP`S44H!=Gh~L$!H^j;L*`(}44H!=Gh~L$!H^j;2SaAa44H!=GvqRj Z{{i^{wBM+|!hZk&002ovPDHLkV1f%=-|_$e literal 0 HcmV?d00001 diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..9fb04926db278f37c75aa86448f1222c6e41dbe4 GIT binary patch literal 980 zcmV;_11tQAP)Lx zF%`gZ7ben*c5b8LR!=Ur@ zFa-XyM<7AY3-2BUxeP2*Amo5)1M5mOl+55TB}`4DgZ8LENRvK_)DY3Qz{X`d<`i=k zL9*LVY(#s!NQuz~A*bTD!1{$6)-2G}xks;DeEu$AXoDRhCp)_YcCHHH(1uX*{P|iN z-(!HGr-mQJ)bgI5aNwoOA8LXicC8NK;Cc^&t~zqdLhXwLCKWKaBICu*lFqUrLXaK4 zX`;T_LGgH|79p$KZz>3?i-R{zG`w^$F@N|FBMy=Z!j?|&zi#63YX?O>L5vs(>xK9l z9S9MZ9d7S66OFC@LW~TEq~LwssUHM2ggsRjn%+B@5b+m6)v534#QL?^UWhM01a@38 z(fq+hVV?gGzJpNn>g@I)4oHYT+0iWr;JXfiyqw`nkx>EZv49<=I*yiylEqE~ZtfJ0 z6PpY*(K-JQKxi^oEcME+rQJp4WmCx&va&@Qwk_B3O-4-TSq{=SnOnaK*z0+Fy(#?t?BQl4L|vsJ2*&6~<`xGW@AonHE@SW2M+8J)%!2bbz?CH={c%Puy1GDplp@?2J>R;ph` zB<&03G_Pt%;CZVTs$4@xX|v&7BC-)AO|)p`Pt{mTbCK_hXL0OX8}cQ^xIeWal4&H; z)K8uaz}q$#XYW}G%#zKZa;1*a`5HRpe9?FYL5P7i98_UzNV~F>Vk8)=pCx2lc2pZC zySP0E^QUnYDaJCOerc7%A%;5X)TeJkZ9dQ>*R}MK2^$O-9@zNU>B5ok^W{R!kTa*H zU8qR?OUba|{)b2_82iiZAo?DqA!#qx3zsVwBy41G^TA6kxvF6{gm15B7cokN_kA2|xmn03-m(Li+_YZh_h*qp@-T0000 + + + + \ No newline at end of file diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..94619d27098227418ec36bef6a136311ff5862d3 GIT binary patch literal 993 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 JPDHLkV1n~%($@e0 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..83cd1ce4def50a38cf86a16252f5e4883c56cea8 GIT binary patch literal 1960 zcmai#c{~%0AIE2Vw#=}imZPYr94%$;n^q`KZeqr?6}degxr&%EX@*knBiEcu&Eet&#F-`DH?d42!Q`a~}Y(?@tR;v}45BQeI@Di1C7;r1Y? zgT9N@sNet3aWknyjZP8@W|yRm)fYWYtFyBciWBfyMPqwSh5GMkZqrwuvCYe=)}K_3 zxwFXrn$P{)Z9&=18sYr6;{)6M%i+xTU;gWuHy7p++mC3}2QahPaQc1COQc|Gn zYA6KgI$j0Rbq)WE@0GuJQtW@Y8tNC{EB||x6)gc|GUJ?lrZ4c-n3AK=%Q_Wj9t;)O zdo{R9Fu!!^$q|=cx8z>ZQOTFMUq^{t6$KUcvG|7Bf(ITZFu7>JNEuP>a+0R3gjq z0F8&{LrWmpGkQiBU#@(WCN8)}RqTGaTV=U6?h9pAXr zHcETM1U?;%0`t03@Zfh^e&HJ{?VqjJ-NxQaI(?aX1LnLFsH%HiAvjS%6} zuGCnWh{^*AUunS8e<92(PduZe1=O%^7lvfv+V+Z&qM@20ndrIh4&ikAdKU$*cwipU z_UqAns$?i@?}cFr?w;*+9N=jWJi9Vfu2gn&_F!+8C5Ln#gZ8j<+?`o)G=l0r2&{@k ziM3W2`^Dq&IQuy?;r5azWUUK8I#)4!TSj;$}-z^H-KCx$Q` zC(yOz(ERk?Mxf4cdqtY>_7Pd_Wf*?aM$TVgAS_51(R{xV;GDbCV+%`paq{D11#U@F zV=0#9%Yx2+yBRRDUM`Q73%wT#%U`KO4WV;FQo(Vxu11p?ZZR2+sZa1)&n+T?t!1$p zaIGv>VX<@$a`fAu`^7Vkci%nLQ(F0DprY$OcmKmL1Jsl4`Wz(TNLbv<>v~u#S`S2a z{;9I_`hxyp&f-dawD_#d#oK~3cc6QdNwR{!y5B8Px@0LZ`GjtnjLye|{4Gz+&##9> zDZLfyjo!0;oq@WdJ^2<+JByP%D=A#ANOy?Es@J{sMkHG|g4%?Z4U~uz++`%w#UN(y|nE~IXbH&`XTLyl3 zJxa~f*FVZx9Ku+mYG;$2QrTk0`QyjXWrnlOS%Aq%UG63c7!&3x4=U*HsXK7znmt{` zjyW$)k1yr*P%4buY9@Qjsy(dT(+Z8_+ZNkmE7?;DtjFmg$4|LjgNx1#FY{+g(gXR7 z^Q{z@`)#esL2l)d^O!-VV-BUur`|cT_MfNQDv7VNLSC7{9fG1V;*0ar_LWJnLM%H~ z5|Kw*Rk+qPa$g5A(wY&-AaG*C6rXZJMK^cDbg9F1H)NtHuAX@ZtqV& zXcgSW%?p#^k%bbAub9eS~nktmd@{CJ+(d)CuObpjIDz)T$C% z>o7PY6~%xi=U8<9f_K_sciCIRpm^fW|lP#>v*;7BdH`7AT~2UnS2n6cxfbpx&a^#`FV^?>HE!MlP)oiN56R#Hwb zkF=Y@JHVCIhd?xq&KCn>1JlNwDn?{ODxo%2;G(0yIYx4Am(tQFD74@{J_G*4p^5b@ z==+0D&C0vZjd~+tc{}C9Nl>c}-1Og_;)an8p@X|+XO4MmsE=)Nb;e)Kxp~!e+;2ia zJzE3?z7JoEV)OV7)3DhWp(7+!8V^(1E`fW&qUBKRV1kgzd372OFq}!7Qe6HW(DGUJ hf12w5YK%wyVS>pF)}{di9QF(hurRYWtvQb;{R^=pvjhMD literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..c2fcac1f02212f5c859666dd719e030fd9621296 GIT binary patch literal 1126 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..6c536fc047c573d7e5203272aaa39f7a8fbb2cc9 GIT binary patch literal 2219 zcmV;c2vqlpP)+5P~-zFk<3^ z@d8K`6@nomL?aaf2_+3EA_9sUD}{#ALU+$){QsGAw%ZGpZg)H9Y-f^9jk}!P^L_K* zzJKP74Q6N^wt>J9UTX0g5zP2* zy<{*0yj~)h0bVZ=+<>q5cQXULUTfe6e7*O>4fuNRiy7ecx+HGE*L%O*fUozyxdC7A z{c{7pUJ^`024dQfF|)rgcyI&0UJ|$gUoQzJ2E-`_nAu-=oLHo!*>1l^h~izl7~cVT z$Q6-tLB#-r5MXHMzTflz`=W1hASxZPV$Xh#zas4dWbh?&eptc+NG0+kMg-TTS6hbw zPp~dG?I9sHUcVyQ`JFnfK)VH4I6K?Z0MjnxaP#Fn3kCt#_=gXBkNZ%WQh@ard>gOb z+y-#xHI}@->nrdb{99%-{G5QT2RvvxE1)dVX%P^mrHRFy{WP;_7M{ZyI^#+X3u+Tx z-e14Rg`GcpFk%?Xf_JIlll3&61(hE$nb-yVsR;hV3Vg>?z+1ufUfb-zy4@~JsAkF~dHMn|k4)ar2A*aT z$k~~n13m#ClDTvff$zZRO7(?<0e)XNmP92?020Wj&H>csxE%tQfT#BfElE87Nwe$?Sugrf|>tUi-5(SrlH|?AI2m2 zX$QNhPY;Ov%kBntfQj(Sd`1D)2iTFxylM<90+R_*1(US&5*? zI{dc}FJizwc+!J$!{Y;ftZr*L6zD;mi*$gskJC+bpOoQ$C+_LqNfDPD(XvrdU~dAv^O~*R*oZjW#?v z(?+s{d|wy>2Hv71*Fv4F*B?ttOX%))LV+#pVi5tekSrph%#LQ!bx8z7p$HQ}Kls+k z943wCGS3gS{Ot!lcw%jbOgTeKp(3mryJm~-O`yilu?kkMNyL$WC~V{xEtjQ>J4y1K>x?EB!d)2SJ_-=y;};oB8m+pM>L;Pg;*FrXuL8v36sZi zx%w`OBt%?{!!?~jrFF4%lG4;Fw1Ol5`0&oRN`-R+!ic!xSRcGRH=(j5KYGt-;}LHI zpzmh?`x#nyOIpyD22TcUiUSlQ$Qp=*>6j5Mm~F#Zaz#7_1Vr@#chH9wkpK75THf8^ zz|kgOg6{_M1(EdBtb|ll&$R2)i+aN~_K&R$2hH?qyuah8d|12FRm%~r&VDc%($WW# zFmWWuc94%BgEhdmMi)NY=XU8U5D~N@j^cqEEX=Z)A)v4X2vv+#U{HP! zUC{yDU%-RiF+7;@q_EDfv9lRdWC@5{90+RzS_xNK2GZBB+3v`_2UH2mWGe7EPuHk; z(1g-;zB_OVwNr*itqWF&HYOEqW2=~~q(7>6vw|KmMA;F6UUyFdCXPbs`aBF83H>Hu zu&f}gYAI`>;7PNXfa<=nu3whmDH2Gg`0-aS+sGlHNgtX#j>9u3RirT>T*#<^Ei~*C zC8)%M~_HrI1{Y|^6w%gv*LrE5$18sotUl&qKG#*7;#GP#zB2h}nK z>*lsVYeK0ap`nY$N_CrRm+R9`%noH~-M6Ze#SKg7aX*n+8RrM0T5oA#A%Y{t5|Xof z+lETl7jbxacibOUpyP1`=1~QMeEp(U!f`CjAO_DB<)v^8NSq()Y981WH!;pwL1FRX zrF0@u9G@r6OYK;wxIN6<#DF+AWQ-LI90y*iC)CB|906X+#{|aV5C>lBXEjFs1Px}+ zkkLEQcqt#08HfAgrG8pz)bEFxll1gXBtDeR?v3K_Hm9i$mD5zsdBWyIZF8cwIa5C3 t1Qe5ys3rnN%>?tvGDCnFhJYbE{sR?%)5p?x2lD^`002ovPDHLkV1nZrB47Xj literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bb07b4741510a3da71b8674a8e023b45c1882e21 GIT binary patch literal 2668 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6ce52a368c582dc990800cb2aacf3c29809ee4 GIT binary patch literal 3259 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8f73892e1bb50d59dfddbf64d59a5e2719f619 GIT binary patch literal 3302 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 A)c^nh literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..5d533f6f1e67f333ba3c1812376b55b865c3930e GIT binary patch literal 7024 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/android/values/ic_launcher_background.xml b/src-tauri/icons/android/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/icons/android/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/icons/icon-source.png b/src-tauri/icons/icon-source.png new file mode 100644 index 0000000000000000000000000000000000000000..69abf33f0fa5bf8eb782a23cfef639e8d987786f GIT binary patch literal 15779 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 I-(j!(3%&H~bpQYW literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c767b398e25960ba5dee6541159bf8a62104a396 GIT binary patch literal 506 zcmVWN|x0$_nhOC>nmGqTy!ZAYQlfQ z2FR6PrI2R5mn+6~@?lMhC*@`eaph$AzmSjPq>9LLpe*7v%n>1J4pc!tjvtF~9rGfr zB*q=6di6SwfYBP57Ws&Xyj@UvL=MbKhBEGihua=o4Tpt#c600X;rQ&sN`Xly1Yl)Z zaD6-A)VX6Q9AZ5Mu>h^8qbIg}RZUS&pF4OHzy w?!7>NsZ1eOHzPf%3=xIzhI(=lA-T8XZ_T5(q0MB|Q2+n{07*qoM6N<$g0djnivR!s literal 0 HcmV?d00001 diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d0752adf770a855f1c0af055b2447ff91a9ecc8 GIT binary patch literal 1592 zcmZ`)c~BE)6#sU!#7zVVf(q0^fDzA8ZfYqKX|!Y%5Gryh2CINjj&jy0Bt+$?2-;Q= zQ9%YNmdGUnBE+N~v`QO=l28$X$e{#f90@8Zq2DHGb<{t0cISJ?@AuyOeQ&cjd3~iv zHKhUo^jIEDUjPvJi2$4oUt8nL!vN5kW--@p{{GaH9?zJCen#Xw-A`)^bQZbr=+|}a zGH`MZZ3ANmSRQJw8$faQ2<2xP8DFE?P)OwO`on0e<45aNRlkNLafesXIY%dZo8)`_ zBp36ps;Va1N|Y%3V4y-rP*HKCRI$7L(Ed+WsCv9=mnL3VP<^0en6^#5&AZGb(J(N( zWbq$6Pp*|UjvK9cyfU(wWfft77`bkh?ObN;f-Xr5i1x8^Os}!z{g(M>&Ro5WTtGEX zwvVtfwu8n;5_%2094~%(mfPZ-F0_J9p-NNAWDfYj{AR~(hdch*rhjdOrwc_s-iN@w zuJh{T!_aiEn=`j-7Ya?E26sNJ-wTh*!XL8Og)mcSlT##GxE|cl?`TLqT`$xJ5fMM( z#eO1nz;bG0l=M=6=G4Vniog&tavQA*E);EEsiR{WkVNf!tgjlo`FS!Gh+__cAkxCz zb9)izbudxpaL~3F&sN)1|I$)fxx6TCUx>b& z>v@-yQZdt#QQmP?q8JS9oKijKa5y2;r_SWd-OZxix>n_#kuBIR^y7Z9=PqZdLkWVZ z1|G0nCtnHH?2Ee(Pb|>`O(|pLUbz)!)0{0uscF6`V`kYP{aZAHGpue_r%F3j=82F< zi>kL-`C|lo;)%bvG8G?8VB}Fd%jSnixZXDQ>j_+6L_mI-p))(v1)g2F74~ z&8VRQ|CiPWk+d;w2kEr73nGoAw5pw%+`E7TNEIx9_S)BSeJ`gX%W;lf=&fxDoh?lj7%_LO6F;W)7d77 zE`K`VB+}eIaIi`G0?8tmMon5jflJD9-jSV_yJXg=pu{9D%lhl_{3(5>#C{Lo`Ca+& Oj{sQfyqJ~lZ2o`5kxqC3 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@1x.png b/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3423d7b949d0d0cd3c88b6d26bc8349cc787f535 GIT binary patch literal 478 zcmV<40U`d0P)%A7NPzK6QeNb8t%o1b__ENP=O!5OZoT5l42^`lO^ber?$*lm1D8a!>5FIfB z#(->rV`JLH?ve!touqkDh_2G9aFyUA&ykt4Fgs*m@vwxaEJG|L5^+B&6ZI&t%^4FD z0|Cq*l<<<{h=&O(%%><)fGklCNDcYhf08*-Lvwd#k^vcE2rHlP#3(=tD)~9W%YTGVX!959ry$eV2xwBv)C$2y7 zRUy}c1P!9Nl!}`H!RN7!(Y^py$4%r*-18<8uW3^?cB+fw{*9sRYTl$ssZOF)zI|qj zmZof@+XZeOnW$1LEY94?gMa&Jcbo#%WsSU(9e5Hqf+D$C?@e%LMv9`xqV%Vd{{;OCLeH)Fr^W zDuL7cO=%h&@-dphtV=olKPbYjJ599hQGQQ8c=(=)zDSG^YH`ymq7*xxil!ebV~F|T zy82zT-*=>wC`1j42t=RJ03vFLe7NgZv4> zbnub^>J+}QJh)3eE^faeIEvgtQnajqxwIZ{HgRmXDeLoMw}ZQHy+y+%YLfgjmIYdO zDL6haKKZ!y+QX_9i-%hjAnTm%0!MckIJM85wl{Cmv3IkMpQMetRxCiFq{gBGIk;6- z$%#8QUXl>=In!ccHHowBVcsdT>=9(i;7P)1JbBN?(?K6sdR)W`&V$Q%o3uHHHyIucALp9)La z<17s#$)88u4B4rLSAK@!=9skA%5ND0m1Xf3RwJpz)K-ZFe>CNqrY`d3_d!^oZRUR$ o0fzF!^mlOzm;$DNDPYp`2XwJ678n)c*#H0l07*qoM6N<$f?M`;1ONa4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x.png b/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5657b2852b254312e4630582d541555ab86961d8 GIT binary patch literal 810 zcmV+_1J(SAP)Y94?gMa&Jcbo#%WsSU(9e5Hqf+D$C?@e%LMv9`xqV%Vd{{;OCLeH)Fr^W zDuL7cO=%h&@-dphtV=olKPbYjJ599hQGQQ8c=(=)zDSG^YH`ymq7*xxil!ebV~F|T zy82zT-*=>wC`1j42t=RJ03vFLe7NgZv4> zbnub^>J+}QJh)3eE^faeIEvgtQnajqxwIZ{HgRmXDeLoMw}ZQHy+y+%YLfgjmIYdO zDL6haKKZ!y+QX_9i-%hjAnTm%0!MckIJM85wl{Cmv3IkMpQMetRxCiFq{gBGIk;6- z$%#8QUXl>=In!ccHHowBVcsdT>=9(i;7P)1JbBN?(?K6sdR)W`&V$Q%o3uHHHyIucALp9)La z<17s#$)88u4B4rLSAK@!=9skA%5ND0m1Xf3RwJpz)K-ZFe>CNqrY`d3_d!^oZRUR$ o0fzF!^mlOzm;$DNDPYp`2XwJ678n)c*#H0l07*qoM6N<$f?M`;1ONa4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-20x20@3x.png b/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..426b951de7d94b17b833f31064c404bd125f5119 GIT binary patch literal 1147 zcmV->1cdvEP)~2r@bmjY3PtUkQXV;{AW}8$&Gu_bD)bD%OSL1Ej zJ*ROA4G)*tu)r4B0$X4UY=JGX1-8Hz*aBPN-T*7P9H;Y~B*6dKe{!z+*Rz(%iC&?= zTxe4kH+5Es`W24XHQxC)LW0Gb?>#W68DQ0*!uDG_ zpWQ#!#9ya1`n-HC6LxY|YyBt`wr9Y3uzydanx#1pmjK%n;5^tPrxH9Rnyt?pS z$BD$4F*Qvezhk|N`n)#6sU&a~plHUsKW|8>s1|8`*D4#Fs%S2^G;@{ax#i3$!LX2sLe zV4rIDrm{gZUL$+l4-Uro{&3SY2ME38dKZsx^>C&{e=Z%E8qMoe(7#_DjiiQdbwuR7 zXSey-be)Uo1(f2?<;O*xFNgsNTH})mUfUP7HP7+NLjhI|q&>2ti;^xRg8V^1wr}>0 z#pa^MnX1-FBXHOD0CNppcmV4uaHeTS@Hf7UOqYYHicx&q1{aTPF5aJ=vLLeRO5^-Z zJl)FG)3Whr`pQaBe&dCE0<2%>U~0ZNe|Cy?SI0?HP^K00yF}ec;nc)u5B}N29_c|7 zj^Cgl-hQ+Xm)BCQ7vaxdk+6iDl4klBQbuNt_zCH7u%_0_@MkvO_e$eF@RjlHPWQ+r=*&8>?3>!E5LwJ^(vfLPdxpp`)pQbe)SCRhg~0YwlS zwG<(m#zG50L`1Mil#5Bs-F}TTZ*TEC*^p-hx!2s@&hGqn{%_{L>-CO&A*}QA@DElC z`u{<7*$WL{sns8ns64KeV`z;hYoYOLVgWAl`Pq3wBQ6JC5lWONx^OVSP_Ku2^ewSe zH^&dtx5MD(sSpQtno{6pp>i)Ze+Tz?*xzFirDUt~_|8uYgrmDWj1C0Y+^O*FO$N_6 zXr$ty=ayLBI@$kH;ml{kv8sp5M*>W}PH|>DvavQF$jDLm8qTO0X87PES9qK&zj!#n z<5wxp--_UKOsdStVI$>W26DsnS99Q_7b(s$P+(<&tAc9Y$a$7`V0R8&;)c0;KbO>B z1+X+!WL<0!s@pZL4F;IzhS|V-H_RO!b7K+x1#^&U;smI)DcqS(aAK^E$)}0!W|3NE z*wc=oTnqz&m+v!-+>OxPp>X42jJLCd;X?s>wrXn}M!Vco$`jUjY-I35mR3yS((TBG zuk?p@RFc$@BNa;$>ZaCm+`*MUf0yF=gBaVo70&kgR%Yd*(xOK?H!8IAo))&4WIz|6 z8-J2mCz8EAx!1QcYqbV*pzo}3Vk*Ih8X;hFD8@rI4S)1rgwy+cY+)-D1y+(-mHjZ2 z88u935Anl@sHWT!7lWvT%H2y`q!ifCCLreowyE;__?n<;w*2carPeo63%bthD=I3{ UZ-ci9R{#J207*qoM6N<$g4u*G{Qv*} literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..429a5af6313a6b0e4f5f40f451ec0c4894ce25fa GIT binary patch literal 1068 zcmV+{1k?M8P)KJcC1PB}kRXw`kl;it;lRZ*C$YuF2?qyjBoboW5X3=(1A-8Q zIf#UV#J-LMu`e^m%;@Uss?U30b@v#vo2u5G`QE9!y1(lB)%(Bqz4xjk)3!BB^Z|>Y zkC+D4pc+(zYETWTK{cob)u0-*n`VfX*OL08p0q}S*8Z_vt(7uQL4P@b=lQQKI(x+E z9xUG=I|Za%AK0TsCao=s^z3Hk40P-;fug8T7yiCZ;(L?q5|)7)6F^0|z~B-An{HOz z;$srEpJlgiR?a|O^5l-i7RHnt>izBuNu0Qq!oYq)eb(*;n85c&iCN=K>|GjD&}%~2Z<-g@XC7fQx?oprkl zS-qkK^2aZU)kkbR``}?VwHD2pRd z$ee@z4Jp%c{jScJ>xX)RED9bnr=T4{zWz#(lz6`Wlqd-aGB=>ohy2peTCNQF@{@

( z*%M8a#C(cN_gs~DGM^1871*-KLc);{h3rxGl9O(^u0C|J^-K~qPh1?j;V92?OE!Z% zUNt?6x@NyaDM(N*=vktd@4MJ^GO4zhp=AOGYf`xP#zQRPe`mv-D5g}H_?c*tc0qwM z7<+Q_siexR>{;G!Sf<;~CRJ=2>0jSYtsNH&83hzvGP?QPRsCcn-A{76#e3$9j~@11 zOsem&ghve$*f`%p6SZeXA%ey&k@aN8xWwZ|{Pdj^u0M8_gxR}uCz)6>HG;aPaN^Yn zw=!zKV`k6tP1t=tsj4O`U7u}QV4-q^L5+8dtP29Pv(k{^xHa2;&X+I`#n_V^uU0xy zi9!d>?4<)}f^hATi<7rgDvlEl57!Kpi5qCr5TsZC8)yc$j3x=yR~(uucr-oqGcU*L zyvY&N2Nk5{=T1tE9 z-PbM-Ty?U^s+jtKT~rUpqW=5dvWlSpP&Il;&j;9lDq!qzL#^dx#E`Wl=^(rsc;o&2 zqoj+JJ$@vSsgHSKJcC1PB}kRXw`kl;it;lRZ*C$YuF2?qyjBoboW5X3=(1A-8Q zIf#UV#J-LMu`e^m%;@Uss?U30b@v#vo2u5G`QE9!y1(lB)%(Bqz4xjk)3!BB^Z|>Y zkC+D4pc+(zYETWTK{cob)u0-*n`VfX*OL08p0q}S*8Z_vt(7uQL4P@b=lQQKI(x+E z9xUG=I|Za%AK0TsCao=s^z3Hk40P-;fug8T7yiCZ;(L?q5|)7)6F^0|z~B-An{HOz z;$srEpJlgiR?a|O^5l-i7RHnt>izBuNu0Qq!oYq)eb(*;n85c&iCN=K>|GjD&}%~2Z<-g@XC7fQx?oprkl zS-qkK^2aZU)kkbR``}?VwHD2pRd z$ee@z4Jp%c{jScJ>xX)RED9bnr=T4{zWz#(lz6`Wlqd-aGB=>ohy2peTCNQF@{@

( z*%M8a#C(cN_gs~DGM^1871*-KLc);{h3rxGl9O(^u0C|J^-K~qPh1?j;V92?OE!Z% zUNt?6x@NyaDM(N*=vktd@4MJ^GO4zhp=AOGYf`xP#zQRPe`mv-D5g}H_?c*tc0qwM z7<+Q_siexR>{;G!Sf<;~CRJ=2>0jSYtsNH&83hzvGP?QPRsCcn-A{76#e3$9j~@11 zOsem&ghve$*f`%p6SZeXA%ey&k@aN8xWwZ|{Pdj^u0M8_gxR}uCz)6>HG;aPaN^Yn zw=!zKV`k6tP1t=tsj4O`U7u}QV4-q^L5+8dtP29Pv(k{^xHa2;&X+I`#n_V^uU0xy zi9!d>?4<)}f^hATi<7rgDvlEl57!Kpi5qCr5TsZC8)yc$j3x=yR~(uucr-oqGcU*L zyvY&N2Nk5{=T1tE9 z-PbM-Ty?U^s+jtKT~rUpqW=5dvWlSpP&Il;&j;9lDq!qzL#^dx#E`Wl=^(rsc;o&2 zqoj+JJ$@vSsgHS}2P)1i$6vxk*@V zhsOOJDnh6TKfM)G)Kix2C+^r3b< zJ0o#jd$^T_1B#ppo4_AS$8vyJ{H-bA}ap9*U941xi1y*agX|ON#1GY`n5pEY?_x;JC zMnkY#!o~Dd6=8aVRjQ!nWCXXp?80xyBbZpJCs^&^V%m>&hPE!~1J+0~uY-R_uzZ6H zzn_Spx)O5Lv8PP&wYt*+Y`dJiSP57R1FGI~tc}CrmPj1a8?07vRUECGf|FN8Nhm-K zi=K+J$n;obXGe74sL`)DGMPl&%VP5oHRgYbBg9DSR4Os^^7{MKsF0P*y>=+(T zq}aEII4s-XLBoe$Nu3sBE$Z6U*V}S=h&*?QY9UOdSktdurnCsX`51?%K8cqu(5vw{ z0-it9ge8|-@K1-H@mH&l6ei%lY7V8`ijs*8wd}@5A9no`O7B(gL%Vx{4f8HAp}iZl zi@(}@9G-aWE>YFG?+s6W{cW>nF|lAVSo@JLlM951KUc>ZZgj*Ah?nabBe;FQqKEDf zb=VbedJ>*x^uWUrM_v1iX5&va5>aEYZL?Hr(Vug&nsv{4G1U3MSTY*L@zqcOrYUQt}ML#G;EW z`N&)UmL*)3*x>`SHjI8--3m6tYT(IaEB@1u(*Rw(~oTO`hCwsqIx#9){x8aqZxmVJUvd0QEJR8&uT>W zwq1mVw;SW^4JSEBwg*&;!q4hOwtUW`{{h@eJ03CBMQ1|ck5IBUCrkY+AU-Qv^A8;7 z(wp&oIHKY55bEDfcl5m1%A;nB7q|D1cy%GYC&CS~UwD+P!*z6H_U6ky7ue>+QhPCQ z55|mh85|KS$BqRf-eu16`Y)t-;b(d`kAmn2@%el2=)q(7jT!TMA|%KW*oTJaz}-O7 zGY8m<24lS`Bsz@=EX%ngYG(r4o=Qe=2`<4UBe(>Y;F1wsf=h782rj`TBe(>Y;F1ws kf=h782rj`TxMW%EKWNpF0j5ga?EnA(07*qoM6N<$g2t-+*8l(j literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@1x.png b/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..5657b2852b254312e4630582d541555ab86961d8 GIT binary patch literal 810 zcmV+_1J(SAP)Y94?gMa&Jcbo#%WsSU(9e5Hqf+D$C?@e%LMv9`xqV%Vd{{;OCLeH)Fr^W zDuL7cO=%h&@-dphtV=olKPbYjJ599hQGQQ8c=(=)zDSG^YH`ymq7*xxil!ebV~F|T zy82zT-*=>wC`1j42t=RJ03vFLe7NgZv4> zbnub^>J+}QJh)3eE^faeIEvgtQnajqxwIZ{HgRmXDeLoMw}ZQHy+y+%YLfgjmIYdO zDL6haKKZ!y+QX_9i-%hjAnTm%0!MckIJM85wl{Cmv3IkMpQMetRxCiFq{gBGIk;6- z$%#8QUXl>=In!ccHHowBVcsdT>=9(i;7P)1JbBN?(?K6sdR)W`&V$Q%o3uHHHyIucALp9)La z<17s#$)88u4B4rLSAK@!=9skA%5ND0m1Xf3RwJpz)K-ZFe>CNqrY`d3_d!^oZRUR$ o0fzF!^mlOzm;$DNDPYp`2XwJ678n)c*#H0l07*qoM6N<$f?M`;1ONa4 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000000000000000000000000000000000000..3f173612cb0a2cbd72cd25677aeddb17c82dee37 GIT binary patch literal 1432 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-512@2x.png b/src-tauri/icons/ios/AppIcon-512@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b37f2315c64acb46dfa141bfd7061ccca389bdc GIT binary patch literal 14000 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-60x60@3x.png b/src-tauri/icons/ios/AppIcon-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2306b3ae00453758e905e0e88ae4449d61a85cd3 GIT binary patch literal 2899 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 literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-76x76@1x.png b/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..e1b5cd15f661351e57f43ea8c3abec464c8a9372 GIT binary patch literal 1409 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 KJM(H&EaBhQp2~Ls literal 0 HcmV?d00001 diff --git a/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..40d0df9ef4ce193c88ba996a728762c29c506227 GIT binary patch literal 2764 zcmb7GX*e6`7S`!v=+wT{Qnj>{QjMjW+7+=YX)HmtYU@~XB`P98uU4(4K{X^qM+sU~ zqcql0wAQG`7E5%o)DpP~K?J=z&-|Zze|+bC&w0-BocH|s(yqCHP6*2j3kV3Du(z{z zKS0vY_v^6(8!h9sDj*=7Yj16NJ$8~=gwFJZ$o<)lW(};CPUSZ|x09BS$dm6DbOY3g zb}5TlqINC68i%Svy0oBYl_!$zKHmIO@Q}PC7HXYZ4+%f+p{0O=70P7vlzNB>dj;~L zF$>h`72aA=b5V^kGMLnCj9l1H=zZ|1=uR*)0Zm0xw~APSar}pvLw3q?2}kY`1bT#e zgzgdkB7ehA|NjgBQ?*ccU6}a?{Vff?(A%r@*Vf@-m|C{UIs;4QeiV)PI6Ym>f$#?) zeQP3)@PY;5Dt8$NRes8z#iyn&16Cu6mh*DvMp8p7K?^#Dd79x$?ajP^%`s|dDOvy` zMe+it){CQqIz?OLO8ITKu%(M$oB}Ypj%C?B%5o;^llyaKO`&-@Lvf$5&hNix6W)}A zPC+*C2B&vO=8v&i^0Ul^MAX6;MS$p* z73N>ac7^44%e;g^Lw%rUC(T?*V8=rJfGS)q{!Z^}-Q<8}wEUh~X-a}xjyYvfYwbZNuZCllOGnu zFZTQ~{6u=MW?-%E{WQwLB{Uu9x!n_*vZ+kI1zC}38Ov}pc?Y7OEJc#tw~k)u(3nOF?3<~ zLC-XbF020!yf9}1k(x#jl0Y<8;;yjDG1oTBDe!}#<>_+q%qQ_}m>|@RhW1rKo6bAF zPt-zw>Bih?6sKk4hT6UgLUs;H)5O+!o}J=|#S(F{BmhgM2NZhgeM?=PD9a$W?1t3B zM9Njv;p)}{B!5mImVQBAQKDc>rBd^&1@%D&Z%fvMS4h7(E}1_AJeX=Pv7Q>0PT>Mw z+ald_nuZz4xE^3Zzy*aA+~FS^a|-9zJANR8#U+7wopRZ9-e=lb-dL5@zmAJ7Z{*zT9lo7FI_>FKykf+SyI#X!BhuY$dhk{uN|oF<35+wT8# z;2zF96SZ5E zeh3JHp3y?5Tm`^hs+9Ye+BBwD)Q)~@nKf54`V=7knEcFRyw8oyv~U_M@RTM`H~IKW z-j!8CNHuhBuiuA7&1Ia{V=s!aHQ)}nWsg(@%3@5;e^9(5h@ZcmHV280;}84QnB3ON ze2J5$`0X2Q%*M~+73uogUBn(bu4K3%YN}?Y@%zrB8sAo`Y3ST3G7||rKZ1;*Dt7*w zy$?M|L!AR-3<0`rrr{Ob_mun%bMKt_Eol&ZY1GzrZ*s-?H-0M(p%*CQtDW^2VO1fu z-rOi1$Xs{@b7P!<)xGVAKFQdG!OpzT%rJK~8^aD0g5 z(^#3ow!e^}*)ERg8nHCw!0h)mIfXe9V{F zSpK&B@0An!gBxv(Xq7Saxl*ZM-`&c^wEV(dbUikk*rR#7>S=vy)S-6b-i!3e+n?NpB@I9FzL^ld{0h50Pt zBE%EVIN!fge|hdLFH2L*K4dqI0QOS2G9#t&V>NPonjqfZDph7wx()8OiXzlBoZy?GTno2LCNf0R zDicN&l`RM47A^I(tA&usAYgxegXR(Z1~@!RSXlH$(=&Qfv87>;)>{e45xd0 z)oq@gRf6Wc+hi7J5`=n{mX@2Z2@fgR$f|cqn}htJ^3kph_ZiMinMBo)Bsj}dJ%2i2 zt*0gCz7GPesZ~pRDEhP*d!j3NE_}3-W_~d_E5RC2OnksRn`_!MU)%i|`mUm*(~ISO z+JkrPM(tAZE((!^7-wu2GMM#&fd)Y*{Txb8-<((TY3 z`d`?IxM3DdC5NSxp%mXd#z-b@IGClso;QAJ%FzQh`i>^<(yjI5YKSK%4}Pfv_BJloHC8v1{tL7J BXe9su literal 0 HcmV?d00001 diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index 758f49f..53894c9 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -1,66 +1,243 @@ -use crate::models::{Config, ProfileSummary}; +use crate::models::{Agent, Config, DiscoveredModel, Provider, ProviderType}; +use crate::pi_io; +use tauri_plugin_opener::OpenerExt; + +fn fmt_anyhow(err: anyhow::Error) -> String { + err.chain() + .map(|e| e.to_string()) + .collect::>() + .join(": ") +} #[tauri::command] -pub fn load_config_command() -> Config { - Config { - default_model: None, - providers: indexmap::IndexMap::new(), - models: indexmap::IndexMap::new(), - raw_other: toml_edit::Table::new(), +pub fn debug_log(message: String) { + eprintln!("[frontend] {}", message); +} + +#[tauri::command] +pub fn load_agent_config_command(agent: Agent) -> Result { + match agent { + Agent::KimiCode => crate::kimi_code_io::load_kimi_code_config_as_config() + .map_err(fmt_anyhow), + Agent::Pi => { + let file = pi_io::load_pi_models().map_err(fmt_anyhow)?; + Ok(pi_io::pi_file_to_config(&file)) + } } } #[tauri::command] -pub fn save_config_command(_config: Config) -> Result<(), String> { - Ok(()) -} - -#[tauri::command] -pub fn list_profiles() -> Vec { - Vec::new() -} - -#[tauri::command] -pub fn load_profile(_filename: String) -> Config { - Config { - default_model: None, - providers: indexmap::IndexMap::new(), - models: indexmap::IndexMap::new(), - raw_other: toml_edit::Table::new(), +pub fn save_agent_config_command(agent: Agent, config: Config) -> Result<(), String> { + match agent { + Agent::KimiCode => crate::kimi_code_io::save_config_as_kimi_code(&config).map_err(fmt_anyhow), + Agent::Pi => { + let file = pi_io::config_to_pi_file(&config); + pi_io::save_pi_models(&file).map_err(fmt_anyhow) + } } } #[tauri::command] -pub fn save_profile(_filename: String, _config: Config) -> Result<(), String> { - Ok(()) -} - -#[tauri::command] -pub fn switch_profile(_filename: String) -> Result { - Ok(Config { - default_model: None, - providers: indexmap::IndexMap::new(), - models: indexmap::IndexMap::new(), - raw_other: toml_edit::Table::new(), - }) -} - -#[tauri::command] -pub fn rename_profile(_old_filename: String, _new_name: String) -> Result { - Ok(String::new()) -} - -#[tauri::command] -pub fn delete_profile(_filename: String) -> Result<(), String> { - Ok(()) -} - -#[tauri::command] -pub fn open_config_dir() -> Result<(), String> { - Ok(()) +pub fn open_agent_config_dir(app: tauri::AppHandle, agent: Agent) -> Result<(), String> { + let path = agent.config_dir(); + std::fs::create_dir_all(&path).map_err(|e| e.to_string())?; + let path_str = path.to_string_lossy().to_string(); + app.opener() + .open_path(&path_str, None::<&str>) + .map_err(|e| e.to_string()) } #[tauri::command] pub fn get_app_version() -> String { env!("CARGO_PKG_VERSION").to_string() } + +/// Fetch available models from a provider's API. +#[tauri::command] +pub async fn list_provider_models(provider: Provider) -> Result, String> { + let api_key = resolve_api_key(&provider) + .ok_or_else(|| format!("Provider '{}' has no API key configured", provider.name))?; + + let base = resolve_base_url(&provider); + + match provider.provider_type { + ProviderType::Kimi | ProviderType::Openai | ProviderType::OpenaiResponses => { + fetch_openai_models(&base, &api_key).await + } + ProviderType::Anthropic => fetch_anthropic_models(&base, &api_key).await, + ProviderType::GoogleGenai => fetch_google_genai_models(&base, &api_key).await, + ProviderType::Vertexai => Err("Vertex AI model discovery requires GCP project/location configuration and is not yet supported".to_string()), + } +} + +fn resolve_api_key(provider: &Provider) -> Option { + if provider.managed { + return Some("managed".to_string()); + } + if let Some(key) = &provider.api_key { + if !key.is_empty() { + return Some(key.clone()); + } + } + let env_key = expected_api_key_key(&provider.provider_type); + provider.env.get(env_key).filter(|s| !s.is_empty()).cloned() +} + +fn resolve_base_url(provider: &Provider) -> String { + provider + .base_url + .clone() + .filter(|s| !s.is_empty()) + .unwrap_or_else(|| { + provider + .provider_type + .default_base_url() + .unwrap_or("") + .to_string() + }) +} + +fn expected_api_key_key(provider_type: &ProviderType) -> &'static str { + match provider_type { + ProviderType::Kimi => "KIMI_API_KEY", + ProviderType::Anthropic => "ANTHROPIC_API_KEY", + ProviderType::Openai | ProviderType::OpenaiResponses => "OPENAI_API_KEY", + ProviderType::GoogleGenai => "GOOGLE_API_KEY", + ProviderType::Vertexai => "VERTEXAI_API_KEY", + } +} + +// ── OpenAI-compatible /models endpoint ────────────────────────────── + +async fn fetch_openai_models(base: &str, api_key: &str) -> Result, String> { + let url = format!("{}/models", base.trim_end_matches('/')); + let resp = reqwest::Client::new() + .get(&url) + .bearer_auth(api_key) + .send() + .await + .map_err(|e| format!("HTTP request to {} failed: {e}", url))?; + + if !resp.status().is_success() { + return Err(format!("{} returned HTTP {}", url, resp.status())); + } + + #[derive(serde::Deserialize)] + struct OaiModel { + id: String, + } + #[derive(serde::Deserialize)] + struct OaiList { + data: Vec, + } + + let body: OaiList = resp + .json() + .await + .map_err(|e| format!("failed to parse response from {}: {e}", url))?; + + Ok(body + .data + .into_iter() + .map(|m| DiscoveredModel { + id: m.id, + display_name: None, + max_context_size: None, + }) + .collect()) +} + +// ── Anthropic /v1/models endpoint ─────────────────────────────────── + +async fn fetch_anthropic_models(base: &str, api_key: &str) -> Result, String> { + let url = format!("{}/v1/models", base.trim_end_matches('/')); + let resp = reqwest::Client::new() + .get(&url) + .header("x-api-key", api_key) + .header("anthropic-version", "2023-06-01") + .send() + .await + .map_err(|e| format!("HTTP request to {} failed: {e}", url))?; + + if !resp.status().is_success() { + return Err(format!("{} returned HTTP {}", url, resp.status())); + } + + #[derive(serde::Deserialize)] + struct AntModel { + id: String, + display_name: Option, + } + #[derive(serde::Deserialize)] + struct AntList { + data: Vec, + } + + let body: AntList = resp + .json() + .await + .map_err(|e| format!("failed to parse response from {}: {e}", url))?; + + Ok(body + .data + .into_iter() + .map(|m| DiscoveredModel { + id: m.id, + display_name: m.display_name, + max_context_size: None, + }) + .collect()) +} + +// ── Google GenAI /v1beta/models endpoint ──────────────────────────── + +async fn fetch_google_genai_models( + base: &str, + api_key: &str, +) -> Result, String> { + let url = format!( + "{}/v1beta/models?key={}", + base.trim_end_matches('/'), + api_key + ); + let resp = reqwest::Client::new() + .get(&url) + .send() + .await + .map_err(|e| format!("HTTP request to {} failed: {e}", url))?; + + if !resp.status().is_success() { + return Err(format!("{} returned HTTP {}", url, resp.status())); + } + + #[derive(serde::Deserialize)] + struct GglModel { + name: String, + #[serde(rename = "displayName")] + display_name: Option, + #[serde(rename = "outputTokenLimit")] + output_token_limit: Option, + } + #[derive(serde::Deserialize)] + struct GglList { + models: Vec, + } + + let body: GglList = resp + .json() + .await + .map_err(|e| format!("failed to parse response from {}: {e}", url))?; + + Ok(body + .models + .into_iter() + .map(|m| { + let id = m.name.strip_prefix("models/").unwrap_or(&m.name).to_string(); + DiscoveredModel { + id, + display_name: m.display_name, + max_context_size: m.output_token_limit, + } + }) + .collect()) +} diff --git a/src-tauri/src/kimi_code_io.rs b/src-tauri/src/kimi_code_io.rs new file mode 100644 index 0000000..4ff2e55 --- /dev/null +++ b/src-tauri/src/kimi_code_io.rs @@ -0,0 +1,503 @@ +//! Kimi Code configuration I/O. +//! +//! Kimi Code stores its configuration in `~/.kimi-code/config.toml`. +//! This module reads/writes that file and converts between Kimi's TOML +//! format and Pi Switch's internal `Config`/`Provider`/`Model` types. + +use std::path::PathBuf; + +use anyhow::Context; +use indexmap::IndexMap; +use serde_json::Value; +use toml::value::{Table, Value as TomlValue}; + +use crate::models::{Agent, Config, Model, Provider, ProviderType}; + +pub type KimiResult = anyhow::Result; + +pub fn kimi_code_config_dir() -> PathBuf { + dirs::home_dir() + .map(|h| h.join(".kimi-code")) + .expect("failed to resolve home directory") +} + +pub fn kimi_code_config_path() -> PathBuf { + kimi_code_config_dir().join("config.toml") +} + +/// Read the existing Kimi Code `config.toml`, or return an empty table if it +/// does not exist yet. +pub fn load_kimi_code_config() -> KimiResult { + let path = kimi_code_config_path(); + if !path.exists() { + return Ok(TomlValue::Table(Table::new())); + } + let content = std::fs::read_to_string(&path) + .with_context(|| format!("failed to read {}", path.display()))?; + let value: TomlValue = content + .parse() + .with_context(|| format!("failed to parse {}", path.display()))?; + Ok(value) +} + +/// Write the given TOML value to Kimi Code's config file, creating the +/// directory if needed and backing up the previous file. +pub fn save_kimi_code_config(value: &TomlValue) -> KimiResult<()> { + let path = kimi_code_config_path(); + if let Some(parent) = path.parent() { + std::fs::create_dir_all(parent) + .with_context(|| format!("failed to create directory {}", parent.display()))?; + } + + if path.exists() { + let timestamp = chrono::Local::now() + .format("%Y%m%d_%H%M%S_%.3f") + .to_string(); + let mut backup_path = path.with_extension(format!("toml.bak.{}", timestamp)); + if backup_path.exists() { + for n in 1..1000 { + let candidate = path.with_extension(format!("toml.bak.{}.{:03}", timestamp, n)); + if !candidate.exists() { + backup_path = candidate; + break; + } + } + } + std::fs::copy(&path, &backup_path) + .with_context(|| format!("failed to back up {} to {}", path.display(), backup_path.display()))?; + } + + let content = toml::to_string_pretty(value) + .with_context(|| "failed to serialize Kimi Code config.toml")?; + std::fs::write(&path, content) + .with_context(|| format!("failed to write {}", path.display()))?; + Ok(()) +} + +/// Import a Kimi Code TOML config into Pi Switch's internal `Config`. +pub fn kimi_code_to_config(value: &TomlValue) -> Config { + let root = value.as_table().cloned().unwrap_or_default(); + + let default_model = root + .get("default_model") + .and_then(|v| v.as_str()) + .map(|s| s.to_string()); + + let mut providers = IndexMap::new(); + let mut models = IndexMap::new(); + + if let Some(providers_table) = root.get("providers").and_then(|v| v.as_table()) { + for (name, pv) in providers_table { + let table = pv.as_table().cloned().unwrap_or_default(); + let provider_type = table + .get("type") + .and_then(|v| v.as_str()) + .map(provider_type_for_kimi_type) + .unwrap_or(ProviderType::Kimi); + + let base_url = table.get("base_url").and_then(|v| v.as_str()).map(|s| s.to_string()); + let api_key = table.get("api_key").and_then(|v| v.as_str()).map(|s| s.to_string()); + let managed = table.contains_key("oauth") + || table.get("managed").and_then(|v| v.as_bool()).unwrap_or(false); + let enabled = table.get("enabled").and_then(|v| v.as_bool()).unwrap_or(true); + + let raw_other = { + let mut rest = table.clone(); + rest.remove("type"); + rest.remove("base_url"); + rest.remove("api_key"); + rest.remove("managed"); + rest.remove("enabled"); + rest.remove("oauth"); + toml_value_to_json(&TomlValue::Table(rest)) + }; + + providers.insert( + name.clone(), + Provider { + name: name.clone(), + provider_type, + base_url: base_url.filter(|s| !s.is_empty()), + api_key: api_key.filter(|s| !s.is_empty()), + env: IndexMap::new(), + note: None, + official_url: None, + managed, + enabled, + raw_other, + }, + ); + } + } + + if let Some(models_table) = root.get("models").and_then(|v| v.as_table()) { + for (alias, mv) in models_table { + let table = mv.as_table().cloned().unwrap_or_default(); + let provider = table + .get("provider") + .and_then(|v| v.as_str()) + .map(|s| s.to_string()) + .unwrap_or_default(); + let model_id = table + .get("model") + .and_then(|v| v.as_str()) + .map(|s| s.to_string()) + .unwrap_or_default(); + let max_context_size = table + .get("max_context_size") + .and_then(|v| v.as_integer()) + .map(|n| n as u64) + .unwrap_or(128_000); + let display_name = table + .get("display_name") + .and_then(|v| v.as_str()) + .map(|s| s.to_string()); + let capabilities: Vec = table + .get("capabilities") + .and_then(|v| v.as_array()) + .map(|arr| { + arr.iter() + .filter_map(|v| v.as_str().map(|s| s.to_string())) + .collect() + }) + .unwrap_or_default(); + let supports_1m = capabilities.iter().any(|c| c == "thinking") + || max_context_size >= 1_000_000; + + let raw_other = { + let mut rest = table.clone(); + rest.remove("provider"); + rest.remove("model"); + rest.remove("max_context_size"); + rest.remove("display_name"); + rest.remove("capabilities"); + toml_value_to_json(&TomlValue::Table(rest)) + }; + + models.insert( + alias.clone(), + Model { + alias: alias.clone(), + provider, + model: model_id, + max_context_size, + display_name, + role: None, + supports_1m, + capabilities, + raw_other, + }, + ); + } + } + + let raw_other = { + let mut rest = root; + rest.remove("default_model"); + rest.remove("providers"); + rest.remove("models"); + toml_value_to_json(&TomlValue::Table(rest)) + }; + + Config { + default_model, + providers, + models, + raw_other, + } +} + +/// Export Pi Switch's internal `Config` to a Kimi Code TOML config value. +/// +/// If `existing` is provided, unknown top-level sections (e.g. `services`) are +/// preserved; otherwise a fresh TOML table is used. +pub fn config_to_kimi_code(config: &Config, existing: Option<&TomlValue>) -> TomlValue { + let mut root = existing + .and_then(|v| v.as_table().cloned()) + .unwrap_or_default(); + + root.insert( + "default_model".to_string(), + config + .default_model + .clone() + .map(TomlValue::String) + .unwrap_or(TomlValue::String("".to_string())), + ); + + let mut providers_table = Table::new(); + for (name, provider) in &config.providers { + let mut pt = Table::new(); + pt.insert("type".to_string(), TomlValue::String(provider.provider_type.as_str().to_string())); + if let Some(base_url) = provider.base_url.clone().filter(|s| !s.is_empty()) { + pt.insert("base_url".to_string(), TomlValue::String(base_url)); + } + if let Some(api_key) = provider.api_key.clone().filter(|s| !s.is_empty()) { + pt.insert("api_key".to_string(), TomlValue::String(api_key)); + } + pt.insert("enabled".to_string(), TomlValue::Boolean(provider.enabled)); + if provider.managed { + // Preserve existing oauth config if present, otherwise create a default entry. + let oauth = provider + .raw_other + .get("oauth") + .and_then(json_to_toml) + .unwrap_or_else(|| { + let mut t = Table::new(); + t.insert("storage".to_string(), TomlValue::String("file".to_string())); + t.insert("key".to_string(), TomlValue::String(format!("oauth/{}", name.replace(':', "-")))); + TomlValue::Table(t) + }); + pt.insert("oauth".to_string(), oauth); + } + // Merge remaining raw fields (oauth is handled explicitly above). + if let TomlValue::Table(mut extra) = json_to_toml(&provider.raw_other).unwrap_or(TomlValue::Table(Table::new())) { + extra.remove("oauth"); + for (k, v) in extra { + pt.insert(k, v); + } + } + providers_table.insert(name.clone(), TomlValue::Table(pt)); + } + root.insert("providers".to_string(), TomlValue::Table(providers_table)); + + let mut models_table = Table::new(); + for (alias, model) in &config.models { + let mut mt = Table::new(); + mt.insert("provider".to_string(), TomlValue::String(model.provider.clone())); + mt.insert("model".to_string(), TomlValue::String(model.model.clone())); + mt.insert( + "max_context_size".to_string(), + TomlValue::Integer(model.max_context_size as i64), + ); + if let Some(display_name) = model.display_name.clone().filter(|s| !s.is_empty()) { + mt.insert("display_name".to_string(), TomlValue::String(display_name)); + } + let mut capabilities = model.capabilities.clone(); + if model.supports_1m && !capabilities.iter().any(|c| c == "thinking") { + capabilities.push("thinking".to_string()); + } + if !capabilities.is_empty() { + mt.insert( + "capabilities".to_string(), + TomlValue::Array(capabilities.into_iter().map(TomlValue::String).collect()), + ); + } + if let TomlValue::Table(mut extra) = json_to_toml(&model.raw_other).unwrap_or(TomlValue::Table(Table::new())) { + extra.remove("provider"); + extra.remove("model"); + extra.remove("max_context_size"); + extra.remove("display_name"); + extra.remove("capabilities"); + for (k, v) in extra { + mt.insert(k, v); + } + } + models_table.insert(alias.clone(), TomlValue::Table(mt)); + } + root.insert("models".to_string(), TomlValue::Table(models_table)); + + TomlValue::Table(root) +} + +fn provider_type_for_kimi_type(typ: &str) -> ProviderType { + match typ { + "anthropic" => ProviderType::Anthropic, + "openai" => ProviderType::Openai, + "openai_responses" => ProviderType::OpenaiResponses, + "google-genai" => ProviderType::GoogleGenai, + "vertexai" => ProviderType::Vertexai, + _ => ProviderType::Kimi, + } +} + +fn toml_value_to_json(value: &TomlValue) -> Value { + match value { + TomlValue::String(s) => Value::String(s.clone()), + TomlValue::Integer(n) => Value::Number((*n).into()), + TomlValue::Float(n) => Value::Number(serde_json::Number::from_f64(*n).unwrap_or(Value::Null.as_u64().unwrap_or(0).into())), + TomlValue::Boolean(b) => Value::Bool(*b), + TomlValue::Array(arr) => Value::Array(arr.iter().map(toml_value_to_json).collect()), + TomlValue::Table(t) => { + let mut map = serde_json::Map::new(); + for (k, v) in t { + map.insert(k.clone(), toml_value_to_json(v)); + } + Value::Object(map) + } + TomlValue::Datetime(dt) => Value::String(dt.to_string()), + } +} + +fn json_to_toml(value: &Value) -> Option { + match value { + Value::Null => None, + Value::Bool(b) => Some(TomlValue::Boolean(*b)), + Value::Number(n) => { + if let Some(i) = n.as_i64() { + Some(TomlValue::Integer(i)) + } else if let Some(f) = n.as_f64() { + Some(TomlValue::Float(f)) + } else { + None + } + } + Value::String(s) => Some(TomlValue::String(s.clone())), + Value::Array(arr) => Some(TomlValue::Array( + arr.iter().filter_map(json_to_toml).collect(), + )), + Value::Object(obj) => { + let mut t = Table::new(); + for (k, v) in obj { + if let Some(tv) = json_to_toml(v) { + t.insert(k.clone(), tv); + } + } + Some(TomlValue::Table(t)) + } + } +} + +/// Convenience entry point used by commands: load and convert. +pub fn load_kimi_code_config_as_config() -> KimiResult { + let value = load_kimi_code_config()?; + Ok(kimi_code_to_config(&value)) +} + +/// Convenience entry point used by commands: convert and save. +pub fn save_config_as_kimi_code(config: &Config) -> KimiResult<()> { + let existing = load_kimi_code_config().ok(); + let value = config_to_kimi_code(config, existing.as_ref()); + save_kimi_code_config(&value) +} + +/// Open the Kimi Code config directory in the system file manager. +pub fn open_kimi_code_config_dir() -> KimiResult<()> { + let path = kimi_code_config_dir(); + std::fs::create_dir_all(&path) + .with_context(|| format!("failed to create directory {}", path.display()))?; + Ok(()) +} + +impl Agent { + pub fn config_dir(&self) -> PathBuf { + match self { + Agent::KimiCode => kimi_code_config_dir(), + Agent::Pi => crate::pi_io::pi_agent_dir(), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn kimi_code_import_extracts_providers_and_models() { + let toml_str = r#" +default_model = "kimi-code/kimi-for-coding" +default_thinking = true + +[providers."managed:kimi-code"] +type = "kimi" +api_key = "" +base_url = "https://api.kimi.com/coding/v1" + +[providers."managed:kimi-code".oauth] +storage = "file" +key = "oauth/kimi-code" + +[models."kimi-code/kimi-for-coding"] +provider = "managed:kimi-code" +model = "kimi-for-coding" +max_context_size = 262144 +capabilities = ["thinking", "always_thinking", "image_in", "video_in", "tool_use"] +display_name = "K2.7 Code" + +[services.moonshot_search] +base_url = "https://api.kimi.com/coding/v1/search" +api_key = "" +"#; + let value: TomlValue = toml_str.parse().unwrap(); + let config = kimi_code_to_config(&value); + + assert_eq!(config.default_model.as_deref(), Some("kimi-code/kimi-for-coding")); + assert_eq!(config.providers.len(), 1); + assert_eq!(config.models.len(), 1); + + let provider = config.providers.get("managed:kimi-code").unwrap(); + assert_eq!(provider.provider_type, ProviderType::Kimi); + assert!(provider.managed); + assert_eq!(provider.base_url.as_deref(), Some("https://api.kimi.com/coding/v1")); + + let model = config.models.get("kimi-code/kimi-for-coding").unwrap(); + assert_eq!(model.provider, "managed:kimi-code"); + assert_eq!(model.model, "kimi-for-coding"); + assert_eq!(model.max_context_size, 262144); + assert!(model.capabilities.contains(&"thinking".to_string())); + assert!(model.supports_1m); + + // Unknown top-level sections are preserved. + let services = config.raw_other.get("services"); + assert!(services.is_some()); + } + + #[test] + fn kimi_code_export_roundtrip_preserves_model() { + let mut providers = IndexMap::new(); + providers.insert( + "glmzhongzhuan".to_string(), + Provider { + name: "glmzhongzhuan".to_string(), + provider_type: ProviderType::Anthropic, + base_url: Some("https://fast.cdks.work".to_string()), + api_key: Some("sk-test".to_string()), + env: IndexMap::new(), + note: None, + official_url: None, + managed: false, + enabled: true, + raw_other: Value::Null, + }, + ); + let mut models = IndexMap::new(); + models.insert( + "glm-5.2".to_string(), + Model { + alias: "glm-5.2".to_string(), + provider: "glmzhongzhuan".to_string(), + model: "glm-5.2".to_string(), + max_context_size: 900_000, + display_name: None, + role: None, + supports_1m: true, + capabilities: vec!["thinking".to_string()], + raw_other: Value::Null, + }, + ); + let config = Config { + default_model: Some("glm-5.2".to_string()), + providers, + models, + raw_other: Value::Null, + }; + + let exported = config_to_kimi_code(&config, None); + let root = exported.as_table().unwrap(); + assert_eq!( + root.get("default_model").and_then(|v| v.as_str()), + Some("glm-5.2") + ); + + let providers_table = root.get("providers").unwrap().as_table().unwrap(); + let provider = providers_table.get("glmzhongzhuan").unwrap().as_table().unwrap(); + assert_eq!(provider.get("type").and_then(|v| v.as_str()), Some("anthropic")); + assert_eq!(provider.get("api_key").and_then(|v| v.as_str()), Some("sk-test")); + + let models_table = root.get("models").unwrap().as_table().unwrap(); + let model = models_table.get("glm-5.2").unwrap().as_table().unwrap(); + assert_eq!(model.get("model").and_then(|v| v.as_str()), Some("glm-5.2")); + let caps = model.get("capabilities").unwrap().as_array().unwrap(); + assert!(caps.iter().any(|v| v.as_str() == Some("thinking"))); + } +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index eb36fa9..daa46bd 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,23 +1,18 @@ pub mod commands; -pub mod config_io; +pub mod kimi_code_io; pub mod models; -pub mod profile_manager; -pub mod validators; +pub mod pi_io; pub fn run() { tauri::Builder::default() - .plugin(tauri_plugin_shell::init()) + .plugin(tauri_plugin_opener::init()) .invoke_handler(tauri::generate_handler![ - commands::load_config_command, - commands::save_config_command, - commands::list_profiles, - commands::load_profile, - commands::save_profile, - commands::switch_profile, - commands::rename_profile, - commands::delete_profile, - commands::open_config_dir, + commands::load_agent_config_command, + commands::save_agent_config_command, + commands::open_agent_config_dir, commands::get_app_version, + commands::list_provider_models, + commands::debug_log, ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/src/models.rs b/src-tauri/src/models.rs index eb4ec10..d626820 100644 --- a/src-tauri/src/models.rs +++ b/src-tauri/src/models.rs @@ -1,11 +1,27 @@ use indexmap::IndexMap; use serde::{Deserialize, Serialize}; -pub use toml_edit::Table; +use serde_json::Value; -#[derive(Debug, Clone, Serialize, Deserialize)] +/// Target agent whose provider/model config is being edited. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum Agent { + KimiCode, + Pi, +} + +impl Agent { + pub fn as_str(&self) -> &'static str { + match self { + Agent::KimiCode => "kimi_code", + Agent::Pi => "pi", + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum ProviderType { - Kimi, Anthropic, Openai, #[serde(rename = "openai_responses")] @@ -13,19 +29,42 @@ pub enum ProviderType { #[serde(rename = "google-genai")] GoogleGenai, Vertexai, + /// Kept for compatibility; mapped to OpenAI-compatible in Pi. + Kimi, +} + +const fn default_true() -> bool { + true } impl ProviderType { pub fn as_str(&self) -> &'static str { match self { - ProviderType::Kimi => "kimi", ProviderType::Anthropic => "anthropic", ProviderType::Openai => "openai", ProviderType::OpenaiResponses => "openai_responses", ProviderType::GoogleGenai => "google-genai", ProviderType::Vertexai => "vertexai", + ProviderType::Kimi => "kimi", } } + + pub fn default_base_url(&self) -> Option<&'static str> { + match self { + ProviderType::Openai | ProviderType::OpenaiResponses | ProviderType::Kimi => { + Some("https://api.openai.com/v1") + } + ProviderType::GoogleGenai => Some("https://generativelanguage.googleapis.com"), + ProviderType::Anthropic | ProviderType::Vertexai => None, + } + } + + pub fn is_openai_compatible(&self) -> bool { + matches!( + self, + ProviderType::Kimi | ProviderType::Openai | ProviderType::OpenaiResponses + ) + } } #[derive(Clone, Serialize, Deserialize)] @@ -34,11 +73,37 @@ pub struct Provider { pub provider_type: ProviderType, pub base_url: Option, pub api_key: Option, + #[serde(default)] pub env: IndexMap, - #[serde(skip)] - pub raw_other: Table, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub note: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub official_url: Option, + #[serde(default)] + pub managed: bool, + #[serde(default = "default_true")] + pub enabled: bool, + #[serde(default, skip_serializing_if = "Value::is_null")] + pub raw_other: Value, } +impl PartialEq for Provider { + fn eq(&self, other: &Self) -> bool { + self.name == other.name + && self.provider_type == other.provider_type + && self.base_url == other.base_url + && self.api_key == other.api_key + && self.env == other.env + && self.note == other.note + && self.official_url == other.official_url + && self.managed == other.managed + && self.enabled == other.enabled + && self.raw_other == other.raw_other + } +} + +impl Eq for Provider {} + impl std::fmt::Debug for Provider { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("Provider") @@ -47,53 +112,107 @@ impl std::fmt::Debug for Provider { .field("base_url", &self.base_url) .field("api_key", &"") .field("env", &"") - .field("raw_other", &"") + .field("managed", &self.managed) + .field("enabled", &self.enabled) + .field("raw_other", &"") .finish() } } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] pub struct Model { pub alias: String, pub provider: String, pub model: String, pub max_context_size: u64, pub display_name: Option, - #[serde(skip)] - pub raw_other: Table, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub supports_1m: bool, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub capabilities: Vec, + #[serde(default, skip_serializing_if = "Value::is_null")] + pub raw_other: Value, } +impl std::fmt::Debug for Model { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Model") + .field("alias", &self.alias) + .field("provider", &self.provider) + .field("model", &self.model) + .field("max_context_size", &self.max_context_size) + .field("display_name", &self.display_name) + .field("role", &self.role) + .field("supports_1m", &self.supports_1m) + .field("capabilities", &self.capabilities) + .field("raw_other", &"") + .finish() + } +} + +impl PartialEq for Model { + fn eq(&self, other: &Self) -> bool { + self.alias == other.alias + && self.provider == other.provider + && self.model == other.model + && self.max_context_size == other.max_context_size + && self.display_name == other.display_name + && self.role == other.role + && self.supports_1m == other.supports_1m + && self.capabilities == other.capabilities + && self.raw_other == other.raw_other + } +} + +impl Eq for Model {} + #[derive(Clone, Serialize, Deserialize)] pub struct Config { pub default_model: Option, + #[serde(default)] pub providers: IndexMap, + #[serde(default)] pub models: IndexMap, - #[serde(skip)] - pub raw_other: Table, + #[serde(default, skip_serializing_if = "Value::is_null")] + pub raw_other: Value, } +impl PartialEq for Config { + fn eq(&self, other: &Self) -> bool { + self.default_model == other.default_model + && self.providers == other.providers + && self.models == other.models + && self.raw_other == other.raw_other + } +} + +impl Eq for Config {} + impl std::fmt::Debug for Config { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("Config") .field("default_model", &self.default_model) - .field("providers", &format!("{} providers", self.providers.len())) + .field( + "providers", + &format!( + "{:?} ({} providers)", + self.providers.keys().collect::>(), + self.providers.len() + ), + ) .field("models", &self.models) - .field("raw_other", &"
") + .field("raw_other", &"") .finish() } } -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct ProfileSummary { - pub name: String, - pub filename: String, - pub is_active: bool, -} - -#[derive(Debug, Clone)] -pub struct Profile { - pub name: String, - pub filename: String, - pub config: Config, - pub is_active: bool, +/// A model discovered from a provider's API endpoint. +/// The frontend uses this to populate a `Model` form entry. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub struct DiscoveredModel { + pub id: String, + pub display_name: Option, + pub max_context_size: Option, } diff --git a/src-tauri/src/pi_io.rs b/src-tauri/src/pi_io.rs new file mode 100644 index 0000000..1769b11 --- /dev/null +++ b/src-tauri/src/pi_io.rs @@ -0,0 +1,358 @@ +//! Pi CLI configuration I/O. +//! +//! Pi stores custom providers and models in `~/.pi/agent/models.json`. +//! This module reads and writes that file and converts between Pi's JSON +//! format and Pi Switch's internal `Config`/`Provider`/`Model` types. + +use std::path::PathBuf; + +use anyhow::Context; +use indexmap::IndexMap; +use serde::{Deserialize, Serialize}; +use serde_json::Value; + +use crate::models::{Config, Model, Provider, ProviderType}; + +pub type PiResult = anyhow::Result; + +/// Returns the default Pi agent config directory for the current user. +pub fn pi_agent_dir() -> PathBuf { + dirs::home_dir() + .map(|h| h.join(".pi").join("agent")) + .expect("failed to resolve home directory") +} + +/// Returns the path to Pi's `models.json` file. +pub fn pi_models_path() -> PathBuf { + pi_agent_dir().join("models.json") +} + +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +pub struct PiCost { + pub input: f64, + pub output: f64, + #[serde(rename = "cacheRead", default)] + pub cache_read: f64, + #[serde(rename = "cacheWrite", default)] + pub cache_write: f64, +} + +/// A single Pi model entry. +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +pub struct PiModel { + pub id: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default)] + pub reasoning: bool, + #[serde(default = "default_input", skip_serializing_if = "is_default_input")] + pub input: Vec, + #[serde(rename = "contextWindow", default = "default_context_window")] + pub context_window: u64, + #[serde(rename = "maxTokens", default, skip_serializing_if = "Option::is_none")] + pub max_tokens: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub cost: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub compat: Option, + #[serde(flatten)] + pub extra: Value, +} + +fn default_input() -> Vec { + vec!["text".to_string()] +} + +fn is_default_input(input: &[String]) -> bool { + input.len() == 1 && input.first().map(String::as_str) == Some("text") +} + +fn default_context_window() -> u64 { + 128_000 +} + +fn default_true() -> bool { + true +} + +/// A single Pi provider entry. +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +pub struct PiProvider { + #[serde(rename = "baseUrl", default, skip_serializing_if = "Option::is_none")] + pub base_url: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub api: Option, + #[serde(rename = "apiKey", default, skip_serializing_if = "Option::is_none")] + pub api_key: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub headers: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub compat: Option, + #[serde(default = "default_true")] + pub enabled: bool, + #[serde(default, skip_serializing_if = "Vec::is_empty")] + pub models: Vec, + #[serde(flatten)] + pub extra: Value, +} + +/// Root Pi `models.json` structure. +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +pub struct PiModelsFile { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub default_model: Option, + #[serde(default)] + pub providers: IndexMap, + #[serde(flatten)] + pub extra: Value, +} + +/// Read the existing Pi `models.json` file, or return a default empty struct +/// if the file does not exist yet. +pub fn load_pi_models() -> PiResult { + let path = pi_models_path(); + if !path.exists() { + return Ok(PiModelsFile::default()); + } + let content = std::fs::read_to_string(&path) + .with_context(|| format!("failed to read {}", path.display()))?; + let file: PiModelsFile = serde_json::from_str(&content) + .with_context(|| format!("failed to parse {}", path.display()))?; + Ok(file) +} + +/// Write the given Pi models file, creating the parent directory if needed. +/// A backup of the previous file is created when it already exists. +pub fn save_pi_models(file: &PiModelsFile) -> PiResult<()> { + let path = pi_models_path(); + if let Some(parent) = path.parent() { + std::fs::create_dir_all(parent) + .with_context(|| format!("failed to create directory {}", parent.display()))?; + } + + if path.exists() { + let timestamp = chrono::Local::now() + .format("%Y%m%d_%H%M%S_%.3f") + .to_string(); + let mut backup_path = path.with_extension(format!("json.bak.{}", timestamp)); + if backup_path.exists() { + for n in 1..1000 { + let candidate = path.with_extension(format!("json.bak.{}.{:03}", timestamp, n)); + if !candidate.exists() { + backup_path = candidate; + break; + } + } + } + std::fs::copy(&path, &backup_path) + .with_context(|| format!("failed to back up {} to {}", path.display(), backup_path.display()))?; + } + + let content = serde_json::to_string_pretty(file) + .with_context(|| "failed to serialize Pi models.json")?; + std::fs::write(&path, content) + .with_context(|| format!("failed to write {}", path.display()))?; + Ok(()) +} + +/// Convert a Pi Switch provider type to the Pi `api` field value. +pub fn pi_api_for_provider(provider_type: &ProviderType) -> &'static str { + match provider_type { + ProviderType::Openai => "openai-completions", + ProviderType::OpenaiResponses => "openai-responses", + ProviderType::Anthropic => "anthropic-messages", + ProviderType::GoogleGenai => "google-generative-ai", + ProviderType::Vertexai => "google-vertex", + // Treat Kimi as OpenAI-compatible since it is not a native Pi API. + ProviderType::Kimi => "openai-completions", + } +} + +/// Convert a Pi `api` field value back to a Pi Switch provider type. +pub fn provider_type_for_pi_api(api: &str) -> ProviderType { + match api { + "openai-responses" => ProviderType::OpenaiResponses, + "anthropic-messages" => ProviderType::Anthropic, + "google-generative-ai" => ProviderType::GoogleGenai, + "google-vertex" => ProviderType::Vertexai, + _ => ProviderType::Openai, + } +} + +/// Import a Pi `models.json` into a Pi Switch `Config`. +pub fn pi_file_to_config(file: &PiModelsFile) -> Config { + let mut providers = IndexMap::new(); + let mut models = IndexMap::new(); + + for (name, pi_provider) in &file.providers { + let provider_type = pi_provider + .api + .as_deref() + .map(provider_type_for_pi_api) + .unwrap_or(ProviderType::Openai); + + let provider = Provider { + name: name.clone(), + provider_type, + base_url: pi_provider.base_url.clone().filter(|s| !s.is_empty()), + api_key: pi_provider.api_key.clone().filter(|s| !s.is_empty()), + env: IndexMap::new(), + note: None, + official_url: None, + managed: false, + enabled: pi_provider.enabled, + raw_other: pi_provider.extra.clone(), + }; + + for (idx, pi_model) in pi_provider.models.iter().enumerate() { + let alias = pi_model + .name + .clone() + .filter(|s| !s.is_empty()) + .unwrap_or_else(|| { + if pi_model.id.trim().is_empty() { + format!("{}-model-{}", name, idx + 1) + } else { + pi_model.id.clone() + } + }); + let display_name = pi_model.name.clone().filter(|s| !s.is_empty()); + + models.insert( + alias.clone(), + Model { + alias, + provider: name.clone(), + model: pi_model.id.clone(), + max_context_size: pi_model.context_window, + display_name, + role: None, + supports_1m: pi_model.reasoning || pi_model.context_window >= 1_000_000, + capabilities: vec![], + raw_other: pi_model.extra.clone(), + }, + ); + } + + providers.insert(name.clone(), provider); + } + + Config { + default_model: file.default_model.clone(), + providers, + models, + raw_other: file.extra.clone(), + } +} + +/// Export a Pi Switch `Config` to a Pi `models.json`. +pub fn config_to_pi_file(config: &Config) -> PiModelsFile { + let mut providers = IndexMap::new(); + + for (name, provider) in &config.providers { + let mut pi_models = Vec::new(); + for model in config.models.values() { + if model.provider != *name { + continue; + } + let display_name = model.display_name.clone().filter(|s| !s.is_empty()); + let name_field = display_name + .clone() + .filter(|s| s != &model.model); + pi_models.push(PiModel { + id: model.model.clone(), + name: name_field, + reasoning: model.supports_1m, + input: default_input(), + context_window: model.max_context_size, + max_tokens: None, + cost: None, + compat: None, + extra: model.raw_other.clone(), + }); + } + + providers.insert( + name.clone(), + PiProvider { + base_url: provider.base_url.clone().filter(|s| !s.is_empty()), + api: Some(pi_api_for_provider(&provider.provider_type).to_string()), + api_key: provider.api_key.clone().filter(|s| !s.is_empty()), + headers: None, + compat: None, + enabled: provider.enabled, + models: pi_models, + extra: provider.raw_other.clone(), + }, + ); + } + + PiModelsFile { + default_model: config.default_model.clone(), + providers, + extra: config.raw_other.clone(), + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn pi_roundtrip_preserves_provider_and_model() { + let mut providers = IndexMap::new(); + providers.insert( + "my-openai".to_string(), + PiProvider { + base_url: Some("https://proxy.example.com/v1".to_string()), + api: Some("openai-completions".to_string()), + api_key: Some("sk-test".to_string()), + headers: None, + compat: None, + enabled: true, + models: vec![PiModel { + id: "gpt-test".to_string(), + name: Some("GPT Test".to_string()), + reasoning: true, + input: vec!["text".to_string()], + context_window: 200_000, + max_tokens: Some(4096), + cost: Some(PiCost { + input: 1.0, + output: 2.0, + cache_read: 0.0, + cache_write: 0.0, + }), + compat: None, + extra: Value::Null, + }], + extra: Value::Null, + }, + ); + let file = PiModelsFile { + default_model: None, + providers, + extra: Value::Null, + }; + + let config = pi_file_to_config(&file); + assert_eq!(config.providers.len(), 1); + assert_eq!(config.models.len(), 1); + + let provider = config.providers.get("my-openai").unwrap(); + assert_eq!(provider.provider_type, ProviderType::Openai); + assert_eq!(provider.base_url.as_deref(), Some("https://proxy.example.com/v1")); + assert_eq!(provider.api_key.as_deref(), Some("sk-test")); + + let model = config.models.get("GPT Test").unwrap(); + assert_eq!(model.model, "gpt-test"); + assert!(model.supports_1m); + assert_eq!(model.max_context_size, 200_000); + + let exported = config_to_pi_file(&config); + let exported_provider = exported.providers.get("my-openai").unwrap(); + assert_eq!(exported_provider.api.as_deref(), Some("openai-completions")); + assert_eq!(exported_provider.models[0].id, "gpt-test"); + assert!(exported_provider.models[0].reasoning); + } +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 94246bb..8d60681 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { - "productName": "KimiSwitch", + "productName": "Pi Switch", "version": "0.1.0", - "identifier": "com.kimiswitch.app", + "identifier": "com.piswitch.app", "build": { "beforeDevCommand": "npm run dev", "beforeBuildCommand": "npm run build", @@ -11,7 +11,7 @@ "app": { "windows": [ { - "title": "KimiSwitch", + "title": "Pi Switch", "width": 1200, "height": 800, "minWidth": 1000, @@ -21,11 +21,23 @@ } ], "security": { - "csp": "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;" + "csp": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;" } }, "bundle": { "active": true, - "targets": ["msi"] + "targets": ["msi"], + "windows": { + "webviewInstallMode": { + "type": "downloadBootstrapper" + }, + "nsis": null + }, + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.ico" + ] } } diff --git a/src/App.tsx b/src/App.tsx index 77fc199..0e2434c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,470 @@ -function App() { - return
KimiSwitch
; +import { useEffect, useMemo, useState } from "react"; +import { invoke } from "@tauri-apps/api/core"; +import { getCurrentWindow } from "@tauri-apps/api/window"; +import { useConfig } from "./hooks/useConfig"; +import { ProviderList } from "./components/ProviderList"; +import { ProviderEdit } from "./components/ProviderEdit"; +import { useTranslation } from "./i18n"; +import type { Agent, Model, Provider } from "./types"; + +const AGENT_STORAGE_KEY = "pi-switch-agent"; + +const AGENTS: { key: Agent; label: string }[] = [ + { key: "kimi_code", label: "Kimi Code" }, + { key: "pi", label: "Pi" }, +]; + +function getInitialAgent(): Agent { + try { + const stored = localStorage.getItem(AGENT_STORAGE_KEY) as Agent | null; + if (stored === "kimi_code" || stored === "pi") return stored; + } catch { + // ignore + } + return "pi"; } -export default App; +export default function App() { + const { t, lang, setLang } = useTranslation(); + const [agent, setAgentState] = useState(getInitialAgent); + const { + config, + dirty, + error, + loading, + refresh, + save, + updateConfig, + } = useConfig(agent); + + const [view, setView] = useState<"list" | "edit">("list"); + const [editingProvider, setEditingProvider] = useState(""); + const [loadTimeout, setLoadTimeout] = useState(false); + + const setAgent = (next: Agent) => { + setAgentState(next); + try { + localStorage.setItem(AGENT_STORAGE_KEY, next); + } catch { + // ignore + } + setView("list"); + setEditingProvider(""); + }; + + useEffect(() => { + if (!loading) { + setLoadTimeout(false); + return; + } + const timer = setTimeout(() => setLoadTimeout(true), 5000); + return () => clearTimeout(timer); + }, [loading]); + + // Keyboard shortcuts: Ctrl+S save, Ctrl+R reload, Ctrl+O open config dir + useEffect(() => { + const handler = (e: KeyboardEvent) => { + if (!e.ctrlKey || e.metaKey) return; + switch (e.key) { + case "s": + case "S": + e.preventDefault(); + save(); + break; + case "r": + case "R": + e.preventDefault(); + if (dirty && !confirm(t("unsavedConfirm"))) return; + refresh(); + break; + case "o": + case "O": + e.preventDefault(); + invoke("open_agent_config_dir", { agent }).catch((err) => + alert(err instanceof Error ? err.message : String(err)) + ); + break; + } + }; + window.addEventListener("keydown", handler); + return () => window.removeEventListener("keydown", handler); + }, [save, refresh, dirty, t, agent]); + + // Update window title to reflect unsaved changes. + useEffect(() => { + const app = getCurrentWindow(); + const prefix = dirty ? "* " : ""; + app.setTitle(`${prefix}${t("appTitle")}`); + }, [dirty, t]); + + // Warn before closing the window when there are unsaved changes. + useEffect(() => { + const handler = (e: BeforeUnloadEvent) => { + if (dirty) { + e.preventDefault(); + e.returnValue = ""; + } + }; + window.addEventListener("beforeunload", handler); + return () => window.removeEventListener("beforeunload", handler); + }, [dirty]); + + useEffect(() => { + invoke("debug_log", { + message: `App mounted. agent=${agent} loading=${loading} config=${config ? Object.keys(config.providers).length + " providers" : "null"}`, + }).catch(() => {}); + }, [loading, config, agent]); + + const providers = useMemo( + () => (config ? Object.values(config.providers) : []), + [config] + ); + + const handleAddProvider = () => { + if (!config) return; + const name = `provider-${providers.length + 1}`; + const defaultType = agent === "kimi_code" ? "kimi" : "openai"; + updateConfig((cfg) => ({ + ...cfg, + providers: { + ...cfg.providers, + [name]: { + name, + provider_type: defaultType, + base_url: null, + api_key: null, + env: {}, + note: null, + official_url: null, + managed: false, + enabled: true, + }, + }, + })); + setEditingProvider(name); + setView("edit"); + }; + + const handleUpdateProvider = (provider: Provider) => { + updateConfig((cfg) => { + const providers = { ...cfg.providers }; + const oldEntry = Object.entries(providers).find( + ([, p]) => p.name === editingProvider + ); + if (oldEntry && oldEntry[0] !== provider.name) { + delete providers[oldEntry[0]]; + const models = { ...cfg.models }; + for (const key of Object.keys(models)) { + if (models[key].provider === editingProvider) { + models[key] = { ...models[key], provider: provider.name }; + } + } + providers[provider.name] = provider; + setEditingProvider(provider.name); + return { ...cfg, providers, models }; + } + providers[provider.name] = provider; + return { ...cfg, providers }; + }); + }; + + const handleDeleteProvider = (name: string) => { + if (!confirm(t("deleteProviderConfirm", { name }))) return; + updateConfig((cfg) => { + const providers = { ...cfg.providers }; + delete providers[name]; + const models = { ...cfg.models }; + for (const key of Object.keys(models)) { + if (models[key].provider === name) { + delete models[key]; + } + } + return { ...cfg, providers, models }; + }); + if (editingProvider === name) { + setEditingProvider(""); + setView("list"); + } + }; + + const handleSetDefaultModel = (alias: string) => { + updateConfig((cfg) => ({ ...cfg, default_model: alias })); + }; + + const handleToggleProviderEnabled = (name: string) => { + updateConfig((cfg) => { + const provider = cfg.providers[name]; + if (!provider) return cfg; + return { + ...cfg, + providers: { + ...cfg.providers, + [name]: { ...provider, enabled: !provider.enabled }, + }, + }; + }); + }; + + const handleApplyProviderJson = (provider: Provider, models: Model[]) => { + updateConfig((cfg) => { + const providers = { ...cfg.providers }; + const oldName = editingProvider; + if (oldName && oldName !== provider.name) { + delete providers[oldName]; + } + providers[provider.name] = provider; + + const updatedModels = { ...cfg.models }; + // Remove existing models for this provider. + for (const key of Object.keys(updatedModels)) { + if (updatedModels[key].provider === oldName) { + delete updatedModels[key]; + } + } + // Add updated models, ensuring aliases are unique. + for (const m of models) { + let alias = m.alias; + let n = 1; + while (alias in updatedModels) { + alias = `${m.alias}-${n}`; + n++; + } + updatedModels[alias] = { ...m, alias, provider: provider.name }; + } + + let default_model = cfg.default_model; + if (default_model && !(default_model in updatedModels)) { + default_model = null; + } + + return { ...cfg, providers, models: updatedModels, default_model }; + }); + if (provider.name !== editingProvider) { + setEditingProvider(provider.name); + } + }; + + if (loading || !config) { + return ( +
+
{t("loading")}
+ {loadTimeout && ( +
{t("loadTimeout")}
+ )} + {error && ( +
+
{t("loadFailed")}
+
{error}
+ +
+ )} +
+ ); + } + + const currentProvider = config.providers[editingProvider]; + + return ( +
+
+
+ {AGENTS.map(({ key, label }) => ( + + ))} +
+
+ +
+
+ + {error && ( +
+ {error} +
+ )} + +
+ {view === "list" ? ( + { + setEditingProvider(name); + setView("edit"); + }} + onDelete={handleDeleteProvider} + onAdd={handleAddProvider} + onToggleEnabled={handleToggleProviderEnabled} + /> + ) : currentProvider ? ( + m.provider === currentProvider.name + )} + defaultModel={config.default_model} + onBack={() => setView("list")} + onChange={handleUpdateProvider} + onDelete={() => handleDeleteProvider(currentProvider.name)} + onModelChange={(model) => { + updateConfig((cfg) => { + const models = { ...cfg.models }; + const existingKeys = Object.keys(models).filter( + (k) => models[k].provider === currentProvider.name + ); + const oldKey = existingKeys.find((k) => + model.alias === k ? true : models[k].alias === model.alias + ); + if (oldKey && oldKey !== model.alias) { + delete models[oldKey]; + } + models[model.alias] = model; + let default_model = cfg.default_model; + if (default_model === oldKey) default_model = model.alias; + return { ...cfg, models, default_model }; + }); + }} + onModelDelete={(alias) => { + updateConfig((cfg) => { + const models = { ...cfg.models }; + delete models[alias]; + return { + ...cfg, + models, + default_model: + cfg.default_model === alias ? null : cfg.default_model, + }; + }); + }} + onModelAdd={() => { + const providerModels = Object.values(config.models).filter( + (m) => m.provider === currentProvider.name + ); + const alias = `${currentProvider.name}-${providerModels.length + 1}`; + updateConfig((cfg) => ({ + ...cfg, + models: { + ...cfg.models, + [alias]: { + alias, + provider: currentProvider.name, + model: "", + max_context_size: 128000, + display_name: null, + role: null, + supports_1m: false, + capabilities: [], + }, + }, + })); + }} + onBulkAdd={(models) => { + updateConfig((cfg) => { + const updated = { ...cfg.models }; + for (const m of models) { + let alias = m.alias; + let n = 1; + while (alias in updated) { + alias = `${m.alias}-${n}`; + n++; + } + updated[alias] = { ...m, alias }; + } + return { ...cfg, models: updated }; + }); + }} + onSetDefault={handleSetDefaultModel} + onApplyJson={handleApplyProviderJson} + onSave={save} + /> + ) : ( +
+
{t("providerNotFound")}
+ +
+ )} +
+ +
+
+ {dirty && ( + ● {t("unsavedChanges")} + )} +
+
+ + + +
+
+
+ ); +} diff --git a/src/components/ProviderEdit.tsx b/src/components/ProviderEdit.tsx new file mode 100644 index 0000000..a978d61 --- /dev/null +++ b/src/components/ProviderEdit.tsx @@ -0,0 +1,662 @@ +import { useEffect, useId, useState } from "react"; +import { invoke } from "@tauri-apps/api/core"; +import { useTranslation } from "../i18n"; +import type { Agent, DiscoveredModel, Model, Provider, ProviderType } from "../types"; + +const PROVIDER_TYPES: ProviderType[] = [ + "openai", + "openai_responses", + "anthropic", + "google-genai", + "vertexai", + "kimi", +]; + +function defaultBaseUrl(agent: Agent, type: ProviderType): string { + if (agent === "kimi_code") { + switch (type) { + case "kimi": + return "https://api.kimi.com/coding/v1"; + case "openai": + case "openai_responses": + return "https://api.openai.com/v1"; + case "google-genai": + return "https://generativelanguage.googleapis.com"; + case "anthropic": + case "vertexai": + return ""; + } + } + // Pi defaults + switch (type) { + case "kimi": + return "https://api.moonshot.ai/v1"; + case "openai": + case "openai_responses": + return "https://api.openai.com/v1"; + case "google-genai": + return "https://generativelanguage.googleapis.com"; + case "anthropic": + case "vertexai": + return ""; + } +} + +interface ProviderEditProps { + agent: Agent; + provider: Provider; + models: Model[]; + defaultModel: string | null; + onBack: () => void; + onChange: (provider: Provider) => void; + onDelete: () => void; + onModelChange: (model: Model) => void; + onModelDelete: (alias: string) => void; + onModelAdd: () => void; + onBulkAdd: (models: Model[]) => void; + onSetDefault: (alias: string) => void; + onApplyJson: (provider: Provider, models: Model[]) => void; + onSave: () => void; +} + +export function ProviderEdit({ + agent, + provider, + models, + defaultModel, + onBack, + onChange, + onDelete, + onModelChange, + onModelDelete, + onModelAdd, + onBulkAdd, + onSetDefault, + onApplyJson, + onSave, +}: ProviderEditProps) { + const { t } = useTranslation(); + const nameId = useId(); + const noteId = useId(); + const officialUrlId = useId(); + const apiKeyId = useId(); + const baseUrlId = useId(); + + const [activeTab, setActiveTab] = useState<"basic" | "models" | "json">("basic"); + const [showApiKey, setShowApiKey] = useState(false); + + useEffect(() => { + const def = defaultBaseUrl(agent, provider.provider_type); + if (!def) return; + if (!provider.base_url) { + onChange({ ...provider, base_url: def }); + } + }, [provider.provider_type, agent]); + + return ( +
+ {/* Header */} +
+ +

{t("editProvider")}

+
+ + +
+ + {/* Tabs */} +
+ {[ + { key: "basic", label: t("basicInfo") }, + { key: "models", label: t("modelMapping") }, + { key: "json", label: t("configJson") }, + ].map((tab) => ( + + ))} +
+ + {/* Content */} +
+ {activeTab === "basic" && ( +
+ {/* Basic info */} +
+

{t("basicInfo")}

+
+
+ + onChange({ ...provider, name: e.target.value })} + /> +
+
+ + + onChange({ ...provider, note: e.target.value || null }) + } + /> +
+
+ + + onChange({ ...provider, official_url: e.target.value || null }) + } + /> +
+
+ + onChange({ ...provider, managed: e.target.checked }) + } + className="w-4 h-4 rounded border-[#2a2a2e] bg-[#1f1f23] text-blue-600 focus:ring-blue-500" + /> + +
+
+
+ + {/* API settings */} +
+

{t("apiSettings")}

+
+
+
+ + +
+
+ + {!provider.managed && ( +
+ +
+ + onChange({ ...provider, api_key: e.target.value || null }) + } + /> + +
+
+ )} + +
+ + + onChange({ ...provider, base_url: e.target.value || null }) + } + /> +
+ {t("baseUrlHint", { type: provider.provider_type })} +
+
+
+
+
+ )} + + {activeTab === "models" && ( + + )} + + {activeTab === "json" && ( + + )} +
+
+ ); +} + +function ModelMapping({ + agent, + provider, + models, + defaultModel, + onModelChange, + onModelDelete, + onModelAdd, + onBulkAdd, + onSetDefault, +}: { + agent: Agent; + provider: Provider; + models: Model[]; + defaultModel: string | null; + onModelChange: (model: Model) => void; + onModelDelete: (alias: string) => void; + onModelAdd: () => void; + onBulkAdd: (models: Model[]) => void; + onSetDefault: (alias: string) => void; +}) { + const { t } = useTranslation(); + const [discovering, setDiscovering] = useState(false); + const [discovered, setDiscovered] = useState(null); + const [selected, setSelected] = useState>(new Set()); + const [discoverError, setDiscoverError] = useState(null); + + const handleDiscover = async () => { + setDiscovering(true); + setDiscoverError(null); + setDiscovered(null); + setSelected(new Set()); + try { + const result = await invoke("list_provider_models", { + provider, + }); + setDiscovered(result); + } catch (err) { + setDiscoverError(err instanceof Error ? err.message : String(err)); + } finally { + setDiscovering(false); + } + }; + + const toggleSelect = (id: string) => { + setSelected((prev) => { + const next = new Set(prev); + if (next.has(id)) next.delete(id); + else next.add(id); + return next; + }); + }; + + const handleAddSelected = () => { + if (!discovered || selected.size === 0) return; + const toAdd: Model[] = []; + for (const dm of discovered) { + if (!selected.has(dm.id)) continue; + const alias = dm.id.replace(/[^a-zA-Z0-9_-]/g, "-"); + toAdd.push({ + alias, + provider: provider.name, + model: dm.id, + max_context_size: dm.max_context_size ?? 128000, + display_name: dm.display_name, + role: null, + supports_1m: (dm.max_context_size ?? 0) >= 1_000_000, + capabilities: [], + }); + } + onBulkAdd(toAdd); + setDiscovered(null); + setSelected(new Set()); + }; + + return ( +
+
+
+

{t("modelMapping")}

+

{t("modelMappingDesc")}

+
+
+ + +
+
+ + {discoverError && ( +
+ {discoverError} +
+ )} + + {discovered && ( +
+
+ {t("discoveredModels", { count: discovered.length })} +
+
+ {discovered.map((m) => ( + + ))} +
+ +
+ )} + +
+
+ + + + + + + + {agent === "kimi_code" && ( + + )} + + + + + + {models.map((m) => ( + + + + + + + {agent === "kimi_code" && ( + + )} + + + + ))} + +
{t("modelRole")}{t("displayName")}{t("actualModel")}{t("contextSize")}{t("supports1M")}{t("capabilities")}{t("default")}{t("operation")}
+ + onModelChange({ + ...m, + role: e.target.value || null, + }) + } + /> + + + onModelChange({ + ...m, + display_name: e.target.value || null, + }) + } + /> + + + onModelChange({ ...m, model: e.target.value }) + } + /> + + { + const value = parseInt(e.target.value, 10); + onModelChange({ + ...m, + max_context_size: isNaN(value) ? 0 : value, + }); + }} + /> + + + onModelChange({ + ...m, + supports_1m: e.target.checked, + }) + } + className="w-4 h-4 rounded border-[#2a2a2e] bg-[#1f1f23] text-blue-600 focus:ring-blue-500" + /> + + + onModelChange({ + ...m, + capabilities: e.target.value + .split(",") + .map((s) => s.trim()) + .filter(Boolean), + }) + } + /> + + + + +
+ {models.length === 0 && ( +

+ {t("noModelMappings")} +
+ )} + + + + + ); +} + +function JsonPreview({ + provider, + models, + onApply, +}: { + provider: Provider; + models: Model[]; + onApply: (provider: Provider, models: Model[]) => void; +}) { + const { t } = useTranslation(); + const [text, setText] = useState(() => + JSON.stringify({ provider, models }, null, 2) + ); + const [error, setError] = useState(null); + + useEffect(() => { + setText(JSON.stringify({ provider, models }, null, 2)); + setError(null); + }, [provider, models]); + + const handleApply = () => { + try { + const parsed = JSON.parse(text); + if (!parsed.provider || typeof parsed.provider !== "object") { + throw new Error("missing provider object"); + } + if (!Array.isArray(parsed.models)) { + throw new Error("models must be an array"); + } + onApply(parsed.provider as Provider, parsed.models as Model[]); + setError(null); + } catch (err) { + setError(err instanceof Error ? err.message : String(err)); + } + }; + + return ( +
+
+

{t("configJson")}

+
+ {t("readOnlyPreview")} + +
+
+ {error && ( +
+ {t("invalidJson", { message: error })} +
+ )} +