use super::*; impl Agent { pub(crate) fn add_message(&mut self, role: Role, content: Vec) -> String { let id = self.session.add_message(role, content); let compaction = self.registry.compaction(); if let Ok(mut manager) = compaction.try_write() { if let Some(message) = self.session.messages.last() { manager.notify_message_added_blocks(&message.content); } else { manager.notify_message_added(); } } id } pub(crate) fn add_message_with_display_role( &mut self, role: Role, content: Vec, display_role: Option, ) -> String { let id = self .session .add_message_with_display_role(role, content, display_role); let compaction = self.registry.compaction(); if let Ok(mut manager) = compaction.try_write() { if let Some(message) = self.session.messages.last() { manager.notify_message_added_blocks(&message.content); } else { manager.notify_message_added(); } } id } pub(crate) fn add_message_with_duration( &mut self, role: Role, content: Vec, duration_ms: Option, ) -> String { let id = self .session .add_message_with_duration(role, content, duration_ms); let compaction = self.registry.compaction(); if let Ok(mut manager) = compaction.try_write() { if let Some(message) = self.session.messages.last() { manager.notify_message_added_blocks(&message.content); } else { manager.notify_message_added(); } } id } pub(crate) fn add_message_ext( &mut self, role: Role, content: Vec, duration_ms: Option, token_usage: Option, ) -> String { let id = self .session .add_message_ext(role, content, duration_ms, token_usage); let compaction = self.registry.compaction(); if let Ok(mut manager) = compaction.try_write() { if let Some(message) = self.session.messages.last() { manager.notify_message_added_blocks(&message.content); } else { manager.notify_message_added(); } } id } }