TypeScript Predicate-Runtime SDK
Playwright session + snapshots + selector DSL + real actions.
The SDK collects coarse UI geometry locally (extension) and refines/ranks via /v1/snapshot.
- snapshot(browser, ...): compact element list + metadata
- find(snapshot, selector): returns first match or null
- click(...): mouse-driven click by default
import { SentienceBrowser, snapshot, find, click } from "@sentienceapi/sdk"
const b = await SentienceBrowser.launch({ apiKey: "sk_live_…" })
await b.page.goto("https://example.com")
const snap = await snapshot(b, {
limit: 50,
filter: { min_area: 100, allowed_roles: ["button", "textbox"] }
})
const login = find(snap, "role=button text~'Sign in'")
await click(b, login.id)
await b.close()