import re

with open("/home/crogers2287/omi-backend/main.py") as f:
    content = f.read()

old_lifespan = '''async def lifespan(app: FastAPI):
    # Startup
    global stt_model
    logger.info("Starting Omi Backend...")
    logger.info(f"Loading STT model: {settings.stt_model}")

    # Import here to avoid loading model at import time
    from services.stt_service import STTService

    stt_model = STTService(
        model_size=settings.stt_model,
        device=settings.stt_device,
        compute_type=settings.stt_compute_type,
    )
    await stt_model.initialize()

    logger.info("STT model loaded successfully")
    logger.info("Omi Backend ready")'''

new_lifespan = '''async def lifespan(app: FastAPI):
    # Startup
    global stt_model
    logger.info("Starting Omi Backend with Moonshine ONNX STT...")

    from services.stt_service import load_model, stt_model as _m
    import services.stt_service as _svc
    loop = asyncio.get_event_loop()
    await loop.run_in_executor(None, load_model)
    stt_model = _svc.stt_model

    logger.info("Moonshine STT loaded, Omi Backend ready")'''

content = content.replace(old_lifespan, new_lifespan)

# Add asyncio import if missing
if "import asyncio" not in content:
    content = content.replace("import uvicorn", "import asyncio\nimport uvicorn")

with open("/home/crogers2287/omi-backend/main.py", "w") as f:
    f.write(content)

print("patched main.py")
