#!/bin/bash
# Ralph Wiggum Loop for Claude Code + AUTO TMUX WRAPPER
# Tự động nhốt vào tmux chạy nền + Tự động retry khi có lỗi vòng lặp

PLAN_FILE="/root/app/cuccu_legal/plan/AI_DEVELOPMENT_PLAN.md"

# 1. Bẫy Tmux Tự động: Nếu Terminal không nằm trong tmux, nó sẽ tự nhét nó vào tmux!
if [ -z "$TMUX" ]; then
  SESSION_NAME="cucu_legal_agent"
  echo "🛡️ Phát hiện bro đang gõ lệnh ở ngoài! Đang tự động tạo lớp khiên tmux tên là '$SESSION_NAME'..."
  
  # Tránh lỗi kẹt file flag Done
  rm -f /root/app/cuccu_legal/plan/DONE.flag
  
  # Bật tmux ngầm (detached) và gọi chính cái file bash này chạy tiếp
  tmux new-session -d -s $SESSION_NAME "$0"
  
  echo "✅ XONG BÉNG! Con AI đã được thả xích cày ngầm."
  echo "👉 Đóng VS Code thoải mái, sập nguồn wifi thoải mái..."
  echo "👉 Chiều mai muốn xem nó code tới đâu thì gõ lại lệnh: tmux attach -t $SESSION_NAME"
  exit 0
fi

# ==================== PHẦN LÕI CỦA LOOP (CHẠY BÊN TRONG TMUX) ====================
echo "🚀 Bắt đầu khơi chạy Agentic Loop cho dự án CuCu Legal..."
echo "👉 Sử dụng file kế hoạch: $PLAN_FILE"

while true; do
  echo "---------------------------------------------------------"
  echo "🤖 Đang gọi Claude Code (Tự động pass permission)..."
  
  # Prompt cốt lõi siêu bảo mật
  claude --permission-mode auto -p "Đọc file $PLAN_FILE. Tìm task đầu tiên đang là [ ] và thực thi việc code/fix. Hoàn thành thì chạy skill /eval-quality, nếu PASS thì đổi thành [x]. ⛔ CẢNH BÁO CAO ĐỘ: TUYỆT ĐỐI KHÔNG ĐƯỢC XOÁ HOẶC THAY ĐỔI CẤU TRÚC DB (DROP/DELETE/ALTER). NẾU CẦN THÊM BẢNG PHẢI DÙNG FOLDER /migrations. Nếu TẤT CẢ đã là [x], hãy tạo một file tên là '/root/app/cuccu_legal/plan/DONE.flag' để báo hiệu. Tuyệt đối không được dừng lại giữa chừng nếu chưa xong 1 task." 

  if [ -f "/root/app/cuccu_legal/plan/DONE.flag" ]; then
    echo "🎉 BINGO! Toàn bộ kế hoạch trong AI_DEVELOPMENT_PLAN.md đã hoàn tất!"
    rm -f /root/app/cuccu_legal/plan/DONE.flag
    break
  fi

  echo "⏳ Claude Code vừa bị ngắt. Sẽ tự động RETRY tiếp tục công việc sau 5 giây..."
  sleep 5
done
