* feat: add LiteLLM provider types, env var, credentials, and auth choice Add litellm-api-key auth choice, LITELLM_API_KEY env var mapping, setLitellmApiKey() credential storage, and LITELLM_DEFAULT_MODEL_REF. * feat: add LiteLLM onboarding handler and provider config Add applyLitellmProviderConfig which properly registers models.providers.litellm with baseUrl, api type, and model definitions. This fixes the critical bug from PR #6488 where the provider entry was never created, causing model resolution to fail at runtime. * docs: add LiteLLM provider documentation Add setup guide covering onboarding, manual config, virtual keys, model routing, and usage tracking. Link from provider index. * docs: add LiteLLM to sidebar navigation in docs.json Add providers/litellm to both English and Chinese provider page lists so the docs page appears in the sidebar navigation. * test: add LiteLLM non-interactive onboarding test Wire up litellmApiKey flag inference and auth-choice handler for the non-interactive onboarding path, and add an integration test covering profile, model default, and credential storage. * fix: register --litellm-api-key CLI flag and add preferred provider mapping Wire up the missing Commander CLI option, action handler mapping, and help text for --litellm-api-key. Add litellm-api-key to the preferred provider map for consistency with other providers. * fix: remove zh-CN sidebar entry for litellm (no localized page yet) * style: format buildLitellmModelDefinition return type * fix(onboarding): harden LiteLLM provider setup (#12823) * refactor(onboarding): keep auth-choice provider dispatcher under size limit --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import type { AuthChoice } from "./onboard-types.js";
|
|
|
|
const PREFERRED_PROVIDER_BY_AUTH_CHOICE: Partial<Record<AuthChoice, string>> = {
|
|
oauth: "anthropic",
|
|
"setup-token": "anthropic",
|
|
"claude-cli": "anthropic",
|
|
token: "anthropic",
|
|
apiKey: "anthropic",
|
|
"openai-codex": "openai-codex",
|
|
"codex-cli": "openai-codex",
|
|
chutes: "chutes",
|
|
"openai-api-key": "openai",
|
|
"openrouter-api-key": "openrouter",
|
|
"ai-gateway-api-key": "vercel-ai-gateway",
|
|
"cloudflare-ai-gateway-api-key": "cloudflare-ai-gateway",
|
|
"moonshot-api-key": "moonshot",
|
|
"moonshot-api-key-cn": "moonshot",
|
|
"kimi-code-api-key": "kimi-coding",
|
|
"gemini-api-key": "google",
|
|
"google-antigravity": "google-antigravity",
|
|
"google-gemini-cli": "google-gemini-cli",
|
|
"zai-api-key": "zai",
|
|
"xiaomi-api-key": "xiaomi",
|
|
"synthetic-api-key": "synthetic",
|
|
"venice-api-key": "venice",
|
|
"together-api-key": "together",
|
|
"github-copilot": "github-copilot",
|
|
"copilot-proxy": "copilot-proxy",
|
|
"minimax-cloud": "minimax",
|
|
"minimax-api": "minimax",
|
|
"minimax-api-lightning": "minimax",
|
|
minimax: "lmstudio",
|
|
"opencode-zen": "opencode",
|
|
"xai-api-key": "xai",
|
|
"litellm-api-key": "litellm",
|
|
"qwen-portal": "qwen-portal",
|
|
"minimax-portal": "minimax-portal",
|
|
"qianfan-api-key": "qianfan",
|
|
"custom-api-key": "custom",
|
|
};
|
|
|
|
export function resolvePreferredProviderForAuthChoice(choice: AuthChoice): string | undefined {
|
|
return PREFERRED_PROVIDER_BY_AUTH_CHOICE[choice];
|
|
}
|