supercode-harness 0.4.4

The optional native Supercode agent and tool harness
Documentation
//! Shared interop conformance helpers backed by the production fidelity meter.
#![allow(dead_code, unused_imports)]

use supercode_harness::ChatMessage;

pub use supercode_harness::fidelity::{
    core_messages as core, measure_fidelity as measure_cell, messages_equal as msg_eq,
    messages_equal_multimodal as msg_eq_multimodal, replay_eligible, FidelityMetric as CellMetric,
    FidelityResidue as CellResidue,
};

/// Assert two message slices are equal under the production multimodal comparator.
pub fn assert_messages_eq_multimodal(label: &str, a: &[ChatMessage], b: &[ChatMessage]) {
    assert_eq!(
        a.len(),
        b.len(),
        "{label}: message count changed\n  before: {a:#?}\n  after:  {b:#?}"
    );
    for (index, (before, after)) in a.iter().zip(b).enumerate() {
        assert!(
            msg_eq_multimodal(before, after),
            "{label}: message {index} differs:\n  before: {before:?}\n  after:  {after:?}"
        );
    }
}