unified-agent-api-claude-code 0.3.5

Async wrapper around the Claude Code CLI for non-interactive prompting
Documentation
use claude_code::{parse_stream_json_lines, StreamJsonLineOutcome};

#[test]
fn parse_stream_json_lines_is_tolerant() {
    let input = r#"
{"type":"ok","n":1}
not json
{"type":"ok","n":2}
"#;

    let out = parse_stream_json_lines(input);
    assert_eq!(out.len(), 3);

    match &out[0] {
        StreamJsonLineOutcome::Ok { value, .. } => assert_eq!(value["n"], 1),
        _ => panic!("expected ok"),
    }
    match &out[1] {
        StreamJsonLineOutcome::Err { line, error } => {
            assert!(line.raw.contains("not json"));
            assert_eq!(error.line_number, line.line_number);
        }
        _ => panic!("expected err"),
    }
    match &out[2] {
        StreamJsonLineOutcome::Ok { value, .. } => assert_eq!(value["n"], 2),
        _ => panic!("expected ok"),
    }
}