@@ -112,10 +112,21 @@ func (br baseRenderer) unmarshalParams(input string, target any) error {
114// makeHeader builds the tool call header with status icon and parameters for a nested tool call.
114// makeHeader builds the tool call header with status icon and parameters for a nested tool call.
115−func (br baseRenderer) makeNestedHeader(_ *toolCallCmp, tool string, width int, params ...string) string {
115+func (br baseRenderer) makeNestedHeader(v *toolCallCmp, tool string, width int, params ...string) string {
116 t := styles.CurrentTheme()
116 t := styles.CurrentTheme()
117+ icon := t.S().Base.Foreground(t.GreenDark).Render(styles.ToolPending)
118+ if v.result.ToolCallID != "" {
119+ if v.result.IsError {
120+ icon = t.S().Base.Foreground(t.RedDark).Render(styles.ToolError)
122+ icon = t.S().Base.Foreground(t.Green).Render(styles.ToolSuccess)
124+ } else if v.cancelled {
125+ icon = t.S().Muted.Render(styles.ToolPending)
117 tool = t.S().Base.Foreground(t.FgHalfMuted).Render(tool) + " "
127 tool = t.S().Base.Foreground(t.FgHalfMuted).Render(tool) + " "
128+ prefix := fmt.Sprintf("%s %s ", icon, tool)
118− return tool + renderParamList(true, width-lipgloss.Width(tool), params...)
129+ return prefix + renderParamList(true, width-lipgloss.Width(tool), params...)
121// makeHeader builds "<Tool>: param (key=value)" and truncates as needed.
132// makeHeader builds "<Tool>: param (key=value)" and truncates as needed.
@@ -542,7 +553,7 @@ func (tr agentRenderer) Render(v *toolCallCmp) string {
543 if v.result.ToolCallID == "" {
554 if v.result.ToolCallID == "" {
544 v.spinning = true
555 v.spinning = true
545− parts = append(parts, v.anim.View())
556+ parts = append(parts, "", v.anim.View())
547 v.spinning = false
558 v.spinning = false