| """ | |
| MINDI 1.5 Vision-Coder — Code Generation Route | |
| Accepts user prompts and returns generated Next.js + Tailwind + TypeScript code | |
| via the agent orchestration pipeline. | |
| """ | |
| from __future__ import annotations | |
| from typing import Optional | |
| from fastapi import APIRouter, HTTPException | |
| from pydantic import BaseModel, Field | |
| router = APIRouter() | |
| class GenerateRequest(BaseModel): | |
| """Request body for code generation.""" | |
| prompt: str = Field(..., min_length=1, max_length=10000, description="User's code generation prompt") | |
| temperature: float = Field(0.7, ge=0.0, le=2.0) | |
| max_tokens: int = Field(4096, ge=1, le=8192) | |
| use_search: bool = Field(True, description="Enable web search for context") | |
| use_sandbox: bool = Field(True, description="Enable sandbox testing") | |
| use_vision: bool = Field(True, description="Enable vision-based UI critique") | |
| class GenerateResponse(BaseModel): | |
| """Response body for code generation.""" | |
| code: str | |
| language: str = "typescript" | |
| file_path: str = "page.tsx" | |
| critique: Optional[str] = None | |
| search_sources: list[str] = [] | |
| iterations: int = 1 | |
| success: bool = True | |
| async def generate_code(request: GenerateRequest) -> GenerateResponse: | |
| """Generate code from a user prompt using the MINDI agent pipeline.""" | |
| # Will be wired to AgentOrchestrator in later phases | |
| raise HTTPException( | |
| status_code=503, | |
| detail="Model not loaded yet. Complete training pipeline first.", | |
| ) | |