@@ -498,17 +498,27 @@ fn stream_new_agent_messages(
498498
499499 let mut messages = Vec :: new ( ) ;
500500 for event in & events_ref[ * processed_index..] {
501- if let SessionEvent :: AgentMessage ( chunk) = event {
502- messages. push ( chunk. clone ( ) ) ;
501+ match event {
502+ SessionEvent :: AgentMessage ( chunk) => {
503+ messages. push ( ( chunk. clone ( ) , false ) ) ;
504+ }
505+ SessionEvent :: AgentThought ( chunk) => {
506+ messages. push ( ( chunk. clone ( ) , true ) ) ;
507+ }
508+ _ => { }
503509 }
504510 }
505511 * processed_index = events_ref. len ( ) ;
506512 messages
507513 } ;
508514
509- for chunk in & new_messages {
515+ for ( chunk, is_thought ) in & new_messages {
510516 if stream_stdout_to_stderr {
511- eprint ! ( "[stdout] {chunk}" ) ;
517+ if * is_thought {
518+ eprint ! ( "[thought] {chunk}" ) ;
519+ } else {
520+ eprint ! ( "[stdout] {chunk}" ) ;
521+ }
512522 }
513523 spool_chunk ( output_spool, chunk. as_bytes ( ) ) ;
514524 }
@@ -525,8 +535,11 @@ fn spool_chunk(spool: &mut Option<std::fs::File>, bytes: &[u8]) {
525535fn collect_agent_output ( events : & [ SessionEvent ] ) -> String {
526536 let mut output = String :: new ( ) ;
527537 for event in events {
528- if let SessionEvent :: AgentMessage ( chunk) = event {
529- output. push_str ( chunk) ;
538+ match event {
539+ SessionEvent :: AgentMessage ( chunk) | SessionEvent :: AgentThought ( chunk) => {
540+ output. push_str ( chunk) ;
541+ }
542+ _ => { }
530543 }
531544 }
532545 output
0 commit comments