Flujos
detectFileKind elige un fileKind (pdf | docx | image | text | unknown). analyzeFile y las APIs facetadas enrutan al pipeline adecuado. Combinaciones desconocidas o no soportadas pueden devolver status: "not_implemented" o avisos — inspecciona AnalysisResult en tus pruebas.
Introspección Epic 1: getCapabilities y explainAnalysisPlan usan las mismas pistas de clasificación que analyzeFile, pero devuelven informes de capacidades o de plan sin ejecutar la extracción completa. Los informes browser vs Node difieren donde el soporte PDF difiere (p. ej. el navegador refleja que el PDF no sigue el pipeline de Node).
PDF — digital (capa de texto)
.pdf + pistas
|
v
kind: pdf
|
v
analizador pdf -----> extraer texto embebido (Node)
|
v
AnalysisResultPDF — escaneado (Node, OCR)
.pdf + pdf.ocr: auto | force (y ocrLangs opcional)
|
v
docmind-pdf -----> rasterizar + Tesseract cuando aplique la política
|
v
AnalysisResult (needsOCR / ocrUsed cuando aplique)DOCX
.docx + pistas
|
v
kind: docx
|
v
docmind-docx -----> texto + HTML
|
v
AnalysisResultImágenes (OCR)
.png | .jpg | … + kind: image
|
v
docmind-ocr (Tesseract)
|
v
AnalysisResultTexto plano
.txt | text/* O analyzeText(...)
|
v
kind: text / analizador texto
|
v
TextAnalysisResult (status: "ok", text, warnings)Tipo desconocido
nombre/MIME débil o ausente
|
v
kind: unknown --> enrutado limitado; puede ser not_implementedPara el cableado del playground—ocrMode en analyze, extract-text, convert-html, explain-plan y acciones PDF.js por página; campo language; capabilities / explain-plan; además PDF lab y DOCX lab—véase Guía OCR y Resumen de API.