JARVIS/verde/instalar.sh
sito 1e3e5ca20d carril verde (Hermes Agent): documentacion, panel, voz local y RAG
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).
2026-08-18 11:26:42 +02:00

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"