use async_trait::async_trait;
use bamboo_agent_core::tools::ToolSchema;
use bamboo_agent_core::Session;
use crate::runtime::config::AgentLoopConfig;
#[async_trait]
pub trait MemoryManager: Send + Sync {
async fn recall_memories(&self, session: &mut Session, config: &AgentLoopConfig) -> bool;
#[allow(clippy::too_many_arguments)]
async fn maybe_compress(
&self,
session: &mut Session,
config: &AgentLoopConfig,
phase: &str,
session_id: &str,
model_name: &str,
tool_schemas: &[ToolSchema],
) -> bool;
}