diff --git a/package-lock.json b/package-lock.json index de5442eb..428a80f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "bmad-method", - "version": "6.0.0-alpha.20", + "version": "6.0.0-alpha.21", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "bmad-method", - "version": "6.0.0-alpha.20", + "version": "6.0.0-alpha.21", "license": "MIT", "dependencies": { "@kayvan/markdown-tree-parser": "^1.6.1", diff --git a/tools/cli/bmad-cli.js b/tools/cli/bmad-cli.js index 53134524..0cba5814 100755 --- a/tools/cli/bmad-cli.js +++ b/tools/cli/bmad-cli.js @@ -2,6 +2,24 @@ const { program } = require('commander'); const path = require('node:path'); const fs = require('node:fs'); +// Fix for stdin issues when running through npm on Windows +// Ensures keyboard interaction works properly with inquirer prompts +if (process.stdin.isTTY) { + try { + process.stdin.resume(); + process.stdin.setEncoding('utf8'); + + // On Windows, explicitly reference the stdin stream to ensure it's properly initialized + if (process.platform === 'win32') { + process.stdin.on('error', () => { + // Ignore stdin errors - they can occur when the terminal is closing + }); + } + } catch { + // Silently ignore - some environments may not support these operations + } +} + // Load package.json from root for version info const packageJson = require('../../package.json'); diff --git a/tools/cli/commands/install.js b/tools/cli/commands/install.js index 6e241610..e83c2e7e 100644 --- a/tools/cli/commands/install.js +++ b/tools/cli/commands/install.js @@ -1,5 +1,6 @@ const chalk = require('chalk'); const path = require('node:path'); +const inquirer = require('inquirer'); const { Installer } = require('../installers/lib/core/installer'); const { UI } = require('../lib/ui'); @@ -65,18 +66,13 @@ module.exports = { console.log(chalk.dim(' • ElevenLabs AI (150+ premium voices)')); console.log(chalk.dim(' • Piper TTS (50+ free voices)\n')); - const readline = require('node:readline'); - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - }); - - await new Promise((resolve) => { - rl.question(chalk.green('Press Enter to start AgentVibes installer...'), () => { - rl.close(); - resolve(); - }); - }); + await inquirer.prompt([ + { + type: 'input', + name: 'continue', + message: chalk.green('Press Enter to start AgentVibes installer...'), + }, + ]); console.log('');