//! Gates primitive: policy-as-code at the pre-effect boundary.

mod allowlist;
mod four_eyes;
mod gated_tool;
mod policy;
mod trait_;

pub use allowlist::AllowlistGate;
pub use four_eyes::{DualControlClassifier, FourEyesGate};
pub use gated_tool::GatedTool;
pub use policy::{PolicyGate, PolicyGateError};
pub use trait_::{
    ApprovalError, ApprovalOutcome, ApprovalTimeoutPolicy, Gate, GateDecision, GateRequest,
    PolicyCode,
};
