{"_id":"@cemoody/pi-crust-ext-browser","_rev":"24-964ccd8adf828e5eadbab6f850c03de9","name":"@cemoody/pi-crust-ext-browser","dist-tags":{"latest":"0.0.24"},"versions":{"0.0.1":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.1","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.1","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"877befd70c588cf9b6ef9658278ee368c5fe2f84","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.1.tgz","fileCount":56,"integrity":"sha512-0cYakMZ4ImzSujy79HJ/ZxOnqhX3HGr0gIhmEvaE/nVUbN1NjICTz/3csmAzylBBTXPXc3TQ7Z19kCUznmzO7A==","signatures":[{"sig":"MEUCIQDJGLYcrmDYhypAUJibjG36vSIV+phkuOkIJifrNEpCMwIgFDsT2TPR1dLxa5dQqC6ix5whRZMtq7KKFD0FiqRatkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241421},"type":"module","engines":{"node":">=22"},"gitHead":"aa30e81f17db53bfa8ee9ad15146630ade8ea471","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.1_1781583777018_0.5064820823015879","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.2","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.2","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"3b489a15b97a5a142dad43c54d5a1c32b5f63bc9","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.2.tgz","fileCount":56,"integrity":"sha512-wjWLkpK/Xw4u5ShZ5RzQ27KNKQFYDg8ajaUaHyAvGfejtP4zf9rUgrULZdrjX+yyvTMY9JUk7IjGAJNzHj+qsQ==","signatures":[{"sig":"MEQCICdRXbhZbqX0uoSZtRBihzcx0KlW0ONNWFYWe7nWrgaHAiA+CBoSexxx2sh1hmn/1gr7tWBZeAbulrcpK2NVbz5h/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242813},"type":"module","engines":{"node":">=22"},"gitHead":"9a360ce70ba748cca85ef7db69ea88c857f365a0","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.2_1781584354081_0.2874272678514336","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.3","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.3","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"8ca976bce5c3abc80cc8a68e00e141ab51218a08","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.3.tgz","fileCount":56,"integrity":"sha512-OIqm+JtDHqKhQjw65YuNoC8ivvC8g1NfVc8K9L4iNAuTAGUEf2zgf7gK2NJIiXsGAWz2voJ/DUC3BqNHJgXvxQ==","signatures":[{"sig":"MEQCIAOA8tJtIi088oAMg/8gaKfUZQqwu8j8nTh8Cafc+uglAiAVuGVdwOY0LvbpgbIDKBUg1QlywHaTxWSRDX4HkOYXag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253409},"type":"module","engines":{"node":">=22"},"gitHead":"9b2c95a04dce11048db5c0a38719e1ef15ba54d7","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.3_1781584928230_0.4202730601281137","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.4","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.4","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"85c4af9818d3786738776279949b1621bb500fca","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.4.tgz","fileCount":56,"integrity":"sha512-3qwcCAs8JUFf+42GIwJfU0geT55ZXUIZrHBhTwSJOml5C2ZaHYw2fnQsqlbDUcnS1OwTW+BiLI/SZc8eOmt8Ag==","signatures":[{"sig":"MEUCIQC7TCEwJgKqoMBulfY0Uzliis7lr77AEKaMi4K/S30LmAIgPQlsX8RRU8Cbz0iRDWLtiK8I4vDSG3RLq/+0rya+dc8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256385},"type":"module","engines":{"node":">=22"},"gitHead":"6fbcd6ad5fbc21ebdb4840ae483941647ea79393","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.4_1781585253157_0.14717130708429438","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.5","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.5","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"4a53704a352f39d87c3e0a49c780cf5708cedf54","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.5.tgz","fileCount":56,"integrity":"sha512-UJ2/RGFRbuvIrjUKa+tnFYxyYp0YYkS/b3j15eG7HZQyeZxW4SIbhaW2OeW9ynRfp44KfCo78gbKmnH5hpao/A==","signatures":[{"sig":"MEUCIA2D+FYiwxjqvbuiOUjIkcIP2ADT5wlsLjtWzbbcU85eAiEAgEEb4yd1+kOeeqrAyfIZSW2pQlrs9iCBNrGf8GbU8e0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255744},"type":"module","engines":{"node":">=22"},"gitHead":"4e8d1446ede56eca8d3c853c5243a47475e3795d","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.5_1781585702560_0.45133289429999324","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.6","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.6","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"30add21d6623e7fa19307a3996920dbe4779a0a4","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.6.tgz","fileCount":56,"integrity":"sha512-7zDoxC6wP3Bz3KXtKleEzxP3LRLlR57fS1ztWGrBV9ipCtMF6jE3qCZERNwjQCUmYinPan9CWCAYKiQotCVUwQ==","signatures":[{"sig":"MEUCIFvJRtp1HSSrVF1PLIggBLqv9Ym5r7yMlB917IBMvga5AiEAom7eUsroeUn4BSowdYJ3AJx23X27/AXsay7qeef2qUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259583},"type":"module","engines":{"node":">=22"},"gitHead":"525cfd19c1eb6a9d616890d8e27a0a6bf40ed3b1","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.6_1781614425933_0.6884363405212104","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.7","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.7","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"304d4e4d701dfd13bacbb883ce8a4a9f7bbe76dd","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.7.tgz","fileCount":56,"integrity":"sha512-M4LOgAtldWzmp/NUyHxZIjaZqhV1NaT/Yv800oSO9caTSb/tSqurAauxkKBXdsUOi7RHZUZjmW6SHtcejpwfEw==","signatures":[{"sig":"MEUCIQC4GqLZcYDWoG9J/iFaOrWQBQ6XVdR08p4rm+Ml5qC+SAIgTc/raa5pbHKmnXrtO5XLJuQxpEWhxWWZZuoA4i4bfCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261643},"type":"module","engines":{"node":">=22"},"gitHead":"e9a5df1e1716dd7b5235ee13eecfebdac06ba1c0","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.7_1781615137787_0.6282788496226641","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.8","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.8","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"eed28503e55a161a9733fb7853349cebc48f0cdf","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.8.tgz","fileCount":56,"integrity":"sha512-xCGoAkQJ0U2NnVodainLWnQWuNJgbSV1sDDYFJ2ojbr9Uk2mUBCMSW3buVXXOHWk4onmaxX888SI+UzNvMU7lQ==","signatures":[{"sig":"MEYCIQCyc1nGV1rZrP/Gg+FxbCs3sXiXPH4rV83t05ODDHBbKAIhAIorPR06WTJE0kpB25TGMA6MpgFCRdIA6Ht1v3/lZIQH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278903},"type":"module","engines":{"node":">=22"},"gitHead":"69e90cc04cc8963636c8cc2552772d2ad5450118","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.8_1781619515293_0.765863095551667","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.9","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.9","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"ad8abf7ec022f670bc73b323a408a436db332301","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.9.tgz","fileCount":56,"integrity":"sha512-s44goWnBCL2iHMDGkZTz4x7DpwGfTXPlt8KYcf9Xyx9DmTct3eAZpyGvlY9ZJz+mYX7l3M1GPRDRBVEli81Q3g==","signatures":[{"sig":"MEUCIFAgJmVhk3xLUqhGk5cRCBt6MyF+KtnElZJrCIGekWYXAiEA1mdUkNURtwbPxIYW7yAon5wY3bRW65Aih1sZhWIjDjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279646},"type":"module","engines":{"node":">=22"},"gitHead":"f5095f03914ead62791ced2a74e44e76ffd90968","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.9_1781621300815_0.1312394365529499","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.10","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.10","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"996ced4ac9fd9af61a197268b098b9077ef16214","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.10.tgz","fileCount":56,"integrity":"sha512-lTu9a6smrTEwuufiNebfvHgfzNeSHO13+5LqKy2nTdwuRY6JA+XieEfPGp1SwDKGP2mLXKSZ/bHxZaJP9FKUdA==","signatures":[{"sig":"MEQCIHfjczVuCVBKdLVobFHAo5HYgNtLNB0s5LWSx/9IapEdAiA+sPo2qdWHRUlW9bNHevUBk9pxk7/K5qj3h9IOl1YZ6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288746},"type":"module","engines":{"node":">=22"},"gitHead":"9746ca0db63684318d7780afbeaf592ca07ee4db","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.10_1781622415794_0.22969096241458042","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.11","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.11","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"2901c7ce0ddaf84cc9a22c45153e0e60bb5ed899","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.11.tgz","fileCount":56,"integrity":"sha512-ig3AVFXDo5duMjxHtfSNzYCnRejfuWS7kdu0VozhCZSss5TXOYj3HABfIY/fVYf8nBFy5ohnn4KhwN8jxlB8mA==","signatures":[{"sig":"MEUCIQCahrCE9eCSXNE9SqI874ngtp0OU+H4KcWHou3BqloxGwIgFFskel45910wIWKAdQumkrN/TEucGuQGmRzfTnNfOCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290687},"type":"module","engines":{"node":">=22"},"gitHead":"2bc05c7a21d5cd01f65bef62ceb0315dda104b76","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.11_1781622587945_0.48236515610704767","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.12","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.12","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"a52175bc663b18025a5628dde962996000f1b6e0","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.12.tgz","fileCount":56,"integrity":"sha512-sXLG5UhTro7Md2Y8XJeBYJp2ep7qPEvY5lfgrBez/pw5+YYH/I8LChmCVQu4irzdcNxzsRK9lO+Wdk8ap8tbcQ==","signatures":[{"sig":"MEQCIF5ES8XYpxYacqADxwAvcQpMxaAKRoP9r6fpatVYp16nAiBcNDvv66BP30zBmYCNqzK5q0dSB9h/Nz2B8RshHhpO7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290700},"type":"module","engines":{"node":">=22"},"gitHead":"f250bdebcd6291a578968b85391204a04e92b4c6","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.12_1781625748915_0.10610059773675595","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.13","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.13","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"e39556ad475a1093aba30be85678648299f59a26","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.13.tgz","fileCount":56,"integrity":"sha512-Pry+V2Gze3KG4x2p0veSFWPoWr4k0oCLce668THTsIlyGllrCm6YHkceUrDvCm5IJFTpelPRpo0yGLurz+metA==","signatures":[{"sig":"MEUCIQCMVgvqIvJrGfpQTAUtNPjgK0X1N9P5YmNCIWqQ8vF5TAIgIz2oT6AOw/u1T8CCd60VlejIOxc/zN6caegY47t/Gs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293229},"type":"module","engines":{"node":">=22"},"gitHead":"df8879396f43c48ede05ad232320e87efd7c11c6","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.13_1781626074824_0.25271535307108395","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.14","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.14","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"3aa9aedf97b7cab4271ce3125d27f2dc767bd04f","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.14.tgz","fileCount":56,"integrity":"sha512-TaF+LAesoOez/ev3lqk3A0TntcKN/MjByeJYVs+TpbpYaLOFXeC2CdIH7bYWSGCA0DdFA6rdgnMaIG16QXT6YA==","signatures":[{"sig":"MEQCIFqB1QADNkFEUF8PF+i/nVLQEi0hvJskHhlmbDGFC8sNAiBXasLqmI+uEgaAQxxeAF9EQYA6VoAVvLJmytxtq5zzpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293429},"type":"module","engines":{"node":">=22"},"gitHead":"1b7f72e25c93316dc225e025827391ee18571783","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.14_1781628314471_0.7371718438485448","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.15","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.15","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"e5bc8fdf0125cca660aeb3157d6ac22e1d155910","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.15.tgz","fileCount":56,"integrity":"sha512-m43XyvXxYBlN84XehJXC2yGZXVQmoMsQD0DfTXcJr5OACo2O3/uOJn8W3nOxXreOWGBGvLwIkTNxUE/0fF7GYg==","signatures":[{"sig":"MEUCIQCcKlJPDCMuA27VajnYkpRgqr8dUQK+sy/gWZp/3BpsNgIgRBh2JnfxtaGrOwGR2kveLjpjbMpV8kfcsTtU8oNODlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295194},"type":"module","engines":{"node":">=22"},"gitHead":"fc3c4c94d0b08fb2ef74fc44b76904f7c577cdc3","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.15_1781629549692_0.6031352763377187","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.16","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.16","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"8508849af23a3c2ed36328c243da6f8e99f7627e","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.16.tgz","fileCount":56,"integrity":"sha512-uwgLpveJB/XAVIlxGKxuDNq3aemEOWddZd+DIx6ZswJ0fhngLKllqztSZsLD+XhKfbRuQyQYBObEsMWB+Xw/Yg==","signatures":[{"sig":"MEQCIBt5Kf9lARwgKQZyEzepbuVdE86cQ76iYSX+MPuoyb7MAiByBmY0sgz2LcjGOAYoT/4/cE15VHmGhxyYwjQtrA2XCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296287},"type":"module","engines":{"node":">=22"},"gitHead":"64b804bf0a41047e9e5d905c806782a4334c50a5","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.16_1781630643840_0.6719706361064721","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.17","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.17","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"86303dd869516dd08172ae654adc1704506ccc18","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.17.tgz","fileCount":56,"integrity":"sha512-bTtvHAAHnN0erFRgyd7eNjWm9b+cWJ7uGC/NJbO8WIL02vRzHvkPaOJAPcilkd9WH64O8ZiDJSuHhNrFXjvMOA==","signatures":[{"sig":"MEQCIDT7DlFzO8yN7LiBYdGnKKBus7bhWNDzYG8MqrmAcMUvAiAArWtd4NLe1lhRRqG8dejlmzlG6dLYJi86mPMhJ3DC4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302865},"type":"module","engines":{"node":">=22"},"gitHead":"d956356890c335961eed66c3a8a1e5b489f3b5bc","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.17_1781636150105_0.40114095596313315","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.18","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.18","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"b5bd8019257b3534de09b200b63303ccc4427ac3","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.18.tgz","fileCount":56,"integrity":"sha512-qU4Ke3euJN0RDKt+pCoknrO/DNJMQHXpxcthLL7WR+i+FRK/7qyrFOOS3q+lH+xNZytBGXVKvzSn+UzyICJP7Q==","signatures":[{"sig":"MEYCIQCnmJR8g0mKAdGLkOOekmDbsDM8qayFJ/qrxdpWIxOGfAIhAPxG5fA8MP+i0dGTXZB7jUZ99qVpRt7Q9oNbVAyKjTNR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310044},"type":"module","engines":{"node":">=22"},"gitHead":"909442fdd7522440b00cdc0e8be5b4b004ae37d1","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.18_1781636615925_0.9570229662760494","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.19","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.19","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"dc5f609dd2de3ceee55dbad68dc1588782649ba4","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.19.tgz","fileCount":56,"integrity":"sha512-l1pZBJIOklfLym4GQKkKmkdTU8+qQJqv7OV1UG25qvTTFiv/GZOJ+cvs94HHKFJYZSlbb2DEkdm3pbtjvnVopg==","signatures":[{"sig":"MEUCIQCtnlo3ScNR/TAnbt8Ba3FHZJiiXMGvCe4hpKla+5OWygIgHy3/b/kcJwH/39Akal96LDDjKYEEJXwuH+ZaJLFWEwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313863},"type":"module","engines":{"node":">=22"},"gitHead":"55be076d7524d1b96c11de7585b309af826899cc","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.19_1781637946406_0.02480260500932019","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.20","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.20","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"89ae56a756f7bbc685a24330b9c35df0a1e8d1ff","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.20.tgz","fileCount":56,"integrity":"sha512-Ly840NtOaxFarVkTgYf90vPpvsHX3iYxTiy4N8DfePtaM7pDLwdPVEbq1T8/+KWMPDlj37K/dRQJnqfhlnTBDw==","signatures":[{"sig":"MEUCIQD9YOKx2AkQ7OljbEHU7NdXCJsyY20/D8lNCjSLlc/AHwIgInjEILSOf78Dza6q5ALLo/u9zNHfxTygVwYpptqH1XY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317487},"type":"module","engines":{"node":">=22"},"gitHead":"3e9a6dd3d9af86f68d9e00aea8a0735e2e3fcd09","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.20_1781638577161_0.8325548011104813","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.21","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.21","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"0f7f56b97ec6dc530885d1878108eab55049d65d","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.21.tgz","fileCount":56,"integrity":"sha512-iFunFLetcQj3om6GquhzrC/ShTq5zRSoWLO+4R/EUGNLVaejI1tYzZOwRHHDdw0kqxN3iYVyfwwK75YsbBHNyw==","signatures":[{"sig":"MEQCIHNo/WE5a4LLl7HxFtzo/rQV111BQS8+iw7HsKIO+4fjAiAkYAoya7jViplVZIvy+VxQQuNJGhJ/4rDYkMNXUqV+3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318947},"type":"module","engines":{"node":">=22"},"gitHead":"3bb1ebe684432701255325875a01fda049c870b5","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.21_1781639309682_0.115741473067007","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.22","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.22","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"fefc5e6f4ea4146706223e88421ae136e79e3b47","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.22.tgz","fileCount":56,"integrity":"sha512-GKTFJ1+MdspqtphNdhNpxkvipZ1loSw5lCT7AbytdpKpyYekfpEHo85yv0r5H6QJqYP2JBIccPb6df1vMPbqiA==","signatures":[{"sig":"MEYCIQCf+hO9fFRPFDVHEhcuVycoMRwgU6M6/z6UCedqZfb6mwIhAKmA8+hnix0XmQj4dbEC4hlR+LS3oJ/9bAVEP7ndqyzC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319359},"type":"module","engines":{"node":">=22"},"gitHead":"7bb1f2fe215504347bbe1cd0c9de7b57bb0e5ce3","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"typebox":"^1.1.24","playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.22_1781639612334_0.4607181018490729","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.23","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"author":{"name":"cemoody"},"license":"MIT","_id":"@cemoody/pi-crust-ext-browser@0.0.23","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"pi":{"extensions":["./src/pi/index.ts"]},"dist":{"shasum":"028442e29a53b59a0c1b500a6478dd536f34c6b9","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.23.tgz","fileCount":56,"integrity":"sha512-Zp5o7fI6/NlbSN3PXhA72HrkW5A08o7nhOe6MQ7MrcYHqV0YvVrI3OtlLBfbeCKawDp8xpJv/5LFwBHOOI8A2w==","signatures":[{"sig":"MEYCIQCJwdljhATDqcFDdU0A9CVnJ2z92rtCCjuQAy+1cNWrkgIhAJfjaN06jvE2tdOtCKU+A0c7MdDWnfFTYT73xnErS2FM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320843},"type":"module","engines":{"node":">=22"},"gitHead":"009a79c0e27117ba071d5ad089d785efa5cf750f","piCrust":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:web","test:e2e":"vitest run --config vitest.e2e.config.ts","build:web":"node scripts/build-web.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"repository":{"url":"git+https://github.com/cemoody/pi-crust-ext-browser.git","type":"git"},"_npmVersion":"10.9.7","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"typebox":"^1.1.24","playwright-core":"^1.59.0","socket.io-client":"^4.7.5"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.0.0","esbuild":"^0.24.0","react-dom":"^19.2.7","playwright":"^1.61.0","typescript":"^5.9.3","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2"},"piRemoteControl":{"web":"./src/web/widget.mjs","extension":"./src/prc/server.ts"},"_npmOperationalInternal":{"tmp":"tmp/pi-crust-ext-browser_0.0.23_1781640346334_0.5905266861922076","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@cemoody/pi-crust-ext-browser","version":"0.0.24","description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","license":"MIT","author":{"name":"cemoody"},"type":"module","engines":{"node":">=22"},"scripts":{"test":"vitest run","test:watch":"vitest","typecheck":"tsc -p tsconfig.json --noEmit","build:web":"node scripts/build-web.mjs","build":"tsc -p tsconfig.build.json && npm run build:web","prepublishOnly":"npm run build && npm test","test:e2e":"vitest run --config vitest.e2e.config.ts"},"pi":{"extensions":["./src/pi/index.ts"]},"piCrust":{"extension":"./src/prc/server.ts","web":"./src/web/widget.mjs"},"piRemoteControl":{"extension":"./src/prc/server.ts","web":"./src/web/widget.mjs"},"keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"repository":{"type":"git","url":"git+https://github.com/cemoody/pi-crust-ext-browser.git"},"homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"dependencies":{"playwright-core":"^1.59.0","socket.io-client":"^4.7.5","typebox":"^1.1.24"},"devDependencies":{"@testing-library/dom":"^10.4.1","@testing-library/react":"^16.3.2","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","esbuild":"^0.24.0","jsdom":"^29.1.1","playwright":"^1.61.0","react":"^19.2.7","react-dom":"^19.2.7","typescript":"^5.9.3","vitest":"^4.0.0"},"_id":"@cemoody/pi-crust-ext-browser@0.0.24","gitHead":"e978a8ab00250cd3a128be06ff6c0320c64fb362","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-01gmFJOtHTVX9uKTY2K9UCfVZHP9ElnZKOQXtscwwLCDu3zOncQDfs9VQzhuZwBYn5rvTKz3JtQ9Tg3L6zIZ/Q==","shasum":"a2f26484d4cd7f78edc3cfe2f603b94a1f84e0bb","tarball":"https://registry.npmjs.org/@cemoody/pi-crust-ext-browser/-/pi-crust-ext-browser-0.0.24.tgz","fileCount":56,"unpackedSize":327270,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEbV4E9KOHR1v1DP0b436fklipnHYOHkPQPW8v7ILu6YAiAHmH8KoGyNbojYryz0rAmZ6mWDlGNqwHaOTJv36RX6tQ=="}]},"_npmUser":{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"},"directories":{},"maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-crust-ext-browser_0.0.24_1781640983620_0.9860789653898643"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T04:22:56.771Z","modified":"2026-06-16T20:16:23.965Z","0.0.1":"2026-06-16T04:22:57.158Z","0.0.2":"2026-06-16T04:32:34.224Z","0.0.3":"2026-06-16T04:42:08.370Z","0.0.4":"2026-06-16T04:47:33.309Z","0.0.5":"2026-06-16T04:55:02.739Z","0.0.6":"2026-06-16T12:53:46.084Z","0.0.7":"2026-06-16T13:05:37.938Z","0.0.8":"2026-06-16T14:18:35.444Z","0.0.9":"2026-06-16T14:48:20.989Z","0.0.10":"2026-06-16T15:06:55.932Z","0.0.11":"2026-06-16T15:09:48.099Z","0.0.12":"2026-06-16T16:02:29.087Z","0.0.13":"2026-06-16T16:07:55.014Z","0.0.14":"2026-06-16T16:45:14.610Z","0.0.15":"2026-06-16T17:05:49.839Z","0.0.16":"2026-06-16T17:24:03.983Z","0.0.17":"2026-06-16T18:55:50.256Z","0.0.18":"2026-06-16T19:03:36.134Z","0.0.19":"2026-06-16T19:25:46.550Z","0.0.20":"2026-06-16T19:36:17.338Z","0.0.21":"2026-06-16T19:48:29.819Z","0.0.22":"2026-06-16T19:53:32.484Z","0.0.23":"2026-06-16T20:05:46.514Z","0.0.24":"2026-06-16T20:16:23.846Z"},"bugs":{"url":"https://github.com/cemoody/pi-crust-ext-browser/issues"},"author":{"name":"cemoody"},"license":"MIT","homepage":"https://github.com/cemoody/pi-crust-ext-browser#readme","keywords":["pi-crust","pi-crust-extension","pi.dev","browser","playwright","cdp","remote-browser","screencast"],"repository":{"type":"git","url":"git+https://github.com/cemoody/pi-crust-ext-browser.git"},"description":"Live remote-browser widget for pi-crust: the LLM drives a remote Chromium via CDP while a human can watch and type credentials inline.","maintainers":[{"name":"chrisemoodynpm","email":"chrisemoody@gmail.com"}],"readme":"# @cemoody/pi-crust-ext-browser\n\nLive remote-browser widget for pi-crust: the LLM drives a remote Chromium via\nCDP while the human can watch and type credentials inline. Usually hidden;\nrevealable from the sidebar, and the LLM can force a live login card into the\ntranscript.\n\nSee the design + test contract in the sibling demo dir:\n`../browser-widget-demo/EXTENSION-PLAN.md`, `TEST-PLAN.md`, `ACCEPTANCE-CRITERIA.md`.\n\n## Status: RED scaffold (TDD)\n\nThe acceptance criteria are encoded as a runnable, currently-failing test suite.\nImplementation proceeds **red → green** against the criterion IDs.\n\n```\nnpm test            # vitest run (fast suite: unit + contract + widget stubs)\n```\n\nCurrent state (`50 passed | 49 todo`, tsc clean):\n\n**Phase 1 — core brain (green):**\n- ✅ `input-mapper` (INP-1/3/5/6) — 7 green.\n- ✅ `browser-service` (LIFE/STR/MUX/SEC/ERR) — 14 green.\n- ✅ `handoff` (HOFF-*) — 6 green.\n- ✅ `redaction` (TOOL-5/SEC-3) — 4 green.\n\n**Phase 2 — transport + wiring (green):**\n- ✅ `transport` (DEPLOY-1) — same-origin URL helpers.\n- ✅ `live-view-token` (SEC-8/DEPLOY-2) — HMAC session-scoped tokens.\n- ✅ `cdp-playwright` (CDP-1/2/3) — real CDP adapter incl. navigation/target follow;\n  `createPlaywrightCdpFactory` (CDP-4) connects to `CDP_URL` or launches headful.\n- ✅ `browser-gateway` (GW-1/2/3, MUX-2 wire) — browser:* onConnection wiring.\n\n**Phase 3 — wired + running (green):**\n- ✅ `widget-transport` (W-GW) — `gateway-client` rides the shared socket; bundled\n  `widget.mjs` (sidebar) + `live-card.js` (Tier-B inline card) via esbuild.\n- ✅ `routes` (GW-4) — token / live-view / resume / navigate handlers.\n- ✅ `server-activate` (HOST-1) — `activate()` wires realtime + factory + routes.\n- ✅ `login-artifact` (HOFF-2) + `pi` tools — open/navigate/snapshot/request_login/wait_for_human.\n\n**Phase 5 — review fixes (0.0.3):**\n- ✅ **Idle reaper (LIFE-5)** — browsers with no viewers + no activity are closed\n  after `idleMs` (default 5 min); `dispose()` tears everything down. Fixes a real\n  per-session Chromium/CDP leak (nothing called `closeSession` before).\n- ✅ **Handoff actually blocks** — `browser_request_login` now hits `/request-login`\n  (sets awaiting-human + shows the banner) and `browser_wait_for_human` blocks on\n  `/wait` until the human clicks Resume. Previously the tool called `/resume`\n  itself, so the LLM never paused and the banner never showed.\n- ✅ **Token required at the gateway (SEC-6/8)** — removed the tokenless-attach\n  bypass; every attach needs a valid session-scoped token (the widget + card both\n  fetch one).\n- ✅ **Reconnect re-attaches (RES-1)** — the widget re-attaches on every socket\n  (re)connect, so the stream survives socket.io reconnects.\n- ✅ `resume`/`wait` no longer spawn a Chromium for a session that has none.\n\n**Phase 4 — hardening (green):**\n- ✅ `pacing` (PERF-1/2, RES-5) — latest-wins frame pacer + pointer-move coalescer\n  (wired into the widget transport).\n- ✅ crash recovery (RES-3), snapshot (TOOL-4/SEC-3 — innerText excludes secrets),\n  leak guard (PERF-5), `tools` RPC tests, jsdom transport test.\n- ✅ **real-browser e2e** (`npm run test:e2e`): streams frames, follows navigation\n  (CDP-2), and round-trips human input against a real Chromium over CDP.\n- ⏳ `todo`: full React/canvas widget DOM render tests + perf budget numbers in CI.\n\n### Tests\n```\nnpm test        # fast suite: 82 passed | 29 todo (unit/contract/widget)\nnpm run test:e2e   # real browser (set E2E_CHROMIUM_CDP_URL=ws://host:port/ or it launches one)\n```\n\n### Verified live\nRuns inside pi-crust on its OWN realtime gateway (no standalone server): the\nsidebar **Browser** activity streams a remote Chromium (via `PI_CRUST_BROWSER_CDP_URL`\n→ `connectOverCDP`) over `browser:*`; attach ack + JPEG frames confirmed end-to-end.\n\n### Configuration (env)\n- `PI_CRUST_BROWSER_CDP_URL` — CDP endpoint of the remote browser to stream\n  (e.g. `ws://127.0.0.1:9222/`). If unset, the extension launches its own\n  **headless** Chromium (which still renders + streams normally, no display\n  needed) — but `playwright-core` ships no browser binary, so a local launch\n  also needs `npx playwright install chromium` on the host. Pointing at a CDP\n  endpoint is the zero-install path.\n- `PI_CRUST_BROWSER_HEADLESS=0` — opt into a visible window (needs an X display).\n  Default is headless.\n- `PI_CRUST_BROWSER_SECRET` — optional. Live-view tokens are issued by the\n  server and verified by the same process, so this is only needed if you run\n  the token issuer and verifier as separate processes. The inline login card\n  works without it (the tool fetches its token from the server).\n\nFull catalog + phasing: `docs/ACCEPTANCE-CRITERIA.md` (Phase 2 section), `docs/TEST-PLAN.md`.\n\n## Layout\n\n```\nsrc/core/protocol.ts        wire + service types, typed BrowserError\nsrc/core/input-mapper.ts    pure coord/key mapping (DONE)\nsrc/core/redaction.ts       model-safe snapshot redaction (stub)\nsrc/core/browser-service.ts server-owned browser manager (stub)\ntest/helpers/fake-cdp-session.ts   FakeCdpSession + FakeCdpFactory + RecordingViewer\ntest/unit/*.test.ts         RED acceptance tests, named \"<ID>: <behavior>\"\ntest/contract|widget|e2e/   it.todo scaffolds keyed to IDs\n```\n\nThe real-browser e2e (`test/e2e/**`) is excluded from the default suite (needs\nChromium + Xvfb); wire it into the browser-enabled CI job.\n\n## Build order (red → green)\n\n1. ✅ `BrowserService` against `FakeCdpSession` (`browser-service` + `handoff` green).\n2. ✅ `redactSnapshot` (`redaction` green).\n3. ✅ **CDP adapter** (`src/core/cdp-playwright.ts`) — `cdp-playwright` green (CDP-1/2/3).\n4. ✅ **Token + transport helpers** (`live-view-token.ts`, `transport.ts`) — green (SEC-8/DEPLOY-1/2).\n5. ✅ **Gateway wiring** (`src/prc/realtime.ts`) — `browser-gateway` green (GW-1/2/3).\n6. **Widget transport swap** → same-origin browser:* client; fill `widget-transport` todos.\n7. `pi.extensions` tools (RPC) + live-view/resume routes → tools `it.todo`s.\n8. Real-browser golden e2e (headless + headful) → CDP-2/4, DEPLOY-1/2.\n\nEvery P0 criterion must have a green test in its layer before GA; every 🟢\ninvariant gets a dedicated regression guard. Track ID → test file in the\ncoverage matrix.\n```\n","readmeFilename":"README.md"}