diff --git a/tools/installer/lib/installer.js b/tools/installer/lib/installer.js index d04830d7..f988575b 100644 --- a/tools/installer/lib/installer.js +++ b/tools/installer/lib/installer.js @@ -1963,7 +1963,7 @@ class Installer { async findInstallation() { // Look for .bmad-core in current directory or parent directories - let currentDir = process.cwd(); + let currentDir = process.env.INIT_CWD || process.cwd(); while (currentDir !== path.dirname(currentDir)) { const bmadDir = path.join(currentDir, '.bmad-core'); @@ -1977,10 +1977,13 @@ class Installer { } // Also check if we're inside a .bmad-core directory - if (path.basename(process.cwd()) === '.bmad-core') { - const manifestPath = path.join(process.cwd(), 'install-manifest.yaml'); + if (path.basename(process.env.INIT_CWD || process.cwd()) === '.bmad-core') { + const manifestPath = path.join( + process.env.INIT_CWD || process.cwd(), + 'install-manifest.yaml', + ); if (await fileManager.pathExists(manifestPath)) { - return path.dirname(process.cwd()); // Return parent directory + return path.dirname(process.env.INIT_CWD || process.cwd()); // Return parent directory } } @@ -2001,7 +2004,7 @@ class Installer { const child = spawn('node', [flattenerPath, ...arguments_], { stdio: 'inherit', - cwd: process.cwd(), + cwd: process.env.INIT_CWD || process.cwd(), }); child.on('exit', (code) => {