pub mod commands;
pub mod error;
pub mod events;
mod messenger;
mod persistence;
mod turn_input;
// The public `session::session` path is retained for API compatibility.
#[allow(clippy::module_inception)]
pub mod session;
pub mod session_id;
pub mod stats;
pub mod turn;

pub use commands::SessionCommand;
pub use error::SessionError;
pub use events::{DialogInfo, SessionEvent};
pub use messenger::ScheduledDeliveryError;
pub use session::{
    AgentCatalogPreparation, SLASH_COMMANDS, Session, SessionManager, SessionManagerServices,
    SlashCommand,
};
pub use session_id::UnifiedSessionId;
pub use stats::{ContextUsage, ContextUsageSource, LifetimeUsage, SessionStats};
pub use turn::{
    BlockId, ToolStatus, TurnBlock, TurnController, TurnId, TurnPhase, TurnSnapshot, TurnState,
    TurnStatus,
};
