BOLT / docs /UI_FEEDBACK_DEMO.md
legends810's picture
Upload folder using huggingface_hub
d83e271 verified

UI Feedback Demonstration

This document demonstrates the new real-time feedback mechanism for package installation and command execution in the E2B sandbox UI.

What's New

1. Real-time Package Installation Feedback

When packages are detected and installed from XML tags, users now see:

  • πŸ” Initial Analysis: "Analyzing code and detecting dependencies..."
  • πŸ“¦ Package Detection: "Step 1: Installing X packages..."
  • NPM Output: Real-time npm install output with proper formatting
    • Blue text for commands ($ npm install react-router-dom)
    • Gray text for standard output
    • Red text for errors
  • βœ… Success Messages: Clear confirmation when packages are installed

2. File Creation Progress

  • πŸ“ File Creation Start: "Creating X files..."
  • Individual File Updates: Progress for each file being created/updated
  • βœ… Completion Status: Visual confirmation for each file

3. Command Execution Feedback

When <command> tags are executed:

  • ⚑ Command Start: Shows the command being executed
  • Real-time Output: Displays stdout/stderr as it happens
  • βœ…/❌ Exit Status: Clear success/failure indicators

Example Flow

Here's what users see when applying code with packages and commands:

πŸ” Analyzing code and detecting dependencies...
πŸ“¦ Starting code application...
Step 1: Installing 3 packages...
$ npm install react-router-dom
> added 3 packages in 2.3s
$ npm install axios
> added 1 package in 1.1s
$ npm install @heroicons/react
> added 1 package in 0.9s
βœ… Successfully installed: react-router-dom, axios, @heroicons/react

Step 2: Creating 5 files...
πŸ“ Creating 5 files...

Step 3: Executing 1 commands...
⚑ executing command: npm run dev
> app@0.0.0 dev
> vite
> VITE ready in 523ms
βœ… Command completed successfully

UI Components

Chat Message Types

The UI now supports these message types with distinct styling:

  1. System Messages (bg-[#36322F] text-white text-sm)

    • General information and status updates
  2. Command Messages (bg-gray-100 text-gray-600 font-mono text-sm)

    • Input commands: Blue prefix ($)
    • Output: Gray text
    • Errors: Red text
    • Success: Green text
  3. User Messages (bg-[#36322F] text-white)

    • User input and queries
  4. AI Messages (bg-secondary text-foreground)

    • AI responses

Visual Indicators

  • πŸ” Analyzing/Detection phase
  • πŸ“¦ Package operations
  • πŸ“ File operations
  • ⚑ Command execution
  • βœ… Success states
  • ❌ Error states
  • ⚠️ Warnings

Implementation Details

Streaming Response Format

The new /api/apply-ai-code-stream endpoint sends Server-Sent Events:

data: {"type": "start", "message": "Starting code application...", "totalSteps": 3}
data: {"type": "step", "step": 1, "message": "Installing 3 packages..."}
data: {"type": "package-progress", "type": "output", "message": "added 3 packages"}
data: {"type": "file-progress", "current": 1, "total": 5, "fileName": "App.jsx"}
data: {"type": "command-output", "command": "npm run dev", "output": "VITE ready", "stream": "stdout"}
data: {"type": "complete", "results": {...}, "message": "Success"}

Error Handling

Errors are displayed inline with context:

  • Package installation failures
  • File creation errors
  • Command execution failures

Each error includes the specific operation that failed and helpful error messages.

Benefits

  1. Transparency: Users see exactly what's happening in real-time
  2. Debugging: Easy to identify where issues occur
  3. Progress Tracking: Clear indication of progress through multi-step operations
  4. Professional Feel: Terminal-like output for technical operations
  5. Accessibility: Color-coded output for quick scanning

Usage

The feedback system automatically activates when:

  1. Code with <package> or <packages> tags is applied
  2. Files are created or updated
  3. Commands from <command> tags are executed
  4. Packages are auto-detected from import statements

No additional configuration is required - the UI automatically provides rich feedback for all operations.