# JARVIS-AZUL 🔵

El **primer** carril de JARVIS, montado sobre **[Newelle](https://github.com/qwersyk/Newelle)** (el asistente de escritorio para GNOME, GPL). Hoy está **congelado**: sirvió para arrancar rápido y aprender qué se quería, y esas lecciones dieron pie al núcleo naranja. Esta rama lo documenta; el `master` es el núcleo naranja.

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

## Para qué sirvió

JARVIS tiene tres carriles: **azul** (Newelle, este, congelado), **naranja** (el núcleo propio) y **verde** (Hermes Agent). El azul fue el punto de partida: en vez de escribir un asistente desde cero, se cogió Newelle —una app de GNOME que ya trae chat con LLM local, RAG de documentos, memoria, TTS, búsqueda web y extensiones— y se le puso encima la identidad de JARVIS.

Fue la forma más rápida de tener algo que funcionara y, sobre todo, de **descubrir qué faltaba**. Lo que se aprendió aquí es lo que define hoy al naranja.

## El interfaz

![El panel del carril azul](azul/docs/panel.png)

*El panel a pantalla completa: el reactor, el estado de la máquina a la izquierda, el catálogo de acciones a la derecha y las tarjetas de lo ya hecho. Todo en local —Ollama en `127.0.0.1`—. Las rutas de los resultados van tapadas.*

## El stack

| Capa | Pieza | Licencia | ¿Nube? |
|---|---|---|---|
| Front-end | Newelle (GNOME, Flatpak) | GPL | no |
| Cerebro | Ollama · modelo `qwen` local | Apache-2.0 | **no** — `127.0.0.1` |
| Hablar | Piper (voz clonada) | MIT | **no** |
| Oír | Whisper local | MIT | **no** |
| Saber | Documentos locales de Newelle (RAG) | — | **no** |

## Lo que JARVIS le puso encima

Newelle es genérico; JARVIS lo personalizó (los ficheros viven en `config/` del núcleo):

- **Persona y prompt** propios (`set_persona.py`).
- **Voz** por Piper, la misma cadena de audio que usa el naranja (`jarvis-piper.sh`, `jarvis-voz.sh`).
- **Modelo** local afinado (`qwen3.5-4b-jarvis.Modelfile`, `apuntar_modelo_jarvis.py`).
- **Herramientas** propias.
- **Panel a pantalla completa** (`jarvis_full`): reactor, estado de la máquina,
  catálogo de acciones y el registro de lo hecho, sin pasar por el chat.

## Por qué se congeló

Newelle es potente, pero va empaquetado como **Flatpak sobre GNOME**, y ese sandbox limita lo que el asistente puede tocar en la máquina. Se quería más: **control total del núcleo** —latencia baja, acciones rápidas que no pasan por el modelo, root gestionado a demanda, un panel que no dependa del ciclo de vida de la app—. Nada de eso encajaba bien dentro de la app de escritorio de otro.

Así que el azul se congeló y nació el **carril naranja**, un núcleo escrito a medida. El azul se queda como referencia y como reconocimiento: fue el que enseñó el camino.

---

Newelle es de [@qwersyk](https://github.com/qwersyk/Newelle) (GPL). Este carril es esa base con la capa de JARVIS encima. Para el núcleo actual, ver la rama `master`; para el banco de pruebas agéntico, la rama `JARVIS-GREEN`.
