from typing import TYPE_CHECKING from fusionagi.agents.base_agent import BaseAgent from fusionagi.schemas.messages import AgentMessageEnvelope from fusionagi._logger import logger if TYPE_CHECKING: from fusionagi.core.orchestrator import Orchestrator from fusionagi.core.goal_manager import GoalManager class CoordinatorAgent(BaseAgent): def __init__(self, identity="coordinator", orchestrator=None, goal_manager=None, planner_id="planner"): super().__init__(identity=identity, role="Coordinator", objective="Own goals and assign tasks", memory_access=True, tool_permissions=[]) self._orch = orchestrator self._goal_manager = goal_manager self._planner_id = planner_id def handle_message(self, envelope): if envelope.message.intent == "goal_created" and self._orch and self._planner_id: self._orch.route_message(envelope) return None