setResolvedProviderAPIKey keeps ByProvider presence aligned with resolved provider availability. An empty value means ambient credentials may satisfy the provider. An absent entry means the provider is not resolvable.
(keys *ProviderAPIKeys, provider string, apiKey string, availability ProviderAvailability)
| 392 | // credentials may satisfy the provider. An absent entry means the |
| 393 | // provider is not resolvable. |
| 394 | func setResolvedProviderAPIKey(keys *ProviderAPIKeys, provider string, apiKey string, availability ProviderAvailability) { |
| 395 | normalizedProvider := NormalizeProvider(provider) |
| 396 | if normalizedProvider == "" { |
| 397 | return |
| 398 | } |
| 399 | if keys.ByProvider == nil { |
| 400 | keys.ByProvider = map[string]string{} |
| 401 | } |
| 402 | |
| 403 | delete(keys.ByProvider, normalizedProvider) |
| 404 | trimmedKey := strings.TrimSpace(apiKey) |
| 405 | switch normalizedProvider { |
| 406 | case fantasyopenai.Name: |
| 407 | keys.OpenAI = trimmedKey |
| 408 | case fantasyanthropic.Name: |
| 409 | keys.Anthropic = trimmedKey |
| 410 | } |
| 411 | if trimmedKey != "" || (availability.Available && ProviderAllowsAmbientCredentials(normalizedProvider)) { |
| 412 | keys.ByProvider[normalizedProvider] = trimmedKey |
| 413 | } |
| 414 | } |
| 415 | |
| 416 | type ModelCatalog struct{} |
| 417 |
no test coverage detected