profile-runtime 0.1.0

Canonical effective constitution and profile composition runtime for the local-first AI systems stack
Documentation
#![allow(clippy::expect_used)]

use profile_runtime::{
    ApplicabilityContextV1, CompiledObligationSetV1, CompositionConflictSetV1,
    CompositionReceiptV1, EffectiveConstitutionV1, PolicyImpactDiffV1, ProfileExceptionBundleV1,
    ProfileSetV1,
};
use serde_json::Value;

fn load_bundle(name: &str) -> Value {
    let path = format!("../contracts/fixtures/v25/{name}.bundle.json");
    let body = std::fs::read_to_string(path).expect("read fixture bundle");
    serde_json::from_str(&body).expect("parse fixture bundle")
}

#[test]
fn v25_fixture_bundles_parse_into_owned_types() {
    for name in [
        "blocked_locality_without_exception",
        "locality_exception_admitted",
        "disclosure_conflict",
        "policy_impact_diff",
        "delegation_break_glass_depth",
        "release_readiness_blocked",
        "continuity_incident_mode_diff",
        "vendor_translation_caveat",
    ] {
        let bundle = load_bundle(name);
        let artifacts = bundle["artifacts"].as_object().expect("artifacts object");

        if let Some(value) = artifacts.get("ApplicabilityContextV1") {
            let _: ApplicabilityContextV1 =
                serde_json::from_value(value.clone()).expect("ApplicabilityContextV1");
        }
        if let Some(value) = artifacts.get("ProfileSetV1") {
            let _: ProfileSetV1 = serde_json::from_value(value.clone()).expect("ProfileSetV1");
        }
        if let Some(value) = artifacts.get("ProfileExceptionBundleV1") {
            let _: ProfileExceptionBundleV1 =
                serde_json::from_value(value.clone()).expect("ProfileExceptionBundleV1");
        }
        if let Some(value) = artifacts.get("EffectiveConstitutionV1") {
            let _: EffectiveConstitutionV1 =
                serde_json::from_value(value.clone()).expect("EffectiveConstitutionV1");
        }
        if let Some(value) = artifacts.get("EffectiveConstitutionFromV1") {
            let _: EffectiveConstitutionV1 =
                serde_json::from_value(value.clone()).expect("EffectiveConstitutionFromV1");
        }
        if let Some(value) = artifacts.get("EffectiveConstitutionToV1") {
            let _: EffectiveConstitutionV1 =
                serde_json::from_value(value.clone()).expect("EffectiveConstitutionToV1");
        }
        if let Some(value) = artifacts.get("CompiledObligationSetV1") {
            let _: CompiledObligationSetV1 =
                serde_json::from_value(value.clone()).expect("CompiledObligationSetV1");
        }
        if let Some(value) = artifacts.get("CompiledObligationSetFromV1") {
            let _: CompiledObligationSetV1 =
                serde_json::from_value(value.clone()).expect("CompiledObligationSetFromV1");
        }
        if let Some(value) = artifacts.get("CompiledObligationSetToV1") {
            let _: CompiledObligationSetV1 =
                serde_json::from_value(value.clone()).expect("CompiledObligationSetToV1");
        }
        if let Some(value) = artifacts.get("CompositionConflictSetV1") {
            let _: CompositionConflictSetV1 =
                serde_json::from_value(value.clone()).expect("CompositionConflictSetV1");
        }
        if let Some(value) = artifacts.get("CompositionReceiptV1") {
            let _: CompositionReceiptV1 =
                serde_json::from_value(value.clone()).expect("CompositionReceiptV1");
        }
        if let Some(value) = artifacts.get("PolicyImpactDiffV1") {
            let _: PolicyImpactDiffV1 =
                serde_json::from_value(value.clone()).expect("PolicyImpactDiffV1");
        }
    }
}