refactor: reorganizar dev-scripts en subdirectorios server/ y agent/
Se separan los scripts de gestión en dos categorías claras: - dev-scripts/server/ — operaciones del launcher (start, stop, restart, ps, logs, dashboard) - dev-scripts/agent/ — operaciones de agentes (new, register, verify, avatar, remove, list) Se añade create-full.sh como script unificado que ejecuta scaffold + build + register + verify. Se incluyen READMEs en cada subdirectorio documentando los scripts disponibles. Los scripts originales en la raíz de dev-scripts/ se eliminan. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# dev-scripts
|
||||
|
||||
Scripts bash para operaciones del día a día con los bots Matrix.
|
||||
|
||||
Todos los scripts comparten funciones comunes definidas en `_common.sh` (colores, helpers de proceso, descubrimiento de agentes, carga de `.env`).
|
||||
|
||||
## Estructura
|
||||
|
||||
```
|
||||
dev-scripts/
|
||||
├── _common.sh funciones compartidas (sourced por todos los scripts)
|
||||
├── server/ gestión del launcher (ciclo de vida del servidor)
|
||||
└── agent/ gestión de agentes individuales (setup, registro, E2EE)
|
||||
```
|
||||
|
||||
## server/
|
||||
|
||||
Scripts para controlar el launcher unificado que ejecuta todos los agentes.
|
||||
|
||||
| Script | Descripción |
|
||||
|--------|-------------|
|
||||
| `start.sh` | Inicia el launcher (compila si es necesario) |
|
||||
| `stop.sh` | Detiene el launcher (SIGTERM, espera 5s, SIGKILL) |
|
||||
| `restart.sh` | Reinicia el launcher (stop + start) |
|
||||
| `ps.sh` | Muestra el proceso del launcher con detalle (PID, mem, CPU, uptime) |
|
||||
| `logs.sh [lines]` | Tail -f de los logs del launcher |
|
||||
| `dashboard.sh` | Abre la TUI interactiva de gestión |
|
||||
| `server.sh <cmd>` | CLI unificado que enruta a los scripts anteriores |
|
||||
|
||||
## agent/
|
||||
|
||||
Scripts para crear, registrar, verificar y gestionar agentes individuales.
|
||||
|
||||
| Script | Descripción |
|
||||
|--------|-------------|
|
||||
| `new-agent.sh <id> [name]` | Genera scaffold completo (config, agent.go, prompts) |
|
||||
| `register.sh <id> [name]` | Registra bot en Matrix via Synapse admin API |
|
||||
| `verify.sh [id]` | Verifica/regenera dispositivos E2EE (cross-signing) |
|
||||
| `avatar.sh <id> <img>` | Sube avatar y sincroniza displayname |
|
||||
| `reset-password.sh <id>` | Resetea password sin invalidar el token |
|
||||
| `remove.sh <id>` | Deshabilita un agente (enabled: false, no borra datos) |
|
||||
| `list.sh` | Muestra todos los agentes y su estado |
|
||||
@@ -0,0 +1,89 @@
|
||||
# dev-scripts/agent
|
||||
|
||||
Scripts para crear, registrar, verificar y gestionar agentes individuales en el sistema Matrix.
|
||||
|
||||
## Scripts
|
||||
|
||||
### new-agent.sh
|
||||
|
||||
Genera el scaffold completo para un nuevo agente: `config.yaml`, `agent.go` (reglas puras), directorio de prompts y data. También registra automáticamente el import y la entrada en `rulesRegistry` de `cmd/launcher/main.go`.
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/new-agent.sh <agent-id> "Display Name"
|
||||
./dev-scripts/agent/new-agent.sh monitor-bot "Monitor Agent"
|
||||
```
|
||||
|
||||
### register.sh
|
||||
|
||||
Registra un nuevo bot en el servidor Matrix via Synapse admin API. Genera y guarda en `.env`: access token (`MATRIX_TOKEN_*`), password (`MATRIX_PASSWORD_*`) y pickle key (`PICKLE_KEY_*`).
|
||||
|
||||
Requiere `MATRIX_ADMIN_TOKEN` y `MATRIX_HOMESERVER` en `.env`.
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/register.sh <agent-id> "Display Name"
|
||||
./dev-scripts/agent/register.sh assistant-bot "Assistant"
|
||||
```
|
||||
|
||||
### verify.sh
|
||||
|
||||
Verifica o regenera los dispositivos E2EE de los agentes. Genera cross-signing keys, firma el device y guarda el recovery key en `.env`. Sin este paso, los mensajes del bot aparecen como "not verified by its owner".
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/verify.sh # verifica todos los habilitados con E2EE
|
||||
./dev-scripts/agent/verify.sh assistant-bot # verifica uno específico
|
||||
```
|
||||
|
||||
### avatar.sh
|
||||
|
||||
Sube una imagen como avatar del bot en Matrix y sincroniza el displayname desde el `config.yaml`.
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/avatar.sh <agent-id> <image-path>
|
||||
./dev-scripts/agent/avatar.sh assistant-bot static/assistant.jpg
|
||||
```
|
||||
|
||||
### reset-password.sh
|
||||
|
||||
Resetea la contraseña de un bot existente via Synapse admin API sin crear nueva sesión ni cambiar el device ID. El access token actual sigue siendo válido.
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/reset-password.sh <agent-id>
|
||||
./dev-scripts/agent/reset-password.sh assistant-bot
|
||||
```
|
||||
|
||||
### remove.sh
|
||||
|
||||
Deshabilita un agente marcándolo como `enabled: false` en su `config.yaml`. No borra datos — los preserva en `agents/<id>/data/`.
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/remove.sh <agent-id>
|
||||
```
|
||||
|
||||
### list.sh
|
||||
|
||||
Muestra todos los agentes registrados con su estado (running/stopped/disabled), versión y descripción en una tabla formateada.
|
||||
|
||||
```bash
|
||||
./dev-scripts/agent/list.sh
|
||||
```
|
||||
|
||||
## Flujo típico para un nuevo agente
|
||||
|
||||
```bash
|
||||
# 1. Crear scaffold
|
||||
./dev-scripts/agent/new-agent.sh mi-bot "Mi Bot"
|
||||
|
||||
# 2. Editar config, reglas y prompt
|
||||
# agents/mi-bot/config.yaml
|
||||
# agents/mi-bot/agent.go
|
||||
# agents/mi-bot/prompts/system.md
|
||||
|
||||
# 3. Registrar en Matrix
|
||||
./dev-scripts/agent/register.sh mi-bot "Mi Bot"
|
||||
|
||||
# 4. Verificar E2EE
|
||||
./dev-scripts/agent/verify.sh mi-bot
|
||||
|
||||
# 5. Arrancar
|
||||
./dev-scripts/server/start.sh
|
||||
```
|
||||
@@ -3,13 +3,13 @@
|
||||
# También sincroniza el displayname desde el config (agent.name).
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/avatar.sh <agent-id> <image-path>
|
||||
# ./dev-scripts/agent/avatar.sh <agent-id> <image-path>
|
||||
#
|
||||
# Ejemplos:
|
||||
# ./dev-scripts/avatar.sh assistant-bot assets/assistant.png
|
||||
# ./dev-scripts/avatar.sh devops-bot assets/devops.jpg
|
||||
# ./dev-scripts/agent/avatar.sh assistant-bot assets/assistant.png
|
||||
# ./dev-scripts/agent/avatar.sh devops-bot assets/devops.jpg
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
AGENT_ID="${1:-}"
|
||||
Executable
+101
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env bash
|
||||
# create-full.sh — pipeline completo para crear un agente funcional
|
||||
#
|
||||
# Ejecuta en orden: scaffold → build → register → verify E2EE
|
||||
# NO arranca el agente — primero personalizar agent.go, config.yaml y prompts/system.md
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/agent/create-full.sh <agent-id> "Display Name"
|
||||
#
|
||||
# Ejemplo:
|
||||
# ./dev-scripts/agent/create-full.sh monitor-bot "Monitor Agent"
|
||||
#
|
||||
# Requisitos en .env:
|
||||
# MATRIX_ADMIN_TOKEN, MATRIX_HOMESERVER, MATRIX_SERVER_NAME
|
||||
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
need_arg "${1:-}"
|
||||
|
||||
ID="$1"
|
||||
DISPLAYNAME="${2:-$ID}"
|
||||
NORM="$(normalize_id "$ID")"
|
||||
SCRIPT_DIR="$(dirname "$0")"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLU}═══════════════════════════════════════════════════════${RST}"
|
||||
echo -e "${BLU} Creando agente: ${GRN}$ID${BLU} ($DISPLAYNAME)${RST}"
|
||||
echo -e "${BLU}═══════════════════════════════════════════════════════${RST}"
|
||||
echo ""
|
||||
|
||||
# ── Paso 1: Scaffold ─────────────────────────────────────────────────────
|
||||
info "Paso 1/4 — Scaffold (agent.go, config.yaml, prompts, launcher)"
|
||||
echo ""
|
||||
|
||||
"$SCRIPT_DIR/new-agent.sh" "$ID" "$DISPLAYNAME"
|
||||
|
||||
echo ""
|
||||
|
||||
# ── Paso 2: Verificar compilación ─────────────────────────────────────────
|
||||
info "Paso 2/4 — Verificando compilación..."
|
||||
|
||||
if "$GO" build -tags goolm ./... 2>&1; then
|
||||
ok "Compilación exitosa"
|
||||
else
|
||||
fail "Error de compilación — revisa agents/$ID/agent.go y cmd/launcher/main.go"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# ── Paso 3: Registrar en Matrix ──────────────────────────────────────────
|
||||
info "Paso 3/4 — Registrando en Matrix..."
|
||||
echo ""
|
||||
|
||||
# Reload .env in case new-agent.sh or previous steps changed it
|
||||
load_env
|
||||
|
||||
"$SCRIPT_DIR/register.sh" "$ID" "$DISPLAYNAME"
|
||||
|
||||
echo ""
|
||||
|
||||
# ── Paso 4: Verificar E2EE ───────────────────────────────────────────────
|
||||
info "Paso 4/4 — Verificación E2EE (cross-signing + recovery key)..."
|
||||
echo ""
|
||||
|
||||
# Reload .env to pick up token, password, pickle key from register.sh
|
||||
load_env
|
||||
|
||||
"$SCRIPT_DIR/verify.sh" "$ID"
|
||||
|
||||
echo ""
|
||||
|
||||
# ── Resumen ──────────────────────────────────────────────────────────────
|
||||
echo -e "${GRN}═══════════════════════════════════════════════════════${RST}"
|
||||
echo -e "${GRN} ✓ Agente $ID creado exitosamente${RST}"
|
||||
echo -e "${GRN}═══════════════════════════════════════════════════════${RST}"
|
||||
echo ""
|
||||
echo -e " ${BLU}Archivos creados:${RST}"
|
||||
echo -e " agents/$ID/agent.go"
|
||||
echo -e " agents/$ID/config.yaml"
|
||||
echo -e " agents/$ID/prompts/system.md"
|
||||
echo ""
|
||||
echo -e " ${BLU}Variables en .env:${RST}"
|
||||
echo -e " MATRIX_TOKEN_${NORM}"
|
||||
echo -e " MATRIX_PASSWORD_${NORM}"
|
||||
echo -e " PICKLE_KEY_${NORM}"
|
||||
echo -e " SSSS_RECOVERY_KEY_${NORM}"
|
||||
echo ""
|
||||
echo -e " ${BLU}Launcher actualizado:${RST}"
|
||||
echo -e " cmd/launcher/main.go (import + rulesRegistry)"
|
||||
echo ""
|
||||
echo -e "${YLW}Siguiente paso:${RST}"
|
||||
echo ""
|
||||
echo -e " 1. Personalizar los archivos del agente:"
|
||||
echo -e " ${DIM}agents/$ID/agent.go${RST} — reglas de decisión"
|
||||
echo -e " ${DIM}agents/$ID/config.yaml${RST} — LLM, tools, personalidad"
|
||||
echo -e " ${DIM}agents/$ID/prompts/system.md${RST} — system prompt"
|
||||
echo ""
|
||||
echo -e " 2. Arrancar:"
|
||||
echo -e " ${DIM}./dev-scripts/server/start.sh${RST}"
|
||||
echo ""
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# list.sh — muestra todos los agentes y su estado actual
|
||||
# Uso: ./dev-scripts/list.sh
|
||||
# Uso: ./dev-scripts/agent/list.sh
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
printf "%-22s %-12s %-8s %s\n" "ID" "STATUS" "VERSION" "DESCRIPTION"
|
||||
printf '%s\n' "$(printf '─%.0s' {1..70})"
|
||||
@@ -2,10 +2,10 @@
|
||||
# new-agent.sh — genera el scaffold de un nuevo agente
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/new-agent.sh <agent-id> [displayname]
|
||||
# ./dev-scripts/agent/new-agent.sh <agent-id> [displayname]
|
||||
#
|
||||
# Ejemplo:
|
||||
# ./dev-scripts/new-agent.sh monitor-bot "Monitor Agent"
|
||||
# ./dev-scripts/agent/new-agent.sh monitor-bot "Monitor Agent"
|
||||
#
|
||||
# Crea:
|
||||
# agents/<agent-id>/config.yaml (basado en el assistant como plantilla)
|
||||
@@ -15,7 +15,7 @@
|
||||
#
|
||||
# También te recuerda los dos pasos manuales que quedan.
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
need_arg "${1:-}"
|
||||
@@ -390,7 +390,7 @@ fi
|
||||
echo ""
|
||||
echo -e "${YLW}Quedan 3 pasos:${RST}"
|
||||
echo ""
|
||||
echo -e " ${DIM}1. ./dev-scripts/register.sh $ID \"$DISPLAYNAME\"${RST} # registra en Matrix + genera token, password, pickle key"
|
||||
echo -e " ${DIM}2. ./dev-scripts/verify.sh $ID${RST} # genera cross-signing keys + verifica device"
|
||||
echo -e " ${DIM}3. ./dev-scripts/start.sh $ID${RST} # arranca el agente"
|
||||
echo -e " ${DIM}1. ./dev-scripts/agent/register.sh $ID \"$DISPLAYNAME\"${RST} # registra en Matrix + genera token, password, pickle key"
|
||||
echo -e " ${DIM}2. ./dev-scripts/agent/verify.sh $ID${RST} # genera cross-signing keys + verifica device"
|
||||
echo -e " ${DIM}3. ./dev-scripts/server/start.sh $ID${RST} # arranca el agente"
|
||||
echo ""
|
||||
@@ -2,11 +2,11 @@
|
||||
# register.sh — registra un nuevo bot en el servidor Matrix via Synapse admin API
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/register.sh <username> [displayname]
|
||||
# ./dev-scripts/agent/register.sh <username> [displayname]
|
||||
#
|
||||
# Ejemplos:
|
||||
# ./dev-scripts/register.sh assistant-bot "Assistant"
|
||||
# ./dev-scripts/register.sh devops-bot "DevOps Agent"
|
||||
# ./dev-scripts/agent/register.sh assistant-bot "Assistant"
|
||||
# ./dev-scripts/agent/register.sh devops-bot "DevOps Agent"
|
||||
#
|
||||
# Genera y guarda en .env:
|
||||
# MATRIX_TOKEN_<NORM>=... (access token)
|
||||
@@ -17,7 +17,7 @@
|
||||
# MATRIX_ADMIN_TOKEN=syt_...
|
||||
# MATRIX_HOMESERVER=https://...
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
need_arg "${1:-}"
|
||||
@@ -80,6 +80,6 @@ save_env_var "PICKLE_KEY_${NORM}" "$PICKLE_KEY"
|
||||
echo ""
|
||||
echo -e "${YLW}Siguientes pasos:${RST}"
|
||||
echo ""
|
||||
echo -e " ${DIM}1. ./dev-scripts/verify.sh $USERNAME${RST} # genera cross-signing keys E2EE"
|
||||
echo -e " ${DIM}2. ./dev-scripts/start.sh $USERNAME${RST} # arranca el agente"
|
||||
echo -e " ${DIM}1. ./dev-scripts/agent/verify.sh $USERNAME${RST} # genera cross-signing keys E2EE"
|
||||
echo -e " ${DIM}2. ./dev-scripts/server/start.sh $USERNAME${RST} # arranca el agente"
|
||||
echo ""
|
||||
@@ -2,9 +2,9 @@
|
||||
# remove.sh — deshabilita un agente (enabled: false). No borra datos.
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/remove.sh assistant-bot
|
||||
# ./dev-scripts/agent/remove.sh assistant-bot
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
need_arg "${1:-}"
|
||||
TARGET="$1"
|
||||
@@ -18,7 +18,7 @@ while IFS='|' read -r id _version _enabled _desc cfg; do
|
||||
if grep -q 'enabled: true' "$cfg"; then
|
||||
sed -i 's/enabled: true/enabled: false/' "$cfg"
|
||||
ok "$id marcado como disabled en $cfg"
|
||||
info "Reinicia el launcher para aplicar: ./dev-scripts/server.sh restart"
|
||||
info "Reinicia el launcher para aplicar: ./dev-scripts/server/server.sh restart"
|
||||
else
|
||||
warn "$id ya estaba marcado como disabled"
|
||||
fi
|
||||
@@ -6,17 +6,17 @@
|
||||
# Útil para añadir MATRIX_PASSWORD_X a .env en bots ya registrados.
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/reset-password.sh <agent-id>
|
||||
# ./dev-scripts/agent/reset-password.sh <agent-id>
|
||||
#
|
||||
# Ejemplo:
|
||||
# ./dev-scripts/reset-password.sh assistant-bot
|
||||
# ./dev-scripts/agent/reset-password.sh assistant-bot
|
||||
#
|
||||
# Requiere en .env:
|
||||
# MATRIX_ADMIN_TOKEN=syt_...
|
||||
# MATRIX_HOMESERVER=https://...
|
||||
# MATRIX_SERVER_NAME=...
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
need_arg "${1:-}"
|
||||
@@ -65,4 +65,4 @@ fi
|
||||
echo ""
|
||||
ok "Contraseña reseteada para ${USER_ID}"
|
||||
dim " El bot usará esta contraseña para cross-signing bootstrap en el próximo arranque."
|
||||
dim " Reinícialo con: ./dev-scripts/stop.sh $ID && ./dev-scripts/start.sh $ID"
|
||||
dim " Reinícialo con: ./dev-scripts/server/stop.sh $ID && ./dev-scripts/server/start.sh $ID"
|
||||
@@ -5,10 +5,10 @@
|
||||
# Usa el MISMO crypto store que el agente para que las keys queden disponibles.
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/verify.sh # verifica todos los habilitados con E2EE
|
||||
# ./dev-scripts/verify.sh assistant-bot # verifica uno específico
|
||||
# ./dev-scripts/agent/verify.sh # verifica todos los habilitados con E2EE
|
||||
# ./dev-scripts/agent/verify.sh assistant-bot # verifica uno específico
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
TARGET="${1:-}"
|
||||
@@ -78,7 +78,7 @@ verify_agent() {
|
||||
if is_running "$agent_id"; then
|
||||
was_running=true
|
||||
info " Deteniendo $agent_id antes de verificar..."
|
||||
"$REPO_ROOT/dev-scripts/stop.sh" "$agent_id"
|
||||
"$REPO_ROOT/dev-scripts/server/stop.sh" "$agent_id"
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
@@ -141,7 +141,7 @@ verify_agent() {
|
||||
# Restart agent if it was running
|
||||
if [[ "$was_running" == "true" ]]; then
|
||||
info " Reiniciando $agent_id..."
|
||||
"$REPO_ROOT/dev-scripts/start.sh" "$agent_id"
|
||||
"$REPO_ROOT/dev-scripts/server/start.sh" "$agent_id"
|
||||
fi
|
||||
|
||||
echo
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# restart.sh — reinicia el launcher unificado
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/restart.sh
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
|
||||
info "Deteniendo launcher..."
|
||||
"$REPO_ROOT/dev-scripts/stop.sh"
|
||||
|
||||
echo ""
|
||||
info "Iniciando launcher..."
|
||||
"$REPO_ROOT/dev-scripts/start.sh"
|
||||
@@ -0,0 +1,71 @@
|
||||
# dev-scripts/server
|
||||
|
||||
Scripts para gestionar el ciclo de vida del launcher unificado que ejecuta todos los agentes habilitados.
|
||||
|
||||
## Scripts
|
||||
|
||||
### start.sh
|
||||
|
||||
Inicia el launcher unificado. Compila el binario y ejecuta los tests si es necesario antes de arrancar. Reporta el número de agentes habilitados.
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/start.sh
|
||||
```
|
||||
|
||||
### stop.sh
|
||||
|
||||
Detiene el launcher de forma ordenada. Envía SIGTERM, espera 5 segundos, y si no termina usa SIGKILL.
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/stop.sh
|
||||
```
|
||||
|
||||
### restart.sh
|
||||
|
||||
Reinicia el launcher (ejecuta stop.sh seguido de start.sh).
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/restart.sh
|
||||
```
|
||||
|
||||
### ps.sh
|
||||
|
||||
Muestra el estado del proceso del launcher con métricas detalladas: PID, uptime, uso de memoria, CPU y tamaño de logs.
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/ps.sh
|
||||
```
|
||||
|
||||
### logs.sh
|
||||
|
||||
Sigue los logs del launcher en tiempo real (tail -f). Acepta un argumento opcional para el número de líneas iniciales.
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/logs.sh # últimas líneas por defecto
|
||||
./dev-scripts/server/logs.sh 50 # últimas 50 líneas
|
||||
```
|
||||
|
||||
### dashboard.sh
|
||||
|
||||
Abre la TUI interactiva (bubbletea) para gestión visual de bots. Permite ver estado, iniciar/detener agentes y ver logs desde una interfaz de terminal.
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/dashboard.sh
|
||||
```
|
||||
|
||||
### server.sh
|
||||
|
||||
CLI unificado que enruta comandos a los scripts individuales. Útil como punto de entrada único.
|
||||
|
||||
```bash
|
||||
./dev-scripts/server/server.sh start # → start.sh
|
||||
./dev-scripts/server/server.sh stop # → stop.sh
|
||||
./dev-scripts/server/server.sh restart # → restart.sh
|
||||
./dev-scripts/server/server.sh status # resumen general del servidor
|
||||
./dev-scripts/server/server.sh ps # → ps.sh
|
||||
./dev-scripts/server/server.sh logs # → logs.sh
|
||||
./dev-scripts/server/server.sh kill # SIGKILL forzado (emergencia)
|
||||
./dev-scripts/server/server.sh enable <id> # habilita un agente
|
||||
./dev-scripts/server/server.sh disable <id> # deshabilita un agente
|
||||
./dev-scripts/server/server.sh dashboard # → dashboard.sh
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# dashboard.sh — lanza el TUI interactivo de gestión de bots
|
||||
# Uso: ./dev-scripts/dashboard.sh
|
||||
# Uso: ./dev-scripts/server/dashboard.sh
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
exec "$GO" run ./cmd/dashboard "$@"
|
||||
@@ -2,11 +2,11 @@
|
||||
# logs.sh — sigue los logs de agentes (logs/<agent>/YYYY-MM-DD.jsonl)
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/logs.sh # tail -f de todos los agentes (hoy)
|
||||
# ./dev-scripts/logs.sh assistant-bot # tail -f de un agente específico
|
||||
# ./dev-scripts/logs.sh assistant-bot 100 # últimas 100 líneas
|
||||
# ./dev-scripts/server/logs.sh # tail -f de todos los agentes (hoy)
|
||||
# ./dev-scripts/server/logs.sh assistant-bot # tail -f de un agente específico
|
||||
# ./dev-scripts/server/logs.sh assistant-bot 100 # últimas 100 líneas
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
LOG_DIR="logs"
|
||||
AGENT_ID="${1:-}"
|
||||
@@ -2,9 +2,9 @@
|
||||
# ps.sh — muestra el estado del launcher unificado y agentes
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/ps.sh
|
||||
# ./dev-scripts/server/ps.sh
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
if ! is_launcher_running; then
|
||||
echo ""
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
# restart.sh — reinicia el launcher unificado
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/server/restart.sh
|
||||
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
info "Deteniendo launcher..."
|
||||
"$REPO_ROOT/dev-scripts/server/stop.sh"
|
||||
|
||||
echo ""
|
||||
info "Iniciando launcher..."
|
||||
"$REPO_ROOT/dev-scripts/server/start.sh"
|
||||
@@ -2,18 +2,18 @@
|
||||
# server.sh — gestión unificada del servidor de bots
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/server.sh start # iniciar el launcher
|
||||
# ./dev-scripts/server.sh stop # detener el launcher
|
||||
# ./dev-scripts/server.sh restart # reiniciar el launcher
|
||||
# ./dev-scripts/server.sh status # resumen general del servidor
|
||||
# ./dev-scripts/server.sh ps # proceso con detalle
|
||||
# ./dev-scripts/server.sh logs [lines] # tail -f de logs
|
||||
# ./dev-scripts/server.sh kill # SIGKILL forzado (emergencia)
|
||||
# ./dev-scripts/server.sh enable <id> # habilitar un agente
|
||||
# ./dev-scripts/server.sh disable <id> # deshabilitar un agente
|
||||
# ./dev-scripts/server.sh dashboard # TUI interactivo
|
||||
# ./dev-scripts/server/server.sh start # iniciar el launcher
|
||||
# ./dev-scripts/server/server.sh stop # detener el launcher
|
||||
# ./dev-scripts/server/server.sh restart # reiniciar el launcher
|
||||
# ./dev-scripts/server/server.sh status # resumen general del servidor
|
||||
# ./dev-scripts/server/server.sh ps # proceso con detalle
|
||||
# ./dev-scripts/server/server.sh logs [lines] # tail -f de logs
|
||||
# ./dev-scripts/server/server.sh kill # SIGKILL forzado (emergencia)
|
||||
# ./dev-scripts/server/server.sh enable <id> # habilitar un agente
|
||||
# ./dev-scripts/server/server.sh disable <id> # deshabilitar un agente
|
||||
# ./dev-scripts/server/server.sh dashboard # TUI interactivo
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
CMD="${1:-status}"
|
||||
shift || true
|
||||
@@ -28,7 +28,7 @@ toggle_agent_enabled() {
|
||||
if [[ "$cid" == "$id" ]]; then
|
||||
sed -i "s/^\\( enabled:\\).*/\\1 $value/" "$cfg"
|
||||
ok "$id enabled: $value"
|
||||
info "Reinicia el launcher para aplicar: ./dev-scripts/server.sh restart"
|
||||
info "Reinicia el launcher para aplicar: ./dev-scripts/server/server.sh restart"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
@@ -37,27 +37,27 @@ toggle_agent_enabled() {
|
||||
|
||||
case "$CMD" in
|
||||
start)
|
||||
exec "$REPO_ROOT/dev-scripts/start.sh"
|
||||
exec "$REPO_ROOT/dev-scripts/server/start.sh"
|
||||
;;
|
||||
|
||||
stop)
|
||||
exec "$REPO_ROOT/dev-scripts/stop.sh"
|
||||
exec "$REPO_ROOT/dev-scripts/server/stop.sh"
|
||||
;;
|
||||
|
||||
restart)
|
||||
exec "$REPO_ROOT/dev-scripts/restart.sh"
|
||||
exec "$REPO_ROOT/dev-scripts/server/restart.sh"
|
||||
;;
|
||||
|
||||
ps)
|
||||
exec "$REPO_ROOT/dev-scripts/ps.sh"
|
||||
exec "$REPO_ROOT/dev-scripts/server/ps.sh"
|
||||
;;
|
||||
|
||||
logs)
|
||||
exec "$REPO_ROOT/dev-scripts/logs.sh" ${ARG:+"$ARG"}
|
||||
exec "$REPO_ROOT/dev-scripts/server/logs.sh" ${ARG:+"$ARG"}
|
||||
;;
|
||||
|
||||
dashboard|tui)
|
||||
exec "$REPO_ROOT/dev-scripts/dashboard.sh"
|
||||
exec "$REPO_ROOT/dev-scripts/server/dashboard.sh"
|
||||
;;
|
||||
|
||||
enable)
|
||||
@@ -112,11 +112,11 @@ case "$CMD" in
|
||||
echo -e " ${DIM}○ Disabled:${RST} $disabled"
|
||||
echo ""
|
||||
|
||||
"$REPO_ROOT/dev-scripts/list.sh"
|
||||
"$REPO_ROOT/dev-scripts/agent/list.sh"
|
||||
|
||||
if is_launcher_running; then
|
||||
echo ""
|
||||
"$REPO_ROOT/dev-scripts/ps.sh"
|
||||
"$REPO_ROOT/dev-scripts/server/ps.sh"
|
||||
fi
|
||||
;;
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
# start.sh — inicia el launcher unificado (todos los agentes habilitados)
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/start.sh # inicia el launcher unificado
|
||||
# ./dev-scripts/server/start.sh # inicia el launcher unificado
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
load_env
|
||||
|
||||
if is_launcher_running; then
|
||||
@@ -2,9 +2,9 @@
|
||||
# stop.sh — detiene el launcher unificado
|
||||
#
|
||||
# Uso:
|
||||
# ./dev-scripts/stop.sh
|
||||
# ./dev-scripts/server/stop.sh
|
||||
|
||||
source "$(dirname "$0")/_common.sh"
|
||||
source "$(dirname "$0")/../_common.sh"
|
||||
|
||||
if ! is_launcher_running; then
|
||||
dim " El launcher no está corriendo."
|
||||
Reference in New Issue
Block a user