Commit Graph

25 Commits

Author SHA1 Message Date
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 3318d9297c docs: añadir crons/ y dev-scripts/cron/ a la tabla de estructura de CLAUDE.md
Actualiza la tabla de estructura del proyecto para reflejar los nuevos
directorios creados en el issue 0025. Añade también README.md en
dev-scripts/cron/ con descripción de cada script y ejemplos de uso.
2026-03-08 20:01:25 +00:00
egutierrez e481cb8783 feat: catálogo crons/ + scripts dev-scripts/cron/ + Fire() en scheduler
Implementa issue 0025: catálogo central de automatizaciones cron y scaffolder.

- crons/: directorio de automatizaciones nombradas con README explicando la
  convención. Incluye dos ejemplos listos para usar:
    · good-morning (send_message, 0 9 * * *) — saludo diario
    · daily-summary (llm_prompt, 0 18 * * *)  — resumen generado por LLM

- dev-scripts/cron/new.sh: scaffolder interactivo — pregunta nombre,
  descripción, tipo de acción y cron expression; crea schedule.yaml +
  archivo de prompt vacío; imprime el bloque YAML para copiar en config.yaml.

- dev-scripts/cron/list.sh: lista todas las automatizaciones del catálogo
  con nombre, tipo, cron y descripción en formato tabular.

- dev-scripts/cron/apply.sh: añade la automatización al config.yaml del
  agente indicado usando yq si está disponible; si no, imprime el bloque
  YAML para copiar a mano (sin dependencias obligatorias).

- shell/cron/scheduler.go: exporta Fire(ctx, sc) para disparo inmediato
  de un schedule sin esperar al timer cron — útil en tests y CLI.

- shell/cron/scheduler_test.go: cuatro tests nuevos para Fire()
  (send_message inline, llm_prompt, sin output_room, sin LLM).
  TestScheduler_SkipsInvalidSchedule y TestFire_LLMPrompt_NoLLM_Skips
  reemplazados por versiones instantáneas usando Fire en lugar de
  @every 100ms + sleep, eliminando ~700ms de tiempo de test.
2026-03-08 20:01:02 +00:00
egutierrez 2752ce2f6a feat: script de orquestacion E2E run.sh
Completa el placeholder de 0022a con el flujo completo:
1. Verifica agentes corriendo (via ps.sh)
2. Levanta Element Web si no esta activo
3. Ejecuta npx playwright test
4. Genera reporte HTML en caso de fallos
5. Teardown de Element Web
6. Retorna exit code de Playwright

Soporte --headed para debug local con DISPLAY.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:35:03 +00:00
egutierrez d04a309313 feat: infraestructura base para E2E tests con Playwright
Proyecto Node.js independiente en e2e/ con Playwright + Chromium headless.
Incluye setup-element.sh para descargar y servir Element Web localmente
(puerto 8090 por defecto, 8080 ocupado por Docker).
Scripts de instalacion y placeholder para ejecucion de tests.
Cierra issue 0022a.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:11:58 +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 b506090bfd chore: añadir script build_dashboard.sh
Script para compilar el binario del dashboard TUI de forma independiente.
Útil para desarrollo rápido del dashboard sin recompilar todo el launcher.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 02:21:32 +00:00
egutierrez 2457d6c996 fix: start.sh siempre recompila el launcher antes de arrancar
Elimina la condición que solo recompilaba si había cambios en
cmd/launcher/. Go compila rápido y esto evita binarios stale cuando
hay cambios en pkg/, agents/, tools/, etc. Actualiza también el
progreso de la tarea 09.
2026-03-07 01:11:41 +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
egutierrez 750e896c08 feat: integrate file logger into launcher and update log scripts
Se integra shell/logger en cmd/launcher para que cada agente escriba
sus logs en logs/<agent-id>/YYYY-MM-DD.jsonl. Nuevo flag --log-dir
(default: "logs", "stdout" para consola). El launcher y cada agente
tienen su propio logger con cleanup automático al apagar. Se actualiza
dev-scripts/logs.sh para leer desde la nueva estructura de directorios.
Se corrige .gitignore: "launcher" → "/launcher" para no ignorar cmd/launcher/,
y se añade logs/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 17:27:24 +00:00
egutierrez b86da0b805 refactor: update dev-scripts for unified launcher model
Actualiza todos los scripts de desarrollo para el modelo de launcher unificado.
Ya no se inician procesos individuales por agente — un solo proceso corre todos.

_common.sh: helpers para launcher unificado (is_launcher_running, read_launcher_pid,
launcher_pid_file/log_file), agent_status() ahora deriva estado del launcher
start.sh: inicia el launcher unificado (sin -c flag, descubre todos los agentes)
stop.sh: detiene el launcher unificado
restart.sh: stop + start del launcher
ps.sh: muestra stats del proceso launcher + lista de agentes enabled/disabled
logs.sh: tail -f del log unificado del launcher
server.sh: añade comandos enable/disable para gestionar agentes, elimina start/stop por agente
remove.sh: simplificado a toggle enabled:false + sugerencia de restart

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:06:11 +00:00
egutierrez f2626f7007 Refactor code structure for improved readability and maintainability 2026-03-05 23:52:58 +00:00
egutierrez a92fbff801 feat: update access token environment variables and enhance device signing process for E2EE agents; add verification script and system flow documentation 2026-03-05 23:46:07 +00:00
egutierrez a7e28b0267 feat: add testing support for crypto initialization and process management, including auto-recovery and filtering of go wrapper processes 2026-03-05 00:28:01 +00:00
egutierrez 54fe479792 feat: implement end-to-end encryption (E2EE) support for agents with configuration and documentation updates 2026-03-05 00:06:32 +00:00
egutierrez 1e5103eb70 feat: enhance agent management with support for multiple instances and update UI accordingly 2026-03-04 23:41:26 +00:00
egutierrez 6ad8a6e04e fix: support digits in env var names in load_env regex
La regex del loader de .env solo aceptaba [A-Z_] en nombres de variables,
lo que excluía vars como MATRIX_TOKEN_ASISTENTE2 (con dígito).

Cambiado ^[A-Z_]+=.+ → ^[A-Z_][A-Z0-9_]*=.+ para soportar dígitos
después del primer carácter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:39:01 +00:00
egutierrez ddec55871b feat: implement server-wide management actions and enhance TUI dashboard 2026-03-04 20:51:02 +00:00
egutierrez 791cea7db0 feat: add dev-scripts for server management and TUI launcher
Añade scripts de gestión del servidor de bots:
- ps.sh: vista detallada de procesos (PID, uptime, memoria, CPU, tamaño log)
- restart.sh: reinicio de uno o todos los agentes (stop + start)
- server.sh: comando unificado (start|stop|restart|status|ps|logs|kill|dashboard)
- dashboard.sh: lanzador del TUI interactivo

Estos scripts complementan los existentes (start.sh, stop.sh, list.sh) y
permiten gestionar todo el servidor desde un solo punto de entrada.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:37:39 +00:00
egutierrez 062dac268f Refactor code structure for improved readability and maintainability 2026-03-04 19:02:34 +00:00
egutierrez 0701089ecf chore: remove binaries from tracking, clean up .gitignore
- Remove launcher binary from all git history (git-filter-repo)
- Add launcher, run/*.pid, run/*.log to .gitignore
- Remove tracked run/assistant-bot.pid (runtime file)
- Add dev-scripts/reset-password.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 01:41:45 +00:00
egutierrez 396fc39b90 bot contesta con e2ee 2026-03-04 00:59:10 +00:00
egutierrez bd8e1432e5 feat: add assistant bot with LLM integration and configuration
- Implemented the assistant bot with basic command handling and LLM routing.
- Created configuration file for the assistant bot with personality, behavior, and LLM settings.
- Added system prompt for the assistant bot to define its capabilities and limitations.
- Developed registration script for creating Matrix bot users via Synapse admin API.
- Introduced common development scripts for agent management (start, stop, list, logs).
- Scaffolded new agent creation script to streamline the addition of new agents.
- Implemented agent removal script to disable agents without deleting data.
2026-03-03 23:57:13 +00:00