# JARVIS-VERDE 🟢

Banco de pruebas de JARVIS montado sobre **[Hermes Agent](https://github.com/NousResearch/hermes-agent)** (Nous Research, MIT): un arnés agéntico completo, **100 % local por configuración**. Esta rama documenta el carril verde; el `master` es el núcleo naranja.

![Arquitectura del carril verde](verde/docs/arquitectura.svg)

## Para qué sirve

JARVIS tiene tres carriles: **cian** (Newelle, congelado), **naranja** (el núcleo propio) y **verde** (este). El verde responde a una pregunta: *¿un arnés agéntico de fábrica aporta algo que el núcleo naranja no tenga?* En concreto, las tres cosas que al naranja le faltan y que Hermes trae de serie:

- **Skills que el agente se crea y mejora solo.**
- **Canales de mensajería** (Telegram, Discord, Signal, WhatsApp, Slack).
- **Memoria** de largo plazo entre sesiones.

No es el asistente de diario —para eso está el naranja, que es más rápido—; es el laboratorio para decidir qué ideas de Hermes merece la pena llevar al núcleo.

## El panel

Hermes no es un chatbot: es una plataforma. El panel web (`verde/panel-verde.sh`, en `127.0.0.1:9119`) da chat, sesiones, ficheros, modelos, logs, cron, skills, MCP, canales y webhooks.

![Panel — chat](verde/docs/panel-chat.png)

**82 skills** en 14 categorías, entre ellas la integración con el RAG del naranja:

![Panel — skills](verde/docs/panel-skills.png)

## El stack

| Capa | Pieza | Licencia | ¿Sale algo de la máquina? |
|---|---|---|---|
| Arnés | Hermes Agent | MIT | por configuración, no |
| Cerebro | Ollama · `qwen3.5:4b-verde` (64k ctx) | Apache-2.0 | **no** — `127.0.0.1:11434` |
| Oír | faster-whisper `small` (local, CPU) | MIT | **no** |
| Hablar | Piper · `davefx` (misma voz que el naranja) | MIT | **no** |
| Saber | RAG del naranja vía `busca_cli` | — | **no** |

## La integración con el RAG

El agente consulta el **mismo índice que el núcleo naranja** (~19.500 entradas: metodología de pentesting, man pages, catálogo de herramientas y software, apps instaladas). Se hace con la skill local `buscar-en-apuntes` (en `verde/skills/`), que el agente activa cuando le preguntas por herramientas, comandos o "qué dicen mis apuntes sobre X", y responde citando la fuente en vez de inventar. Motor: `nucleo/saber/busca_cli.py`.

## La voz, y en local

El TUI de Hermes no trae micrófono y su STT nativo es para notas de voz de mensajería (que saldrían de la máquina). El carril lo puentea en local:

- **Escucha** — `verde/escucha-verde.sh` (pulsar-para-hablar): graba → `faster-whisper` en CPU → se lo pasa al agente. Prueba: `verde/pruebas/08_escucha.sh`.
- **Habla** — `verde/voz-verde.sh`: el mismo Piper y la misma voz que el naranja. Prueba: `verde/pruebas/07_voz.sh`.

## Arranque

```bash
# 1. Instalar Hermes Agent (ver su repo) y el modelo del verde
ollama create qwen3.5:4b-verde -f verde/qwen3.5-4b-verde.Modelfile

# 2. Medir, configurar y dictaminar (encuentra el techo de contexto en tu GPU)
./verde/arrancar.sh

# 3. El panel web, o el TUI en verde
./verde/panel-verde.sh          # dashboard en 127.0.0.1:9119
./verde/verde-launcher.sh       # TUI

# 4. Las pruebas (ninguna abre el TUI)
./verde/pruebas/ejecutar.sh
```

## El aviso que importa

**Local por configuración, no por construcción.** El agente tiene terminal y web, y **decide por su cuenta**: en una prueba, pidiéndole un cartel ASCII, se fue a una API de terceros porque una librería no estaba instalada. Cerebro, voz, oído y memoria son locales y comprobados; lo que no está garantizado es **lo que el agente haga con la terminal que le has dado**. Está todo en `verde/NOTAS.md`.

## El precio

Hermes exige ≥64k de contexto, lo que obliga a bajar media red del 4B a la CPU: el precio es el **tiempo de respuesta** (minutos por turno en frío). Es el dato que decide si el carril compensa frente al naranja. Medido y anotado en `verde/NOTAS.md`.

---

Software libre. Ver `verde/README.md`, `verde/NOTAS.md` y `verde/ESCALERA.md` para el detalle.
