feat(presets): restore AICoding partner across seven app types

Bring back the AICoding (aicoding.sh) provider preset that was dropped
in 910ca3b4, covering claude, claudeDesktop, codex, gemini, hermes,
opencode and openclaw, along with the partnerPromotion.aicoding string
in zh/en/ja and the sponsor entry in the three READMEs.

Model ids follow the current baseline rather than the pre-removal
values: gpt-5.5 for Codex, gemini-3.5-flash for Gemini, and
claude-opus-4-8 / claude-sonnet-5 for the Anthropic-relay presets.
OpenClaw costs use standard list pricing, consistent with its peers.

The icon, the logo asset, the zh-TW string and the legacy id in
codex_history_migration.rs were never removed and are reused as-is.
This commit is contained in:
Jason
2026-07-26 10:18:57 +08:00
parent 414b71500c
commit 876e9f898d
14 changed files with 292 additions and 106 deletions
+41 -11
View File
@@ -560,27 +560,27 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
{
name: "Shengsuanyun",
nameKey: "providerForm.presets.shengsuanyun",
websiteUrl: "https://www.shengsuanyun.com/?from=CH_4HHXMRYF",
apiKeyUrl: "https://www.shengsuanyun.com/?from=CH_4HHXMRYF",
name: "AICoding",
websiteUrl: "https://aicoding.sh",
apiKeyUrl: "https://aicoding.sh/i/CCSWITCH",
settingsConfig: {
npm: "@ai-sdk/anthropic",
name: "Shengsuanyun",
name: "AICoding",
options: {
baseURL: "https://router.shengsuanyun.com/api/v1",
baseURL: "https://api.aicoding.sh",
apiKey: "",
setCacheKey: true,
},
models: {
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
"anthropic/claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-sonnet-5": { name: "Claude Sonnet 5" },
"claude-opus-4-8": { name: "Claude Opus 4.8" },
},
},
category: "aggregator",
category: "third_party",
isPartner: true,
partnerPromotionKey: "shengsuanyun",
icon: "shengsuanyun",
partnerPromotionKey: "aicoding",
icon: "aicoding",
iconColor: "#000000",
templateValues: {
apiKey: {
label: "API Key",
@@ -619,6 +619,36 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
},
{
name: "Shengsuanyun",
nameKey: "providerForm.presets.shengsuanyun",
websiteUrl: "https://www.shengsuanyun.com/?from=CH_4HHXMRYF",
apiKeyUrl: "https://www.shengsuanyun.com/?from=CH_4HHXMRYF",
settingsConfig: {
npm: "@ai-sdk/anthropic",
name: "Shengsuanyun",
options: {
baseURL: "https://router.shengsuanyun.com/api/v1",
apiKey: "",
setCacheKey: true,
},
models: {
"anthropic/claude-opus-4.8": { name: "Claude Opus 4.8" },
"anthropic/claude-sonnet-5": { name: "Claude Sonnet 5" },
},
},
category: "aggregator",
isPartner: true,
partnerPromotionKey: "shengsuanyun",
icon: "shengsuanyun",
templateValues: {
apiKey: {
label: "API Key",
placeholder: "",
editorValue: "",
},
},
},
{
name: "SubRouter",
websiteUrl: "https://subrouter.ai",