#!/bin/sh
# Phasegate CLI entry point
# tsx を使って scripts/harness/main.ts を実行するラッパー

# このスクリプトの実体ファイルの場所を解決する（シンボリックリンク対応）
SCRIPT_PATH="$(realpath "$0" 2>/dev/null || readlink -f "$0" 2>/dev/null || echo "$0")"
PACKAGE_DIR="$(cd "$(dirname "$SCRIPT_PATH")/.." && pwd)"
MAIN_TS="$PACKAGE_DIR/scripts/harness/main.ts"

# tsx を探す。npm/npx の一時インストールでは dependency bin が PATH や ../.bin に
# 出ないことがあるため、tsx loader を直接 node --import できる経路も見る。
if [ -f "$PACKAGE_DIR/node_modules/tsx/dist/loader.mjs" ]; then
  exec node --import "$PACKAGE_DIR/node_modules/tsx/dist/loader.mjs" "$MAIN_TS" "$@"
elif [ -f "$PACKAGE_DIR/../tsx/dist/loader.mjs" ]; then
  exec node --import "$PACKAGE_DIR/../tsx/dist/loader.mjs" "$MAIN_TS" "$@"
elif command -v tsx >/dev/null 2>&1; then
  exec tsx "$MAIN_TS" "$@"
elif [ -f "$PACKAGE_DIR/node_modules/.bin/tsx" ]; then
  exec "$PACKAGE_DIR/node_modules/.bin/tsx" "$MAIN_TS" "$@"
elif [ -f "$PACKAGE_DIR/../.bin/tsx" ]; then
  exec "$PACKAGE_DIR/../.bin/tsx" "$MAIN_TS" "$@"
else
  echo "Error: tsx not found. Run: npm install" >&2
  exit 1
fi
