use crate::cm_config::AgentConfig;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TurnOrchestrationMode {
ReAct,
}
impl TurnOrchestrationMode {
pub fn as_str(self) -> &'static str {
match self {
Self::ReAct => "react",
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ReActBecause {
Freeform,
}
impl ReActBecause {
pub fn as_str(self) -> &'static str {
match self {
Self::Freeform => "freeform",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TurnResolution {
pub orchestration_mode: TurnOrchestrationMode,
pub freeform_because: Option<ReActBecause>,
}
impl TurnResolution {
pub fn resolve_react(cfg: &AgentConfig) -> Self {
let _ = cfg;
Self {
orchestration_mode: TurnOrchestrationMode::ReAct,
freeform_because: Some(ReActBecause::Freeform),
}
}
}