use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct AdaptivePlannerConfig {
#[serde(default)]
pub enabled: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub planner_agent: Option<String>,
#[serde(default = "default_10")]
pub max_history: usize,
#[serde(default = "default_07")]
pub temperature: f32,
#[serde(default)]
pub fallback_mode: AdaptiveFallbackMode,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default)]
#[serde(rename_all = "snake_case")]
pub enum AdaptiveFallbackMode {
#[default]
SoftFallback,
FailClosed,
}
fn default_10() -> usize {
10
}
fn default_07() -> f32 {
0.7
}
impl Default for AdaptivePlannerConfig {
fn default() -> Self {
Self {
enabled: false,
planner_agent: None,
max_history: 10,
temperature: 0.7,
fallback_mode: AdaptiveFallbackMode::SoftFallback,
}
}
}