Visión del proyecto — Shell Sentinel
Misión
Ofrecer un copiloto de IA nativo en terminal que mantiene sesiones SSH/SFTP persistentes, habla en lenguaje natural y acerca operaciones amigables a infraestructura crítica.
Stack técnico
- Python 3.12, Textual 8.2.8 para la TUI, Strands Agents SDK 1.61.1 y Strands Agents Tools 0.8.9 para el razonamiento conversacional, transportes MCP sobre
mcp2.x. - Instalación reproducible con
pyproject.tomly lockfiles pip-tools (make lock,make install). - Proveedores: Bedrock, OpenAI, LM Studio, Cerebras, Mistral AI, Google Gemini y Ollama. OpenAI admite Chat Completions y Responses; se normalizan los parámetros de tokens y razonamiento por endpoint, Responses permite function tools con razonamiento activo, Mistral AI usa su SDK oficial y Google Gemini se apoya en el
GeminiModelde Strands con el SDKgoogle-genai. - Prompt caching por proveedor (bloque
cache) y un tope de turnos por instrucción (agent.max_turns, 25 por defecto) mantienen bajo control el coste y los bucles descontrolados. - Herramientas personalizadas:
remote_ssh_command,remote_sftp_transfer,local_datetime. - Herramientas MCP Firecrawl para investigación, scraping y extracción estructurada.
Responsabilidades clave
- Centralizar la configuración en
conf/; sin valores hardcodeados en código. - Actualizar traducciones, manuales y web estática cuando cambie el comportamiento.
- Documentar proveedores personalizados y reglas de plugins; cada plugin con documentación concisa.
- Respetar políticas de seguridad (sin secretos en claro, solo variables de entorno).
Flujo de trabajo
- Crear entorno virtual con
python3.12 -m venv .venvy activarlo. - Instalar dependencias con
make install. - Antes de un PR:
make format,make lint,make test(pruebas unitarias más la capa end-to-end offline detests/e2e, que ejecuta la TUI real contra un servidor SSH en proceso). - Si tocas la TUI, el runtime del agente o un proveedor, ejecuta opcionalmente
make test-e2e-live(RUN_E2E=1másOPENAI_API_KEY,MISTRAL_API_KEYoGEMINI_API_KEY; los escenarios MCP necesitan ademásFIRECRAWL_API_KEYynpx); consume tokens y nunca corre en CI. - Validar la TUI con
make runy la web conmake website-serve.
Para políticas completas consulta el manual de colaboración y la documentación de gobernanza. La web estática forma parte del contrato de documentación del producto.