from __future__ import annotations import os import sys from hermes_cli.hf_space_update import is_hf_space_runtime, run_update_cli DEFAULT_UPSTREAM_BIN = "/opt/hermes/.venv/bin/hermes-upstream" def dispatch_or_exec(argv=None, env=None, execv=os.execv, upstream_bin: str | None = None): env = env or os.environ argv = list(sys.argv[1:] if argv is None else argv) upstream_bin = upstream_bin or env.get("HERMES_UPSTREAM_BIN", DEFAULT_UPSTREAM_BIN) if argv and argv[0] == "update" and is_hf_space_runtime(env): return run_update_cli(argv[1:]) return execv(upstream_bin, [upstream_bin, *argv]) def main() -> int: result = dispatch_or_exec() if result is None: return 0 return int(result) if __name__ == "__main__": raise SystemExit(main())