claude-code-templates
Version:
CLI tool to setup Claude Code configurations with framework-specific commands, automation hooks and MCP Servers for your projects
203 lines (166 loc) • 5.89 kB
Markdown
# E2B Sandbox Debugging Guide
## 🔍 Herramientas de Monitoreo Disponibles
### 1. Launcher Principal con Logging Mejorado
**Archivo**: `e2b-launcher.py`
- Logging detallado de cada paso
- Verificación de instalación de Claude Code
- Monitoreo de permisos y ambiente
- Timeouts extendidos para operaciones largas
- Descarga automática de archivos generados
### 2. Monitor de Sandbox en Tiempo Real
**Archivo**: `e2b-monitor.py`
- Monitoreo de recursos del sistema
- Tracking de file system en tiempo real
- Análisis de performance y memory usage
- Logging con timestamps detallados
### 3. Simulador Demo
Para testing sin API keys válidos, crea un archivo demo que simule el flujo completo.
## 🚨 Troubleshooting Común
### Problema: "Sandbox timeout"
**Síntomas**:
```
❌ Error: The sandbox was not found: This error is likely due to sandbox timeout
```
**Soluciones**:
1. **Aumentar timeout del sandbox**:
```python
sbx = Sandbox.create(timeout=600) # 10 minutos
sbx.set_timeout(900) # Extender a 15 minutos
```
2. **Usar el monitor para ver qué consume tiempo**:
```bash
python e2b-monitor.py "Your prompt here" "" your_e2b_key your_anthropic_key
```
### Problema: "Claude not found"
**Síntomas**:
```
❌ Claude not found, checking PATH...
```
**Debugging Steps**:
1. **Verificar template correcto**:
```python
template="anthropic-claude-code" # Debe ser exactamente este
```
2. **Verificar instalación en sandbox**:
```bash
# El launcher ejecuta automáticamente:
which claude
claude --version
echo $PATH
```
### Problema: "Permission denied"
**Síntomas**:
```
❌ Write permission issue
```
**Soluciones**:
1. **Verificar directorio de trabajo**:
```bash
pwd
whoami
ls -la
```
2. **Cambiar a directorio con permisos**:
```python
sbx.commands.run("cd /home/user && mkdir workspace && cd workspace")
```
### Problema: API Key Issues
**Síntomas**:
```
❌ Error: 401: Invalid API key
```
**Debugging**:
1. **Verificar formato de API key**:
- E2B keys: formato específico de E2B
- Anthropic keys: empiezan con "sk-ant-"
2. **Verificar permisos**:
- Verificar que la key tenga permisos de sandbox
- Verificar quota/límites de la cuenta
## 📊 Usando el Monitor para Debugging
### Comando Básico:
```bash
python e2b-monitor.py "Create a React app" "" your_e2b_key your_anthropic_key
```
### Output del Monitor:
```
[14:32:15] INFO: 🚀 Starting enhanced E2B sandbox with monitoring
[14:32:16] INFO: ✅ Sandbox created: abc123xyz
[14:32:17] INFO: 🔍 System resources check
[14:32:17] INFO: Memory usage:
[14:32:17] INFO: total used free
[14:32:17] INFO: Mem: 2.0Gi 512Mi 1.5Gi
[14:32:18] INFO: 📁 Initial file system state
[14:32:18] INFO: Current directory: /home/user
[14:32:19] INFO: 🤖 Executing Claude Code with monitoring
[14:32:19] INFO: Starting monitored execution: echo 'Create a React app'...
[14:32:22] INFO: Command completed in 3.45 seconds
[14:32:22] INFO: Exit code: 0
[14:32:22] INFO: STDOUT length: 2847 characters
```
## 🎯 Casos de Uso Específicos
### 1. **Debugging Timeouts**
```bash
# Usar el monitor para ver exactamente dónde se cuelga
python e2b-monitor.py "Complex prompt that times out"
```
### 2. **Verificar Generación de Archivos**
El launcher automáticamente descarga archivos generados:
```
💾 DOWNLOADING FILES TO LOCAL MACHINE:
✅ Downloaded: ./index.html → ./e2b-output/index.html
✅ Downloaded: ./styles.css → ./e2b-output/styles.css
📁 All files downloaded to: /path/to/project/e2b-output
```
### 3. **Monitoreo de Performance**
```
[14:33:20] INFO: Top processes:
[14:33:20] INFO: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
[14:33:20] INFO: user 1234 5.2 2.1 98765 43210 pts/0 S+ 14:32 0:01 claude
```
## 🛠 Configuración Avanzada
### Variables de Ambiente Útiles:
```bash
export E2B_DEBUG=1 # Debug mode
export ANTHROPIC_API_KEY=your_key # Claude API key
export E2B_API_KEY=your_key # E2B API key
```
### Configuración de Timeout Personalizada:
```python
# Para operaciones muy largas (ej: compilación completa)
sbx = Sandbox.create(timeout=1800) # 30 minutos
sbx.set_timeout(3600) # 1 hora máximo
```
## 📋 Checklist de Debugging
### Antes de Reportar un Issue:
- [ ] API keys válidos y con permisos correctos
- [ ] Template correcto: "anthropic-claude-code"
- [ ] Timeout suficiente para la operación
- [ ] Ejecutar con el monitor para logs detallados
- [ ] Verificar que Claude Code esté instalado en sandbox
- [ ] Revisar permisos de escritura en directorio
- [ ] Comprobar memoria/recursos disponibles
### Información a Incluir en Reports:
- Output completo del launcher o monitor
- Sandbox ID si está disponible
- Prompt exacto que causa el problema
- Componentes instalados (si aplica)
- Tiempo de ejecución antes del fallo
## 🚀 Funcionalidades del Sistema
### Descarga Automática de Archivos
El launcher descarga automáticamente todos los archivos generados:
- HTML, CSS, JS, TS, TSX, Python, JSON, Markdown
- Se guardan en directorio local `./e2b-output/`
- Excluye archivos internos de Claude Code
- Preserva nombres de archivo originales
### Logging Detallado
- Verificación de instalación de Claude Code
- Monitoreo de permisos y ambiente del sandbox
- Tracking de exit codes y output length
- Timestamps para análisis de performance
### Timeouts Inteligentes
- 10 minutos timeout inicial para creación
- 15 minutos total extendido automáticamente
- 5 minutos timeout para ejecución de Claude Code
- Timeouts cortos para verificaciones (5-10 segundos)
---
**Con estas herramientas puedes monitorear exactamente qué está pasando dentro del sandbox E2B y debuggear cualquier problema que surja.**