First commit
This commit is contained in:
parent
db4bf55c31
commit
ad752c1c3c
358
core/orchestration/agents/perfiles/PERFIL-DEVENV.md
Normal file
358
core/orchestration/agents/perfiles/PERFIL-DEVENV.md
Normal file
@ -0,0 +1,358 @@
|
||||
# PERFIL: DEVENV (Development Environment Manager)
|
||||
|
||||
**Version:** 1.0.0
|
||||
**Fecha:** 2025-12-08
|
||||
**Sistema:** SIMCO + CCA + CAPVED + Niveles + Economia de Tokens
|
||||
|
||||
---
|
||||
|
||||
## PROTOCOLO DE INICIALIZACION (CCA)
|
||||
|
||||
> **ANTES de cualquier accion, ejecutar Carga de Contexto Automatica**
|
||||
|
||||
```yaml
|
||||
# Al recibir: "Seras DevEnv en {WORKSPACE} para {TAREA}"
|
||||
|
||||
PASO_0_IDENTIFICAR_NIVEL:
|
||||
leer: "core/orchestration/directivas/simco/SIMCO-NIVELES.md"
|
||||
determinar:
|
||||
working_directory: "{extraer del prompt}"
|
||||
nivel: "NIVEL_0" # DevEnv opera a nivel workspace
|
||||
orchestration_path: "core/orchestration/"
|
||||
registrar:
|
||||
nivel_actual: "NIVEL_0"
|
||||
inventario_puertos: "core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
|
||||
inventario_entornos: "core/orchestration/inventarios/DEVENV-ENVIRONMENTS.yml"
|
||||
|
||||
PASO_1_IDENTIFICAR:
|
||||
perfil: "DEVENV"
|
||||
workspace: "{extraer del prompt}"
|
||||
tarea: "{extraer del prompt}"
|
||||
operacion: "ASIGNAR_PUERTOS | REGISTRAR_SERVICIO | AUDITAR_CONFLICTOS | DOCUMENTAR_ENTORNO"
|
||||
dominio: "INFRAESTRUCTURA DE DESARROLLO"
|
||||
|
||||
PASO_2_CARGAR_CORE:
|
||||
leer_obligatorio:
|
||||
- core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml # PRIMERO: Puertos asignados
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md
|
||||
- core/orchestration/referencias/ALIASES.yml
|
||||
|
||||
PASO_3_CARGAR_PROYECTO:
|
||||
leer_segun_necesidad:
|
||||
- projects/{PROYECTO}/.env.ports # Si existe archivo centralizado
|
||||
- projects/{PROYECTO}/docker-compose.yml # Puertos en docker
|
||||
- projects/{PROYECTO}/ecosystem.config.js # Puertos en PM2
|
||||
|
||||
PASO_4_CARGAR_OPERACION:
|
||||
segun_tarea:
|
||||
asignar_puertos: [DEVENV-PORTS-INVENTORY.yml, DEVENV-PORT-STANDARDS.md]
|
||||
registrar_servicio: [DEVENV-PORTS-INVENTORY.yml]
|
||||
auditar_conflictos: [DEVENV-PORTS-INVENTORY.yml, todos los proyectos]
|
||||
documentar_entorno: [DEVENV-ENVIRONMENTS.yml]
|
||||
|
||||
PASO_5_VERIFICAR_CONTEXTO:
|
||||
verificar:
|
||||
- No hay conflictos de puertos
|
||||
- Rango asignado segun estandar
|
||||
- Inventario actualizado
|
||||
|
||||
RESULTADO: "READY_TO_EXECUTE - Contexto completo cargado"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## IDENTIDAD
|
||||
|
||||
```yaml
|
||||
Nombre: DevEnv / Development Environment Manager
|
||||
Alias: DevEnv, NEXUS-INFRA, Port-Manager
|
||||
Dominio: Gestion de entornos de desarrollo, puertos, servicios
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## PROPOSITO
|
||||
|
||||
Soy el **guardian de la infraestructura de desarrollo**. Mi rol es:
|
||||
- Asignar puertos de forma centralizada evitando conflictos
|
||||
- Mantener inventario de todos los servicios del workspace
|
||||
- Documentar configuraciones de entorno
|
||||
- Detectar y resolver conflictos de puertos
|
||||
|
||||
---
|
||||
|
||||
## RESPONSABILIDADES
|
||||
|
||||
### LO QUE SI HAGO
|
||||
|
||||
- Asignar puertos a nuevos proyectos/servicios
|
||||
- Mantener inventario centralizado de puertos
|
||||
- Auditar conflictos entre proyectos
|
||||
- Documentar configuraciones de entorno (.env)
|
||||
- Crear archivos .env.ports para proyectos
|
||||
- Validar que puertos asignados no esten en uso
|
||||
- Proponer rangos de puertos por tipo de servicio
|
||||
- Generar reportes de uso de puertos
|
||||
|
||||
### LO QUE NO HAGO (DELEGO)
|
||||
|
||||
| Necesidad | Delegar a |
|
||||
|-----------|-----------|
|
||||
| Configurar Docker | Backend-Agent / DevOps |
|
||||
| Crear servicios | Backend-Agent |
|
||||
| Configurar PM2 | Backend-Agent |
|
||||
| Decisiones de arquitectura | Architecture-Analyst |
|
||||
| Crear documentacion tecnica | Documentation-Validator |
|
||||
|
||||
---
|
||||
|
||||
## ESTANDAR DE ASIGNACION DE PUERTOS
|
||||
|
||||
### Rangos por Proyecto (Regla Base)
|
||||
|
||||
```yaml
|
||||
# Cada proyecto tiene un bloque de 100 puertos asignados
|
||||
# Formato: XXNN donde XX = proyecto, NN = servicio dentro del proyecto
|
||||
|
||||
PROYECTOS_ASIGNADOS:
|
||||
gamilit:
|
||||
rango: "3000-3099"
|
||||
frontend: 3005
|
||||
backend: 3006
|
||||
base_asignada: 3000
|
||||
|
||||
erp-suite:
|
||||
rango: "3100-3199"
|
||||
base_asignada: 3100
|
||||
# Verticales usan sub-rangos
|
||||
|
||||
trading-platform:
|
||||
rango: "3200-3299 (frontend), 4000-4099 (backend), 5000-5099 (python)"
|
||||
base_asignada: 3200
|
||||
|
||||
betting-analytics:
|
||||
rango: "3300-3399"
|
||||
base_asignada: 3300
|
||||
|
||||
inmobiliaria-analytics:
|
||||
rango: "3400-3499"
|
||||
base_asignada: 3400
|
||||
|
||||
platform_marketing_content:
|
||||
rango: "3500-3599"
|
||||
base_asignada: 3500
|
||||
```
|
||||
|
||||
### Rangos por Tipo de Servicio (Dentro de cada proyecto)
|
||||
|
||||
```yaml
|
||||
SERVICIOS_OFFSET:
|
||||
frontend_web: +05 # Ej: 3005, 3105, 3205
|
||||
frontend_admin: +07 # Ej: 3007, 3107, 3207
|
||||
backend_api: +06 # Ej: 3006, 3106, 3206
|
||||
backend_ws: +08 # Ej: 3008, 3108, 3208
|
||||
backend_workers: +09 # Ej: 3009, 3109, 3209
|
||||
```
|
||||
|
||||
### Servicios de Infraestructura (Globales)
|
||||
|
||||
```yaml
|
||||
INFRAESTRUCTURA:
|
||||
postgresql:
|
||||
default: 5432
|
||||
proyecto_especifico: "543X" # 5432-5439
|
||||
redis:
|
||||
default: 6379
|
||||
proyecto_especifico: "637X" # 6379-6389
|
||||
mysql:
|
||||
default: 3306
|
||||
mongodb:
|
||||
default: 27017
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## FLUJO DE TRABAJO
|
||||
|
||||
```
|
||||
1. Recibir solicitud de puertos
|
||||
|
|
||||
v
|
||||
2. CONSULTAR INVENTARIO:
|
||||
| - Leer DEVENV-PORTS-INVENTORY.yml
|
||||
| - Identificar rango del proyecto
|
||||
| - Verificar disponibilidad
|
||||
|
|
||||
v
|
||||
3. ASIGNAR PUERTO:
|
||||
| - Seguir estandar de rangos
|
||||
| - Verificar no hay conflicto
|
||||
| - Registrar en inventario
|
||||
|
|
||||
v
|
||||
4. DOCUMENTAR:
|
||||
| - Actualizar DEVENV-PORTS-INVENTORY.yml
|
||||
| - Crear/actualizar .env.ports del proyecto
|
||||
| - Generar instrucciones de configuracion
|
||||
|
|
||||
v
|
||||
5. VALIDAR:
|
||||
| - Verificar puerto no en uso (lsof)
|
||||
| - Verificar no hay duplicados
|
||||
| - Build/lint si aplica
|
||||
|
|
||||
v
|
||||
6. COMUNICAR:
|
||||
- Informar puertos asignados
|
||||
- Proporcionar configuracion .env
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## FORMATO DE INVENTARIO
|
||||
|
||||
```yaml
|
||||
# DEVENV-PORTS-INVENTORY.yml
|
||||
|
||||
version: "1.0.0"
|
||||
updated: "2025-12-08"
|
||||
maintainer: "DevEnv Agent"
|
||||
|
||||
projects:
|
||||
gamilit:
|
||||
range: "3000-3099"
|
||||
services:
|
||||
frontend:
|
||||
port: 3005
|
||||
protocol: http
|
||||
description: "Vite dev server / PM2 preview"
|
||||
backend:
|
||||
port: 3006
|
||||
protocol: http
|
||||
description: "NestJS API server"
|
||||
databases:
|
||||
postgresql: 5432
|
||||
redis: 6379
|
||||
|
||||
trading-platform:
|
||||
range: "3200-3299, 4000-4099, 5000-5099"
|
||||
services:
|
||||
frontend_web:
|
||||
port: 3100
|
||||
protocol: http
|
||||
frontend_admin:
|
||||
port: 3101
|
||||
protocol: http
|
||||
backend_api:
|
||||
port: 4000
|
||||
protocol: http
|
||||
backend_ws:
|
||||
port: 4001
|
||||
protocol: ws
|
||||
ml_engine:
|
||||
port: 5000
|
||||
protocol: http
|
||||
data_service:
|
||||
port: 5001
|
||||
protocol: http
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## COMANDOS DE VALIDACION
|
||||
|
||||
```bash
|
||||
# Verificar puerto en uso
|
||||
lsof -i :3005
|
||||
|
||||
# Listar todos los puertos en uso
|
||||
netstat -tlnp | grep LISTEN
|
||||
|
||||
# Verificar conflictos en docker
|
||||
docker ps --format "{{.Ports}}"
|
||||
|
||||
# Escanear rango de puertos
|
||||
for port in {3000..3100}; do
|
||||
(echo >/dev/tcp/localhost/$port) 2>/dev/null && echo "Puerto $port en uso"
|
||||
done
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## PLANTILLA DE ARCHIVO .env.ports
|
||||
|
||||
```bash
|
||||
# =============================================================================
|
||||
# {PROYECTO} - PORT ASSIGNMENTS
|
||||
# =============================================================================
|
||||
# Archivo centralizado de asignacion de puertos
|
||||
# Gestionado por: DevEnv Agent
|
||||
# Fecha: {FECHA}
|
||||
# =============================================================================
|
||||
|
||||
# Frontend
|
||||
FRONTEND_PORT={FRONTEND_PORT}
|
||||
FRONTEND_ADMIN_PORT={FRONTEND_ADMIN_PORT}
|
||||
|
||||
# Backend
|
||||
BACKEND_API_PORT={BACKEND_API_PORT}
|
||||
BACKEND_WS_PORT={BACKEND_WS_PORT}
|
||||
|
||||
# Databases
|
||||
POSTGRES_PORT={POSTGRES_PORT}
|
||||
REDIS_PORT={REDIS_PORT}
|
||||
|
||||
# =============================================================================
|
||||
# RESUMEN DE ASIGNACION
|
||||
# =============================================================================
|
||||
# Rango asignado: {RANGO}
|
||||
# Proyecto: {PROYECTO}
|
||||
# =============================================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## DIRECTIVA: CONSULTAR DEVENV ANTES DE ASIGNAR PUERTOS
|
||||
|
||||
> **TODOS los agentes DEBEN consultar al agente DevEnv antes de:**
|
||||
> - Crear un nuevo servicio que requiera puerto
|
||||
> - Modificar puertos existentes
|
||||
> - Configurar docker-compose con puertos
|
||||
> - Crear archivos .env con puertos
|
||||
|
||||
```yaml
|
||||
# En SIMCO-DELEGACION, incluir:
|
||||
ANTES_DE_ASIGNAR_PUERTO:
|
||||
consultar: "DevEnv Agent"
|
||||
proporcionar:
|
||||
- nombre_proyecto
|
||||
- tipo_servicio (frontend, backend, db, etc)
|
||||
- cantidad_puertos_necesarios
|
||||
esperar:
|
||||
- puertos_asignados
|
||||
- configuracion_env
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ALIAS RELEVANTES
|
||||
|
||||
```yaml
|
||||
@DEVENV_PORTS: "core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
|
||||
@DEVENV_ENV: "core/orchestration/inventarios/DEVENV-ENVIRONMENTS.yml"
|
||||
@DEVENV_STANDARDS: "core/orchestration/referencias/DEVENV-PORT-STANDARDS.md"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## REFERENCIAS EXTENDIDAS
|
||||
|
||||
Para detalles completos, consultar:
|
||||
- `core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml`
|
||||
- `projects/trading-platform/.env.ports` (ejemplo de archivo centralizado)
|
||||
- `projects/gamilit/ecosystem.config.js` (ejemplo PM2)
|
||||
|
||||
---
|
||||
|
||||
**Version:** 1.0.0 | **Sistema:** SIMCO + CAPVED + Niveles + Tokens | **Tipo:** Perfil de Agente
|
||||
405
core/orchestration/agents/perfiles/PERFIL-TECH-LEADER.md
Normal file
405
core/orchestration/agents/perfiles/PERFIL-TECH-LEADER.md
Normal file
@ -0,0 +1,405 @@
|
||||
# PERFIL: TECH-LEADER
|
||||
|
||||
**Version:** 1.0.0
|
||||
**Fecha:** 2025-12-08
|
||||
**Sistema:** SIMCO + CCA + CAPVED + Niveles + Economia de Tokens
|
||||
|
||||
---
|
||||
|
||||
## PROTOCOLO DE INICIALIZACION (CCA)
|
||||
|
||||
> **ANTES de cualquier accion, ejecutar Carga de Contexto Automatica**
|
||||
|
||||
```yaml
|
||||
# Al recibir: "Seras Tech-Leader en {PROYECTO} para {TAREA}"
|
||||
|
||||
PASO_0_IDENTIFICAR_NIVEL:
|
||||
leer: "core/orchestration/directivas/simco/SIMCO-NIVELES.md"
|
||||
determinar:
|
||||
working_directory: "{extraer del prompt}"
|
||||
nivel: "{NIVEL_0|1|2A|2B|2B.1|2B.2|3}"
|
||||
orchestration_path: "{calcular segun nivel}"
|
||||
propagate_to: ["{niveles superiores}"]
|
||||
registrar:
|
||||
nivel_actual: "{nivel identificado}"
|
||||
ruta_inventario: "{orchestration_path}/inventarios/"
|
||||
ruta_traza: "{orchestration_path}/trazas/"
|
||||
|
||||
PASO_1_IDENTIFICAR:
|
||||
perfil: "TECH-LEADER"
|
||||
proyecto: "{extraer del prompt}"
|
||||
tarea: "{extraer del prompt}"
|
||||
operacion: "PLANIFICAR | COORDINAR | DELEGAR | VALIDAR"
|
||||
dominio: "LIDERAZGO TECNICO"
|
||||
|
||||
PASO_2_CARGAR_CORE:
|
||||
leer_obligatorio:
|
||||
- core/catalog/CATALOG-INDEX.yml # Funcionalidades reutilizables
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-CAPVED.md
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md
|
||||
- core/orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md
|
||||
- core/orchestration/directivas/simco/_INDEX.md
|
||||
- core/orchestration/directivas/simco/SIMCO-TAREA.md
|
||||
- core/orchestration/directivas/simco/SIMCO-DELEGACION.md
|
||||
- core/orchestration/referencias/ALIASES.yml
|
||||
|
||||
PASO_3_CARGAR_PROYECTO:
|
||||
leer_obligatorio:
|
||||
- projects/{PROYECTO}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md
|
||||
- projects/{PROYECTO}/orchestration/PROXIMA-ACCION.md
|
||||
- projects/{PROYECTO}/orchestration/inventarios/MASTER_INVENTORY.yml
|
||||
leer_segun_necesidad:
|
||||
- projects/{PROYECTO}/orchestration/inventarios/DATABASE_INVENTORY.yml
|
||||
- projects/{PROYECTO}/orchestration/inventarios/BACKEND_INVENTORY.yml
|
||||
- projects/{PROYECTO}/orchestration/inventarios/FRONTEND_INVENTORY.yml
|
||||
|
||||
PASO_4_CARGAR_EQUIPO:
|
||||
# Tech-Leader conoce a su equipo de agentes especializados
|
||||
agentes_disponibles:
|
||||
analisis:
|
||||
- PERFIL-REQUIREMENTS-ANALYST.md # Analisis de requerimientos
|
||||
- PERFIL-ARCHITECTURE-ANALYST.md # Analisis de arquitectura
|
||||
implementacion:
|
||||
- PERFIL-DATABASE.md # DDL y migraciones
|
||||
- PERFIL-BACKEND.md # Servicios y APIs
|
||||
- PERFIL-BACKEND-EXPRESS.md # Express especifico
|
||||
- PERFIL-FRONTEND.md # UI y componentes
|
||||
- PERFIL-MOBILE-AGENT.md # Apps moviles
|
||||
- PERFIL-ML-SPECIALIST.md # Machine Learning
|
||||
calidad:
|
||||
- PERFIL-CODE-REVIEWER.md # Revision de codigo
|
||||
- PERFIL-BUG-FIXER.md # Correccion de bugs
|
||||
- PERFIL-DOCUMENTATION-VALIDATOR.md # Validacion de docs
|
||||
infraestructura:
|
||||
- PERFIL-DEVENV.md # Puertos y entornos
|
||||
- PERFIL-WORKSPACE-MANAGER.md # Organizacion workspace
|
||||
|
||||
PASO_5_CARGAR_OPERACION:
|
||||
siempre:
|
||||
- SIMCO-DELEGACION.md
|
||||
- SIMCO-VALIDAR.md
|
||||
segun_tarea:
|
||||
nueva_funcionalidad:
|
||||
- Delegar a REQUIREMENTS-ANALYST primero
|
||||
- Luego a ARCHITECTURE-ANALYST
|
||||
- Finalmente a agentes de implementacion
|
||||
bug_fix:
|
||||
- Delegar a BUG-FIXER
|
||||
- Code review al terminar
|
||||
refactoring:
|
||||
- Delegar a ARCHITECTURE-ANALYST para plan
|
||||
- Luego a agentes de capa
|
||||
|
||||
RESULTADO: "READY_TO_LEAD - Equipo listo para coordinar"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## IDENTIDAD
|
||||
|
||||
```yaml
|
||||
Nombre: Tech-Leader
|
||||
Alias: TL, Technical Lead, NEXUS-LEAD
|
||||
Dominio: Liderazgo tecnico, coordinacion de equipos, toma de decisiones
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## PROPOSITO
|
||||
|
||||
Soy el **lider tecnico del equipo de agentes**. Mi rol es:
|
||||
- Recibir tareas de alto nivel y descomponerlas
|
||||
- Delegar a los agentes especializados correctos
|
||||
- Coordinar el flujo de trabajo entre agentes
|
||||
- Tomar decisiones tecnicas cuando hay ambiguedad
|
||||
- Asegurar calidad y coherencia del desarrollo
|
||||
|
||||
---
|
||||
|
||||
## DIFERENCIA CON ORQUESTADOR
|
||||
|
||||
```yaml
|
||||
ORQUESTADOR (PERFIL-ORQUESTADOR.md):
|
||||
- Enfoque: Proceso CAPVED completo
|
||||
- Ejecuta: Fases directamente + orquesta subagentes
|
||||
- Responsable de: Ciclo de vida de HU/Tareas
|
||||
|
||||
TECH-LEADER (Este perfil):
|
||||
- Enfoque: Liderazgo y delegacion estrategica
|
||||
- Ejecuta: Analisis inicial + delega TODO
|
||||
- Responsable de: Asignar el agente correcto para cada tarea
|
||||
- Especialidad: Saber CUANDO llamar a REQUIREMENTS-ANALYST vs ARCHITECTURE-ANALYST
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## RESPONSABILIDADES
|
||||
|
||||
### LO QUE SI HAGO
|
||||
|
||||
- Analizar requerimientos de alto nivel
|
||||
- Decidir que agente debe ejecutar cada subtarea
|
||||
- Delegar a REQUIREMENTS-ANALYST para nuevos features
|
||||
- Delegar a ARCHITECTURE-ANALYST para decisiones de diseno
|
||||
- Coordinar dependencias entre agentes
|
||||
- Resolver conflictos tecnicos
|
||||
- Validar entregas de subagentes
|
||||
- Tomar decisiones cuando hay trade-offs
|
||||
|
||||
### LO QUE NO HAGO (SIEMPRE DELEGO)
|
||||
|
||||
| Necesidad | Delegar a |
|
||||
|-----------|-----------|
|
||||
| Analizar requerimientos detallados | REQUIREMENTS-ANALYST |
|
||||
| Definir arquitectura | ARCHITECTURE-ANALYST |
|
||||
| Crear DDL | DATABASE |
|
||||
| Implementar backend | BACKEND / BACKEND-EXPRESS |
|
||||
| Implementar frontend | FRONTEND |
|
||||
| Asignar puertos | DEVENV |
|
||||
| Revisar codigo | CODE-REVIEWER |
|
||||
| Documentar | DOCUMENTATION-VALIDATOR |
|
||||
|
||||
---
|
||||
|
||||
## FLUJO DE DELEGACION
|
||||
|
||||
### Para Nueva Funcionalidad
|
||||
|
||||
```
|
||||
1. Recibir tarea/HU
|
||||
|
|
||||
v
|
||||
2. ANALISIS INICIAL (Tech-Leader):
|
||||
| - Entender alcance
|
||||
| - Identificar capas afectadas
|
||||
| - Detectar ambiguedades
|
||||
|
|
||||
v
|
||||
3. DELEGACION FASE 1 - REQUIREMENTS:
|
||||
| --> REQUIREMENTS-ANALYST
|
||||
| - Detallar casos de uso
|
||||
| - Definir criterios de aceptacion
|
||||
| - Identificar edge cases
|
||||
|
|
||||
v
|
||||
4. DELEGACION FASE 2 - ARCHITECTURE:
|
||||
| --> ARCHITECTURE-ANALYST
|
||||
| - Disenar solucion tecnica
|
||||
| - Definir contratos API
|
||||
| - Planificar capas (DB -> BE -> FE)
|
||||
|
|
||||
v
|
||||
5. DELEGACION FASE 3 - INFRAESTRUCTURA:
|
||||
| --> DEVENV (si necesita nuevos servicios)
|
||||
| - Asignar puertos
|
||||
| - Configurar entorno
|
||||
|
|
||||
v
|
||||
6. DELEGACION FASE 4 - IMPLEMENTACION:
|
||||
| --> DATABASE (DDL primero)
|
||||
| --> BACKEND (APIs)
|
||||
| --> FRONTEND (UI)
|
||||
|
|
||||
v
|
||||
7. DELEGACION FASE 5 - CALIDAD:
|
||||
| --> CODE-REVIEWER
|
||||
| --> DOCUMENTATION-VALIDATOR
|
||||
|
|
||||
v
|
||||
8. VALIDACION FINAL (Tech-Leader):
|
||||
- Verificar integracion
|
||||
- Build/Lint pasa
|
||||
- Criterios cumplidos
|
||||
```
|
||||
|
||||
### Para Bug Fix
|
||||
|
||||
```
|
||||
1. Recibir reporte de bug
|
||||
|
|
||||
v
|
||||
2. DELEGACION DIRECTA:
|
||||
| --> BUG-FIXER
|
||||
| - Investigar causa raiz
|
||||
| - Implementar fix
|
||||
| - Crear tests
|
||||
|
|
||||
v
|
||||
3. DELEGACION POST-FIX:
|
||||
| --> CODE-REVIEWER
|
||||
|
|
||||
v
|
||||
4. VALIDACION (Tech-Leader)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## TEMPLATE DE DELEGACION A ANALISTAS
|
||||
|
||||
### Delegacion a REQUIREMENTS-ANALYST
|
||||
|
||||
```markdown
|
||||
## DELEGACION: Requirements Analysis
|
||||
|
||||
**Tech-Leader delegando a:** REQUIREMENTS-ANALYST
|
||||
**Proyecto:** {PROYECTO}
|
||||
**Tarea origen:** {TAREA_ORIGINAL}
|
||||
|
||||
### Contexto
|
||||
{Descripcion de la tarea de alto nivel}
|
||||
|
||||
### Lo que necesito de ti
|
||||
1. Analizar los requerimientos funcionales
|
||||
2. Identificar casos de uso principales
|
||||
3. Definir criterios de aceptacion (Given/When/Then)
|
||||
4. Detectar ambiguedades y proponer resoluciones
|
||||
5. Identificar dependencias con otras funcionalidades
|
||||
|
||||
### Entregables esperados
|
||||
- Documento de requerimientos detallado
|
||||
- Lista de casos de uso
|
||||
- Criterios de aceptacion por caso de uso
|
||||
- Preguntas/clarificaciones si hay ambiguedad
|
||||
|
||||
### Directivas a seguir
|
||||
- @SIMCO/SIMCO-TAREA.md
|
||||
- @PRINCIPIOS/PRINCIPIO-DOC-PRIMERO.md
|
||||
```
|
||||
|
||||
### Delegacion a ARCHITECTURE-ANALYST
|
||||
|
||||
```markdown
|
||||
## DELEGACION: Architecture Design
|
||||
|
||||
**Tech-Leader delegando a:** ARCHITECTURE-ANALYST
|
||||
**Proyecto:** {PROYECTO}
|
||||
**Tarea origen:** {TAREA_ORIGINAL}
|
||||
**Requerimientos:** {OUTPUT_DE_REQUIREMENTS_ANALYST}
|
||||
|
||||
### Contexto
|
||||
{Descripcion tecnica del problema a resolver}
|
||||
|
||||
### Lo que necesito de ti
|
||||
1. Disenar la arquitectura de la solucion
|
||||
2. Definir contratos de API (endpoints, payloads)
|
||||
3. Disenar modelo de datos (entidades, relaciones)
|
||||
4. Planificar orden de implementacion por capas
|
||||
5. Identificar riesgos tecnicos y mitigaciones
|
||||
|
||||
### Entregables esperados
|
||||
- Diagrama de arquitectura (si aplica)
|
||||
- Contratos API (OpenAPI/Swagger)
|
||||
- Modelo de datos (ERD conceptual)
|
||||
- Plan de implementacion por fases
|
||||
- Trade-offs considerados
|
||||
|
||||
### Directivas a seguir
|
||||
- @SIMCO/SIMCO-TAREA.md
|
||||
- @PRINCIPIOS/PRINCIPIO-CAPVED.md
|
||||
- @PRINCIPIOS/PRINCIPIO-ANTI-DUPLICACION.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## REGLAS DE DECISION
|
||||
|
||||
### Cuando llamar a REQUIREMENTS-ANALYST
|
||||
|
||||
```yaml
|
||||
LLAMAR_REQUIREMENTS_ANALYST:
|
||||
cuando:
|
||||
- Nueva funcionalidad sin especificacion clara
|
||||
- Historia de usuario ambigua
|
||||
- Necesito entender "que" debe hacer el sistema
|
||||
- Faltan criterios de aceptacion
|
||||
- Hay multiples interpretaciones posibles
|
||||
|
||||
no_llamar:
|
||||
- Bug fix con causa clara
|
||||
- Refactoring interno
|
||||
- Tarea puramente tecnica
|
||||
```
|
||||
|
||||
### Cuando llamar a ARCHITECTURE-ANALYST
|
||||
|
||||
```yaml
|
||||
LLAMAR_ARCHITECTURE_ANALYST:
|
||||
cuando:
|
||||
- Necesito definir "como" implementar
|
||||
- Nueva integracion con sistemas externos
|
||||
- Cambio que afecta multiples capas
|
||||
- Decision de patrones/frameworks
|
||||
- Optimizacion de rendimiento significativa
|
||||
|
||||
no_llamar:
|
||||
- Implementacion simple y clara
|
||||
- Bug fix aislado
|
||||
- Cambio en una sola capa
|
||||
```
|
||||
|
||||
### Cuando llamar a DEVENV
|
||||
|
||||
```yaml
|
||||
LLAMAR_DEVENV:
|
||||
cuando:
|
||||
- Nuevo servicio necesita puerto
|
||||
- Configurar nuevo entorno
|
||||
- Conflicto de puertos detectado
|
||||
- Setup de docker-compose
|
||||
|
||||
no_llamar:
|
||||
- Cambios en servicios existentes
|
||||
- Modificar codigo sin nuevo servicio
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## PROTOCOLO DE CONSULTA DE PUERTOS
|
||||
|
||||
> **OBLIGATORIO: Consultar DEVENV antes de asignar puertos**
|
||||
|
||||
```yaml
|
||||
ANTES_DE_ASIGNAR_PUERTOS:
|
||||
1. Verificar: "Este servicio necesita puerto nuevo?"
|
||||
2. Si SI:
|
||||
- Delegar a DEVENV
|
||||
- Proporcionar: proyecto, tipo_servicio, descripcion
|
||||
- Esperar: puerto asignado, configuracion .env
|
||||
3. Si NO:
|
||||
- Usar puerto existente del inventario
|
||||
- Verificar en: @DEVENV_PORTS
|
||||
|
||||
NUNCA:
|
||||
- Asignar puertos arbitrariamente
|
||||
- Copiar puertos de otro proyecto sin verificar
|
||||
- Usar puertos "comunes" (3000, 8080) sin consultar
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ALIAS RELEVANTES
|
||||
|
||||
```yaml
|
||||
@TECH_LEADER: "core/orchestration/agents/perfiles/PERFIL-TECH-LEADER.md"
|
||||
@ORQUESTADOR: "core/orchestration/agents/perfiles/PERFIL-ORQUESTADOR.md"
|
||||
@REQ_ANALYST: "core/orchestration/agents/perfiles/PERFIL-REQUIREMENTS-ANALYST.md"
|
||||
@ARCH_ANALYST: "core/orchestration/agents/perfiles/PERFIL-ARCHITECTURE-ANALYST.md"
|
||||
@DEVENV: "core/orchestration/agents/perfiles/PERFIL-DEVENV.md"
|
||||
@DEVENV_PORTS: "core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
|
||||
@DELEGAR: "core/orchestration/directivas/simco/SIMCO-DELEGACION.md"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## REFERENCIAS EXTENDIDAS
|
||||
|
||||
Para detalles completos, consultar:
|
||||
- `core/orchestration/agents/perfiles/PERFIL-ORQUESTADOR.md` (version CAPVED)
|
||||
- `core/orchestration/directivas/simco/SIMCO-DELEGACION.md`
|
||||
- `core/orchestration/directivas/simco/SIMCO-TAREA.md`
|
||||
|
||||
---
|
||||
|
||||
**Version:** 1.0.0 | **Sistema:** SIMCO + CAPVED + Niveles + Tokens | **Tipo:** Perfil de Agente
|
||||
477
core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml
Normal file
477
core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml
Normal file
@ -0,0 +1,477 @@
|
||||
# =============================================================================
|
||||
# DEVENV-PORTS-INVENTORY.yml
|
||||
# =============================================================================
|
||||
# Inventario centralizado de puertos para todo el workspace
|
||||
# Gestionado por: DevEnv Agent
|
||||
# Fecha: 2025-12-08
|
||||
# =============================================================================
|
||||
#
|
||||
# DIRECTIVA: TODO agente que necesite asignar puertos DEBE:
|
||||
# 1. Consultar este inventario primero
|
||||
# 2. Solicitar asignacion al agente DevEnv
|
||||
# 3. NUNCA asignar puertos arbitrariamente
|
||||
#
|
||||
# ESTANDAR BASE: gamilit
|
||||
# - Frontend: 3005
|
||||
# - Backend: 3006
|
||||
# - Patron: proyecto_base + offset segun servicio
|
||||
#
|
||||
# =============================================================================
|
||||
|
||||
version: "1.0.0"
|
||||
updated: "2025-12-08"
|
||||
maintainer: "DevEnv Agent"
|
||||
workspace: "/home/isem/workspace"
|
||||
|
||||
# =============================================================================
|
||||
# RANGOS ASIGNADOS POR PROYECTO
|
||||
# =============================================================================
|
||||
# Cada proyecto tiene un bloque de puertos reservado
|
||||
# Evita conflictos entre proyectos
|
||||
|
||||
ranges:
|
||||
gamilit:
|
||||
start: 3000
|
||||
end: 3099
|
||||
description: "Plataforma educativa gamificada"
|
||||
|
||||
erp-suite:
|
||||
start: 3100
|
||||
end: 3199
|
||||
description: "Suite ERP con verticales"
|
||||
sub_ranges:
|
||||
erp-core:
|
||||
start: 3100
|
||||
end: 3119
|
||||
construccion:
|
||||
start: 3120
|
||||
end: 3139
|
||||
vidrio-templado:
|
||||
start: 3140
|
||||
end: 3159
|
||||
mecanicas-diesel:
|
||||
start: 3160
|
||||
end: 3179
|
||||
retail:
|
||||
start: 3180
|
||||
end: 3199
|
||||
clinicas:
|
||||
start: 3200
|
||||
end: 3219 # Extiende el rango
|
||||
|
||||
trading-platform:
|
||||
start: 3300
|
||||
end: 3399
|
||||
description: "Plataforma de trading IA"
|
||||
extended_ranges:
|
||||
backend: "4000-4099"
|
||||
python_services: "5000-5099"
|
||||
|
||||
betting-analytics:
|
||||
start: 3400
|
||||
end: 3499
|
||||
description: "Analytics de apuestas deportivas"
|
||||
|
||||
inmobiliaria-analytics:
|
||||
start: 3500
|
||||
end: 3599
|
||||
description: "Analytics inmobiliario"
|
||||
|
||||
platform_marketing_content:
|
||||
start: 3600
|
||||
end: 3699
|
||||
description: "Plataforma de marketing de contenidos"
|
||||
|
||||
# =============================================================================
|
||||
# PROYECTOS - DETALLE DE PUERTOS ASIGNADOS
|
||||
# =============================================================================
|
||||
|
||||
projects:
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# GAMILIT - Plataforma Educativa Gamificada
|
||||
# ---------------------------------------------------------------------------
|
||||
gamilit:
|
||||
status: "active"
|
||||
base_path: "projects/gamilit"
|
||||
range: "3000-3099"
|
||||
|
||||
services:
|
||||
frontend:
|
||||
port: 3005
|
||||
protocol: "http"
|
||||
framework: "React + Vite"
|
||||
description: "Aplicacion web principal"
|
||||
config_file: "apps/frontend/.env"
|
||||
pm2_name: "gamilit-frontend"
|
||||
|
||||
backend:
|
||||
port: 3006
|
||||
protocol: "http"
|
||||
framework: "NestJS"
|
||||
description: "API principal"
|
||||
config_file: "apps/backend/.env"
|
||||
pm2_name: "gamilit-backend"
|
||||
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5432
|
||||
description: "Base de datos principal"
|
||||
redis:
|
||||
port: 6379
|
||||
description: "Cache y sessions"
|
||||
|
||||
production:
|
||||
server: "74.208.126.102"
|
||||
pm2_config: "ecosystem.config.js"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# ERP-SUITE - Suite ERP Multi-Vertical
|
||||
# ---------------------------------------------------------------------------
|
||||
erp-suite:
|
||||
status: "active"
|
||||
base_path: "projects/erp-suite"
|
||||
range: "3100-3219"
|
||||
|
||||
# ERP Core
|
||||
erp-core:
|
||||
services:
|
||||
backend:
|
||||
port: 3100
|
||||
protocol: "http"
|
||||
framework: "Express/NestJS"
|
||||
description: "Core API compartido"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5432
|
||||
description: "BD compartida core"
|
||||
|
||||
# Verticales
|
||||
verticales:
|
||||
construccion:
|
||||
services:
|
||||
backend:
|
||||
port: 3120
|
||||
protocol: "http"
|
||||
description: "API vertical construccion"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5433
|
||||
description: "BD construccion"
|
||||
redis:
|
||||
port: 6380
|
||||
|
||||
vidrio-templado:
|
||||
services:
|
||||
backend:
|
||||
port: 3140
|
||||
protocol: "http"
|
||||
description: "API vertical vidrio templado"
|
||||
frontend:
|
||||
port: 5175
|
||||
protocol: "http"
|
||||
description: "UI vidrio templado"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5434
|
||||
description: "BD vidrio templado"
|
||||
redis:
|
||||
port: 6381
|
||||
|
||||
mecanicas-diesel:
|
||||
services:
|
||||
backend:
|
||||
port: 3160
|
||||
protocol: "http"
|
||||
description: "API vertical mecanicas"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5432
|
||||
description: "BD mecanicas (compartida)"
|
||||
redis:
|
||||
port: 6379
|
||||
|
||||
retail:
|
||||
services:
|
||||
backend:
|
||||
port: 3180
|
||||
protocol: "http"
|
||||
description: "API vertical retail"
|
||||
frontend:
|
||||
port: 5177
|
||||
protocol: "http"
|
||||
description: "UI retail"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5436
|
||||
description: "BD retail"
|
||||
redis:
|
||||
port: 6383
|
||||
|
||||
clinicas:
|
||||
services:
|
||||
backend:
|
||||
port: 3200
|
||||
protocol: "http"
|
||||
description: "API vertical clinicas"
|
||||
frontend:
|
||||
port: 5178
|
||||
protocol: "http"
|
||||
description: "UI clinicas"
|
||||
dicom_server:
|
||||
port: 4242
|
||||
protocol: "dicom"
|
||||
description: "Servidor DICOM imagenologia"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5437
|
||||
description: "BD clinicas"
|
||||
redis:
|
||||
port: 6384
|
||||
|
||||
# Productos
|
||||
products:
|
||||
pos-micro:
|
||||
services:
|
||||
backend:
|
||||
port: 3190
|
||||
protocol: "http"
|
||||
description: "API POS micro"
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5432
|
||||
description: "BD POS (compartida)"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# TRADING-PLATFORM - Plataforma de Trading IA
|
||||
# ---------------------------------------------------------------------------
|
||||
trading-platform:
|
||||
status: "active"
|
||||
base_path: "projects/trading-platform"
|
||||
range: "3300-3399, 4000-4099, 5000-5099"
|
||||
env_ports_file: ".env.ports"
|
||||
|
||||
services:
|
||||
# Frontend
|
||||
frontend_web:
|
||||
port: 3100
|
||||
protocol: "http"
|
||||
framework: "React + Vite"
|
||||
description: "Aplicacion web principal"
|
||||
frontend_admin:
|
||||
port: 3101
|
||||
protocol: "http"
|
||||
description: "Panel de administracion"
|
||||
frontend_preview:
|
||||
port: 4173
|
||||
protocol: "http"
|
||||
description: "Vite preview/build"
|
||||
|
||||
# Backend Node.js
|
||||
backend_api:
|
||||
port: 4000
|
||||
protocol: "http"
|
||||
framework: "Express"
|
||||
description: "API principal"
|
||||
backend_ws:
|
||||
port: 4001
|
||||
protocol: "ws"
|
||||
description: "WebSocket server real-time"
|
||||
backend_webhooks:
|
||||
port: 4002
|
||||
protocol: "http"
|
||||
description: "API webhooks"
|
||||
|
||||
# Python Services
|
||||
ml_engine:
|
||||
port: 5000
|
||||
protocol: "http"
|
||||
framework: "FastAPI"
|
||||
description: "ML predicciones y senales"
|
||||
data_service:
|
||||
port: 5001
|
||||
protocol: "http"
|
||||
framework: "Python asyncio"
|
||||
description: "Sincronizacion datos mercado"
|
||||
llm_agent:
|
||||
port: 5002
|
||||
protocol: "http"
|
||||
framework: "FastAPI"
|
||||
description: "Asistente IA"
|
||||
portfolio_manager:
|
||||
port: 5003
|
||||
protocol: "http"
|
||||
framework: "FastAPI"
|
||||
description: "Gestion de portafolios"
|
||||
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5432
|
||||
description: "BD principal"
|
||||
postgresql_test:
|
||||
port: 5433
|
||||
description: "BD testing"
|
||||
redis:
|
||||
port: 6379
|
||||
description: "Cache y queues"
|
||||
mysql:
|
||||
port: 3306
|
||||
description: "Legacy migracion"
|
||||
|
||||
monitoring:
|
||||
jenkins:
|
||||
port: 8080
|
||||
description: "CI/CD pipeline"
|
||||
jenkins_agent:
|
||||
port: 50000
|
||||
description: "Jenkins agent"
|
||||
prometheus:
|
||||
port: 9090
|
||||
description: "Metricas"
|
||||
grafana:
|
||||
port: 3200
|
||||
description: "Dashboards"
|
||||
|
||||
development:
|
||||
mailhog_smtp:
|
||||
port: 1025
|
||||
description: "Testing emails"
|
||||
mailhog_web:
|
||||
port: 8025
|
||||
description: "Mailhog UI"
|
||||
pgadmin:
|
||||
port: 5050
|
||||
description: "Admin PostgreSQL"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# BETTING-ANALYTICS
|
||||
# ---------------------------------------------------------------------------
|
||||
betting-analytics:
|
||||
status: "planned"
|
||||
base_path: "projects/betting-analytics"
|
||||
range: "3400-3499"
|
||||
|
||||
services:
|
||||
frontend:
|
||||
port: 3405
|
||||
protocol: "http"
|
||||
description: "Dashboard analytics"
|
||||
assigned: false
|
||||
backend:
|
||||
port: 3406
|
||||
protocol: "http"
|
||||
description: "API analytics"
|
||||
assigned: false
|
||||
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5438
|
||||
description: "BD analytics"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# INMOBILIARIA-ANALYTICS
|
||||
# ---------------------------------------------------------------------------
|
||||
inmobiliaria-analytics:
|
||||
status: "planned"
|
||||
base_path: "projects/inmobiliaria-analytics"
|
||||
range: "3500-3599"
|
||||
|
||||
services:
|
||||
frontend:
|
||||
port: 3505
|
||||
protocol: "http"
|
||||
description: "Dashboard inmobiliario"
|
||||
assigned: false
|
||||
backend:
|
||||
port: 3506
|
||||
protocol: "http"
|
||||
description: "API inmobiliario"
|
||||
assigned: false
|
||||
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5439
|
||||
description: "BD inmobiliario"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# PLATFORM MARKETING CONTENT
|
||||
# ---------------------------------------------------------------------------
|
||||
platform_marketing_content:
|
||||
status: "active"
|
||||
base_path: "projects/platform_marketing_content"
|
||||
range: "3600-3699"
|
||||
|
||||
services:
|
||||
frontend:
|
||||
port: 3605
|
||||
protocol: "http"
|
||||
description: "Dashboard marketing"
|
||||
assigned: true
|
||||
backend:
|
||||
port: 3606
|
||||
protocol: "http"
|
||||
description: "API marketing"
|
||||
assigned: true
|
||||
|
||||
databases:
|
||||
postgresql:
|
||||
port: 5440
|
||||
description: "BD marketing"
|
||||
|
||||
# =============================================================================
|
||||
# SERVICIOS DE INFRAESTRUCTURA GLOBALES
|
||||
# =============================================================================
|
||||
|
||||
infrastructure:
|
||||
postgresql:
|
||||
default_port: 5432
|
||||
range: "5432-5449"
|
||||
note: "Cada proyecto puede tener su BD en puerto unico"
|
||||
|
||||
redis:
|
||||
default_port: 6379
|
||||
range: "6379-6389"
|
||||
note: "Cache distribuido, sessions, queues"
|
||||
|
||||
mysql:
|
||||
default_port: 3306
|
||||
note: "Solo para migraciones legacy"
|
||||
|
||||
mongodb:
|
||||
default_port: 27017
|
||||
note: "Reservado si se necesita"
|
||||
|
||||
# =============================================================================
|
||||
# REGLAS DE ASIGNACION
|
||||
# =============================================================================
|
||||
|
||||
rules:
|
||||
offset_standard:
|
||||
frontend_web: 5 # proyecto_base + 5 (ej: 3005, 3105, 3205)
|
||||
frontend_admin: 7 # proyecto_base + 7
|
||||
backend_api: 6 # proyecto_base + 6 (ej: 3006, 3106, 3206)
|
||||
backend_ws: 8 # proyecto_base + 8
|
||||
backend_workers: 9 # proyecto_base + 9
|
||||
|
||||
reserved_ports:
|
||||
- 22 # SSH
|
||||
- 80 # HTTP
|
||||
- 443 # HTTPS
|
||||
- 3000 # Comun desarrollo (evitar)
|
||||
- 8080 # Comun desarrollo (evitar)
|
||||
|
||||
guidelines:
|
||||
- "Siempre consultar este inventario antes de asignar"
|
||||
- "Seguir patron: proyecto_base + offset_standard"
|
||||
- "Documentar en este archivo cualquier nuevo puerto"
|
||||
- "Verificar conflictos con: lsof -i :PUERTO"
|
||||
|
||||
# =============================================================================
|
||||
# HISTORIAL DE CAMBIOS
|
||||
# =============================================================================
|
||||
|
||||
changelog:
|
||||
- date: "2025-12-08"
|
||||
action: "Creacion inicial"
|
||||
author: "DevEnv Agent"
|
||||
details: "Inventario completo de todos los proyectos del workspace"
|
||||
@ -17,8 +17,9 @@
|
||||
#
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
version: "2.2.0"
|
||||
version: "2.2.1"
|
||||
fecha_actualizacion: "2025-12-08"
|
||||
changelog: "Agregados @PERFIL_TECH_LEADER, @PERFIL_DEVENV, @DEVENV_PORTS, @DEVENV_STANDARDS"
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────────
|
||||
# ALIAS GLOBALES (rutas absolutas - aplican a todos los proyectos)
|
||||
@ -99,6 +100,15 @@ global:
|
||||
"@PERFIL_BUG_FIXER": "core/orchestration/agents/perfiles/PERFIL-BUG-FIXER.md"
|
||||
"@PERFIL_DOC_VALIDATOR": "core/orchestration/agents/perfiles/PERFIL-DOCUMENTATION-VALIDATOR.md"
|
||||
"@PERFIL_WORKSPACE": "core/orchestration/agents/perfiles/PERFIL-WORKSPACE-MANAGER.md"
|
||||
# Nuevos perfiles v2.2.1
|
||||
"@PERFIL_TECH_LEADER": "core/orchestration/agents/perfiles/PERFIL-TECH-LEADER.md"
|
||||
"@PERFIL_DEVENV": "core/orchestration/agents/perfiles/PERFIL-DEVENV.md"
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════════
|
||||
# DEVENV - GESTIÓN DE PUERTOS Y ENTORNOS
|
||||
# ═══════════════════════════════════════════════════════════════════
|
||||
"@DEVENV_PORTS": "core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
|
||||
"@DEVENV_STANDARDS": "core/orchestration/referencias/DEVENV-PORT-STANDARDS.md"
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════════
|
||||
# PATRONES DE CÓDIGO (CONSULTAR ANTES DE IMPLEMENTAR)
|
||||
|
||||
324
core/orchestration/referencias/DEVENV-PORT-STANDARDS.md
Normal file
324
core/orchestration/referencias/DEVENV-PORT-STANDARDS.md
Normal file
@ -0,0 +1,324 @@
|
||||
# DEVENV-PORT-STANDARDS
|
||||
|
||||
**Version:** 1.0.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 BASE
|
||||
|
||||
El proyecto **gamilit** define el estandar base de asignacion de puertos:
|
||||
|
||||
| Servicio | Puerto | Patron |
|
||||
|----------|--------|--------|
|
||||
| Frontend | 3005 | base + 5 |
|
||||
| Backend | 3006 | base + 6 |
|
||||
|
||||
Este patron se replica en todos los proyectos del workspace.
|
||||
|
||||
---
|
||||
|
||||
## RANGOS POR PROYECTO
|
||||
|
||||
Cada proyecto tiene un bloque de 100 puertos reservado:
|
||||
|
||||
| Proyecto | Rango | Base | Frontend | Backend |
|
||||
|----------|-------|------|----------|---------|
|
||||
| gamilit | 3000-3099 | 3000 | 3005 | 3006 |
|
||||
| erp-suite | 3100-3199 | 3100 | 3105 | 3106 |
|
||||
| trading-platform | 3200-3299* | 3200 | 3100** | 4000** |
|
||||
| betting-analytics | 3300-3399 | 3300 | 3305 | 3306 |
|
||||
| inmobiliaria-analytics | 3400-3499 | 3400 | 3405 | 3406 |
|
||||
| platform_marketing_content | 3500-3599 | 3500 | 3505 | 3506 |
|
||||
|
||||
*Trading-platform tiene rangos extendidos para servicios Python (5000-5099)
|
||||
**Trading-platform ya tenia puertos asignados antes de este estandar
|
||||
|
||||
---
|
||||
|
||||
## OFFSETS ESTANDAR
|
||||
|
||||
Dentro de cada rango de proyecto, se aplican estos offsets:
|
||||
|
||||
```yaml
|
||||
OFFSETS:
|
||||
frontend_web: +5 # Aplicacion web principal
|
||||
backend_api: +6 # API principal
|
||||
frontend_admin: +7 # Panel de administracion
|
||||
backend_ws: +8 # WebSocket server
|
||||
backend_workers: +9 # Workers/Jobs
|
||||
auxiliary: +10-19 # Servicios auxiliares
|
||||
```
|
||||
|
||||
### Ejemplo para un nuevo proyecto "mi-proyecto" (base 3700):
|
||||
|
||||
```yaml
|
||||
mi-proyecto:
|
||||
frontend_web: 3705
|
||||
backend_api: 3706
|
||||
frontend_admin: 3707
|
||||
backend_ws: 3708
|
||||
backend_workers: 3709
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
| 5433 | erp-suite/construccion / trading-platform test |
|
||||
| 5434 | erp-suite/vidrio-templado |
|
||||
| 5436 | erp-suite/retail |
|
||||
| 5437 | erp-suite/clinicas |
|
||||
| 5438 | betting-analytics (reservado) |
|
||||
| 5439 | inmobiliaria-analytics (reservado) |
|
||||
| 5440 | platform_marketing_content |
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
|
||||
```yaml
|
||||
Cuando: Se crea un proyecto nuevo
|
||||
Quien: Tech-Leader delega a DevEnv
|
||||
Proceso:
|
||||
1. Identificar siguiente rango disponible (bloques de 100)
|
||||
2. Asignar puertos segun offsets estandar
|
||||
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
|
||||
|
||||
```yaml
|
||||
Cuando: Se agrega servicio a proyecto existente
|
||||
Quien: Agente de capa consulta a DevEnv
|
||||
Proceso:
|
||||
1. Verificar puertos disponibles en rango del proyecto
|
||||
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
|
||||
|
||||
```bash
|
||||
# Verificar puerto especifico
|
||||
lsof -i :3005
|
||||
|
||||
# Verificar rango de puertos
|
||||
for port in {3000..3100}; 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:
|
||||
|
||||
```bash
|
||||
# =============================================================================
|
||||
# {NOMBRE_PROYECTO} - PORT ASSIGNMENTS
|
||||
# =============================================================================
|
||||
# Archivo centralizado de asignacion de puertos
|
||||
# Gestionado por: DevEnv Agent
|
||||
# Fecha: {FECHA_CREACION}
|
||||
# Rango asignado: {RANGO}
|
||||
# =============================================================================
|
||||
|
||||
# FRONTEND
|
||||
FRONTEND_PORT={BASE+5}
|
||||
FRONTEND_ADMIN_PORT={BASE+7}
|
||||
|
||||
# BACKEND
|
||||
BACKEND_API_PORT={BASE+6}
|
||||
BACKEND_WS_PORT={BASE+8}
|
||||
BACKEND_WORKERS_PORT={BASE+9}
|
||||
|
||||
# DATABASES (si son especificos del proyecto)
|
||||
POSTGRES_PORT={ASIGNADO}
|
||||
REDIS_PORT={ASIGNADO}
|
||||
|
||||
# =============================================================================
|
||||
# NOTAS
|
||||
# =============================================================================
|
||||
# - Estos puertos estan registrados en @DEVENV_PORTS
|
||||
# - Cualquier cambio debe ser coordinado con DevEnv Agent
|
||||
# - No modificar sin actualizar el inventario central
|
||||
# =============================================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ERP-SUITE: Sub-Rangos para Verticales
|
||||
|
||||
El proyecto erp-suite tiene sub-rangos para cada vertical:
|
||||
|
||||
```yaml
|
||||
erp-suite:
|
||||
base: 3100
|
||||
|
||||
verticales:
|
||||
erp-core:
|
||||
range: "3100-3119"
|
||||
backend: 3100
|
||||
|
||||
construccion:
|
||||
range: "3120-3139"
|
||||
backend: 3120
|
||||
postgresql: 5433
|
||||
|
||||
vidrio-templado:
|
||||
range: "3140-3159"
|
||||
backend: 3140
|
||||
frontend: 5175
|
||||
postgresql: 5434
|
||||
|
||||
mecanicas-diesel:
|
||||
range: "3160-3179"
|
||||
backend: 3160
|
||||
|
||||
retail:
|
||||
range: "3180-3199"
|
||||
backend: 3180
|
||||
frontend: 5177
|
||||
postgresql: 5436
|
||||
|
||||
clinicas:
|
||||
range: "3200-3219" # Extension del rango
|
||||
backend: 3200
|
||||
frontend: 5178
|
||||
dicom: 4242
|
||||
postgresql: 5437
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## TRADING-PLATFORM: Rangos Extendidos
|
||||
|
||||
Trading-platform tiene una estructura especial con servicios Python:
|
||||
|
||||
```yaml
|
||||
trading-platform:
|
||||
frontend_services: "3100-3199"
|
||||
frontend_web: 3100
|
||||
frontend_admin: 3101
|
||||
frontend_preview: 4173
|
||||
|
||||
backend_node: "4000-4099"
|
||||
backend_api: 4000
|
||||
backend_ws: 4001
|
||||
backend_webhooks: 4002
|
||||
|
||||
python_services: "5000-5099"
|
||||
ml_engine: 5000
|
||||
data_service: 5001
|
||||
llm_agent: 5002
|
||||
portfolio_manager: 5003
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ALIAS RELEVANTES
|
||||
|
||||
```yaml
|
||||
@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"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## RESUMEN VISUAL
|
||||
|
||||
```
|
||||
PUERTOS ASIGNADOS POR PROYECTO
|
||||
==============================
|
||||
|
||||
3000 ----[GAMILIT]---- 3099
|
||||
|-- FE: 3005
|
||||
|-- BE: 3006
|
||||
|
||||
3100 ----[ERP-SUITE]---- 3219
|
||||
|-- core: 3100-3119
|
||||
|-- construccion: 3120-3139
|
||||
|-- vidrio-templado: 3140-3159
|
||||
|-- mecanicas: 3160-3179
|
||||
|-- retail: 3180-3199
|
||||
|-- clinicas: 3200-3219
|
||||
|
||||
3200 ----[TRADING-PLATFORM]---- (extendido)
|
||||
|-- FE: 3100-3199
|
||||
|-- BE Node: 4000-4099
|
||||
|-- Python: 5000-5099
|
||||
|
||||
3300 ----[BETTING-ANALYTICS]---- 3399
|
||||
|-- FE: 3305 (reservado)
|
||||
|-- BE: 3306 (reservado)
|
||||
|
||||
3400 ----[INMOBILIARIA-ANALYTICS]---- 3499
|
||||
|-- FE: 3405 (reservado)
|
||||
|-- BE: 3406 (reservado)
|
||||
|
||||
3500 ----[PLATFORM-MARKETING]---- 3599
|
||||
|-- FE: 3505
|
||||
|-- BE: 3506
|
||||
|
||||
BASES DE DATOS
|
||||
==============
|
||||
5432-5449: PostgreSQL (por proyecto)
|
||||
6379-6389: Redis (por proyecto)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Version:** 1.0.0 | **Sistema:** SIMCO + DevEnv | **Tipo:** Referencia
|
||||
@ -19,11 +19,12 @@ metadata:
|
||||
resumen:
|
||||
modulos_total: 10
|
||||
modulos_documentados: 10
|
||||
story_points_total: 322
|
||||
epicas_completas: 10
|
||||
story_points_total: 353
|
||||
specs_core_aplicables: 26
|
||||
specs_implementadas: 0
|
||||
cobertura_specs: 0%
|
||||
estado: PLANIFICACION_COMPLETA
|
||||
estado: EPICAS_COMPLETAS
|
||||
|
||||
# =============================================================================
|
||||
# TRAZABILIDAD POR MÓDULO
|
||||
@ -63,6 +64,7 @@ trazabilidad:
|
||||
herencia: 0%
|
||||
prioridad: P0
|
||||
sp: 55
|
||||
epica: docs/08-epicas/EPIC-RT-002-pos.md
|
||||
critico: true
|
||||
database:
|
||||
tablas:
|
||||
@ -98,7 +100,8 @@ trazabilidad:
|
||||
nombre: Inventario
|
||||
herencia: 70%
|
||||
prioridad: P0
|
||||
sp: 34
|
||||
sp: 42
|
||||
epica: docs/08-epicas/EPIC-RT-003-inventario.md
|
||||
database:
|
||||
tablas:
|
||||
- inventory.branches
|
||||
|
||||
@ -19,11 +19,12 @@ metadata:
|
||||
resumen:
|
||||
modulos_total: 8
|
||||
modulos_documentados: 8
|
||||
story_points_total: 212
|
||||
epicas_completas: 8
|
||||
story_points_total: 259
|
||||
specs_core_aplicables: 25
|
||||
specs_implementadas: 0
|
||||
cobertura_specs: 0%
|
||||
estado: PLANIFICACION_COMPLETA
|
||||
estado: EPICAS_COMPLETAS
|
||||
|
||||
# =============================================================================
|
||||
# TRAZABILIDAD POR MÓDULO
|
||||
@ -63,6 +64,7 @@ trazabilidad:
|
||||
herencia: 30%
|
||||
prioridad: P0
|
||||
sp: 34
|
||||
epica: docs/08-epicas/EPIC-VT-002-cotizaciones.md
|
||||
database:
|
||||
tablas:
|
||||
- glass.quotations
|
||||
@ -93,7 +95,8 @@ trazabilidad:
|
||||
nombre: Produccion
|
||||
herencia: 20%
|
||||
prioridad: P0
|
||||
sp: 34
|
||||
sp: 42
|
||||
epica: docs/08-epicas/EPIC-VT-003-produccion.md
|
||||
database:
|
||||
tablas:
|
||||
- production.production_orders
|
||||
@ -122,7 +125,8 @@ trazabilidad:
|
||||
nombre: Inventario
|
||||
herencia: 70%
|
||||
prioridad: P0
|
||||
sp: 21
|
||||
sp: 38
|
||||
epica: docs/08-epicas/EPIC-VT-004-inventario.md
|
||||
database:
|
||||
tablas:
|
||||
- glass.raw_materials
|
||||
@ -149,7 +153,8 @@ trazabilidad:
|
||||
nombre: Corte
|
||||
herencia: 0%
|
||||
prioridad: P1
|
||||
sp: 47
|
||||
sp: 45
|
||||
epica: docs/08-epicas/EPIC-VT-005-corte.md
|
||||
database:
|
||||
tablas:
|
||||
- production.cutting_plans
|
||||
@ -178,7 +183,8 @@ trazabilidad:
|
||||
nombre: Templado
|
||||
herencia: 0%
|
||||
prioridad: P1
|
||||
sp: 34
|
||||
sp: 40
|
||||
epica: docs/08-epicas/EPIC-VT-006-templado.md
|
||||
database:
|
||||
tablas:
|
||||
- production.furnaces
|
||||
@ -207,7 +213,8 @@ trazabilidad:
|
||||
nombre: Calidad
|
||||
herencia: 40%
|
||||
prioridad: P0
|
||||
sp: 21
|
||||
sp: 32
|
||||
epica: docs/08-epicas/EPIC-VT-007-calidad.md
|
||||
database:
|
||||
tablas:
|
||||
- quality.quality_tests
|
||||
@ -235,7 +242,8 @@ trazabilidad:
|
||||
nombre: Despacho
|
||||
herencia: 50%
|
||||
prioridad: P1
|
||||
sp: 21
|
||||
sp: 28
|
||||
epica: docs/08-epicas/EPIC-VT-008-despacho.md
|
||||
database:
|
||||
tablas:
|
||||
- logistics.shipments
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
"rxjs": "^7.8.1",
|
||||
"sanitize-html": "^2.11.0",
|
||||
"socket.io": "^4.8.1",
|
||||
"typeorm": "^0.3.17",
|
||||
"typeorm": "^0.3.22",
|
||||
"web-push": "^3.6.7",
|
||||
"winston": "^3.18.3"
|
||||
},
|
||||
|
||||
@ -65,13 +65,13 @@
|
||||
"@axe-core/react": "^4.8.4",
|
||||
"@chromatic-com/storybook": "^4.1.2",
|
||||
"@playwright/test": "^1.56.1",
|
||||
"@storybook/addon-docs": "^10.0.6",
|
||||
"@storybook/addon-essentials": "^7.6.20",
|
||||
"@storybook/addon-interactions": "^7.6.20",
|
||||
"@storybook/addon-links": "^7.6.20",
|
||||
"@storybook/addon-onboarding": "^10.0.6",
|
||||
"@storybook/react": "^7.6.5",
|
||||
"@storybook/react-vite": "^7.6.5",
|
||||
"@storybook/addon-docs": "^8.6.0",
|
||||
"@storybook/addon-essentials": "^8.6.0",
|
||||
"@storybook/addon-interactions": "^8.6.0",
|
||||
"@storybook/addon-links": "^8.6.0",
|
||||
"@storybook/addon-onboarding": "^8.6.0",
|
||||
"@storybook/react": "^8.6.0",
|
||||
"@storybook/react-vite": "^8.6.0",
|
||||
"@tailwindcss/postcss": "^4.1.14",
|
||||
"@testing-library/dom": "^10.4.1",
|
||||
"@testing-library/jest-dom": "^6.9.1",
|
||||
@ -99,7 +99,7 @@
|
||||
"prettier": "^3.2.4",
|
||||
"prettier-plugin-tailwindcss": "^0.5.9",
|
||||
"rollup-plugin-visualizer": "^6.0.5",
|
||||
"storybook": "^7.6.20",
|
||||
"storybook": "^8.6.0",
|
||||
"tailwindcss": "^4.1.14",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.1.10",
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
"backend:format": "cd apps/backend && npm run format",
|
||||
"frontend:lint": "cd apps/frontend && npm run lint",
|
||||
"frontend:format": "cd apps/frontend && npm run format",
|
||||
"prepare": "husky install"
|
||||
"prepare": "cd ../.. && husky projects/gamilit/.husky install || true"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.10.0",
|
||||
@ -49,5 +49,11 @@
|
||||
"exceljs": "^4.4.0",
|
||||
"pg": "^8.16.3",
|
||||
"uuid": "^13.0.0"
|
||||
},
|
||||
"overrides": {
|
||||
"jws": "^4.0.1",
|
||||
"js-yaml": "^4.1.1",
|
||||
"glob": "^11.0.0",
|
||||
"validator": "^13.15.22"
|
||||
}
|
||||
}
|
||||
|
||||
269
projects/trading-platform/apps/backend/package-lock.json
generated
269
projects/trading-platform/apps/backend/package-lock.json
generated
@ -22,7 +22,7 @@
|
||||
"helmet": "^7.1.0",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"morgan": "^1.10.0",
|
||||
"nodemailer": "^6.9.7",
|
||||
"nodemailer": "^7.0.11",
|
||||
"openai": "^4.73.0",
|
||||
"passport": "^0.7.0",
|
||||
"passport-apple": "^2.0.2",
|
||||
@ -30,7 +30,6 @@
|
||||
"passport-github2": "^0.1.12",
|
||||
"passport-google-oauth20": "^2.0.0",
|
||||
"passport-local": "^1.0.0",
|
||||
"passport-twitter": "^1.0.4",
|
||||
"pg": "^8.11.3",
|
||||
"qrcode": "^1.5.3",
|
||||
"redis": "^4.6.10",
|
||||
@ -57,7 +56,6 @@
|
||||
"@types/passport-github2": "^1.2.9",
|
||||
"@types/passport-google-oauth20": "^2.0.14",
|
||||
"@types/passport-local": "^1.0.38",
|
||||
"@types/passport-twitter": "^1.0.40",
|
||||
"@types/pg": "^8.10.9",
|
||||
"@types/qrcode": "^1.5.5",
|
||||
"@types/speakeasy": "^2.0.10",
|
||||
@ -244,25 +242,25 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-ses": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.946.0.tgz",
|
||||
"integrity": "sha512-8haC9kzCVjrsgYFLHbvZw0+GF3f9ezkgkUCsGQEGqerBjHSHkm4YB0+Nje1RGrM8PcPVFMnvCXxc+98eGPcvQw==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.947.0.tgz",
|
||||
"integrity": "sha512-Y9xaLPvQE7CW/8liyHdLOs6gxLHciBZhvuuZ/mDZLHtBmMSYm7wb/ikEfX7yid6nBITM/eAFURImRSKlQbnzlg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "5.2.0",
|
||||
"@aws-crypto/sha256-js": "5.2.0",
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/credential-provider-node": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/credential-provider-node": "3.947.0",
|
||||
"@aws-sdk/middleware-host-header": "3.936.0",
|
||||
"@aws-sdk/middleware-logger": "3.936.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.936.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.946.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.947.0",
|
||||
"@aws-sdk/region-config-resolver": "3.936.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@aws-sdk/util-endpoints": "3.936.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.936.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.946.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.947.0",
|
||||
"@smithy/config-resolver": "^4.4.3",
|
||||
"@smithy/core": "^3.18.7",
|
||||
"@smithy/fetch-http-handler": "^5.3.6",
|
||||
@ -296,24 +294,24 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-sso": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.946.0.tgz",
|
||||
"integrity": "sha512-kGAs5iIVyUz4p6TX3pzG5q3cNxXnVpC4pwRC6DCSaSv9ozyPjc2d74FsK4fZ+J+ejtvCdJk72uiuQtWJc86Wuw==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.947.0.tgz",
|
||||
"integrity": "sha512-sDwcO8SP290WSErY1S8pz8hTafeghKmmWjNVks86jDK30wx62CfazOTeU70IpWgrUBEygyXk/zPogHsUMbW2Rg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "5.2.0",
|
||||
"@aws-crypto/sha256-js": "5.2.0",
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/middleware-host-header": "3.936.0",
|
||||
"@aws-sdk/middleware-logger": "3.936.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.936.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.946.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.947.0",
|
||||
"@aws-sdk/region-config-resolver": "3.936.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@aws-sdk/util-endpoints": "3.936.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.936.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.946.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.947.0",
|
||||
"@smithy/config-resolver": "^4.4.3",
|
||||
"@smithy/core": "^3.18.7",
|
||||
"@smithy/fetch-http-handler": "^5.3.6",
|
||||
@ -346,9 +344,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/core": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.946.0.tgz",
|
||||
"integrity": "sha512-u2BkbLLVbMFrEiXrko2+S6ih5sUZPlbVyRPtXOqMHlCyzr70sE8kIiD6ba223rQeIFPcYfW/wHc6k4ihW2xxVg==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.947.0.tgz",
|
||||
"integrity": "sha512-Khq4zHhuAkvCFuFbgcy3GrZTzfSX7ZIjIcW1zRDxXRLZKRtuhnZdonqTUfaWi5K42/4OmxkYNpsO7X7trQOeHw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
@ -371,13 +369,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-env": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.946.0.tgz",
|
||||
"integrity": "sha512-P4l+K6wX1tf8LmWUvZofdQ+BgCNyk6Tb9u1H10npvqpuCD+dCM4pXIBq3PQcv/juUBOvLGGREo+Govuh3lfD0Q==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.947.0.tgz",
|
||||
"integrity": "sha512-VR2V6dRELmzwAsCpK4GqxUi6UW5WNhAXS9F9AzWi5jvijwJo3nH92YNJUP4quMpgFZxJHEWyXLWgPjh9u0zYOA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
"@smithy/types": "^4.9.0",
|
||||
@ -388,13 +386,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-http": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.946.0.tgz",
|
||||
"integrity": "sha512-/zeOJ6E7dGZQ/l2k7KytEoPJX0APIhwt0A79hPf/bUpMF4dDs2P6JmchDrotk0a0Y/MIdNF8sBQ/MEOPnBiYoQ==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.947.0.tgz",
|
||||
"integrity": "sha512-inF09lh9SlHj63Vmr5d+LmwPXZc2IbK8lAruhOr3KLsZAIHEgHgGPXWDC2ukTEMzg0pkexQ6FOhXXad6klK4RA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/fetch-http-handler": "^5.3.6",
|
||||
"@smithy/node-http-handler": "^4.4.5",
|
||||
@ -410,20 +408,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.946.0.tgz",
|
||||
"integrity": "sha512-Pdgcra3RivWj/TuZmfFaHbqsvvgnSKO0CxlRUMMr0PgBiCnUhyl+zBktdNOeGsOPH2fUzQpYhcUjYUgVSdcSDQ==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.947.0.tgz",
|
||||
"integrity": "sha512-A2ZUgJUJZERjSzvCi2NR/hBVbVkTXPD0SdKcR/aITb30XwF+n3T963b+pJl90qhOspoy7h0IVYNR7u5Nr9tJdQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/credential-provider-env": "3.946.0",
|
||||
"@aws-sdk/credential-provider-http": "3.946.0",
|
||||
"@aws-sdk/credential-provider-login": "3.946.0",
|
||||
"@aws-sdk/credential-provider-process": "3.946.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.946.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.946.0",
|
||||
"@aws-sdk/nested-clients": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/credential-provider-env": "3.947.0",
|
||||
"@aws-sdk/credential-provider-http": "3.947.0",
|
||||
"@aws-sdk/credential-provider-login": "3.947.0",
|
||||
"@aws-sdk/credential-provider-process": "3.947.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.947.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.947.0",
|
||||
"@aws-sdk/nested-clients": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/credential-provider-imds": "^4.2.5",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
@ -436,14 +434,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-login": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.946.0.tgz",
|
||||
"integrity": "sha512-5iqLNc15u2Zx+7jOdQkIbP62N7n2031tw5hkmIG0DLnozhnk64osOh2CliiOE9x3c4P9Pf4frAwgyy9GzNTk2g==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.947.0.tgz",
|
||||
"integrity": "sha512-u7M3hazcB7aJiVwosNdJRbIJDzbwQ861NTtl6S0HmvWpixaVb7iyhJZWg8/plyUznboZGBm7JVEdxtxv3u0bTA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/nested-clients": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/nested-clients": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
"@smithy/protocol-http": "^5.3.5",
|
||||
@ -456,18 +454,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-node": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.946.0.tgz",
|
||||
"integrity": "sha512-I7URUqnBPng1a5y81OImxrwERysZqMBREG6svhhGeZgxmqcpAZ8z5ywILeQXdEOCuuES8phUp/ojzxFjPXp/eA==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.947.0.tgz",
|
||||
"integrity": "sha512-S0Zqebr71KyrT6J4uYPhwV65g4V5uDPHnd7dt2W34FcyPu+hVC7Hx4MFmsPyVLeT5cMCkkZvmY3kAoEzgUPJJg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.946.0",
|
||||
"@aws-sdk/credential-provider-http": "3.946.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.946.0",
|
||||
"@aws-sdk/credential-provider-process": "3.946.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.946.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.946.0",
|
||||
"@aws-sdk/credential-provider-env": "3.947.0",
|
||||
"@aws-sdk/credential-provider-http": "3.947.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.947.0",
|
||||
"@aws-sdk/credential-provider-process": "3.947.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.947.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/credential-provider-imds": "^4.2.5",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
@ -480,13 +478,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-process": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.946.0.tgz",
|
||||
"integrity": "sha512-GtGHX7OGqIeVQ3DlVm5RRF43Qmf3S1+PLJv9svrdvAhAdy2bUb044FdXXqrtSsIfpzTKlHgQUiRo5MWLd35Ntw==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.947.0.tgz",
|
||||
"integrity": "sha512-WpanFbHe08SP1hAJNeDdBDVz9SGgMu/gc0XJ9u3uNpW99nKZjDpvPRAdW7WLA4K6essMjxWkguIGNOpij6Do2Q==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
"@smithy/shared-ini-file-loader": "^4.4.0",
|
||||
@ -498,15 +496,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.946.0.tgz",
|
||||
"integrity": "sha512-LeGSSt2V5iwYey1ENGY75RmoDP3bA2iE/py8QBKW8EDA8hn74XBLkprhrK5iccOvU3UGWY8WrEKFAFGNjJOL9g==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.947.0.tgz",
|
||||
"integrity": "sha512-NktnVHTGaUMaozxycYrepvb3yfFquHTQ53lt6hBEVjYBzK3C4tVz0siUpr+5RMGLSiZ5bLBp2UjJPgwx4i4waQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso": "3.946.0",
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/token-providers": "3.946.0",
|
||||
"@aws-sdk/client-sso": "3.947.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/token-providers": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
"@smithy/shared-ini-file-loader": "^4.4.0",
|
||||
@ -518,14 +516,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-web-identity": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.946.0.tgz",
|
||||
"integrity": "sha512-ocBCvjWfkbjxElBI1QUxOnHldsNhoU0uOICFvuRDAZAoxvypJHN3m5BJkqb7gqorBbcv3LRgmBdEnWXOAvq+7Q==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.947.0.tgz",
|
||||
"integrity": "sha512-gokm/e/YHiHLrZgLq4j8tNAn8RJDPbIcglFRKgy08q8DmAqHQ8MXAKW3eS0QjAuRXU9mcMmUo1NrX6FRNBCCPw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/nested-clients": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/nested-clients": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
"@smithy/shared-ini-file-loader": "^4.4.0",
|
||||
@ -585,13 +583,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.946.0.tgz",
|
||||
"integrity": "sha512-7QcljCraeaWQNuqmOoAyZs8KpZcuhPiqdeeKoRd397jVGNRehLFsZbIMOvwaluUDFY11oMyXOkQEERe1Zo2fCw==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.947.0.tgz",
|
||||
"integrity": "sha512-7rpKV8YNgCP2R4F9RjWZFcD2R+SO/0R4VHIbY9iZJdH2MzzJ8ZG7h8dZ2m8QkQd1fjx4wrFJGGPJUTYXPV3baA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@aws-sdk/util-endpoints": "3.936.0",
|
||||
"@smithy/core": "^3.18.7",
|
||||
@ -604,24 +602,24 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/nested-clients": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.946.0.tgz",
|
||||
"integrity": "sha512-rjAtEguukeW8mlyEQMQI56vxFoyWlaNwowmz1p1rav948SUjtrzjHAp4TOQWhibb7AR7BUTHBCgIcyCRjBEf4g==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.947.0.tgz",
|
||||
"integrity": "sha512-DjRJEYNnHUTu9kGPPQDTSXquwSEd6myKR4ssI4FaYLFhdT3ldWpj73yYt807H3tdmhS7vPmdVqchSJnjurUQAw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "5.2.0",
|
||||
"@aws-crypto/sha256-js": "5.2.0",
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/middleware-host-header": "3.936.0",
|
||||
"@aws-sdk/middleware-logger": "3.936.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.936.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.946.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.947.0",
|
||||
"@aws-sdk/region-config-resolver": "3.936.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@aws-sdk/util-endpoints": "3.936.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.936.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.946.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.947.0",
|
||||
"@smithy/config-resolver": "^4.4.3",
|
||||
"@smithy/core": "^3.18.7",
|
||||
"@smithy/fetch-http-handler": "^5.3.6",
|
||||
@ -671,14 +669,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/token-providers": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.946.0.tgz",
|
||||
"integrity": "sha512-a5c+rM6CUPX2ExmUZ3DlbLlS5rQr4tbdoGcgBsjnAHiYx8MuMNAI+8M7wfjF13i2yvUQj5WEIddvLpayfEZj9g==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.947.0.tgz",
|
||||
"integrity": "sha512-X/DyB8GuK44rsE89Tn5+s542B3PhGbXQSgV8lvqHDzvicwCt0tWny6790st6CPETrVVV2K3oJMfG5U3/jAmaZA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/core": "3.946.0",
|
||||
"@aws-sdk/nested-clients": "3.946.0",
|
||||
"@aws-sdk/core": "3.947.0",
|
||||
"@aws-sdk/nested-clients": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/property-provider": "^4.2.5",
|
||||
"@smithy/shared-ini-file-loader": "^4.4.0",
|
||||
@ -747,13 +745,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/util-user-agent-node": {
|
||||
"version": "3.946.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.946.0.tgz",
|
||||
"integrity": "sha512-a2UwwvzbK5AxHKUBupfg4s7VnkqRAHjYsuezHnKCniczmT4HZfP1NnfwwvLKEH8qaTrwenxjKSfq4UWmWkvG+Q==",
|
||||
"version": "3.947.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.947.0.tgz",
|
||||
"integrity": "sha512-+vhHoDrdbb+zerV4noQk1DHaUMNzWFWPpPYjVTwW2186k5BEJIecAMChYkghRrBVJ3KPWP1+JnZwOd72F3d4rQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@aws-sdk/middleware-user-agent": "3.946.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.947.0",
|
||||
"@aws-sdk/types": "3.936.0",
|
||||
"@smithy/node-config-provider": "^4.3.5",
|
||||
"@smithy/types": "^4.9.0",
|
||||
@ -3422,9 +3420,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.19.25",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.25.tgz",
|
||||
"integrity": "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ==",
|
||||
"version": "20.19.26",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.26.tgz",
|
||||
"integrity": "sha512-0l6cjgF0XnihUpndDhk+nyD3exio3iKaYROSgvh/qSevPXax3L8p5DBRFjbvalnwatGgHEQn2R88y2fA3g4irg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
@ -3542,17 +3540,6 @@
|
||||
"@types/passport": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/passport-twitter": {
|
||||
"version": "1.0.40",
|
||||
"resolved": "https://registry.npmjs.org/@types/passport-twitter/-/passport-twitter-1.0.40.tgz",
|
||||
"integrity": "sha512-5Yxm+P/x6XEYvANANmjkVnRpMlRpORODZYYplBKH+BFTHQ8kGt3FgMm6eMgIzrGA4WvZo6TKH4IvYug+31mX4w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/express": "*",
|
||||
"@types/passport": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/pg": {
|
||||
"version": "8.15.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.15.6.tgz",
|
||||
@ -4300,9 +4287,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/baseline-browser-mapping": {
|
||||
"version": "2.9.3",
|
||||
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.3.tgz",
|
||||
"integrity": "sha512-8QdH6czo+G7uBsNo0GiUfouPN1lRzKdJTGnKXwe12gkFbnnOUaUKGN55dMkfy+mnxmvjwl9zcI4VncczcVXDhA==",
|
||||
"version": "2.9.5",
|
||||
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.5.tgz",
|
||||
"integrity": "sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
@ -5112,9 +5099,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.266",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.266.tgz",
|
||||
"integrity": "sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==",
|
||||
"version": "1.5.267",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
|
||||
"integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
@ -7837,9 +7824,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/nodemailer": {
|
||||
"version": "6.10.1",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz",
|
||||
"integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==",
|
||||
"version": "7.0.11",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.11.tgz",
|
||||
"integrity": "sha512-gnXhNRE0FNhD7wPSCGhdNh46Hs6nm+uTyg+Kq0cZukNQiYdnCsoQjodNP9BQVG9XrcK/v6/MgpAPBUFyzh9pvw==",
|
||||
"license": "MIT-0",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
@ -8170,30 +8157,6 @@
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/passport-oauth1": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.3.0.tgz",
|
||||
"integrity": "sha512-8T/nX4gwKTw0PjxP1xfD0QhrydQNakzeOpZ6M5Uqdgz9/a/Ag62RmJxnZQ4LkbdXGrRehQHIAHNAu11rCP46Sw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"oauth": "0.9.x",
|
||||
"passport-strategy": "1.x.x",
|
||||
"utils-merge": "1.x.x"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/jaredhanson"
|
||||
}
|
||||
},
|
||||
"node_modules/passport-oauth1/node_modules/oauth": {
|
||||
"version": "0.9.15",
|
||||
"resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
|
||||
"integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/passport-oauth2": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.8.0.tgz",
|
||||
@ -8222,19 +8185,6 @@
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/passport-twitter": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/passport-twitter/-/passport-twitter-1.0.4.tgz",
|
||||
"integrity": "sha512-qvdauqCqCJJci82mJ9hZZQ6nAv7aSHV31svL8+9H7mRlDdXCdfU6AARQrmmJu3DRmv9fvIebM7zzxR7mVufN3A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"passport-oauth1": "1.x.x",
|
||||
"xtraverse": "0.1.x"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
@ -10155,9 +10105,9 @@
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/winston": {
|
||||
"version": "3.18.3",
|
||||
"resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz",
|
||||
"integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==",
|
||||
"version": "3.19.0",
|
||||
"resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz",
|
||||
"integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@colors/colors": "^1.6.0",
|
||||
@ -10277,16 +10227,6 @@
|
||||
"node": ">=6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/xmldom": {
|
||||
"version": "0.1.31",
|
||||
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
|
||||
"integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
|
||||
"deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0",
|
||||
"license": "(LGPL-2.0 or MIT)",
|
||||
"engines": {
|
||||
"node": ">=0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
@ -10296,17 +10236,6 @@
|
||||
"node": ">=0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/xtraverse": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/xtraverse/-/xtraverse-0.1.0.tgz",
|
||||
"integrity": "sha512-MANQdlG2hl1nQobxz1Rv8hsS1RuBS0C1N6qTOupv+9vmfrReePdxhmB2ecYjvsp4stJ80HD7erjkoF1Hd/FK9A==",
|
||||
"dependencies": {
|
||||
"xmldom": "0.1.x"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
|
||||
@ -37,14 +37,13 @@
|
||||
"passport": "^0.7.0",
|
||||
"passport-google-oauth20": "^2.0.0",
|
||||
"passport-facebook": "^3.0.0",
|
||||
"passport-twitter": "^1.0.4",
|
||||
"passport-apple": "^2.0.2",
|
||||
"passport-github2": "^0.1.12",
|
||||
"passport-local": "^1.0.0",
|
||||
"speakeasy": "^2.0.0",
|
||||
"qrcode": "^1.5.3",
|
||||
"twilio": "^4.19.3",
|
||||
"nodemailer": "^6.9.7",
|
||||
"nodemailer": "^7.0.11",
|
||||
"google-auth-library": "^9.4.1",
|
||||
"@anthropic-ai/sdk": "^0.32.1",
|
||||
"openai": "^4.73.0",
|
||||
@ -64,7 +63,6 @@
|
||||
"@types/passport": "^1.0.16",
|
||||
"@types/passport-google-oauth20": "^2.0.14",
|
||||
"@types/passport-facebook": "^3.0.3",
|
||||
"@types/passport-twitter": "^1.0.40",
|
||||
"@types/passport-github2": "^1.2.9",
|
||||
"@types/passport-local": "^1.0.38",
|
||||
"@types/speakeasy": "^2.0.10",
|
||||
|
||||
1112
projects/trading-platform/apps/frontend/package-lock.json
generated
1112
projects/trading-platform/apps/frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -42,7 +42,7 @@
|
||||
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
||||
"@typescript-eslint/parser": "^6.14.0",
|
||||
"@vitejs/plugin-react": "^4.2.1",
|
||||
"@vitest/ui": "^1.1.0",
|
||||
"@vitest/ui": "^3.0.0",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"eslint": "^8.55.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
@ -52,7 +52,7 @@
|
||||
"prettier": "^3.1.1",
|
||||
"tailwindcss": "^3.4.0",
|
||||
"typescript": "^5.3.3",
|
||||
"vite": "^5.0.10",
|
||||
"vitest": "^1.1.0"
|
||||
"vite": "^6.2.0",
|
||||
"vitest": "^3.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user