Commit Graph

13 Commits

Author SHA1 Message Date
egutierrez 4c5bf95def feat(0144b): provision-agent-user.sh script idempotente + templates
Bash script que provisiona Matrix user via Synapse admin API + login para
access_token + scaffold completo (config.yaml, agent.go, prompts/system.md).
6 templates (user/sudo x config/agent.go/prompt). 20 tests bash pasan.
Genera .env con AGENT_<ID>_TOKEN/PASSWORD/PICKLE/DEVICE_ID + URL mesh.
2026-05-24 14:07:13 +02:00
egutierrez 8d2a767518 feat: scripts detect-provider.sh, personalize.sh e integración en create-full.sh
Scripts atómicos para automatizar el Paso 8 (personalización) del pipeline
de creación de agentes:

- dev-scripts/agent/detect-provider.sh: detecta el primer LLM provider
  disponible desde .env (OPENAI_API_KEY → openai, ANTHROPIC_API_KEY →
  anthropic, fallback openai con warn).

- dev-scripts/agent/personalize.sh <agent-id> [flags]: genera/actualiza
  los 3 archivos del agente en un solo paso:
  · config.yaml: description, tone, prefix, provider, model, tool_use
  · agent.go: package name correcto (sin guiones, sin _bot), Register ID
  · prompts/system.md: prompt inline/file + sección de seguridad anti-injection

  Flags: --description, --provider, --model, --tone, --prefix,
         --system-prompt, --system-prompt-file, --tool-use, --language.
  Usa PyYAML (python3) para editar el YAML preservando comentarios.

- dev-scripts/agent/create-full.sh: extendido con los mismos flags
  opcionales. Si se pasan, ejecuta personalize.sh como Paso 8 automático
  y recompila. Sin flags → comportamiento actual (retrocompatible).

Impacto: Father Bot puede completar el pipeline completo (pasos 1-8) con
un solo Bash tool call, eliminando las ~6-10 ediciones manuales de archivos.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:33:07 +00:00
egutierrez 50013b0ecb feat: pipeline completo de eliminacion de agentes y robots
Nuevos scripts que revierten todo lo que create-full.sh genera:
- deactivate-matrix.sh: desactiva usuario via Synapse admin API
- remove-launcher-import.sh: elimina blank import del launcher
- remove-env-vars.sh: limpia las 4 env vars del .env
- delete-full.sh: orquestador de 7 pasos (validate, stop, deactivate,
  remove import, remove env, delete files, rebuild)

Flags: --force (sin confirmacion), --keep-matrix (preserva usuario).
Actualiza remove.sh con referencia a delete-full.sh.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:44:38 +00:00
egutierrez 3f9425211c fix: agregar E2EE a DM rooms creados por notify-developer.sh
El createRoom usaba solo preset trusted_private_chat, que configura
permisos pero no activa encriptacion. Ahora incluye initial_state
con m.room.encryption (m.megolm.v1.aes-sha2) para que las salas DM
de bienvenida se creen cifradas de extremo a extremo.

Esto corrige que bots recientes (father-bot, test-bot, test-personality)
aparezcan sin E2EE en Element cuando el DM fue iniciado por el script.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 22:42:28 +00:00
egutierrez 40710b924d feat: agregar display name, health check y mejorar notificacion — issue 0044
Pipeline de creacion formalizado con 3 mejoras:

1. Display name automatico (paso 7): create-full.sh ahora configura
   el display name en Matrix via PUT al profile API con el token
   del bot recien creado. Evita que los bots aparezcan como @id:server.

2. Health check post-arranque: nuevo script health-check.sh que busca
   en los logs del launcher mensajes de arranque exitoso ("e2ee ready",
   "runner started", etc.) con timeout configurable (default 30s).

3. Notificacion enriquecida: notify-developer.sh ahora incluye
   descripcion del agente (leida de config.yaml), tools habilitadas,
   formato markdown con estructura clara, y reintentos con backoff
   (hasta 3 intentos) si el envio de DM falla.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:38:41 +00:00
egutierrez 890a44b0ca feat: integrar auto-avatar en pipeline de creacion de agentes
create-full.sh ahora genera y aplica un avatar automatico tras registrar
el agente en Matrix. Usa agentctl auto-avatar internamente.
Si falla (sin internet, proveedor caido), continua sin bloquear el pipeline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:39:59 +00:00
egutierrez bd0c8c0dd3 refactor: mover runtime Go de agents/ a devagents/
agents/ ahora solo contiene carpetas de agentes (config, reglas, prompts).
El runtime (Agent, Robot, Runner, registry, handler, commands, llm, memory)
vive en devagents/ como package devagents.

Cambios:
- git mv agents/*.go → devagents/*.go
- package agents → package devagents en todos los archivos movidos
- Actualizar imports en agents/*/agent.go, cmd/launcher/, dev-scripts/
- Actualizar docs: CLAUDE.md, rules/, docs/e2ee.md, issues pendientes

Build y tests pasan sin errores.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:19:25 +00:00
egutierrez 7edbbad6b3 feat: scripts para automatizar creacion de robots y notificar developers
Nuevos scripts:
- convert-to-robot.sh: convierte scaffold de agente a robot (config
  minimo, agent.go con nil Rules, sin prompts, command_prefix vacio)
- notify-developer.sh: envia DM a los developers (DEVELOPER_MATRIX_USERS)
  al crear un bot o agente, presentandose con nombre y tipo

Mejorado:
- create-full.sh: acepta --type robot para pipeline completo de robots
  (scaffold → build → register → verify → convert → notify)
- .env.example: añade DEVELOPER_MATRIX_USERS para lista de developers

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:35:44 +00:00
egutierrez 6e1b820ecf chore: actualizar script y docs para auto-registro de agentes
- new-agent.sh: reemplaza edicion del rulesRegistry map con insercion
  de un blank import simple. Ahora tambien sustituye AGENT_ID_PLACEHOLDER
  en agent.go con el ID real del agente.
- create_agent.md: actualiza template de agent.go con patron init() +
  agents.Register(), secciones de registro en launcher y checklist.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:21:15 +00:00
egutierrez e743a3e982 feat: sistema de personalidades enriquecido + agente template
Fase 1: Sistema de personalidades enriquecido
- Ampliar PersonalityCfg con role, backstory, expertise, limitations
- Añadir CommunicationCfg (formality, humor, personality, response_style, quirks, catchphrases)
- Crear tipos puros en pkg/personality/traits.go
- Implementar BuildPersonalityPrompt() para generar bloque de system prompt
- Integrar personalidad en agents/runtime.go (FromConfig + concatenacion al system prompt)

Fase 2: Agente plantilla
- Añadir campo Template bool a AgentMeta
- Filtrar agentes template en launcher (skip si template: true)
- Crear agents/_template/ con config.yaml completo y documentado
- Incluir TODAS las secciones (skills, shared_knowledge, schedules, security)
- agent.go minimo + prompts/system.md plantilla
- Actualizar dev-scripts/agent/new-agent.sh para copiar desde _template/

Fase 3: Ejemplos de personalidades
- Crear agents/_template/PERSONALITIES.md con 4 perfiles:
  * DevOps pragmatico
  * Analista meticuloso
  * Asistente amigable
  * Guardian de seguridad

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-08 22:28:40 +00:00
egutierrez 65223e8da2 docs: añadir threads al scaffold y guia de creacion de agentes
Actualiza el template de new-agent.sh para que agentes nuevos se creen
con matrix.threads.enabled: true por defecto. Tambien documenta la
seccion threads en create_agent.md para que la guia de creacion
incluya la configuracion de threads como opcion personalizable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:55:55 +00:00
egutierrez 14f951982d fix: simplificar avatar.sh eliminando sync de displayname
Se elimina la llamada a `agentctl displayname` del script avatar.sh.
El script ahora solo sube la imagen como avatar, sin intentar
sincronizar el displayname desde el config. Esto evita errores
cuando el subcomando displayname no está disponible o falla.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:54:48 +00:00
egutierrez 6858a5f13e 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>
2026-03-06 21:53:19 +00:00