effect-browserbase 0.2.0-beta.8 → 0.2.0-beta.9
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 +8 -4
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`effect-browserbase` supplies Browserbase resources and hosted lifetimes to the shared browser runtime: account identity and transport, session, context and extension resources, one owned browser over Playwright/CDP — allocated or borrowed — with trusted registrations, modeled file selection, bounded live capture, explicit page holds, the provider's recordings, replays, uploads and website downloads, and the platform APIs outside a browser session (projects, certificates, Search, Fetch, Agents, Functions and webhooks).
|
|
4
4
|
|
|
5
|
-
Its host supplies the required `effect-browser` peer, at the same coordinated `0.2.0-beta.
|
|
5
|
+
Its host supplies the required `effect-browser` peer, at the same coordinated `0.2.0-beta.9` version; it has no Effect Agent dependency. Install both packages explicitly so the provider and application share one runtime instance. Playwright is an optional peer of the shared runtime and is loaded only when a browser connects; artifact-only consumers do not need it. The Effect peer is exactly `4.0.0-rc.117`, the tested version: later Effect releases moved the `effect/unstable/*` modules this package imports. Releases through `0.2.0-beta.8` declared a caret range; with one of them, install exactly the Effect it was tested with (`4.0.0-rc.117` from `0.2.0-beta.3`, `4.0.0-rc.115` before). The package targets trusted Node and Bun hosts. It is published as a beta, on the `beta` dist-tag: hosted provider behavior requires separate validation, and ordinary tests never create a paid Browserbase session or invoke a paid model.
|
|
6
6
|
|
|
7
7
|
## One account, then resources
|
|
8
8
|
|
|
@@ -172,7 +172,7 @@ Larger files use `BrowserbaseUploads.create`, which places bytes for the exact r
|
|
|
172
172
|
| Reuse old page/frame metadata after reconnect | In the same known browser lifetime, read fresh pages and match exactly one saved `targetId`; then read fresh frames. No fallback to order, old ID, URL or title |
|
|
173
173
|
| `Adapter.fromSession(session)` or implicit selection | Supply the owning session and issued Page to `yield* Adapter.fromSession(session, page)`; its lifecycle remains on the original browser owner |
|
|
174
174
|
| `BrowserError.reason` string and optional outcome | Tagged reason and required outcome. Use `Effect.catchReason`; factual limit/status/retry fields belong to their reason |
|
|
175
|
-
| All host reason names reach model output |
|
|
175
|
+
| All host reason names reach model output | Thirteen tool failure reasons; original structured fields and bounded call IDs remain in `ToolHost.toolFailures` |
|
|
176
176
|
| `closeChecked` success is `undefined` | Concrete receipt success after the existing ownership check; `close` and `cleanupResult` remain available |
|
|
177
177
|
| Capture `dropped` | `discarded = overflow + late + duplicates + rejected`; no change to default capacity or unknown upstream loss |
|
|
178
178
|
| Non-supervising helper takes default `BrowserSession` | Use `AnySession`; keep supervising helpers generic in callback error or concrete session |
|
|
@@ -182,7 +182,11 @@ Larger files use `BrowserbaseUploads.create`, which places bytes for the exact r
|
|
|
182
182
|
`resume(token, operatorReleasedControl)` and `reconnect(operatorReleasedControl)` return a
|
|
183
183
|
bounded `Inventory` containing the new owner generation and fresh Page metadata. They do not
|
|
184
184
|
read page content or issue observed references. Acquire an issued Page from `inventory.pages`
|
|
185
|
-
and call `page.observe()` explicitly.
|
|
185
|
+
and call `page.observe()` explicitly. A handoff retires Page authority although the connection
|
|
186
|
+
stays open: every Page and Frame issued before `beginHandoff`, `session.initialPage` included,
|
|
187
|
+
belongs to the paused generation, and after `resume` its operations fail `Stale` and
|
|
188
|
+
`undispatched`. Issue each Page again with `session.page(info)` from `inventory.pages`, and its
|
|
189
|
+
Frames with `page.frame(info)`. `detach` returns its pre-disconnection inventory and exact
|
|
186
190
|
selected native `targetId`, preserving bounded target identities for deliberate attachment;
|
|
187
191
|
its Page IDs are old authority and cannot be reused after reconnect. Page metadata is a sequence
|
|
188
192
|
of native reads and is non-atomic.
|
|
@@ -239,7 +243,7 @@ const launch = recipe({
|
|
|
239
243
|
|
|
240
244
|
A host that does this still selects `Unrestricted` here, and the containment claim is the host's own, made at its proxy. This package keeps refusing `ExactHosts` and `PublicWeb`, because it has no evidence that every connection of a hosted session takes that proxy. The provider documents how rules are ordered, not whether WebRTC, QUIC or name resolution go through one, and no hosted run in this repository has tested it. Accepting either policy needs that evidence first: a hosted session behind one catch-all proxy, exercised through navigation, redirects, frames, subresources, popups, workers, service workers, WebSockets and non-HTTP transports, with nothing arriving anywhere but the proxy.
|
|
241
245
|
|
|
242
|
-
What this package does check is input, not requests. `controlFacts` and an `admit` policy ([
|
|
246
|
+
What this package does check is input, not requests. `controlFacts` and an `admit` policy ([common browser guide](../browser/README.md#what-is-on-screen-and-what-a-host-may-know-about-it)) let a host that drives the session refuse a link or a form by its resolved destination before anything is sent. That limits what the host's own automation acts on. It does not limit what a page loads, or where it redirects.
|
|
243
247
|
|
|
244
248
|
## Testing against a scripted control plane
|
|
245
249
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-browserbase",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.9",
|
|
4
4
|
"description": "Effect-based Browserbase resources and hosted integration for effect-browser.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
"node": "^22.18.0 || >=24.11.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"effect": "
|
|
18
|
-
"effect-browser": "0.2.0-beta.
|
|
17
|
+
"effect": "4.0.0-rc.117",
|
|
18
|
+
"effect-browser": "0.2.0-beta.9"
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://github.com/mannyc2/effect-agent-browserbase#readme",
|
|
21
21
|
"bugs": {
|