From a4021b202951f88835e151f00c43554aab7dbde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Fri, 10 Jul 2026 20:18:41 -0400 Subject: [PATCH] Every provider wears its official mark: logo.dev art downloaded once, bundled forever - 16 brand PNGs land in src/renderer/src/assets/provider-logos (img.logo.dev, size 128, same publishable token as connectors) with a README recording each domain and the refresh command - no runtime fetch, nothing to download again - shared/ProviderLogo.tsx maps catalog keys to the bundled art on a white tile (transparent marks stay legible in dark theme); custom endpoints keep the letter tile since no official brand exists - Settings provider rows/cards and the onboarding provider step now share the same component; old letter-tile ProviderLogo removed - Verified via Playwright screenshot captures: onboarding and Settings both render the real marks; full e2e green --- .../src/app/OnboardingProviderStep.tsx | 4 +- .../src/assets/provider-logos/README.md | 20 +++++ .../src/assets/provider-logos/anthropic.png | Bin 0 -> 4706 bytes .../src/assets/provider-logos/aws-bedrock.png | Bin 0 -> 3674 bytes .../assets/provider-logos/azure-openai.png | Bin 0 -> 616 bytes .../src/assets/provider-logos/cerebras.png | Bin 0 -> 6096 bytes .../src/assets/provider-logos/claude-pro.png | Bin 0 -> 4918 bytes .../assets/provider-logos/github-copilot.png | Bin 0 -> 4525 bytes .../provider-logos/google-antigravity.png | Bin 0 -> 6397 bytes .../src/assets/provider-logos/gpt-account.png | Bin 0 -> 7831 bytes .../src/assets/provider-logos/groq.png | Bin 0 -> 4631 bytes .../src/assets/provider-logos/kimi-cn.png | Bin 0 -> 4242 bytes .../src/assets/provider-logos/kimi.png | Bin 0 -> 17323 bytes .../src/assets/provider-logos/mistral.png | Bin 0 -> 7246 bytes .../src/assets/provider-logos/openai.png | Bin 0 -> 4488 bytes .../src/assets/provider-logos/openrouter.png | Bin 0 -> 6119 bytes .../src/assets/provider-logos/vertex-ai.png | Bin 0 -> 7493 bytes .../src/assets/provider-logos/xai.png | Bin 0 -> 6269 bytes src/renderer/src/env.d.ts | 4 + .../src/pages/settings/ProviderLogo.tsx | 35 -------- .../src/pages/settings/ProvidersPanel.tsx | 6 +- src/renderer/src/shared/ProviderLogo.tsx | 76 ++++++++++++++++++ 22 files changed, 106 insertions(+), 39 deletions(-) create mode 100644 src/renderer/src/assets/provider-logos/README.md create mode 100644 src/renderer/src/assets/provider-logos/anthropic.png create mode 100644 src/renderer/src/assets/provider-logos/aws-bedrock.png create mode 100644 src/renderer/src/assets/provider-logos/azure-openai.png create mode 100644 src/renderer/src/assets/provider-logos/cerebras.png create mode 100644 src/renderer/src/assets/provider-logos/claude-pro.png create mode 100644 src/renderer/src/assets/provider-logos/github-copilot.png create mode 100644 src/renderer/src/assets/provider-logos/google-antigravity.png create mode 100644 src/renderer/src/assets/provider-logos/gpt-account.png create mode 100644 src/renderer/src/assets/provider-logos/groq.png create mode 100644 src/renderer/src/assets/provider-logos/kimi-cn.png create mode 100644 src/renderer/src/assets/provider-logos/kimi.png create mode 100644 src/renderer/src/assets/provider-logos/mistral.png create mode 100644 src/renderer/src/assets/provider-logos/openai.png create mode 100644 src/renderer/src/assets/provider-logos/openrouter.png create mode 100644 src/renderer/src/assets/provider-logos/vertex-ai.png create mode 100644 src/renderer/src/assets/provider-logos/xai.png create mode 100644 src/renderer/src/env.d.ts delete mode 100644 src/renderer/src/pages/settings/ProviderLogo.tsx create mode 100644 src/renderer/src/shared/ProviderLogo.tsx diff --git a/src/renderer/src/app/OnboardingProviderStep.tsx b/src/renderer/src/app/OnboardingProviderStep.tsx index be442809..9829311a 100644 --- a/src/renderer/src/app/OnboardingProviderStep.tsx +++ b/src/renderer/src/app/OnboardingProviderStep.tsx @@ -1,5 +1,6 @@ import { Fragment, useEffect, useState } from "react"; import type { ProviderCatalogEntry } from "../../../shared/domain"; +import { ProviderLogo } from "../shared/ProviderLogo"; import { ProviderOAuthConnect } from "../shared/ProviderOAuthConnect"; import { Button, Field, Pill } from "../shared/ui"; import type { Draft } from "./Onboarding"; @@ -40,7 +41,8 @@ export function ProviderStep({ providerBaseUrl: "", })} > -
+
+
{provider.label}
{authBadge(provider.authType)}
diff --git a/src/renderer/src/assets/provider-logos/README.md b/src/renderer/src/assets/provider-logos/README.md new file mode 100644 index 00000000..ff05d585 --- /dev/null +++ b/src/renderer/src/assets/provider-logos/README.md @@ -0,0 +1,20 @@ +# Provider logos + +Official brand marks for the model-provider catalog, bundled at build time so +the app never fetches them at runtime. Source: img.logo.dev (same source and +publishable token as the connectors page), downloaded once per brand. + +Refresh a logo (token lives in `src/main/services/composio/connector-brands.ts`): + +``` +curl -o .png "https://img.logo.dev/?token=&size=128&format=png&fallback=404" +``` + +Domain per file: openai.com, anthropic.com, claude.ai (claude-pro), grok.com +(xai), groq.com, mistral.ai, cerebras.ai, openrouter.ai, moonshot.ai (kimi; +also used for kimi-code — kimi.com is not in logo.dev's index), moonshot.cn +(kimi-cn), github.com (github-copilot), antigravity.google +(google-antigravity), chatgpt.com (gpt-account), azure.microsoft.com +(azure-openai), aws.amazon.com (aws-bedrock), cloud.google.com (vertex-ai). +The custom-openai / custom-anthropic endpoints carry no official brand and +render as letter tiles. diff --git a/src/renderer/src/assets/provider-logos/anthropic.png b/src/renderer/src/assets/provider-logos/anthropic.png new file mode 100644 index 0000000000000000000000000000000000000000..e187dc0a3775b20e05a8b3271ad1a03330741eb2 GIT binary patch literal 4706 zcmcJT=|9we_s2ihCQC_!L0JcrJ=-K>H&7|f@xF0xo##34b6!tSw~RR11lRxo;50EdxP2O9|KC82 zr{2_Iw-5lhub3F(*&pIq!MNLR^EM-V%VT{u|E#~2>*jSaiRwfl3p zR{FQ;vDYRnFROc-Px|FArb=G9H*~@lmX*NSrly*hd%LIY<-c-H+#1g(W+3*p(1&uw zbkB6pDY{QzqYUS657zffK0NSbCd!-+y6(GX-@LbX_=EZZD*2Ciq?o^UE8OuJL+%13 z*7koJkaN)hAR3FZ0N1A_pN+e7SAZ+t1kDAAbl(<54yx#9?5_y_6B+}=r-=Y_0ZckP z`xh}6RLvMfCYhRGasKse6&Mnf?bDktA=yT`;(*?gn`T_vQHKIO#T9aF4~af!obgfw z#1PZF74z2`HKtQfK7Iwm5#vCiX`lkYEeG77B%@wYzpX4!^O-ZrF zE3l#}{+zuj?7C*ayq~)}kpSbhZg8kz=R1hr_&nXTub@rK^v`##l27v(pWA6VTx*cA zD*w2cKb~L8pRJD`nVFd(B(R_CWwzsb^v#qX-QbTO1~8Z(4x@R>&Od^N8+BTX;XG;3 zJY!R4MtWPDC}4@6sg@>}-YYL)iY1ZB!l{N)m@H2r9Z+W{QOca|e6u^U-9@^<&rtaO zhag{S;(homK5u(PwU~VW?%n;>&|OBI<>eK&bZD296a%p8{VoHh6!93so8VIyJ}jxp zAzFGK@H32cvTp)N)p5aHcd7^kv7EQIaa>9q$_PYN&~lyj(T2FK>95C4vr;e;>jAca zTqFqEH_0$~M=TF8&M=kCyhIZc`edN&gEpQOW2glUtSD5{dg0>fSBv|-vSq4X!fuGn zXoqc3n2wt`R(d%ZafCZp$44TMhh9w!38xN8)+2{MkVvG;%B2cNEFcoleWk#UAK;ff zzNh9rk*BhICm?gS zZ=cDo1VwOs8sT*q!pYj2LZO_Gm1QGb#o?{2r_+p01tj4?8fL@qi4b$kXjpOoFSH+7hi3k^V*!+gv~mxoVcy5+Xsp%Lop%R3Q9MoBZ08MA_4V-owMs59px6_p|fJ>uMui@wc&`?Fr+rp00}8YTIy%~pH2vll+X4jP zrRf!Q?B7ym1Ik3=r^&2+a8+k#$5nTT-EcYJ^7xF(8t)T>MTbyoj#obeESVsRYr@Hn zjKcpk&g?|IL;sk>diE6xvS{g|J&^wO;(+QUY{ZZ%NUyE!Xj|j zVcqD=dEhfg$JzX!R@(K_S+jDerxP_)DphiIVu)1E`qCna!UTMu8YaS{M}CZ*xdA4T zxS89w5Ml;CyE-5ips~uo`o%V=P~}`MG*k>*|Vk72NUmI=S{AwtD6d@6!C&Em>Lo(;DjF9F8-*z;Wnn)==KGi zz1<=WS-HbyVS>5ERJw8ar^RdI!GH=Bq?hdhv}zyEoi9E}9`ytvh5P0f)~;GFZHK`r_@tO8!}L(`1{{0b-hN7%vk^56zae@;~>HOIrz)52wL zZjRzKd9;udjz$#F{x-ta)-@<2kx}Yshh~sY! z=s+2N677>RyGqsQK|PHg8614ZYVi(z^y^sw@uMm0osGlMR_o{%1-@KkFj9j1;&hZ> zUcYm9nIr?MrTRA>1FTKd;-|d0o-mwX*Zk!PDRsVK6Kz>NVLHNKw{*U0+X1 zW}=brHBYUROJU#qOga4zOAF}pBX1N`FqS+LG7ZbH3S$ZPfAZ717lzK>*#Mv>->M3Y zp{xfADt$ik=W*Q^7+zcXP-`90;Ae9^Lo&K)8PJ-#ItF0>4i0M4BwAcZRiVAWu01n! zAA`}4wuX&Tg(R<7_1W6}gZjN`MRuwQaB~|HW50_kCAr>h z?^3WNBhk#jhYH)w=2!zhu8imO{FSi~JGJ?;2uK0k$G~t=i}hgifc8RJ-@nu^5$`?*{2acz-@q#;cc9 zY3T3a(NUr4`={#~?J8vUR;UKpb#qqZ6kud$c?2c8<>V-#IrUt$%lC>JM+rEf%IO@j z>|vnR4t?<^R&e`?g9$xix$K3elb%GHz?l`{qAo6~F zu=I#*+`Wj$_cCo8#+?qKZSJO<(QbBCP zWJl2BE~~5o!0gfRKGhKYk|i4b<@@{SC{K>RH_W_JD|W`li2(RP0ufS^a3f`wyHw=) z^>ddG_L~psKduMIx2ONzve!D^RyN}q4DFI;^GLN(xkPICvg#>!o4=nOCx+}aq`r_w z=k_G3#e>ZvpOvnUByDin=}ts!i2Cx^AX;_?Xwux(lU%iH{v+Oad=MH8YjZ6nS1^E1g3@y zT+p}s{nc$`Ea|>ag&1$j2zUfe@-&;u;wlIa>So$wjGWXqB8~Hyi=!`k6*{ zY(8ojYm4{9hBWU+n4ld5m`alR6%&1vb?KD>TCY zY<*@=MT&E#m|dcs_P8u|>1KcZPkeIX&HiCyFIyc&_|&yJGFh7ol#7P|Tu+`J_v5F3 zMD;gG==tCKGcodUjW^!eHoMmu&*JMC@qvNUuz8Z&hWgwHz3#}GQ(5T`6AO=*->Tl#p6n7{0 zHn2Yw=vdhz=86o?qUEVo@9Wj?1hVO^eAYfbUiYzoKfuxAff8+KZ8qHG4D5IQ=rSl{ z2-6Cf&+JHE|8TiO%?KbpDA=xaXrJ;Oe;&#Q(ewXg{Ufi;x-j(d8^}061OE}LelU)J zr}N1(DZ!cpy9nm8XoON^CBE`a73o`t;(}3SQMBiVV5)iFLs~+U9!x88{`+`!nHkE| z#7)T(jvcQ$GgoBZU?AomLd_ub%PeMQ7E&lvQ@gYM z(Lx~Rf!U|s!Qtev?$X|ZI{6Rj47&z^U3|H;p5llIh_E9zZzH=qTznKZB?mW`OeW-! zNNp~DlnUx3HY8C`w>|F?)*Np9>NXgOG)#izP~^dr?tnnlWYb~JTWf7cYd$^pqh6~_ zI9#I*M?JN)C{jO zoSig>zZYd>Qx6rX{-ea3eE!@ng#tg@xC}D=sh7StX78&--p#he&{)E28(I2HsL<&robm5Vxr^^UB}@>fV?Nf_esRl}U6+5~ zqpR=T{{crZ9%ik7)hb&07E|f0JFL=Y!BR3*?Jm_>&q?{?DAafPviEQlzhK1IWi9Dq zsPS%Bmbr}(dwL8X#4crGv_`&Kt@S+?Pa<`;uTC@>rHA)fU?RP$ZJ5{)yGhWlFoY0W zpI!a0vw)@GAp`6}sQ1?fzM6qYiEAw_%5^CI^vV6!($ z+P+gqEbKlhhAEU@$5CDVl`*Zuos}$l37()8Pa-|-#xC~o3CA22=(PG~$0$9Ro+!Sj zYAQ>s<9{R(7vd*W;5o2n7t=~qaNdA3wbCIxN!OzW2BNnfC345Q zj3IU`6JhlW-?0M&J)8rZ_6)JLb2ZKph)ehH3b3h$UDqfc^@^34Of?)rBij5isfeSE zfB%KHD|(v8DII3Nqki&!$$;BgiY$G{gM4bM&ZU={gbiG`2Vg!GujR6kDa?RQ({W$3 z-?bk9!qd@`Ziz`TbeCPR+uFX5P5LR%cfec}aWR<|-Y%8yVavr#rfl_T9JY(|IX-+f zuB$H>6S0!fkt~*e6@+(HC%^(O@tsRuyCwC3fI@6NgXBlsR^1sKB(`|i^8I37z_~)u z&xH=@;@G_=xs8jwZ~1X(&uIU?!UqZtOJ0zP-^2k9@h3ytM>Fd&yR$6<=cG#d9Q$|Q zT`pR2kpJ>?LCqcx#n>^`020ge1^k zw%FI?gyB4QQ30i_0yHV=rm4)yFGZMTc;vwr#={<`$=42KZt$ols7cYXGb`-DCbwCd z^2OM>1j@nksE(&By2sN_u?Zre$_J(JPq;JEN8z%!9_8oLuDBrAg47df^L)^rlh{Y% rM<1Bw7Iz!GR10m`T$Ijw+t%uT;l!@%8CPZ literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/aws-bedrock.png b/src/renderer/src/assets/provider-logos/aws-bedrock.png new file mode 100644 index 0000000000000000000000000000000000000000..780b80c6fb097ae077b41fd9c558bc6dff7247b4 GIT binary patch literal 3674 zcmc(i`9Bkm1ICAvGa)%sjwIS#DRRd`Zc)fga;~{@A2H`5LP*SQ?)!-4DrR%!$Q%)J zjVb14H0;~=ulW4%JkRU>>+^a&KRj`!#=7h*0xSRkfL&it$NXO+{x2r_e{N`dm<<42 z6w%kwvIxxH$YxG}Oa%4PTs~8PjZ?xi2qX9lxEEKd4JM86{EQTz*Mpbl*Kd7)Xy%G4 zVFBWRJWb$qy%~!)1Sz>&iScFcCH35XFL70rY2E^3s;z{y*ZmyZak=&UNxfk+9h6Y0 z-|*|b6MQZX>yKYOS>YdQ57=rW<<19ml4t8zRnAAA=>HY|iiFT1T+Rb>c>sY=01MXt zJ^Z8qhGB9T^1acMtTcLrz8f(CI~2I7!({)EIh~K@l>4`R4|@juzc8 z-;e0)th$i~cgVloGgOXZ!eRisNy*2gpS23;;F@x`nD=7(_Ld4|qLnVT7jT!HD9#Q# z=OwjxuHQ#EL`+GhPW$xcG~}03 zy11s5k$$7y1<}$B)174NEeUwoqph{1)`-GAfo1tiMYIg3&F*s|74QN1sPSHT%ScH* z5?Ngcu+b9{-6V0(wOWQcjl%sr7;Rq>1+5^nW@IW^_f-N zj5GImPRLM#iN-Bbj~;gdCkMWq;T$(6B)*8qS!&h}NLj3}58?Bm$X`_52 zZb_WcF@Q#U&?B@)s3i5M)X%mdE;)G=2(1NnyrVhf2vqgaiw&qPe&);OFDZI91j!au zrDI$uVDR-)p^)RHbWJM(@JC}7BjC_}mg&ape%=8`@Ve{#bO$>i`G;(-K<#ouSnBCO z6wZ(1&Fs4Vbe&dSgRX|4=U-m%T}p#8*W)o@4g=qAdyI0mD5}jAa%?TvG_nzPwWFh~ zAfLQzPbZecAd(E2NQQ*??Bte;*F)$eq6pK!?h&s+LFuFkA!mT+3(Uu}^ zAHg}ehSPPqa#(V>&NCNl4fe9@1H2eel`uDIhS?A{bOPilv z1T~#rgX!#C%@`X7wJ6O#;~!i~-&BWWq0oo020Yu67z$Z6kp;%8Zkde@usgMok`dNnyR=0I^!kL8WJAJT~VdFi+N zYn@kjP$(Q5Z&>eS=BJ{o43|)Dt)cdw#_nNtfe0^tJl0lLpDI zo=2932fHuhDe5E`y~8c?>Df?5VPd$n%$ww5zJNFruCM*-afLm1q`n@sl+Rp?Ya~Wy&WWd zF|#`4?;1?gvs5|=d^I_A?kdUB)^75xnCDK4+EG8vVXLy;Md8r>%BeWa^t=}vC&S(T zm_#A}N4xF*MGoy$I?taYr+`qde9E%ds=tGo?R2LZ6?=)rgG>1T^h z#mhWtL@V5nHpcIr*7yaHii`-sFoU_>Pi5bMyK_p4Hjy*41UY}ZIl2wKsXMK&tSplj zt-kP2A)}s66hKPCZ!-Ss*3`Hb<)K;JypQmGX~<^M;`)rQMtp#mgW+;SD}o=qe>+)? zck$${cbDjW&$wLmyta~}5D8zTmj#OANpN0C=Y2oKOD2fjX#B&ey2Eoycs%*Vce-k% zrXo!c*KmSAE0e`Kt3McT6gj496a@#Y31{X}JLz2I`sR$&CBd!RqCV?C4$@n!Lsp`# z`wvn4=VL3yixpo9=bFHb;5NE8V1lNN!ojlAXwm@Zxbeb~oR;PKbi#8-`x{MH;weeUM4OVUPbRmmyrkg48SUGc6Xd+Kkbvub zeg9~`?1LKzZD$Rkb8|sz6JTjKiU>{vt^6*%vmf>2QX2D7RrJObVB2- zpo}!Chlp7}VS5U;Stj59yc}j55^y-%vgC4Rk=KVAgSg4(98>5uYn=TZ-J{nJ?FjTo zyC|>TJl#g#jvpKgpD4|aGqqcX_wPn+%y{IUKz9C)-H-U7SunKytlTTC5&wjeSSU4~ z0FlA9-_Es#9RH$og|c{w8E;%th#(e8j|0Qe88zwdH80}(FiP1nnZ#a`$}i!XTR(5x zPX5UndAIqI-M^WXN@a?>tETl+y*RMV8}P>xoc93kpFnx zxMEU^U0Ls0sSajBk#}yRZSqTa;*3DKf7jTf3o`EES{3!*yHX~fxjqHt(tCQU0(ie zFki0kbw|^S)Y(&w>1N*XUlAW8cDL1=5fn9xYXBR@Oo|KI(Lp@3Ow2%&IhqkV1@@7# zBmoz#_vH4(*0SB52c>)mBcxbvO)E0P$-jlW>54@w(b`c;VLHMy85cL6A}NKQ(ih3y z1+9h!4y5NS`47<12G9gI!Pt?UI1XV=gHlynPty27NSdEXxz?Qfo65zUq&0yE!n_q zch$^mGTbU;{OVKgPi-ap(7T4505TW1(NkkrrM66mD{9t8S^#d?g9k3DB^J;HY#HEd rBRyb*1)wSo*sl8TfyMy<&}iD16)={KIB@r|M7eI^vn>azr)yO&bqSqWW#s$)3iZ z6NBIUEd3rulY>X9^BByz%?zlwQe<`|_D_-Q}O(?>hsf<>&QtGyY*Y$iraFaE8Hv z`2c+xt3~AB?~7_VYMat^fc4 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/cerebras.png b/src/renderer/src/assets/provider-logos/cerebras.png new file mode 100644 index 0000000000000000000000000000000000000000..289ff6492a9e5475f315c585cb54f8424c4df132 GIT binary patch literal 6096 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/github-copilot.png b/src/renderer/src/assets/provider-logos/github-copilot.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfbbab21c6149d3bb4dc17cbada157f0effc84c GIT binary patch literal 4525 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 D-wGWw literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/gpt-account.png b/src/renderer/src/assets/provider-logos/gpt-account.png new file mode 100644 index 0000000000000000000000000000000000000000..875005c304d3f085ebe000ffe6ea83135fff6d2a GIT binary patch literal 7831 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 NfU-OcTJg#<>_1H>+RXp} literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/groq.png b/src/renderer/src/assets/provider-logos/groq.png new file mode 100644 index 0000000000000000000000000000000000000000..0702efc942c850187b50eb098e06766453e5ed0a GIT binary patch literal 4631 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/kimi-cn.png b/src/renderer/src/assets/provider-logos/kimi-cn.png new file mode 100644 index 0000000000000000000000000000000000000000..dd31898d4ac5c7dce13c502bbd60bdf37a5e97ef GIT binary patch literal 4242 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/openai.png b/src/renderer/src/assets/provider-logos/openai.png new file mode 100644 index 0000000000000000000000000000000000000000..0739889e6a34cfc1925e6ecd61c83effc0d08db7 GIT binary patch literal 4488 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/assets/provider-logos/vertex-ai.png b/src/renderer/src/assets/provider-logos/vertex-ai.png new file mode 100644 index 0000000000000000000000000000000000000000..701415c279f096ffdebc7e7e1a6f92868a08873e GIT binary patch literal 7493 zcmV-L9lGL)P)i+)c)q3x(TW^1_yOZ~wb5m8f z>UHYY_x+Z8Z!H2{Y}M!rU@J#g09!fSkv@S=fy-i_IkN|SgFSG191J)PdU^zWzW~64 zGsr0RNcg@FDLrgI?Bo9rdRV)*M8VIuOwdT5K&!#W&e#q`nhtUf2lI3Q{|2IIU`(j= zGyAn5fQZ3(Rf1jw@FGL3bBG?rq)AWHop%=7*_KXV%nN{L&z=M^d>mNJ0qAfLcD5f_ z?_Z8C4N$3sG_$2md{li19E3H#&m@_tDCgLyfhrvluf1;5mm*M9KLQz^4M@qXC&F z>D5F~vj8etzb*zg#1Lt5h(PxX!qqrv`v0Lti)6j+?G#460Qi_A_JZS|4Jpdx_XH$! zl$O;i0MsgiTCATG$72^qcuMpV2p2hhg&Rg=&M;~Pz@M3M7$lto;$y?}WN750K@l`0 zfPB}l<^|eu(KaVJ1Kx!c*SI|HC-mSg@78%a+J;dl0G=~rZ%AAM;25Pgyts^%^tO3{ zdaPe}{iYZg=6-;gHWT4uXX^IYz;ow17<%n{koW3PD)9#<_dh{Y209#}3f6nefy_ule)^^6t$ zgXjSePtFi-6GATHq)H(@xsDAIUU#&}io%Q}Cb{;!Am?<51cPoUedfPh#%=b}Z4UuF z7Y?R;_(J%!AaV1)P+Yz(3@CN>ziJs5KywLUU<;LFJX>;tc%AdI{@kRn#_I=OTKLDr zFVLFyj2X1m1MtGVd$8-CcR}z1IF+p4<^?2z-&jFm9so{5f$0^r!y63+c_F~GZsRA` zJfME^!@oqw`BMi@Zm?%+kRBnkLpCukZa@M`3DxTP3c|$ zpGq%CglgOIW<_f;GwgWP=u%m_SoZDsSYeIr)zp+;BjeYSts*3>CgrJa1YMz`ObFc0Ht4ws>piuR7G$eqs+wbiF`Dl3vxO|sO;L0xt zS-$4ZtGR!h>sRW{Fk7yciknwOpbQo!+hhdsX7Yg=LxCRq>&g0YLA%|)ik1n0uYBK0 z@c28SPqD@Q8bpw|Vi?E87tz=!l>s5P#Q%7km2P8FrNKy8&nFCl|yJ#R3nAalb8g|g_t7zH- z@GqxKhUYHjfN`9P3hp0<7!sn9ih%J?5dRh=mcjQP!N-pLTRk^u@|-ynOQq7D0^$f_p3OwF z2pE^1ck>9zzhy+oN3+e~#oL_$4_Af5yHW9?Vct?S(PF-F5XU-La$S&iq)aw zWL+5&mUssew?NNge&``O$g?EK~9N9;p16I=VDAAzJsn^)AoDq0`K67ZxPYiL}F4_ z0HWe}#%LfPjS3)e{lA|0Fr@fIN*It4LQHzeuzJ%2BN)Z9zjS)Ok%l``K-MzxOr}9aTvHqltVpA^=`GX*-bjXGpP=X8EQFGC~mH zvE|U<8DSu^UPTB#-G?H7m2Upi`u1Fw#^KF5ex77;JrVVrmshgptQckBsA7w*69fssC!Jk%@zUO8?zc+OwJ zC?vOFRTDv;0MumBQ|9{1-k{{9ULo`dPhhC$D7t*@hW1{HtrNA61hV)ZM49{`n+dg} z4e%+`aHNdLX*X|jNPIlj@5du~emb#Jj{OA@4kQWZF}yqYDZ2d4P3>rW7d3hSesug~ zc)|F2pJw%}+?biv=Xe2g-R2GSW7Y!VaQe=xUCVDHYV!chUxT2&fMC_?nWK4mwVrh^ zKpNrn9=_w;NTbgP9@lYR^reV3sU|ZTc2DvvyjcoO)I#+re8g z$F0ZEz>V#1Y8N(C3IVgVM=Z(m(1nd$YbY?of+7TgpVRReY+n<*sDxYrNa7i!y!b%7 z!VOn6M}>Xmv87qL%Xme-vba143?1s8uA9!L_m0eW^Eo*Q@mRmtODTG<91_E z_}X>F>TC7}wF*JfuR74is@V4@e1PL%`;k76cEZ^nE7zP(nY*R!9>AgLhRthMU(p-X zDg=ol3cddu7-)H8>xB@w7>rMj^m()s@*V6AV4YcS?*QomfXPn337xWX-wSQxut;FE`YocuxrYm8V0!buz(7ofyz#%w>>og9s=wF zki3&lr%7$oLijsy=J*#>n{Cm54#)j3HZC;t*`9Rb@=pryB9*&PXCR6f?VMT0=f zi<1&$bASuN7uUy@uX_X8yhjKHG3Gw7xJAH1i%kG2iMc|kCp2XLS0Sh?fRVrj*;@c} z1P~*e2e3+PO+v`l`Bp7$j1f(SO>ArM@wZ9k~#xfWJAm;IH zXiFCjAS-|izi4YLH6s4RxMBDN49Nq-VoQfezFZ(;z z!Y(SJLN6esiYT1uPru1v_ufHm91c{c!Ir`F@D{Nq=sO>1Q%x~LHsWC_fvbTa&3@tEThgp9Y6D}Vtvc_)kiVoq zte1G3+fTiMOkM>*Gg{NKE@}eVhu`x;Kq!EQh|dZkeW?fs#piN&lIOIvfn8JtOZ?qd zZx;ab3pVoWBR+oQKPA0fBuCr841N-YHng=13rOG?ilg~2@=eD|PsHMk1{Y@dR+4+S5D*S$4(oq(NLc{(T>8nSL{GX-qU8gMcwq;5;X zHvz0_M|cIuWzUe4E#S^eg3Or8LM^jD_eX}3~M** zW9#<-l*01Ge>{n;epqMB`qAo@YtWp6kfkz8O*atNRq*%T(crzMyXiDi?)5a z0w{nUv|GKB(N`iqvi4GH?I>|nl)53%512dq8T(O%g)Er-qd6fvTE;i#QCOM*5uRPU zh>Es-`4|3x(zBBB7Hn3pkX#S(MPy3}*!7tw#N4J@IEL|oZQeKtf_F%)JtAI4LXgo_ zmelx{ZkmqidE5}uJ^R`tuz2?@9VGuShWFaT1@juJ}jGh3oM!YJD8nLAEc~n8! zBHvl#yvR%+WQF|T`%fG#bLx_P!B~KL4C}{4+cNxpSt}no^)UO$)s}$mu35LQ>*0@r z9hcYvv4CI)f<>~fEfLoX5W;1AELEV8fp<&8*eS0Ih*~^Axi=ssUB}Q#R4u<`@dl;H z;)`K?kKKIe1xyc+B!h$^QO^+3%FCB4Zztc9uyDC6{L(E<(ly<_jI2JJ6e=D7bqx|N ztwcU*{c4yy&b!)YY)Xi?xqXBD604X_crnq!t>S*;)@aS0r}DP za9BR_-Xv%F{4Hq8c+xK(pU))cr^Kh^Cj&mHBm|XsSur1A#v8luf!|d-r<#Xg3yy!0 z&nT(n`;j+@x69vlzK)mJwH*4f8Vki?_&Ha}^VX+Wj42X{k zL@0#vlH4N(objs`JhYwl@#e9B{u>`UmW8|vBn$cE`jC-kU{EN8Eb&fIh7o#z;kb~q|Hg6r+}9u3Vb2CR7%}wUbl+Em z@a}~O$p`rgVcAfilU_*(`S}1b?tbCR!sYRgIshLix>Cw-+cEKB;@r> zvVe&ESOhWol?H&aLdeSpjQIk>WwoAW-J@=gKaOn#Ie+ni$ua4wwR^_87m=T=2TK8u z34VErXc=r%u&=}g6yd^ygA#|!aw#9@bGhJ-Aq;+b<*b*7>L#WG7=QaO_mR@QgW&E> z(gipyB%N?s-j?O16BJ=ANeZP-Bum@)Kst7ij1fHWr*qw7YdzP7hFw>$7AF>&er0p_ zo+<=`{9rq%6A9Vzc6og>7qA&_5dRr2O6-J!C=(x$??9pe8Hj{7_z(-X!Gx<<&Kmj8 z#|OCa#&Lc9@_fKuK)win z1+eTtZc~E*b0{zT?$HAMeQb2ew(faQk9m{5P20(}~?(Lb5~B5Rsp*XG1`|PSU9m4yp(M zu@GoTkn`{B&hD@41zb(dygl%kIIT#0T_y)etUnS$=(0oN5oY$W5JK{u$nryL4?{#s zdME}(0PN_VAP5-(l7r<&pT+G2_tuxhrpM6g@bK%iCyo>Sp8-4b2+mQ=ZXqT<6@aU3 zyO9X=aG>V~Ir)Gz!+@R>Xm!%L@P!2vzh7^2nx1;SdllX50iP=-SwAJSfL_w?4~bW; z-7_rTbp46@H^?^yAmb%RB0##7QoJLHekYm!P(tq$8;b8egJT{XuDNlG=Q@28-nTPh z+PAl_2vaZkCj|04Ix7Unh0}FusY?riiClo*58(ab_m0EKR1Ut1%hAg#qW2#q zFG!3YjwKlo5)8Hkug!_ydFQ8ZMB=C}8i5U7oWs#NQP9%xK^h-K%6s#OqL=K1H)4j{ zF`}1haPo4E=;j;>TFm79yixK|??6x;89rXX$zwxaF&2ZPU`|-az14}$f-%qVyL=#065o{1|5UyFf zjeLz*(#Ymm5S)1tMNlUzkssSH*&lq%ke-MlB38Mzg%q;GA{BzAveXM(mX*kt!To}A zBau9Q?V^1u&i7YCOCQMi#teC(1g_vn08+Dh800G+AR+aqb3Xns- zHiu>vfob_sI7s&SSuq$wV1@iZ5U^W+T36Zf8NQV4pZLmI)Bf5lXDxps=d45dEM~s5 z#3|t^!IW5f;u(@K5R+|eo5`I)dQ!*gt7&x6q?A@5U$J;?TN6QK`ACJ3ioj1pLE;q@ z_aBFZc>caZDBxtSAa{=7oHxJyp{1?htK|YH=Pv_?@jQ>kZ)7I!izM;W-MugbqFb@F zx_-q2WRkvgA8N7u1ghJIMFgtlOC>*u0-q{^m}Fxg6bsK-KTL06dse`|>a8>PY}qIF z+wx4_B7*GMZs>TQ={KSEBa;B?q{pE^WUM%w^=Dnbo)D_8pS0vJL>~DuEFvJ|9cPK< zE1`ju#4nQ%NF^UIaskMU_3Iu%dr0Kgf1dH-Gh4}3+aAhXv=52{eVgX`z-`%BPf6yl zy8diJNE*2+@v7_B@&MM}M_4EMF$~MsdIE;!t38EGK44nEA_7EVLGuXNBt`&!@}9&VmBEuGKYubC9`|;z$=HGf<;X{ zA)14ZJ%#h7l{=hXf^&sOqM#BUkNvCU`*4E^pzMgBqj(5M%Ma9T)%B+j8j<#%1E}@v zP~#v`63 znO@VvfNijcEv}!99)OYcv+`-yE1f|MLo_>AviZ5uyheKT|+fd zjNX-&86^y!y8I_W&K@}B=&M_B*(;*sZ{~Pl*2`~vbmrg7p5WU)XxQxMtBImYI8^f4 z5JDV}wHH^JqkX8bT@C6xQjkdw)$xIB*H9W=!^(x(TLxgifm7zJZ0bVSh!K4fcjofl z_buCj$9`7k`-9|AXw$%IBB&>PW)8r{fRLI5R>}bkA!+%5Nd6YHP?A73 zK}_R58@Yj&5BSb7!#RIw-YNf6>4vl&Bl>Qhm9zfx^zg*~gCy`>$>KdW2Y77OpR*3F z^VTZYZz4Y*Fei=lP+)ig7=`7dLX-|3ns>@&og^P4?EzFwe`NYpzvy1-!=2}oL)lE< zX8n#fN{C$RM|55Dx`DNN04QBUVd)ww-NB?+5EnPOafH(@;_D>c1w;So%$qw+d|vBD z9DA)eWV&SM#}dx5X17mf#sQq1Zl7)Jzf}T&((NNHEM&(6R6%HC0|U(B%Hh)Z3vv9J z1FgP>^n$HUtuM9w>7p*W7%kX(U(?=2fUW?xa{NaC00960qA<}5<97is P00000NkvXXu0mjf!n_o%J1C{C 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/env.d.ts b/src/renderer/src/env.d.ts new file mode 100644 index 00000000..f7723596 --- /dev/null +++ b/src/renderer/src/env.d.ts @@ -0,0 +1,4 @@ +declare module "*.png" { + const src: string; + export default src; +} diff --git a/src/renderer/src/pages/settings/ProviderLogo.tsx b/src/renderer/src/pages/settings/ProviderLogo.tsx deleted file mode 100644 index 0aa598de..00000000 --- a/src/renderer/src/pages/settings/ProviderLogo.tsx +++ /dev/null @@ -1,35 +0,0 @@ -const PROVIDER_BRAND: Record = { - "Anthropic": ["#cb9a5b", "A"], - "OpenAI": ["#0a0a0b", "O"], - "xAI Grok": ["#0a0a0b", "X"], - "GitHub Copilot": ["#2da44e", "⌬"], - "Google Antigravity": ["#3a7bd5", "G"], - "GPT account": ["#10a37f", "◔"], - "Azure OpenAI": ["#0078d4", "Az"], - "AWS Bedrock": ["#e87722", "Bd"], - "Vertex AI": ["#4285f4", "V"], - "Groq": ["#f55036", "Q"], -}; - -export function ProviderLogo({ label, size = 30 }: { label: string; size?: number }) { - const entry = PROVIDER_BRAND[label] ?? ["#a1a1aa", label.slice(0, 1).toUpperCase()]; - const [background, glyph] = entry; - return ( -
- {glyph} -
- ); -} diff --git a/src/renderer/src/pages/settings/ProvidersPanel.tsx b/src/renderer/src/pages/settings/ProvidersPanel.tsx index 75d0a155..7823f43b 100644 --- a/src/renderer/src/pages/settings/ProvidersPanel.tsx +++ b/src/renderer/src/pages/settings/ProvidersPanel.tsx @@ -10,7 +10,7 @@ import type { ProviderRecord, } from "../../../../shared/domain"; import { PROVIDER_DATA_POLICY } from "../../../../shared/domain"; -import { ProviderLogo } from "./ProviderLogo"; +import { ProviderLogo } from "../../shared/ProviderLogo"; import { ProviderConnectFields, ProviderOAuthFields } from "./ProviderConnectionDialog"; import { composeSecret } from "./provider-secret"; import type { SnapshotActions } from "../../app/useSnapshot"; @@ -281,7 +281,7 @@ function ProviderRow({ borderRadius: 10, }} > - +
{provider.label}
@@ -321,7 +321,7 @@ function ProviderCard({ provider, onConnect }: { provider: ProviderRecord; onCon minWidth: 0, }} > - +
{provider.label}
diff --git a/src/renderer/src/shared/ProviderLogo.tsx b/src/renderer/src/shared/ProviderLogo.tsx new file mode 100644 index 00000000..6731bd1a --- /dev/null +++ b/src/renderer/src/shared/ProviderLogo.tsx @@ -0,0 +1,76 @@ +import openaiLogo from "../assets/provider-logos/openai.png"; +import anthropicLogo from "../assets/provider-logos/anthropic.png"; +import claudeProLogo from "../assets/provider-logos/claude-pro.png"; +import xaiLogo from "../assets/provider-logos/xai.png"; +import groqLogo from "../assets/provider-logos/groq.png"; +import mistralLogo from "../assets/provider-logos/mistral.png"; +import cerebrasLogo from "../assets/provider-logos/cerebras.png"; +import openrouterLogo from "../assets/provider-logos/openrouter.png"; +import kimiLogo from "../assets/provider-logos/kimi.png"; +import kimiCnLogo from "../assets/provider-logos/kimi-cn.png"; +import githubCopilotLogo from "../assets/provider-logos/github-copilot.png"; +import googleAntigravityLogo from "../assets/provider-logos/google-antigravity.png"; +import gptAccountLogo from "../assets/provider-logos/gpt-account.png"; +import azureOpenAiLogo from "../assets/provider-logos/azure-openai.png"; +import awsBedrockLogo from "../assets/provider-logos/aws-bedrock.png"; +import vertexAiLogo from "../assets/provider-logos/vertex-ai.png"; + +/** + * Official provider marks bundled at build time (assets/provider-logos — + * downloaded once from img.logo.dev, see the README there). Catalog keys + * without an official brand (the custom endpoints) fall back to a letter + * tile. The white tile behind the image keeps transparent marks legible on + * the dark theme; full-bleed logos cover it entirely. + */ +const PROVIDER_LOGOS: Record = { + openai: openaiLogo, + anthropic: anthropicLogo, + "claude-pro": claudeProLogo, + xai: xaiLogo, + groq: groqLogo, + mistral: mistralLogo, + cerebras: cerebrasLogo, + openrouter: openrouterLogo, + kimi: kimiLogo, + "kimi-cn": kimiCnLogo, + "kimi-code": kimiLogo, + "github-copilot": githubCopilotLogo, + "google-antigravity": googleAntigravityLogo, + "gpt-account": gptAccountLogo, + "azure-openai": azureOpenAiLogo, + "aws-bedrock": awsBedrockLogo, + "vertex-ai": vertexAiLogo, +}; + +export function ProviderLogo({ providerKey, label, size = 30 }: { providerKey: string; label: string; size?: number }) { + const logo = PROVIDER_LOGOS[providerKey]; + if (logo) { + return ( + + ); + } + return ( +
+ {label.slice(0, 1).toUpperCase()} +
+ ); +}