diff options
| author | adamdottv <[email protected]> | 2025-06-16 10:45:13 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-06-16 10:45:19 -0500 |
| commit | 3c94d265701c710e3f5ad13f2212cb8476c6a674 (patch) | |
| tree | 2f2e6970b49b608fcd01155506a28de5fdc6fb92 /packages/tui/internal/components | |
| parent | 1a553e525f70419ac893bec1a7fc3ea839b89b2c (diff) | |
| download | opencode-3c94d265701c710e3f5ad13f2212cb8476c6a674.tar.gz opencode-3c94d265701c710e3f5ad13f2212cb8476c6a674.zip | |
chore: remove status service
Diffstat (limited to 'packages/tui/internal/components')
| -rw-r--r-- | packages/tui/internal/components/chat/editor.go | 39 | ||||
| -rw-r--r-- | packages/tui/internal/components/core/status.go | 137 | ||||
| -rw-r--r-- | packages/tui/internal/components/dialog/complete.go | 9 | ||||
| -rw-r--r-- | packages/tui/internal/components/dialog/theme.go | 3 |
4 files changed, 14 insertions, 174 deletions
diff --git a/packages/tui/internal/components/chat/editor.go b/packages/tui/internal/components/chat/editor.go index 13bcf60ee..3c005a32e 100644 --- a/packages/tui/internal/components/chat/editor.go +++ b/packages/tui/internal/components/chat/editor.go @@ -17,7 +17,6 @@ import ( "github.com/sst/opencode/internal/components/dialog" "github.com/sst/opencode/internal/image" "github.com/sst/opencode/internal/layout" - "github.com/sst/opencode/internal/status" "github.com/sst/opencode/internal/styles" "github.com/sst/opencode/internal/theme" "github.com/sst/opencode/internal/util" @@ -157,7 +156,7 @@ func (m *editorComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } if key.Matches(msg, editorMaps.OpenEditor) { if m.app.IsBusy() { - status.Warn("Agent is working, please wait...") + // status.Warn("Agent is working, please wait...") return m, nil } value := m.textarea.Value() @@ -323,7 +322,7 @@ func (m *editorComponent) openEditor(value string) tea.Cmd { tmpfile, err := os.CreateTemp("", "msg_*.md") tmpfile.WriteString(value) if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) return nil } tmpfile.Close() @@ -333,16 +332,16 @@ func (m *editorComponent) openEditor(value string) tea.Cmd { c.Stderr = os.Stderr return tea.ExecProcess(c, func(err error) tea.Msg { if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) return nil } content, err := os.ReadFile(tmpfile.Name()) if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) return nil } if len(content) == 0 { - status.Warn("Message is empty") + // status.Warn("Message is empty") return nil } os.Remove(tmpfile.Name()) @@ -381,7 +380,6 @@ func (m *editorComponent) send() tea.Cmd { // return util.CmdHandler(commands.ExecuteCommandMsg{Name: commandName}) // } // } - slog.Info("Send message", "value", value) return tea.Batch( util.CmdHandler(SendMsg{ @@ -391,33 +389,6 @@ func (m *editorComponent) send() tea.Cmd { ) } -func (m *editorComponent) attachmentsContent() string { - if len(m.attachments) == 0 { - return "" - } - - t := theme.CurrentTheme() - var styledAttachments []string - attachmentStyles := styles.BaseStyle(). - MarginLeft(1). - Background(t.TextMuted()). - Foreground(t.Text()) - for i, attachment := range m.attachments { - var filename string - if len(attachment.FileName) > 10 { - filename = fmt.Sprintf(" %s %s...", styles.DocumentIcon, attachment.FileName[0:7]) - } else { - filename = fmt.Sprintf(" %s %s", styles.DocumentIcon, attachment.FileName) - } - if m.deleteMode { - filename = fmt.Sprintf("%d%s", i, filename) - } - styledAttachments = append(styledAttachments, attachmentStyles.Render(filename)) - } - content := lipgloss.JoinHorizontal(lipgloss.Left, styledAttachments...) - return content -} - func createTextArea(existing *textarea.Model) textarea.Model { t := theme.CurrentTheme() bgColor := t.BackgroundElement() diff --git a/packages/tui/internal/components/core/status.go b/packages/tui/internal/components/core/status.go index aa3febf9b..d014d6fa3 100644 --- a/packages/tui/internal/components/core/status.go +++ b/packages/tui/internal/components/core/status.go @@ -3,14 +3,11 @@ package core import ( "fmt" "strings" - "time" tea "github.com/charmbracelet/bubbletea/v2" "github.com/charmbracelet/lipgloss/v2" "github.com/sst/opencode/internal/app" "github.com/sst/opencode/internal/layout" - "github.com/sst/opencode/internal/pubsub" - "github.com/sst/opencode/internal/status" "github.com/sst/opencode/internal/styles" "github.com/sst/opencode/internal/theme" ) @@ -20,27 +17,12 @@ type StatusComponent interface { } type statusComponent struct { - app *app.App - queue []status.StatusMessage - width int - messageTTL time.Duration - activeUntil time.Time -} - -// clearMessageCmd is a command that clears status messages after a timeout -func (m statusComponent) clearMessageCmd() tea.Cmd { - return tea.Tick(time.Second, func(t time.Time) tea.Msg { - return statusCleanupMsg{time: t} - }) -} - -// statusCleanupMsg is a message that triggers cleanup of expired status messages -type statusCleanupMsg struct { - time time.Time + app *app.App + width int } func (m statusComponent) Init() tea.Cmd { - return m.clearMessageCmd() + return nil } func (m statusComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { @@ -48,53 +30,6 @@ func (m statusComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case tea.WindowSizeMsg: m.width = msg.Width return m, nil - case pubsub.Event[status.StatusMessage]: - if msg.Type == status.EventStatusPublished { - // If this is a critical message, move it to the front of the queue - if msg.Payload.Critical { - // Insert at the front of the queue - m.queue = append([]status.StatusMessage{msg.Payload}, m.queue...) - - // Reset active time to show critical message immediately - m.activeUntil = time.Time{} - } else { - // Otherwise, just add it to the queue - m.queue = append(m.queue, msg.Payload) - - // If this is the first message and nothing is active, activate it immediately - if len(m.queue) == 1 && m.activeUntil.IsZero() { - now := time.Now() - duration := m.messageTTL - if msg.Payload.Duration > 0 { - duration = msg.Payload.Duration - } - m.activeUntil = now.Add(duration) - } - } - } - case statusCleanupMsg: - now := msg.time - - // If the active message has expired, remove it and activate the next one - if !m.activeUntil.IsZero() && m.activeUntil.Before(now) { - // Current message expired, remove it if we have one - if len(m.queue) > 0 { - m.queue = m.queue[1:] - } - m.activeUntil = time.Time{} - } - - // If we have messages in queue but none are active, activate the first one - if len(m.queue) > 0 && m.activeUntil.IsZero() { - // Use custom duration if specified, otherwise use default - duration := m.messageTTL - if m.queue[0].Duration > 0 { - duration = m.queue[0].Duration - } - m.activeUntil = now.Add(duration) - } - - return m, m.clearMessageCmd() } return m, nil } @@ -190,75 +125,11 @@ func (m statusComponent) View() string { blank := styles.BaseStyle().Background(t.Background()).Width(m.width).Render("") return blank + "\n" + status - - // Display the first status message if available - // var statusMessage string - // if len(m.queue) > 0 { - // sm := m.queue[0] - // infoStyle := styles.Padded(). - // Foreground(t.Background()) - // - // switch sm.Level { - // case "info": - // infoStyle = infoStyle.Background(t.Info()) - // case "warn": - // infoStyle = infoStyle.Background(t.Warning()) - // case "error": - // infoStyle = infoStyle.Background(t.Error()) - // case "debug": - // infoStyle = infoStyle.Background(t.TextMuted()) - // } - // - // // Truncate message if it's longer than available width - // msg := sm.Message - // availWidth := statusWidth - 10 - // - // // If we have enough space, show inline - // if availWidth >= minInlineWidth { - // if len(msg) > availWidth && availWidth > 0 { - // msg = msg[:availWidth] + "..." - // } - // status += infoStyle.Width(statusWidth).Render(msg) - // } else { - // // Otherwise, prepare a full-width message to show above - // if len(msg) > m.width-10 && m.width > 10 { - // msg = msg[:m.width-10] + "..." - // } - // statusMessage = infoStyle.Width(m.width).Render(msg) - // - // // Add empty space in the status bar - // status += styles.Padded(). - // Foreground(t.Text()). - // Background(t.BackgroundSubtle()). - // Width(statusWidth). - // Render("") - // } - // } else { - // status += styles.Padded(). - // Foreground(t.Text()). - // Background(t.BackgroundSubtle()). - // Width(statusWidth). - // Render("") - // } - - // status += diagnostics - // status += modelName - - // If we have a separate status message, prepend it - // if statusMessage != "" { - // return statusMessage + "\n" + status - // } else { - // blank := styles.BaseStyle().Background(t.Background()).Width(m.width).Render("") - // return blank + "\n" + status - // } } func NewStatusCmp(app *app.App) StatusComponent { statusComponent := &statusComponent{ - app: app, - queue: []status.StatusMessage{}, - messageTTL: 4 * time.Second, - activeUntil: time.Time{}, + app: app, } return statusComponent diff --git a/packages/tui/internal/components/dialog/complete.go b/packages/tui/internal/components/dialog/complete.go index 74501f08a..9bde1fd04 100644 --- a/packages/tui/internal/components/dialog/complete.go +++ b/packages/tui/internal/components/dialog/complete.go @@ -7,7 +7,6 @@ import ( "github.com/charmbracelet/lipgloss/v2" "github.com/sst/opencode/internal/components/list" "github.com/sst/opencode/internal/layout" - "github.com/sst/opencode/internal/status" "github.com/sst/opencode/internal/styles" "github.com/sst/opencode/internal/theme" "github.com/sst/opencode/internal/util" @@ -158,7 +157,7 @@ func (c *completionDialogComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { if query != c.query { items, err := c.completionProvider.GetChildEntries(query) if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) } c.list.SetItems(items) @@ -189,7 +188,7 @@ func (c *completionDialogComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } else { items, err := c.completionProvider.GetChildEntries("") if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) } c.list.SetItems(items) @@ -246,7 +245,7 @@ func (c *completionDialogComponent) SetProvider(provider CompletionProvider) { c.completionProvider = provider items, err := provider.GetChildEntries("") if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) } c.list.SetItems(items) } @@ -257,7 +256,7 @@ func NewCompletionDialogComponent(completionProvider CompletionProvider) Complet items, err := completionProvider.GetChildEntries("") if err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) } li := list.NewListComponent( diff --git a/packages/tui/internal/components/dialog/theme.go b/packages/tui/internal/components/dialog/theme.go index f045b1b09..50472428b 100644 --- a/packages/tui/internal/components/dialog/theme.go +++ b/packages/tui/internal/components/dialog/theme.go @@ -5,7 +5,6 @@ import ( list "github.com/sst/opencode/internal/components/list" "github.com/sst/opencode/internal/components/modal" "github.com/sst/opencode/internal/layout" - "github.com/sst/opencode/internal/status" "github.com/sst/opencode/internal/styles" "github.com/sst/opencode/internal/theme" "github.com/sst/opencode/internal/util" @@ -71,7 +70,7 @@ func (t *themeDialog) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return t, util.CmdHandler(modal.CloseModalMsg{}) } if err := theme.SetTheme(selectedTheme); err != nil { - status.Error(err.Error()) + // status.Error(err.Error()) return t, nil } return t, tea.Sequence( |
