refactor(open-sse): registry consolidation + DRY media/oauth/adhoc cleanup
- Single-source registry: oauth clientId/tokenUrl, usage URLs, image/embed configs, search defaultModel, codex fixedPort, google token url derive. - Remove 29 unused OmniRoute providers (registry 100→71); media intact. - De-adhoc: codex literals → registry format/oauth flags; reasoningInject, image/embed openrouter headers + xai bodyFields config-driven. - Add REGISTRY_TEMPLATE.js + expand PROVIDER_DEFAULTS/schema JSDoc. - Baselines updated; PROVIDERS 62 + alias 90 byte-for-byte, golden snapshots. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
9105dd0e25
commit
bb9e9aa91f
166 files changed
+3089
-3067
No files matched your search
@@ -1,17 +0,0 @@
|
||||
import { CLAUDE_CLI_SPOOF_HEADERS } from "../shared.js";
|
||||
|
||||
export default {
|
||||
id: "agentrouter",
|
||||
alias: "agentrouter",
|
||||
transport: {
|
||||
baseUrl: "https://agentrouter.org/v1/messages",
|
||||
format: "claude",
|
||||
headers: { ...CLAUDE_CLI_SPOOF_HEADERS }
|
||||
},
|
||||
models: [
|
||||
{ id: "claude-opus-4-6", name: "Claude 4.6 Opus" },
|
||||
{ id: "claude-haiku-4-5-20251001", name: "Claude 4.5 Haiku" },
|
||||
{ id: "glm-5.1", name: "GLM 5.1" },
|
||||
{ id: "deepseek-v3.2", name: "DeepSeek V3.2" }
|
||||
]
|
||||
};
|
||||
@@ -1,17 +0,0 @@
|
||||
export default {
|
||||
"id": "ai21",
|
||||
"alias": "ai21",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.ai21.com/studio/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "jamba-large",
|
||||
"name": "Jamba 1.5 Large"
|
||||
},
|
||||
{
|
||||
"id": "jamba-mini",
|
||||
"name": "Jamba 1.5 Mini"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,29 +0,0 @@
|
||||
export default {
|
||||
"id": "aimlapi",
|
||||
"alias": "aimlapi",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.aimlapi.com/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "gpt-4o",
|
||||
"name": "GPT-4o"
|
||||
},
|
||||
{
|
||||
"id": "gpt-4o-mini",
|
||||
"name": "GPT-4o Mini"
|
||||
},
|
||||
{
|
||||
"id": "claude-3-5-sonnet-20241022",
|
||||
"name": "Claude 3.5 Sonnet"
|
||||
},
|
||||
{
|
||||
"id": "gemini-2.0-flash-exp",
|
||||
"name": "Gemini 2.0 Flash"
|
||||
},
|
||||
{
|
||||
"id": "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
|
||||
"name": "Llama 3.1 70B"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,6 +1,18 @@
|
||||
|
||||
export default {
|
||||
"id": "alicode-intl",
|
||||
"alias": "alicode-intl",
|
||||
display: {
|
||||
"name": "Alibaba Intl",
|
||||
"icon": "cloud",
|
||||
"color": "#FF6A00",
|
||||
"textIcon": "ALi",
|
||||
"website": "https://modelstudio.console.alibabacloud.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://modelstudio.console.alibabacloud.com/?apiKey=1"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",
|
||||
"headers": {}
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
|
||||
export default {
|
||||
"id": "alicode",
|
||||
"alias": "alicode",
|
||||
display: {
|
||||
"name": "Alibaba",
|
||||
"icon": "cloud",
|
||||
"color": "#FF6A00",
|
||||
"textIcon": "ALi",
|
||||
"website": "https://bailian.console.aliyun.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://bailian.console.aliyun.com/?apiKey=1"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1/chat/completions",
|
||||
"headers": {}
|
||||
|
||||
@@ -3,11 +3,25 @@ import { CLAUDE_API_HEADERS } from "../shared.js";
|
||||
export default {
|
||||
id: "anthropic",
|
||||
alias: "anthropic",
|
||||
display: {
|
||||
"name": "Anthropic",
|
||||
"icon": "smart_toy",
|
||||
"color": "#D97757",
|
||||
"textIcon": "AN",
|
||||
"website": "https://console.anthropic.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://console.anthropic.com/settings/keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
transport: {
|
||||
baseUrl: "https://api.anthropic.com/v1/messages",
|
||||
format: "claude",
|
||||
headers: { ...CLAUDE_API_HEADERS }
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm", "imageToText"]
|
||||
},
|
||||
models: [
|
||||
{ id: "claude-sonnet-4-20250514", name: "Claude Sonnet 4" },
|
||||
{ id: "claude-opus-4-20250514", name: "Claude Opus 4" },
|
||||
|
||||
@@ -4,6 +4,19 @@ import { ANTIGRAVITY_OAUTH_CLIENT } from "../shared.js";
|
||||
export default {
|
||||
id: "antigravity",
|
||||
alias: "ag",
|
||||
display: {
|
||||
"name": "Antigravity",
|
||||
"icon": "rocket_launch",
|
||||
"color": "#F59E0B",
|
||||
"website": "https://antigravity.google",
|
||||
"notice": {
|
||||
"signupUrl": "https://antigravity.google"
|
||||
},
|
||||
"deprecated": true,
|
||||
"deprecationNotice": "RISK_NOTICE"
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "ag",
|
||||
transport: {
|
||||
baseUrls: [
|
||||
"https://daily-cloudcode-pa.googleapis.com",
|
||||
@@ -11,8 +24,35 @@ export default {
|
||||
],
|
||||
format: "antigravity",
|
||||
headers: { "User-Agent": `antigravity/1.107.0 ${platform()}/${arch()}` },
|
||||
// 429/503 use computeRetryDelay hook (Retry-After header/body → cap, else backoff)
|
||||
retry: { 429: { attempts: 6 }, 503: { attempts: 3 } },
|
||||
usage: {
|
||||
quotaApiUrl: "https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",
|
||||
loadProjectApiUrl: "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",
|
||||
tokenUrl: "https://oauth2.googleapis.com/token"
|
||||
},
|
||||
...ANTIGRAVITY_OAUTH_CLIENT
|
||||
},
|
||||
oauth: {
|
||||
authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
tokenUrl: "https://oauth2.googleapis.com/token",
|
||||
userInfoUrl: "https://www.googleapis.com/oauth2/v1/userinfo",
|
||||
scopes: [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/userinfo.email",
|
||||
"https://www.googleapis.com/auth/userinfo.profile",
|
||||
"https://www.googleapis.com/auth/cclog",
|
||||
"https://www.googleapis.com/auth/experimentsandconfigs"
|
||||
],
|
||||
apiEndpoint: "https://cloudcode-pa.googleapis.com",
|
||||
apiVersion: "v1internal",
|
||||
loadCodeAssistEndpoint: "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",
|
||||
onboardUserEndpoint: "https://cloudcode-pa.googleapis.com/v1internal:onboardUser",
|
||||
loadCodeAssistUserAgent: "google-api-nodejs-client/9.15.1",
|
||||
loadCodeAssistApiClient: "google-cloud-sdk vscode_cloudshelleditor/0.1"
|
||||
,
|
||||
refreshLeadMs: 300000
|
||||
},
|
||||
models: [
|
||||
{ id: "gemini-3-flash-agent", name: "Gemini 3.5 Flash (High)" },
|
||||
{ id: "gemini-3.5-flash-low", name: "Gemini 3.5 Flash (Medium)" },
|
||||
@@ -23,5 +63,6 @@ export default {
|
||||
{ id: "claude-opus-4-6-thinking", name: "Claude Opus 4.6 (Thinking)" },
|
||||
{ id: "gpt-oss-120b-medium", name: "GPT-OSS 120B (Medium)" },
|
||||
{ id: "gemini-3-flash", name: "Gemini 3 Flash", thinking: false }
|
||||
]
|
||||
],
|
||||
features: {"usage":true},
|
||||
};
|
||||
@@ -1,8 +1,28 @@
|
||||
|
||||
export default {
|
||||
"id": "assemblyai",
|
||||
"alias": "assemblyai",
|
||||
display: {
|
||||
"name": "AssemblyAI",
|
||||
"icon": "record_voice_over",
|
||||
"color": "#0062FF",
|
||||
"textIcon": "AA",
|
||||
"website": "https://assemblyai.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://www.assemblyai.com/app/api-keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "aai",
|
||||
authType: "apikey",
|
||||
aliases: ["aai"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.assemblyai.com/v1/audio/transcriptions"
|
||||
"baseUrl": "https://api.assemblyai.com/v1/audio/transcriptions",
|
||||
"validateUrl": "https://api.assemblyai.com/v1/account"
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["stt"],
|
||||
sttConfig: { baseUrl: "https://api.assemblyai.com/v2/transcript", authType: "apikey", authHeader: "authorization", format: "assemblyai", models: [{ id: "best", name: "Best (Nano + Universal)" }, { id: "nano", name: "Nano (Fast)" }] }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
export default {
|
||||
"id": "azure",
|
||||
"alias": "azure",
|
||||
display: {
|
||||
"name": "Azure OpenAI",
|
||||
"icon": "cloud",
|
||||
"color": "#0078D4",
|
||||
"textIcon": "AZ",
|
||||
"website": "https://azure.microsoft.com/en-us/products/ai-services/openai-service",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
hasProviderSpecificData: true,
|
||||
"transport": {
|
||||
"baseUrl": "",
|
||||
"headers": {}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
export default {
|
||||
"id": "baseten",
|
||||
"alias": "baseten",
|
||||
"transport": {
|
||||
"baseUrl": "https://inference.baseten.co/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "deepseek-ai/DeepSeek-R1",
|
||||
"name": "DeepSeek R1"
|
||||
},
|
||||
{
|
||||
"id": "meta-llama/Llama-3.3-70B-Instruct",
|
||||
"name": "Llama 3.3 70B"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,17 +0,0 @@
|
||||
export default {
|
||||
"id": "bazaarlink",
|
||||
"alias": "bazaarlink",
|
||||
"transport": {
|
||||
"baseUrl": "https://bazaarlink.ai/api/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "auto:free",
|
||||
"name": "Auto Free (Zero Cost)"
|
||||
},
|
||||
{
|
||||
"id": "auto",
|
||||
"name": "Auto (Best Model)"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,6 +1,21 @@
|
||||
|
||||
export default {
|
||||
"id": "black-forest-labs",
|
||||
"alias": "black-forest-labs",
|
||||
display: {
|
||||
"name": "Black Forest Labs",
|
||||
"icon": "image",
|
||||
"color": "#111827",
|
||||
"textIcon": "BF",
|
||||
"website": "https://blackforestlabs.ai",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://api.bfl.ai"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "bfl",
|
||||
authType: "apikey",
|
||||
aliases: ["bfl"],
|
||||
"transport": null,
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,20 @@
|
||||
|
||||
export default {
|
||||
"id": "blackbox",
|
||||
"alias": "blackbox",
|
||||
display: {
|
||||
"name": "Blackbox AI",
|
||||
"icon": "smart_toy",
|
||||
"color": "#5B5FEF",
|
||||
"textIcon": "BB",
|
||||
"website": "https://blackbox.ai",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://www.blackbox.ai/api-management"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "bb",
|
||||
aliases: ["bb"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.blackbox.ai/chat/completions"
|
||||
},
|
||||
|
||||
@@ -1,10 +1,28 @@
|
||||
|
||||
export default {
|
||||
"id": "byteplus",
|
||||
"alias": "byteplus",
|
||||
display: {
|
||||
"name": "BytePlus ModelArk",
|
||||
"icon": "cloud",
|
||||
"color": "#2563EB",
|
||||
"textIcon": "BP",
|
||||
"website": "https://console.byteplus.com/ark",
|
||||
"notice": {
|
||||
"text": "Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",
|
||||
"apiKeyUrl": "https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"
|
||||
}
|
||||
},
|
||||
category: "freeTier",
|
||||
uiAlias: "bpm",
|
||||
aliases: ["bpm"],
|
||||
"transport": {
|
||||
"baseUrl": "https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",
|
||||
"headers": {}
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm"]
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "seed-2-0-pro-260328",
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
export default {
|
||||
"id": "bytez",
|
||||
"alias": "bytez",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.bytez.com/models/v2"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "meta-llama/Llama-3.3-70B-Instruct",
|
||||
"name": "Llama 3.3 70B"
|
||||
},
|
||||
{
|
||||
"id": "mistralai/Mistral-7B-Instruct-v0.3",
|
||||
"name": "Mistral 7B v0.3"
|
||||
},
|
||||
{
|
||||
"id": "Qwen/Qwen2.5-72B-Instruct",
|
||||
"name": "Qwen 2.5 72B"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,8 +1,21 @@
|
||||
export default {
|
||||
"id": "cerebras",
|
||||
"alias": "cerebras",
|
||||
display: {
|
||||
"name": "Cerebras",
|
||||
"icon": "memory",
|
||||
"color": "#FF4F00",
|
||||
"textIcon": "CB",
|
||||
"website": "https://www.cerebras.ai",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://cloud.cerebras.ai/platform"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.cerebras.ai/v1/chat/completions"
|
||||
"baseUrl": "https://api.cerebras.ai/v1/chat/completions",
|
||||
"validateUrl": "https://api.cerebras.ai/v1/models",
|
||||
"quirks": { "dropClientMetadata": true }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,7 +1,22 @@
|
||||
|
||||
export default {
|
||||
"id": "chutes",
|
||||
"alias": "chutes",
|
||||
display: {
|
||||
"name": "Chutes AI",
|
||||
"icon": "water_drop",
|
||||
"color": "#ffffffff",
|
||||
"textIcon": "CH",
|
||||
"website": "https://chutes.ai",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://chutes.ai/app/api"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "ch",
|
||||
aliases: ["ch"],
|
||||
"transport": {
|
||||
"baseUrl": "https://llm.chutes.ai/v1/chat/completions"
|
||||
"baseUrl": "https://llm.chutes.ai/v1/chat/completions",
|
||||
"validateUrl": "https://llm.chutes.ai/v1/models"
|
||||
}
|
||||
};
|
||||
@@ -3,13 +3,40 @@ import { CLAUDE_CLI_SPOOF_HEADERS } from "../shared.js";
|
||||
export default {
|
||||
id: "claude",
|
||||
alias: "cc",
|
||||
display: {
|
||||
"name": "Claude Code",
|
||||
"icon": "smart_toy",
|
||||
"color": "#D97757",
|
||||
"website": "https://claude.ai",
|
||||
"notice": {
|
||||
"signupUrl": "https://claude.ai"
|
||||
},
|
||||
"deprecated": true,
|
||||
"deprecationNotice": "RISK_NOTICE"
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "cc",
|
||||
transport: {
|
||||
baseUrl: "https://api.anthropic.com/v1/messages",
|
||||
format: "claude",
|
||||
urlSuffix: "?beta=true",
|
||||
headers: { ...CLAUDE_CLI_SPOOF_HEADERS },
|
||||
quirks: { cloakToolsOnOAuth: true },
|
||||
auth: {"apiKey":{"header":"x-api-key","scheme":"raw"},"oauth":{"header":"Authorization","scheme":"bearer"},"hooks":["claudeOverlay"]},
|
||||
usage: {
|
||||
oauthUrl: "https://api.anthropic.com/api/oauth/usage",
|
||||
orgUrl: "https://api.anthropic.com/v1/organizations/{org_id}/usage",
|
||||
settingsUrl: "https://api.anthropic.com/v1/settings"
|
||||
},
|
||||
},
|
||||
oauth: {
|
||||
clientId: "9d1c250a-e61b-44d9-88ed-5944d1962f5e",
|
||||
tokenUrl: "https://api.anthropic.com/v1/oauth/token"
|
||||
authorizeUrl: "https://claude.ai/oauth/authorize",
|
||||
tokenUrl: "https://api.anthropic.com/v1/oauth/token",
|
||||
scopes: ["org:create_api_key", "user:profile", "user:inference"],
|
||||
codeChallengeMethod: "S256",
|
||||
refreshLeadMs: 14400000,
|
||||
refresh: {"encoding":"json"}
|
||||
},
|
||||
models: [
|
||||
{ id: "claude-opus-4-8", name: "Claude Opus 4.8" },
|
||||
@@ -19,5 +46,6 @@ export default {
|
||||
{ id: "claude-opus-4-5-20251101", name: "Claude 4.5 Opus" },
|
||||
{ id: "claude-sonnet-4-5-20250929", name: "Claude 4.5 Sonnet" },
|
||||
{ id: "claude-haiku-4-5-20251001", name: "Claude 4.5 Haiku" }
|
||||
]
|
||||
],
|
||||
features: {"usage":true},
|
||||
};
|
||||
@@ -1,6 +1,19 @@
|
||||
|
||||
export default {
|
||||
"id": "cline",
|
||||
"alias": "cl",
|
||||
display: {
|
||||
"name": "Cline",
|
||||
"icon": "smart_toy",
|
||||
"color": "#5B9BD5",
|
||||
"textIcon": "CL",
|
||||
"website": "https://cline.bot",
|
||||
"notice": {
|
||||
"signupUrl": "https://cline.bot"
|
||||
}
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "cl",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.cline.bot/api/v1/chat/completions",
|
||||
"headers": {
|
||||
@@ -8,6 +21,14 @@ export default {
|
||||
"X-Title": "Cline"
|
||||
},
|
||||
"tokenUrl": "https://api.cline.bot/api/v1/auth/token",
|
||||
"refreshUrl": "https://api.cline.bot/api/v1/auth/refresh",
|
||||
auth: {"combined":true,"header":"Authorization","scheme":"bearer","hooks":["clineHeaders"]},
|
||||
},
|
||||
"oauth": {
|
||||
"appBaseUrl": "https://app.cline.bot",
|
||||
"apiBaseUrl": "https://api.cline.bot",
|
||||
"authorizeUrl": "https://api.cline.bot/api/v1/auth/authorize",
|
||||
"tokenExchangeUrl": "https://api.cline.bot/api/v1/auth/token",
|
||||
"refreshUrl": "https://api.cline.bot/api/v1/auth/refresh"
|
||||
},
|
||||
"models": [
|
||||
@@ -43,5 +64,5 @@ export default {
|
||||
"id": "kwaipilot/kat-coder-pro",
|
||||
"name": "KAT Coder Pro"
|
||||
}
|
||||
]
|
||||
],
|
||||
};
|
||||
@@ -1,9 +1,29 @@
|
||||
|
||||
export default {
|
||||
"id": "cloudflare-ai",
|
||||
"alias": "cloudflare-ai",
|
||||
display: {
|
||||
"name": "Cloudflare",
|
||||
"icon": "cloud",
|
||||
"color": "#F38020",
|
||||
"textIcon": "CF",
|
||||
"website": "https://developers.cloudflare.com/workers-ai/",
|
||||
"notice": {
|
||||
"text": "Workers AI free tier. Requires a Cloudflare API token and Account ID.",
|
||||
"apiKeyUrl": "https://dash.cloudflare.com/profile/api-tokens"
|
||||
}
|
||||
},
|
||||
category: "freeTier",
|
||||
uiAlias: "cf",
|
||||
hasProviderSpecificData: true,
|
||||
aliases: ["cf"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions"
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm", "image"],
|
||||
hasProviderSpecificData: true
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "@cf/meta/llama-3.2-1b-instruct",
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
|
||||
export default {
|
||||
"id": "codebuddy",
|
||||
"alias": "codebuddy",
|
||||
"id": "codebuddy", display: { name: "CodeBuddy", icon: "smart_toy", color: "#006EFF", website: "https://copilot.tencent.com", notice: { signupUrl: "https://copilot.tencent.com" } },
|
||||
category: "oauth",
|
||||
"transport": {
|
||||
"baseUrl": "https://copilot.tencent.com/v1/chat/completions"
|
||||
"baseUrl": "https://copilot.tencent.com/v1/chat/completions",
|
||||
auth: {"combined":true,"header":"Authorization","scheme":"bearer"},
|
||||
},
|
||||
"oauth": {
|
||||
"baseUrl": "https://copilot.tencent.com",
|
||||
"stateUrl": "https://copilot.tencent.com/v2/plugin/auth/state",
|
||||
"tokenUrl": "https://copilot.tencent.com/v2/plugin/auth/token",
|
||||
"refreshUrl": "https://copilot.tencent.com/v2/plugin/auth/token/refresh",
|
||||
"userAgent": "CLI/2.63.2 CodeBuddy/2.63.2",
|
||||
"platform": "CLI",
|
||||
"pollInterval": 5000
|
||||
}
|
||||
};
|
||||
@@ -3,6 +3,23 @@ import { withCodexReviewModels } from "../models/helpers.js";
|
||||
export default {
|
||||
id: "codex",
|
||||
alias: "cx",
|
||||
display: {
|
||||
"name": "OpenAI Codex",
|
||||
"icon": "code",
|
||||
"color": "#3B82F6",
|
||||
"website": "https://chatgpt.com/codex",
|
||||
"notice": {
|
||||
"signupUrl": "https://chatgpt.com/codex"
|
||||
},
|
||||
"deprecated": true,
|
||||
"deprecationNotice": "RISK_NOTICE",
|
||||
"kindNotice": {
|
||||
"image": "Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."
|
||||
}
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "cx",
|
||||
thinkingConfig: {"options":["auto","none","low","medium","high"],"defaultMode":"auto"},
|
||||
transport: {
|
||||
baseUrl: "https://chatgpt.com/backend-api/codex/responses",
|
||||
format: "openai-responses",
|
||||
@@ -11,8 +28,32 @@ export default {
|
||||
"originator": "codex_cli_rs",
|
||||
"User-Agent": "codex_cli_rs/0.136.0"
|
||||
},
|
||||
usage: { url: "https://chatgpt.com/backend-api/wham/usage" }
|
||||
},
|
||||
oauth: {
|
||||
clientId: "app_EMoamEEZ73f0CkXaXp7hrann",
|
||||
tokenUrl: "https://auth.openai.com/oauth/token"
|
||||
authorizeUrl: "https://auth.openai.com/oauth/authorize",
|
||||
tokenUrl: "https://auth.openai.com/oauth/token",
|
||||
scope: "openid profile email offline_access",
|
||||
codeChallengeMethod: "S256",
|
||||
fixedPort: 1455,
|
||||
callbackPath: "/auth/callback",
|
||||
extraParams: {
|
||||
id_token_add_organizations: "true",
|
||||
codex_cli_simplified_flow: "true",
|
||||
originator: "codex_cli_rs"
|
||||
}
|
||||
,
|
||||
refreshLeadMs: 432000000
|
||||
,
|
||||
refresh: {"encoding":"form","scope":"openid profile email offline_access"}
|
||||
,
|
||||
maxRefreshAgeMs: 691200000
|
||||
,
|
||||
trackRefreshAt: true
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm", "image"]
|
||||
},
|
||||
models: withCodexReviewModels([
|
||||
{ id: "gpt-5.5", name: "GPT 5.5" },
|
||||
@@ -27,5 +68,6 @@ export default {
|
||||
{ id: "gpt-5.5-image", name: "GPT 5.5 Image", type: "image", capabilities: ["text2img", "edit"], params: ["size", "quality", "background", "image_detail", "output_format"] },
|
||||
{ id: "gpt-5.4-image", name: "GPT 5.4 Image", type: "image", capabilities: ["text2img", "edit"], params: ["size", "quality", "background", "image_detail", "output_format"] },
|
||||
{ id: "gpt-5.3-image", name: "GPT 5.3 Image", type: "image", capabilities: ["text2img", "edit"], params: ["size", "quality", "background", "image_detail", "output_format"] }
|
||||
])
|
||||
]),
|
||||
features: {"usage":true},
|
||||
};
|
||||
@@ -1,8 +1,21 @@
|
||||
|
||||
export default {
|
||||
"id": "cohere",
|
||||
"alias": "cohere",
|
||||
display: {
|
||||
"name": "Cohere",
|
||||
"icon": "hub",
|
||||
"color": "#39594D",
|
||||
"textIcon": "CO",
|
||||
"website": "https://cohere.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://dashboard.cohere.com/api-keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.cohere.ai/v1/chat/completions"
|
||||
"baseUrl": "https://api.cohere.ai/v1/chat/completions",
|
||||
"validateUrl": "https://api.cohere.ai/v1/models"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
|
||||
export default {
|
||||
"id": "comfyui",
|
||||
"alias": "comfyui",
|
||||
display: {
|
||||
"name": "ComfyUI",
|
||||
"icon": "account_tree",
|
||||
"color": "#4CAF50",
|
||||
"textIcon": "CF",
|
||||
"website": "https://github.com/comfyanonymous/ComfyUI"
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": null,
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,20 @@
|
||||
export default {
|
||||
"id": "commandcode",
|
||||
"alias": "commandcode",
|
||||
display: {
|
||||
"name": "Command Code",
|
||||
"icon": "smart_toy",
|
||||
"color": "#000000",
|
||||
"textIcon": "CC",
|
||||
"website": "https://commandcode.ai",
|
||||
"notice": {
|
||||
"text": "Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",
|
||||
"apiKeyUrl": "https://commandcode.ai/studio"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "cmc",
|
||||
aliases: ["cmc"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.commandcode.ai/alpha/generate",
|
||||
"format": "commandcode",
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
export default {
|
||||
"id": "completions",
|
||||
"alias": "completions",
|
||||
"transport": {
|
||||
"baseUrl": "https://completions.me/api/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "claude-opus-4",
|
||||
"name": "Claude Opus 4"
|
||||
},
|
||||
{
|
||||
"id": "claude-sonnet-4",
|
||||
"name": "Claude Sonnet 4"
|
||||
},
|
||||
{
|
||||
"id": "gpt-4o",
|
||||
"name": "GPT-4o"
|
||||
},
|
||||
{
|
||||
"id": "gemini-2.0-flash",
|
||||
"name": "Gemini 2.0 Flash"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,6 +1,18 @@
|
||||
|
||||
export default {
|
||||
"id": "cursor",
|
||||
"alias": "cu",
|
||||
display: {
|
||||
"name": "Cursor IDE",
|
||||
"icon": "edit_note",
|
||||
"color": "#00D4AA",
|
||||
"website": "https://cursor.com",
|
||||
"notice": {
|
||||
"signupUrl": "https://cursor.com"
|
||||
}
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "cu",
|
||||
"transport": {
|
||||
"baseUrl": "https://api2.cursor.sh",
|
||||
"chatPath": "/aiserver.v1.ChatService/StreamUnifiedChatWithTools",
|
||||
@@ -13,6 +25,20 @@ export default {
|
||||
},
|
||||
"clientVersion": "3.1.0"
|
||||
},
|
||||
"oauth": {
|
||||
"apiEndpoint": "https://api2.cursor.sh",
|
||||
"chatEndpoint": "/aiserver.v1.ChatService/StreamUnifiedChatWithTools",
|
||||
"modelsEndpoint": "/aiserver.v1.AiService/GetDefaultModelNudgeData",
|
||||
"api3Endpoint": "https://api3.cursor.sh",
|
||||
"agentEndpoint": "https://agent.api5.cursor.sh",
|
||||
"agentNonPrivacyEndpoint": "https://agentn.api5.cursor.sh",
|
||||
"clientVersion": "3.1.0",
|
||||
"clientType": "ide",
|
||||
"dbKeys": {
|
||||
"accessToken": "cursorAuth/accessToken",
|
||||
"machineId": "storage.serviceMachineId"
|
||||
}
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "default",
|
||||
|
||||
@@ -1,9 +1,29 @@
|
||||
|
||||
export default {
|
||||
"id": "deepgram",
|
||||
"alias": "deepgram",
|
||||
display: {
|
||||
"name": "Deepgram",
|
||||
"icon": "mic",
|
||||
"color": "#13EF93",
|
||||
"textIcon": "DG",
|
||||
"website": "https://deepgram.com",
|
||||
"notice": {
|
||||
"text": "$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",
|
||||
"apiKeyUrl": "https://console.deepgram.com/api-keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "dg",
|
||||
authType: "apikey",
|
||||
aliases: ["dg"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.deepgram.com/v1/listen"
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["stt"],
|
||||
sttConfig: { baseUrl: "https://api.deepgram.com/v1/listen", authType: "apikey", authHeader: "token", format: "deepgram", models: [{ id: "nova-3", name: "Nova 3" }, { id: "nova-2", name: "Nova 2" }, { id: "nova", name: "Nova" }] }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "nova-3",
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
export default {
|
||||
"id": "deepinfra",
|
||||
"alias": "deepinfra",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.deepinfra.com/v1/openai/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "meta-llama/Meta-Llama-3.1-70B-Instruct",
|
||||
"name": "Llama 3.1 70B"
|
||||
},
|
||||
{
|
||||
"id": "deepseek-ai/DeepSeek-V3",
|
||||
"name": "DeepSeek V3"
|
||||
},
|
||||
{
|
||||
"id": "Qwen/Qwen2.5-72B-Instruct",
|
||||
"name": "Qwen 2.5 72B"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,8 +1,24 @@
|
||||
|
||||
export default {
|
||||
"id": "deepseek",
|
||||
"alias": "deepseek",
|
||||
display: {
|
||||
"name": "DeepSeek",
|
||||
"icon": "bolt",
|
||||
"color": "#4D6BFE",
|
||||
"textIcon": "DS",
|
||||
"website": "https://deepseek.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://platform.deepseek.com/api_keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "ds",
|
||||
aliases: ["ds"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.deepseek.com/chat/completions"
|
||||
"baseUrl": "https://api.deepseek.com/chat/completions",
|
||||
"validateUrl": "https://api.deepseek.com/models",
|
||||
reasoningInject: { scope: "all" }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
export default {
|
||||
"id": "enally",
|
||||
"alias": "enally",
|
||||
"transport": {
|
||||
"baseUrl": "https://ai.enally.in/v1/chat/completions",
|
||||
"authHeader": "x-api-key"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "gpt-4o",
|
||||
"name": "GPT-4o"
|
||||
},
|
||||
{
|
||||
"id": "gpt-4o-mini",
|
||||
"name": "GPT-4o Mini"
|
||||
},
|
||||
{
|
||||
"id": "claude-3-5-sonnet",
|
||||
"name": "Claude 3.5 Sonnet"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,6 +1,21 @@
|
||||
|
||||
export default {
|
||||
"id": "fal-ai",
|
||||
"alias": "fal-ai",
|
||||
display: {
|
||||
"name": "Fal.ai",
|
||||
"icon": "image",
|
||||
"color": "#2563EB",
|
||||
"textIcon": "FL",
|
||||
"website": "https://fal.ai",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://fal.ai/dashboard/keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "fal",
|
||||
authType: "apikey",
|
||||
aliases: ["fal"],
|
||||
"transport": null,
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,8 +1,25 @@
|
||||
|
||||
export default {
|
||||
"id": "fireworks",
|
||||
"alias": "fireworks",
|
||||
display: {
|
||||
"name": "Fireworks AI",
|
||||
"icon": "local_fire_department",
|
||||
"color": "#7B2EF2",
|
||||
"textIcon": "FW",
|
||||
"website": "https://fireworks.ai",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://fireworks.ai/account/api-keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
authType: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.fireworks.ai/inference/v1/chat/completions"
|
||||
"baseUrl": "https://api.fireworks.ai/inference/v1/chat/completions",
|
||||
"validateUrl": "https://api.fireworks.ai/inference/v1/models"
|
||||
},
|
||||
media: {
|
||||
embeddingConfig: { baseUrl: "https://api.fireworks.ai/inference/v1/embeddings" }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
export default {
|
||||
"id": "freetheai",
|
||||
"alias": "freetheai",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.freetheai.xyz/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "gpt-4o",
|
||||
"name": "GPT-4o"
|
||||
},
|
||||
{
|
||||
"id": "claude-3-5-sonnet",
|
||||
"name": "Claude 3.5 Sonnet"
|
||||
},
|
||||
{
|
||||
"id": "gemini-1.5-pro",
|
||||
"name": "Gemini 1.5 Pro"
|
||||
},
|
||||
{
|
||||
"id": "deepseek-chat",
|
||||
"name": "DeepSeek Chat"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -3,11 +3,42 @@ import { GOOGLE_OAUTH_CLIENT } from "../shared.js";
|
||||
export default {
|
||||
"id": "gemini-cli",
|
||||
"alias": "gc",
|
||||
display: {
|
||||
"name": "Gemini CLI",
|
||||
"icon": "terminal",
|
||||
"color": "#4285F4",
|
||||
"website": "https://github.com/google-gemini/gemini-cli",
|
||||
"notice": {
|
||||
"signupUrl": "https://github.com/google-gemini/gemini-cli"
|
||||
},
|
||||
"deprecated": true,
|
||||
"deprecationNotice": "RISK_NOTICE"
|
||||
},
|
||||
category: "free",
|
||||
uiAlias: "gc",
|
||||
"transport": {
|
||||
"baseUrl": "https://cloudcode-pa.googleapis.com/v1internal",
|
||||
"format": "gemini-cli",
|
||||
cliVersion: "0.34.0",
|
||||
apiClient: "google-genai-sdk/1.41.0 gl-node/v22.19.0",
|
||||
usage: {
|
||||
quotaUrl: "https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",
|
||||
loadCodeAssistUrl: "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"
|
||||
},
|
||||
...GOOGLE_OAUTH_CLIENT
|
||||
},
|
||||
"oauth": {
|
||||
"authorizeUrl": "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
"tokenUrl": "https://oauth2.googleapis.com/token",
|
||||
"userInfoUrl": "https://www.googleapis.com/oauth2/v1/userinfo",
|
||||
"scopes": [
|
||||
"https://www.googleapis.com/auth/cloud-platform",
|
||||
"https://www.googleapis.com/auth/userinfo.email",
|
||||
"https://www.googleapis.com/auth/userinfo.profile"
|
||||
]
|
||||
,
|
||||
refresh: {"encoding":"form"}
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "gemini-3-flash-preview",
|
||||
@@ -17,5 +48,6 @@ export default {
|
||||
"id": "gemini-3-pro-preview",
|
||||
"name": "Gemini 3 Pro Preview"
|
||||
}
|
||||
]
|
||||
],
|
||||
features: {"usage":true},
|
||||
};
|
||||
@@ -3,10 +3,30 @@ import { GOOGLE_OAUTH_CLIENT } from "../shared.js";
|
||||
export default {
|
||||
"id": "gemini",
|
||||
"alias": "gemini",
|
||||
display: {
|
||||
"name": "Gemini",
|
||||
"icon": "diamond",
|
||||
"color": "#4285F4",
|
||||
"textIcon": "GE",
|
||||
"website": "https://ai.google.dev",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://aistudio.google.com/app/apikey"
|
||||
},
|
||||
"mediaPriority": 1
|
||||
},
|
||||
category: "freeTier",
|
||||
"transport": {
|
||||
"baseUrl": "https://generativelanguage.googleapis.com/v1beta/models",
|
||||
"format": "gemini",
|
||||
...GOOGLE_OAUTH_CLIENT
|
||||
...GOOGLE_OAUTH_CLIENT,
|
||||
auth: {"apiKey":{"header":"x-goog-api-key","scheme":"raw"},"oauth":{"header":"Authorization","scheme":"bearer"}},
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm", "embedding", "image", "imageToText", "webSearch", "tts", "stt"],
|
||||
ttsConfig: { baseUrl: "https://generativelanguage.googleapis.com/v1beta/models", authType: "apikey", authHeader: "key", format: "gemini-tts", models: [{ id: "gemini-2.5-flash-preview-tts", name: "Gemini 2.5 Flash TTS" }, { id: "gemini-2.5-pro-preview-tts", name: "Gemini 2.5 Pro TTS" }] },
|
||||
sttConfig: { baseUrl: "https://generativelanguage.googleapis.com/v1beta/models", authType: "apikey", authHeader: "key", format: "gemini-stt", models: [{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro (Best)" }, { id: "gemini-2.5-flash", name: "Gemini 2.5 Flash" }, { id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash Lite (Cheapest)" }, { id: "gemini-2.0-flash", name: "Gemini 2.0 Flash" }] },
|
||||
embeddingConfig: { baseUrl: "https://generativelanguage.googleapis.com/v1beta/models", authType: "apikey", authHeader: "key", models: [{ id: "text-embedding-004", name: "Text Embedding 004", dimensions: 768 }, { id: "embedding-001", name: "Embedding 001", dimensions: 768 }] },
|
||||
searchViaChat: { defaultModel: "gemini-2.5-flash", pricingUrl: "https://ai.google.dev/pricing", freeTier: "Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio." }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
@@ -119,5 +139,5 @@ export default {
|
||||
"prompt"
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
};
|
||||
@@ -1,6 +1,20 @@
|
||||
|
||||
export default {
|
||||
"id": "github",
|
||||
"alias": "gh",
|
||||
display: {
|
||||
"name": "GitHub Copilot",
|
||||
"icon": "code",
|
||||
"color": "#333333",
|
||||
"website": "https://github.com/features/copilot",
|
||||
"notice": {
|
||||
"signupUrl": "https://github.com/features/copilot"
|
||||
},
|
||||
"deprecated": true,
|
||||
"deprecationNotice": "RISK_NOTICE"
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "gh",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.githubcopilot.com/chat/completions",
|
||||
"responsesUrl": "https://api.githubcopilot.com/responses",
|
||||
@@ -16,7 +30,25 @@ export default {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
"clientId": "Iv1.b507a08c87ecfe98"
|
||||
copilot: { vscodeVersion: "1.110.0", chatVersion: "0.38.0", userAgent: "GitHubCopilotChat/0.38.0", apiVersion: "2025-04-01" },
|
||||
usage: { url: "https://api.github.com/copilot_internal/user" }
|
||||
},
|
||||
"oauth": {
|
||||
"clientId": "Iv1.b507a08c87ecfe98",
|
||||
"authorizeUrl": "https://github.com/login/oauth/authorize",
|
||||
"deviceCodeUrl": "https://github.com/login/device/code",
|
||||
"tokenUrl": "https://github.com/login/oauth/access_token",
|
||||
"userInfoUrl": "https://api.github.com/user",
|
||||
"scopes": "read:user",
|
||||
"apiVersion": "2022-11-28",
|
||||
"copilotTokenUrl": "https://api.github.com/copilot_internal/v2/token",
|
||||
"userAgent": "GitHubCopilotChat/0.26.7",
|
||||
"editorVersion": "vscode/1.85.0",
|
||||
"editorPluginVersion": "copilot-chat/0.26.7"
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm", "embedding"],
|
||||
embeddingConfig: { baseUrl: "https://models.github.ai/inference/embeddings", authType: "apikey", authHeader: "bearer", models: [{ id: "text-embedding-3-small", name: "Text Embedding 3 Small (GitHub)", dimensions: 1536 }, { id: "text-embedding-3-large", name: "Text Embedding 3 Large (GitHub)", dimensions: 3072 }] }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
@@ -125,5 +157,6 @@ export default {
|
||||
"name": "Text Embedding 3 Large (GitHub)",
|
||||
"type": "embedding"
|
||||
}
|
||||
]
|
||||
],
|
||||
features: {"usage":true},
|
||||
};
|
||||
@@ -1,7 +1,17 @@
|
||||
|
||||
export default {
|
||||
"id": "gitlab",
|
||||
"alias": "gitlab",
|
||||
"id": "gitlab", display: { name: "GitLab Duo", icon: "code", color: "#FC6D26", textIcon: "GL", website: "https://gitlab.com", notice: { signupUrl: "https://gitlab.com" } },
|
||||
category: "oauth",
|
||||
"transport": {
|
||||
"baseUrl": "https://gitlab.com/api/v4/chat/completions"
|
||||
"baseUrl": "https://gitlab.com/api/v4/chat/completions",
|
||||
auth: {"combined":true,"header":"Authorization","scheme":"bearer"},
|
||||
},
|
||||
"oauth": {
|
||||
"defaultBaseUrl": "https://gitlab.com",
|
||||
"authorizeUrlPath": "/oauth/authorize",
|
||||
"tokenUrlPath": "/oauth/token",
|
||||
"userInfoUrlPath": "/api/v4/user",
|
||||
"scope": "api read_user",
|
||||
"codeChallengeMethod": "S256"
|
||||
}
|
||||
};
|
||||
@@ -1,21 +0,0 @@
|
||||
export default {
|
||||
"id": "glhf",
|
||||
"alias": "glhf",
|
||||
"transport": {
|
||||
"baseUrl": "https://glhf.chat/api/openai/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "hf:meta-llama/Meta-Llama-3.1-405B-Instruct",
|
||||
"name": "Llama 3.1 405B"
|
||||
},
|
||||
{
|
||||
"id": "hf:meta-llama/Meta-Llama-3.1-70B-Instruct",
|
||||
"name": "Llama 3.1 70B"
|
||||
},
|
||||
{
|
||||
"id": "hf:Qwen/Qwen2.5-72B-Instruct",
|
||||
"name": "Qwen 2.5 72B"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,9 +1,22 @@
|
||||
|
||||
export default {
|
||||
"id": "glm-cn",
|
||||
"alias": "glm-cn",
|
||||
display: {
|
||||
"name": "GLM (China)",
|
||||
"icon": "code",
|
||||
"color": "#DC2626",
|
||||
"textIcon": "GC",
|
||||
"website": "https://open.bigmodel.cn",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://open.bigmodel.cn/usercenter/apikeys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",
|
||||
"headers": {}
|
||||
"headers": {},
|
||||
usage: { url: "https://open.bigmodel.cn/api/monitor/usage/quota/limit" }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
@@ -26,5 +39,6 @@ export default {
|
||||
"id": "glm-4.5-air",
|
||||
"name": "GLM-4.5-Air"
|
||||
}
|
||||
]
|
||||
],
|
||||
features: {"usage":true,"usageApikey":true},
|
||||
};
|
||||
@@ -3,16 +3,30 @@ import { CLAUDE_API_HEADERS } from "../shared.js";
|
||||
export default {
|
||||
id: "glm",
|
||||
alias: "glm",
|
||||
display: {
|
||||
"name": "GLM Coding",
|
||||
"icon": "code",
|
||||
"color": "#2563EB",
|
||||
"textIcon": "GL",
|
||||
"website": "https://open.bigmodel.cn",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://open.bigmodel.cn/usercenter/apikeys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
transport: {
|
||||
baseUrl: "https://api.z.ai/api/anthropic/v1/messages",
|
||||
format: "claude",
|
||||
urlSuffix: "?beta=true",
|
||||
headers: { ...CLAUDE_API_HEADERS }
|
||||
headers: { ...CLAUDE_API_HEADERS },
|
||||
auth: { "combined": true, "header": "x-api-key", "scheme": "raw" },
|
||||
usage: { url: "https://api.z.ai/api/monitor/usage/quota/limit" },
|
||||
},
|
||||
models: [
|
||||
{ id: "glm-5.1", name: "GLM 5.1" },
|
||||
{ id: "glm-5", name: "GLM 5" },
|
||||
{ id: "glm-4.7", name: "GLM 4.7" },
|
||||
{ id: "glm-4.6v", name: "GLM 4.6V (Vision)" }
|
||||
]
|
||||
],
|
||||
features: { "usage": true, "usageApikey": true },
|
||||
};
|
||||
@@ -1,6 +1,20 @@
|
||||
|
||||
export default {
|
||||
"id": "grok-web",
|
||||
"alias": "grok-web",
|
||||
display: {
|
||||
"name": "Grok Web (Subscription)",
|
||||
"icon": "auto_awesome",
|
||||
"color": "#1DA1F2",
|
||||
"textIcon": "GW",
|
||||
"website": "https://grok.com"
|
||||
},
|
||||
category: "webCookie",
|
||||
uiAlias: "gw",
|
||||
authType: "cookie",
|
||||
authHint: "Paste your sso= cookie value from grok.com",
|
||||
passthroughModels: true,
|
||||
aliases: ["gw"],
|
||||
"transport": {
|
||||
"baseUrl": "https://grok.com/rest/app-chat/conversations/new",
|
||||
"format": "grok-web",
|
||||
|
||||
@@ -1,8 +1,25 @@
|
||||
|
||||
export default {
|
||||
"id": "groq",
|
||||
"alias": "groq",
|
||||
display: {
|
||||
"name": "Groq",
|
||||
"icon": "speed",
|
||||
"color": "#F55036",
|
||||
"textIcon": "GQ",
|
||||
"website": "https://groq.com",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://console.groq.com/keys"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.groq.com/openai/v1/chat/completions"
|
||||
"baseUrl": "https://api.groq.com/openai/v1/chat/completions",
|
||||
"validateUrl": "https://api.groq.com/openai/v1/models"
|
||||
},
|
||||
media: {
|
||||
serviceKinds: ["llm", "imageToText", "stt"],
|
||||
sttConfig: { baseUrl: "https://api.groq.com/openai/v1/audio/transcriptions", authType: "apikey", authHeader: "bearer", format: "openai", models: [{ id: "whisper-large-v3", name: "Whisper Large v3" }, { id: "whisper-large-v3-turbo", name: "Whisper Large v3 Turbo" }, { id: "distil-whisper-large-v3-en", name: "Distil Whisper Large v3 EN" }] }
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
|
||||
export default {
|
||||
"id": "huggingface",
|
||||
"alias": "huggingface",
|
||||
display: {
|
||||
"name": "HuggingFace",
|
||||
"icon": "face",
|
||||
"color": "#FFD21E",
|
||||
"textIcon": "HF",
|
||||
"website": "https://huggingface.co",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://huggingface.co/settings/tokens"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "hf",
|
||||
authType: "apikey",
|
||||
hiddenKinds: ["tts"],
|
||||
aliases: ["hf"],
|
||||
"transport": null,
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,8 +1,24 @@
|
||||
|
||||
export default {
|
||||
"id": "hyperbolic",
|
||||
"alias": "hyperbolic",
|
||||
display: {
|
||||
"name": "Hyperbolic",
|
||||
"icon": "bolt",
|
||||
"color": "#00D4FF",
|
||||
"textIcon": "HY",
|
||||
"website": "https://hyperbolic.xyz",
|
||||
"notice": {
|
||||
"apiKeyUrl": "https://app.hyperbolic.xyz/settings"
|
||||
}
|
||||
},
|
||||
category: "apikey",
|
||||
uiAlias: "hyp",
|
||||
authType: "apikey",
|
||||
aliases: ["hyp"],
|
||||
"transport": {
|
||||
"baseUrl": "https://api.hyperbolic.xyz/v1/chat/completions"
|
||||
"baseUrl": "https://api.hyperbolic.xyz/v1/chat/completions",
|
||||
"validateUrl": "https://api.hyperbolic.xyz/v1/models"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,15 +1,25 @@
|
||||
|
||||
export default {
|
||||
"id": "iflow",
|
||||
"alias": "if",
|
||||
"id": "iflow", alias: "if", display: { name: "iFlow AI", icon: "water_drop", color: "#6366F1", website: "https://iflow.cn", notice: { signupUrl: "https://iflow.cn" } },
|
||||
category: "oauth",
|
||||
"transport": {
|
||||
"baseUrl": "https://apis.iflow.cn/v1/chat/completions",
|
||||
"headers": {
|
||||
"User-Agent": "iFlow-Cli"
|
||||
},
|
||||
}
|
||||
},
|
||||
"oauth": {
|
||||
"clientId": "10009311001",
|
||||
"clientSecret": "4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",
|
||||
"authorizeUrl": "https://iflow.cn/oauth",
|
||||
"tokenUrl": "https://iflow.cn/oauth/token",
|
||||
"authUrl": "https://iflow.cn/oauth"
|
||||
"userInfoUrl": "https://iflow.cn/api/oauth/getUserInfo",
|
||||
"extraParams": {
|
||||
"loginMethod": "phone",
|
||||
"type": "phone"
|
||||
}
|
||||
,
|
||||
refreshLeadMs: 86400000
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
|
||||
@@ -1,104 +1,75 @@
|
||||
// Auto-generated: static imports of all registry entries
|
||||
import p0 from './agentrouter.js';
|
||||
import p1 from './ai21.js';
|
||||
import p2 from './aimlapi.js';
|
||||
import p3 from './alicode-intl.js';
|
||||
import p4 from './alicode.js';
|
||||
import p5 from './anthropic.js';
|
||||
import p6 from './antigravity.js';
|
||||
import p7 from './assemblyai.js';
|
||||
import p8 from './azure.js';
|
||||
import p9 from './baseten.js';
|
||||
import p10 from './bazaarlink.js';
|
||||
import p11 from './black-forest-labs.js';
|
||||
import p12 from './blackbox.js';
|
||||
import p13 from './byteplus.js';
|
||||
import p14 from './bytez.js';
|
||||
import p15 from './cerebras.js';
|
||||
import p16 from './chutes.js';
|
||||
import p17 from './claude.js';
|
||||
import p18 from './cline.js';
|
||||
import p19 from './cloudflare-ai.js';
|
||||
import p20 from './codebuddy.js';
|
||||
import p21 from './codex.js';
|
||||
import p22 from './cohere.js';
|
||||
import p23 from './comfyui.js';
|
||||
import p24 from './commandcode.js';
|
||||
import p25 from './completions.js';
|
||||
import p26 from './cursor.js';
|
||||
import p27 from './deepgram.js';
|
||||
import p28 from './deepinfra.js';
|
||||
import p29 from './deepseek.js';
|
||||
import p30 from './enally.js';
|
||||
import p31 from './fal-ai.js';
|
||||
import p32 from './fireworks.js';
|
||||
import p33 from './freetheai.js';
|
||||
import p34 from './gemini-cli.js';
|
||||
import p35 from './gemini.js';
|
||||
import p36 from './github.js';
|
||||
import p37 from './gitlab.js';
|
||||
import p38 from './glhf.js';
|
||||
import p39 from './glm-cn.js';
|
||||
import p40 from './glm.js';
|
||||
import p41 from './grok-web.js';
|
||||
import p42 from './groq.js';
|
||||
import p43 from './huggingface.js';
|
||||
import p44 from './hyperbolic.js';
|
||||
import p45 from './iflow.js';
|
||||
import p46 from './inference-net.js';
|
||||
import p47 from './kilocode.js';
|
||||
import p48 from './kimi-coding.js';
|
||||
import p49 from './kimi.js';
|
||||
import p50 from './kiro.js';
|
||||
import p51 from './kluster.js';
|
||||
import p52 from './lepton.js';
|
||||
import p53 from './llm7.js';
|
||||
import p54 from './longcat.js';
|
||||
import p55 from './mimo-free.js';
|
||||
import p56 from './minimax-cn.js';
|
||||
import p57 from './minimax.js';
|
||||
import p58 from './mistral.js';
|
||||
import p59 from './mmf.js';
|
||||
import p60 from './modal.js';
|
||||
import p61 from './morph.js';
|
||||
import p62 from './nanobanana.js';
|
||||
import p63 from './nebius.js';
|
||||
import p64 from './nlpcloud.js';
|
||||
import p65 from './nous-research.js';
|
||||
import p66 from './novita.js';
|
||||
import p67 from './nscale.js';
|
||||
import p68 from './nvidia.js';
|
||||
import p69 from './ollama-local.js';
|
||||
import p70 from './ollama.js';
|
||||
import p71 from './openai.js';
|
||||
import p72 from './opencode-go.js';
|
||||
import p73 from './opencode.js';
|
||||
import p74 from './openrouter.js';
|
||||
import p75 from './perplexity-web.js';
|
||||
import p76 from './perplexity.js';
|
||||
import p77 from './predibase.js';
|
||||
import p78 from './publicai.js';
|
||||
import p79 from './puter.js';
|
||||
import p80 from './qoder.js';
|
||||
import p81 from './qwen.js';
|
||||
import p82 from './recraft.js';
|
||||
import p83 from './reka.js';
|
||||
import p84 from './runwayml.js';
|
||||
import p85 from './sambanova.js';
|
||||
import p86 from './scaleway.js';
|
||||
import p87 from './sdwebui.js';
|
||||
import p88 from './siliconflow.js';
|
||||
import p89 from './stability-ai.js';
|
||||
import p90 from './together.js';
|
||||
import p91 from './uncloseai.js';
|
||||
import p92 from './vercel-ai-gateway.js';
|
||||
import p93 from './vertex-partner.js';
|
||||
import p94 from './vertex.js';
|
||||
import p95 from './volcengine-ark.js';
|
||||
import p96 from './voyage-ai.js';
|
||||
import p97 from './xai.js';
|
||||
import p98 from './xiaomi-mimo.js';
|
||||
import p99 from './xiaomi-tokenplan.js';
|
||||
import p0 from './alicode-intl.js';
|
||||
import p1 from './alicode.js';
|
||||
import p2 from './anthropic.js';
|
||||
import p3 from './antigravity.js';
|
||||
import p4 from './assemblyai.js';
|
||||
import p5 from './azure.js';
|
||||
import p6 from './black-forest-labs.js';
|
||||
import p7 from './blackbox.js';
|
||||
import p8 from './byteplus.js';
|
||||
import p9 from './cerebras.js';
|
||||
import p10 from './chutes.js';
|
||||
import p11 from './claude.js';
|
||||
import p12 from './cline.js';
|
||||
import p13 from './cloudflare-ai.js';
|
||||
import p14 from './codebuddy.js';
|
||||
import p15 from './codex.js';
|
||||
import p16 from './cohere.js';
|
||||
import p17 from './comfyui.js';
|
||||
import p18 from './commandcode.js';
|
||||
import p19 from './cursor.js';
|
||||
import p20 from './deepgram.js';
|
||||
import p21 from './deepseek.js';
|
||||
import p22 from './fal-ai.js';
|
||||
import p23 from './fireworks.js';
|
||||
import p24 from './gemini-cli.js';
|
||||
import p25 from './gemini.js';
|
||||
import p26 from './github.js';
|
||||
import p27 from './gitlab.js';
|
||||
import p28 from './glm-cn.js';
|
||||
import p29 from './glm.js';
|
||||
import p30 from './grok-web.js';
|
||||
import p31 from './groq.js';
|
||||
import p32 from './huggingface.js';
|
||||
import p33 from './hyperbolic.js';
|
||||
import p34 from './iflow.js';
|
||||
import p35 from './kilocode.js';
|
||||
import p36 from './kimi-coding.js';
|
||||
import p37 from './kimi.js';
|
||||
import p38 from './kiro.js';
|
||||
import p39 from './mimo-free.js';
|
||||
import p40 from './minimax-cn.js';
|
||||
import p41 from './minimax.js';
|
||||
import p42 from './mistral.js';
|
||||
import p43 from './mmf.js';
|
||||
import p44 from './nanobanana.js';
|
||||
import p45 from './nebius.js';
|
||||
import p46 from './nvidia.js';
|
||||
import p47 from './ollama-local.js';
|
||||
import p48 from './ollama.js';
|
||||
import p49 from './openai.js';
|
||||
import p50 from './opencode-go.js';
|
||||
import p51 from './opencode.js';
|
||||
import p52 from './openrouter.js';
|
||||
import p53 from './perplexity-web.js';
|
||||
import p54 from './perplexity.js';
|
||||
import p55 from './qoder.js';
|
||||
import p56 from './qwen.js';
|
||||
import p57 from './recraft.js';
|
||||
import p58 from './runwayml.js';
|
||||
import p59 from './sdwebui.js';
|
||||
import p60 from './siliconflow.js';
|
||||
import p61 from './stability-ai.js';
|
||||
import p62 from './together.js';
|
||||
import p63 from './vercel-ai-gateway.js';
|
||||
import p64 from './vertex-partner.js';
|
||||
import p65 from './vertex.js';
|
||||
import p66 from './volcengine-ark.js';
|
||||
import p67 from './voyage-ai.js';
|
||||
import p68 from './xai.js';
|
||||
import p69 from './xiaomi-mimo.js';
|
||||
import p70 from './xiaomi-tokenplan.js';
|
||||
|
||||
export default [
|
||||
p0,
|
||||
@@ -171,34 +142,5 @@ export default [
|
||||
p67,
|
||||
p68,
|
||||
p69,
|
||||
p70,
|
||||
p71,
|
||||
p72,
|
||||
p73,
|
||||
p74,
|
||||
p75,
|
||||
p76,
|
||||
p77,
|
||||
p78,
|
||||
p79,
|
||||
p80,
|
||||
p81,
|
||||
p82,
|
||||
p83,
|
||||
p84,
|
||||
p85,
|
||||
p86,
|
||||
p87,
|
||||
p88,
|
||||
p89,
|
||||
p90,
|
||||
p91,
|
||||
p92,
|
||||
p93,
|
||||
p94,
|
||||
p95,
|
||||
p96,
|
||||
p97,
|
||||
p98,
|
||||
p99
|
||||
p70
|
||||
];
|
||||
@@ -1,21 +0,0 @@
|
||||
export default {
|
||||
"id": "inference-net",
|
||||
"alias": "inference-net",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.inference.net/v1/chat/completions"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "meta-llama/llama-3.3-70b-instruct/fp-16",
|
||||
"name": "Llama 3.3 70B"
|
||||
},
|
||||
{
|
||||
"id": "deepseek/deepseek-v3-0324",
|
||||
"name": "DeepSeek V3"
|
||||
},
|
||||
{
|
||||
"id": "mistralai/mistral-nemo-12b-instruct/fp-16",
|
||||
"name": "Mistral Nemo 12B"
|
||||
}
|
||||
]
|
||||
};
|
||||
@@ -1,9 +1,28 @@
|
||||
|
||||
export default {
|
||||
"id": "kilocode",
|
||||
"alias": "kc",
|
||||
display: {
|
||||
"name": "Kilo Code",
|
||||
"icon": "code",
|
||||
"color": "#FF6B35",
|
||||
"textIcon": "KC",
|
||||
"website": "https://kilocode.ai",
|
||||
"notice": {
|
||||
"signupUrl": "https://kilocode.ai"
|
||||
}
|
||||
},
|
||||
category: "oauth",
|
||||
uiAlias: "kc",
|
||||
"transport": {
|
||||
"baseUrl": "https://api.kilo.ai/api/openrouter/chat/completions",
|
||||
"headers": {}
|
||||
"headers": {},
|
||||
auth: {"combined":true,"header":"Authorization","scheme":"bearer","hooks":["kilocodeOrg"]},
|
||||
},
|
||||
"oauth": {
|
||||
"apiBaseUrl": "https://api.kilo.ai",
|
||||
"initiateUrl": "https://api.kilo.ai/api/device-auth/codes",
|
||||
"pollUrlBase": "https://api.kilo.ai/api/device-auth/codes"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
@@ -38,5 +57,5 @@ export default {
|
||||
"id": "deepseek/deepseek-reasoner",
|
||||
"name": "DeepSeek Reasoner"
|
||||
}
|
||||
]
|
||||
],
|
||||
};
|
||||
@@ -3,6 +3,8 @@ import { CLAUDE_API_HEADERS, KIMI_CODING_BASE_URL } from "../shared.js";
|
||||
export default {
|
||||
id: "kimi-coding",
|
||||
alias: "kmc",
|
||||
display: { name: "Kimi Coding", icon: "psychology", color: "#1E40AF", textIcon: "KC", website: "https://kimi.moonshot.cn", notice: { signupUrl: "https://kimi.moonshot.cn" } },
|
||||
category: "oauth",
|
||||
transport: {
|
||||
baseUrl: KIMI_CODING_BASE_URL,
|
||||
format: "claude",
|
||||
@@ -10,12 +12,20 @@ export default {
|
||||
headers: { ...CLAUDE_API_HEADERS },
|
||||
clientId: "17e5f671-d194-4dfb-9706-5516cb48c098",
|
||||
tokenUrl: "https://auth.kimi.com/api/oauth/token",
|
||||
refreshUrl: "https://auth.kimi.com/api/oauth/token"
|
||||
refreshUrl: "https://auth.kimi.com/api/oauth/token",
|
||||
auth: {"combined":true,"header":"x-api-key","scheme":"raw","hooks":["kimiHeaders"]},
|
||||
},
|
||||
oauth: {
|
||||
deviceCodeUrl: "https://auth.kimi.com/api/oauth/device_authorization",
|
||||
tokenUrl: "https://auth.kimi.com/api/oauth/token"
|
||||
,
|
||||
refreshLeadMs: 300000
|
||||
},
|
||||
models: [
|
||||
{ id: "kimi-k2.6", name: "Kimi K2.6" },
|
||||
{ id: "kimi-k2.5", name: "Kimi K2.5" },
|
||||
{ id: "kimi-k2.5-thinking", name: "Kimi K2.5 Thinking" },
|
||||
{ id: "kimi-latest", name: "Kimi Latest" }
|
||||
]
|
||||
],
|
||||
features: {"usage":true},
|
||||
};
|
||||
Loaded 50 of 166 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user