summaryrefslogtreecommitdiffhomepage
path: root/packages/tui/internal/components/chat
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-06-12 09:35:19 -0500
committeradamdottv <[email protected]>2025-06-12 16:00:25 -0500
commitca0ea3f94dc1929071efc93bfcf708c8cf054be8 (patch)
tree294ec6778af8a712ae50ab5442c13ae95b51d337 /packages/tui/internal/components/chat
parent98bd5109c20f7e83c2fd2c5ef0dc28796fc47315 (diff)
downloadopencode-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.go12
-rw-r--r--packages/tui/internal/components/chat/messages.go14
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(