#!/bin/bash
set -euo pipefail

# P1-7: PostToolUse 훅 - Write/Edit 후 pyright + ruff 자동 실행
# hooks_enforcement_enabled 플래그로 제어

# 플래그 확인
ENABLED=$(python3 -c "
import sys; sys.path.insert(0, '/home/jay/workspace')
from utils.feature_flags import FeatureFlagLoader
f = FeatureFlagLoader()
print('true' if f.is_enabled('hooks_enforcement_enabled') else 'false')
" 2>/dev/null || echo "false")

if [ "$ENABLED" = "false" ]; then
  exit 0
fi

FILE="${FILE_PATH:-}"
if [ -z "$FILE" ] || [[ "$FILE" != *.py ]]; then
  exit 0  # Python 파일이 아니면 스킵
fi

# circuit breaker 확인
python3 /home/jay/workspace/hooks/circuit_breaker.py check "$FILE" || exit 0

# pyright 실행 (type check)
PYRIGHT_EXIT=0
PYRIGHT_OUTPUT=$(pyright "$FILE" 2>&1) || PYRIGHT_EXIT=$?

# ruff 실행 (style check)
RUFF_EXIT=0
RUFF_OUTPUT=$(ruff check "$FILE" 2>&1) || RUFF_EXIT=$?

# 심각도 분류 및 처리
if [ $PYRIGHT_EXIT -ne 0 ]; then
  echo "[HOOK][CRITICAL] pyright type error in $FILE"
  echo "$PYRIGHT_OUTPUT"
  python3 /home/jay/workspace/hooks/circuit_breaker.py record critical "$FILE" "pyright_type_error" 2>/dev/null || true
  exit 1
fi

if [ $RUFF_EXIT -ne 0 ]; then
  echo "[HOOK][WARNING] ruff style warning in $FILE"
  echo "$RUFF_OUTPUT"
  python3 /home/jay/workspace/hooks/circuit_breaker.py record standard "$FILE" "ruff_style_warning" 2>/dev/null || true
  exit 0
fi

exit 0
