fix: add text sanitization function to clean user and assistant messages of new parts object

- 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.
This commit is contained in:
KevIsDev
2025-07-16 02:29:51 +01:00
parent 2b40b8af52
commit 1af54ecda9
4 changed files with 93 additions and 119 deletions

View File

@@ -597,7 +597,11 @@ export class FilesStore {
// Set up file watcher
webcontainer.internal.watchPaths(
{ include: [`${WORK_DIR}/**`], exclude: ['**/node_modules', '.git'], includeContent: true },
{
include: [`${WORK_DIR}/**`],
exclude: ['**/node_modules', '.git', '**/package-lock.json'],
includeContent: true,
},
bufferWatchEvents(100, this.#processEventBuffer.bind(this)),
);

View File

@@ -151,45 +151,6 @@ export class PreviewsStore {
this._broadcastStorageSync();
});
try {
// Watch for file changes
webcontainer.internal.watchPaths(
{
// Only watch specific file types that affect the preview
include: ['**/*.html', '**/*.css', '**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx', '**/*.json'],
exclude: ['**/node_modules/**', '**/.git/**', '**/dist/**', '**/build/**', '**/coverage/**'],
},
async (_events) => {
const previews = this.previews.get();
for (const preview of previews) {
const previewId = this.getPreviewId(preview.baseUrl);
if (previewId) {
this.broadcastFileChange(previewId);
}
}
},
);
// Watch for DOM changes that might affect storage
if (typeof window !== 'undefined') {
const observer = new MutationObserver((_mutations) => {
// Broadcast storage changes when DOM changes
this._broadcastStorageSync();
});
observer.observe(document.body, {
childList: true,
subtree: true,
characterData: true,
attributes: true,
});
}
} catch (error) {
console.error('[Preview] Error setting up watchers:', error);
}
// Listen for port events
webcontainer.on('port', (port, type, url) => {
let previewInfo = this.#availablePreviews.get(port);