Skip to main content

locus_gateway/
app_state.rs

1use std::sync::Arc;
2
3use locus_core_rs::application::services::{
4    CalibrationService, ContextQueryService, MonthlyRollupService, MoodCatalogService,
5    RekeyScopeService, StoreContextService,
6};
7use locus_core_rs::domain::contracts::{EmbeddingProvider, NodeStore};
8
9use crate::providers::AvecScorer;
10
11#[derive(Clone)]
12pub(crate) struct AppState {
13    pub(crate) node_store: Arc<dyn NodeStore>,
14    pub(crate) embedding_provider: Option<Arc<dyn EmbeddingProvider>>,
15    pub(crate) avec_scorer: Option<Arc<dyn AvecScorer>>,
16    pub(crate) calibration: Arc<CalibrationService>,
17    pub(crate) context_query: Arc<ContextQueryService>,
18    pub(crate) mood_catalog: Arc<MoodCatalogService>,
19    pub(crate) store_context: Arc<StoreContextService>,
20    pub(crate) monthly_rollup: Arc<MonthlyRollupService>,
21    pub(crate) rekey_scope: Arc<RekeyScopeService>,
22}