pub mod agent;
pub mod bootstrap;
pub mod compaction;
pub mod config;
pub mod coordinator;
pub mod credentials;
pub mod eruka_bridge;
pub mod handoff;
pub mod init;
pub mod healing;
pub mod skill_distillation;
pub mod skills;
pub mod tasks;
pub mod tools;
pub use agent::PawanAgent;
pub use agent::{AgentEvent, FinishReason, TokenUsageInfo};
pub use config::PawanConfig;
#[derive(Debug, thiserror::Error)]
pub enum PawanError {
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Configuration error: {0}")]
Config(String),
#[error("Tool execution error: {0}")]
Tool(String),
#[error("Agent error: {0}")]
Agent(String),
#[error("LLM error: {0}")]
Llm(String),
#[error("Git error: {0}")]
Git(String),
#[error("Parse error: {0}")]
Parse(String),
#[error("Timeout: {0}")]
Timeout(String),
#[error("Not found: {0}")]
NotFound(String),
}
pub type Result<T> = std::result::Result<T, PawanError>;
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const DEFAULT_MODEL: &str = "qwen/qwen3.5-122b-a10b";
pub const DEFAULT_NVIDIA_API_URL: &str = "https://integrate.api.nvidia.com/v1";
pub const MAX_TOOL_ITERATIONS: usize = 50;
pub const DEFAULT_BASH_TIMEOUT: u64 = 120;