use std::sync::Arc;
use anyhow::Result;
use praxis_llm::Message;
use async_trait::async_trait;
use praxis_persist::PersistenceClient;
#[derive(Debug, Clone)]
pub struct ContextWindow {
pub system_prompt: String,
pub messages: Vec<Message>,
}
#[async_trait]
pub trait ContextStrategy: Send + Sync {
async fn get_context_window(
&self,
thread_id: &str,
persist_client: Arc<dyn PersistenceClient>,
) -> Result<ContextWindow>;
}