diff --git a/README.en.md b/README.en.md index 877ccd3f..72d529fa 100644 --- a/README.en.md +++ b/README.en.md @@ -140,6 +140,16 @@ This project is maintained in the author's spare time. Corporate or individual s Thanks to ShengSuanYun for sponsoring this project. ShengSuanYun is an industrial-grade AI task parallel execution platform for AI Native Teams, aggregating Claude, ChatGPT, Gemini, and other LLM, image, and video model capacity through direct, non-reverse-engineered access. Its platform SLA reaches 99.7%, with service status available online. It also supports dedicated enterprise gateways, cost and permission controls, smart routing, security protection, BYOK, usage-based billing, upcoming tokens plans, and invoicing. New users registering through this link can receive 10 yuan in model credits plus a 10% first top-up bonus. + + + + TeamoRouter + + + + Thanks to TeamoRouter for sponsoring this project. TeamoRouter is an enterprise-grade Agentic LLM gateway for developers, AI teams, and businesses. Without any subscription, it lets you use Claude Code, Codex, Gemini CLI, and other popular AI agents through a single unified API, with API pricing at discounts of up to 90%. It aggregates hundreds of official model providers and trusted infrastructure partners — including OpenAI, Anthropic, Vertex, Azure, and AWS Bedrock — each verified for 100% Agent protocol compatibility, cache performance, and request traceability, delivering near-official TTFT, a 99.6% SLA, throughput up to 5,000 QPM, and industry-leading cache hit rates rather than reverse-engineered endpoints. It also offers centralized billing, team management, BYOK, smart routing, usage analytics, and dedicated support, and Teamo Desktop lets you use these AI agents with one-click setup. New users who register through this link receive 10% off their first top-up. + + diff --git a/README.md b/README.md index 47e78f3d..d1ef1b0a 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,16 @@ cp .env.example .env 感谢 胜算云 赞助本项目!胜算云是面向 AI Native Teams 的工业级 AI 任务并行执行平台,聚合 Claude、ChatGPT、Gemini 等海内外 LLM 及图片、视频多媒体模型算力;官方直连、非逆向,平台 SLA 可用性达 99.7%,可查看 服务状态。平台支持企业专属网关、成本与权限管控、智能路由、安全防护和 BYOK,按量与 tokens plan(即将上线)计费并可开票;使用 专属链接 注册可获 10 元模力及首充 10% 赠送。 + + + + TeamoRouter + + + + 感谢 TeamoRouter 赞助本项目!TeamoRouter 是面向开发者、AI 团队与企业的企业级 Agentic LLM 网关,无需任何订阅即可通过统一 API 使用 Claude Code、Codex、Gemini CLI 等热门 AI Agent,API 价格最高可享 90% 折扣。平台聚合 OpenAI、Anthropic、Vertex、Azure、AWS Bedrock 等数百家官方模型提供商与可信基础设施,全部经过 100% Agent 协议兼容、缓存性能与请求可追踪性验证,官方直连、非逆向,提供接近官方的 TTFT、99.6% SLA、最高 5,000 QPM 吞吐与行业领先的缓存命中率;同时支持集中账单、团队管理、BYOK、智能路由、用量分析与专属支持,并可通过 Teamo Desktop 一键使用各类 AI Agent。新用户通过 专属链接 注册,首次充值可享 10% 折扣。 + + @@ -193,19 +203,8 @@ cp .env.example .env - [Electron](https://github.com/electron/electron):跨端桌面应用能力与工程实践。 - [cc-switch](https://github.com/farion1231/cc-switch):模型供应商配置能力参考。 ---- -## ⭐ Star 趋势图 -如果这个项目对您有帮助,请给个 ⭐ Star 支持一下,让更多的人看到 Claude Code Haha! - - - - - - Star History Chart - - --- diff --git a/docs/images/sponsors/teamorouter-logo.svg b/docs/images/sponsors/teamorouter-logo.svg new file mode 100644 index 00000000..f129355e --- /dev/null +++ b/docs/images/sponsors/teamorouter-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/server/__tests__/provider-presets.test.ts b/src/server/__tests__/provider-presets.test.ts index af88b74c..d4a627c1 100644 --- a/src/server/__tests__/provider-presets.test.ts +++ b/src/server/__tests__/provider-presets.test.ts @@ -69,6 +69,7 @@ describe('provider presets API', () => { const minimax = PROVIDER_PRESETS.find((preset) => preset.id === 'minimax') const jiekouai = PROVIDER_PRESETS.find((preset) => preset.id === 'jiekouai') const shengsuanyun = PROVIDER_PRESETS.find((preset) => preset.id === 'shengsuanyun') + const teamorouter = PROVIDER_PRESETS.find((preset) => preset.id === 'teamorouter') expect(lmstudio?.baseUrl).toBe('http://localhost:1234') expect(lmstudio?.apiFormat).toBe('anthropic') @@ -114,6 +115,14 @@ describe('provider presets API', () => { expect(shengsuanyun?.defaultModels.main).toBe('anthropic/claude-sonnet-4.6') expect(shengsuanyun?.defaultModels.haiku).toBe('anthropic/claude-haiku-4.5:thinking') expect(shengsuanyun?.modelContextWindows?.['anthropic/claude-sonnet-4.6']).toBe(1000000) + expect(teamorouter?.baseUrl).toBe('https://api.teamorouter.com') + expect(teamorouter?.apiFormat).toBe('anthropic') + expect(teamorouter?.authStrategy).toBe('auth_token') + expect(teamorouter?.defaultModels.main).toBe('claude-opus-4-8') + expect(teamorouter?.defaultModels.haiku).toBe('claude-haiku-4-5') + expect(teamorouter?.defaultModels.sonnet).toBe('claude-sonnet-5') + expect(teamorouter?.defaultModels.opus).toBe('claude-opus-4-8') + expect(teamorouter?.modelContextWindows?.['claude-opus-4-8']).toBe(1000000) }) test('configured presets can expose optional API key and promo metadata', () => { @@ -125,6 +134,7 @@ describe('provider presets API', () => { const minimax = PROVIDER_PRESETS.find((preset) => preset.id === 'minimax') const jiekouai = PROVIDER_PRESETS.find((preset) => preset.id === 'jiekouai') const shengsuanyun = PROVIDER_PRESETS.find((preset) => preset.id === 'shengsuanyun') + const teamorouter = PROVIDER_PRESETS.find((preset) => preset.id === 'teamorouter') const custom = PROVIDER_PRESETS.find((preset) => preset.id === 'custom') expect(lmstudio?.needsApiKey).toBe(false) @@ -166,6 +176,16 @@ describe('provider presets API', () => { ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES: 'none', }) expect(shengsuanyun?.modelContextWindows?.['anthropic/claude-opus-4.7']).toBe(1000000) + expect(teamorouter?.apiKeyUrl).toBe( + 'https://teamorouter.com/?utm_source=cc_haha&utm_medium=referral&utm_campaign=ai_directory', + ) + expect(teamorouter?.promoText).toContain('10% 折扣') + expect(teamorouter?.featured).toBe(true) + expect(teamorouter?.defaultEnv).toEqual({ + CLAUDE_CODE_SUBAGENT_MODEL: 'claude-sonnet-5', + ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES: 'none', + }) + expect(teamorouter?.modelContextWindows?.['claude-sonnet-5']).toBe(1000000) expect(custom?.promoText).toBeUndefined() expect(custom?.authStrategy).toBe('auth_token') expect(custom?.defaultEnv).toBeUndefined() diff --git a/src/server/config/providerPresets.json b/src/server/config/providerPresets.json index 5ad1bc6c..3dacf9fa 100644 --- a/src/server/config/providerPresets.json +++ b/src/server/config/providerPresets.json @@ -180,6 +180,34 @@ "anthropic/claude-opus-4.7": 1000000 } }, + { + "id": "teamorouter", + "name": "TeamoRouter", + "baseUrl": "https://api.teamorouter.com", + "apiFormat": "anthropic", + "defaultModels": { + "main": "claude-opus-4-8", + "haiku": "claude-haiku-4-5", + "sonnet": "claude-sonnet-5", + "opus": "claude-opus-4-8" + }, + "needsApiKey": true, + "websiteUrl": "https://teamorouter.com", + "apiKeyUrl": "https://teamorouter.com/?utm_source=cc_haha&utm_medium=referral&utm_campaign=ai_directory", + "promoText": "TeamoRouter 为 cc-haha 的用户提供了专属福利,通过此链接注册的新用户首次充值可享 10% 折扣!", + "featured": true, + "authStrategy": "auth_token", + "defaultEnv": { + "CLAUDE_CODE_SUBAGENT_MODEL": "claude-sonnet-5", + "ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES": "none" + }, + "modelContextWindows": { + "claude-opus-4-8": 1000000, + "claude-sonnet-5": 1000000, + "claude-haiku-4-5": 200000, + "claude-haiku-4-5-20251001": 200000 + } + }, { "id": "lmstudio", "name": "LM Studio",