1mod artifact;
8mod hook;
9mod review;
10mod runtime;
11
12pub use artifact::ArtifactError;
13
14pub use hook::{
15 CommitHook, CommitPreparation, CommitResolution, HookBaseline, HookConfig, HookDecision,
16 HookDecisionRecord, HookHandlerError, HookScope, HookVerdict, HookedRuntime, RequestEvent,
17 ReviewContent,
18};
19
20pub use runtime::{
21 ArtifactLimits, ExecutionBudget, Receipt, ReceiptDetail, RunMode, RunRequest, Runtime,
22 RuntimeConfig, RuntimeDecision, StageTimings, VshError,
23};
24
25pub use vsh_commit::{
26 CommitConfig, CommitError, CommitPlan, CommitPlanError, CommitReceipt, Committer,
27 FaultInjector, FaultPoint, HostError, JournalError, NoFaults, PlanDecodeError,
28 RecoveryConflict, RecoveryReport, RevalidationConflict, SnapshotLimits, VerificationFailure,
29};
30
31pub use vsh_monty::{
32 DEFAULT_VIRTUAL_ROOT, ExecutionError, ExecutionLimitExceeded, ExecutionLimits,
33 ExecutionOutcome, ExecutionStats, InProcessConfig, InProcessMonty, MontyFailurePhase,
34 MontyObject, MontyType, OsFunctionCall, ResultCompatibility, ResultCompatibilityError,
35 SubprocessConfig, SubprocessMonty, VirtualPathError, VirtualRoot, VirtualRootError,
36 WorkerFailure, WorkerFailureKind, validate_result_compatibility,
37};
38pub use vsh_policy::{
39 AccessKind, AccessSet, CallPolicy, DEFAULT_SECRET_PATTERNS, DeniedAccess, DenyManifest,
40 DenyReason, PatternError, PolicyConfigError, PolicyDecision, PolicyInput, PolicyProfile,
41 PolicyThresholds, ProtectedRule, RiskFlag, RiskManifest, RiskMetrics, TransactionIdentityInput,
42 TransactionPolicy, bind_transaction, read_set_digest, write_set_digest,
43};
44pub use vsh_store::{
45 ApprovalGrant, ApprovalGrantError, BlobStore, BlobStoreError, CommitReservation, DataDirectory,
46 DataDirectoryError, FileStoreConfig, FileTransactionStore, MemoryTransactionStore,
47 TransactionRecord, TransactionStore, TransactionStoreError,
48};
49pub use vsh_types::{
50 ApprovalBinding, ApprovalId, BlobId, ContentVersion, DiffDigest, DiffEntry, DiffKind,
51 DirectoryDigest, FileStamp, HookId, IntentDigest, NodeKind, NodeState, ParseDigestError,
52 PlatformFileId, PolicyDigest, PrincipalId, ProgramDigest, ReadSetDigest, RequestEventId,
53 RuntimeConfigDigest, SnapshotId, TransactionBinding, TransactionId, TransactionState,
54 TransitionError, VPath, VPathError, WriteSetDigest,
55};
56pub use vsh_vfs::{
57 BaseSnapshot, CanonicalDiff, CanonicalDiffMetrics, CapturedContent, ContentLoadError,
58 ContentLoader, Effect, EffectEvent, EffectOrigin, ReadObservation, SnapshotBuilder,
59 SnapshotError, SnapshotMetrics, VfsError, VfsMetrics, VirtualFs, WritePrecondition,
60};
61
62pub const VERSION: &str = env!("CARGO_PKG_VERSION");
64
65#[must_use]
67pub const fn engine_kind() -> &'static str {
68 "rust"
69}
70
71#[cfg(test)]
72mod tests {
73 use super::*;
74
75 #[test]
76 fn facade_exports_one_versioned_rust_engine() {
77 assert_eq!(VERSION, "0.5.0");
78 assert_eq!(engine_kind(), "rust");
79 assert_eq!(VPath::parse("src/lib.rs").unwrap().as_str(), "src/lib.rs");
80 }
81}