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:
2026-03-06 21:53:19 +00:00
parent c1889ab0c7
commit 6858a5f13e
19 changed files with 379 additions and 76 deletions
+42
View File
@@ -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 |
+89
View File
@@ -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). # También sincroniza el displayname desde el config (agent.name).
# #
# Uso: # Uso:
# ./dev-scripts/avatar.sh <agent-id> <image-path> # ./dev-scripts/agent/avatar.sh <agent-id> <image-path>
# #
# Ejemplos: # Ejemplos:
# ./dev-scripts/avatar.sh assistant-bot assets/assistant.png # ./dev-scripts/agent/avatar.sh assistant-bot assets/assistant.png
# ./dev-scripts/avatar.sh devops-bot assets/devops.jpg # ./dev-scripts/agent/avatar.sh devops-bot assets/devops.jpg
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
load_env load_env
AGENT_ID="${1:-}" AGENT_ID="${1:-}"
+101
View File
@@ -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 #!/usr/bin/env bash
# list.sh — muestra todos los agentes y su estado actual # 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 "%-22s %-12s %-8s %s\n" "ID" "STATUS" "VERSION" "DESCRIPTION"
printf '%s\n' "$(printf '─%.0s' {1..70})" printf '%s\n' "$(printf '─%.0s' {1..70})"
@@ -2,10 +2,10 @@
# new-agent.sh — genera el scaffold de un nuevo agente # new-agent.sh — genera el scaffold de un nuevo agente
# #
# Uso: # Uso:
# ./dev-scripts/new-agent.sh <agent-id> [displayname] # ./dev-scripts/agent/new-agent.sh <agent-id> [displayname]
# #
# Ejemplo: # Ejemplo:
# ./dev-scripts/new-agent.sh monitor-bot "Monitor Agent" # ./dev-scripts/agent/new-agent.sh monitor-bot "Monitor Agent"
# #
# Crea: # Crea:
# agents/<agent-id>/config.yaml (basado en el assistant como plantilla) # 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. # También te recuerda los dos pasos manuales que quedan.
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
load_env load_env
need_arg "${1:-}" need_arg "${1:-}"
@@ -390,7 +390,7 @@ fi
echo "" echo ""
echo -e "${YLW}Quedan 3 pasos:${RST}" echo -e "${YLW}Quedan 3 pasos:${RST}"
echo "" echo ""
echo -e " ${DIM}1. ./dev-scripts/register.sh $ID \"$DISPLAYNAME\"${RST} # registra en Matrix + genera token, password, pickle key" 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/verify.sh $ID${RST} # genera cross-signing keys + verifica device" echo -e " ${DIM}2. ./dev-scripts/agent/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}3. ./dev-scripts/server/start.sh $ID${RST} # arranca el agente"
echo "" echo ""
@@ -2,11 +2,11 @@
# register.sh — registra un nuevo bot en el servidor Matrix via Synapse admin API # register.sh — registra un nuevo bot en el servidor Matrix via Synapse admin API
# #
# Uso: # Uso:
# ./dev-scripts/register.sh <username> [displayname] # ./dev-scripts/agent/register.sh <username> [displayname]
# #
# Ejemplos: # Ejemplos:
# ./dev-scripts/register.sh assistant-bot "Assistant" # ./dev-scripts/agent/register.sh assistant-bot "Assistant"
# ./dev-scripts/register.sh devops-bot "DevOps Agent" # ./dev-scripts/agent/register.sh devops-bot "DevOps Agent"
# #
# Genera y guarda en .env: # Genera y guarda en .env:
# MATRIX_TOKEN_<NORM>=... (access token) # MATRIX_TOKEN_<NORM>=... (access token)
@@ -17,7 +17,7 @@
# MATRIX_ADMIN_TOKEN=syt_... # MATRIX_ADMIN_TOKEN=syt_...
# MATRIX_HOMESERVER=https://... # MATRIX_HOMESERVER=https://...
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
load_env load_env
need_arg "${1:-}" need_arg "${1:-}"
@@ -80,6 +80,6 @@ save_env_var "PICKLE_KEY_${NORM}" "$PICKLE_KEY"
echo "" echo ""
echo -e "${YLW}Siguientes pasos:${RST}" echo -e "${YLW}Siguientes pasos:${RST}"
echo "" echo ""
echo -e " ${DIM}1. ./dev-scripts/verify.sh $USERNAME${RST} # genera cross-signing keys E2EE" echo -e " ${DIM}1. ./dev-scripts/agent/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}2. ./dev-scripts/server/start.sh $USERNAME${RST} # arranca el agente"
echo "" echo ""
@@ -2,9 +2,9 @@
# remove.sh — deshabilita un agente (enabled: false). No borra datos. # remove.sh — deshabilita un agente (enabled: false). No borra datos.
# #
# Uso: # 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:-}" need_arg "${1:-}"
TARGET="$1" TARGET="$1"
@@ -18,7 +18,7 @@ while IFS='|' read -r id _version _enabled _desc cfg; do
if grep -q 'enabled: true' "$cfg"; then if grep -q 'enabled: true' "$cfg"; then
sed -i 's/enabled: true/enabled: false/' "$cfg" sed -i 's/enabled: true/enabled: false/' "$cfg"
ok "$id marcado como disabled en $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 else
warn "$id ya estaba marcado como disabled" warn "$id ya estaba marcado como disabled"
fi fi
@@ -6,17 +6,17 @@
# Útil para añadir MATRIX_PASSWORD_X a .env en bots ya registrados. # Útil para añadir MATRIX_PASSWORD_X a .env en bots ya registrados.
# #
# Uso: # Uso:
# ./dev-scripts/reset-password.sh <agent-id> # ./dev-scripts/agent/reset-password.sh <agent-id>
# #
# Ejemplo: # Ejemplo:
# ./dev-scripts/reset-password.sh assistant-bot # ./dev-scripts/agent/reset-password.sh assistant-bot
# #
# Requiere en .env: # Requiere en .env:
# MATRIX_ADMIN_TOKEN=syt_... # MATRIX_ADMIN_TOKEN=syt_...
# MATRIX_HOMESERVER=https://... # MATRIX_HOMESERVER=https://...
# MATRIX_SERVER_NAME=... # MATRIX_SERVER_NAME=...
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
load_env load_env
need_arg "${1:-}" need_arg "${1:-}"
@@ -65,4 +65,4 @@ fi
echo "" echo ""
ok "Contraseña reseteada para ${USER_ID}" ok "Contraseña reseteada para ${USER_ID}"
dim " El bot usará esta contraseña para cross-signing bootstrap en el próximo arranque." 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. # Usa el MISMO crypto store que el agente para que las keys queden disponibles.
# #
# Uso: # Uso:
# ./dev-scripts/verify.sh # verifica todos los habilitados con E2EE # ./dev-scripts/agent/verify.sh # verifica todos los habilitados con E2EE
# ./dev-scripts/verify.sh assistant-bot # verifica uno específico # ./dev-scripts/agent/verify.sh assistant-bot # verifica uno específico
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
load_env load_env
TARGET="${1:-}" TARGET="${1:-}"
@@ -78,7 +78,7 @@ verify_agent() {
if is_running "$agent_id"; then if is_running "$agent_id"; then
was_running=true was_running=true
info " Deteniendo $agent_id antes de verificar..." 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 sleep 1
fi fi
@@ -141,7 +141,7 @@ verify_agent() {
# Restart agent if it was running # Restart agent if it was running
if [[ "$was_running" == "true" ]]; then if [[ "$was_running" == "true" ]]; then
info " Reiniciando $agent_id..." info " Reiniciando $agent_id..."
"$REPO_ROOT/dev-scripts/start.sh" "$agent_id" "$REPO_ROOT/dev-scripts/server/start.sh" "$agent_id"
fi fi
echo echo
-14
View File
@@ -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"
+71
View File
@@ -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 #!/usr/bin/env bash
# dashboard.sh — lanza el TUI interactivo de gestión de bots # 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 "$@" exec "$GO" run ./cmd/dashboard "$@"
@@ -2,11 +2,11 @@
# logs.sh — sigue los logs de agentes (logs/<agent>/YYYY-MM-DD.jsonl) # logs.sh — sigue los logs de agentes (logs/<agent>/YYYY-MM-DD.jsonl)
# #
# Uso: # Uso:
# ./dev-scripts/logs.sh # tail -f de todos los agentes (hoy) # ./dev-scripts/server/logs.sh # tail -f de todos los agentes (hoy)
# ./dev-scripts/logs.sh assistant-bot # tail -f de un agente específico # ./dev-scripts/server/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 assistant-bot 100 # últimas 100 líneas
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
LOG_DIR="logs" LOG_DIR="logs"
AGENT_ID="${1:-}" AGENT_ID="${1:-}"
@@ -2,9 +2,9 @@
# ps.sh — muestra el estado del launcher unificado y agentes # ps.sh — muestra el estado del launcher unificado y agentes
# #
# Uso: # 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 if ! is_launcher_running; then
echo "" echo ""
+14
View File
@@ -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 # server.sh — gestión unificada del servidor de bots
# #
# Uso: # Uso:
# ./dev-scripts/server.sh start # iniciar el launcher # ./dev-scripts/server/server.sh start # iniciar el launcher
# ./dev-scripts/server.sh stop # detener el launcher # ./dev-scripts/server/server.sh stop # detener el launcher
# ./dev-scripts/server.sh restart # reiniciar el launcher # ./dev-scripts/server/server.sh restart # reiniciar el launcher
# ./dev-scripts/server.sh status # resumen general del servidor # ./dev-scripts/server/server.sh status # resumen general del servidor
# ./dev-scripts/server.sh ps # proceso con detalle # ./dev-scripts/server/server.sh ps # proceso con detalle
# ./dev-scripts/server.sh logs [lines] # tail -f de logs # ./dev-scripts/server/server.sh logs [lines] # tail -f de logs
# ./dev-scripts/server.sh kill # SIGKILL forzado (emergencia) # ./dev-scripts/server/server.sh kill # SIGKILL forzado (emergencia)
# ./dev-scripts/server.sh enable <id> # habilitar un agente # ./dev-scripts/server/server.sh enable <id> # habilitar un agente
# ./dev-scripts/server.sh disable <id> # deshabilitar un agente # ./dev-scripts/server/server.sh disable <id> # deshabilitar un agente
# ./dev-scripts/server.sh dashboard # TUI interactivo # ./dev-scripts/server/server.sh dashboard # TUI interactivo
source "$(dirname "$0")/_common.sh" source "$(dirname "$0")/../_common.sh"
CMD="${1:-status}" CMD="${1:-status}"
shift || true shift || true
@@ -28,7 +28,7 @@ toggle_agent_enabled() {
if [[ "$cid" == "$id" ]]; then if [[ "$cid" == "$id" ]]; then
sed -i "s/^\\( enabled:\\).*/\\1 $value/" "$cfg" sed -i "s/^\\( enabled:\\).*/\\1 $value/" "$cfg"
ok "$id enabled: $value" 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 return 0
fi fi
done done
@@ -37,27 +37,27 @@ toggle_agent_enabled() {
case "$CMD" in case "$CMD" in
start) start)
exec "$REPO_ROOT/dev-scripts/start.sh" exec "$REPO_ROOT/dev-scripts/server/start.sh"
;; ;;
stop) stop)
exec "$REPO_ROOT/dev-scripts/stop.sh" exec "$REPO_ROOT/dev-scripts/server/stop.sh"
;; ;;
restart) restart)
exec "$REPO_ROOT/dev-scripts/restart.sh" exec "$REPO_ROOT/dev-scripts/server/restart.sh"
;; ;;
ps) ps)
exec "$REPO_ROOT/dev-scripts/ps.sh" exec "$REPO_ROOT/dev-scripts/server/ps.sh"
;; ;;
logs) logs)
exec "$REPO_ROOT/dev-scripts/logs.sh" ${ARG:+"$ARG"} exec "$REPO_ROOT/dev-scripts/server/logs.sh" ${ARG:+"$ARG"}
;; ;;
dashboard|tui) dashboard|tui)
exec "$REPO_ROOT/dev-scripts/dashboard.sh" exec "$REPO_ROOT/dev-scripts/server/dashboard.sh"
;; ;;
enable) enable)
@@ -112,11 +112,11 @@ case "$CMD" in
echo -e " ${DIM}○ Disabled:${RST} $disabled" echo -e " ${DIM}○ Disabled:${RST} $disabled"
echo "" echo ""
"$REPO_ROOT/dev-scripts/list.sh" "$REPO_ROOT/dev-scripts/agent/list.sh"
if is_launcher_running; then if is_launcher_running; then
echo "" echo ""
"$REPO_ROOT/dev-scripts/ps.sh" "$REPO_ROOT/dev-scripts/server/ps.sh"
fi fi
;; ;;
@@ -2,9 +2,9 @@
# start.sh — inicia el launcher unificado (todos los agentes habilitados) # start.sh — inicia el launcher unificado (todos los agentes habilitados)
# #
# Uso: # 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 load_env
if is_launcher_running; then if is_launcher_running; then
@@ -2,9 +2,9 @@
# stop.sh — detiene el launcher unificado # stop.sh — detiene el launcher unificado
# #
# Uso: # 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 if ! is_launcher_running; then
dim " El launcher no está corriendo." dim " El launcher no está corriendo."