feat: add regolith onboard CLI wizard with daemon installation
Some checks failed
Update token count / update-tokens (push) Has been cancelled

- Interactive setup wizard: deps check, env config, WhatsApp auth, daemon install, health check
- CLI entry point via yargs with bin registration (regolith onboard)
- Flags: --install-daemon, --non-interactive, --pairing-code, --json, --skip-*
- launchd (macOS) and systemd (Linux) service installation
- Refactored whatsapp-auth.ts to export authenticate() for programmatic use
- 72 tests across 6 test files
- Updated README.md and CLAUDE.md with onboard CLI docs
This commit is contained in:
2026-02-19 14:05:18 -05:00
parent 6c1c908fce
commit 4b2b22d044
20 changed files with 2981 additions and 164 deletions

View File

@@ -10,6 +10,11 @@ Single Node.js process that connects to WhatsApp and/or Discord, routes messages
| File | Purpose |
|------|---------|
| `src/cli/index.ts` | CLI entry point (`regolith onboard`) |
| `src/cli/wizard-runner.ts` | Onboard wizard step orchestrator |
| `src/cli/steps/*.ts` | Individual wizard steps (deps, env, whatsapp, daemon, health) |
| `src/cli/display.ts` | Progress indicators and summary output |
| `src/cli/types.ts` | Wizard types (WizardFlags, StepResult, WizardContext) |
| `src/index.ts` | Orchestrator: multi-channel setup, state, message loop, agent invocation |
| `src/channels/whatsapp.ts` | WhatsApp connection, auth, send/receive |
| `src/channels/discord.ts` | Discord bot connection, mention handling, attachments, reply context |
@@ -32,11 +37,22 @@ Single Node.js process that connects to WhatsApp and/or Discord, routes messages
| `ASSISTANT_NAME` | Andy | Trigger word for the bot |
| `DISCORD_BOT_TOKEN` | (empty) | Discord bot token; set to enable Discord |
| `DISCORD_ONLY` | false | Skip WhatsApp when true |
| `AGENT_BACKEND` | container | Agent backend: "container" or "opencode" |
| `OPENCODE_MODE` | cli | OpenCode mode: "cli" or "sdk" |
| `OPENCODE_MODEL` | (unset) | Model name for OpenCode |
| `OPENCODE_TIMEOUT` | 120 | Timeout in seconds |
| `OPENCODE_SESSION_TTL_HOURS` | 24 | Session TTL in hours |
## Onboard CLI
```bash
regolith onboard # Interactive setup wizard
regolith onboard --install-daemon # Include daemon installation
regolith onboard --non-interactive # Use defaults, no prompts
regolith onboard --json # Output JSON summary
regolith onboard --skip-deps --skip-whatsapp # Skip specific steps
```
## Skills
| Skill | When to Use |
@@ -52,4 +68,5 @@ npm run dev # Run with hot reload
npm run build # Compile TypeScript
npm test # Run tests
npm run typecheck # Type check without emitting
regolith onboard # Run the setup wizard
```