#!/bin/bash
# Rivet approval functions for Hybrid Protocol

REPO_PATH="/root/rateright-growth"
CC_DIR="$REPO_PATH/.claude"

rivet_approve_task() {
  local task_id="$1"
  local feedback="${2:-Looks good. Push it.}"
  
  cd "$REPO_PATH"
  git pull origin main 2>/dev/null
  
  # Add approval to INBOX.md
  cat >> "$CC_DIR/INBOX.md" << APPROVAL

## APPROVAL: $task_id
Decision: ✅ APPROVED
Feedback: $feedback
Approved at: $(date)
Next: CC should push to main and mark task DONE.
APPROVAL
  
  git add "$CC_DIR/INBOX.md"
  git commit -m "Rivet: Approved task $task_id" 2>/dev/null || true
  git push origin main 2>/dev/null || true
  
  echo "Approved task $task_id"
}

rivet_reject_task() {
  local task_id="$1"
  local feedback="$2"
  
  cd "$REPO_PATH"
  git pull origin main 2>/dev/null
  
  cat >> "$CC_DIR/INBOX.md" << REJECTION

## APPROVAL: $task_id
Decision: 🔄 REVISE
Feedback: $feedback
Rejected at: $(date)
Next: CC should revise and resubmit.
REJECTION
  
  git add "$CC_DIR/INBOX.md"
  git commit -m "Rivet: Revision needed for task $task_id" 2>/dev/null || true
  git push origin main 2>/dev/null || true
  
  echo "Requested revision for task $task_id"
}

rivet_assign_task() {
  local task_type="$1"
  local description="$2"
  local priority="${3:-P2}"
  local task_id="TASK-$(date '+%Y%m%d-%H%M%S')"
  
  cd "$REPO_PATH"
  git pull origin main 2>/dev/null
  
  # Add task to PENDING
  sed -i "/^## PENDING$/a\\
### Task: $task_id\\
**Type**: $task_type\\
**Priority**: $priority\\
**Assigned**: $(date)\\
**Description**: $description\\
**Status**: pending" "$CC_DIR/INBOX.md"
  
  git add "$CC_DIR/INBOX.md"
  git commit -m "Rivet: Assigned task $task_id" 2>/dev/null || true
  git push origin main 2>/dev/null || true
  
  echo "Assigned task $task_id to CC"
  echo "Task ID: $task_id"
}

# Check CC status
rivet_cc_status() {
  if [ -f "$CC_DIR/STATUS.md" ]; then
    echo "CC Status:"
    grep -E "Current Status|Last Check|Queue|Health" "$CC_DIR/STATUS.md"
  else
    echo "CC status unknown"
  fi
}

# Check pending tasks
rivet_pending_tasks() {
  if [ -f "$CC_DIR/INBOX.md" ]; then
    echo "Pending tasks:"
    sed -n '/^## PENDING$/,/^##/p' "$CC_DIR/INBOX.md" | grep "^### Task:" | wc -l
  fi
}
