#!/usr/bin/env bash set -euo pipefail BASE_URL="${1:-https://crazycrazypete-pots-shutdown-tracker.hf.space}" PYTHON_BIN="${PYTHON_BIN:-python3}" REQUIRE_EMPTY="${REQUIRE_EMPTY:-false}" if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then echo "Python interpreter not found: $PYTHON_BIN" exit 1 fi "$PYTHON_BIN" - "$BASE_URL" "$REQUIRE_EMPTY" <<'PY' import collections import sys import requests base_url = sys.argv[1].rstrip("/") require_empty = sys.argv[2].lower() == "true" dashboard_url = f"{base_url}/api/pots-shutdown/dashboard" queue_url = f"{base_url}/api/pots-shutdown/admin/review-queue" dashboard = requests.get(dashboard_url, timeout=30) dashboard.raise_for_status() dashboard_payload = dashboard.json() queue = requests.get(queue_url, timeout=30) queue.raise_for_status() items = queue.json() print(f"Review queue check: {queue_url}") print(f"Dashboard review_queue_count={dashboard_payload.get('review_queue_count')}") print(f"Admin review queue items={len(items)}") source_counts = collections.Counter(item.get("source_code", "unknown") for item in items) issue_counts = collections.Counter() for item in items: for issue in item.get("issues", []): issue_counts[issue] += 1 if source_counts: print() print("By source:") for source_code, count in sorted(source_counts.items()): print(f"- {source_code}: {count}") if issue_counts: print() print("By issue:") for issue, count in sorted(issue_counts.items()): print(f"- {issue}: {count}") if items: print() print("Items:") for item in items: print( f"- {item.get('id')} {item.get('source_code')} " f"confidence={item.get('parse_confidence')} issues={item.get('issues')}" ) else: print() print("Review queue is empty.") if require_empty and items: raise SystemExit("Review queue is not empty.") PY