mod continuation_reducer;
mod helpers;
mod iteration_reducer;
use crate::reducer::event::DevelopmentEvent;
use crate::reducer::state::PipelineState;
pub(super) fn reduce_development_event(
state: PipelineState,
event: DevelopmentEvent,
) -> PipelineState {
match event {
DevelopmentEvent::PhaseStarted
| DevelopmentEvent::IterationStarted { .. }
| DevelopmentEvent::ContextPrepared { .. }
| DevelopmentEvent::PromptPrepared { .. }
| DevelopmentEvent::XmlCleaned { .. }
| DevelopmentEvent::AgentInvoked { .. }
| DevelopmentEvent::AnalysisAgentInvoked { .. }
| DevelopmentEvent::XmlExtracted { .. }
| DevelopmentEvent::XmlValidated { .. }
| DevelopmentEvent::XmlArchived { .. }
| DevelopmentEvent::OutcomeApplied { .. }
| DevelopmentEvent::IterationCompleted { .. }
| DevelopmentEvent::PhaseCompleted => {
iteration_reducer::reduce_iteration_event(state, event)
}
DevelopmentEvent::ContinuationTriggered { .. }
| DevelopmentEvent::ContinuationSucceeded { .. }
| DevelopmentEvent::ContinuationBudgetExhausted { .. }
| DevelopmentEvent::OutputValidationFailed { .. }
| DevelopmentEvent::XmlMissing { .. }
| DevelopmentEvent::ContinuationContextWritten { .. }
| DevelopmentEvent::ContinuationContextCleaned => {
continuation_reducer::reduce_continuation_event(state, event)
}
}
}