# DevForgeAI Installation Wizard (v3)

Rendering and presentation modules for the v3 declarative installer. The v2
imperative wizard (`install-wizard.js`, `prompt-service.js`, `signal-handler.js`,
`config.js`) and its `--legacy` flag were removed in F1 (#279); the v3
declarative engine (`src/cli/v3/`) is the sole install path.

## Modules

### screen-renderer.js
Pure rendering substrate for the rich wizard. Caps-injected builders
(`{color, unicode}`) for banners, step footers, success blocks, box panels,
next-steps, error/conflict/SIGINT recovery screens, and `deriveCaps()`.

### input-screens.js
Interactive input steps (welcome, directory, project name, existing-install
detection) plus `isInteractiveTTY()`. TTY-only; skipped in silent mode.

### recovery-screens.js / status-screens.js / help-renderer.js
Recovery/error screens, status/SBOM/JSON layouts, and the curated `install`
help text (ordered sections + EXAMPLES + EXIT CODES).

### preflight-summary.js / heartbeat-service.js
Pre-flight plan summary rendering and the long-running-operation heartbeat.

### ProgressService (progress-service.js)
Visual progress indicators using Ora (spinners) and CLI-Progress (progress
bars). Injected into `src/cli/emit/interactive-emitter.js`.

**Methods:**
- `startSpinner(text)` / `updateSpinner(text)` / `stopSpinner(success, text)`
- `startProgressBar(total, label)` / `updateProgressBar(current)` / `stopProgressBar()`

### OutputFormatter (output-formatter.js)
Color-coded terminal output using Chalk. Used by the interactive emitter.

**Methods:**
- `success(message)` - Green output with ✓ symbol
- `warning(message)` - Yellow output with ⚠ symbol
- `error(message)` - Red output with ✗ symbol
- `info(message)` - Blue/info output

## Environment Variables

| Variable | Description |
|----------|-------------|
| `NO_COLOR` | Disables color output |
| `TERM=dumb` | Uses ASCII fallback symbols |

## Dependencies

- `inquirer@8.2.6` - Interactive prompts (CommonJS)
- `ora@5.4.1` - Spinners (CommonJS)
- `cli-progress@3.12.0` - Progress bars
- `chalk@4.1.2` - Colors (CommonJS)
- `commander@11.0.0` - CLI parsing

See ADR-006 for ESM/CJS compatibility decisions.
