feat: add empty IDE selection warning and promote Antigravity to recommended

- Add persistent warning loop when no tools selected in installer
- Users must press spacebar to select, not just highlight
- Red warning explains the issue and offers to go back
- Only way to proceed without tools is explicit "No" confirmation
- Promote Google Antigravity to preferred/recommended IDE section
This commit is contained in:
Brian Madison 2025-11-19 22:12:45 -06:00
parent 09533e4abb
commit a6f089cfd2
2 changed files with 46 additions and 10 deletions

View File

@ -20,7 +20,7 @@ const { getAgentsFromBmad, getAgentsFromDir } = require('./shared/bmad-artifacts
*/
class AntigravitySetup extends BaseIdeSetup {
constructor() {
super('antigravity', 'Google Antigravity', false);
super('antigravity', 'Google Antigravity', true);
this.configDir = '.agent';
this.workflowsDir = 'workflows';
}

View File

@ -201,7 +201,12 @@ class UI {
CLIUtils.displaySection('Tool Integration', 'Select AI coding assistants and IDEs to configure');
const answers = await inquirer.prompt([
let answers;
let userConfirmedNoTools = false;
// Loop until user selects at least one tool OR explicitly confirms no tools
while (!userConfirmedNoTools) {
answers = await inquirer.prompt([
{
type: 'checkbox',
name: 'ides',
@ -211,6 +216,37 @@ class UI {
},
]);
// If tools were selected, we're done
if (answers.ides && answers.ides.length > 0) {
break;
}
// Warn that no tools were selected - users often miss the spacebar requirement
console.log();
console.log(chalk.red.bold('⚠️ WARNING: No tools were selected!'));
console.log(chalk.red(' You must press SPACEBAR to select items, then ENTER to confirm.'));
console.log(chalk.red(' Simply highlighting an item does NOT select it.'));
console.log();
const { goBack } = await inquirer.prompt([
{
type: 'confirm',
name: 'goBack',
message: chalk.yellow('Would you like to go back and select at least one tool?'),
default: true,
},
]);
if (goBack) {
// Re-display the section header before looping back
console.log();
CLIUtils.displaySection('Tool Integration', 'Select AI coding assistants and IDEs to configure');
} else {
// User explicitly chose to proceed without tools
userConfirmedNoTools = true;
}
}
return {
ides: answers.ides || [],
skipIde: !answers.ides || answers.ides.length === 0,