chore: changes after rebase

Kujtim Hoxha created

Change summary

internal/config/init.go                          |  8 +++
internal/tui/components/chat/chat.go             |  3 -
internal/tui/components/dialogs/models/list.go   | 46 +++++++++++------
internal/tui/components/dialogs/models/models.go |  2 
4 files changed, 38 insertions(+), 21 deletions(-)

Detailed changes

internal/config/init.go 🔗

@@ -103,3 +103,11 @@ func MarkProjectInitialized() error {
 
 	return nil
 }
+
+func HasInitialDataConfig() bool {
+	cfgPath := globalConfigData()
+	if _, err := os.Stat(cfgPath); err != nil {
+		return false
+	}
+	return true
+}

internal/tui/components/chat/chat.go 🔗

@@ -8,7 +8,6 @@ import (
 	tea "github.com/charmbracelet/bubbletea/v2"
 	"github.com/charmbracelet/crush/internal/app"
 	"github.com/charmbracelet/crush/internal/llm/agent"
-	"github.com/charmbracelet/crush/internal/logging"
 	"github.com/charmbracelet/crush/internal/message"
 	"github.com/charmbracelet/crush/internal/pubsub"
 	"github.com/charmbracelet/crush/internal/session"
@@ -81,7 +80,6 @@ func (m *messageListCmp) Init() tea.Cmd {
 
 // Update handles incoming messages and updates the component state.
 func (m *messageListCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
-	logging.Info("messageListCmp.Update", "msg", msg)
 	switch msg := msg.(type) {
 	case SessionSelectedMsg:
 		if msg.ID != m.session.ID {
@@ -380,7 +378,6 @@ func (m *messageListCmp) handleNewAssistantMessage(msg message.Message) tea.Cmd
 
 // SetSession loads and displays messages for a new session.
 func (m *messageListCmp) SetSession(session session.Session) tea.Cmd {
-	logging.Info("messageListCmp.SetSession", "sessionID", session.ID)
 	if m.session.ID == session.ID {
 		return nil
 	}

internal/tui/components/dialogs/models/list.go 🔗

@@ -61,34 +61,43 @@ func (m *ModelListComponent) SelectedIndex() int {
 func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
 	m.modelType = modelType
 
-	providers := config.Providers()
+	providers, err := config.Providers()
+	if err != nil {
+		return util.ReportError(err)
+	}
+
 	modelItems := []util.Model{}
 	selectIndex := 0
 
 	cfg := config.Get()
-	var currentModel config.PreferredModel
+	var currentModel config.SelectedModel
 	if m.modelType == LargeModelType {
-		currentModel = cfg.Models.Large
+		currentModel = cfg.Models[config.SelectedModelTypeLarge]
 	} else {
-		currentModel = cfg.Models.Small
+		currentModel = cfg.Models[config.SelectedModelTypeSmall]
 	}
 
-	addedProviders := make(map[provider.InferenceProvider]bool)
+	// Create a map to track which providers we've already added
+	addedProviders := make(map[string]bool)
 
+	// First, add any configured providers that are not in the known providers list
+	// These should appear at the top of the list
 	knownProviders := provider.KnownProviders()
 	for providerID, providerConfig := range cfg.Providers {
-		if providerConfig.Disabled {
+		if providerConfig.Disable {
 			continue
 		}
 
 		// Check if this provider is not in the known providers list
-		if !slices.Contains(knownProviders, providerID) {
+		if !slices.Contains(knownProviders, provider.InferenceProvider(providerID)) {
+			// Convert config provider to provider.Provider format
 			configProvider := provider.Provider{
-				Name:   string(providerID),
-				ID:     providerID,
+				Name:   string(providerID), // Use provider ID as name for unknown providers
+				ID:     provider.InferenceProvider(providerID),
 				Models: make([]provider.Model, len(providerConfig.Models)),
 			}
 
+			// Convert models
 			for i, model := range providerConfig.Models {
 				configProvider.Models[i] = provider.Model{
 					ID:                     model.ID,
@@ -101,11 +110,12 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
 					DefaultMaxTokens:       model.DefaultMaxTokens,
 					CanReason:              model.CanReason,
 					HasReasoningEffort:     model.HasReasoningEffort,
-					DefaultReasoningEffort: model.ReasoningEffort,
+					DefaultReasoningEffort: model.DefaultReasoningEffort,
 					SupportsImages:         model.SupportsImages,
 				}
 			}
 
+			// Add this unknown provider to the list
 			name := configProvider.Name
 			if name == "" {
 				name = string(configProvider.ID)
@@ -116,20 +126,23 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
 					Provider: configProvider,
 					Model:    model,
 				}))
-				if model.ID == currentModel.ModelID && configProvider.ID == currentModel.Provider {
-					selectIndex = len(modelItems) - 1
+				if model.ID == currentModel.Model && string(configProvider.ID) == currentModel.Provider {
+					selectIndex = len(modelItems) - 1 // Set the selected index to the current model
 				}
 			}
 			addedProviders[providerID] = true
 		}
 	}
 
+	// Then add the known providers from the predefined list
 	for _, provider := range providers {
-		if addedProviders[provider.ID] {
+		// Skip if we already added this provider as an unknown provider
+		if addedProviders[string(provider.ID)] {
 			continue
 		}
 
-		if providerConfig, exists := cfg.Providers[provider.ID]; exists && providerConfig.Disabled {
+		// Check if this provider is configured and not disabled
+		if providerConfig, exists := cfg.Providers[string(provider.ID)]; exists && providerConfig.Disable {
 			continue
 		}
 
@@ -143,8 +156,8 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
 				Provider: provider,
 				Model:    model,
 			}))
-			if model.ID == currentModel.ModelID && provider.ID == currentModel.Provider {
-				selectIndex = len(modelItems) - 1
+			if model.ID == currentModel.Model && string(provider.ID) == currentModel.Provider {
+				selectIndex = len(modelItems) - 1 // Set the selected index to the current model
 			}
 		}
 	}
@@ -156,4 +169,3 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
 func (m *ModelListComponent) GetModelType() int {
 	return m.modelType
 }
-

internal/tui/components/dialogs/models/models.go 🔗

@@ -105,7 +105,7 @@ func (m *modelDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 
 			var modelType config.SelectedModelType
 			if m.modelList.GetModelType() == LargeModelType {
-				modelType = config.LargeModel
+				modelType = config.SelectedModelTypeLarge
 			} else {
 				modelType = config.SelectedModelTypeSmall
 			}