Skip to main content

systemprompt_agent/repository/context/
mod.rs

1//! Repository for conversational contexts (multi-turn dialogue state).
2
3pub mod message;
4mod mutations;
5pub mod notifications;
6mod queries;
7
8pub use notifications::ContextNotificationRepository;
9
10use sqlx::PgPool;
11use std::sync::Arc;
12use systemprompt_database::DbPool;
13
14use crate::error::AgentError;
15
16#[derive(Debug, Clone)]
17pub struct ContextRepository {
18    pool: Arc<PgPool>,
19    write_pool: Arc<PgPool>,
20    db_pool: DbPool,
21}
22
23impl ContextRepository {
24    pub fn new(db: &DbPool) -> Result<Self, AgentError> {
25        let pool = db.pool_arc().map_err(|e| AgentError::Init(e.to_string()))?;
26        let write_pool = db
27            .write_pool_arc()
28            .map_err(|e| AgentError::Init(e.to_string()))?;
29        Ok(Self {
30            pool,
31            write_pool,
32            db_pool: Arc::clone(db),
33        })
34    }
35}