import pytest from aegis.agents import PlannerAgent from aegis.core import AgentContext, Task @pytest.mark.asyncio async def test_planner_returns_structured_plan() -> None: planner = PlannerAgent() context = AgentContext( task=Task( name="Build API", description="Create and validate a small API endpoint.", ) ) result = await planner.run(context) assert result.success is True assert result.agent_name == "planner" assert result.output["task_name"] == "Build API" assert len(result.output["steps"]) == 3 @pytest.mark.asyncio async def test_planner_steps_have_sequential_ids() -> None: planner = PlannerAgent() context = AgentContext( task=Task( name="Validate repository", description="Run repository validation checks.", ) ) result = await planner.run(context) step_ids = [step["id"] for step in result.output["steps"]] assert step_ids == [1, 2, 3] @pytest.mark.asyncio async def test_planner_output_is_bounded() -> None: planner = PlannerAgent() context = AgentContext( task=Task( name="Small task", description="Produce a concise execution plan.", ) ) result = await planner.run(context) assert len(result.output["steps"]) <= 3