//! Orchestrator application service (ARCHITECTURE §14.3).
//!
//! Turns a validated [`domain::OrchestratorCommand`] into the *same* agent/terminal
//! use-case calls the UI makes, so an orchestrator agent can drive IdeA without
//! ever spawning a process itself. See [`service::OrchestratorService`].

mod context_guard;
pub mod rendezvous;
mod service;
pub mod wake;

pub use context_guard::{
    ProposeContext, ProposeContextInput, ProposeOutcome, ReadContext, ReadContextInput,
    ReadContextOutput, ReadMemory, ReadMemoryInput, UpdateProjectContext,
    UpdateProjectContextInput, UpdateProjectContextOutput, WriteMemory, WriteMemoryInput,
};
pub use rendezvous::{
    resolve_rendezvous_ceiling, resolve_rendezvous_window, run_inactivity_watchdog,
    WatchdogOutcome, DEFAULT_RENDEZVOUS_CEILING, DEFAULT_RENDEZVOUS_WINDOW,
};
pub use service::{
    AskLivenessProbe, ContextGuardUseCases, LiveStateProvider, LiveStateReadProvider,
    McpRuntimeProvider, OrchestratorOutcome, OrchestratorService, RecordTurnProvider,
};
pub use wake::{AgentWakeService, WakeSessionProvider};
