pub mod ansi;
pub mod approval_gate;
pub mod attestation;
pub mod bundled_presets;
pub mod bundled_skills;
pub mod cli_approval_gate;
pub mod context;
pub mod conversation;
pub mod egress;
pub mod error;
pub mod factory;
pub mod identity;
pub mod inbound_interceptor;
pub mod llm;
pub mod llm_stream;
pub mod mcp;
pub mod persona;
pub mod preset;
pub mod rate_limit;
pub mod recovery;
pub mod runtime;
pub mod sandbox;
pub mod signal_approval_gate;
pub(crate) mod sigv4;
pub mod skill;
pub mod skill_perms;
pub mod slash;
pub mod sse_approval_gate;
pub mod telegram_approval_gate;
pub mod tool;
pub mod wasm_sandbox;

pub use context::ContextEngine;
pub use error::{AgentError, PermissionDenialContext};
pub use factory::{AgentFactory, AgentStaticConfig, ChannelOverride, session_id_for};
pub use identity::AgentIdentity;
pub use recovery::{
    MAX_RATE_LIMIT_RETRIES, MAX_TOOL_VALIDATION_RETRIES, RecoveryObserver, RetryDecision,
};
pub use runtime::{
    Agent, DivergenceRecord, InboundContext, PARTIAL_RESULT_LOST_SENTINEL, ProcessResult,
    VerifyReport,
};
pub use skill::SkillLoader;

#[cfg(test)]
mod tests;
