supercode-harness 0.4.8

The optional native Supercode agent and tool harness
Documentation
use std::path::PathBuf;

const SDK_ASSETS: &[&str] = &[
    "sdk/frontend-browser/index.html",
    "sdk/frontend-browser/app.mjs",
    "sdk/frontend-browser/client.mjs",
    "sdk/frontend-browser/view.mjs",
    "sdk/frontend-browser/style.css",
    "sdk/frontend-browser/favicon.svg",
    "sdk/frontend/client.mjs",
    "sdk/frontend/generated-client.mjs",
    "sdk/frontend/generated.mjs",
];

fn main() {
    println!("cargo:rustc-check-cfg=cfg(supercode_workspace_assets)");
    let workspace = PathBuf::from(std::env::var_os("CARGO_MANIFEST_DIR").unwrap()).join("../..");
    if SDK_ASSETS
        .iter()
        .all(|asset| workspace.join(asset).is_file())
    {
        println!("cargo:rustc-cfg=supercode_workspace_assets");
        for asset in SDK_ASSETS {
            println!("cargo:rerun-if-changed={}", workspace.join(asset).display());
        }
    }
}