session_smoke/
session_smoke.rs1use agentsight_ext_runtime::ExtRuntime;
5use std::fs;
6
7fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let component = std::env::args()
9 .nth(1)
10 .ok_or("usage: session_smoke <component.wasm>")?;
11 let bytes = fs::read(component)?;
12 let content = r#"{"timestamp":"2026-08-14T00:00:00Z","type":"session_meta","payload":{"id":"smoke","cwd":"/tmp/project"}}
13{"timestamp":"2026-08-14T00:00:01Z","type":"response_item","payload":{"type":"message","role":"user","content":[{"type":"input_text","text":"inspect this repository"}]}}
14"#;
15 let parsed = ExtRuntime::new()?.session_parse(
16 &bytes,
17 "codex",
18 "/tmp/.codex/sessions/2026/08/14/smoke.jsonl",
19 1_786_665_600_000,
20 content,
21 )?;
22 let parsed = parsed.ok_or("session component returned no session")?;
23 if !parsed.contains("smoke") || !parsed.contains("inspect this repository") {
24 return Err("session component returned unexpected output".into());
25 }
26
27 let windows_content = r#"{"timestamp":"2026-08-14T00:00:00Z","type":"user","message":{"role":"user","content":"inspect the Windows checkout"}}
28"#;
29 let windows = ExtRuntime::new()?
30 .session_parse(
31 &bytes,
32 "claude",
33 r"C:\Users\agent\.claude\projects\repo\windows-session.jsonl",
34 1_786_665_600_000,
35 windows_content,
36 )?
37 .ok_or("session component returned no Windows session")?;
38 if !windows.contains(r#""session_id":"windows-session""#) {
39 return Err("session component did not normalize the Windows path".into());
40 }
41 println!("{parsed}");
42 Ok(())
43}