Commit Graph

34 Commits

Author SHA1 Message Date
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 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
egutierrez e6c1671177 chore: cerrar issue 0016 — sistema de skills
Mover issue 0016 a completed/ y actualizar README:

El issue 0016-skills-system ha sido completado con todas las fases:
- Estructura de directorios y skills de ejemplo
- Tipos puros (pkg/skills/)
- Loader y executor (shell/skills/)
- Configuracion en schema
- Tools de function calling
- Integracion con runtime
- Tests unitarios completos
- Documentacion completa

Estado en dev/issues/README.md: pendiente → completado

Sistema de skills operativo y listo para usar.
2026-03-08 22:13:57 +00:00
egutierrez 44ea4a7d82 chore: cerrar issue 0018 — shared knowledge
- Mover dev/issues/0018-shared-knowledge.md a completed/
- Actualizar dev/issues/README.md: estado completado
- Sistema de conocimiento compartido completamente implementado

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-08 21:57:18 +00:00
egutierrez 1fccae1568 feat: añadir cliente MCP para consumir servidores externos
Implementa el cliente MCP que permite a los agentes conectarse a servidores
MCP externos y usar sus tools como si fueran tools nativas del agente.

Arquitectura implementada:
- shell/mcp/client.go: Cliente MCP con soporte stdio y SSE
- shell/mcp/manager.go: Gestor de múltiples clientes MCP
- tools/mcptools/mcp.go: Bridge que convierte MCP tools → tools.Tool
- shell/mcp/server.go: Movido desde shell/protocols/ para colocación junto al client

Cambios en config:
- MCPServerCfg extendido con campos Transport, Command, Args, Env, Headers,
  Prefix, Timeout para soportar stdio y SSE transport

Integración en runtime:
- agents/runtime.go: Inicializa MCP manager si config.Tools.MCP.Enabled
- buildToolRegistry: Registra tools MCP automáticamente con prefijos configurables
- Agent: Campo mcpManager que se cierra en shutdown

Transportes soportados:
- stdio: Lanza subproceso (ej: npx -y @anthropic/mcp-server-brave-search)
- SSE: Se conecta a servidor HTTP MCP

Las tools MCP son indistinguibles de tools nativas desde el punto de vista
del LLM. Auto-discovery via ListTools(), conversión de JSON Schema a tools.Param.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-08 21:22:33 +00:00
egutierrez c5748212f8 chore: cerrar issue 0024c — security integration + docs
- Actualiza docs/security.md: nueva sección "Sistema de grupos centralizados"
  con estructura de los 3 YAML, acciones disponibles, campos deprecados
- Actualiza .claude/CLAUDE.md: añade security/ en la estructura del proyecto
- Mueve 0024 y 0024c a dev/issues/completed/
- Actualiza dev/issues/README.md: marca 0024, 0024a, 0024b, 0024c como completado

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 20:57:28 +00:00
egutierrez 8811d45fd1 feat: conectar sistema centralizado de seguridad al launcher y runtime
- Migrar admin a security/user-groups.yaml (admins group)
- agents.New() ahora acepta acl.ACL pre-resuelta como parámetro;
  elimina construcción interna desde cfg.Security.Roles
- cmd/launcher: carga shellsecurity.Load("security/") al arranque;
  si falla, WARN + política vacía (open access). Para cada agente
  llama pksecurity.ResolveACL y pasa la ACL a agents.New()
- cmd/launcher/registry.go: stores secPolicy en launchDeps para
  que reload() también resuelva ACL centralmente
- shell/matrix/listener.go: elimina invite gating y allowlist check
  basados en AllowedUsers; el control de acceso lo hace el runtime
- internal/config/schema.go: depreca campos Roles y AllowedUsers
  (backward compat, no eliminados)
- agents/*/config.yaml: elimina bloques security.roles y allowed_users
- dev/feature_flags.json: activa centralized-security-groups (enabled: true)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 20:56:21 +00:00
egutierrez 0102afa06e chore: cerrar issue 0024b-security-loader
Mueve el issue a completed/ y actualiza el índice.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 20:32:23 +00:00
egutierrez 440a82b766 chore: cerrar issue 0024a-security-types
Mueve el issue a completed/ y actualiza el README de issues.
2026-03-08 20:20:16 +00:00
egutierrez dade99b232 chore: añadir feature flag centralized-security-groups para issue 0024
Registra el flag 'centralized-security-groups' desactivado. Protege el
código del issue 0024 (sistema centralizado de grupos de usuarios y
agentes) hasta que todas las sub-issues estén completas.
2026-03-08 20:02:14 +00:00
egutierrez 73f7ebb9f5 chore: cerrar issue 0025-cron-scaffolder
Mover a completed/ y actualizar estado en README.
2026-03-08 20:01:43 +00:00
egutierrez 769f648778 chore: cerrar issue 0005-bot-cron
Se mueve el issue a dev/issues/completed/ y se actualiza el índice en README.md.
El estado cambia de 'pendiente' a 'completado'.
2026-03-08 19:00:41 +00:00
egutierrez 25f8aeafaa chore: eliminar issue 0013 de pendientes (ya movido a completed/)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 18:44:26 +00:00
egutierrez 4419fad754 chore: cerrar issue 0013 — hot-reload implementado
Mueve 0013-hot-reload.md a completed/ y actualiza el índice de issues.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 18:44:04 +00:00
egutierrez 8db65ed062 docs: cerrar issue 0012 — thread detection via encrypted event cache
Marca el issue 0012-threads como completado. El problema de que el agente respondia en el hilo principal en lugar del thread esta resuelto con el cache de eventos cifrados implementado en esta rama.
2026-03-08 18:06:09 +00:00
egutierrez 76285d4093 docs: cerrar issue 0023 — seccion de tests en dashboard
Mover issue a completed/ y actualizar README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 15:44:19 +00:00
egutierrez ccdfdf579f docs: cerrar issue 0022c y 0022 — E2E tests completos
Cierra 0022c (tests de agentes + docs) y el issue padre 0022
(Tests E2E con Playwright) ya que todos los sub-issues estan completados:
- 0022a: infraestructura base
- 0022b: auth fixtures y helpers
- 0022c: tests de agentes, run.sh, documentacion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:36:17 +00:00
egutierrez e4ca5da1f8 docs: cerrar issue 0022b — auth fixtures y helpers E2E
Mover issue a completed/ y actualizar README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:20:09 +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 4ab4efd245 docs: crear issue 0022 — tests E2E con Playwright
Issue multi-issue desglosado en 3 sub-issues:
- 0022a: infraestructura base (Docker, Playwright config, CI)
- 0022b: auth fixtures y helpers (login, E2EE, utilidades Matrix)
- 0022c: tests de agentes + documentacion

Incluye actualizacion del README con issue 21 (completado) y todos
los sub-issues de 0022 registrados como pendientes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:57:36 +00:00
egutierrez ff66418e6c chore: cerrar issue 0012 y mover a completed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:50:56 +00:00
egutierrez 9045d5a214 chore: cerrar issue 0020 y mover a completed
Todas las tareas del issue implementadas: default seguro con tmpdir,
configuracion de agentes existentes, tests unitarios y documentacion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:48:34 +00:00
egutierrez e039f6c00c docs: crear issue 0020 — aislar ejecucion de claude -p del repositorio
Issue para evitar que el subproceso claude -p tenga acceso al repositorio
del proyecto. Incluye default seguro con tmpdir, configuracion de agentes
existentes, tests y documentacion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:44:59 +00:00
egutierrez 2d7a5ed5fc chore: cerrar issue 0019 y activar feature flag
Todas las fases del issue 0019 (prompt injection hardening) completadas
a traves de 4 sub-issues (0019a, 0019b, 0019c, 0019d).

- Activa feature flag prompt-injection-hardening en feature_flags.json
- Mueve issue a dev/issues/completed/
- Actualiza README con estado completado
- Marca todas las tareas pendientes como completadas en el issue

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:53:31 +00:00
egutierrez 8f1d86333a docs: actualizar progreso de issue 0019 — sub-issue 0019c completado
Marca como completadas las tareas de fase 4 (rate limiting) y 6.5
(tests de rate limiting) en el desglose multi-issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:46:11 +00:00
egutierrez be8e410478 docs: actualizar progreso de issue 0019 — sub-issue 0019b completado
Marcar como completado: fase 2 (sanitizacion de input) y tarea 6.1
(tests de pkg/sanitize). Actualizar tabla de desglose multi-issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:34:45 +00:00
egutierrez d2b3e89e0e docs: documentar desglose multi-issue de 0019
Añade seccion "Desglose multi-issue" al issue 0019 con:
- Tabla de sub-issues (0019a-d), rama, alcance y estado
- Checklist de progreso por tarea agrupado por fase
- 0019a (tool hardening) marcado como completado

Esto permite trackear el avance de features multi-issue
directamente en el documento del issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:19:47 +00:00
egutierrez 9692da687e chore: feature flag prompt-injection-hardening (OFF)
Flag para la feature multi-issue 0019 (prompt injection hardening).
Desactivado hasta que todas las sub-issues estén completas.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:17:10 +00:00
egutierrez 6542e7d51c chore: cerrar issue 0010 — access control completado
Mover issue a completed/ y actualizar README.
Todas las fases implementadas: allowlist, invite gating, RBAC puro,
integración en runtime, unauthorized_response explicit, y documentación.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:02:26 +00:00
egutierrez 9a77ef59e8 feat: añadir flujo de desarrollo con ramas y feature flags
Se añaden las reglas y commands para el flujo trunk-based completo:
- fix_issue.md: guía para implementar issues (rama → tests → merge)
- git-branch.md: command para crear ramas issue/<NNNN>-<slug>
- git-push.md: actualizado con flujo de ramas, tests obligatorios y feature flags
- create_issue.md: ajustado formato de numeración a 4 dígitos
- index.md: añadida sección de flujo de desarrollo y regla fix_issue
- CLAUDE.md: referencia a la nueva regla fix_issue
- feature_flags.json: archivo base para flags de despliegue por fases

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 18:39:43 +00:00
egutierrez 2756557498 chore: renombrar issues a formato 4 dígitos (NNNN)
Se estandariza la numeración de todos los issues de 3 dígitos a 4 dígitos
(e.g. 005 → 0005, 010 → 0010) para mantener consistencia con la convención
definida en create_issue.md. Se actualiza el README con los nuevos nombres
y links. No hay cambios de contenido en los issues, solo renombrado.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 18:39:33 +00:00
egutierrez 55b0eedddc docs: añadir issue 019 — prompt injection hardening
Nuevo issue que describe el plan completo para proteger agentes contra
ataques de prompt injection. Cubre 7 fases: aislamiento de filesystem,
sanitización de input, hardening de system prompts, rate limiting de
tools, validación de argumentos de tool calls, tests y documentación.
Complementario al RBAC implementado en los commits anteriores.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:59:18 +00:00
egutierrez f561f686c4 refactor: migrar tasks/ a dev/issues/ con estructura de desarrollo
Se mueve la documentación de issues/tasks de .claude/tasks/ a dev/issues/
para separar la planificación de desarrollo de la configuración de Claude.
Se añade dev/README.md como índice de la carpeta de desarrollo. Los issues
completados se mueven a dev/issues/completed/. Esto permite que dev/ sea
el punto central de documentación interna del proyecto.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:41:16 +00:00