GUÍA MODO SERVIDOR

Fararoni v1.0.0 — Conectar plugins IDE, sidecars y apps externas via REST/WebSocket

VOLVER

Versión: 1.0.0

Esta guía explica como iniciar Fararoni en modo servidor para conectar plugins IDE (IntelliJ), sidecars de mensajería (WhatsApp, Telegram, Discord, iMessage) y aplicaciones externas via REST/WebSocket.

Requisitos

  • Fararoni instalado y configurado (ver Guía de Instalación Rápida)
  • Ollama corriendo (ollama serve)

Paso 1 — Iniciar el servidor

Navega a tu carpeta de confianza y ejecuta:

cd ~/Documents/Proyectos
fararoni --server

Que aparece al iniciar

Primero el banner del modo servidor:

╔═══════════════════════════════════════════════════════════════╗
║           FARARONI SERVER - Modo IDE Plugin                   ║
╚═══════════════════════════════════════════════════════════════╝

[SERVER] Inicializando componentes...

Luego Fararoni carga todos los subsistemas:

[FARARONI] Enlace primario estable.
[FARARONI]  Persistencia Blindada ACTIVA (Outbox Pattern: sovereign_bus.db)
[FARARONI]  Repositorio de canales inicializado
[FARARONI]  MessagingChannelManager iniciado
[FARARONI]  Security Auth ACTIVO (TOTP + Sandbox + BCrypt)
[FARARONI]  GalvanicAgent iniciado en Bus Soberano
[FARARONI]  QuartermasterAgent iniciado en Bus Soberano
[FARARONI]  AgentTemplateManager iniciado (10 agentes activos, LLM inyectado)
[FARARONI]  SovereignMissionEngine activo
[RECOVERY] Servicio de Recuperacion de Desastres iniciado
[SAFETY] FileSystemIntentListener activo (Write + Restore)
[TOOL-REGISTRY] Herramientas base: 36+
 Dynamic Tool Prompting activado

Componentes exclusivos del modo servidor:

[SERVER] ✓ HyperNativeKernel inicializado (via FararoniCore)
[SERVER] ✓ SessionManager configurado (Multi-Tenant)
[SERVER] ✓ Autenticacion: DESACTIVADA (desarrollo)

Panel de servidor activo

╔═══════════════════════════════════════════════════════════════╗
║  [ACTIVE] SERVIDOR ACTIVO                                     ║
╠═══════════════════════════════════════════════════════════════╣
║  URL Base:    http://localhost:7070                           ║
║                                                               ║
║  Endpoints REST:                                              ║
║    POST   /api/chat           - Chat sincronico (IDE)         ║
║    POST   /api/task           - Ejecutar mision (async)       ║
║    GET    /api/status         - Estado del servidor           ║
║    GET    /api/session/{id}   - Estado de sesion              ║
║    DELETE /api/session/{id}   - Cerrar sesion                 ║
║    GET    /health             - Health check                  ║
║                                                               ║
║  WebSocket:                                                   ║
║    WS     /ws/events?userId=X - Live feed de eventos          ║
║                                                               ║
║  Presiona CTRL+C para detener el servidor                     ║
╚═══════════════════════════════════════════════════════════════╝

El servidor queda corriendo en primer plano. No cierres esta terminal.

Nota: El OmniChannel Gateway (puerto 7071) se levanta automaticamente junto con el servidor.

Paso 2 — Verificar que funciona

Abre una terminal nueva y ejecuta:

# Health check del Core Server
curl http://localhost:7070/health
# {"status":"healthy"}

# Status del servidor
curl http://localhost:7070/api/status

# Health check del Gateway
curl http://localhost:7071/gateway/v1/health
# {"status":"healthy","port":7071,"activeClients":0,"throttleRate":0.0000}

Paso 3 — Servicios automaticos

Al iniciar con --server, Fararoni levanta dos servicios:

ServicioPuertoDescripcion
Core Server7070API REST + WebSocket para plugins IDE y aplicaciones
OmniChannel Gateway7071HTTP ingress/egress para sidecars de mensajeria

El Gateway se levanta automaticamente — no hay que iniciarlo por separado.

Paso 4 — Conectar Sidecars

Con el servidor corriendo, abre una terminal nueva para cada canal. Los sidecars son binarios nativos — no requieren Node.js ni npm.

WhatsApp

# Terminal 2
~/Fararoni/bin/sidecar-whatsapp

Al iniciar aparece un codigo QR. Escanealo con WhatsApp:

  1. Abre WhatsApp en tu telefono
  2. Ve a Configuracion → Dispositivos vinculados → Vincular dispositivo
  3. Escanea el QR

La sesion se guarda localmente — no vuelve a pedir QR en futuros inicios.

============================================================
  FARARONI WhatsApp Sidecar
============================================================
[INFO]  13:28:40 [HTTP] Servidor escuchando en puerto 3000
[INFO]  13:28:40 [BAILEYS] Iniciando conexion...
[INFO]  13:28:41 [BAILEYS] QR Code generado - Escanea con WhatsApp

Telegram

Requiere un token de @BotFather:

  1. Abre Telegram y busca @BotFather
  2. Envia /newbot y sigue las instrucciones
  3. Copia el token que te da
# Terminal 3
export TELEGRAM_TOKEN="tu_token_de_botfather"
~/Fararoni/bin/sidecar-telegram
============================================================
  FARARONI SIDECAR - TELEGRAM
============================================================
[INFO]  13:18:39 [HTTP] Servidor Egress en puerto 3001

Discord

Requiere un token del Developer Portal de Discord:

  1. Ve a discord.com/developers/applications
  2. Crea una aplicacion (o usa una existente)
  3. En la seccion Bot, copia el token
# Terminal 4
export DISCORD_TOKEN="tu_token_del_developer_portal"
~/Fararoni/bin/sidecar-discord
============================================================
  FARARONI SIDECAR - DISCORD
============================================================
[INFO]  13:41:38 [HTTP] Servidor Egress en puerto 3002
[INFO]  13:41:39 [DISCORD] Bot conectado: tu-bot#0000
[INFO]  13:41:39 [READY] Sidecar listo para recibir mensajes

iMessage (solo macOS)

Requiere BlueBubbles corriendo en tu Mac:

# Terminal 5
export BLUEBUBBLES_PASSWORD="tu_password"
~/Fararoni/bin/sidecar-imessage

Paso 5 — Verificar sidecars

En otra terminal, verifica que cada sidecar responda:

# WhatsApp (puerto 3000)
curl http://localhost:3000/health

# Telegram (puerto 3001)
curl http://localhost:3001/health

# Discord (puerto 3002)
curl http://localhost:3002/health

# iMessage (puerto 3003)
curl http://localhost:3003/health

Cada health check devuelve el estado de conexion del canal:

{"status":"healthy","connection":"connected","channelId":"telegram","port":3001}

Flujo de comunicacion

Usuario (WhatsApp/Telegram/Discord/iMessage)
        |
        v
Sidecar (binario nativo, puerto 3000-3003)
        |
        v  POST /gateway/v1/inbound
OmniChannel Gateway (:7071)
        |
        v
SovereignEventBus
        |
        v
Fararoni Core (:7070) — procesa con LLM
        |
        v  POST /send
SovereignEventBus → HttpEgressDispatcher
        |
        v
Sidecar → Usuario

Ejemplo real verificado (Telegram)

Usuario Telegram → "Hola"
  → Sidecar Telegram (:3001) → POST /gateway/v1/inbound
  → OmniChannel Gateway (:7071) → SovereignEventBus
  → Fararoni Core (:7070) → LLM
  → "¡Hola! ¿En que puedo ayudarte hoy?" → Telegram

Logs del sidecar:

[INFO]  13:18:39 [HTTP] Servidor Egress en puerto 3001
[INFO]  13:18:40 [INGRESS] 1568104683 -> "Hola" (HTTP 202)
[INFO]  13:18:48 [EGRESS] 1568104683 <- "¡Hola! ¿En que puedo ayudarte hoy?"

Los tres servicios funcionan en conjunto:

  • Core (:7070) — procesa el mensaje con el LLM
  • Gateway (:7071) — enruta ingress/egress entre sidecars y core
  • Sidecar Telegram (:3001) — recibe y envia mensajes a Telegram

Endpoints REST (referencia)

Chat sincronico (para plugins IDE)

curl -X POST http://localhost:7070/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "analiza este proyecto", "userId": "ide-user"}'

Ejecutar mision asincrona

curl -X POST http://localhost:7070/api/task \
  -H "Content-Type: application/json" \
  -d '{"task": "crea un microservicio de pagos", "userId": "user1"}'

Estado del servidor

curl http://localhost:7070/api/status

WebSocket (live feed)

Conectar a ws://localhost:7070/ws/events?userId=tu-usuario para recibir eventos en tiempo real.

Resumen de puertos

PuertoServicioProtocolo
7070Fararoni Core ServerHTTP/WS
7071OmniChannel GatewayHTTP
3000Sidecar WhatsAppHTTP
3001Sidecar TelegramHTTP
3002Sidecar DiscordHTTP
3003Sidecar iMessageHTTP
11434OllamaHTTP

Detener el servidor

Presiona Ctrl+C en la terminal donde corre el servidor. Esto detiene el Core y el Gateway.

Para detener los sidecars, presiona Ctrl+C en cada terminal, o si los registraste como LaunchAgents:

launchctl unload ~/Library/LaunchAgents/com.fararoni.sidecar-*.plist
launchctl unload ~/Library/LaunchAgents/com.fararoni.core.plist

Problemas comunes

ProblemaSolucion
Connection refused :7070El servidor no esta corriendo. Ejecuta fararoni --server
Connection refused :7071El Gateway no se levanto. Verifica logs del servidor
Connection refused :11434Ollama no esta corriendo. Ejecuta ollama serve
Sidecar no conecta al GatewayVerifica que el servidor este corriendo en puerto 7071
Puerto 7070 ya en usoUsa otro puerto: fararoni --server --port 8080

Fararoni v1.0.0 — Sovereign AI Agent Orchestrator | Licencia: Apache 2.0 | Autor: Eber Cruz

Secure Terminal Access

INICIALIZAR_COLABORACION

¿Quieres sumarte al proyecto? Interfaz terminal segura para desarrolladores y perfiles técnicos.

fararoni_secure_shell — bash
SISTEMA: ESPERANDO ENTRADA
System check: OK
> INICIALIZAR_COLABORACION...
root@fararoni:~$input_email
root@fararoni:~$set_sector
root@fararoni:~$set_operator
root@fararoni:~$define_mission
root@fararoni:~$Escribe 'help' para ver comandos disponibles
root@fararoni:~$
CONEXIÓN ENCRIPTADA ESTABLECIDA vía TLS 1.3