Rama JARVIS-GREEN, independiente de master (el nucleo naranja queda intacto). - README propio del carril verde con diagrama de arquitectura y capturas del panel. - verde/: arranque, panel web, puente de voz (escucha local con faster-whisper + habla con la voz del naranja), pruebas (07 voz, 08 escucha), config y notas. - Integracion RAG: nucleo/saber/busca_cli.py + skill buscar-en-apuntes, para que el agente consulte el mismo indice que el nucleo. - Todo local (127.0.0.1); sin datos personales (rutas y modelo de GPU scrubeados).
79 lines
3.4 KiB
Bash
Executable file
79 lines
3.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Instala Hermes Agent para el carril verde. NO arranca nada.
|
|
#
|
|
# ./instalar.sh instala
|
|
# ./instalar.sh --revisar solo baja el instalador y te lo enseña
|
|
#
|
|
# ── Por que un envoltorio y no el curl del video ────────────────────────────
|
|
#
|
|
# El video (y la web de Nous) dicen:
|
|
#
|
|
# curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
|
|
#
|
|
# Eso ejecuta 3469 lineas que nadie ha leido, con sudo por medio, en una
|
|
# maquina que tiene COFRE dentro. Aqui se baja a fichero, se queda en el repo
|
|
# junto a su sha256, y se ejecuta desde disco. Cuesta diez segundos y a cambio
|
|
# el instalador es auditable y comparable entre versiones.
|
|
#
|
|
# ── Que se le pasa, y por que ──────────────────────────────────────────────
|
|
#
|
|
# --skip-setup El asistente interactivo pide proveedor y clave por /dev/tty.
|
|
# No se quiere: la configuracion se escribe a mano en
|
|
# config.yaml, que queda versionada y explicada. Ademas el
|
|
# asistente es lo unico del instalador que pediria credenciales.
|
|
#
|
|
# Chromium SI se instala (no se pasa --skip-browser): son ~400 MB pero deja el
|
|
# paso 7 del video listo sin reinstalar nada.
|
|
#
|
|
# ── Que NO hace, comprobado leyendo el codigo ──────────────────────────────
|
|
#
|
|
# main() llama a maybe_start_gateway(), que suena a que arranca algo. No lo
|
|
# hace: sale con `return 0` si no encuentra un token de mensajeria en
|
|
# $HERMES_HOME/.env. Como el .env se deja vacio, nunca llega a preguntar.
|
|
# Por eso env.ejemplo NO se copia con los tokens descomentados.
|
|
#
|
|
# El sudo solo se usa para paquetes de sistema de apt. En esta maquina gcc,
|
|
# python3-dev, libffi-dev y build-essential ya estaban, asi que lo unico que
|
|
# pidio fue Playwright, lo declino y degrado solo: instala Chromium en la cache
|
|
# del usuario e imprime el comando que un administrador puede correr luego.
|
|
set -uo pipefail
|
|
|
|
AQUI=$(cd -P "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)
|
|
URL=https://hermes-agent.nousresearch.com/install.sh
|
|
SCRIPT=$AQUI/install-oficial.sh
|
|
LOG=$AQUI/instalacion.log
|
|
|
|
echo "Bajando el instalador oficial..."
|
|
curl -fsSL "$URL" -o "$SCRIPT" || { echo "no se pudo bajar"; exit 1; }
|
|
chmod +x "$SCRIPT"
|
|
|
|
echo
|
|
echo " lineas: $(wc -l < "$SCRIPT")"
|
|
echo " sha256: $(sha256sum "$SCRIPT" | cut -d' ' -f1)"
|
|
echo
|
|
|
|
if [ "${1:-}" = "--revisar" ]; then
|
|
echo "Bajado en $SCRIPT. Lee y vuelve sin --revisar."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Instalando (tarda: ~1,5 GB de PyPI y ~400 MB de Chromium)..."
|
|
bash "$SCRIPT" --skip-setup 2>&1 | tee "$LOG"
|
|
|
|
echo
|
|
echo "Instalado. NO se ha arrancado nada."
|
|
echo
|
|
echo "La configuracion NO se copia encima: el instalador deja un config.yaml de"
|
|
echo "1890 lineas con su documentacion dentro, y machacarlo la perderia. Se"
|
|
echo "editan a mano los bloques model, stt y tts. Cuales y por que, en:"
|
|
echo " $AQUI/config.yaml"
|
|
echo
|
|
echo "Y OJO: ese fichero declara provider y base_url dos veces dentro de"
|
|
echo "model:. En YAML gana la ultima. Comprueba PARSEANDO, no leyendo:"
|
|
echo " python3 -c \"import yaml;print(yaml.safe_load(open('\$HOME/.hermes/config.yaml'))['model'])\""
|
|
echo
|
|
echo "El .env del instalador ya viene sin claves. Que habilitaria cada una:"
|
|
echo " $AQUI/env.ejemplo"
|
|
echo
|
|
echo "Comprobacion en frio, no arranca nada:"
|
|
echo " $AQUI/verde-launcher.sh --status"
|