Vercel doesn't allow mixing 'routes' with 'rewrites'. Changed to use
only rewrites with named parameters for cleaner syntax.
Changes:
- Remove 'routes' section (incompatible with 'rewrites')
- Use named parameters (:type/:name) instead of regex capture groups
- Add JSON Content-Type headers for all .json files
- Add 5-minute cache for JSON files
This ensures components.json and other JSON files are served correctly
with proper MIME types instead of HTML.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The component rewrite was intercepting /components.json requests,
returning HTML instead of JSON, causing "<!DOCTYPE... is not valid JSON" errors.
Changes:
- Add $ anchor to component rewrite pattern for exact matching
- Add explicit routes for .json files to ensure proper serving
- Add cache headers for JSON files (5 minute cache)
- Prevent rewrites from intercepting static JSON resources
This ensures /components.json returns actual JSON instead of HTML.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove all local environment detection logic and focus 100% on production.
Changes:
- Use static absolute paths for all resources (/css/, /js/, /favicon.ico)
- Remove complex environment detection and dynamic script loading
- Simplify DataLoader to always use absolute paths (/components.json)
- Clean up debugging logs and navigation links
- Static script tags for reliable loading order
This eliminates complexity and ensures robust production functionality.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The DataLoader was using relative paths like 'components.json' which
resolved incorrectly from SEO-friendly URLs (/component/agent/name).
Changes:
- Add environment detection to DataLoader constructor
- Add getDataPath() method for environment-aware resource paths
- Use relative paths for local development (components.json)
- Use absolute paths for production (/components.json)
- Add debug logging to trace loading issues
This should fix the "Loading component..." issue in production
by ensuring components.json loads from the correct path.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
JavaScript files were loading with relative paths (js/data-loader.js)
which resolved incorrectly from SEO-friendly URLs like
/component/agent/name to /component/agent/js/data-loader.js.
Changes:
- Replace static script tags with dynamic environment-aware loading
- Use relative paths (js/) for local development
- Use absolute paths (/js/) for production
- Maintain script execution order with async=false
- Add debugging logs for troubleshooting
This resolves MIME type errors and ensures JavaScript functionality
works correctly on production component pages.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Disable cleanUrls to prevent conflicts with rewrites
- Remove unnecessary JS/CSS rewrites (using absolute paths instead)
- Fix header paths from /docs/* to /* for proper MIME types
- Add explicit Content-Type headers for JS and CSS files
This should resolve the rewrite issue where /component/agent/name
was serving index.html instead of component.html.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reorder Vercel rewrites to prioritize component routes
- Add explicit JS and CSS route handling for SEO-friendly URLs
- Fix environment-specific resource loading in component.html
- Add debug logging for troubleshooting script loading issues
This resolves MIME type errors and ensures component.html loads
correctly for URLs like /component/agent/name in production.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement on_stdout/on_stderr callbacks for live output streaming
- Add progress indicators during long operations
- Remove unnecessary warning message for aitmpl.com API
- Create API endpoint for agents list at /docs/api/agents.json
- Update getAvailableAgentsFromGitHub to use aitmpl.com API fallback
- Improve user experience with visual feedback during execution
- Version bump to 1.21.5
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change from '30-60 seconds' to 'a few minutes'
- More accurate for complex prompts
- Sets better user expectations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove time and threading imports that caused errors
- Use simple static spinner icon instead of animation
- Clean and simple loading message
- Avoids 'time not associated with value' error
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Import time and threading modules for animations
- Add animated dots (Processing...) before execution
- Show brief animation to indicate activity
- Better visual feedback during synchronous operations
Note: Full spinner not possible during blocking E2B execution
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove validation that forced agent selection
- Allow users to press Enter without selecting any agents
- Continue with default Claude when no agents selected
- Improves UX by not forcing unnecessary selections
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Display the actual user prompt in the command output
- Keep enhanced prompt for internal execution
- Truncate long prompts to 100 characters for display
- Maintains prompt engineering while improving user visibility
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Use local docs/components.json file when available (600+ agents)
- Fallback to GitHub API only if local file not found
- Handle GitHub API rate limits gracefully
- Provide comprehensive fallback agent list
- Show message when loading from local cache
This fixes the issue where only 3 agents were showing due to API rate limits
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create enhanced prompts with clear instructions for Claude Code
- Include agent context when agents are specified
- Instruct Claude to execute requests immediately and create files
- Parse agent names from components string correctly
- Show agent usage in execution logs
This ensures Claude generates actual code instead of just acknowledging requests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change from single list to checkbox for multiple agent selection
- Support comma-separated agent values (folder/agent-name format)
- Add confirmation prompt before agent selection
- Display multiple agents properly in execution summary
- Maintain full path format for agent references
Users can now select multiple agents with SPACE and confirm with ENTER
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add visual separator and loading message after permissions check
- Show 'Executing Claude Code in secure cloud sandbox' message
- Include status indicators for processing, isolation, and output
- Improve user feedback during execution wait time
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add interactive agent selection feature when --agent not provided
- Add interactive prompt input when --prompt not provided
- Document Y/n confirmation step before execution
- Clarify files download to current directory in sandbox-xxxxx folder
- Add ESC to cancel execution feature
- Update execution process table with complete 12-step workflow
- Fix timeout documentation (15 minutes, not 5)
- Remove --studio references (keeping it private for now)
- Add interactive mode example in quick start
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change Python script execution cwd from sandboxDir to targetDir
- Files now download directly to user's current working directory
- Update message to show exact download path
- Maintains pip install in .claude/sandbox for dependencies
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Keep --studio as separate web interface command for Claude Code Studio
- Make --sandbox e2b pure CLI experience without opening web interface
- Add interactive agent selection when --agent not provided
- Agent list fetched from GitHub with option to continue without agent
- Maintain existing prompt collection and Y/n confirmation flow
- Real-time log display and folder download already working
This ensures --sandbox e2b follows the CLI workflow:
1. Check/download agents if missing
2. Prompt for input if --prompt not provided
3. Confirm E2B execution with Y/n
4. Execute and show logs
5. Download folder when complete
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Use os.getcwd() to get the directory where command was executed
- Download files to sandbox-{id} folder in user's current directory
- Remove hardcoded relative path assumptions (../../)
- Add debugging output to show current working directory
- Ensures files are downloaded where user expects them
- Load .env file from current working directory (where command is executed)
- Pass environment variables correctly to Python E2B launcher
- Show API key status on server startup with clear feedback
- Ensure E2B and Anthropic API keys are loaded from user's project
- Better debugging output for environment variable loading
- Add prominent API keys notice with setup instructions
- Include direct links to get E2B and Anthropic API keys
- Improve error handling to detect missing API key errors
- Show helpful error messages for API key configuration
- Better user guidance for .env file setup