ripplo 0.0.12 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -31
- package/dist/index.js +190 -251
- package/package.json +7 -7
- package/dist/mcp/index.js +0 -844
package/README.md
CHANGED
|
@@ -4,7 +4,15 @@ CLI for [Ripplo](https://ripplo.ai) — AI-powered end-to-end testing.
|
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### 1. Install the CLI
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
npm install -g ripplo
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or use `npx ripplo` directly.
|
|
14
|
+
|
|
15
|
+
### 2. Authenticate and set up
|
|
8
16
|
|
|
9
17
|
```sh
|
|
10
18
|
npx ripplo
|
|
@@ -12,52 +20,91 @@ npx ripplo
|
|
|
12
20
|
|
|
13
21
|
This will:
|
|
14
22
|
|
|
15
|
-
- Authenticate
|
|
16
|
-
-
|
|
17
|
-
- Scaffold a `.ripplo/` directory
|
|
18
|
-
- Start dev
|
|
23
|
+
- Authenticate via device code flow
|
|
24
|
+
- Let you select a project
|
|
25
|
+
- Scaffold a `.ripplo/` directory with starter files
|
|
26
|
+
- Start the dev dashboard
|
|
19
27
|
|
|
20
|
-
|
|
28
|
+
### 3. Install the Claude Code plugin
|
|
21
29
|
|
|
22
|
-
|
|
30
|
+
In Claude Code, run:
|
|
23
31
|
|
|
24
|
-
|
|
32
|
+
```
|
|
33
|
+
/plugin marketplace add ripplo/claude-plugin
|
|
34
|
+
/plugin install ripplo
|
|
35
|
+
```
|
|
25
36
|
|
|
26
|
-
|
|
37
|
+
The plugin hooks into your agent's workflow to create a tight validation loop — linting workflow specs on every edit, and automatically validating and running all tests before each session ends. Your agent writes deterministic, parallelizable tests that verify your app works end-to-end.
|
|
27
38
|
|
|
28
|
-
**
|
|
39
|
+
**Skills:**
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
| Skill | Description |
|
|
42
|
+
| ---------------------- | ----------------------------------------------------- |
|
|
43
|
+
| `/ripplo:explore` | Crawl your codebase and generate workflow specs |
|
|
44
|
+
| `/ripplo:create` | Create a new workflow spec |
|
|
45
|
+
| `/ripplo:run` | Run workflows in parallel |
|
|
46
|
+
| `/ripplo:debug` | Debug failures using DOM snapshots and network traces |
|
|
47
|
+
| `/ripplo:flake-detect` | Run N parallel executions to detect flaky tests |
|
|
31
48
|
|
|
32
|
-
**
|
|
49
|
+
**Hooks:**
|
|
33
50
|
|
|
34
|
-
|
|
51
|
+
| Hook | What it does |
|
|
52
|
+
| ----------- | --------------------------------------------------------------------------- |
|
|
53
|
+
| Post-edit | Lints workflow specs on every file change — your agent fixes issues in-line |
|
|
54
|
+
| Session end | Validates all workflows, flags unimplemented specs, and runs the full suite |
|
|
35
55
|
|
|
36
|
-
|
|
37
|
-
| ----------------------- | ---------------------------------------------------- |
|
|
38
|
-
| `ripplo` | Launch the interactive dashboard |
|
|
39
|
-
| `ripplo run` | Run workflows from the command line |
|
|
40
|
-
| `ripplo generate-types` | Generate Zod schemas + TS types for precondition API |
|
|
56
|
+
### 4. Add `@ripplo/testing` to your project
|
|
41
57
|
|
|
42
|
-
|
|
58
|
+
```sh
|
|
59
|
+
npm install @ripplo/testing
|
|
60
|
+
```
|
|
43
61
|
|
|
44
|
-
|
|
62
|
+
This is the DSL your `.ripplo/` files use to define workflows and preconditions.
|
|
45
63
|
|
|
46
|
-
|
|
47
|
-
# Run all workflows in parallel
|
|
48
|
-
npx ripplo run
|
|
64
|
+
## How It Works
|
|
49
65
|
|
|
50
|
-
|
|
51
|
-
npx ripplo run login-flow
|
|
66
|
+
**Define tests as code** — Tests are TypeScript files using a typed DSL. Your agent writes them, or you write them by hand. Each test defines its preconditions, starting URL, and interaction steps.
|
|
52
67
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
**Every test gets a clean slate** — Each test defines its own preconditions (fresh user, sample data, permissions). No shared state or ordering dependencies.
|
|
69
|
+
|
|
70
|
+
**Dev mode to cloud** — The dashboard runs tests locally as you develop. When you merge, tests sync and run in the cloud against your deployed environment.
|
|
71
|
+
|
|
72
|
+
**Secure by default** — Every precondition request is cryptographically signed. Test endpoints are gated behind a webhook secret.
|
|
73
|
+
|
|
74
|
+
## Commands
|
|
56
75
|
|
|
57
|
-
|
|
76
|
+
| Command | Description |
|
|
77
|
+
| ---------------------------- | -------------------------------------- |
|
|
78
|
+
| `ripplo` | Launch the interactive dashboard |
|
|
79
|
+
| `ripplo run [slugs..]` | Run tests in parallel |
|
|
80
|
+
| `ripplo lint [slugs..]` | Compile and lint workflows |
|
|
81
|
+
| `ripplo list` | List all tests with status |
|
|
82
|
+
| `ripplo doctor` | Check project health |
|
|
83
|
+
| `ripplo flake-detect <slug>` | Run a test N times to detect flakiness |
|
|
84
|
+
| `ripplo sync` | Sync tests to the dev session |
|
|
58
85
|
|
|
59
|
-
|
|
86
|
+
## Project Structure
|
|
60
87
|
|
|
61
|
-
|
|
88
|
+
After setup, your project will have:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
.ripplo/
|
|
92
|
+
├── ripplo.ts # Config: createRipplo({ projectId, appUrl, ... })
|
|
93
|
+
├── index.ts # Entry point
|
|
94
|
+
├── preconditions.ts # Test data setup/teardown
|
|
95
|
+
└── workflows/ # One file per user flow
|
|
96
|
+
└── example.ts # Starter workflow
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Configuration lives in `ripplo.ts` via `createRipplo()`:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
const ripplo = createRipplo({
|
|
103
|
+
appUrl: "http://localhost:3000",
|
|
104
|
+
preconditionsUrl: "http://localhost:3000/ripplo/preconditions",
|
|
105
|
+
projectId: "your-project-id",
|
|
106
|
+
webhookSecret: process.env["RIPPLO_WEBHOOK_SECRET"] ?? "",
|
|
107
|
+
});
|
|
108
|
+
```
|
|
62
109
|
|
|
63
110
|
Learn more at [ripplo.ai](https://ripplo.ai).
|