@@ -37,6 +37,30 @@ func (mt ModelType) String() string {
40+// Config returns the corresponding config model type.
41+func (mt ModelType) Config() config.SelectedModelType {
44+ return config.SelectedModelTypeLarge
46+ return config.SelectedModelTypeSmall
52+// Placeholder returns the input placeholder for the model type.
53+func (mt ModelType) Placeholder() string {
56+ return largeModelInputPlaceholder
58+ return smallModelInputPlaceholder
41 largeModelInputPlaceholder = "Choose a model for large, complex tasks"
65 largeModelInputPlaceholder = "Choose a model for large, complex tasks"
42 smallModelInputPlaceholder = "Choose a model for small, simple tasks"
66 smallModelInputPlaceholder = "Choose a model for small, simple tasks"
@@ -180,8 +204,8 @@ func (m *Models) Update(msg tea.Msg) tea.Msg {
182 return ModelSelectedMsg{
206 return ModelSelectedMsg{
183− Provider: modelItem.prov,
207+ Model: modelItem.SelectedModel(),
184− Model: modelItem.model,
208+ ModelType: modelItem.SelectedModelType(),
186 case key.Matches(msg, m.keyMap.Tab):
210 case key.Matches(msg, m.keyMap.Tab):
187 if m.modelType == ModelTypeLarge {
211 if m.modelType == ModelTypeLarge {
@@ -276,14 +300,8 @@ func (m *Models) setProviderItems() error {
276 t := m.com.Styles
300 t := m.com.Styles
277 cfg := m.com.Config()
301 cfg := m.com.Config()
279− selectedType := config.SelectedModelTypeLarge
280− if m.modelType == ModelTypeLarge {
281− selectedType = config.SelectedModelTypeLarge
283− selectedType = config.SelectedModelTypeSmall
286 var selectedItemID string
303 var selectedItemID string
304+ selectedType := m.modelType.Config()
287 currentModel := cfg.Models[selectedType]
305 currentModel := cfg.Models[selectedType]
288 recentItems := cfg.RecentModels[selectedType]
306 recentItems := cfg.RecentModels[selectedType]
@@ -325,7 +343,7 @@ func (m *Models) setProviderItems() error {
326 group := NewModelGroup(t, name, true)
344 group := NewModelGroup(t, name, true)
327 for _, model := range p.Models {
345 for _, model := range p.Models {
328− item := NewModelItem(t, provider, model, false)
346+ item := NewModelItem(t, provider, model, m.modelType, false)
329 group.AppendItems(item)
347 group.AppendItems(item)
330 itemsMap[item.ID()] = item
348 itemsMap[item.ID()] = item
331 if model.ID == currentModel.Model && string(provider.ID) == currentModel.Provider {
349 if model.ID == currentModel.Model && string(provider.ID) == currentModel.Provider {
@@ -379,7 +397,7 @@ func (m *Models) setProviderItems() error {
380 group := NewModelGroup(t, name, providerConfigured)
398 group := NewModelGroup(t, name, providerConfigured)
381 for _, model := range displayProvider.Models {
399 for _, model := range displayProvider.Models {
382− item := NewModelItem(t, provider, model, false)
400+ item := NewModelItem(t, provider, model, m.modelType, false)
383 group.AppendItems(item)
401 group.AppendItems(item)
384 itemsMap[item.ID()] = item
402 itemsMap[item.ID()] = item
385 if model.ID == currentModel.Model && string(provider.ID) == currentModel.Provider {
403 if model.ID == currentModel.Model && string(provider.ID) == currentModel.Provider {
@@ -402,7 +420,7 @@ func (m *Models) setProviderItems() error {
404 // Show provider for recent items
422 // Show provider for recent items
405− item = NewModelItem(t, item.prov, item.model, true)
423+ item = NewModelItem(t, item.prov, item.model, m.modelType, true)
406 item.showProvider = true
424 item.showProvider = true
408 validRecentItems = append(validRecentItems, recent)
426 validRecentItems = append(validRecentItems, recent)
@@ -429,11 +447,7 @@ func (m *Models) setProviderItems() error {
429 m.list.SetSelectedItem(selectedItemID)
447 m.list.SetSelectedItem(selectedItemID)
431 // Update placeholder based on model type
449 // Update placeholder based on model type
432− if m.modelType == ModelTypeLarge {
450+ m.input.Placeholder = m.modelType.Placeholder()
433− m.input.Placeholder = largeModelInputPlaceholder
435− m.input.Placeholder = smallModelInputPlaceholder
438 return nil
452 return nil