on main help sign in
feat(ui): preserve newlines in expanded tool content (#3239)
cbb6daaKieran Klukas
internal/ui/chat/agent.go+6−2
@@ -134,7 +134,9 @@ func (r *AgentToolRenderContext) RenderTool(sty *styles.Styles, width int, opts
134 _ = json.Unmarshal([]byte(opts.ToolCall.Input), &params)
134 _ = json.Unmarshal([]byte(opts.ToolCall.Input), &params)
135
135
136 prompt := params.Prompt
136 prompt := params.Prompt
137+ if !opts.ExpandedContent {
137− prompt = strings.ReplaceAll(prompt, "\n", " ")
138+ prompt = strings.ReplaceAll(prompt, "\n", " ")
139+ }
138
140
139 header := toolHeader(sty, opts.Status, "Agent", cappedWidth, opts)
141 header := toolHeader(sty, opts.Status, "Agent", cappedWidth, opts)
140 if opts.Compact {
142 if opts.Compact {
@@ -295,7 +297,9 @@ func (r *AgenticFetchToolRenderContext) RenderTool(sty *styles.Styles, width int
295 _ = json.Unmarshal([]byte(opts.ToolCall.Input), &params)
297 _ = json.Unmarshal([]byte(opts.ToolCall.Input), &params)
296
298
297 prompt := params.Prompt
299 prompt := params.Prompt
300+ if !opts.ExpandedContent {
298− prompt = strings.ReplaceAll(prompt, "\n", " ")
301+ prompt = strings.ReplaceAll(prompt, "\n", " ")
302+ }
299
303
300 // Build header with optional URL param.
304 // Build header with optional URL param.
301 var toolParams []string
305 var toolParams []string
internal/ui/chat/bash.go+4−1
@@ -62,7 +62,10 @@ func (b *BashToolRenderContext) RenderTool(sty *styles.Styles, width int, opts *
62 }
62 }
63
63
64 // Regular bash command.
64 // Regular bash command.
65+ cmd := params.Command
66+ if !opts.ExpandedContent {
65− cmd := strings.ReplaceAll(params.Command, "\n", " ")
67+ cmd = strings.ReplaceAll(cmd, "\n", " ")
68+ }
66 cmd = strings.ReplaceAll(cmd, "\t", " ")
69 cmd = strings.ReplaceAll(cmd, "\t", " ")
67 toolParams := []string{cmd}
70 toolParams := []string{cmd}
68 if params.RunInBackground {
71 if params.RunInBackground {