scripts/butler-extension-ext5-verify.sh
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env bash
# EXT-5 Verify: preflight + extension cache + MCP connect + handler sim (no iLink).
#
# Usage:
# bash scripts/butler-extension-ext5-verify.sh # full
# bash scripts/butler-extension-ext5-verify.sh --quick # skip slow conversion sim
#
# After this passes, complete 真机 phrases in docs/guides/ext5-wechat-verify-2026-06.md
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
export PYTHONPATH="$ROOT"
# shellcheck source=scripts/lib/butler-source-env.sh
source "$ROOT/scripts/lib/butler-source-env.sh"
butler_source_env "$ROOT/.env" 2>/dev/null || true
export BUTLER_MCP_MAX_SERVERS="${BUTLER_MCP_MAX_SERVERS:-4}"
QUICK=0
for arg in "$@"; do
case "$arg" in
--quick) QUICK=1 ;;
esac
done
echo "=== EXT-5 Verify (automated) ==="
echo "BUTLER_MCP_MAX_SERVERS=${BUTLER_MCP_MAX_SERVERS}"
bash "$ROOT/scripts/butler-extension-ext5-preflight.sh"
bash "$ROOT/scripts/butler-extension-verify.sh" markitdown-ingest
bash "$ROOT/scripts/butler-extension-ext5-gate.sh"
echo ""
echo "=== MCP status (markitdown must be [ok]) ==="
python3 - <<'PY'
import sys
from butler.mcp.registry_hook import mcp_status_lines
lines = mcp_status_lines("ext5-verify")
for line in lines:
print(line)
md = [l for l in lines if "markitdown" in l.lower()]
if not any("[ok]" in l for l in md):
print("FAIL: markitdown MCP not connected", file=sys.stderr)
raise SystemExit(1)
print("markitdown MCP: ok")
PY
if [[ "$QUICK" -eq 1 ]]; then
bash "$ROOT/scripts/butler-extension-ext5-wechat-sim.sh" --quick
else
bash "$ROOT/scripts/butler-extension-ext5-wechat-sim.sh"
fi
echo ""
echo "EXT-5 VERIFY (automated): PASS"
echo "真机:微信发 manifest verify_phrases — 见 docs/guides/ext5-wechat-verify-2026-06.md"