| from pydantic import BaseModel, Field | |
| from typing import List, Dict, Any, Optional | |
| # --- REQUESTS --- | |
| class GenerateRequest(BaseModel): | |
| # Security: Limit input size to prevent context window overflow/DoS | |
| requirements_text: str = Field(..., min_length=10, max_length=50000, description="Raw requirements text") | |
| context: Optional[str] = Field(None, max_length=5000) | |
| class AnalyzeRequest(BaseModel): | |
| test_cases: List[Dict[str, Any]] = Field(..., description="Test cases to analyze") | |
| class CodeGenRequest(BaseModel): | |
| test_plan: Dict[str, Any] = Field(..., description="Single test case object") | |
| # --- RESPONSES --- | |
| class TestSuiteResponse(BaseModel): | |
| suite_id: str | |
| test_cases: List[Dict[str, Any]] | |
| meta: Dict[str, Any] | |
| class CodeResponse(BaseModel): | |
| filename: str | |
| python_code: str | |