Reescribe el indexer con estrategia de dos pasadas:
1. Parsea todos los .md y construye sets de IDs conocidos
2. Valida integridad contra IDs conocidos, inserta solo los validos
El CLI ahora muestra INVALID para errores de validacion y ERROR
para errores de insercion, separando claramente ambos.
Añade test de integracion que verifica que entradas invalidas
se rechazan sin afectar a las validas.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Index() recorre functions/ y types/, parsea cada .md con frontmatter,
purga la BD existente e inserta todas las entradas. Devuelve conteos
y errores sin abortar ante fallos individuales.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>