pub const DEFAULT_MAX_TOOL_CALLS_PER_TURN: usize = 120;
pub const DEFAULT_SAFETY_MAX_TOOL_CALLS_PER_SESSION: usize = 100;
pub const DEFAULT_MAX_TOOL_LOOPS: usize = 40;
pub const DEFAULT_FULL_AUTO_MAX_TURNS: usize = 100;
pub const DEFAULT_MAX_CONVERSATION_TURNS: usize = 150;
pub const PLANNING_WORKFLOW_MIN_TOOL_CALLS_PER_TURN: usize = 120;
pub const APPROVED_PLAN_MIN_TOOL_CALLS_PER_TURN: usize = 120;
pub const MAX_TOOL_LOOP_LIMIT_ABSOLUTE_CAP: usize = 120;
pub const MAX_TOOL_LOOP_CAP_MULTIPLIER: usize = 3;
pub const MAX_TOOL_LOOP_INCREMENT_PER_PROMPT: usize = 50;
pub const PLANNING_WORKFLOW_MIN_TOOL_LOOPS: usize = 40;
pub const PLANNING_WORKFLOW_MAX_TOOL_LOOP_LIMIT_ABSOLUTE_CAP: usize = 240;
pub const PLANNING_WORKFLOW_TOOL_LOOP_CAP_MULTIPLIER: usize = 6;
pub const PLANNING_WORKFLOW_MAX_TOOL_LOOP_INCREMENT_PER_PROMPT: usize = 80;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_execution_loop_budgets_are_moderate_and_bounded() {
assert_eq!(DEFAULT_MAX_TOOL_CALLS_PER_TURN, 120);
assert_eq!(DEFAULT_MAX_TOOL_LOOPS, 40);
assert_eq!(DEFAULT_FULL_AUTO_MAX_TURNS, 100);
assert_eq!(DEFAULT_MAX_CONVERSATION_TURNS, 150);
}
#[test]
fn planning_and_approved_plan_budgets_are_explicitly_separate() {
assert_eq!(PLANNING_WORKFLOW_MIN_TOOL_CALLS_PER_TURN, 120);
assert_eq!(APPROVED_PLAN_MIN_TOOL_CALLS_PER_TURN, 120);
assert_eq!(PLANNING_WORKFLOW_MIN_TOOL_LOOPS, 40);
assert_eq!(MAX_TOOL_LOOP_LIMIT_ABSOLUTE_CAP, 120);
assert_eq!(PLANNING_WORKFLOW_MAX_TOOL_LOOP_LIMIT_ABSOLUTE_CAP, 240);
}
}