vibeview 0.25.0 → 0.27.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/dist/{chunk-GEKYHEWU.js → chunk-46X7UN6Y.js} +272 -199
- package/dist/{chunk-RFFCCPGZ.js → chunk-U7FCGMWG.js} +24 -4
- package/dist/cli.js +83 -60
- package/dist/{server-6EUBLXKE.js → server-XJREB7KU.js} +8 -7
- package/dist/{upload-app-E32EZXYQ.js → upload-app-QUUXKNR2.js} +1 -1
- package/package.json +1 -1
- package/skills/vibeview-agent/SKILL.md +36 -17
|
@@ -38,10 +38,17 @@ https://vibeview.io/docs/preparing-your-build.
|
|
|
38
38
|
```
|
|
39
39
|
2. Start Metro in the React Native project (`yarn start` or equivalent) and
|
|
40
40
|
leave it running.
|
|
41
|
-
3. Start a dev session in the background and get structured output
|
|
41
|
+
3. Start a dev session in the background and get structured output. No
|
|
42
|
+
`vibeview.json` yet in this project (first run here)? Pass `--platform`
|
|
43
|
+
and `--app` explicitly — non-interactive runs never prompt, so both must
|
|
44
|
+
be given up front (`--app` is `app_id` from step 1's upload output):
|
|
42
45
|
```bash
|
|
43
|
-
vibeview dev --detach --json
|
|
46
|
+
vibeview dev --platform ios --app <app_id> --detach --json
|
|
44
47
|
```
|
|
48
|
+
Once `vibeview.json` exists (this run or an earlier one), a bare
|
|
49
|
+
`vibeview dev --detach --json` reruns the same platform/app. A
|
|
50
|
+
`{"event":"error","code":"config_required",...}` line names exactly what's
|
|
51
|
+
still missing (usually `--platform` or `--app`) — pass it and retry.
|
|
45
52
|
4. Parse the `session_ready` line from stdout:
|
|
46
53
|
```json
|
|
47
54
|
{"event":"session_ready","session_id":"...","url":"...","pid":1234}
|
|
@@ -127,6 +134,9 @@ it rather than letting it appear unexplained in their `git status`.
|
|
|
127
134
|
```bash
|
|
128
135
|
vibeview scroll-to "Delete account" --session <id>
|
|
129
136
|
```
|
|
137
|
+
A `scroll-to` that never finds its text, or a `type` whose field does not
|
|
138
|
+
end up holding the text, prints `error` and exits 1 — check the reason
|
|
139
|
+
line and the screen before retrying.
|
|
130
140
|
- **Precise two-point gestures** (sliders, drag-and-drop reorder, map
|
|
131
141
|
panning) need `drag` — `swipe`/`scroll` are direction-only and can't
|
|
132
142
|
express them. Each end is independently a ref or `x,y`:
|
|
@@ -156,20 +166,29 @@ it rather than letting it appear unexplained in their `git status`.
|
|
|
156
166
|
(`dpad_up`/`dpad_down`/`dpad_left`/`dpad_right`/`dpad_center`), or move
|
|
157
167
|
focus directly with `tap-focused` (moves focus AND activates) / `focus`
|
|
158
168
|
(moves focus only, no activation).
|
|
159
|
-
- **
|
|
160
|
-
`
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
169
|
+
- **Foldables**: any model `vibeview list-devices --models` (MCP:
|
|
170
|
+
`list_device_models`) marks form factor `foldable` — the iPhone Duo,
|
|
171
|
+
Android foldables such as the Pixel 9 Pro Fold. Start on one by its exact
|
|
172
|
+
model name from that list, e.g.
|
|
173
|
+
`vibeview dev --detach --json --model "iPhone Duo"` or
|
|
174
|
+
`vibeview dev --platform android --detach --json --model "Pixel 9 Pro Fold"`
|
|
175
|
+
(MCP: `dev_start` with `model`). It starts closed, on the cover screen. Fold with a preset
|
|
176
|
+
or an exact hinge angle, and rotate:
|
|
164
177
|
```bash
|
|
165
178
|
vibeview set-posture open --session <id> # closed | partial | open
|
|
166
179
|
vibeview set-posture --angle 75 --session <id> # 0 (shut) to 180 (flat)
|
|
167
|
-
vibeview rotate --session <id> # quarter turn clockwise
|
|
168
|
-
vibeview rotate --degrees 270 --session <id> # quarter turn back (180: half)
|
|
180
|
+
vibeview rotate --session <id> # Duo: quarter turn clockwise
|
|
181
|
+
vibeview rotate --degrees 270 --session <id> # Duo: quarter turn back (180: half)
|
|
169
182
|
```
|
|
170
183
|
Each response says where the device ended up — posture, angle and which
|
|
171
|
-
screen is lit (`cover` or `inner`; the device decides — a small
|
|
172
|
-
keep the inner screen lit on the way down), or the new
|
|
184
|
+
screen is lit (`cover` or `inner`; the device decides — on the Duo a small
|
|
185
|
+
angle can keep the inner screen lit on the way down), or the new
|
|
186
|
+
orientation. The posture names come from each device's own angle ranges,
|
|
187
|
+
so trust the reported `posture` over the angle you asked for: the Duo
|
|
188
|
+
reads 120-169 as `partial`, 170 up as `open`, and 1-119 by direction of
|
|
189
|
+
travel; an Android foldable uses its own ranges (the Pixel 9 Pro Fold: below
|
|
190
|
+
30 `closed`, 30-149 `partial`, 150 up `open`) and its inner screen whenever
|
|
191
|
+
it is not closed. An Android foldable rotates like a phone. Folding
|
|
173
192
|
switches screens of different sizes and rotating turns the picture, so run
|
|
174
193
|
`ui-tree` afterwards — old refs are stale. On other phones and tablets
|
|
175
194
|
`rotate` toggles portrait/landscape (only 90 is accepted); TV devices don't
|
|
@@ -231,20 +250,20 @@ human-readable text.
|
|
|
231
250
|
|------|------|---------|
|
|
232
251
|
| `ui-tree` | — | Fetch the ref-annotated UI tree for the current screen. |
|
|
233
252
|
| `logs` | `[--tail <n>] [--since <cursor>]` | Read recent app logs from the device (JS console, native errors, crash messages). The response's `cursor` feeds the next call's `--since`. |
|
|
234
|
-
| `screenshot` | `[--out <path>]` | Capture a screenshot of the current screen and save it to disk. |
|
|
235
|
-
| `tap` | `<target>` | Tap an element by ref (e.g. `@e5`), or
|
|
253
|
+
| `screenshot` | `[--out <path>]` | Capture a screenshot of the current screen and save it to disk. On a phone or tablet its pixels are tap coordinates: a point read off it can be tapped as is — never rescale. |
|
|
254
|
+
| `tap` | `<target>` | Tap an element by ref (e.g. `@e5`), or coordinates (e.g. `100,200`) in the space of the tree's rects and the screenshot's pixels. |
|
|
236
255
|
| `long-press` | `<ref>` `[--ms <n>]` | Long-press (touch and hold) an element by its ref. |
|
|
237
256
|
| `swipe` | `<direction>` `[--distance <short\|medium\|long>]` | Perform a scrollbar-semantic swipe gesture in one of four directions. |
|
|
238
257
|
| `scroll` | `<direction>` | Scroll the current view up, down, left, or right using a gesture preset. |
|
|
239
258
|
| `scroll-to` | `<text>` `[--direction <up\|down\|left\|right>] [--max-scrolls <n>] [--element-type <type>]` | Scroll until an element matching the text is visible. Stops at end of list. |
|
|
240
259
|
| `drag` | `<from>` `<to>` `[--velocity <n>] [--press-ms <n>] [--hold-ms <n>]` | Drag between two points, each an `@ref` or `x,y`. The only precise two-point gesture. |
|
|
241
260
|
| `alert` | `<get\|accept\|dismiss>` `[--button <label>]` | Inspect or respond to a system alert on iOS or Apple TV. |
|
|
242
|
-
| `type` | `<text>` | Type text into the currently focused input field. |
|
|
261
|
+
| `type` | `<text>` | Type text into the currently focused input field. On a phone or tablet a line break presses Enter and submits the field (`$'query\n'`), like `press enter`. |
|
|
243
262
|
| `clear-text` | — | Clear the text in the currently focused input field. |
|
|
244
263
|
| `press` | `<button>` | Press a device button or perform a system gesture (home, back, d-pad, etc). |
|
|
245
|
-
| `open-url` | `<url>` | Open a deep link or URL in the app under test. |
|
|
246
|
-
| `set-posture` | `<closed\|partial\|open>` or `--angle <0-180>` | Fold or unfold a foldable device (iPhone Duo) to a preset or an exact hinge angle — exactly one. Reports posture, angle and lit screen. Errors on a device without a hinge. |
|
|
247
|
-
| `rotate` | `[--degrees <90\|180\|270>]` | Rotate the device and report the new orientation. Phones/tablets toggle portrait/landscape (90 only);
|
|
264
|
+
| `open-url` | `<url>` | Open a deep link or URL in the app under test. The link goes to that app only; a link it has no screen for fails (no browser). |
|
|
265
|
+
| `set-posture` | `<closed\|partial\|open>` or `--angle <0-180>` | Fold or unfold a foldable device (form factor `foldable`: the iPhone Duo, Android foldables) to a preset or an exact hinge angle — exactly one. Reports posture, angle and lit screen. Errors on a device without a hinge. |
|
|
266
|
+
| `rotate` | `[--degrees <90\|180\|270>]` | Rotate the device and report the new orientation. Phones/tablets and Android foldables toggle portrait/landscape (90 only); the iPhone Duo turns a quarter clockwise by default. Not on TV. |
|
|
248
267
|
| `wait` | `[--ms <n>]` | Wait for a specified number of seconds before continuing (default: 2s). |
|
|
249
268
|
| `find` | `<text>` `[--below <text>] [--above <text>] [--near <text>]` | Find an element by text with optional spatial constraints. |
|
|
250
269
|
| `tap-focused` | `<ref>` | TV: move focus to an element and press SELECT in one step. |
|