#!/bin/bash set -u SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" VERIFY_DB_NAME="${VERIFY_DB_NAME:-llm_intelligence}" PASS_COUNT=0 FAIL_COUNT=0 WARN_COUNT=0 pass() { echo "[PASS] $1" PASS_COUNT=$((PASS_COUNT + 1)) } fail() { echo "[FAIL] $1" FAIL_COUNT=$((FAIL_COUNT + 1)) } warn() { echo "[WARN] $1" WARN_COUNT=$((WARN_COUNT + 1)) } sql_scalar() { local sql="$1" psql -d "$VERIFY_DB_NAME" -Atqc "$sql" } check_file() { local path="$1" local desc="$2" if [ -f "$PROJECT_ROOT/$path" ]; then pass "$desc" else fail "$desc (缺少文件: $path)" fi } check_executable() { local path="$1" local desc="$2" if [ -x "$PROJECT_ROOT/$path" ]; then pass "$desc" else fail "$desc (不可执行: $path)" fi } check_shell() { local desc="$1" local cmd="$2" if bash -lc "cd \"$PROJECT_ROOT\" && $cmd" >/tmp/llm_verify_cmd.out 2>/tmp/llm_verify_cmd.err; then pass "$desc" else local details="" if [ -s /tmp/llm_verify_cmd.err ]; then details="$(tr '\n' ' ' /tmp/llm_verify_sql.err | tr -d '[:space:]')" rc=$? set -e if [ "$rc" -ne 0 ]; then details="$(tr '\n' ' ' = $expected)" else fail "$desc (当前: ${actual:-N/A}, 期望 >= $expected)" fi } check_sql_int_eq() { local desc="$1" local sql="$2" local expected="$3" local actual rc details set +e actual="$(sql_scalar "$sql" 2>/tmp/llm_verify_sql.err | tr -d '[:space:]')" rc=$? set -e if [ "$rc" -ne 0 ]; then details="$(tr '\n' ' '