Install pipeline: - cli-installer.ts, tui-installer.ts, tui-install-prompts.ts - install-validators.ts Model fallback: - model-fallback-types.ts, fallback-chain-resolution.ts - provider-availability.ts, provider-model-id-transform.ts
31 lines
960 B
TypeScript
31 lines
960 B
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,
|
|
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,
|
|
}
|
|
return mapping[provider] ?? false
|
|
}
|