cascade_agent/memory/state.rs
1use llm_cascade::Message;
2
3/// Trait for conversation state that memory management can operate on.
4///
5/// This decouples the memory module from any specific agent state representation.
6/// The agent's `ConversationState` (e.g., in `src/agent/state.rs`) implements this trait.
7pub trait ConversationStateAccess {
8 /// Returns the current conversation messages as a slice.
9 fn messages(&self) -> &[Message];
10
11 /// Returns a mutable reference to the messages vector for in-place compaction.
12 fn messages_mut(&mut self) -> &mut Vec<Message>;
13
14 /// Returns the system prompt string (first system message content).
15 fn system_prompt(&self) -> &str;
16}