#!/usr/bin/env bash
# AgentMarket Agent Kit installer (macOS / Linux)
# Installs an OpenAPI-based agent book for Claude Code / Cursor-compatible agents.
set -euo pipefail

BASE_URL="${AGENTMARKET_URL:-https://agents-marketplace.onesolo.app}"
SKILL_NAME="agentmarket-openapi"
ZIP_URL="${BASE_URL}/api/agent-kit"
TMP_DIR="$(mktemp -d)"
cleanup() { rm -rf "$TMP_DIR"; }
trap cleanup EXIT

echo "==> AgentMarket Agent Kit"
echo "    Base: $BASE_URL"

if command -v curl >/dev/null 2>&1; then
  curl -fsSL "$ZIP_URL" -o "$TMP_DIR/kit.zip"
elif command -v wget >/dev/null 2>&1; then
  wget -qO "$TMP_DIR/kit.zip" "$ZIP_URL"
else
  echo "Need curl or wget" >&2
  exit 1
fi

if command -v unzip >/dev/null 2>&1; then
  unzip -qo "$TMP_DIR/kit.zip" -d "$TMP_DIR/out"
else
  # Python is commonly available when unzip is missing
  python3 - "$TMP_DIR/kit.zip" "$TMP_DIR/out" <<'PY'
import sys, zipfile, pathlib
src, dst = sys.argv[1], pathlib.Path(sys.argv[2])
dst.mkdir(parents=True, exist_ok=True)
with zipfile.ZipFile(src) as z:
    z.extractall(dst)
PY
fi

SRC="$TMP_DIR/out/$SKILL_NAME"
if [[ ! -f "$SRC/SKILL.md" ]]; then
  echo "Invalid kit: SKILL.md missing" >&2
  exit 1
fi

install_into() {
  local dest="$1"
  mkdir -p "$(dirname "$dest")"
  rm -rf "$dest"
  cp -R "$SRC" "$dest"
  echo "    Installed: $dest"
}

# Claude Code personal skills
install_into "${HOME}/.claude/skills/${SKILL_NAME}"

# Cursor-compatible personal skills (best-effort)
install_into "${HOME}/.cursor/skills/${SKILL_NAME}"

echo "==> Done. Restart your agent session to load: ${SKILL_NAME}"
echo "    OpenAPI: ${BASE_URL}/api/openapi?format=yaml"
