(model: string)
| 168 | } |
| 169 | |
| 170 | function shouldRequireApiKeyForModel(model: string): boolean { |
| 171 | const normalizedModel = model.trim().toLowerCase() |
| 172 | if (!normalizedModel) return false |
| 173 | |
| 174 | if (isHosted) { |
| 175 | const hostedModels = getHostedModels() |
| 176 | if (hostedModels.some((m) => m.toLowerCase() === normalizedModel)) return false |
| 177 | } |
| 178 | |
| 179 | if (normalizedModel.startsWith('vertex/') || normalizedModel.startsWith('bedrock/')) { |
| 180 | return false |
| 181 | } |
| 182 | if ( |
| 183 | isAzureConfigured && |
| 184 | (normalizedModel.startsWith('azure/') || |
| 185 | normalizedModel.startsWith('azure-openai/') || |
| 186 | normalizedModel.startsWith('azure-anthropic/') || |
| 187 | AZURE_MODELS.some((m) => m.toLowerCase() === normalizedModel)) |
| 188 | ) { |
| 189 | return false |
| 190 | } |
| 191 | if (normalizedModel.startsWith('vllm/') || normalizedModel.startsWith('litellm/')) { |
| 192 | return false |
| 193 | } |
| 194 | |
| 195 | const storeProvider = getProviderFromStore(normalizedModel) |
| 196 | if (storeProvider === 'ollama' || storeProvider === 'vllm' || storeProvider === 'litellm') |
| 197 | return false |
| 198 | if (storeProvider) return true |
| 199 | |
| 200 | if (isOllamaConfigured) { |
| 201 | if (normalizedModel.includes('/')) return true |
| 202 | if (normalizedModel in getBaseModelProviders()) return true |
| 203 | return false |
| 204 | } |
| 205 | |
| 206 | return true |
| 207 | } |
| 208 | |
| 209 | /** |
| 210 | * Get the API key condition for provider credential subblocks. |
no test coverage detected