Commit Graph

21 Commits

Author SHA1 Message Date
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 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 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 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 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 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 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