77
88 "github.com/charmbracelet/bubbles/v2/spinner"
99 tea "github.com/charmbracelet/bubbletea/v2"
10+ "github.com/charmbracelet/glamour/v2"
1011
1112 "github.com/docker/cagent/pkg/app"
1213 "github.com/docker/cagent/pkg/tui/core/layout"
@@ -18,7 +19,8 @@ import (
1819type toolModel struct {
1920 message * types.Message
2021
21- spinner spinner.Model
22+ spinner spinner.Model
23+ renderer * glamour.TermRenderer
2224
2325 width int
2426 height int
@@ -34,19 +36,20 @@ func (mv *toolModel) SetSize(width, height int) tea.Cmd {
3436}
3537
3638// New creates a new tool view
37- func New (msg * types.Message , a * app.App ) layout.Model {
39+ func New (msg * types.Message , a * app.App , renderer * glamour. TermRenderer ) layout.Model {
3840 if msg .ToolCall .Function .Name == "transfer_task" {
3941 return & transferTaskModel {
4042 msg : msg ,
4143 }
4244 }
4345
4446 return & toolModel {
45- message : msg ,
46- width : 80 ,
47- height : 1 ,
48- spinner : spinner .New (spinner .WithSpinner (spinner .Points )),
49- app : a ,
47+ message : msg ,
48+ width : 80 ,
49+ height : 1 ,
50+ spinner : spinner .New (spinner .WithSpinner (spinner .Points )),
51+ renderer : renderer ,
52+ app : a ,
5053 }
5154}
5255
@@ -102,7 +105,7 @@ func (mv *toolModel) View() string {
102105 case "search_files" :
103106 content += " " + render_search_files (msg .ToolCall )
104107 case "run_tools_with_javascript" :
105- content += " " + render_run_tools_with_javascript (msg .ToolCall )
108+ content += " " + render_run_tools_with_javascript (msg .ToolCall , mv . renderer )
106109 case "edit_file" :
107110 diff , path := render_edit_file (msg .ToolCall , mv .width )
108111 if diff != "" {
0 commit comments