pub fn aggregate_episodes(
policy_states: &[PolicyState],
num_signals: usize,
num_windows: usize,
reason_codes: &[ReasonCode],
drift_directions: &[DriftDirection],
slew_magnitudes: &[f64],
correlation_window: u64,
episodes_out: &mut [DebugEpisode],
) -> usizeExpand description
Aggregate per-window policy evaluations into episodes.
An episode opens when any signal transitions to Review or Escalate.
An episode closes when all signals return to Silent/Watch for
correlation_window consecutive windows.
§Arguments
policy_states- per-window, per-signal policy states (row-major: [window][signal])num_signals- number of signals per windownum_windows- number of windowsreason_codes- per-window, per-signal reason codescorrelation_window- windows of silence required to close an episodeepisodes_out- output buffer for episodes
§Returns
Number of episodes written