""" AmkyawDev Coder Backend - FastAPI Application Entry Point """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from contextlib import asynccontextmanager import sys import os # Add parent directory to path sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from src.api.agents.skill.router import router as skill_router from src.api.agents.longchain.router import router as long_chain_router from src.api.agents.script.router import router as script_router from src.api.agents.chat.router import router as chat_router from src.api.systems.zip_system.router import router as zip_router from src.api.systems.deploy_system.router import router as deploy_router from src.api.systems.memory_system.router import router as memory_router from src.config.settings import settings @asynccontextmanager async def lifespan(app: FastAPI): """Application lifespan events""" print("Starting AmkyawDev Coder Backend...") print(f"Environment: {settings.ENVIRONMENT}") yield print("Shutting down AmkyawDev Coder Backend...") app = FastAPI( title="AmkyawDev Coder Backend", description="AI-Powered Development Platform Backend", version="1.0.0", lifespan=lifespan, ) # CORS Configuration app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include Routers app.include_router(skill_router, prefix="/api/agents/skill", tags=["Skill Agent"]) app.include_router(long_chain_router, prefix="/api/agents/long-chain", tags=["Long Chain Agent"]) app.include_router(script_router, prefix="/api/agents/script", tags=["Script Agent"]) app.include_router(chat_router, prefix="/api/agents/chat", tags=["Chat Agent"]) app.include_router(zip_router, prefix="/api/systems/zip", tags=["Zip System"]) app.include_router(deploy_router, prefix="/api/systems/deploy", tags=["Deploy System"]) app.include_router(memory_router, prefix="/api/systems/memory", tags=["Memory System"]) @app.get("/") async def root(): """Health check endpoint""" return { "status": "healthy", "service": "AmkyawDev Coder Backend", "version": "1.0.0" } @app.get("/api/health") async def health_check(): """Detailed health check""" return { "status": "healthy", "environment": settings.ENVIRONMENT, "groq_configured": bool(settings.GROQ_API_KEY), "hf_configured": bool(settings.HUGGINGFACE_API_KEY), } if __name__ == "__main__": import uvicorn uvicorn.run( "src.app:app", host="0.0.0.0", port=7860, reload=settings.ENVIRONMENT == "development" )