- Add ASCII art brand banner (src/brand.ts)
- Redesign main menu to match mole's UI pattern:
- Numbered items with ➤ arrow cursor (cyan for active, dim for inactive)
- Label + description two-column layout
- Number key hotkeys (1-8) for direct selection
- Letter hotkeys: H for Help, V for Version, Q for Quit
- Footer with controls hint: ↑↓ | Enter | H Help | V Version | Q Quit
- Full-screen redraw using \033[H cursor home
- Clear-screen transition when entering/exiting subcommands
- Keep selectOne/selectMany for other interactive dialogs (file selector,
platform selector) unchanged
- Update menu.ts and selector.ts to use isStdinTTY() and function-based
terminal colors
- Refactor index.ts from 995-line monolith to ~270-line dispatcher that
registers all commands via the CLI parser and delegates to modules
- Add initTTY() call at startup for correct pipe/TTY detection
- Interactive menu expanded to include new commands (explain, review,
changelog, suggest, amend)
Empty commit/PR states no longer auto-return to the menu. Instead, the
user is shown an in-page prompt with a Back option, mirroring the rest
of the CLI: pressing Enter on Back (or ←/backspace) closes the prompt
and returns control to the previous step.
Extract duplicate menu rendering logic from `index.ts` into a new `src/menu.ts` module, providing generic `selectOne` and `selectMany` functions. This reduces code duplication, improves maintainability, and adds consistent UI controls display across the commit flow and platform selection.
Reviewed-on: #3
Add a new `gai pr` subcommand that generates pull request titles and descriptions using AI, then creates the PR via GitHub CLI (`gh`) or Gitea CLI (`tea`). This extends the existing commit-generation system by reusing retry logic and prompt infrastructure, and introduces a `callAI` function that returns raw output (instead of pre-cleaned messages) to support structured PR responses.
Reviewed-on: #2