from contextlib import asynccontextmanager from typing import Annotated from fastapi import FastAPI, Depends from .apirouters import agents from .modules import database @asynccontextmanager async def lifespan(app: FastAPI): 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(agents.router) @app.get("/{callsign}/tasks") async def get_tasks(callsign: str, token: Annotated[str, Depends(agents.oauth2_scheme)]): return f'{{"callsign": "{callsign}", "token": "{token}"}}'