feat: expand wizard setup flow
This commit is contained in:
@@ -41,6 +41,22 @@ If set, CLAWDIS derives defaults (only when you haven’t 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`
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user