Skip to main content

session_smoke/
session_smoke.rs

1// SPDX-License-Identifier: MIT
2// Copyright (c) 2026 eunomia-bpf org.
3
4use 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}