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, SemanticIndexStore};
8
9use crate::providers::AvecScorer;
10
11#[derive(Clone)]
12pub(crate) struct AppState {
13    pub(crate) node_store: Arc<dyn NodeStore>,
14    pub(crate) semantic_index: Arc<dyn SemanticIndexStore>,
15    pub(crate) embedding_provider: Option<Arc<dyn EmbeddingProvider>>,
16    pub(crate) avec_scorer: Option<Arc<dyn AvecScorer>>,
17    pub(crate) calibration: Arc<CalibrationService>,
18    pub(crate) context_query: Arc<ContextQueryService>,
19    pub(crate) mood_catalog: Arc<MoodCatalogService>,
20    pub(crate) store_context: Arc<StoreContextService>,
21    pub(crate) monthly_rollup: Arc<MonthlyRollupService>,
22    pub(crate) rekey_scope: Arc<RekeyScopeService>,
23}