Root cause: package.json `main` pointed at `dist/daemon.js` (the internal daemon process), so programmatic consumers of the package received the daemon module instead of a usable API. Additionally, `BrowserManager.launch()` required IPC-only fields (`id`, `action`), and `navigate()` existed only as a private function inside actions.ts. Changes: - Add src/index.ts as the public package entry point - Add BrowserLaunchOptions type (Pick<LaunchCommand> minus id/action/engine) to decouple the programmatic API from the IPC wire protocol - Change launch() signature from LaunchCommand to BrowserLaunchOptions - Add BrowserManager.navigate(url, options?) — consolidates domain check, scoped-header setup, and page.goto() into one reusable method; auto- recovers a new page when all pages have been closed (stale session) - Add BrowserManager.getUrl() and getTitle() convenience methods - Update package.json: main → ./dist/index.js, add types and exports["."] - Add tests: navigate() with headers, waitUntil, allowedDomains blocking, allowedDomains allow, non-http(s) scheme blocking, getUrl/getTitle, and compile-time type assertions verifying the public entry exports the right API surface (direct repro of #307) Fixes #307 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
95 lines
3.5 KiB
JSON
95 lines
3.5 KiB
JSON
{
|
|
"name": "agent-browser",
|
|
"version": "0.18.0",
|
|
"description": "Headless browser automation CLI for AI agents",
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"import": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
},
|
|
"./package.json": "./package.json"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"bin",
|
|
"scripts",
|
|
"skills"
|
|
],
|
|
"bin": {
|
|
"agent-browser": "./bin/agent-browser.js"
|
|
},
|
|
"scripts": {
|
|
"prepare": "husky",
|
|
"version:sync": "node scripts/sync-version.js",
|
|
"version": "npm run version:sync && git add cli/Cargo.toml",
|
|
"build": "tsc",
|
|
"build:native": "npm run version:sync && cargo build --release --manifest-path cli/Cargo.toml && node scripts/copy-native.js",
|
|
"build:linux": "npm run version:sync && docker compose -f docker/docker-compose.yml run --rm build-linux",
|
|
"build:macos": "npm run version:sync && (cargo build --release --manifest-path cli/Cargo.toml --target aarch64-apple-darwin & cargo build --release --manifest-path cli/Cargo.toml --target x86_64-apple-darwin & wait) && cp cli/target/aarch64-apple-darwin/release/agent-browser bin/agent-browser-darwin-arm64 && cp cli/target/x86_64-apple-darwin/release/agent-browser bin/agent-browser-darwin-x64",
|
|
"build:windows": "npm run version:sync && docker compose -f docker/docker-compose.yml run --rm build-windows",
|
|
"build:all-platforms": "npm run version:sync && (npm run build:linux & npm run build:windows & wait) && npm run build:macos",
|
|
"build:docker": "docker build -t agent-browser-builder -f docker/Dockerfile.build .",
|
|
"release": "npm run version:sync && npm run build && npm run build:all-platforms && npm publish",
|
|
"start": "node dist/daemon.js",
|
|
"dev": "tsx src/daemon.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"format": "prettier --write 'src/**/*.ts'",
|
|
"format:check": "prettier --check 'src/**/*.ts'",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e:dogfood": "vitest run test/e2e/dogfood.eval.ts",
|
|
"bench": "pnpm build && tsx test/benchmarks/run.ts",
|
|
"bench:node": "pnpm build && tsx test/benchmarks/run.ts --node-only",
|
|
"bench:native": "pnpm build && tsx test/benchmarks/run.ts --native-only",
|
|
"bench:engine": "pnpm build && tsx test/benchmarks/run.ts --engine",
|
|
"postinstall": "node scripts/postinstall.js",
|
|
"changeset": "changeset",
|
|
"ci:version": "changeset version && pnpm run version:sync && pnpm install --no-frozen-lockfile",
|
|
"ci:publish": "pnpm run version:sync && pnpm run build && changeset publish"
|
|
},
|
|
"keywords": [
|
|
"browser",
|
|
"automation",
|
|
"headless",
|
|
"playwright",
|
|
"cli",
|
|
"agent"
|
|
],
|
|
"license": "Apache-2.0",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/vercel-labs/agent-browser.git"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/vercel-labs/agent-browser/issues"
|
|
},
|
|
"homepage": "https://github.com/vercel-labs/agent-browser#readme",
|
|
"dependencies": {
|
|
"node-simctl": "^7.4.0",
|
|
"playwright-core": "^1.57.0",
|
|
"webdriverio": "^9.15.0",
|
|
"ws": "^8.19.0",
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "^0.2.52",
|
|
"@changesets/cli": "^2.29.8",
|
|
"@types/node": "^20.10.0",
|
|
"@types/ws": "^8.18.1",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^15.2.11",
|
|
"playwright": "^1.57.0",
|
|
"prettier": "^3.7.4",
|
|
"tsx": "^4.6.0",
|
|
"typescript": "^5.3.0",
|
|
"vitest": "^4.0.16"
|
|
},
|
|
"lint-staged": {
|
|
"src/**/*.ts": "prettier --write"
|
|
}
|
|
}
|