--- id: 0003 title: Enricher web — descargar URL/dominio y extraer texto status: pending priority: medium created: 2026-04-30 --- ## Objetivo Right-click sobre un nodo `url` o `domain` → "Run enricher → Fetch & extract text". Descarga el HTML, extrae el texto principal, crea un nodo `text` conectado al origen con relacion `FETCHED_FROM`. Despues el usuario puede encadenar: sobre ese nodo `text`, ejecutar el enricher GLiNER+GLiREL (issue 0002) para extraer entidades. ## Alcance - HTTP GET con timeout (libcurl o sys WinHTTP). - Extraccion de texto: regex/strip de tags simple en v1; v2 usa una lib (htmlparser2 / lexbor / boost.url + algo de heuristica). - User-agent identificativo, respeto de robots.txt opcional (out-of-scope v1). - Limite de tamaño descargable (1 MB) para evitar bloqueos. ## Modelo de etiquetado - Nodo origen (url/domain) → arista `FETCHED_FROM` → nodo nuevo (text con metadata={fetched_at, status_code, content_type, length}). - Nombre del nodo text: titulo de la pagina (si existe) o primeros 120 caracteres del cuerpo. ## Definicion de hecho - Funciona contra una URL real (https con TLS). - Maneja errores (404, timeout, redirects basicos) sin tumbar la app. - El nodo creado es visible y el texto se puede consumir por el enricher GLiNER+GLiREL del issue 0002.