#!/bin/bash
set -euo pipefail

LOG_DIR="$(dirname "$0")"
QUERY_TYPE="${1:-all}"
FILTER="${2:-}"

case "$QUERY_TYPE" in
    containers)
        cat "$LOG_DIR/containers"/*.stdout.log 2>/dev/null | grep -E "$FILTER" || echo "(no logs)"
        ;;
    errors)
        cat "$LOG_DIR/containers"/*.stderr.log 2>/dev/null | grep -E "$FILTER" || echo "(no errors)"
        ;;
    exits)
        cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.' || echo "[]"
        ;;
    redis)
        cat "$LOG_DIR/coordination/redis-events.log" 2>/dev/null | grep -E "$FILTER" || echo "(no events)"
        ;;
    lifecycle)
        cat "$LOG_DIR/coordination/lifecycle-events.log" 2>/dev/null | grep -E "$FILTER" || echo "(no events)"
        ;;
    failed)
        # Show only failed containers (non-zero exit codes)
        cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.[] | select(.exit_code != 0)' || echo "[]"
        ;;
    all)
        echo "=== Container Logs ==="
        cat "$LOG_DIR/containers"/*.stdout.log 2>/dev/null | head -50 || echo "(no logs)"
        echo ""
        echo "=== Exit Codes ==="
        cat "$LOG_DIR/containers"/*.exit.json 2>/dev/null | jq -s '.[] | {agent_id, exit_code, status}' || echo "[]"
        echo ""
        echo "=== Redis Events ==="
        cat "$LOG_DIR/coordination/redis-events.log" 2>/dev/null | head -20 || echo "(no events)"
        ;;
    *)
        echo "Usage: $0 [containers|errors|exits|redis|lifecycle|failed|all] [filter]"
        exit 1
        ;;
esac
