| from fastapi import FastAPI, HTTPException | |
| from app.agents.graph import AuditGraph | |
| from app.config import get_settings | |
| from app.schemas import AuditReport, AuditRequest | |
| app = FastAPI(title="SwarmAudit", version="0.1.0") | |
| async def health() -> dict[str, str]: | |
| return {"status": "ok", "app": get_settings().app_name} | |
| async def audit(request: AuditRequest) -> AuditReport: | |
| try: | |
| graph = AuditGraph() | |
| return await graph.run(str(request.repo_url)) | |
| except ValueError as exc: | |
| raise HTTPException(status_code=400, detail=str(exc)) from exc | |
| except Exception as exc: | |
| raise HTTPException(status_code=500, detail=f"Audit failed: {exc}") from exc | |