1#![forbid(unsafe_code)]
2
3pub mod allocation_budget;
29pub mod alpha_investing;
30pub mod asciicast;
31pub mod bocpd;
32pub mod cancellation;
33
34pub mod conformal_alert;
35pub mod conformal_frame_guard;
36pub mod conformal_predictor;
37pub mod conformal_stages;
38pub mod cost_model;
39pub mod debug_trace;
40pub mod decision_core;
41pub mod degradation_cascade;
42pub mod demo;
43pub mod diff_evidence;
44pub mod effect_system;
45pub mod eprocess_throttle;
46#[cfg(feature = "event-trace")]
47pub mod event_trace;
48pub mod evidence_bridges;
49pub mod evidence_sink;
50pub mod evidence_telemetry;
51pub mod flake_detector;
52pub mod flat_combine;
53pub mod input_fairness;
54pub mod input_macro;
55pub mod ivm;
56pub mod lens;
57pub mod locale;
58pub mod log_sink;
59pub mod metrics_registry;
60pub mod policy_config;
61pub mod policy_registry;
62pub mod process_subscription;
63pub mod program;
64pub mod queueing_scheduler;
65#[cfg(feature = "render-thread")]
66pub mod render_thread;
67pub mod render_trace;
68pub mod resize_coalescer;
69pub mod resize_sla;
70pub mod retry;
71pub mod reversible;
72pub mod rough_path;
73pub mod schema_compat;
74pub mod simulator;
75pub mod slo;
76pub mod sos_barrier;
77pub mod state_persistence;
78#[cfg(feature = "stdio-capture")]
79pub mod stdio_capture;
80pub mod string_model;
81pub mod subscription;
82pub mod telemetry_schema;
83pub mod terminal_writer;
84pub mod tick_strategy;
85pub mod transparency;
86pub mod undo;
87pub mod unified_evidence;
88pub mod validation_pipeline;
89pub mod voi_sampling;
90pub mod wasm_runner;
91
92pub mod reactive;
93pub mod schedule_trace;
94#[cfg(feature = "telemetry")]
95pub mod telemetry;
96pub mod voi_telemetry;
97
98pub use asciicast::{AsciicastRecorder, AsciicastWriter};
99pub use cancellation::{CancellationSource, CancellationToken};
100pub use diff_evidence::{
101 DiffEvidenceLedger, DiffRegime, DiffStrategyRecord, Observation, RegimeTransition,
102};
103pub use evidence_sink::{EvidenceSink, EvidenceSinkConfig, EvidenceSinkDestination};
104pub use evidence_telemetry::{
105 BudgetDecisionSnapshot, ConformalSnapshot, DiffDecisionSnapshot, ResizeDecisionSnapshot,
106 budget_snapshot, clear_budget_snapshot, clear_diff_snapshot, clear_resize_snapshot,
107 diff_snapshot, resize_snapshot, set_budget_snapshot, set_diff_snapshot, set_resize_snapshot,
108};
109pub use ftui_backend::{BackendEventSource, BackendFeatures};
110#[cfg(feature = "native-backend")]
111pub use ftui_tty::TtyBackend;
112pub use input_macro::{
113 EventRecorder, FilteredEventRecorder, InputMacro, MacroPlayback, MacroPlayer, MacroRecorder,
114 RecordingFilter, RecordingState, TimedEvent,
115};
116pub use locale::{
117 Locale, LocaleContext, LocaleOverride, current_locale, detect_system_locale, set_locale,
118};
119pub use log_sink::LogSink;
120pub use process_subscription::{ProcessEvent, ProcessSubscription};
121#[cfg(feature = "crossterm-compat")]
122pub use program::CrosstermEventSource;
123pub use program::{
124 App, AppBuilder, BatchController, Cmd, EffectQueueConfig, FrameTiming, FrameTimingConfig,
125 FrameTimingSink, HeadlessEventSource, InlineAutoRemeasureConfig, LoadGovernorConfig, Model,
126 MouseCapturePolicy, PaneTerminalAdapter, PaneTerminalAdapterConfig, PaneTerminalDispatch,
127 PaneTerminalIgnoredReason, PaneTerminalLifecyclePhase, PaneTerminalLogEntry,
128 PaneTerminalLogOutcome, PaneTerminalSplitterHandle, PersistenceConfig, Program, ProgramConfig,
129 ResizeBehavior, RolloutPolicy, RuntimeLane, TaskExecutorBackend, TaskSpec, WidgetRefreshConfig,
130 pane_terminal_resolve_splitter_target, pane_terminal_splitter_handles,
131 pane_terminal_target_from_hit, register_pane_terminal_splitter_hits,
132};
133pub use render_trace::{
134 RenderTraceConfig, RenderTraceContext, RenderTraceFrame, RenderTraceRecorder,
135};
136pub use retry::{BackoffStrategy, RetryPolicy, task_with_retry, task_with_timeout};
137pub use simulator::ProgramSimulator;
138pub use string_model::{StringModel, StringModelAdapter};
139pub use subscription::{Every, StopSignal, SubId, Subscription};
140pub use terminal_writer::{ScreenMode, TerminalWriter, UiAnchor, inline_active_widgets};
141pub use tick_strategy::{
142 ActiveOnly, ActivePlusAdjacent, AllocationCurve, Custom, DecayConfig, MarkovPredictor,
143 Predictive, PredictiveConfig, PredictiveStrategyConfig, ScreenPrediction, ScreenTickDispatch,
144 TickAllocation, TickDecision, TickStrategy, TickStrategyKind, TransitionCounter,
145 TransitionEntry, TransitionHistory, Uniform,
146};
147#[cfg(feature = "state-persistence")]
148pub use tick_strategy::{load_transitions, save_transitions};
149pub use voi_telemetry::{
150 clear_inline_auto_voi_snapshot, inline_auto_voi_snapshot, set_inline_auto_voi_snapshot,
151};
152
153#[cfg(feature = "render-thread")]
154pub use render_thread::{OutMsg, RenderThread};
155
156#[cfg(feature = "stdio-capture")]
157pub use stdio_capture::{CapturedWriter, StdioCapture, StdioCaptureError};
158
159pub use allocation_budget::{
160 AllocationBudget, BudgetAlert, BudgetConfig, BudgetEvidence, BudgetSummary,
161};
162pub use conformal_alert::{
163 AlertConfig, AlertDecision, AlertEvidence, AlertReason, AlertStats, ConformalAlert,
164};
165pub use conformal_frame_guard::{
166 ConformalFrameGuard, ConformalFrameGuardConfig, ConformalFrameGuardTelemetry, GuardState,
167 NonconformitySummary, P99Prediction,
168};
169pub use conformal_predictor::{
170 BucketKey, ConformalConfig, ConformalPrediction, ConformalPredictor, ConformalUpdate,
171 DiffBucket, ModeBucket,
172};
173pub use cost_model::{
174 BatchCostParams, BatchCostResult, CacheCostParams, CacheCostResult, PipelineCostParams,
175 PipelineCostResult, StageStats,
176};
177pub use decision_core::{
178 Action as DecisionAction, Decision, DecisionCore, Outcome as DecisionOutcome, Posterior,
179 State as DecisionState, argmin_expected_loss, second_best_loss,
180};
181pub use degradation_cascade::{
182 CascadeConfig, CascadeDecision, CascadeEvidence, CascadeTelemetry, DegradationCascade,
183 PreRenderResult,
184};
185pub use demo::{DemoDefinition, DemoParseError, DemoStep, parse_demo_yaml, validate_demos};
186pub use effect_system::{
187 QueueTelemetry, effects_command_total, effects_executed_total, effects_queue_dropped,
188 effects_queue_enqueued, effects_queue_high_water, effects_queue_processed,
189 effects_subscription_total, queue_telemetry, record_command_effect, record_subscription_start,
190 record_subscription_stop, trace_command_effect,
191};
192pub use eprocess_throttle::{
193 EProcessThrottle, ThrottleConfig, ThrottleDecision, ThrottleLog, ThrottleStats,
194 eprocess_rejections_total,
195};
196#[cfg(feature = "event-trace")]
197pub use event_trace::{
198 EventReplayer, EventTraceReader, EventTraceWriter, EvidenceMismatch, EvidenceVerifier,
199 SerDecisionDomain, SerEvidenceEntry, SerEvidenceTerm, TraceFile, TraceRecord,
200};
201pub use flake_detector::{EvidenceLog, FlakeConfig, FlakeDecision, FlakeDetector, FlakeSummary};
202pub use flat_combine::{CombinerStats, FlatCombiner};
203pub use lens::{AtIndex, Composed, Fst, Identity, Lens, Prism, Snd, SomePrism, at_index, compose};
204pub use metrics_registry::{
205 BuiltinCounter, BuiltinGauge, BuiltinHistogram, Counter as MetricsCounter,
206 Gauge as MetricsGauge, Histogram as MetricsHistogram, METRICS, MetricsRegistry,
207};
208pub use policy_config::{
209 BocpdPolicyConfig, CascadePolicyConfig, ConformalPolicyConfig, EProcessBudgetPolicyConfig,
210 EProcessThrottlePolicyConfig, EvidencePolicyConfig, FrameGuardPolicyConfig, PidPolicyConfig,
211 PolicyConfig, PolicyConfigError, VoiPolicyConfig,
212};
213pub use policy_registry::{PolicyRegistry, PolicyRegistryError, PolicySwitchEvent};
214pub use reactive::{BatchScope, Binding, BindingScope, Computed, Observable, TwoWayBinding};
215pub use resize_coalescer::{
216 CoalesceAction, CoalescerConfig, CoalescerStats, CycleTimePercentiles, DecisionLog,
217 DecisionSummary, Regime, ResizeCoalescer,
218};
219pub use resize_sla::{
220 ResizeEvidence, ResizeSlaMonitor, SlaConfig, SlaLogEntry, SlaSummary, make_sla_hooks,
221};
222pub use reversible::{
223 AddOp, InsertOp, Journal, MulOp, PushOp, RemoveOp, Reversible, Sequence, SetOp, SwapOp, XorOp,
224};
225pub use schema_compat::{
226 CompatCheckResult, Compatibility, MatrixEntry, SchemaKind, check_event_trace_compat,
227 check_evidence_compat, check_golden_trace_compat, check_render_trace_compat,
228 check_schema_compat, default_compatibility_matrix, run_compatibility_matrix,
229};
230pub use slo::{
231 BreachResult, BreachSeverity, MetricSlo, MetricType, SafeModeDecision, SloSchema,
232 SloSchemaError, check_breach, check_safe_mode, emit_slo_check, parse_slo_yaml, run_slo_check,
233};
234pub use undo::{
235 CommandBatch, CommandError, CommandMetadata, CommandResult, CommandSource, HistoryConfig,
236 HistoryManager, MergeConfig, TextDeleteCmd, TextInsertCmd, TextReplaceCmd, Transaction,
237 TransactionScope, UndoableCmd, WidgetId,
238};
239pub use unified_evidence::{
240 DecisionDomain, DomainSummary, EmitsEvidence, EvidenceEntry, EvidenceEntryBuilder,
241 EvidenceTerm, LedgerSummary, UnifiedEvidenceLedger,
242};
243pub use validation_pipeline::{
244 LedgerEntry, PipelineConfig, PipelineResult, PipelineSummary, ValidationOutcome,
245 ValidationPipeline, ValidatorStats,
246};
247pub use voi_sampling::{
248 DeferredRefinementConfig, DeferredRefinementPlan, DeferredRefinementScheduler,
249 RefinementCandidate, RefinementSelection, VoiConfig, VoiDecision, VoiLogEntry, VoiObservation,
250 VoiSampler, VoiSamplerSnapshot, VoiSummary, voi_samples_skipped_total, voi_samples_taken_total,
251};
252
253#[cfg(feature = "state-persistence")]
255pub use state_persistence::FileStorage;
256pub use state_persistence::{
257 MemoryStorage, RegistryStats, StateRegistry, StorageBackend, StorageError, StorageResult,
258 StoredEntry,
259};
260
261pub use schedule_trace::{
262 CancelReason, GoldenCompareResult, IsomorphismProof, ScheduleTrace, SchedulerPolicy, TaskEvent,
263 TraceConfig, TraceEntry, TraceSummary, WakeupReason, compare_golden,
264};
265
266pub use ftui_render::diff_strategy::{
268 DiffStrategy, DiffStrategyConfig, DiffStrategySelector, StrategyEvidence,
269};
270pub use terminal_writer::RuntimeDiffConfig;
271pub use wasm_runner::{RenderedFrame, StepResult, WasmRunner};
272
273#[cfg(feature = "telemetry")]
274pub use telemetry::{
275 DecisionEvidence, EnabledReason, EndpointSource, EvidenceLedger, Protocol, SCHEMA_VERSION,
276 SpanId, TelemetryConfig, TelemetryError, TelemetryGuard, TraceContextSource, TraceId,
277 is_safe_env_var, redact,
278};