import json from typing import Dict, Any from agents.base_agent import BaseAgent, AgentResponseSchema class ArchitectureAgent(BaseAgent): async def run( self, profile: Dict[str, Any], graph: Dict[str, Any], summary: Dict[str, Any], report: str, query: str ) -> Dict[str, Any]: prompt = f""" You are the Architecture Agent. Your responsibility is to analyze the codebase structure, architectural design patterns, component relationships, data flow, business workflows, and entry points to answer the user query. Here is the repository context: 1. Profile: {json.dumps(profile, indent=2)} 2. Graph Structure: {json.dumps(graph, indent=2)} 3. Summary: {json.dumps(summary, indent=2)} 4. Intelligence Report: {report} User Query: {query} Perform a rigorous architectural analysis to answer this query. Your citations must specify files, code blocks, or components (e.g. "backend/main.py:L10-L40", "Graph Node: App.jsx"). Return your structured answer matching the AgentResponseSchema. """ return await self._call_llm_json(prompt, AgentResponseSchema)