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