#!/bin/bash
# memoryof.ai installer — Mac / Linux

set -e

# ユーザー名を決定
USER_NAME="${MEMORYOFAI_USER:-}"
if [ -z "$USER_NAME" ]; then
  USER_NAME=$(git config user.name 2>/dev/null || true)
fi
if [ -z "$USER_NAME" ]; then
  USER_NAME="${USER:-anonymous}"
fi

# python コマンドを検出
PYTHON=$(command -v python3 2>/dev/null || command -v python 2>/dev/null)
if [ -z "$PYTHON" ]; then
  echo "error: python3 not found. please install Python first."
  exit 1
fi

HOOK_DIR="$HOME/.claude/hooks"
HOOK_FILE="$HOOK_DIR/memoryofai.py"
SETTINGS="$HOME/.claude/settings.json"

mkdir -p "$HOOK_DIR"

# janome をインストール（なければ）
"$PYTHON" -c "import janome" 2>/dev/null || \
  "$PYTHON" -m pip install janome -q --user 2>/dev/null || \
  "$PYTHON" -m pip install janome -q --user --break-system-packages 2>/dev/null || true

# フックスクリプトをダウンロード
curl -s https://memoryof.ai/memoryofai.py -o "$HOOK_FILE"
chmod +x "$HOOK_FILE"

# settings.json に登録
HOOK_CMD="MEMORYOFAI_USER=${USER_NAME} ${PYTHON} ~/.claude/hooks/memoryofai.py"

"$PYTHON" - "$SETTINGS" "$HOOK_CMD" <<'EOF'
import json, sys, os

path = sys.argv[1]
cmd  = sys.argv[2]

data = {}
if os.path.exists(path):
    with open(path, encoding="utf-8") as f:
        try:
            data = json.load(f)
        except Exception:
            pass

hooks = data.setdefault("hooks", {})
stop  = hooks.setdefault("Stop", [])

for entry in stop:
    for h in entry.get("hooks", []):
        if "memoryofai" in h.get("command", "") or "memoryof.ai" in h.get("command", ""):
            print("already installed.")
            sys.exit(0)

stop.append({"matcher": "", "hooks": [{"type": "command", "command": cmd}]})

os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w", encoding="utf-8") as f:
    json.dump(data, f, indent=2)

print("done. each Claude Code response now leaves a line at memoryof.ai")
EOF
