CoolFace
Apppublic

NILESH1003/codeguardian-env

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
app.py62 linesDownload Raw Back to server
1from fastapi import FastAPI, HTTPException2from fastapi.middleware.cors import CORSMiddleware3from typing import Optional, Dict, Any4from pydantic import BaseModel5 6from models import CodeObservation, CodeAction, EnvState7from server.environment import CodeGuardianEnvironment8 9app = FastAPI(title="CodeGuardian AI Code Review Environment")10 11app.add_middleware(12    CORSMiddleware,13    allow_origins=["*"],14    allow_methods=["*"],15    allow_headers=["*"],16)17 18env = CodeGuardianEnvironment()19 20class ResetRequest(BaseModel):21    task_id: Optional[str] = None22 23# ✅ Root endpoint24@app.get("/")25def root():26    return {"message": "CodeGuardian API is running"}27 28# ✅ Prevent GET misuse29@app.get("/reset")30def reset_get():31    return {"error": "Use POST /reset"}32 33# ✅ Fixed reset34@app.post("/reset", response_model=CodeObservation)35def reset_env(req: ResetRequest = ResetRequest()):36    return env.reset(req.task_id)37 38# ✅ Step endpoint39@app.post("/step")40def step_env(action: CodeAction) -> Dict[str, Any]:41    if not env.current_task:42        raise HTTPException(status_code=400, detail="Environment not initialized. Call /reset first.")43    return env.step(action)44 45# ✅ State endpoint46@app.get("/state", response_model=EnvState)47def get_state():48    if not env.current_task:49        raise HTTPException(status_code=400, detail="Environment not initialized.")50    return env.state()51 52# ✅ Health53@app.get("/health")54def health():55    return {"status": "ok"}56 57def main():58    import uvicorn59    uvicorn.run("server.app:app", host="0.0.0.0", port=7860)60 61if __name__ == "__main__":62    main()