/
githubmirror
/
sgr-agent-core
Обзор
Документация
Войти
/
githubmirror
/
sgr-agent-core
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
sgr_agent_core/server/app.py
46 строк
1 KB
Pavel Rykov
#142 Switch to async
11 мар 2026, 19:25
11 мар 2026, 19:25
def1835
Код
Авторство
О чём код?
"""FastAPI application instance creation and configuration.""" import logging from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from sgr_agent_core import AgentFactory, AgentRegistry, ToolRegistry, __version__ from sgr_agent_core.server.endpoints import router from sgr_agent_core.services import StreamingGeneratorRegistry from sgr_agent_core.services.overlayfs_manager import OverlayFSManager logger = logging.getLogger(__name__) @asynccontextmanager async def lifespan(_: FastAPI): for tool in ToolRegistry.list_items(): logger.info(f"Tool registered: {tool.__name__}") for agent in AgentRegistry.list_items(): logger.info(f"Agent registered: {agent.__name__}") for defn in AgentFactory.get_definitions_list(): logger.info(f"Agent definition loaded: {defn}") for gen in StreamingGeneratorRegistry.list_items(): logger.info(f"Streaming generator loaded: {gen.__name__}") # Initialize OverlayFS for RunCommandTool if configured await OverlayFSManager.initialize_from_config() yield # Cleanup OverlayFS on shutdown await OverlayFSManager.cleanup() app = FastAPI(title="SGR Agent Core API", version=__version__, lifespan=lifespan) # Don't use this CORS setting in production! app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=["*"], allow_methods=["*"], allow_headers=["*"], ) app.include_router(router)