refactor(cli): split install.ts and model-fallback.ts into focused modules
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
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user