Skip to content

feat: integrate bijou component library into CLI formatting layer #298

@flyingrobots

Description

@flyingrobots

Summary

Replace raw chalk + figures string concatenation in src/cli/format.js with the @flyingrobots/bijou component library for structured, themed terminal output.

Motivation

The current CLI formatting is functional but plain — hand-rolled string concatenation producing flat text output. The bijou package family provides boxes, tables, badges, alerts, progress bars, theming, and automatic graceful degradation (interactive → static → pipe → accessible).

Scope

File Action Purpose
src/cli/ui.js CREATE Bijou context init + custom theme + styled helpers
src/cli/format.js REWRITE Replace chalk/figures with bijou components
bin/git-mind.js EDIT Call initUI() at startup
test/format.test.js CREATE Unit tests for rewritten format functions

What stays the same

  • All --json output (schema-validated contracts, untouched)
  • All domain logic (src/*.js — zero changes)
  • All existing tests pass
  • Pipe mode works (bijou auto-detects and strips ANSI)
  • NO_COLOR respected (bijou handles natively)

Components used

  • alert() for success/error/info/warning messages
  • headerBox() for section headers
  • table() for count/diff tables
  • progressBar() for progress view
  • badge() for status indicators and tags
  • styled() + custom theme for consistent color tokens
  • separator() for dividers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions