Merge branch 'main' into feat/proxy-url-refactor-full-url-mode

This commit is contained in:
YoVinchen
2026-03-10 14:00:47 +08:00
19 changed files with 157 additions and 8 deletions

1
.gitignore vendored
View File

@@ -24,3 +24,4 @@ flatpak/cc-switch.deb
flatpak-build/
flatpak-repo/
.worktrees/
.spec-workflow/

View File

@@ -33,6 +33,7 @@ Presets are pre-configured provider templates that only require an API Key to us
| Bailian | Alibaba Cloud Bailian (Qwen) |
| Kimi | Moonshot Kimi model |
| Kimi For Coding | Kimi coding-specific model |
| StepFun | StepFun model |
| ModelScope | ModelScope community |
| KAT-Coder | KAT-Coder model |
| Longcat | Longcat AI |
@@ -92,6 +93,7 @@ Presets are pre-configured provider templates that only require an API Key to us
| Bailian | Alibaba Cloud Bailian |
| Kimi k2.5 | Moonshot Kimi-k2.5 model |
| Kimi For Coding | Kimi coding-specific model |
| StepFun | StepFun model |
| ModelScope | ModelScope community |
| KAT-Coder | KAT-Coder model |
| Longcat | Longcat AI |
@@ -124,6 +126,7 @@ Presets are pre-configured provider templates that only require an API Key to us
| Qwen Coder | Qwen coding model |
| Kimi k2.5 | Moonshot Kimi-k2.5 model |
| Kimi For Coding | Kimi coding-specific model |
| StepFun | StepFun model |
| MiniMax | MiniMax model |
| MiniMax en | MiniMax (English version) |
| KAT-Coder | KAT-Coder model |

View File

@@ -238,10 +238,14 @@ CC Switch includes preset official prices for common models (per million tokens)
| gemini-2.5-pro | $1.25 | $10 | $0.125 |
| gemini-2.5-flash | $0.30 | $2.50 | $0.03 |
**Chinese Provider Models (CNY)**:
**Chinese Provider Models**:
> Note: Currency follows each provider's official pricing page. StepFun is currently listed in USD.
| Model | Input | Output | Cache Read |
|-------|-------|--------|------------|
| **StepFun** | | | |
| step-3.5-flash | $0.10 | $0.30 | $0.02 |
| **DeepSeek** | | | |
| deepseek-v3.2 | ¥2.00 | ¥3.00 | ¥0.40 |
| deepseek-v3.1 | ¥4.00 | ¥12.00 | ¥0.80 |

View File

@@ -33,6 +33,7 @@
| 百炼 | アリクラウド百炼(通义千問) |
| Kimi | Moonshot Kimi モデル |
| Kimi For Coding | Kimi プログラミング専用モデル |
| StepFun | StepFun モデル |
| ModelScope | 魔搭コミュニティ |
| KAT-Coder | KAT-Coder モデル |
| Longcat | Longcat AI |
@@ -92,6 +93,7 @@
| 百炼 | アリクラウド百炼 |
| Kimi k2.5 | Moonshot Kimi-k2.5 モデル |
| Kimi For Coding | Kimi プログラミング専用モデル |
| StepFun | StepFun モデル |
| ModelScope | 魔搭コミュニティ |
| KAT-Coder | KAT-Coder モデル |
| Longcat | Longcat AI |
@@ -124,6 +126,7 @@
| Qwen Coder | 通义千問コーディングモデル |
| Kimi k2.5 | Moonshot Kimi-k2.5 モデル |
| Kimi For Coding | Kimi プログラミング専用モデル |
| StepFun | StepFun モデル |
| MiniMax | MiniMax モデル |
| MiniMax en | MiniMax英語版 |
| KAT-Coder | KAT-Coder モデル |

View File

@@ -238,10 +238,14 @@ CC Switch は一般的なモデルの公式価格100 万 Token あたり)
| gemini-2.5-pro | $1.25 | $10 | $0.125 |
| gemini-2.5-flash | $0.30 | $2.50 | $0.03 |
**中国メーカーのモデル(人民元)**
**中国メーカーのモデル**
> 注: 通貨は各プロバイダーの公式料金ページに従います。StepFun は現在 USD 表記です。
| モデル | 入力 | 出力 | キャッシュ読取 |
|------|------|------|----------|
| **StepFun** | | | |
| step-3.5-flash | $0.10 | $0.30 | $0.02 |
| **DeepSeek** | | | |
| deepseek-v3.2 | ¥2.00 | ¥3.00 | ¥0.40 |
| deepseek-v3.1 | ¥4.00 | ¥12.00 | ¥0.80 |

View File

@@ -33,6 +33,7 @@
| 百炼 | 阿里云百炼(通义千问) |
| Kimi | Moonshot Kimi 模型 |
| Kimi For Coding | Kimi 编程专用模型 |
| StepFun | 阶跃星辰 Step模型 |
| ModelScope | 魔搭社区 |
| KAT-Coder | KAT-Coder 模型 |
| Longcat | Longcat AI |
@@ -92,6 +93,7 @@
| 百炼 | 阿里云百炼 |
| Kimi k2.5 | Moonshot Kimi-k2.5 模型 |
| Kimi For Coding | Kimi 编程专用模型 |
| StepFun | 阶跃星辰 Step模型 |
| ModelScope | 魔搭社区 |
| KAT-Coder | KAT-Coder 模型 |
| Longcat | Longcat AI |
@@ -124,6 +126,7 @@
| Qwen Coder | 通义千问编码模型 |
| Kimi k2.5 | Moonshot Kimi-k2.5 模型 |
| Kimi For Coding | Kimi 编程专用模型 |
| StepFun | 阶跃星辰 Step模型 |
| MiniMax | MiniMax 模型 |
| MiniMax en | MiniMax英文版 |
| KAT-Coder | KAT-Coder 模型 |
@@ -352,4 +355,3 @@ CC Switch 支持两种方式导入供应商配置:
- 🔴 红色:延迟 > 1000ms较慢
![image-20260108005327817](../../assets/image-20260108005327817.png)

View File

@@ -238,10 +238,14 @@ CC Switch 预设了常用模型的官方价格(每百万 Token
| gemini-2.5-pro | $1.25 | $10 | $0.125 |
| gemini-2.5-flash | $0.30 | $2.50 | $0.03 |
**中国厂商模型(人民币)**
**中国厂商模型**
> 币种遵循各供应商官方定价页面。StepFun 当前按美元列出。
| 模型 | 输入 | 输出 | 缓存读取 |
|------|------|------|----------|
| **StepFun** | | | |
| step-3.5-flash | $0.10 | $0.30 | $0.02 |
| **DeepSeek** | | | |
| deepseek-v3.2 | ¥2.00 | ¥3.00 | ¥0.40 |
| deepseek-v3.1 | ¥4.00 | ¥12.00 | ¥0.80 |

View File

@@ -6,7 +6,7 @@ const ICONS_TO_EXTRACT = {
// AI 服务商(必需)
aiProviders: [
'openai', 'anthropic', 'claude', 'google', 'gemini',
'deepseek', 'kimi', 'moonshot', 'zhipu', 'minimax',
'deepseek', 'kimi', 'moonshot', 'stepfun', 'zhipu', 'minimax',
'baidu', 'alibaba', 'tencent', 'meta', 'microsoft',
'cohere', 'perplexity', 'mistral', 'huggingface'
],
@@ -60,6 +60,9 @@ ALL_ICONS.forEach(iconName => {
fs.copyFileSync(sourceFile, targetFile);
console.log(`${iconName}.svg`);
extracted++;
} else if (fs.existsSync(targetFile)) {
console.log(`${iconName}.svg (kept local custom icon)`);
extracted++;
} else {
console.log(`${iconName}.svg (not found)`);
notFound.push(iconName);
@@ -110,6 +113,7 @@ export const iconMetadata: Record<string, IconMetadata> = {
deepseek: { name: 'deepseek', displayName: 'DeepSeek', category: 'ai-provider', keywords: ['deep', 'seek'], defaultColor: '#1E88E5' },
moonshot: { name: 'moonshot', displayName: 'Moonshot', category: 'ai-provider', keywords: ['kimi', 'moonshot'], defaultColor: '#6366F1' },
kimi: { name: 'kimi', displayName: 'Kimi', category: 'ai-provider', keywords: ['moonshot'], defaultColor: '#6366F1' },
stepfun: { name: 'stepfun', displayName: 'StepFun', category: 'ai-provider', keywords: ['stepfun', 'step', 'jieyue', '阶跃星辰'], defaultColor: '#005AFF' },
zhipu: { name: 'zhipu', displayName: 'Zhipu AI', category: 'ai-provider', keywords: ['chatglm', 'glm'], defaultColor: '#0F62FE' },
minimax: { name: 'minimax', displayName: 'MiniMax', category: 'ai-provider', keywords: ['minimax'], defaultColor: '#FF6B6B' },
baidu: { name: 'baidu', displayName: 'Baidu', category: 'ai-provider', keywords: ['ernie', 'wenxin'], defaultColor: '#2932E1' },

View File

@@ -10,7 +10,7 @@ const KEEP_LIST = [
'openai', 'anthropic', 'claude', 'google', 'gemini', 'gemma', 'palm',
'microsoft', 'azure', 'copilot', 'meta', 'llama',
'alibaba', 'qwen', 'tencent', 'hunyuan', 'baidu', 'wenxin',
'bytedance', 'doubao', 'deepseek', 'moonshot', 'kimi',
'bytedance', 'doubao', 'deepseek', 'moonshot', 'kimi', 'stepfun',
'zhipu', 'chatglm', 'glm', 'minimax', 'mistral', 'cohere',
'perplexity', 'huggingface', 'midjourney', 'stability',
'xai', 'grok', 'yi', 'zeroone', 'ollama',

View File

@@ -15,6 +15,7 @@ const KNOWN_METADATA = {
deepseek: { name: 'deepseek', displayName: 'DeepSeek', category: 'ai-provider', keywords: ['deep', 'seek'], defaultColor: '#1E88E5' },
moonshot: { name: 'moonshot', displayName: 'Moonshot', category: 'ai-provider', keywords: ['kimi', 'moonshot'], defaultColor: '#6366F1' },
kimi: { name: 'kimi', displayName: 'Kimi', category: 'ai-provider', keywords: ['moonshot'], defaultColor: '#6366F1' },
stepfun: { name: 'stepfun', displayName: 'StepFun', category: 'ai-provider', keywords: ['stepfun', 'step', 'jieyue', '阶跃星辰'], defaultColor: '#005AFF' },
zhipu: { name: 'zhipu', displayName: 'Zhipu AI', category: 'ai-provider', keywords: ['chatglm', 'glm'], defaultColor: '#0F62FE' },
minimax: { name: 'minimax', displayName: 'MiniMax', category: 'ai-provider', keywords: ['minimax'], defaultColor: '#FF6B6B' },
baidu: { name: 'baidu', displayName: 'Baidu', category: 'ai-provider', keywords: ['ernie', 'wenxin'], defaultColor: '#2932E1' },

View File

@@ -1241,6 +1241,15 @@ impl Database {
"0.03",
"0",
),
// StepFun 系列
(
"step-3.5-flash",
"Step 3.5 Flash",
"0.10",
"0.30",
"0.02",
"0",
),
// ====== 国产模型 (CNY/1M tokens) ======
// Doubao (字节跳动)
(

View File

@@ -996,10 +996,10 @@ function App() {
)}
<div
ref={toolbarRef}
className="flex flex-1 min-w-0 overflow-x-hidden justify-end items-center"
className="flex flex-1 min-w-0 overflow-x-hidden items-center"
>
<div
className="flex shrink-0 items-center gap-1.5"
className="flex shrink-0 items-center gap-1.5 ml-auto"
style={{ WebkitAppRegion: "no-drag" } as any}
>
{currentView === "prompts" && (

View File

@@ -178,6 +178,26 @@ export const providerPresets: ProviderPreset[] = [
icon: "kimi",
iconColor: "#6366F1",
},
{
name: "StepFun",
websiteUrl: "https://platform.stepfun.ai",
apiKeyUrl: "https://platform.stepfun.ai/interface-key",
settingsConfig: {
env: {
ANTHROPIC_BASE_URL: "https://api.stepfun.ai/v1",
ANTHROPIC_AUTH_TOKEN: "",
ANTHROPIC_MODEL: "step-3.5-flash",
ANTHROPIC_DEFAULT_HAIKU_MODEL: "step-3.5-flash",
ANTHROPIC_DEFAULT_SONNET_MODEL: "step-3.5-flash",
ANTHROPIC_DEFAULT_OPUS_MODEL: "step-3.5-flash",
},
},
category: "cn_official",
endpointCandidates: ["https://api.stepfun.ai/v1"],
apiFormat: "openai_chat",
icon: "stepfun",
iconColor: "#005AFF",
},
{
name: "ModelScope",
websiteUrl: "https://modelscope.cn",

View File

@@ -15,6 +15,8 @@ const iconMappings = {
aliyun: { icon: "alibaba", iconColor: "#FF6A00" },
kimi: { icon: "kimi", iconColor: "#6366F1" },
moonshot: { icon: "moonshot", iconColor: "#6366F1" },
stepfun: { icon: "stepfun", iconColor: "#005AFF" },
step: { icon: "stepfun", iconColor: "#005AFF" },
baidu: { icon: "baidu", iconColor: "#2932E1" },
tencent: { icon: "tencent", iconColor: "#00A4FF" },
hunyuan: { icon: "hunyuan", iconColor: "#00A4FF" },

View File

@@ -292,6 +292,43 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
modelCatalog: { "kimi-coding/kimi-for-coding": { alias: "Kimi" } },
},
},
{
name: "StepFun",
websiteUrl: "https://platform.stepfun.ai",
apiKeyUrl: "https://platform.stepfun.ai/interface-key",
settingsConfig: {
baseUrl: "https://api.stepfun.ai/v1",
apiKey: "",
api: "openai-completions",
models: [
{
id: "step-3.5-flash",
name: "Step 3.5 Flash",
contextWindow: 262144,
},
],
},
category: "cn_official",
icon: "stepfun",
iconColor: "#005AFF",
templateValues: {
baseUrl: {
label: "Base URL",
placeholder: "https://api.stepfun.ai/v1",
defaultValue: "https://api.stepfun.ai/v1",
editorValue: "",
},
apiKey: {
label: "API Key",
placeholder: "step-...",
editorValue: "",
},
},
suggestedDefaults: {
model: { primary: "stepfun/step-3.5-flash" },
modelCatalog: { "stepfun/step-3.5-flash": { alias: "StepFun" } },
},
},
{
name: "MiniMax",
websiteUrl: "https://platform.minimaxi.com",

View File

@@ -61,6 +61,11 @@ export const OPENCODE_PRESET_MODEL_VARIANTS: Record<
outputLimit: 262144,
modalities: { input: ["text", "image", "video"], output: ["text"] },
},
{
id: "step-3.5-flash",
name: "Step 3.5 Flash",
contextLimit: 262144,
},
],
"@ai-sdk/google": [
{
@@ -469,6 +474,38 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
},
{
name: "StepFun",
websiteUrl: "https://platform.stepfun.ai",
apiKeyUrl: "https://platform.stepfun.ai/interface-key",
settingsConfig: {
npm: "@ai-sdk/openai-compatible",
name: "StepFun",
options: {
baseURL: "https://api.stepfun.ai/v1",
apiKey: "",
},
models: {
"step-3.5-flash": { name: "Step 3.5 Flash" },
},
},
category: "cn_official",
icon: "stepfun",
iconColor: "#005AFF",
templateValues: {
baseURL: {
label: "Base URL",
placeholder: "https://api.stepfun.ai/v1",
defaultValue: "https://api.stepfun.ai/v1",
editorValue: "",
},
apiKey: {
label: "API Key",
placeholder: "step-...",
editorValue: "",
},
},
},
{
name: "ModelScope",
websiteUrl: "https://modelscope.cn",

View File

@@ -64,6 +64,7 @@ export const icons: Record<string, string> = {
micu: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" style="flex:none;line-height:1" viewBox="0 0 241.39 240.6"><title>Micu</title><defs><style>.mc-1{fill:#068cde}.mc-2{fill:#fff}.mc-3{fill:#02a6ff}</style></defs><g><path class="mc-1" d="M226.14,157.63c-3.62,0-7.24,0-10.95,0v-24.96c5.2,0,10.17,0,15.13,0,5.55-.01,8.52-4.01,10.18-8.16,1.34-3.37,1.36-7.51-1.34-11.1-3.16-4.2-7.23-5.72-12.25-5.63-3.87.07-7.74.01-11.66.01v-24.79c6.56-.43,12.93.45,19.3-1.13.4-.42.85-1.05,1.44-1.49,4.61-3.47,6.48-9.22,4.67-14.51-1.63-4.76-6.67-8.03-12.22-7.99-4.37.03-8.74,0-13.42,0,0-5.79.1-11.16-.04-16.54-.08-3.23-1.09-6.23-3.22-8.79-7.6-9.17-17.84-6.02-28.13-6.29-.39-.23-.63-1.14-.45-2.35.73-4.72.37-9.44-.24-14.13-.51-3.95-5.79-9.24-9.1-9.56-10.42-1-15.88,5.21-15.83,14.89.02,3.54,0,7.08,0,10.92h-24.44c-.76-1.03-.45-2.13-.42-3.19.15-5.2.71-10.35-1.11-15.5-2.15-6.08-11.68-9.27-17.05-5.79-5.27,3.41-7.22,7.95-6.99,13.99.14,3.56.53,7.22-.44,10.6h-23.98c-.22-.38-.37-.51-.37-.66-.05-4.56,0-9.12-.14-13.68-.15-5.18-4.72-10.76-9.31-11.57-8.81-1.55-15.64,4.23-15.64,13.24,0,4.11,0,8.21,0,12.61-4.92,0-9.32.08-13.72-.02-10.41-.22-18.81,7.79-17.84,18.57.39,4.32.06,8.7.06,13.34-5.17,0-9.9-.05-14.63.01-5.36.07-11.08,5.57-11.83,10.1-1.39,8.44,6.23,15.25,14.55,14.78,3.86-.22,7.74-.04,11.75-.04v24.92c-4.45,0-8.67-.07-12.89.02-3.2.07-6.5.62-8.75,2.93-3.6,3.69-6.1,8.11-4.12,13.5,2.13,5.8,6.42,8.43,12.98,8.43,4.21,0,8.42,0,12.83,0v24.95c-3.48,0-6.79-.12-10.08.03-3.74.18-7.43.36-10.78,2.69-4.11,2.87-6.48,8.21-5.32,12.83,1.1,4.36,7.17,9.83,11.59,9.41,4.82-.46,9.72-.1,14.69-.1,0,5.18.51,9.88-.1,14.44-1.36,10,8.64,18.06,17.22,17.5,4.62-.3,9.28-.05,14.15-.05,1.26,9.11-3.28,19.95,9.5,25.9,10.27,1.43,15.74-3.33,15.75-15.14,0-3.45,0-6.9,0-10.55h24.94c0,3.39,0,6.6,0,9.8,0,3.81.26,7.41,2.73,10.76,3.09,4.2,8.64,6.68,14,4.87,3.62-1.22,8.31-5.43,8.3-10.7,0-4.85,0-9.7,0-14.7h24.92c0,3.98-.14,7.7.03,11.41.22,4.83,1.4,9.35,5.68,12.32,5.16,3.59,12.81,2.96,17.28-2.41,3.93-7.43,2.05-14.57,2.39-21.58,5.71,0,11.1.03,16.49-.02,1.98-.02,4.05-.06,5.8-1.09,6.78-3.99,9.8-9.94,9.36-17.81-.23-4.18-.04-8.39-.04-12.56,8.59-1.68,18.23,2.96,24.73-6.3.08-.31.31-1.1.5-1.9.97-4.19,1.82-8.06-1.59-12.01-3.49-4.05-7.66-5.05-12.52-5.04ZM168.3,160.54c0,3.41-1.48,4.58-4.69,4.49-4.41-.12-8.82-.09-13.23-.05-3.15.03-4.43-1.39-4.41-4.56.06-16.85.02-33.69-.03-50.54,0-.99.44-2.13-.73-3.15-4.49,13.97-8.94,27.8-13.44,41.79h-21.8c-4.39-13.78-8.8-27.62-13.55-42.54-.15,1.94-.29,2.89-.29,3.84-.01,16.68-.08,33.36.04,50.04.03,3.7-1.18,5.38-5.05,5.16-5.51-.31-11.08.38-16.22-.44-1.24-1.59-1.21-2.95-1.21-4.26.07-27.3.18-54.6.22-81.9,0-2.16.89-3.46,2.97-3.48,9.9-.06,19.8,0,29.7.05.31,0,.63.19,1.39.44,4.22,14.29,8.51,28.79,12.8,43.3.29.05.58.1.87.15,4.53-14.59,9.07-29.17,13.66-43.95,10.35,0,20.48-.03,30.62.03,1.76.01,2.38,1.37,2.42,2.92.08,2.57.1,5.14.1,7.71-.06,24.98-.16,49.95-.15,74.93Z"/><rect class="mc-3" x="48.86" y="48.46" width="143.67" height="143.67" rx="10.57" ry="10.57"/><path class="mc-2" d="M165.55,75.28c-10.14-.06-20.27-.03-30.62-.03-4.59,14.78-9.12,29.36-13.66,43.95-.29-.05-.58-.1-.87-.15-4.29-14.51-8.58-29.01-12.8-43.3-.77-.25-1.08-.44-1.39-.44-9.9-.04-19.8-.1-29.7-.05-2.08.01-2.96,1.32-2.97,3.48-.04,27.3-.15,54.6-.22,81.9,0,1.31-.03,2.67,1.21,4.26,5.13.82,10.7.13,16.22.44,3.87.22,5.07-1.46,5.05-5.16-.12-16.68-.06-33.36-.04-50.04,0-.95.14-1.9.29-3.84,4.75,14.91,9.16,28.76,13.55,42.54h21.8c4.5-13.99,8.94-27.82,13.44-41.79,1.18,1.01.73,2.16.73,3.15.04,16.85.09,33.69.03,50.54-.01,3.17,1.26,4.59,4.41,4.56,4.41-.04,8.82-.07,13.23.05,3.21.09,4.69-1.08,4.69-4.49-.01-24.98.09-49.95.15-74.93,0-2.57-.02-5.14-.1-7.71-.05-1.55-.67-2.91-2.42-2.92Z"/></g></svg>`,
ucloud: `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="1em" width="1em" style="flex:none;line-height:1" viewBox="0 0 172.11 172.11"><title>UCloud</title><defs><style>.cls-1{fill:url(#uc-g56)}.cls-2{fill:url(#uc-g37)}.cls-3{fill:url(#uc-g37-2)}.cls-4{fill:url(#uc-g37-3)}.cls-5{fill:url(#uc-g37-4)}.cls-6{fill:url(#uc-g37-5)}.cls-7{fill:url(#uc-g37-6)}.cls-8{fill:url(#uc-g37-7)}.cls-9{fill:#fff}.cls-10{fill:url(#uc-g38)}</style><linearGradient id="uc-g56" x1="86.06" y1="-6.73" x2="86.06" y2="185.53" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#32303a"/><stop offset=".36" stop-color="#34323d"/><stop offset=".62" stop-color="#3a3946"/><stop offset=".85" stop-color="#444556"/><stop offset="1" stop-color="#4e5065"/></linearGradient><linearGradient id="uc-g37" x1="143.96" y1="73.06" x2="71.52" y2="34.1" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#4043ff"/><stop offset="1" stop-color="#f0f5fa"/></linearGradient><linearGradient id="uc-g37-2" x1="104.88" y1="118.84" x2="71.68" y2="66.44" xlink:href="#uc-g37"/><linearGradient id="uc-g37-3" x1="95.68" y1="72.87" x2="33.68" y2="76.43" xlink:href="#uc-g37"/><linearGradient id="uc-g37-4" x1="70" y1="130.18" x2="46.68" y2="73.38" xlink:href="#uc-g37"/><linearGradient id="uc-g37-5" x1="107.49" y1="106.07" x2="147.27" y2="159.57" xlink:href="#uc-g37"/><linearGradient id="uc-g37-6" x1="106.69" y1="50.6" x2="142.65" y2="131.51" xlink:href="#uc-g37"/><linearGradient id="uc-g37-7" x1="111.35" y1="152.42" x2="82.55" y2="89.87" xlink:href="#uc-g37"/><linearGradient id="uc-g38" x1="64.73" y1="89.4" x2="83.39" y2="89.4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#5b5dfe"/><stop offset=".18" stop-color="#5b5dfe" stop-opacity=".99"/><stop offset=".31" stop-color="#5b5dfe" stop-opacity=".95"/><stop offset=".43" stop-color="#5b5cfe" stop-opacity=".89"/><stop offset=".54" stop-color="#5b5cfe" stop-opacity=".8"/><stop offset=".64" stop-color="#5b5bfe" stop-opacity=".68"/><stop offset=".74" stop-color="#5b5afe" stop-opacity=".54"/><stop offset=".83" stop-color="#5a59ff" stop-opacity=".38"/><stop offset=".92" stop-color="#5a58ff" stop-opacity=".19"/><stop offset="1" stop-color="#5a57ff" stop-opacity="0"/></linearGradient></defs><rect class="cls-1" width="172.11" height="172.11" rx="46.24"/><polygon class="cls-2" points="124.1 51.65 104.14 63.16 104.08 63.12 84.2 51.65 104.08 40.17 104.14 40.14 124.1 51.65"/><path class="cls-3" d="M111.61,90.51l-.1-.06-2.92-1.69a8.9,8.9,0,0,1-4.46-7.69l0-17.95L84.2,51.65l-.12.07V69.59a8.91,8.91,0,0,1-4.45,7.71L64.26,86.17v23l12.4-7.15,3.09-1.78a8.92,8.92,0,0,1,8.91,0l15.42,8.91.06,0,19.93-11.49h0Z"/><path class="cls-4" d="M84.08,66v3.55a8.91,8.91,0,0,1-4.45,7.71L64.26,86.17,44.32,74.68v0L64.26,63.17l12.41,7.15A4.94,4.94,0,0,0,84.08,66Z"/><polygon class="cls-5" points="64.26 86.17 64.26 109.2 44.32 97.7 44.32 74.68 64.26 86.17"/><polygon class="cls-6" points="124.1 97.7 124.1 120.72 124.08 120.72 104.14 132.23 104.08 132.21 104.08 109.25 104.14 109.2 124.08 97.7 124.1 97.7"/><path class="cls-7" d="M124.1,51.65v23h0l-12.48,7.21c-3.28,1.89-3,6.87-3,6.87a8.9,8.9,0,0,1-4.46-7.69l0-17.89.06,0Z"/><path class="cls-8" d="M104.08,109.18v23L84.2,120.72l-.12-.07V106.33a4.94,4.94,0,0,0-7.41-4.28l3-1.72a8.89,8.89,0,0,1,8.87,0Z"/><path class="cls-9" d="M85.28,81.09V91.24a2.56,2.56,0,0,0,3.85,2.22l8.81-5.09a2.56,2.56,0,0,0,0-4.44l-8.82-5.06A2.56,2.56,0,0,0,85.28,81.09Z"/><path class="cls-10" d="M84.08,69.59a8.91,8.91,0,0,1-4.45,7.71L64.26,86.17v23l12.4-7.15,3.09-1.78a8.82,8.82,0,0,1,4.33-1.19Z"/></svg>`,
sssaicode: `<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" style="flex:none;line-height:1" viewBox="0 0 512 512"><title>SSAI Code</title><defs><linearGradient id="ssc-gradLeft" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#0ff5ce" /><stop offset="100%" stop-color="#147a8a" /></linearGradient><linearGradient id="ssc-gradRight" x1="100%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#d0e4f5" /><stop offset="100%" stop-color="#6a9ec4" /></linearGradient><linearGradient id="ssc-gradTop" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="0%" stop-color="#a0d8e8" /><stop offset="100%" stop-color="#4aafbf" /></linearGradient><linearGradient id="ssc-gradText" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#0ff5ce" /><stop offset="35%" stop-color="#4abfcf" /><stop offset="65%" stop-color="#7badd4" /><stop offset="100%" stop-color="#c0daf0" /></linearGradient><linearGradient id="ssc-gradS" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#f0f8ff" /><stop offset="100%" stop-color="#6cbfcf" /></linearGradient><filter id="ssc-glow" x="-30%" y="-30%" width="160%" height="160%"><feGaussianBlur stdDeviation="4" result="blur" /><feMerge><feMergeNode in="blur" /><feMergeNode in="SourceGraphic" /></feMerge></filter><pattern id="ssc-binL" x="0" y="0" width="55" height="16" patternUnits="userSpaceOnUse" patternTransform="rotate(-3)"><text x="0" y="11" font-family="monospace" font-size="8" fill="rgba(0,255,210,0.25)">1001 1101</text></pattern><pattern id="ssc-binR" x="0" y="0" width="55" height="16" patternUnits="userSpaceOnUse" patternTransform="rotate(3)"><text x="0" y="11" font-family="monospace" font-size="8" fill="rgba(180,210,240,0.25)">0110 1011</text></pattern><pattern id="ssc-binT" x="0" y="0" width="50" height="16" patternUnits="userSpaceOnUse"><text x="2" y="11" font-family="monospace" font-size="8" fill="rgba(120,200,220,0.2)">10 110</text></pattern></defs><rect width="512" height="512" rx="72" fill="#08080e" /><polygon points="90,350 250,350 170,228" fill="url(#ssc-gradLeft)" opacity="0.8" /><polygon points="90,350 250,350 170,228" fill="url(#ssc-binL)" /><polygon points="262,350 422,350 342,228" fill="url(#ssc-gradRight)" opacity="0.8" /><polygon points="262,350 422,350 342,228" fill="url(#ssc-binR)" /><polygon points="176,290 336,290 256,168" fill="none" stroke="url(#ssc-gradTop)" stroke-width="2.5" opacity="0.85" /><polygon points="192,280 320,280 256,184" fill="none" stroke="url(#ssc-gradTop)" stroke-width="0.8" opacity="0.35" /><text x="256" y="316" text-anchor="middle" font-family="Georgia, 'Times New Roman', serif" font-size="120" font-weight="bold" fill="url(#ssc-gradS)" filter="url(#ssc-glow)">S</text><text x="256" y="425" text-anchor="middle" font-family="'Helvetica Neue', 'Segoe UI', Arial, sans-serif" font-size="40" font-weight="300" letter-spacing="5" fill="url(#ssc-gradText)">SSSAiCode</text></svg>`,
stepfun: `<svg width="1em" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><title>StepFun</title><g clip-path="url(#clip0_10683_3111)"><path d="M23.2964 14.7395H17.4448V23.2981H12.9565V13.2307H23.2964V14.7395ZM20.355 8.24341H10.4683V20.1165H0.63916V15.76H5.94385L5.94678 3.90942H20.355V8.24341ZM4.02002 12.5881H2.48779V2.51685H4.02002V12.5881ZM22.4272 1.60962H23.3394V2.51587H22.4272V4.32544H21.519V2.51587H19.6997V1.60962H21.519V0.702393H22.4272V1.60962Z" fill="#005AFF"/></g><defs><clipPath id="clip0_10683_3111"><rect width="24" height="24" fill="white"/></clipPath></defs></svg>`,
catcoder: `<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>KwaiKAT</title><path d="M20.42 19.311h3.418V1l-6.781 4.177-6.778-4.111.026 7.868h3.418l-.026-2.222 3.42 2.035 3.303-2.035v12.6z"></path><path d="M3.064 10.734c2.784-2.07 6.942-2.394 9.941.907l.01.01.01.013 9.16 12.24h-3.84l-7.69-10.217c-1.63-1.737-3.891-1.689-5.515-.638-1.624 1.05-2.563 3.073-1.548 5.28 1.494 3.246 6.152 3.275 7.725.108l.032-.064 2.02 2.629c-2.98 3.968-9.329 3.926-12.165-.552-2.395-3.78-.926-7.645 1.86-9.716z"></path></svg>`,
mcp: `<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>ModelContextProtocol</title><path d="M15.688 2.343a2.588 2.588 0 00-3.61 0l-9.626 9.44a.863.863 0 01-1.203 0 .823.823 0 010-1.18l9.626-9.44a4.313 4.313 0 016.016 0 4.116 4.116 0 011.204 3.54 4.3 4.3 0 013.609 1.18l.05.05a4.115 4.115 0 010 5.9l-8.706 8.537a.274.274 0 000 .393l1.788 1.754a.823.823 0 010 1.18.863.863 0 01-1.203 0l-1.788-1.753a1.92 1.92 0 010-2.754l8.706-8.538a2.47 2.47 0 000-3.54l-.05-.049a2.588 2.588 0 00-3.607-.003l-7.172 7.034-.002.002-.098.097a.863.863 0 01-1.204 0 .823.823 0 010-1.18l7.273-7.133a2.47 2.47 0 00-.003-3.537z"></path><path d="M14.485 4.703a.823.823 0 000-1.18.863.863 0 00-1.204 0l-7.119 6.982a4.115 4.115 0 000 5.9 4.314 4.314 0 006.016 0l7.12-6.982a.823.823 0 000-1.18.863.863 0 00-1.204 0l-7.119 6.982a2.588 2.588 0 01-3.61 0 2.47 2.47 0 010-3.54l7.12-6.982z"></path></svg>`,
novita: `<svg width="1em" height="1em" style="flex:none;line-height:1" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><title>Novita</title><g clip-path="url(#clip0_3135_1230)"><path d="M15.5564 8.26172V16.5239L2.1875 29.8928H15.5564V21.6302L23.8194 29.8928H37.1875L15.5564 8.26172Z" fill="#000000"/></g><defs><clipPath id="clip0_3135_1230"><rect width="35" height="21.6311" fill="white" transform="translate(2.1875 8.26172)"/></clipPath></defs></svg>`,

View File

@@ -387,6 +387,13 @@ export const iconMetadata: Record<string, IconMetadata> = {
keywords: ["nvidia", "nim", "gpu"],
defaultColor: "#74B71B",
},
stepfun: {
name: "stepfun",
displayName: "StepFun",
category: "ai-provider",
keywords: ["stepfun", "step", "jieyue", "阶跃星辰"],
defaultColor: "#005AFF",
},
};
export function getIconMetadata(name: string): IconMetadata | undefined {

View File

@@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_10683_3111)">
<path d="M23.2964 14.7395H17.4448V23.2981H12.9565V13.2307H23.2964V14.7395ZM20.355 8.24341H10.4683V20.1165H0.63916V15.76H5.94385L5.94678 3.90942H20.355V8.24341ZM4.02002 12.5881H2.48779V2.51685H4.02002V12.5881ZM22.4272 1.60962H23.3394V2.51587H22.4272V4.32544H21.519V2.51587H19.6997V1.60962H21.519V0.702393H22.4272V1.60962Z" fill="#005AFF"/>
</g>
<defs>
<clipPath id="clip0_10683_3111">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 590 B