#!/usr/bin/env python3
"""
albert-test — interactive TUI for albert. (chat, /bench, /p1-/p5, /export)

  albert-test            # launch TUI with latest checkpoint
  albert-test --rebuild  # force rebuild moe-test before launching
"""

import os, sys, subprocess

HERE   = os.path.dirname(os.path.abspath(__file__))
BINARY = os.path.join(HERE, "target", "release", "moe-test")

def build():
    print("[albert-test] building moe-test ...")
    r = subprocess.run(
        ["cargo", "build", "--release", "-p", "moe-test"],
        cwd=HERE,
    )
    if r.returncode != 0:
        print("[albert-test] build failed")
        sys.exit(r.returncode)
    print("[albert-test] build OK")

force_rebuild = "--rebuild" in sys.argv
if force_rebuild or not os.path.exists(BINARY):
    build()

args = [a for a in sys.argv[1:] if a != "--rebuild"]
os.chdir(HERE)
ret = subprocess.run([BINARY] + args).returncode

if "--bench" in args and ret == 0:
    translator = os.path.join(HERE, "bench_translate.py")
    if os.path.exists(translator):
        print()
        subprocess.run([sys.executable, translator])

sys.exit(ret)
