Spaces:
Running
Running
| """SoniCoder v2 — Entry point. | |
| gradio.Server (Gradio 6.x) serves index.html from project root | |
| with Gradio's queuing, concurrency, and API infrastructure. | |
| Blog: https://huggingface.co/blog/introducing-gradio-server | |
| """ | |
| from __future__ import annotations | |
| import logging | |
| # Ensure workspace + config dirs exist | |
| from code.config import WORKSPACE_ROOT, CONFIG_DIR | |
| WORKSPACE_ROOT.mkdir(parents=True, exist_ok=True) | |
| CONFIG_DIR.mkdir(parents=True, exist_ok=True) | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", | |
| datefmt="%H:%M:%S", | |
| ) | |
| logger = logging.getLogger(__name__) | |
| def main(): | |
| logger.info("SoniCoder v2 starting...") | |
| # Start loading default model in background | |
| from code.model.loader import start_background_load | |
| start_background_load() | |
| logger.info("Background model loading started") | |
| # Set up MCP servers from config (best-effort) | |
| try: | |
| from code.config import load_settings | |
| from code.mcp import get_mcp_manager | |
| settings = load_settings() | |
| if settings.mcp_servers: | |
| mcp = get_mcp_manager() | |
| mcp.configure(settings.mcp_servers) | |
| results = mcp.connect_all() | |
| for name, error in results.items(): | |
| if error: | |
| logger.warning("MCP server '%s' failed: %s", name, error) | |
| else: | |
| logger.info("MCP server '%s' connected", name) | |
| except Exception as exc: | |
| logger.warning("MCP setup skipped: %s", exc) | |
| # Create the server (gradio.Server — custom HTML + Gradio backend) | |
| from code.server import create_app | |
| app = create_app() | |
| logger.info("Launching...") | |
| app.launch(show_error=True, server_name="0.0.0.0", server_port=7860) | |
| if __name__ == "__main__": | |
| main() | |