""" Atomizer Dashboard - FastAPI Backend Real-time optimization monitoring and control """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse from pathlib import Path import sys # Add parent directory to path to import optimization_engine sys.path.append(str(Path(__file__).parent.parent.parent.parent)) from api.routes import optimization, claude, terminal from api.websocket import optimization_stream # Create FastAPI app app = FastAPI( title="Atomizer Dashboard API", description="Real-time optimization monitoring and control", version="1.0.0" ) # Configure CORS for local development app.add_middleware( CORSMiddleware, allow_origins=["*"], # Allow all origins for local development allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include routers app.include_router(optimization.router, prefix="/api/optimization", tags=["optimization"]) app.include_router(optimization_stream.router, prefix="/api/ws", tags=["websocket"]) app.include_router(claude.router, prefix="/api/claude", tags=["claude"]) app.include_router(terminal.router, prefix="/api/terminal", tags=["terminal"]) @app.get("/") async def root(): """Serve the enhanced dashboard HTML""" dashboard_path = Path(__file__).parent.parent.parent / "dashboard-enhanced.html" return FileResponse(dashboard_path) @app.get("/health") async def health_check(): """Health check endpoint""" return {"status": "healthy"} if __name__ == "__main__": import uvicorn uvicorn.run( "main:app", host="0.0.0.0", port=8000, reload=True, log_level="info" )