aidens_arbiter_kit/
lib.rs1pub 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}