Files
CC-Switch/src/icons/extracted/metadata.ts
T
Jason 332a3c16a8 feat(presets): add Amux provider preset for 6 apps
Non-partner aggregator across Claude Code, Claude Desktop, Codex,
OpenCode, OpenClaw, and Hermes. Claude Code uses bare host
api.amux.ai; Codex uses /v1 native Responses; the other three apps
default to gpt-5.5. No Gemini preset. Registers the amux inline icon
(currentColor) in the icon index and metadata.
2026-07-01 22:27:10 +08:00

684 lines
15 KiB
TypeScript

// Icon metadata for search and categorization
import { IconMetadata } from "@/types/icon";
export const iconMetadata: Record<string, IconMetadata> = {
aigocode: {
name: "aigocode",
displayName: "AIGoCode",
category: "ai-provider",
keywords: ["aigocode", "aigo", "code", "third-party"],
defaultColor: "#5B7FFF",
},
apikeyfun: {
name: "apikeyfun",
displayName: "APIKEY.FUN",
category: "ai-provider",
keywords: [
"apikeyfun",
"api key",
"gateway",
"relay",
"claude",
"codex",
"gemini",
],
defaultColor: "#9C3F00",
},
apinebula: {
name: "apinebula",
displayName: "APINebula",
category: "ai-provider",
keywords: [
"apinebula",
"api nebula",
"gateway",
"relay",
"claude",
"codex",
"gemini",
],
defaultColor: "#C86F49",
},
atlascloud: {
name: "atlascloud",
displayName: "AtlasCloud",
category: "ai-provider",
keywords: [
"atlascloud",
"atlas cloud",
"coding plan",
"openai",
"anthropic",
"codex",
"claude",
],
defaultColor: "#111111",
},
sudocode: {
name: "sudocode",
displayName: "SudoCode",
category: "ai-provider",
keywords: [
"sudocode",
"sudo code",
"gateway",
"relay",
"claude",
"codex",
"gemini",
"openclaw",
],
defaultColor: "#111111",
},
alibaba: {
name: "alibaba",
displayName: "Alibaba",
category: "ai-provider",
keywords: ["qwen", "tongyi"],
defaultColor: "#FF6A00",
},
amux: {
name: "amux",
displayName: "Amux",
category: "ai-provider",
keywords: ["amux", "amuxapi", "aggregator", "relay", "gateway", "gpt"],
defaultColor: "#000000",
},
anthropic: {
name: "anthropic",
displayName: "Anthropic",
category: "ai-provider",
keywords: ["claude"],
defaultColor: "#D4915D",
},
aws: {
name: "aws",
displayName: "AWS",
category: "cloud",
keywords: ["amazon", "cloud"],
defaultColor: "#FF9900",
},
azure: {
name: "azure",
displayName: "Azure",
category: "cloud",
keywords: ["microsoft", "cloud"],
defaultColor: "#0078D4",
},
baidu: {
name: "baidu",
displayName: "Baidu",
category: "ai-provider",
keywords: ["ernie", "wenxin"],
defaultColor: "#2932E1",
},
bailian: {
name: "bailian",
displayName: "Bailian",
category: "ai-provider",
keywords: ["bailian", "dashscope", "aliyun", "alibaba"],
defaultColor: "#624AFF",
},
bytedance: {
name: "bytedance",
displayName: "bytedance",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
huoshan: {
name: "huoshan",
displayName: "火山方舟",
category: "ai-provider",
keywords: ["huoshan", "volcengine", "ark", "agentplan", "byteplus"],
defaultColor: "#3370FF",
},
byteplus: {
name: "byteplus",
displayName: "BytePlus",
category: "ai-provider",
keywords: ["byteplus", "volcengine", "ark", "modelark"],
defaultColor: "#3370FF",
},
ccsub: {
name: "ccsub",
displayName: "CCSub",
category: "ai-provider",
keywords: ["ccsub", "aggregator", "relay", "claude", "codex", "gateway"],
defaultColor: "#1E88E5",
},
subrouter: {
name: "subrouter",
displayName: "SubRouter",
category: "ai-provider",
keywords: [
"subrouter",
"subrouter.ai",
"aggregator",
"relay",
"claude",
"codex",
"gemini",
"gateway",
],
defaultColor: "#0D9488",
},
chatglm: {
name: "chatglm",
displayName: "chatglm",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
claude: {
name: "claude",
displayName: "Claude",
category: "ai-provider",
keywords: ["anthropic"],
defaultColor: "#D4915D",
},
cherryin: {
name: "cherryin",
displayName: "CherryIN",
category: "ai-provider",
keywords: [
"cherryin",
"cherry",
"gateway",
"relay",
"newapi",
"claude",
"codex",
],
defaultColor: "#FB6354",
},
claudeapi: {
name: "claudeapi",
displayName: "ClaudeAPI",
category: "ai-provider",
keywords: ["claudeapi", "claude", "anthropic", "bedrock"],
},
claudecn: {
name: "claudecn",
displayName: "ClaudeCN",
category: "ai-provider",
keywords: ["claudecn", "claude", "enterprise"],
},
cloudflare: {
name: "cloudflare",
displayName: "Cloudflare",
category: "cloud",
keywords: ["cloudflare", "cdn"],
defaultColor: "#F38020",
},
cohere: {
name: "cohere",
displayName: "Cohere",
category: "ai-provider",
keywords: ["cohere"],
defaultColor: "#39594D",
},
copilot: {
name: "copilot",
displayName: "copilot",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
etok: {
name: "etok",
displayName: "ETok",
category: "ai-provider",
keywords: ["etok", "ai", "programming"],
defaultColor: "#F97316",
},
fenno: {
name: "fenno",
displayName: "FennoAI",
category: "ai-provider",
keywords: [
"fenno",
"fennoai",
"aggregator",
"relay",
"claude",
"codex",
"gpt",
"gateway",
],
defaultColor: "#000000",
},
zetaapi: {
name: "zetaapi",
displayName: "ZetaAPI",
category: "ai-provider",
keywords: [
"zetaapi",
"zeta",
"aggregator",
"relay",
"claude",
"gpt",
"gateway",
],
defaultColor: "#000000",
},
teamorouter: {
name: "teamorouter",
displayName: "TeamoRouter",
category: "ai-provider",
keywords: [
"teamorouter",
"teamo",
"router",
"aggregator",
"relay",
"gateway",
"gpt",
],
defaultColor: "#000000",
},
cubence: {
name: "cubence",
displayName: "Cubence",
category: "ai-provider",
keywords: ["cubence", "api", "relay"],
defaultColor: "#4B5563",
},
deepseek: {
name: "deepseek",
displayName: "DeepSeek",
category: "ai-provider",
keywords: ["deep", "seek"],
defaultColor: "#1E88E5",
},
doubao: {
name: "doubao",
displayName: "doubao",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
gemini: {
name: "gemini",
displayName: "Gemini",
category: "ai-provider",
keywords: ["google"],
defaultColor: "#4285F4",
},
gemma: {
name: "gemma",
displayName: "gemma",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
github: {
name: "github",
displayName: "GitHub",
category: "tool",
keywords: ["git", "version control"],
defaultColor: "#181717",
},
githubcopilot: {
name: "githubcopilot",
displayName: "githubcopilot",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
google: {
name: "google",
displayName: "Google",
category: "ai-provider",
keywords: ["gemini", "bard"],
defaultColor: "#4285F4",
},
googlecloud: {
name: "googlecloud",
displayName: "googlecloud",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
grok: {
name: "grok",
displayName: "grok",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
huawei: {
name: "huawei",
displayName: "Huawei",
category: "cloud",
keywords: ["huawei", "cloud"],
defaultColor: "#FF0000",
},
huggingface: {
name: "huggingface",
displayName: "Hugging Face",
category: "ai-provider",
keywords: ["huggingface", "hf"],
defaultColor: "#FFD21E",
},
hunyuan: {
name: "hunyuan",
displayName: "hunyuan",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
kimi: {
name: "kimi",
displayName: "Kimi",
category: "ai-provider",
keywords: ["moonshot"],
defaultColor: "#1783FF",
},
meta: {
name: "meta",
displayName: "Meta",
category: "ai-provider",
keywords: ["facebook", "llama"],
defaultColor: "#0081FB",
},
midjourney: {
name: "midjourney",
displayName: "midjourney",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
minimax: {
name: "minimax",
displayName: "MiniMax",
category: "ai-provider",
keywords: ["minimax"],
defaultColor: "#FF6B6B",
},
zenmux: {
name: "zenmux",
displayName: "ZenMux",
category: "ai-provider",
keywords: ["zenmux", "zen", "mux"],
defaultColor: "#6366F1",
},
mistral: {
name: "mistral",
displayName: "Mistral",
category: "ai-provider",
keywords: ["mistral"],
defaultColor: "#FF7000",
},
newapi: {
name: "newapi",
displayName: "newapi",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
notion: {
name: "notion",
displayName: "notion",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
ollama: {
name: "ollama",
displayName: "ollama",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
openai: {
name: "openai",
displayName: "OpenAI",
category: "ai-provider",
keywords: ["gpt", "chatgpt"],
defaultColor: "currentColor",
},
openclaw: {
name: "openclaw",
displayName: "OpenClaw",
category: "ai-provider",
keywords: ["openclaw", "lobster", "claw"],
defaultColor: "#ff4f40",
},
hermes: {
name: "hermes",
displayName: "Hermes",
category: "ai-provider",
keywords: ["hermes", "agent", "nous", "nousresearch"],
defaultColor: "#000000",
},
packycode: {
name: "packycode",
displayName: "PackyCode",
category: "ai-provider",
keywords: ["packycode", "packy", "packyapi"],
defaultColor: "currentColor",
},
pateway: {
name: "pateway",
displayName: "PatewayAI",
category: "ai-provider",
keywords: ["pateway", "patewayai", "claude", "codex"],
},
palm: {
name: "palm",
displayName: "palm",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
perplexity: {
name: "perplexity",
displayName: "Perplexity",
category: "ai-provider",
keywords: ["perplexity"],
defaultColor: "#20808D",
},
qwen: {
name: "qwen",
displayName: "qwen",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
stability: {
name: "stability",
displayName: "stability",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
tencent: {
name: "tencent",
displayName: "Tencent",
category: "ai-provider",
keywords: ["hunyuan"],
defaultColor: "#00A4FF",
},
unity2: {
name: "unity2",
displayName: "Unity2.ai",
category: "ai-provider",
keywords: ["unity2", "aggregator", "relay", "claude", "codex", "gateway"],
defaultColor: "#000000",
},
vercel: {
name: "vercel",
displayName: "vercel",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
wenxin: {
name: "wenxin",
displayName: "wenxin",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
xai: {
name: "xai",
displayName: "xai",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
yi: {
name: "yi",
displayName: "yi",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
zeroone: {
name: "zeroone",
displayName: "zeroone",
category: "other",
keywords: [],
defaultColor: "currentColor",
},
zhipu: {
name: "zhipu",
displayName: "Zhipu AI",
category: "ai-provider",
keywords: ["chatglm", "glm"],
defaultColor: "#0F62FE",
},
openrouter: {
name: "openrouter",
displayName: "OpenRouter",
category: "ai-provider",
keywords: ["openrouter", "router", "aggregator"],
defaultColor: "#6566F1",
},
pipellm: {
name: "pipellm",
displayName: "PIPELLM",
category: "ai-provider",
keywords: ["pipellm", "pipe"],
defaultColor: "currentColor",
},
qiniu: {
name: "qiniu",
displayName: "七牛云",
category: "ai-provider",
keywords: [
"qiniu",
"qnaigc",
"modelink",
"aggregator",
"relay",
"claude",
"codex",
"gpt",
"gemini",
"gateway",
],
defaultColor: "#00AAE7",
},
runapi: {
name: "runapi",
displayName: "RunAPI",
category: "ai-provider",
keywords: ["runapi", "run", "aggregator", "gateway"],
},
relaxcode: {
name: "relaxcode",
displayName: "RelaxyCode",
category: "ai-provider",
keywords: ["relaxycode", "relaxcode", "relax"],
},
eflowcode: {
name: "eflowcode",
displayName: "E-FlowCode",
category: "ai-provider",
keywords: ["eflowcode", "e-flowcode", "flow"],
defaultColor: "currentColor",
},
shengsuanyun: {
name: "shengsuanyun",
displayName: "Shengsuanyun",
category: "ai-provider",
keywords: ["shengsuanyun", "shengsuanyun"],
defaultColor: "currentColor",
},
lioncc: {
name: "lioncc",
displayName: "LionCC",
category: "ai-provider",
keywords: ["lioncc", "lion"],
defaultColor: "#F9DA3C",
},
longcat: {
name: "longcat",
displayName: "LongCat",
category: "ai-provider",
keywords: ["longcat", "long", "cat"],
defaultColor: "#29E154",
},
modelscope: {
name: "modelscope",
displayName: "ModelScope",
category: "ai-provider",
keywords: ["modelscope", "alibaba", "scope"],
defaultColor: "#624AFF",
},
aihubmix: {
name: "aihubmix",
displayName: "AiHubMix",
category: "ai-provider",
keywords: ["aihubmix", "hub", "mix", "aggregator"],
defaultColor: "#006FFB",
},
xiaomimimo: {
name: "xiaomimimo",
displayName: "Xiaomi MiMo",
category: "ai-provider",
keywords: ["xiaomimimo", "xiaomi", "mimo"],
defaultColor: "#000000",
},
novita: {
name: "novita",
displayName: "Novita AI",
category: "ai-provider",
keywords: ["novita", "novita ai"],
defaultColor: "#000000",
},
nvidia: {
name: "nvidia",
displayName: "NVIDIA",
category: "ai-provider",
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 {
return iconMetadata[name.toLowerCase()];
}
export function searchIcons(query: string): string[] {
const lowerQuery = query.toLowerCase();
return Object.values(iconMetadata)
.filter(
(meta) =>
meta.name.includes(lowerQuery) ||
meta.displayName.toLowerCase().includes(lowerQuery) ||
meta.keywords.some((k) => k.includes(lowerQuery)),
)
.map((meta) => meta.name);
}