mod activation;
mod executor;
pub mod sessions;  // Public for test access
mod storage;
mod types;

// ClaudeCodeMethod and SessionActivationMethod are generated by
// #[plexus_macros::activation]. SessionActivation is re-exported for parity
// with the cone precedent (see mod.rs for ConeActivation).
pub use activation::{ClaudeCode, ClaudeCodeMethod, SessionActivation, SessionActivationMethod};
pub use executor::{check_mcp_reachable, ClaudeCodeExecutor, LaunchConfig};
pub use storage::{ClaudeCodeStorage, ClaudeCodeStorageConfig};
pub use sessions::{AssistantEvent, AssistantMessage, ContentBlock, SessionEvent, UserEvent, UserMessage};
pub use types::{
    BufferedEvent, ChatEvent, ChatStartResult, ChatUsage, ClaudeCodeConfig,
    ClaudeCodeError, ClaudeCodeHandle, ClaudeCodeId, ClaudeCodeInfo, CreateResult, DeleteResult,
    ForkResult, GetResult, ListResult, Message, MessageId, MessageRole, Model,
    NodeEvent, PollResult, Position, RawClaudeEvent, RawContentBlock, RawMessage,
    SessionsDeleteResult, SessionsExportResult, SessionsGetResult, SessionsImportResult, SessionsListResult,
    StreamId, StreamInfo, StreamListResult, StreamStatus,
};
