Skip to main content

aidens_arbiter_kit/
lib.rs

1//! Thin arbiter facade over canonical contradiction artifacts.
2
3pub mod canonical_stack {
4    pub use semantic_memory_forge::{ContradictionWitnessV1, CONTRADICTION_WITNESS_V1_SCHEMA};
5    pub use stack_ids::{ClaimId, ContradictionWitnessId};
6}
7
8pub use canonical_stack::ContradictionWitnessV1 as CanonicalContradictionWitnessV1;
9
10#[derive(Debug, Clone, Default, PartialEq, Eq)]
11pub struct CanonicalContradictionArbiter;
12
13impl CanonicalContradictionArbiter {
14    pub fn validate_witness(
15        &self,
16        witness: &CanonicalContradictionWitnessV1,
17    ) -> Result<(), String> {
18        witness.validate()
19    }
20}
21
22#[cfg(test)]
23mod tests {
24    use super::*;
25
26    #[test]
27    fn validates_canonical_contradiction_witness() {
28        let witness = CanonicalContradictionWitnessV1 {
29            schema_version: canonical_stack::CONTRADICTION_WITNESS_V1_SCHEMA.into(),
30            contradiction_witness_id: canonical_stack::ContradictionWitnessId::new(
31                "contradiction-witness:arbiter",
32            ),
33            claim_id: canonical_stack::ClaimId::new("claim:arbiter"),
34            conflicting_token_ids: vec!["support-token:left".into(), "support-token:right".into()],
35            summary: Some("canonical witness supplied by semantic-memory-forge".into()),
36        };
37
38        assert!(CanonicalContradictionArbiter
39            .validate_witness(&witness)
40            .is_ok());
41    }
42}