Redesign wizard UI with gum (charmbracelet)

- Bootstrap gum automatically on first run (Arch/Debian/RHEL/Fedora/SUSE)
- utils.sh: replace all bash color helpers with gum equivalents
  - gum input for text prompts (with value pre-fill for defaults)
  - gum choose for selection menus
  - gum confirm for yes/no
  - gum spin for long-running operations
  - gum style/log for output (catppuccin mocha palette)
  - gum style for banners and summary box
- core.sh: spinner on git clone/pull
- workflow.sh: spinner on git clone
- prereqs.sh: spinner on package installs
- wizard.sh: double-border welcome banner, rounded summary box,
  success banner with next-steps panel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Eli 2026-03-09 13:02:42 +01:00
commit 699087f08c
6 changed files with 267 additions and 243 deletions

View file

@ -9,12 +9,11 @@ setup_core() {
header "Context Studio Core"
if [[ -d "$CS_CORE_DIR/.git" ]]; then
success "Core already installed at $CS_CORE_DIR"
ask_yn _update "Update core to latest?" "n"
success "Core installed at $CS_CORE_DIR"
ask_yn _update "Pull latest updates?" "n"
if [[ "$_update" == "y" ]]; then
info "Pulling latest core..."
git -C "$CS_CORE_DIR" pull --ff-only \
|| warn "Pull failed — continuing with existing version"
spin "Updating core..." git -C "$CS_CORE_DIR" pull --ff-only \
|| warn "Pull failed — continuing with current version."
success "Core updated"
fi
return 0
@ -22,7 +21,8 @@ setup_core() {
info "Cloning context-studio-core → $CS_CORE_DIR"
mkdir -p "$CS_HOME"
git clone "$CS_CORE_REPO" "$CS_CORE_DIR" \
spin "Cloning context-studio-core..." \
git clone "$CS_CORE_REPO" "$CS_CORE_DIR" \
|| die "Failed to clone context-studio-core. Check your SSH key and network."
success "Core installed at $CS_CORE_DIR"
}