use agtrace_sdk::Providers;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let providers = Providers::detect()?;
println!("Detected providers:");
for (name, config) in providers.list() {
println!(" {}: {:?}", name, config.log_root);
}
println!("\nRunning diagnostics...");
let results = providers.diagnose()?;
for result in &results {
let success_rate = if result.total_files > 0 {
(result.successful as f64 / result.total_files as f64) * 100.0
} else {
100.0
};
println!(
" {}: {:.1}% success ({}/{} files)",
result.provider_name, success_rate, result.successful, result.total_files
);
for (failure_type, examples) in &result.failures {
println!(" {:?}: {} files", failure_type, examples.len());
}
}
println!("\nCustom configuration example:");
let _custom = Providers::builder()
.provider("claude_code", "/custom/path/.claude/projects")
.build()?;
println!(" Created Providers with custom path");
Ok(())
}