{
  "name": "hanzi-browse",
  "version": "2.4.0",
  "description": "Give your AI agent a real browser — click, type, fill forms, test workflows, post content, and read authenticated pages",
  "license": "PolyForm-Noncommercial-1.0.0",
  "author": "hanzili",
  "repository": {
    "type": "git",
    "url": "https://github.com/hanzili/hanzi-browse.git"
  },
  "type": "module",
  "bin": {
    "hanzi-browse": "./dist/index.js",
    "hanzi-browser": "./dist/cli.js",
    "hanzi-relay": "./dist/relay/server.js"
  },
  "files": [
    "dist",
    "skills",
    "README.md"
  ],
  "scripts": {
    "build": "tsc && rm -rf dist/managed/templates && cp -r src/managed/templates dist/managed/templates && cp src/agent/domain-skills.json dist/agent/domain-skills.json && cd dashboard && npm run build",
    "build:server": "tsc",
    "build:dashboard": "cd dashboard && npm run build",
    "dev": "tsc --watch",
    "start": "node dist/index.js",
    "cli": "node dist/cli.js",
    "test": "vitest run",
    "test:live": "npx tsx test/test-live.ts",
    "test:followup": "npx tsx test/test-followup.ts",
    "eval:domain": "tsx evals/domain-runner.ts",
    "eval:domain:managed": "tsx evals/domain-runner-managed.ts",
    "eval:skill-recall": "tsx evals/skill-recall.ts"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.25.3",
    "@sentry/node": "^10.46.0",
    "better-auth": "^1.5.5",
    "cron-parser": "^5.5.0",
    "pg": "^8.11.3",
    "posthog-node": "^5.21.2",
    "stripe": "^20.4.1",
    "undici": "^7.24.5",
    "ws": "^8.19.0"
  },
  "devDependencies": {
    "@types/node": "^20.11.0",
    "@types/pg": "^8.18.0",
    "@types/ws": "^8.18.1",
    "tsx": "^4.21.0",
    "typescript": "^5.3.0",
    "vitest": "^4.1.1",
    "yaml": "^2.8.3"
  },
  "engines": {
    "node": ">=18.0.0"
  },
  "keywords": [
    "mcp",
    "browser",
    "chrome",
    "automation",
    "claude",
    "model-context-protocol",
    "browser-automation",
    "web-agent"
  ]
}
