Files
oh-my-opencode/src/cli/provider-availability.ts
T
Matan Kushner dac0c99e8c feat: add Vercel AI Gateway as a provider
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.
2026-04-13 11:22:22 +09:00

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
}