#!/bin/sh
# agent-browser CLI wrapper
# Tries native binary first, falls back to Node.js

# Resolve symlinks to find real script location
SCRIPT="$0"
while [ -L "$SCRIPT" ]; do
  SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"
  SCRIPT="$(readlink "$SCRIPT")"
  # Handle relative symlinks
  case "$SCRIPT" in
    /*) ;;
    *) SCRIPT="$SCRIPT_DIR/$SCRIPT" ;;
  esac
done
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"

OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)

case "$OS" in
  darwin) OS="darwin" ;;
  linux) OS="linux" ;;
  mingw*|msys*|cygwin*) OS="win32" ;;
esac

case "$ARCH" in
  x86_64|amd64) ARCH="x64" ;;
  aarch64|arm64) ARCH="arm64" ;;
esac

BINARY="$SCRIPT_DIR/agent-browser-${OS}-${ARCH}"

# Try native binary if it exists
if [ -f "$BINARY" ] && [ -x "$BINARY" ]; then
  exec "$BINARY" "$@"
fi

# Fall back to Node.js
exec node "$SCRIPT_DIR/../dist/index.js" "$@"
