#!/bin/bash
# task-monitor-simple.sh
# Simple Task monitoring script

set -e

echo "🔍 TASK MONITOR SIMPLE"
echo "======================"
echo "Time: $(date)"
echo ""

PROJECT_ROOT="/home/ccuser/rateright-growth"
INBOX="$PROJECT_ROOT/.claude/INBOX.md"
OUTBOX="$PROJECT_ROOT/.claude/OUTBOX.md"
STATE_DIR="$PROJECT_ROOT/.task-monitor"
mkdir -p "$STATE_DIR"

# Get current timestamps
if [ ! -f "$OUTBOX" ]; then
    echo "❌ ERROR: OUTBOX.md not found"
    exit 1
fi

if [ ! -f "$INBOX" ]; then
    echo "❌ ERROR: INBOX.md not found"
    exit 1
fi

OUTBOX_MTIME=$(stat -c %Y "$OUTBOX")
CURRENT_TIME=$(date +%s)
MINUTES_SINCE_UPDATE=$(( (CURRENT_TIME - OUTBOX_MTIME) / 60 ))

# Check pending tasks
PENDING_TASKS=$(grep -c "### Task:" "$INBOX" 2>/dev/null || echo "0")
LAST_TASK=$(grep "### Task:" "$INBOX" | tail -1 | sed 's/### Task: //' 2>/dev/null || echo "None")

echo "📊 CURRENT STATUS:"
echo "  Minutes since Task's last update: $MINUTES_SINCE_UPDATE"
echo "  Pending tasks in INBOX: $PENDING_TASKS"
echo "  Last task: $LAST_TASK"
echo ""

# Determine status
STATUS="active"
if [ "$PENDING_TASKS" -eq "0" ]; then
    STATUS="idle"
    echo "✅ Task is idle - no pending tasks"
elif [ "$MINUTES_SINCE_UPDATE" -lt 30 ]; then
    STATUS="active"
    echo "✅ Task is active - working normally"
elif [ "$MINUTES_SINCE_UPDATE" -lt 60 ]; then
    STATUS="warning"
    echo "⚠️  WARNING: Task may be slowing down ($MINUTES_SINCE_UPDATE minutes)"
elif [ "$MINUTES_SINCE_UPDATE" -lt 120 ]; then
    STATUS="critical"
    echo "🚨 CRITICAL: Task may be stuck ($MINUTES_SINCE_UPDATE minutes)"
else
    STATUS="stalled"
    echo "🔴 STALLED: Task appears stalled ($MINUTES_SINCE_UPDATE minutes)"
fi

# Check if we should send a reminder
if [ "$PENDING_TASKS" -gt "0" ] && [ "$STATUS" != "active" ] && [ "$STATUS" != "idle" ]; then
    echo ""
    echo "💡 REMINDER MAY BE NEEDED"
    
    # Check last reminder time
    LAST_REMINDER_FILE="$STATE_DIR/last-reminder.txt"
    if [ -f "$LAST_REMINDER_FILE" ]; then
        LAST_REMINDER_TIME=$(cat "$LAST_REMINDER_FILE")
        MINUTES_SINCE_LAST_REMINDER=$(( (CURRENT_TIME - LAST_REMINDER_TIME) / 60 ))
        echo "  Last reminder sent: $MINUTES_SINCE_LAST_REMINDER minutes ago"
        
        if [ "$MINUTES_SINCE_LAST_REMINDER" -gt 5 ]; then
            echo "  ✅ Can send reminder (more than 5 minutes since last)"
            SEND_REMINDER=true
        else
            echo "  ⏸️  Skipping reminder (sent recently)"
            SEND_REMINDER=false
        fi
    else
        echo "  ✅ Can send reminder (never sent before)"
        SEND_REMINDER=true
    fi
    
    # Send reminder if needed
    if [ "$SEND_REMINDER" = true ]; then
        echo ""
        echo "📝 SENDING REMINDER TO TASK..."
        
        # Create reminder message
        REMINDER_ID="REMINDER-$(date +%Y%m%d-%H%M%S)"
        
        case "$STATUS" in
            "warning")
                REMINDER_MSG="## $REMINDER_ID - Gentle Reminder\n**Task:** $LAST_TASK\n**Time since last update:** $MINUTES_SINCE_UPDATE minutes\n**Message:** Just checking in - are you making progress on this?\n**No pressure, just keeping track!**\n\n"
                ;;
            "critical")
                REMINDER_MSG="## $REMINDER_ID - Urgent Check-in\n**Task:** $LAST_TASK\n**Time stalled:** $MINUTES_SINCE_UPDATE minutes\n**Message:** This seems to be taking longer than expected. Are you stuck on something? Need clarification?\n\n"
                ;;
            "stalled")
                REMINDER_MSG="## $REMINDER_ID - Escalation: Task May Be Blocked\n**Task:** $LAST_TASK\n**Time blocked:** $MINUTES_SINCE_UPDATE minutes\n**Message:** This appears to be blocked. Should we reassign or provide additional resources?\n\n"
                ;;
        esac
        
        # Append to INBOX
        echo -e "\n$REMINDER_MSG" >> "$INBOX"
        
        # Record reminder time
        echo "$CURRENT_TIME" > "$LAST_REMINDER_FILE"
        
        echo "✅ Reminder sent to Task!"
        echo "  Type: $STATUS"
        echo "  Task: $LAST_TASK"
        echo "  Added to: INBOX.md"
    fi
fi

echo ""
echo "⏰ NEXT CHECK: $(date -d '+5 minutes' '+%H:%M')"
echo "✅ Task monitoring complete!"