Update to Skynet v7 - Complete documentation restructure
- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
This commit is contained in:
106
02_COMPONENTES/internos/administracion.md
Normal file
106
02_COMPONENTES/internos/administracion.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Administración
|
||||
|
||||
**Nombre:** Mason
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Tabla de trabajo temporal donde se enriquece, procesa y consolida la información antes de su registro definitivo.
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | Editable |
|
||||
| Persistencia | **Temporal** |
|
||||
| Eliminación | Siempre se elimina tras consolidar |
|
||||
|
||||
---
|
||||
|
||||
## Función
|
||||
|
||||
```
|
||||
Secretaría (entrada)
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Administración │
|
||||
│ Mason │
|
||||
├─────────────────┤
|
||||
│ • Enriquecer │
|
||||
│ • Validar │
|
||||
│ • Completar │
|
||||
│ • Corregir │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
Contable (Feldman)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ventana Flotante
|
||||
|
||||
| Parámetro | Valor |
|
||||
|-----------|-------|
|
||||
| Duración | 24 horas |
|
||||
| Durante | Modificable |
|
||||
| Después | Pasa a Feldman automáticamente |
|
||||
|
||||
---
|
||||
|
||||
## Operaciones Permitidas
|
||||
|
||||
| Operación | Permitido |
|
||||
|-----------|-----------|
|
||||
| Editar campos | ✓ |
|
||||
| Añadir datos | ✓ |
|
||||
| Corregir errores | ✓ |
|
||||
| Eliminar registro | ✗ (solo consolidar) |
|
||||
| Modificar h_entrada | ✗ |
|
||||
|
||||
---
|
||||
|
||||
## Referencia a Origen
|
||||
|
||||
Mason siempre mantiene referencia al registro original en Secretaría:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 123,
|
||||
"h_entrada_origen": "abc123...",
|
||||
"datos_enriquecidos": { ... },
|
||||
"estado": "en_edicion"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Estados
|
||||
|
||||
| Estado | Descripción |
|
||||
|--------|-------------|
|
||||
| **en_edicion** | Usuario trabajando |
|
||||
| **listo** | Preparado para consolidar |
|
||||
| **consolidado** | Ya pasó a Feldman |
|
||||
|
||||
---
|
||||
|
||||
## Schema
|
||||
|
||||
```sql
|
||||
CREATE TABLE mason_temporal (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_entrada_origen VARCHAR(64) NOT NULL,
|
||||
datos JSONB NOT NULL,
|
||||
estado VARCHAR(20) DEFAULT 'en_edicion',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
expires_at TIMESTAMPTZ,
|
||||
modified_at TIMESTAMPTZ,
|
||||
modified_by VARCHAR(64)
|
||||
);
|
||||
```
|
||||
204
02_COMPONENTES/internos/auditoria.md
Normal file
204
02_COMPONENTES/internos/auditoria.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# Auditoría
|
||||
|
||||
**Nombre:** Sentinel
|
||||
**Estado:** Planificado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Sistema de auditoría automatizada con estrategia dual: LIGHT (rápido, exhaustivo) y DEEP (selectivo, profundo).
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PRINCIPIO SENTINEL │
|
||||
│ │
|
||||
│ "Confía, pero verifica. Verifica todo, siempre, sin excepción" │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Filosofía Dual
|
||||
|
||||
| Aspecto | SENTINEL-LIGHT | SENTINEL-DEEP |
|
||||
|---------|----------------|---------------|
|
||||
| Analogía | Guardia de seguridad | Detective investigador |
|
||||
| Enfoque | Exhaustivo, superficial | Selectivo, profundo |
|
||||
| Motor | Reglas + ML ligero | LLM pesado |
|
||||
| Frecuencia | Cada 5 min | Cada hora |
|
||||
| Costo | Mínimo | Variable |
|
||||
|
||||
---
|
||||
|
||||
## SENTINEL-LIGHT
|
||||
|
||||
### Arquitectura
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SENTINEL-LIGHT │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ RULES │ │ STATS │ │ ALERTS │ │
|
||||
│ │ ENGINE │───▶│ COLLECTOR │───▶│ DISPATCHER │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┤
|
||||
│ │ SYS_LOG (Source) │
|
||||
│ └─────────────────────────────────────────────────────────────┤
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┤
|
||||
│ │ AUDIT_RESULTS (Sink) │
|
||||
│ └─────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Ciclo de Ejecución (cada 5 min)
|
||||
|
||||
```
|
||||
1. QUERY
|
||||
SELECT * FROM SYS_LOG
|
||||
WHERE audit_status = 'PENDING'
|
||||
AND timestamp_created > NOW() - INTERVAL '10 minutes'
|
||||
LIMIT 1000
|
||||
|
||||
2. APPLY RULES
|
||||
Para cada registro:
|
||||
- Ejecutar reglas de integridad
|
||||
- Ejecutar reglas de conformidad
|
||||
- Ejecutar reglas de rendimiento
|
||||
|
||||
3. CLASSIFY
|
||||
- PASS: Todas las reglas OK
|
||||
- WARN: Reglas MEDIUM fallaron
|
||||
- FAIL: Reglas HIGH/CRITICAL fallaron
|
||||
|
||||
4. UPDATE & ESCALATE
|
||||
- UPDATE SYS_LOG SET audit_status
|
||||
- INSERT AUDIT_RESULTS
|
||||
- Si FAIL → marcar para DEEP
|
||||
- Si CRITICAL → alerta inmediata
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Reglas de Integridad (I-*)
|
||||
|
||||
| Regla | Nombre | Severidad | Condición |
|
||||
|-------|--------|-----------|-----------|
|
||||
| I-001 | Hash entrada coincide | CRITICAL | input_hash == SHA256(archivo) |
|
||||
| I-002 | Hash salida coincide | CRITICAL | output_hash == SHA256(archivo) |
|
||||
| I-003 | Cadena trazas válida | HIGH | parent_trace_id existe o es null |
|
||||
| I-004 | Referencias no huérfanas | HIGH | input_ref y output_ref existen |
|
||||
| I-005 | Idempotency key única | MEDIUM | No duplicados con distinto resultado |
|
||||
|
||||
---
|
||||
|
||||
## Reglas de Conformidad (C-*)
|
||||
|
||||
| Regla | Nombre | Severidad | Condición |
|
||||
|-------|--------|-----------|-----------|
|
||||
| C-001 | Campos obligatorios | HIGH | Todos los campos requeridos presentes |
|
||||
| C-002 | Status code válido | HIGH | status_code en lista permitida |
|
||||
| C-003 | Step type válido | HIGH | step_type en lista permitida |
|
||||
| C-004 | Confidence en rango | MEDIUM | 0 <= confidence <= 1 |
|
||||
| C-005 | Timestamps coherentes | MEDIUM | completed >= started >= created |
|
||||
|
||||
---
|
||||
|
||||
## Reglas de Rendimiento (P-*)
|
||||
|
||||
| Regla | Nombre | Severidad | Condición |
|
||||
|-------|--------|-----------|-----------|
|
||||
| P-001 | Latencia aceptable | MEDIUM | duration_ms <= expected * 2 |
|
||||
| P-002 | Costo razonable | MEDIUM | cost_units <= max_expected |
|
||||
| P-003 | Sin reintentos excesivos | LOW | retries <= 3 |
|
||||
|
||||
---
|
||||
|
||||
## SENTINEL-DEEP
|
||||
|
||||
### Cuándo se Activa
|
||||
|
||||
- Regla CRITICAL falló en LIGHT
|
||||
- Muestreo aleatorio (5% de registros PASS)
|
||||
- Petición manual de auditoría
|
||||
|
||||
### Qué Hace
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SENTINEL-DEEP │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 1. Obtener contexto completo del registro │
|
||||
│ 2. Recuperar archivos de input_ref y output_ref │
|
||||
│ 3. Analizar con LLM: │
|
||||
│ - ¿El output es coherente con el input? │
|
||||
│ - ¿Hay anomalías semánticas? │
|
||||
│ - ¿La confianza reportada es realista? │
|
||||
│ 4. Generar informe detallado │
|
||||
│ 5. Si anomalía → alerta + bloqueo │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Niveles de Severidad
|
||||
|
||||
| Nivel | Acción | Alerta |
|
||||
|-------|--------|--------|
|
||||
| **CRITICAL** | Escalado inmediato + DEEP | Inmediata |
|
||||
| **HIGH** | Log error + revisar | Batch (cada hora) |
|
||||
| **MEDIUM** | Log warning | Batch (diario) |
|
||||
| **LOW** | Log info | Ninguna |
|
||||
|
||||
---
|
||||
|
||||
## Schema SQL
|
||||
|
||||
```sql
|
||||
CREATE TABLE audit_results (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
batch_id UUID NOT NULL,
|
||||
audit_type VARCHAR(10) NOT NULL, -- 'LIGHT' o 'DEEP'
|
||||
records_checked INTEGER NOT NULL,
|
||||
records_pass INTEGER NOT NULL,
|
||||
records_warn INTEGER NOT NULL,
|
||||
records_fail INTEGER NOT NULL,
|
||||
rules_triggered JSONB,
|
||||
started_at TIMESTAMPTZ NOT NULL,
|
||||
completed_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Índice para búsqueda por fecha
|
||||
CREATE INDEX idx_audit_results_created ON audit_results(created_at);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Métricas
|
||||
|
||||
| Métrica | Descripción | Umbral |
|
||||
|---------|-------------|--------|
|
||||
| pass_rate | % registros que pasan | > 99% |
|
||||
| avg_latency_ms | Latencia promedio | < 100ms |
|
||||
| escalation_rate | % escalados a DEEP | < 1% |
|
||||
| alert_rate | Alertas por hora | < 5 |
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
- [ ] Implementación scheduler LIGHT (cada 5 min)
|
||||
- [ ] Implementación scheduler DEEP (cada hora)
|
||||
- [ ] Dashboard de estado
|
||||
- [ ] Sistema de alertas (ntfy)
|
||||
- [ ] Integración con Feldman para verificar cadena de bloques
|
||||
122
02_COMPONENTES/internos/contable.md
Normal file
122
02_COMPONENTES/internos/contable.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Contable
|
||||
|
||||
**Nombre:** Feldman
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Registro final definitivo e inmutable. Representa el estado válido y oficial de cada operación. Aplica principios contables de inmutabilidad.
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | **Inmutable** |
|
||||
| Persistencia | Permanente |
|
||||
| Eliminación | Prohibida bajo ningún concepto |
|
||||
|
||||
---
|
||||
|
||||
## Estructura Interna
|
||||
|
||||
Feldman es una **unidad conceptual** que contiene dos tablas:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ FELDMAN │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────┐ ┌─────────────────────┐ │
|
||||
│ │ Cola de Validación │ → │ Registro Final │ │
|
||||
│ │ (espera bloques) │ │ (inmutable) │ │
|
||||
│ └─────────────────────┘ └─────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Aclaración:** La división es **técnica** (tiempo entre validaciones), no conceptual.
|
||||
|
||||
---
|
||||
|
||||
## Validación por Bloques
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Frecuencia | Periódica |
|
||||
| Tipo | Por bloques, no transacción a transacción |
|
||||
| Reglas | M-001, M-002, M-003 |
|
||||
|
||||
### Reglas de Validación
|
||||
|
||||
| Regla | Nombre | Descripción |
|
||||
|-------|--------|-------------|
|
||||
| M-001 | Hash único | h_bloque/h_milestone no existe previamente |
|
||||
| M-002 | Encadenamiento | hash_previo apunta a bloque existente |
|
||||
| M-003 | Integridad | hash_contenido = SHA-256(contenido) |
|
||||
|
||||
---
|
||||
|
||||
## Encadenamiento
|
||||
|
||||
```
|
||||
Bloque N-1 Bloque N
|
||||
┌──────────────────┐ ┌──────────────────┐
|
||||
│ h_bloque: abc123 │ ──────► │ hash_previo: │
|
||||
│ hash_contenido: │ │ abc123 │
|
||||
│ def456 │ │ h_bloque: ghi789 │
|
||||
│ secuencia: 1 │ │ secuencia: 2 │
|
||||
└──────────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schema Cola
|
||||
|
||||
```sql
|
||||
CREATE TABLE feldman_cola (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
tipo VARCHAR(50) NOT NULL,
|
||||
h_entrada VARCHAR(64) NOT NULL,
|
||||
contenido JSONB NOT NULL,
|
||||
prioridad INTEGER DEFAULT 0,
|
||||
estado VARCHAR(20) DEFAULT 'pendiente',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
processed_at TIMESTAMPTZ
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schema Registro Final
|
||||
|
||||
```sql
|
||||
CREATE TABLE bloques (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_bloque VARCHAR(64) UNIQUE NOT NULL,
|
||||
h_instancia VARCHAR(64) NOT NULL,
|
||||
secuencia BIGINT NOT NULL,
|
||||
hash_previo VARCHAR(64),
|
||||
hash_contenido VARCHAR(64) NOT NULL,
|
||||
tipo_bloque VARCHAR(50) NOT NULL,
|
||||
contenido JSONB NOT NULL,
|
||||
metadata JSONB,
|
||||
estado VARCHAR(20) DEFAULT 'consolidado',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
validated_at TIMESTAMPTZ,
|
||||
UNIQUE (h_instancia, secuencia)
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Trazabilidad
|
||||
|
||||
Cualquier registro en Feldman puede rastrearse hasta Secretaría:
|
||||
|
||||
```
|
||||
Bloque (Feldman) → h_entrada → Secretaría (Clara/Margaret)
|
||||
```
|
||||
150
02_COMPONENTES/internos/context-system.md
Normal file
150
02_COMPONENTES/internos/context-system.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# Context System
|
||||
|
||||
**Versión:** 0.1
|
||||
**Estado:** Especificación inicial
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Herramienta local para gestionar el contexto de trabajo con modelos de IA. Funciona de forma idéntica en cualquier servidor. No depende de servicios externos.
|
||||
|
||||
---
|
||||
|
||||
## Principios
|
||||
|
||||
1. **Local first** - Todo funciona sin conexión a servicios externos
|
||||
2. **Inmutabilidad del log** - El historial nunca se modifica
|
||||
3. **Control del usuario** - El usuario decide qué contexto envía
|
||||
4. **Independencia** - Cada componente funciona por separado
|
||||
5. **Portabilidad** - La misma herramienta en cualquier servidor
|
||||
|
||||
---
|
||||
|
||||
## Componentes
|
||||
|
||||
### 1. Log Inmutable
|
||||
|
||||
Registro de TODOS los mensajes de conversaciones con IA.
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | NO |
|
||||
| Borrable | NO |
|
||||
| Ubicación | Local (PostgreSQL) |
|
||||
|
||||
**Contenido:**
|
||||
- Cada mensaje enviado a la IA
|
||||
- Cada respuesta recibida
|
||||
- Timestamp
|
||||
- Identificador de sesión
|
||||
|
||||
### 2. Gestor de Contexto
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | Sí |
|
||||
| Borrable | Sí |
|
||||
| Ubicación | Local |
|
||||
|
||||
**Contenido:**
|
||||
- Bloques de contexto reutilizables
|
||||
- Configuración de qué se incluye en cada sesión
|
||||
- Prioridades y orden
|
||||
|
||||
### 3. Dataset del Usuario
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | Sí |
|
||||
| Borrable | Sí |
|
||||
| Ubicación | Local |
|
||||
|
||||
**Contenido:**
|
||||
- Referencias a archivos, documentos, datos
|
||||
- Metadatos para búsqueda y acceso
|
||||
- Estructura del espacio de trabajo
|
||||
|
||||
### 4. Buzón de Entrada
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | Según implementación |
|
||||
| Ubicación | Local |
|
||||
|
||||
**Contenido:**
|
||||
- Resultados que el usuario quiere persistir
|
||||
- Datos que entran al sistema
|
||||
- Conexión con almacenamiento externo
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SERVIDOR (local) │
|
||||
│ │
|
||||
│ ┌─────────────────┐ ┌─────────────────┐ │
|
||||
│ │ 1. LOG │ │ 2. GESTOR │ │
|
||||
│ │ INMUTABLE │ │ DE CONTEXTO │ │
|
||||
│ │ [NO editable] │ │ [Editable] │ │
|
||||
│ └─────────────────┘ └─────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────┐ ┌─────────────────┐ │
|
||||
│ │ 3. DATASET │ │ 4. BUZÓN │ │
|
||||
│ │ DEL USUARIO │ │ DE ENTRADA │ │
|
||||
│ │ [Editable] │ │ [E/S datos] │ │
|
||||
│ └─────────────────┘ └─────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ IA EXTERNA │
|
||||
│ (no en local) │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Módulo Grafo (Kuzu)
|
||||
|
||||
Capa de selección dinámica de contexto. El grafo no almacena datos primarios — es una proyección reconstruible del log.
|
||||
|
||||
```
|
||||
LOG (inmutable) → GRAFO (derivado) → Contexto seleccionado
|
||||
fuente de verdad caché relaciones input para LLM
|
||||
```
|
||||
|
||||
### Tecnología: Kuzu
|
||||
|
||||
| Criterio | Kuzu |
|
||||
|----------|------|
|
||||
| Instalación | `pip install kuzu` |
|
||||
| Dependencias | Ninguna |
|
||||
| Servidor | No requiere |
|
||||
| Persistencia | Carpeta local |
|
||||
| Licencia | MIT |
|
||||
|
||||
### Uso Básico
|
||||
|
||||
```python
|
||||
import kuzu
|
||||
|
||||
db = kuzu.Database("./grafo_contexto")
|
||||
conn = kuzu.Connection(db)
|
||||
|
||||
# Crear esquema
|
||||
conn.execute("CREATE NODE TABLE Mensaje(id INT64, hash STRING, PRIMARY KEY(id))")
|
||||
conn.execute("CREATE NODE TABLE Concepto(nombre STRING, PRIMARY KEY(nombre))")
|
||||
conn.execute("CREATE REL TABLE Menciona(FROM Mensaje TO Concepto)")
|
||||
```
|
||||
|
||||
### Mantenimiento
|
||||
|
||||
| Tarea | Comando |
|
||||
|-------|---------|
|
||||
| Backup | `cp -r ./grafo_contexto ./backup` |
|
||||
| Borrar | `rm -rf ./grafo_contexto` |
|
||||
| Regenerar | Script desde log |
|
||||
106
02_COMPONENTES/internos/produccion.md
Normal file
106
02_COMPONENTES/internos/produccion.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Producción
|
||||
|
||||
**Nombres:** Alfred (personal), Jared (corporativo)
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Almacena flujos y secuencias de procesos predefinidos. Pueden ser complejos (árboles de procesos de producción) o simples (rutinas de entrenamiento).
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | Editable |
|
||||
| Persistencia | Permanente |
|
||||
| Eliminación | Permitida |
|
||||
|
||||
---
|
||||
|
||||
## Función
|
||||
|
||||
- Tiene su propia tabla para definiciones de flujos
|
||||
- La información ya está disponible y ordenada
|
||||
- Permite ejecución directa sin intervención manual
|
||||
- Implementación: Windmill (orquestador de procesos)
|
||||
|
||||
---
|
||||
|
||||
## Alfred vs Jared
|
||||
|
||||
| Aspecto | Alfred | Jared |
|
||||
|---------|--------|-------|
|
||||
| Contexto | Personal (DECK) | Corporativo (CORP) |
|
||||
| Complejidad | Menor | Mayor (múltiples usuarios) |
|
||||
| Flujos | Simples | Complejos |
|
||||
|
||||
---
|
||||
|
||||
## Flujo de Producción
|
||||
|
||||
Cuando la información **encaja** (viene de un proceso predefinido):
|
||||
|
||||
```
|
||||
Alfred/Jared (producción)
|
||||
│
|
||||
▼
|
||||
Clara/Margaret (secretaría) ← Registro inmutable
|
||||
│
|
||||
▼
|
||||
Feldman (contable) ← Consolidación directa
|
||||
```
|
||||
|
||||
**Nota:** Este flujo salta Administración porque no hay nada que enriquecer.
|
||||
|
||||
---
|
||||
|
||||
## Decisión de Flujo
|
||||
|
||||
```
|
||||
┌─────────────────┐
|
||||
│ ¿Encaja? │
|
||||
└────────┬────────┘
|
||||
│
|
||||
┌────┴────┐
|
||||
│ │
|
||||
SÍ NO
|
||||
│ │
|
||||
▼ ▼
|
||||
Feldman Mason
|
||||
(directo) (enriquecer)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Relación con Grace
|
||||
|
||||
```
|
||||
Alfred/Jared (decide) ──► Grace (transforma)
|
||||
```
|
||||
|
||||
- **Producción** decide el flujo
|
||||
- **Grace** transforma los datos
|
||||
|
||||
---
|
||||
|
||||
## Mapeo de Intenciones
|
||||
|
||||
```javascript
|
||||
// Ejemplo de decisiones de Alfred
|
||||
"resumir" → GRACE.SUMMARIZER
|
||||
"transcribir" → GRACE.ASR_ENGINE
|
||||
"generar plan" → PENNY
|
||||
"crear imagen" → FACTORY
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
- [ ] Estructura de la tabla de flujos
|
||||
- [ ] Formato de definición de flujos
|
||||
- [ ] Mecanismo de hashes para "encaja/no encaja"
|
||||
105
02_COMPONENTES/internos/secretaria.md
Normal file
105
02_COMPONENTES/internos/secretaria.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Secretaría
|
||||
|
||||
**Nombres:** Clara (personal), Margaret (corporativo)
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Punto de entrada inmutable del sistema. Todo dato que ingresa queda registrado exactamente como llegó.
|
||||
|
||||
---
|
||||
|
||||
## Principio
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ Todo lo que entra se registra. │
|
||||
│ Nada se modifica. Nada se elimina. │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | **Inmutable** |
|
||||
| Persistencia | Permanente |
|
||||
| Eliminación | Prohibida |
|
||||
|
||||
---
|
||||
|
||||
## Registra
|
||||
|
||||
- Fecha y hora
|
||||
- Origen
|
||||
- Usuario
|
||||
- Contenido
|
||||
- Hash SHA-256 de archivos
|
||||
|
||||
---
|
||||
|
||||
## Clara vs Margaret
|
||||
|
||||
| Aspecto | Clara | Margaret |
|
||||
|---------|-------|----------|
|
||||
| Contexto | Personal (DECK) | Corporativo (CORP) |
|
||||
| Usuarios | Uno | Múltiples |
|
||||
| Tabla recepción | Menor | Mayor |
|
||||
| Funcionalidad | Equivalente | Equivalente |
|
||||
|
||||
---
|
||||
|
||||
## Flujo de Entrada
|
||||
|
||||
```
|
||||
PACKET / API / Manual
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Secretaría │
|
||||
│ Clara/Margaret │
|
||||
├─────────────────┤
|
||||
│ • Registrar │
|
||||
│ • Hashear │
|
||||
│ • Almacenar │
|
||||
│ • Confirmar │
|
||||
└────────┬────────┘
|
||||
│
|
||||
├──► Producción (si encaja)
|
||||
│
|
||||
└──► Administración (si no encaja)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schema
|
||||
|
||||
```sql
|
||||
CREATE TABLE secretaria_log (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_entrada VARCHAR(64) UNIQUE NOT NULL,
|
||||
ts TIMESTAMPTZ DEFAULT NOW(),
|
||||
origen VARCHAR(100),
|
||||
usuario_id INTEGER,
|
||||
tipo_contenido VARCHAR(50),
|
||||
contenido JSONB,
|
||||
archivos_hashes JSONB,
|
||||
metadata JSONB
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API
|
||||
|
||||
| Endpoint | Método | Descripción |
|
||||
|----------|--------|-------------|
|
||||
| /ingesta | POST | Nueva entrada |
|
||||
| /ingesta/{h_entrada} | GET | Consultar entrada |
|
||||
| /ingesta/verificar | POST | Verificar hash |
|
||||
90
02_COMPONENTES/internos/utilidades.md
Normal file
90
02_COMPONENTES/internos/utilidades.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Utilidades
|
||||
|
||||
**Estado:** Operativo
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Pack de servicios auxiliares disponibles en cada instancia del sistema.
|
||||
|
||||
---
|
||||
|
||||
## Servicios
|
||||
|
||||
| Servicio | Función | Base |
|
||||
|----------|---------|------|
|
||||
| **Mail** | Correo electrónico | Cowmail |
|
||||
| **Alias** | Gestión de alias de correo | Addy.io |
|
||||
| **Credenciales** | Gestión de credenciales | Vaultwarden |
|
||||
| **Acortador** | Redirección de URLs | Shlink |
|
||||
|
||||
---
|
||||
|
||||
## Puertos por Servidor
|
||||
|
||||
| Servicio | DECK | CORP |
|
||||
|----------|------|------|
|
||||
| Mail | 8084 | 8084 |
|
||||
| Alias | 8085 | 8085 |
|
||||
| Credenciales | 8082 | 8081 |
|
||||
| Acortador | 8083 | 8082 |
|
||||
|
||||
---
|
||||
|
||||
## Mail
|
||||
|
||||
Gestión de correo electrónico.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Cowmail |
|
||||
| Protocolo | SMTP/IMAP |
|
||||
|
||||
---
|
||||
|
||||
## Alias
|
||||
|
||||
Gestión de alias de correo para privacidad y organización.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Addy.io |
|
||||
| Función | Crear alias temporales o permanentes |
|
||||
|
||||
---
|
||||
|
||||
## Credenciales
|
||||
|
||||
Almacén seguro de credenciales y secretos.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Vaultwarden |
|
||||
| Protocolo | API compatible Bitwarden |
|
||||
| Referencia | `kv://` URIs |
|
||||
|
||||
---
|
||||
|
||||
## Acortador
|
||||
|
||||
Acortador y redirector de URLs con tracking.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Shlink |
|
||||
| Función | URLs cortas, estadísticas de clics |
|
||||
|
||||
---
|
||||
|
||||
## Bases de Datos de Usuario
|
||||
|
||||
Extensiones de bibliotecas para contenido personalizado:
|
||||
|
||||
| Tabla | Descripción | Extiende |
|
||||
|-------|-------------|----------|
|
||||
| **hsu** | Tags de usuario | HST |
|
||||
| **spu** | Especialidades de usuario | SPE |
|
||||
| **pju** | Proyectos de usuario | PJT |
|
||||
|
||||
Estas tablas permiten que cada usuario cree sus propias etiquetas, especialidades y proyectos sin modificar las bibliotecas base del sistema.
|
||||
Reference in New Issue
Block a user