#![forbid(unsafe_code)]
pub mod contract;
pub use contract::CONTRACT_VERSION;
pub mod scenario_gen;
pub use scenario_gen::{
cross_regime_split, generate_scenario, level_seed, train_test_split, DistributionMode,
ScenarioSpec,
};
pub mod richness;
pub use richness::{ObservationRichness, RichnessTier, DEFAULT_LOOKBACK};
pub mod curriculum;
pub use curriculum::AdaptiveCurriculum;
pub mod leaderboard_ci;
pub use leaderboard_ci::{bootstrap_dsr_ci, deflated_sharpe, paired_dsr_diff, DsrCi, PairedDiff};
pub mod vec_env;
pub use vec_env::{BatchStep, LaneConfig, VecTradingEnv};
pub mod mandate;
pub use mandate::{mandate_breach, sample_mandate, Mandate, MandateStyle};
pub mod exec_noise;
pub use exec_noise::{perturb as perturb_action, ExecNoise};
pub mod lob_market;
pub use lob_market::{Fill, LadderSnapshot, OrderBook, OrderKind, RestingOrder, Side};
pub mod market;
pub use market::{
clear_bar, clear_bar_robust, AgentFill, ClearResult, EllipticUncertaintySet,
ImpactCoefficients, MarketClearing, MarketParams,
};
pub use sharpebench_sim::{
replay_run,
replay_submission,
run_backtest,
run_backtest_capture,
tag_regime,
walk_forward,
Agent,
BuyAndHold,
CostModel,
CostProfile,
Dataset,
EnvState,
ExternalAgent,
HoldAgent,
HttpAgent,
Momentum,
RandomAgent,
Regime,
Scenario,
StepInfo,
StepResult,
TeamAgent,
TradingEnv,
Window,
};
pub use sharpebench_protocol::{
Action, AgentTrajectory, Decision, DecisionStep, MarketObservation, Order, PositionState,
RunTrajectory, SymbolSnapshot,
};
pub use sharpebench_core::Run;