File size: 1,830 Bytes
24ceec5
 
e3e7994
 
24ceec5
e3e7994
ccb935d
 
 
 
 
 
e3e7994
 
 
24ceec5
 
ccb935d
24ceec5
 
 
 
 
ccb935d
 
 
24ceec5
 
 
e3e7994
 
 
 
 
 
 
f76a56f
e3e7994
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
963e30d
24ceec5
e3e7994
 
24ceec5
 
 
e3e7994
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
"""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()