fc644ecd6e
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.
2.2 KiB
2.2 KiB
Plan: Editar fotos de perfil de los bots
Objetivo
Poder actualizar el avatar (foto de perfil) y el display name de cada bot en Matrix
desde la CLI (agentctl) o desde un dev-script.
Estado: COMPLETADO
Cómo funciona en Matrix
- Endpoint:
PUT /_matrix/client/v3/profile/{userId}/avatar_url - Body:
{ "avatar_url": "mxc://..." }— URI de contenido subido al Media repo - Para subir una imagen:
POST /_matrix/media/v3/uploadcon el body binario yContent-Typede la imagen - También se puede cambiar el display name:
PUT /_matrix/client/v3/profile/{userId}/displayname
La secuencia es:
- Subir imagen → obtener
mxc://server/mediaID - Establecer
avatar_urlen el perfil con esa URI
Diseño
CLI: agentctl avatar <agent-id> <image-path>
Nuevo subcomando en cmd/agentctl/:
agentctl avatar assistant-bot /path/to/photo.png
agentctl displayname assistant-bot "Assistant Bot"
Shell: shell/matrix/profile.go
// UploadMedia sube un archivo y devuelve la mxc:// URI
func UploadMedia(ctx, client, filePath string) (mxcURI string, err error)
// SetAvatar establece avatar_url en el perfil del bot
func SetAvatar(ctx, client, mxcURI string) error
// SetDisplayName cambia el displayname
func SetDisplayName(ctx, client, name string) error
Usa el cliente mautrix.Client ya existente en shell/matrix/client.go.
Dev-script: dev-scripts/avatar.sh
#!/usr/bin/env bash
# Uso: ./dev-scripts/avatar.sh <agent-id> <image-path>
./bin/agentctl avatar "$1" "$2"
Archivos a crear/modificar
shell/matrix/profile.go— UploadMedia, SetAvatar, SetDisplayNamecmd/agentctl/avatar.go— subcomandoavatarydisplaynamecmd/agentctl/main.go— registrar los nuevos subcomandos en Cobradev-scripts/avatar.sh— wrapper convenience
Notas
- El token del bot necesita permiso de escritura en su propio perfil (normal por defecto)
- Formatos soportados: PNG, JPG, WebP — Matrix los acepta todos
- mautrix-go tiene métodos
client.UploadMedia()yclient.SetAvatarURL(); usar esos directamente para evitar HTTP manual - El comando debe cargar el token del bot desde las env vars (
MATRIX_TOKEN_<BOT>) igual que hacecmd/launcher/