Skip to main content

codetether_agent/cli/
search_render.rs

1//! Human-readable formatter for [`crate::search::RouterResult`].
2//!
3//! Prints one section per backend with a header, output body, and a
4//! short metadata summary.
5
6use crate::search::RouterResult;
7
8/// Print a [`RouterResult`] to stdout in human form.
9pub fn render_human(result: &RouterResult) {
10    println!("Query: {}", result.query);
11    println!("Router: {}\n", result.router_model);
12    if result.runs.is_empty() {
13        println!("(no backends selected)");
14        return;
15    }
16    for (idx, run) in result.runs.iter().enumerate() {
17        let status = if run.success { "ok" } else { "error" };
18        println!(
19            "── #{n} {backend} [{status}] ──",
20            n = idx + 1,
21            backend = run.backend.id(),
22        );
23        println!("{}", run.output.trim_end());
24        if !run.metadata.is_null() {
25            println!("meta: {}", run.metadata);
26        }
27        println!();
28    }
29}