use supercode_harness::session::{Session, SessionFormat};
const CLAUDE_JSONL: &str = r#"{"type":"user","uuid":"u1","parentUuid":null,"sessionId":"demo","cwd":"/tmp","message":{"role":"user","content":"What is 2+2?"}}
{"type":"assistant","uuid":"a1","parentUuid":"u1","sessionId":"demo","message":{"role":"assistant","content":[{"type":"text","text":"4."}]}}"#;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let session = Session::load_str(CLAUDE_JSONL, SessionFormat::ClaudeCode)?;
println!(
"loaded {:?} session: {} messages",
session.meta.source,
session.messages.len()
);
let codex = session.to_jsonl(SessionFormat::Codex).unwrap();
println!("\n--- re-saved as Codex rollout ---\n{codex}");
let reloaded = Session::load_str(&codex, SessionFormat::Codex)?;
assert_eq!(reloaded.messages.len(), session.messages.len());
println!("✓ round-tripped Claude Code → Codex with both turns intact");
Ok(())
}