chore: update comments to reference @clack/prompts instead of inquirer
- Update bmad-cli.js comment about CLI prompts - Update config-collector.js JSDoc comments - Rename inquirer variable to choiceUtils in ui.js - Update JSDoc returns and calls documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
224a944540
commit
4ba3a61ec3
|
|
@ -3,7 +3,7 @@ const path = require('node:path');
|
||||||
const fs = require('node:fs');
|
const fs = require('node:fs');
|
||||||
|
|
||||||
// Fix for stdin issues when running through npm on Windows
|
// Fix for stdin issues when running through npm on Windows
|
||||||
// Ensures keyboard interaction works properly with inquirer prompts
|
// Ensures keyboard interaction works properly with CLI prompts
|
||||||
if (process.stdin.isTTY) {
|
if (process.stdin.isTTY) {
|
||||||
try {
|
try {
|
||||||
process.stdin.resume();
|
process.stdin.resume();
|
||||||
|
|
|
||||||
|
|
@ -835,7 +835,7 @@ class ConfigCollector {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build an inquirer question from a config item
|
* Build a prompt question from a config item
|
||||||
* @param {string} moduleName - Module name
|
* @param {string} moduleName - Module name
|
||||||
* @param {string} key - Config key
|
* @param {string} key - Config key
|
||||||
* @param {Object} item - Config item definition
|
* @param {Object} item - Config item definition
|
||||||
|
|
@ -997,7 +997,7 @@ class ConfigCollector {
|
||||||
message: message,
|
message: message,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set default - if it's dynamic, use a function that inquirer will evaluate with current answers
|
// Set default - if it's dynamic, use a function that the prompt will evaluate with current answers
|
||||||
// But if we have an existing value, always use that instead
|
// But if we have an existing value, always use that instead
|
||||||
if (existingValue !== null && existingValue !== undefined && questionType !== 'list') {
|
if (existingValue !== null && existingValue !== undefined && questionType !== 'list') {
|
||||||
question.default = existingValue;
|
question.default = existingValue;
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ class Separator {
|
||||||
type = 'separator';
|
type = 'separator';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Provide a compatible interface
|
// Separator for choice lists (compatible interface)
|
||||||
const inquirer = { Separator };
|
const choiceUtils = { Separator };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UI utilities for the installer
|
* UI utilities for the installer
|
||||||
|
|
@ -448,7 +448,7 @@ class UI {
|
||||||
|
|
||||||
// First, add previously configured IDEs at the top, marked with ✅
|
// First, add previously configured IDEs at the top, marked with ✅
|
||||||
if (configuredIdes.length > 0) {
|
if (configuredIdes.length > 0) {
|
||||||
ideChoices.push(new inquirer.Separator('── Previously Configured ──'));
|
ideChoices.push(new choiceUtils.Separator('── Previously Configured ──'));
|
||||||
for (const ideValue of configuredIdes) {
|
for (const ideValue of configuredIdes) {
|
||||||
// Skip empty or invalid IDE values
|
// Skip empty or invalid IDE values
|
||||||
if (!ideValue || typeof ideValue !== 'string') {
|
if (!ideValue || typeof ideValue !== 'string') {
|
||||||
|
|
@ -477,7 +477,7 @@ class UI {
|
||||||
// Add preferred tools (excluding already processed)
|
// Add preferred tools (excluding already processed)
|
||||||
const remainingPreferred = preferredIdes.filter((ide) => !processedIdes.has(ide.value));
|
const remainingPreferred = preferredIdes.filter((ide) => !processedIdes.has(ide.value));
|
||||||
if (remainingPreferred.length > 0) {
|
if (remainingPreferred.length > 0) {
|
||||||
ideChoices.push(new inquirer.Separator('── Recommended Tools ──'));
|
ideChoices.push(new choiceUtils.Separator('── Recommended Tools ──'));
|
||||||
for (const ide of remainingPreferred) {
|
for (const ide of remainingPreferred) {
|
||||||
ideChoices.push({
|
ideChoices.push({
|
||||||
name: `${ide.name} ⭐`,
|
name: `${ide.name} ⭐`,
|
||||||
|
|
@ -491,7 +491,7 @@ class UI {
|
||||||
// Add other tools (excluding already processed)
|
// Add other tools (excluding already processed)
|
||||||
const remainingOther = otherIdes.filter((ide) => !processedIdes.has(ide.value));
|
const remainingOther = otherIdes.filter((ide) => !processedIdes.has(ide.value));
|
||||||
if (remainingOther.length > 0) {
|
if (remainingOther.length > 0) {
|
||||||
ideChoices.push(new inquirer.Separator('── Additional Tools ──'));
|
ideChoices.push(new choiceUtils.Separator('── Additional Tools ──'));
|
||||||
for (const ide of remainingOther) {
|
for (const ide of remainingOther) {
|
||||||
ideChoices.push({
|
ideChoices.push({
|
||||||
name: ide.name,
|
name: ide.name,
|
||||||
|
|
@ -685,7 +685,7 @@ class UI {
|
||||||
* Get module choices for selection
|
* Get module choices for selection
|
||||||
* @param {Set} installedModuleIds - Currently installed module IDs
|
* @param {Set} installedModuleIds - Currently installed module IDs
|
||||||
* @param {Object} customContentConfig - Custom content configuration
|
* @param {Object} customContentConfig - Custom content configuration
|
||||||
* @returns {Array} Module choices for inquirer
|
* @returns {Array} Module choices for prompt
|
||||||
*/
|
*/
|
||||||
async getModuleChoices(installedModuleIds, customContentConfig = null) {
|
async getModuleChoices(installedModuleIds, customContentConfig = null) {
|
||||||
const moduleChoices = [];
|
const moduleChoices = [];
|
||||||
|
|
@ -742,9 +742,9 @@ class UI {
|
||||||
if (allCustomModules.length > 0) {
|
if (allCustomModules.length > 0) {
|
||||||
// Add separator for custom content, all custom modules, and official content separator
|
// Add separator for custom content, all custom modules, and official content separator
|
||||||
moduleChoices.push(
|
moduleChoices.push(
|
||||||
new inquirer.Separator('── Custom Content ──'),
|
new choiceUtils.Separator('── Custom Content ──'),
|
||||||
...allCustomModules,
|
...allCustomModules,
|
||||||
new inquirer.Separator('── Official Content ──'),
|
new choiceUtils.Separator('── Official Content ──'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -785,7 +785,7 @@ class UI {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prompt for directory selection
|
* Prompt for directory selection
|
||||||
* @returns {Object} Directory answer from inquirer
|
* @returns {Object} Directory answer from prompt
|
||||||
*/
|
*/
|
||||||
async promptForDirectory() {
|
async promptForDirectory() {
|
||||||
// Use sync validation because @clack/prompts doesn't support async validate
|
// Use sync validation because @clack/prompts doesn't support async validate
|
||||||
|
|
@ -1069,7 +1069,7 @@ class UI {
|
||||||
* @sideeffects None - pure user input collection, no files written
|
* @sideeffects None - pure user input collection, no files written
|
||||||
* @edgecases Shows warning if user enables TTS but AgentVibes not detected
|
* @edgecases Shows warning if user enables TTS but AgentVibes not detected
|
||||||
* @calledby promptInstall() during installation flow, after core config, before IDE selection
|
* @calledby promptInstall() during installation flow, after core config, before IDE selection
|
||||||
* @calls checkAgentVibesInstalled(), inquirer.prompt(), chalk.green/yellow/dim()
|
* @calls checkAgentVibesInstalled(), prompts.select(), chalk.green/yellow/dim()
|
||||||
*
|
*
|
||||||
* AI NOTE: This prompt is strategically positioned in installation flow:
|
* AI NOTE: This prompt is strategically positioned in installation flow:
|
||||||
* - AFTER core config (user_name, etc)
|
* - AFTER core config (user_name, etc)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue