mod a_codex;
mod a_headers;
mod a_key_command;
mod a_languages;
mod a_llm_section;
mod a_no_files;
mod a_site_policy;
mod a_skipped_vs_missing;
mod a_special_cases;
async fn run_scoped<W: std::io::Write>(
out: &mut W,
args: &super::DoctorArgs,
dir: &std::path::Path,
) -> anyhow::Result<crate::Exit> {
super::run_at(
out,
args,
&crate::cli::MachineFiles {
auth: &dir.join("auth.toml"),
policy: &dir.join("absent-site.toml"),
},
)
.await
}
async fn report_scoped_with_policy(dir: &std::path::Path, policy: &std::path::Path) -> String {
let mut out = Vec::new();
let exit = super::run_at(
&mut out,
&super::DoctorArgs {
path: dir.to_path_buf(),
config: None,
},
&crate::cli::MachineFiles {
auth: &dir.join("auth.toml"),
policy,
},
)
.await
.expect("doctor remains diagnostic");
assert_eq!(exit, crate::Exit::Clean, "doctor reports but never gates");
String::from_utf8(out).expect("doctor output is UTF-8")
}
async fn report_scoped_with_codex(
dir: &std::path::Path,
policy: &std::path::Path,
probe: &dyn Fn() -> Result<crate::llm::codex::CodexStatus, String>,
) -> String {
let mut out = Vec::new();
let exit = super::run_at_with_codex(
&mut out,
&super::DoctorArgs {
path: dir.to_path_buf(),
config: None,
},
&crate::cli::MachineFiles {
auth: &dir.join("auth.toml"),
policy,
},
probe,
)
.await
.expect("doctor remains diagnostic");
assert_eq!(exit, crate::Exit::Clean, "doctor reports but never gates");
String::from_utf8(out).expect("doctor output is UTF-8")
}