82 lines
2.8 KiB
Bash
Executable File
82 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# WEVAL — Master ERP Gap Scanner (D+C+B)
|
|
# Usage: scan-erp-gaps-all.sh
|
|
# Runs LLM gen (D) + RSS feeds (C) + Playwright G2 (B), then aggregates.
|
|
set -u
|
|
|
|
LOG_DIR=/var/log/weval
|
|
mkdir -p "$LOG_DIR"
|
|
TS=$(date +%Y%m%dT%H%M%S)
|
|
|
|
echo "═══════════════════════════════════════════"
|
|
echo "WEVAL ERP GAP SCANNER · $TS"
|
|
echo "═══════════════════════════════════════════"
|
|
|
|
# D — LLM sovereign (fastest, most reliable)
|
|
echo ""
|
|
echo "▶ OPTION D · LLM sovereign cascade"
|
|
timeout 480 python3 /var/www/html/api/scan-erp-gaps-llm.py > "$LOG_DIR/scan-llm-$TS.log" 2>&1
|
|
D_CODE=$?
|
|
tail -3 "$LOG_DIR/scan-llm-$TS.log"
|
|
echo " exit=$D_CODE log=$LOG_DIR/scan-llm-$TS.log"
|
|
|
|
# C — RSS feeds
|
|
echo ""
|
|
echo "▶ OPTION C · RSS consulting feeds"
|
|
timeout 180 python3 /var/www/html/api/scan-erp-gaps-rss.py > "$LOG_DIR/scan-rss-$TS.log" 2>&1
|
|
C_CODE=$?
|
|
tail -3 "$LOG_DIR/scan-rss-$TS.log"
|
|
echo " exit=$C_CODE log=$LOG_DIR/scan-rss-$TS.log"
|
|
|
|
# B — Playwright G2 scrape (slowest, skip if node missing)
|
|
echo ""
|
|
echo "▶ OPTION B · Playwright G2 public reviews"
|
|
if command -v node >/dev/null 2>&1; then
|
|
# Ensure deps installed in /var/www/html/api (one-time)
|
|
if [ ! -d /var/www/html/api/node_modules/playwright ]; then
|
|
echo " [BOOTSTRAP] installing node deps..."
|
|
cd /var/www/html/api && npm install playwright pg --no-save 2>&1 | tail -3
|
|
fi
|
|
cd /var/www/html/api
|
|
timeout 600 node /var/www/html/api/scan-erp-gaps-playwright.js > "$LOG_DIR/scan-pw-$TS.log" 2>&1
|
|
B_CODE=$?
|
|
tail -3 "$LOG_DIR/scan-pw-$TS.log"
|
|
echo " exit=$B_CODE log=$LOG_DIR/scan-pw-$TS.log"
|
|
else
|
|
echo " [SKIP] node not found"
|
|
B_CODE=-1
|
|
fi
|
|
|
|
# Summary
|
|
echo ""
|
|
echo "═══════════════════════════════════════════"
|
|
echo "SUMMARY · $(date -Iseconds)"
|
|
echo "═══════════════════════════════════════════"
|
|
PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -c "
|
|
SELECT
|
|
CASE
|
|
WHEN query LIKE 'llm_%' THEN 'LLM (D)'
|
|
WHEN query LIKE 'rss_%' THEN 'RSS (C)'
|
|
WHEN query LIKE 'playwright_%' THEN 'Playwright (B)'
|
|
ELSE 'Other (searxng)'
|
|
END AS source,
|
|
COUNT(DISTINCT erp_id) AS erps,
|
|
COUNT(*) AS gaps,
|
|
ROUND(AVG(confidence_score)::NUMERIC,3) AS avg_conf
|
|
FROM erp_gap_scans
|
|
GROUP BY source
|
|
ORDER BY gaps DESC;"
|
|
|
|
echo ""
|
|
echo "TOP ERPS BY GAP COUNT:"
|
|
PGPASSWORD=admin123 psql -h 10.1.0.3 -U admin -d adx_system -c "
|
|
SELECT erp_id, COUNT(*) AS gaps, ROUND(AVG(confidence_score)::NUMERIC,3) AS avg_conf
|
|
FROM erp_gap_scans
|
|
GROUP BY erp_id
|
|
ORDER BY gaps DESC
|
|
LIMIT 15;"
|
|
|
|
echo ""
|
|
echo "═══ DONE ═══"
|
|
exit 0
|