Add TeamoRouter provider preset and docs

This commit is contained in:
musistudio 2026-07-03 22:53:10 +08:00
parent 6bfb2e1901
commit 7130e1e632
10 changed files with 48 additions and 1 deletions

View file

@ -169,6 +169,13 @@ Codex support is powered by [musistudio/codexl](https://github.com/musistudio/co
<strong>RunAPI</strong>
</a>
</td>
<td align="center" width="330">
<a href="https://teamorouter.com/">
<img src="/docs/public/provider-icons/teamorouter.png" width="42" height="42" alt="TeamoRouter icon" />
<br />
<strong>TeamoRouter</strong>
</a>
</td>
</tr>
</table>

View file

@ -168,6 +168,13 @@ CCR 可以完全通过桌面 UI 完成配置。首次使用建议按下面顺序
<strong>RunAPI</strong>
</a>
</td>
<td align="center" width="330">
<a href="https://teamorouter.com/">
<img src="/docs/public/provider-icons/teamorouter.png" width="42" height="42" alt="TeamoRouter 图标" />
<br />
<strong>TeamoRouter</strong>
</a>
</td>
</tr>
</table>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -74,6 +74,10 @@ Choose a provider below to get started. CCR shows what will be added before savi
<span class="provider-import-icon-shell"><img src="../../../provider-icons/runapi.jpg" alt="" loading="lazy" /></span>
<span class="provider-import-copy"><span class="provider-import-name">RunAPI</span><span class="provider-import-meta">Responses / Chat Completions</span></span>
</a>
<a class="provider-import-button provider-teamorouter" href="ccr://provider?name=TeamoRouter&amp;base_url=https%3A%2F%2Fapi.teamorouter.com&amp;protocol=anthropic_messages&amp;source=https%3A%2F%2Fteamorouter.com%2F" aria-label="Import TeamoRouter provider">
<span class="provider-import-icon-shell"><img src="../../../provider-icons/teamorouter.png" alt="" loading="lazy" /></span>
<span class="provider-import-copy"><span class="provider-import-name">TeamoRouter</span><span class="provider-import-meta">Anthropic / Chat / Responses</span></span>
</a>
</div>
## Embeddable Button Component

View file

@ -74,6 +74,10 @@ lead: 快速添加常见模型供应商,确认无误后即可保存,减少
<span class="provider-import-icon-shell"><img src="../../provider-icons/runapi.jpg" alt="" loading="lazy" /></span>
<span class="provider-import-copy"><span class="provider-import-name">RunAPI</span><span class="provider-import-meta">Responses / Chat Completions</span></span>
</a>
<a class="provider-import-button provider-teamorouter" href="ccr://provider?name=TeamoRouter&amp;base_url=https%3A%2F%2Fapi.teamorouter.com&amp;protocol=anthropic_messages&amp;source=https%3A%2F%2Fteamorouter.com%2F" aria-label="导入 TeamoRouter 供应商">
<span class="provider-import-icon-shell"><img src="../../provider-icons/teamorouter.png" alt="" loading="lazy" /></span>
<span class="provider-import-copy"><span class="provider-import-name">TeamoRouter</span><span class="provider-import-meta">Anthropic / Chat / Responses</span></span>
</a>
</div>
## 嵌入式按钮组件

View file

@ -1306,6 +1306,12 @@ h1 {
--provider-brand-3: #f3f3f3;
}
.doc-markdown a.provider-import-button.provider-teamorouter {
--provider-brand: #0c0c0f;
--provider-brand-2: #555b64;
--provider-brand-3: #f4f4f5;
}
.doc-markdown a.provider-import-button.provider-deepseek {
--provider-brand: #173aa8;
--provider-brand-2: #4e69ff;

View file

@ -9,6 +9,7 @@ import { openaiProviderPreset } from "./openai";
import { openRouterProviderPreset } from "./openrouter";
import { runApiProviderPreset } from "./runapi";
import { siliconFlowProviderPreset } from "./siliconflow";
import { teamoRouterProviderPreset } from "./teamorouter";
import { zaiGlobalCodingProviderPreset } from "./zai-global-coding";
import { zaiGlobalGeneralProviderPreset } from "./zai-global-general";
import { zhipuCnCodingProviderPreset } from "./zhipu-cn-coding";
@ -40,7 +41,8 @@ export const providerPresets: ProviderPreset[] = [
moonshotGlobalProviderPreset,
bailianProviderPreset,
siliconFlowProviderPreset,
runApiProviderPreset
runApiProviderPreset,
teamoRouterProviderPreset
];
export function getProviderPresets(): ProviderPreset[] {

View file

@ -0,0 +1,15 @@
import { defaultProviderAccountConfig, type ProviderPreset } from "../../../shared/provider-presets";
export const teamoRouterProviderPreset: ProviderPreset = {
account: defaultProviderAccountConfig,
aliases: ["teamorouter", "teamo router", "teamo"],
endpoints: [
{
baseUrl: "https://api.teamorouter.com",
protocols: ["anthropic_messages", "openai_chat_completions", "openai_responses"]
}
],
id: "teamorouter",
name: "TeamoRouter",
websiteUrl: "https://teamorouter.com/"
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -51,6 +51,7 @@ import openaiProviderIconUrl from "@/assets/provider-icons/openai.png";
import openrouterProviderIconUrl from "@/assets/provider-icons/openrouter.ico";
import runapiProviderIconUrl from "@/assets/provider-icons/runapi.jpg";
import siliconflowProviderIconUrl from "@/assets/provider-icons/siliconflow.png";
import teamorouterProviderIconUrl from "@/assets/provider-icons/teamorouter.png";
import zaiGlobalCodingProviderIconUrl from "@/assets/provider-icons/zai-global-coding.svg";
import zaiGlobalGeneralProviderIconUrl from "@/assets/provider-icons/zai-global-general.svg";
import zhipuCnCodingProviderIconUrl from "@/assets/provider-icons/zhipu-cn-coding.png";
@ -328,6 +329,7 @@ export const providerPresetIconUrls: Record<string, string> = {
openrouter: openrouterProviderIconUrl,
runapi: runapiProviderIconUrl,
siliconflow: siliconflowProviderIconUrl,
teamorouter: teamorouterProviderIconUrl,
"zai-global-coding": zaiGlobalCodingProviderIconUrl,
"zai-global-general": zaiGlobalGeneralProviderIconUrl,
"zhipu-cn-coding": zhipuCnCodingProviderIconUrl,