feat(providers): add api-airforce, baidu, bazaarlink, bluesminds, kilo-gateway, llm7, morph, sambanova, tencent

Register 9 new upstream providers with logos and update the auto-generated
registry index. Refresh providers/alias baselines and extend the alias
token allowlist so verify-alias stays green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
decolua
2026-07-26 10:03:10 +07:00
parent aa0448f7e2
commit de2da19a9e
22 changed files with 506 additions and 5 deletions

View File

@@ -0,0 +1,40 @@
export default {
id: "api-airforce",
alias: "af",
aliases: [
"airforce",
],
uiAlias: "af",
display: {
name: "API.airforce",
icon: "flight",
color: "#0EA5E9",
textIcon: "AF",
website: "https://api.airforce",
notice: {
apiKeyUrl: "https://api.airforce",
},
},
category: "freeTier",
authType: "apikey",
authModes: [
"apikey",
],
transport: {
baseUrl: "https://api.airforce/v1/chat/completions",
validateUrl: "https://api.airforce/v1/models",
headers: {
"HTTP-Referer": "https://endpoint-proxy.local",
"X-Title": "Endpoint Proxy",
},
},
models: [
{ id: "x-ai/grok-3", name: "Grok-3 (Free)", contextLength: 131072 },
{ id: "x-ai/grok-2-1212", name: "Grok-2 1212 (Free)", contextLength: 131072 },
{ id: "anthropic/claude-3.7-sonnet", name: "Claude 3.7 Sonnet (Free)", contextLength: 200000 },
{ id: "qwen/qwen3-32b", name: "Qwen3 32B (Free)", contextLength: 128000 },
{ id: "moonshot/kimi-k2.6", name: "Kimi K2.6 (Free)", contextLength: 262144 },
{ id: "google/gemini-2.5-flash", name: "Gemini 2.5 Flash (Free)", contextLength: 1048576 },
{ id: "deepseek/deepseek-v3", name: "DeepSeek V3 (Free)", contextLength: 262144 },
],
};

View File

@@ -0,0 +1,42 @@
export default {
id: "baidu",
alias: "qianfan",
aliases: ["qianfan", "ernie", "baidu-qianfan"],
uiAlias: "qianfan",
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
display: {
name: "Baidu Qianfan",
icon: "search",
color: "#2932E1",
textIcon: "BD",
website: "https://cloud.baidu.com/product/qianfan.html",
notice: {
apiKeyUrl:
"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application",
},
},
transport: {
baseUrl: "https://qianfan.baidubce.com/v2/chat/completions",
validateUrl: "https://qianfan.baidubce.com/v2/models",
},
models: [
{ id: "ernie-5.1", name: "ERNIE 5.1" },
{ id: "ernie-5.0", name: "ERNIE 5.0" },
{ id: "ernie-x1.1", name: "ERNIE X1.1" },
{ id: "ernie-4.5-turbo-128k", name: "ERNIE 4.5 Turbo 128K" },
{ id: "ernie-4.5-turbo-32k", name: "ERNIE 4.5 Turbo 32K" },
{ id: "ernie-4.5-turbo-vl", name: "ERNIE 4.5 Turbo VL" },
{ id: "ernie-4.5-21b-a3b", name: "ERNIE 4.5 21B A3B" },
{ id: "ernie-4.5-0.3b", name: "ERNIE 4.5 0.3B" },
{ id: "ernie-4.0-8k", name: "ERNIE 4.0 8K" },
{ id: "ernie-4.0-turbo-128k", name: "ERNIE 4.0 Turbo 128K" },
{ id: "ernie-4.0-turbo-8k", name: "ERNIE 4.0 Turbo 8K" },
{ id: "ernie-3.5-8k", name: "ERNIE 3.5 8K" },
{ id: "ernie-speed-128k", name: "ERNIE Speed 128K" },
{ id: "ernie-speed-8k", name: "ERNIE Speed 8K" },
{ id: "ernie-lite-8k", name: "ERNIE Lite 8K" },
{ id: "ernie-tiny-8k", name: "ERNIE Tiny 8K" },
],
};

View File

@@ -0,0 +1,56 @@
export default {
id: "bazaarlink",
alias: "bzl",
aliases: ["bazaar-link"],
uiAlias: "bzl",
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
display: {
name: "Bazaarlink",
icon: "storefront",
color: "#DC2626",
textIcon: "BZ",
website: "https://bazaarlink.ai",
notice: { apiKeyUrl: "https://bazaarlink.ai" },
},
transport: {
baseUrl: "https://bazaarlink.ai/api/v1/chat/completions",
validateUrl: "https://bazaarlink.ai/api/v1/models",
},
models: [
{ id: "auto:free", name: "Auto Free (Zero Cost)" },
{ id: "claude-opus-4.7", name: "Claude Opus 4.7" },
{ id: "claude-sonnet-4.6", name: "Claude Sonnet 4.6" },
{ id: "claude-haiku-4.5", name: "Claude Haiku 4.5" },
{ id: "gpt-5.5", name: "GPT-5.5" },
{ id: "gpt-5.4", name: "GPT-5.4" },
{ id: "gpt-5.4-mini", name: "GPT-5.4 Mini" },
{ id: "gpt-5.4-nano", name: "GPT-5.4 Nano" },
{ id: "grok-4.3", name: "Grok 4.3" },
{ id: "grok-4.20", name: "Grok 4.20" },
{ id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro" },
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash" },
{ id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite" },
{ id: "gemma-4-31b-it", name: "Gemma 4 31B" },
{ id: "gemma-4-26b-a4b-it", name: "Gemma 4 26B A4B" },
{ id: "deepseek-v3.2", name: "DeepSeek V3.2" },
{ id: "kimi-k2.6", name: "Kimi K2.6" },
{ id: "kimi-k2.5", name: "Kimi K2.5" },
{ id: "glm-5.1", name: "GLM 5.1" },
{ id: "glm-5", name: "GLM 5" },
{ id: "mimo-v2.5-pro", name: "MiMo-V2.5-Pro" },
{ id: "mimo-v2.5", name: "MiMo-V2.5" },
{ id: "minimax-m3", name: "MiniMax M3" },
{ id: "minimax-m2.7", name: "MiniMax M2.7" },
{ id: "minimax-m2.5", name: "MiniMax M2.5" },
{ id: "llama-4-maverick", name: "Llama 4 Maverick" },
{ id: "llama-4-scout", name: "Llama 4 Scout" },
{ id: "llama-3.3-70b-instruct", name: "Llama 3.3 70B" },
{ id: "qwen3.6-plus", name: "Qwen 3.6 Plus" },
{ id: "mistral-large-2512", name: "Mistral Large 3" },
{ id: "mistral-medium-3.1", name: "Mistral Medium 3.1" },
{ id: "mistral-small-2603", name: "Mistral Small 4" },
{ id: "nemotron-3-super-120b-a12b", name: "Nemotron 3 Super" },
],
};

View File

@@ -0,0 +1,45 @@
export default {
id: "bluesminds",
alias: "bm",
aliases: ["blue-sminds"],
uiAlias: "bm",
display: {
name: "BluesMinds",
icon: "psychology",
color: "#2563EB",
textIcon: "BM",
website: "https://bluesminds.com",
notice: { apiKeyUrl: "https://bluesminds.com" },
},
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
transport: {
baseUrl: "https://api.bluesminds.com/v1/chat/completions",
validateUrl: "https://api.bluesminds.com/v1/models",
},
models: [
{ id: "gpt-4o", name: "GPT-4o" },
{ id: "gpt-4o-mini", name: "GPT-4o Mini" },
{ id: "gpt-4.1", name: "GPT-4.1" },
{ id: "gpt-4.1-mini", name: "GPT-4.1 Mini" },
{ id: "gpt-4.1-nano", name: "GPT-4.1 Nano" },
{ id: "claude-sonnet-4-5", name: "Claude Sonnet 4.5" },
{ id: "claude-haiku-4-5", name: "Claude Haiku 4.5" },
{ id: "gemini-2.0-flash", name: "Gemini 2.0 Flash" },
{ id: "gemini-2.0-flash-exp", name: "Gemini 2.0 Flash (Exp)" },
{ id: "deepseek-reasoner", name: "DeepSeek Reasoner" },
{ id: "deepseek-chat", name: "DeepSeek Chat" },
{ id: "qwen-plus", name: "Qwen Plus" },
{ id: "qwen-turbo", name: "Qwen Turbo" },
{ id: "kimi-k2", name: "Kimi K2" },
{ id: "kimi-k2-thinking", name: "Kimi K2 Thinking" },
{ id: "glm-4.7", name: "GLM 4.7" },
{ id: "glm-4-flash", name: "GLM 4 Flash" },
{ id: "minimax-m2.5", name: "MiniMax M2.5" },
{ id: "claude-opus-4-5", name: "Claude Opus 4.5 (VIP)" },
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro (VIP)" },
{ id: "grok-3", name: "Grok-3 (VIP)" },
{ id: "qwen-max", name: "Qwen Max (VIP)" },
],
};

View File

@@ -104,6 +104,16 @@ import p100 from "./codebuddy-intl.js";
// Re-enable by uncommenting both the import and the array entry below.
// import p102 from "./trae.js";
import p103 from "./zed.js";
import p105 from "./api-airforce.js";
import p106 from "./baidu.js";
import p107 from "./bazaarlink.js";
import p108 from "./bluesminds.js";
import p109 from "./kilo-gateway.js";
import p110 from "./llm7.js";
import p111 from "./sambanova.js";
import p112 from "./tencent.js";
import p113 from "./morph.js";
import p114 from "./devin-cli.js";
// import p104 from "./windsurf.js";
export default [
@@ -210,5 +220,15 @@ export default [
p100,
// p102, // trae — hidden, no tool calling
p103,
p105,
p106,
p107,
p108,
p109,
p110,
p111,
p112,
p113,
p114,
// p104, // windsurf — hidden, no tool calling
];

View File

@@ -0,0 +1,34 @@
export default {
id: "kilo-gateway",
alias: "kgw",
aliases: [
"kilo-gateway",
"kilogateway",
],
uiAlias: "kgw",
display: {
name: "Kilo Gateway",
icon: "login",
color: "#8B5CF6",
textIcon: "KG",
website: "https://kilo.ai",
notice: {
apiKeyUrl: "https://kilo.ai/dashboard?tab=apiKeys",
},
},
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
transport: {
baseUrl: "https://api.kilo.ai/api/gateway/chat/completions",
validateUrl: "https://api.kilo.ai/api/gateway/models",
},
models: [
{ id: "kilo-auto/frontier", name: "Kilo Auto Frontier" },
{ id: "kilo-auto/balanced", name: "Kilo Auto Balanced" },
{ id: "kilo-auto/free", name: "Kilo Auto Free" },
{ id: "nvidia/nemotron-3-super-120b-a12b:free", name: "Nemotron 3 Super 120B (Free)" },
{ id: "minimax/minimax-m2.5:free", name: "MiniMax M2.5 (Free)" },
{ id: "arcee-ai/trinity-large-preview:free", name: "Trinity Large Preview (Free)" },
],
};

View File

@@ -0,0 +1,34 @@
export default {
id: "llm7",
alias: "llm7",
aliases: [
"llm-7",
],
uiAlias: "llm7",
display: {
name: "LLM7",
icon: "pool",
color: "#7C3AED",
textIcon: "L7",
website: "https://llm7.io",
notice: {
apiKeyUrl: "https://llm7.io",
},
},
category: "freeTier",
authType: "apikey",
authModes: [
"apikey",
],
transport: {
baseUrl: "https://api.llm7.io/v1/chat/completions",
validateUrl: "https://api.llm7.io/v1/models",
},
models: [
{ id: "gpt-4o-mini-2024-07-18", name: "GPT-4o mini (LLM7)" },
{ id: "gpt-4.1-nano-2025-04-14", name: "GPT-4.1 nano (LLM7)" },
{ id: "deepseek-r1-0528", name: "DeepSeek R1 (LLM7)" },
{ id: "qwen2.5-coder-32b-instruct", name: "Qwen2.5 Coder 32B (LLM7)" },
],
passthroughModels: true,
};

View File

@@ -0,0 +1,29 @@
export default {
id: "morph",
alias: "morph",
aliases: ["morphllm"],
uiAlias: "morph",
display: {
name: "Morph",
icon: "change_history",
color: "#14B8A6",
textIcon: "MP",
website: "https://morphllm.com",
notice: { apiKeyUrl: "https://morphllm.com" },
},
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
transport: {
baseUrl: "https://api.morphllm.com/v1/chat/completions",
validateUrl: "https://api.morphllm.com/v1/models",
},
models: [
{ id: "morph-v3-large", name: "Morph v3 Large" },
{ id: "morph-v3-fast", name: "Morph v3 Fast" },
{ id: "morph-qwen35-397b", name: "Qwen 3.5 397B (Morph)", contextLength: 262144 },
{ id: "morph-minimax27-230b", name: "MiniMax M2.7 (Morph)", contextLength: 200704 },
{ id: "morph-qwen36-27b", name: "Qwen 3.6 27B (Morph)", contextLength: 131072 },
{ id: "morph-dsv4flash", name: "DeepSeek V4 Flash (Morph)", contextLength: 1048576 },
],
};

View File

@@ -0,0 +1,30 @@
export default {
id: "sambanova",
alias: "samba",
aliases: ["sambanova-ai"],
uiAlias: "samba",
display: {
name: "SambaNova",
icon: "memory",
color: "#F97316",
textIcon: "SN",
website: "https://sambanova.ai",
notice: {
apiKeyUrl: "https://cloud.sambanova.ai/apis",
},
},
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
transport: {
baseUrl: "https://api.sambanova.ai/v1/chat/completions",
validateUrl: "https://api.sambanova.ai/v1/models",
},
models: [
{ id: "MiniMax-M2.7", name: "MiniMax M2.7" },
{ id: "DeepSeek-V3.2", name: "DeepSeek V3.2" },
{ id: "Llama-4-Maverick-17B-128E-Instruct", name: "Llama 4 Maverick 17B 128E" },
{ id: "Meta-Llama-3.3-70B-Instruct", name: "Meta Llama 3.3 70B" },
{ id: "gpt-oss-120b", name: "GPT-OSS 120B" },
],
};

View File

@@ -0,0 +1,31 @@
export default {
id: "tencent",
alias: "hunyuan",
aliases: ["hunyuan", "tencent-hunyuan"],
uiAlias: "hunyuan",
display: {
name: "Tencent Hunyuan",
icon: "cloud",
color: "#0052D9",
textIcon: "HY",
website: "https://cloud.tencent.com/product/hunyuan",
notice: {
apiKeyUrl: "https://console.cloud.tencent.com/hunyuan/api-key",
},
},
category: "apikey",
authType: "apikey",
authModes: ["apikey"],
transport: {
baseUrl: "https://api.hunyuan.cloud.tencent.com/v1/chat/completions",
validateUrl: "https://api.hunyuan.cloud.tencent.com/v1/models",
},
models: [
{ id: "hunyuan-turbos-latest", name: "Hunyuan TurboS Latest" },
{ id: "hunyuan-t1-latest", name: "Hunyuan T1 Latest" },
{ id: "hunyuan-pro", name: "Hunyuan Pro" },
{ id: "hunyuan-vision", name: "Hunyuan Vision" },
{ id: "hunyuan-functioncall", name: "Hunyuan FunctionCall" },
{ id: "hunyuan-lite", name: "Hunyuan Lite" },
],
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
public/providers/baidu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
public/providers/llm7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -93,7 +93,30 @@
"polly": "aws-polly",
"aws-polly": "aws-polly",
"bb": "blackbox",
"blackbox": "blackbox"
"blackbox": "blackbox",
"af": "api-airforce",
"airforce": "api-airforce",
"api-airforce": "api-airforce",
"llm7": "llm7",
"llm-7": "llm7",
"samba": "sambanova",
"sambanova": "sambanova",
"bm": "bluesminds",
"bluesminds": "bluesminds",
"bzl": "bazaarlink",
"bazaarlink": "bazaarlink",
"kgw": "kilo-gateway",
"kilo-gateway": "kilo-gateway",
"hunyuan": "tencent",
"tencent": "tencent",
"qianfan": "baidu",
"baidu": "baidu",
"ernie": "baidu",
"dv": "devin-cli",
"devin": "devin-cli",
"devin-cli": "devin-cli",
"morph": "morph",
"morphllm": "morph"
},
"idToAlias": {
"alicode": "alicode",
@@ -101,9 +124,13 @@
"alims-intl": "alims-intl",
"anthropic": "anthropic",
"antigravity": "ag",
"api-airforce": "af",
"assemblyai": "assemblyai",
"azure": "azure",
"baidu": "qianfan",
"bazaarlink": "bzl",
"blackbox": "blackbox",
"bluesminds": "bm",
"byteplus": "byteplus",
"cerebras": "cerebras",
"chutes": "chutes",
@@ -112,12 +139,14 @@
"clinepass": "clinepass",
"cloudflare-ai": "cloudflare-ai",
"codebuddy-cn": "cbcn",
"codebuddy-intl": "cbai",
"codex": "cx",
"cohere": "cohere",
"commandcode": "commandcode",
"cursor": "cu",
"deepgram": "deepgram",
"deepseek": "deepseek",
"devin-cli": "dv",
"featherless": "featherless",
"fireworks": "fireworks",
"gemini": "gemini",
@@ -131,15 +160,18 @@
"groq": "groq",
"hyperbolic": "hyperbolic",
"iflow": "if",
"kilo-gateway": "kgw",
"kilocode": "kc",
"kimchi": "kimchi",
"kimi": "kimi",
"kiro": "kr",
"llm7": "llm7",
"mimo-free": "mmf",
"minimax": "minimax",
"minimax-cn": "minimax-cn",
"mistral": "mistral",
"mmf": "mmf",
"morph": "morph",
"nanobanana": "nanobanana",
"nebius": "nebius",
"nvidia": "nvidia",
@@ -154,7 +186,9 @@
"perplexity-web": "perplexity-web",
"qoder": "qd",
"qwen": "qw",
"sambanova": "samba",
"siliconflow": "siliconflow",
"tencent": "hunyuan",
"together": "together",
"venice": "venice",
"vercel-ai-gateway": "vercel-ai-gateway",
@@ -163,9 +197,11 @@
"volcengine-ark": "volcengine-ark",
"xai": "xai",
"xiaomi-mimo": "xiaomi-mimo",
"xiaomi-tokenplan": "xiaomi-tokenplan"
"xiaomi-tokenplan": "xiaomi-tokenplan",
"zed": "zd"
},
"modelKeys": [
"af",
"ag",
"alicode",
"alicode-intl",
@@ -174,7 +210,10 @@
"assemblyai",
"black-forest-labs",
"blackbox",
"bm",
"byteplus",
"bzl",
"cbai",
"cbcn",
"cc",
"cerebras",
@@ -188,6 +227,7 @@
"cx",
"deepgram",
"deepseek",
"dv",
"edge-tts",
"elevenlabs-tts-models",
"fal-ai",
@@ -205,17 +245,21 @@
"grok-web",
"groq",
"huggingface",
"hunyuan",
"hyperbolic",
"if",
"kc",
"kgw",
"kimchi",
"kimi",
"kr",
"llm7",
"local-device",
"minimax",
"minimax-cn",
"mistral",
"mmf",
"morph",
"nanobanana",
"nebius",
"nvidia",
@@ -232,9 +276,11 @@
"perplexity-agent",
"perplexity-web",
"qd",
"qianfan",
"qw",
"recraft",
"runwayml",
"samba",
"sdwebui",
"siliconflow",
"stability-ai",
@@ -246,6 +292,7 @@
"voyage-ai",
"xai",
"xiaomi-mimo",
"xiaomi-tokenplan"
"xiaomi-tokenplan",
"zd"
]
}

View File

@@ -1,6 +1,6 @@
{
"alicode-intl": {
"baseUrl": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",
"baseUrl": "https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",
"headers": {},
"quirks": {
"preserveCacheControl": true
@@ -880,5 +880,95 @@
"preserveCacheControl": true
},
"format": "openai"
},
"codebuddy-intl": {
"baseUrl": "https://www.codebuddy.ai/v2/chat/completions",
"forceStream": true,
"thinkingFormat": "openai",
"headers": {
"User-Agent": "IDE/2.108.1 CodeBuddy/2.108.1",
"X-Product": "SaaS",
"X-IDE-Type": "IDE",
"X-IDE-Name": "IDE",
"x-requested-with": "XMLHttpRequest",
"x-codebuddy-request": "1"
},
"auth": {
"combined": true,
"header": "Authorization",
"scheme": "bearer"
},
"format": "openai",
"tokenUrl": "https://www.codebuddy.ai/v2/plugin/auth/token"
},
"zed": {
"baseUrl": "https://cloud.zed.dev/completions",
"format": "openai",
"forceStream": true,
"headers": {
"content-type": "application/json"
},
"auth": {
"combined": true,
"header": "Authorization",
"scheme": "<user_id> <access_token>"
},
"usage": {
"url": "https://cloud.zed.dev/client/users/me"
},
"modelsUrl": "https://cloud.zed.dev/models"
},
"api-airforce": {
"baseUrl": "https://api.airforce/v1/chat/completions",
"validateUrl": "https://api.airforce/v1/models",
"headers": {
"HTTP-Referer": "https://endpoint-proxy.local",
"X-Title": "Endpoint Proxy"
},
"format": "openai"
},
"baidu": {
"baseUrl": "https://qianfan.baidubce.com/v2/chat/completions",
"validateUrl": "https://qianfan.baidubce.com/v2/models",
"format": "openai"
},
"bazaarlink": {
"baseUrl": "https://bazaarlink.ai/api/v1/chat/completions",
"validateUrl": "https://bazaarlink.ai/api/v1/models",
"format": "openai"
},
"bluesminds": {
"baseUrl": "https://api.bluesminds.com/v1/chat/completions",
"validateUrl": "https://api.bluesminds.com/v1/models",
"format": "openai"
},
"kilo-gateway": {
"baseUrl": "https://api.kilo.ai/api/gateway/chat/completions",
"validateUrl": "https://api.kilo.ai/api/gateway/models",
"format": "openai"
},
"llm7": {
"baseUrl": "https://api.llm7.io/v1/chat/completions",
"validateUrl": "https://api.llm7.io/v1/models",
"format": "openai"
},
"sambanova": {
"baseUrl": "https://api.sambanova.ai/v1/chat/completions",
"validateUrl": "https://api.sambanova.ai/v1/models",
"format": "openai"
},
"tencent": {
"baseUrl": "https://api.hunyuan.cloud.tencent.com/v1/chat/completions",
"validateUrl": "https://api.hunyuan.cloud.tencent.com/v1/models",
"format": "openai"
},
"morph": {
"baseUrl": "https://api.morphllm.com/v1/chat/completions",
"validateUrl": "https://api.morphllm.com/v1/models",
"format": "openai"
},
"devin-cli": {
"baseUrl": "devin://acp/stdio",
"format": "openai"
}
}
}

View File

@@ -20,6 +20,9 @@ const ALIAS_TOKENS = [
"xmtp","xiaomi-tokenplan","cf",
"cloudflare-ai","fal","fal-ai","stability","stability-ai","bfl","black-forest-labs","recraft",
"topaz","runway","runwayml","jina","jina-ai","polly","aws-polly","bb","blackbox",
"af","airforce","api-airforce","llm7","llm-7","samba","sambanova","bm","bluesminds",
"bzl","bazaarlink","kgw","kilo-gateway","hunyuan","tencent","qianfan","baidu","ernie",
"dv","devin","devin-cli","morph","morphllm",
];
// Sort idToAlias by key — runtime accesses by key, order is irrelevant (content-based)