{"_id":"e2e","_rev":"43-ecf32b77f799502aadc5df636b5c3e4a","name":"e2e","dist-tags":{"beta":"0.15.0-canary-20260917081546","canary":"0.15.0-canary-20260929180659","latest":"0.16.0"},"versions":{"0.0.1":{"name":"e2e","version":"0.0.1","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache 2.0","_id":"e2e@0.0.1","maintainers":[{"name":"willscott","email":"willscott@gmail.com"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"dd2ecdca67588c0294fd0840eeeab5e027fa6aba","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.1.tgz","integrity":"sha512-odHGchBTolL/gH+S3n2fYGkXT48FeeeMJupvXk8hjfyHTws3emCf9KcU/4F5NaXPj98DZFiyJgFMZMvIIH/kTQ==","signatures":[{"sig":"MEYCIQCcnN9635tmldnf7f/raqZdbHHYnqPxeY1S2igzuS6O2wIhAN61tbcJNCATzctGoZLxiYzkxBCxvCDo7EXw0ilOIRrN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_npmUser":{"name":"willscott","email":"willscott@gmail.com"},"repository":{"url":"https://github.com/willscott/e2e","type":"git"},"_npmVersion":"1.3.10","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"devDependencies":{"grunt":"~0.4.5","grunt-git":"~0.3.2","grunt-force":"~1.0.0","grunt-shell":"~1.1.1","grunt-contrib-copy":"~0.7.0"}},"0.0.2":{"name":"e2e","version":"0.0.2","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache 2.0","_id":"e2e@0.0.2","maintainers":[{"name":"willscott","email":"willscott@gmail.com"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"edcac6c03dd1750b54216e5248d833ff12ae0d8c","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.2.tgz","integrity":"sha512-4/rDbRKHS48KPhMa/S7zr+aNVmJG5+V9LCf87ENfzex+R3qp4LC/wFnWEkwXNhwBHmhaQg/Ie41Sk0gALZ/j2Q==","signatures":[{"sig":"MEYCIQD3WpooUITVkjsqZFNp14jvb7heq+SF5uQ43UYIjCmQSAIhAO6nRgapJHbhfjoJpddhCQ+peCHZOCMcZGsyQcOSJRM8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_npmUser":{"name":"willscott","email":"willscott@gmail.com"},"repository":{"url":"https://github.com/willscott/e2e","type":"git"},"_npmVersion":"1.3.10","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"devDependencies":{"grunt":"~0.4.5","grunt-git":"~0.3.2","grunt-force":"~1.0.0","grunt-shell":"~1.1.1","grunt-contrib-copy":"~0.7.0"}},"0.0.3":{"name":"e2e","version":"0.0.3","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache 2.0","_id":"e2e@0.0.3","maintainers":[{"name":"willscott","email":"willscott@gmail.com"},{"name":"soycode","email":"ag@cs.washington.edu"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"704a27c7e2542ea5183939cf37b05daab8354163","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.3.tgz","integrity":"sha512-3Abgshmbtgkx+prOmfxXZGw/MAmAGXzcJvfyIZln8GSDFasSYq2Q2P4UXdrah7FPreHyipjn6ESz3TNbE79I6Q==","signatures":[{"sig":"MEYCIQDfMvM4P21OZIOlxuIxlhSm6WdTzzKuV7gVptlUqUCR8QIhAKmfizIOOKS/Jlt1zAEUwPOszAWqxeQo5iSvqwX5z7wa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_shasum":"704a27c7e2542ea5183939cf37b05daab8354163","scripts":{},"_npmUser":{"name":"soycode","email":"ag@cs.washington.edu"},"repository":{"url":"https://github.com/willscott/e2e","type":"git"},"_npmVersion":"2.6.0","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"_nodeVersion":"0.12.0","devDependencies":{"grunt":"~0.4.5","grunt-git":"~0.3.4","grunt-force":"~1.0.0","grunt-shell":"~1.1.2","grunt-contrib-copy":"~0.8.0","grunt-contrib-clean":"^0.6.0"}},"0.0.5":{"name":"e2e","version":"0.0.5","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache 2.0","_id":"e2e@0.0.5","maintainers":[{"name":"willscott","email":"willscott@gmail.com"},{"name":"soycode","email":"ag@cs.washington.edu"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"de64f91c4085e99fde019959b4e54aef791ea568","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.5.tgz","integrity":"sha512-JEt+3j0O+2KG+mX4UHGTkk7nEORc7a76Itp1MLEIm86viFzCn0fY4T6OikTJ9xAg1bHurJMDmWDNdg9Vwx0vyQ==","signatures":[{"sig":"MEQCIAvkzflkAJkBdrD+WpwQpvsVbgFoOrd1aK53NdfO6Fv0AiB5hBiICyuWbiZLOcSYFJjer8ZN1QYB2cCVtwkVk8PtYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_shasum":"de64f91c4085e99fde019959b4e54aef791ea568","gitHead":"3bc9cd14aac9372b6ac5f45c45e39b0b951fe4b5","scripts":{},"_npmUser":{"name":"soycode","email":"ag@cs.washington.edu"},"repository":{"url":"https://github.com/willscott/e2e","type":"git"},"_npmVersion":"2.7.3","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"_nodeVersion":"0.10.25","devDependencies":{"grunt":"~0.4.5","grunt-git":"~0.3.5","grunt-npm":"^0.0.2","grunt-bump":"^0.3.1","grunt-force":"~1.0.0","grunt-shell":"~1.1.2","grunt-prompt":"^1.3.0","grunt-contrib-copy":"~0.8.0","grunt-contrib-clean":"^0.6.0"}},"0.0.6":{"name":"e2e","version":"0.0.6","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache 2.0","_id":"e2e@0.0.6","maintainers":[{"name":"willscott","email":"willscott@gmail.com"},{"name":"soycode","email":"ag@cs.washington.edu"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"d34fd18e637f069bea693f95de3aec87afedee56","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.6.tgz","integrity":"sha512-reIPj5dWCUgFirDjdkRkbfSCqigWHWWaTeJeRLR/J3GhrG03JT71E6llvGcKfR6ANeOpRzg2uvOraupaS+WjrA==","signatures":[{"sig":"MEUCIQD7CQPNDnc2bQ4e8UUC1X4+62ZJRes4YrmafQiaC1CixgIgIidz/C279ycf2dEVj2Fx6psn7G7bFzolMp11JhFYmgY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_shasum":"d34fd18e637f069bea693f95de3aec87afedee56","gitHead":"021d60dab0a7f06faa535869a657e076f8f12be2","scripts":{},"_npmUser":{"name":"soycode","email":"ag@cs.washington.edu"},"repository":{"url":"https://github.com/willscott/e2e","type":"git"},"_npmVersion":"2.7.3","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"_nodeVersion":"0.10.25","devDependencies":{"grunt":"~0.4.5","grunt-git":"~0.3.5","grunt-force":"~1.0.0","grunt-shell":"~1.1.2","grunt-contrib-copy":"~0.8.0","grunt-contrib-clean":"^0.6.0"}},"0.0.7":{"name":"e2e","version":"0.0.7","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache-2.0","_id":"e2e@0.0.7","maintainers":[{"name":"willscott","email":"willscott@gmail.com"},{"name":"soycode","email":"ag@cs.washington.edu"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"a3e6916a5c2c39888932debc48edf9043f2dd212","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.7.tgz","integrity":"sha512-Tj5tgtKmumqFKX1Bjdx9g87oMRFazDCOlMx6qDjCDnCAMqQPp4p2GRI9uWl1C9g12xRRN+9iWd9E77WfPqsuog==","signatures":[{"sig":"MEYCIQDQpgYCqA1UGFZ3zRYgRZky+kQIjPyZHF9IFKslckueygIhAMr/dWTYd9tB+nU/sR7FCPsKm5NfkqJjCQ/pFFmWuxwS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_shasum":"a3e6916a5c2c39888932debc48edf9043f2dd212","gitHead":"d77476bfea31939a050112857caa13dc8b005639","scripts":{},"_npmUser":{"name":"soycode","email":"ag@cs.washington.edu"},"repository":{"url":"git+https://github.com/willscott/e2e.git","type":"git"},"_npmVersion":"3.4.0","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"_nodeVersion":"5.0.0","devDependencies":{"grunt":"~0.4.5","grunt-git":"~0.3.5","grunt-npm":"^0.0.2","grunt-bump":"^0.6.0","grunt-force":"~1.0.0","grunt-shell":"~1.1.2","grunt-prompt":"^1.3.3","grunt-contrib-copy":"~0.8.2","grunt-contrib-clean":"^0.6.0"}},"0.0.8":{"name":"e2e","version":"0.0.8","keywords":["e2e","end-to-end","openpgp","pgp","crypto"],"license":"Apache-2.0","_id":"e2e@0.0.8","maintainers":[{"name":"bemasc","email":"bemasc@uproxy.org"},{"name":"soycode","email":"ag@cs.washington.edu"},{"name":"willscott","email":"willscott@gmail.com"}],"contributors":[{"url":"https://wills.co.tt","name":"Will Scott","email":"willscott@gmail.com"},{"name":"End-to-End team","email":"end-to-end@google.com"}],"homepage":"https://github.com/willscott/e2e","bugs":{"url":"https://github.com/willscott/e2e/issues"},"dist":{"shasum":"61d805463f30666be43bf94ffe7fcaceb1fc5133","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.0.8.tgz","integrity":"sha512-5owKgnbgTmh+dpnnCRinX7gui3eGVP6T8k2LGFp217cYfba0sMWEo3uD9lUZ9SpntXM2ESWOTEc+Lk03UJ3sCA==","signatures":[{"sig":"MEQCIGlHSejnfgg/18w/ef0z83iXfchvKdawbqWUJQZtEeX4AiANkANc0onRYOQv1OGot5c1zS5liCWDg321zlOrA24LmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"end-to-end.compiled.js","_from":".","_shasum":"61d805463f30666be43bf94ffe7fcaceb1fc5133","gitHead":"e2459fab347b8db8211bfccbc13b776c17b6e648","scripts":{},"_npmUser":{"name":"soycode","email":"ag@cs.washington.edu"},"repository":{"url":"git+https://github.com/willscott/e2e.git","type":"git"},"_npmVersion":"3.8.7","description":"end-to-end helps you encrypt, decrypt, digital sign, and verify signed messages within the browser using OpenPGP.","directories":{},"_nodeVersion":"5.10.1","devDependencies":{"grunt":"~1.0.1","grunt-git":"~1.0.0","grunt-npm":"^0.0.2","grunt-bump":"^0.8.0","grunt-force":"~1.0.0","grunt-shell":"~1.3.0","grunt-prompt":"^1.3.3","grunt-contrib-copy":"~1.0.0","grunt-contrib-clean":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/e2e-0.0.8.tgz_1461260247278_0.7202387056313455","host":"packages-16-east.internal.npmjs.com"}},"0.1.0":{"name":"e2e","version":"0.1.0","keywords":["e2e","tester army"],"_id":"e2e@0.1.0","maintainers":[{"name":"willscott","email":"willscott@gmail.com"},{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":[{"name":"Oskar Kwaśniewski","email":"oskar@tester.army"},{"name":"Szymon Rybczak","email":"szymon@tester.army"}],"dist":{"shasum":"b0ab0288dfd5cf1ade46e4cdd3d69dc6940d26f2","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.1.0.tgz","fileCount":2,"integrity":"sha512-x3NNjuUG2RABlE834PQI1EeBrgXeXE6uWFyV7BvvHtms7D09z6bJ1cHn/OAxzY9JSLHXo2CpAbprW0qxztoQRQ==","signatures":[{"sig":"MEUCIQC8cQOiUVsu1HvHm3zDtwJwKYZO5muqXmbP+EkTLOEvOAIgZpM+1iBrH5CG2WXDgKREaPDhrUH55LCNMHJD3zFjnq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277},"_npmUser":{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"},"_npmVersion":"11.12.1","description":"Coming soon.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/e2e_0.1.0_1784656790546_0.9120608249785831","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260914081513":{"name":"e2e","version":"0.15.0-canary-20260914081513","keywords":["e2e","testing","agentic","end-to-end"],"license":"MIT","_id":"e2e@0.15.0-canary-20260914081513","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"e8ac4f846f8c7719a0f46c37f201fa40b8c01e6b","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260914081513.tgz","fileCount":732,"integrity":"sha512-WmThT9Px5BGBBcsbUEI53ZA42zNQ6ic2A0ateos49sxWougMNpec47xrBRsKrSvurmAvO0fugZbYZ8D0luZDUA==","signatures":[{"sig":"MEYCIQC79PJqenRVNDfE0FWrBEnYs7BoDZkx8DNLQPUzk/fwxQIhAJRZXwmPiDrfzE5Xhb/7ndvTnqexksQ49zHqzcv1J5Sg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBKkfO/Fn6SjjkZH8jtPLndbr/CL4tW0annD1JbvGsSQAiEA4RzLbPGkl6joapa+FyElGHy5ORlB3gw9Zm7mqnAja1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2986985},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;versions['agent-device']=read('agent-device').devDependencies['agent-device'];fs.writeFileSync('dist/cli/init/engine-versions.json',JSON.stringify(versions)+'\\n')\"","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260914081513","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260914081513_1789374096986_0.4403026648899111","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260914095510":{"name":"e2e","version":"0.15.0-canary-20260914095510","keywords":["e2e","testing","agentic","end-to-end"],"license":"MIT","_id":"e2e@0.15.0-canary-20260914095510","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"caa0bb8b4db5fb022f63803bf7eeb9284af14576","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260914095510.tgz","fileCount":732,"integrity":"sha512-ZWlLaPkqe6iyc9MeeI1AZEMU1Z7e1uLXz0bqqdKsKkj4y8T/xFQewj3f4tch3Bj2ZBdpFv6cC5rlVcLAUZe2EA==","signatures":[{"sig":"MEQCIFIG8GhqLgyjQ4cSLO7aZdEqnjFjdOyge0HynXzqWzFNAiBaHSGoP2IaaD9VqBJeaeB2LueyojahT/qye0sJY6atRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBDc8t9eYq65YW7G2/OXcBjaE6sx+4/GS3Bap7wx6awnAiAWqvJQeJabkFI8/tu6mWnHDYNVtMxU8NwWVQRQ+5b3lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2986907},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;fs.writeFileSync('dist/cli/init/engine-versions.json',JSON.stringify(versions)+'\\n')\"","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260914095510","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260914095510_1789379862149_0.16957672688111236","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260914132830":{"name":"e2e","version":"0.15.0-canary-20260914132830","keywords":["e2e","testing","agentic","end-to-end"],"license":"MIT","_id":"e2e@0.15.0-canary-20260914132830","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"1d83a3a269b0382642146925b6be897235232f9c","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260914132830.tgz","fileCount":732,"integrity":"sha512-/rq4wED4mJJGR27UmdjVM4frKkIeywdPEQE6Ud/JaRv0tPSHR7KqUBSIs9qW7z4p6cBSRTAVqCw4kyLb3UOMvQ==","signatures":[{"sig":"MEYCIQDeVSV8w9ux2Dacuc/wAyFjDYPjdSbco/mzHYs8kMACVwIhAIKxjVV0/H8I8EYTX5K3rKER523343uRMfntiU9T5ROZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCRISjMMn7wOQtpfgXHAiergwZn/rE6ebPxEgw1WiltAgIgNgkhdpxCfLNd5vpYnqZFKRb5l5aUXj7bL/SR8ILtqZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2986907},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;fs.writeFileSync('dist/cli/init/engine-versions.json',JSON.stringify(versions)+'\\n')\"","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260914132830","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260914132830_1789392789182_0.9918052352359166","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260914134810":{"name":"e2e","version":"0.15.0-canary-20260914134810","keywords":["e2e","testing","agentic","end-to-end"],"license":"MIT","_id":"e2e@0.15.0-canary-20260914134810","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"ee2ff6373d4719a0d956adda37c1ad15199ed88a","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260914134810.tgz","fileCount":764,"integrity":"sha512-82HwiTb3uCFMF+S/9wgzfWV4iBegnhxft2l7xATL3OP7lTnnIuaftRbp9dM60vZZhTzfDVrRqmecnTAP6I08sg==","signatures":[{"sig":"MEUCIQDgwPVFTR80LFRMuVSAAimXskZQ3EVnZAG5+qI/YbuxKAIgPTVKNKec2VLYQZBTlflpRCe/JrRBsY4vS75MNgiqDq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3D0THtmxeNPBeOgNnc9xqgSBeHZ12H2X3tQCPOvz5xAIhANzL8GIGlors4tUThQ00crbhWeCV8JOgolUjPQwltGJI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3119025},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;fs.writeFileSync('dist/cli/init/engine-versions.json',JSON.stringify(versions)+'\\n')\"","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260914134810","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260914134810_1789394003177_0.2114916305706116","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260917081546":{"name":"e2e","version":"0.15.0-canary-20260917081546","keywords":["e2e","testing","agentic","end-to-end"],"license":"MIT","_id":"e2e@0.15.0-canary-20260917081546","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"fd7dde7cde516b52dacfc297a349c4c31ccd8e19","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260917081546.tgz","fileCount":769,"integrity":"sha512-UP0fRH/4Ak515nsQPB+9hb4KSZJz9/JGoGV7qOZj4FpVAxG8K5VLaKaTiyov00B2z4AncleAC2iG/ZIrJWKSQA==","signatures":[{"sig":"MEUCIAlT1DX7n2SsydqX28jTwHkNHZ9lxHAEJm/jAUrNdu2tAiEAoY2v14F7Xlr4aiczz8k09XiB96SdsU7lhfFmUv5F66E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC8AoX4ZORNvP9/rX1hm/Ai5HR716gznpahRF2Cb8OSpAIhALqULd22Pkc8sBV1uzjBUoodXmVu/ZhvmBIAzRXqK31E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3216869},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;fs.writeFileSync('dist/cli/init/engine-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260917081546","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260917081546_1789633130914_0.8924450689142129","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260917213813":{"name":"e2e","version":"0.15.0-canary-20260917213813","keywords":["e2e","testing","agentic","end-to-end"],"license":"MIT","_id":"e2e@0.15.0-canary-20260917213813","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"57054b9174625df6da291d33cce6ceedce88bdba","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260917213813.tgz","fileCount":785,"integrity":"sha512-A9uRdo7YZoO07zsRYr2Ac76BaTQNcVsx7loQ66JeKr9PcHBCttv9k42eqmTYIh7NYlQga5i9WEUDY+DiH9Wxfg==","signatures":[{"sig":"MEMCHyBaxeTZY/LB+NMs4BRKslXNR2Un4F96JAs/cpBcRPoCIHvH1WNs2hAc6mrX4rhA+VEGgjKJxfBv3mUgHBBNPjV+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEcg3eI2a/4AF8vrsYxEpNqRnFHzJeh3ZJ0BNjQHz3fpAiEA+hocxKxHZts2I7HIChciLMW/3dRloIxWCtccAnSNDf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3281359},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device','oauth'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260917213813","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260917213813_1789681427963_0.0073188977426752455","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260921154506":{"name":"e2e","version":"0.15.0-canary-20260921154506","keywords":["e2e","testing","agentic","end-to-end"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260921154506","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"b9e0fe4c472ba6bcaaf297501fae3fc63196085d","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260921154506.tgz","fileCount":806,"integrity":"sha512-Q/R+iUvdHUac8O8/mtup5p0XKARh5pNQlVS0G575zNmNWjBgqfr3fhvoOKx8SeFAks5H00w1cL3T6n81E2YrXw==","signatures":[{"sig":"MEYCIQCcUv9tKsWPEXMNOjDUyzgc9kHy011EEaHkt9DfAcixPwIhAJPnR6w/bbYaZiVX0HJeN/DejKSOQyOWhHJHpjvd38xn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDwWnrCX/WYsZ98aFv+ZPvfeN54IvrSRxxHj0Rk0/jJOAiEA2qrL9YzjiyiNXOM+jxJgyadUu+hRr/rIdyheaaIL68k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3424235},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['playwright','agent-device','oauth'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('playwright').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.97","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@e2edev/playwright":"0.11.0-canary-20260921154506","@ai-sdk/openai-compatible":"3.0.47","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0"},"peerDependenciesMeta":{"ai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260921154506_1790005747716_0.7232083896433541","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260921180210":{"name":"e2e","version":"0.15.0-canary-20260921180210","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260921180210","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"855637bd8d7428b5d7cf11802bce018ed6ed7c8d","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260921180210.tgz","fileCount":882,"integrity":"sha512-DR/zu0ZS3zzc1GWfCNucVca61pxx8Qw8E6PAWo5ZgN+w6EJLGTnIv31YfDBvsW45J8iUs+J5q30M4TVq43Gnfw==","signatures":[{"sig":"MEQCIDZAss3t01ZrHyO2yoocfe63aPKMPOrTctFhuUlNKuUyAiAUrLF0TQsT8bacmUjxMJtd4pVKwazRRkSYSopSrHZJ+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCIZnot0vFekATARRM0xRqtUO7LaQqGCavCIlbK1T+jTgIhAI8QPvF00w0iSaqr+KC2FxpEMpXrjoy12tApZRdrHnw3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3629311},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.0","@ai-sdk/provider":"4.0.17","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.105","ajv":"8.20.0","vitest":"5.0.0","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.2","@e2edev/web":"0.11.0-canary-20260921180210","@types/node":"26.4.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.69","@ai-sdk/openai-compatible":"3.0.51","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260921180210_1790014018205_0.51470686147315","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260922135036":{"name":"e2e","version":"0.15.0-canary-20260922135036","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260922135036","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"4c1146fe4116a317bfaf15a4571c13f38f146c63","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260922135036.tgz","fileCount":894,"integrity":"sha512-f3IAT7ZVuLW//WxBX63mYzT6BRbaxMVQMtFjyr7NN4CqxQod4J4Z4aRT/WdkxbKwxue1yVAz78RC8F/c/rxQiA==","signatures":[{"sig":"MEUCIGgKeptzEinDG+neTRL7nGtGB5yrIuZb3ElKFIfI5a2IAiEAmXeGrU3b5sxVnrzutztJmGWnovv0GNyshpC3ia97Kds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCNCPzYeD+DsEBMxSp3Y7kkrh/hag3AQvRcAk3vyWWDwIgQkNzaJJFMx2bQVr1+t4rzmvLsxE+P4GWkG+xnOXSKqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3732049},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.1","@ai-sdk/provider":"4.0.17","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.106","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.3","@e2edev/web":"0.11.0-canary-20260922135036","@types/node":"26.6.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.70","@ai-sdk/openai-compatible":"3.0.52","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260922135036_1790085735711_0.9033390241710606","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260922161512":{"name":"e2e","version":"0.15.0-canary-20260922161512","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260922161512","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"3f3a472187dc49da2e66c2343688dd5346bc154f","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260922161512.tgz","fileCount":894,"integrity":"sha512-XpaJF7eUtNPoF6k2BpSZ7c9wIyWl4dqcCqSukiLK5bl82eSRtWfZ7sHvEzjS0bCiUdKtUwc4bT/mZ/URpNUUOw==","signatures":[{"sig":"MEUCIH1ujGjiIumrE6W/xuqTBog9Zdt9shpqdAfww3QjIurqAiEA489QDtzBG9rq8aQDK19iTY1B38J0ikd9U9jXnw3f8nQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCIlnmD5TcPXuzAxE1JWDV7WLNQUirIAEpPJdov7LQvqAIhAM2c6nuewZu5BmY5ZJ5KfyqugtvEmGkLtFEPNzf8T+76","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3735560},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.13","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.0","@vitest/expect":"5.0.1","@ai-sdk/provider":"4.0.17","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.106","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.3","@e2edev/web":"0.11.0-canary-20260922161512","@types/node":"26.6.1","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.70","@ai-sdk/openai-compatible":"3.0.52","@openrouter/ai-sdk-provider":"3.0.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260922161512_1790093932486_0.5040403342525304","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260924194828":{"name":"e2e","version":"0.15.0-canary-20260924194828","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260924194828","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"c5892351c6f2c452788c24db8f6c70d2cfaa2f01","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260924194828.tgz","fileCount":922,"integrity":"sha512-w31At/Aoy6w4AmSfKbmIUgjKhDDxU7T1gXpYO57W6Yw1+y+F0lSG2cIok0Dtu+HTSPf1tKn2pCoAr11bVUmXtQ==","signatures":[{"sig":"MEYCIQCq3mTrrzwfM/i3st2mwYc97TBqVSLUQnQaKON5pG+FGAIhAO37btv8zAuZj6KWH+I3VxLDr5NJtqFsCVEaMSfnU5J5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBOiCUZDEmvWQ2h3qzgkrp6GQVyETgPPpHVnKVTu4y3LAiEAzoYDzvfuZlLLSH3wddWCQGaSAz0NiQIa+KWXATeLLhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3987211},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.1","@ai-sdk/provider":"4.0.17","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@e2edev/web":"0.11.0-canary-20260924194828","@types/node":"26.6.2","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260924194828_1790279696707_0.12913965128121596","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260925150007":{"name":"e2e","version":"0.15.0-canary-20260925150007","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260925150007","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"f8dffbd5a2fa7dee37a8428c21f616a451a20fc6","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260925150007.tgz","fileCount":926,"integrity":"sha512-vMlKmliBKdHDfSJMXWIHT6+Z49FEuDmDdDrFxzamp03ue1+QJkksox+fM/7YT1uMvK1oN/cCaKDgonidp8tMWA==","signatures":[{"sig":"MEYCIQDJh1/WRsWnO4C3uBdg3maHds0SofqudUEIlXkH+hDn0wIhAOmCRV7GpmlmY2hDh+dw3rMcZaXvO9UsJX7f0niYU/s8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA6sw/sdaxowAhKeRf0E0hxBheIAU75Hw9Rjdg0N0HqXAiEAtp94kJBNoFOMu4InQQ/ACwZ4/0fyd2ktl4V5n84qhSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4047228},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2edev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.1","@ai-sdk/provider":"4.0.17","@modelcontextprotocol/sdk":"1.30.0"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@e2edev/web":"0.11.0-canary-20260925150007","@types/node":"26.6.2","ajv-formats":"3.0.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260925150007_1790349926810_0.304116805477632","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260928184528":{"name":"e2e","version":"0.15.0-canary-20260928184528","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260928184528","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"8b12665944951cadf9179268e114ad60224e04c2","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260928184528.tgz","fileCount":934,"integrity":"sha512-wbEvdpkYbVz/nZ2RuO9C7BTjSIFZ7OnwBrYKp3zAtXw9DgK3E3tRf3zektlUW0TeuMxwHMar9tgfggUA3RjPmg==","signatures":[{"sig":"MEYCIQDdAxyTnN2J9RcPJqtD2XzhwtI2TzUk8O2ljZefLP3a9wIhAOie6F6gZf7nNSWA5NwQDQoWmm7GfXh8GmLK3/eCTbQK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDOiRaoXBNFE9wuERkE2qkkUrROkKAMlyAqJjXhwDYgAwIhAJ6L0uq7gyPTLtd6gFRKStwzM4OX1k7IOiEP8LdDcCwL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4172671},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2e-dev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.2","@ai-sdk/provider":"4.0.18","@modelcontextprotocol/sdk":"1.30.1"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@types/node":"26.6.2","ajv-formats":"3.0.1","@e2e-dev/web":"0.11.0-canary-20260928184528","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260928184528_1790621312914_0.7872926625744343","host":"s3://npm-registry-packages-npm-production"}},"0.15.0-canary-20260929180659":{"name":"e2e","version":"0.15.0-canary-20260929180659","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0-canary-20260929180659","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"6bea93005a03136b78da7fb140e8da79dc806f52","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0-canary-20260929180659.tgz","fileCount":959,"integrity":"sha512-m869Wk8eSPZKll4WUhTjTGBJw4VBp2VE6vP06vMmlTA6j7kCaF7YcKovkdL6ii8nsL7lPhjOg1rrxYvrKk+gxA==","signatures":[{"sig":"MEUCIHOoDvcl6+e2fyZzXN4bfGDgsxLhCtpdwHW+6gezsiLLAiEAosRGCQSoay+msimfWbOo2hCg4R9J65EUrNzDOKh3Cpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCm8KI+NAgZ504dOlz3a0iElDLgLyaQ922VyqSv9r+d6gIgPzOvtvOPaBPW7pTWD6UCaGnwXYpWtLM65ObjOrQuSwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4382131},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2e-dev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.2","@ai-sdk/provider":"4.0.18","@modelcontextprotocol/sdk":"1.30.1"},"publishConfig":{"tag":"beta","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@types/node":"26.6.2","ajv-formats":"3.0.1","@e2e-dev/web":"0.11.0-canary-20260929180659","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0-canary-20260929180659_1790705907011_0.1845112805886966","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"e2e","version":"0.15.0","keywords":["e2e","testing","agentic","end-to-end","chatgpt","github-copilot","grok","subscription"],"license":"Apache-2.0","_id":"e2e@0.15.0","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"5d34596e6bce759a116391c5d0977589b93c7350","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.0.tgz","fileCount":979,"integrity":"sha512-OLPBcmY7VJOozZEoCAwKMCcCAINNRIFB1WppYD1H/I5sFhsYmLWZx64vsRkwGfGLTcoVGtrfkecVmFSYeZ7rjQ==","signatures":[{"sig":"MEUCIQD59TZcq39ZNKzhQjVtLxP4k3QfkCcNuWez7uDSWi2EqgIgHvRBFOEiuPSZlsxrvShmLaoG7NEL8jeqZ3gkDOiPqM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAKew2fLHFeTVTS8NsLcXvWmVFpPzeIN92KVKgE6unrNAiEAqOws0tQZiZgYWfagRjWwS4V3iJutzOt2tPK7TDhIP+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4522350},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node -e \"const fs=require('node:fs');for(const dir of ['dist','skills'])fs.rmSync(dir,{recursive:true,force:true});fs.cpSync('../../skills/e2e','skills/e2e',{recursive:true})\" && tsc --project tsconfig.build.json && node -e \"const fs=require('node:fs');const read=(dir)=>JSON.parse(fs.readFileSync('../'+dir+'/package.json','utf8'));const versions=Object.fromEntries(['web','mobile'].map((dir)=>['@e2e-dev/'+dir,read(dir).version]));versions.playwright=read('web').devDependencies.playwright;fs.writeFileSync('dist/cli/init/sibling-versions.json',JSON.stringify(versions)+'\\n')\" && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"okwasniewski","email":"oskar@okwasniewski.com"},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.2","@ai-sdk/provider":"4.0.18","@modelcontextprotocol/sdk":"1.30.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@types/node":"26.6.2","ajv-formats":"3.0.1","@e2e-dev/web":"0.11.0","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.0_1790795308430_0.9907601426277794","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"e2e","version":"0.15.1","keywords":["e2e","end-to-end","testing","test-runner","test-automation","ai","ai-testing","ai-agent","llm","agentic","natural-language","web-testing","mobile-testing","qa"],"license":"Apache-2.0","_id":"e2e@0.15.1","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"1fc07255da863fe8a12f1f76c383ca96469d9387","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.1.tgz","fileCount":979,"integrity":"sha512-HYuc4xFbLqG4TMZkzZEZEoYa20qKvqyZ9nodDOZ8Yo05YlspzC4GV4guEql1pVIdspqj0fDMINx2rsn3REVrHA==","signatures":[{"sig":"MEUCIQCUvciNEPquvd37e3XoC/CmWe4egNeB/wyAwIkJyNhhGgIgZxtAzURNF0qRtIJTer9TlJC9vOGaVHr8OwsxqW0XEjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHQL4TgoNyfq0nVX7nZvBAC0gerKqRJWpeHvCbfRAaYYAiBY8UQJxOZILxD7LwUSNErWRMymhaFSDAhZqBO9KByDvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/e2e@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4524145},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node scripts/prepare-build.ts && tsc --project tsconfig.build.json && node scripts/write-sibling-versions.ts && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"30ddbd7e-2cd1-4d09-8807-752c36165018"}},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.2","@ai-sdk/provider":"4.0.18","@modelcontextprotocol/sdk":"1.30.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@types/node":"26.6.2","ajv-formats":"3.0.1","@e2e-dev/web":"0.11.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.1_1790848167784_0.0994490914052597","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"e2e","version":"0.15.2","keywords":["e2e","end-to-end","testing","test-runner","test-automation","ai","ai-testing","ai-agent","llm","agentic","natural-language","web-testing","mobile-testing","qa"],"license":"Apache-2.0","_id":"e2e@0.15.2","maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"homepage":"https://github.com/tester-army/e2e#readme","bugs":{"url":"https://github.com/tester-army/e2e/issues"},"bin":{"e2e":"./dist/cli/bin.js"},"dist":{"shasum":"0a8a5b7ad9bd64a3ddd0fca1321587e0680a9b85","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.15.2.tgz","fileCount":1027,"integrity":"sha512-QBbrovhKlr++kc4J2Pt+2oJ4tEl36MgIDbaZmuMaE+mjTokfIxnSWJHAgFY6ox8rfuOkvCGYXBSFIKXyiqv7Cw==","signatures":[{"sig":"MEUCIDtGb3s2FAKRL4wTNXexEgWXp6+K5xAUO03hWMepN5/uAiEA5lQ8T4Qaqh317Ll99NwiZRc6vg0OsGcO5dDgFRNsG7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEJEFNEUWs5GI8rQR8mP26nuEbeh+gq45k1zCOSO6qUDAiBAB2LwaM05POJRTdmrnGjdjV/QF5XeOQZJi2kMMMdxpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/e2e@0.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5235262},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"scripts":{"test":"vitest run","build":"node scripts/prepare-build.ts && tsc --project tsconfig.build.json && node scripts/write-sibling-versions.ts && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"30ddbd7e-2cd1-4d09-8807-752c36165018"}},"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.2","@ai-sdk/provider":"4.0.18","@modelcontextprotocol/sdk":"1.30.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@types/node":"26.6.2","ajv-formats":"3.0.1","@e2e-dev/web":"0.11.1","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/e2e_0.15.2_1790936464545_0.728202994328097","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"_id":"e2e@0.16.0","bin":{"e2e":"./dist/cli/bin.js"},"bugs":{"url":"https://github.com/tester-army/e2e/issues"},"dist":{"shasum":"0e118244000e32c0d20e1579a9e1f18e18eed89e","tarball":"https://registry.npmjs.org/e2e/-/e2e-0.16.0.tgz","fileCount":549,"integrity":"sha512-KXFks4yu4bCjrVgbebR/eULRzDWTpb3ECqhE+563O92vQwgwJHhIwoAKy7AsJQ5L2/r4qoCF2j5Jn3HW+DHx3A==","signatures":[{"sig":"MEYCIQC6BU5Rv1z+Q9IvoRfIOCStV3DrRHVCdbQ7w9FrH4rVdQIhAKjubuaCHHEjL5vnSbBojENIE8KrxaytM7pzBIMuY35Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGVsQ2deM7DjLMcadChSODdlnI56ZQ5m8yGpkvKuAmi9AiAUCCvxF8CIByylSzi0xRM81cKw0zufcNtWzEvBaVKhSA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/e2e@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3548043},"name":"e2e","type":"module","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./agent":{"types":"./dist/agent/public.d.ts","default":"./dist/agent/public.js"},"./engine":{"types":"./dist/engine/index.d.ts","default":"./dist/engine/index.js"},"./oauth/grok":{"types":"./dist/oauth/grok.d.ts","default":"./dist/oauth/grok.js"},"./oauth/chatgpt":{"types":"./dist/oauth/chatgpt.d.ts","default":"./dist/oauth/chatgpt.js"},"./oauth/copilot":{"types":"./dist/oauth/copilot.d.ts","default":"./dist/oauth/copilot.js"}},"license":"Apache-2.0","scripts":{"test":"vitest run","build":"node scripts/prepare-build.ts && tsc --project tsconfig.build.json && node scripts/write-sibling-versions.ts && node ../../scripts/stamp-dist.ts","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest"},"version":"0.16.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"30ddbd7e-2cd1-4d09-8807-752c36165018"}},"homepage":"https://github.com/tester-army/e2e#readme","keywords":["e2e","end-to-end","testing","test-runner","test-automation","ai","ai-testing","ai-agent","llm","agentic","natural-language","web-testing","mobile-testing","qa"],"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","directories":{},"maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"dependencies":{"tsx":"4.23.14","zod":"4.6.1","pngjs":"7.0.0","commander":"15.0.0","picocolors":"1.1.1","@clack/prompts":"1.8.1","@vitest/expect":"5.0.2","@ai-sdk/provider":"4.0.18","@modelcontextprotocol/server":"2.2.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"ai":"7.0.107","ajv":"8.20.0","vitest":"5.0.1","playwright":"1.63.0","typescript":"7.0.2","@ai-sdk/xai":"5.0.4","@types/node":"26.6.2","ajv-formats":"3.0.1","@e2e-dev/web":"0.11.2","@types/pngjs":"6.0.5","@ai-sdk/openai":"4.0.71","@ai-sdk/openai-compatible":"3.0.53","@openrouter/ai-sdk-provider":"3.1.0","@modelcontextprotocol/client":"2.2.0"},"peerDependencies":{"ai":"^7.0.0","@ai-sdk/xai":"^5.0.0","@ai-sdk/openai":"^4.0.0","@ai-sdk/openai-compatible":"^3.0.0"},"peerDependenciesMeta":{"ai":{"optional":true},"@ai-sdk/xai":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/openai-compatible":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/e2e_0.16.0_1790961480560_0.2597127713785008"}}},"time":{"created":"2014-12-16T18:32:55.022Z","modified":"2026-10-02T17:18:00.982Z","0.0.1":"2014-12-16T18:32:55.964Z","0.0.2":"2014-12-18T23:04:34.316Z","0.0.3":"2015-03-03T22:30:25.091Z","0.0.5":"2015-06-04T21:58:54.300Z","0.0.6":"2015-07-09T21:09:28.539Z","0.0.7":"2015-11-13T18:41:12.477Z","0.0.8":"2016-04-21T17:37:43.131Z","0.1.0":"2026-07-21T17:59:50.691Z","0.15.0-canary-20260914081513":"2026-09-14T08:21:37.116Z","0.15.0-canary-20260914095510":"2026-09-14T09:57:42.324Z","0.15.0-canary-20260914132830":"2026-09-14T13:33:09.282Z","0.15.0-canary-20260914134810":"2026-09-14T13:53:23.287Z","0.15.0-canary-20260917081546":"2026-09-17T08:18:51.024Z","0.15.0-canary-20260917213813":"2026-09-17T21:43:48.145Z","0.15.0-canary-20260921154506":"2026-09-21T15:49:07.888Z","0.15.0-canary-20260921180210":"2026-09-21T18:06:58.315Z","0.15.0-canary-20260922135036":"2026-09-22T14:02:15.878Z","0.15.0-canary-20260922161512":"2026-09-22T16:18:52.605Z","0.15.0-canary-20260924194828":"2026-09-24T19:54:56.829Z","0.15.0-canary-20260925150007":"2026-09-25T15:25:27.261Z","0.15.0-canary-20260928184528":"2026-09-28T18:48:33.051Z","0.15.0-canary-20260929180659":"2026-09-29T18:18:27.127Z","0.15.0":"2026-09-30T19:08:28.567Z","0.15.1":"2026-10-01T09:49:27.893Z","0.15.2":"2026-10-02T10:21:04.721Z","0.16.0":"2026-10-02T17:18:00.661Z"},"bugs":{"url":"https://github.com/tester-army/e2e/issues"},"license":"Apache-2.0","homepage":"https://github.com/tester-army/e2e#readme","keywords":["e2e","end-to-end","testing","test-runner","test-automation","ai","ai-testing","ai-agent","llm","agentic","natural-language","web-testing","mobile-testing","qa"],"repository":{"url":"git+https://github.com/tester-army/e2e.git","type":"git","directory":"packages/e2e"},"description":"SDK, runner, and CLI for agentic end-to-end testing","contributors":["Oskar Kwaśniewski <oskar@tester.army>","Szymon Rybczak <szymon@tester.army>"],"maintainers":[{"name":"okwasniewski","email":"oskar@okwasniewski.com"},{"name":"szymonrybczak","email":"szymon.rybczak@gmail.com"}],"readme":"<a href=\"https://tester.army/e2e?utm_source=e2e&utm_medium=github&utm_campaign=readme_banner\"><img src=\"https://raw.githubusercontent.com/tester-army/e2e/main/.github/assets/readme-banner.png\" alt=\"e2e, the open source AI testing framework by TesterArmy\" width=\"100%\" /></a>\n\n<p align=\"center\">\n  <a href=\"https://tester.army?utm_source=e2e&utm_medium=github&utm_campaign=readme_badge\"><img alt=\"Made by TesterArmy\" src=\"https://raw.githubusercontent.com/tester-army/e2e/main/.github/assets/made-by-testerarmy.svg\" /></a>\n  <a href=\"https://www.npmjs.com/package/e2e\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/e2e.svg?style=for-the-badge&labelColor=000000\" /></a>\n  <a href=\"https://github.com/tester-army/e2e/blob/main/LICENSE\"><img alt=\"License: Apache-2.0\" src=\"https://img.shields.io/badge/license-Apache--2.0-green.svg?style=for-the-badge&labelColor=000000\" /></a>\n  <a href=\"https://tester.army/discord\"><img alt=\"Join the community on Discord\" src=\"https://img.shields.io/badge/Join%20the%20community-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white&labelColor=000000\" /></a>\n</p>\n\n# e2e\n\n[e2e](https://tester.army/e2e?utm_source=e2e&utm_medium=github&utm_campaign=readme_intro) is an end-to-end testing framework for web and mobile apps. Describe a goal in natural language and an agent drives the app to reach it. Check the result with locators and assertions in the same test.\n\n```ts\n// tests/checkout.e2e.ts\nimport { test, expect } from 'e2e';\n\ntest('a member upgrades to Pro', async ({ app, agent, screen }) => {\n  await app.open('/settings/billing');\n\n  await agent.act('upgrade the workspace to the Pro plan');\n  await agent.assert('the invoice preview shows a prorated amount');\n\n  await expect(screen.getByRole('status')).toContainText('Pro');\n});\n```\n\nAn agent step that a later assertion verifies records its actions, and the\nnext run replays them with no model calls until the app changes. Tests\nwithout agent steps need no model. Bring your own subscription, API key, or\nlocal model.\n\n## Quick start\n\n```bash\nnpx e2e init\n```\n\n`init` asks for an engine, web or mobile, and a model provider, then writes a\nconfig and an example test. The\n[quickstart](https://e2e.tester.army/docs/quickstart) covers the rest.\n\n## Packages\n\n| Package | What it does |\n| --- | --- |\n| [`e2e`](https://www.npmjs.com/package/e2e) | The SDK, runner, and CLI. |\n| [`@e2e-dev/web`](https://www.npmjs.com/package/@e2e-dev/web) | Browser engine: Chromium, Firefox, and WebKit through Playwright. |\n| [`@e2e-dev/mobile`](https://www.npmjs.com/package/@e2e-dev/mobile) | iOS and Android engine: simulators and emulators through agent-device. |\n| [`@e2e-dev/github`](https://www.npmjs.com/package/@e2e-dev/github) | Reporter that posts results as a pull request comment. |\n| [`@e2e-dev/kernel`](https://www.npmjs.com/package/@e2e-dev/kernel) | Kernel hosted browsers for the web engine. |\n| [`@e2e-dev/eas`](https://www.npmjs.com/package/@e2e-dev/eas) | EAS Simulators hosted iOS simulators and Android emulators for the mobile engine. |\n\n## Documentation\n\n[e2e.tester.army/docs](https://e2e.tester.army/docs). The `e2e` package ships\nevery page, so coding agents can read them offline in `node_modules/e2e/docs`.\n\n## Contributing\n\nSee [CONTRIBUTING.md](https://github.com/tester-army/e2e/blob/main/CONTRIBUTING.md). Questions go to\n[Discord](https://tester.army/discord).\n\n## Security\n\nPlease don't open public issues for security vulnerabilities. Follow\n[SECURITY.md](https://github.com/tester-army/e2e/blob/main/SECURITY.md) and report them to\n[security@tester.army](mailto:security@tester.army).\n\n## Telemetry\n\nThe CLI sends anonymous usage data, such as which commands and engines run and\nwhere runs fail, but no test content, app content, or credentials. Opt out with\n`npx e2e telemetry disable` or `E2E_TELEMETRY_DISABLED=1`.\n[Telemetry](https://e2e.tester.army/docs/telemetry) lists every field.\n\n## Status\n\n> [!NOTE]\n> e2e is in active development on the way to 1.0. APIs and config can still\n> change between minor releases.\n\n## Made by TesterArmy\n\ne2e is built by [TesterArmy](https://tester.army/?utm_source=e2e&utm_medium=github&utm_campaign=readme_footer),\nthe agentic testing platform that runs natural language tests on web and mobile\napps, on every pull request or on a schedule.\n\nApache-2.0.\n","readmeFilename":"","users":{"nexiususer":true,"smesystems":true,"claimlane-dev":true}}