(provider: Provider, env: EnvVars)
| 148 | } |
| 149 | |
| 150 | async function ensureApiKey(provider: Provider, env: EnvVars): Promise<string> { |
| 151 | const envKey = PROVIDER_ENV_KEYS[provider] ?? `${provider.toUpperCase().replace(/-/g, '_')}_API_KEY`; |
| 152 | if (!env[envKey]) { |
| 153 | const apiKey = await password({ |
| 154 | message: `API key (stored locally in .env as ${envKey})`, |
| 155 | mask: true, |
| 156 | validate: (v) => !v?.trim() ? 'API key is required' : true, |
| 157 | }); |
| 158 | env[envKey] = apiKey; |
| 159 | } |
| 160 | return envKey; |
| 161 | } |
| 162 | |
| 163 | async function collectModelConfig( |
| 164 | provider: Provider, |
no outgoing calls
no test coverage detected