from contextlib import asynccontextmanager from typing import Annotated from fastapi import FastAPI, Depends import apirouters.agents import modules.database @asynccontextmanager async def lifespan(app: FastAPI): modules.database.cursor.execute( "CREATE TABLE IF NOT EXISTS agents(primary_key INTEGER PRIMARY KEY, callsign TEXT NOT NULL UNIQUE, token_hash TEXT NOT NULL)") yield app = FastAPI(lifespan=lifespan) app.include_router(apirouters.agents.router) @app.get("/{callsign}/tasks") async def get_tasks(callsign: str, token: Annotated[str, Depends(apirouters.agents.oauth2_scheme)]): return f'{{"callsign": "{callsign}", "token": "{token}"}}'