1#![deny(missing_docs)]
86#![deny(unsafe_code)]
87
88pub mod audit;
89#[cfg(feature = "serde")]
90pub mod audit_backend;
91mod budget;
92mod capability;
93#[cfg(feature = "crypto")]
94pub mod certificate;
95mod command;
96pub mod constraint;
97pub mod uninhabitable_state;
98
99pub mod delegation;
100pub mod dropout;
101pub mod escalation;
102pub mod exposure_core;
103pub mod frame;
104pub mod galois;
105pub mod graded;
106pub mod guard;
107pub mod heyting;
108#[cfg(all(feature = "serde", feature = "crypto"))]
110pub mod kernel;
111#[cfg(feature = "spec")]
116pub mod mcp_mediation;
117#[cfg(feature = "spec")]
121pub mod observe;
122#[cfg(feature = "spec")]
126pub mod profile;
127#[cfg(feature = "remote-audit")]
128pub mod s3_audit_backend;
129#[cfg(feature = "crypto")]
133pub mod token;
134
135pub mod identity;
136pub mod intent;
137pub mod isolation;
138mod lattice;
139pub mod metrics;
140pub mod modal;
141mod path;
142pub mod permissive;
143pub mod pipeline;
144pub mod progress;
145pub mod region;
146mod time;
147pub mod trust;
148pub mod weakening;
149pub mod workspace;
150
151#[cfg(kani)]
152mod kani;
153
154pub use budget::BudgetLattice;
155pub use capability::{
156 CapabilityLattice, CapabilityLevel, ExtensionOperation, IncompatibilityConstraint, Obligations,
157 Operation, StateRisk,
158};
159pub use command::{ArgPattern, CommandLattice, CommandPattern};
160pub use exposure_core::{apply_record, classify_operation, project_exposure, should_deny};
161pub use frame::{
162 verify_nucleus_laws, BoundedLattice, CompleteLattice, ComposedNucleus, DistributiveLattice,
163 Frame, Lattice, Nucleus, NucleusLaw, NucleusLawViolation, SafePermissionLattice,
164 UninhabitableQuotient,
165};
166pub use galois::{
167 Composable, GaloisConnection, GaloisVerificationError, TranslationReport, TranslationStep,
168 TrustDomainBridge,
169};
170pub use graded::{Graded, GradedPermissionCheck, GradedPipeline, RiskCost, RiskGrade};
171#[allow(deprecated)]
172pub use guard::{
173 operation_exposure, CheckProof, CompositeGuard, ExecuteError, ExposureLabel, ExposureSet,
174 ExtensionExposureLabel, GradedExposureGuard, GradedGuard, GuardError, GuardFn, GuardedAction,
175 PermissionGuard, RuntimeStateGuard, ToolCallGuard,
176};
177pub use heyting::{ConditionalPermission, HeytingAlgebra};
178pub use intent::{IntentKind, WorkIntent};
179pub use isolation::{FileIsolation, IsolationLattice, NetworkIsolation, ProcessIsolation};
180pub use lattice::{
181 DelegationError, EffectivePermissions, PermissionLattice, PermissionLatticeBuilder,
182};
183pub use modal::{CapabilityModal, EscalationPath, EscalationStep, ModalContext, ModalPermissions};
184pub use path::PathLattice;
185pub use permissive::{
186 ExecutionDenied, PermissiveExecution, PermissiveExecutionResult, PermissiveExecutor,
187 PermissiveExecutorBuilder,
188};
189pub use progress::{ProgressDimension, ProgressLattice, ProgressLevel};
190pub use region::CodeRegion;
191pub use time::TimeLattice;
192pub use trust::{EnforcementResult, TrustProfile};
193pub use weakening::{
194 WeakeningCost, WeakeningCostConfig, WeakeningDimension, WeakeningGap, WeakeningRequest,
195};
196pub use workspace::WorkspaceGuard;
197
198pub use pipeline::{
200 algebraic_gap, evaluate_and_escalate, full_pipeline, justify_necessity, require_or_escalate,
201 translate_with_cost, AlgebraicWeakeningGap, CostAnnotatedTranslation, EscalationTrigger,
202 HopCost, IntentRegionMapping, ModalJustification, ModalJustificationEntry, PipelineTrace,
203 RiskEvaluation,
204};
205
206pub use audit::{
208 AuditEntry, AuditLog, ChainVerificationError, IdentityAuditSummary, PermissionEvent,
209 RetentionPolicy,
210};
211#[cfg(feature = "crypto")]
212pub use certificate::{
213 canonical_permissions_hash, verify_certificate, CertificateDelegationError, CertificateError,
214 LatticeCertificate, VerifiedPermissions,
215};
216pub use delegation::{
217 meet_with_justification, DelegationChain, DelegationLink, MeetJustification, RestrictionDetail,
218 RestrictionReason,
219};
220pub use metrics::{
221 build_deviation_report, DeviationDetail, DeviationReport, InMemoryMetrics, MetricEvent,
222 MetricsCollector, MetricsReport, ReputationMetrics, ReputationWeights,
223};
224#[cfg(feature = "crypto")]
225pub use token::{AttenuationToken, SessionProvenance, TokenError};
226pub use uninhabitable_state::{ConstraintNucleus, CoreExposureRequirement, UninhabitableState};
227
228pub fn glob_match(pattern: &str, path: &str) -> bool {
230 path::glob_match(pattern, path)
231}