feat(providers): rebrand CTok to ETok across presets, icons, and docs

The vendor renamed its domain, API endpoints, and trademark from CTok to
ETok. Update all user-facing branding accordingly:

- Presets (claude, claude-desktop, codex, gemini, hermes, openclaw,
  opencode): ctok.ai -> etok.ai, api.ctok.ai -> api.etok.ai, internal
  provider id ctok -> etok, display name CTok.ai -> ETok.ai
- Icons: replace inline placeholder SVG with the new ETok brand PNG,
  moved from `icons` to `iconUrls`; key ctok -> etok; banner logo
  ctok.png -> etok.png
- README (en/zh/ja/de) partner banner: new logo, links, and copy
- i18n (en/ja/zh/zh-TW): partnerPromotion key ctok -> etok

Keep "ctok" in the Codex history-migration whitelist as a legacy id and
add "etok", so existing users' local session history stays correctly
bucketed after the rename.
This commit is contained in:
Jason
2026-06-19 16:15:35 +08:00
parent 6ec86cff46
commit 142c8c1da7
22 changed files with 72 additions and 91 deletions
+6 -6
View File
@@ -900,17 +900,17 @@ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
iconColor: "#000000",
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
category: "third_party",
baseUrl: "https://api.ctok.ai",
baseUrl: "https://api.etok.ai",
mode: "direct",
apiFormat: "anthropic",
modelRoutes: passthroughRoutes(),
isPartner: true,
partnerPromotionKey: "ctok",
icon: "ctok",
partnerPromotionKey: "etok",
icon: "etok",
iconColor: "#000000",
},
{
+6 -6
View File
@@ -974,19 +974,19 @@ export const providerPresets: ProviderPreset[] = [
iconColor: "#000000",
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
settingsConfig: {
env: {
ANTHROPIC_BASE_URL: "https://api.ctok.ai",
ANTHROPIC_BASE_URL: "https://api.etok.ai",
ANTHROPIC_AUTH_TOKEN: "",
},
},
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "ctok", // 促销信息 i18n key
icon: "ctok",
partnerPromotionKey: "etok", // 促销信息 i18n key
icon: "etok",
iconColor: "#000000",
},
{
+8 -8
View File
@@ -1222,20 +1222,20 @@ requires_openai_auth = true`,
iconColor: "#000000",
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
auth: generateThirdPartyAuth(""),
config: generateThirdPartyConfig(
"ctok",
"https://api.ctok.ai/v1",
"etok",
"https://api.etok.ai/v1",
"gpt-5.5",
),
endpointCandidates: ["https://api.ctok.ai/v1"],
endpointCandidates: ["https://api.etok.ai/v1"],
category: "third_party",
isPartner: true, // 合作伙伴
partnerPromotionKey: "ctok", // 促销信息 i18n key
icon: "ctok",
partnerPromotionKey: "etok", // 促销信息 i18n key
icon: "etok",
iconColor: "#000000",
},
{
+9 -9
View File
@@ -281,23 +281,23 @@ export const geminiProviderPresets: GeminiProviderPreset[] = [
iconColor: "#000000",
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
settingsConfig: {
env: {
GOOGLE_GEMINI_BASE_URL: "https://api.ctok.ai/v1beta",
GOOGLE_GEMINI_BASE_URL: "https://api.etok.ai/v1beta",
GEMINI_MODEL: "gemini-3.5-flash",
},
},
baseURL: "https://api.ctok.ai/v1beta",
baseURL: "https://api.etok.ai/v1beta",
model: "gemini-3.5-flash",
description: "CTok",
description: "ETok",
category: "third_party",
isPartner: true,
partnerPromotionKey: "ctok",
endpointCandidates: ["https://api.ctok.ai/v1beta"],
icon: "ctok",
partnerPromotionKey: "etok",
endpointCandidates: ["https://api.etok.ai/v1beta"],
icon: "etok",
iconColor: "#000000",
},
{
+8 -8
View File
@@ -1195,12 +1195,12 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
},
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
settingsConfig: {
name: "ctok",
base_url: "https://api.ctok.ai",
name: "etok",
base_url: "https://api.etok.ai",
api_key: "",
api_mode: "anthropic_messages",
models: [
@@ -1211,11 +1211,11 @@ export const hermesProviderPresets: HermesProviderPreset[] = [
},
category: "third_party",
isPartner: true,
partnerPromotionKey: "ctok",
icon: "ctok",
partnerPromotionKey: "etok",
icon: "etok",
iconColor: "#000000",
suggestedDefaults: {
model: { default: "claude-opus-4-8", provider: "ctok" },
model: { default: "claude-opus-4-8", provider: "etok" },
},
},
{
+8 -8
View File
@@ -2077,11 +2077,11 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
settingsConfig: {
baseUrl: "https://api.ctok.ai",
baseUrl: "https://api.etok.ai",
apiKey: "",
api: "anthropic-messages",
models: [
@@ -2095,8 +2095,8 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
category: "third_party",
isPartner: true,
partnerPromotionKey: "ctok",
icon: "ctok",
partnerPromotionKey: "etok",
icon: "etok",
iconColor: "#000000",
templateValues: {
apiKey: {
@@ -2107,10 +2107,10 @@ export const openclawProviderPresets: OpenClawProviderPreset[] = [
},
suggestedDefaults: {
model: {
primary: "ctok/claude-opus-4-8",
primary: "etok/claude-opus-4-8",
},
modelCatalog: {
"ctok/claude-opus-4-8": { alias: "Opus" },
"etok/claude-opus-4-8": { alias: "Opus" },
},
},
},
+7 -7
View File
@@ -1654,14 +1654,14 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
},
{
name: "CTok.ai",
websiteUrl: "https://ctok.ai",
apiKeyUrl: "https://ctok.ai",
name: "ETok.ai",
websiteUrl: "https://etok.ai",
apiKeyUrl: "https://etok.ai",
settingsConfig: {
npm: "@ai-sdk/anthropic",
name: "CTok",
name: "ETok",
options: {
baseURL: "https://api.ctok.ai/v1",
baseURL: "https://api.etok.ai/v1",
apiKey: "",
setCacheKey: true,
},
@@ -1672,8 +1672,8 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [
},
category: "third_party",
isPartner: true,
partnerPromotionKey: "ctok",
icon: "ctok",
partnerPromotionKey: "etok",
icon: "etok",
iconColor: "#000000",
templateValues: {
apiKey: {