# OCR Indexer Pro — Flujo de Trabajo

## Menú interactivo (`ocr-indexer` sin argumentos)

Ejecuta `ocr-indexer` sin ningún argumento para abrir el menú numerado.
No necesitas recordar ningún comando: solo escribe el número y presiona Enter.

### Formato de cada opción

  [N] - comando - descripción

### Grupos de comandos disponibles en el menú

  🔍 BÚSQUEDA Y MONITOREO
  [ 1] - search           - Buscar texto en el índice
  [ 2] - last             - Ver últimos 10 archivos indexados
  [ 3] - status           - Ver estado y progreso en vivo
  [ 4] - stats            - Ver estadísticas de extensiones
  [ 5] - logs             - Ver registros de terminal

  ⚙️ CONTROL DEL MOTOR LOCAL
  [ 6] - run              - Pipeline completo + vigía tmux  ← recomendado
  [ 7] - start            - Iniciar indexador en background
  [ 8] - watch            - Iniciar vigía de archivos nuevos
  [ 9] - watch-tmux       - Vigía persistente en sesión tmux
  [10] - watch-tmux-stop  - Detener sesión tmux del vigía
  [11] - watch-tmux-status- Estado de sesión tmux del vigía
  [12] - stop             - Detener indexador y vigía
  [13] - reindex          - Re-indexar un archivo específico
  [14] - refine           - Refinar texto OCR con IA
  [15] - ai-config        - Configurar API de IA
  [16] - reset            - Resetear motor (borrar índice)
  [17] - dir              - Crear motor en esta carpeta

  🧠 REGLAS DE TOLERANCIA OCR
  [18] - tol-list         - Ver reglas activas (ej. O ↔ 0)
  [19] - tol-add          - Añadir reglas en lote
  [20] - tol-rm           - Eliminar una regla
  [21] - tol-clear        - Borrar todas las reglas

  🚫 LISTA NEGRA (EXCLUSIONES)
  [22] - blacklist-list   - Ver carpetas excluidas
  [23] - blacklist-add    - Añadir carpeta a la lista negra
  [24] - blacklist-rm     - Quitar carpeta de la lista negra

  🌐 SISTEMA GLOBAL
  [25] - engines          - Descubrir y navegar entre motores
  [26] - help             - Mostrar ayuda y este flujo
  [27] - salir            - Salir del menú

---

## Inicio rápido

1. Entra al directorio que quieres indexar
2. Crea el motor:              `ocr-indexer dir`
3. Lanza el pipeline completo: `ocr-indexer run`

## El pipeline completo (`ocr-indexer run`)

### Fase 1 — Escaneo de archivos
Recorre el directorio del motor de forma recursiva.
Calcula un hash MD5 por archivo y registra los nuevos o modificados.
Los archivos sin cambios (mismo hash) se saltan sin reprocesar.
Extensiones soportadas: PNG  JPG  JPEG  TIFF  BMP  PDF

### Fase 2 — OCR Mecánico (Tesseract)
Extrae el texto de cada imagen y PDF usando Tesseract.
Es rápido: da resultados básicos de búsqueda de inmediato.
Imágenes grandes (>50 MP) se redimensionan automáticamente antes del OCR.

### Fase 3 — Refinado IA (opcional)
Mejora el texto con un LLM. Requiere configurar `ocr-indexer ai-config`.

**Modo visión** (openai / anthropic / gemini con `use_vision=true`):
El modelo recibe la imagen directamente y la transcribe.
Es más preciso que Tesseract, especialmente en documentos complejos.

**Modo texto** (cualquier proveedor):
El texto Tesseract se envía al LLM para corregir errores típicos
(O↔0, I↔1↔l, palabras partidas, puntuación corrupta).

Si visión falla → el sistema hace fallback a modo texto automáticamente.
Si no hay IA configurada → Fase 3 se omite, el OCR Tesseract queda intacto.

### Vigía tmux (automático al usar `run`)
Queda un proceso persistente en sesión tmux `{directorio}___ocr-indexer`.
Detecta archivos nuevos o modificados y les aplica el pipeline completo
(Tesseract + IA) de forma automática, sin intervención manual.

## Configurar IA (`ocr-indexer ai-config`)

Proveedores disponibles:
  openai    — GPT-4o-mini (texto) / GPT-4o (visión)
  anthropic — Claude Haiku (texto) / Claude Sonnet (visión)
  gemini    — Gemini 2.5 Flash (texto y visión)
  deepseek  — DeepSeek Chat (solo texto, sin visión)

Variables de entorno alternativas (mayor prioridad que config.json):
  RAG_AI_PROVIDER=openai
  RAG_API_KEY=sk-...

## Navegar entre motores

`ocr-indexer engines`    — Descubre todos los motores en el sistema
`ocr-indexer shell-setup`— Instala el alias `ocre` en .bashrc / .zshrc
`ocre`                   — Elige un motor y hace cd automático al directorio

## Archivos internos del motor (`.ocr-indexer/`)

config.json        Raíz del escaneo, blacklist de carpetas, config IA
ocr-indexer.json   Índice NoSQL local con texto y metadatos por archivo
indexer.log        Log de actividad en tiempo real
status.json        Fase actual y progreso (usado por `ocr-indexer status`)
fase2.pid          PID del proceso OCR activo (evita ejecuciones paralelas)
