from __future__ import annotations import glob import os import subprocess import sys from pathlib import Path BUCKET_MOUNT = Path(os.environ.get("FAST_AGENT_BUCKET_MOUNT", "/data")) CARD_DIR = BUCKET_MOUNT / "agent-cards" def latest_wheel() -> str: wheels = sorted( glob.glob(str(BUCKET_MOUNT / "wheels" / "fast_agent_mcp-*.whl")), key=os.path.getmtime, reverse=True, ) if not wheels: raise RuntimeError(f"No fast-agent-mcp wheel found under {BUCKET_MOUNT / 'wheels'}") return wheels[0] def main() -> None: wheel = latest_wheel() subprocess.check_call( [sys.executable, "-m", "pip", "install", "--no-deps", "--force-reinstall", wheel] ) os.environ.setdefault("FAST_AGENT_SERVE_OAUTH", "huggingface") os.environ.setdefault("FAST_AGENT_OAUTH_SCOPES", "access") os.environ.setdefault("PYTHONUNBUFFERED", "1") cmd = [ sys.executable, "-m", "fast_agent.cli.__main__", "serve", "a2a", "--name", os.environ.get("FAST_AGENT_A2A_NAME", "a2a-demo"), "--host", "0.0.0.0", "--port", os.environ.get("PORT", "7860"), "--instance-scope", os.environ.get("FAST_AGENT_A2A_INSTANCE_SCOPE", "connection"), "--agent-cards", str(CARD_DIR), "--model", os.environ.get("FAST_AGENT_MODEL", "kimi"), ] os.execv(sys.executable, cmd) if __name__ == "__main__": main()