Browse Source

feat: polish dialog & list styles for the desktop app, add fixed logos from models.dev (#5925)

Aaron Iker 2 months ago
parent
commit
5fd873a35a
73 changed files with 364 additions and 399 deletions
  1. 19 17
      packages/desktop/src/components/dialog-connect-provider.tsx
  2. 14 7
      packages/desktop/src/components/dialog-manage-models.tsx
  3. 5 6
      packages/desktop/src/components/dialog-select-file.tsx
  4. 11 20
      packages/desktop/src/components/dialog-select-model-unpaid.tsx
  5. 1 2
      packages/desktop/src/components/dialog-select-model.tsx
  6. 2 12
      packages/desktop/src/components/dialog-select-provider.tsx
  7. 0 1
      packages/desktop/src/context/command.tsx
  8. 0 1
      packages/ui/src/assets/icons/provider/aihubmix.svg
  9. 2 2
      packages/ui/src/assets/icons/provider/alibaba-cn.svg
  10. 2 2
      packages/ui/src/assets/icons/provider/alibaba.svg
  11. 1 3
      packages/ui/src/assets/icons/provider/amazon-bedrock.svg
  12. 3 7
      packages/ui/src/assets/icons/provider/anthropic.svg
  13. 2 3
      packages/ui/src/assets/icons/provider/azure.svg
  14. 0 1
      packages/ui/src/assets/icons/provider/bailing.svg
  15. 3 1
      packages/ui/src/assets/icons/provider/baseten.svg
  16. 1 2
      packages/ui/src/assets/icons/provider/cerebras.svg
  17. 3 5
      packages/ui/src/assets/icons/provider/cloudflare-ai-gateway.svg
  18. 3 5
      packages/ui/src/assets/icons/provider/cloudflare-workers-ai.svg
  19. 4 18
      packages/ui/src/assets/icons/provider/cohere.svg
  20. 0 1
      packages/ui/src/assets/icons/provider/deepinfra.svg
  21. 0 1
      packages/ui/src/assets/icons/provider/deepseek.svg
  22. 2 2
      packages/ui/src/assets/icons/provider/fastrouter.svg
  23. 2 2
      packages/ui/src/assets/icons/provider/fireworks-ai.svg
  24. 1 4
      packages/ui/src/assets/icons/provider/github-copilot.svg
  25. 3 4
      packages/ui/src/assets/icons/provider/github-models.svg
  26. 4 2
      packages/ui/src/assets/icons/provider/google-vertex.svg
  27. 2 6
      packages/ui/src/assets/icons/provider/google.svg
  28. 2 2
      packages/ui/src/assets/icons/provider/groq.svg
  29. 5 2
      packages/ui/src/assets/icons/provider/helicone.svg
  30. 0 1
      packages/ui/src/assets/icons/provider/huggingface.svg
  31. 0 1
      packages/ui/src/assets/icons/provider/iflowcn.svg
  32. 3 8
      packages/ui/src/assets/icons/provider/inception.svg
  33. 2 2
      packages/ui/src/assets/icons/provider/inference.svg
  34. 4 4
      packages/ui/src/assets/icons/provider/io-net.svg
  35. 0 2
      packages/ui/src/assets/icons/provider/kimi-for-coding.svg
  36. 2 6
      packages/ui/src/assets/icons/provider/llama.svg
  37. 0 2
      packages/ui/src/assets/icons/provider/lucidquery.svg
  38. 0 2
      packages/ui/src/assets/icons/provider/minimax-cn.svg
  39. 0 2
      packages/ui/src/assets/icons/provider/minimax.svg
  40. 2 2
      packages/ui/src/assets/icons/provider/mistral.svg
  41. 4 2
      packages/ui/src/assets/icons/provider/modelscope.svg
  42. 0 2
      packages/ui/src/assets/icons/provider/moonshotai-cn.svg
  43. 0 2
      packages/ui/src/assets/icons/provider/moonshotai.svg
  44. 4 1
      packages/ui/src/assets/icons/provider/nebius.svg
  45. 3 4
      packages/ui/src/assets/icons/provider/nvidia.svg
  46. 0 1
      packages/ui/src/assets/icons/provider/ollama-cloud.svg
  47. 1 6
      packages/ui/src/assets/icons/provider/openai.svg
  48. 3 4
      packages/ui/src/assets/icons/provider/opencode.svg
  49. 7 18
      packages/ui/src/assets/icons/provider/openrouter.svg
  50. 2 2
      packages/ui/src/assets/icons/provider/ovhcloud.svg
  51. 3 3
      packages/ui/src/assets/icons/provider/perplexity.svg
  52. 7 7
      packages/ui/src/assets/icons/provider/poe.svg
  53. 4 4
      packages/ui/src/assets/icons/provider/scaleway.svg
  54. 3 0
      packages/ui/src/assets/icons/provider/siliconflow-cn.svg
  55. 3 6
      packages/ui/src/assets/icons/provider/siliconflow.svg
  56. 2 4
      packages/ui/src/assets/icons/provider/submodel.svg
  57. 3 2
      packages/ui/src/assets/icons/provider/togetherai.svg
  58. 3 4
      packages/ui/src/assets/icons/provider/v0.svg
  59. 1 23
      packages/ui/src/assets/icons/provider/venice.svg
  60. 2 3
      packages/ui/src/assets/icons/provider/vercel.svg
  61. 5 17
      packages/ui/src/assets/icons/provider/vultr.svg
  62. 2 2
      packages/ui/src/assets/icons/provider/xai.svg
  63. 3 0
      packages/ui/src/assets/icons/provider/xiaomi.svg
  64. 2 2
      packages/ui/src/assets/icons/provider/zai-coding-plan.svg
  65. 2 2
      packages/ui/src/assets/icons/provider/zai.svg
  66. 0 1
      packages/ui/src/assets/icons/provider/zenmux.svg
  67. 2 2
      packages/ui/src/assets/icons/provider/zhipuai-coding-plan.svg
  68. 2 2
      packages/ui/src/assets/icons/provider/zhipuai.svg
  69. 7 7
      packages/ui/src/components/dialog.css
  70. 133 83
      packages/ui/src/components/list.css
  71. 32 4
      packages/ui/src/components/list.tsx
  72. 7 6
      packages/ui/src/components/provider-icons/sprite.svg
  73. 2 0
      packages/ui/src/components/provider-icons/types.ts

+ 19 - 17
packages/desktop/src/components/dialog-connect-provider.tsx

@@ -1,24 +1,24 @@
-import { createMemo, Match, onCleanup, onMount, Switch } from "solid-js"
-import { createStore, produce } from "solid-js/store"
+import type { ProviderAuthAuthorization } from "@opencode-ai/sdk/v2/client"
+import { Button } from "@opencode-ai/ui/button"
 import { useDialog } from "@opencode-ai/ui/context/dialog"
 import { useDialog } from "@opencode-ai/ui/context/dialog"
-import { useGlobalSync } from "@/context/global-sync"
-import { useGlobalSDK } from "@/context/global-sdk"
-import { usePlatform } from "@/context/platform"
-import { ProviderAuthAuthorization } from "@opencode-ai/sdk/v2/client"
 import { Dialog } from "@opencode-ai/ui/dialog"
 import { Dialog } from "@opencode-ai/ui/dialog"
-import { List, ListRef } from "@opencode-ai/ui/list"
-import { Button } from "@opencode-ai/ui/button"
+import { Icon } from "@opencode-ai/ui/icon"
 import { IconButton } from "@opencode-ai/ui/icon-button"
 import { IconButton } from "@opencode-ai/ui/icon-button"
-import { TextField } from "@opencode-ai/ui/text-field"
+import type { IconName } from "@opencode-ai/ui/icons/provider"
+import { List, type ListRef } from "@opencode-ai/ui/list"
+import { ProviderIcon } from "@opencode-ai/ui/provider-icon"
 import { Spinner } from "@opencode-ai/ui/spinner"
 import { Spinner } from "@opencode-ai/ui/spinner"
-import { Icon } from "@opencode-ai/ui/icon"
+import { TextField } from "@opencode-ai/ui/text-field"
 import { showToast } from "@opencode-ai/ui/toast"
 import { showToast } from "@opencode-ai/ui/toast"
-import { ProviderIcon } from "@opencode-ai/ui/provider-icon"
-import { IconName } from "@opencode-ai/ui/icons/provider"
 import { iife } from "@opencode-ai/util/iife"
 import { iife } from "@opencode-ai/util/iife"
+import { createMemo, Match, onCleanup, onMount, Switch } from "solid-js"
+import { createStore, produce } from "solid-js/store"
 import { Link } from "@/components/link"
 import { Link } from "@/components/link"
-import { DialogSelectProvider } from "./dialog-select-provider"
+import { useGlobalSDK } from "@/context/global-sdk"
+import { useGlobalSync } from "@/context/global-sync"
+import { usePlatform } from "@/context/platform"
 import { DialogSelectModel } from "./dialog-select-model"
 import { DialogSelectModel } from "./dialog-select-model"
+import { DialogSelectProvider } from "./dialog-select-provider"
 
 
 export function DialogConnectProvider(props: { provider: string }) {
 export function DialogConnectProvider(props: { provider: string }) {
   const dialog = useDialog()
   const dialog = useDialog()
@@ -154,7 +154,9 @@ export function DialogConnectProvider(props: { provider: string }) {
               <div class="text-14-regular text-text-base">Select login method for {provider().name}.</div>
               <div class="text-14-regular text-text-base">Select login method for {provider().name}.</div>
               <div class="">
               <div class="">
                 <List
                 <List
-                  ref={(ref) => (listRef = ref)}
+                  ref={(ref) => {
+                    listRef = ref
+                  }}
                   items={methods}
                   items={methods}
                   key={(m) => m?.label}
                   key={(m) => m?.label}
                   onSelect={async (method, index) => {
                   onSelect={async (method, index) => {
@@ -163,7 +165,7 @@ export function DialogConnectProvider(props: { provider: string }) {
                   }}
                   }}
                 >
                 >
                   {(i) => (
                   {(i) => (
-                    <div class="w-full flex items-center gap-x-4">
+                    <div class="w-full flex items-center gap-x-2">
                       <div class="w-4 h-2 rounded-[1px] bg-input-base shadow-xs-border-base flex items-center justify-center">
                       <div class="w-4 h-2 rounded-[1px] bg-input-base shadow-xs-border-base flex items-center justify-center">
                         <div class="w-2.5 h-0.5 bg-icon-strong-base hidden" data-slot="list-item-extra-icon" />
                         <div class="w-2.5 h-0.5 bg-icon-strong-base hidden" data-slot="list-item-extra-icon" />
                       </div>
                       </div>
@@ -175,7 +177,7 @@ export function DialogConnectProvider(props: { provider: string }) {
             </Match>
             </Match>
             <Match when={store.state === "pending"}>
             <Match when={store.state === "pending"}>
               <div class="text-14-regular text-text-base">
               <div class="text-14-regular text-text-base">
-                <div class="flex items-center gap-x-4">
+                <div class="flex items-center gap-x-2">
                   <Spinner />
                   <Spinner />
                   <span>Authorization in progress...</span>
                   <span>Authorization in progress...</span>
                 </div>
                 </div>
@@ -183,7 +185,7 @@ export function DialogConnectProvider(props: { provider: string }) {
             </Match>
             </Match>
             <Match when={store.state === "error"}>
             <Match when={store.state === "error"}>
               <div class="text-14-regular text-text-base">
               <div class="text-14-regular text-text-base">
-                <div class="flex items-center gap-x-4">
+                <div class="flex items-center gap-x-2">
                   <Icon name="circle-ban-sign" class="text-icon-critical-base" />
                   <Icon name="circle-ban-sign" class="text-icon-critical-base" />
                   <span>Authorization failed: {store.error}</span>
                   <span>Authorization failed: {store.error}</span>
                 </div>
                 </div>

+ 14 - 7
packages/desktop/src/components/dialog-manage-models.tsx

@@ -1,16 +1,15 @@
-import { Component } from "solid-js"
-import { useLocal } from "@/context/local"
-import { popularProviders } from "@/hooks/use-providers"
 import { Dialog } from "@opencode-ai/ui/dialog"
 import { Dialog } from "@opencode-ai/ui/dialog"
 import { List } from "@opencode-ai/ui/list"
 import { List } from "@opencode-ai/ui/list"
 import { Switch } from "@opencode-ai/ui/switch"
 import { Switch } from "@opencode-ai/ui/switch"
+import type { Component } from "solid-js"
+import { useLocal } from "@/context/local"
+import { popularProviders } from "@/hooks/use-providers"
 
 
 export const DialogManageModels: Component = () => {
 export const DialogManageModels: Component = () => {
   const local = useLocal()
   const local = useLocal()
   return (
   return (
     <Dialog title="Manage models" description="Customize which models appear in the model selector.">
     <Dialog title="Manage models" description="Customize which models appear in the model selector.">
       <List
       <List
-        class="px-2.5"
         search={{ placeholder: "Search models", autofocus: true }}
         search={{ placeholder: "Search models", autofocus: true }}
         emptyMessage="No model results"
         emptyMessage="No model results"
         key={(x) => `${x?.provider?.id}:${x?.id}`}
         key={(x) => `${x?.provider?.id}:${x?.id}`}
@@ -27,16 +26,24 @@ export const DialogManageModels: Component = () => {
         }}
         }}
         onSelect={(x) => {
         onSelect={(x) => {
           if (!x) return
           if (!x) return
-          const visible = local.model.visible({ modelID: x.id, providerID: x.provider.id })
+          const visible = local.model.visible({
+            modelID: x.id,
+            providerID: x.provider.id,
+          })
           local.model.setVisibility({ modelID: x.id, providerID: x.provider.id }, !visible)
           local.model.setVisibility({ modelID: x.id, providerID: x.provider.id }, !visible)
         }}
         }}
       >
       >
         {(i) => (
         {(i) => (
-          <div class="w-full flex items-center justify-between gap-x-2.5">
+          <div class="w-full flex items-center justify-between gap-x-3">
             <span>{i.name}</span>
             <span>{i.name}</span>
             <div onClick={(e) => e.stopPropagation()}>
             <div onClick={(e) => e.stopPropagation()}>
               <Switch
               <Switch
-                checked={!!local.model.visible({ modelID: i.id, providerID: i.provider.id })}
+                checked={
+                  !!local.model.visible({
+                    modelID: i.id,
+                    providerID: i.provider.id,
+                  })
+                }
                 onChange={(checked) => {
                 onChange={(checked) => {
                   local.model.setVisibility({ modelID: i.id, providerID: i.provider.id }, checked)
                   local.model.setVisibility({ modelID: i.id, providerID: i.provider.id }, checked)
                 }}
                 }}

+ 5 - 6
packages/desktop/src/components/dialog-select-file.tsx

@@ -1,12 +1,12 @@
-import { useLocal } from "@/context/local"
+import { useDialog } from "@opencode-ai/ui/context/dialog"
 import { Dialog } from "@opencode-ai/ui/dialog"
 import { Dialog } from "@opencode-ai/ui/dialog"
-import { List } from "@opencode-ai/ui/list"
 import { FileIcon } from "@opencode-ai/ui/file-icon"
 import { FileIcon } from "@opencode-ai/ui/file-icon"
+import { List } from "@opencode-ai/ui/list"
 import { getDirectory, getFilename } from "@opencode-ai/util/path"
 import { getDirectory, getFilename } from "@opencode-ai/util/path"
-import { useLayout } from "@/context/layout"
-import { useDialog } from "@opencode-ai/ui/context/dialog"
 import { useParams } from "@solidjs/router"
 import { useParams } from "@solidjs/router"
 import { createMemo } from "solid-js"
 import { createMemo } from "solid-js"
+import { useLayout } from "@/context/layout"
+import { useLocal } from "@/context/local"
 
 
 export function DialogSelectFile() {
 export function DialogSelectFile() {
   const layout = useLayout()
   const layout = useLayout()
@@ -18,7 +18,6 @@ export function DialogSelectFile() {
   return (
   return (
     <Dialog title="Select file">
     <Dialog title="Select file">
       <List
       <List
-        class="px-2.5"
         search={{ placeholder: "Search files", autofocus: true }}
         search={{ placeholder: "Search files", autofocus: true }}
         emptyMessage="No files found"
         emptyMessage="No files found"
         items={local.file.searchFiles}
         items={local.file.searchFiles}
@@ -32,7 +31,7 @@ export function DialogSelectFile() {
       >
       >
         {(i) => (
         {(i) => (
           <div class="w-full flex items-center justify-between rounded-md">
           <div class="w-full flex items-center justify-between rounded-md">
-            <div class="flex items-center gap-x-2 grow min-w-0">
+            <div class="flex items-center gap-x-3 grow min-w-0">
               <FileIcon node={{ path: i, type: "file" }} class="shrink-0 size-4" />
               <FileIcon node={{ path: i, type: "file" }} class="shrink-0 size-4" />
               <div class="flex items-center text-14-regular">
               <div class="flex items-center text-14-regular">
                 <span class="text-text-weak whitespace-nowrap overflow-hidden overflow-ellipsis truncate min-w-0">
                 <span class="text-text-weak whitespace-nowrap overflow-hidden overflow-ellipsis truncate min-w-0">

+ 11 - 20
packages/desktop/src/components/dialog-select-model-unpaid.tsx

@@ -1,15 +1,15 @@
-import { Component, onCleanup, onMount, Show } from "solid-js"
-import { useLocal } from "@/context/local"
-import { useDialog } from "@opencode-ai/ui/context/dialog"
-import { popularProviders, useProviders } from "@/hooks/use-providers"
 import { Button } from "@opencode-ai/ui/button"
 import { Button } from "@opencode-ai/ui/button"
-import { Tag } from "@opencode-ai/ui/tag"
+import { useDialog } from "@opencode-ai/ui/context/dialog"
 import { Dialog } from "@opencode-ai/ui/dialog"
 import { Dialog } from "@opencode-ai/ui/dialog"
-import { List, ListRef } from "@opencode-ai/ui/list"
+import type { IconName } from "@opencode-ai/ui/icons/provider"
+import { List, type ListRef } from "@opencode-ai/ui/list"
 import { ProviderIcon } from "@opencode-ai/ui/provider-icon"
 import { ProviderIcon } from "@opencode-ai/ui/provider-icon"
-import { IconName } from "@opencode-ai/ui/icons/provider"
-import { DialogSelectProvider } from "./dialog-select-provider"
+import { Tag } from "@opencode-ai/ui/tag"
+import { type Component, onCleanup, onMount, Show } from "solid-js"
+import { useLocal } from "@/context/local"
+import { popularProviders, useProviders } from "@/hooks/use-providers"
 import { DialogConnectProvider } from "./dialog-connect-provider"
 import { DialogConnectProvider } from "./dialog-connect-provider"
+import { DialogSelectProvider } from "./dialog-select-provider"
 
 
 export const DialogSelectModelUnpaid: Component = () => {
 export const DialogSelectModelUnpaid: Component = () => {
   const local = useLocal()
   const local = useLocal()
@@ -64,7 +64,7 @@ export const DialogSelectModelUnpaid: Component = () => {
             <div class="px-2 text-14-medium text-text-base">Add more models from popular providers</div>
             <div class="px-2 text-14-medium text-text-base">Add more models from popular providers</div>
             <div class="w-full">
             <div class="w-full">
               <List
               <List
-                class="w-full"
+                class="w-full px-0"
                 key={(x) => x?.id}
                 key={(x) => x?.id}
                 items={providers.popular}
                 items={providers.popular}
                 activeIcon="plus-small"
                 activeIcon="plus-small"
@@ -79,17 +79,8 @@ export const DialogSelectModelUnpaid: Component = () => {
                 }}
                 }}
               >
               >
                 {(i) => (
                 {(i) => (
-                  <div class="w-full flex items-center gap-x-4">
-                    <ProviderIcon
-                      data-slot="list-item-extra-icon"
-                      id={i.id as IconName}
-                      // TODO: clean this up after we update icon in models.dev
-                      classList={{
-                        "text-icon-weak-base": true,
-                        "size-4 mx-0.5": i.id === "opencode",
-                        "size-5": i.id !== "opencode",
-                      }}
-                    />
+                  <div class="w-full flex items-center gap-x-3">
+                    <ProviderIcon data-slot="list-item-extra-icon" id={i.id as IconName} />
                     <span>{i.name}</span>
                     <span>{i.name}</span>
                     <Show when={i.id === "opencode"}>
                     <Show when={i.id === "opencode"}>
                       <Tag>Recommended</Tag>
                       <Tag>Recommended</Tag>

+ 1 - 2
packages/desktop/src/components/dialog-select-model.tsx

@@ -35,7 +35,6 @@ export const DialogSelectModel: Component<{ provider?: string }> = (props) => {
       }
       }
     >
     >
       <List
       <List
-        class="px-2.5"
         search={{ placeholder: "Search models", autofocus: true }}
         search={{ placeholder: "Search models", autofocus: true }}
         emptyMessage="No model results"
         emptyMessage="No model results"
         key={(x) => `${x.provider.id}:${x.id}`}
         key={(x) => `${x.provider.id}:${x.id}`}
@@ -61,7 +60,7 @@ export const DialogSelectModel: Component<{ provider?: string }> = (props) => {
         }}
         }}
       >
       >
         {(i) => (
         {(i) => (
-          <div class="w-full flex items-center gap-x-2.5">
+          <div class="w-full flex items-center gap-x-3">
             <span>{i.name}</span>
             <span>{i.name}</span>
             <Show when={i.provider.id === "opencode" && (!i.cost || i.cost?.input === 0)}>
             <Show when={i.provider.id === "opencode" && (!i.cost || i.cost?.input === 0)}>
               <Tag>Free</Tag>
               <Tag>Free</Tag>

+ 2 - 12
packages/desktop/src/components/dialog-select-provider.tsx

@@ -15,7 +15,6 @@ export const DialogSelectProvider: Component = () => {
   return (
   return (
     <Dialog title="Connect provider">
     <Dialog title="Connect provider">
       <List
       <List
-        class="px-2.5"
         search={{ placeholder: "Search providers", autofocus: true }}
         search={{ placeholder: "Search providers", autofocus: true }}
         activeIcon="plus-small"
         activeIcon="plus-small"
         key={(x) => x?.id}
         key={(x) => x?.id}
@@ -38,17 +37,8 @@ export const DialogSelectProvider: Component = () => {
         }}
         }}
       >
       >
         {(i) => (
         {(i) => (
-          <div class="px-1.25 w-full flex items-center gap-x-4">
-            <ProviderIcon
-              data-slot="list-item-extra-icon"
-              id={i.id as IconName}
-              // TODO: clean this up after we update icon in models.dev
-              classList={{
-                "text-icon-weak-base": true,
-                "size-4 mx-0.5": i.id === "opencode",
-                "size-5": i.id !== "opencode",
-              }}
-            />
+          <div class="px-1.25 w-full flex items-center gap-x-3">
+            <ProviderIcon data-slot="list-item-extra-icon" id={i.id as IconName} />
             <span>{i.name}</span>
             <span>{i.name}</span>
             <Show when={i.id === "opencode"}>
             <Show when={i.id === "opencode"}>
               <Tag>Recommended</Tag>
               <Tag>Recommended</Tag>

+ 0 - 1
packages/desktop/src/context/command.tsx

@@ -119,7 +119,6 @@ function DialogCommand(props: { options: CommandOption[] }) {
   return (
   return (
     <Dialog title="Commands">
     <Dialog title="Commands">
       <List
       <List
-        class="px-2.5"
         search={{ placeholder: "Search commands", autofocus: true }}
         search={{ placeholder: "Search commands", autofocus: true }}
         emptyMessage="No commands found"
         emptyMessage="No commands found"
         items={() => props.options.filter((x) => !x.id.startsWith("suggested.") || !x.disabled)}
         items={() => props.options.filter((x) => !x.id.startsWith("suggested.") || !x.disabled)}

File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/aihubmix.svg


+ 2 - 2
packages/ui/src/assets/icons/provider/alibaba-cn.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M24 14.014c-2.8 1.512-5.62 2.896-8.759 3.524-.7.139-1.476.139-2.187.043-.678-.085-1.017-.682-.776-1.31.23-.585.536-1.181.93-1.671.852-1.065 1.814-2.034 2.678-3.088a15.75 15.75 0 001.422-2.054c.306-.511.164-1.129-.372-1.384-.897-.437-1.859-.745-2.81-1.075-.11-.043-.274.074-.492.149.273.244.47.425.743.67-2.821.48-5.49 1.16-8.08 2.098-.012.053-.033.095-.023.117.383.585.208 1.032-.35 1.394a2.365 2.365 0 00-.568.522c1.706.5 3.226.213 4.68-.735-.087-.127-.175-.244-.262-.372.546.096.874.394.918.862.011.107-.054.213-.087.32-.077-.086-.175-.17-.24-.267-.045-.064-.056-.138-.088-.245-1.728 1.15-3.587 1.438-5.632.842 0 .404-.022.745.011 1.075.022.287-.098.415-.36.564-.591.362-1.204.735-1.696 1.214-.59.585-.371 1.299.427 1.597.907.34 1.859.35 2.81.234 1.126-.139 2.23-.32 3.456-.49-1.433.67-2.844 1.14-4.33 1.33-1.04.14-2.078.214-3.106-.084-1.476-.415-2.133-1.501-1.75-2.96.361-1.363 1.236-2.449 2.176-3.45 3.139-3.332 7.108-5.024 11.7-5.365 1.072-.074 2.155.064 3.16.511 1.411.639 2.002 1.99 1.313 3.354-.448.905-1.072 1.735-1.695 2.555-.612.809-1.301 1.554-1.946 2.331-.186.234-.361.48-.503.745-.274.5-.088.83.492.778 1.213-.118 2.45-.213 3.62-.511 1.716-.437 3.389-1.054 5.084-1.597.175-.043.339-.107.492-.17z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M38 23.021C33.8 25.289 29.5701 27.365 24.8616 28.307C23.8116 28.5154 22.6476 28.5154 21.5811 28.3715C20.5641 28.244 20.0557 27.3485 20.4172 26.4065C20.7621 25.529 21.2211 24.635 21.8121 23.9C23.0901 22.3025 24.5331 20.849 25.8291 19.268C26.6206 18.2991 27.3338 17.2689 27.9621 16.1871C28.4211 15.4206 28.2081 14.4936 27.4041 14.1111C26.0586 13.4556 24.6156 12.9936 23.1891 12.4986C23.0241 12.4341 22.7781 12.6096 22.4511 12.7221C22.8606 13.0881 23.1561 13.3596 23.5656 13.7271C19.3342 14.4471 15.3307 15.4671 11.4457 16.8741C11.4277 16.9536 11.3962 17.0166 11.4112 17.0496C11.9857 17.927 11.7232 18.5975 10.8862 19.1405C10.5613 19.3531 10.2735 19.6177 10.0342 19.9235C12.5932 20.6735 14.8732 20.243 17.0542 18.821C16.9237 18.6305 16.7917 18.455 16.6612 18.263C17.4802 18.407 17.9722 18.854 18.0382 19.556C18.0547 19.7165 17.9572 19.8755 17.9077 20.036C17.7922 19.907 17.6452 19.781 17.5477 19.6355C17.4802 19.5395 17.4637 19.4285 17.4157 19.268C14.8237 20.993 12.0352 21.425 8.96775 20.531C8.96775 21.137 8.93475 21.6485 8.98425 22.1435C9.01725 22.574 8.83725 22.766 8.44426 22.9895C7.55776 23.5325 6.63827 24.092 5.90028 24.8105C5.01528 25.688 5.34378 26.759 6.54077 27.206C7.90126 27.716 9.32925 27.731 10.7557 27.557C12.4447 27.3485 14.1007 27.077 15.9397 26.822C13.7902 27.827 11.6737 28.5319 9.44475 28.8169C7.88476 29.0269 6.32777 29.1379 4.78579 28.6909C2.57181 28.0685 1.58631 26.4395 2.16081 24.251C2.7023 22.2065 4.01479 20.5775 5.42478 19.076C10.1332 14.0781 16.0867 11.5401 22.9746 11.0286C24.5826 10.9176 26.2071 11.1246 27.7146 11.7951C29.8311 12.7536 30.7176 14.7801 29.6841 16.8261C29.0121 18.1835 28.0761 19.4285 27.1416 20.6585C26.2236 21.872 25.1901 22.9895 24.2226 24.155C23.9436 24.506 23.6811 24.875 23.4681 25.2725C23.0571 26.0225 23.3361 26.5175 24.2061 26.4395C26.0256 26.2625 27.8811 26.12 29.6361 25.673C32.2101 25.0175 34.7195 24.092 37.262 23.2775C37.5245 23.213 37.7705 23.117 38 23.0225V23.021Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/alibaba.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M24 14.014c-2.8 1.512-5.62 2.896-8.759 3.524-.7.139-1.476.139-2.187.043-.678-.085-1.017-.682-.776-1.31.23-.585.536-1.181.93-1.671.852-1.065 1.814-2.034 2.678-3.088a15.75 15.75 0 001.422-2.054c.306-.511.164-1.129-.372-1.384-.897-.437-1.859-.745-2.81-1.075-.11-.043-.274.074-.492.149.273.244.47.425.743.67-2.821.48-5.49 1.16-8.08 2.098-.012.053-.033.095-.023.117.383.585.208 1.032-.35 1.394a2.365 2.365 0 00-.568.522c1.706.5 3.226.213 4.68-.735-.087-.127-.175-.244-.262-.372.546.096.874.394.918.862.011.107-.054.213-.087.32-.077-.086-.175-.17-.24-.267-.045-.064-.056-.138-.088-.245-1.728 1.15-3.587 1.438-5.632.842 0 .404-.022.745.011 1.075.022.287-.098.415-.36.564-.591.362-1.204.735-1.696 1.214-.59.585-.371 1.299.427 1.597.907.34 1.859.35 2.81.234 1.126-.139 2.23-.32 3.456-.49-1.433.67-2.844 1.14-4.33 1.33-1.04.14-2.078.214-3.106-.084-1.476-.415-2.133-1.501-1.75-2.96.361-1.363 1.236-2.449 2.176-3.45 3.139-3.332 7.108-5.024 11.7-5.365 1.072-.074 2.155.064 3.16.511 1.411.639 2.002 1.99 1.313 3.354-.448.905-1.072 1.735-1.695 2.555-.612.809-1.301 1.554-1.946 2.331-.186.234-.361.48-.503.745-.274.5-.088.83.492.778 1.213-.118 2.45-.213 3.62-.511 1.716-.437 3.389-1.054 5.084-1.597.175-.043.339-.107.492-.17z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M37.9998 23.021C33.7998 25.2889 29.5698 27.3649 24.8614 28.3069C23.8114 28.5154 22.6474 28.5154 21.5809 28.3714C20.5639 28.2439 20.0554 27.3484 20.4169 26.4064C20.7619 25.5289 21.2209 24.635 21.8119 23.9C23.0899 22.3025 24.5329 20.849 25.8289 19.268C26.6203 18.2991 27.3335 17.2689 27.9618 16.187C28.4208 15.4205 28.2078 14.4935 27.4038 14.111C26.0584 13.4556 24.6154 12.9936 23.1889 12.4986C23.0239 12.4341 22.7779 12.6096 22.4509 12.7221C22.8604 13.0881 23.1559 13.3596 23.5654 13.727C19.3339 14.447 15.3305 15.467 11.4455 16.874C11.4275 16.9535 11.396 17.0165 11.411 17.0495C11.9855 17.927 11.723 18.5975 10.886 19.1405C10.5611 19.3531 10.2732 19.6176 10.034 19.9235C12.593 20.6735 14.873 20.243 17.0539 18.821C16.9234 18.6305 16.7914 18.455 16.6609 18.263C17.4799 18.407 17.9719 18.854 18.0379 19.556C18.0544 19.7165 17.9569 19.8755 17.9074 20.036C17.7919 19.907 17.6449 19.781 17.5474 19.6355C17.4799 19.5395 17.4634 19.4285 17.4154 19.268C14.8235 20.993 12.035 21.425 8.96751 20.531C8.96751 21.137 8.93451 21.6485 8.98401 22.1435C9.01701 22.574 8.83701 22.766 8.44401 22.9895C7.55752 23.5325 6.63803 24.092 5.90003 24.8105C5.01504 25.6879 5.34354 26.7589 6.54053 27.2059C7.90102 27.7159 9.329 27.7309 10.7555 27.5569C12.4445 27.3484 14.1005 27.0769 15.9394 26.8219C13.79 27.8269 11.6735 28.5319 9.4445 28.8169C7.88452 29.0269 6.32753 29.1379 4.78554 28.6909C2.57156 28.0684 1.58607 26.4394 2.16057 24.251C2.70206 22.2065 4.01455 20.5775 5.42454 19.076C10.133 14.078 16.0864 11.5401 22.9744 11.0286C24.5824 10.9176 26.2069 11.1246 27.7143 11.7951C29.8308 12.7536 30.7173 14.78 29.6838 16.826C29.0118 18.1835 28.0758 19.4285 27.1413 20.6585C26.2234 21.872 25.1899 22.9895 24.2224 24.155C23.9434 24.506 23.6809 24.875 23.4679 25.2724C23.0569 26.0224 23.3359 26.5174 24.2059 26.4394C26.0254 26.2624 27.8808 26.1199 29.6358 25.6729C32.2098 25.0174 34.7193 24.092 37.2618 23.2775C37.5243 23.213 37.7703 23.117 37.9998 23.0225V23.021Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 1 - 3
packages/ui/src/assets/icons/provider/amazon-bedrock.svg


+ 3 - 7
packages/ui/src/assets/icons/provider/anthropic.svg

@@ -1,7 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- https://icones.js.org/collection/ri?s=anthropic&icon=ri:anthropic-fill -->
-  <path
-    fill="currentColor"
-    d="M16.765 5h-3.308l5.923 15h3.23zM7.226 5L1.38 20h3.308l1.307-3.154h6.154l1.23 3.077h3.309L10.688 5zm-.308 9.077l2-5.308l2.077 5.308z"
-  />
-</svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M26.9568 9.88184H22.1265L30.7753 31.7848H35.4917L26.9568 9.88184ZM13.028 9.88184L4.4917 31.7848H9.32203L11.2305 27.1793H20.2166L22.0126 31.6724H26.8444L18.0832 9.88184H13.028ZM12.5783 23.1361L15.4987 15.3853L18.5315 23.1361H12.5783Z" fill="currentColor"/>
+</svg>

+ 2 - 3
packages/ui/src/assets/icons/provider/azure.svg

@@ -1,4 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- https://api.iconify.design/mdi:microsoft-azure.svg -->
-  <path fill="currentColor" d="M13.05 4.24L6.56 18.05L2 18l5.09-8.76zm.7 1.09L22 19.76H6.74l9.3-1.66l-4.87-5.79z"/>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M21.68 7.58398L11.296 29.68L4 29.6L12.144 15.584L21.68 7.58398ZM22.8 9.32798L36 32.416H11.584L26.464 29.76L18.672 20.496L22.8 9.32798Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/bailing.svg


+ 3 - 1
packages/ui/src/assets/icons/provider/baseten.svg

@@ -1 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Baseten</title><path d="M2.316 4.8h14.682v4.8H7.31a.302.302 0 00-.308.3v4.2c0 .171.14.3.308.3h9.688v4.8h-4.686a.302.302 0 00-.308.3v4.2c0 .171.141.3.308.3h4.378a.297.297 0 00.308-.3v-4.5h4.694a.302.302 0 00.308-.3v-4.2c0-.171-.14-.3-.308-.3h-4.694V9.6h4.694A.302.302 0 0022 9.3V5.1c0-.171-.14-.3-.308-.3h-4.694V.3c0-.171-.14-.3-.308-.3H2.316A.31.31 0 002 .3v4.2c0 .171.14.3.316.3z"></path></svg>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M4.97934 6.78009H15.6237V10.26H8.59995C8.57096 10.2595 8.54214 10.2647 8.51516 10.2753C8.48819 10.286 8.4636 10.3019 8.44283 10.3221C8.42205 10.3423 8.40551 10.3665 8.39415 10.3932C8.38279 10.4199 8.37684 10.4485 8.37665 10.4775V13.5225C8.37665 13.6465 8.47815 13.74 8.59995 13.74H15.6237V17.22H12.2264C12.1974 17.2194 12.1685 17.2246 12.1416 17.2352C12.1146 17.2459 12.09 17.2618 12.0692 17.282C12.0485 17.3023 12.0319 17.3264 12.0206 17.3531C12.0092 17.3798 12.0032 17.4085 12.0031 17.4375V20.4824C12.0031 20.6064 12.1053 20.6999 12.2264 20.6999H15.4004C15.4295 20.701 15.4585 20.6962 15.4857 20.6857C15.5129 20.6752 15.5377 20.6593 15.5586 20.639C15.5795 20.6187 15.596 20.5943 15.6072 20.5674C15.6184 20.5405 15.624 20.5116 15.6237 20.4824V17.22H19.0268C19.0558 17.2205 19.0846 17.2154 19.1116 17.2047C19.1385 17.194 19.1631 17.1781 19.1839 17.1579C19.2047 17.1377 19.2212 17.1135 19.2326 17.0868C19.2439 17.0601 19.2499 17.0315 19.2501 17.0025V13.9575C19.2501 13.8335 19.1486 13.74 19.0268 13.74H15.6237V10.26H19.0268C19.0558 10.2606 19.0846 10.2554 19.1116 10.2448C19.1385 10.2341 19.1631 10.2182 19.1839 10.198C19.2047 10.1777 19.2212 10.1536 19.2326 10.1269C19.2439 10.1002 19.2499 10.0715 19.2501 10.0425V6.99758C19.2501 6.87361 19.1486 6.78009 19.0268 6.78009H15.6237V3.51762C15.6237 3.39365 15.5222 3.30012 15.4004 3.30012H4.97934C4.92022 3.29895 4.86302 3.32112 4.82014 3.36183C4.77725 3.40255 4.75214 3.45852 4.75024 3.51762V6.56259C4.75024 6.68656 4.85174 6.78009 4.97934 6.78009Z" fill="currentColor"/>
+</svg>

File diff suppressed because it is too large
+ 1 - 2
packages/ui/src/assets/icons/provider/cerebras.svg


+ 3 - 5
packages/ui/src/assets/icons/provider/cloudflare-ai-gateway.svg

@@ -1,6 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" fill="none" width="256" height="256" viewBox="0 0 256 256">
-    <g>
-        <path fill="currentColor" d="M205.52 119.813C204.662 119.813 203.815 119.843 202.969 119.871C202.832 119.878 202.697 119.911 202.571 119.965C202.347 120.042 202.146 120.173 201.985 120.346C201.825 120.52 201.71 120.73 201.651 120.959L198.023 133.631C196.458 139.08 197.04 144.111 199.669 147.805C202.079 151.221 206.089 153.226 210.958 153.46L230.637 154.654C231.222 154.684 231.729 154.966 232.037 155.43C232.198 155.678 232.3 155.96 232.335 156.253C232.37 156.547 232.336 156.844 232.237 157.122C232.079 157.575 231.793 157.973 231.415 158.268C231.036 158.562 230.581 158.742 230.103 158.784L209.655 159.977C198.545 160.492 186.593 169.557 182.4 180.61L180.926 184.51C180.863 184.672 180.839 184.847 180.856 185.019C180.874 185.192 180.932 185.358 181.027 185.504C181.121 185.65 181.249 185.771 181.4 185.857C181.551 185.943 181.72 185.993 181.893 186H252.318C252.728 186.002 253.126 185.87 253.453 185.623C253.78 185.377 254.017 185.03 254.128 184.635C255.379 180.14 256.009 175.495 256 170.828C256 142.668 233.418 119.844 205.551 119.844" />
-        <path fill="currentColor" d="M174.782 184.362L176.085 179.779C177.653 174.33 177.072 169.299 174.446 165.606C172.028 162.189 168.022 160.184 163.15 159.95L70.838 158.757C70.5509 158.752 70.269 158.679 70.0155 158.544C69.7619 158.409 69.5438 158.216 69.379 157.981C69.217 157.734 69.1143 157.452 69.0791 157.158C69.0439 156.865 69.0771 156.567 69.176 156.288C69.3358 155.832 69.6243 155.433 70.0067 155.138C70.389 154.843 70.8487 154.665 71.33 154.626L164.503 153.433C175.566 152.922 187.518 143.853 191.711 132.8L197.024 118.76C197.238 118.164 197.294 117.522 197.18 116.9C191.126 89.51 166.91 69 137.96 69C111.269 69 88.626 86.403 80.5 110.596C75.0295 106.437 68.1787 104.52 61.344 105.237C48.549 106.524 38.25 116.946 36.979 129.88C36.6502 133.11 36.8878 136.373 37.681 139.522C16.773 140.145 0 157.454 0 178.726C0 180.649 0.137 182.544 0.413 184.393C0.528 185.29 1.292 185.963 2.196 185.961H172.676C173.156 185.953 173.62 185.79 174 185.496C174.38 185.202 174.654 184.794 174.782 184.331" />
-    </g>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.6323 11.3946C17.57 11.3946 17.5085 11.3968 17.447 11.3988C17.437 11.3993 17.4272 11.4017 17.4181 11.4057C17.4018 11.4113 17.3872 11.4208 17.3755 11.4333C17.3639 11.446 17.3555 11.4612 17.3512 11.4779L17.0876 12.3986C16.9739 12.7945 17.0162 13.16 17.2072 13.4284C17.3823 13.6766 17.6737 13.8223 18.0274 13.8393L19.4572 13.926C19.4998 13.9282 19.5366 13.9487 19.559 13.9824C19.5707 14.0004 19.5781 14.0209 19.5806 14.0422C19.5832 14.0636 19.5807 14.0852 19.5735 14.1054C19.562 14.1383 19.5412 14.1672 19.5138 14.1886C19.4862 14.21 19.4532 14.2231 19.4185 14.2261L17.9328 14.3128C17.1256 14.3502 16.2572 15.0088 15.9525 15.8119L15.8454 16.0953C15.8409 16.107 15.8391 16.1197 15.8404 16.1322C15.8417 16.1448 15.8459 16.1569 15.8528 16.1675C15.8596 16.1781 15.8689 16.1869 15.8799 16.1931C15.8908 16.1994 15.9031 16.203 15.9157 16.2035H21.0325C21.0623 16.2037 21.0912 16.1941 21.115 16.1761C21.1387 16.1583 21.156 16.133 21.164 16.1043C21.2549 15.7778 21.3007 15.4403 21.3 15.1012C21.3 13.0552 19.6593 11.3969 17.6346 11.3969" fill="currentColor"/>
+<path d="M15.3989 16.0845L15.4936 15.7515C15.6075 15.3556 15.5653 14.9901 15.3745 14.7218C15.1989 14.4735 14.9078 14.3278 14.5538 14.3108L7.84677 14.2241C7.82591 14.2238 7.80543 14.2185 7.78701 14.2087C7.76859 14.1988 7.75274 14.1848 7.74077 14.1678C7.729 14.1498 7.72153 14.1293 7.71898 14.108C7.71642 14.0867 7.71883 14.065 7.72602 14.0447C7.73763 14.0116 7.75859 13.9826 7.78637 13.9612C7.81415 13.9398 7.84755 13.9268 7.88252 13.924L14.6521 13.8373C15.4559 13.8002 16.3243 13.1413 16.6289 12.3382L17.015 11.3181C17.0305 11.2748 17.0346 11.2282 17.0263 11.183C16.5864 9.19291 14.827 7.70273 12.7236 7.70273C10.7843 7.70273 9.13918 8.96716 8.54878 10.7249C8.15131 10.4228 7.65356 10.2835 7.15697 10.3356C6.22734 10.4291 5.47905 11.1863 5.38671 12.126C5.36282 12.3607 5.38008 12.5978 5.43771 12.8266C3.91861 12.8719 2.69995 14.1295 2.69995 15.675C2.69995 15.8147 2.70991 15.9524 2.72996 16.0867C2.73831 16.1519 2.79382 16.2008 2.8595 16.2007H15.2459C15.2808 16.2001 15.3145 16.1882 15.3421 16.1669C15.3697 16.1455 15.3896 16.1159 15.3989 16.0822" fill="currentColor"/>
 </svg>
 </svg>

+ 3 - 5
packages/ui/src/assets/icons/provider/cloudflare-workers-ai.svg

@@ -1,6 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" fill="none" width="256" height="256" viewBox="0 0 256 256">
-    <g>
-        <path fill="currentColor" d="M205.52 119.813C204.662 119.813 203.815 119.843 202.969 119.871C202.832 119.878 202.697 119.911 202.571 119.965C202.347 120.042 202.146 120.173 201.985 120.346C201.825 120.52 201.71 120.73 201.651 120.959L198.023 133.631C196.458 139.08 197.04 144.111 199.669 147.805C202.079 151.221 206.089 153.226 210.958 153.46L230.637 154.654C231.222 154.684 231.729 154.966 232.037 155.43C232.198 155.678 232.3 155.96 232.335 156.253C232.37 156.547 232.336 156.844 232.237 157.122C232.079 157.575 231.793 157.973 231.415 158.268C231.036 158.562 230.581 158.742 230.103 158.784L209.655 159.977C198.545 160.492 186.593 169.557 182.4 180.61L180.926 184.51C180.863 184.672 180.839 184.847 180.856 185.019C180.874 185.192 180.932 185.358 181.027 185.504C181.121 185.65 181.249 185.771 181.4 185.857C181.551 185.943 181.72 185.993 181.893 186H252.318C252.728 186.002 253.126 185.87 253.453 185.623C253.78 185.377 254.017 185.03 254.128 184.635C255.379 180.14 256.009 175.495 256 170.828C256 142.668 233.418 119.844 205.551 119.844" />
-        <path fill="currentColor" d="M174.782 184.362L176.085 179.779C177.653 174.33 177.072 169.299 174.446 165.606C172.028 162.189 168.022 160.184 163.15 159.95L70.838 158.757C70.5509 158.752 70.269 158.679 70.0155 158.544C69.7619 158.409 69.5438 158.216 69.379 157.981C69.217 157.734 69.1143 157.452 69.0791 157.158C69.0439 156.865 69.0771 156.567 69.176 156.288C69.3358 155.832 69.6243 155.433 70.0067 155.138C70.389 154.843 70.8487 154.665 71.33 154.626L164.503 153.433C175.566 152.922 187.518 143.853 191.711 132.8L197.024 118.76C197.238 118.164 197.294 117.522 197.18 116.9C191.126 89.51 166.91 69 137.96 69C111.269 69 88.626 86.403 80.5 110.596C75.0295 106.437 68.1787 104.52 61.344 105.237C48.549 106.524 38.25 116.946 36.979 129.88C36.6502 133.11 36.8878 136.373 37.681 139.522C16.773 140.145 0 157.454 0 178.726C0 180.649 0.137 182.544 0.413 184.393C0.528 185.29 1.292 185.963 2.196 185.961H172.676C173.156 185.953 173.62 185.79 174 185.496C174.38 185.202 174.654 184.794 174.782 184.331" />
-    </g>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.6323 11.3946C17.57 11.3946 17.5085 11.3968 17.447 11.3988C17.437 11.3993 17.4272 11.4017 17.4181 11.4057C17.4018 11.4113 17.3872 11.4208 17.3755 11.4333C17.3639 11.446 17.3555 11.4612 17.3512 11.4779L17.0876 12.3986C16.9739 12.7945 17.0162 13.16 17.2072 13.4284C17.3823 13.6766 17.6737 13.8223 18.0274 13.8393L19.4572 13.926C19.4998 13.9282 19.5366 13.9487 19.559 13.9824C19.5707 14.0004 19.5781 14.0209 19.5806 14.0422C19.5832 14.0636 19.5807 14.0852 19.5735 14.1054C19.562 14.1383 19.5412 14.1672 19.5138 14.1886C19.4862 14.21 19.4532 14.2231 19.4185 14.2261L17.9328 14.3128C17.1256 14.3502 16.2572 15.0088 15.9525 15.8119L15.8454 16.0953C15.8409 16.107 15.8391 16.1197 15.8404 16.1322C15.8417 16.1448 15.8459 16.1569 15.8528 16.1675C15.8596 16.1781 15.8689 16.1869 15.8799 16.1931C15.8908 16.1994 15.9031 16.203 15.9157 16.2035H21.0325C21.0623 16.2037 21.0912 16.1941 21.115 16.1761C21.1387 16.1583 21.156 16.133 21.164 16.1043C21.2549 15.7778 21.3007 15.4403 21.3 15.1012C21.3 13.0552 19.6593 11.3969 17.6346 11.3969" fill="currentColor"/>
+<path d="M15.3989 16.0845L15.4936 15.7515C15.6075 15.3556 15.5653 14.9901 15.3745 14.7218C15.1989 14.4735 14.9078 14.3278 14.5538 14.3108L7.84677 14.2241C7.82591 14.2238 7.80543 14.2185 7.78701 14.2087C7.76859 14.1988 7.75274 14.1848 7.74077 14.1678C7.729 14.1498 7.72153 14.1293 7.71898 14.108C7.71642 14.0867 7.71883 14.065 7.72602 14.0447C7.73763 14.0116 7.75859 13.9826 7.78637 13.9612C7.81415 13.9398 7.84755 13.9268 7.88252 13.924L14.6521 13.8373C15.4559 13.8002 16.3243 13.1413 16.6289 12.3382L17.015 11.3181C17.0305 11.2748 17.0346 11.2282 17.0263 11.183C16.5864 9.19291 14.827 7.70273 12.7236 7.70273C10.7843 7.70273 9.13918 8.96716 8.54878 10.7249C8.15131 10.4228 7.65356 10.2835 7.15697 10.3356C6.22734 10.4291 5.47905 11.1863 5.38671 12.126C5.36282 12.3607 5.38008 12.5978 5.43771 12.8266C3.91861 12.8719 2.69995 14.1295 2.69995 15.675C2.69995 15.8147 2.70991 15.9524 2.72996 16.0867C2.73831 16.1519 2.79382 16.2008 2.8595 16.2007H15.2459C15.2808 16.2001 15.3145 16.1882 15.3421 16.1669C15.3697 16.1455 15.3896 16.1159 15.3989 16.0822" fill="currentColor"/>
 </svg>
 </svg>

+ 4 - 18
packages/ui/src/assets/icons/provider/cohere.svg

@@ -1,19 +1,5 @@
-<svg version="1.1" id="Layer_1"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 75 75"
-	 xml:space="preserve">
-<g>
-	<g>
-		<g>
-			<path fill="currentColor"
-				  d="M24.3,44.7c2,0,6-0.1,11.6-2.4c6.5-2.7,19.3-7.5,28.6-12.5c6.5-3.5,9.3-8.1,9.3-14.3C73.8,7,66.9,0,58.3,0 h-36C10,0,0,10,0,22.3S9.4,44.7,24.3,44.7z">
-			</path>
-			<path fill="currentColor"
-				  d="M30.4,60c0-6,3.6-11.5,9.2-13.8l11.3-4.7C62.4,36.8,75,45.2,75,57.6C75,67.2,67.2,75,57.6,75l-12.3,0C37.1,75,30.4,68.3,30.4,60z">
-			</path>
-			<path fill="currentColor"
-				  d="M12.9,47.6L12.9,47.6C5.8,47.6,0,53.4,0,60.5v1.7C0,69.2,5.8,75,12.9,75h0c7.1,0,12.9-5.8,12.9-12.9v-1.7C25.7,53.4,20,47.6,12.9,47.6z">
-			</path>
-		</g>
-	</g>
-</g>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9.14882 13.5552C9.58082 13.5552 10.4448 13.5336 11.6544 13.0368C13.0584 12.4536 15.8232 11.4168 17.832 10.3368C19.236 9.5808 19.8408 8.5872 19.8408 7.248C19.8408 5.412 18.3504 3.9 16.4928 3.9H8.71682C6.06002 3.9 3.90002 6.06 3.90002 8.7168C3.90002 11.3736 5.93042 13.5552 9.14882 13.5552Z" fill="currentColor"/>
+<path d="M10.4664 16.86C10.4664 15.564 11.244 14.376 12.4536 13.8792L14.8944 12.864C17.3784 11.8488 20.1 13.6632 20.1 16.3416C20.1 18.4152 18.4152 20.1 16.3416 20.1H13.6848C11.9136 20.1 10.4664 18.6528 10.4664 16.86Z" fill="currentColor"/>
+<path d="M6.68642 14.1816C5.15282 14.1816 3.90002 15.4344 3.90002 16.968V17.3352C3.90002 18.8472 5.15282 20.1 6.68642 20.1C8.22003 20.1 9.47283 18.8472 9.47283 17.3136V16.9464C9.45123 15.4344 8.22003 14.1816 6.68642 14.1816Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/deepinfra.svg


File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/deepseek.svg


+ 2 - 2
packages/ui/src/assets/icons/provider/fastrouter.svg

@@ -1,3 +1,3 @@
-<svg viewBox="0 0 512 512" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
-    <path d="M446 102.557L384.138 205.895V150.147H260.022L220.061 219.032C217.678 222.612 217.678 227.385 219.464 230.965C221.847 234.545 225.42 236.932 230.185 236.932H362.997L183.731 512L218.274 347.317C218.869 343.737 218.273 340.156 215.891 337.173C213.509 334.19 209.936 332.997 206.363 332.997H67L162.268 54.8009H229.093V54.6366L384.138 54.8009V0L446 102.557Z"/>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M31.8828 10.4098L28.0164 16.8684V13.3842H20.2592L17.7616 17.6895C17.6127 17.9132 17.6127 18.2116 17.7243 18.4353C17.8733 18.6591 18.0966 18.8083 18.3944 18.8083H26.6951L15.491 36L17.6499 25.7073C17.6871 25.4836 17.6499 25.2598 17.501 25.0733C17.3521 24.8869 17.1288 24.8123 16.9055 24.8123H8.19531L14.1496 7.42506H18.3261V7.41479L28.0164 7.42506V4L31.8828 10.4098Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/fireworks-ai.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path clip-rule="evenodd" d="M14.8 5l-2.801 6.795L9.195 5H7.397l3.072 7.428a1.64 1.64 0 003.038.002L16.598 5H14.8zm1.196 10.352l5.124-5.244-.699-1.669-5.596 5.739a1.664 1.664 0 00-.343 1.807 1.642 1.642 0 001.516 1.012L16 17l8-.02-.699-1.669-7.303.041h-.002zM2.88 10.104l.699-1.669 5.596 5.739c.468.479.603 1.189.343 1.807a1.643 1.643 0 01-1.516 1.012l-8-.018-.002.002.699-1.669 7.303.042-5.122-5.246z"></path>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M14.45 5.74999L11.9991 11.6956L9.54562 5.74999H7.97237L10.6604 12.2495C10.7678 12.5138 10.9515 12.7402 11.1882 12.8996C11.4248 13.059 11.7036 13.1442 11.9889 13.1444C12.2742 13.1446 12.5531 13.0597 12.79 12.9006C13.0268 12.7415 13.2109 12.5154 13.3186 12.2512L16.0232 5.74999H14.45ZM15.4965 14.808L19.98 10.2195L19.3684 8.75911L14.4719 13.7807C14.272 13.9856 14.1369 14.2448 14.0835 14.5261C14.0301 14.8073 14.0608 15.098 14.1718 15.3619C14.2807 15.624 14.4648 15.848 14.7008 16.0056C14.9369 16.1632 15.2144 16.2473 15.4983 16.2474L15.5 16.25L22.5 16.2325L21.8884 14.7721L15.4983 14.808H15.4965ZM4.02 10.216L4.63162 8.75561L9.52813 13.7772C9.93763 14.1964 10.0557 14.8176 9.82825 15.3584C9.71925 15.6204 9.53511 15.8443 9.29905 16.0019C9.06299 16.1595 8.78557 16.2437 8.50175 16.2439L1.50175 16.2281L1.5 16.2299L2.11163 14.7695L8.50175 14.8062L4.02 10.216Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 1 - 4
packages/ui/src/assets/icons/provider/github-copilot.svg


+ 3 - 4
packages/ui/src/assets/icons/provider/github-models.svg

@@ -1,4 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- https://api.iconify.design/ri:github-fill.svg -->
-  <path fill="currentColor" d="M12.001 2c-5.525 0-10 4.475-10 10a9.99 9.99 0 0 0 6.837 9.488c.5.087.688-.213.688-.476c0-.237-.013-1.024-.013-1.862c-2.512.463-3.162-.612-3.362-1.175c-.113-.288-.6-1.175-1.025-1.413c-.35-.187-.85-.65-.013-.662c.788-.013 1.35.725 1.538 1.025c.9 1.512 2.337 1.087 2.912.825c.088-.65.35-1.087.638-1.337c-2.225-.25-4.55-1.113-4.55-4.938c0-1.088.387-1.987 1.025-2.687c-.1-.25-.45-1.275.1-2.65c0 0 .837-.263 2.75 1.024a9.3 9.3 0 0 1 2.5-.337c.85 0 1.7.112 2.5.337c1.913-1.3 2.75-1.024 2.75-1.024c.55 1.375.2 2.4.1 2.65c.637.7 1.025 1.587 1.025 2.687c0 3.838-2.337 4.688-4.562 4.938c.362.312.675.912.675 1.85c0 1.337-.013 2.412-.013 2.75c0 .262.188.574.688.474A10.02 10.02 0 0 0 22 12c0-5.525-4.475-10-10-10"/>
-  </svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M20.0015 4.4704C11.4373 4.4704 4.50074 11.407 4.50074 19.9712C4.49793 23.2252 5.52031 26.3975 7.42272 29.0376C9.32512 31.6776 12.0109 33.6513 15.0986 34.6783C15.8737 34.8132 16.1651 34.3481 16.1651 33.9405C16.1651 33.5731 16.1449 32.3532 16.1449 31.0542C12.2511 31.7719 11.2436 30.1056 10.9336 29.2329C10.7584 28.7865 10.0035 27.4115 9.34473 27.0426C8.8022 26.7528 8.02716 26.0351 9.32458 26.0165C10.546 25.9963 11.4172 27.1403 11.7086 27.6053C13.1037 29.949 15.3311 29.2902 16.2224 28.8841C16.3588 27.8766 16.7649 27.1992 17.2114 26.8117C13.7624 26.4241 10.1585 25.0864 10.1585 19.1574C10.1585 17.4709 10.7584 16.0774 11.7473 14.9923C11.5923 14.6048 11.0498 13.016 11.9024 10.8846C11.9024 10.8846 13.1998 10.4769 16.1651 12.4719C17.4271 12.1226 18.7308 11.9468 20.0403 11.9495C21.3578 11.9495 22.6754 12.1231 23.9155 12.4719C26.8808 10.4568 28.1782 10.8846 28.1782 10.8846C29.0307 13.016 28.4882 14.6048 28.3332 14.9923C29.3206 16.0774 29.922 17.4523 29.922 19.1574C29.922 25.1066 26.2995 26.4241 22.8506 26.8117C23.4117 27.2953 23.8969 28.2253 23.8969 29.6793C23.8969 31.7518 23.8767 33.4181 23.8767 33.942C23.8767 34.3481 24.1681 34.8318 24.9432 34.6768C28.0193 33.6368 30.6922 31.6589 32.5859 29.0211C34.4796 26.3833 35.499 23.2183 35.5007 19.9712C35.5007 11.407 28.5641 4.4704 20 4.4704" fill="currentColor"/>
+</svg>

File diff suppressed because it is too large
+ 4 - 2
packages/ui/src/assets/icons/provider/google-vertex.svg


+ 2 - 6
packages/ui/src/assets/icons/provider/google.svg

@@ -1,7 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
- <!-- https://icones.js.org/collection/ri?s=gemini&icon=ri:gemini-fill -->
-  <path
-    fill="currentColor"
-    d="M24 12.024c-6.437.388-11.59 5.539-11.977 11.976h-.047C11.588 17.563 6.436 12.412 0 12.024v-.047C6.437 11.588 11.588 6.437 11.976 0h.047c.388 6.437 5.54 11.588 11.977 11.977z"
-  />
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M37 20.034C27.8809 20.5837 20.5808 27.8809 20.0326 37H19.966C19.4163 27.8809 12.1177 20.5837 3 20.034V19.9674C12.1191 19.4163 19.4163 12.1191 19.966 3H20.0326C20.5822 12.1191 27.8809 19.4163 37 19.9674V20.034Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/groq.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M12.036 2c-3.853-.035-7 3-7.036 6.781-.035 3.782 3.055 6.872 6.908 6.907h2.42v-2.566h-2.292c-2.407.028-4.38-1.866-4.408-4.23-.029-2.362 1.901-4.298 4.308-4.326h.1c2.407 0 4.358 1.915 4.365 4.278v6.305c0 2.342-1.944 4.25-4.323 4.279a4.375 4.375 0 01-3.033-1.252l-1.851 1.818A7 7 0 0012.029 22h.092c3.803-.056 6.858-3.083 6.879-6.816v-6.5C18.907 4.963 15.817 2 12.036 2z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M20.056 4.50022C14.0839 4.44597 9.20616 9.15015 9.15036 15.0106C9.09611 20.8726 13.8855 25.6621 19.8576 25.7163H23.6085V21.7391H20.056C16.3252 21.7825 13.2671 18.8468 13.2237 15.1827C13.1787 11.5216 16.1702 8.52086 19.901 8.47746H20.056C23.7868 8.47746 26.8108 11.4457 26.8216 15.1083V24.8809C26.8216 28.5109 23.8085 31.4683 20.1211 31.5132C18.3617 31.5007 16.6759 30.8049 15.42 29.5726L12.551 32.3905C14.5529 34.3571 17.239 35.4715 20.0451 35.4998H20.1877C26.0823 35.413 30.8175 30.7212 30.85 24.9351V14.8603C30.7059 9.0928 25.9165 4.50022 20.056 4.50022Z" fill="currentColor"/>
 </svg>
 </svg>

+ 5 - 2
packages/ui/src/assets/icons/provider/helicone.svg

@@ -1,3 +1,6 @@
-<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M115.919 282.24L494.502 116.609C498.007 115.076 501.993 115.076 505.498 116.609L884.081 282.24M115.919 282.24V628.599M115.919 282.24L413.778 412.553M884.081 282.24L781.203 327.249M884.081 282.24V371.401M500 885.796V758.912M500 885.796L585.732 849.819M500 885.796L150.212 739.01M500 450.275L781.203 327.249M500 450.275L413.778 412.553M500 450.275V487.997M500 758.912L781.203 327.249M500 758.912V487.997M585.732 849.819L875.672 728.148C880.767 726.01 884.081 721.024 884.081 715.499V371.401M585.732 849.819L884.081 371.401M115.919 628.599V715.499C115.919 721.024 119.233 726.01 124.328 728.148L150.212 739.01M115.919 628.599L413.778 412.553M150.212 739.01L500 487.997" stroke="currentColor" stroke-width="27.4344" stroke-linecap="round" stroke-linejoin="round"/>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M18.3697 8.08776L12 10.8745V11.7289V17.8656L18.3697 8.08776Z" fill="currentColor" fill-opacity="0.25"/>
+<path d="M3.30005 7.06824V14.9138L10.047 10.02L3.30005 7.06824Z" fill="currentColor" fill-opacity="0.25"/>
+<path d="M11.8755 3.31646L3.30005 7.06824L10.047 10.02L12 10.8745L18.3697 8.08776L20.7 7.06824L12.1246 3.31646C12.0452 3.28173 11.9549 3.28173 11.8755 3.31646Z" fill="currentColor" fill-opacity="0.35"/>
+<path d="M3.30005 7.06824L11.8755 3.31646C11.9549 3.28173 12.0452 3.28173 12.1246 3.31646L20.7 7.06824M3.30005 7.06824V14.9138M3.30005 7.06824L10.047 10.02M20.7 7.06824L18.3697 8.08776M20.7 7.06824V9.08787M3.30005 14.9138V16.8822C3.30005 17.0073 3.37512 17.1203 3.49053 17.1687L4.07684 17.4148M3.30005 14.9138L10.047 10.02M10.047 10.02L12 10.8745M18.3697 8.08776L12 10.8745M18.3697 8.08776L12 17.8656M20.7 9.08787V16.8822C20.7 17.0073 20.625 17.1203 20.5096 17.1687L13.942 19.9247M20.7 9.08787L13.942 19.9247M12 20.7397V17.8656M12 20.7397L13.942 19.9247M12 20.7397L4.07684 17.4148M12 17.8656V11.7289M4.07684 17.4148L12 11.7289M12 10.8745V11.7289" stroke="currentColor" stroke-width="0.62143" stroke-linecap="round" stroke-linejoin="round"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/huggingface.svg


File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/iflowcn.svg


+ 3 - 8
packages/ui/src/assets/icons/provider/inception.svg

@@ -1,9 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 149.64 150.39">
-  <g id="Layer_1-2" data-name="Layer 1">
-    <g>
-      <polygon fill="currentColor" points="94.7 0 47.35 0 0 47.35 0 94.7 47.35 94.7 47.35 47.35 94.7 47.35 94.7 0"/>
-      <polygon fill="currentColor" points="102.29 55.69 102.29 103.04 54.94 103.04 54.94 150.39 102.29 150.39 149.64 103.04 149.64 55.69 102.29 55.69"/>
-    </g>
-  </g>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M14.3794 2.99999H8.71219L3.04492 8.66725V14.3345H8.71219V8.66725H14.3794V2.99999Z" fill="currentColor"/>
+<path d="M15.2877 9.66548V15.3327H9.62048V21H15.2877L20.955 15.3327V9.66548H15.2877Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/inference.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M22 21.376h-4.89V2.62H22v18.756zM14.532 21.376h-3.469V2.62h3.469v18.756zM8.764 21.376h-2.66V2.62h2.66v18.756zM3.903 21.376H2V2.62h1.903v18.756z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M34.625 33.7119H27.4734V6.28124H34.625V33.7119ZM23.703 33.7119H18.6296V6.28124H23.703V33.7119ZM15.2674 33.7119H11.3771V6.28124H15.2674V33.7119ZM8.15814 33.7119H5.375V6.28124H8.15814V33.7119Z" fill="currentColor"/>
 </svg>
 </svg>

+ 4 - 4
packages/ui/src/assets/icons/provider/io-net.svg

@@ -1,5 +1,5 @@
-<svg width="1000" height="1000" viewBox="0 0 1000 1000" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M77 394.324L166 454.625H77V679H166V454.625V320H77V394.324Z" fill="currentColor"/>
-<path d="M679.501 409.6C692.045 409.6 701.801 419.4 701.801 432V483.8L791 544V409.6C791 360.6 750.582 320 701.801 320H168L301.799 409.6H680.895H679.501Z" fill="currentColor"/>
-<path d="M411.499 589.4C398.955 589.4 389.199 579.6 389.199 567V515.2L300 455V589.4C300 638.4 340.418 679 389.199 679H923L789.201 589.4H410.105H411.499Z" fill="currentColor"/>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.3999 9.60101L4.41977 10.9695H2.3999V16.0618H4.41977V10.9695V7.91422H2.3999V9.60101Z" fill="currentColor"/>
+<path d="M16.0739 9.9477C16.3586 9.9477 16.58 10.1701 16.58 10.4561V11.6317L18.6044 12.9979V9.9477C18.6044 8.83564 17.6871 7.91422 16.58 7.91422H4.46533L7.50191 9.9477H16.1055H16.0739Z" fill="currentColor"/>
+<path d="M9.99142 14.0283C9.70673 14.0283 9.48532 13.8059 9.48532 13.5199V12.3443L7.46094 10.9781V14.0283C7.46094 15.1403 8.37823 16.0618 9.48532 16.0618H21.6L18.5634 14.0283H9.95978H9.99142Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 2
packages/ui/src/assets/icons/provider/kimi-for-coding.svg


+ 2 - 6
packages/ui/src/assets/icons/provider/llama.svg

@@ -1,7 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- https://icones.js.org/collection/ri?s=meta&icon=ri:meta-fill -->
-  <path
-    fill="currentColor"
-    d="M16.92 4.5c-1.851 0-3.298 1.394-4.608 3.165C10.512 5.373 9.007 4.5 7.206 4.5C3.534 4.5.72 9.28.72 14.338c0 3.165 1.531 5.162 4.096 5.162c1.846 0 3.174-.87 5.535-4.997c0 0 .984-1.737 1.66-2.934q.356.574.75 1.238l1.107 1.862c2.156 3.608 3.358 4.831 5.534 4.831c2.5 0 3.89-2.024 3.89-5.255c0-5.297-2.877-9.745-6.372-9.745m-8.37 8.886c-1.913 3-2.575 3.673-3.64 3.673c-1.097 0-1.749-.963-1.749-2.68c0-3.672 1.831-7.427 4.014-7.427c1.182 0 2.17.682 3.683 2.848c-1.437 2.204-2.307 3.586-2.307 3.586m7.224-.377L14.45 10.8a45 45 0 0 0-1.032-1.608c1.193-1.841 2.176-2.759 3.347-2.759c2.43 0 4.375 3.58 4.375 7.976c0 1.676-.549 2.649-1.686 2.649c-1.09 0-1.61-.72-3.68-4.05"
-  />
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M27.1942 9.03509C24.4881 9.03509 22.3726 11.0731 20.4574 13.6623C17.8258 10.3114 15.6255 9.03509 12.9925 9.03509C7.62404 9.03509 3.51001 16.0234 3.51001 23.4181C3.51001 28.0453 5.74831 30.9649 9.49831 30.9649C12.1971 30.9649 14.1387 29.693 17.5904 23.6594C17.5904 23.6594 19.029 21.1199 20.0173 19.3699C20.3643 19.9293 20.7298 20.5327 21.1138 21.1798L22.7322 23.902C25.8843 29.1769 27.6416 30.9649 30.8229 30.9649C34.4778 30.9649 36.51 28.0058 36.51 23.2822C36.51 15.538 32.3039 9.03509 27.1942 9.03509ZM14.9574 22.0263C12.1606 26.4123 11.1928 27.3962 9.63574 27.3962C8.03194 27.3962 7.07872 25.9883 7.07872 23.4781C7.07872 18.1096 9.75562 12.6199 12.9471 12.6199C14.6752 12.6199 16.1197 13.617 18.3316 16.7836C16.2308 20.0058 14.9574 22.0263 14.9574 22.0263ZM25.5202 21.4751L23.5831 18.2456C23.0969 17.4514 22.5938 16.6676 22.0743 15.8947C23.8185 13.2032 25.2556 11.8611 26.9676 11.8611C30.5202 11.8611 33.3638 17.095 33.3638 23.5219C33.3638 25.9722 32.5612 27.3947 30.8989 27.3947C29.3053 27.3947 28.5451 26.3421 25.5188 21.4737" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 2
packages/ui/src/assets/icons/provider/lucidquery.svg


File diff suppressed because it is too large
+ 0 - 2
packages/ui/src/assets/icons/provider/minimax-cn.svg


File diff suppressed because it is too large
+ 0 - 2
packages/ui/src/assets/icons/provider/minimax.svg


+ 2 - 2
packages/ui/src/assets/icons/provider/mistral.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path clip-rule="evenodd" d="M3.428 3.4h3.429v3.428h3.429v3.429h-.002 3.431V6.828h3.427V3.4h3.43v13.714H24v3.429H13.714v-3.428h-3.428v-3.429h-3.43v3.428h3.43v3.429H0v-3.429h3.428V3.4zm10.286 13.715h3.428v-3.429h-3.427v3.429z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M8.92783 8.88101H13.357V13.3088H17.7861V17.738H17.7835H22.2152V13.3088H26.6418V8.88101H31.0722V26.5949H35.5V31.0241H22.2139V26.5962H17.7861V22.1671H13.3557V26.5949L17.7861 26.5962V31.0241H4.5V26.5949H8.92783V8.88101ZM22.2139 26.5962H26.6418V22.1671H22.2152V26.5962H22.2139Z" fill="currentColor"/>
 </svg>
 </svg>

+ 4 - 2
packages/ui/src/assets/icons/provider/modelscope.svg

@@ -1,3 +1,5 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M2.667 5.3H8v2.667H5.333v2.666H2.667V8.467H.5v2.166h2.167V13.3H0V7.967h2.667V5.3zM2.667 13.3h2.666v2.667H8v2.666H2.667V13.3zM8 10.633h2.667V13.3H8v-2.667zM13.333 13.3v2.667h-2.666V13.3h2.666zM13.333 13.3v-2.667H16V13.3h-2.667z"></path><path clip-rule="evenodd" d="M21.333 13.3v-2.667h-2.666V7.967H16V5.3h5.333v2.667H24V13.3h-2.667zm0-2.667H23.5V8.467h-2.167v2.166z"></path><path d="M21.333 13.3v5.333H16v-2.666h2.667V13.3h2.666z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M6.77825 10.4999H14.3333V14.2782H10.5551V18.055H6.77825V14.9865H3.70833V18.055H6.77825V21.8333H3V14.2782H6.77825V10.4999ZM6.77825 21.8333H10.5551V25.6115H14.3333V29.3884H6.77825V21.8333ZM14.3333 18.055H18.1116V21.8333H14.3333V18.055ZM21.8884 21.8333V25.6115H18.1116V21.8333H21.8884ZM21.8884 21.8333V18.055H25.6667V21.8333H21.8884Z" fill="currentColor"/>
+<path d="M33.2218 21.8333V18.055H29.445V14.2782H25.6667V10.4999H33.2218V14.2782H37.0001V21.8333H33.2218ZM33.2218 18.055H36.2918V14.9865H33.2218V18.055Z" fill="currentColor"/>
+<path d="M33.2218 21.8333V29.3884H25.6667V25.6116H29.445V21.8333H33.2218Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 2
packages/ui/src/assets/icons/provider/moonshotai-cn.svg


File diff suppressed because it is too large
+ 0 - 2
packages/ui/src/assets/icons/provider/moonshotai.svg


+ 4 - 1
packages/ui/src/assets/icons/provider/nebius.svg

@@ -1 +1,4 @@
-<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Nebius</title><path d="M20 2.306v16.797s4-.242 4-4.815V2.306h-4zM4 22.001V5.204s-4 .242-4 4.816V22h4z"></path><path d="M16.318 16.51L11.286 4.94c-.824-1.872-2.168-2.926-4.077-2.926-1.908 0-3.211 1.54-3.211 3.19 0 0 2.405-.333 3.68 2.593l5.036 11.57c.821 1.87 2.168 2.926 4.075 2.926 1.905 0 3.211-1.541 3.211-3.19 0 0-2.406.333-3.682-2.594z"></path></svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M30.3333 7.53622V29.2323C30.3333 29.2323 35.5 28.9198 35.5 23.013V7.53622H30.3333ZM9.66667 32.9756V11.2795C9.66667 11.2795 4.5 11.5921 4.5 17.5001V32.9743L9.66667 32.9756Z" fill="currentColor"/>
+<path d="M25.5776 25.883L19.078 10.9384C18.0136 8.5204 16.2776 7.15898 13.8118 7.15898C11.3473 7.15898 9.66431 9.14815 9.66431 11.2794C9.66431 11.2794 12.7708 10.8493 14.4176 14.6287L20.9225 29.5733C21.9829 31.9887 23.7228 33.3527 26.186 33.3527C28.6466 33.3527 30.3336 31.3622 30.3336 29.2323C30.3336 29.2323 27.2258 29.6637 25.5776 25.883Z" fill="currentColor"/>
+</svg>

+ 3 - 4
packages/ui/src/assets/icons/provider/nvidia.svg

@@ -1,4 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- NVIDIA logo -->
-  <path fill="currentColor" transform="translate(0,4)" d="M9.01,4.79L9.01,3.35C9.14,3.34 9.28,3.33 9.43,3.33C13.38,3.2 15.97,6.72 15.97,6.72C15.97,6.72 13.17,10.6 10.17,10.6C9.77,10.6 9.38,10.54 9.01,10.41L9.01,6.03C10.54,6.23 10.85,6.9 11.77,8.44L13.83,6.71C13.83,6.71 12.32,4.75 9.8,4.75C9.52,4.75 9.26,4.76 9.01,4.79ZM9.01,0.025L9.01,2.18C9.14,2.17 9.28,2.16 9.43,2.15C14.91,1.97 18.5,6.65 18.5,6.65C18.5,6.65 14.38,11.64 10.11,11.64C9.71,11.64 9.35,11.61 9.01,11.54L9.01,12.88C9.3,12.91 9.6,12.93 9.93,12.93C13.9,12.93 16.78,10.91 19.57,8.5C20.03,8.87 21.91,9.77 22.3,10.17C19.66,12.38 13.48,14.17 9.99,14.17C9.66,14.17 9.33,14.15 9.01,14.12L9.01,16L24.12,16L24.12,0.025L9.01,0.025ZM9.01,10.41L9.01,11.54C5.32,10.89 4.3,7.06 4.3,7.06C4.3,7.06 6.07,5.1 9.01,4.79L9.01,6.03L9,6.03C7.46,5.85 6.25,7.29 6.25,7.29C6.25,7.29 6.93,9.71 9.01,10.41ZM2.47,6.9C2.47,6.9 4.65,3.68 9.01,3.35L9.01,2.18C4.18,2.57 0,6.65 0,6.65C0,6.65 2.37,13.5 9.01,14.11L9.01,12.88C4.13,12.26 2.47,6.9 2.47,6.9Z"/>
-</svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M16.1801 15.8791V14.0283C16.3472 14.0155 16.5271 14.0026 16.7199 14.0026C21.7966 13.8356 25.1254 18.3596 25.1254 18.3596C25.1254 18.3596 21.5267 23.3463 17.671 23.3463C17.1569 23.3463 16.6557 23.2692 16.1801 23.1021V17.4728C18.1465 17.7298 18.545 18.591 19.7274 20.5702L22.375 18.3468C22.375 18.3468 20.4343 15.8277 17.1955 15.8277C16.8356 15.8277 16.5014 15.8405 16.1801 15.8791ZM16.1801 9.75492V12.5246C16.3472 12.5118 16.5271 12.4989 16.7199 12.4861C23.763 12.2547 28.377 18.2696 28.377 18.2696C28.377 18.2696 23.0819 24.683 17.5939 24.683C17.0798 24.683 16.6171 24.6444 16.1801 24.5545V26.2767C16.5528 26.3152 16.9384 26.341 17.3625 26.341C22.4649 26.341 26.1664 23.7448 29.7523 20.6473C30.3435 21.1229 32.7597 22.2796 33.261 22.7937C29.8679 25.6341 21.9251 27.9346 17.4396 27.9346C17.0155 27.9346 16.5914 27.9089 16.1801 27.8704V30.2866H35.6001V9.75492H16.1801ZM16.1801 23.1021V24.5545C11.4376 23.7191 10.1266 18.7966 10.1266 18.7966C10.1266 18.7966 12.4015 16.2775 16.1801 15.8791V17.4728H16.1673C14.188 17.2414 12.6329 19.0922 12.6329 19.0922C12.6329 19.0922 13.5068 22.2025 16.1801 23.1021ZM7.77464 18.591C7.77464 18.591 10.5765 14.4525 16.1801 14.0283V12.5246C9.9724 13.0259 4.6001 18.2696 4.6001 18.2696C4.6001 18.2696 7.64612 27.0735 16.1801 27.8575V26.2767C9.90814 25.4798 7.77464 18.591 7.77464 18.591Z" fill="currentColor"/>
+</svg>

File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/ollama-cloud.svg


File diff suppressed because it is too large
+ 1 - 6
packages/ui/src/assets/icons/provider/openai.svg


+ 3 - 4
packages/ui/src/assets/icons/provider/opencode.svg

@@ -1,5 +1,4 @@
-<svg viewBox="0 0 160 200" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
-<path d="M40 160H160V200H0V120H40V160Z"/>
-<path d="M120 80V120H40V80H120Z"/>
-<path d="M160 80H120V40H0V0H160V80Z"/>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path opacity="0.2" d="M19.2002 17.4H8.40017V13.8H15.6002V10.2H19.2002V17.4ZM8.40017 13.8H4.80017V10.2H8.40017V13.8Z" fill="currentColor"/>
+<path d="M8.40005 17.4H19.2001V21H4.80005V13.8H8.40005V17.4ZM15.6001 10.2V13.8H8.40005V10.2H15.6001ZM19.2001 10.2H15.6001V6.6H4.80005V3H19.2001V10.2Z" fill="currentColor"/>
 </svg>
 </svg>

+ 7 - 18
packages/ui/src/assets/icons/provider/openrouter.svg

@@ -1,19 +1,8 @@
-<svg
-  viewBox="0 0 512 512"
-  xmlns="http://www.w3.org/2000/svg"
-  fill="currentColor"
-  stroke="currentColor"
->
-  <g clip-path="url(#clip0_205_3)">
-    <path
-      d="M3 248.945C18 248.945 76 236 106 219C136 202 136 202 198 158C276.497 102.293 332 120.945 423 120.945"
-      stroke-width="90"
-    />
-    <path d="M511 121.5L357.25 210.268L357.25 32.7324L511 121.5Z" />
-    <path
-      d="M0 249C15 249 73 261.945 103 278.945C133 295.945 133 295.945 195 339.945C273.497 395.652 329 377 420 377"
-      stroke-width="90"
-    />
-    <path d="M508 376.445L354.25 287.678L354.25 465.213L508 376.445Z" />
-  </g>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M3.10913 12.07C3.65512 12.07 5.76627 11.5988 6.85825 10.98C7.95023 10.3612 7.95023 10.3612 10.207 8.75965C13.0642 6.73196 15.0845 7.41088 18.3968 7.41088" fill="currentColor"/>
+<path d="M3.10913 12.07C3.65512 12.07 5.76627 11.5988 6.85825 10.98C7.95023 10.3612 7.95023 10.3612 10.207 8.75965C13.0642 6.73196 15.0845 7.41088 18.3968 7.41088" stroke="currentColor" stroke-width="3.27593"/>
+<path d="M21.6 7.43108L16.0037 10.6622V4.20001L21.6 7.43108Z" fill="currentColor" stroke="currentColor" stroke-width="0.0363992"/>
+<path d="M3 12.072C3.54599 12.072 5.65714 12.5432 6.74912 13.162C7.8411 13.7808 7.8411 13.7808 10.0978 15.3823C12.9551 17.41 14.9753 16.7311 18.2877 16.7311" fill="currentColor"/>
+<path d="M3 12.072C3.54599 12.072 5.65714 12.5432 6.74912 13.162C7.8411 13.7808 7.8411 13.7808 10.0978 15.3823C12.9551 17.41 14.9753 16.7311 18.2877 16.7311" stroke="currentColor" stroke-width="3.27593"/>
+<path d="M21.4909 16.7109L15.8945 13.4798V19.942L21.4909 16.7109Z" fill="currentColor" stroke="currentColor" stroke-width="0.0363992"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/ovhcloud.svg

@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122 122" fill="currentColor">
-  <path clip-rule="evenodd" fill-rule="evenodd" d="m108.96877,31.54173c11.13494,20.01471 9.02071,44.82167 -5.2151,62.72214l-30.30396,0l9.30261,-16.49099l-12.26253,0l14.51771,-25.5117l12.40348,0l11.55779,-20.71945l0,0zm-59.62127,62.72214l-30.86775,0c-14.51771,-17.90048 -16.63194,-42.84838 -5.35605,-62.86309l20.01471,34.67336l21.98799,-38.33803l32.41819,0l-38.19708,66.52776l0,0l0,0l0,0z"/>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.5005 11.7092C36.6343 17.3422 36.0393 24.3239 32.0327 29.3619H23.5039L26.122 24.7206H22.6708L26.7567 17.5405H30.2476L33.5005 11.7092ZM16.7205 29.3619H8.03298C3.94707 24.3239 3.35203 17.3025 6.52555 11.6695L12.1586 21.4281L18.3469 10.6381H27.4708L16.7205 29.3619Z" fill="currentColor"/>
 </svg>
 </svg>

+ 3 - 3
packages/ui/src/assets/icons/provider/perplexity.svg

@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <path stroke="currentColor" fill="none" stroke-miterlimit="10" d="m15.711,0.932l-6.33,6.336h6.33V0.932v1.735V0.932Zm-6.331,6.336L3.049,0.932v6.336h6.331Zm-0.014,-7.268v24m6.345,-10.397l-6.33,-6.336v9.083l6.33,6.336v-9.083Zm-12.661,0l6.331,-6.336v9.083l-6.331,6.336v-9.083ZM0.333,7.267v9.047h2.716v-2.711l6.331,-6.336H0.333Zm8.98,0l6.33,6.336v2.711h2.717v-9.047h-9.047Z"/>
-</svg>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.2642 2.8689L12.042 8.0961M17.2642 2.8689V8.0961H12.042M17.2642 2.8689V4.30027M12.042 8.0961L6.81809 2.8689V8.0961H12.042ZM12.042 8.0961L17.2642 13.3225V20.8159L12.042 15.5887M12.042 8.0961V15.5887M12.042 8.0961L6.81892 13.3225M12.0296 2.1V21.9M12.042 15.5887L6.81892 20.8159V13.3225M6.81892 13.3225L6.81809 15.559H4.57739V8.09527H12.0412L6.81892 13.3225ZM11.9859 8.09527L17.2081 13.3225V15.559H19.4497V8.09527H11.9859Z" stroke="currentColor" stroke-width="0.825" stroke-miterlimit="10"/>
+</svg>

+ 7 - 7
packages/ui/src/assets/icons/provider/poe.svg

@@ -1,7 +1,7 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 102" fill="currentColor">
-  <path d="M105.402 20.0312C103.96 18.5882 102.058 17.8889 100.169 17.922L100.133 17.9227C94.4356 17.9227 89.8567 13.3043 89.8567 7.60748V7.60101C89.8769 5.72486 89.1762 3.84367 87.7461 2.41138C86.3576 1.02297 84.5455 0.321569 82.7269 0.300707L24.7892 0.299988C22.9699 0.321569 21.1578 1.02297 19.7701 2.41066C18.3392 3.84151 17.6378 5.72414 17.6594 7.59957L17.6573 7.59741C17.6573 13.2949 13.0381 17.9141 7.34131 17.9141L7.3485 17.922C5.45868 17.8882 3.55807 18.5882 2.11499 20.0312C0.702123 21.4441 -0.0021532 23.2965 4.94484e-06 25.1482V43.6802C-0.0021532 45.5319 0.702123 47.3829 2.11427 48.7958C3.55736 50.2389 5.45796 50.9381 7.34778 50.905H7.35354C13.0388 50.905 17.6393 55.5033 17.6587 61.1843V79.994C17.6587 82.3946 20.6823 83.4557 22.1829 81.5809L32.6262 68.5263L82.7298 68.5256C84.5491 68.504 86.3605 67.8026 87.7489 66.4149C89.1798 64.9841 89.8812 63.1014 89.8596 61.226V61.2152C89.8596 55.5177 94.4586 50.9043 100.158 50.9043H100.171C102.06 50.9381 103.962 50.2381 105.404 48.7951C106.817 47.3822 107.522 45.5298 107.519 43.6795V25.1489C107.52 23.2965 106.814 21.4441 105.402 20.0312ZM93.0839 43.8802C93.0242 49.5274 88.4338 54.0868 82.773 54.0868H24.7432C19.0824 54.0868 14.492 49.526 14.4323 43.8802C14.4337 43.8133 14.4337 25.0151 14.4323 24.9475C14.492 19.3003 19.0824 14.7409 24.7432 14.7409L24.7367 14.7344C24.754 14.7344 24.7712 14.7366 24.7892 14.7366V14.7409H82.7722C88.4331 14.7409 93.0242 19.3018 93.0832 24.9482C93.0817 25.0151 93.0824 43.8133 93.0839 43.8802Z" fill="currentColor"/>
-  <path d="M37.7331 23.5584C33.7362 23.5584 30.4954 26.7978 30.4954 30.7961V38.0338C30.4954 42.0307 33.7348 45.2715 37.7331 45.2715C41.7314 45.2715 44.9708 42.0321 44.9708 38.0338V30.7954C44.9701 26.7985 41.73 23.5584 37.7331 23.5584Z" fill="currentColor"/>
-  <path d="M69.7823 23.5584C65.7854 23.5584 62.5446 26.7978 62.5446 30.7961V38.0338C62.5446 42.0307 65.784 45.2715 69.7823 45.2715C73.7807 45.2715 77.0201 42.0321 77.0201 38.0338V30.7954C77.0193 26.7985 73.7792 23.5584 69.7823 23.5584Z" fill="currentColor"/>
-  <path d="M37.1159 100.281L47.2628 87.6L97.3664 87.5993C99.1857 87.5777 100.997 86.8763 102.386 85.4886C103.816 84.0578 104.518 82.1752 104.496 80.2997C104.49 74.618 109.082 70.0025 114.762 69.978H114.808C116.697 70.0118 118.598 69.3119 120.041 67.8688C121.453 66.4559 122.158 64.6035 122.156 62.7533V44.4521C122.156 42.7055 121.579 41.0063 120.516 39.6193L118.49 36.9756V57.9801C118.493 59.8318 117.788 61.6828 116.375 63.0957C114.933 64.5388 113.032 65.238 111.143 65.2049H111.097C105.415 65.2294 100.824 69.8456 100.831 75.5266C100.851 77.402 100.15 79.284 98.7203 80.7155C97.3318 82.1039 95.5197 82.8046 93.7011 82.8262L43.5975 82.8269L32.5571 96.6326C31.7183 97.6822 31.7039 99.1677 32.5226 100.233C33.6779 101.736 35.9332 101.758 37.1159 100.281Z" fill="currentColor" fill-opacity="0.4"/>
-  <path d="M25.4748 86.79L36.2677 73.2944L86.3713 73.2937C88.1906 73.2721 90.002 72.5707 91.3904 71.183C92.8213 69.7521 93.5227 67.8695 93.5011 65.9933V65.9826C93.4954 60.3066 98.0814 55.6961 103.757 55.6716H103.813C105.703 55.7054 107.604 55.0055 109.046 53.5624C110.459 52.1495 111.164 50.2978 111.161 48.4469V27.4251L113.814 30.881C114.878 32.2694 115.455 33.9693 115.455 35.7174V54.0091C115.457 55.8608 114.753 57.7118 113.34 59.1247C111.898 60.5678 109.997 61.267 108.107 61.2339H108.061C102.38 61.2584 97.7886 65.8747 97.7958 71.5556C97.816 73.4311 97.1153 75.313 95.6852 76.7445C94.2968 78.1329 92.4846 78.8336 90.666 78.8552L40.5624 78.8559L30.8076 91.0538C29.4235 92.7839 26.7848 92.758 25.4338 91.0013C24.4763 89.7553 24.4936 88.0165 25.4748 86.79Z" fill="currentColor" fill-opacity="0.6"/>
-</svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M31.4739 11.8771C31.0962 11.4991 30.5979 11.3159 30.1031 11.3246L30.0936 11.3248C28.6012 11.3248 27.4017 10.115 27.4017 8.62262V8.62092C27.407 8.12944 27.2234 7.63665 26.8488 7.26144C26.485 6.89774 26.0103 6.714 25.5339 6.70853L10.3566 6.70834C9.87999 6.714 9.40529 6.89774 9.04177 7.26126C8.66693 7.63608 8.48319 8.12926 8.48885 8.62054L8.4883 8.61998C8.4883 10.1125 7.27826 11.3225 5.78592 11.3225L5.78781 11.3246C5.29275 11.3158 4.79487 11.4991 4.41684 11.8771C4.04672 12.2473 3.86223 12.7325 3.86279 13.2176V18.0722C3.86223 18.5573 4.04672 19.0422 4.41665 19.4123C4.79468 19.7903 5.29256 19.9735 5.78762 19.9648H5.78913C7.27844 19.9648 8.48359 21.1694 8.48867 22.6576V27.585C8.48867 28.2139 9.28073 28.4918 9.67383 28.0007L12.4096 24.5809L25.5347 24.5807C26.0113 24.5751 26.4858 24.3913 26.8495 24.0278C27.2243 23.653 27.4081 23.1598 27.4024 22.6685V22.6657C27.4024 21.1732 28.6072 19.9647 30.1002 19.9647H30.1036C30.5984 19.9735 31.0967 19.7901 31.4744 19.4121C31.8446 19.042 32.0293 18.5568 32.0285 18.072V13.2178C32.0287 12.7325 31.8438 12.2473 31.4739 11.8771ZM28.2471 18.1246C28.2314 19.604 27.0289 20.7983 25.546 20.7983H10.3445C8.86162 20.7983 7.65912 19.6036 7.64348 18.1246C7.64385 18.1071 7.64385 13.1827 7.64348 13.165C7.65912 11.6857 8.86162 10.4913 10.3445 10.4913L10.3428 10.4896C10.3474 10.4896 10.3519 10.4902 10.3566 10.4902V10.4913H25.5458C27.0287 10.4913 28.2314 11.6861 28.2469 13.1652C28.2465 13.1827 28.2467 18.1071 28.2471 18.1246Z" fill="currentColor"/>
+<path d="M13.7473 12.8011C12.7003 12.8011 11.8513 13.6497 11.8513 14.6971V16.5931C11.8513 17.6402 12.6999 18.4891 13.7473 18.4891C14.7947 18.4891 15.6433 17.6405 15.6433 16.5931V14.697C15.6431 13.6499 14.7943 12.8011 13.7473 12.8011Z" fill="currentColor"/>
+<path d="M22.1431 12.8011C21.096 12.8011 20.2471 13.6497 20.2471 14.6971V16.5931C20.2471 17.6402 21.0957 18.4891 22.1431 18.4891C23.1905 18.4891 24.0391 17.6405 24.0391 16.5931V14.697C24.0389 13.6499 23.1901 12.8011 22.1431 12.8011Z" fill="currentColor"/>
+<path d="M13.5857 32.8994L16.2438 29.5775L29.369 29.5773C29.8455 29.5716 30.32 29.3879 30.6839 29.0244C31.0585 28.6496 31.2424 28.1564 31.2366 27.6651C31.2351 26.1767 32.438 24.9676 33.9259 24.9612H33.938C34.4328 24.9701 34.9308 24.7867 35.3088 24.4087C35.6787 24.0386 35.8634 23.5533 35.8628 23.0686V18.2745C35.8628 17.8169 35.7117 17.3718 35.4332 17.0085L34.9025 16.3159V21.8183C34.9033 22.3033 34.7186 22.7882 34.3484 23.1583C33.9707 23.5364 33.4727 23.7195 32.9779 23.7109H32.9658C31.4774 23.7173 30.2747 24.9265 30.2765 26.4147C30.2818 26.906 30.0981 27.399 29.7236 27.774C29.3599 28.1377 28.8852 28.3213 28.4088 28.3269L15.2836 28.3271L12.3915 31.9437C12.1718 32.2186 12.168 32.6078 12.3825 32.8868C12.6851 33.2806 13.2759 33.2863 13.5857 32.8994Z" fill="currentColor" fill-opacity="0.4"/>
+<path d="M10.5362 29.3653L13.3635 25.83L26.4886 25.8298C26.9652 25.8242 27.4397 25.6404 27.8035 25.2769C28.1783 24.9021 28.362 24.4089 28.3564 23.9174V23.9146C28.3549 22.4277 29.5562 21.2199 31.043 21.2135H31.0577C31.5528 21.2224 32.0508 21.039 32.4285 20.661C32.7987 20.2909 32.9833 19.8058 32.9826 19.3209V13.8141L33.6775 14.7194C33.9563 15.0831 34.1074 15.5284 34.1074 15.9863V20.778C34.1079 21.2631 33.9235 21.748 33.5534 22.1181C33.1756 22.4961 32.6776 22.6793 32.1825 22.6706H32.1705C30.6823 22.677 29.4795 23.8863 29.4814 25.3745C29.4867 25.8658 29.3032 26.3588 28.9285 26.7338C28.5648 27.0975 28.0901 27.281 27.6137 27.2867L14.4885 27.2869L11.9332 30.4823C11.5706 30.9355 10.8794 30.9287 10.5255 30.4685C10.2746 30.1421 10.2792 29.6866 10.5362 29.3653Z" fill="currentColor" fill-opacity="0.6"/>
+</svg>

+ 4 - 4
packages/ui/src/assets/icons/provider/scaleway.svg

@@ -1,5 +1,5 @@
-<svg width="122" height="144" viewBox="0 0 122 144" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M66.334 32.9916H42.6219C37.4192 33.5933 33.4171 37.9053 33.217 43.1198V77.415C33.217 79.7215 34.1175 81.727 35.6183 83.2312C37.119 84.7354 39.1201 85.6379 41.4213 85.6379C45.9236 85.6379 49.6255 81.9276 49.6255 77.415V55.6546C49.6255 52.2451 52.4269 49.4373 55.8287 49.4373H66.5341C68.8353 49.4373 70.8364 48.5348 72.3371 47.0306C73.8379 45.5265 74.7384 43.4206 74.7384 41.1142C74.7384 36.6017 70.8364 32.9916 66.334 32.9916Z" fill="currentColor"/>
-<path d="M55.6286 111.209H79.3407C84.5434 110.607 88.5455 106.295 88.7456 101.081V66.7855C88.7456 64.4791 87.8451 62.4735 86.3443 60.9694C84.8435 59.4652 82.8425 58.5627 80.5413 58.5627C76.039 58.5627 72.3371 62.273 72.3371 66.7855V88.546C72.3371 91.9554 69.5357 94.7632 66.1339 94.7632H55.4284C53.1273 94.7632 51.1262 95.6657 49.6255 97.1699C48.1247 98.6741 47.2242 100.78 47.2242 103.086C47.3243 107.599 51.1262 111.209 55.6286 111.209Z" fill="currentColor"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M27.214 0H70.3361C98.7507 0 121.662 22.9638 121.563 51.4429V119.733C120.262 132.669 109.756 142.897 96.7497 144H51.3264C23.0118 144 0 120.936 0 92.5571V27.2758C0 12.234 12.2063 0 27.214 0ZM105.254 51.4429C105.254 32.1894 89.546 16.4457 70.3361 16.4457H27.314C21.3109 16.4457 16.5085 21.2591 16.5085 27.2758V92.5571C16.5085 111.911 32.1165 127.554 51.4264 127.554H96.0493C100.752 126.953 104.454 123.343 105.254 118.73V51.4429Z" fill="currentColor"/>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path d="M12.6809 6.96139H9.61812C8.9461 7.03911 8.42917 7.59607 8.40332 8.26961V12.6994C8.40332 12.9973 8.51964 13.2564 8.71349 13.4507C8.90733 13.645 9.1658 13.7615 9.46304 13.7615C10.0446 13.7615 10.5228 13.2823 10.5228 12.6994V9.88869C10.5228 9.4483 10.8846 9.08562 11.324 9.08562H12.7068C13.004 9.08562 13.2625 8.96905 13.4563 8.77476C13.6502 8.58048 13.7665 8.30847 13.7665 8.01056C13.7665 7.42769 13.2625 6.96139 12.6809 6.96139Z" fill="currentColor"/>
+  <path d="M11.2982 17.0645H14.361C15.033 16.9867 15.55 16.4298 15.5758 15.7563V11.3265C15.5758 11.0285 15.4595 10.7695 15.2657 10.5752C15.0718 10.3809 14.8133 10.2643 14.5161 10.2643C13.9346 10.2643 13.4564 10.7436 13.4564 11.3265V14.1372C13.4564 14.5776 13.0945 14.9402 12.6551 14.9402H11.2724C10.9751 14.9402 10.7167 15.0568 10.5228 15.2511C10.329 15.4454 10.2126 15.7174 10.2126 16.0153C10.2256 16.5982 10.7167 17.0645 11.2982 17.0645Z" fill="currentColor"/>
+  <path fill-rule="evenodd" clip-rule="evenodd" d="M7.62793 2.7H13.1979C16.8681 2.7 19.8275 5.66616 19.8147 9.34471V18.1655C19.6466 19.8364 18.2896 21.1575 16.6096 21.3H10.7425C7.08515 21.3 4.11279 18.3209 4.11279 14.6553V6.22312C4.11279 4.28023 5.68944 2.7 7.62793 2.7ZM17.7081 9.34471C17.7081 6.8578 15.6792 4.82424 13.1979 4.82424H7.64085C6.86545 4.82424 6.24514 5.44597 6.24514 6.22312V14.6553C6.24514 17.1552 8.26117 19.1757 10.7554 19.1757H16.5192C17.1266 19.0981 17.6048 18.6318 17.7081 18.036V9.34471Z" fill="currentColor"/>
 </svg>
 </svg>

+ 3 - 0
packages/ui/src/assets/icons/provider/siliconflow-cn.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M34.1033 12.3605H20.6227C19.8778 12.3605 19.2764 12.9839 19.2764 13.7501V17.9223C19.2764 18.2909 19.1346 18.6451 18.8823 18.9058C18.6292 19.1658 18.2869 19.3127 17.9293 19.3118H5.7933C5.04839 19.3118 4.44703 19.9353 4.44703 20.7014V26.2658C4.44618 26.6344 4.58887 26.9886 4.84114 27.2485C5.09341 27.5093 5.43656 27.6562 5.7933 27.6562H19.273C19.6306 27.6562 19.9729 27.5093 20.226 27.2485C20.4783 26.9886 20.6202 26.6344 20.6202 26.2658V22.0944C20.6193 21.7258 20.7612 21.3716 21.0143 21.1108C21.2665 20.8501 21.6097 20.704 21.9673 20.7048H34.0999C34.8457 20.7048 35.447 20.0805 35.447 19.3152V13.7501C35.447 12.9814 34.8423 12.3605 34.0999 12.3605H34.1033Z" fill="currentColor"/>
+</svg>

+ 3 - 6
packages/ui/src/assets/icons/provider/siliconflow.svg

@@ -1,6 +1,3 @@
-<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" role="img">
-  <title>SiliconFlow</title>
-  <g transform="translate(1 6.2) scale(0.6)">
-    <path d="M 34.947 0.671 L 19.076 0.671 C 18.199 0.671 17.491 1.405 17.491 2.307 L 17.491 7.219 C 17.491 7.653 17.324 8.07 17.027 8.377 C 16.729 8.683 16.326 8.856 15.905 8.855 L 1.617 8.855 C 0.74 8.855 0.032 9.589 0.032 10.491 L 0.032 17.042 C 0.031 17.476 0.199 17.893 0.496 18.199 C 0.793 18.506 1.197 18.679 1.617 18.679 L 17.487 18.679 C 17.908 18.679 18.311 18.506 18.609 18.199 C 18.906 17.893 19.073 17.476 19.073 17.042 L 19.073 12.131 C 19.072 11.697 19.239 11.28 19.537 10.973 C 19.834 10.666 20.238 10.494 20.659 10.495 L 34.943 10.495 C 35.821 10.495 36.529 9.76 36.529 8.859 L 36.529 2.307 C 36.529 1.402 35.817 0.671 34.943 0.671 Z"/>
-  </g>
-</svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M34.1033 12.3605H20.6227C19.8778 12.3605 19.2764 12.9839 19.2764 13.7501V17.9223C19.2764 18.2909 19.1346 18.6451 18.8823 18.9058C18.6292 19.1658 18.2869 19.3127 17.9293 19.3118H5.7933C5.04839 19.3118 4.44703 19.9353 4.44703 20.7014V26.2658C4.44618 26.6344 4.58887 26.9886 4.84114 27.2485C5.09341 27.5093 5.43656 27.6562 5.7933 27.6562H19.273C19.6306 27.6562 19.9729 27.5093 20.226 27.2485C20.4783 26.9886 20.6202 26.6344 20.6202 26.2658V22.0944C20.6193 21.7258 20.7612 21.3716 21.0143 21.1108C21.2665 20.8501 21.6097 20.704 21.9673 20.7048H34.0999C34.8457 20.7048 35.447 20.0805 35.447 19.3152V13.7501C35.447 12.9814 34.8423 12.3605 34.0999 12.3605H34.1033Z" fill="currentColor"/>
+</svg>

+ 2 - 4
packages/ui/src/assets/icons/provider/submodel.svg

@@ -1,5 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <g transform="translate(0.000000,24.000000) scale(0.100000,-0.100000)" fill="currentColor" stroke="none">
-    <path d="M75 230 c-72 -29 -96 -134 -43 -187 l28 -27 31 29 c17 17 35 40 40 53 6 15 16 22 26 20 24 -5 29 -37 6 -45 -27 -9 -63 -44 -63 -61 0 -25 70 -7 105 28 25 26 30 38 30 80 0 40 -5 55 -26 75 l-26 26 -32 -27 c-18 -15 -37 -38 -42 -51 -6 -16 -15 -23 -26 -21 -24 5 -29 37 -6 44 26 10 73 55 67 66 -6 10 -42 9 -69 -2z"/>
-  </g>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path d="M8.69514 3.98663C3.44358 6.10184 1.69306 13.7604 5.55879 17.6261L7.60106 19.5954L9.86215 17.4802C11.1021 16.2403 12.415 14.5627 12.7797 13.6145C13.2173 12.5204 13.9467 12.0098 14.6761 12.1557C16.4266 12.5204 16.7913 14.8544 15.1137 15.4379C13.1444 16.0944 10.5186 18.6472 10.5186 19.8872C10.5186 21.7106 15.6243 20.3977 18.1771 17.8449C20.0006 15.9485 20.3653 15.0732 20.3653 12.0098C20.3653 9.09231 20.0006 7.99823 18.4689 6.53947L16.5725 4.64307L14.2384 6.61241C12.9256 7.70648 11.5397 9.38406 11.175 10.3323C10.7374 11.4993 10.081 12.0098 9.27864 11.864C7.52813 11.4993 7.16343 9.16524 8.84101 8.65468C10.7374 7.92529 14.1655 4.64307 13.7279 3.84075C13.2902 3.11137 10.6645 3.18431 8.69514 3.98663Z" fill="currentColor"/>
 </svg>
 </svg>

+ 3 - 2
packages/ui/src/assets/icons/provider/togetherai.svg

@@ -1,3 +1,4 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M17.385 11.23a4.615 4.615 0 100-9.23 4.615 4.615 0 000 9.23zm0 10.77a4.615 4.615 0 100-9.23 4.615 4.615 0 000 9.23zm-10.77 0a4.615 4.615 0 100-9.23 4.615 4.615 0 000 9.23z" opacity=".2"></path><circle cx="6.615" cy="6.615" r="4.615" fill="currentColor"></circle>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path opacity="0.25" d="M27.539 18.922C29.2526 18.922 30.8959 18.2413 32.1076 17.0296C33.3193 15.8179 34 14.1746 34 12.461C34 10.7474 33.3193 9.10406 32.1076 7.89238C30.8959 6.68071 29.2526 6 27.539 6C25.8254 6 24.1821 6.68071 22.9704 7.89238C21.7587 9.10406 21.078 10.7474 21.078 12.461C21.078 14.1746 21.7587 15.8179 22.9704 17.0296C24.1821 18.2413 25.8254 18.922 27.539 18.922ZM27.539 34C29.2526 34 30.8959 33.3193 32.1076 32.1076C33.3193 30.8959 34 29.2526 34 27.539C34 25.8254 33.3193 24.1821 32.1076 22.9704C30.8959 21.7587 29.2526 21.078 27.539 21.078C25.8254 21.078 24.1821 21.7587 22.9704 22.9704C21.7587 24.1821 21.078 25.8254 21.078 27.539C21.078 29.2526 21.7587 30.8959 22.9704 32.1076C24.1821 33.3193 25.8254 34 27.539 34ZM12.461 34C14.1746 34 15.8179 33.3193 17.0296 32.1076C18.2413 30.8959 18.922 29.2526 18.922 27.539C18.922 25.8254 18.2413 24.1821 17.0296 22.9704C15.8179 21.7587 14.1746 21.078 12.461 21.078C10.7474 21.078 9.10406 21.7587 7.89238 22.9704C6.68071 24.1821 6 25.8254 6 27.539C6 29.2526 6.68071 30.8959 7.89238 32.1076C9.10406 33.3193 10.7474 34 12.461 34Z" fill="currentColor"/>
+<path d="M12.461 18.922C16.0293 18.922 18.922 16.0293 18.922 12.461C18.922 8.89269 16.0293 6 12.461 6C8.89269 6 6 8.89269 6 12.461C6 16.0293 8.89269 18.922 12.461 18.922Z" fill="currentColor"/>
 </svg>
 </svg>

+ 3 - 4
packages/ui/src/assets/icons/provider/v0.svg

@@ -1,4 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- https://api.iconify.design/simple-icons:v0.svg -->
-  <path fill="currentColor" d="M14.066 6.028v2.22h5.729q.075-.001.148.005l-5.853 5.752a2 2 0 0 1-.024-.309V8.247h-2.353v5.45c0 2.322 1.935 4.222 4.258 4.222h5.675v-2.22h-5.675q-.03 0-.059-.003l5.729-5.629q.006.082.006.166v5.465H24v-5.465a4.204 4.204 0 0 0-4.205-4.205zM0 8.245l8.28 9.266c.839.94 2.396.346 2.396-.914V8.245H8.19v5.44l-4.86-5.44Z"/>
-  </svg>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M22.6686 12.2861V15.1536H30.0685C30.1331 15.1528 30.1968 15.1549 30.2597 15.1601L22.6996 22.5897C22.6789 22.4577 22.6686 22.3243 22.6686 22.1906V15.1523H19.6293V22.1919C19.6293 25.1912 22.1287 27.6453 25.1292 27.6453H32.4594V24.7778H25.1292C25.1034 24.7778 25.078 24.7765 25.053 24.774L32.453 17.5032C32.4581 17.5738 32.4607 17.6452 32.4607 17.7176V24.7765H35.5V17.7176C35.5002 17.0043 35.3598 16.2979 35.0869 15.6388C34.814 14.9798 34.4139 14.381 33.9095 13.8766C33.4051 13.3722 32.8063 12.9721 32.1473 12.6992C31.4882 12.4263 30.7819 12.2859 30.0685 12.2861H22.6686ZM4.5 15.1497L15.195 27.1183C16.2787 28.3325 18.2898 27.5652 18.2898 25.9377V15.1497H15.0787V22.1764L8.80125 15.1497H4.5Z" fill="currentColor"/>
+</svg>

File diff suppressed because it is too large
+ 1 - 23
packages/ui/src/assets/icons/provider/venice.svg


+ 2 - 3
packages/ui/src/assets/icons/provider/vercel.svg

@@ -1,4 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-  <!-- https://api.iconify.design/ri:vercel-fill.svg -->
-  <path fill="currentColor" d="M23 21.648H1L12 2.352z"/>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M35.5 33.5949H4.5L20 6.40511L35.5 33.5949Z" fill="currentColor"/>
 </svg>
 </svg>

+ 5 - 17
packages/ui/src/assets/icons/provider/vultr.svg

@@ -1,18 +1,6 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42 42">
-  <path
-    fill="currentColor"
-    d="M14.63,4a2.09,2.09,0,0,0-1.77-1H2.1A2.1,2.1,0,0,0,0,5.1,2.12,2.12,0,0,0,.32,6.22l2.77,4.07,13.85-3Z" transform="translate(0 -3)"
-  />
-  <path
-    fill="currentColor"
-    d="M17,7.37a2.11,2.11,0,0,0-1.78-1H4.5A2.09,2.09,0,0,0,2.66,9.61l3.09,4.9,14.31-2.24Z" transform="translate(0 -3)"
-  />
-  <path
-    fill="currentColor"
-    d="M5.62,14.31a2.14,2.14,0,0,1-.19-1.88,2.11,2.11,0,0,1,2-1.34H18.15a2.1,2.1,0,0,1,1.78,1l9.63,15.27a2.12,2.12,0,0,1,.32,1.12,2.15,2.15,0,0,1-.32,1.12l-5.38,8.53a2.11,2.11,0,0,1-3.56,0Z" transform="translate(0 -3)"
-  />
-  <path
-    fill="currentColor"
-    d="M32.74,19.19a2.11,2.11,0,0,0,3.56,0l1.85-2.93,3.53-5.6A2.12,2.12,0,0,0,42,9.54a2.15,2.15,0,0,0-.32-1.12L38.88,4A2.11,2.11,0,0,0,37.1,3H26.34a2.1,2.1,0,0,0-2.1,2.1,2,2,0,0,0,.33,1.12Z" transform="translate(0 -3)"
-  />
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.2983 4.60669C15.1614 4.38264 14.9695 4.19726 14.7409 4.06809C14.5123 3.93893 14.2545 3.87026 13.9919 3.86859H6.05C5.63892 3.86859 5.24467 4.03189 4.95399 4.32258C4.6633 4.61326 4.5 5.00751 4.5 5.41859C4.5 5.7108 4.58182 5.99716 4.73619 6.24526L6.78072 9.24931L17.0034 7.03502L15.2983 4.60669Z" fill="currentColor"/>
+<path d="M17.0474 7.09406C16.9088 6.86991 16.7155 6.68462 16.4857 6.55553C16.256 6.42643 15.9972 6.35777 15.7336 6.35596H7.82122C7.53681 6.34284 7.25431 6.40869 7.00501 6.54622C6.75571 6.68375 6.54934 6.88758 6.40874 7.13516C6.26814 7.38274 6.1988 7.6644 6.2084 7.94895C6.218 8.23351 6.30616 8.50985 6.46312 8.74739L8.74384 12.3641L19.306 10.7107L17.0474 7.09406Z" fill="currentColor"/>
+<path d="M8.64826 12.2164C8.52024 12.0113 8.44101 11.7795 8.4167 11.5389C8.39238 11.2984 8.42363 11.0554 8.50803 10.8288C8.62388 10.5331 8.82738 10.2799 9.09123 10.1031C9.35508 9.92633 9.66667 9.83444 9.98422 9.83977H17.8966C18.1603 9.84089 18.4194 9.90926 18.6493 10.0384C18.8792 10.1676 19.0723 10.3532 19.2104 10.5779L26.3183 21.8486C26.4727 22.0967 26.5545 22.3831 26.5545 22.6753C26.5533 22.9673 26.4716 23.2534 26.3183 23.5019L22.3473 29.7979C22.2067 30.0189 22.0125 30.2008 21.7829 30.3269C21.5532 30.4529 21.2955 30.519 21.0335 30.519C20.7716 30.519 20.5138 30.4529 20.2842 30.3269C20.0545 30.2008 19.8604 30.0189 19.7197 29.7979L8.64826 12.2164Z" fill="currentColor"/>
+<path d="M28.6652 15.8184C28.8059 16.0394 29.0001 16.2213 29.2297 16.3474C29.4594 16.4734 29.7171 16.5395 29.9791 16.5395C30.241 16.5395 30.4988 16.4734 30.7284 16.3474C30.9581 16.2213 31.1522 16.0394 31.2929 15.8184L32.6583 13.6557L35.2638 9.52241C35.4182 9.27431 35.5 8.98794 35.5 8.69574C35.4989 8.4037 35.4171 8.11765 35.2638 7.86907L33.1972 4.60669C33.0585 4.38254 32.8652 4.19724 32.6355 4.06815C32.4057 3.93906 32.1469 3.8704 31.8833 3.86859H23.9414C23.7379 3.86859 23.5363 3.90868 23.3483 3.98658C23.1602 4.06447 22.9893 4.17865 22.8454 4.32258C22.7015 4.46651 22.5873 4.63738 22.5094 4.82543C22.4315 5.01349 22.3914 5.21504 22.3914 5.41859C22.3886 5.71224 22.4734 6.00007 22.635 6.24526L28.6652 15.8184Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/xai.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M6.469 8.776L16.512 23h-4.464L2.005 8.776H6.47zm-.004 7.9l2.233 3.164L6.467 23H2l4.465-6.324zM22 2.582V23h-3.659V7.764L22 2.582zM22 1l-9.952 14.095-2.233-3.163L17.533 1H22z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.4579 15.6036L26.1529 35H20.0656L6.37059 15.6036H12.4579ZM12.4524 26.3764L15.4974 30.6909L12.4551 35H6.36377L12.4524 26.3764ZM33.6365 7.15727V35H28.647V14.2236L33.6365 7.15727ZM33.6365 5L20.0656 24.2205L17.0206 19.9073L27.5451 5H33.6365Z" fill="currentColor"/>
 </svg>
 </svg>

+ 3 - 0
packages/ui/src/assets/icons/provider/xiaomi.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M17.3598 5.03522C13.6378 5.20577 11.3905 5.78765 9.47432 7.07179C8.10992 7.97471 7.10668 9.14849 6.38435 10.6935C5.59179 12.389 5.24066 14.255 5.09017 17.7262C4.90959 21.6087 5.17043 25.4812 5.75231 27.5378C6.27399 29.4039 7.10668 30.8285 8.38079 32.0223C9.95588 33.487 11.7216 34.2595 14.4604 34.6709C16.9685 35.0421 22.7773 35.0621 25.3154 34.711C28.4054 34.2896 30.3718 33.4168 31.987 31.7414C32.7896 30.9187 33.1608 30.377 33.6824 29.2835C34.4951 27.5679 34.8261 25.7922 34.9867 22.2407C35.107 19.7026 34.9867 16.0909 34.7358 14.4055C34.1439 10.4527 32.4585 7.88441 29.519 6.39962C27.964 5.62713 25.6766 5.17567 22.4963 5.02519C20.0986 4.91483 19.7776 4.91483 17.3598 5.03522ZM21.0617 14.3854C22.386 14.6964 23.0281 15.1378 23.4494 16.0407C23.8808 16.9637 23.951 17.7262 23.951 21.8896V25.8022L22.5264 25.7721L21.0918 25.742L21.0417 21.9297C20.9915 17.7663 20.9714 17.6359 20.3895 17.1844C19.8679 16.7731 19.4264 16.7229 16.5772 16.7129H13.8685L13.8183 21.2275L13.7682 25.742H10.9591L10.929 20.0336C10.909 15.5291 10.939 14.2951 11.0293 14.2349C11.0996 14.1847 13.2365 14.1647 15.7747 14.1847C19.4967 14.2249 20.52 14.265 21.0617 14.3854ZM28.9472 14.3252C29.0174 14.4657 29.0475 25.3708 28.9773 25.722C28.9773 25.7621 28.3252 25.7822 27.5426 25.7721L26.108 25.742L26.0779 20.0838C26.0679 15.9906 26.0879 14.3854 26.1682 14.2951C26.2585 14.1847 26.6096 14.1546 27.5727 14.1546C28.6964 14.1546 28.8669 14.1747 28.9472 14.3252ZM18.9349 22.2307V25.8022L17.4601 25.7721L15.9753 25.742L15.9452 22.331C15.9352 20.455 15.9452 18.8598 15.9753 18.7996C16.0054 18.6993 16.3967 18.6692 17.4802 18.6692H18.9349V22.2307Z" fill="currentColor"/>
+</svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/zai-coding-plan.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M20.1312 7.50002L17.4088 11.1913H5.81625L8.5375 7.50002H20.1325H20.1312ZM34.0675 28.81L31.3475 32.5H19.795L22.5125 28.81H34.0675ZM35 7.50002L16.58 32.5H5L23.42 7.50002H35Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/zai.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M20.1312 7.50002L17.4088 11.1913H5.81625L8.5375 7.50002H20.1325H20.1312ZM34.0675 28.81L31.3475 32.5H19.795L22.5125 28.81H34.0675ZM35 7.50002L16.58 32.5H5L23.42 7.50002H35Z" fill="currentColor"/>
 </svg>
 </svg>

File diff suppressed because it is too large
+ 0 - 1
packages/ui/src/assets/icons/provider/zenmux.svg


+ 2 - 2
packages/ui/src/assets/icons/provider/zhipuai-coding-plan.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M20.1312 7.5L17.4088 11.1912H5.81625L8.5375 7.5H20.1325H20.1312ZM34.0675 28.81L31.3475 32.5H19.795L22.5125 28.81H34.0675ZM35 7.5L16.58 32.5H5L23.42 7.5H35Z" fill="currentColor"/>
 </svg>
 </svg>

+ 2 - 2
packages/ui/src/assets/icons/provider/zhipuai.svg

@@ -1,3 +1,3 @@
-<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
-  <path d="M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"></path>
+<svg width="24" height="24" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
+<path d="M20.1312 7.50002L17.4088 11.1913H5.81625L8.5375 7.50002H20.1325H20.1312ZM34.0675 28.81L31.3475 32.5H19.795L22.5125 28.81H34.0675ZM35 7.50002L16.58 32.5H5L23.42 7.50002H35Z" fill="currentColor"/>
 </svg>
 </svg>

+ 7 - 7
packages/ui/src/components/dialog.css

@@ -4,7 +4,7 @@
   position: fixed;
   position: fixed;
   inset: 0;
   inset: 0;
   z-index: 50;
   z-index: 50;
-  background-color: transparent;
+  background-color: hsl(from var(--background-base) h s l / 0.2);
 
 
   /* animation: overlayHide 250ms ease 100ms forwards; */
   /* animation: overlayHide 250ms ease 100ms forwards; */
   /**/
   /**/
@@ -43,13 +43,14 @@
 
 
       /* padding: 8px; */
       /* padding: 8px; */
       /* padding: 8px 8px 0 8px; */
       /* padding: 8px 8px 0 8px; */
-      border: 1px solid var(--border-base);
+      border: 1px solid hsl(from var(--border-base) h s l / 0.2);
       border-radius: var(--radius-xl);
       border-radius: var(--radius-xl);
       background: var(--surface-raised-stronger-non-alpha);
       background: var(--surface-raised-stronger-non-alpha);
+      background-clip: padding-box;
       box-shadow:
       box-shadow:
-        0 15px 45px 0 rgba(19, 16, 16, 0.22),
-        0 3.35px 10.051px 0 rgba(19, 16, 16, 0.13),
-        0 0.998px 2.993px 0 rgba(19, 16, 16, 0.09);
+        0 15px 45px 0 rgba(19, 16, 16, 0.35),
+        0 3.35px 10.051px 0 rgba(19, 16, 16, 0.25),
+        0 0.998px 2.993px 0 rgba(19, 16, 16, 0.2);
 
 
       /* animation: contentHide 300ms ease-in forwards; */
       /* animation: contentHide 300ms ease-in forwards; */
       /**/
       /**/
@@ -59,8 +60,7 @@
 
 
       [data-slot="dialog-header"] {
       [data-slot="dialog-header"] {
         display: flex;
         display: flex;
-        padding: 16px;
-        padding-left: 20px;
+        padding: 16px 16px 16px 24px;
         justify-content: space-between;
         justify-content: space-between;
         align-items: center;
         align-items: center;
         flex-shrink: 0;
         flex-shrink: 0;

+ 133 - 83
packages/ui/src/components/list.css

@@ -1,17 +1,36 @@
+@property --bottom-fade {
+  syntax: "<length>";
+  inherits: false;
+  initial-value: 0px;
+}
+
+@keyframes scroll {
+  0% {
+    --bottom-fade: 20px;
+  }
+  90% {
+    --bottom-fade: 20px;
+  }
+  100% {
+    --bottom-fade: 0;
+  }
+}
+
 [data-component="list"] {
 [data-component="list"] {
   display: flex;
   display: flex;
   flex-direction: column;
   flex-direction: column;
-  gap: 20px;
+  gap: 12px;
   overflow: hidden;
   overflow: hidden;
+  padding: 0 12px;
 
 
   [data-slot="list-search"] {
   [data-slot="list-search"] {
     display: flex;
     display: flex;
-    height: 40px;
     flex-shrink: 0;
     flex-shrink: 0;
-    padding: 4px 10px 4px 16px;
+    padding: 8px;
     align-items: center;
     align-items: center;
     gap: 12px;
     gap: 12px;
     align-self: stretch;
     align-self: stretch;
+    margin-bottom: 4px;
 
 
     border-radius: var(--radius-md);
     border-radius: var(--radius-md);
     background: var(--surface-base);
     background: var(--surface-base);
@@ -19,11 +38,17 @@
     [data-slot="list-search-container"] {
     [data-slot="list-search-container"] {
       display: flex;
       display: flex;
       align-items: center;
       align-items: center;
-      gap: 16px;
+      gap: 8px;
       flex: 1 0 0;
       flex: 1 0 0;
+      max-height: 20px;
 
 
       [data-slot="list-search-input"] {
       [data-slot="list-search-input"] {
         width: 100%;
         width: 100%;
+
+        &[data-slot="input-input"] {
+          line-height: 20px;
+          max-height: 20px;
+        }
       }
       }
     }
     }
   }
   }
@@ -31,88 +56,67 @@
   [data-slot="list-scroll"] {
   [data-slot="list-scroll"] {
     display: flex;
     display: flex;
     flex-direction: column;
     flex-direction: column;
-    gap: 20px;
+    gap: 12px;
     overflow-y: auto;
     overflow-y: auto;
+    overscroll-behavior: contain;
+    mask: linear-gradient(to bottom, #ffff calc(100% - var(--bottom-fade)), #0000);
+    animation: scroll;
+    animation-timeline: --scroll;
+    scroll-timeline: --scroll y;
     scrollbar-width: none;
     scrollbar-width: none;
     -ms-overflow-style: none;
     -ms-overflow-style: none;
     &::-webkit-scrollbar {
     &::-webkit-scrollbar {
       display: none;
       display: none;
     }
     }
-  }
-
-  [data-slot="list-empty-state"] {
-    display: flex;
-    padding: 32px 0px;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-    gap: 8px;
-    align-self: stretch;
 
 
-    [data-slot="list-message"] {
+    [data-slot="list-empty-state"] {
       display: flex;
       display: flex;
+      padding: 32px 0px;
+      flex-direction: column;
       justify-content: center;
       justify-content: center;
       align-items: center;
       align-items: center;
-      gap: 2px;
-      color: var(--text-weak);
-      text-align: center;
-
-      /* text-14-regular */
-      font-family: var(--font-family-sans);
-      font-size: 14px;
-      font-style: normal;
-      font-weight: var(--font-weight-regular);
-      line-height: var(--line-height-large); /* 142.857% */
-      letter-spacing: var(--letter-spacing-normal);
-    }
+      gap: 8px;
+      align-self: stretch;
 
 
-    [data-slot="list-filter"] {
-      color: var(--text-strong);
-    }
-  }
+      [data-slot="list-message"] {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        gap: 2px;
+        color: var(--text-weak);
+        text-align: center;
 
 
-  [data-slot="list-group"] {
-    position: relative;
-    display: flex;
-    flex-direction: column;
+        /* text-14-regular */
+        font-family: var(--font-family-sans);
+        font-size: 14px;
+        font-style: normal;
+        font-weight: var(--font-weight-regular);
+        line-height: var(--line-height-large); /* 142.857% */
+        letter-spacing: var(--letter-spacing-normal);
+      }
 
 
-    [data-slot="list-header"] {
-      display: flex;
-      z-index: 10;
-      height: 28px;
-      padding: 0 10px;
-      justify-content: space-between;
-      align-items: center;
-      align-self: stretch;
-      background: var(--surface-raised-stronger-non-alpha);
-      position: sticky;
-      top: 0;
-
-      color: var(--text-base);
-
-      /* text-14-medium */
-      font-family: var(--font-family-sans);
-      font-size: 14px;
-      font-style: normal;
-      font-weight: var(--font-weight-medium);
-      line-height: var(--line-height-large); /* 142.857% */
-      letter-spacing: var(--letter-spacing-normal);
+      [data-slot="list-filter"] {
+        color: var(--text-strong);
+      }
     }
     }
 
 
-    [data-slot="list-items"] {
+    [data-slot="list-group"] {
+      position: relative;
       display: flex;
       display: flex;
       flex-direction: column;
       flex-direction: column;
-      align-items: flex-start;
-      align-self: stretch;
 
 
-      [data-slot="list-item"] {
+      [data-slot="list-header"] {
         display: flex;
         display: flex;
-        width: 100%;
-        height: 28px;
-        padding: 4px 10px;
+        z-index: 10;
+        padding: 0 12px 8px 8px;
+        justify-content: space-between;
         align-items: center;
         align-items: center;
-        color: var(--text-strong);
-        scroll-margin-top: 28px;
+        align-self: stretch;
+        background: var(--surface-raised-stronger-non-alpha);
+        position: sticky;
+        top: 0;
+
+        color: var(--text-base);
 
 
         /* text-14-medium */
         /* text-14-medium */
         font-family: var(--font-family-sans);
         font-family: var(--font-family-sans);
@@ -122,30 +126,76 @@
         line-height: var(--line-height-large); /* 142.857% */
         line-height: var(--line-height-large); /* 142.857% */
         letter-spacing: var(--letter-spacing-normal);
         letter-spacing: var(--letter-spacing-normal);
 
 
-        [data-slot="list-item-selected-icon"] {
-          color: var(--icon-strong-base);
+        &::after {
+          content: "";
+          position: absolute;
+          top: 100%;
+          left: 0;
+          right: 0;
+          height: 16px;
+          background: linear-gradient(to bottom, var(--surface-raised-stronger-non-alpha), transparent);
+          pointer-events: none;
+          opacity: 0;
+          transition: opacity 0.15s ease;
         }
         }
-        [data-slot="list-item-active-icon"] {
-          display: none;
-          color: var(--icon-strong-base);
+
+        &[data-stuck="true"]::after {
+          opacity: 1;
         }
         }
+      }
 
 
-        &[data-active="true"] {
-          border-radius: var(--radius-md);
-          background: var(--surface-raised-base-hover);
+      [data-slot="list-items"] {
+        display: flex;
+        flex-direction: column;
+        align-items: flex-start;
+        align-self: stretch;
+
+        [data-slot="list-item"] {
+          display: flex;
+          width: 100%;
+          padding: 6px 8px 6px 8px;
+          align-items: center;
+          color: var(--text-strong);
+          scroll-margin-top: 28px;
+
+          /* text-14-medium */
+          font-family: var(--font-family-sans);
+          font-size: 14px;
+          font-style: normal;
+          font-weight: var(--font-weight-medium);
+          line-height: var(--line-height-large); /* 142.857% */
+          letter-spacing: var(--letter-spacing-normal);
+
+          [data-slot="list-item-selected-icon"] {
+            color: var(--icon-strong-base);
+          }
           [data-slot="list-item-active-icon"] {
           [data-slot="list-item-active-icon"] {
-            display: block;
+            display: none;
+            color: var(--icon-strong-base);
           }
           }
+
           [data-slot="list-item-extra-icon"] {
           [data-slot="list-item-extra-icon"] {
-            display: block !important;
-            color: var(--icon-strong-base) !important;
+            color: var(--icon-base);
+            margin-left: -4px;
+          }
+
+          &[data-active="true"] {
+            border-radius: var(--radius-md);
+            background: var(--surface-raised-base-hover);
+            [data-slot="list-item-active-icon"] {
+              display: block;
+            }
+            [data-slot="list-item-extra-icon"] {
+              display: block !important;
+              color: var(--icon-strong-base) !important;
+            }
+          }
+          &:active {
+            background: var(--surface-raised-base-active);
+          }
+          &:focus-visible {
+            outline: none;
           }
           }
-        }
-        &:active {
-          background: var(--surface-raised-base-active);
-        }
-        &:focus-visible {
-          outline: none;
         }
         }
       }
       }
     }
     }

+ 32 - 4
packages/ui/src/components/list.tsx

@@ -1,7 +1,7 @@
-import { createEffect, on, Show, For, type JSX, createSignal } from "solid-js"
+import { type FilteredListProps, useFilteredList } from "@opencode-ai/ui/hooks"
+import { createEffect, createSignal, For, type JSX, on, Show } from "solid-js"
 import { createStore } from "solid-js/store"
 import { createStore } from "solid-js/store"
-import { FilteredListProps, useFilteredList } from "@opencode-ai/ui/hooks"
-import { Icon, IconProps } from "./icon"
+import { Icon, type IconProps } from "./icon"
 import { IconButton } from "./icon-button"
 import { IconButton } from "./icon-button"
 import { TextField } from "./text-field"
 import { TextField } from "./text-field"
 
 
@@ -149,7 +149,31 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void })
             {(group) => (
             {(group) => (
               <div data-slot="list-group">
               <div data-slot="list-group">
                 <Show when={group.category}>
                 <Show when={group.category}>
-                  <div data-slot="list-header">{group.category}</div>
+                  {(() => {
+                    const [stuck, setStuck] = createSignal(false)
+                    return (
+                      <div
+                        data-slot="list-header"
+                        data-stuck={stuck()}
+                        ref={(el) => {
+                          createEffect(() => {
+                            const scroll = scrollRef()
+                            if (!scroll) return
+                            const handler = () => {
+                              const rect = el.getBoundingClientRect()
+                              const scrollRect = scroll.getBoundingClientRect()
+                              setStuck(rect.top <= scrollRect.top + 1 && scroll.scrollTop > 0)
+                            }
+                            scroll.addEventListener("scroll", handler, { passive: true })
+                            handler()
+                            return () => scroll.removeEventListener("scroll", handler)
+                          })
+                        }}
+                      >
+                        {group.category}
+                      </div>
+                    )
+                  })()}
                 </Show>
                 </Show>
                 <div data-slot="list-items">
                 <div data-slot="list-items">
                   <For each={group.items}>
                   <For each={group.items}>
@@ -160,10 +184,14 @@ export function List<T>(props: ListProps<T> & { ref?: (ref: ListRef) => void })
                         data-active={props.key(item) === active()}
                         data-active={props.key(item) === active()}
                         data-selected={item === props.current}
                         data-selected={item === props.current}
                         onClick={() => handleSelect(item, i())}
                         onClick={() => handleSelect(item, i())}
+                        type="button"
                         onMouseMove={() => {
                         onMouseMove={() => {
                           setStore("mouseActive", true)
                           setStore("mouseActive", true)
                           setActive(props.key(item))
                           setActive(props.key(item))
                         }}
                         }}
+                        onMouseLeave={() => {
+                          setActive(null)
+                        }}
                       >
                       >
                         {props.children(item)}
                         {props.children(item)}
                         <Show when={item === props.current}>
                         <Show when={item === props.current}>

File diff suppressed because it is too large
+ 7 - 6
packages/ui/src/components/provider-icons/sprite.svg


+ 2 - 0
packages/ui/src/components/provider-icons/types.ts

@@ -6,6 +6,7 @@ export const iconNames = [
   "zenmux",
   "zenmux",
   "zai",
   "zai",
   "zai-coding-plan",
   "zai-coding-plan",
+  "xiaomi",
   "xai",
   "xai",
   "wandb",
   "wandb",
   "vultr",
   "vultr",
@@ -17,6 +18,7 @@ export const iconNames = [
   "synthetic",
   "synthetic",
   "submodel",
   "submodel",
   "siliconflow",
   "siliconflow",
+  "siliconflow-cn",
   "scaleway",
   "scaleway",
   "sap-ai-core",
   "sap-ai-core",
   "requesty",
   "requesty",

Some files were not shown because too many files changed in this diff