bot contesta con e2ee
This commit is contained in:
+49
-16
@@ -146,7 +146,7 @@ tools:
|
||||
matrix:
|
||||
homeserver: "${MATRIX_HOMESERVER}"
|
||||
user_id: "@$ID:${MATRIX_SERVER_NAME}"
|
||||
access_token_env: MATRIX_TOKEN_$(echo "$ID" | tr '[:lower:]-' '[:upper:]_')
|
||||
access_token_env: MATRIX_TOKEN_$(echo "$ID" | tr '[:lower:]-' '[:upper:]_' | sed 's/_BOT$//')
|
||||
device_id: "$(echo "$ID" | tr '[:lower:]-' '[:upper:]_')01"
|
||||
|
||||
encryption:
|
||||
@@ -338,21 +338,54 @@ MD
|
||||
ok "Scaffold creado en $DIR/"
|
||||
echo ""
|
||||
|
||||
# ── Pasos siguientes ──────────────────────────────────────────────────────
|
||||
echo -e "${YLW}Quedan 2 pasos manuales:${RST}"
|
||||
# ── Actualizar cmd/launcher/main.go ───────────────────────────────────────
|
||||
LAUNCHER="cmd/launcher/main.go"
|
||||
|
||||
if grep -q "\"$ID\":" "$LAUNCHER" 2>/dev/null; then
|
||||
warn "$ID ya está en rulesRegistry de $LAUNCHER — saltando"
|
||||
else
|
||||
TAB=$'\t'
|
||||
IMPORT_LINE="${TAB}${PACKAGE}agent \"github.com/enmanuel/agents/agents/$ID\""
|
||||
REGISTRY_LINE="${TAB}\"$ID\": ${PACKAGE}agent.Rules,"
|
||||
|
||||
# Insertar import después del último import agents/agents/*
|
||||
if awk -v new_import="$IMPORT_LINE" '
|
||||
{
|
||||
lines[NR] = $0
|
||||
if ($0 ~ /[a-z_]+agent "github\.com\/enmanuel\/agents\/agents\/[^"]+"/)
|
||||
last_import = NR
|
||||
}
|
||||
END {
|
||||
if (!last_import) { for (i=1;i<=NR;i++) print lines[i]; exit 1 }
|
||||
for (i = 1; i <= NR; i++) {
|
||||
print lines[i]
|
||||
if (i == last_import) print new_import
|
||||
}
|
||||
}
|
||||
' "$LAUNCHER" > /tmp/_launcher_tmp; then
|
||||
mv /tmp/_launcher_tmp "$LAUNCHER"
|
||||
ok "Import añadido en $LAUNCHER"
|
||||
else
|
||||
warn "No se pudo insertar el import automáticamente — añádelo manualmente:"
|
||||
echo -e " ${GRN}${IMPORT_LINE}${RST}"
|
||||
fi
|
||||
|
||||
# Insertar entry en rulesRegistry antes del cierre }
|
||||
if awk -v new_entry="$REGISTRY_LINE" '
|
||||
/^var rulesRegistry/ { in_reg = 1 }
|
||||
in_reg && /^\}/ { print new_entry; in_reg = 0 }
|
||||
{ print }
|
||||
' "$LAUNCHER" > /tmp/_launcher_tmp; then
|
||||
mv /tmp/_launcher_tmp "$LAUNCHER"
|
||||
ok "Registry entry añadida en $LAUNCHER"
|
||||
else
|
||||
warn "No se pudo insertar el registry entry — añádelo manualmente:"
|
||||
echo -e " ${GRN}${REGISTRY_LINE}${RST}"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e " ${BLU}1.${RST} Añade una línea en ${BLU}cmd/launcher/main.go${RST}:"
|
||||
echo -e "${YLW}Queda 1 paso:${RST} registrar el bot en Matrix y añadir su token a .env:"
|
||||
echo ""
|
||||
echo -e ' import ('
|
||||
echo -e " ${GRN}${PACKAGE}agent \"github.com/enmanuel/agents/agents/$ID\"${RST}"
|
||||
echo -e ' )'
|
||||
echo ""
|
||||
echo -e ' var rulesRegistry = map[string]func() []decision.Rule{'
|
||||
echo -e " ${GRN}\"$ID\": ${PACKAGE}agent.Rules,${RST}"
|
||||
echo -e ' ...'
|
||||
echo -e ' }'
|
||||
echo ""
|
||||
echo -e " ${BLU}2.${RST} Registra el bot en Matrix y añade el token a .env:"
|
||||
echo ""
|
||||
echo -e " ${DIM}./dev-scripts/register.sh $ID \"$DISPLAYNAME\"${RST}"
|
||||
echo -e " ${DIM}./dev-scripts/register.sh $ID \"$DISPLAYNAME\"${RST}"
|
||||
echo ""
|
||||
|
||||
+26
-5
@@ -19,7 +19,7 @@ need_arg "${1:-}"
|
||||
|
||||
USERNAME="$1"
|
||||
DISPLAYNAME="${2:-$USERNAME}"
|
||||
ENV_VAR="${3:-MATRIX_TOKEN_$(echo "$USERNAME" | tr '[:lower:]-' '[:upper:]_')}"
|
||||
ENV_VAR="${3:-MATRIX_TOKEN_$(echo "$USERNAME" | tr '[:lower:]-' '[:upper:]_' | sed 's/_BOT$//')}"
|
||||
|
||||
[[ -n "${MATRIX_ADMIN_TOKEN:-}" ]] || fail "MATRIX_ADMIN_TOKEN no está en .env"
|
||||
[[ -n "${MATRIX_HOMESERVER:-}" ]] || fail "MATRIX_HOMESERVER no está en .env"
|
||||
@@ -27,12 +27,33 @@ ENV_VAR="${3:-MATRIX_TOKEN_$(echo "$USERNAME" | tr '[:lower:]-' '[:upper:]_')}"
|
||||
info "Registrando @${USERNAME}:${MATRIX_SERVER_NAME:-$MATRIX_HOMESERVER}..."
|
||||
echo ""
|
||||
|
||||
"$GO" run ./cmd/register \
|
||||
# Ejecutar cmd/register y capturar su output completo
|
||||
OUTPUT=$("$GO" run ./cmd/register \
|
||||
--homeserver "$MATRIX_HOMESERVER" \
|
||||
--username "$USERNAME" \
|
||||
--displayname "$DISPLAYNAME" \
|
||||
--env-var "$ENV_VAR"
|
||||
--env-var "$ENV_VAR" 2>&1) || fail "cmd/register falló:\n$OUTPUT"
|
||||
|
||||
echo "$OUTPUT"
|
||||
echo ""
|
||||
|
||||
# Extraer la línea ENV_VAR=token del output
|
||||
TOKEN_LINE=$(echo "$OUTPUT" | grep "^${ENV_VAR}=")
|
||||
[[ -n "$TOKEN_LINE" ]] || fail "No se encontró '${ENV_VAR}=' en el output de cmd/register"
|
||||
|
||||
TOKEN=$(echo "$TOKEN_LINE" | cut -d= -f2-)
|
||||
[[ -n "$TOKEN" ]] || fail "Token vacío para $ENV_VAR"
|
||||
|
||||
# Actualizar .env — reemplazar si ya existe, añadir si no
|
||||
if grep -q "^${ENV_VAR}=" .env; then
|
||||
awk -v key="$ENV_VAR" -v val="$TOKEN" \
|
||||
'index($0, key "=") == 1 { print key "=" val; next } { print }' \
|
||||
.env > /tmp/_env_tmp && mv /tmp/_env_tmp .env
|
||||
ok "$ENV_VAR actualizado en .env"
|
||||
else
|
||||
printf '\n%s=%s\n' "$ENV_VAR" "$TOKEN" >> .env
|
||||
ok "$ENV_VAR añadido a .env"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
dim " Copia las líneas de arriba a tu .env y luego corre:"
|
||||
dim " ./dev-scripts/start.sh $USERNAME"
|
||||
dim " Arranca el bot con: ./dev-scripts/start.sh $USERNAME"
|
||||
|
||||
@@ -18,7 +18,7 @@ start_agent() {
|
||||
info "Iniciando $id..."
|
||||
|
||||
# Lanza el launcher en background, desacoplado del terminal
|
||||
nohup "$GO" run ./cmd/launcher -c "$cfg" \
|
||||
nohup "$GO" run -tags goolm ./cmd/launcher -c "$cfg" --log-level "${LOG_LEVEL:-info}" \
|
||||
>> "$log" 2>&1 &
|
||||
|
||||
local pid=$!
|
||||
|
||||
Reference in New Issue
Block a user