1pub mod action;
28pub mod certificate;
29pub mod certifier;
30pub mod constraint;
31pub mod declarative;
32pub mod domain;
33pub mod registry;
34
35pub use action::{ActionPriority, ProposedAction, SimpleAction, StateDelta};
36pub use certificate::{
37 CertificationDecision, SafetyCertificate, SafetyCertificateBuilder, SafetyZone,
38};
39pub use certifier::{certify_action, CertifierConfig, SafetyCertifier};
40pub use constraint::ConstraintChannel;
41pub use declarative::{ConstraintDefinition, DeclarativeChannel, MarginRule, ThresholdOverrides};
42pub use domain::DomainAdapter;
43pub use registry::{ChannelConfig, ChannelSummary, ConstraintRegistry, RegisteredChannel};
44
45use serde::{Deserialize, Serialize};
46
47#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
49pub struct DeterministicHash(pub String);
50
51#[derive(Debug, thiserror::Error)]
53pub enum KernelError {
54 #[error("Constraint channel evaluation failed: {0}")]
55 ConstraintError(String),
56
57 #[error("Domain adapter error: {0}")]
58 AdapterError(String),
59
60 #[error("Certification pipeline error: {0}")]
61 CertificationError(String),
62
63 #[error("Registry error: {0}")]
64 RegistryError(String),
65
66 #[error("Declarative constraint error: {0}")]
67 DeclarativeError(String),
68
69 #[error("Serialization error: {0}")]
70 SerializationError(String),
71}
72
73pub type KernelResult<T> = Result<T, KernelError>;