Change summary
internal/tui/components/chat/sidebar/sidebar.go | 7 ++-----
internal/tui/components/dialogs/commands/commands.go | 4 +---
internal/ui/dialog/commands.go | 4 +---
internal/ui/model/sidebar.go | 6 ++----
4 files changed, 6 insertions(+), 15 deletions(-)
Detailed changes
@@ -8,7 +8,6 @@ import (
tea "charm.land/bubbletea/v2"
"charm.land/lipgloss/v2"
- "github.com/charmbracelet/catwalk/pkg/catwalk"
"github.com/charmbracelet/crush/internal/config"
"github.com/charmbracelet/crush/internal/csync"
"github.com/charmbracelet/crush/internal/diff"
@@ -548,7 +547,6 @@ func (s *sidebarCmp) currentModelBlock() string {
selectedModel := cfg.Models[agentCfg.Model]
model := config.Get().GetModelByType(agentCfg.Model)
- modelProvider := config.Get().GetProviderForModel(agentCfg.Model)
t := styles.CurrentTheme()
@@ -560,15 +558,14 @@ func (s *sidebarCmp) currentModelBlock() string {
}
if model.CanReason {
reasoningInfoStyle := t.S().Subtle.PaddingLeft(2)
- switch modelProvider.Type {
- case catwalk.TypeAnthropic:
+ if len(model.ReasoningLevels) == 0 {
formatter := cases.Title(language.English, cases.NoLower)
if selectedModel.Think {
parts = append(parts, reasoningInfoStyle.Render(formatter.String("Thinking on")))
} else {
parts = append(parts, reasoningInfoStyle.Render(formatter.String("Thinking off")))
}
- default:
+ } else {
reasoningEffort := model.DefaultReasoningEffort
if selectedModel.ReasoningEffort != "" {
reasoningEffort = selectedModel.ReasoningEffort
@@ -10,10 +10,8 @@ import (
"charm.land/bubbles/v2/key"
tea "charm.land/bubbletea/v2"
"charm.land/lipgloss/v2"
- "github.com/charmbracelet/catwalk/pkg/catwalk"
"github.com/charmbracelet/crush/internal/agent"
- "github.com/charmbracelet/crush/internal/agent/hyper"
"github.com/charmbracelet/crush/internal/agent/tools/mcp"
"github.com/charmbracelet/crush/internal/config"
"github.com/charmbracelet/crush/internal/csync"
@@ -364,7 +362,7 @@ func (c *commandDialogCmp) defaultCommands() []Command {
selectedModel := cfg.Models[agentCfg.Model]
// Anthropic models: thinking toggle
- if providerCfg.Type == catwalk.TypeAnthropic || providerCfg.Type == catwalk.Type(hyper.Name) {
+ if model.CanReason && len(model.ReasoningLevels) == 0 {
status := "Enable"
if selectedModel.Think {
status = "Disable"
@@ -9,8 +9,6 @@ import (
"charm.land/bubbles/v2/spinner"
"charm.land/bubbles/v2/textinput"
tea "charm.land/bubbletea/v2"
- "github.com/charmbracelet/catwalk/pkg/catwalk"
- "github.com/charmbracelet/crush/internal/agent/hyper"
"github.com/charmbracelet/crush/internal/commands"
"github.com/charmbracelet/crush/internal/config"
"github.com/charmbracelet/crush/internal/ui/common"
@@ -405,7 +403,7 @@ func (c *Commands) defaultCommands() []*CommandItem {
selectedModel := cfg.Models[agentCfg.Model]
// Anthropic models: thinking toggle
- if providerCfg.Type == catwalk.TypeAnthropic || providerCfg.Type == catwalk.Type(hyper.Name) {
+ if model.CanReason && len(model.ReasoningLevels) == 0 {
status := "Enable"
if selectedModel.Think {
status = "Disable"
@@ -5,7 +5,6 @@ import (
"fmt"
"charm.land/lipgloss/v2"
- "github.com/charmbracelet/catwalk/pkg/catwalk"
"github.com/charmbracelet/crush/internal/ui/common"
"github.com/charmbracelet/crush/internal/ui/logo"
uv "github.com/charmbracelet/ultraviolet"
@@ -28,14 +27,13 @@ func (m *UI) modelInfo(width int) string {
// Only check reasoning if model can reason
if model.CatwalkCfg.CanReason {
- switch providerConfig.Type {
- case catwalk.TypeAnthropic:
+ if model.ModelCfg.ReasoningEffort == "" {
if model.ModelCfg.Think {
reasoningInfo = "Thinking On"
} else {
reasoningInfo = "Thinking Off"
}
- default:
+ } else {
formatter := cases.Title(language.English, cases.NoLower)
reasoningEffort := cmp.Or(model.ModelCfg.ReasoningEffort, model.CatwalkCfg.DefaultReasoningEffort)
reasoningInfo = formatter.String(fmt.Sprintf("Reasoning %s", reasoningEffort))