diff --git a/internal/config/load.go b/internal/config/load.go index 85c760e3e0f34f60117916c5bab2a9d0dd3b108b..09c15262e18b80bf2c0b5d2aaf9a3b53b747b524 100644 --- a/internal/config/load.go +++ b/internal/config/load.go @@ -545,8 +545,11 @@ func (c *Config) defaultModelSelection(knownProviders []catwalk.Provider) (large } defaultLargeModel := c.GetModel(string(p.ID), p.DefaultLargeModelID) if defaultLargeModel == nil { - err = fmt.Errorf("default large model %s not found for provider %s", p.DefaultLargeModelID, p.ID) - return largeModel, smallModel, err + slog.Warn("Default large model %s not found for provider %s", p.DefaultLargeModelID, p.ID) + if len(providerConfig.Models) == 0 { + return largeModel, smallModel, fmt.Errorf("default large model %s not found for provider %s", p.DefaultLargeModelID, p.ID) + } + defaultLargeModel = &providerConfig.Models[0] } largeModel = SelectedModel{ Provider: string(p.ID), @@ -557,8 +560,11 @@ func (c *Config) defaultModelSelection(knownProviders []catwalk.Provider) (large defaultSmallModel := c.GetModel(string(p.ID), p.DefaultSmallModelID) if defaultSmallModel == nil { - err = fmt.Errorf("default small model %s not found for provider %s", p.DefaultSmallModelID, p.ID) - return largeModel, smallModel, err + slog.Warn("Default small model %s not found for provider %s", p.DefaultSmallModelID, p.ID) + if len(providerConfig.Models) == 0 { + return largeModel, smallModel, fmt.Errorf("default small model %s not found for provider %s", p.DefaultSmallModelID, p.ID) + } + defaultSmallModel = &providerConfig.Models[0] } smallModel = SelectedModel{ Provider: string(p.ID), diff --git a/internal/config/load_test.go b/internal/config/load_test.go index 1a56d6e6120ab1212bbfa6254e695d571926e40d..9d67acaeec31efb12ecbd1f715be0b327ac84132 100644 --- a/internal/config/load_test.go +++ b/internal/config/load_test.go @@ -1148,7 +1148,7 @@ func TestConfig_defaultModelSelection(t *testing.T) { _, _, err = cfg.defaultModelSelection(knownProviders) require.Error(t, err) }) - t.Run("should error if model is missing", func(t *testing.T) { + t.Run("should not error if model is missing", func(t *testing.T) { knownProviders := []catwalk.Provider{ { ID: "openai", @@ -1175,7 +1175,7 @@ func TestConfig_defaultModelSelection(t *testing.T) { err := cfg.configureProviders(testStore(cfg), env, resolver, knownProviders) require.NoError(t, err) _, _, err = cfg.defaultModelSelection(knownProviders) - require.Error(t, err) + require.NoError(t, err) }) t.Run("should configure the default models with a custom provider", func(t *testing.T) {