#[derive(Clone, Debug, PartialEq)]
pub struct RunLimits {
pub max_model_calls: usize,
pub max_tool_calls: usize,
pub max_wall_clock_ms: Option<u64>,
pub max_retries_per_call: usize,
pub max_concurrency: Option<usize>,
pub max_depth: usize,
}
impl RunLimits {
pub const DEFAULT_MAX_DEPTH: usize = 8;
}
impl Default for RunLimits {
fn default() -> Self {
Self {
max_model_calls: 25,
max_tool_calls: 50,
max_wall_clock_ms: None,
max_retries_per_call: 3,
max_concurrency: None,
max_depth: Self::DEFAULT_MAX_DEPTH,
}
}
}