#!/usr/bin/env bash
# hermes-worker-off.command
# Double-click to stop the Hermes Worker.
# Unloads the launchd agent and kills any running worker process.

set -e

PLIST_DST="$HOME/Library/LaunchAgents/com.hermes.worker.plist"

echo "=== Hermes Worker — OFF ==="
echo ""

# 1. Unload launchd agent
if [ -f "$PLIST_DST" ]; then
  echo "1. Unloading launchd agent..."
  launchctl unload "$PLIST_DST" 2>/dev/null && echo "   Agent unloaded ✓" || echo "   Agent was not loaded"
  rm -f "$PLIST_DST"
  echo "   Plist removed ✓"
else
  echo "1. No launchd agent found"
fi

# 2. Kill any running worker processes
echo "2. Stopping worker processes..."
PIDS=$(pgrep -f "hermes-worker.js" 2>/dev/null || true)
if [ -n "$PIDS" ]; then
  echo "$PIDS" | while read pid; do
    kill "$pid" 2>/dev/null && echo "   Killed PID $pid" || true
  done
  echo "   Worker processes stopped ✓"
else
  echo "   No worker processes running"
fi

# 3. Kill watchdog
WATCHDOG_PID=$(pgrep -f "hermes-worker-watchdog" 2>/dev/null || true)
if [ -n "$WATCHDOG_PID" ]; then
  echo "$WATCHDOG_PID" | while read pid; do
    kill "$pid" 2>/dev/null || true
  done
  echo "3. Watchdog stopped ✓"
fi

echo ""
echo "Worker is stopped. It will NOT auto-start on login."
echo "Double-click hermes-worker-on.command to start it again."
echo ""
read -p "Press Enter to close this window..."
