# Oleada B — Migración procesos a 192.168.1.16

**Ejecutar en el servidor IA vía Escritorio remoto.**  
**EQUIPITELLO** sigue siendo: XAMPP lab, bridge `:8095`, PM2 local, bandejas Windows.

**Tailscale EQUIPITELLO:** `100.78.198.98` | **Servidor .16 LAN:** `192.168.1.16` | **Supervisor:** `:8787`

---

## Qué SÍ migrar al .16

| Proceso / tarea | Por qué | Cómo |
|-----------------|---------|------|
| **Watchdog bridge** | Health check cada 5 min sin PowerShell en EQUIPITELLO | Tarea programada en .16 → GET `:8095/health` |
| **F6 Mirror htdocs** | Robocopy pesado en login EQUIPITELLO | Tarea **`F6-MirrorHtdocsToServer` en EQUIPITELLO** (push → .16) |
| **RAG ingest** | Qdrant + Ollama ya en .16 | Cron supervisor `POST /api/rag/ingest` |
| **Ollama inferencia** | GPU/RAM en servidor | EQUIPITELLO usa `OLLAMA_HOST=http://192.168.1.16:11434` |
| **BERT/ML/Puppeteer NSSM** | Servicios Disabled en PC | Solo Docker en .16 |

## Qué NO migrar (queda en EQUIPITELLO)

- Apache/MySQL XAMPP (`:80`, `:443`, `:9080`, MySQL `127.0.0.1:3306`)
- cursor-mobile-bridge `:8095`
- PM2: captajaus `:3000`, royalbroker `:8086`, ALimpiezas OCR `:8090`
- Bandejas systray, AnyDesk `:7070`, Tailscale cliente

---

## Paso 1 — Verificar conectividad desde .16

En PowerShell **del servidor .16**:

```powershell
# Supervisor local
Invoke-WebRequest -Uri 'http://127.0.0.1:8787/health' -UseBasicParsing | Select-Object StatusCode

# Bridge EQUIPITELLO (Tailscale)
Invoke-WebRequest -Uri 'http://100.78.198.98:8095/health' -UseBasicParsing | Select-Object StatusCode

# SMB stack (mirror)
Test-Path '\\192.168.1.16\stack\workspace\htdocs'
# o Tailscale SMB si aplica: \\100.69.11.89\stack
```

---

## Paso 2 — Watchdog bridge (tarea en .16)

**Error conocido:** no uses `RepetitionDuration ([TimeSpan]::MaxValue)` — falla el XML de la tarea.

En el **servidor .16** (ruta mirror del repo):

```powershell
cd C:\stack\workspace\htdocs\xzonassite\ops\multiagent-supervisor\deploy\scripts
powershell -ExecutionPolicy Bypass -File .\setup-equipitello-bridge-watchdog-server.ps1 -RunNow
powershell -ExecutionPolicy Bypass -File .\setup-equipitello-bridge-watchdog-server.ps1 -InstallTask
```

**En EQUIPITELLO** (tras 24h OK): `Disable-ScheduledTask -TaskName 'CursorBridgeWatchdog'`

---

## Paso 3 — F6 Mirror htdocs ⚠️ IMPORTANTE

**`setup-f6-mirror-push-equipitello.ps1` empuja DESDE EQUIPITELLO → servidor.**  
Si lo ejecutas **en el .16**, busca `C:\xampp\htdocs\...` **en el servidor** (no existe) → WARN omitido.

### Corregir (servidor .16)

```powershell
# Quitar tarea F6 mal instalada en el servidor
Disable-ScheduledTask -TaskName 'F6-MirrorHtdocsToServer' -ErrorAction SilentlyContinue
Unregister-ScheduledTask -TaskName 'F6-MirrorHtdocsToServer' -Confirm:$false -ErrorAction SilentlyContinue
```

### Instalar F6 en EQUIPITELLO (PC desarrollo)

```powershell
cd C:\xampp\htdocs\xzonassite\ops\multiagent-supervisor\deploy\scripts
.\setup-f6-mirror-push-equipitello.ps1 -RunNow
.\setup-f6-mirror-push-equipitello.ps1 -InstallTask
# incremental completo (opcional):
.\setup-f6-mirror-push-equipitello.ps1 -RunNow -IncrementalAll
```

Origen real: `C:\xampp\htdocs` en EQUIPITELLO → `\\192.168.1.16\stack\workspace\htdocs`

### Validar en servidor

```powershell
Test-Path C:\stack\workspace\htdocs\xzonassite
Test-Path C:\stack\workspace\htdocs\cursor-mobile-bridge
```

---

## Paso 4 — RAG ingest (token obligatorio)

`Invoke-WebRequest` **sin token** devuelve `Token de supervisor inválido`.

En **servidor .16**:

```powershell
cd C:\stack\workspace\htdocs\xzonassite\ops\multiagent-supervisor\deploy\scripts
.\supervisor-rag-status-server.ps1
```

Token en: `C:\stack\multiagent-supervisor\deploy\.env` → `SUPERVISOR_DASHBOARD_TOKEN`

Ingest manual (misma carpeta scripts en servidor):

```powershell
cd C:\stack\workspace\htdocs\xzonassite\ops\multiagent-supervisor\deploy\scripts
.\paso7-rag-ingest-equipitello.ps1
```

**No uses** `C:\xampp\htdocs\...` en el servidor — la ruta correcta es `C:\stack\workspace\htdocs\...`


---

## Paso 5 — Desactivar duplicados en EQUIPITELLO

**Solo cuando watchdog .16 + F6 desde EQUIPITELLO funcionen 24h.**

```powershell
Disable-ScheduledTask -TaskName 'PM2Tray' -ErrorAction SilentlyContinue          # ya Disabled
Disable-ScheduledTask -TaskName 'CursorBridgeWatchdog' -ErrorAction SilentlyContinue
# NO deshabilitar F6-MirrorHtdocsToServer en EQUIPITELLO hasta tener push OK
```

---

## Paso 6 — Informe para agente

Pegar en chat tras ejecutar en .16:

```
=== XZONAS_AGENT_REPORT ===
oleada_b_servidor_16
supervisor_health: OK/FAIL
bridge_health_100.78.198.98:8095: OK/FAIL
f6_task_installed: yes/no
watchdog_task_installed: yes/no
rag_ingest: OK/FAIL
=== END_XZONAS_AGENT_REPORT ===
```

---

## Análisis netstat EQUIPITELLO (2026-07-11)

| Puerto | Estado | Nota |
|--------|--------|------|
| `:3306` | `127.0.0.1` ✅ | MySQL no expuesto LAN — correcto |
| `:8095` | bridge ✅ | |
| `:8090` | OCR local ✅ | |
| `:9080` | lab XAMPP ✅ | |
| `:3000` | captajaus ✅ | |
| `:8086` | royalbroker ✅ | |
| `:4173` | Puter node | Reiniciar tras VSIX; `autoStart: false` |
| `:7070` | AnyDesk | Documentar ACL |
| `:80/:443` | Apache | Revisar vhosts sensibles |
| `:2026` / `:18080` | Revisar PID | Identificar con `Get-Process -Id 22792` |

BOM MCP: **Sin problemas** (audit 2026-07-11).
