(args: argparse.Namespace)
| 1061 | |
| 1062 | |
| 1063 | def cmd_ensure_server(args: argparse.Namespace) -> int: |
| 1064 | base_url = args.base_url.rstrip("/") |
| 1065 | health = _try_health(base_url, args.request_timeout) |
| 1066 | meta = {"dev_only": True, "canonical": False} |
| 1067 | if health: |
| 1068 | _json_print({"ok": True, "started": False, "base_url": base_url, "health": health, "meta": meta}, compact=args.compact) |
| 1069 | return 0 |
| 1070 | if not args.start: |
| 1071 | message = "Modly API is not running; launch Modly or run ensure-server --start" |
| 1072 | if args.fail_on_unavailable: |
| 1073 | raise ModlyCliError(message, code="API_UNAVAILABLE") |
| 1074 | _json_print({"ok": False, "started": False, "base_url": base_url, "error": message, "code": "API_UNAVAILABLE", "message": message, "meta": meta}, compact=args.compact) |
| 1075 | return 0 |
| 1076 | api_dir, _python, env, cmd, resolved_url = _resolve_serve_config(args) |
| 1077 | public_env = {k: env.get(k, "") for k in ["MODELS_DIR", "WORKSPACE_DIR", "EXTENSIONS_DIR", "SELECTED_MODEL_ID"]} |
| 1078 | if args.print_command: |
| 1079 | _json_print({"ok": True, "started": False, "would_start": True, "base_url": resolved_url, "cmd": cmd, "cwd": str(api_dir), "env": public_env, "meta": meta}, compact=args.compact) |
| 1080 | return 0 |
| 1081 | proc = _start_backend(cmd, api_dir=api_dir, env=env, detach=args.detach) |
| 1082 | _json_print({"ok": True, "started": True, "pid": proc.pid, "base_url": resolved_url, "cmd": cmd, "cwd": str(api_dir), "env": public_env, "meta": meta}, compact=args.compact) |
| 1083 | if not args.detach: |
| 1084 | return int(proc.wait()) |
| 1085 | return 0 |
| 1086 | |
| 1087 | |
| 1088 | def cmd_capability_list(args: argparse.Namespace) -> int: |
nothing calls this directly
no test coverage detected