diff options
| author | adamdottv <[email protected]> | 2025-06-12 09:35:19 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-06-12 16:00:25 -0500 |
| commit | ca0ea3f94dc1929071efc93bfcf708c8cf054be8 (patch) | |
| tree | 294ec6778af8a712ae50ab5442c13ae95b51d337 /packages/tui/internal/components/chat | |
| parent | 98bd5109c20f7e83c2fd2c5ef0dc28796fc47315 (diff) | |
| download | opencode-ca0ea3f94dc1929071efc93bfcf708c8cf054be8.tar.gz opencode-ca0ea3f94dc1929071efc93bfcf708c8cf054be8.zip | |
wip: refactoring tui
Diffstat (limited to 'packages/tui/internal/components/chat')
| -rw-r--r-- | packages/tui/internal/components/chat/message.go | 12 | ||||
| -rw-r--r-- | packages/tui/internal/components/chat/messages.go | 14 |
2 files changed, 21 insertions, 5 deletions
diff --git a/packages/tui/internal/components/chat/message.go b/packages/tui/internal/components/chat/message.go index 199b4a070..f3fbca475 100644 --- a/packages/tui/internal/components/chat/message.go +++ b/packages/tui/internal/components/chat/message.go @@ -258,16 +258,18 @@ func renderToolInvocation( } body := "" + error := "" finished := result != nil && *result != "" if finished { body = *result } if metadata["error"] != nil && metadata["message"] != nil { - body = styles.BaseStyle(). - Width(outerWidth). + body = "" + error = styles.BaseStyle(). Foreground(t.Error()). Render(metadata["message"].(string)) + error = renderContentBlock(error, WithBorderColor(t.Error()), WithFullWidth(), WithPaddingTop(1), WithPaddingBottom(1)) } elapsed := "" @@ -364,10 +366,12 @@ func renderToolInvocation( content := style.Render(title) content = lipgloss.PlaceHorizontal(layout.Current.Viewport.Width, lipgloss.Center, content) - // content = styles.ForceReplaceBackgroundWithLipgloss(content, t.Background()) - if showResult && body != "" { + if showResult && body != "" && error == "" { content += "\n" + body } + if showResult && error != "" { + content += "\n" + error + } return content } diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go index 0036d0669..47a9b8362 100644 --- a/packages/tui/internal/components/chat/messages.go +++ b/packages/tui/internal/components/chat/messages.go @@ -122,6 +122,7 @@ const ( userTextBlock assistantTextBlock toolInvocationBlock + errorBlock ) func (m *messagesComponent) renderView() { @@ -129,6 +130,7 @@ func (m *messagesComponent) renderView() { return } + t := theme.CurrentTheme() blocks := make([]string, 0) previousBlockType := none for _, message := range m.app.Messages { @@ -211,9 +213,19 @@ func (m *messagesComponent) renderView() { previousBlockType = toolInvocationBlock } } + + error := "" + errorValue, _ := message.Metadata.Error.ValueByDiscriminator() + switch errorValue.(type) { + case client.UnknownError: + clientError := errorValue.(client.UnknownError) + error = clientError.Data.Message + error = renderContentBlock(error, WithBorderColor(t.Error()), WithFullWidth(), WithPaddingTop(1), WithPaddingBottom(1)) + blocks = append(blocks, error) + previousBlockType = errorBlock + } } - t := theme.CurrentTheme() centered := []string{} for _, block := range blocks { centered = append(centered, lipgloss.PlaceHorizontal( |
