@@ -8,9 +8,9 @@ import (
11+ "github.com/charmbracelet/catwalk/pkg/catwalk"
11 "github.com/charmbracelet/crush/internal/csync"
12 "github.com/charmbracelet/crush/internal/csync"
12 "github.com/charmbracelet/crush/internal/env"
13 "github.com/charmbracelet/crush/internal/env"
13− "github.com/charmbracelet/crush/internal/fur/provider"
14 "github.com/stretchr/testify/assert"
14 "github.com/stretchr/testify/assert"
@@ -56,12 +56,12 @@ func TestConfig_setDefaults(t *testing.T) {
58func TestConfig_configureProviders(t *testing.T) {
58func TestConfig_configureProviders(t *testing.T) {
59− knownProviders := []provider.Provider{
59+ knownProviders := []catwalk.Provider{
61 ID: "openai",
61 ID: "openai",
62 APIKey: "$OPENAI_API_KEY",
62 APIKey: "$OPENAI_API_KEY",
63 APIEndpoint: "https://api.openai.com/v1",
63 APIEndpoint: "https://api.openai.com/v1",
64− Models: []provider.Model{{
64+ Models: []catwalk.Model{{
65 ID: "test-model",
65 ID: "test-model",
@@ -83,12 +83,12 @@ func TestConfig_configureProviders(t *testing.T) {
85func TestConfig_configureProvidersWithOverride(t *testing.T) {
85func TestConfig_configureProvidersWithOverride(t *testing.T) {
86− knownProviders := []provider.Provider{
86+ knownProviders := []catwalk.Provider{
88 ID: "openai",
88 ID: "openai",
89 APIKey: "$OPENAI_API_KEY",
89 APIKey: "$OPENAI_API_KEY",
90 APIEndpoint: "https://api.openai.com/v1",
90 APIEndpoint: "https://api.openai.com/v1",
91− Models: []provider.Model{{
91+ Models: []catwalk.Model{{
92 ID: "test-model",
92 ID: "test-model",
@@ -100,10 +100,10 @@ func TestConfig_configureProvidersWithOverride(t *testing.T) {
100 cfg.Providers.Set("openai", ProviderConfig{
100 cfg.Providers.Set("openai", ProviderConfig{
101 APIKey: "xyz",
101 APIKey: "xyz",
102 BaseURL: "https://api.openai.com/v2",
102 BaseURL: "https://api.openai.com/v2",
103− Models: []provider.Model{
103+ Models: []catwalk.Model{
105− ID: "test-model",
105+ ID: "test-model",
106− Model: "Updated",
106+ Name: "Updated",
109 ID: "another-model",
109 ID: "another-model",
@@ -125,16 +125,16 @@ func TestConfig_configureProvidersWithOverride(t *testing.T) {
125 assert.Equal(t, "xyz", pc.APIKey)
125 assert.Equal(t, "xyz", pc.APIKey)
126 assert.Equal(t, "https://api.openai.com/v2", pc.BaseURL)
126 assert.Equal(t, "https://api.openai.com/v2", pc.BaseURL)
127 assert.Len(t, pc.Models, 2)
127 assert.Len(t, pc.Models, 2)
128− assert.Equal(t, "Updated", pc.Models[0].Model)
128+ assert.Equal(t, "Updated", pc.Models[0].Name)
131func TestConfig_configureProvidersWithNewProvider(t *testing.T) {
131func TestConfig_configureProvidersWithNewProvider(t *testing.T) {
132− knownProviders := []provider.Provider{
132+ knownProviders := []catwalk.Provider{
134 ID: "openai",
134 ID: "openai",
135 APIKey: "$OPENAI_API_KEY",
135 APIKey: "$OPENAI_API_KEY",
136 APIEndpoint: "https://api.openai.com/v1",
136 APIEndpoint: "https://api.openai.com/v1",
137− Models: []provider.Model{{
137+ Models: []catwalk.Model{{
138 ID: "test-model",
138 ID: "test-model",
@@ -145,7 +145,7 @@ func TestConfig_configureProvidersWithNewProvider(t *testing.T) {
145 "custom": {
145 "custom": {
146 APIKey: "xyz",
146 APIKey: "xyz",
147 BaseURL: "https://api.someendpoint.com/v2",
147 BaseURL: "https://api.someendpoint.com/v2",
148− Models: []provider.Model{
148+ Models: []catwalk.Model{
150 ID: "test-model",
150 ID: "test-model",
@@ -176,12 +176,12 @@ func TestConfig_configureProvidersWithNewProvider(t *testing.T) {
178func TestConfig_configureProvidersBedrockWithCredentials(t *testing.T) {
178func TestConfig_configureProvidersBedrockWithCredentials(t *testing.T) {
179− knownProviders := []provider.Provider{
179+ knownProviders := []catwalk.Provider{
181− ID: provider.InferenceProviderBedrock,
181+ ID: catwalk.InferenceProviderBedrock,
182 APIKey: "",
182 APIKey: "",
183 APIEndpoint: "",
183 APIEndpoint: "",
184− Models: []provider.Model{{
184+ Models: []catwalk.Model{{
185 ID: "anthropic.claude-sonnet-4-20250514-v1:0",
185 ID: "anthropic.claude-sonnet-4-20250514-v1:0",
@@ -205,12 +205,12 @@ func TestConfig_configureProvidersBedrockWithCredentials(t *testing.T) {
207func TestConfig_configureProvidersBedrockWithoutCredentials(t *testing.T) {
207func TestConfig_configureProvidersBedrockWithoutCredentials(t *testing.T) {
208− knownProviders := []provider.Provider{
208+ knownProviders := []catwalk.Provider{
210− ID: provider.InferenceProviderBedrock,
210+ ID: catwalk.InferenceProviderBedrock,
211 APIKey: "",
211 APIKey: "",
212 APIEndpoint: "",
212 APIEndpoint: "",
213− Models: []provider.Model{{
213+ Models: []catwalk.Model{{
214 ID: "anthropic.claude-sonnet-4-20250514-v1:0",
214 ID: "anthropic.claude-sonnet-4-20250514-v1:0",
@@ -227,12 +227,12 @@ func TestConfig_configureProvidersBedrockWithoutCredentials(t *testing.T) {
229func TestConfig_configureProvidersBedrockWithoutUnsupportedModel(t *testing.T) {
229func TestConfig_configureProvidersBedrockWithoutUnsupportedModel(t *testing.T) {
230− knownProviders := []provider.Provider{
230+ knownProviders := []catwalk.Provider{
232− ID: provider.InferenceProviderBedrock,
232+ ID: catwalk.InferenceProviderBedrock,
233 APIKey: "",
233 APIKey: "",
234 APIEndpoint: "",
234 APIEndpoint: "",
235− Models: []provider.Model{{
235+ Models: []catwalk.Model{{
236 ID: "some-random-model",
236 ID: "some-random-model",
@@ -250,12 +250,12 @@ func TestConfig_configureProvidersBedrockWithoutUnsupportedModel(t *testing.T) {
252func TestConfig_configureProvidersVertexAIWithCredentials(t *testing.T) {
252func TestConfig_configureProvidersVertexAIWithCredentials(t *testing.T) {
253− knownProviders := []provider.Provider{
253+ knownProviders := []catwalk.Provider{
255− ID: provider.InferenceProviderVertexAI,
255+ ID: catwalk.InferenceProviderVertexAI,
256 APIKey: "",
256 APIKey: "",
257 APIEndpoint: "",
257 APIEndpoint: "",
258− Models: []provider.Model{{
258+ Models: []catwalk.Model{{
259 ID: "gemini-pro",
259 ID: "gemini-pro",
@@ -282,12 +282,12 @@ func TestConfig_configureProvidersVertexAIWithCredentials(t *testing.T) {
284func TestConfig_configureProvidersVertexAIWithoutCredentials(t *testing.T) {
284func TestConfig_configureProvidersVertexAIWithoutCredentials(t *testing.T) {
285− knownProviders := []provider.Provider{
285+ knownProviders := []catwalk.Provider{
287− ID: provider.InferenceProviderVertexAI,
287+ ID: catwalk.InferenceProviderVertexAI,
288 APIKey: "",
288 APIKey: "",
289 APIEndpoint: "",
289 APIEndpoint: "",
290− Models: []provider.Model{{
290+ Models: []catwalk.Model{{
291 ID: "gemini-pro",
291 ID: "gemini-pro",
@@ -308,12 +308,12 @@ func TestConfig_configureProvidersVertexAIWithoutCredentials(t *testing.T) {
310func TestConfig_configureProvidersVertexAIMissingProject(t *testing.T) {
310func TestConfig_configureProvidersVertexAIMissingProject(t *testing.T) {
311− knownProviders := []provider.Provider{
311+ knownProviders := []catwalk.Provider{
313− ID: provider.InferenceProviderVertexAI,
313+ ID: catwalk.InferenceProviderVertexAI,
314 APIKey: "",
314 APIKey: "",
315 APIEndpoint: "",
315 APIEndpoint: "",
316− Models: []provider.Model{{
316+ Models: []catwalk.Model{{
317 ID: "gemini-pro",
317 ID: "gemini-pro",
@@ -333,12 +333,12 @@ func TestConfig_configureProvidersVertexAIMissingProject(t *testing.T) {
335func TestConfig_configureProvidersSetProviderID(t *testing.T) {
335func TestConfig_configureProvidersSetProviderID(t *testing.T) {
336− knownProviders := []provider.Provider{
336+ knownProviders := []catwalk.Provider{
338 ID: "openai",
338 ID: "openai",
339 APIKey: "$OPENAI_API_KEY",
339 APIKey: "$OPENAI_API_KEY",
340 APIEndpoint: "https://api.openai.com/v1",
340 APIEndpoint: "https://api.openai.com/v1",
341− Models: []provider.Model{{
341+ Models: []catwalk.Model{{
342 ID: "test-model",
342 ID: "test-model",
@@ -455,12 +455,12 @@ func TestConfig_IsConfigured(t *testing.T) {
457func TestConfig_configureProvidersWithDisabledProvider(t *testing.T) {
457func TestConfig_configureProvidersWithDisabledProvider(t *testing.T) {
458− knownProviders := []provider.Provider{
458+ knownProviders := []catwalk.Provider{
460 ID: "openai",
460 ID: "openai",
461 APIKey: "$OPENAI_API_KEY",
461 APIKey: "$OPENAI_API_KEY",
462 APIEndpoint: "https://api.openai.com/v1",
462 APIEndpoint: "https://api.openai.com/v1",
463− Models: []provider.Model{{
463+ Models: []catwalk.Model{{
464 ID: "test-model",
464 ID: "test-model",
@@ -494,7 +494,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
494 Providers: csync.NewMapFrom(map[string]ProviderConfig{
494 Providers: csync.NewMapFrom(map[string]ProviderConfig{
495 "custom": {
495 "custom": {
496 BaseURL: "https://api.custom.com/v1",
496 BaseURL: "https://api.custom.com/v1",
497− Models: []provider.Model{{
497+ Models: []catwalk.Model{{
498 ID: "test-model",
498 ID: "test-model",
@@ -507,7 +507,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
508 env := env.NewFromMap(map[string]string{})
508 env := env.NewFromMap(map[string]string{})
509 resolver := NewEnvironmentVariableResolver(env)
509 resolver := NewEnvironmentVariableResolver(env)
510− err := cfg.configureProviders(env, resolver, []provider.Provider{})
510+ err := cfg.configureProviders(env, resolver, []catwalk.Provider{})
511 assert.NoError(t, err)
511 assert.NoError(t, err)
513 assert.Equal(t, cfg.Providers.Len(), 1)
513 assert.Equal(t, cfg.Providers.Len(), 1)
@@ -520,7 +520,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
520 Providers: csync.NewMapFrom(map[string]ProviderConfig{
520 Providers: csync.NewMapFrom(map[string]ProviderConfig{
521 "custom": {
521 "custom": {
522 APIKey: "test-key",
522 APIKey: "test-key",
523− Models: []provider.Model{{
523+ Models: []catwalk.Model{{
524 ID: "test-model",
524 ID: "test-model",
@@ -530,7 +530,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
531 env := env.NewFromMap(map[string]string{})
531 env := env.NewFromMap(map[string]string{})
532 resolver := NewEnvironmentVariableResolver(env)
532 resolver := NewEnvironmentVariableResolver(env)
533− err := cfg.configureProviders(env, resolver, []provider.Provider{})
533+ err := cfg.configureProviders(env, resolver, []catwalk.Provider{})
534 assert.NoError(t, err)
534 assert.NoError(t, err)
536 assert.Equal(t, cfg.Providers.Len(), 0)
536 assert.Equal(t, cfg.Providers.Len(), 0)
@@ -544,7 +544,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
544 "custom": {
544 "custom": {
545 APIKey: "test-key",
545 APIKey: "test-key",
546 BaseURL: "https://api.custom.com/v1",
546 BaseURL: "https://api.custom.com/v1",
547− Models: []provider.Model{},
547+ Models: []catwalk.Model{},
@@ -552,7 +552,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
553 env := env.NewFromMap(map[string]string{})
553 env := env.NewFromMap(map[string]string{})
554 resolver := NewEnvironmentVariableResolver(env)
554 resolver := NewEnvironmentVariableResolver(env)
555− err := cfg.configureProviders(env, resolver, []provider.Provider{})
555+ err := cfg.configureProviders(env, resolver, []catwalk.Provider{})
556 assert.NoError(t, err)
556 assert.NoError(t, err)
558 assert.Equal(t, cfg.Providers.Len(), 0)
558 assert.Equal(t, cfg.Providers.Len(), 0)
@@ -567,7 +567,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
567 APIKey: "test-key",
567 APIKey: "test-key",
568 BaseURL: "https://api.custom.com/v1",
568 BaseURL: "https://api.custom.com/v1",
569 Type: "unsupported",
569 Type: "unsupported",
570− Models: []provider.Model{{
570+ Models: []catwalk.Model{{
571 ID: "test-model",
571 ID: "test-model",
@@ -577,7 +577,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
578 env := env.NewFromMap(map[string]string{})
578 env := env.NewFromMap(map[string]string{})
579 resolver := NewEnvironmentVariableResolver(env)
579 resolver := NewEnvironmentVariableResolver(env)
580− err := cfg.configureProviders(env, resolver, []provider.Provider{})
580+ err := cfg.configureProviders(env, resolver, []catwalk.Provider{})
581 assert.NoError(t, err)
581 assert.NoError(t, err)
583 assert.Equal(t, cfg.Providers.Len(), 0)
583 assert.Equal(t, cfg.Providers.Len(), 0)
@@ -591,8 +591,8 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
591 "custom": {
591 "custom": {
592 APIKey: "test-key",
592 APIKey: "test-key",
593 BaseURL: "https://api.custom.com/v1",
593 BaseURL: "https://api.custom.com/v1",
594− Type: provider.TypeOpenAI,
594+ Type: catwalk.TypeOpenAI,
595− Models: []provider.Model{{
595+ Models: []catwalk.Model{{
596 ID: "test-model",
596 ID: "test-model",
@@ -602,7 +602,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
603 env := env.NewFromMap(map[string]string{})
603 env := env.NewFromMap(map[string]string{})
604 resolver := NewEnvironmentVariableResolver(env)
604 resolver := NewEnvironmentVariableResolver(env)
605− err := cfg.configureProviders(env, resolver, []provider.Provider{})
605+ err := cfg.configureProviders(env, resolver, []catwalk.Provider{})
606 assert.NoError(t, err)
606 assert.NoError(t, err)
608 assert.Equal(t, cfg.Providers.Len(), 1)
608 assert.Equal(t, cfg.Providers.Len(), 1)
@@ -619,9 +619,9 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
619 "custom": {
619 "custom": {
620 APIKey: "test-key",
620 APIKey: "test-key",
621 BaseURL: "https://api.custom.com/v1",
621 BaseURL: "https://api.custom.com/v1",
622− Type: provider.TypeOpenAI,
622+ Type: catwalk.TypeOpenAI,
623 Disable: true,
623 Disable: true,
624− Models: []provider.Model{{
624+ Models: []catwalk.Model{{
625 ID: "test-model",
625 ID: "test-model",
@@ -631,7 +631,7 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
632 env := env.NewFromMap(map[string]string{})
632 env := env.NewFromMap(map[string]string{})
633 resolver := NewEnvironmentVariableResolver(env)
633 resolver := NewEnvironmentVariableResolver(env)
634− err := cfg.configureProviders(env, resolver, []provider.Provider{})
634+ err := cfg.configureProviders(env, resolver, []catwalk.Provider{})
635 assert.NoError(t, err)
635 assert.NoError(t, err)
637 assert.Equal(t, cfg.Providers.Len(), 0)
637 assert.Equal(t, cfg.Providers.Len(), 0)
@@ -642,12 +642,12 @@ func TestConfig_configureProvidersCustomProviderValidation(t *testing.T) {
643func TestConfig_configureProvidersEnhancedCredentialValidation(t *testing.T) {
643func TestConfig_configureProvidersEnhancedCredentialValidation(t *testing.T) {
644 t.Run("VertexAI provider removed when credentials missing with existing config", func(t *testing.T) {
644 t.Run("VertexAI provider removed when credentials missing with existing config", func(t *testing.T) {
645− knownProviders := []provider.Provider{
645+ knownProviders := []catwalk.Provider{
647− ID: provider.InferenceProviderVertexAI,
647+ ID: catwalk.InferenceProviderVertexAI,
648 APIKey: "",
648 APIKey: "",
649 APIEndpoint: "",
649 APIEndpoint: "",
650− Models: []provider.Model{{
650+ Models: []catwalk.Model{{
651 ID: "gemini-pro",
651 ID: "gemini-pro",
@@ -675,12 +675,12 @@ func TestConfig_configureProvidersEnhancedCredentialValidation(t *testing.T) {
677 t.Run("Bedrock provider removed when AWS credentials missing with existing config", func(t *testing.T) {
677 t.Run("Bedrock provider removed when AWS credentials missing with existing config", func(t *testing.T) {
678− knownProviders := []provider.Provider{
678+ knownProviders := []catwalk.Provider{
680− ID: provider.InferenceProviderBedrock,
680+ ID: catwalk.InferenceProviderBedrock,
681 APIKey: "",
681 APIKey: "",
682 APIEndpoint: "",
682 APIEndpoint: "",
683− Models: []provider.Model{{
683+ Models: []catwalk.Model{{
684 ID: "anthropic.claude-sonnet-4-20250514-v1:0",
684 ID: "anthropic.claude-sonnet-4-20250514-v1:0",
@@ -706,12 +706,12 @@ func TestConfig_configureProvidersEnhancedCredentialValidation(t *testing.T) {
708 t.Run("provider removed when API key missing with existing config", func(t *testing.T) {
708 t.Run("provider removed when API key missing with existing config", func(t *testing.T) {
709− knownProviders := []provider.Provider{
709+ knownProviders := []catwalk.Provider{
711 ID: "openai",
711 ID: "openai",
712 APIKey: "$MISSING_API_KEY",
712 APIKey: "$MISSING_API_KEY",
713 APIEndpoint: "https://api.openai.com/v1",
713 APIEndpoint: "https://api.openai.com/v1",
714− Models: []provider.Model{{
714+ Models: []catwalk.Model{{
715 ID: "test-model",
715 ID: "test-model",
@@ -737,12 +737,12 @@ func TestConfig_configureProvidersEnhancedCredentialValidation(t *testing.T) {
739 t.Run("known provider should still be added if the endpoint is missing the client will use default endpoints", func(t *testing.T) {
739 t.Run("known provider should still be added if the endpoint is missing the client will use default endpoints", func(t *testing.T) {
740− knownProviders := []provider.Provider{
740+ knownProviders := []catwalk.Provider{
742 ID: "openai",
742 ID: "openai",
743 APIKey: "$OPENAI_API_KEY",
743 APIKey: "$OPENAI_API_KEY",
744 APIEndpoint: "$MISSING_ENDPOINT",
744 APIEndpoint: "$MISSING_ENDPOINT",
745− Models: []provider.Model{{
745+ Models: []catwalk.Model{{
746 ID: "test-model",
746 ID: "test-model",
@@ -772,13 +772,13 @@ func TestConfig_configureProvidersEnhancedCredentialValidation(t *testing.T) {
773func TestConfig_defaultModelSelection(t *testing.T) {
773func TestConfig_defaultModelSelection(t *testing.T) {
774 t.Run("default behavior uses the default models for given provider", func(t *testing.T) {
774 t.Run("default behavior uses the default models for given provider", func(t *testing.T) {
775− knownProviders := []provider.Provider{
775+ knownProviders := []catwalk.Provider{
777 ID: "openai",
777 ID: "openai",
778 APIKey: "abc",
778 APIKey: "abc",
779 DefaultLargeModelID: "large-model",
779 DefaultLargeModelID: "large-model",
780 DefaultSmallModelID: "small-model",
780 DefaultSmallModelID: "small-model",
781− Models: []provider.Model{
781+ Models: []catwalk.Model{
783 ID: "large-model",
783 ID: "large-model",
784 DefaultMaxTokens: 1000,
784 DefaultMaxTokens: 1000,
@@ -808,13 +808,13 @@ func TestConfig_defaultModelSelection(t *testing.T) {
808 assert.Equal(t, int64(500), small.MaxTokens)
808 assert.Equal(t, int64(500), small.MaxTokens)
810 t.Run("should error if no providers configured", func(t *testing.T) {
810 t.Run("should error if no providers configured", func(t *testing.T) {
811− knownProviders := []provider.Provider{
811+ knownProviders := []catwalk.Provider{
813 ID: "openai",
813 ID: "openai",
814 APIKey: "$MISSING_KEY",
814 APIKey: "$MISSING_KEY",
815 DefaultLargeModelID: "large-model",
815 DefaultLargeModelID: "large-model",
816 DefaultSmallModelID: "small-model",
816 DefaultSmallModelID: "small-model",
817− Models: []provider.Model{
817+ Models: []catwalk.Model{
819 ID: "large-model",
819 ID: "large-model",
820 DefaultMaxTokens: 1000,
820 DefaultMaxTokens: 1000,
@@ -838,13 +838,13 @@ func TestConfig_defaultModelSelection(t *testing.T) {
838 assert.Error(t, err)
838 assert.Error(t, err)
840 t.Run("should error if model is missing", func(t *testing.T) {
840 t.Run("should error if model is missing", func(t *testing.T) {
841− knownProviders := []provider.Provider{
841+ knownProviders := []catwalk.Provider{
843 ID: "openai",
843 ID: "openai",
844 APIKey: "abc",
844 APIKey: "abc",
845 DefaultLargeModelID: "large-model",
845 DefaultLargeModelID: "large-model",
846 DefaultSmallModelID: "small-model",
846 DefaultSmallModelID: "small-model",
847− Models: []provider.Model{
847+ Models: []catwalk.Model{
849 ID: "not-large-model",
849 ID: "not-large-model",
850 DefaultMaxTokens: 1000,
850 DefaultMaxTokens: 1000,
@@ -868,13 +868,13 @@ func TestConfig_defaultModelSelection(t *testing.T) {
870 t.Run("should configure the default models with a custom provider", func(t *testing.T) {
870 t.Run("should configure the default models with a custom provider", func(t *testing.T) {
871− knownProviders := []provider.Provider{
871+ knownProviders := []catwalk.Provider{
873 ID: "openai",
873 ID: "openai",
874 APIKey: "$MISSING", // will not be included in the config
874 APIKey: "$MISSING", // will not be included in the config
875 DefaultLargeModelID: "large-model",
875 DefaultLargeModelID: "large-model",
876 DefaultSmallModelID: "small-model",
876 DefaultSmallModelID: "small-model",
877− Models: []provider.Model{
877+ Models: []catwalk.Model{
879 ID: "not-large-model",
879 ID: "not-large-model",
880 DefaultMaxTokens: 1000,
880 DefaultMaxTokens: 1000,
@@ -892,7 +892,7 @@ func TestConfig_defaultModelSelection(t *testing.T) {
892 "custom": {
892 "custom": {
893 APIKey: "test-key",
893 APIKey: "test-key",
894 BaseURL: "https://api.custom.com/v1",
894 BaseURL: "https://api.custom.com/v1",
895− Models: []provider.Model{
895+ Models: []catwalk.Model{
897 ID: "model",
897 ID: "model",
898 DefaultMaxTokens: 600,
898 DefaultMaxTokens: 600,
@@ -917,13 +917,13 @@ func TestConfig_defaultModelSelection(t *testing.T) {
919 t.Run("should fail if no model configured", func(t *testing.T) {
919 t.Run("should fail if no model configured", func(t *testing.T) {
920− knownProviders := []provider.Provider{
920+ knownProviders := []catwalk.Provider{
922 ID: "openai",
922 ID: "openai",
923 APIKey: "$MISSING", // will not be included in the config
923 APIKey: "$MISSING", // will not be included in the config
924 DefaultLargeModelID: "large-model",
924 DefaultLargeModelID: "large-model",
925 DefaultSmallModelID: "small-model",
925 DefaultSmallModelID: "small-model",
926− Models: []provider.Model{
926+ Models: []catwalk.Model{
928 ID: "not-large-model",
928 ID: "not-large-model",
929 DefaultMaxTokens: 1000,
929 DefaultMaxTokens: 1000,
@@ -941,7 +941,7 @@ func TestConfig_defaultModelSelection(t *testing.T) {
941 "custom": {
941 "custom": {
942 APIKey: "test-key",
942 APIKey: "test-key",
943 BaseURL: "https://api.custom.com/v1",
943 BaseURL: "https://api.custom.com/v1",
944− Models: []provider.Model{},
944+ Models: []catwalk.Model{},
@@ -954,13 +954,13 @@ func TestConfig_defaultModelSelection(t *testing.T) {
954 assert.Error(t, err)
954 assert.Error(t, err)
956 t.Run("should use the default provider first", func(t *testing.T) {
956 t.Run("should use the default provider first", func(t *testing.T) {
957− knownProviders := []provider.Provider{
957+ knownProviders := []catwalk.Provider{
959 ID: "openai",
959 ID: "openai",
960 APIKey: "set",
960 APIKey: "set",
961 DefaultLargeModelID: "large-model",
961 DefaultLargeModelID: "large-model",
962 DefaultSmallModelID: "small-model",
962 DefaultSmallModelID: "small-model",
963− Models: []provider.Model{
963+ Models: []catwalk.Model{
965 ID: "large-model",
965 ID: "large-model",
966 DefaultMaxTokens: 1000,
966 DefaultMaxTokens: 1000,
@@ -978,7 +978,7 @@ func TestConfig_defaultModelSelection(t *testing.T) {
978 "custom": {
978 "custom": {
979 APIKey: "test-key",
979 APIKey: "test-key",
980 BaseURL: "https://api.custom.com/v1",
980 BaseURL: "https://api.custom.com/v1",
981− Models: []provider.Model{
981+ Models: []catwalk.Model{
983 ID: "large-model",
983 ID: "large-model",
984 DefaultMaxTokens: 1000,
984 DefaultMaxTokens: 1000,
@@ -1005,13 +1005,13 @@ func TestConfig_defaultModelSelection(t *testing.T) {
1006func TestConfig_configureSelectedModels(t *testing.T) {
1006func TestConfig_configureSelectedModels(t *testing.T) {
1007 t.Run("should override defaults", func(t *testing.T) {
1007 t.Run("should override defaults", func(t *testing.T) {
1008− knownProviders := []provider.Provider{
1008+ knownProviders := []catwalk.Provider{
1010 ID: "openai",
1010 ID: "openai",
1011 APIKey: "abc",
1011 APIKey: "abc",
1012 DefaultLargeModelID: "large-model",
1012 DefaultLargeModelID: "large-model",
1013 DefaultSmallModelID: "small-model",
1013 DefaultSmallModelID: "small-model",
1014− Models: []provider.Model{
1014+ Models: []catwalk.Model{
1016 ID: "larger-model",
1016 ID: "larger-model",
1017 DefaultMaxTokens: 2000,
1017 DefaultMaxTokens: 2000,
@@ -1053,13 +1053,13 @@ func TestConfig_configureSelectedModels(t *testing.T) {
1053 assert.Equal(t, int64(500), small.MaxTokens)
1053 assert.Equal(t, int64(500), small.MaxTokens)
1055 t.Run("should be possible to use multiple providers", func(t *testing.T) {
1055 t.Run("should be possible to use multiple providers", func(t *testing.T) {
1056− knownProviders := []provider.Provider{
1056+ knownProviders := []catwalk.Provider{
1058 ID: "openai",
1058 ID: "openai",
1059 APIKey: "abc",
1059 APIKey: "abc",
1060 DefaultLargeModelID: "large-model",
1060 DefaultLargeModelID: "large-model",
1061 DefaultSmallModelID: "small-model",
1061 DefaultSmallModelID: "small-model",
1062− Models: []provider.Model{
1062+ Models: []catwalk.Model{
1064 ID: "large-model",
1064 ID: "large-model",
1065 DefaultMaxTokens: 1000,
1065 DefaultMaxTokens: 1000,
@@ -1075,7 +1075,7 @@ func TestConfig_configureSelectedModels(t *testing.T) {
1075 APIKey: "abc",
1075 APIKey: "abc",
1076 DefaultLargeModelID: "a-large-model",
1076 DefaultLargeModelID: "a-large-model",
1077 DefaultSmallModelID: "a-small-model",
1077 DefaultSmallModelID: "a-small-model",
1078− Models: []provider.Model{
1078+ Models: []catwalk.Model{
1080 ID: "a-large-model",
1080 ID: "a-large-model",
1081 DefaultMaxTokens: 1000,
1081 DefaultMaxTokens: 1000,
@@ -1116,13 +1116,13 @@ func TestConfig_configureSelectedModels(t *testing.T) {
1118 t.Run("should override the max tokens only", func(t *testing.T) {
1118 t.Run("should override the max tokens only", func(t *testing.T) {
1119− knownProviders := []provider.Provider{
1119+ knownProviders := []catwalk.Provider{
1121 ID: "openai",
1121 ID: "openai",
1122 APIKey: "abc",
1122 APIKey: "abc",
1123 DefaultLargeModelID: "large-model",
1123 DefaultLargeModelID: "large-model",
1124 DefaultSmallModelID: "small-model",
1124 DefaultSmallModelID: "small-model",
1125− Models: []provider.Model{
1125+ Models: []catwalk.Model{
1127 ID: "large-model",
1127 ID: "large-model",
1128 DefaultMaxTokens: 1000,
1128 DefaultMaxTokens: 1000,