42 Commits

Author SHA1 Message Date
Stijnus
2f6f28e67e feat: enhance message parser with advanced AI model support and performance optimizations (#1976)
* fix: support for multiple artifacts to support newer llm

* Improve shell command detection and error handling

Enhanced the message parser to better distinguish between shell commands and script files, preventing accidental file creation for shell command code blocks. Added pre-validation and error enhancement for shell commands in the action runner, including suggestions for common errors and auto-modification of commands (e.g., adding -f to rm). Updated comments and added context checks to improve action handling and user feedback.

* feat: enhance message parser with shell command detection and improved error handling

- Add shell command detection to distinguish executable commands from script files
- Implement smart command pre-validation with automatic fixes (e.g., rm -f for missing files)
- Enhance error messages with contextual suggestions for common issues
- Improve file creation detection from code blocks with better context analysis
- Add comprehensive test coverage for enhanced parser functionality
- Clean up debug code and improve logging consistency
- Fix issue #1797: prevent AI-generated code from appearing in chat instead of creating files

All tests pass and code follows project standards.

* fix: resolve merge conflicts and improve artifact handling

- Fix merge conflicts in Markdown component after PR #1426 merge
- Make artifactId optional in callback interfaces for standalone artifacts
- Update workbench store to handle optional artifactId safely
- Improve type safety for artifact management across components
- Clean up code formatting and remove duplicate validation logic

These changes ensure proper integration of the multiple artifacts feature
with existing codebase while maintaining backward compatibility.

* test: update snapshots for multiple artifacts support

- Update test snapshots to reflect new artifact ID system from PR #1426
- Fix test expectations to match new artifact ID format (messageId-counter)
- Ensure all tests pass with the merged functionality
- Verify enhanced parser works with multiple artifacts per message

* perf: optimize enhanced message parser for better performance

- Optimize regex patterns with structured objects for better maintainability
- Reorder patterns by likelihood to improve early termination
- Replace linear array search with O(1) Map lookup for command patterns
- Reduce memory allocations by optimizing pattern extraction logic
- Improve code organization with cleaner pattern type handling
- Maintain full backward compatibility while improving performance
- All tests pass with improved execution time

* test: add comprehensive integration tests for enhanced message parser

- Add integration tests for different AI model output patterns (GPT-4, Claude, Gemini)
- Test file path detection with various formats and contexts
- Add shell command detection and wrapping tests
- Include edge cases and false positive prevention tests
- Add performance benchmarking to validate sub-millisecond processing
- Update test snapshots for enhanced artifact handling
- Ensure backward compatibility with existing parser functionality

The enhanced message parser now has comprehensive test coverage validating:
- Smart detection of code blocks that should be files vs plain examples
- Support for multiple AI model output styles and patterns
- Robust shell command recognition across 9+ command categories
- Performance optimization with pre-compiled regex patterns
- False positive prevention for temp files and generic examples

All 44 tests pass, confirming the parser solves issue #1797 while maintaining
excellent performance and preventing regressions.

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

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: enhance message parser with advanced AI model support and performance optimizations

## Message Parser Enhancements

### Core Improvements
- **Enhanced AI Model Support**: Robust parsing for GPT-4, Claude, Gemini, and other LLM outputs
- **Smart Code Block Detection**: Intelligent differentiation between actual files and example code blocks
- **Advanced Shell Command Recognition**: Detection of 9+ command categories with proper wrapping
- **Performance Optimization**: Pre-compiled regex patterns for sub-millisecond processing

### Key Features Added
- **Multiple Artifact Support**: Handle complex outputs with multiple code artifacts
- **File Path Detection**: Smart recognition of file paths in various formats and contexts
- **Error Handling**: Improved error detection and graceful failure handling
- **Shell Command Wrapping**: Automatic detection and proper formatting of shell commands

### Technical Enhancements
- **Action Runner Integration**: Seamless integration with action runner for command execution
- **Snapshot Testing**: Comprehensive test coverage with updated snapshots
- **Backward Compatibility**: Maintained compatibility with existing parser functionality
- **False Positive Prevention**: Advanced filtering to prevent temp files and generic examples

### Files Modified
- Enhanced message parser core logic ()
- Updated action runner for better command handling ()
- Improved artifact and markdown components
- Comprehensive test suite with 44+ test cases
- Updated test snapshots and workbench store integration

### Performance & Quality
- Sub-millisecond processing performance
- 100% test coverage for new functionality
- Comprehensive integration tests for different AI model patterns
- Edge case handling and regression prevention

Addresses issue #1797: Enhanced message parsing for modern AI model outputs
Resolves merge conflicts and improves overall artifact handling reliability

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Anirban Kar <thecodacus@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-07 10:43:18 +02:00
Stijnus
3ea96506ea feat: gitLab Integration Implementation / github refactor / overal improvements (#1963)
* Add GitLab integration components

Introduced PushToGitLabDialog and GitlabConnection components to handle GitLab project connections and push functionality. Includes user authentication, project handling, and UI for seamless integration with GitLab.

* Add components for GitLab connection and push dialog

Introduce `GitlabConnection` and `PushToGitLabDialog` components to handle GitLab integration. These components allow users to connect their GitLab account, manage recent projects, and push code to a GitLab repository with detailed configurations and feedback.

* Fix GitLab personal access tokens link to use correct URL

* Update GitHub push call to use new pushToRepository method

* Enhance GitLab integration with performance improvements

- Add comprehensive caching system for repositories and user data
- Implement pagination and search/filter functionality with debouncing
- Add skeleton loaders and improved loading states
- Implement retry logic for API calls with exponential backoff
- Add background refresh capabilities
- Improve error handling and user feedback
- Optimize API calls to reduce loading times

* feat: implement GitLab integration with connection management and repository handling

- Add GitLab connection UI components
- Implement GitLab API service for repository operations
- Add GitLab connection store for state management
- Update existing connection components (Vercel, Netlify)
- Add repository listing and statistics display
- Refactor GitLab components into organized folder structure

* fix: resolve GitLab deployment issues and improve user experience

- Fix DialogTitle accessibility warnings for screen readers
- Remove CORS-problematic attributes from avatar images to prevent loading errors
- Enhance GitLab API error handling with detailed error messages
- Fix project creation settings to prevent initial commit conflicts
- Add automatic GitLab connection state initialization on app startup
- Improve deployment dialog UI with better error handling and user feedback
- Add GitLab deployment source type to action runner system
- Clean up deprecated push dialog files and consolidate deployment components

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

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: implement GitHub clone repository dialog functionality

This commit fixes the missing GitHub repository selection dialog in the "Clone a repo" feature
by implementing the same elegant interface pattern used by GitLab.

Key Changes:
- Added onCloneRepository prop support to GitHubConnection component
- Updated RepositoryCard to generate proper GitHub clone URLs (https://github.com/{full_name}.git)
- Implemented full GitHub repository selection dialog in GitCloneButton.tsx
- Added proper dialog close handling after successful clone operations
- Maintained existing GitHub connection settings page functionality

Technical Details:
- Follows same component patterns as GitLab implementation
- Uses proper TypeScript interfaces for clone URL handling
- Includes professional dialog styling with loading states
- Supports repository search, pagination, and authentication flow

The GitHub clone experience now matches GitLab's functionality, providing users with
a unified and intuitive repository selection interface across both providers.

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

Co-Authored-By: Claude <noreply@anthropic.com>

* Clean up unused connection components

- Remove ConnectionForm.tsx (unused GitHub form component)
- Remove CreateBranchDialog.tsx (unused branch creation dialog)
- Remove RepositoryDialogContext.tsx (unused context provider)
- Remove empty components/ directory

These files were not referenced anywhere in the codebase and were leftover from development.

* Remove environment variables info section from ConnectionsTab

- Remove collapsible environment variables section
- Clean up unused state and imports
- Simplify the connections tab UI

* Reorganize connections folder structure

- Create netlify/ folder and move NetlifyConnection.tsx
- Create vercel/ folder and move VercelConnection.tsx
- Add index.ts files for both netlify and vercel folders
- Update imports in ConnectionsTab.tsx to use new folder structure
- All connection components now follow consistent folder organization

---------

Co-authored-by: Hayat Bourgi <hayat.bourgi@montyholding.com>
Co-authored-by: Hayat55 <53140162+Hayat55@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-05 14:01:33 +02:00
Stijnus
80e857fb57 Merge pull request #1924 from embire2/fix/code-output-to-chat-issue
fix: auto-detect and convert code blocks to artifacts when missing tags
2025-08-30 23:52:40 +02:00
Keoma Wright
1d26deadd0 fix: resolve code output to chat instead of files (#1797)
## Summary
Comprehensive fix for AI models (Claude 3.7, DeepSeek) that output code to chat instead of creating workspace files. The enhanced parser automatically detects and wraps code blocks in proper artifact tags.

## Key Improvements

### 1. Enhanced Message Parser
- Detects code blocks that should be files even without artifact tags
- Six pattern detection strategies for different code output formats
- Automatic file path extraction and normalization
- Language detection from file extensions

### 2. Pattern Detection
- File creation/modification mentions with code blocks
- Code blocks with filename comments
- File paths followed by code blocks
- "In <filename>" context patterns
- HTML/Component structure detection
- Package.json and config file detection

### 3. Intelligent Processing
- Prevents duplicate processing with block hashing
- Validates file paths before wrapping
- Preserves original content when invalid
- Automatic language detection for syntax highlighting

## Technical Implementation

The solution extends the existing StreamingMessageParser with enhanced detection:
- Falls back to normal parsing when artifacts are properly tagged
- Only applies enhanced detection when no artifacts found
- Maintains backward compatibility with existing models

## Testing
 Tested with various code output formats
 Handles multiple files in single message
 Preserves formatting and indentation
 Works with all file types and languages
 No performance impact on properly formatted messages

This fix ensures consistent file creation regardless of AI model variations.

🚀 Generated with human expertise

Co-Authored-By: Keoma Wright <founder@lovemedia.org.za>
2025-08-25 11:41:53 +00:00
Keoma Wright
39d0775b37 fix: auto-detect and convert code blocks to artifacts when missing tags
When AI models fail to use proper artifact tags, code blocks now get
automatically detected and converted to file artifacts, preventing code
from appearing in chat. The parser detects markdown code fences outside
artifacts and wraps them with proper artifact/action tags.

This fixes the issue where code would randomly appear in chat instead
of being generated as files in the workspace.

Fixes #1230

Co-Authored-By: Keoma Wright <founder@lovemedia.org.za>
2025-08-24 10:50:15 +00:00
xKevIsDev
b5d17f2d7e feat: enhance Vercel deployment process with framework detection and source file handling
- Implemented a function to detect project frameworks based on package.json and configuration files.
- Added support for including source files in the deployment request for frameworks that require building.
- Updated the action function to handle framework detection and adjust deployment configuration accordingly.
- Removed unnecessary console logs and improved error handling for file reading operations.
2025-07-08 01:20:58 +01:00
KevIsDev
2e7b626b00 feat: add discuss mode and quick actions
- Implement discuss mode toggle and UI in chat box
- Add quick action buttons for file, message, implement and link actions
- Extend markdown parser to handle quick action elements
- Update message components to support discuss mode and quick actions
- Add discuss prompt for technical consulting responses
- Refactor chat components to support new functionality

The changes introduce a new discuss mode that allows users to switch between code implementation and technical discussion modes. Quick action buttons provide immediate interaction options like opening files, sending messages, or switching modes.
2025-05-26 16:05:51 +01:00
KevIsDev
33305c4326 feat(deploy): add deploy alert system for build and deployment status
Introduce a new `DeployAlert` interface and related components to provide visual feedback on build and deployment stages. This includes status updates for Vercel and Netlify deployments, with progress visualization and error handling. The changes enhance user experience by offering real-time updates during the deployment process.
2025-04-04 11:22:56 +01:00
KevIsDev
02974089de feat: integrate Supabase for database operations and migrations
Add support for Supabase database operations, including migrations and queries. Implement new Supabase-related types, actions, and components to handle database interactions. Enhance the prompt system to include Supabase-specific instructions and constraints. Ensure data integrity and security by enforcing row-level security and proper migration practices.
2025-03-19 23:11:31 +00:00
Anirban Kar
3c28e8ad88 fix: fix enhance prompt to stop implementing full project instead of enhancing (#1383) #release
* fix: enhance prompt fix

* fix: added error capture on api error

* fix: replaced error with log for wrong files selected by bolt
2025-03-01 01:34:35 +05:30
Toddyclipsgg
a8d8b7b8c7 Merge branch 'main' into diff-view-v2 2025-02-25 19:29:59 -03:00
KevIsDev
4da13d1edc feat: add netlify one-click deployment 2025-02-24 17:24:32 +00:00
KevIsDev
2a8472ed17 feat: add one-click netlify deployment 2025-02-24 17:24:00 +00:00
Toddyclipsgg
ab6f5328b4 feat: Add Diff View and File History Tracking
- Implemented a new Diff View in the Workbench to visualize file changes
- Added file history tracking with detailed change information
- Enhanced FileTree and FileModifiedDropdown to show line additions and deletions
- Integrated file history saving and retrieval in ActionRunner
- Updated Workbench view types to include 'diff' option
- Added support for inline and side-by-side diff view modes
2025-02-23 07:55:38 -03:00
KevIsDev
bffb8a2a90 Revert "Merge pull request #1335 from Toddyclipsgg/diff-view-v2"
This reverts commit 871aefbe83, reversing
changes made to 8c72ed76b3.
2025-02-21 15:01:09 +00:00
Toddyclipsgg
382bf2c9a3 feat: Add Diff View and File History Tracking
- Implemented a new Diff view in the Workbench to track file changes
- Added file history tracking with version control and change tracking
- Created a FileModifiedDropdown to browse and manage modified files
- Enhanced ActionRunner to support file history persistence
- Updated Workbench and BaseChat components to support new diff view functionality
- Added support for inline and side-by-side diff view modes
2025-02-16 23:10:15 -03:00
Stijnus
d1d23d80e7 big fixes
fixes feedback from thecodacus
2025-01-30 17:17:36 +01:00
Anirban Kar
bbae032a37 fix: git import issue when importing bolt on bolt (#1020)
* fix: import bolt on bolt fix

* added escape on folder import

* type fix
2025-01-27 18:05:55 +05:30
Anirban Kar
6494f5ac2e fix: updated logger and model caching minor bugfix #release (#895)
* fix: updated logger and model caching

* usage token stream issue fix

* minor changes

* updated starter template change to fix the app title

* starter template bigfix

* fixed hydretion errors and raw logs

* removed raw log

* made auto select template false by default

* more cleaner logs and updated logic to call dynamicModels only if not found in static models

* updated starter template instructions

* browser console log improved for firefox

* provider icons fix icons
2024-12-31 22:47:32 +05:30
Anirban Kar
4c81e154a0 feat: added Automatic Code Template Detection And Import (#867)
* initial setup

* updated template list

* added optional switch to control this feature

* removed some logs
2024-12-29 15:52:37 +05:30
Eduard Ruzga
aecd9b1b40 fix: detect and remove markdown block syntax that llms sometimes hallucinate for file actions (#886)
* Clean out markdown syntax

* Remove identation removal

* Improve for streaming
2024-12-29 15:23:20 +05:30
Anirban Kar
d327cfea29 feat: added terminal error capturing and automated fix prompt 2024-12-17 21:19:43 +05:30
Anirban Kar
356715ccd7 minor bugfix 2024-12-16 23:55:51 +05:30
Anirban Kar
05a5f85e68 Merge pull request #504 from thecodacus/bundle-artifact
feat(UI): added artifact bundling for custom long artifacts like uploading folder
2024-12-06 17:16:50 +05:30
Anirban Kar
b9575c8a55 fixed action-runner linting 2024-12-04 00:33:22 +05:30
PuneetP16
5335580646 [feat]: Implement chat description editing in sidebar and header, add visual cue for active chat in sidebar 2024-12-03 11:41:58 +05:30
Anirban Kar
fee629d8cd fixed test cases 2024-12-03 11:28:23 +05:30
Anirban Kar
9d0066a449 Merge remote-tracking branch 'origin/main' into bundle-artifact 2024-12-02 22:21:17 +05:30
Anirban Kar
34a8a39a3c added artifact bundling for custom long artifacts like uploading folder 2024-12-02 18:30:21 +05:30
Dustin Loring
cb1fd38df6 liniting fix
Fixes linting issues
2024-12-01 05:44:20 -05:00
Anirban Kar
5add317b1a Update action-runner.ts
needed to return promise for proper artifact chaining
2024-11-30 03:00:53 +05:30
PuneetP16
4fb64800d3 [fix]: shell commands failing on app reload 2024-11-26 14:24:41 +05:30
Sujal Shah
f94165a421 fix: silent eslint issues 2024-11-25 14:00:18 +05:30
Oliver Jägle
7d8f811886 Fix linting issues 2024-11-22 09:49:45 +01:00
Oliver Jägle
2327de3810 Lint-fix all files in app 2024-11-21 22:05:35 +01:00
Anirban Kar
358487135f fix: global execution queue added 2024-11-17 13:26:09 +05:30
Anirban Kar
2d270e749b Merge branch 'main' into code-streaming 2024-11-12 23:20:30 +05:30
Anirban Kar
719384cfbd feat(bolt-terminal) bolt terminal integrated with the system 2024-11-09 12:59:42 +05:30
Anirban Kar
d1f3e8cbec feat: added bolt dedicated shell 2024-11-08 21:47:31 +05:30
Anirban Kar
54351cd845 feature(code-streaming): added code streaming to editor while AI is writing code 2024-11-08 11:14:15 +05:30
Sam Denty
31c07c06cb fix(npm): fix hanging shells (#159) 2024-10-07 16:24:29 +02:00
Sam Denty
6fb59d2bc5 fix: remove monorepo 2024-09-25 19:54:09 +01:00