from contextlib import asynccontextmanager from agentscope_runtime.engine import AgentApp from database import init_db, async_engine from modules.auth.router import router as auth_router from modules.org.router import router as org_router from modules.rbac.router import router as rbac_router from modules.wecom.router import router as wecom_router from modules.agent_manager.router import router as agent_manager_router from modules.task.router import router as task_router from modules.monitor.router import router as monitor_router from modules.mcp_registry.router import router as mcp_router from modules.flow_engine.router import router as flow_router from modules.audit.router import router as audit_router from modules.document.router import router as document_router from modules.notification.router import router as notification_router from modules.system.router import router as system_router from modules.rag.router import router as rag_router from middleware.rbac_middleware import rbac_middleware from middleware.rate_limiter import rate_limit_middleware from middleware.cache_manager import cache_manager @asynccontextmanager async def lifespan(app: AgentApp): await init_db() await cache_manager.connect() yield await cache_manager.disconnect() await async_engine.dispose() app = AgentApp( app_name="Enterprise AI Platform", app_description="企业级 AI Agent 平台 - 双RBAC/企微集成/无代码流编排", lifespan=lifespan, docs_url="/docs", redoc_url=None, ) app.middleware("http")(rate_limit_middleware) app.middleware("http")(rbac_middleware) app.include_router(auth_router) app.include_router(org_router) app.include_router(rbac_router) app.include_router(wecom_router) app.include_router(agent_manager_router) app.include_router(task_router) app.include_router(monitor_router) app.include_router(mcp_router) app.include_router(flow_router) app.include_router(audit_router) app.include_router(document_router) app.include_router(notification_router) app.include_router(system_router) app.include_router(rag_router)