use super::{
CompressionState, ExperimentState, FeedbackState, IndexState, McpState, MemoryState,
OrchestrationState, SecurityState, SessionState, SkillState, ToolState,
};
use crate::agent::{focus, learning_engine, sidequest};
pub(crate) struct Services {
pub(crate) memory: MemoryState,
pub(crate) skill: SkillState,
pub(crate) learning_engine: learning_engine::LearningEngine,
pub(crate) feedback: FeedbackState,
pub(crate) mcp: McpState,
pub(crate) index: IndexState,
pub(crate) session: SessionState,
pub(crate) security: SecurityState,
pub(crate) experiments: ExperimentState,
pub(crate) compression: CompressionState,
pub(crate) orchestration: OrchestrationState,
pub(crate) focus: focus::FocusState,
pub(crate) sidequest: sidequest::SidequestState,
pub(crate) tool_state: ToolState,
#[cfg(feature = "self-check")]
pub(crate) quality: Option<std::sync::Arc<crate::quality::SelfCheckPipeline>>,
pub(crate) proactive_explorer:
Option<std::sync::Arc<zeph_skills::proactive::ProactiveExplorer>>,
pub(crate) promotion_engine:
Option<std::sync::Arc<zeph_memory::compression::promotion::PromotionEngine>>,
}