diff --git a/scripts/prepare-resources.cjs b/scripts/prepare-resources.cjs index 1e7924a..9450019 100644 --- a/scripts/prepare-resources.cjs +++ b/scripts/prepare-resources.cjs @@ -2,7 +2,8 @@ const path = require('path'); const projectRoot = path.resolve(__dirname, '..'); -const targetDir = path.resolve(projectRoot, 'src/backend/bundled_resources'); +const backendDir = path.resolve(projectRoot, 'src/backend'); +const resTargetDir = path.resolve(backendDir, 'resources'); function copyRecursiveSync(src, dest) { const stats = fs.statSync(src); @@ -18,31 +19,49 @@ } } -// Ensure target directory exists -if (fs.existsSync(targetDir)) { - fs.rmSync(targetDir, { recursive: true, force: true }); +// Clean and recreate target directories +if (fs.existsSync(resTargetDir)) { + fs.rmSync(resTargetDir, { recursive: true, force: true }); } -fs.mkdirSync(targetDir, { recursive: true }); +fs.mkdirSync(resTargetDir, { recursive: true }); -// 1. Copy DLLs from bin/ to targetDir (flat) +// 1. Copy DLLs from bin/ to backend/ (flat) - These go to the APP ROOT in MSI const binDir = path.join(projectRoot, 'bin'); if (fs.existsSync(binDir)) { fs.readdirSync(binDir).forEach(file => { if (file.endsWith('.dll')) { const src = path.join(binDir, file); - const dest = path.join(targetDir, file); + const dest = path.join(backendDir, file); console.log(`Copying ${src} to ${dest}`); fs.copyFileSync(src, dest); } }); } -// 2. Copy everything from resources/ to targetDir (preserving structure) -const resDir = path.join(projectRoot, 'resources'); -if (fs.existsSync(resDir)) { - fs.readdirSync(resDir).forEach(child => { - const src = path.join(resDir, child); - const dest = path.join(targetDir, child); +// 2. Copy critical JSON files from root to resources/ +['mcp.json', 'config.json'].forEach(file => { + const src = path.join(projectRoot, file); + if (fs.existsSync(src)) { + const dest = path.join(resTargetDir, file); + console.log(`Copying ${src} to ${dest}`); + fs.copyFileSync(src, dest); + } +}); + +// 3. Copy models/ to resources/models/ +const modelsDir = path.join(projectRoot, 'models'); +if (fs.existsSync(modelsDir)) { + const dest = path.join(resTargetDir, 'models'); + console.log(`Copying ${modelsDir} to ${dest}`); + copyRecursiveSync(modelsDir, dest); +} + +// 4. Copy everything from resources/ to backend/resources/ (preserving structure) +const resSrcDir = path.join(projectRoot, 'resources'); +if (fs.existsSync(resSrcDir)) { + fs.readdirSync(resSrcDir).forEach(child => { + const src = path.join(resSrcDir, child); + const dest = path.join(resTargetDir, child); console.log(`Copying ${src} to ${dest}`); copyRecursiveSync(src, dest); }); diff --git a/src/backend/tauri.conf.json b/src/backend/tauri.conf.json index ce0fd96..be1ced2 100644 --- a/src/backend/tauri.conf.json +++ b/src/backend/tauri.conf.json @@ -28,7 +28,7 @@ "active": true, "targets": "all", "externalBin": ["../../bin/llama-server"], - "resources": ["bundled_resources/*"], + "resources": ["resources/**/*", "*.dll"], "icon": [ "../../resources/icons/32x32.png", "../../resources/icons/128x128.png",