#!/usr/bin/env bash
# Generic runner for skill scripts
# Searches personal superpowers first, then core plugin
#
# Usage: scripts/skill-run <skill-relative-path> [args...]
# Example: scripts/skill-run skills/collaboration/remembering-conversations/tool/search-conversations "query"

set -euo pipefail

if [[ $# -eq 0 ]]; then
    cat <<'EOF'
Usage: scripts/skill-run <skill-relative-path> [args...]

Runs scripts from skills, checking personal superpowers first, then core.

Examples:
  scripts/skill-run skills/collaboration/remembering-conversations/tool/search-conversations "query"
  scripts/skill-run skills/collaboration/remembering-conversations/tool/index-conversations --cleanup

The script will be found at:
  1. ~/.config/superpowers/<skill-relative-path> (personal, if exists)
  2. ${CLAUDE_PLUGIN_ROOT}/<skill-relative-path> (core plugin)
EOF
    exit 1
fi

# Get the script path to run
SCRIPT_PATH="$1"
shift  # Remove script path from args, leaving remaining args

# Determine directories
PERSONAL_SUPERPOWERS_DIR="${PERSONAL_SUPERPOWERS_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/superpowers}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"

# Try personal superpowers first
PERSONAL_SCRIPT="${PERSONAL_SUPERPOWERS_DIR}/${SCRIPT_PATH}"
if [[ -x "$PERSONAL_SCRIPT" ]]; then
    exec "$PERSONAL_SCRIPT" "$@"
fi

# Fall back to core plugin
CORE_SCRIPT="${PLUGIN_ROOT}/${SCRIPT_PATH}"
if [[ -x "$CORE_SCRIPT" ]]; then
    exec "$CORE_SCRIPT" "$@"
fi

# Not found
echo "Error: Script not found: $SCRIPT_PATH" >&2
echo "" >&2
echo "Searched:" >&2
echo "  $PERSONAL_SCRIPT (personal)" >&2
echo "  $CORE_SCRIPT (core)" >&2
exit 1
