#!/usr/bin/env python3
"""Set OpenClaw agents.defaults.model.primary in ~/.openclaw/openclaw.json.

Usage:
  set_openclaw_primary_model.py <model_id>

Notes:
- Only edits the config file.
- Restart the gateway service separately for the change to take effect.
"""

import json
import os
import sys
from pathlib import Path

CONFIG_PATH = Path(os.path.expanduser("~/.openclaw/openclaw.json"))


def main() -> int:
    if len(sys.argv) != 2:
        print("Usage: set_openclaw_primary_model.py <model_id>", file=sys.stderr)
        return 2

    model_id = sys.argv[1].strip()
    if not model_id:
        print("model_id must be non-empty", file=sys.stderr)
        return 2

    cfg = json.loads(CONFIG_PATH.read_text())
    cfg.setdefault("agents", {}).setdefault("defaults", {}).setdefault("model", {})["primary"] = model_id

    # keep it pretty + stable-ish
    CONFIG_PATH.write_text(json.dumps(cfg, indent=2, sort_keys=False) + "\n")
    print(f"Set primary model to: {model_id}")
    return 0


if __name__ == "__main__":
    raise SystemExit(main())
