diff --git a/lib/roast/cogs/agent/providers/claude/claude_invocation.rb b/lib/roast/cogs/agent/providers/claude/claude_invocation.rb index 1c6ad3d7..5139525b 100644 --- a/lib/roast/cogs/agent/providers/claude/claude_invocation.rb +++ b/lib/roast/cogs/agent/providers/claude/claude_invocation.rb @@ -77,7 +77,7 @@ def run! raise ClaudeAlreadyStartedError if started? @started = true - puts "[USER PROMPT] #{@prompt}" if @show_prompt + Event << { block: { header: "USER PROMPT", content: @prompt } } if @show_prompt _stdout, stderr, status = CommandRunner.execute( command_line, working_directory: @working_directory, @@ -87,7 +87,7 @@ def run! if status.success? @completed = true - puts "[AGENT RESPONSE] #{@result.response}" if @show_response + Event << { block: { header: "AGENT RESPONSE", content: @result.response } } if @show_response else @failed = true @result.success = false diff --git a/lib/roast/event.rb b/lib/roast/event.rb index b1ca4ccd..ed9b9428 100644 --- a/lib/roast/event.rb +++ b/lib/roast/event.rb @@ -24,6 +24,7 @@ def <<(event) :end, :stdout, :stderr, + :block, ].freeze #: Array[Symbol] #: Array[TaskContext::PathElement] diff --git a/lib/roast/event_monitor.rb b/lib/roast/event_monitor.rb index 79c2f253..4e502e0f 100644 --- a/lib/roast/event_monitor.rb +++ b/lib/roast/event_monitor.rb @@ -129,6 +129,15 @@ def handle_stdout_event(event) Roast::Log.logger.info { "#{format_path(event)} ❯ #{event[:stdout]}" } end + #: (Event) -> void + def handle_block_event(event) + block = event[:block] + header = "[#{block[:header]}]" + content = block[:content] + separator = "-" * 40 + Roast::Log.logger.info { "#{format_path(event)} ↓\n\n#{header}\n#{separator}\n#{content}\n#{separator}" } + end + #: (Event) -> void def handle_unknown_event(event) Roast::Log.logger.unknown(event.inspect)