@revyl/verify 0.6.1 → 0.6.2

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/CHANGELOG.md CHANGED
@@ -1,6 +1,24 @@
1
1
  # Changelog
2
2
 
3
- ## 0.6.1 (unreleased)
3
+ ## 0.6.2 (unreleased)
4
+
5
+ - A Mac or Linux computer that starts prints only its start line with the session link, as Web, iOS and Android do: `[verify] mac: starting computer https://app.revyl.ai/sessions/…?kind=computer`. It no longer adds "Mac computers need a current paid Revyl plan, and Linux computers are not generally available. Ask support@revyl.ai about access." That guidance stays on the errors for a computer that doesn't start: a start Revyl refuses (`computer_not_enabled`, or `runtime_unavailable` for Linux), a start that times out, and a release Verify can't confirm.
6
+ - `verify init --platform mac` no longer prints the availability note under "Next:" or writes it at the top of `verify/example.mts`.
7
+ - Every call sends the same requests as 0.6.1.
8
+
9
+ ## Go 0.5.2 (unreleased)
10
+
11
+ Published as the `go/v0.5.2` tag.
12
+
13
+ - A computer that starts sends only its start line with the session link to `OpenOptions.Log`, as in TypeScript 0.6.2: `mac: starting mac computer https://app.revyl.ai/sessions/…?kind=computer`. Refusals, timeouts and an unconfirmed release keep the availability guidance in their errors.
14
+ - `verify.Version` and the `User-Agent` report 0.5.2. Every call sends the same requests as v0.5.1.
15
+
16
+ ## Python 0.4.2 (unreleased)
17
+
18
+ - A computer that starts prints only its start line with the session link, as in TypeScript 0.6.2: `[verify] mac: starting computer https://app.revyl.ai/sessions/…?kind=computer`. Refusals, timeouts and an unconfirmed release keep the availability guidance in their errors.
19
+ - Every call sends the same requests as 0.4.1.
20
+
21
+ ## 0.6.1 (2026-11-13)
4
22
 
5
23
  - An iOS or Android `open()` that Revyl refuses as invalid (HTTP 400 or 422) throws `INVALID_ARGUMENT` with Revyl's explanation instead of a bare `API_ERROR … failed with HTTP 422`. For a device model or OS version Revyl doesn't offer, the message lists the values it accepts, as in `Revyl refused to start the session (HTTP 422): Unsupported ios runtime '18.5'. Available: ['iOS 27.1', …, 'iOS 18.5']. Change the target to a value Revyl accepts and run again.` No session was started. Web and hosted starts keep their safe diagnostic codes and copy no server text.
6
24
  - `device.osVersion` is the name Revyl uses, such as `'iOS 18.5'` or `'Android 14'`, as before; Verify sends it unchanged. The docs now show it that way, with models Revyl offers (`iPhone 16`, `iPhone Air`, `Pixel 7`).
@@ -9,7 +27,7 @@
9
27
  - Every other call sends the same requests as 0.6.0.
10
28
  - Docs: device selectors Revyl accepts, a mobile exact-actions script that searches Settings for Accessibility, a web exact-actions script that scrolls back up before it locates the cart, `node verify/checkout.mts` in CI, non-owning attach examples that navigate to a public page, Mac availability on paid plans, `init --platform` in the README, your own model's Claude results, and `end-to-end.md` marked as a record of the 0.1.0 and 0.2.0 runs.
11
29
 
12
- ## Go 0.5.1 (unreleased)
30
+ ## Go 0.5.1 (2026-11-13)
13
31
 
14
32
  Published as the `go/v0.5.1` tag.
15
33
 
@@ -17,7 +35,7 @@ Published as the `go/v0.5.1` tag.
17
35
  - An iOS or Android `Open` that Revyl refuses as invalid (HTTP 400 or 422) returns `ErrInvalidArgument` with Revyl's explanation, as in TypeScript 0.6.1, including the device models or OS versions it accepts. No session was started.
18
36
  - The computer availability message says Mac computers need a current paid Revyl plan. Every other call sends the same requests as v0.5.0.
19
37
 
20
- ## Python 0.4.1 (unreleased)
38
+ ## Python 0.4.1 (2026-11-13)
21
39
 
22
40
  - `VALIDATION_FAILED` names the step and the reason, as TypeScript does: `Validation failed: "<text>". <reason> See <link>`. `AsyncSession` gets the same message.
23
41
  - An iOS or Android `open()` that Revyl refuses as invalid (HTTP 400 or 422) raises `INVALID_ARGUMENT` with Revyl's explanation, as in TypeScript 0.6.1, including the device models or OS versions it accepts. No session was started.
@@ -199,7 +217,7 @@ First PyPI release of `revyl-verify` (import `revyl_verify`, Python ≥3.10), pu
199
217
  - Add the source-free `revyl-verify` npm alias with matching API, TypeScript types and CLI, pinned to the exact `@revyl/verify` version. Validate and pack both packages; optional CI publication checks each version independently and publishes the scoped package before the alias.
200
218
  - Add a standard-library-only Go SDK for web, iOS, Android, and early-access Mac and Linux computers. Computer commands, binary files, process handles, screenshots, recording metadata, and confirmed-release cleanup require computer access through support@revyl.ai. Capacity refusals have a distinct `COMPUTER_LIMIT` code; no start or operation is automatically replayed.
201
219
 
202
- ## 0.2.0
220
+ ## 0.2.0 (2026-10-27)
203
221
 
204
222
  Prepared for release; see npm for publication status.
205
223
 
@@ -215,7 +233,7 @@ Prepared for release; see npm for publication status.
215
233
 
216
234
  Regression validation uses fake API responses. The [end-to-end record](https://github.com/RevylAI/verify/blob/v0.2.0/packages/verify/docs/end-to-end.md) distinguishes baseline live runs from startup fixes still awaiting live re-verification.
217
235
 
218
- ## 0.1.0
236
+ ## 0.1.0 (2026-10-26)
219
237
 
220
238
  Published manually from a maintainer's Mac without provenance.
221
239
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Verify
2
2
 
3
- ![Terminal output from one Verify script beside a Mac computer's Terminal window showing the macOS version, and the screens the script reached in a cloud browser, an Android emulator, and an iOS simulator](https://raw.githubusercontent.com/RevylAI/verify/v0.6.1/docs/images/verify-hero.webp)
3
+ ![Terminal output from one Verify script beside a Mac computer's Terminal window showing the macOS version, and the screens the script reached in a cloud browser, an Android emulator, and an iOS simulator](https://raw.githubusercontent.com/RevylAI/verify/v0.6.2/docs/images/verify-hero.webp)
4
4
 
5
5
  Verify runs end-to-end checks in a cloud browser, iOS simulator, or Android emulator on Revyl. You write what the agent should do and what must be true afterward, in plain sentences, and call it from a script, a coding agent, CI, or the test runner you already use. When you know exactly what to press, you can tap, type and swipe yourself instead. Verify also opens Mac computers for commands, files, screenshots, and clicks and keys on the screen.
6
6
 
@@ -41,9 +41,9 @@ Or set it up yourself:
41
41
  npx @revyl/verify init --platform ios
42
42
  ```
43
43
 
44
- `init` adds Verify to your project, writes `verify.config.ts` and an example script for the platform you pass (`web`, `ios`, `android` or `mac`; in a terminal, leave `--platform` out and it asks), writes `verify.config.ts` and an example script, signs you in through the browser on the first interactive run, and prints the command that runs the example. With no app id, the iOS and Android examples open the built-in Settings app, so they run on a new account before you upload anything. To skip the config, run `npm install @revyl/verify` and save the example above as `verify/check.mts`, then run `node verify/check.mts`. [Getting started](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/getting-started.md) covers sign-in, your own app, and [CI](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/ci.md).
44
+ `init` adds Verify to your project, writes `verify.config.ts` and an example script for the platform you pass (`web`, `ios`, `android` or `mac`; in a terminal, leave `--platform` out and it asks), writes `verify.config.ts` and an example script, signs you in through the browser on the first interactive run, and prints the command that runs the example. With no app id, the iOS and Android examples open the built-in Settings app, so they run on a new account before you upload anything. To skip the config, run `npm install @revyl/verify` and save the example above as `verify/check.mts`, then run `node verify/check.mts`. [Getting started](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/getting-started.md) covers sign-in, your own app, and [CI](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/ci.md).
45
45
 
46
- For finished projects, see [`examples/`](https://github.com/RevylAI/verify/tree/v0.6.1/examples/): a [web store](https://github.com/RevylAI/verify/tree/v0.6.1/examples/web-store/), [mobile Settings](https://github.com/RevylAI/verify/tree/v0.6.1/examples/mobile-settings/), a [Mac workspace](https://github.com/RevylAI/verify/tree/v0.6.1/examples/mac-workspace/), a small [agent platform](https://github.com/RevylAI/verify/tree/v0.6.1/examples/agent-platform/) that runs web and iOS side by side, and [your own model](https://github.com/RevylAI/verify/tree/v0.6.1/examples/byo-model/) (with [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/examples/byo_model.py) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/examples/byomodel/main.go) versions).
46
+ For finished projects, see [`examples/`](https://github.com/RevylAI/verify/tree/v0.6.2/examples/): a [web store](https://github.com/RevylAI/verify/tree/v0.6.2/examples/web-store/), [mobile Settings](https://github.com/RevylAI/verify/tree/v0.6.2/examples/mobile-settings/), a [Mac workspace](https://github.com/RevylAI/verify/tree/v0.6.2/examples/mac-workspace/), a small [agent platform](https://github.com/RevylAI/verify/tree/v0.6.2/examples/agent-platform/) that runs web and iOS side by side, and [your own model](https://github.com/RevylAI/verify/tree/v0.6.2/examples/byo-model/) (with [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/examples/byo_model.py) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/examples/byomodel/main.go) versions).
47
47
 
48
48
  ## Exact actions
49
49
 
@@ -60,7 +60,7 @@ await session.instruction('Accept the terms if they are shown'); // the age
60
60
  await session.validation('The welcome screen is shown');
61
61
  ```
62
62
 
63
- `doubleTap`, `typeFocused`, `back`, `goHome`, `openUrl`, `launchApp`, `locate` and `screenSize` round them out; [which call works where](#which-call-works-where) shows the platform limits. Early access. Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. On a Mac computer's screen, `tap` (by point or by description), `screenSize`, `typeFocused` and `pressKey` are new in TypeScript 0.6.0, Python 0.4.0 and Go v0.5.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#exact-actions) READMEs show them with each language's names. The [web](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/web.md#exact-actions) and [mobile](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/mobile.md#exact-actions) guides have runnable scripts, and [api.md](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/api.md#exact-actions) lists every call.
63
+ `doubleTap`, `typeFocused`, `back`, `goHome`, `openUrl`, `launchApp`, `locate` and `screenSize` round them out; [which call works where](#which-call-works-where) shows the platform limits. Early access. Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. On a Mac computer's screen, `tap` (by point or by description), `screenSize`, `typeFocused` and `pressKey` are new in TypeScript 0.6.0, Python 0.4.0 and Go v0.5.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#exact-actions) READMEs show them with each language's names. The [web](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/web.md#exact-actions) and [mobile](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/mobile.md#exact-actions) guides have runnable scripts, and [api.md](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/api.md#exact-actions) lists every call.
64
64
 
65
65
  ## Your own model
66
66
 
@@ -74,7 +74,7 @@ await session.instruction('Open Privacy', { model: 'openai/gpt-5.5' });
74
74
  await open('ios', { model: { id: 'qwen-3.8-27b', baseURL: 'https://api.cerebras.ai/v1', apiKey: process.env.CEREBRAS_API_KEY } });
75
75
  ```
76
76
 
77
- Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0; the [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#your-own-model) READMEs show them with each language's names. Built in: `anthropic`, `openai`, `google`, `openrouter`, `groq`, `cerebras`, `xai` and `ollama`; anything OpenAI-compatible works through `baseURL`. Early access; [Use your own model](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/own-model.md) covers the providers, picking a model, what Revyl still sees, limits and troubleshooting.
77
+ Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0; the [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#your-own-model) READMEs show them with each language's names. Built in: `anthropic`, `openai`, `google`, `openrouter`, `groq`, `cerebras`, `xai` and `ollama`; anything OpenAI-compatible works through `baseURL`. Early access; [Use your own model](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/own-model.md) covers the providers, picking a model, what Revyl still sees, limits and troubleshooting.
78
78
 
79
79
  ## Packages
80
80
 
@@ -82,8 +82,8 @@ Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v
82
82
  | --- | --- | --- |
83
83
  | [`@revyl/verify`](https://www.npmjs.com/package/@revyl/verify) | `npm install @revyl/verify` | TypeScript SDK and the `verify` CLI (`init`, `login`, `logout`, `whoami`). Published on npm, Node.js 22.18 or later. |
84
84
  | [`revyl-verify`](https://www.npmjs.com/package/revyl-verify) (npm) | `npm install revyl-verify` | Alias of `@revyl/verify` at the same version. |
85
- | [Go module](https://github.com/RevylAI/verify/tree/go/v0.5.1/go) | `go get github.com/RevylAI/verify/go@v0.5.1` | Published as the `go/v0.5.1` tag, Go 1.26.9 or later. Calls return errors instead of throwing. |
86
- | [`revyl-verify`](https://pypi.org/project/revyl-verify/) (PyPI) | `pip install revyl-verify` or `uv add revyl-verify` | Python SDK, published on PyPI. Python 3.10 or later, sync and asyncio APIs, no CLI; see the [Python guide](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md). |
85
+ | [Go module](https://github.com/RevylAI/verify/tree/go/v0.5.2/go) | `go get github.com/RevylAI/verify/go@v0.5.2` | Published as the `go/v0.5.2` tag, Go 1.26.9 or later. Calls return errors instead of throwing. |
86
+ | [`revyl-verify`](https://pypi.org/project/revyl-verify/) (PyPI) | `pip install revyl-verify` or `uv add revyl-verify` | Python SDK, published on PyPI. Python 3.10 or later, sync and asyncio APIs, no CLI; see the [Python guide](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md). |
87
87
 
88
88
  ## Platforms
89
89
 
@@ -116,16 +116,16 @@ Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v
116
116
 
117
117
  A call a platform doesn't support throws `NOT_AVAILABLE_ON_PLATFORM`, and its message names the alternative.
118
118
 
119
- Web is available to every organization. Mac computers are available to organizations on a current paid Revyl plan and have a server-bounded lifetime; see [computers](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/computers.md).
119
+ Web is available to every organization. Mac computers are available to organizations on a current paid Revyl plan and have a server-bounded lifetime; see [computers](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/computers.md).
120
120
 
121
121
  ## Documentation
122
122
 
123
- The [documentation](https://github.com/RevylAI/verify/tree/v0.6.1/packages/verify/docs/) covers the [API](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/api.md), [configuration](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/configuration.md), [web](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/web.md), [mobile](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/mobile.md), [computers](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/computers.md), [CI](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/ci.md), [your own model](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/own-model.md), [errors and troubleshooting](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/errors.md), [coding agents](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/agents.md), and [live end-to-end results](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/end-to-end.md). The npm package ships these pages in `node_modules/@revyl/verify/docs/`, with an [llms.txt](https://github.com/RevylAI/verify/blob/v0.6.1/packages/verify/docs/llms.txt) index, so a coding agent can read the docs for the version you installed. The Revyl docs site has an overview at [docs.revyl.com/verify](https://docs.revyl.com/verify).
123
+ The [documentation](https://github.com/RevylAI/verify/tree/v0.6.2/packages/verify/docs/) covers the [API](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/api.md), [configuration](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/configuration.md), [web](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/web.md), [mobile](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/mobile.md), [computers](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/computers.md), [CI](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/ci.md), [your own model](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/own-model.md), [errors and troubleshooting](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/errors.md), [coding agents](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/agents.md), and [live end-to-end results](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/end-to-end.md). The npm package ships these pages in `node_modules/@revyl/verify/docs/`, with an [llms.txt](https://github.com/RevylAI/verify/blob/v0.6.2/packages/verify/docs/llms.txt) index, so a coding agent can read the docs for the version you installed. The Revyl docs site has an overview at [docs.revyl.com/verify](https://docs.revyl.com/verify).
124
124
 
125
125
  ## Status
126
126
 
127
- Verify is at 0.x, so APIs can still change between minor releases; the [changelog](https://github.com/RevylAI/verify/blob/v0.6.1/CHANGELOG.md) records each release. See [Contributing](https://github.com/RevylAI/verify/blob/v0.6.1/CONTRIBUTING.md) and [Releasing](https://github.com/RevylAI/verify/blob/v0.6.1/RELEASING.md) to work on Verify.
127
+ Verify is at 0.x, so APIs can still change between minor releases; the [changelog](https://github.com/RevylAI/verify/blob/v0.6.2/CHANGELOG.md) records each release. See [Contributing](https://github.com/RevylAI/verify/blob/v0.6.2/CONTRIBUTING.md) and [Releasing](https://github.com/RevylAI/verify/blob/v0.6.2/RELEASING.md) to work on Verify.
128
128
 
129
129
  ## License
130
130
 
131
- [Apache 2.0](https://github.com/RevylAI/verify/blob/v0.6.1/LICENSE).
131
+ [Apache 2.0](https://github.com/RevylAI/verify/blob/v0.6.2/LICENSE).
package/dist/cli/init.js CHANGED
@@ -101,8 +101,7 @@ ${target}
101
101
  }
102
102
  function scriptTemplate({ platform, appId, url }) {
103
103
  if (platform === 'mac') {
104
- return `// Mac computers need a current paid Revyl plan; if yours can't start one, ask support@revyl.ai.
105
- import assert from 'node:assert/strict';
104
+ return `import assert from 'node:assert/strict';
106
105
  import { open } from '@revyl/verify';
107
106
 
108
107
  const session = await open('mac');
package/dist/cli/main.js CHANGED
@@ -125,11 +125,9 @@ async function initCommand(args) {
125
125
  const result = await initProject(process.cwd(), answers, { force: values.force ?? false });
126
126
  process.stdout.write(`Created ${result.created.join(' and ')}${result.gitignoreUpdated ? ', and added .verify/ to .gitignore' : ''}.\n`);
127
127
  await signInAndCheck(interactive);
128
- const steps = answers.platform === 'mac'
129
- ? ["Mac computers need a current paid Revyl plan; if yours can't start one, ask support@revyl.ai.", 'Run: node verify/example.mts']
130
- : answers.appId
131
- ? ['Run: node verify/example.mts']
132
- : ['Run: node verify/example.mts', 'To test your own app, put its Revyl app id in verify.config.ts in place of the Settings bundle id.'];
128
+ const steps = answers.platform === 'mac' || answers.appId
129
+ ? ['Run: node verify/example.mts']
130
+ : ['Run: node verify/example.mts', 'To test your own app, put its Revyl app id in verify.config.ts in place of the Settings bundle id.'];
133
131
  process.stdout.write([
134
132
  'Next:',
135
133
  ...steps.map((step, index) => ` ${index + 1}. ${step}`),
@@ -57,7 +57,7 @@ export class ComputerSession {
57
57
  let createAcknowledged = false;
58
58
  trackSession(session);
59
59
  try {
60
- session.log(`starting computer ${session.viewerUrl}. ${COMPUTER_AVAILABILITY}`);
60
+ session.log(`starting computer ${session.viewerUrl}`);
61
61
  const response = await session.request('POST', '', { computer_session_id: session.id, os: target.platform === 'mac' ? 'macos' : 'linux' }, signal);
62
62
  createAcknowledged = true;
63
63
  let report = session.parseReport(response);
package/docs/agents.md CHANGED
@@ -53,7 +53,7 @@ try {
53
53
  }
54
54
  ```
55
55
 
56
- The [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#exact-actions) READMEs state the same rule with each language's names. [api.md](api.md#exact-actions) lists every call and its errors.
56
+ The [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#exact-actions) READMEs state the same rule with each language's names. [api.md](api.md#exact-actions) lists every call and its errors.
57
57
 
58
58
  ## Rules
59
59
 
package/docs/api.md CHANGED
@@ -84,7 +84,7 @@ Web only, hosted or normal. Sends one deterministic `open_url` action and checks
84
84
 
85
85
  ## Exact actions
86
86
 
87
- **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. On a Mac computer's screen, `tap` (by point or by description), `screenSize`, `typeFocused` and `pressKey` are new in TypeScript 0.6.0, Python 0.4.0 and Go v0.5.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#exact-actions) READMEs show them with each language's names. Web, iOS and Android sessions, and a Mac computer's screen, take device actions that need no agent.
87
+ **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. On a Mac computer's screen, `tap` (by point or by description), `screenSize`, `typeFocused` and `pressKey` are new in TypeScript 0.6.0, Python 0.4.0 and Go v0.5.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#exact-actions) READMEs show them with each language's names. Web, iOS and Android sessions, and a Mac computer's screen, take device actions that need no agent.
88
88
 
89
89
  | Call | Web | iOS | Android | Mac computer |
90
90
  | --- | --- | --- | --- | --- |
@@ -182,7 +182,7 @@ When inspecting `revyl device report --session-id <id>`, read validation verdict
182
182
 
183
183
  ## Your own model
184
184
 
185
- **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0; the [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#your-own-model) READMEs show them with each language's names. Runs instructions and validations on a model you choose, in your process, instead of Revyl's agent. Revyl still provides the browser or device. Leave `model` out and Revyl's agent runs the step, as before.
185
+ **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0; the [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#your-own-model) READMEs show them with each language's names. Runs instructions and validations on a model you choose, in your process, instead of Revyl's agent. Revyl still provides the browser or device. Leave `model` out and Revyl's agent runs the step, as before.
186
186
 
187
187
  ```ts
188
188
  const session = await open('ios', { model: 'anthropic/claude-sonnet-5-5' }); // every step on your model
package/docs/mobile.md CHANGED
@@ -50,7 +50,7 @@ For Android Settings (`bundleId: 'com.android.settings'`), instruct the agent to
50
50
 
51
51
  ## Exact actions
52
52
 
53
- **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#exact-actions) READMEs show them with each language's names. When you know exactly what to press, skip the agent. Exact actions run on the device as given, with no model, and mix freely with `instruction()` and `validation()` in one script:
53
+ **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#exact-actions) READMEs show them with each language's names. When you know exactly what to press, skip the agent. Exact actions run on the device as given, with no model, and mix freely with `instruction()` and `validation()` in one script:
54
54
 
55
55
  ```ts
56
56
  import { open } from '@revyl/verify';
package/docs/own-model.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Use your own model
2
2
 
3
- **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0; the [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#your-own-model) READMEs show them with each language's names. Verify normally runs `instruction()` and `validation()` on Revyl's agent. Pass a `model` and the agent loop runs in your process instead, on a model you choose, with your own key. Revyl still provides the cloud browser or device and, by default, finds the elements your model names on screen.
3
+ **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0; the [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#your-own-model) READMEs show them with each language's names. Verify normally runs `instruction()` and `validation()` on Revyl's agent. Pass a `model` and the agent loop runs in your process instead, on a model you choose, with your own key. Revyl still provides the cloud browser or device and, by default, finds the elements your model names on screen.
4
4
 
5
5
  Use it when you want a specific model, your own prompts and key, or faster steps on a cheap model. Leave `model` out and nothing changes.
6
6
 
@@ -52,7 +52,7 @@ log.Println(step.Model.ID, len(step.Model.Turns), step.Model.InputTokens, step.M
52
52
  _, err = s.Validation(ctx, "The screen shows the iOS version")
53
53
  ```
54
54
 
55
- The [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#your-own-model) READMEs have the full reference for each.
55
+ The [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#your-own-model) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#your-own-model) READMEs have the full reference for each.
56
56
 
57
57
  Set `model` on `open()` to run every step on it, or on one step to override it:
58
58
 
package/docs/web.md CHANGED
@@ -53,7 +53,7 @@ Revyl runs one step at a time on a session. A step sent while another is still r
53
53
 
54
54
  ## Exact actions
55
55
 
56
- **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.1/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.1/go/README.md#exact-actions) READMEs show them with each language's names. When you know exactly what to click, skip the agent. Exact actions run in the browser as given, with no model, and mix freely with `instruction()` and `validation()`:
56
+ **Early access.** Since TypeScript (`@revyl/verify`) 0.4.0, Python (`revyl-verify`) 0.2.0 and Go v0.3.0. `doubleTap`, `longPress`, `drag`, `typeFocused`, `goHome`, and Web keys and modifiers in `pressKey`, are new in TypeScript 0.5.0, Python 0.3.0 and Go v0.4.0. The [Python](https://github.com/RevylAI/verify/blob/v0.6.2/python/README.md#exact-actions) and [Go](https://github.com/RevylAI/verify/blob/v0.6.2/go/README.md#exact-actions) READMEs show them with each language's names. When you know exactly what to click, skip the agent. Exact actions run in the browser as given, with no model, and mix freely with `instruction()` and `validation()`:
57
57
 
58
58
  ```ts
59
59
  import { open } from '@revyl/verify';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revyl/verify",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "Open Revyl cloud browsers and mobile devices for agent steps, or Mac computers for commands and files, from TypeScript.",
5
5
  "keywords": [
6
6
  "e2e",