1pub mod assertions;
11pub mod backend;
12pub mod cache;
13pub mod chaos;
14pub mod cleanroom;
15pub mod cli;
16pub mod config;
17pub mod coverage;
18pub mod determinism;
19pub mod error;
20pub mod formatting;
21pub mod macros;
22pub mod otel;
23pub mod policy;
24pub mod reporting;
25pub mod scenario;
26pub mod services;
27pub mod telemetry;
28pub mod utils;
29pub mod validation;
30pub mod watch;
31
32pub mod testing;
34
35pub use testing::{FrameworkTestResults, SuiteResult, TestResult as TestingTestResult};
37
38pub use error::{CleanroomError, Result};
39pub use policy::{Policy, SecurityLevel, SecurityPolicy};
40pub use scenario::scenario;
41
42pub use telemetry::weaver_controller::{
43 ValidationReport as WeaverValidationReport, ValidationStatus, WeaverConfig, WeaverController,
44};
45pub use telemetry::{Export, OtelConfig, OtelGuard};
46pub use telemetry::weaver_coordination::{
48 Running, Stopped, Unstarted, WeaverConfig as TypeSafeWeaverConfig,
49 WeaverController as TypeSafeWeaverController,
50};
51
52pub use assertions::{cache, database, email_service, UserAssertions};
53pub use cache::{Cache, CacheManager, CacheStats, FileCache, MemoryCache};
54pub use cleanroom::{
55 CleanroomEnvironment, ExecutionResult, HealthStatus, ServiceHandle, ServicePlugin,
56 ServiceRegistry,
57};
58pub use config::{
59 load_cleanroom_config, load_cleanroom_config_from_file, load_config_from_file,
60 parse_toml_config, CleanroomConfig, DeterminismConfig, ScenarioConfig, StepConfig, TestConfig,
61};
62pub use determinism::DeterminismEngine;
63pub use formatting::{
64 format_test_results, format_toml_content, format_toml_file, needs_formatting, Formatter,
65 FormatterType, HumanFormatter, JsonFormatter, JunitFormatter, TapFormatter, TestResult,
66 TestStatus, TestSuite,
67};
68pub use macros::{with_cache, with_database, with_message_queue, with_web_server};
69pub use reporting::{generate_reports, DigestReporter, JsonReporter, JunitReporter, ReportConfig};
70pub use services::generic::GenericContainerPlugin;
71pub use services::surrealdb::SurrealDbPlugin;
72
73pub use clnrm_template::{
75 get_cached_template_renderer, is_template, render_template, render_template_file,
76 DeterminismConfig as TemplateDeterminismConfig, TemplateContext, TemplateError,
77 TemplateRenderer,
78};
79
80pub use validation::otel::{OtelValidationConfig, OtelValidator, SpanAssertion, TraceAssertion};
81pub use validation::{PrdExpectations, ShapeValidator, ValidationReport};
82pub use watch::{debouncer::FileDebouncer, WatchConfig};
83
84pub use coverage::manifest::{BehaviorManifest, Dimensions, SystemInfo};
86pub use coverage::report::{ReportFormat, ReportGenerator};
87pub use coverage::tracker::CoverageTracker;
88pub use coverage::{
89 BehaviorCoverage, BehaviorCoverageReport, DimensionCoverage, DimensionWeights, StateTransition,
90 UncoveredBehaviors,
91};
92
93#[derive(Debug)]
97pub struct RunResult {
98 pub success: bool,
99 pub duration_ms: u64,
100 pub output: String,
101 pub error: Option<String>,
102}