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 declaraciones · se muestran las primeras 6SELECT 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 Ninguna Ninguna Ninguna ContractSpec projection only Ninguna
Reworkd Yes No public TypeScript client bound No receiver bound Ninguna ContractSpec projection only Ninguna
Firecrawl Yes Not bound; REST preferred Documented, receiver not bound No operation stream bound Documented, not bound Ninguna
Apify Yes Not bound; REST preferred Documented, receiver not bound Ninguna Documented, not bound Ninguna
Oxylabs Yes Ninguna No receiver bound Ninguna 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 importaciones · se muestran 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
Tu vista

Make room for your context.

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

Tu contexto

The different parts of you

Choose a starting point

Una mezcla útil de contexto, imágenes y orientación discreta.

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

Comodidad de lectura

Elige tu idioma

El idioma de la interfaz solo cambia el texto. Los mercados, precios y flujos de trabajo conservan sus propios ajustes.

Cobertura de traducción

Parte del contenido se muestra en inglés.

Navegación151
Grafo616
Categorías188
Portafolio332
Ejemplos2035
Vista previa de la fuente41

Se añadirán más traducciones a medida que se revise el contenido.

Esta preferencia se guarda en este navegador.

Buscar en el sitio web

Puntos de partida útiles

Sin resultados. Prueba una frase más corta, un nombre de operación u otro ámbito de búsqueda.

UN POCO DE ESPACIO PARA EXPLORAR

Encuentra algo que explorar.

Abre una vista detallada en esta página, prueba otra perspectiva o sigue el detalle a su propia página.

Cómo funcionan las vistas previas y los controles
01

Mirar antes de salir

Pasa el cursor por un enlace o enfócalo con Tab para ver una vista previa. Hacer clic en el enlace original o pulsar Intro siempre abre su destino.

02

Mantener el contexto

Entra en la vista previa para explorar sus secciones. Usa Alt + ↓ desde un enlace enfocado para entrar con el teclado. Escape la cierra.

03

Abrir las posibilidades

Las filas desplegables, las perspectivas y los controles destacados revelan más. Tu vista cambia la comodidad de lectura y el contexto que exploras.

Un botón separado para mirar más de cerca

Muestra pequeños botones de vista previa junto a los enlaces donde haya espacio. Toca el ojo para inspeccionar o el enlace para ir directamente. Esta elección permanece en esta pestaña.

No se recoge historial de navegación. El movimiento reducido sigue tu dispositivo y Tu vista.