feat(presets): restore SudoCode.us to coexist with SudoCode.chat sponsor

The legacy sudocode.us provider was replaced in place by the sudocode.chat
sponsor (618723b4) because the two unrelated companies share the SudoCode
name. Bring the legacy provider back and distinguish the two by their
domain suffix.

- Rename the sponsor preset to "SudoCode.chat" across its six clients;
  partner status, promotion copy (key "sudocode"), and icon unchanged
- Re-add "SudoCode.us" across all seven clients (including the previously
  removed Gemini entry) with its pre-replacement config: gpt-5.5,
  sudocode.us endpoints, sudocode.run fallback candidates
- Mark SudoCode.us as partner (isPartner) without a partnerPromotionKey:
  promo copy is pending, and the promo box only renders when a key exists
- Give the SudoCode.us Hermes entry a distinct slug (sudocode_us) so both
  providers can coexist in the additive ~/.hermes/config.yaml
- Restore the legacy logo from git history as sudocode-us.png and register
  it in the hand-maintained icon index and metadata
This commit is contained in:
Jason
2026-07-15 12:48:25 +08:00
parent 3bc828aecc
commit 7f028632b5
10 changed files with 180 additions and 8 deletions
+14 -1
View File
@@ -766,7 +766,7 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
icon: "atlascloud",
},
{
name: "SudoCode",
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
@@ -780,6 +780,19 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
partnerPromotionKey: "sudocode",
icon: "sudocode",
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
category: "third_party",
baseUrl: "https://sudocode.us",
mode: "direct",
apiFormat: "anthropic",
modelRoutes: passthroughRoutes(),
endpointCandidates: ["https://sudocode.us", "https://sudocode.run"],
isPartner: true,
icon: "sudocode-us",
},
{
name: "ClaudeAPI",
websiteUrl: "https://claudeapi.com",
+17 -1
View File
@@ -837,7 +837,7 @@ export const providerPresets: ProviderPreset[] = [
icon: "atlascloud",
},
{
name: "SudoCode",
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
@@ -854,6 +854,22 @@ export const providerPresets: ProviderPreset[] = [
partnerPromotionKey: "sudocode",
icon: "sudocode",
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
settingsConfig: {
env: {
ANTHROPIC_BASE_URL: "https://sudocode.us",
ANTHROPIC_AUTH_TOKEN: "",
API_TIMEOUT_MS: "300000",
},
},
endpointCandidates: ["https://sudocode.us", "https://sudocode.run"],
category: "third_party",
isPartner: true,
icon: "sudocode-us",
},
{
name: "ClaudeAPI",
websiteUrl: "https://claudeapi.com",
+24 -1
View File
@@ -1197,7 +1197,7 @@ requires_openai_auth = true`,
icon: "atlascloud",
},
{
name: "SudoCode",
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
@@ -1220,6 +1220,29 @@ requires_openai_auth = true`,
partnerPromotionKey: "sudocode",
icon: "sudocode",
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
category: "third_party",
auth: generateThirdPartyAuth(""),
config: `model_provider = "custom"
model = "gpt-5.5"
review_model = "gpt-5.5"
model_reasoning_effort = "high"
disable_response_storage = true
model_verbosity = "high"
[model_providers.custom]
name = "sudocode"
base_url = "https://sudocode.us/v1"
wire_api = "responses"
requires_openai_auth = true`,
endpointCandidates: ["https://sudocode.us/v1", "https://sudocode.run/v1"],
apiFormat: "openai_responses",
isPartner: true,
icon: "sudocode-us",
},
{
name: "ClaudeCN",
websiteUrl: "https://claudecn.top",
+19
View File
@@ -210,6 +210,25 @@ export const geminiProviderPresets: GeminiProviderPreset[] = [
endpointCandidates: ["https://apinebula.com"],
icon: "apinebula",
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
settingsConfig: {
env: {
GOOGLE_GEMINI_BASE_URL: "https://sudocode.us",
GEMINI_API_KEY: "",
GEMINI_MODEL: "gemini-3.1-flash-lite",
},
},
baseURL: "https://sudocode.us",
model: "gemini-3.1-flash-lite",
description: "SudoCode.us",
category: "third_party",
isPartner: true,
endpointCandidates: ["https://sudocode.us", "https://sudocode.run"],
icon: "sudocode-us",
},
{
name: "Cubence",
websiteUrl: "https://cubence.com",
+24 -1
View File
@@ -1060,7 +1060,7 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
},
},
{
name: "SudoCode",
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
@@ -1084,6 +1084,29 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
model: { default: "gpt-5.6-sol", provider: "sudocode" },
},
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
settingsConfig: {
name: "sudocode_us",
base_url: "https://sudocode.us/v1",
api_key: "",
api_mode: "codex_responses",
models: [
{
id: "gpt-5.5",
name: "GPT-5.5",
},
],
},
category: "third_party",
isPartner: true,
icon: "sudocode-us",
suggestedDefaults: {
model: { default: "gpt-5.5", provider: "sudocode_us" },
},
},
{
name: "Cubence",
websiteUrl: "https://cubence.com",
+32 -1
View File
@@ -1946,7 +1946,7 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
},
{
name: "SudoCode",
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
@@ -1978,6 +1978,37 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
},
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
settingsConfig: {
baseUrl: "https://sudocode.us/v1",
apiKey: "",
api: "openai-responses",
models: [
{
id: "gpt-5.5",
name: "GPT-5.5",
},
],
},
category: "third_party",
isPartner: true,
icon: "sudocode-us",
templateValues: {
apiKey: {
label: "API Key",
placeholder: "",
editorValue: "",
},
},
suggestedDefaults: {
model: {
primary: "sudocode-us/gpt-5.5",
},
},
},
{
name: "Cubence",
websiteUrl: "https://cubence.com",
+29 -2
View File
@@ -1619,13 +1619,13 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
{
name: "SudoCode",
name: "SudoCode.chat",
websiteUrl: "https://sudocode.chat",
apiKeyUrl:
"https://sudocode.chat/register?utm_source=ccswitch&utm_medium=partner",
settingsConfig: {
npm: "@ai-sdk/openai",
name: "SudoCode",
name: "SudoCode.chat",
options: {
baseURL: "https://api.sudocode.chat/v1",
apiKey: "",
@@ -1647,6 +1647,33 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
},
{
name: "SudoCode.us",
websiteUrl: "https://sudocode.us",
apiKeyUrl: "https://sudocode.us",
settingsConfig: {
npm: "@ai-sdk/openai",
name: "SudoCode.us",
options: {
baseURL: "https://sudocode.us/v1",
apiKey: "",
setCacheKey: true,
},
models: {
"gpt-5.5": { name: "GPT-5.5" },
},
},
category: "third_party",
isPartner: true,
icon: "sudocode-us",
templateValues: {
apiKey: {
label: "API Key",
placeholder: "",
editorValue: "",
},
},
},
{
name: "Cubence",
websiteUrl: "https://cubence.com",
+2
View File
@@ -24,6 +24,7 @@ import _runapi from "./runapi.jpg";
import _shengsuanyun from "./shengsuanyun.svg?url";
import _subrouter from "./subrouter.svg?url";
import _sudocode from "./sudocode.png";
import _sudocodeUs from "./sudocode-us.png";
import _teamorouter from "./TeamoRouter-icon-dark.png";
import _unity2 from "./unity2.png";
import _zetaapi from "./zetaapi-icon.png";
@@ -125,6 +126,7 @@ export const iconUrls: Record<string, string> = {
shengsuanyun: _shengsuanyun,
subrouter: _subrouter,
sudocode: _sudocode,
"sudocode-us": _sudocodeUs,
teamorouter: _teamorouter,
unity2: _unity2,
zetaapi: _zetaapi,
+19 -1
View File
@@ -56,11 +56,29 @@ export const iconMetadata: Record<string, IconMetadata> = {
},
sudocode: {
name: "sudocode",
displayName: "SudoCode",
displayName: "SudoCode.chat",
category: "ai-provider",
keywords: [
"sudocode",
"sudo code",
"chat",
"gateway",
"relay",
"claude",
"codex",
"gemini",
"openclaw",
],
defaultColor: "#111111",
},
"sudocode-us": {
name: "sudocode-us",
displayName: "SudoCode.us",
category: "ai-provider",
keywords: [
"sudocode",
"sudo code",
"us",
"gateway",
"relay",
"claude",
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB