from abc import ABC, abstractmethod from app.models.schemas import SubReview class BaseAgent(ABC): """Abstract base class for all review agents.""" name: str = "Base Agent" @abstractmethod async def analyze(self, file_data: bytes, file_type: str) -> SubReview: """ Analyze the proof and return a SubReview. Args: file_data: Raw bytes of the file to analyze file_type: MIME type of the file Returns: SubReview containing ragStatus, feedback, and issues """ pass