diff --git a/scripts/setup.ts b/scripts/setup.ts index 68ec92ba..285aeac5 100644 --- a/scripts/setup.ts +++ b/scripts/setup.ts @@ -183,25 +183,27 @@ async function main(): Promise { }, ]; - const providerValue = await select({ - message: 'Select your AI provider:', - options: providers.map((p) => ({ value: p.value, label: p.label })), - }); + // Skip provider setup if any provider API key already exists + const anyProviderApiKeyExists = providers.some((p) => hasEnvVar(envContent, p.apiKeyEnv)); - if (isCancel(providerValue)) { - log.warn('Setup cancelled.'); - process.exit(0); - } + if (!anyProviderApiKeyExists) { + const providerValue = await select({ + message: 'Select your AI provider:', + options: providers.map((p) => ({ value: p.value, label: p.label })), + }); + + if (isCancel(providerValue)) { + log.warn('Setup cancelled.'); + process.exit(0); + } - const selected = providers.find((p) => p.value === providerValue); + const selected = providers.find((p) => p.value === providerValue); - if (!selected) { - log.error('Unknown provider.'); - process.exit(1); - } + if (!selected) { + log.error('Unknown provider.'); + process.exit(1); + } - // If API key already exists, skip provider setup - if (!hasEnvVar(envContent, selected.apiKeyEnv)) { // Prompt for model name const modelNameResult = await text({ message: `Enter the model name for ${selected.label} (e.g. ${selected.modelExample}):`,