feat(opencode-go): add CLI install flag and TUI prompts
This commit is contained in:
@@ -31,6 +31,7 @@ program
|
|||||||
.option("--opencode-zen <value>", "OpenCode Zen access: no, yes (default: no)")
|
.option("--opencode-zen <value>", "OpenCode Zen access: no, yes (default: no)")
|
||||||
.option("--zai-coding-plan <value>", "Z.ai Coding Plan subscription: no, yes (default: no)")
|
.option("--zai-coding-plan <value>", "Z.ai Coding Plan subscription: no, yes (default: no)")
|
||||||
.option("--kimi-for-coding <value>", "Kimi For Coding subscription: no, yes (default: no)")
|
.option("--kimi-for-coding <value>", "Kimi For Coding subscription: no, yes (default: no)")
|
||||||
|
.option("--opencode-go <value>", "OpenCode Go subscription: no, yes (default: no)")
|
||||||
.option("--skip-auth", "Skip authentication setup hints")
|
.option("--skip-auth", "Skip authentication setup hints")
|
||||||
.addHelpText("after", `
|
.addHelpText("after", `
|
||||||
Examples:
|
Examples:
|
||||||
@@ -57,6 +58,7 @@ Model Providers (Priority: Native > Copilot > OpenCode Zen > Z.ai > Kimi):
|
|||||||
opencodeZen: options.opencodeZen,
|
opencodeZen: options.opencodeZen,
|
||||||
zaiCodingPlan: options.zaiCodingPlan,
|
zaiCodingPlan: options.zaiCodingPlan,
|
||||||
kimiForCoding: options.kimiForCoding,
|
kimiForCoding: options.kimiForCoding,
|
||||||
|
opencodeGo: options.opencodeGo,
|
||||||
skipAuth: options.skipAuth ?? false,
|
skipAuth: options.skipAuth ?? false,
|
||||||
}
|
}
|
||||||
const exitCode = await install(args)
|
const exitCode = await install(args)
|
||||||
|
|||||||
@@ -159,7 +159,8 @@ export function argsToConfig(args: InstallArgs): InstallConfig {
|
|||||||
hasCopilot: args.copilot === "yes",
|
hasCopilot: args.copilot === "yes",
|
||||||
hasOpencodeZen: args.opencodeZen === "yes",
|
hasOpencodeZen: args.opencodeZen === "yes",
|
||||||
hasZaiCodingPlan: args.zaiCodingPlan === "yes",
|
hasZaiCodingPlan: args.zaiCodingPlan === "yes",
|
||||||
hasKimiForCoding: args.kimiForCoding === "yes",
|
hasKimiForCoding: args.kimiForCoding === "yes",
|
||||||
|
hasOpencodeGo: args.opencodeGo === "yes",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +171,8 @@ export function detectedToInitialValues(detected: DetectedConfig): {
|
|||||||
copilot: BooleanArg
|
copilot: BooleanArg
|
||||||
opencodeZen: BooleanArg
|
opencodeZen: BooleanArg
|
||||||
zaiCodingPlan: BooleanArg
|
zaiCodingPlan: BooleanArg
|
||||||
kimiForCoding: BooleanArg
|
kimiForCoding: BooleanArg
|
||||||
|
opencodeGo: BooleanArg
|
||||||
} {
|
} {
|
||||||
let claude: ClaudeSubscription = "no"
|
let claude: ClaudeSubscription = "no"
|
||||||
if (detected.hasClaude) {
|
if (detected.hasClaude) {
|
||||||
@@ -184,6 +186,7 @@ export function detectedToInitialValues(detected: DetectedConfig): {
|
|||||||
copilot: detected.hasCopilot ? "yes" : "no",
|
copilot: detected.hasCopilot ? "yes" : "no",
|
||||||
opencodeZen: detected.hasOpencodeZen ? "yes" : "no",
|
opencodeZen: detected.hasOpencodeZen ? "yes" : "no",
|
||||||
zaiCodingPlan: detected.hasZaiCodingPlan ? "yes" : "no",
|
zaiCodingPlan: detected.hasZaiCodingPlan ? "yes" : "no",
|
||||||
kimiForCoding: detected.hasKimiForCoding ? "yes" : "no",
|
kimiForCoding: detected.hasKimiForCoding ? "yes" : "no",
|
||||||
|
opencodeGo: detected.hasOpencodeGo ? "yes" : "no",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,9 +97,19 @@ export async function promptInstallConfig(detected: DetectedConfig): Promise<Ins
|
|||||||
{ value: "yes", label: "Yes", hint: "Kimi K2.5 for Sisyphus/Prometheus fallback" },
|
{ value: "yes", label: "Yes", hint: "Kimi K2.5 for Sisyphus/Prometheus fallback" },
|
||||||
],
|
],
|
||||||
initialValue: initial.kimiForCoding,
|
initialValue: initial.kimiForCoding,
|
||||||
})
|
})
|
||||||
if (!kimiForCoding) return null
|
if (!kimiForCoding) return null
|
||||||
|
|
||||||
|
const opencodeGo = await selectOrCancel({
|
||||||
|
message: "Do you have an OpenCode Go subscription?",
|
||||||
|
options: [
|
||||||
|
{ value: "no", label: "No", hint: "Will use other configured providers" },
|
||||||
|
{ value: "yes", label: "Yes", hint: "OpenCode Go for quick tasks" },
|
||||||
|
],
|
||||||
|
initialValue: initial.opencodeGo,
|
||||||
|
})
|
||||||
|
if (!opencodeGo) return null
|
||||||
|
|
||||||
return {
|
return {
|
||||||
hasClaude: claude !== "no",
|
hasClaude: claude !== "no",
|
||||||
isMax20: claude === "max20",
|
isMax20: claude === "max20",
|
||||||
@@ -109,5 +119,6 @@ export async function promptInstallConfig(detected: DetectedConfig): Promise<Ins
|
|||||||
hasOpencodeZen: opencodeZen === "yes",
|
hasOpencodeZen: opencodeZen === "yes",
|
||||||
hasZaiCodingPlan: zaiCodingPlan === "yes",
|
hasZaiCodingPlan: zaiCodingPlan === "yes",
|
||||||
hasKimiForCoding: kimiForCoding === "yes",
|
hasKimiForCoding: kimiForCoding === "yes",
|
||||||
|
hasOpencodeGo: opencodeGo === "yes",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user