* Update LLM providers and constants
- Updated constants in app/lib/.server/llm/constants.ts
- Modified stream-text functionality in app/lib/.server/llm/stream-text.ts
- Updated Anthropic provider in app/lib/modules/llm/providers/anthropic.ts
- Modified GitHub provider in app/lib/modules/llm/providers/github.ts
- Updated Google provider in app/lib/modules/llm/providers/google.ts
- Modified OpenAI provider in app/lib/modules/llm/providers/openai.ts
- Updated LLM types in app/lib/modules/llm/types.ts
- Modified API route in app/routes/api.llmcall.ts
* Fix maxCompletionTokens Implementation for All Providers
- Cohere: Added maxCompletionTokens: 4000 to all 10 static models
- DeepSeek: Added maxCompletionTokens: 8192 to all 3 static models
- Groq: Added maxCompletionTokens: 8192 to both static models
- Mistral: Added maxCompletionTokens: 8192 to all 9 static models
- Together: Added maxCompletionTokens: 8192 to both static models
- Groq: Fixed getDynamicModels to include maxCompletionTokens: 8192
- Together: Fixed getDynamicModels to include maxCompletionTokens: 8192
- OpenAI: Fixed getDynamicModels with proper logic for reasoning models (o1: 16384, o1-mini: 8192) and standard models
- Updated constants in app/lib/.server/llm/constants.ts
- Modified stream-text functionality in app/lib/.server/llm/stream-text.ts
- Updated Anthropic provider in app/lib/modules/llm/providers/anthropic.ts
- Modified GitHub provider in app/lib/modules/llm/providers/github.ts
- Updated Google provider in app/lib/modules/llm/providers/google.ts
- Modified OpenAI provider in app/lib/modules/llm/providers/openai.ts
- Updated LLM types in app/lib/modules/llm/types.ts
- Modified API route in app/routes/api.llmcall.ts
- Add GitHubDeploy component to handle build and file preparation
- Create GitHubDeploymentDialog for repository selection and creation
- Update DeployButton to include GitHub deployment option
- Support both new and existing GitHub repositories
- Allow choosing between public and private repositories
- Remove 'Push to GitHub' sync button from Workbench
- Clean up unused parameters and imports
- Improve UX by using only the proper GitHub deployment feature
- Fix ESLint and Prettier formatting issues
- Fix unused variable in GitHubDeploymentDialog
This removes the old sync functionality in favor of the comprehensive
GitHub deployment feature that builds projects before deployment.
## 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>
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>
Fixes issue #1827 where Docker Compose wasn't properly loading .env.local file.
Problem:
- Docker Compose expects .env file for variable substitution but docs say to use .env.local
- This caused environment variables to not be loaded in Docker containers
Solution:
- Updated docker-compose.yaml to load both .env and .env.local files
- Created setup-env.sh script to help users sync .env.local to .env
- Updated documentation with clear instructions for Docker users
- Maintains backward compatibility with existing setups
Changes:
- Modified docker-compose.yaml to use array syntax for env_file
- Added scripts/setup-env.sh helper script
- Updated CONTRIBUTING.md and index.md documentation
This ensures environment variables work correctly in Docker while maintaining
the security best practice of using .env.local for sensitive data.
Contributed by: Keoma Wright
- Add GitHubDeploy component to handle build and file preparation
- Create GitHubDeploymentDialog for repository selection and creation
- Update DeployButton to include GitHub deployment option
- Support both new and existing GitHub repositories
- Allow choosing between public and private repositories
- Changed background classes for better visual consistency.
- Simplified the structure of ToolCallsList, enhancing readability and layout.
- Improved button styles for better user interaction and accessibility.
- Removed the `signDlls` option from the `electron-builder.yml` configuration.
- Updated `electron-store` to version 10.1.0 and `electron-builder` to version 26.0.12 in `package.json`. Ensuring compatibility and improved functionality.
- Updated UserMessage to accept a new `parts` prop for handling different message types, including images.
- Refactored image handling to extract and display images from the parts array, ensuring proper rendering of image content.
- Adjusted the layout and styling of the UserMessage component for better visual presentation.
- Introduced a helper function `isModelLikelyFree` to identify models that are free based on their label or name.
- Added a toggle button to filter models, allowing users to view only free models when using the OpenRouter provider.
- Updated the model filtering logic to incorporate the free models filter and adjusted the UI to reflect the count of free models found.
- Reset the free models filter when the provider changes to ensure accurate results.
- Changed the maxTokenAllowed property to use Math.min for limiting the value to a maximum of 16384 tokens, ensuring better control over context window size.
- Introduced a `sanitizeText` function to remove specific HTML elements and content from messages, enhancing the integrity of the streamed text.
- Updated the `streamText` function to utilize `sanitizeText` for both user and assistant messages, ensuring consistent message formatting.
- Adjusted message processing to maintain the structure while applying sanitization.
- Moved the Markdown rendering for content in AssistantMessage to a new position for better structure.
- Updated ToolInvocations component to enhance UI with improved spacing and keyboard shortcut handling for tool execution.
- Added state management for expanded tool details and integrated keyboard shortcuts for approving and rejecting tool calls.
Add MCP integration including:
- New MCP settings tab with server configuration
- Tool invocation UI components
- API endpoints for MCP management
- Integration with chat system for tool execution
- Example configurations
- Introduced a new SolidJS starter template with relevant metadata including description, tags, and GitHub repository link.
- Updated the FrameworkLink component to enhance the hover effect with grayscale transition.
- Replaced multiple SVG icons with updated versions for Angular, Astro, Qwik, React, Remix, Slidev, Svelte, TypeScript, Vite, and Vue, ensuring improved visuals and consistency across the application.
Add LLM error alert functionality to display specific error messages based on API responses. Introduce new LlmErrorAlertType interface for structured error alerts. Update chat components to manage and display LLM error alerts effectively, improving user feedback during error scenarios.
add glowing effect component for tab tiles
improve tab tile appearance with new glow effect
add 'none' log level and simplify log level handling
simplify tab configuration store by removing developer tabs
remove useDebugStatus hook and related debug functionality
remove system info endpoints no longer needed
- 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.
Add MCP integration including:
- New MCP settings tab with server configuration
- Tool invocation UI components
- API endpoints for MCP management
- Integration with chat system for tool execution
- Example configurations
- Introduced a new SolidJS starter template with relevant metadata including description, tags, and GitHub repository link.
- Updated the FrameworkLink component to enhance the hover effect with grayscale transition.
- Replaced multiple SVG icons with updated versions for Angular, Astro, Qwik, React, Remix, Slidev, Svelte, TypeScript, Vite, and Vue, ensuring improved visuals and consistency across the application.
- 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.
Add LLM error alert functionality to display specific error messages based on API responses. Introduce new LlmErrorAlertType interface for structured error alerts. Update chat components to manage and display LLM error alerts effectively, improving user feedback during error scenarios.
add glowing effect component for tab tiles
improve tab tile appearance with new glow effect
add 'none' log level and simplify log level handling
simplify tab configuration store by removing developer tabs
remove useDebugStatus hook and related debug functionality
remove system info endpoints no longer needed