1#![warn(missing_docs, rustdoc::broken_intra_doc_links)]
2#![deny(unsafe_code)]
3
4pub mod acquisition;
11pub mod adaptive;
13pub mod analyzer;
15pub mod backtest;
17pub mod bundle;
19#[cfg(feature = "caching")]
21pub mod cache;
22#[cfg(feature = "caching")]
24pub mod challenge_feedback;
25#[cfg(feature = "caching")]
31pub mod change_feed;
32pub mod classifier;
34pub mod content_type_shift;
40pub mod differential;
42#[cfg(feature = "field-anomaly")]
55pub mod field_anomaly;
56pub mod har;
58pub mod investigation;
60#[cfg(feature = "metrics")]
62pub mod metrics;
63pub mod observatory;
65pub mod playbooks;
69pub mod policy;
71#[cfg(feature = "caching")]
83pub mod pow_profile;
84pub mod probe;
86pub mod release_risk;
88pub mod snapshot;
90#[cfg(feature = "caching")]
94pub mod token_lifecycle;
95pub mod types;
97pub mod vendor_classifier;
99pub mod vendor_resolver;
106
107pub use acquisition::{
108 AcquisitionModeHint, AcquisitionPolicy, AcquisitionStartHint, RuntimePolicyHints,
109 map_adapter_strategy, map_policy_hints, map_runtime_policy,
110};
111pub use adaptive::{AdaptivePolicyError, AdaptiveSloPolicy, RegressionHistoryPolicy};
112pub use analyzer::{AnalyzerProfile, AnalyzerVersion, ProviderAnalyzer};
113pub use backtest::{
114 BacktestCase, BacktestDisagreement, BacktestError, BacktestReport, BacktestSample,
115 run_profile_backtest,
116};
117pub use bundle::{
118 BundleCoherenceViolation, BundleError, BundleMetadata, BundleRedactionPolicy, DiagnosticBundle,
119 apply_redaction, build_diagnostic_bundle, build_diagnostic_bundle_with_snapshot,
120 diagnostic_bundle_from_investigation,
121};
122#[cfg(feature = "redis-cache")]
123pub use cache::RedisInvestigationCache;
124#[cfg(feature = "caching")]
125pub use cache::{InvestigationReportCache, MemoryInvestigationCache, investigation_cache_key};
126#[cfg(feature = "caching")]
127pub use challenge_feedback::{
128 ChallengeFeedbackPolicy, ChallengeMemory, ChallengeMemoryEntry, ChallengeOutcome,
129 DEFAULT_CHALLENGE_CAPACITY, DEFAULT_CHALLENGE_TTL, EngineKey, EngineKeyParseError,
130 MAX_RISK_DELTA, adjust_runtime_policy, build_runtime_policy_with_memory, engine_memory_key,
131 memory_adjustment_for,
132};
133#[cfg(feature = "caching")]
134pub use change_feed::{
135 ChangeClassification, ChangeDeltaInput, ChangeDetector, ChangeEvent, ChangeEventSink,
136 ChangeFeedReport, ChangeFeedThresholds, DeltaSeverity, DeltaSource, DeltaSummary,
137 InMemoryChangeFeedSink, MitigationPath, record_change_event,
138};
139pub use classifier::{
140 classify_har, classify_har_with_profile, classify_transaction,
141 classify_transaction_with_profile,
142};
143pub use content_type_shift::{
144 ContentTypeDrift, ContentTypeError, ContentTypeObservation, ContentTypeShiftDetector,
145 ContentTypeShiftReport, MimeClass, RollingBaselineDetector, current_unix_secs, drift_summary,
146};
147pub use differential::{
148 ModeComparison, ModeDifferentialCorpus, ModeDifferentialError, ModeDifferentialPairResult,
149 ModeDifferentialRunReport, ModeDifferentialThresholds, run_mode_differential_regression,
150};
151pub use investigation::{
152 compare_reports, infer_requirements, infer_requirements_with_target_class, investigate_har,
153 investigate_har_with_profile,
154};
155#[cfg(feature = "caching")]
156pub use investigation::{investigate_har_cached, investigate_har_cached_with_target_class};
157#[cfg(feature = "live-validation")]
158pub use observatory::{LiveObservatoryProbe, run_external_observatory_live};
159pub use observatory::{
160 ObservatoryCase, ObservatoryComparison, ObservatoryError, ObservatoryEscalation,
161 ObservatoryReport, ObservatorySample, run_external_observatory_from_hars,
162};
163pub use policy::{analyze_and_plan, build_runtime_policy, plan_from_report};
164#[cfg(feature = "caching")]
165pub use pow_profile::{
166 DEFAULT_LATENCY_BUDGET_MS, DEFAULT_POW_CAPACITY, DEFAULT_POW_TTL, DEFAULT_RETRY_BUDGET,
167 DEFAULT_SAMPLE_WINDOW_SECS, MAX_POW_RISK_DELTA, MIN_OBSERVATIONS_FOR_SCORING,
168 PowCapabilityBand, PowCapabilityProfile, PowCapabilitySample, PowCapabilityScore,
169 PowCapabilityScorer, PowCapabilityStore, PowFailureMode, PowPolicyThresholds, ProfileWeights,
170 SPARSE_FALLBACK_SCORE, adjust_runtime_policy_for_pow, band_for_score, pow_profile_key,
171 score_from_profile,
172};
173pub use probe::{
174 ChallengeProbe, ProbeCategory, ProbeExpectation, ProbePackReport, ProbeRunResult,
175 challenge_probe_pack, run_probe_pack,
176};
177pub use release_risk::{
178 ReleaseCandidateRiskSnapshot, ReleaseRiskAssessment, ReleaseRiskBreakdown, ReleaseRiskInput,
179 ReleaseRiskLevel, ReleaseRiskThresholds, ReleaseRiskWeights, ReleaseTrendDirection,
180 ReleaseTrendPoint, ReleaseTrendReport, assess_release_risk, build_release_trend_report,
181 release_risk_input_from_reports,
182};
183pub use snapshot::{
184 FingerprintSignals, NormalizedFingerprintSnapshot, ScreenFingerprint, SnapshotCoherenceReport,
185 SnapshotCoherenceViolation, SnapshotCollectionError, SnapshotCompatibilityError,
186 SnapshotDeterminismOptions, SnapshotDriftReport, SnapshotMode, SnapshotSignalDrift,
187 SnapshotSignalDriftKind, TlsFingerprint, WebGlFingerprint,
188 collect_deterministic_snapshot_bytes, compare_snapshot_signal_drift,
189 evaluate_snapshot_coherence, normalize_snapshot_for_determinism,
190 validate_snapshot_compatibility,
191};
192#[cfg(feature = "caching")]
193pub use token_lifecycle::{
194 ChallengeClass, DEFAULT_NONCE_BOOK_CAPACITY, DEFAULT_NONCE_TTL, InvalidationKind,
195 InvalidationReason, NonceBook, NonceObservation, TokenContract, TokenLifecycleError,
196 TokenPolicy, TokenPolicyTable, TokenValidator, ValidationOutcome, builtin_token_policies,
197 nonce_book_key,
198};
199pub use types::{
200 AdapterStrategy, AntiBotProvider, AntiBotRequirement, BlockedRatioSlo, Detection,
201 ExecutionMode, HarClassificationReport, HarRequestSummary, HostSummary,
202 IntegrationRecommendation, InvestigationBundle, InvestigationDiff, InvestigationReport,
203 MarkerCount, ProviderScore, RequirementLevel, RequirementsProfile, RuntimePolicy, SessionMode,
204 TargetClass, TelemetryLevel, TransactionView,
205};
206pub use vendor_classifier::{
207 DEFAULT_HIGH_CONFIDENCE_THRESHOLD, Evidence, EvidenceBundle, EvidenceSource,
208 VendorClassification, VendorClassifier, VendorDefinition, VendorError, VendorId, VendorScore,
209 VendorSignal, parse_vendor_definition,
210};
211pub use vendor_resolver::{
212 AppliedRule, MergeStrategy, PlaybookResolverExt, ResolutionRationale, ResolutionRule,
213 StrategyMarker, VendorResolution, VendorResolver, VendorResolverError, VendorRuleMatch,
214 parse_resolution_rule,
215};