from __future__ import annotations from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api import apps, health, services, tasks from app.config import settings from app.storage.database import initialize_database @asynccontextmanager async def lifespan(app: FastAPI): initialize_database() yield app = FastAPI( title="Local Installer Agent", version=settings.agent_version, lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=settings.allowed_origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(health.router) app.include_router(apps.router) app.include_router(tasks.router) app.include_router(services.router)