from __future__ import annotations from .base import BaseAgent from .overdue_task import OverdueTaskAgent from .momentum import MomentumAgent from .time_of_day import TimeOfDayAgent from .recent_patterns import RecentPatternsAgent from .focus_area import FocusAreaAgent _AGENTS: dict[str, BaseAgent] = { a.agent_id: a for a in [ OverdueTaskAgent(), MomentumAgent(), TimeOfDayAgent(), RecentPatternsAgent(), FocusAreaAgent(), ] } def get_agent(agent_id: str) -> BaseAgent: if agent_id not in _AGENTS: raise KeyError(f"Unknown agent: {agent_id!r}. Known: {sorted(_AGENTS)}") return _AGENTS[agent_id] def all_agents() -> list[BaseAgent]: return list(_AGENTS.values())