supercode-harness 0.4.5

The optional native Supercode agent and tool harness
Documentation
//! CI gate for the pinned stock-client evidence corpus (SUP-66).

use std::path::PathBuf;
use std::process::Command;

#[test]
fn stock_client_protocol_corpus_passes_node_conformance_suite() {
    let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
    let root = manifest_dir
        .parent()
        .and_then(|path| path.parent())
        .expect("workspace root");
    let output = Command::new("node")
        .arg("--test")
        .arg("scripts/client-protocol-corpus/test.mjs")
        .current_dir(root)
        .output()
        .expect("Node.js is required by the repository test gate");
    assert!(
        output.status.success(),
        "stock-client corpus conformance failed\nstdout:\n{}\nstderr:\n{}",
        String::from_utf8_lossy(&output.stdout),
        String::from_utf8_lossy(&output.stderr),
    );
}