rdar 0.6.12

radar - the repository cartographer for AI agents: compiles a repo into tiny committed MAP.md routers, with measured token benchmarks
Documentation
//! radar - the repository cartographer for AI agents.
//!
//! Compiles a repository into a small set of tiny, committed `MAP.md` routers
//! so agents navigate by map instead of grep. Deterministic facts come from
//! parallel scanning + tree-sitter; semantics are delegated to the host agent
//! through slot-filling. See `ARCHITECTURE.md` at the repository root for the
//! implemented architecture and design contracts.

pub mod agentcmd;
#[cfg(feature = "tui")]
pub mod browse;
pub mod cache;
pub mod check;
pub mod config;
pub mod export;
pub mod extract;
pub mod frontmatter;
pub mod gitfacts;
pub mod graph;
pub mod impact;
pub mod initcmd;
pub mod jsonrpc;
pub mod lang;
pub mod lock;
pub mod lsp;
pub mod mapfile;
pub mod mcp;
pub mod place;
pub mod progress;
pub mod routes;
pub mod scan;
pub mod slots;
pub mod symbols;
pub mod tree;

/// Process exit codes are a stable external contract.
pub mod exit {
    /// Everything checked out / operation succeeded.
    pub const OK: i32 = 0;
    /// Violations found / stale maps.
    pub const VIOLATIONS: i32 = 1;
    /// First run needed / target unreadable.
    pub const FIRST_RUN_NEEDED: i32 = 2;
    /// Internal error.
    pub const INTERNAL: i32 = 3;
    /// Simulated crash used only by the resume tests (hidden test hook).
    pub const TEST_SIMULATED_CRASH: i32 = 86;
}

/// Crate version as reported by `radar --version`.
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

#[cfg(test)]
mod tests {
    #[test]
    fn version_is_semver_shaped() {
        let mut parts = super::VERSION.split('.');
        for _ in 0..3 {
            let part = parts.next().expect("major.minor.patch");
            part.parse::<u64>().expect("numeric version component");
        }
        assert!(parts.next().is_none());
    }
}