dac0c99e8c
Adds 'vercel' as a recognized provider throughout the model resolution system, enabling users with Vercel AI Gateway to use it as a universal fallback for OpenAI, Anthropic, and Google models. The gateway transform infers the sub-provider from canonical model names (claude->anthropic, gpt->openai, gemini->google) and delegates to the appropriate provider-specific transform, producing model strings like vercel/anthropic/claude-opus-4.6.
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import type { InstallConfig } from "./types"
|
|
import type { ProviderAvailability } from "./model-fallback-types"
|
|
|
|
export function toProviderAvailability(config: InstallConfig): ProviderAvailability {
|
|
return {
|
|
native: {
|
|
claude: config.hasClaude,
|
|
openai: config.hasOpenAI,
|
|
gemini: config.hasGemini,
|
|
},
|
|
opencodeZen: config.hasOpencodeZen,
|
|
copilot: config.hasCopilot,
|
|
zai: config.hasZaiCodingPlan,
|
|
kimiForCoding: config.hasKimiForCoding,
|
|
opencodeGo: config.hasOpencodeGo,
|
|
vercelAiGateway: config.hasVercelAiGateway,
|
|
isMaxPlan: config.isMax20,
|
|
}
|
|
}
|
|
|
|
export function isProviderAvailable(provider: string, availability: ProviderAvailability): boolean {
|
|
const mapping: Record<string, boolean> = {
|
|
anthropic: availability.native.claude,
|
|
openai: availability.native.openai,
|
|
google: availability.native.gemini,
|
|
"github-copilot": availability.copilot,
|
|
opencode: availability.opencodeZen,
|
|
"zai-coding-plan": availability.zai,
|
|
"kimi-for-coding": availability.kimiForCoding,
|
|
"opencode-go": availability.opencodeGo,
|
|
vercel: availability.vercelAiGateway,
|
|
}
|
|
return mapping[provider] ?? false
|
|
}
|