Skip to Content
Primeros pasos

Primeros pasos

Arquitectura básica

  • @dragon708/docmind-shared — Tipos compartidos (AnalysisResult, StructuredDocumentResult, DetectFileKindInput, TextAnalyzeInput, …), detectFileKind, analyzeText, normalizeToStructuredResult, errores (DocMindError, isDocMindError). Lo usan los paquetes browser y Node; impórtalo cuando necesites los mismos tipos en cliente y servidor.
  • @dragon708/docmind-browser — analyzeFile para File, Blob o ArrayBuffer. También extractText, extractMetadata, convertToHtml, runOcr, extractStructuredData, detectFileKind, getCapabilities, explainAnalysisPlan. No hay pipeline PDF completo en el navegador (PDF estructurado real solo en Node; en browser el facade devuelve avisos para PDF).
  • @dragon708/docmind-node — analyzeFile para rutas, URLs file: o NodeAnalyzeInput / DetectFileKindInput, más readFileToInput, bufferToInput, resolveNodeAnalyzeInput y las mismas APIs públicas que el navegador, incl. extractStructuredData.

Los paquetes de formato (docmind-pdf, docmind-docx, docmind-ocr) alimentan los stacks en Node (y en navegador para DOCX/imágenes). Trata AnalysisResult como informe estructurado: revisa status, fileKind y warnings antes de usar text, html, etc. Para pipelines JSON/RAG, usa extractStructuredData u opt-in structured en analyzeFile.

Cuándo usar el paquete de navegador

  • El fichero debe quedarse en el cliente (privacidad, offline o sin subida).
  • Ya tienes File / Blob de un <input type="file">, arrastrar y soltar, o fetch + blob().
  • Aceptas bundle, WASM (p. ej. Tesseract) y límites del navegador—y no dependes de análisis PDF “de servidor” en la pestaña.

Cuándo usar el paquete de Node

  • Entradas como rutas en disco, Buffer / Uint8Array en servidor, o cargas que normalizas a DetectFileKindInput / NodeAnalyzeInput.
  • Handlers HTTP, workers o batch y necesitas PDF (texto, metadatos, políticas OCR pdf.ocr: off | auto | force).

En este repo, src/lib/docmind-server.ts envuelve subidas como { data, name?, type? } y delega en @dragon708/docmind-node (y en helpers directos de @dragon708/docmind-pdf / @dragon708/docmind-docx para las acciones de los laboratorios). Client test y Server test cubren Epic 1 (capabilities, explain-plan, …) y extract-structured. PDF lab, DOCX lab y OCR lab usan el mismo POST /api/analyze con otros valores de action. Si hay html, ResultViewer usa iframe aislado. Ver Resumen de API.

Entornos mixtos

Patrón habitual: análisis autoritativo en servidor con vista previa opcional en cliente. Mantén DocMindError / isDocMindError alineados para que los fallos se vean igual en la UI.

Siguientes pasos

Last updated on