feat: add AICoding partner provider presets and i18n promotion text

Add AICoding as a partner provider across all five apps (Claude, Codex,
Gemini, OpenClaw, OpenCode) with endpoint, API key URL, and partner
promotion configuration. Add trilingual (zh/en/ja) promotion text for
the first top-up discount.
This commit is contained in:
Jason
2026-02-24 23:08:22 +08:00
parent e516f83c19
commit a254304a00
8 changed files with 141 additions and 5 deletions
+19
View File
@@ -476,6 +476,25 @@ export const providerPresets: ProviderPreset[] = [
icon: "aicodemirror",
iconColor: "#000000",
},
{
name: "AICoding",
websiteUrl: "https://www.aicoding.sh",
apiKeyUrl: "https://www.aicoding.sh/i/CCSWITCH",
settingsConfig: {
env: {
ANTHROPIC_BASE_URL: "https://api.aicoding.sh",
ANTHROPIC_AUTH_TOKEN: "",
},
},
endpointCandidates: [
"https://api.aicoding.sh",
],
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "aicoding", // 促销信息 i18n key
icon: "aicoding",
iconColor: "#000000",
},
{
name: "OpenRouter",
websiteUrl: "https://openrouter.ai",
+18
View File
@@ -227,6 +227,24 @@ requires_openai_auth = true`,
icon: "aicodemirror",
iconColor: "#000000",
},
{
name: "AICoding",
websiteUrl: "https://www.aicoding.sh",
apiKeyUrl: "https://www.aicoding.sh/i/CCSWITCH",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"aicoding",
"https://api.aicoding.sh",
"gpt-5.3-codex",
),
endpointCandidates: [
"https://api.aicoding.sh",
],
isPartner: true,
partnerPromotionKey: "aicoding",
icon: "aicoding",
iconColor: "#000000",
},
{
name: "OpenRouter",
websiteUrl: "https://openrouter.ai",
+22
View File
@@ -139,6 +139,28 @@ export const geminiProviderPresets: GeminiProviderPreset[] = [
icon: "aicodemirror",
iconColor: "#000000",
},
{
name: "AICoding",
websiteUrl: "https://www.aicoding.sh",
apiKeyUrl: "https://www.aicoding.sh/i/CCSWITCH",
settingsConfig: {
env: {
GOOGLE_GEMINI_BASE_URL: "https://api.aicoding.sh",
GEMINI_MODEL: "gemini-3-pro",
},
},
baseURL: "https://api.aicoding.sh",
model: "gemini-3-pro",
description: "AICoding",
category: "third_party",
isPartner: true,
partnerPromotionKey: "aicoding",
endpointCandidates: [
"https://api.aicoding.sh",
],
icon: "aicoding",
iconColor: "#000000",
},
{
name: "OpenRouter",
websiteUrl: "https://openrouter.ai",
+47 -1
View File
@@ -1052,8 +1052,54 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
"aicodemirror/claude-opus-4-6": { alias: "Opus" },
},
},
},
},
{
name: "AICoding",
websiteUrl: "https://www.aicoding.sh",
apiKeyUrl: "https://www.aicoding.sh/i/CCSWITCH",
settingsConfig: {
baseUrl: "https://api.aicoding.sh",
apiKey: "",
api: "anthropic-messages",
models: [
{
id: "claude-sonnet-4-5-20250929",
name: "Claude Sonnet 4.5",
contextWindow: 200000,
cost: { input: 3, output: 15 },
},
{
id: "claude-opus-4-6",
name: "Claude Opus 4.6",
contextWindow: 200000,
cost: { input: 5, output: 25 },
},
],
},
category: "third_party",
isPartner: true,
partnerPromotionKey: "aicoding",
icon: "aicoding",
iconColor: "#000000",
templateValues: {
apiKey: {
label: "API Key",
placeholder: "",
editorValue: "",
},
},
suggestedDefaults: {
model: {
primary: "aicoding/claude-sonnet-4-5-20250929",
fallbacks: ["aicoding/claude-opus-4-6"],
},
modelCatalog: {
"aicoding/claude-sonnet-4-5-20250929": { alias: "Sonnet" },
"aicoding/claude-opus-4-6": { alias: "Opus" },
},
},
},
// ========== Cloud Providers ==========
{
name: "AWS Bedrock",
+29 -1
View File
@@ -1133,7 +1133,35 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
},
{
name: "AICoding",
websiteUrl: "https://www.aicoding.sh",
apiKeyUrl: "https://www.aicoding.sh/i/CCSWITCH",
settingsConfig: {
npm: "@ai-sdk/anthropic",
name: "AICoding",
options: {
baseURL: "https://api.aicoding.sh",
apiKey: "",
},
models: {
"claude-sonnet-4-5-20250929": { name: "Claude Sonnet 4.5" },
"claude-opus-4-6": { name: "Claude Opus 4.6" },
},
},
category: "third_party",
isPartner: true,
partnerPromotionKey: "aicoding",
icon: "aicoding",
iconColor: "#000000",
templateValues: {
apiKey: {
label: "API Key",
placeholder: "",
editorValue: "",
},
},
},
{
name: "AWS Bedrock",
websiteUrl: "https://aws.amazon.com/bedrock/",
+2 -1
View File
@@ -625,7 +625,8 @@
"cubence": "Cubence is an official partner of CC Switch. Register using this link and enter \"CCSWITCH\" promo code during recharge to get 10% off every top-up",
"aigocode": "AIGoCode is an official partner of CC Switch. Register using this link and get 10% bonus credit on your first top-up!",
"rightcode": "RightCode is an official partner of CC Switch. Register using this link and get 5% bonus credit on every top-up!",
"aicodemirror": "AICodeMirror is an official partner of CC Switch. Register using this link to get 20% off!"
"aicodemirror": "AICodeMirror is an official partner of CC Switch. Register using this link to get 20% off!",
"aicoding": "AI Coding offers an exclusive discount for CC Switch users — 10% off your first top-up!"
},
"parameterConfig": "Parameter Config - {{name}} *",
"mainModel": "Main Model (optional)",
+2 -1
View File
@@ -625,7 +625,8 @@
"cubence": "Cubence は CC Switch の公式パートナーです。登録後チャージ時に \"CCSWITCH\" を入力すると、毎回 10% オフ",
"aigocode": "AIGoCode は CC Switch の公式パートナーです。このリンクから登録すると、初回チャージ時に 10% のボーナスクレジットがもらえます!",
"rightcode": "RightCode は CC Switch の公式パートナーです。このリンクから登録すると、毎回のチャージに 5% のボーナスクレジットがもらえます!",
"aicodemirror": "AICodeMirror は CC Switch の公式パートナーです。このリンクから登録すると20%オフ!"
"aicodemirror": "AICodeMirror は CC Switch の公式パートナーです。このリンクから登録すると20%オフ!",
"aicoding": "AI Coding は CC Switch ユーザー向けに特別割引を提供しています。初回チャージが 10% オフ!"
},
"parameterConfig": "パラメーター設定 - {{name}} *",
"mainModel": "メインモデル(任意)",
+2 -1
View File
@@ -625,7 +625,8 @@
"cubence": "Cubence 是 CC Switch 的官方合作伙伴,使用此链接注册并在充值时填写 \"CCSWITCH\" 优惠码,每次充值均可享受9折优惠",
"aigocode": "AIGoCode 是 CC Switch 的官方合作伙伴,使用此链接注册首次充值时可以获得10%额度奖励!",
"rightcode": "RightCode 是 CC Switch 的官方合作伙伴,使用此链接注册每次充值均可赠送5%额外额度!",
"aicodemirror": "AICodeMirror 是 CC Switch 的官方合作伙伴,使用此链接注册可享受8折优惠!"
"aicodemirror": "AICodeMirror 是 CC Switch 的官方合作伙伴,使用此链接注册可享受8折优惠!",
"aicoding": "AI Coding 为 CC Switch 的用户提供了特殊优惠,首次充值可以享受 9 折优惠!"
},
"parameterConfig": "参数配置 - {{name}} *",
"mainModel": "主模型 (可选)",