use supercode_harness::session::Session;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let path = std::env::args()
.nth(1)
.ok_or("usage: inspect_session <session.jsonl>")?;
let session = Session::load(&path)?;
println!("source : {:?}", session.meta.source);
println!(
"session_id : {}",
session.meta.session_id.as_deref().unwrap_or("?")
);
println!(
"model : {}",
session.meta.model.as_deref().unwrap_or("?")
);
println!("messages : {}\n", session.messages.len());
for (i, m) in session.messages.iter().enumerate() {
let preview = m
.content
.as_deref()
.map(|c| {
c.lines()
.next()
.unwrap_or("")
.chars()
.take(80)
.collect::<String>()
})
.unwrap_or_default();
let calls = m.tool_calls();
let suffix = if calls.is_empty() {
String::new()
} else {
format!(" [{} tool call(s)]", calls.len())
};
println!("{i:>3} {:<9} {preview}{suffix}", format!("{:?}", m.role));
}
Ok(())
}