{"_id":"@dreki-gg/pi-browser-tools","_rev":"12-08d151977c8f939a138e8d692586558b","name":"@dreki-gg/pi-browser-tools","dist-tags":{"latest":"0.7.3"},"versions":{"0.1.0":{"name":"@dreki-gg/pi-browser-tools","version":"0.1.0","keywords":["pi-package","pi","browser","playwright","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.1.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"0f84e4dd780bb8327a249e4cbcb86cf839d942c0","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.1.0.tgz","fileCount":11,"integrity":"sha512-TQArOjMO25XHW6buTsA2b1rkbAn0ZkcYg4Jl9/LwDPOnmZC7PzpfptXN/58FQC5gqYIqQYHYEc9XWrIMQ7tw8A==","signatures":[{"sig":"MEUCIDw+cPMucT7L32qtqMCUeXIn/fqamzOPPg/JNe+WBvG7AiEAqdNceQVq/mlM8vWWROpDtogDpHyeZYDrtm7wNwQTgA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68246},"type":"module","gitHead":"59a026e66f25429a134f723eecd73964ad2dffb6","scripts":{"lint":"oxlint extensions test/manual","format":"oxfmt --write extensions test/manual","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test/manual"},"_npmUser":{"name":"jalbarrang","email":"jalbarrandev@gmail.com"},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.12.1","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.12.0","dependencies":{"linkedom":"^0.18.12","turndown":"^7.2.1","playwright":"^1.59.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"typebox":"*","@mariozechner/pi-ai":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.1.0_1777484108013_0.18283382356530908","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dreki-gg/pi-browser-tools","version":"0.1.1","keywords":["pi-package","pi","browser","playwright","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.1.1","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"4e38299b1ce4e6359d257ab5e56f8d18a24fb704","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.1.1.tgz","fileCount":11,"integrity":"sha512-90I8SP6hIqhyesb1OwPe46ElsJWSbPAGk82UXrbqe3TGPyD5EsVRYEDSqTbi4/adpMvRvKO1L88KTDuEAcheyA==","signatures":[{"sig":"MEUCIQD6foACEHF6fOaiSZsYxXNHW8b+Rz3LMp+kyxTkTyJCGgIgSMO+QRKZ0CoFm/hbyKX4YkOMj1ch0AlZKTMW5HVxmN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68771},"type":"module","gitHead":"5b173121c8e5d67bfb971986099b4309c5b2a0ad","scripts":{"lint":"oxlint extensions test/manual","format":"oxfmt --write extensions test/manual","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test/manual"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.11.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.14.1","dependencies":{"linkedom":"^0.18.12","turndown":"^7.2.1","playwright":"^1.59.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.1.1_1778222231070_0.06910642433195635","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dreki-gg/pi-browser-tools","version":"0.1.2","keywords":["pi-package","pi","browser","playwright","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.1.2","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"9fc0f803bc3051107243fd38131d15c399fbf898","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.1.2.tgz","fileCount":11,"integrity":"sha512-bpcUnxMFbzAjN2bZVIv4FuD2Z3iiviVww8mTKmbZQ7Uz15MR1iX8Hdbbuh2R/R9FV+Xl3Y928d2j9eTLbdw3MA==","signatures":[{"sig":"MEYCIQCv+iNTk8LnruoRIeSQxEAqPhYd4cNaSwmjwg1PGyqD+gIhAPmMAc9atW/p7/19W9yJY/K13DrasS6mDRm1KTm/LeY7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70197},"type":"module","gitHead":"5efccd4bfb1b6f313efac7ea649e006fba02da01","scripts":{"lint":"oxlint extensions test/manual","format":"oxfmt --write extensions test/manual","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test/manual"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.11.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.14.1","dependencies":{"linkedom":"^0.18.12","turndown":"^7.2.1","playwright":"^1.59.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.1.2_1778308784806_0.49603682687835216","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dreki-gg/pi-browser-tools","version":"0.2.0","keywords":["pi-package","pi","browser","playwright","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.2.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"97c4373759a57f2c10e002846d0dc5143d81def4","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.2.0.tgz","fileCount":12,"integrity":"sha512-0Mv3OfsJKnUwxDgSn5LYF4mC7yYXHJODRdWvbfSATrinbOYhOKRWpyTVcjruAUHQm005sY7WVSKonipqSYF13w==","signatures":[{"sig":"MEQCIGg9tjpTvzLE2Nc7wsZ3RAikAQ5wSePckdq+QIy1JZqkAiBjphlW56fxDj+bFGDJRd+ejOqVr1GgOB0qz1c4QxdoNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80384},"type":"module","gitHead":"45abb6b9a15b9ed2254acb53c4964ad638de4b28","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"linkedom":"^0.18.12","turndown":"^7.2.1","playwright":"^1.59.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.2.0_1780539878663_0.3425284805211195","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dreki-gg/pi-browser-tools","version":"0.4.0","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.4.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"b7b5c9122fc017cb1c7bc328baf6fadda03fee17","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.4.0.tgz","fileCount":12,"integrity":"sha512-GwSqxKGKEENLeB8FdLDDAo3P5FbozaYiEdTFm8Ihqn2UY7fs1mEzU1I0zB6FYOZ/pevk9er/+NuwWC7LS0+w0w==","signatures":[{"sig":"MEQCIBY6Wt6PxyCKXqZTgXKZEJVjvTVe/orfZ/rhIZDqoSChAiB3eo0SkCZ6dfwK9ZSMpCZFJrJ7+td0HiADa+tsC12l+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69918},"type":"module","gitHead":"c95998bccd67a06548a5e4b7a3886e5a6f3eebff","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.4.0_1780721490706_0.958397049798791","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@dreki-gg/pi-browser-tools","version":"0.4.1","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.4.1","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"2e5075e41dbf57fe00ce7abea8aee8e56dc525dc","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.4.1.tgz","fileCount":12,"integrity":"sha512-tTXr0ssdng47ssL47ZrJWNkTzpZbQzW2H7wcJDDD0AZGzHmcUDXr4iDYIsuOo2B1u7a/4FM79yQt//fa1ivhgQ==","signatures":[{"sig":"MEQCIF5Vmn0ZL7HuWUWC3AhkXONynhGIIgYNr+e5qQeE2v1wAiBpIz1ZBDrgxcYmMPJC/VQKKYZGwZyYZhx5rfNHlKZ3wQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71140},"type":"module","gitHead":"14986b73af2ffdd40a79797d72569164a42340b2","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.4.1_1780885831649_0.23571341013403302","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@dreki-gg/pi-browser-tools","version":"0.4.3","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.4.3","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"17a1f032a94b3d690093198da6923c378e0d2ec4","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.4.3.tgz","fileCount":14,"integrity":"sha512-mG2t5dFL2ex6lQGlltcjtofX6kzQdEieCCrMG6G46qz/FC7WhG2MIOzpf5aUk5PdeUtFT46kvTVrQmu2IyTbJw==","signatures":[{"sig":"MEQCICxsZJuCbLhvRgcrOfr84xUScZo6JSYvDuXSO7Kuc6mqAiA8cXV4Y/vNE9jj5W6fzlGBiTP0c9P/OTWXUhymrhMO2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84243},"type":"module","gitHead":"b140382acccca4398afa3e931208d6b60bc4a6d9","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"pako":"^2.1.0","linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24","@types/pako":"^2.0.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.4.3_1781382609136_0.619308373599132","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@dreki-gg/pi-browser-tools","version":"0.4.4","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.4.4","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"cdd91f92bc31863b252d16cc7892a1038c14f4af","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.4.4.tgz","fileCount":15,"integrity":"sha512-oXXmyRK1VucSH/ZEbbAxqoMtCrEWw4bXTGauvzb4vOPJGnxvgeQbwpI3VRUYz9brvUl/ViQZ+p0rP1VEiGhvvQ==","signatures":[{"sig":"MEUCIQCE9YVk7nNbR8wPAOJN2MaGEkg7dfY+Xh2Y62I2Tc95HgIgQKDJmiGpQYFqGLOOUqphthfe+xgbX9ZynGHxqeIvYQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87517},"type":"module","gitHead":"508ade6b8d5b39e0f4adf0ecacaca8079ed55bf0","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"pako":"^2.1.0","jpeg-js":"^0.4.4","linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24","@types/pako":"^2.0.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.4.4_1781387421564_0.016936751501648306","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dreki-gg/pi-browser-tools","version":"0.5.0","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.5.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"b48362d00b413fa0faf64bb9e8fd23a09b809183","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.5.0.tgz","fileCount":16,"integrity":"sha512-Fls5kl9x3x0GuNNotVRmYZbFz/Uwk3jCFxqwPS8sh6pTqVDuSMJY5Z1dHaX8+BWJVZ3xiOmVNGbZxS5XS/2QHA==","signatures":[{"sig":"MEUCIQD9uEvtaG3GVlVsolgqCsqds0l1OT0iDZsfFvuW/zdemAIgNaVuEkmjGGu1UYckoiHq3d3QhNgNbI7pdVtoswwDixA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91327},"type":"module","gitHead":"4f0c41c647cae31bfd44259aee4fda849bf12377","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"pako":"^2.1.0","jpeg-js":"^0.4.4","linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24","@types/pako":"^2.0.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.5.0_1781730261397_0.06238555521017419","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@dreki-gg/pi-browser-tools","version":"0.6.0","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.6.0","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/dreki-gg/pi-extensions#readme","bugs":{"url":"https://github.com/dreki-gg/pi-extensions/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"e8736c20d579744e7053e7392c2cdb020843ca80","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.6.0.tgz","fileCount":17,"integrity":"sha512-ojvC+CSdUFkt7bZA1T5Ei3LpNRYb3sOq1HVM1rA0qe/FBpowSzK5bBr84IPIvr/7J2pWtq2bXmB2+I8D5GUZoA==","signatures":[{"sig":"MEQCIEUKevhs/FKMmT/pw5G/N6/hZ45NcIuikoRHXmWXEYqeAiBloUUujvnyfbYQEMTKLWUZASpdF3RlRPOt1HJ3xiM5FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93711},"type":"module","gitHead":"ecdb90693122a88f0360850f6e68ca782e071aa3","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cad968bf-127a-45c3-8bdf-0ff2ea503b08"}},"repository":{"url":"git+https://github.com/dreki-gg/pi-extensions.git","type":"git","directory":"packages/browser-tools"},"_npmVersion":"11.13.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.16.0","dependencies":{"pako":"^2.1.0","jpeg-js":"^0.4.4","linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typescript":"^6.0.0","@types/node":"24","@types/pako":"^2.0.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.6.0_1781744803321_0.3644372325344314","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@dreki-gg/pi-browser-tools","version":"0.7.2","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","_id":"@dreki-gg/pi-browser-tools@0.7.2","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"homepage":"https://github.com/jalbarrang/pi-browser-tools#readme","bugs":{"url":"https://github.com/jalbarrang/pi-browser-tools/issues"},"pi":{"extensions":["./extensions/browser-tools"]},"dist":{"shasum":"06d6b576a84a7be9392dda69feabcdf77d9e22f0","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.7.2.tgz","fileCount":18,"integrity":"sha512-C1mvhAtYmYSdB2Ae8TjsRJhdsCMrMh/e7EmVR8G+SeRngFcfnjGyGy7QQnTcGNqHUXh8sH/jMLU0UuGbiOza6Q==","signatures":[{"sig":"MEUCIDChBo2Z5oZkQHnDU5opSes9vACo1SGXcJWrpGgMdnSoAiEA0vxGEB5ubPPXz4GfffBi9jAdbnsetld32X+ehQxgY6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95839},"type":"module","gitHead":"81250a036b90056c5123bc0261a118b2b38fc03d","scripts":{"lint":"oxlint extensions test","test":"bun test test/unit","format":"oxfmt --write extensions test","typecheck":"tsc --noEmit","format:check":"oxfmt --check extensions test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5890a4b4-62fc-411f-a34f-bf0ef21f733f"}},"repository":{"url":"git+https://github.com/jalbarrang/pi-browser-tools.git","type":"git"},"_npmVersion":"11.16.0","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pako":"^2.1.0","jpeg-js":"^0.4.4","linkedom":"^0.18.12","turndown":"^7.2.1","@mozilla/readability":"^0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.43.0","oxlint":"^1.58.0","typebox":"^1.0.55","typescript":"^6.0.0","@types/node":"24","@types/pako":"^2.0.4","@earendil-works/pi-ai":"^0.75.4","@earendil-works/pi-coding-agent":"^0.75.4"},"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"typebox":{"optional":true},"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-browser-tools_0.7.2_1783789298204_0.32188804914701197","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@dreki-gg/pi-browser-tools","version":"0.7.3","description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","keywords":["pi-package","pi","browser","agent-browser","web"],"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/jalbarrang/pi-browser-tools.git"},"type":"module","scripts":{"typecheck":"tsc --noEmit","test":"bun test test/unit","lint":"oxlint extensions test","format":"oxfmt --write extensions test","format:check":"oxfmt --check extensions test"},"pi":{"extensions":["./extensions/browser-tools"]},"dependencies":{"@mozilla/readability":"^0.6.0","jpeg-js":"^0.4.4","linkedom":"^0.18.13","pako":"^3.0.1","turndown":"^7.2.4"},"devDependencies":{"@types/node":"26","@types/pako":"^2.0.4","oxfmt":"^0.58.0","oxlint":"^1.73.0","typescript":"^7.0.2","@earendil-works/pi-ai":"^0.80.6","@earendil-works/pi-coding-agent":"^0.80.6","typebox":"^1.3.6"},"peerDependencies":{"@earendil-works/pi-ai":">=0.80.0","@earendil-works/pi-coding-agent":"*","typebox":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true},"typebox":{"optional":true}},"publishConfig":{"access":"public"},"gitHead":"b3c2ad27fce07e7829901f631d6def845c26a4e5","_id":"@dreki-gg/pi-browser-tools@0.7.3","bugs":{"url":"https://github.com/jalbarrang/pi-browser-tools/issues"},"homepage":"https://github.com/jalbarrang/pi-browser-tools#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-DEG4EwzAySbgHsLmRS7uYgg192a7Ki1FGszt1AfTIdT33Ov5kRh4fM2cfQEGAoZGhIeY1paMgEOrGGfwWfxQvA==","shasum":"2266106783878bd793c0dd54f2a14d3879b42111","tarball":"https://registry.npmjs.org/@dreki-gg/pi-browser-tools/-/pi-browser-tools-0.7.3.tgz","fileCount":18,"unpackedSize":96248,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dreki-gg%2fpi-browser-tools@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAvLnvtyl6lhFc4DXkCjTF0i+o6yk+lE/t5ehdYEbsCTAiBkRoAwZVU1XVYMKFU8UUIsDestSdIjZrPPsqzQ88ZgIQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5890a4b4-62fc-411f-a34f-bf0ef21f733f"}},"directories":{},"maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-browser-tools_0.7.3_1783828071121_0.7191906185550665"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-29T17:35:07.897Z","modified":"2026-07-12T03:47:51.541Z","0.1.0":"2026-04-29T17:35:08.186Z","0.1.1":"2026-05-08T06:37:11.223Z","0.1.2":"2026-05-09T06:39:44.946Z","0.2.0":"2026-06-04T02:24:38.802Z","0.4.0":"2026-06-06T04:51:30.867Z","0.4.1":"2026-06-08T02:30:31.777Z","0.4.3":"2026-06-13T20:30:09.276Z","0.4.4":"2026-06-13T21:50:21.710Z","0.5.0":"2026-06-17T21:04:21.599Z","0.6.0":"2026-06-18T01:06:43.481Z","0.7.2":"2026-07-11T17:01:38.343Z","0.7.3":"2026-07-12T03:47:51.261Z"},"bugs":{"url":"https://github.com/jalbarrang/pi-browser-tools/issues"},"author":{"name":"Juan Albarran","email":"jalbarrandev@gmail.com"},"license":"MIT","homepage":"https://github.com/jalbarrang/pi-browser-tools#readme","keywords":["pi-package","pi","browser","agent-browser","web"],"repository":{"type":"git","url":"git+https://github.com/jalbarrang/pi-browser-tools.git"},"description":"Browser automation and web research tools for pi — search, visit, screenshot, interact, and inspect console output","maintainers":[{"name":"jalbarrang","email":"jalbarrandev@gmail.com"}],"readme":"# @dreki-gg/pi-browser-tools\n\nBrowser automation and web research tools for pi.\n\nIt adds:\n- `web_search` for search-engine-backed web discovery\n- `web_visit` for readable markdown extraction via fetch or the selected browser backend\n- `web_screenshot` for browser screenshots at desktop or mobile sizes\n- `web_interact` for click/type/select/scroll/hover/wait actions on the open page\n- `web_console` for captured browser logs, warnings, and uncaught page errors\n- `/browser` for a quick browser status check\n\n## Install\n\n```bash\npi install npm:@dreki-gg/pi-browser-tools\n```\n\nBrowser backend: `agent-browser` (see [Browser backend](#browser-backend)).\n\nOptional `agent-browser` backend setup:\n\n```bash\n# Homebrew\nbrew install agent-browser && agent-browser install\n\n# or npm\nnpm install -g agent-browser && agent-browser install\n```\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `web_search` | Search the web and return up to 10 filtered results |\n| `web_visit` | Fetch a URL and convert it to readable markdown, with optional browser rendering |\n| `web_screenshot` | Take a screenshot of the current page or navigate to a URL first |\n| `web_interact` | Interact with the current browser page and return a fresh screenshot |\n| `web_console` | Read captured browser console output, warnings, errors, and uncaught page errors |\n\n## Search providers\n\nDefault provider: DuckDuckGo HTML.\n\nOptional env vars:\n\n```bash\n# Select provider: duckduckgo | google | brave\nexport WEB_SEARCH_PROVIDER=duckduckgo\n\n# Google Custom Search\nexport GOOGLE_CSE_API_KEY=...\nexport GOOGLE_CSE_ID=...\n\n# Brave Search\nexport BRAVE_SEARCH_API_KEY=...\n```\n\nIf `WEB_SEARCH_PROVIDER=google`, both `GOOGLE_CSE_API_KEY` and `GOOGLE_CSE_ID` are required.\nIf `WEB_SEARCH_PROVIDER=brave`, `BRAVE_SEARCH_API_KEY` is required.\n\n## Browser backend\n\nBrowser-backed tools use [`agent-browser`](https://github.com/agent-browser/agent-browser) as the only runtime. Install it with:\n\n```bash\n# macOS\nbrew install agent-browser && agent-browser install\n# or any platform\nnpm install -g agent-browser && agent-browser install\n```\n\nIf `agent-browser` is unavailable, browser-backed tools fail with install guidance.\n\n## Screenshot analysis (vision model)\n\n`web_screenshot` and `web_interact` can optionally hand the screenshot to a vision\nmodel (e.g. Gemini Flash) and return a **text description instead of the image** —\nuseful for letting a multimodal model recognize forms, shapes, and layout.\n\n- Per-call opt-in: pass `analyze: true` (and optionally `analyze_prompt: \"...\"`).\n- Global default: set `WEB_SCREENSHOT_ANALYZE=1` (truthy: `1`, `true`, `yes`, `on`).\n  An explicit `analyze` param always overrides the env default.\n- Model selection via `WEB_SCREENSHOT_MODEL` as `provider:modelId`\n  (default `google:gemini-2.5-flash`; a bare value is treated as a `google` model id).\n\n```bash\nexport WEB_SCREENSHOT_ANALYZE=1\nexport WEB_SCREENSHOT_MODEL=google:gemini-2.5-flash\n```\n\nThe chosen model must have auth configured in pi (API key / OAuth) like any other model.\n\n## Notes\n\n- `web_visit` uses plain fetch by default and falls back to the selected browser backend when the fetched markdown is too thin.\n- `web_interact` and `web_console` require an open browser session. Open one first with `web_screenshot` or `web_visit` using `render: true`.\n- `web_interact.text` resolves against the accessibility snapshot using tiered matching: exact accessible name, exact visible text, then case-insensitive substring on each. A tier is only accepted when it yields a single match — ambiguous text throws and asks for a `selector`. Prefer `selector` when you need deterministic targeting.\n- `web_console` on `agent-browser` merges console messages and page errors, so ordering and level attribution are best-effort.\n- `web_visit.details.method` is either `fetch` or `agent-browser`.\n- A browser session stays open and is reused across tool calls until the pi session ends (or `close()` is called explicitly). There is no idle auto-close, so `web_interact`/`web_console` keep working after long gaps following `web_screenshot`.\n- See [`docs/agent-browser-compatibility.md`](./docs/agent-browser-compatibility.md) for known gaps and backend-specific notes.\n","readmeFilename":"README.md"}