Saltar a contenido

Inventario tecnológico

Actualizar cuando cambie una versión mayor de runtime, framework o servicio de infra.

Monorepo

Herramienta Versión / notas
Node.js Según entorno local
npm workspaces apps/*
Turborepo Ver package-lock.json (evitar latest en producción)

Frontends

App Framework Runtime UI Otros
apps/main Next.js 15, TS, Tailwind React 18 next-intl
apps/travel Vite 5, React 18 Zustand, React Router, FullCalendar Axios
apps/tools Next.js 15 React 19 (revisar alineación con @types/react)

Backends

App Python Framework Datos / servicios
apps/main 3.11 (Dockerfile) FastAPI SMTP, health, contacto
apps/travel 3.12 FastAPI, SQLAlchemy 2.0 PostgreSQL, Qdrant (RAG), OpenAI Embeddings
apps/ai-orchestrator 3.12 FastAPI, LangGraph, LangChain Groq (prod) / Ollama (dev), Travel API HTTP
apps/tools 3.12 FastAPI, LlamaIndex Qdrant, Groq, OpenAI embeddings, spaCy
apps/gastro 3.12 FastAPI Stub

Infraestructura (Docker típico)

Servicio Imagen / notas
PostgreSQL 16-alpine (travel_db, evolution_db, etc.)
Redis 7-alpine
Qdrant Vector DB (RAG para tools y travel)
n8n Automatización de flujos WhatsApp → Orchestrator
Evolution API WhatsApp gateway
Traefik Proxy reverso, TLS, dashboard

Servicios externos (APIs)

Servicio Uso App consumidora
Groq API Inference LLM (llama-3.3-70b, etc.) ai-orchestrator
OpenAI API Embeddings (text-embedding-3-small) travel, tools
Ollama (local) Inference LLM para tests E2E ai-orchestrator (dev)

Dependencias compartidas entre apps

No hay carpeta packages/ en el monorepo; cada app declara sus dependencias. Revisar duplicación de versiones en futuros refactors.

Herramientas de desarrollo

Ámbito Herramienta
JS/TS lint ESLint (por app)
Python (main backend) Ruff, Black, MyPy (pyproject)
Tests JS Jest (main frontend)
Tests Python pytest (main, tools, ai-orchestrator)
Evals IA 200 tests E2E con Juez Dinámico (ai-orchestrator)