#!/usr/bin/env bash # verify-deployment.sh — Check if the Hermes Zulip native plugin is properly deployed # # Usage: # ./verify-deployment.sh # Check local agent # ./verify-deployment.sh --ct=tanko # Check specific agent # ./verify-deployment.sh --all # Check all reachable agents # set -euo pipefail PLUGIN_DIR="$HOME/.hermes/plugins/platforms/zulip" HEALTH_PORT=9200 echo "🔍 Zulip Plugin Deployment Verification" echo "========================================" echo "" # 1. Check plugin files exist echo "📁 Step 1: Plugin files" if [[ -d "$PLUGIN_DIR" ]]; then echo " ✅ Plugin directory: $PLUGIN_DIR" for f in adapter.py __init__.py plugin.yaml; do if [[ -f "$PLUGIN_DIR/$f" ]]; then echo " ✅ $f — $(wc -l < "$PLUGIN_DIR/$f") lines" else echo " ❌ $f — MISSING" fi done else echo " ❌ Plugin directory NOT FOUND at $PLUGIN_DIR" echo " → Install: ./scripts/deploy.sh --mode=native v1.0.0" fi echo "" # 2. Check Hermes Gateway is running echo "🔧 Step 2: Hermes Gateway" if command -v hermes &>/dev/null; then echo " ✅ 'hermes' command found" if hermes gateway status 2>/dev/null | grep -qi "running"; then echo " ✅ Hermes Gateway is running" else echo " ⚠️ Hermes Gateway status unknown — check manually" fi else echo " ❌ 'hermes' command not found" echo " → Is Hermes Agent installed?" fi echo "" # 3. Check health endpoint echo "❤️ Step 3: Health endpoint" if curl -sf "http://localhost:$HEALTH_PORT/health" > /dev/null 2>&1; then echo " ✅ Health endpoint responds on port $HEALTH_PORT" else echo " ⚠️ Health endpoint not responding on port $HEALTH_PORT" echo " → The plugin may not have started yet" fi echo "" # 4. Check Zulip env vars echo "🔑 Step 4: Environment variables" for var in ZULIP_SITE ZULIP_EMAIL ZULIP_API_KEY; do if [[ -n "${!var:-}" ]]; then val="${!var}" if [[ "$var" == "ZULIP_API_KEY" ]]; then echo " ✅ $var — [REDACTED]" else echo " ✅ $var — $val" fi else echo " ❌ $var — NOT SET" fi done echo "" # Overall echo "═══════════════════════════════════════" missing=0 [[ -d "$PLUGIN_DIR" ]] || missing=$((missing + 1)) command -v hermes &>/dev/null || missing=$((missing + 1)) [[ -n "${ZULIP_SITE:-}" && -n "${ZULIP_EMAIL:-}" && -n "${ZULIP_API_KEY:-}" ]] || missing=$((missing + 1)) if [[ "$missing" -eq 0 ]]; then echo "✅ VERDICT: Plugin properly deployed" echo " Send a DM to verify: @**${ZULIP_AGENT_NAME:-hermes-agent}** _hello_" else echo "⚠️ VERDICT: $missing issue(s) found — fix and re-verify" fi