from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware from app.core import config from app.api import materials, videos, publish, login_helper settings = config.settings app = FastAPI(title="ViGent TalkingHead Agent") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Create dirs settings.UPLOAD_DIR.mkdir(parents=True, exist_ok=True) settings.OUTPUT_DIR.mkdir(parents=True, exist_ok=True) (settings.UPLOAD_DIR / "materials").mkdir(exist_ok=True) app.mount("/outputs", StaticFiles(directory=str(settings.OUTPUT_DIR)), name="outputs") app.include_router(materials.router, prefix="/api/materials", tags=["Materials"]) app.include_router(videos.router, prefix="/api/videos", tags=["Videos"]) app.include_router(publish.router, prefix="/api/publish", tags=["Publish"]) app.include_router(login_helper.router, prefix="/api", tags=["LoginHelper"]) @app.get("/health") def health(): return {"status": "ok"}