feat: import agents_and_robots platform as unibots (Matrix-out, unibus transport)

Reemplaza el scaffold del echobot por la plataforma completa de bots traida
desde ~/DataProyects/Github/agents_and_robots tras la operacion Matrix-out:
los bots ya no hablan por Matrix sino por el bus unibus (modelo todo-rooms +
E2E via shell/transportunibus sobre github.com/enmanuel/unibus/pkg/client).

- go.mod: replace de unibus -> ../unibus y de fn-registry -> ../../../.. (paths
  relativos reajustados a la nueva ubicacion dentro de fn_registry).
- app.md: bump a 0.2.0, descripcion + arquitectura + comandos + gotchas reales.
- modulo Go conservado como github.com/enmanuel/agents (sin reescribir imports).

agents_and_robots queda archivado como museo de la era Matrix.
This commit is contained in:
agent
2026-06-07 11:50:13 +02:00
parent bb5b0e09b1
commit fc644ecd6e
308 changed files with 38829 additions and 474 deletions
+134
View File
@@ -0,0 +1,134 @@
#!/usr/bin/env bash
# run.sh — ejecutar E2E tests con Playwright
#
# Uso:
# ./dev-scripts/e2e/run.sh # headless (default)
# ./dev-scripts/e2e/run.sh --headed # con browser visible (requiere DISPLAY)
#
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
E2E_DIR="$REPO_ROOT/e2e"
ELEMENT_SCRIPT="$E2E_DIR/scripts/setup-element.sh"
PS_SCRIPT="$REPO_ROOT/dev-scripts/server/ps.sh"
HEADED=false
EXTRA_ARGS=()
for arg in "$@"; do
case "$arg" in
--headed)
HEADED=true
;;
*)
EXTRA_ARGS+=("$arg")
;;
esac
done
# --- Verificaciones previas ---
# 1. Verificar dependencias instaladas
if [ ! -d "$E2E_DIR/node_modules" ]; then
echo "ERROR: node_modules no encontrado. Ejecutar primero:"
echo " ./dev-scripts/e2e/install.sh"
exit 1
fi
# 2. Verificar .env
if [ ! -f "$E2E_DIR/.env" ]; then
echo "ERROR: e2e/.env no encontrado. Crear desde el template:"
echo " cp e2e/.env.example e2e/.env"
echo " # editar e2e/.env con credenciales"
exit 1
fi
# 3. Verificar que los agentes estan corriendo
echo "=== Verificando agentes ==="
if [ -x "$PS_SCRIPT" ]; then
if ! "$PS_SCRIPT" 2>/dev/null | grep -q "running"; then
echo "WARN: el launcher no parece estar corriendo."
echo " Iniciar con: ./dev-scripts/server/start.sh"
echo " Continuando de todas formas..."
else
echo "Launcher corriendo OK"
fi
else
echo "WARN: no se encontro ps.sh, no se puede verificar el estado de los agentes"
fi
# --- Element Web ---
echo ""
echo "=== Element Web ==="
ELEMENT_STARTED_BY_US=false
if [ -x "$ELEMENT_SCRIPT" ]; then
if "$ELEMENT_SCRIPT" status 2>/dev/null | grep -q "corriendo\|running\|listening"; then
echo "Element Web ya esta corriendo"
else
echo "Levantando Element Web..."
"$ELEMENT_SCRIPT" start
ELEMENT_STARTED_BY_US=true
# Esperar a que el servidor este listo
sleep 2
fi
else
echo "WARN: setup-element.sh no encontrado. Asegurarse de que Element Web esta corriendo."
fi
# --- Ejecutar tests ---
echo ""
echo "=== Ejecutando E2E tests ==="
PLAYWRIGHT_ARGS=()
if [ "$HEADED" = true ]; then
if [ -z "${DISPLAY:-}" ] && [ -z "${WAYLAND_DISPLAY:-}" ]; then
echo "WARN: --headed solicitado pero no se detecta DISPLAY. Ejecutando headless."
else
PLAYWRIGHT_ARGS+=("--headed")
fi
fi
# Agregar argumentos extra del usuario
if [ ${#EXTRA_ARGS[@]} -gt 0 ]; then
PLAYWRIGHT_ARGS+=("${EXTRA_ARGS[@]}")
fi
EXIT_CODE=0
cd "$E2E_DIR"
npx playwright test "${PLAYWRIGHT_ARGS[@]}" || EXIT_CODE=$?
# Generar reporte HTML si hay fallos
if [ "$EXIT_CODE" -ne 0 ]; then
echo ""
echo "=== Generando reporte HTML ==="
npx playwright show-report --host 0.0.0.0 --port 0 2>/dev/null &
REPORT_PID=$!
sleep 1
kill "$REPORT_PID" 2>/dev/null || true
echo "Reporte disponible en: $E2E_DIR/playwright-report/"
echo " Para verlo: cd e2e && npx playwright show-report"
fi
# --- Teardown ---
if [ "$ELEMENT_STARTED_BY_US" = true ]; then
echo ""
echo "=== Deteniendo Element Web ==="
"$ELEMENT_SCRIPT" stop 2>/dev/null || true
fi
# --- Resultado ---
echo ""
if [ "$EXIT_CODE" -eq 0 ]; then
echo "=== Todos los tests pasaron ==="
else
echo "=== Algunos tests fallaron (exit code: $EXIT_CODE) ==="
echo "Ver screenshots en: $E2E_DIR/test-results/"
fi
exit "$EXIT_CODE"