Files
oh-my-opencode/src/cli/provider-availability.ts
T

35 lines
1.1 KiB
TypeScript
Raw Normal View History

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,
2026-04-13 11:22:22 +09:00
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,
2026-04-13 11:22:22 +09:00
vercel: availability.vercelAiGateway,
}
return mapping[provider] ?? false
}