diff --git a/internal/tui/components/chat/sidebar/sidebar.go b/internal/tui/components/chat/sidebar/sidebar.go index cf1fd12dff512475fa77f0cd9fb657646c0cc2fd..c4df4edac10b24d15c09b6059fcb97a15d8b97b3 100644 --- a/internal/tui/components/chat/sidebar/sidebar.go +++ b/internal/tui/components/chat/sidebar/sidebar.go @@ -12,6 +12,7 @@ import ( "github.com/charmbracelet/crush/internal/config" "github.com/charmbracelet/crush/internal/diff" "github.com/charmbracelet/crush/internal/fsext" + "github.com/charmbracelet/crush/internal/fur/provider" "github.com/charmbracelet/crush/internal/history" "github.com/charmbracelet/crush/internal/lsp" "github.com/charmbracelet/crush/internal/lsp/protocol" @@ -880,8 +881,13 @@ func formatTokensAndCost(tokens, contextWindow int64, cost float64) string { } func (s *sidebarCmp) currentModelBlock() string { - agentCfg := config.Get().Agents["coder"] + cfg := config.Get() + agentCfg := cfg.Agents["coder"] + + selectedModel := cfg.Models[agentCfg.Model] + model := config.Get().GetModelByType(agentCfg.Model) + modelProvider := config.Get().GetProviderForModel(agentCfg.Model) t := styles.CurrentTheme() @@ -891,6 +897,23 @@ func (s *sidebarCmp) currentModelBlock() string { parts := []string{ modelInfo, } + if model.CanReason { + reasoningInfoStyle := t.S().Subtle.PaddingLeft(2) + switch modelProvider.Type { + case provider.TypeOpenAI: + reasoningEffort := model.DefaultReasoningEffort + if selectedModel.ReasoningEffort != "" { + reasoningEffort = selectedModel.ReasoningEffort + } + parts = append(parts, reasoningInfoStyle.Render(fmt.Sprintf("Reasoning %s", reasoningEffort))) + case provider.TypeAnthropic: + if selectedModel.Think { + parts = append(parts, reasoningInfoStyle.Render("Thinking on")) + } else { + parts = append(parts, reasoningInfoStyle.Render("Thinking off")) + } + } + } if s.session.ID != "" { parts = append( parts,