fix: ensure that hyper and copilot models show up even if not configured

Andrey Nering created

Change summary

internal/ui/dialog/models.go | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

Detailed changes

internal/ui/dialog/models.go 🔗

@@ -459,10 +459,16 @@ func getFilteredProviders(cfg *config.Config) ([]catwalk.Provider, error) {
 	if err != nil {
 		return nil, fmt.Errorf("failed to get providers: %w", err)
 	}
-	filteredProviders := []catwalk.Provider{}
+	var filteredProviders []catwalk.Provider
 	for _, p := range providers {
-		hasAPIKeyEnv := strings.HasPrefix(p.APIKey, "$")
-		if hasAPIKeyEnv && p.ID != catwalk.InferenceProviderAzure {
+		var (
+			isAzure         = p.ID == catwalk.InferenceProviderAzure
+			isCopilot       = p.ID == catwalk.InferenceProviderCopilot
+			isHyper         = string(p.ID) == "hyper"
+			hasAPIKeyEnv    = strings.HasPrefix(p.APIKey, "$")
+			_, isConfigured = cfg.Providers.Get(string(p.ID))
+		)
+		if isAzure || isCopilot || isHyper || hasAPIKeyEnv || isConfigured {
 			filteredProviders = append(filteredProviders, p)
 		}
 	}