bzzz-core 0.1.0

Bzzz core library - Declarative orchestration engine for AI Agents
Documentation
//! Pattern executors
//!
//! This module implements the runtime execution of all P0 orchestration patterns.

mod alongside;
mod compete;
mod conditional;
mod delegate;
mod escalation;
mod executor;
mod loop_pattern;
mod parallel;
mod sequence;
mod supervisor;
mod workflow;

pub use alongside::*;
pub use compete::*;
pub use conditional::*;
pub use delegate::*;
pub use escalation::*;
pub use executor::*;
pub use loop_pattern::*;
pub use parallel::*;
pub use sequence::*;
pub use supervisor::*;
pub use workflow::*;

/// Get executor for a flow pattern
pub fn get_executor(pattern: &crate::FlowPattern) -> Box<dyn PatternExecutor> {
    match pattern {
        crate::FlowPattern::Sequence { .. } => Box::new(SequenceExecutor::new()),
        crate::FlowPattern::Parallel { .. } => Box::new(ParallelExecutor::new()),
        crate::FlowPattern::Conditional { .. } => Box::new(ConditionalExecutor::new()),
        crate::FlowPattern::Loop { .. } => Box::new(LoopExecutor::new()),
        crate::FlowPattern::Delegate { .. } => Box::new(DelegateExecutor::new()),
        crate::FlowPattern::Supervisor { .. } => Box::new(SupervisorExecutor::new()),
        crate::FlowPattern::Compete { .. } => Box::new(CompeteExecutor::new()),
        crate::FlowPattern::Escalation { .. } => Box::new(EscalationExecutor::new()),
        crate::FlowPattern::Alongside { .. } => Box::new(AlongsideExecutor::new()),
        crate::FlowPattern::Workflow { .. } => Box::new(WorkflowExecutor::new()),
    }
}