#[derive(Copy, Clone, Debug, PartialEq)]
pub struct SignTuple {
pub norm: f64,
pub drift: f64,
pub slew: f64,
}
impl SignTuple {
pub const ZERO: Self = Self { norm: 0.0, drift: 0.0, slew: 0.0 };
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum GrammarState {
Admissible = 0,
Boundary = 1,
Violation = 2,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum ReasonCode {
Admissible,
BoundaryApproach,
SustainedOutwardDrift,
AbruptSlewViolation,
RecurrentBoundaryGrazing,
EnvelopeViolation,
DriftWithRecovery,
SingleCrossing,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum PolicyState {
Silent = 0,
Watch = 1,
Review = 2,
Escalate = 3,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum MotifClass {
MemoryLeakDrift,
CascadingTimeoutSlew,
DeploymentRegressionSlew,
CacheDegradationGrazing,
ConnectionPoolExhaustionDrift,
GcPressureOscillation,
ErrorRateEscalation,
DependencySlowdown,
ResourceSaturation,
QueueBackpressure,
RetryStormCascade,
CircuitBreakerOpenShift,
DatabaseLockContention,
AuthenticationFailureSpike,
ConfigDriftRegression,
PacketLossErrorEscalation,
NetworkDelayDependencyInflation,
DiskIoSaturation,
CpuSaturation,
JvmHeapPressure,
JvmGcPause,
ServiceGraphDriftPropagation,
HighDimAnomalyCluster,
MetricCorrelationCollapse,
LogVolumeAnomaly,
LogTraceTemporalDecorrelation,
LogSeverityEscalation,
SaturationTrending,
EpisodicTransientSpike,
RegressiveDriftWithRecovery,
EnvelopeBoundaryApproach,
EnvelopeBreach,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum SemanticDisposition {
Named(MotifClass),
Unknown,
}
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct MatchConfidence {
pub disposition: SemanticDisposition,
pub top_score: f64,
pub runner_up_score: f64,
pub runner_up_motif: Option<MotifClass>,
pub margin: f64,
pub tier_consensus_factor: f64,
pub confuser_motif: Option<MotifClass>,
pub confuser_score: f64,
pub margin_vs_confuser: f64,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum Provenance {
FrameworkDesign,
DatasetObserved,
FieldValidated,
}
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct HeuristicEntry {
pub motif_class: MotifClass,
pub reason_code: ReasonCode,
pub candidate_interpretation: &'static str,
pub provenance: Provenance,
pub recommended_action: PolicyState,
pub drift_threshold: f64,
pub slew_threshold: f64,
pub boundary_density_threshold: f64,
pub min_correlation_count: u16,
pub max_correlation_count: u16,
pub min_duration_windows: u16,
pub max_duration_windows: u16,
pub weight_drift: f64,
pub weight_slew: f64,
pub weight_boundary: f64,
pub weight_correlation: f64,
pub weight_duration: f64,
pub evidence_dataset: &'static str,
pub evidence_dataset_doi: &'static str,
pub dashboard_hint: &'static str,
pub taxonomy_ref: &'static str,
pub affinity_tiers: u32,
pub confuser_motif: Option<MotifClass>,
pub margin_vs_confuser_threshold: f64,
pub primary_witness_tiers: u32,
pub primary_witness_detectors: &'static [&'static str],
}
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct SignalEvaluation {
pub window_index: u64,
pub signal_index: u16,
pub residual_value: f64,
pub sign_tuple: SignTuple,
pub raw_grammar_state: GrammarState,
pub confirmed_grammar_state: GrammarState,
pub reason_code: ReasonCode,
pub motif: Option<MotifClass>,
pub semantic_disposition: SemanticDisposition,
pub dsa_score: f64,
pub policy_state: PolicyState,
pub was_imputed: bool,
pub drift_persistence: f64,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum DriftDirection {
Positive,
Negative,
Oscillatory,
None,
}
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct StructuralSignature {
pub dominant_drift_direction: DriftDirection,
pub peak_slew_magnitude: f64,
pub duration_windows: u64,
pub signal_correlation: f64,
}
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct DebugEpisode {
pub episode_id: u32,
pub start_window: u64,
pub end_window: u64,
pub peak_grammar_state: GrammarState,
pub primary_reason_code: ReasonCode,
pub matched_motif: SemanticDisposition,
pub policy_state: PolicyState,
pub contributing_signal_count: u16,
pub structural_signature: StructuralSignature,
pub root_cause_signal_index: Option<u16>,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct AuditRecord {
pub event_type: AuditEventType,
pub window_index: u64,
pub signal_index: u16,
pub source: AuditSource,
pub outcome: PolicyState,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum AuditEventType {
GrammarStateTransition,
EpisodeOpened,
EpisodeClosed,
PolicyEscalation,
MotifMatched,
EndoductiveUnknown,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum AuditSource {
GrammarEvaluator,
EpisodeAggregator,
PolicyEngine,
HeuristicsBank,
}
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct BenchmarkMetrics {
pub dataset_name: &'static str,
pub total_windows: u64,
pub total_signals: u16,
pub raw_anomaly_count: u64,
pub dsfb_episode_count: u64,
pub rscr: f64,
pub episode_precision: f64,
pub fault_recall: f64,
pub investigation_load_raw: u64,
pub investigation_load_dsfb: u64,
pub investigation_load_reduction_pct: f64,
pub clean_window_false_episode_rate: f64,
}