#![warn(clippy::all)]
pub mod error;
pub mod models;
pub mod util;
pub mod team;
pub mod task;
pub mod messaging;
pub mod consensus;
pub mod memory;
pub mod backend;
pub mod orchestrator;
#[cfg(feature = "dashboard")]
pub mod dashboard;
#[cfg(feature = "checkpoint")]
pub mod checkpoint;
#[cfg(feature = "tui")]
pub mod tui;
pub use error::{Error, Result};
pub use backend::{AgentBackend, AgentOutput, AgentOutputStream, AgentSession, BackendType, SpawnConfig, SpawnConfigBuilder};
pub use backend::delegation::{CliDelegation, CliTool};
pub use models::{CreateTaskRequest, InboxMessage, SessionState, TaskFile, TaskFilter, TaskStatus, TaskUpdate, TeamConfig};
pub use models::{TokenUsage, ToolCallRecord, CostSummary, AgentTokenUsage};
pub use consensus::{AgentResponse, ConsensusRequest, ConsensusResult, ConsensusStrategy};
pub use memory::{ConversationMemory, MemoryConfig, MemoryManager, Role, TurnRecord};
pub use orchestrator::TeamOrchestrator;
pub use task::DependencyGraph;
pub mod prelude {
pub use crate::backend::claude_code::ClaudeCodeBackend;
pub use crate::backend::codex::CodexBackend;
pub use crate::backend::gemini::GeminiCliBackend;
pub use crate::backend::router::{BackendRouter, CapabilityRouter, ChainRouter, KeywordRouter, SmartRouter, PromptComplexity};
pub use crate::backend::delegation::{CliDelegation, CliTool};
pub use crate::backend::{
AgentBackend, AgentOutput, AgentOutputStream, AgentSession, BackendType, SpawnConfig,
SpawnConfigBuilder,
};
pub use crate::error::{Error, Result};
pub use crate::models::{
CreateTaskRequest, InboxMessage, SessionState, TaskFile, TaskFilter, TaskStatus, TaskUpdate, TeamConfig,
};
pub use crate::consensus::{AgentResponse, ConsensusRequest, ConsensusResult, ConsensusStrategy};
pub use crate::memory::{ConversationMemory, MemoryConfig, MemoryManager};
pub use crate::orchestrator::TeamOrchestrator;
pub use crate::task::DependencyGraph;
pub use crate::models::token::{TokenUsage, ToolCallRecord, CostSummary, AgentTokenUsage, estimate_cost};
#[cfg(feature = "checkpoint")]
pub use crate::checkpoint::{CheckpointCollector, CheckpointStore, CheckpointQuery, CheckpointFilter, CheckpointDiff, AutoCheckpointTrigger};
#[cfg(feature = "checkpoint")]
pub use crate::models::checkpoint::{Checkpoint, CheckpointSession, CheckpointFile, FileRole};
}