Commit Graph

356 Commits

Author SHA1 Message Date
Nirmal Arya
0cbff1e657 Revert to stable MCP implementation
- Remove problematic stdio import to fix build issues
- Focus on SSE-based MCP servers for now
- Builds should work properly now

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 11:27:48 -04:00
Nirmal Arya
70f5bc3488 Fix missing mcp-stdio export issue
Use dynamic import to avoid build-time import errors
Add fallback error handling for unsupported environments
This should fix both dev server and Docker build issues

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 11:27:48 -04:00
Nirmal Arya
4ba8d5dd11 Enable full Node.js compatibility for stdio MCP servers
- Add nodejs_als compatibility flag and node_compat preset to wrangler.toml
- Remove artificial stdio limitation from MCP service
- Restore original example config with npx/uvx servers
- Update UI messaging to reflect both stdio and SSE support
- This should enable Jimmy's original stdio MCP functionality

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 11:27:48 -04:00
Nirmal Arya
be422f18e0 Improve MCP integration for Cloudflare Workers environment
- Move MCP button to better position (after file upload, before enhance)
- Add runtime environment detection for stdio servers
- Update example config to focus on SSE-based servers
- Add warning about stdio server limitations in Cloudflare Workers
- Provide clearer error messages for unsupported server types

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-25 11:27:48 -04:00
Jimmyyy
f73d1392e7 Add MCP integration and update AI SDK for MCP compatibility 2025-06-25 11:27:47 -04:00
Nirmal Arya
72ae0bf3b7 fix multi-model compatibility. 2025-06-22 19:49:26 -04:00
Nirmal Arya
b9415e1d81 Feature/bayer mga provider (#33)
* fix: enhance Bayer MGA provider reliability and Docker integration

* Merge latest dev branch changes into Bayer MGA feature branch
* Improve Bayer MGA provider model filtering and error handling
* Add robust model validation with fallback mechanisms
* Enhance logging and debugging capabilities for model selection
* Add Bayer MGA environment variables to Docker configurations
* Update worker configuration with Bayer MGA API keys
* Add comprehensive Bayer MGA setup to .env.example
* Create standalone test script for Bayer MGA provider debugging
* Fix intermittent model selection issues beyond Claude 3.7 Sonnet
* Ensure provider switching works without breaking other providers

* Bayer MGA provider multimodel support and test coverage.

* Add Claude.md.
2025-06-22 02:21:14 -04:00
Nirmal Arya
0ecb5af30e Fix Bayer MGA provider model selection and improve error handling
- Enhanced BayerMGAProvider getModelInstance method with model validation
- Added fallback mechanism when requested model is not available
- Improved dynamic model filtering with better validation
- Added UI model selection handling for unavailable models
- Added README.md to ECR deploy workflow paths-ignore

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 05:22:17 -04:00
Nirmal Arya
2340edec94 github oauth fixes and deployment enhancements 2025-06-16 21:20:30 -04:00
Nirmal Arya
6b9c270a69 Merge branch 'feature/bayer-mga-provider' into dev 2025-06-16 15:56:49 -04:00
Nirmal Arya
ffd15746c5 fix Removed circular dependency by removing the import of LLMManager from BaseProvider 2025-06-16 15:55:59 -04:00
Nirmal Arya
c255d00973 fix: replace @remix-run/node imports with @remix-run/cloudflare for compatibility
- Update all auth-related routes to use @remix-run/cloudflare imports
- Fix GitHub OAuth server utilities to use Cloudflare-compatible session storage
- Resolve build failures caused by Node.js-specific modules in browser bundle
- Enable successful production builds for EKS deployment

This resolves the 'Cannot access xs before initialization' error by ensuring all imports are compatible with the Cloudflare Workers runtime environment.
2025-05-31 16:07:44 -04:00
Nirmal Arya
6a357e91a6 fix: resolve 'Cannot access xs before initialization' runtime error
- Separate auth controls into lazy-loaded component to prevent module loading issues
- Add comprehensive error handling and fallbacks throughout auth system
- Make profile store resilient to initialization errors with safe localStorage access
- Add try-catch blocks around critical functions to prevent runtime crashes
- Provide fallback navigation methods when auth hooks fail
- Fix EKS deployment crash caused by JavaScript bundling/hoisting issues

This fixes the Header-DpwHgB0l.js runtime error that was preventing the app from loading in production.
2025-05-31 15:47:45 -04:00
Nirmal Arya
1687d812bf feat: implement GitHub OIDC authentication
- Add GitHub OAuth 2.0 authentication flow
- Create authentication routes: /auth/login, /auth/callback, /auth/logout
- Implement OAuth server utilities with proper session management
- Add authentication hooks and client-side state management
- Update header with login/logout controls and user menu
- Create user profile page with GitHub integration
- Add environment variables for GitHub OAuth configuration
- Include comprehensive documentation for setup and usage
- Enhance profile store with authentication state
- Add authentication status API endpoint

Closes: GitHub authentication implementation
2025-05-31 15:40:32 -04:00
Nirmal Arya
9b46d0b892 fix: Add static models to resolve model lookup issue
- Added claude-3-7-sonnet and gpt-4o-mini as static models
- Fixes 500 'Model not found' error during inference
- Now properly returns 401 for invalid API key (expected behavior)
- Models now appear in /api/models response
- Inference pipeline working correctly

This resolves the core 500 error. Next step is configuring valid API key.
2025-05-31 14:25:15 -04:00
Nirmal Arya
d3ac437fb9 fix: Simplify BayerMGA provider to match OpenAI pattern
- Remove overly complex validateApiConfig method
- Follow exact same pattern as working OpenAI provider
- Simplify getModelInstance method to be more robust
- Fix 500 error in inference by removing strict validation
- Maintains dynamic model fetching functionality

This should resolve the inference execution issues while keeping model listing working.
2025-05-31 14:08:51 -04:00
Nirmal Arya
e5e24450c9 fix: Robust BayerMGA provider implementation with better error handling
Key improvements:
- Switch from getOpenAILikeModel to createOpenAI for better control
- Comprehensive error handling and validation
- Better base URL normalization and configuration
- Enhanced logging for debugging inference issues
- Proper header configuration for API requests
- Detailed error messages for troubleshooting

This should resolve the inference execution issues while maintaining model listing functionality.
2025-05-31 13:58:55 -04:00
Nirmal Arya
2c9926fc9d fix: Add better error handling and logging to BayerMGA provider
- Added comprehensive logging for model fetching and instance creation
- Improved error handling with detailed error messages
- Added input validation for API responses
- Better debugging for inference endpoint issues
2025-05-31 13:50:44 -04:00
Nirmal Arya
14172c4de6 feat: Add Bayer MGA provider with dynamic model fetching
- Implemented BayerMGAProvider extending BaseProvider
- Configured base URL: https://chat.int.bayer.com/api/v2
- Added dynamic model fetching from /models endpoint with filters
- Integrated provider into UI (CloudProvidersTab, ServiceStatusTab)
- Added provider registration in LLM registry
- Supports user-configurable API token input
- Filters models by availability status
- Maps API response to ModelInfo format with proper token limits
2025-05-31 13:34:28 -04: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
cfc2fc75d8 refactor(files): simplify file event processing logic
Remove redundant checks for deleted paths and streamline binary file handling. This fixes the browser using excessive memory and freezing.

Improve DiffView to use a singleton instance of Shiki
2025-05-20 00:57:52 +01:00
KevIsDev
0ec30e2358 Merge branch 'stackblitz-labs:main' into main 2025-05-19 17:35:04 +01:00
KevIsDev
62769b2fef fix: chat history snapshot logic to use the same ID as chat and update prompt instructions
- Remove redundant `_chatId` parameter in `takeSnapshot` function
- Update prompt instructions for shell commands and artifact handling
2025-05-14 11:54:51 +01:00
Dino Hensen
208ba2a54b feat: increase max token limit for Claude model claude-3-7-sonnet-20250219
- Added logging for dynamic max tokens based on model details.
- Increased max token limit for Claude model from 8000 to 128000.
- Included beta header for Anthropik API call.
2025-05-13 07:20:38 +02:00
KevIsDev
b089a4b7f1 Merge pull request #1688 from xKevIsDev/main
Some checks failed
Docker Publish / docker-build-publish (push) Has been cancelled
Update Stable Branch / prepare-release (push) Has been cancelled
refactor: optimize error handling and npm install performance
2025-05-10 13:29:28 +01:00
KevIsDev
9a748177ef refactor: optimize error handling and npm install performance
Remove redundant error type handling in webcontainer to simplify logic and improve maintainability. Additionally, comment out lock file patterns to speed up npm install process.
2025-05-10 13:24:08 +01:00
Stijnus
870bfc58ee feat: github fix and ui improvements (#1685)
Some checks are pending
Docker Publish / docker-build-publish (push) Waiting to run
Update Stable Branch / prepare-release (push) Waiting to run
* feat: Add reusable UI components and fix GitHub repository display

* style: Fix linting issues in UI components

* fix: Add close icon to GitHub Connection Required dialog

* fix: Add CloseButton component to fix white background issue in dialog close icons

* Fix close button styling in dialog components to address ghost white issue in dark mode

* fix: update icon color to tertiary for consistency

The icon color was changed from `text-bolt-elements-icon-info` to `text-bolt-elements-icon-tertiary`

* fix: improve repository selection dialog tab styling for dark mode

- Update tab menu styling to prevent white background in dark mode
- Use explicit color values for better dark/light mode compatibility
- Improve hover and active states for better visual hierarchy
- Remove unused Tabs imports

---------

Co-authored-by: KevIsDev <zennerd404@gmail.com>
2025-05-09 15:23:20 +02:00
Stijnus
9a5076d8c6 feat: lock files (#1681)
Some checks failed
Docker Publish / docker-build-publish (push) Has been cancelled
Update Stable Branch / prepare-release (push) Has been cancelled
* Add persistent file locking feature with enhanced UI

* Fix file locking to be scoped by chat ID

* Add folder locking functionality

* Update CHANGES.md to include folder locking functionality

* Add early detection of locked files/folders in user prompts

* Improve locked files detection with smarter pattern matching and prevent AI from attempting to modify locked files

* Add detection for unlocked files to allow AI to continue with modifications in the same chat session

* Implement dialog-based Lock Manager with improved styling for dark/light modes

* Add remaining files for file locking implementation

* refactor(lock-manager): simplify lock management UI and remove scoped lock options

Consolidate lock management UI by removing scoped lock options and integrating LockManager directly into the EditorPanel. Simplify the lock management interface by removing the dialog and replacing it with a tab-based view. This improves maintainability and user experience by reducing complexity and streamlining the lock management process.

Change Lock & Unlock action to use toast instead of alert.

Remove LockManagerDialog as it is now tab based.

* Optimize file locking mechanism for better performance

- Add in-memory caching to reduce localStorage reads
- Implement debounced localStorage writes
- Use Map data structures for faster lookups
- Add batch operations for locking/unlocking multiple items
- Reduce polling frequency and add event-based updates
- Add performance monitoring and cross-tab synchronization

* refactor(file-locking): simplify file locking mechanism and remove scoped locks

This commit removes the scoped locking feature and simplifies the file locking mechanism. The `LockMode` type and related logic have been removed, and all locks are now treated as full locks. The `isLocked` property has been standardized across the codebase, replacing the previous `locked` and `lockMode` properties. Additionally, the `useLockedFilesChecker` hook and `LockAlert` component have been removed as they are no longer needed with the simplified locking system.

This gives the LLM a clear understanding of locked files and strict instructions not to make any changes to these files

* refactor: remove debug console.log statements

---------

Co-authored-by: KevIsDev <zennerd404@gmail.com>
2025-05-08 00:07:32 +02:00
KevIsDev
fcaf8f66f0 feat: enhance error handling and add new search feature
- Add support for `PREVIEW_CONSOLE_ERROR` in WebContainer error handling

- Introduce new Search component for text search functionality

- Extend `ScrollPosition` interface to include `line` and `column`
- Implement scroll-to-line functionality in CodeMirrorEditor
- Add tab-based navigation for files and search in EditorPanel

This commit introduces several enhancements to the editor, including improved error handling, better scrolling capabilities, and a new search feature. The changes are focused on improving the user experience and adding new functionality to the editor components.
2025-05-01 15:56:08 +01:00
KevIsDev
f430443aef refactor: remove debug logging statements
Clean up code by removing unnecessary debug logging statements in `StarterTemplates.tsx` and `useShortcuts.ts`. Making it easier to debug issues in console
2025-04-30 02:11:54 +01:00
KevIsDev
e6dae47ce4 refactor(prompts): update and refine UI design and content guidelines
Refine the UI design and content guidelines in the prompts to ensure consistency and professionalism. Add detailed instructions for animations, color schemes, typography, and layout.

Remove redundant console log in the LLM stream-text module.
2025-04-30 01:24:31 +01:00
KevIsDev
51762835d5 refactor(llm): simplify streamText function and remove unused code
Remove unused imports, files parameter, and redundant multimodal handling logic. Streamline the function by directly passing processed messages to _streamText. Also, add specific handling to remove package-lock.json content to reduce token usage
2025-04-30 00:50:00 +01:00
KevIsDev
902166efee fix(chat): ensure artifact actions are correctly evaluated for completion
The dependency array in the Artifact component was missing `artifact.type` and `allActionFinished`, which could lead to incorrect evaluation of action completion. Additionally, the logic for determining if all actions are finished was updated to account for 'start' actions that are 'running'. This ensures that the component accurately reflects the state of bundled artifacts.
2025-04-28 14:34:07 +01:00
KevIsDev
42eaa2f5e1 refactor(chat): improve UI layout, artifact handling, and template naming
- Restructured alert components in BaseChat for better layout organization
- Updated artifact component to display dynamic titles based on state
- Simplified template names in constants for better readability
- Enhanced snapshot restoration process by consolidating command actions into a single artifact
2025-04-28 14:03:58 +01:00
KevIsDev
bf03b6f0fe refactor(chat): move ScrollToBottom function outside BaseChat component
Improve code maintainability by relocating the ScrollToBottom function outside the BaseChat component. This reduces complexity and enhances readability.
2025-04-28 11:10:51 +01:00
KevIsDev
d5ced7e305 refactor: update prompt to be more specific with install and run commands
remove gemini model as this is now fetched dynamically
2025-04-25 00:54:01 +01:00
KevIsDev
3cafbb6f59 feat(prompts): add fine-tuned prompt and update mobile app instructions
Introduce a new fine-tuned prompt for better results and update mobile app development instructions to ensure comprehensive guidance. The changes include enhanced design guidelines, improved database handling, and clearer artifact creation rules for better project setup.
2025-04-24 10:59:29 +01:00
KevIsDev
02401b90aa refactor(qr-code): replace react-qr-code with react-qrcode-logo
- Updated package.json and pnpm-lock.yaml to use react-qrcode-logo v3.0.0
- Modified ExpoQrModal.tsx to use the new QRCode component with enhanced styling and logo support
- Removed filtering of lock.json files in useChatHistory.ts and stream-text.ts for consistency
- Updated mobile app instructions in prompts.ts to ensure clarity and alignment with best practices
2025-04-23 16:43:01 +01:00
KevIsDev
f06dd8a7b1 docs(prompts): refine and expand design instructions for clarity
Update the design instructions to emphasize the importance of content richness and realistic placeholders. This ensures applications feel functional and visually appealing immediately, avoiding generic templates and empty screens.
2025-04-23 12:40:51 +01:00
KevIsDev
fe37f5ceea refactor: migrate snapshot storage from localStorage to IndexedDB
To improve data consistency and reliability, snapshot storage has been migrated from localStorage to IndexedDB. This change includes adding a new 'snapshots' object store, updating database version to 2, and modifying related functions to use IndexedDB for snapshot operations. The migration ensures better handling of snapshots alongside chat data and removes dependency on localStorage preventing UI lag.
2025-04-23 12:17:06 +01:00
KevIsDev
5c44cb4e00 docs(prompts): update mobile app development instructions and styling guidelines
Refine mobile app development instructions to ensure clarity and consistency. Enhance styling guidelines with detailed design system requirements, including color, typography, and responsive design. Update critical requirements for components, animations, and error handling to align with best practices.
2025-04-22 22:26:29 +01:00
KevIsDev
b009b02057 refactor(chat): replace useSnapScroll with StickToBottom for smoother scrolling
The useSnapScroll hook has been replaced with the StickToBottom component to improve the scrolling behavior in the chat interface. This change ensures smoother and more consistent scrolling, especially when new messages are added. The StickToBottom component provides better control over the scroll position and handles edge cases more effectively.
2025-04-22 21:33:40 +01:00
KevIsDev
b41691f6f2 feat(previews): add refreshAllPreviews method to refresh all previews
This commit introduces the `refreshAllPreviews` method in the `PreviewsStore` class, which iterates through all previews and triggers a file change broadcast for each. This ensures that all previews are updated after a file save operation.

refactor(CodeBlock): handle unsupported languages by falling back to plaintext

The `CodeBlock` component now defaults to 'plaintext' when an unsupported language is detected, improving the user experience by avoiding unsupported language errors.

prompts: update dependency installation instructions

The prompts documentation has been updated to clarify the process of installing dependencies, emphasizing the importance of updating `package.json` first and avoiding individual package installations.
2025-04-22 20:42:38 +01:00
KevIsDev
458c263931 docs(prompts): update mobile app development and design instructions
Refactor and consolidate mobile app development and design guidelines in the prompts files. Remove redundant information and ensure clarity and consistency in the instructions. The changes aim to provide a more structured and concise set of guidelines for developers working on mobile apps using Expo and React Native.
2025-04-22 13:00:03 +01:00
KevIsDev
ffac7bfbfc docs(prompts): update artifact and design instructions
- Clarify critical instructions regarding artifact creation and image files
- Add detailed design instructions for visual identity, UX, and layout
- Include guidance on using Unsplash for stock photos and realistic placeholder content
2025-04-22 11:56:30 +01:00
KevIsDev
443dc646fb refactor(files): optimize file deletion logic for better performance
Refactor the file deletion logic in FilesStore to precompute prefixes and iterate through files only once. This reduces the complexity of nested loops and improves performance by applying all deletions in a single update to the store. Additionally, remove a redundant console.log statement in Chat.client.tsx and update the prompts documentation for clarity.
2025-04-19 12:57:14 +01:00
KevIsDev
adcdc8efdf feat(llm): add new models for xAI and Google providers
Add 'grok-3-beta' to xAI provider and 'gemini-2.5-flash-preview-04-17' to Google provider. Also, ensure file saving when content is updated in WorkbenchStore and update streaming indicator styling in chat messages.
2025-04-18 13:45:11 +01:00
KevIsDev
c08be2f1fb refactor: move qrCodeStore to lib/stores for better organization
The qrCodeStore has been relocated from the app/stores directory to app/lib/stores to maintain a more consistent and organized project structure. This change improves maintainability by centralizing store-related files in a dedicated directory.
2025-04-18 11:45:14 +01:00
KevIsDev
3b5d404330 refactor: remove unused qrCodeAtom and update mobile app prompts
Remove the unused `qrCodeAtom` from the QR code store to clean up the codebase. Additionally, update the mobile app development prompts to emphasize critical requirements, such as creating a default route, ensuring high-quality UI/UX, and following Expo best practices.
2025-04-17 13:43:48 +01:00
KevIsDev
9039653ae0 feat: add Expo QR code generation and modal for mobile preview
Introduce Expo QR code functionality to allow users to preview their projects on mobile devices. Added a new QR code modal component, integrated it into the chat and preview components, and implemented Expo URL detection in the shell process. This enhances the mobile development workflow by providing a seamless way to test Expo projects directly on devices.

- Clean up and consolidate Preview icon buttons while removing redundant ones.
2025-04-17 13:03:41 +01:00