Skip to main content

orchestrator_config/
dynamic_step.rs

1//! Dynamic step configuration data types.
2
3use serde::{Deserialize, Serialize};
4
5/// Configuration for a dynamic step in the pool
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct DynamicStepConfig {
8    /// Unique identifier for this dynamic step
9    pub id: String,
10    /// Description for documentation
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub description: Option<String>,
13    /// The step type
14    pub step_type: String,
15    /// Agent ID to use
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    pub agent_id: Option<String>,
18    /// Template for the agent
19    #[serde(default, skip_serializing_if = "Option::is_none")]
20    pub template: Option<String>,
21    /// CEL trigger condition - when to consider this step
22    #[serde(default, skip_serializing_if = "Option::is_none")]
23    pub trigger: Option<String>,
24    /// Priority (higher = more likely to be selected)
25    #[serde(default)]
26    pub priority: i32,
27    /// Maximum times this step can be executed per item
28    #[serde(default)]
29    pub max_runs: Option<u32>,
30}