feat: expand wizard setup flow

This commit is contained in:
Peter Steinberger
2026-01-01 19:14:14 +01:00
parent 850cbfe369
commit a72fdf7c26
15 changed files with 1201 additions and 30 deletions

View File

@@ -41,6 +41,22 @@ If set, CLAWDIS derives defaults (only when you havent set them explicitly):
}
```
### `wizard`
Metadata written by CLI wizards (`onboard`, `configure`, `doctor`, `update`).
```json5
{
wizard: {
lastRunAt: "2026-01-01T00:00:00.000Z",
lastRunVersion: "2.0.0-beta5",
lastRunCommit: "abc1234",
lastRunCommand: "configure",
lastRunMode: "local"
}
}
```
### `logging`
- Default log file: `/tmp/clawdis/clawdis-YYYY-MM-DD.log`

View File

@@ -28,3 +28,5 @@ Full cold-start flow in a clean Linux container:
```bash
scripts/e2e/onboard-docker.sh
```
This script drives the interactive wizard via a pseudo-tty, verifies config/workspace/session files, then starts the gateway and runs `clawdis health`.

View File

@@ -7,16 +7,22 @@ read_when:
# Onboarding Wizard (CLI)
Goal: single interactive flow to set up Clawdis Gateway + workspace + skills on a new machine.
Goal: interactive wizards for first-run onboarding **and** ongoing reconfiguration.
Uses `@clack/prompts` for arrow-key selection and step UX.
Scope: **Local gateway only**. Remote mode is **info-only** (no config writes).
## Entry points
First run:
- `clawdis onboard` (primary)
- `clawdis setup --wizard` (alias)
Ongoing:
- `clawdis configure` (models/providers/skills/gateway/workspace)
- `clawdis doctor` (health + quick fixes)
- `clawdis update` (audit + modernize config defaults)
## Non-interactive mode
`--non-interactive` + flags to skip prompts. `--json` outputs a machine summary.
@@ -64,7 +70,7 @@ Reset uses `trash` (never `rm`).
- WhatsApp: optional `clawdis login` QR flow
- Telegram: bot token (config or env)
- Discord: bot token (config or env)
- Signal: `signal-cli` detection + account config
- Signal: `signal-cli` detection + account config + install option
6) **Daemon install (local only)**
- macOS: LaunchAgent
@@ -104,9 +110,46 @@ Wizard writes:
- `skills.install.nodeManager` (npm | pnpm | bun)
- `skills.entries.<key>.env` / `.apiKey` (if set in skills step)
- `telegram.botToken`, `discord.token`, `signal.*` (if set in providers step)
- `wizard.lastRunAt`, `wizard.lastRunVersion`, `wizard.lastRunCommit`, `wizard.lastRunCommand`, `wizard.lastRunMode`
WhatsApp login writes credentials to `~/.clawdis/credentials/creds.json`.
## Configure / Doctor / Update flows
`clawdis configure` offers a menu of sections:
- Model/auth
- Providers (incl Signal install)
- Gateway + daemon
- Workspace + bootstrap files
- Skills
- Health check (optional at end)
`clawdis doctor`:
- Gateway reachability
- Provider probes
- Skills status
- Quick fixes (start gateway, relink WhatsApp, prompt missing tokens)
`clawdis update`:
- Audit config vs defaults
- Suggest upgrades/changes
- Re-run key steps as needed
Each wizard run updates `wizard.*` metadata.
## Signal CLI install (wizard)
Wizard can install signal-cli from GitHub releases:
- Fetch latest release from `https://github.com/AsamK/signal-cli/releases/latest`
- Download platform asset (Linux native preferred)
- Extract under `~/.clawdis/tools/signal-cli/<version>/`
- Set `signal.cliPath` to the detected `signal-cli` binary
Notes:
- signal-cli requires Java 21 for JVM builds.
- Native builds are available for some platforms; fallback to JVM build if native not found.
- Auto-install is not supported on Windows yet.
## Minimax M2.1 (LM Studio) config snippet
```json5