#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
SRC="$ROOT/skills"
MODE="${1:-claude}"

# cowork: claude.ai / Cowork share a personal skill library with NO upload API —
# package upload-ready zips for manual drag-drop in Settings → Capabilities.
if [ "$MODE" = "cowork" ]; then
  command -v zip >/dev/null || { echo "error: 'zip' not found — install zip and retry"; exit 1; }
  DEST="${TARGET_DIR:-$ROOT/dist/cowork}"
  # only auto-clean the default output dir — never delete a user-supplied TARGET_DIR
  if [ -z "${TARGET_DIR:-}" ]; then rm -rf "$DEST"; fi
  mkdir -p "$DEST"
  count=0
  for d in "$SRC"/c9n "$SRC"/c9n-*; do
    [ -d "$d" ] || continue
    name="$(basename "$d")"
    (cd "$SRC" && zip -qr "$DEST/$name.zip" "$name")
    count=$((count + 1))
  done
  echo "Packaged $count skill zip(s) into $DEST"
  echo "Upload at claude.ai → Settings → Capabilities → Upload skill (shared with Cowork)."
  command -v open >/dev/null && open "$DEST" 2>/dev/null || true
  exit 0
fi

case "$MODE" in
  claude)   DEST="${TARGET_DIR:-$HOME/.claude/skills}" ;;
  codex)    DEST="${TARGET_DIR:-$HOME/.codex/skills}" ;;
  project)  DEST="${TARGET_DIR:-$PWD/.agents/skills}" ;;
  combined) DEST="${TARGET_DIR:-$HOME/.claude/skills}" ;;
  *) echo "Use: claude | codex | project | combined | cowork"; exit 1 ;;
esac
mkdir -p "$DEST"
if [ "$MODE" = "combined" ]; then cp -R "$SRC/c9n" "$DEST/"
else for d in "$SRC"/c9n-*; do [ -d "$d" ] && cp -R "$d" "$DEST/"; done; fi
echo "Installed into $DEST"
