pub mod analytics;
pub mod cli;
pub mod commands;
pub mod config;
pub mod cost;
pub mod error;
pub mod execution;
pub mod history;
pub mod output;
pub mod profiling;
pub mod session;
#[cfg(test)]
mod error_test;
#[cfg(test)]
mod cli_simple_test;
pub use error::{InteractiveError, Result, UserFriendlyError};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const DEFAULT_TIMEOUT_SECS: u64 = 60;
pub fn default_data_dir() -> std::path::PathBuf {
directories::ProjectDirs::from("", "", "claude-sdk-rs")
.map(|dirs| dirs.data_dir().to_path_buf())
.unwrap_or_else(|| {
dirs::home_dir()
.unwrap_or_else(|| std::path::PathBuf::from("."))
.join(".claude-sdk-rs")
})
}
pub fn ensure_data_dir() -> Result<std::path::PathBuf> {
let data_dir = default_data_dir();
if !data_dir.exists() {
std::fs::create_dir_all(&data_dir)?;
}
Ok(data_dir)
}