Commit Graph

44 Commits

Author SHA1 Message Date
egutierrez 504abed20f docs: actualizar .gitignore y CLAUDE.md
- Agregar knowledges/data/ a .gitignore (DB no se commitea)
- Agregar knowledges/ a estructura en CLAUDE.md
- Los .md compartidos sí se commitean
- Issue 0018: Shared Knowledge (fase 7)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-08 21:57:11 +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 b6af7a0c7e refactor: fix-issue command — crear rama inline sin invocar /git-branch
Simplifica el flujo de fix-issue para crear la rama directamente con
git checkout -b en lugar de invocar /git-branch, que añadía una capa
de indirección innecesaria. Añade lógica para detectar si ya estamos
en la rama correcta y continuar sin recrearla.
2026-03-08 20:02:10 +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 e41f150e69 docs: documentacion E2E y actualizacion de CLAUDE.md
- e2e/README.md: guia completa de instalacion, configuracion,
  ejecucion y debug de tests E2E
- .gitignore: agrega e2e/playwright-report/
- CLAUDE.md: agrega seccion E2E tests y dev-scripts/e2e en estructura

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 14:35:08 +00:00
egutierrez f6d049127d docs: añadir comando /create-issue
Nuevo comando slash que automatiza la creacion de issues en dev/issues/.
Sigue estrictamente la regla create_issue.md, evalua el tamaño del issue
para desglosar en sub-issues con feature flags si es necesario, y registra
todo en el README automaticamente.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:57:29 +00:00
egutierrez 151b02766d feat: soporte de ramas quick/ para cambios sin issue
Añadir tipo de rama quick/<slug> a los comandos /git-branch y /git-push
para cambios pequeños que no están asociados a un issue existente.
Antes, /git-push en master siempre inventaba un número de issue inexistente.
Ahora pregunta al usuario si el cambio tiene issue asociado o no.
No se modifican los flujos de ramas issue/ ni feature flags.
2026-03-08 13:02:23 +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 de34d8a99d docs: documentar aislamiento de claude -p en security y guias
- docs/security.md: nueva seccion 6 sobre aislamiento del provider
  claude-code, comportamiento del working_dir y checklist actualizado
- CLAUDE.md: añadir claude_code.working_dir a la seccion de seguridad
- create_agent.md: recomendar siempre configurar working_dir cuando
  se usa el provider claude-code

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:48:13 +00:00
egutierrez 690cbf4a64 docs: documentacion de seguridad y requisitos en reglas operativas
Cambios en documentacion para completar fase 7 del issue 0019:

- CLAUDE.md: nueva seccion Seguridad con resumen de protecciones
- create_agent.md: requisito obligatorio de seccion anti-injection en
  system prompts + item en checklist de verificacion
- create_tool.md: nueva seccion Seguridad con requisitos para tools
  que hacen I/O (deny-by-default, path traversal, SSRF, command
  injection, rate limiting)
- docs/security.md: documentacion completa de las 5 capas de defensa
  (sanitizacion, prompt hardening, tool validation, rate limiting,
  filesystem isolation) con ejemplos de configuracion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:52:27 +00:00
egutierrez aeba5d1e86 feat: hardening de system prompts contra prompt injection
Crea template reutilizable en .claude/templates/security-prompt.md y
aplica seccion de seguridad obligatoria a todos los system prompts:

- assistant-bot/prompts/assistant-system.md
- asistente-2/prompts/system.md
- meteorologo/prompts/system.md

Las instrucciones cubren:
- Rechazo de acciones fuera del rol
- Proteccion del system prompt (no revelar)
- Rechazo de comandos destructivos
- Validacion de coherencia contextual de tool calls
- Resistencia a redefinicion de identidad
- Prohibicion de generar contenido para ataques

Tareas 3.1, 3.2, 3.3 del issue 0019.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:49:57 +00:00
egutierrez cc6b13180a docs: añadir comando /fix-issue para flujo de implementacion de issues
Nuevo comando slash que ejecuta de punta a punta el flujo de
implementacion y cierre de un issue, siguiendo estrictamente la
regla fix_issue.md. Incluye:

- Resolucion del issue por numero o slug
- Lectura del issue y extraccion de tareas
- Creacion de rama con /git-branch
- Planificacion con TodoWrite
- Implementacion con compilacion frecuente
- Tests obligatorios antes de cerrar
- Evaluacion de feature flags si aplica
- Cierre del issue (mover a completed/, actualizar README)
- Integracion a master con /git-push

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:39:22 +00:00
egutierrez bccd722e04 docs: simplificar CLAUDE.md de 284 a 97 líneas
Se condensa el archivo principal de contexto eliminando redundancia
con las reglas detalladas que ya viven en .claude/rules/*.md.

Cambios:
- Eliminar secciones duplicadas (dev-scripts, env vars, dependencias,
  extensiones pendientes) que ya están documentadas en otros archivos
- Mantener los dos pilares (FP + TBD) como secciones principales
- Condensar estructura de directorios, agentes, build y preferencias
- Referenciar .claude/rules/index.md para guías detalladas

No se pierde información: todo lo eliminado existe en rules/, MEMORY.md,
o README.md. El archivo queda más enfocado y dentro de límites razonables
para el contexto de LLMs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:28:00 +00:00
egutierrez 0ac8e72d14 docs: añadir regla de documentar desglose en fix_issue.md
Al desglosar un issue en sub-issues, ahora es obligatorio documentar
el desglose en el propio archivo del issue: tabla de sub-issues,
checklist de progreso por tarea, y actualizar con cada sub-issue
completada.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 19:19:52 +00:00
egutierrez abfd04420f docs: documentar TBD, feature flags y convenciones de commits en reglas
Añade documentación completa del flujo trunk-based development a todos
los archivos de reglas y comandos del proyecto:

- CLAUDE.md: sección completa de TBD con flujo, commits, ramas y feature flags
- git-branch.md: sección de features multi-issue y reglas de commits
- git-push.md: reglas críticas de commits (no WIP, no squash, no rebase -i)
- create_issue.md: guía de desglose en sub-issues con feature flags
- fix_issue.md: cuándo usar/no usar feature flags, flujo multi-issue
- index.md: resumen expandido del flujo TBD con commits y flags

Impacto: todas las reglas ahora documentan consistentemente el flujo
de desarrollo, convenciones de commits y uso de feature flags.
2026-03-07 18:55:09 +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 019dcc6fad docs: actualizar referencias policies→rules y añadir sección dev/
Se actualizan las referencias en CLAUDE.md de .claude/policies/ a
.claude/rules/, se añade la regla create_issue a la tabla de reglas,
y se agrega la nueva sección "Documentación de desarrollo" apuntando
a dev/README.md. También se actualiza skills/README.md con la nueva
ruta de reglas.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:41:21 +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
egutierrez 9deffc12c9 refactor: migrar policies/ a rules/ y añadir create_issue
Se renombra .claude/policies/ a .claude/rules/ para usar terminología
más clara y consistente. Se añade la nueva regla create_issue.md con
guía completa para crear issues en dev/issues/, incluyendo el template
en .claude/templates/issue.md. El índice (index.md) se actualiza con
la nueva regla.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:41:08 +00:00
egutierrez 76de460d29 docs: nuevas task specs 015-018 y actualización de 014
Añade especificaciones de tareas para: multi-plataforma Telegram (015),
sistema de skills (016), cliente MCP tools (017), shared knowledge (018).
Actualiza task 014 para incluir sistema de personalidades y nuevas capacidades
del proyecto (skills, shared-knowledge, cron jobs) en el template de agentes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:17:08 +00:00
egutierrez 8e089ec07e chore: renumerar tasks a 3 dígitos + añadir nuevas + config tweaks
Renumera todos los archivos de tasks de 2 dígitos (01-, 02-...) a
3 dígitos (001-, 002-...) para mejor ordenación. Añade tres nuevas
tasks pendientes: 012-threads, 013-hot-reload, 014-template-agent.

Deshabilita memory temporalmente en assistant-bot config mientras
se estabiliza el sistema de memoria.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 15:46:29 +00:00
egutierrez 7d97fd08da docs: mover task 11 (markdown rendering) a completed
La tarea de renderizado Markdown→HTML en mensajes Matrix ya fue
implementada. Se mueve el archivo de tareas pendientes a completed/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:54:43 +00:00
egutierrez e5270d1c46 docs: mover tasks 08-09 a completed y añadir tasks 10-11
Se mueven las tareas completadas (08-knowledge_por_agente, 09-command_system)
al directorio .claude/tasks/completed/ para mantener organizado el backlog.

Se añaden nuevas tareas planificadas:
- 10-access-control.md: control de acceso por roles
- 11-markdown-rendering.md: renderizado de markdown en mensajes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 02:21:25 +00:00
egutierrez e2f14e7abb docs: añadir política create_command y actualizar docs
Nueva política create_command.md que documenta cómo añadir comandos
directos (!xxx) a un agente usando RegisterCommand.

Actualiza create_agent.md para no usar reglas en comandos (ahora se
gestionan via RegisterCommand). Actualiza index.md y CLAUDE.md para
referenciar la nueva política.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 01:40:01 +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 515c26d56d chore: mover tareas 06-07 a completed y añadir tareas 08-09
Mueve las tareas completadas (06-añadir-claude-p, 07-logs-mejorados)
al directorio completed/. Añade nuevas tareas pendientes:
08-knowledge_por_agente y 09-command_system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:02:50 +00:00
egutierrez 37882f1c24 docs: añadir stash al flujo de sincronización en git-push
Se añade git stash / git stash pop al paso de sincronización del comando git-push para proteger cambios locales antes de hacer pull --rebase. También se añade nota sobre el caso donde no hay cambios locales y se actualiza el checklist.
2026-03-06 22:17:48 +00:00
egutierrez 741260c4a3 chore: mover tarea 03 a completed
Mueve la spec de bot interaction a tasks/completed/ tras completarla.
2026-03-06 22:14:51 +00:00
egutierrez bff41b9ccd docs: actualizar paths y simplificar policy de creación de agentes
Se actualizan todas las referencias a dev-scripts para usar los nuevos paths
con subdirectorios server/ y agent/ en:
- .claude/CLAUDE.md — sección de dev-scripts y guía rápida
- .claude/policies/create_agent.md — simplificada y reorganizada como guía ejecutable
- README.md — sección de uso y estructura de directorios
- docs/creating-agents.md — todos los pasos del flujo

La policy create_agent.md se reduce de ~230 a ~140 líneas, eliminando
secciones redundantes y reorganizando como checklist práctico con ruta rápida
via create-full.sh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:53:40 +00:00
egutierrez c1889ab0c7 chore: add task spec for structured logging system
Especificación de la tarea 07 con requisitos detallados del sistema de
logging JSONL: formato, rotación, limpieza, API y funciones de consulta.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 17:27:28 +00:00
egutierrez 2f89943511 chore: move completed tasks to completed/ directory
Mueve las tareas completadas (01-bot-tools, 02-bot-memory, 04-bot-avatar)
al directorio .claude/tasks/completed/ para organización.
Añade nueva tarea 06.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:06:25 +00:00
egutierrez 6bef4283c6 Remove outdated plans and implement new features for bot tools, memory, interaction, avatar management, and cron scheduling
- Deleted old plan files for bot memory, interaction, avatar, and cron.
- Added new task files for bot tools, memory, interaction, avatar, and cron scheduling with detailed designs and implementation notes.
- Updated `agents/runtime.go` to support memory clearing and message deletion from SQLite.
- Created necessary shell and package files for implementing bot tools and cron scheduling functionalities.
2026-03-06 01:18:53 +00:00
egutierrez df714c44dd docs: update references after agent directory rename and devops removal
Actualizar todas las referencias en documentación para reflejar los
nuevos nombres de directorio (assistant-bot, asistente-2) y la
eliminación del agente devops-bot. Archivos actualizados: CLAUDE.md,
create_agent.md, README.md, e2ee.md, creating-agents.md,
03-bot-interaction.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 00:55:20 +00:00
egutierrez f2626f7007 Refactor code structure for improved readability and maintainability 2026-03-05 23:52:58 +00:00
egutierrez 0f900d1560 feat: add recovery key support for E2EE agents, including configuration and documentation updates 2026-03-05 00:56:15 +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 bcbbd974e3 docs: add agent creation guide and LLM policies index
Documentación y políticas para la creación de agentes:

- docs/creating-agents.md: guía completa paso a paso para humanos
  (scaffold, config, registro Matrix, avatar, verificación E2EE, arranque,
  troubleshooting)
- .claude/policies/create_agent.md: policy para LLMs con estructura de
  archivos, convenciones y reglas a seguir al crear agentes
- .claude/policies/index.md: índice de todas las policies disponibles
- .claude/policies/create_tool.md: movido desde .claude/rules/ (misma policy)
- CLAUDE.md: añadida sección de políticas, actualizada tabla de agentes
  con asistente-2, y actualizado el flujo de "Cómo añadir un nuevo bot"
  con pasos de avatar y verificación E2EE

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:39:11 +00:00
egutierrez 0f8d2f9ca0 feat: implement tool registry and add various tools for HTTP, file operations, SSH, and Matrix messaging 2026-03-04 21:10:29 +00:00
egutierrez f5b857dbc6 feat: add bubbletea TUI dashboard for bot server management
Implementa un dashboard interactivo con bubbletea siguiendo el patrón
pure core / impure shell del proyecto:

- pkg/tui/ (PURE): Model, Update, View — solo fmt y strings, cero I/O.
  Update produce Intent[] (datos puros) en vez de side effects.
- shell/tui/ (IMPURE): Adapter convierte Intent[] en tea.Cmd[] con I/O real
  (process management, /proc stats, log tail).
- cmd/dashboard/ (composición): Bridge conecta pure Update con shell Adapter
  usando la Elm Architecture de bubbletea.

Pantallas: Main Menu → Agent List → Agent Actions (start/stop/restart/kill) → Logs.
Navegación: flechas ↑↓, Enter seleccionar, 0 volver, q salir.

Dependencias añadidas: bubbletea, lipgloss.
Actualiza .gitignore para anclar binarios a raíz (/agentctl, /dashboard).
Documenta nuevos scripts en CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:38:30 +00:00
egutierrez 062dac268f Refactor code structure for improved readability and maintainability 2026-03-04 19:02:34 +00:00
egutierrez e900464dd6 feat: add plans for bot tools, memory, interaction, avatar editing, and cron scheduling 2026-03-04 01:56:04 +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