{"_id":"browser-gateway","_rev":"45-0aff9f5f89a4b9dc3231ba458b28aa4c","name":"browser-gateway","dist-tags":{"latest":"0.4.25"},"versions":{"0.0.1":{"name":"browser-gateway","version":"0.0.1","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","playwright","puppeteer","headless","browserless","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.0.1","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://github.com/browser-gateway/browser-gateway","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/index.js"},"dist":{"shasum":"39458897b7aff2521c02757e821b07ab23c3562d","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.0.1.tgz","fileCount":3,"integrity":"sha512-MftWKvswIeO7+p4ST1wudT11gQhu+25q5MpXR/eZ+wcBt/uaRwcCzwEWqAwNmDIjxW53pYG8T9J838X5zu7HFg==","signatures":[{"sig":"MEQCIHNfZqgXCYyptimDc31wHKdxSR0aQiMtmr7+gjCVYq+eAiBVnwRLidAx8H3TrcQOZ9icc3gKGBtgAtNoXoxm/9WW6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4007},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.0.0"},"scripts":{"dev":"tsx watch src/index.ts","lint":"tsc --noEmit","test":"vitest","build":"tsc","start":"node dist/index.js","test:run":"vitest run"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"The Unified Interface for Headless Browsers. Route, balance, and failover across any CDP endpoint.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","yaml":"^2.8.3","drizzle-orm":"^0.45.1","better-sqlite3":"^12.8.0","@hono/node-server":"^1.19.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.1.1","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.0.1_1774451652208_0.9101063658192183","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"browser-gateway","version":"0.1.0","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.0","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"c9838d0f15c53526b9fead1b6d33f3eea6deb292","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.0.tgz","fileCount":59,"integrity":"sha512-xnMzHrvKcfKOlIZr6/3ldt14octA0Vd5rywPXt9xLRrHj0+RiJRICC774VVi2X4C6zoTYIsGUqkdtv57uPN24Q==","signatures":[{"sig":"MEUCIGaeD5+8PD9Sq+E7rn3NzNb2XfOZSmwWoMqmRoRGzLW8AiEA89taMYxKoEcC4uWOT3FMtFc89dC2O/4pTxuHhBKumHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94947},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"22f612a577714af42072615e13f3a5843091c87f","scripts":{"dev":"tsx watch src/server/index.ts","lint":"tsc --noEmit","test":"vitest","build":"tsc","start":"node dist/server/index.js","publish":"npm run build && npm publish --access public","test:run":"vitest run","prepublishOnly":"npm run build"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"The Unified Interface for Headless Browsers. Route, balance, and failover across any CDP endpoint.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","@hono/node-server":"^1.19.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","pino-pretty":"^13.0.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.0_1774470739533_0.013667152715619801","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"browser-gateway","version":"0.1.2","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.2","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"a64fe8eb312464f3d2f74bb97e61a8209a3fe5d5","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.2.tgz","fileCount":169,"integrity":"sha512-K13VZVr8UNH7IHFQ5J7OXALtem472RivhokSNuNhGv3/P1CUveGyH8561msEE0qYmL0YdQngS4j+FtGaocQspw==","signatures":[{"sig":"MEUCIDnNhTkrkpwQGH4aVdfYBo6pbvAOMM7PBU6m4rlT1cQeAiEAlWX8IKiNGod9yhvLq/nYBF7MyJRDjhbmweygJ8FUuHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2585611},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"23c4b88f16e9d024f160ba380acdf3e08e866972","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish --access public","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"The Unified Interface for Headless Browsers. Route, balance, and failover across any CDP endpoint.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","@hono/node-server":"^1.19.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","pino-pretty":"^13.0.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.2_1774617762329_0.34511558368901785","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"browser-gateway","version":"0.1.3","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.3","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"6b978f51c011f407cb7f1a865863667b507fb877","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.3.tgz","fileCount":169,"integrity":"sha512-2gv/l0mVxgySE+uM4mE3rys7z6c59+pBGcK/UnzNHJEbWvxDninV9RpXHE18ms4ku8TkrFDlnWurOqQme3PqQw==","signatures":[{"sig":"MEUCIQCgFzGbpGNQEmZmJDZtcRYs46RCf6bb+/+8KoHn1/FsWgIgfUEKR/MBP4YmAw0VxDYpSZ0PNPwDxEdNroPhDuqDBhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2585611},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"23c4b88f16e9d024f160ba380acdf3e08e866972","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish --access public","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"The Unified Interface for Headless Browsers. Route, balance, and failover across any CDP endpoint.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","pino-pretty":"^13.0.0","@hono/node-server":"^1.19.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.3_1774620324426_0.8582552867718463","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"browser-gateway","version":"0.1.4","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.4","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"786d2b20a7fc2e726fbf87bc7e0d0ad77c09fb88","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.4.tgz","fileCount":173,"integrity":"sha512-wp48+ZjW9RJoV0QnitzcQhQuUhV4jF+Vokg6swbcOozoEC7QJnnqIDkrrJPGDT1UZjqxf86XSp0mM99inr6+uw==","signatures":[{"sig":"MEYCIQDXP92LsW1O3dk8LFnqI1/abQ0NKSAQf86AXW/k/BRZdwIhANvWvGDM1bxhdMFnhxuUoYeeRcaoDdpoitpyUTPgdzPI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2616703},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1ee8b58ae7bb01b9872e837174bb72f0149351c0","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish --access public","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"The Unified Interface for Headless Browsers. Route, balance, and failover across any CDP endpoint.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","pino-pretty":"^13.0.0","@hono/node-server":"^1.19.11"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.4_1774687996314_0.3017013000899922","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"browser-gateway","version":"0.1.5","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.5","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"b4d74e0831167052a12ed8baea59c2d8fec25fbe","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.5.tgz","fileCount":197,"integrity":"sha512-YJzCWhjrUTJLpMBZgq8S2DtScjE+uP94tjhktFMuBDbeS/tkTUPA50m/j58Ff3aCAt6rpcXlY62hILtWaIfHvg==","signatures":[{"sig":"MEUCIQC2XOsCMR2UC1j3SfqO75iPkc3p8GrBVl1IUYj9ecbLUQIgL3xmgU9i7lnjvRRkjF9sonhB9OJWibihdq7ySgFqZ58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2719476},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a57fa30e909e02330b14012b5613814fe24ef82f","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish --access public","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","@hono/node-server":"^1.19.11","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.5_1774839102554_0.5270062248357885","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"browser-gateway","version":"0.1.6","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.6","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"ef73d2e9562c489dd12eeafa62e57dca8edc7c80","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.6.tgz","fileCount":197,"integrity":"sha512-9TvQ3eSD49MusAXXdqkotsxozxSMz1SWrPhOZmoD5fjYqMvKIHnSJPD9lDVSD9fW99sLg58xKVZaQnaQzZz6/w==","signatures":[{"sig":"MEYCIQDEDqAjoVs3bpoi+CbfgcSUHxhpmyzTlLZLvVX+Wp3vWAIhAL4RiV+sR+YzEJ+U5YpUhPMepIwtp20pnJDKGm652Zbm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2719575},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"15902adffb3dd0da0a57b90f714fe651ffbdd843","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","@hono/node-server":"^1.19.11","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.6_1774858788251_0.7301201077528188","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"browser-gateway","version":"0.1.7","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.7","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"46054c7bec7621d9484c7c5ca62f52355b60a758","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.7.tgz","fileCount":197,"integrity":"sha512-ZSOcWd5rcXaOBFtzplsVl+HudD4rrtMFE7dQzkcxxXDx4iBd/wZGpbmvuOsJT/P3J5Kvu+kHJyxzOM/FwLlM4w==","signatures":[{"sig":"MEUCIC5cxRA4WQOkon/HNWHPT6ivfIra06ZypglgQtOhJI+sAiEA3GPjmTdGCYfwaNDriCeYeiza47lc8uGawMDk8R3pfTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2721776},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"fcb471f497c33af03e39abe42d305a04f2f43349","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","@hono/node-server":"^1.19.11","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.7_1774937749351_0.3773314843613511","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"browser-gateway","version":"0.1.8","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.1.8","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"a21cf28ff91b72b0eb8b6f22aec3e063e626fba1","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.1.8.tgz","fileCount":201,"integrity":"sha512-ec9sbffJ4tzzTAYWurraFzQE4DeN6oB7ebIHH2eXQElqxiVgWdW+83pONxHhzbKcytwLAuFZQbDkOuGUGSqChQ==","signatures":[{"sig":"MEQCIDI67aQ/uG3rPNJaS4zDlZVyg7j9CJVN10hLLrn6YAQeAiA8FJfASHF9zM0XWbldNX/Wq0yZ9TM5D7vYZd9KvDy3/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2732245},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"2e2d07652d6cebe859bcf8ada5d74c69263e33c1","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm run build:all && npm publish","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","@hono/node-server":"^1.19.11","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","playwright-core":"^1.58.2"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.1.8_1775047010453_0.04001945844209209","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"browser-gateway","version":"0.2.0","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.2.0","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.io","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"6d536b4eae06c1f73a045bb55de355573f83eeab","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.2.0.tgz","fileCount":241,"integrity":"sha512-EoMCTpAPA2PKpxDFiiUa+LHBKVcAI8QyO7P+avjXAZRy5SbEN1b6KEey3/TNsmglC/WvcylC1PA3EM1y2tF/NQ==","signatures":[{"sig":"MEQCIGkzPPdObAN6jpCcbuKgl9fEtfMGMnIthuEy+gDdBd5sAiATfmE6/DLBdjbzseYo/dyYYy3G07NYB3zVVm+yq+p4+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2832359},"main":"dist/server/index.js","type":"module","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"8c1e6868b424080238f0f63e5d57b4e4e4171c4b","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","publish":"npm publish","test:run":"vitest run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.20.0","zod":"^4.3.6","hono":"^4.12.9","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","@hono/node-server":"^1.19.11","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^3.1.0","@types/ws":"^8.18.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.2.0_1775925384390_0.6914648189624801","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"browser-gateway","version":"0.3.0","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.3.0","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"c5fb726a56b796712991dd3460003edf40967064","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.0.tgz","fileCount":745,"integrity":"sha512-z2TyuccTi+nhIaEqVnWAEbUbN2Be2yqpJx9xl3MLTefrlMAK31hG+TRGH4U1Btf/0XN4EUmT/iEXMtLOu9Y4hQ==","signatures":[{"sig":"MEQCIBHgpZsovNlNMM8mZT5kf+V1lbJjwI710riRkjXDmt39AiAgSY9c5hs3oGj46zjJPvGZ0VeMb1ptby2AUsZBtqPL+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15148939},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.0.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.0.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-z2TyuccTi+nhIaEqVnWAEbUbN2Be2yqpJx9xl3MLTefrlMAK31hG+TRGH4U1Btf/0XN4EUmT/iEXMtLOu9Y4hQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.0_1782474691005_0.7929783667647294","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"browser-gateway","version":"0.3.1","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.3.1","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"446a822175a882592551bbe7d55e7e095331ad5e","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.1.tgz","fileCount":753,"integrity":"sha512-Ny0FuM4DYayAnjPjvESn/sxl24cTjV00DFl+o2t++Xw+Am3pmgYzM9OTrHqxLaM27ITCOeRxLKwafhzXtk4klA==","signatures":[{"sig":"MEYCIQCyYZmh2rIv1bQW1pvzxs60Wev0X4POJrI3rGVi6Z1llwIhALzmFcXOAanOflHA01jobFryhbYUXhAPWm8fuZdClooh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15169408},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.1.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.1.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-Ny0FuM4DYayAnjPjvESn/sxl24cTjV00DFl+o2t++Xw+Am3pmgYzM9OTrHqxLaM27ITCOeRxLKwafhzXtk4klA==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.1_1782572397128_0.3915600205759955","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"browser-gateway","version":"0.3.2","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.3.2","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"27ec286e017c5205de4b3c8c74095dcc7866983c","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.2.tgz","fileCount":765,"integrity":"sha512-EaTLRBvw2ECfazAcF0TxH0v/jt1eUkx6kWxLXXzdcQ4ASG/FbfV+Mre1smskzRaNBBUiiXMvTOYO+9CJCpH7fQ==","signatures":[{"sig":"MEUCIDeGtKP52IDW54DPkkHNGCImXOA4EvLCLJTNL+XzwryMAiEA/c6eBqU9V7OPAVmQ0wIlbPpKT6ptPxGdjn+7vo3zjKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15180655},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.2.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.2.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-EaTLRBvw2ECfazAcF0TxH0v/jt1eUkx6kWxLXXzdcQ4ASG/FbfV+Mre1smskzRaNBBUiiXMvTOYO+9CJCpH7fQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.2_1782593518140_0.39765110395088166","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"browser-gateway","version":"0.3.3","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.3.3","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"5eb42dbbd3a04bcaf051826ecfd9642b1049679c","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.3.tgz","fileCount":765,"integrity":"sha512-u3awWgt39tmLwwIndJ3ZWd1WQOD3RU/1g8OyLid6TAPvogWAi5Ehm++YeVuq7ahZK/5ZfuDegxc/dYr9Yh2XiQ==","signatures":[{"sig":"MEUCIQCb9mc4A4wRzF6oifZkfAxKrIJIHv7jLfkvlbtEA6fZFwIgN4i7kTxvpzAd2//czgUZXTkPDli7krwtBhi2zKVMBdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15187631},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.3.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.3.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-u3awWgt39tmLwwIndJ3ZWd1WQOD3RU/1g8OyLid6TAPvogWAi5Ehm++YeVuq7ahZK/5ZfuDegxc/dYr9Yh2XiQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.3_1782621897100_0.48361788764033586","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"browser-gateway","version":"0.3.4","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.3.4","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"1e060f65623229838d33a4e4aaede2d58144ce4c","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.4.tgz","fileCount":765,"integrity":"sha512-siNxmxDL6gzYjKclLfy1cNcoUDqvOLCFbMM6C80WfKs1CRASyap2b9UbcU1w/u6jXsboT+N12xX9iJokoeC0kQ==","signatures":[{"sig":"MEYCIQDDWlPm6JQUwywyca7PqC1M6+UDl/rpLosn8AtpCxoOgQIhAM8ch5+x3yLqOmZuF9hnQDLXrfqeuxMBo2vyfOLB0S0F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15203189},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.4.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.4.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-siNxmxDL6gzYjKclLfy1cNcoUDqvOLCFbMM6C80WfKs1CRASyap2b9UbcU1w/u6jXsboT+N12xX9iJokoeC0kQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.4_1782644652933_0.05583053836652252","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"browser-gateway","version":"0.3.5","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"name":"browser-gateway"},"license":"MIT","_id":"browser-gateway@0.3.5","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"d86767fe734d6432f299ddcf13a5298c2e0bd8bd","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.5.tgz","fileCount":815,"integrity":"sha512-JRnNFAAVa2mAX0jbegP7f7Bg2d7llI0bstQ8EOzfk/dXHfaM4UQac21ouWO/4WJ6WCNZ8krdxjBFfzpfM8AsuA==","signatures":[{"sig":"MEUCIQCvho5pV2vUwmcoTLH1GjobiS476yIDDMVs3cxXmW57KwIgMt0wdpBXGXFmaQrHy9hOI0yaIIHWF/byxPeoRqMYjBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15362630},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.5.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.5.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-JRnNFAAVa2mAX0jbegP7f7Bg2d7llI0bstQ8EOzfk/dXHfaM4UQac21ouWO/4WJ6WCNZ8krdxjBFfzpfM8AsuA==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.2","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.5_1782764744624_0.4870856714646945","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"browser-gateway","version":"0.3.6","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.3.6","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"7e02543461d3726a2df12c1a6606dfe5e3ad4339","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.6.tgz","fileCount":815,"integrity":"sha512-cwclLeyw2ZNg0Ux++7yKwBXTxoW37OhoxZ6IduZnn72cH7pw+IdNCimtbjGeKeYBY3rbny6Lwq9Mn1XAj7CSgg==","signatures":[{"sig":"MEUCIQDAchiuZFVbSQW0jYfUfDbZM9offJ78JF7uLUeEegiT2gIgFr4lYGZw/CUpg+ys0vTaQBTrIM+VokqzfLhxYx2G80c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15373195},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.6.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.6.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-cwclLeyw2ZNg0Ux++7yKwBXTxoW37OhoxZ6IduZnn72cH7pw+IdNCimtbjGeKeYBY3rbny6Lwq9Mn1XAj7CSgg==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"Reliable, scalable browser infrastructure for AI agents.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.6_1784098499817_0.024967026610352994","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"browser-gateway","version":"0.3.7","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.3.7","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"a010626591ad04bdd64272674b99b0c132853fa8","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.7.tgz","fileCount":843,"integrity":"sha512-KrXuyxT2Ffj9pcmrEYcIz6uqamoyWr4OYgTkpVxZ9PkigxrLW3cDg+C+p997qIAc/ONlpGZz2lr1xCEchasKSg==","signatures":[{"sig":"MEYCIQD5ns6ssjF5ZFNtfRqjceQ014gWu624G8XbbyCXz7BHJAIhAMfX3pV8SxskClKwtIo9y0NUyI8Pt2sCVMqPcL/69s+t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15580926},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.7.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.7.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-KrXuyxT2Ffj9pcmrEYcIz6uqamoyWr4OYgTkpVxZ9PkigxrLW3cDg+C+p997qIAc/ONlpGZz2lr1xCEchasKSg==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.7_1784905250226_0.6361275080069806","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"browser-gateway","version":"0.3.8","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.3.8","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"b9b83a38e3e56564e4acf10268dcb41aa457c45a","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.3.8.tgz","fileCount":847,"integrity":"sha512-xU0Y9zPE1cZil8MDJeKkdJNy06gjdk6BQbq8MsPG1TjIp9Adoe9h5o1g7Z4zCbiz5nGpEIb5fwptReKLfcHpnw==","signatures":[{"sig":"MEUCIQCqkfol2tIWW0Y4BHwjwwPhjFy36ls5PbNc6sLlekEEHAIgHPN7kJ2NvkHvFm2kG61ejDtKGojkNfleHoo4EGVQ0dE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15585063},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.3.8.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.3.8.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-xU0Y9zPE1cZil8MDJeKkdJNy06gjdk6BQbq8MsPG1TjIp9Adoe9h5o1g7Z4zCbiz5nGpEIb5fwptReKLfcHpnw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.3.8_1784981859734_0.43393836124770546","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"browser-gateway","version":"0.4.0","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.0","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"69735c683663d523d4fb17a3cd0b7b1be46d93bf","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.0.tgz","fileCount":860,"integrity":"sha512-07S5Td4jTNH87MLV+mtoCsbAODqBX81chZ8L/E+EjCGiMHQdUzWlUMM2Y7sr4f3AxS/WUFy4Q6sKFfrpI8JAHg==","signatures":[{"sig":"MEYCIQCig/KxXjW4WHFXtIFP09uD8a8p+nbErSabpiI9HXhb6gIhAIBq/HlOqIUp3HpuWhEEzhxzy/8/u4gScOF9PSCkKYPw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15411253},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.0.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.0.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-07S5Td4jTNH87MLV+mtoCsbAODqBX81chZ8L/E+EjCGiMHQdUzWlUMM2Y7sr4f3AxS/WUFy4Q6sKFfrpI8JAHg==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.0_1785104900797_0.8310734178494339","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"browser-gateway","version":"0.4.1","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.1","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"d6bf9af5654a667219024d83b22bd752fcbe1cb5","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.1.tgz","fileCount":884,"integrity":"sha512-585ta3AneF27qjLZJRjW0B75KV0UErmhVZVUKA9JpX15WHeHKf+uZLaAuAb3y9Y1x21h1VvrPRsCkJCZxCGIiQ==","signatures":[{"sig":"MEQCIFd+6cmpdnotwteLnfPFoeb2y7Wn/K1osGBHTC/ZRlm1AiADyydvmNucYfCj6wMmbrW6lBFV6yoEl8qmg5AHxTI54w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15440536},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.1.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.1.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-585ta3AneF27qjLZJRjW0B75KV0UErmhVZVUKA9JpX15WHeHKf+uZLaAuAb3y9Y1x21h1VvrPRsCkJCZxCGIiQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.1_1785179853312_0.5999229399852293","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"browser-gateway","version":"0.4.2","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.2","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"7e70e1a242318291c2f431cad1af0084ffeeca3c","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.2.tgz","fileCount":897,"integrity":"sha512-34QpyLlZ9LcN8jclQIwggXWxMdnyS7si75hvqenEU6bfoyahoo5TfrDQAE61nQb+q6IOfE+5qO23tI8Wa0JE4Q==","signatures":[{"sig":"MEQCIGN3FPCPzJLR/p4VdVVO3ui1HuyHTC/IfRdm4GHEOQLbAiB5sno0VNWalojzdGacofyNGxuaJt09FzGjv9/foqw4/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15732962},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.2.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.2.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-34QpyLlZ9LcN8jclQIwggXWxMdnyS7si75hvqenEU6bfoyahoo5TfrDQAE61nQb+q6IOfE+5qO23tI8Wa0JE4Q==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.2_1785369416416_0.16240932118926588","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"browser-gateway","version":"0.4.3","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.3","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"ca64e79c984caac2d42a1359e865fbd9a9133622","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.3.tgz","fileCount":883,"integrity":"sha512-+/Y9juvLxz5Jtxl0giGViUqvZx/CzXvBZmv1iSi8Us3WnliryulTvMgRlnFrWiC12g39qPA4cT8SyL+xWyet8Q==","signatures":[{"sig":"MEYCIQCrMPa3fShg5pwixHjulEjlib0h1nRY5UFoUTXEULxdWQIhANvqI9tI41twD6OkIA8aRp9W90i0dIhPmwW5A+OyOjEb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15648532},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.3.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.3.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-+/Y9juvLxz5Jtxl0giGViUqvZx/CzXvBZmv1iSi8Us3WnliryulTvMgRlnFrWiC12g39qPA4cT8SyL+xWyet8Q==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.3_1785537471505_0.2914781011453089","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"browser-gateway","version":"0.4.4","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.4","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"42f4c0e9ad6404f52c194a53e9de4b6402b6bf8e","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.4.tgz","fileCount":883,"integrity":"sha512-EDCmY+PC3qdE1LLusi9/GynxwOuu49bgRRdr8ObPfSwmMaMYUYExt7h07vJA6fd9/ladi7Faw40lYpd88jSx9Q==","signatures":[{"sig":"MEUCIEHoPUxD0/3CyAXWiyyA350tRC7AeJ36DcTum/zrMQSjAiEAqOviHkeynlOzAFcT91atIuUCg5izAqdscp+YlBzBbaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15650770},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.4.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.4.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-EDCmY+PC3qdE1LLusi9/GynxwOuu49bgRRdr8ObPfSwmMaMYUYExt7h07vJA6fd9/ladi7Faw40lYpd88jSx9Q==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.4_1785611696660_0.7829409988131126","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"browser-gateway","version":"0.4.5","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.5","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"2f0d992b622d62a428334854765316ae1c73ac08","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.5.tgz","fileCount":883,"integrity":"sha512-wmxEOqGtgpmsoXd0Iu1STLwzCyNme9JhJn4CRAXeaT8zSw8Tskgx/0bbgqBhRIdOppnepwhp/ab/y4Jc7Y0P6A==","signatures":[{"sig":"MEUCIDLPZ5cwyCTcrKTEL1gUbDc78RlMeUcP2yDpRhzQOnfnAiEAwK4R1de2jDrK9unbowFinizcgHyu0X+/IiO7V2TYleo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15661373},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.5.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.5.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-wmxEOqGtgpmsoXd0Iu1STLwzCyNme9JhJn4CRAXeaT8zSw8Tskgx/0bbgqBhRIdOppnepwhp/ab/y4Jc7Y0P6A==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.5_1785656419541_0.6563055365244546","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"browser-gateway","version":"0.4.6","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.6","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"a921e149e9622d9f7125adc6a96b3b6bd89c7cf5","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.6.tgz","fileCount":903,"integrity":"sha512-c3fGBwvh4w9Gt6tPMfezkvm/K7yHgj7xm9BJ3SKSEP1d1/D7bYn8B8VS/U/gwDp2Pgv5LbZIAtOjZwxfYZ/vQQ==","signatures":[{"sig":"MEQCIA0cq/ncf5jxOksA2vORePhFDbvdJZQSv4qakV5fl0OVAiAxt8BzmGN04Bok4q3BUWbMUYIULsas2d/uTb4fA7RlcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15705861},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.6.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.6.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-c3fGBwvh4w9Gt6tPMfezkvm/K7yHgj7xm9BJ3SKSEP1d1/D7bYn8B8VS/U/gwDp2Pgv5LbZIAtOjZwxfYZ/vQQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.6_1785687265939_0.32701473409120796","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"browser-gateway","version":"0.4.7","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.7","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"92282e62327a38301bd2cb9d7eb102f951fed716","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.7.tgz","fileCount":915,"integrity":"sha512-hI+vpL7kyKm2r19uNi7WH9ic4giCHkTwPYZI/U3Hl4JP/RiVgo6D3p/Ak7reEjUeGQscWXtNICrdMGvuVV9uAQ==","signatures":[{"sig":"MEUCIG60dGu7bCQCj88o43V/sxqDsR3dvNH6r8O7R5CU1sgRAiEAjJEaURtRssT/Ty4LPkAkepQGzKt5F1VXn46ySUlBRkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15747939},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.7.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.7.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-hI+vpL7kyKm2r19uNi7WH9ic4giCHkTwPYZI/U3Hl4JP/RiVgo6D3p/Ak7reEjUeGQscWXtNICrdMGvuVV9uAQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.7_1785703157342_0.8779251086581588","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"browser-gateway","version":"0.4.8","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.8","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"1c91a329f371f9603fd56c5149b1d25da0e09bb9","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.8.tgz","fileCount":931,"integrity":"sha512-BMbH9Rx/ysSa7YEatcNUBmQTFjcBD36BAakfcR/9PCxCwaKDSP4WhnSmMwPtGcJUpp061DzFB8D1kEZncCbZvw==","signatures":[{"sig":"MEQCIBqnQdepm6gjtVP4R5O4oNSlSxJw0xMr8argpCCodZauAiAWnpY9g4Cr8PpRJpOElzXBkME8M6R/tdyc6ikq5bHH8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15748819},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.8.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.8.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-BMbH9Rx/ysSa7YEatcNUBmQTFjcBD36BAakfcR/9PCxCwaKDSP4WhnSmMwPtGcJUpp061DzFB8D1kEZncCbZvw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.8_1785839113614_0.9598423684369584","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"browser-gateway","version":"0.4.9","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.9","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"a0074eafff9ab6d678ad327dd2a74320468988a1","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.9.tgz","fileCount":931,"integrity":"sha512-S140mSWXhXOIHgKVCFHV2bv+8vp7hx9w46a6/ZuThmFFqEOa1ZjZfEErkZvX+I67f/qaxKiysXOSSAnqKPNOEw==","signatures":[{"sig":"MEUCIQC3BwnOpihTo03wqatY+0djIHSSUMEBqyzn6FiuI6mi/QIgR3OV5PVMvWVXZ1ycGPQiG575dlikRDr2RAUOTr1ygps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15749302},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.9.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.9.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-S140mSWXhXOIHgKVCFHV2bv+8vp7hx9w46a6/ZuThmFFqEOa1ZjZfEErkZvX+I67f/qaxKiysXOSSAnqKPNOEw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.9_1785882487030_0.8249112129975267","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"browser-gateway","version":"0.4.10","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.10","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"b2e1b9184112a3006498895a2ed2e8482c7ea056","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.10.tgz","fileCount":975,"integrity":"sha512-lE4G+JLBSc1X0tXI7pUZtRBFTg8794M7ka9TzmpQ+JSToDpck4A0dspLTzXskeF5GxAbls5n1nZ8lkkdG85sKw==","signatures":[{"sig":"MEYCIQCgtj4chgvNC6pCpfkf0pWay95zVnSkkvLkZTe7zCaAvAIhAM8SrqW242GkbJGxLx8/6QS0776nBRqLweFUe8/+yRgP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15914016},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.10.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.10.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-lE4G+JLBSc1X0tXI7pUZtRBFTg8794M7ka9TzmpQ+JSToDpck4A0dspLTzXskeF5GxAbls5n1nZ8lkkdG85sKw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.10_1786437629053_0.9865222359576793","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"browser-gateway","version":"0.4.11","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.11","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"0bac9a02423f4f0b41590454cb1a92f3b582132e","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.11.tgz","fileCount":976,"integrity":"sha512-+VQ1f4r/RMA16ir75Q5BahSTRJojJY4dZ6ebB3p6Of2BaLxEDhkYJw77b3Wx3Eo43KrUxhoHjvz+UU5b5onvNA==","signatures":[{"sig":"MEYCIQCt+5dN3/6Wimtvbg1Jt/xklyAwOyyw7ZtQPlwEae5EsQIhANNp+MGeaD59zp7nVMw/vlpuw4unx8sJaExbMK4+zXwX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15852309},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.11.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.11.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-+VQ1f4r/RMA16ir75Q5BahSTRJojJY4dZ6ebB3p6Of2BaLxEDhkYJw77b3Wx3Eo43KrUxhoHjvz+UU5b5onvNA==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.11_1786577144239_0.8255130448417525","host":"s3://npm-registry-packages-npm-production"}},"0.4.12":{"name":"browser-gateway","version":"0.4.12","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.12","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"1feb70aa7972511be7b6c4bbd01e4333e14434a4","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.12.tgz","fileCount":980,"integrity":"sha512-mbZSpIJsC0E/eALzXCA83fwiugzBz9uCL+Dbp/8EHN2YPqnNg/iOkZwzCtXN1+N+cMvbTPiAAp9HB58XPnB76A==","signatures":[{"sig":"MEUCIQCPxXaHCE1e5ECHzgTpNIhU+y+phhrGtUZ2OnYtDSkKtAIgHWGpMwHzUNUxjDJpr9yQmOaovwje3Hjd3y8SZvjYnoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15891595},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.12.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.12.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-mbZSpIJsC0E/eALzXCA83fwiugzBz9uCL+Dbp/8EHN2YPqnNg/iOkZwzCtXN1+N+cMvbTPiAAp9HB58XPnB76A==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.12_1786634882242_0.7523471337942851","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"browser-gateway","version":"0.4.13","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.13","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"3c5598b816459963acebf70ef6aa59d3ca0994c1","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.13.tgz","fileCount":980,"integrity":"sha512-Bk+7ZJT/5Uyow/A3PnQNHH7dWc/FJayi9r/z3DRBt269zPNgwTmAgMJ3iWV66AWmgWVqsnjtudkJBtklPEsXHQ==","signatures":[{"sig":"MEUCIBy8M8uI4NBn8c0mIMESW7+rqFIaqbiXHk72cJ6KyJ2FAiEAseoafSu/9qcIOKcXezkzpH+s1udM4AijeV3AC2FDb2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15893564},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.13.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.13.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-Bk+7ZJT/5Uyow/A3PnQNHH7dWc/FJayi9r/z3DRBt269zPNgwTmAgMJ3iWV66AWmgWVqsnjtudkJBtklPEsXHQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.13_1787217699580_0.9101051690172102","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"browser-gateway","version":"0.4.14","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.14","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"337cea8b5cdd80d98896424c5045505707d43f78","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.14.tgz","fileCount":984,"integrity":"sha512-VAUCdA/Del3vCysrqsPj17zEVp0n6oYuQgSbvia088OiNCcRAcUH6kMxuzOdNHtsipzq+eEHDYTZnmmlgtdy6A==","signatures":[{"sig":"MEQCIBWggRij1isBFMYO4GuMYkHAFyA0zwIult2YwPJEsg4WAiBBb9bnCWgtm23/NcBYXu0eTQ/+C8LnAU6XJWA9xh88Zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15904593},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.14.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.14.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-VAUCdA/Del3vCysrqsPj17zEVp0n6oYuQgSbvia088OiNCcRAcUH6kMxuzOdNHtsipzq+eEHDYTZnmmlgtdy6A==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"^0.15.0","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"^24.40.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.14_1787605189610_0.056751773597242705","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"browser-gateway","version":"0.4.15","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.15","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"f9fbae4af4a3516ff3cc3a57f850c2389e7cf41f","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.15.tgz","fileCount":984,"integrity":"sha512-0QWgLdSu9mWFKzT5ButTmqRha39QB0OpU6ZxcNZGK6ypxaMhyQNWbL1FiK86HhDRzMfVJriS17QY6kIX7tWC7g==","signatures":[{"sig":"MEQCIHT4i00T01c8k5fzf8FSCTWs4p6ENdWbq1VCAjQVVJPmAiABBhhvmELkFXo1L3UokvQMIxLuoNNmA+Dz687bZ58wQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15904590},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.15.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.15.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-0QWgLdSu9mWFKzT5ButTmqRha39QB0OpU6ZxcNZGK6ypxaMhyQNWbL1FiK86HhDRzMfVJriS17QY6kIX7tWC7g==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.15_1787612947157_0.7504463438611133","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"browser-gateway","version":"0.4.16","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.16","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"79b543c2fa1b3dc584d5d2f6a6b084b46b10e5bd","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.16.tgz","fileCount":984,"integrity":"sha512-LU8G+TZHXt0YlOJM287B4Eao+lDo8Gj5UC1Lf0SzCb/F/viJ10jY2eEDKY0nBgtUj0LD/SthITvRea7Sf9Y+6A==","signatures":[{"sig":"MEYCIQChueH78XjfYF7Uy6qrpo5qzuVx4XIkTRMFn+ooAfK/bAIhAJfL6Yqf3aFQWlmBQa9YAd/5XvH6HLjQ6VNpe2wKL0Ph","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15905268},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.16.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.16.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-LU8G+TZHXt0YlOJM287B4Eao+lDo8Gj5UC1Lf0SzCb/F/viJ10jY2eEDKY0nBgtUj0LD/SthITvRea7Sf9Y+6A==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.16_1787649230471_0.6422743384300211","host":"s3://npm-registry-packages-npm-production"}},"0.4.17":{"name":"browser-gateway","version":"0.4.17","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.17","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"df8bab00ee6fb9c121410219fd622be0deaff4b5","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.17.tgz","fileCount":988,"integrity":"sha512-W5+7FR+05xDeOt1tQ/ZkFEYjw2hMkB+5mC0g93RdCbWaCPCXrUyv9VP3zqDKFMNIDlVy+FMnFdOrmqCCDMgtiw==","signatures":[{"sig":"MEYCIQDPxt9WwtVaVsnilEiI3YJEPBlpVIIIteooPygzGoAgYgIhAOqJ9foGvO4Xer6AFW6d2gHpHIFZR6cjz54u1p3XgMZh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15930417},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.17.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.17.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-W5+7FR+05xDeOt1tQ/ZkFEYjw2hMkB+5mC0g93RdCbWaCPCXrUyv9VP3zqDKFMNIDlVy+FMnFdOrmqCCDMgtiw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.17_1788071879594_0.20827124542182607","host":"s3://npm-registry-packages-npm-production"}},"0.4.18":{"name":"browser-gateway","version":"0.4.18","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.18","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"a664f2a8886fe45fb1758118420ba18a4485073b","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.18.tgz","fileCount":988,"integrity":"sha512-l/UfyXYaYNmaRdnennlVqT9eu/L97S4lBq3FUF5YsH0PJ5xHXlsMHOqPgrNVC14Kn+ODfvTt8dznA/TgrSmr2g==","signatures":[{"sig":"MEQCIE6aSjsCQuUj3VPEJ7bzd/2kYX8TmGk0aaCwwXme72aDAiAeD22wlpl6GFMkQMmk88Ssdr6gvsAhMOWakE6INLhAhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15934663},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.18.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.18.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-l/UfyXYaYNmaRdnennlVqT9eu/L97S4lBq3FUF5YsH0PJ5xHXlsMHOqPgrNVC14Kn+ODfvTt8dznA/TgrSmr2g==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.18_1788185917198_0.8757154090298369","host":"s3://npm-registry-packages-npm-production"}},"0.4.19":{"name":"browser-gateway","version":"0.4.19","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.19","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"0e7a64fa4ca9d17759d4130a2ba4791f9b08cb1d","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.19.tgz","fileCount":996,"integrity":"sha512-7OyV9r04HC3my6Y4RGNzVHzB9Os0AirJizPHZJfipHAoGEOLOXwoE1WcFiEdx+EnP/3nm3Vc3+mjbV4/Pg6+Mw==","signatures":[{"sig":"MEUCIQCro3fPqy2AApdAsGsvggGWM5iutuZcI0+xz0eDDdIMpQIgFwMTRkvcGrYL3hAnI/OSNXCCa1wC7gtdauqbGrWe0lY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15966517},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.19.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.19.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-7OyV9r04HC3my6Y4RGNzVHzB9Os0AirJizPHZJfipHAoGEOLOXwoE1WcFiEdx+EnP/3nm3Vc3+mjbV4/Pg6+Mw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.19_1788254524883_0.6171749447376844","host":"s3://npm-registry-packages-npm-production"}},"0.4.20":{"name":"browser-gateway","version":"0.4.20","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.20","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"bf71705054fe4001311bb27b075347bac9029ebd","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.20.tgz","fileCount":996,"integrity":"sha512-7Seya9UmWjvHHejm6U+pqCYWHUIDm16g/zwABshxrxgtqf7FTreqn8ebQ/SDrJIo6gZzgTPpt/un6ZXH9X4Xjw==","signatures":[{"sig":"MEUCIQC4yCeWpxOjMLtG5Oy4ASb2a+e0cLKGpZlx+nWPUSLq/wIgfpmZsmlLy4EgqHNT6M4UWmlqtyk2Pjr1GFoWLcMkoVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15967421},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.20.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.20.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-7Seya9UmWjvHHejm6U+pqCYWHUIDm16g/zwABshxrxgtqf7FTreqn8ebQ/SDrJIo6gZzgTPpt/un6ZXH9X4Xjw==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.20_1788422845802_0.4638843331990994","host":"s3://npm-registry-packages-npm-production"}},"0.4.21":{"name":"browser-gateway","version":"0.4.21","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.21","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"10484426005e12cef1e55b32d20254bbc4ebbfce","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.21.tgz","fileCount":996,"integrity":"sha512-8MJfGd5CbxMxtfI3MNQSGs5NcW1Cy9rtmUyUwl2utVZMD8lWYm64Wo+5wyKhNsdpVH8bs6jq7+nJyxLD+ZV1eQ==","signatures":[{"sig":"MEUCIHEl3ZZDKVJZYjkWQYUomKxrLdg94N0xzUbTUGYelBXSAiEA0EmVcab/4+YLUFTNXkpIC+NjqBgkgqDdcAAldT4WsX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15967428},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.21.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.21.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-8MJfGd5CbxMxtfI3MNQSGs5NcW1Cy9rtmUyUwl2utVZMD8lWYm64Wo+5wyKhNsdpVH8bs6jq7+nJyxLD+ZV1eQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenRouter for browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"^3.1.0","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.21_1788532940835_0.012139908974723612","host":"s3://npm-registry-packages-npm-production"}},"0.4.22":{"name":"browser-gateway","version":"0.4.22","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.22","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"c49110efbe2047b2774fef2dd65fe361778e65ec","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.22.tgz","fileCount":1063,"integrity":"sha512-BkifuIg6E3YU8w45PnJfzbOkgpLgRNHHWFbxclIyUKv57B+ob8ekUIHy/Uxqtg36w/uybf/Apz48oGAbDTcOZQ==","signatures":[{"sig":"MEQCIFrm/U4sYbYKb4SNbrUU89+SKfya6DuPTuc19dA2mwhDAiA4aPUGp35KMFLF/80sto+BG+R4Ovq2s8BF2VBxNETj/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBwDyGEdIFe06UTxr2WepPAuJGkyss0qQ0iPPInGGjd+AiACPWPuIPhocHB91+hMs8XlZFwMLFAkrQYv7R7+UyhQ0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15793762},"main":"dist/server/index.js","type":"module","_from":"file:/tmp/browser-gateway-0.4.22.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./agent-tools":{"types":"./dist/agent-tools/index.d.ts","default":"./dist/agent-tools/index.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","stryker:clean":"rm -f reports/stryker-incremental.json && stryker run","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","prerelease:gates":"npm run precommit:gates && npm run stryker:clean","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/tmp/browser-gateway-0.4.22.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-BkifuIg6E3YU8w45PnJfzbOkgpLgRNHHWFbxclIyUKv57B+ob8ekUIHy/Uxqtg36w/uybf/Apz48oGAbDTcOZQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"The open router for cloud browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^9.6.0","yaml":"^2.8.3","defuddle":"0.19.3","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^6.0.0","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"4.1.11","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^22.12.0","puppeteer-core":"25.8.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^9.6.1","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^9.6.1"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.22_1789929024366_0.8753879896034058","host":"s3://npm-registry-packages-npm-production"}},"0.4.23":{"name":"browser-gateway","version":"0.4.23","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.23","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"d67dfd47d8199dab9796fbf91885c5fda474df9f","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.23.tgz","fileCount":1088,"integrity":"sha512-fNvTkuX+Mid6CqBHpswJks4qEAcU12LDvshRd4QPZ3/5MeSwnt044bCzDA1ntQ5EV8YRPdJ4CTZ0ta3eqO1lbQ==","signatures":[{"sig":"MEUCIGdleHvg22euYbN30+ATpTI/vdAkF2aHZw29KpLpyETCAiEArBI941HxGRqdSxU41ULAJVE3zBgqPvRzPJ4hsAx7MV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEOJQwdaw0dkiCgT+qJd02OusQMVtudGw8vbiewY55UYAiBbggNdLSTwDQEIvWSK1NXdul2cXlNpbz7DEmWEwYPUmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17117013},"main":"dist/server/index.js","type":"module","_from":"file:/private/tmp/claude-501/-Users-ajetunmobiisaac-Desktop-Projects-open-source-browser-gateway/8dae3453-61e2-4454-8c51-f494c2730388/scratchpad/release/browser-gateway-0.4.23.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.17.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./agent-tools":{"types":"./dist/agent-tools/index.d.ts","default":"./dist/agent-tools/index.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","stryker:clean":"rm -f reports/stryker-incremental.json && stryker run","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","prerelease:gates":"npm run precommit:gates && npm run stryker:clean","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/private/tmp/claude-501/-Users-ajetunmobiisaac-Desktop-Projects-open-source-browser-gateway/8dae3453-61e2-4454-8c51-f494c2730388/scratchpad/release/browser-gateway-0.4.23.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-fNvTkuX+Mid6CqBHpswJks4qEAcU12LDvshRd4QPZ3/5MeSwnt044bCzDA1ntQ5EV8YRPdJ4CTZ0ta3eqO1lbQ==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"The open router for cloud browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^10.3.1","yaml":"^2.8.3","defuddle":"^0.19.4","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^7.0.1","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"4.1.11","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^26.6.2","puppeteer-core":"25.11.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^10.0.0","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.23_1790189978216_0.40911064123135543","host":"s3://npm-registry-packages-npm-production"}},"0.4.24":{"name":"browser-gateway","version":"0.4.24","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","_id":"browser-gateway@0.4.24","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"homepage":"https://browsergateway.com","bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"bin":{"browser-gateway":"dist/server/index.js"},"dist":{"shasum":"087a57a0cf0caae3ee9e6088c6e8d0eaffbccc3e","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.24.tgz","fileCount":1088,"integrity":"sha512-iq8frnYLMQS3OizXWN9K5GPupgDO5dgCfDRVMW0yro0kEBxwId+0pwqI4uH1SaUPzBNhiUQpDvg2Vb00EpnIng==","signatures":[{"sig":"MEUCIA2yiC46MZQlg/CQG9mno5Mey6YqcvcvjQVKJiNGwNJ0AiEAmlcc+vRzQis/0wMxdrRzvYHxk3LqGZFXub/Z9HkI9gE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD7P1AwCk7GVqq3CDsconKq5SJqUfHR0bs0BE4WyGbhHQIgCDUDTBJJI6Ib7gxhBHQI177EZysiI1sB9pyY0HxXD5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17132008},"main":"dist/server/index.js","type":"module","_from":"file:/private/tmp/claude-501/-Users-ajetunmobiisaac-Desktop-Projects-open-source-browser-gateway/74f0fd3c-55a6-42b9-b300-bd50b5ec3498/scratchpad/release/browser-gateway-0.4.24-provider-enabled.tgz","types":"dist/server/index.d.ts","engines":{"node":">=20.17.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./agent-tools":{"types":"./dist/agent-tools/index.d.ts","default":"./dist/agent-tools/index.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","stryker:clean":"rm -f reports/stryker-incremental.json && stryker run","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","prerelease:gates":"npm run precommit:gates && npm run stryker:clean","stryker:incremental":"stryker run --incremental"},"_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"_resolved":"/private/tmp/claude-501/-Users-ajetunmobiisaac-Desktop-Projects-open-source-browser-gateway/74f0fd3c-55a6-42b9-b300-bd50b5ec3498/scratchpad/release/browser-gateway-0.4.24-provider-enabled.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-iq8frnYLMQS3OizXWN9K5GPupgDO5dgCfDRVMW0yro0kEBxwId+0pwqI4uH1SaUPzBNhiUQpDvg2Vb00EpnIng==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"The open router for cloud browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^10.3.1","yaml":"^2.8.3","defuddle":"^0.19.4","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^7.0.1","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"4.1.11","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^26.6.2","puppeteer-core":"25.11.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^10.0.0","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/browser-gateway_0.4.24_1790270979601_0.1065695130702693","host":"s3://npm-registry-packages-npm-production"}},"0.4.25":{"_id":"browser-gateway@0.4.25","bin":{"browser-gateway":"dist/server/index.js"},"bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"dist":{"shasum":"531ce6576be17b5df923bcdfb4614cd249916650","tarball":"https://registry.npmjs.org/browser-gateway/-/browser-gateway-0.4.25.tgz","fileCount":1088,"integrity":"sha512-OQUemzgums5QUz64EHOH9IlXbXWswzy2El+Zu8P5rZ3LXFTN3ZfZ5wtaxcRrvQhm6B29DsqaYce9HV1hzceGuA==","signatures":[{"sig":"MEUCIQDjru/LGT64YW5KMY7o6B5hVWQf1zkKVr4L3hq6OVmpywIgE/SNbAKKGmizA9z04CzVN49mOm1Fu+EzIQDnS7rcUTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+BV7bK7+Ycp/8fY0VRdtczyw2FJLlwa1L3NJlQXTQmQIgfF4nf+ULM58q8KcdA75aVpHQ9nl50hITWDGL2kU5s4w="}],"unpackedSize":17134080},"main":"dist/server/index.js","name":"browser-gateway","type":"module","_from":"file:/private/tmp/claude-501/-Users-ajetunmobiisaac-Desktop-Projects-open-source-browser-gateway/8dae3453-61e2-4454-8c51-f494c2730388/scratchpad/browser-gateway-0.4.25-fill-after-swap.tgz","types":"dist/server/index.d.ts","author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"engines":{"node":">=20.17.0"},"exports":{".":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./core":{"types":"./dist/core.d.ts","default":"./dist/core.js"},"./types":{"types":"./dist/core/types.d.ts","default":"./dist/core/types.js"},"./pipeline":{"types":"./dist/pipeline/index.d.ts","default":"./dist/pipeline/index.js"},"./webhooks":{"types":"./dist/core/webhooks.d.ts","default":"./dist/core/webhooks.js"},"./selection":{"types":"./dist/core/selection.d.ts","default":"./dist/core/selection.js"},"./transport":{"types":"./dist/core/transport.d.ts","default":"./dist/core/transport.js"},"./agent-tools":{"types":"./dist/agent-tools/index.d.ts","default":"./dist/agent-tools/index.js"},"./auto-detect":{"types":"./dist/core/auto-detect.d.ts","default":"./dist/core/auto-detect.js"},"./live-client":{"types":"./dist/live-client/index.d.ts","default":"./dist/live-client/index.js"},"./page-runner":{"types":"./dist/core/cdp/page-runner.d.ts","default":"./dist/core/cdp/page-runner.js"},"./replay/types":{"types":"./dist/server/replay/types.d.ts","default":"./dist/server/replay/types.js"},"./rest-schemas":{"types":"./dist/rest-schemas/index.d.ts","default":"./dist/rest-schemas/index.js"},"./profile/types":{"types":"./dist/core/profile/types.d.ts","default":"./dist/core/profile/types.js"},"./provider-form":{"types":"./dist/provider-form/index.d.ts","default":"./dist/provider-form/index.js"},"./profile/crypto":{"types":"./dist/core/profile/crypto.d.ts","default":"./dist/core/profile/crypto.js"},"./replay/constants":{"types":"./dist/server/replay/constants.d.ts","default":"./dist/server/replay/constants.js"},"./profile/playwright":{"types":"./dist/core/profile/playwright-format.d.ts","default":"./dist/core/profile/playwright-format.js"},"./rest-schemas/helpers":{"types":"./dist/rest-schemas/helpers.d.ts","default":"./dist/rest-schemas/helpers.js"}},"funding":"https://monostellar.com","license":"MIT","mcpName":"io.github.browser-gateway/browser-gateway","scripts":{"dev":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml & cd web && npm run dev","lint":"tsc --noEmit","live":"npm run build:all && node dist/server/index.js serve --config gateway.dev.yml","test":"vitest","build":"tsc","start":"node dist/server/index.js","dev:web":"cd web && npm run dev","prepare":"husky","publish":"npm publish","stryker":"stryker run","lint:all":"npm run lint && npm run lint:eslint && npm run lint:dup && npm run lint:dead","lint:dup":"jscpd src tests/integration tests/core","test:run":"vitest run","api:check":"npm run build && api-extractor run","build:all":"npm run build && npm run build:web","build:web":"cd web && npm run build","lint:dead":"knip --no-progress","api:update":"npm run build && api-extractor run --local && echo 'API surface updated. Commit the change to docs/api/.'","dev:server":"BG_ALLOWED_ORIGINS=http://localhost:9501 tsx watch src/server/index.ts -- serve --config gateway.dev.yml","catalog:gen":"tsx scripts/gen-helper-catalog.ts","docker:push":"docker push ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") && docker push ghcr.io/browser-gateway/server:latest","lint:eslint":"eslint . --max-warnings 0","docker:build":"docker build -t ghcr.io/browser-gateway/server:$(node -p \"require('./package.json').version\") -t ghcr.io/browser-gateway/server:latest .","catalog:check":"tsx scripts/gen-helper-catalog.ts --check","docs:gen-rest":"tsx scripts/gen-rest-docs.ts","prepush:gates":"npm run stryker:incremental","stryker:clean":"rm -f reports/stryker-incremental.json && stryker run","docker:release":"npm run docker:build && npm run docker:push","prepublishOnly":"npm run test:run && npm run build:all","docs:check-rest":"tsx scripts/gen-rest-docs.ts --check","precommit:gates":"npm run lint:all && npm run catalog:check && npm run api:check && npm run test:run","prerelease:gates":"npm run precommit:gates && npm run stryker:clean","stryker:incremental":"stryker run --incremental"},"version":"0.4.25","_npmUser":{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"},"homepage":"https://browsergateway.com","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"_resolved":"/private/tmp/claude-501/-Users-ajetunmobiisaac-Desktop-Projects-open-source-browser-gateway/8dae3453-61e2-4454-8c51-f494c2730388/scratchpad/browser-gateway-0.4.25-fill-after-swap.tgz","overrides":{"qs":">=6.15.2","esbuild":">=0.28.1"},"_integrity":"sha512-OQUemzgums5QUz64EHOH9IlXbXWswzy2El+Zu8P5rZ3LXFTN3ZfZ5wtaxcRrvQhm6B29DsqaYce9HV1hzceGuA==","repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"_npmVersion":"10.9.8","description":"The open router for cloud browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","directories":{},"maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.0","zod":"^4.3.6","hono":"^4.12.26","pino":"^10.3.1","yaml":"^2.8.3","defuddle":"^0.19.4","linkedom":"^0.18.0","pino-pretty":"^13.0.0","chrome-launcher":"^1.2.1","playwright-core":"^1.58.0","proper-lockfile":"^4.1.2","write-file-atomic":"^7.0.1","@modelcontextprotocol/sdk":"^1.28.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.17.1","husky":"^9.1.7","jscpd":"^5.0.11","eslint":"^10.5.0","vitest":"4.1.11","ts-morph":"^28.0.0","@types/ws":"^8.18.1","@eslint/js":"^10.0.1","typescript":"^5.7.0","@types/node":"^26.6.2","puppeteer-core":"25.11.0","typescript-eslint":"^8.61.1","@stryker-mutator/core":"^10.0.0","eslint-plugin-sonarjs":"^4.1.0","@types/proper-lockfile":"^4.1.4","@microsoft/api-extractor":"^7.58.9","@types/write-file-atomic":"^4.0.3","@stryker-mutator/vitest-runner":"^10.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser-gateway_0.4.25_1790434405550_0.5021751347827688"}}},"time":{"created":"2026-03-25T15:14:12.117Z","modified":"2026-09-26T14:53:25.921Z","0.0.1":"2026-03-25T15:14:12.342Z","0.1.0":"2026-03-25T20:32:19.723Z","0.1.2":"2026-03-27T13:22:42.535Z","0.1.3":"2026-03-27T14:05:24.607Z","0.1.4":"2026-03-28T08:53:16.528Z","0.1.5":"2026-03-30T02:51:42.773Z","0.1.6":"2026-03-30T08:19:48.540Z","0.1.7":"2026-03-31T06:15:49.581Z","0.1.8":"2026-04-01T12:36:50.681Z","0.2.0":"2026-04-11T16:36:24.629Z","0.3.0":"2026-06-26T11:51:31.223Z","0.3.1":"2026-06-27T14:59:57.354Z","0.3.2":"2026-06-27T20:51:58.389Z","0.3.3":"2026-06-28T04:44:57.351Z","0.3.4":"2026-06-28T11:04:13.152Z","0.3.5":"2026-06-29T20:25:44.878Z","0.3.6":"2026-07-15T06:55:00.100Z","0.3.7":"2026-07-24T15:00:50.544Z","0.3.8":"2026-07-25T12:17:39.949Z","0.4.0":"2026-07-26T22:28:21.080Z","0.4.1":"2026-07-27T19:17:33.593Z","0.4.2":"2026-07-29T23:56:56.669Z","0.4.3":"2026-07-31T22:37:51.777Z","0.4.4":"2026-08-01T19:14:56.883Z","0.4.5":"2026-08-02T07:40:19.803Z","0.4.6":"2026-08-02T16:14:26.180Z","0.4.7":"2026-08-02T20:39:17.571Z","0.4.8":"2026-08-04T10:25:13.849Z","0.4.9":"2026-08-04T22:28:07.301Z","0.4.10":"2026-08-11T08:40:29.353Z","0.4.11":"2026-08-12T23:25:44.491Z","0.4.12":"2026-08-13T15:28:02.644Z","0.4.13":"2026-08-20T09:21:39.794Z","0.4.14":"2026-08-24T20:59:49.829Z","0.4.15":"2026-08-24T23:09:07.430Z","0.4.16":"2026-08-25T09:13:50.721Z","0.4.17":"2026-08-30T06:37:59.839Z","0.4.18":"2026-08-31T14:18:37.526Z","0.4.19":"2026-09-01T09:22:05.123Z","0.4.20":"2026-09-03T08:07:26.133Z","0.4.21":"2026-09-04T14:42:21.133Z","0.4.22":"2026-09-20T18:30:24.543Z","0.4.23":"2026-09-23T18:59:38.395Z","0.4.24":"2026-09-24T17:29:39.820Z","0.4.25":"2026-09-26T14:53:25.743Z"},"bugs":{"url":"https://github.com/browser-gateway/browser-gateway/issues","email":"hello@browsergateway.com"},"author":{"url":"https://monostellar.com","name":"Monostellar Limited"},"license":"MIT","homepage":"https://browsergateway.com","keywords":["browser","gateway","proxy","cdp","chrome-devtools-protocol","mcp","model-context-protocol","ai-agent","playwright","puppeteer","headless","headless-browser","failover","load-balancer","websocket"],"repository":{"url":"git+https://github.com/browser-gateway/browser-gateway.git","type":"git"},"description":"The open router for cloud browsers. One endpoint, any provider: failover, load balancing, persistent profiles, session replay, REST API, MCP server, dashboard.","maintainers":[{"name":"nerdstack","email":"isaacajetunmobi@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/browser-gateway/browser-gateway/main/docs/assets/logo.png\" alt=\"browser-gateway\" width=\"120\" />\n</p>\n\n<h1 align=\"center\">browser-gateway</h1>\n\n<p align=\"center\">\n  <strong>The open router for cloud browsers.</strong>\n  <br />\n  One endpoint that routes across every browser provider you use: automatic failover, persistent profiles, session replay, REST API, MCP server, dashboard.\n  <br />\n  Works unchanged with Puppeteer, Playwright, Stagehand, browser-use, and any MCP client.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://devhunt.org/tool/browsergateway\"><img src=\"https://raw.githubusercontent.com/browser-gateway/browser-gateway/main/docs/assets/devhunt-product-of-the-week.svg\" alt=\"BrowserGateway is the #1 Tool of the Week on DevHunt\" height=\"60\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/browser-gateway\"><img src=\"https://img.shields.io/npm/v/browser-gateway?style=flat-square&logo=npm&logoColor=white\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/browser-gateway\"><img src=\"https://img.shields.io/npm/dm/browser-gateway?style=flat-square&label=downloads\" alt=\"npm downloads\" /></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/npm/l/browser-gateway?style=flat-square\" alt=\"MIT license\" /></a>\n  <a href=\"https://nodejs.org\"><img src=\"https://img.shields.io/node/v/browser-gateway?style=flat-square&logo=nodedotjs&logoColor=white\" alt=\"Node.js\" /></a>\n  <a href=\"https://github.com/browser-gateway/browser-gateway\"><img src=\"https://img.shields.io/github/stars/browser-gateway/browser-gateway?style=flat-square&logo=github&logoColor=white\" alt=\"GitHub stars\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://railway.com/new/template/browser-gateway?utm_medium=integration&amp;utm_source=button&amp;utm_campaign=browser-gateway\"><img src=\"https://railway.com/button.svg\" alt=\"Deploy on Railway\" height=\"32\" /></a>\n  &nbsp;\n  <a href=\"https://render.com/deploy?repo=https://github.com/browser-gateway/browser-gateway\"><img src=\"https://render.com/images/deploy-to-render-button.svg\" alt=\"Deploy to Render\" height=\"32\" /></a>\n  &nbsp;\n  <a href=\"https://cloud.digitalocean.com/apps/new?repo=https://github.com/browser-gateway/browser-gateway/tree/main\"><img src=\"https://www.deploytodo.com/do-btn-blue.svg\" alt=\"Deploy to DigitalOcean\" height=\"32\" /></a>\n  &nbsp;\n  <a href=\"https://app.koyeb.com/deploy?type=docker&amp;name=browser-gateway&amp;image=ghcr.io/browser-gateway/server:latest&amp;ports=9500;http;/&amp;env%5BBG_DATA_DIR%5D=/data\"><img src=\"https://www.koyeb.com/static/images/deploy/button.svg\" alt=\"Deploy to Koyeb\" height=\"32\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://browsergateway.com\">Website</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://docs.browsergateway.com/quickstart\">Quick start</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://docs.browsergateway.com/mcp\">MCP</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://docs.browsergateway.com/profiles\">Profiles</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://docs.browsergateway.com/replays\">Replays</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://docs.browsergateway.com/rest-api\">REST API</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://docs.browsergateway.com/dashboard\">Dashboard</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://discord.gg/TM8Yuvukp\">Discord</a>\n</p>\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/browser-gateway/browser-gateway/main/docs/assets/routing.gif\" alt=\"browser-gateway routes traffic across multiple browser providers, filling them by priority and failing over when one is saturated\" width=\"720\" />\n</p>\n\n---\n\n## Overview\n\nOne endpoint. Multiple providers. Automatic failover when one is saturated or goes down.\n\nYour app connects to `ws://gateway:9500/v1/connect`. The gateway picks the best available provider based on health, capacity, and your routing strategy. Providers can be cloud CDP services, Docker containers, or local Chrome instances.\n\n---\n\n## Dashboard\n\nA web dashboard ships with every install. Open `http://localhost:9500/web` after starting the gateway.\n\n**Overview.** Active sessions, queue depth, provider health, connection endpoint, and a copy-paste quickstart for Puppeteer, Playwright, Stagehand, browser-use, and raw CDP.\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/browser-gateway/browser-gateway/main/docs/assets/overview.png\" alt=\"Dashboard overview page showing active sessions, queue depth, provider health, masked connection endpoint, and a tabbed quickstart with Puppeteer code\" width=\"860\" />\n</p>\n\n**REST API.** Run screenshot, content extraction, and structured scraping endpoints from a form-driven UI, with profile selection and parameter reference inline.\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/browser-gateway/browser-gateway/main/docs/assets/api.png\" alt=\"REST API page in the dashboard with three tabs (screenshot, content, scrape) and a form to capture a screenshot of a target URL with format and profile options\" width=\"860\" />\n</p>\n\n**Playground.** Drive any provider live from the browser. Pick a provider and profile, type into the canvas as if it were a local browser, and watch the remote session in real time.\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/browser-gateway/browser-gateway/main/docs/assets/playground.jpg\" alt=\"Live playground page streaming a remote Chrome session showing yahoo.com loaded inside the dashboard canvas\" width=\"860\" />\n</p>\n\n---\n\n## Features\n\n### Routing & reliability\n\n- **Automatic failover** - the next provider takes over the instant one fails, no client changes\n- **Five load-balancing strategies** - priority chain, round-robin, least-connections, latency-optimized, weighted\n- **Per-provider concurrency limits** - the gateway enforces `maxConcurrent` on every backend\n- **Request queue** - connections wait when every provider is saturated instead of failing immediately\n- **Cooldown** - failing providers are skipped and recover automatically after a TTL\n- **Health checks** - periodic connectivity probes mark providers unhealthy before clients hit them\n- **Graceful shutdown** - active sessions drain cleanly on SIGTERM and SIGINT\n- **Session reconnect** - dropped clients resume against the same provider with cookies and page state intact\n- **Webhooks** - fire on provider down, recover, and queue-overflow events\n\n### REST API\n\n- **Screenshot** - `POST /v1/screenshot` returns any URL as PNG or JPEG, full-page or scoped to a selector\n- **Content extraction** - `POST /v1/content` returns markdown, plain text, HTML, or a cleaned article\n- **Scrape** - `POST /v1/scrape` extracts structured data via CSS selectors or full-page formats\n- **Pooled sessions** - browser connections are reused across requests, like a database pool\n- **Automatic retry** - failed requests retry against a fresh page\n\n### Profiles — persistent browser state\n\n- **Survive across sessions** - cookies, `localStorage`, `sessionStorage`, and `IndexedDB` are captured on disconnect and replayed on the next connect with the same id\n- **One-line opt-in** - add `?profile=acme` to the WebSocket URL, the rest is automatic\n- **Encrypted at rest** - AES-256-GCM with envelope encryption, anti-swap binding, and a scrypt-derived KEK\n- **Provider-agnostic** - state is captured at the CDP level, so it replays against any provider\n- **Per-profile locking** - concurrent connects to the same id return HTTP 409 to prevent corruption\n- **Export and import** - encrypted `.bgp` blobs are portable between gateway installs\n- **One-click enable** - the dashboard wizard generates a strong key in your browser and writes it to config\n\nSee the [Profiles docs](https://docs.browsergateway.com/profiles) for the full guide, security model, REST endpoints, and limitations.\n\n### Session replay — see what the agent saw\n\n- **Frame-accurate visual record** of every routed session, captured via CDP `Page.startScreencast`\n- **Zero injection** - no script runs inside the customer page, capture is fully out-of-band\n- **Provider-agnostic** - works with any backend that supports page screencast\n- **Dashboard player** - scrub through the recorded frames, switch between captured browser targets\n- **Retention controls** - configurable horizon, per-session byte cap, daily cleanup\n\nSee the [Replays docs](https://docs.browsergateway.com/replays) for the storage layout, REST endpoints, and tuning knobs.\n\n### MCP server for AI agents\n\n- **Eight browser tools** - navigate, snapshot, screenshot, viewport, interact, evaluate, close, status\n- **Zero config** - auto-detects Chrome and launches it on first tool use\n- **Concurrent sessions** - every agent gets its own browser, no shared state\n- **Raw CDP** - no Playwright or Puppeteer dependency\n- **Compatible** - Claude Code, Cursor, and any MCP-compatible client\n\n### Management\n\n- **Dashboard** - manage providers, watch sessions, and edit config from the browser\n- **Provider CRUD** - add, edit, delete, and test providers from the dashboard or API\n- **Config editor** - edit `gateway.yml` in-browser with syntax highlighting and validation\n- **Auth** - token-based, with a secure HttpOnly cookie for the dashboard\n- **Protocol-agnostic** - works with Playwright, Puppeteer, and any WebSocket protocol\n\n---\n\n## Quick Start\n\n### As a WebSocket Proxy (for applications)\n\n```bash\nnpm install -g browser-gateway\n```\n\nCreate `gateway.yml`:\n\n```yaml\nversion: 1\n\nproviders:\n  primary:\n    url: wss://provider.example.com?token=${PROVIDER_TOKEN}\n    limits:\n      maxConcurrent: 5\n    priority: 1\n\n  fallback:\n    url: ws://my-playwright-server:4000\n    limits:\n      maxConcurrent: 10\n    priority: 2\n```\n\n```bash\nbrowser-gateway serve\n```\n\nConnect from your app:\n\n```typescript\n// For CDP providers\nconst browser = await chromium.connectOverCDP('ws://localhost:9500/v1/connect');\n\n// For Playwright run-server providers\nconst browser = await chromium.connect('ws://localhost:9500/v1/connect');\n```\n\nOr use the REST API — no WebSocket management needed:\n\n```bash\n# Screenshot\ncurl -X POST http://localhost:9500/v1/screenshot \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\": \"https://example.com\"}' --output screenshot.png\n\n# Extract content as markdown\ncurl -X POST http://localhost:9500/v1/content \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"url\": \"https://example.com\", \"formats\": [\"markdown\"]}'\n```\n\nThese endpoints accept `http` and `https` URLs on public hosts only. Loopback,\nlink-local and private-range addresses are refused, and hostnames are resolved and\nre-checked. To reach an internal host, list it under `rest.allowedPrivateHosts` in\n`gateway.yml`.\n\nDashboard at `http://localhost:9500/web`.\n\n### As an MCP Server (for AI agents)\n\nAdd to your Claude Code or Cursor config:\n\n```json\n{\n  \"mcpServers\": {\n    \"browser-gateway\": {\n      \"command\": \"npx\",\n      \"args\": [\"browser-gateway\", \"mcp\"]\n    }\n  }\n}\n```\n\nNo config files needed. The agent gets navigate, snapshot, screenshot, click, type, and evaluate tools through the gateway's routing layer.\n\nSee the [MCP docs](https://docs.browsergateway.com/mcp) for all options.\n\n---\n\n## Authentication\n\nSet `BG_TOKEN` to require a token (or put it in a `.env` file):\n\n```bash\nBG_TOKEN=my-secret-token browser-gateway serve\n```\n\n- **WebSocket clients** pass the token as `?token=` query param\n- **API clients** use `Authorization: Bearer <token>` header\n- **Dashboard** shows a login form, sets a secure HttpOnly cookie\n- **Health endpoint** (`/health`) is always public\n\nWithout `BG_TOKEN` every `/v1/*` route is unauthenticated, so the gateway binds to\n`127.0.0.1` instead of all interfaces. Set a token (or set `HOST` explicitly) to\nserve other machines. `BG_ALLOWED_HOSTS` allows extra `Host` values on `/mcp`\nwhen no token is set.\n\n---\n\n## CLI\n\n```bash\n# Proxy server\nbrowser-gateway serve                    # Start the gateway + dashboard\nbrowser-gateway serve --port 8080        # Custom port\nbrowser-gateway serve --config path.yml  # Custom config\n\n# MCP server for AI agents\nbrowser-gateway mcp                      # Auto-detect Chrome, zero config\nbrowser-gateway mcp --headless           # Headless mode (for CI/Docker)\nbrowser-gateway mcp --cdp-endpoint ws:// # Connect to existing browser\nbrowser-gateway mcp --config gateway.yml # Multi-provider with failover\n\n# Utilities\nbrowser-gateway check                    # Test provider connectivity\nbrowser-gateway version                  # Print version\nbrowser-gateway help                     # Show help\n```\n\n---\n\n## API\n\n| Endpoint | Method | Description |\n|----------|--------|-------------|\n| `/v1/connect` | WebSocket | Connect to a browser (the core feature) |\n| `/v1/screenshot` | POST | Take a screenshot of any URL ([docs](https://docs.browsergateway.com/rest-api)) |\n| `/v1/content` | POST | Extract page content as markdown, text, or HTML ([docs](https://docs.browsergateway.com/rest-api)) |\n| `/v1/scrape` | POST | Extract data via CSS selectors or full-page formats ([docs](https://docs.browsergateway.com/rest-api)) |\n| `/v1/status` | GET | Gateway health + provider status + pool status |\n| `/v1/sessions` | GET | Active sessions |\n| `/v1/providers` | GET/POST | List or add providers |\n| `/v1/providers/:id` | PUT/DELETE | Update or remove a provider |\n| `/v1/providers/:id/test` | POST | Test provider connectivity |\n| `/v1/config` | GET/PUT | Read or save config |\n| `/v1/config/validate` | POST | Validate YAML without saving |\n| `/mcp` | POST | MCP Streamable HTTP endpoint |\n| `/json/version` | GET | CDP discovery (for browser-use, Playwright, Stagehand) |\n| `/health` | GET | Health check |\n\n---\n\n## Docker\n\nRecommended: Docker Compose. The bundled `docker-compose.yml` mounts a named volume for state and a read-only `gateway.yml` from the host.\n\n```bash\n# Drop your gateway.yml next to docker-compose.yml, then:\ndocker compose up -d\n```\n\nPlain `docker run`:\n\n```bash\ndocker run -d \\\n  -p 9500:9500 \\\n  -v bg_data:/data \\\n  -v ./gateway.yml:/app/gateway.yml:ro \\\n  -e PROVIDER_TOKEN=xxx \\\n  ghcr.io/browser-gateway/server:latest\n```\n\n### Persistence\n\nEverything the gateway writes to disk lives under a single directory, `BG_DATA_DIR` (defaults to `/data` inside the image). Mount that as a named volume or a bind mount and all state survives container restarts and image upgrades. Today it contains:\n\n- `profiles/` — encrypted profile blobs (when profiles are enabled)\n\nFuture versions may add more subdirectories under the same root (cooldown state, session snapshots, captures). Mounting `BG_DATA_DIR` as one volume keeps every subsystem persistent without follow-up config changes.\n\n### Upgrades\n\nState lives in the volume, code lives in the image. Pull the new image, recreate the container — no data lost:\n\n```bash\ndocker compose pull\ndocker compose up -d\n```\n\nThe container reads the same `BG_DATA_DIR` and the same `gateway.yml`. Profile blobs are versioned and the gateway reads older formats transparently.\n\n### Image tags\n\n| Tag | Updated on |\n|---|---|\n| `:0.3.0` (and every subsequent version) | published manually after a release |\n| `:latest` | always points at the newest version |\n\nImages are multi-arch (`linux/amd64`, `linux/arm64`), signed with [Sigstore](https://www.sigstore.dev/) build provenance, and ship an SBOM. Verify with the [GitHub CLI](https://cli.github.com/):\n\n```bash\ngh attestation verify oci://ghcr.io/browser-gateway/server:0.3.0 \\\n  --repo browser-gateway/browser-gateway\n```\n\n---\n\n## How It Works\n\n**Sessions without profile / recording / observability** (the default) take the byte-pipe fast lane:\n\n1. Client connects to `ws://gateway:9500/v1/connect`\n2. Gateway selects a provider using your [routing strategy](https://docs.browsergateway.com/operating/load-balancing)\n3. Gateway opens a raw TCP connection to the provider\n4. HTTP upgrade forwarded, provider responds with `101 Switching Protocols`\n5. Bidirectional TCP pipe: `client <-> gateway <-> provider`\n6. All WebSocket messages forwarded transparently (never parsed or modified)\n7. On disconnect: session cleaned up, slot released, metrics updated\n8. If all providers full: connection [waits in a queue](https://docs.browsergateway.com/operating/queue) until a slot opens\n\n**Sessions with profile inject, session recording, live view, or observability** (e.g. `?profile=X`, `?session_record=true`, `/v1/live`) run through a CDP-aware pipeline instead — one WebSocket per session, N plugins observing the wire. Same routing + failover, byte-perfect passthrough at rest, plugins only fire when their feature is requested. Architecture + plugin-authoring guide: [`docs/PIPELINE.md`](./docs/PIPELINE.md).\n\n---\n\n## Self-hosted provider: browserserve\n\n[browserserve](https://github.com/browser-gateway/browserserve) is the stack's own self-hosted browser server: one container that hands out isolated Chrome sessions over CDP. Add it like any other provider:\n\n```yaml\nproviders:\n  browserserve:\n    url: ws://your-host:9222\n  cloud-provider:\n    url: <websocket-url-with-auth>\n    priority: 2\n```\n\nBecause the gateway controls that runtime, a browserserve provider is **auto-detected** and unlocks two things no external provider gets:\n\n- **Auto capacity.** You do not set `maxConcurrent`. browserserve measures its host (memory, thread, and CPU limits) and advertises a safe ceiling, which the gateway adopts. The dashboard shows it as `(auto)`.\n- **Multiple profiles from one slot.** A browserserve provider can serve any profile, switching safely because every session is a fresh browser with no shared state. External providers stay single-profile-pinned, since reusing a browser leaks cookies and storage between profiles.\n\nA common shape: browserserve as the primary provider on your own hardware, with a cloud provider at a lower priority for failover.\n\n---\n\n## Works With\n\nbrowser-gateway is compatible with existing browser tools. Just pass the gateway URL — it auto-resolves via `/json/version`.\n\n**AI Agent Frameworks:**\n\n```python\n# browser-use (Python) — HTTP URL auto-resolves\nBrowserSession(cdp_url=\"http://localhost:9500\")\n```\n\n```typescript\n// Stagehand (TypeScript)\nnew Stagehand({ env: \"LOCAL\", localBrowserLaunchOptions: { cdpUrl: \"http://localhost:9500\" } })\n```\n\n**Playwright MCP** (all 70 Playwright tools through gateway routing):\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"@playwright/mcp@latest\", \"--cdp-endpoint\", \"http://localhost:9500\"]\n    }\n  }\n}\n```\n\n**Puppeteer / Playwright:**\n\n```typescript\n// Playwright — HTTP or WebSocket\nconst browser = await chromium.connectOverCDP(\"http://localhost:9500\");\n\n// Puppeteer — WebSocket\nconst browser = await puppeteer.connect({ browserWSEndpoint: \"ws://localhost:9500/v1/connect\" });\n```\n\n---\n\n## Documentation\n\nFull docs live at **[docs.browsergateway.com](https://docs.browsergateway.com)**.\n\n- [Getting Started](https://docs.browsergateway.com/quickstart)\n- [Configuration Reference](https://docs.browsergateway.com/configuration)\n- [Supported Providers](https://docs.browsergateway.com/providers)\n- [Profiles — Persistent Browser State](https://docs.browsergateway.com/profiles)\n- [Session Replays](https://docs.browsergateway.com/replays)\n- [Session Lifecycle](https://docs.browsergateway.com/sessions)\n- [REST API](https://docs.browsergateway.com/rest-api)\n- [MCP Server for AI Agents](https://docs.browsergateway.com/mcp)\n- [CLI Reference](https://docs.browsergateway.com/cli)\n- [Web Dashboard](https://docs.browsergateway.com/dashboard)\n- [How Failover Works](https://docs.browsergateway.com/operating/failover)\n- [Load Balancing Strategies](https://docs.browsergateway.com/operating/load-balancing)\n- [Request Queue](https://docs.browsergateway.com/operating/queue)\n- [Webhooks](https://docs.browsergateway.com/operating/webhooks)\n- [Docker Deployment](https://docs.browsergateway.com/operating/docker)\n- [Integrations](https://docs.browsergateway.com/operating/integrations) — Playwright, Puppeteer, browser-use, Stagehand, Playwright MCP\n\n---\n\n## Contributing\n\nContributions welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nMIT - see [LICENSE](LICENSE).\n\n## Links\n\n- [browsergateway.com](https://browsergateway.com)\n- [docs.browsergateway.com](https://docs.browsergateway.com)\n- [GitHub](https://github.com/browser-gateway/browser-gateway)\n- [npm](https://www.npmjs.com/package/browser-gateway)\n\n## Contact\n\nQuestions, security reports, or partnership inquiries: `hello@browsergateway.com`.\n","readmeFilename":"README.md"}