//! `brahman-status` — CLI para inspeccionar el estado del Init. //! //! Conecta al socket admin (default `$XDG_RUNTIME_DIR/brahman-admin.sock`, //! override con `$BRAHMAN_ADMIN_SOCKET`), recibe el snapshot, y lo imprime. use brahman_admin::{client, transport}; #[tokio::main(flavor = "current_thread")] async fn main() -> anyhow::Result<()> { let path = transport::default_socket_path(); let snap = client::query(&path).await?; println!( "Init: server={} protocol={} attached={}", snap.server_version, snap.protocol_version, snap.init_attached ); println!(); println!("Sessions ({}):", snap.sessions.len()); if snap.sessions.is_empty() { println!(" (ninguna)"); } else { for s in &snap.sessions { println!( " {} {} lifecycle={:?} priority={:?}", s.session, s.label, s.lifecycle, s.priority ); for f in &s.inputs { println!(" in {}: {:?}", f.name, f.ty); } for f in &s.outputs { println!(" out {}: {:?}", f.name, f.ty); } } } println!(); println!("Matches ({}):", snap.matches.len()); if snap.matches.is_empty() { println!(" (ninguno)"); } else { for m in &snap.matches { let pin_marker = if m.pinned { "📌" } else { " " }; println!( " {} {}.{} ← {}.{} via {:?}", pin_marker, m.consumer_label, m.consumer.flow_name, m.producer_label, m.producer.flow_name, m.via ); } } Ok(()) }