#[allow(dead_code)]
mod test_support {
use std::ffi::{OsStr, OsString};
use std::sync::{Mutex, MutexGuard, OnceLock};
fn lock() -> &'static Mutex<()> {
static LOCK: OnceLock<Mutex<()>> = OnceLock::new();
LOCK.get_or_init(Mutex::default)
}
pub(super) struct TestEnvLock {
_guard: MutexGuard<'static, ()>,
}
pub(super) fn lock_test_env() -> TestEnvLock {
let guard = match lock().lock() {
Ok(guard) => guard,
Err(poisoned) => poisoned.into_inner(),
};
TestEnvLock { _guard: guard }
}
pub(super) struct EnvVarGuard {
key: &'static str,
previous: Option<OsString>,
}
impl EnvVarGuard {
pub(super) fn set(key: &'static str, value: impl AsRef<OsStr>) -> Self {
let previous = std::env::var_os(key);
unsafe { std::env::set_var(key, value) };
Self { key, previous }
}
}
impl Drop for EnvVarGuard {
fn drop(&mut self) {
unsafe {
if let Some(value) = self.previous.take() {
std::env::set_var(self.key, value);
} else {
std::env::remove_var(self.key);
}
}
}
}
}
#[path = "../../src/config/home.rs"]
#[allow(dead_code)]
mod config;
#[path = "../../src/eval.rs"]
mod eval;
#[path = "../../src/skills/install.rs"]
#[allow(dead_code)]
mod install;
#[path = "../support/llm_client.rs"]
mod llm_client;
#[path = "../../src/model_catalog.rs"]
mod model_catalog;
#[path = "../../src/models.rs"]
#[allow(dead_code)]
mod models;
#[path = "../../src/network_policy.rs"]
mod network_policy;
#[path = "../../src/skills/package_digest.rs"]
#[allow(dead_code)]
mod package_digest;
#[path = "../../src/palette/mod.rs"]
#[allow(dead_code)]
mod palette;
#[path = "../../src/shell_dispatcher.rs"]
mod shell_dispatcher;
use codewhale_core::tool_parser;
mod adaptive_evidence_acceptance;
mod cache_guard;
mod coordination_acceptance;
mod diagnostic_read_only;
mod dotenv_authority;
mod eval_harness;
mod exec_persistent_service;
mod exec_stream_drop_acceptance;
mod exec_turn_usage;
mod integration_mock_llm;
mod palette_audit;
mod protocol_recovery;
mod reasoning_content_replayed_after_tool_call;
mod skill_cli;
mod telemetry_contract;
mod verifiers_harness_contract;
mod workflow_tool_stream_acceptance;