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
+94
View File
@@ -0,0 +1,94 @@
#!/usr/bin/env bash
# new.sh — Scaffolder interactivo para automatizaciones cron
# Crea crons/<name>/schedule.yaml y el archivo de prompt/mensaje vacío.
set -euo pipefail
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
echo "=== Nueva automatización cron ==="
echo ""
# Nombre
read -rp "Nombre de la automatización (ej: weekly-report): " NAME
NAME="${NAME// /-}"
NAME="${NAME,,}" # lowercase
if [[ -z "$NAME" ]]; then
echo "Error: el nombre no puede estar vacío." >&2
exit 1
fi
if [[ -d "$REPO_ROOT/crons/$NAME" ]]; then
echo "Error: ya existe crons/$NAME/" >&2
exit 1
fi
# Descripción
read -rp "Descripción breve: " DESCRIPTION
if [[ -z "$DESCRIPTION" ]]; then
echo "Error: la descripción no puede estar vacía." >&2
exit 1
fi
# Tipo de acción
echo ""
echo "Tipo de acción:"
echo " 1) send_message — envía un mensaje estático o plantilla"
echo " 2) llm_prompt — llama al LLM con un prompt y envía la respuesta"
read -rp "Selecciona [1/2]: " ACTION_TYPE_NUM
case "$ACTION_TYPE_NUM" in
1) ACTION_KIND="send_message"; PROMPT_FILE="message.md" ;;
2) ACTION_KIND="llm_prompt"; PROMPT_FILE="prompt.md" ;;
*)
echo "Error: selección inválida. Usa 1 o 2." >&2
exit 1
;;
esac
# Cron expression
DEFAULT_CRON="0 9 * * *"
read -rp "Cron expression [default: $DEFAULT_CRON]: " CRON_EXPR
CRON_EXPR="${CRON_EXPR:-$DEFAULT_CRON}"
# Crear estructura
CRON_DIR="$REPO_ROOT/crons/$NAME"
PROMPTS_DIR="$CRON_DIR/prompts"
mkdir -p "$PROMPTS_DIR"
# schedule.yaml
cat > "$CRON_DIR/schedule.yaml" <<EOF
# Automatización: $NAME
name: $NAME
description: "$DESCRIPTION"
# Cron por defecto
default_cron: "$CRON_EXPR"
# Acción
action:
kind: $ACTION_KIND
# Relativo a la raíz del proyecto
template: crons/$NAME/prompts/$PROMPT_FILE
# Sala de salida por defecto (vacío = el agente debe configurar output_room)
default_output_room: ""
EOF
# Archivo de prompt/mensaje
touch "$PROMPTS_DIR/$PROMPT_FILE"
echo ""
echo "✓ Creado: crons/$NAME/schedule.yaml"
echo "✓ Creado: crons/$NAME/prompts/$PROMPT_FILE"
echo ""
echo "Edita crons/$NAME/prompts/$PROMPT_FILE con el contenido deseado."
echo ""
echo "Añade esto a agents/<id>/config.yaml:"
echo ""
echo " schedules:"
echo " - name: $NAME"
echo " cron: \"$CRON_EXPR\""
echo " output_room: \"!TUROOM:matrix-af2f3d.organic-machine.com\""
echo " action:"
echo " kind: $ACTION_KIND"
echo " template: \"crons/$NAME/prompts/$PROMPT_FILE\""
echo ""
echo "O usa: ./dev-scripts/cron/apply.sh $NAME <agent-id>"