workspace/core/orchestration/referencias/DEVENV-PORT-STANDARDS.md
rckrdmrd 49155822ae fix: Resolve TypeScript compilation errors across all projects
Platform Marketing Content:
- Add PaginationParams, PaginationMeta, PaginatedResponse interfaces
- Fix JwtAuthGuard import paths (common/guards instead of modules/auth)
- Add missing fields to CRM interfaces (address, keywords, features, benefits)
- Install @nestjs/throttler dependency

ERP Suite - Construccion:
- Create tsconfig.node.json for web frontend
- Add vite-env.d.ts for Vite types
- Fix implicit return errors in Express controllers
- Prefix unused parameters with underscore

ERP Suite - ERP Core:
- Export PoolClient type from database config
- Fix invoice type comparison (customer/supplier vs out_invoice)
- Refactor base.service.ts query handling for proper type inference
- Rename Role type to RoleType to avoid conflict with entity
- Fix ProtectedRoute to use role?.name instead of roles array

ERP Suite - POS Micro:
- Add vite-env.d.ts for Vite types
- Fix Sale property names (discountAmount, changeAmount)
- Export TodaySummary interface from sales service

All projects now pass npm install and npm run build successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 22:35:55 -06:00

7.6 KiB

DEVENV-PORT-STANDARDS

Version: 2.1.0 Fecha: 2025-12-08 Mantenedor: DevEnv Agent


DIRECTIVA OBLIGATORIA

TODOS los agentes DEBEN consultar al agente DevEnv antes de asignar puertos.

El inventario centralizado esta en: @DEVENV_PORTS (core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml)


ESTANDAR v2.0.0 (NUEVO)

El proyecto gamilit define el estandar base de asignacion de puertos:

Servicio Puerto Patron
Frontend 3005 base
Backend 3006 base + 1

Regla principal: Frontend y Backend tienen 1 numero de diferencia.


ASIGNACION OFICIAL DE PUERTOS

Cada proyecto tiene una base y sigue el patron FE=base, BE=base+1:

Proyecto Base Frontend Backend Estado
gamilit 3005 3005 3006 PRODUCCION
erp-core 3010 3010 3011 Activo
construccion 3020 3020 3021 Activo
vidrio-templado 3030 3030 3031 Activo
mecanicas-diesel 3040 3040 3041 Activo
retail 3050 3050 3051 Activo
clinicas 3060 3060 3061 Activo
pos-micro 3070 3070 3071 Activo
trading-platform 3080 3080 3081 Activo
betting-analytics 3090 3090 3091 Reservado
inmobiliaria 3100 3100 3101 Reservado
pmc 3110 3110 3111 Activo

Rango disponible: 3112-3199 para futuros proyectos.


MAPA VISUAL DE PUERTOS

Puerto     Proyecto              Estado
────────────────────────────────────────
3005/3006  gamilit               PRODUCCION
3010/3011  erp-core              Activo
3020/3021  construccion          Activo
3030/3031  vidrio-templado       Activo
3040/3041  mecanicas-diesel      Activo
3050/3051  retail                Activo
3060/3061  clinicas              Activo
3070/3071  pos-micro             Activo
3080-3087  trading-platform      Activo (FE/BE/WS/ML/Data/LLM/Agents/WebUI)
3090/3091  betting-analytics     Reservado
3100/3101  inmobiliaria          Reservado
3110/3111  pmc                   Activo
────────────────────────────────────────
3112-3199  [DISPONIBLE]          Futuros proyectos

OFFSETS ESTANDAR

Para servicios adicionales dentro de cada proyecto:

OFFSETS:
  frontend:         +0    # Aplicacion web principal (base)
  backend_api:      +1    # API principal
  backend_ws:       +2    # WebSocket server
  backend_admin:    +3    # Panel de administracion API
  backend_workers:  +4    # Workers/Jobs
  auxiliary:        +5-9  # Servicios auxiliares

Ejemplo para un nuevo proyecto "mi-proyecto" (base 3120):

mi-proyecto:
  frontend:         3120
  backend_api:      3121
  backend_ws:       3122
  backend_admin:    3123
  backend_workers:  3124

BASES DE DATOS

Los puertos de bases de datos se asignan secuencialmente:

Servicio Rango Default
PostgreSQL 5432-5449 5432
Redis 6379-6389 6379
MySQL 3306 3306 (legacy)
MongoDB 27017-27027 27017

Asignacion actual de PostgreSQL:

Puerto Proyecto
5432 Default / gamilit / erp-core / mecanicas / trading / pmc
5433 construccion / pos-micro / trading-test
5434 vidrio-templado
5436 retail
5437 clinicas
5438 betting-analytics (reservado)
5439 inmobiliaria-analytics (reservado)

Asignacion actual de Redis:

Puerto Proyecto
6379 Default / shared
6380 construccion
6381 vidrio-templado
6383 retail
6384 clinicas
6385 betting-analytics (reservado)
6386 inmobiliaria-analytics (reservado)

PUERTOS RESERVADOS (NO USAR)

Estos puertos estan reservados y no deben usarse:

Puerto Razon
22 SSH
80 HTTP estandar
443 HTTPS estandar
3000 Muy comun en desarrollo, conflictos frecuentes
8080 Muy comun en desarrollo, conflictos frecuentes

PROCESO DE ASIGNACION

1. Nuevo Proyecto

Cuando: Se crea un proyecto nuevo
Quien: Tech-Leader delega a DevEnv
Proceso:
  1. Identificar siguiente base disponible (multiplos de 10)
  2. Asignar puertos: FE=base, BE=base+1
  3. Registrar en DEVENV-PORTS-INVENTORY.yml
  4. Crear archivo .env.ports en el proyecto
  5. Comunicar puertos asignados al Tech-Leader

2. Nuevo Servicio en Proyecto Existente

Cuando: Se agrega servicio a proyecto existente
Quien: Agente de capa consulta a DevEnv
Proceso:
  1. Verificar puertos disponibles en rango del proyecto (base+2 a base+9)
  2. Asignar siguiente puerto segun tipo de servicio
  3. Actualizar DEVENV-PORTS-INVENTORY.yml
  4. Actualizar .env.ports del proyecto
  5. Comunicar configuracion al agente solicitante

3. Verificacion de Conflictos

# Verificar puerto especifico
lsof -i :3005

# Verificar rango de puertos
for port in {3000..3120}; do
  (echo >/dev/tcp/localhost/$port) 2>/dev/null && echo "Puerto $port en uso"
done

# Puertos en docker
docker ps --format "{{.Ports}}"

# Todos los puertos escuchando
netstat -tlnp | grep LISTEN

TEMPLATE: .env.ports

Cada proyecto debe tener un archivo .env.ports en su raiz:

# =============================================================================
# {NOMBRE_PROYECTO} - PORT ASSIGNMENTS
# =============================================================================
# Archivo centralizado de asignacion de puertos
# Gestionado por: DevEnv Agent
# Fecha: {FECHA}
# Base: {BASE}
# Estandar: FE=base, BE=base+1
# =============================================================================

# SERVICIOS PRINCIPALES
FRONTEND_PORT={BASE}
BACKEND_PORT={BASE+1}

# SERVICIOS ADICIONALES (si aplica)
BACKEND_WS_PORT={BASE+2}
BACKEND_ADMIN_PORT={BASE+3}

# BASES DE DATOS (si son especificos del proyecto)
POSTGRES_PORT={ASIGNADO}
REDIS_PORT={ASIGNADO}

# =============================================================================
# NOTAS
# =============================================================================
# - Estandar: Frontend = base, Backend = base + 1
# - Registrado en: @DEVENV_PORTS
# - Cualquier cambio debe coordinarse con DevEnv Agent
# =============================================================================

SERVICIOS ESPECIALES

Trading Platform - Todos los Servicios

Trading-platform tiene servicios Python integrados en el rango 3080:

trading-platform:
  # Servicios principales (Node.js)
  frontend: 3080
  backend: 3081
  websocket: 3082

  # Servicios Python (FastAPI) - ACTUALIZADO v3.1.0
  ml_engine: 3083
  data_service: 3084
  llm_agent: 3085
  trading_agents: 3086
  ollama_webui: 3087

  # Servicio externo
  ollama: 11434  # LLM server local (sin cambio)

Platform Marketing Content

pmc:
  frontend: 3110
  backend: 3111
  comfyui: 8188  # Servicio externo de IA

ALIAS RELEVANTES

@DEVENV_PORTS: "core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
@DEVENV_STANDARDS: "core/orchestration/referencias/DEVENV-PORT-STANDARDS.md"
@DEVENV_PROFILE: "core/orchestration/agents/perfiles/PERFIL-DEVENV.md"

CHANGELOG

Version Fecha Cambios
2.1.0 2025-12-08 Trading-platform Python services actualizados a rango 3083-3087
2.0.0 2025-12-08 Nuevo estandar: FE=base, BE=base+1 (1 numero diferencia)
1.0.0 2025-12-08 Estandar inicial: FE=base+5, BE=base+6

Version: 2.1.0 | Sistema: SIMCO + DevEnv | Tipo: Referencia