diff --git a/tools/installer/core/manifest-generator.js b/tools/installer/core/manifest-generator.js index 477142888..df8484d8b 100644 --- a/tools/installer/core/manifest-generator.js +++ b/tools/installer/core/manifest-generator.js @@ -193,11 +193,13 @@ class ManifestGenerator { } } - // Recurse into subdirectories - for (const entry of entries) { - if (!entry.isDirectory()) continue; - if (entry.name.startsWith('.') || entry.name.startsWith('_')) continue; - await walk(path.join(dir, entry.name)); + // Recurse into subdirectories — but not inside a discovered skill + if (!skillMeta) { + for (const entry of entries) { + if (!entry.isDirectory()) continue; + if (entry.name.startsWith('.') || entry.name.startsWith('_')) continue; + await walk(path.join(dir, entry.name)); + } } }; diff --git a/tools/installer/fs-native.js b/tools/installer/fs-native.js index b6a4abfa5..1d84af98a 100644 --- a/tools/installer/fs-native.js +++ b/tools/installer/fs-native.js @@ -82,7 +82,9 @@ module.exports = { stat: fsp.stat, readdir: fsp.readdir, access: fsp.access, + realpath: fsp.realpath, rename: fsp.rename, + rmdir: fsp.rmdir, unlink: fsp.unlink, chmod: fsp.chmod, mkdir: fsp.mkdir, @@ -103,6 +105,9 @@ module.exports = { existsSync: fs.existsSync.bind(fs), readFileSync: fs.readFileSync.bind(fs), writeFileSync: fs.writeFileSync.bind(fs), + statSync: fs.statSync.bind(fs), + accessSync: fs.accessSync.bind(fs), + readdirSync: fs.readdirSync.bind(fs), createReadStream: fs.createReadStream.bind(fs), pathExistsSync: fs.existsSync.bind(fs),