#!/bin/sh
# Crustacean Automation — one-shot installer
# curl -fsSL https://x402.wtf/automation/install.sh | bash
set -eu

NPM_PACKAGE="${CLAWD_AUTOMATION_PACKAGE:-clawd-automaton}"
CLAWD_HOME="${CLAWD_HOME:-$HOME/.clawd-cloud/automation}"
REPO_URL="${CLAWD_AUTOMATION_REPO:-https://github.com/x402agent/solana-clawd.git}"
REPO_REF="${CLAWD_AUTOMATION_REF:-newnew}"
REPO_SUBDIR="${CLAWD_AUTOMATION_SUBDIR:-automaton-main}"
PORTAL_URL="${CLAWD_AUTOMATION_PORTAL:-https://x402.wtf/automation}"
AGENTS_CATALOG_URL="${CLAWD_AGENTS_CATALOG_URL:-https://x402.wtf/api/agents/catalog}"
AGENTS_REGISTRY_URL="${CLAWD_AGENTS_REGISTRY_URL:-https://x402.wtf/api/agents/registry}"
AGENTS_API_URL="${CLAWD_AGENTS_API_URL:-https://x402.wtf/api/agents}"
AGENTS_REPO_URL="${CLAWD_AGENTS_REPO_URL:-https://github.com/x402agent/solana-clawd/tree/newnew/agents}"

need_cmd() {
  command -v "$1" >/dev/null 2>&1 || {
    echo "Missing required command: $1" >&2
    exit 1
  }
}

need_cmd node
need_cmd npm
need_cmd curl

mkdir -p "$CLAWD_HOME"

echo "Installing Crustacean Automation runtime..."
if npm view "$NPM_PACKAGE" version >/dev/null 2>&1; then
  npm install -g "$NPM_PACKAGE@latest"
else
  need_cmd git
  TMP_DIR="$(mktemp -d)"
  trap 'rm -rf "$TMP_DIR"' EXIT INT TERM
  echo "Building from source..."
  git clone --depth 1 --branch "$REPO_REF" "$REPO_URL" "$TMP_DIR/solana-clawd"
  if [ ! -d "$TMP_DIR/solana-clawd/$REPO_SUBDIR" ]; then
    echo "Missing automation source directory: $REPO_SUBDIR" >&2
    exit 1
  fi
  cd "$TMP_DIR/solana-clawd/$REPO_SUBDIR"
  npm install
  npm run build
  npm install -g .
fi

cat > "$CLAWD_HOME/env" <<ENV
CLAWD_AUTOMATION_PORTAL=$PORTAL_URL
CLAWD_AUTOMATION_REPO=$REPO_URL
CLAWD_AUTOMATION_PACKAGE=$NPM_PACKAGE
CLAWD_AGENTS_API=$AGENTS_API_URL
CLAWD_AGENTS_CATALOG=$AGENTS_CATALOG_URL
CLAWD_AGENTS_REGISTRY=$AGENTS_REGISTRY_URL
CLAWD_AGENTS_REPO=$AGENTS_REPO_URL
ENV

echo ""
echo "Agents catalog: $AGENTS_CATALOG_URL"
echo "Agents registry: $AGENTS_REGISTRY_URL"
echo "Portal: $PORTAL_URL"
echo ""

if command -v open >/dev/null 2>&1; then
  open "$PORTAL_URL" >/dev/null 2>&1 || true
elif command -v xdg-open >/dev/null 2>&1; then
  xdg-open "$PORTAL_URL" >/dev/null 2>&1 || true
fi

echo "CLAWD Automaton installed. Next steps:"
echo "  automaton --setup    # interactive setup wizard"
echo "  automaton --run      # start the agent loop"
echo "  automaton --status   # check status"
echo ""
echo "  (also available as: clawd-automaton)"
echo "  export SOLANA_CLAWD_HOME=/path/to/solana-clawd"
echo ""
echo "Source: $REPO_URL (branch: $REPO_REF)"
echo "Run 'automaton --setup' to configure your automaton."
