pub mod project;
pub mod build;
pub mod export;
pub mod cleanup;
pub mod build_target;
pub mod lock;
pub mod template_cache;
use std::env;
use std::path::PathBuf;
pub(crate) fn cargo_home() -> PathBuf {
if let Ok(path) = env::var("CARGO_HOME") {
PathBuf::from(path)
} else {
dirs::home_dir()
.expect("could not find home directory")
.join(".cargo")
}
}
fn agents_workspace_root() -> PathBuf {
cargo_ai_root().join("agents")
}
pub(crate) fn cargo_ai_root() -> PathBuf {
cargo_home().join(".cargo-ai")
}
pub(crate) fn templates_workspace_root() -> PathBuf {
cargo_ai_root().join("templates")
}
fn locks_root() -> PathBuf {
cargo_ai_root().join("locks")
}
pub fn agent_workspace_path(agent_name: &str) -> PathBuf {
agents_workspace_root().join(agent_name)
}