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
+111
View File
@@ -0,0 +1,111 @@
---
name: deploy-service
description: >
Deploy de un servicio via SSH a un servidor remoto. Verifica que el servicio
este corriendo, hace backup de la version anterior, actualiza el binario,
reinicia el servicio y valida que responda correctamente.
---
# Deploy Service Skill
Esta skill guia el proceso completo de deploy de un servicio a produccion via SSH.
## Prerequisitos
- Acceso SSH al servidor de destino
- El servicio debe estar configurado como systemd unit
- El binario compilado debe estar disponible localmente o via URL
## Proceso de deploy
### 1. Verificar estado del servicio
Usa `ssh_command` para verificar el estado actual del servicio:
```bash
systemctl status <service-name>
```
Si el servicio no existe, pregunta al usuario si debe crearlo.
### 2. Crear backup de la version anterior
```bash
cp /path/to/service /path/to/service.backup.$(date +%Y%m%d-%H%M%S)
```
### 3. Detener el servicio
```bash
systemctl stop <service-name>
```
### 4. Actualizar el binario
Opciones:
- Si el binario esta local: usa `scp` o `ssh_command` con heredoc
- Si el binario esta en URL: usa `ssh_command` con `wget` o `curl`
```bash
# Ejemplo con URL
wget -O /path/to/service <binary-url>
chmod +x /path/to/service
```
### 5. Reiniciar el servicio
```bash
systemctl start <service-name>
```
### 6. Verificar que el servicio responde
Espera 5 segundos y verifica:
```bash
systemctl is-active <service-name>
```
Si el servicio expone un endpoint HTTP, usa `http_get` para verificar que responde:
```bash
curl -f http://localhost:<port>/health
```
### 7. Rollback en caso de error
Si el servicio no arranca o no responde:
1. Detener el servicio
2. Restaurar el backup
3. Reiniciar con la version anterior
4. Notificar al usuario del error
## Parametros requeridos
El usuario debe proporcionar:
- `host`: servidor de destino (ej: "prod-server-01")
- `service_name`: nombre del systemd unit (ej: "myapp.service")
- `service_path`: ruta al binario en el servidor (ej: "/usr/local/bin/myapp")
- `binary_source`: "local" o URL del binario
Parametros opcionales:
- `health_endpoint`: endpoint HTTP para verificar salud (ej: "http://localhost:8080/health")
- `post_deploy_command`: comando adicional a ejecutar despues del deploy
## Seguridad
- Valida que el host este en la allowlist de SSH del agente
- Valida que el binario tenga checksum correcto (si se proporciona)
- Nunca ejecutes comandos arbitrarios sin validar
## Ejemplo de uso
Usuario: "Haz deploy de myapp a prod-server-01"
Agente:
1. skill_search("deploy service")
2. skill_load("deploy-service")
3. Preguntar parametros faltantes
4. Ejecutar el proceso paso a paso
5. Reportar resultado