oxo_call/lib.rs
1//! Programmatic API for oxo-call.
2//!
3//! This module re-exports the public types and key modules so that downstream
4//! crates (including the benchmark suite) can depend on `oxo-call` as a library
5//! without reaching into private internals.
6//!
7//! # Example
8//!
9//! ```rust,ignore
10//! use oxo_call::skill::{Skill, SkillManager, validate_skill_depth};
11//! use oxo_call::history::{HistoryEntry, CommandProvenance};
12//! use oxo_call::mcp::McpClient;
13//! ```
14//!
15//! The binary entry point lives in `main.rs`; this file only surfaces the
16//! library interface.
17
18pub mod config;
19#[cfg(not(target_arch = "wasm32"))]
20pub mod copilot_auth;
21pub mod docs;
22pub mod engine;
23pub mod error;
24pub mod handlers;
25pub mod history;
26pub mod index;
27pub mod job;
28pub mod license;
29pub mod llm;
30pub mod mcp;
31pub mod runner;
32pub mod sanitize;
33pub mod server;
34pub mod skill;
35pub mod workflow;
36
37/// A single crate-wide mutex that **all** test modules must acquire before
38/// reading or writing `OXO_CALL_DATA_DIR` (or any other process-global
39/// environment variable used by tests). Using a shared instance prevents
40/// the race conditions that arise when separate modules each define their
41/// own `ENV_LOCK`.
42#[cfg(test)]
43pub(crate) static ENV_LOCK: std::sync::Mutex<()> = std::sync::Mutex::new(());