#![deny(warnings)]
#![allow(missing_docs)]
#![deny(unsafe_code)]
#![doc = "Definition of Done: Type-safe, deterministic autonomous substrate"]
pub mod autonomic;
pub mod binding_completeness;
pub mod contract;
pub mod decision;
pub mod decision_closure;
pub mod doctrine;
pub mod error;
pub mod invariant;
pub mod kernel;
pub mod observation;
pub mod receipt;
pub mod replay;
pub mod tenant;
pub mod timing;
pub use autonomic::mape_k::{
AnalysisPhase, ExecutionPhase, MAPEKLoop, ObservationPhase, PlanningPhase,
};
pub use contract::{Contract, ContractId, ContractVersion, Ontology};
pub use decision::{Decision, DecisionId, DecisionStore};
pub use doctrine::DoctrineCompliance;
pub use error::{DoDError, DoDResult};
pub use invariant::{Invariant, InvariantChecker, InvariantId};
pub use kernel::{Kernel, KernelAction, KernelDecision};
pub use observation::{Observation, ObservationId, ObservationSchema, ObservationType};
pub use receipt::{Receipt, ReceiptId, ReceiptStore};
pub use tenant::{TenantContext, TenantId, TenantIsolation};
pub use timing::{TimingEnforcer, TimingGuarantee, TimingMeasurement};
pub mod constants {
pub const KERNEL_MAX_TIME_MS: u64 = 8;
pub const MAX_OBSERVATION_SIZE: usize = 1024 * 1024;
pub const MAX_SCHEMA_DEPTH: usize = 256;
pub const MAX_FANOUT: usize = 1024;
pub const MAX_PROMOTION_RATE_PER_HOUR: usize = 100;
pub mod proof_thresholds {
pub const WEAK_PROOF: u8 = 30;
pub const STANDARD_PROOF: u8 = 50;
pub const STRONG_PROOF: u8 = 70;
pub const CRITICAL_PROOF: u8 = 80;
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_constants_consistency() {
assert!(
constants::proof_thresholds::WEAK_PROOF < constants::proof_thresholds::STANDARD_PROOF
);
assert!(
constants::proof_thresholds::STANDARD_PROOF < constants::proof_thresholds::STRONG_PROOF
);
assert!(
constants::proof_thresholds::STRONG_PROOF < constants::proof_thresholds::CRITICAL_PROOF
);
}
}