summaryrefslogtreecommitdiff
path: root/setup.sh
blob: 7255a43e74b2afd821ca80abd6af46e2686acc95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
# MiMo V2.5 ASR — Hermes Agent Plugin Setup
# 用法: bash setup.sh [--uninstall]

set -euo pipefail

HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
PLUGIN_DIR="$HERMES_HOME/plugins/stt/mimo"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; NC='\033[0m'
ok()   { echo -e "${GREEN}✓${NC} $*"; }
warn() { echo -e "${YELLOW}⚠${NC} $*"; }
fail() { echo -e "${RED}✗${NC} $*" >&2; }

# ── Uninstall ──────────────────────────────────────────────────────
if [[ "${1:-}" == "--uninstall" ]]; then
    echo "Uninstalling MiMo ASR plugin..."
    command -v hermes &>/dev/null && hermes plugins disable stt/mimo 2>/dev/null || true
    rm -rf "$PLUGIN_DIR"
    rm -f "$HOME/xiaomi-asr.py" "$HOME/xiaomi-asr.sh"
    ok "Done. Restart Hermes session (/reset) to take effect."
    exit 0
fi

# ── Install ────────────────────────────────────────────────────────
echo "Installing MiMo V2.5 ASR plugin for Hermes Agent..."

# 1. Pre-flight checks
[[ -d "$HERMES_HOME" ]] || { fail "Hermes not found at $HERMES_HOME"; exit 1; }

if [[ -f "$HERMES_HOME/.env" ]]; then
    grep -q "^XIAOMI_API_KEY=" "$HERMES_HOME/.env" 2>/dev/null \
        && ok "XIAOMI_API_KEY found" \
        || warn "XIAOMI_API_KEY missing in $HERMES_HOME/.env"
else
    warn ".env not found — add XIAOMI_API_KEY before using ASR"
fi

# 2. Install plugin
mkdir -p "$PLUGIN_DIR"
cp "$SCRIPT_DIR/plugin.yaml" "$PLUGIN_DIR/plugin.yaml"
cp "$SCRIPT_DIR/__init__.py" "$PLUGIN_DIR/__init__.py"
cp "$SCRIPT_DIR/provider.py" "$PLUGIN_DIR/provider.py"
ok "Plugin installed → $PLUGIN_DIR"

# 3. Copy standalone scripts
cp "$SCRIPT_DIR/xiaomi-asr.py" "$HOME/xiaomi-asr.py"
chmod +x "$HOME/xiaomi-asr.py"
cp "$SCRIPT_DIR/xiaomi-asr.sh" "$HOME/xiaomi-asr.sh"
chmod +x "$HOME/xiaomi-asr.sh"
ok "Standalone scripts → $HOME/xiaomi-asr.{py,sh}"

# 4. Enable in Hermes
if command -v hermes &>/dev/null; then
    hermes plugins enable stt/mimo 2>/dev/null && ok "Enabled in Hermes" \
        || warn "Run manually: hermes plugins enable stt/mimo"
else
    warn "hermes not in PATH — run: hermes plugins enable stt/mimo"
fi

# 5. Done
echo ""
echo "── Next steps ──────────────────────────────────────"
echo "  hermes config set stt.provider mimo-asr"
echo "  hermes config set stt.providers.mimo-asr.type plugin"
echo ""
echo "  Or use command mode (standalone script):"
echo "  hermes config set stt.providers.mimo-asr.type command"
echo "  hermes config set stt.providers.mimo-asr.command \"python \$HOME/xiaomi-asr.py {input_path} {output_path} mimo-v2.5-asr {language}\""
echo ""
echo "  /reset                                 # restart session"
echo "────────────────────────────────────────────────────"