BMAD-METHOD/tools/cli/lib
Davor Racić fd09349683 feat(cli): complete @clack/prompts migration
Full migration of BMAD CLI installer from legacy terminal libraries
(chalk, ora, boxen, figlet, wrap-ansi, cli-table3, readline) to unified
@clack/prompts v1.0.0 visual system.

Foundation (prompts.js + cli-utils.js):
  - Extended prompts.js wrapper with box, spinner, progress, taskLog,
    path, autocomplete, selectKey, stream, color re-export
  - Refactored cli-utils.js: displayLogo uses box(), sections use note(),
    steps use log.step(), removed boxen/figlet/wrap-ansi/cli-table3

UI orchestration (ui.js):
  - Replaced ~100 console.log+chalk calls with log.*, note(), box()
  - Replaced ora spinner with @clack spinner
  - Module selection: autocompleteMultiselect with locked core module,
    bulleted post-selection display, maxItems for no-scroll

Spinner migration (installer.js):
  - Replaced 40+ ora spinner calls with @clack spinner
  - All spinner.stop() calls include meaningful messages
  - Failure paths use spinner.error() (red cross) instead of stop()

Readline migration (agent/installer.js + config-collector.js):
  - Migrated readline prompts to @clack text/confirm/select
  - Fixed chalk.dim bug (chalk was never imported)
  - Removed chalk from config-collector.js

IDE handlers + modules (7 files):
  - Replaced chalk+ora across all IDE handlers and module manager
  - Fixed options.installer undefined bug in manager.js update()

Cleanup:
  - Removed ora, boxen, figlet, wrap-ansi, cli-table3 from dependencies
  - chalk stays (used outside tools/cli/ scope)
  - Replaced hand-drawn Unicode update box in bmad-cli.js with box()
  - Added process.stdin.setMaxListeners(25) for sequential prompts

Spinner wrapper adds isSpinning state tracking (not native to @clack).
Removed dead groupMultiselect and sortKey sort calls.

Ref: tech-spec-installer-clack-migration-ui-enhancement.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:27:14 +01:00
..
agent feat(cli): complete @clack/prompts migration 2026-02-07 20:27:14 +01:00
activation-builder.js fix: HELP_STEP placeholder not replaced in compiled agents, fix hardcoded path, fix single quote in HELP_STEP (#1437) 2026-01-29 05:58:56 -08:00
agent-analyzer.js feat: add documentation website with Docusaurus build pipeline (#1177) 2025-12-23 23:01:36 +08:00
agent-party-generator.js feat: add documentation website with Docusaurus build pipeline (#1177) 2025-12-23 23:01:36 +08:00
cli-utils.js feat(cli): complete @clack/prompts migration 2026-02-07 20:27:14 +01:00
config.js we only need one yaml lib 2025-12-13 18:35:07 +08:00
file-ops.js feat: add documentation website with Docusaurus build pipeline (#1177) 2025-12-23 23:01:36 +08:00
platform-codes.js docs: radical reduction of documentation scope for v6 beta (#1406) 2026-01-25 14:00:26 -06:00
project-root.js Project Cleanup of Agents Menus, BMB module removal to other repo 2026-01-19 02:04:14 -06:00
prompts.js feat(cli): complete @clack/prompts migration 2026-02-07 20:27:14 +01:00
ui.js feat(cli): complete @clack/prompts migration 2026-02-07 20:27:14 +01:00
xml-handler.js feat: add documentation website with Docusaurus build pipeline (#1177) 2025-12-23 23:01:36 +08:00
xml-to-markdown.js feat: v6.0.0-alpha.0 - the future is now 2025-09-28 23:17:07 -05:00
yaml-format.js we only need one yaml lib 2025-12-13 18:35:07 +08:00
yaml-xml-builder.js Project Cleanup of Agents Menus, BMB module removal to other repo 2026-01-19 02:04:14 -06:00