@revyl/verify 0.3.0 → 0.3.1

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,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.1 (2026-11-03)
4
+
5
+ - Docs: runnable `.mts` quickstart uses the built-in iOS Settings app, explains how to target an uploaded app with `appId`, clarifies that the Python SDK is not published to PyPI yet, and documents Web availability requirements.
6
+
3
7
  ## 0.3.0 (2026-10-31)
4
8
 
5
9
  - Sign in automatically on the first interactive `open()`, `attach()`, or `currentComputer()` call using the Revyl CLI browser-approval flow; CI remains key-only and browser-free.
package/README.md CHANGED
@@ -10,12 +10,12 @@ Every run gives you a link to watch the target. The session keeps its report and
10
10
  npm install @revyl/verify
11
11
  ```
12
12
 
13
- Save this as `verify/check.ts`:
13
+ Save this as `verify/check.mts`:
14
14
 
15
15
  ```ts
16
16
  import { open } from '@revyl/verify';
17
17
 
18
- const session = await open({ platform: 'ios', app: { appId: 'YOUR_REVYL_APP_ID' } });
18
+ const session = await open({ platform: 'ios', app: { bundleId: 'com.apple.Preferences' } });
19
19
  try {
20
20
  await session.instruction('Open General, then About');
21
21
  await session.validation('The screen shows the operating system version');
@@ -25,10 +25,12 @@ try {
25
25
  }
26
26
  ```
27
27
 
28
+ Use `appId` when you want to target your own uploaded app.
29
+
28
30
  Run the script:
29
31
 
30
32
  ```bash
31
- node verify/check.ts
33
+ node verify/check.mts
32
34
  ```
33
35
 
34
36
  On the first interactive run, Verify opens the Revyl browser approval flow once and saves the login in `~/.revyl/credentials.json` for the CLI and SDK to share.
@@ -45,7 +47,7 @@ Verify prints a live session URL and progress like this:
45
47
 
46
48
  The URL is live during the run and keeps the report and available recording after it closes. A failed instruction or validation throws a typed error and includes the same URL. In CI, Verify never opens a browser: provide `REVYL_API_KEY` as a secret.
47
49
 
48
- For Web, use `open({ platform: 'web', app: { appId, url } })`; for a computer, use `open({ platform: 'mac' })`.
50
+ For Web, use `open({ platform: 'web', app: { appId, url } })`; for a computer, use `open({ platform: 'mac' })`. Web targets need Web enabled for your organization; new self-serve organizations don't have it yet. `revyl app create --platform web` reports `Web is not enabled for this organization`; contact Revyl to enable it.
49
51
 
50
52
  ## Scaffold a config (optional)
51
53
 
@@ -59,7 +61,7 @@ npx @revyl/verify init
59
61
 
60
62
  The generated project starts with a named target. Use `--platform web`, `--platform ios`, `--platform android`, or `--platform mac` when you want to skip the platform question. Web and mobile targets need a Revyl app id; a Mac target does not. The generated config is ordinary TypeScript, so edit it when the example needs a pinned build, a public Web URL, or a different target.
61
63
 
62
- See the [TypeScript getting-started guide](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/getting-started.md), the [Python SDK guide](https://github.com/RevylAI/verify/blob/v0.3.0/python/README.md), and the [Go SDK guide](https://github.com/RevylAI/verify/tree/go/v0.2.0/go).
64
+ See the [TypeScript getting-started guide](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/getting-started.md), the [Python SDK guide](https://github.com/RevylAI/verify/blob/v0.3.1/python/README.md), and the [Go SDK guide](https://github.com/RevylAI/verify/tree/go/v0.2.0/go).
63
65
 
64
66
  ## CI
65
67
 
@@ -77,7 +79,7 @@ For a normal GitHub Actions job, install from the lockfile with `npm ci` and pas
77
79
  REVYL_API_KEY: ${{ secrets.REVYL_API_KEY }}
78
80
  ```
79
81
 
80
- On a `revyl-macos` job, `currentComputer()` attaches to the runner's existing computer without taking ownership. The runner releases the computer; closing the Verify attachment still cleans up hosted children. See the [CI guide](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/ci.md) and [computer API](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/api.md#inside-a-revyl-macos-github-actions-job).
82
+ On a `revyl-macos` job, `currentComputer()` attaches to the runner's existing computer without taking ownership. The runner releases the computer; closing the Verify attachment still cleans up hosted children. See the [CI guide](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/ci.md) and [computer API](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/api.md#inside-a-revyl-macos-github-actions-job).
81
83
 
82
84
  ## Reference authentication
83
85
 
@@ -104,7 +106,7 @@ try {
104
106
  }
105
107
  ```
106
108
 
107
- For Web, use a public HTTPS URL in the target config. For iOS and Android, point the target at an app or build in Revyl. The [API guide](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/api.md) covers target options, step results, screenshots, reports, and cleanup.
109
+ For Web, use a public HTTPS URL in the target config. For iOS and Android, point the target at an app or build in Revyl. The [API guide](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/api.md) covers target options, step results, screenshots, reports, and cleanup.
108
110
 
109
111
  ## Go
110
112
 
@@ -127,6 +129,8 @@ Go calls return errors instead of throwing. The [Go reference](https://github.co
127
129
 
128
130
  ## Python
129
131
 
132
+ The Python SDK isn't published to PyPI yet; install it from source using the instructions in the [Python SDK guide](https://github.com/RevylAI/verify/blob/v0.3.1/python/README.md).
133
+
130
134
  ```python
131
135
  from revyl_verify import Target, open
132
136
 
@@ -135,7 +139,7 @@ with open(Target(platform="ios", bundle_id="com.apple.Preferences")) as session:
135
139
  session.validation("The screen shows the operating system version")
136
140
  ```
137
141
 
138
- Python supports synchronous and asyncio APIs, but it has no bundled CLI. The [Python reference](https://github.com/RevylAI/verify/blob/v0.3.0/python/README.md) covers both APIs and computer operations.
142
+ Python supports synchronous and asyncio APIs, but it has no bundled CLI. The [Python reference](https://github.com/RevylAI/verify/blob/v0.3.1/python/README.md) covers both APIs and computer operations.
139
143
 
140
144
  ## Platforms
141
145
 
@@ -147,14 +151,14 @@ Python supports synchronous and asyncio APIs, but it has no bundled CLI. The [Py
147
151
  | Mac computer | — | Yes | Yes |
148
152
  | Linux computer | — | Yes | Yes |
149
153
 
150
- Computer targets are early access and use commands, files, processes, and screenshots rather than natural-language agent steps. They have a server-bounded lifetime. See [computer setup](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/computers.md).
154
+ Computer targets are early access and use commands, files, processes, and screenshots rather than natural-language agent steps. They have a server-bounded lifetime. See [computer setup](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/computers.md).
151
155
 
152
156
  ## Documentation
153
157
 
154
- - [Documentation index](https://github.com/RevylAI/verify/tree/v0.3.0/packages/verify/docs/) · [API](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/api.md) · [CI](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/ci.md) · [Coding agents](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/agents.md)
155
- - [End-to-end results and limitations](https://github.com/RevylAI/verify/blob/v0.3.0/packages/verify/docs/end-to-end.md)
156
- - [Examples](https://github.com/RevylAI/verify/tree/v0.3.0/examples/): [Web store](https://github.com/RevylAI/verify/tree/v0.3.0/examples/web-store/) · [Mobile Settings](https://github.com/RevylAI/verify/tree/v0.3.0/examples/mobile-settings/) · [Mac workspace](https://github.com/RevylAI/verify/tree/v0.3.0/examples/mac-workspace/)
157
- - [Contributing](https://github.com/RevylAI/verify/blob/v0.3.0/CONTRIBUTING.md) · [Security](https://github.com/RevylAI/verify/blob/v0.3.0/SECURITY.md) · [Releasing](https://github.com/RevylAI/verify/blob/v0.3.0/RELEASING.md)
158
+ - [Documentation index](https://github.com/RevylAI/verify/tree/v0.3.1/packages/verify/docs/) · [API](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/api.md) · [CI](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/ci.md) · [Coding agents](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/agents.md)
159
+ - [End-to-end results and limitations](https://github.com/RevylAI/verify/blob/v0.3.1/packages/verify/docs/end-to-end.md)
160
+ - [Examples](https://github.com/RevylAI/verify/tree/v0.3.1/examples/): [Web store](https://github.com/RevylAI/verify/tree/v0.3.1/examples/web-store/) · [Mobile Settings](https://github.com/RevylAI/verify/tree/v0.3.1/examples/mobile-settings/) · [Mac workspace](https://github.com/RevylAI/verify/tree/v0.3.1/examples/mac-workspace/)
161
+ - [Contributing](https://github.com/RevylAI/verify/blob/v0.3.1/CONTRIBUTING.md) · [Security](https://github.com/RevylAI/verify/blob/v0.3.1/SECURITY.md) · [Releasing](https://github.com/RevylAI/verify/blob/v0.3.1/RELEASING.md)
158
162
 
159
163
  ## Troubleshooting
160
164
 
@@ -165,4 +169,4 @@ Computer targets are early access and use commands, files, processes, and screen
165
169
 
166
170
  ## License
167
171
 
168
- [Apache 2.0](https://github.com/RevylAI/verify/blob/v0.3.0/LICENSE).
172
+ [Apache 2.0](https://github.com/RevylAI/verify/blob/v0.3.1/LICENSE).
package/docs/api.md CHANGED
@@ -29,7 +29,7 @@ const linux = await open({ platform: 'linux' }); // same comp
29
29
 
30
30
  `currentComputer(options?)` attaches to `REVYL_COMPUTER_ID` using normal credential resolution. It is non-owning by default: close cleans up hosted children, while the job's owner releases the computer. It never creates a computer and throws `COMPUTER_ID_MISSING` when the ID is unset or blank. Invalid IDs fail with `INVALID_ARGUMENT`.
31
31
 
32
- This helper is included in the TypeScript 0.3.0 release and requires a runner configured to inject `REVYL_COMPUTER_ID` and a short-lived `REVYL_API_KEY`. A workflow can supply its own `REVYL_API_KEY` instead. After installing the project dependencies and selecting Node.js ≥22.18, add this step to a job with `runs-on: revyl-macos`:
32
+ This helper is included in the TypeScript 0.3.1 release and requires a runner configured to inject `REVYL_COMPUTER_ID` and a short-lived `REVYL_API_KEY`. A workflow can supply its own `REVYL_API_KEY` instead. After installing the project dependencies and selecting Node.js ≥22.18, add this step to a job with `runs-on: revyl-macos`:
33
33
 
34
34
  ```yaml
35
35
  - name: Run Verify
@@ -49,7 +49,7 @@ The helper accepts the same options as `attach`, including explicit `backendUrl`
49
49
 
50
50
  ## attach(computerId, options?)
51
51
 
52
- The attachment, hosted-child and navigation APIs below are included in the TypeScript 0.3.0 release.
52
+ The attachment, hosted-child and navigation APIs below are included in the TypeScript 0.3.1 release.
53
53
 
54
54
  `open()` and `computer.open()` return the extended `OpenedSession` interface. The original `Session` interface keeps its existing required members, so applications implementing or mocking it do not need to add the new methods. Use `OpenedSession` when explicitly annotating a value that calls `report`, `navigate` or `open`.
55
55
 
@@ -8,20 +8,24 @@ Verify needs Node.js 22.18 or later, which runs TypeScript files directly, and a
8
8
  npm install @revyl/verify
9
9
  ```
10
10
 
11
- Use an inline target when you do not need a named config:
11
+ Save this as `verify/check.mts` and use an inline target when you do not need a named config:
12
12
 
13
13
  ```ts
14
14
  import { open } from '@revyl/verify';
15
15
 
16
- const session = await open({ platform: 'ios', app: { appId: 'YOUR_REVYL_APP_ID' } });
16
+ const session = await open({ platform: 'ios', app: { bundleId: 'com.apple.Preferences' } });
17
17
  try {
18
- await session.instruction('Open the main navigation');
19
- await session.validation('The main navigation is visible');
18
+ await session.instruction('Open General, then About');
19
+ await session.validation('The screen shows the operating system version');
20
20
  } finally {
21
21
  await session.close();
22
22
  }
23
23
  ```
24
24
 
25
+ Use `appId` when you want to target your own uploaded app.
26
+
27
+ Run it with `node verify/check.mts`. Web targets need Web enabled for your organization; new self-serve organizations don't have it yet. `revyl app create --platform web` reports `Web is not enabled for this organization`; contact Revyl to enable it.
28
+
25
29
  On the first interactive run, Verify opens the Revyl browser approval flow once and saves the shared CLI login. It prints a live session link, then ordered step results. In CI, it never prompts or opens a browser; set `REVYL_API_KEY` as a secret. Python and Go use an existing CLI login or API key; their SDKs do not open the browser themselves.
26
30
 
27
31
  ## Scaffold a config (optional)
package/docs/web.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  A web target opens your app in a Revyl cloud browser.
4
4
 
5
+ Web targets need Web enabled for your organization; new self-serve organizations don't have it yet. `revyl app create --platform web` reports `Web is not enabled for this organization`; contact Revyl to enable it.
6
+
5
7
  ```ts
6
8
  {
7
9
  platform: 'web',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revyl/verify",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Open Revyl cloud browsers and mobile devices for agent steps, or Mac and Linux computers for commands and files, from TypeScript.",
5
5
  "keywords": [
6
6
  "e2e",