import os import psutil from fastapi import APIRouter, Depends from pydantic import BaseModel from typing import Optional, Dict router = APIRouter() class SettingsUpdate(BaseModel): GOOGLE_CLIENT_ID: Optional[str] = None GOOGLE_CLIENT_SECRET: Optional[str] = None GITHUB_CLIENT_ID: Optional[str] = None GITHUB_CLIENT_SECRET: Optional[str] = None SLACK_CLIENT_ID: Optional[str] = None SLACK_CLIENT_SECRET: Optional[str] = None OPENAI_API_KEY: Optional[str] = None ANTHROPIC_API_KEY: Optional[str] = None BRAVE_SEARCH_KEY: Optional[str] = None SERPAPI_KEY: Optional[str] = None WEBHOOK_SECRET: Optional[str] = None @router.get("") async def get_settings(): return { "data_dir": os.environ.get("DATA_DIR", "/data"), "platform_version": "1.0.0", "integrations_count": 18, "features": { "oauth": True, "api_keys": True, "mcp": True, "webhooks": True, "code_sandbox": True } } @router.post("") async def update_settings(settings: SettingsUpdate): return {"message": "Settings updated (would be stored in environment/storage)"} @router.get("/health") async def health_check(): try: disk = psutil.disk_usage('/') mem = psutil.virtual_memory() return { "status": "healthy", "disk": { "total_gb": round(disk.total / (1024**3), 2), "used_gb": round(disk.used / (1024**3), 2), "percent": disk.percent }, "memory": { "total_gb": round(mem.total / (1024**3), 2), "used_gb": round(mem.used / (1024**3), 2), "percent": mem.percent }, "cpu_percent": psutil.cpu_percent() } except Exception as e: return {"status": "healthy", "note": str(e)}