from fastapi import FastAPI from pydantic import BaseModel from planner import llama_reason from retrieval import retrieve_context from fastapi.middleware.cors import CORSMiddleware app = FastAPI(title="Aegis Backend API") # ✅ Allow frontend to talk to backend (and allow preflight OPTIONS) app.add_middleware( CORSMiddleware, allow_origins=["*"], # or ["http://localhost:8081"] allow_credentials=True, allow_methods=["*"], # this allows OPTIONS too allow_headers=["*"], ) class ReasonRequest(BaseModel): query: str class RetrieveRequest(BaseModel): query: str @app.get("/") def home(): return {"status": "Aegis backend running"} @app.post("/reason") def reason(request: ReasonRequest): response = llama_reason(request.query) return {"response": response} @app.post("/retrieve") def retrieve(request: RetrieveRequest): context = retrieve_context(request.query) return {"context": context}