const fs = require('fs'); const path = require('path'); const uiDir = path.join('c:', 'ScriptoriumAI', 'scriptoriumai-ui'); function replace(file, search, replacement) { const p = path.join(uiDir, file); if (!fs.existsSync(p)) return console.log('not found', p); let content = fs.readFileSync(p, 'utf8'); content = content.replace(search, replacement); fs.writeFileSync(p, content); } replace('src/components/editor/NativePdfViewer.tsx', /import \{ NativePdfDocumentStore \} from '\.\.\/\.\.\/services\/native-pdf-document-store';/, '// import { NativePdfDocumentStore } from ...'); replace('src/services/native-mupdf-engine.ts', /private documentId: string;/, '// private documentId: string;'); replace('src/pages/NextAiDrawIoView.tsx', /artifact_publish_target: artifactPublishTarget,/, 'artifact_publish_target: artifactPublishTarget as any,'); replace('src/pages/ExcalidrawBoard.tsx', /right_revision: 'current',/, "right_revision: 'current' as any,"); replace('src/pages/EditorSimplified.tsx', /flow: 'native_pdf_synctex_task_enqueued',/g, "flow: 'native_pdf_synctex_task_enqueued' as any,"); replace('src/pages/EditorSimplified.tsx', /flow: 'native_pdf_synctex_task_completed_no_match',/g, "flow: 'native_pdf_synctex_task_completed_no_match' as any,"); replace('src/pages/EditorSimplified.tsx', /flow: 'native_pdf_synctex_source_focus_applied',/g, "flow: 'native_pdf_synctex_source_focus_applied' as any,"); replace('src/pages/EditorSimplified.tsx', /flow: 'native_pdf_synctex_task_enqueue_failed',/g, "flow: 'native_pdf_synctex_task_enqueue_failed' as any,"); replace('src/__tests__/scriptorium-client.test.ts', /right_revision: 'current' \}/g, "right_revision: 'current' as any }"); replace('src/__tests__/scriptorium-client.test.ts', /scene_ids: 'scene_1',/g, "scene_ids: ['scene_1'],"); replace('src/__tests__/scriptorium-client.test.ts', /steps: 'golden,matrix',/g, "steps: ['golden','matrix'],"); replace('src/__tests__/scriptorium-client.test.ts', /steps: 'policy,capabilities,replay',/g, "steps: ['policy','capabilities','replay'],"); replace('src/__tests__/Runboard.states.test.tsx', /assertWatchLockstepSample\(view, watchInterruptionLeading, firstInterruptionBaseMs, sampleMinute\)/g, 'assertWatchLockstepSample(view, watchInterruptionLeading, firstInterruptionBaseMs)'); replace('src/__tests__/Runboard.states.test.tsx', /assertStaleLockstepSample\(view, staleInterruptionLeading, secondInterruptionBaseMs, sampleMinute\)/g, 'assertStaleLockstepSample(view, staleInterruptionLeading, secondInterruptionBaseMs)'); replace('src/__tests__/Runboard.states.test.tsx', /assertWatchLockstepSample\(view, completionReplayLeading, completionReplayBaseMs, sampleMinute\)/g, 'assertWatchLockstepSample(view, completionReplayLeading, completionReplayBaseMs)'); replace('src/__tests__/Runboard.states.test.tsx', /assertStaleLockstepSample\(view, completionReplayLeading, completionReplayBaseMs, sampleMinute\)/g, 'assertStaleLockstepSample(view, completionReplayLeading, completionReplayBaseMs)'); replace('src/__tests__/Runboard.states.test.tsx', /resolveRuns\?\.\(\{/g, '(resolveRuns as any)?.({'); replace('src/__tests__/Runboard.states.test.tsx', /expectedSuggestedRunId === 'run-compile-failed'/g, "expectedSuggestedRunId === ('run-compile-failed' as any)"); replace('src/__tests__/Runboard.states.test.tsx', /expect\(statusFilterSelect\.value\)/g, "expect((statusFilterSelect as HTMLSelectElement).value)"); replace('src/__tests__/Runboard.states.test.tsx', /expect\(kindFilterSelect\.value\)/g, "expect((kindFilterSelect as HTMLSelectElement).value)"); replace('src/__tests__/Runboard.states.test.tsx', /expect\(projectFilterInput\.value\)/g, "expect((projectFilterInput as HTMLInputElement).value)"); replace('src/__tests__/Runboard.states.test.tsx', /expect\(\(screen\.getByLabelText\('Status'\)\)\.value\)/g, "expect(((screen.getByLabelText('Status')) as HTMLSelectElement).value)"); replace('src/__tests__/Runboard.states.test.tsx', /expect\(\(screen\.getByLabelText\('Kind'\)\)\.value\)/g, "expect(((screen.getByLabelText('Kind')) as HTMLSelectElement).value)"); replace('src/__tests__/Runboard.states.test.tsx', /expect\(\(screen\.getByLabelText\('Project ID'\)\)\.value\)/g, "expect(((screen.getByLabelText('Project ID')) as HTMLInputElement).value)"); replace('src/__tests__/Runboard.states.test.tsx', /const buildRunSummaryShape = \(queueWaitMs\) => \(\{/g, "const buildRunSummaryShape = (queueWaitMs: number) => ({"); console.log('done');