integrationPackage manifestv2.0.5

integration.provider-web-access

Governed web access, scraping, browser, MCP, and residential proxy integrations.

@lssm-tech/integration.provider-web-access
Source, release and verification context

Source snapshot bcc79fcc · Declared package version 2.0.5. This page combines the checked-in package guide and manifest; commands and runtime behavior were not executed in this review.

Package source ↗ Manifest ↗
webbrowser
EXPLORE THE PACKAGE

See where this package fits.

Follow a declared connection, inspect an import, then open the source guide when you need the detail.

THIS PACKAGEintegration.provider-web-accessintegrations

Arrows point from a package to its direct dependency. Each count is derived from the captured manifests.

13 declarations · first 6 shownSELECT TO INSPECT

@lssm-tech/integration.provider-web-access

Governed provider adapters for Bright Data, Massive, Browserbase, Serper, Linkup, Tavily, direct fetch, Reworkd, Firecrawl, Apify, and Oxylabs.

Support matrix

Provider REST TypeScript SDK Webhook WebSocket / SSE Native MCP Proxy
Bright Data Yes @brightdata/sdk Delivery callback with IP allowlist Browser API over CDP WebSocket Hosted and local HTTP, HTTPS, SOCKS with remote DNS
Massive Yes Not advertised Async render callback Browser render over CDP WebSocket Not advertised Residential HTTP, HTTPS, SOCKS
Browserbase Yes @browserbasehq/sdk + Stagehand v4 Not advertised Session CDP WebSocket Hosted and local Session-managed residential or custom
Serper Yes, all ten result categories Not advertised Not advertised Not advertised Not advertised Not advertised
Linkup Yes, including x402 linkup-sdk Not advertised Not advertised Hosted and local Not advertised
Tavily Yes @tavily/core Not advertised Research SSE Hosted and local; API key or OAuth Not advertised
Direct fetch Yes No No No ContractSpec projection only No
Reworkd Yes No public TypeScript client bound No receiver bound No ContractSpec projection only No
Firecrawl Yes Not bound; REST preferred Documented, receiver not bound No operation stream bound Documented, not bound No
Apify Yes Not bound; REST preferred Documented, receiver not bound No Documented, not bound No
Oxylabs Yes No No receiver bound No Documented local server, not bound HTTP, HTTPS, SOCKS5/SOCKS5H

All normalized operations are also bound to the ContractSpec operation registry for local MCP projection. A missing vendor-native surface is recorded as unsupported instead of being simulated.

Usage

ts
import { createWebAccessAdapters } from "@lssm-tech/integration.provider-web-access";

const adapters = createWebAccessAdapters({
  tavily: {
    secretReference: "vault://tenant/tavily",
    secretProvider,
    budgetPort,
    telemetryPort,
  },
});

const result = await adapters.tavily?.execute("search.execute", {
  provider: "tavily",
  tenantId: "tenant-1",
  connectionId: "tavily-primary",
  policyMode: "governed",
  authorization: { decision: "allow", evidenceRefs: ["approval-1"] },
  payload: { query: "ContractSpec", transport: "rest" },
});

Set payload.transport to "rest" to use the direct HTTP client. Omit it to use the official SDK where one exists. Linkup and Browserbase x402 execution requires an injected X402PaymentPort; the package never owns wallet keys. When a request supplies budget, the adapter also requires an injected WebAccessBudgetPort so request and monetary reservations are atomic rather than process-local counters.

Stagehand v4 browser automation

BrowserbaseAdapter.automation implements the provider-neutral act, observe, and extract contract over sessions created or synchronized by that adapter. Each call reconnects to the existing Browserbase sessionId with browserbase.connect, creates Stagehand through Stagehand.create, then closes Stagehand before disconnecting the attached browser. Disconnecting never releases the server session; session.close remains the explicit owner of release, so a Browserbase session created with keepAlive remains reconnectable.

ts
import {
  BrowserbaseAdapter,
  createStagehandTools,
} from "@lssm-tech/integration.provider-web-access";

const browserbase = new BrowserbaseAdapter({
  secretReference: "vault://tenant/browserbase",
  secretProvider,
});

const tools = createStagehandTools(browserbase.automation, {
  tenantId: "tenant-1",
  connectionId: "browserbase-primary",
  correlationId: crypto.randomUUID(),
  authorization: { decision: "allow", evidenceRefs: ["approval-1"] },
});
// Pass `tools` directly to `new ToolLoopAgent({ model, tools })` from ai@7.

The stable tool names are browserbase_browser_act, browserbase_browser_observe, and browserbase_browser_extract. Act requires AI SDK approval; observe and extract are read/cost-bearing and execute without consequential approval. Inputs use Zod v4 inputSchema and the AI SDK 7 tool API. Browserbase credentials are resolved only through SecretProvider; no tool or operation accepts a raw API key. Optional pageId targets the public Stagehand v4 Page.pageId value and returns WEB_ACCESS_INVALID_PAGE_ID when it is unknown. The runtime requires Node 22.18 or newer, matching Stagehand v4.

Safety and secret handling

Credentials are always resolved through SecretProvider. Browser, MCP, and proxy connection secrets are represented by opaque handles and are never serialized into contracts, logs, telemetry, or fixtures.

Managed deployments use SecretBackedOpaqueHandleStore with a narrowly scoped secret-reference prefix. CDP connection material is stored only as a bounded, expiring secret payload; callers receive the reference, never its value. Cross-prefix reads fail closed, expired handles are deleted before returning, and production compositions must not rely on the in-memory conformance store.

All network execution applies the non-bypassable public-network safety policy. The default policy mode is governed; provider-pass-through and public-only retain the same SSRF and secret-protection baseline. Governed mode requires an unexpired allow decision with at least one evidence reference. Authenticated provider adapters reject public-only. Direct fetch is credential-free and permits public-only, while retaining the same SSRF, redirect, sensitive-header, timeout, and body-size controls.

Direct fetch rejects non-success responses by default. Evidence workflows may explicitly accept only HTTP 404 and 410; those bounded statuses return content-addressable response data for revalidation or closure proof. Other status overrides, duplicates, and arbitrary accepted-error lists fail closed.

Native MCP and CDP connectors validate descriptors against immutable provider-owned endpoint/command manifests before connecting. Local MCP process arguments and remote MCP query/header credentials exist only for the connection lifetime, and normalized failures redact API keys and tokens.

REST retries are bounded and limited to idempotent requests. Target and redirect validation blocks embedded credentials, loopback, private, link-local, and metadata networks. Webhook bodies, SSE streams, and provider responses have configurable size limits.

Verification

Deterministic fixtures cover every advertised operation plus REST/SDK parity, polling, cancellation, retries, normalized errors, SSE framing, webhook ingress, CDP cleanup, proxy encoding, SSRF defenses, and MCP credential redaction. bun run live:plan prints the canonical 132-row live qualification plan. Fifty-three supported or account-gated rows declare an executable probe mode, exact operation/evidence references, and required environment; seventy-nine unsupported rows remain non-executable with a reason. REST/SDK, x402, webhook callbacks, CDP sessions, research SSE, hosted/local native MCP, OSINT MCP, and every proxy protocol are separate proof rows.

bun run test:live requires WEB_ACCESS_LIVE_CONFIRM=YES, executes eleven REST smoke probes, and verifies the complete receipt set named by WEB_ACCESS_LIVE_RECEIPT_PATH against WEB_ACCESS_LIVE_RELEASE_SHA. Every supported/account-gated row must be passed with request/response digests and evidence; unsupported rows must remain unsupported. Missing, duplicate, blocked, failed, unknown, evidence-free, or stale-SHA receipts fail the command. The command cannot promote eleven REST calls into full provider qualification. Receipt JSON is parsed as untrusted input with bounded fields, and a narrowed copy of the capability plan cannot be substituted for the canonical matrix.

Specialized probes additionally declare their required callback URL, browser, research, native MCP, OSINT MCP, x402, or safe proxy-target inputs in the plan. runWebAccessLiveQualification accepts a credential-owning probe executor and produces redacted, cancellation-aware receipts for the complete plan. The package never accepts raw secrets or payment keys inside receipt JSON.

See @lssm-tech/lib.contracts-integrations/integrations/web-access for the public contracts, same-file WebAccessOperationsDocBlock, provider inventory, and pinned claim-level capability ledger. The operator matrix and provider-selection guidance are published at /docs/integrations/web-access.

Declared capabilities.

Integration Provider Web Access

Governed web access, scraping, browser, MCP, and residential proxy integrations.

Use it to

  • Adopt governed web access, scraping, browser, mcp, and residential proxy integrations

Requires

  • TypeScript

Choose another boundary when

  • The @lssm-tech/integration.provider-web-access package constraints do not match the target runtime or platform.

@lssm-tech/integration.provider-web-access

@lssm-tech/integration.provider-web-access/adapters

@lssm-tech/integration.provider-web-access/adapters/bright-data

@lssm-tech/integration.provider-web-access/adapters/bright-data-content

@lssm-tech/integration.provider-web-access/adapters/bright-data-jobs

@lssm-tech/integration.provider-web-access/adapters/bright-data-rest

@lssm-tech/integration.provider-web-access/adapters/bright-data-support

@lssm-tech/integration.provider-web-access/adapters/browserbase

@lssm-tech/integration.provider-web-access/adapters/browserbase-resources

@lssm-tech/integration.provider-web-access/adapters/browserbase-rest

@lssm-tech/integration.provider-web-access/adapters/browserbase-support

@lssm-tech/integration.provider-web-access/adapters/linkup

Imports and export paths.

63 entries

These are package-manifest entry points. Named symbols listed above come from the capability catalogue; this is not an exhaustive TypeScript symbol reference.

63 imports · showing 35

@lssm-tech/integration.provider-web-access/cdp

Dependencies and related packages.

Runtime dependencies 13
@brightdata/sdk
^1.2.0
@browserbasehq/sdk
^2.19.1
@browserbasehq/stagehand
^4.1.0
@tavily/core
^0.7.12
ai
catalog:ai
https-proxy-agent
^9.1.0
linkup-sdk
^3.7.0
playwright-core
^1.62.1
proxy-agent
^8.0.2
socks-proxy-agent
^10.1.0
zod
catalog:
Development dependencies 5
@types/bun
catalog:types
typescript
catalog:

Package scripts.

Commands declared by this package. Review its setup requirements before running them; no command here was executed by this review.

buildcontractspec-bun-build build
build:bundlecontractspec-bun-build transpile
build:typescontractspec-bun-build types
cleanrimraf dist .turbo
lint:checknode ../../../scripts/biome.cjs check .
lint:fixnode ../../../scripts/biome.cjs check --write .
live:planbun run scripts/live-qualification-plan.ts
testbun test
test:liveCONTRACTSPEC_WEB_ACCESS_LIVE=1 bun test src/live-smoke.test.ts src/live-receipt-set.test.ts
prebuildcontractspec-bun-build prebuild
typechecktsgo --noEmit
Your view

Make room for your context.

Shape the presentation around this moment. You can change it whenever you need.

Your context

The different parts of you

Choose a starting point

A useful mix of context, visuals and gentle guidance.

Tune each dimension
Each dimension can change independently. Product permissions and available actions stay unchanged.

Support the way you begin and return

Tune your support

Reading comfort

Choose your language

Interface language changes text only. Markets, prices and workflows keep their own settings.

Translation coverage

Original source

Navigation151
Graph616
Categories378
Portfolio833
Examples2,035
Source preview1,542

More translations will be added as content is reviewed.

This preference is saved on this browser.

Search the website

Useful starting points

No results. Try a shorter phrase, an operation name or another search area.

A LITTLE ROOM TO EXPLORE

Find something to explore.

Open a closer look on this page, try a different perspective, or follow the detail into its own page.

How previews and controls work
01

Look before you leave

Hover a link or focus it with Tab to see a preview. Clicking the original link or pressing Enter always opens its destination.

02

Stay with the context

Move into the preview to explore its sections. Use Alt + ↓ from a focused link to enter it with the keyboard. Escape closes it.

03

Open the possibilities

Disclosure rows, perspective choices and highlighted controls reveal more. Your view changes reading comfort and the context you explore.

A separate button for a closer look

Show small preview buttons beside links where there is room. Tap the eye to inspect, or tap the link to go straight there. This choice stays in this tab.

No browsing history is collected. Reduced motion follows your device and Your view.