81 Commits

Author SHA1 Message Date
egutierrez 4abc487b5e docs(0145): cerrar issue + actualizar README
Mueve 0145 a completed/ tras validar smoke real del binario:

echo '<initialize>+<notif/initialized>+<tools/list>' | bin/devicemesh-mcp
  --device-agent http://127.0.0.1:9999 --mode user
  --tools-allowed "exec,fs.read"

devuelve dos frames JSON-RPC esperados:
1. initialize result con serverInfo.name=devicemesh + capabilities.tools.
2. tools/list result con exec + fs.read, inputSchema completo incluyendo
   required fields (argv, path).

Suite de tests con -tags goolm -count=1 pasa sin errores.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:34:01 +02:00
egutierrez 15596df7e4 feat(0145-1): binario devicemesh-mcp + issue doc
Anade el binario standalone cmd/devicemesh-mcp/ que expone via JSON-RPC
sobre stdio el catalogo de devicemesh tools (exec, shell.eval, fs.*,
git.*, pkg.*, proc.*, docker.*) al claude -p parent.

Arquitectura issue 0145:
- main.go: flags (--device-agent, --mode, --tools-allowed, --server-name),
  inicializa devicemesh.Client + RegisterBuiltins + FilterByAllowed, lanza
  server.ServeStdio del SDK mark3labs/mcp-go (ya dep).
- bridge.go: registra cada ToolSpec como mcp.Tool con WithRawInputSchema +
  handler que invoca ToolRegistry.Call (validate->map->HTTP->map). Resultado
  serializado a NewToolResultText, errores como NewToolResultError para que
  el modelo se autocorrija.

Razon: hoy claude -p ve nuestras tool names solo como TEXTO en el system
prompt y las imita sin ejecutar. Con --mcp-config apuntando a este binario,
claude las descubre via tools/list e invoca via tools/call REALMENTE.

Smoke OK: initialize frame produce {capabilities:{tools:{listChanged:true}},
serverInfo:{name:"devicemesh",version:"0.1.0"}}.

Issue doc 0145 incluido con aceptacion A3 anti-hallucination + DoD triada.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:26:22 +02:00
egutierrez 4b94bdf4e2 docs: cerrar issue 0049 — automatizar personalización al crear agentes
Pipeline completo implementado: detect-provider.sh + personalize.sh
integrado en create-full.sh. Paso 8 ahora automático cuando se pasan
los flags de personalización.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:33:22 +00:00
egutierrez 12d7d0caed docs: crear issue 0049 — automatizar personalización al crear agentes
Pipeline para eliminar el Paso 8 manual (editar agent.go, config.yaml
y system.md). Scripts: detect-provider.sh, personalize.sh integrado
en create-full.sh con flags opcionales.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 00:25:18 +00:00
egutierrez 98da4f7521 docs: regla delete_agent.md y cierre de issue 0048
Nueva regla .claude/rules/delete_agent.md con instrucciones completas
para eliminar agentes (manual y automatizado). Actualiza index.md,
CLAUDE.md y cierra issue 0048.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:44:42 +00:00
egutierrez 5047a321d2 docs: cerrar issue 0047 — system prompt path fix
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:21:41 +00:00
egutierrez bbfbcf4f16 docs: crear issue 0047 — system prompt no se carga para _specials
El runtime resuelve system_prompt_file como agents/<id>/prompts/...
pero los agentes especiales viven en agents/_specials/<id>/. Esto
causa que Father Bot opere sin su system prompt completo de 369 lineas.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:21:16 +00:00
egutierrez cf26061399 docs: cerrar issue 0046 — progreso en tiempo real para Father Bot
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:17:31 +00:00
egutierrez fe742bea59 docs: crear issue 0046 — progreso en tiempo real para Father Bot
Issue para que Father Bot muestre feedback visual durante la creacion
de agentes. Incluye: habilitar streaming en config, mejorar formateo
del ProgressReporter con nombres de pasos legibles, y tests.

Tambien habilita streaming + show_tool_progress en el config de
Father Bot (quick win que activa el ProgressReporter existente).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 23:13:23 +00:00
egutierrez 5dff4ba0de docs: cerrar issue 0045 — notify-developer.sh con E2EE
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 22:44:23 +00:00
egutierrez 87ca9e290e docs: crear issue 0045 — DM rooms sin E2EE en notify-developer.sh
El script notify-developer.sh crea salas DM sin encriptacion porque
el createRoom usa preset trusted_private_chat sin initial_state de
m.room.encryption. Esto afecta a bots creados recientemente
(father-bot, test-bot, test-personality).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 22:41:53 +00:00
egutierrez fbe592e4f5 docs: actualizar README de issues — marcar 0036 como completado
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 23:00:37 +00:00
egutierrez dbcf927519 docs: cerrar issue 0036 — claude-code streaming completado
Mueve el issue a dev/issues/completed/ tras implementar todas las fases:
- Fase 1: streaming del subproceso con stream-json
- Fase 2: ProgressReporter con mensajes progresivos en Matrix
- Fase 3: config schema y template actualizados
- Fase 4: tests de integracion y regresion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:59:36 +00:00
egutierrez 0933099365 docs: actualizar README de issues — marcar 0043 y 0044 como completados
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:48:35 +00:00
egutierrez da79411993 merge: issue/0043-father-bot-security-guardrails — implementación paralela
# Conflicts:
#	agents/_specials/father-bot/prompts/system.md
2026-04-09 22:48:11 +00:00
egutierrez a6daedc3f3 docs: cerrar issue 0044
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:46:59 +00:00
egutierrez cc8481de66 docs: cerrar issue 0043
Mover issue 0043-father-bot-security-guardrails a completed/.
Todas las fases implementadas: control de acceso, path scoping,
rate limiting, validacion post-creacion y verificacion de audit.
2026-04-09 22:39:18 +00:00
egutierrez f225d76eff docs: crear issue 0044 — formalizar pipeline de creacion de agentes
Pipeline de 12 pasos obligatorios:
scaffold → build → register → verify E2EE → [convert robot] →
auto-avatar → display name → personalize → rebuild → start →
health check → self-introduce (el bot habla a devs)

Nuevos pasos: display name automatico, health check post-arranque,
y mejora del mensaje de bienvenida. Garantiza consistencia entre
creacion manual (dev-scripts) y via father-bot.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:27:46 +00:00
egutierrez 39ba7bdab0 docs: crear y cerrar issue 0037 — father-bot (agente creador)
Implementado como father-bot en agents/_specials/father-bot/.
Mover issue a completed/ y actualizar README.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:07:57 +00:00
egutierrez cd22c1c861 docs: crear issue 0043 — guardrails de seguridad para father-bot
Issue futuro para implementar capas adicionales de seguridad:
- Developer allowlist via .env (deny-by-default)
- Path scoping para el subprocess claude-code
- Rate limiting de operaciones de creacion
- Audit trail extendido
- Validacion de configs de agentes creados

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:05:04 +00:00
egutierrez fb67ec17a6 docs: crear y cerrar issue 0042 — auto-avatar con proveedores gratuitos
Documenta el diseño completo: proveedores (DiceBear, RoboHash, Multiavatar),
arquitectura pure/impure, integracion CLI y pipeline.
Todas las tareas completadas.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:40:08 +00:00
egutierrez 52d5632d89 docs: crear issues 0036-0041 — nuevas features del sistema
Issues planificados:
- 0036: Claude Code streaming de progreso en Matrix
- 0037: Agente que crea otros agentes/bots via Matrix
- 0038: Webapps y dashboards embebidos en Element via widgets
- 0039: Recordatorios dinámicos y crons que invocan agentes
- 0040: Soporte para mensajes de voz (audio → STT)
- 0041: Videollamadas con agentes via LiveKit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 21:19:09 +00:00
egutierrez 46de98cb73 docs: cerrar issue 0032 y actualizar CLAUDE.md
- Añadir test-personality a tabla de agentes
- Añadir nuevos specs E2E a la lista de tests
- Mover issue a completed, actualizar README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:53:50 +00:00
egutierrez 43c70e904b docs: cerrar issue 0034 y actualizar CLAUDE.md
- Añadir test-bot a tabla de agentes en CLAUDE.md
- Añadir nuevos specs E2E a la lista de tests
- Mover issue a completed, actualizar README

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:45:17 +00:00
egutierrez be00c0da6e docs: actualizar README de issues — marcar 0029, 0033, 0035 como completados
Tambien resuelve conflicto de test helper newTestAgent entre
runtime_test.go (issue 0029) y commands_metrics_test.go (issue 0035)
renombrando el segundo a newMetricsTestAgent.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:22:36 +00:00
egutierrez 056dd3c73a docs: cerrar issue 0035
Mueve el issue a dev/issues/completed/ tras implementar todas las tareas:
audit trail con AuditWriter y comando !metrics.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:22:36 +00:00
egutierrez 892fe0cb19 docs: cerrar issue 0033
Mover issue 0033-bot-commands-no-prefix a completed/.
Todas las tareas implementadas y tests pasando.
2026-04-09 20:22:36 +00:00
egutierrez 945710034c docs: cerrar issue 0029
Mover issue 0029-core-tests a completed/ tras implementar todos los
tests del runtime y config loader.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:22:36 +00:00
egutierrez 5f651ce4b3 docs: añadir issue 0035 — audit trail + comando !metrics
Activar AuditCfg existente en schema.go (nunca implementada) para
escribir eventos auditables a JSONL y opcionalmente a room Matrix.
Añadir comando !metrics que agrega datos del log del día actual
(tokens, latencia, errores) usando los helpers de query existentes.
2026-04-09 00:46:45 +00:00
egutierrez 6664163f6d docs: añadir issues 0033 y 0034 para robots
Issue 0033: comandos de robots sin prefijo ! — permitir que robots
respondan a comandos sin necesitar el prefijo, usando command_prefix
vacio en config. Solo aplica a robots, agentes con LLM mantienen el
prefijo para distinguir comandos de mensajes naturales.

Issue 0034: E2E para skill /create-bot — crear robot de prueba
(test-bot) con comandos custom (!echo, !dice) y tests Playwright
que validen el pipeline de creacion y los comandos funcionales.
Equivalente al issue 0032 pero para robots en vez de agentes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:36:14 +00:00
egutierrez 39e118e2c7 chore: eliminar issues completados del directorio pendiente
Los issues 0027, 0028 y 0031 fueron reintroducidos por el merge de
quick/claude-skills (basada en master pre-limpieza). Se eliminan
definitivamente — las copias en completed/ son la version final.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:29:08 +00:00
egutierrez 1d6376063d merge: quick/claude-skills — añadir skills de Claude Code para create-agent y parallel-fix-issues
Skills declarativas para automatizar creacion de agentes y resolucion
paralela de issues con worktrees.
2026-04-09 00:23:07 +00:00
egutierrez f02f297539 chore: eliminar issues duplicados del directorio pendiente
Los issues 0027, 0028 y 0031 fueron copiados a completed/ pero no
eliminados de dev/issues/ durante el cierre paralelo. Se eliminan
los originales ya que las copias en completed/ son la version final.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:22:46 +00:00
egutierrez a5d038913f docs: cerrar issue 0030 — separacion Robot vs Agent
Mover issue a completed/ y actualizar estado en README.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:21:52 +00:00
egutierrez aba07fef60 docs: cerrar issue 0026 — split runtime.go
Mueve el issue a dev/issues/completed/ y actualiza el README.
Issue completado: runtime.go dividido en 5 archivos especializados
con tests para buildToolRegistry.
2026-04-09 00:21:42 +00:00
egutierrez 47c53f900a docs: cerrar issue 0031 — expand file tools
Mover issue a completed/ y actualizar indice en README.md.
Todas las tareas del issue implementadas y testeadas (44 tests).
2026-04-09 00:21:42 +00:00
egutierrez dacf241806 docs: cerrar issue 0028 — desacoplar launcher del registro estatico
Mover issue a completed/ y actualizar README con estado completado.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:21:30 +00:00
egutierrez 37384af2a0 docs: cerrar issue 0027
Mover issue 0027-prune-config-schema a completed/ y actualizar indice.
Todas las tareas implementadas: schema podado, template simplificado,
configs de agentes limpiados, tests de parsing agregados.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:21:15 +00:00
egutierrez 8f6958f856 chore: agregar issues 0026-0032 y worktrees a gitignore
Registra los nuevos issues pendientes en el indice y excluye
la carpeta worktrees/ del control de versiones.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:20:53 +00:00
egutierrez 38f2bec14e merge: issue/0030-robot-vs-agent — tipo Robot ligero para bots de comandos 2026-04-08 23:20:25 +00:00
egutierrez 3958e2cb94 docs: cerrar issue 0026 — split runtime.go
Mueve el issue a dev/issues/completed/ y actualiza el README.
Issue completado: runtime.go dividido en 5 archivos especializados
con tests para buildToolRegistry.
2026-04-08 23:19:35 +00:00
egutierrez c5543c3186 docs: cerrar issue 0030 — separacion Robot vs Agent
Mover issue a completed/ y actualizar estado en README.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:15:48 +00:00
egutierrez ac5cde3f3e merge: issue/0031-expand-file-tools — write, list, append, delete para tools/file/
# Conflicts:
#	dev/issues/README.md
2026-04-08 23:06:52 +00:00
egutierrez b519bb4ef8 merge: issue/0028-decouple-launcher — auto-discovery de agentes via init()
# Conflicts:
#	dev/issues/README.md
2026-04-08 23:06:31 +00:00
egutierrez 3235870cec merge: issue/0027-prune-config-schema — implementación paralela
# Conflicts:
#	dev/issues/README.md
2026-04-08 23:06:09 +00:00
egutierrez acbc8ef629 chore: agregar issues 0026-0032 y worktrees a gitignore
Registra los nuevos issues pendientes en el indice y excluye
la carpeta worktrees/ del control de versiones.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:05:47 +00:00
egutierrez d31162dde8 docs: cerrar issue 0031 — expand file tools
Mover issue a completed/ y actualizar indice en README.md.
Todas las tareas del issue implementadas y testeadas (44 tests).
2026-04-08 23:04:45 +00:00
egutierrez 47e169a5b9 docs: cerrar issue 0028 — desacoplar launcher del registro estatico
Mover issue a completed/ y actualizar README con estado completado.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:03:15 +00:00
egutierrez f9f192041b docs: cerrar issue 0027
Mover issue 0027-prune-config-schema a completed/ y actualizar indice.
Todas las tareas implementadas: schema podado, template simplificado,
configs de agentes limpiados, tests de parsing agregados.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 23:02:33 +00:00
egutierrez a0b471b3b7 chore: cerrar issue 0014 — template agent + personalidades
Issue 0014 completado:

 Fase 1: Sistema de personalidades enriquecido
  - PersonalityCfg ampliado con role, backstory, expertise, limitations
  - CommunicationCfg con formality, humor, personality, response_style, quirks
  - BuildPersonalityPrompt() genera bloque para system prompt
  - Integrado en runtime con FromConfig + concatenacion automatica

 Fase 2: Agente plantilla (_template)
  - Campo Template bool en AgentMeta (launcher lo filtra)
  - agents/_template/ completo con todas las secciones documentadas
  - agent.go + prompts/system.md + config.yaml canonica
  - new-agent.sh actualizado para copiar desde _template/

 Fase 3: Ejemplos de personalidades
  - PERSONALITIES.md con 4 perfiles: DevOps pragmatico, Analista meticuloso,
    Asistente amigable, Guardian de seguridad

 Fase 4: Comando !info enriquecido
  - Metadata completa: identidad, personalidad, LLM, tools, skills,
    knowledge, memoria, schedules, uptime

Fase 5 (estandarizar configs existentes): aplazada — los agentes actuales
funcionan correctamente. Los nuevos agentes usaran el template completo.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-08 22:30:58 +00:00