from __future__ import annotations from app.agents.schemas.task import CollaborationBudget def build_subtask_budget( *, execution_mode: str, max_parallel_tasks: int, max_tool_calls: int = 2, max_iterations: int = 2, metadata: dict | None = None, ) -> CollaborationBudget: return CollaborationBudget( mode="collaboration" if execution_mode != "direct" else "direct", max_parallel_tasks=max_parallel_tasks, remaining_parallel_tasks=max_parallel_tasks, max_tool_calls=max_tool_calls, remaining_tool_calls=max_tool_calls, max_iterations=max_iterations, remaining_iterations=max_iterations, escalation_threshold=1, metadata=metadata or {}, )