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 déclarations · les 6 premières affichéesSELECT 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

Fournisseur REST SDK TypeScript Webhook WebSocket / SSE MCP natif Proxy
Bright Data Oui @brightdata/sdk Delivery callback with IP allowlist Browser API over CDP WebSocket Hébergé et local HTTP, HTTPS, SOCKS with remote DNS
Massive Oui Non annoncé Async render callback Browser render over CDP WebSocket Non annoncé HTTP, HTTPS, SOCKS résidentiels
Browserbase Oui @browserbasehq/sdk + Stagehand v4 Non annoncé Session CDP WebSocket Hébergé et local Session-managed residential or custom
Serper Yes, all ten result categories Non annoncé Non annoncé Non annoncé Non annoncé Non annoncé
Linkup Yes, including x402 linkup-sdk Non annoncé Non annoncé Hébergé et local Non annoncé
Tavily Oui @tavily/core Non annoncé Research SSE Hosted and local; API key or OAuth Non annoncé
Récupération directe Oui Aucune Aucune Aucune Projection ContractSpec uniquement Aucune
Reworkd Oui No public TypeScript client bound No receiver bound Aucune Projection ContractSpec uniquement Aucune
Firecrawl Oui Not bound; REST preferred Documented, receiver not bound No operation stream bound Documenté, non lié Aucune
Apify Oui Not bound; REST preferred Documented, receiver not bound Aucune Documenté, non lié Aucune
Oxylabs Oui Aucune No receiver bound Aucune 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 · 35 affichés

@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
Votre vue

Make room for your context.

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

Votre contexte

The different parts of you

Choose a starting point

Un mélange utile de contexte, de visuels et de guidage discret.

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

Confort de lecture

Choisir votre langue

La langue de l’interface change uniquement le texte. Les marchés, les prix et les parcours conservent leurs propres paramètres.

Couverture des traductions

Une partie du contenu est affichée en anglais.

Navigation151
Graphe616
Catégories378
Portfolio833
Exemples2 035
Aperçu de la source1 542

D’autres traductions seront ajoutées à mesure que le contenu sera relu.

Cette préférence est enregistrée dans ce navigateur.

Rechercher sur le site

Des points de départ utiles

Aucun résultat. Essayez une expression plus courte, un nom d’opération ou un autre périmètre de recherche.

UN PEU DE PLACE POUR EXPLORER

Trouvez quelque chose à explorer.

Ouvrez un aperçu détaillé sur cette page, essayez une autre perspective ou suivez le détail vers sa propre page.

Fonctionnement des aperçus et des commandes
01

Regarder avant de partir

Survolez un lien ou sélectionnez-le avec Tab pour voir un aperçu. Cliquer sur le lien d’origine ou appuyer sur Entrée ouvre toujours sa destination.

02

Rester dans le contexte

Entrez dans l’aperçu pour explorer ses sections. Depuis un lien sélectionné, utilisez Alt + ↓ pour y entrer au clavier. Échap le ferme.

03

Ouvrir les possibilités

Les lignes dépliables, les choix de perspective et les commandes mises en évidence révèlent davantage. Votre vue adapte le confort de lecture et le contexte exploré.

Un bouton séparé pour voir de plus près

Affichez de petits boutons d’aperçu à côté des liens quand l’espace le permet. Touchez l’œil pour examiner ou le lien pour y aller directement. Ce choix reste dans cet onglet.

Aucun historique de navigation n’est collecté. La réduction des animations suit votre appareil et Votre vue.