#!/bin/sh
set -eu

BASE_URL="${SKILLS_LOVE_BASE_URL:-https://skills.love}"
DEST_ROOT="${CODEX_HOME:-$HOME/.codex}/skills"

SKILLS="ceo-agent researcher-agent planner-agent marketer-agent coder-agent seo-agent taste-agent qa-agent reviewer-agent duffer-agent"

FILES='
ceo-agent/SKILL.md
ceo-agent/agents/openai.yaml
ceo-agent/references/handoff.md
ceo-agent/references/orchestration.md
researcher-agent/SKILL.md
researcher-agent/agents/openai.yaml
researcher-agent/references/research-brief.md
planner-agent/SKILL.md
planner-agent/agents/openai.yaml
planner-agent/references/task-slicer.md
marketer-agent/SKILL.md
marketer-agent/agents/openai.yaml
marketer-agent/references/copy-toolkit.md
coder-agent/SKILL.md
coder-agent/agents/openai.yaml
coder-agent/references/build-checklist.md
seo-agent/SKILL.md
seo-agent/agents/openai.yaml
seo-agent/references/seo-checklist.md
taste-agent/SKILL.md
taste-agent/agents/openai.yaml
taste-agent/references/taste-rubric.md
qa-agent/SKILL.md
qa-agent/agents/openai.yaml
qa-agent/references/qa-checklist.md
reviewer-agent/SKILL.md
reviewer-agent/agents/openai.yaml
reviewer-agent/references/review-rubric.md
duffer-agent/SKILL.md
duffer-agent/agents/openai.yaml
duffer-agent/references/agent-scorecard.md
'

fetch() {
  url="$1"
  out="$2"
  if command -v curl >/dev/null 2>&1; then
    curl -fsSL "$url" -o "$out"
  elif command -v wget >/dev/null 2>&1; then
    wget -q "$url" -O "$out"
  else
    echo "Need curl or wget." >&2
    exit 1
  fi
}

want_skill() {
  skill="$1"
  if [ "$#" -eq 1 ] && [ "$skill" = "--all" ]; then
    return 0
  fi
  if [ "$REQUESTED" = "--all" ]; then
    return 0
  fi
  for requested in $REQUESTED; do
    [ "$requested" = "$skill" ] && return 0
  done
  return 1
}

REQUESTED="${*:-"--all"}"

for requested in $REQUESTED; do
  [ "$requested" = "--all" ] && continue
  found=false
  for skill in $SKILLS; do
    if [ "$requested" = "$skill" ]; then
      found=true
      break
    fi
  done
  if [ "$found" = false ]; then
    echo "Unknown skill: $requested" >&2
    echo "Available: $SKILLS" >&2
    exit 1
  fi
done

for file in $FILES; do
  skill="${file%%/*}"
  if want_skill "$skill"; then
    dest="$DEST_ROOT/$file"
    mkdir -p "$(dirname "$dest")"
    fetch "$BASE_URL/skills/$file" "$dest"
    echo "installed $file"
  fi
done

echo "Done. Installed into $DEST_ROOT"
