#!/usr/bin/env bash
# Claude Code PreToolUse hook for Bash.
# Reads the tool input JSON from stdin; if the command is a git commit
# and fable-mcp files (other than pyproject.toml) are staged, bumps
# the fable-mcp patch version before the commit proceeds.
#
# Exits 0 always so it never blocks the commit.

set -euo pipefail

REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

input=$(cat)
command=$(echo "$input" | python3 -c "
import sys, json
data = json.load(sys.stdin)
# Claude Code sends {tool_input: {command: ...}}
ti = data.get('tool_input', data)
print(ti.get('command', ''))
" 2>/dev/null || echo "")

# Only act on git commit commands
if ! echo "$command" | grep -qE "git commit"; then
  exit 0
fi

cd "$REPO_ROOT"

# Check if fable-mcp files other than pyproject.toml are staged
fable_staged=$(git diff --cached --name-only 2>/dev/null \
  | grep "^fable-mcp/" \
  | grep -v "^fable-mcp/pyproject.toml$" \
  || true)

if [ -n "$fable_staged" ]; then
  bash "$REPO_ROOT/scripts/bump_fable_mcp_version.sh"
fi

exit 0
