From df31d9baf37cb4a91fbd74a5f4492cf4f497af14 Mon Sep 17 00:00:00 2001 From: t8y2 Date: Thu, 24 Sep 2026 13:45:10 +0800 Subject: [PATCH] feat(sponsors): add AICodeMirror sponsor card and ai provider preset --- README.md | 11 +++++++++++ README.zh-CN.md | 11 +++++++++++ apps/desktop/public/icons/ai/aicodemirror.png | Bin 0 -> 9979 bytes apps/desktop/src/i18n/locales/az.ts | 1 + apps/desktop/src/i18n/locales/en.ts | 1 + apps/desktop/src/i18n/locales/es.ts | 1 + apps/desktop/src/i18n/locales/it.ts | 1 + apps/desktop/src/i18n/locales/ja.ts | 1 + apps/desktop/src/i18n/locales/ko.ts | 1 + apps/desktop/src/i18n/locales/pt-BR.ts | 1 + apps/desktop/src/i18n/locales/ru.ts | 1 + apps/desktop/src/i18n/locales/tr.ts | 1 + apps/desktop/src/i18n/locales/zh-CN.ts | 1 + apps/desktop/src/i18n/locales/zh-TW.ts | 1 + .../src/stores/__tests__/settingsStore.spec.ts | 7 +++++++ apps/desktop/src/stores/settingsStore.ts | 15 +++++++++++++++ docs/app/[lang]/page.tsx | 12 ++++++++++++ docs/app/[lang]/sponsors/page.tsx | 12 ++++++++++++ docs/public/sponsors/aicodemirror-card.png | Bin 0 -> 4532 bytes 19 files changed, 79 insertions(+) create mode 100644 apps/desktop/public/icons/ai/aicodemirror.png create mode 100644 docs/public/sponsors/aicodemirror-card.png diff --git a/README.md b/README.md index f2238d458c..fdd603b789 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,17 @@ Visit HuaLongAI + + + + AICodeMirror + + + + Special thanks to AICodeMirror for sponsoring this project! AICodeMirror provides a high-stability official relay service for Claude Code / Codex / Gemini CLI, with enterprise-grade concurrency, fast invoicing, and 7×24 dedicated support. Official-channel pricing for Claude Code / Codex / Gemini is as low as 38% / 2% / 9% of list price, with extra discounts on top-ups! AICodeMirror offers a special benefit for DBX users: register through this link to enjoy 20% off your first top-up, and enterprise customers up to 25% off. + Visit AICodeMirror + + diff --git a/README.zh-CN.md b/README.zh-CN.md index 428f2ee4b3..33564c9e60 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -123,6 +123,17 @@ 访问 HuaLongAI + + + + AICodeMirror + + + + 感谢 AICodeMirror 赞助了本项目!AICodeMirror 提供 Claude Code / Codex / Gemini CLI 官方高稳定中转服务,支持企业级高并发、极速开票、7×24 专属技术支持。Claude Code / Codex / Gemini 官方渠道低至 3.8 / 0.2 / 0.9 折,充值更有折上折!AICodeMirror 为 DBX 用户提供了特别福利,通过此链接注册的用户,可享受首充 8 折,企业客户最高可享 7.5 折! + 访问 AICodeMirror + + diff --git a/apps/desktop/public/icons/ai/aicodemirror.png b/apps/desktop/public/icons/ai/aicodemirror.png new file mode 100644 index 0000000000000000000000000000000000000000..259a19bb58ee121d94a7597abb34d89a913817d2 GIT binary patch literal 9979 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 { model: "deepseek-v4.1-flash", models: [{ name: "deepseek-v4.1-flash" }], }); + expect(AI_PROVIDER_PARTNER_PRESETS.find((preset) => preset.id === "aicodemirror")).toMatchObject({ + endpoint: "https://api.aicodemirror.ai/v1", + provider: "openai-compatible", + authMethod: "bearer", + requiresApiKey: true, + websiteUrl: "https://www.aicodemirror.ai/register?invitecode=DK44NH", + }); }); it("uses the mainland MiniMax endpoint only for new zh-CN presets", () => { diff --git a/apps/desktop/src/stores/settingsStore.ts b/apps/desktop/src/stores/settingsStore.ts index 37e3b335f6..809155fbbf 100644 --- a/apps/desktop/src/stores/settingsStore.ts +++ b/apps/desktop/src/stores/settingsStore.ts @@ -490,6 +490,21 @@ export const AI_PROVIDER_PARTNER_PRESETS: readonly AiPartnerProviderPreset[] = [ apiKeyUrl: "https://api.hualong.online/register?promo=DBX%26HUALONG", descriptionKey: "ai.hualongDescription", }, + { + id: "aicodemirror", + label: "AICodeMirror", + iconPath: "/icons/ai/aicodemirror.png", + group: "partner", + provider: "openai-compatible", + endpoint: "https://api.aicodemirror.ai/v1", + model: "", + apiStyle: "completions", + authMethod: "bearer", + requiresApiKey: true, + websiteUrl: "https://www.aicodemirror.ai/register?invitecode=DK44NH", + apiKeyUrl: "https://www.aicodemirror.ai/register?invitecode=DK44NH", + descriptionKey: "ai.aicodemirrorDescription", + }, ]; function normalizeAiProviderEndpoint(endpoint: string): string { diff --git a/docs/app/[lang]/page.tsx b/docs/app/[lang]/page.tsx index adaf3d31e9..7254916938 100644 --- a/docs/app/[lang]/page.tsx +++ b/docs/app/[lang]/page.tsx @@ -395,6 +395,8 @@ const i18nText = { onepanelSponsorAction: "Visit", hualongSponsorDesc: "HuaLongAI is a model API relay built for heavy AI developers, offering 100% official-source Codex and Claude models with transparent token-level billing, enterprise contracts, and invoicing.", hualongSponsorAction: "Visit", + aicodemirrorSponsorDesc: "AICodeMirror is a high-stability relay service for Claude Code / Codex / Gemini CLI with enterprise-grade concurrency, fast invoicing, and 7×24 dedicated support; sign up through this link for ¥8 in new-user credit and 20% off your first top-up, up to 25% off for enterprise.", + aicodemirrorSponsorAction: "Visit", footerTitle: "Ready to try DBX?", footerDesc: "Use the desktop app for local work, or deploy the Docker version for browser-based access.", release: "Latest release", @@ -438,6 +440,8 @@ const i18nText = { onepanelSponsorAction: "访问", hualongSponsorDesc: "HuaLongAI(华龙算力)是面向重度 AI 开发者的模型 API 中转服务商,主营 Codex 与 Claude 系列模型,100% 官方源直供、不掺假;计费透明,Token 级账单可逐笔核验,支持企业合同与发票。", hualongSponsorAction: "访问", + aicodemirrorSponsorDesc: "AICodeMirror 提供 Claude Code / Codex / Gemini CLI 官方高稳定中转服务,支持企业级高并发、极速开票与 7×24 专属技术支持;通过此链接注册可享新人 ¥8 免费额度与首充 8 折,企业客户最高可享 7.5 折。", + aicodemirrorSponsorAction: "访问", footerTitle: "准备试试 DBX?", footerDesc: "本地工作使用桌面版,需要浏览器访问时部署 Docker 版。", release: "最新版本", @@ -526,6 +530,14 @@ export default async function LandingPage({ params }: { params: Promise<{ lang: description: t.hualongSponsorDesc, action: t.hualongSponsorAction, }, + { + name: "AICodeMirror", + href: "https://www.aicodemirror.ai/register?invitecode=9A50BU", + logo: "/sponsors/aicodemirror-card.png", + logoClass: "w-full max-w-[120px] object-contain", + description: t.aicodemirrorSponsorDesc, + action: t.aicodemirrorSponsorAction, + }, { name: "Atlas Cloud", href: "https://www.atlascloud.ai/?ref=6YYXWA", diff --git a/docs/app/[lang]/sponsors/page.tsx b/docs/app/[lang]/sponsors/page.tsx index f6bbfe91fb..382f50856d 100644 --- a/docs/app/[lang]/sponsors/page.tsx +++ b/docs/app/[lang]/sponsors/page.tsx @@ -30,6 +30,8 @@ const i18n = { onepanelSponsorAction: "Visit", hualongSponsorDesc: "HuaLongAI is a model API relay built for heavy AI developers, offering 100% official-source Codex and Claude models with transparent token-level billing, enterprise contracts, and invoicing.", hualongSponsorAction: "Visit", + aicodemirrorSponsorDesc: "AICodeMirror is a high-stability relay service for Claude Code / Codex / Gemini CLI with enterprise-grade concurrency, fast invoicing, and 7×24 dedicated support; sign up through this link for ¥8 in new-user credit and 20% off your first top-up, up to 25% off for enterprise.", + aicodemirrorSponsorAction: "Visit", becomeTitle: "Sponsorship inquiries", becomeDesc: "If you would like to support DBX with funding, infrastructure, developer tools, or services, tell us about the idea and how to reach you.", }, @@ -56,6 +58,8 @@ const i18n = { onepanelSponsorAction: "访问", hualongSponsorDesc: "HuaLongAI(华龙算力)是面向重度 AI 开发者的模型 API 中转服务商,主营 Codex 与 Claude 系列模型,100% 官方源直供、不掺假;计费透明,Token 级账单可逐笔核验,支持企业合同与发票。", hualongSponsorAction: "访问", + aicodemirrorSponsorDesc: "AICodeMirror 提供 Claude Code / Codex / Gemini CLI 官方高稳定中转服务,支持企业级高并发、极速开票与 7×24 专属技术支持;通过此链接注册可享新人 ¥8 免费额度与首充 8 折,企业客户最高可享 7.5 折。", + aicodemirrorSponsorAction: "访问", becomeTitle: "赞助合作", becomeDesc: "如果你愿意通过资金、基础设施、开发工具或服务资源支持 DBX,请留下联系方式和合作说明。", }, @@ -119,6 +123,14 @@ export default async function SponsorsPage({ params }: { params: Promise<{ lang: description: t.hualongSponsorDesc, action: t.hualongSponsorAction, }, + { + name: "AICodeMirror", + href: "https://www.aicodemirror.ai/register?invitecode=9A50BU", + logo: "/sponsors/aicodemirror-card.png", + logoClass: "w-full max-w-[160px] object-contain", + description: t.aicodemirrorSponsorDesc, + action: t.aicodemirrorSponsorAction, + }, { name: "Atlas Cloud", href: "https://www.atlascloud.ai/?ref=6YYXWA", diff --git a/docs/public/sponsors/aicodemirror-card.png b/docs/public/sponsors/aicodemirror-card.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d85af4fbc8c9a2345f3637c11c950883aa569d GIT binary patch literal 4532 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 literal 0 HcmV?d00001