1package provider
2
3// Provider IDs are compile-time constants used by model metadata, routing,
4// discovery, and credential selection. Go has no enum type with string
5// interoperability, so untyped constants keep the existing public string
6// fields and wire formats while giving provider ownership one source of truth.
7const (
8 ProviderAnthropic = "anthropic"
9 ProviderOpenAI = "openai"
10 ProviderOpenAICodex = "openai-codex"
11 ProviderOpenAIResponses = "openai-responses"
12 ProviderKimi = "kimi"
13 ProviderDeepSeek = "deepseek"
14 ProviderGoogle = "google"
15 ProviderOllama = "ollama"
16 ProviderLlamaCPP = "llama.cpp"
17 ProviderMoonshot = "moonshotai"
18 ProviderMoonshotCN = "moonshotai-cn"
19 ProviderCerebras = "cerebras"
20 ProviderGroq = "groq"
21 ProviderXAI = "xai"
22 ProviderTogether = "together"
23 ProviderHuggingFace = "huggingface"
24 ProviderOpenRouter = "openrouter"
25 ProviderMistral = "mistral"
26 ProviderZAI = "zai"
27 ProviderXiaomi = "xiaomi"
28 ProviderXiaomiTokenPlanAMS = "xiaomi-token-plan-ams"
29 ProviderXiaomiTokenPlanCN = "xiaomi-token-plan-cn"
30 ProviderXiaomiTokenPlanSGP = "xiaomi-token-plan-sgp"
31 ProviderMiniMax = "minimax"
32 ProviderMiniMaxCN = "minimax-cn"
33 ProviderFireworks = "fireworks"
34 ProviderVercelAIGateway = "vercel-ai-gateway"
35 ProviderOpenCode = "opencode"
36 ProviderOpenCodeGo = "opencode-go"
37 ProviderAmazonBedrock = "amazon-bedrock"
38 ProviderGoogleVertex = "google-vertex"
39 ProviderAzureOpenAIResponses = "azure-openai-responses"
40 ProviderGitHubCopilot = "github-copilot"
41 ProviderCloudflareWorkersAI = "cloudflare-workers-ai"
42 ProviderCloudflareAIGateway = "cloudflare-ai-gateway"
43)
44
45var builtinProviderIDs = []string{
46 ProviderAnthropic, ProviderOpenAI, ProviderOpenAICodex, ProviderOpenAIResponses,
47 ProviderKimi, ProviderDeepSeek, ProviderGoogle, ProviderOllama, ProviderLlamaCPP,
48 ProviderMoonshot, ProviderMoonshotCN, ProviderCerebras, ProviderGroq, ProviderXAI,
49 ProviderTogether, ProviderHuggingFace, ProviderOpenRouter, ProviderMistral,
50 ProviderZAI, ProviderXiaomi, ProviderXiaomiTokenPlanAMS, ProviderXiaomiTokenPlanCN,
51 ProviderXiaomiTokenPlanSGP, ProviderMiniMax, ProviderMiniMaxCN, ProviderFireworks,
52 ProviderVercelAIGateway, ProviderOpenCode, ProviderOpenCodeGo, ProviderAmazonBedrock,
53 ProviderGoogleVertex, ProviderAzureOpenAIResponses, ProviderGitHubCopilot,
54 ProviderCloudflareWorkersAI, ProviderCloudflareAIGateway,
55}
56
57// BuiltinProviderIDs returns the canonical built-in provider IDs in fallback
58// priority order. The returned slice is independent of package state.
59func BuiltinProviderIDs() []string {
60 return append([]string(nil), builtinProviderIDs...)
61}