orchestrator_config/
adaptive.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
7pub struct AdaptivePlannerConfig {
8 #[serde(default)]
10 pub enabled: bool,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub planner_agent: Option<String>,
14 #[serde(default = "default_10")]
16 pub max_history: usize,
17 #[serde(default = "default_07")]
19 pub temperature: f32,
20 #[serde(default)]
22 pub fallback_mode: AdaptiveFallbackMode,
23}
24
25#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default)]
27#[serde(rename_all = "snake_case")]
28pub enum AdaptiveFallbackMode {
29 #[default]
31 SoftFallback,
32 FailClosed,
34}
35
36fn default_10() -> usize {
37 10
38}
39
40fn default_07() -> f32 {
41 0.7
42}
43
44impl Default for AdaptivePlannerConfig {
45 fn default() -> Self {
46 Self {
47 enabled: false,
48 planner_agent: None,
49 max_history: 10,
50 temperature: 0.7,
51 fallback_mode: AdaptiveFallbackMode::SoftFallback,
52 }
53 }
54}