{"_id":"@alisharjeel/agentqa","_rev":"7-5709ce6afbb3983a572052bf9badc62e","name":"@alisharjeel/agentqa","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@alisharjeel/agentqa","version":"0.1.0","author":{"name":"AgentQA Team"},"_id":"@alisharjeel/agentqa@0.1.0","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"bin":{"agentqa":"out/cli/index.js"},"dist":{"shasum":"92cfd353ba2d6f36c8b5d49c7b01cdbf0cd0ec01","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.0.tgz","fileCount":40,"integrity":"sha512-BK1o5saN6UtS9APYXXxm3NumW6CKeJ45+1X134sTve8Ytsk1BnIGjEvKDjlfiYcJ5Q4iUpTpCjMIDyyfT1llyg==","signatures":[{"sig":"MEUCIQDwH2BNrgOJuhFFt+sikShDr5uKLze667cCuK98KH+gzwIgP5T/1u3u13c6pvnxY+3lyEQOMhZXAomFIzYaBQ6x2jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544665},"main":"out/main/index.js","type":"module","build":{"mac":{"target":"dmg"},"win":{"target":"nsis"},"appId":"com.agentqa.app","files":["out/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"dist_electron"},"productName":"AgentQA"},"gitHead":"3ecf8489c1248fb20684d64af72fa246998dec7f","scripts":{"dev":"electron-vite dev","dist":"electron-builder","build":"tsc --noEmit && electron-vite build","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","dist:win":"electron-builder --win --dir","build:cli":"node scripts/build-cli.mjs","typecheck":"tsc --noEmit","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json"},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"_npmVersion":"11.7.0","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","directories":{},"_nodeVersion":"24.14.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","esbuild":"^0.28.0","postcss":"^8.4.49","electron":"^34.0.2","typescript":"^5.7.2","@types/node":"^22.10.2","tailwindcss":"^3.4.17","@types/react":"^18.3.18","autoprefixer":"^10.4.20","electron-vite":"^3.0.0","@types/react-dom":"^18.3.5","electron-builder":"^26.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/agentqa_0.1.0_1779239908135_0.3773633058313799","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alisharjeel/agentqa","version":"0.1.1","author":{"name":"AgentQA Team"},"_id":"@alisharjeel/agentqa@0.1.1","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"bin":{"agentqa":"out/cli/index.js"},"dist":{"shasum":"b604e35e2362a68844e7dbdde6652ae3cde01d6c","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.1.tgz","fileCount":35,"integrity":"sha512-I7t7eBngaee2uNMwvkC2yI9+xElcUCpBBItOqg31Au736jtStNTHmeXBBSqFLucEA9Fim/ITZhe+u/J2oyK9AQ==","signatures":[{"sig":"MEYCIQCXPA5enyQcamAZTuZZYpKcnnkTbqXs0ACi2BWsWNKBYgIhAMLpKyA9U6OnOOZP6Ip00M1Q6hact6JSWuGFfhJXJE07","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514430},"main":"out/main/index.js","type":"module","build":{"mac":{"target":"dmg"},"win":{"target":"nsis"},"appId":"com.agentqa.app","files":["out/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"dist_electron"},"productName":"AgentQA"},"gitHead":"0d5c08c84511938b3ebce61744e24608ccd37d1a","scripts":{"dev":"electron-vite dev","dist":"electron-builder","build":"tsc --noEmit && electron-vite build","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","dist:win":"electron-builder --win --dir","build:cli":"node scripts/build-cli.mjs","typecheck":"tsc --noEmit","postinstall":"node scripts/welcome.js","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json"},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"_npmVersion":"11.7.0","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","directories":{},"_nodeVersion":"24.14.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","esbuild":"^0.28.0","postcss":"^8.4.49","electron":"^34.0.2","typescript":"^5.7.2","@types/node":"^22.10.2","tailwindcss":"^3.4.17","@types/react":"^18.3.18","autoprefixer":"^10.4.20","electron-vite":"^3.0.0","@types/react-dom":"^18.3.5","electron-builder":"^26.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/agentqa_0.1.1_1779240270896_0.2750124961524263","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@alisharjeel/agentqa","version":"0.1.2","author":{"name":"AgentQA Team"},"_id":"@alisharjeel/agentqa@0.1.2","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"bin":{"agentqa":"out/cli/index.js"},"dist":{"shasum":"478a625147b6905fc11dfbbb4cf5b57a5921fffa","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.2.tgz","fileCount":40,"integrity":"sha512-Sav3j/vGQiAJeWyQPTP54cxTfMH161TpjxqXnyPToHnP62fS42gKqw2+NoHu9WEo5pHcQlwt9NI9ysrqF5z4mg==","signatures":[{"sig":"MEUCIQDB0lp01BfTu48OCWNmGOJ8esEWTvoAxtfRxK1Z+HXawgIgf8DkJIy2pueesZ5TRyRC3jm+QvPiAfEElattpAf1m2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12770696},"main":"out/main/index.js","type":"module","build":{"mac":{"target":"dmg"},"win":{"target":"nsis"},"appId":"com.agentqa.app","files":["out/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"dist_electron"},"productName":"AgentQA"},"gitHead":"0d6a643d00fca798f065f8ad69906a93f5ec58f3","scripts":{"dev":"electron-vite dev","dist":"electron-builder","build":"tsc --noEmit && electron-vite build","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","dist:win":"electron-builder --win --dir","build:cli":"node scripts/build-cli.mjs","typecheck":"tsc --noEmit","postinstall":"node scripts/welcome.js","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json"},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"_npmVersion":"11.7.0","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","directories":{},"_nodeVersion":"24.14.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","esbuild":"^0.28.0","postcss":"^8.4.49","electron":"^34.0.2","typescript":"^5.7.2","@types/node":"^22.10.2","tailwindcss":"^3.4.17","@types/react":"^18.3.18","autoprefixer":"^10.4.20","electron-vite":"^3.0.0","@types/react-dom":"^18.3.5","electron-builder":"^26.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/agentqa_0.1.2_1779244488733_0.1812080331953121","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@alisharjeel/agentqa","version":"0.1.3","author":{"name":"AgentQA Team"},"_id":"@alisharjeel/agentqa@0.1.3","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"homepage":"https://github.com/AliSharjeell/AgentQA#readme","bugs":{"url":"https://github.com/AliSharjeell/AgentQA/issues"},"bin":{"agentqa":"out/cli/index.js"},"dist":{"shasum":"c747dc0b6d1329f737c379efcb4afe6808508096","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.3.tgz","fileCount":42,"integrity":"sha512-QKgGl1151y2GI/B6CqitZtptysbuOUhn0k/cyXRhYRvX7U2ck5YqOCfGwIbm4a1QtLVlAMJpZFqdOMfTlPXjDQ==","signatures":[{"sig":"MEYCIQCNK0M66wt4QkhxjM4HcNaj7lwdXpkXlmMhA8/GfO626gIhAPtAh11Jo1NM+ssms0CDdtb1AZp4Rxx+Vie7GhZJ+B+G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12774068},"main":"out/main/index.js","type":"module","build":{"mac":{"target":"dmg"},"win":{"target":"nsis"},"appId":"com.agentqa.app","files":["out/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"dist_electron"},"productName":"AgentQA"},"gitHead":"6d123ce0d5256b9f6b2e52e30976e8ed995c5c34","scripts":{"dev":"electron-vite dev","dist":"electron-builder","build":"tsc --noEmit && electron-vite build","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","dist:win":"electron-builder --win --dir","build:cli":"node scripts/build-cli.mjs","typecheck":"tsc --noEmit","postinstall":"node scripts/welcome.js","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json"},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"repository":{"url":"git+https://github.com/AliSharjeell/AgentQA.git","type":"git"},"_npmVersion":"11.7.0","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","directories":{},"_nodeVersion":"24.14.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","esbuild":"^0.28.0","postcss":"^8.4.49","electron":"^34.0.2","typescript":"^5.7.2","@types/node":"^22.10.2","tailwindcss":"^3.4.17","@types/react":"^18.3.18","autoprefixer":"^10.4.20","electron-vite":"^3.0.0","@types/react-dom":"^18.3.5","electron-builder":"^26.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/agentqa_0.1.3_1779245181340_0.022062629379764553","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@alisharjeel/agentqa","version":"0.1.4","author":{"name":"AgentQA Team"},"_id":"@alisharjeel/agentqa@0.1.4","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"homepage":"https://github.com/AliSharjeell/AgentQA#readme","bugs":{"url":"https://github.com/AliSharjeell/AgentQA/issues"},"bin":{"agentqa":"out/cli/index.js"},"dist":{"shasum":"d3bc5373444c9b88b062433fb417004f31ace032","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.4.tgz","fileCount":42,"integrity":"sha512-wiHMvo4c7y6qNM5uj5wpOvbI8VM4iaqwcjNTrV/PU4kciodWMwjQI+cdQKkzC0riigTDYfWjcezsBSP6Ls8vNg==","signatures":[{"sig":"MEYCIQCetO6Ry69e8LJjIQpav3hA62vyyTNqgTSF6I46ZjhJbAIhAMw4khII831c9qkuhJzdlY8AdN9rJpB9+mT7m3D3sYkX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12780081},"main":"out/main/index.js","type":"module","build":{"mac":{"target":"dmg"},"win":{"target":"nsis"},"appId":"com.agentqa.app","files":["out/**/*","package.json"],"linux":{"target":"AppImage"},"directories":{"output":"dist_electron"},"productName":"AgentQA"},"gitHead":"cc03ceff2cccabc03ecda6a31ebecf31984eac6d","scripts":{"dev":"electron-vite dev","dist":"electron-builder","build":"tsc --noEmit && electron-vite build","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","dist:win":"electron-builder --win --dir","build:cli":"node scripts/build-cli.mjs","typecheck":"tsc --noEmit","postinstall":"node scripts/welcome.js","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json"},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"repository":{"url":"git+https://github.com/AliSharjeell/AgentQA.git","type":"git"},"_npmVersion":"11.7.0","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","directories":{},"_nodeVersion":"24.14.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","esbuild":"^0.28.0","postcss":"^8.4.49","electron":"^34.0.2","typescript":"^5.7.2","@types/node":"^22.10.2","tailwindcss":"^3.4.17","@types/react":"^18.3.18","autoprefixer":"^10.4.20","electron-vite":"^3.0.0","@types/react-dom":"^18.3.5","electron-builder":"^26.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/agentqa_0.1.4_1779245553849_0.00032827309963523454","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@alisharjeel/agentqa","version":"0.1.7","author":{"name":"AgentQA Team"},"_id":"@alisharjeel/agentqa@0.1.7","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"homepage":"https://github.com/AliSharjeell/AgentQA#readme","bugs":{"url":"https://github.com/AliSharjeell/AgentQA/issues"},"bin":{"agentqa":"out/cli/index.js"},"dist":{"shasum":"04ba609d9171052bc55a26650c0183b11f208ac7","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.7.tgz","fileCount":44,"integrity":"sha512-NSIZJ7s8e5AbfNbIeSxHcsXZDuDUbwaP6CT05g63Mypzh9gUk5raojmzE+v830y3W4GTNruQDFxhXVBCKF3hxw==","signatures":[{"sig":"MEUCIBZ4GZfmnPJhI5p3b+ExP2IFk21Je0w9vtlJ77n80SqRAiEAsd3edyQYLbvPJD2WrJLe1XzRpRRwmUUGl+cYloGj72c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12927646},"main":"out/main/index.js","type":"module","build":{"mac":{"target":"dmg"},"win":{"target":"nsis"},"appId":"com.agentqa.app","files":["out/**/*","package.json"],"linux":{"target":"AppImage"},"publish":{"provider":"github","releaseType":"release"},"directories":{"output":"dist_electron"},"productName":"AgentQA"},"gitHead":"81d6a6d1cdd2e0d363bc9603fba7e52aaf2ca6be","scripts":{"dev":"electron-vite dev","dist":"electron-builder","build":"tsc --noEmit && electron-vite build","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","dist:win":"electron-builder --win --dir","build:cli":"node scripts/build-cli.mjs","typecheck":"tsc --noEmit","postinstall":"node scripts/welcome.js","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json"},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"repository":{"url":"git+https://github.com/AliSharjeell/AgentQA.git","type":"git"},"_npmVersion":"11.7.0","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","directories":{},"_nodeVersion":"24.14.0","dependencies":{"react":"^18.3.1","react-dom":"^18.3.1","remark-gfm":"^4.0.1","lucide-react":"^0.468.0","react-markdown":"^10.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","esbuild":"^0.28.0","postcss":"^8.4.49","electron":"^34.0.2","typescript":"^5.7.2","@types/node":"^22.10.2","tailwindcss":"^3.4.17","@types/react":"^18.3.18","autoprefixer":"^10.4.20","electron-vite":"^3.0.0","@types/react-dom":"^18.3.5","electron-builder":"^26.8.1","@vitejs/plugin-react":"^4.3.4"},"_npmOperationalInternal":{"tmp":"tmp/agentqa_0.1.7_1779314971582_0.12317588679940905","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@alisharjeel/agentqa","version":"0.1.8","description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","main":"out/main/index.js","bin":{"agentqa":"out/cli/index.js"},"type":"module","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/AliSharjeell/AgentQA.git"},"bugs":{"url":"https://github.com/AliSharjeell/AgentQA/issues"},"homepage":"https://github.com/AliSharjeell/AgentQA#readme","scripts":{"dev":"electron-vite dev","build":"tsc --noEmit && electron-vite build","build:cli":"node scripts/build-cli.mjs","test":"vitest run","test:injected-js":"node scripts/test-injected-js.mjs","test:qa:roboform":"node scripts/run-roboform-regression.mjs","test:qa:assert-roboform":"node scripts/assert-roboform-result.mjs qa-runs/regression/roboform/result.json","test:qa:local-form":"node scripts/run-cli-smoke-regression.mjs local-form","test:qa:saucedemo":"node scripts/run-cli-smoke-regression.mjs saucedemo-login-negative","test:qa:ecommerce":"node scripts/run-cli-smoke-regression.mjs ecommerce-add-to-cart","typecheck":"tsc --noEmit","typecheck:cli":"tsc --noEmit -p tsconfig.cli.json","start":"electron-vite preview","prepare":"npm run build && npm run build:cli","postinstall":"node scripts/welcome.js","dist":"electron-builder","dist:win":"electron-builder --win --dir"},"author":{"name":"AgentQA Team"},"dependencies":{"lucide-react":"^0.468.0","react":"^18.3.1","react-dom":"^18.3.1","react-markdown":"^10.1.0","remark-gfm":"^4.0.1"},"devDependencies":{"@types/node":"^22.10.2","@types/react":"^18.3.18","@types/react-dom":"^18.3.5","@vitejs/plugin-react":"^4.3.4","autoprefixer":"^10.4.20","electron":"^34.0.2","electron-builder":"^26.8.1","electron-vite":"^3.0.0","esbuild":"^0.28.0","postcss":"^8.4.49","tailwindcss":"^3.4.17","typescript":"^5.7.2","vite":"^6.0.5","vitest":"^4.1.7"},"build":{"appId":"com.agentqa.app","productName":"AgentQA","directories":{"output":"dist_electron"},"publish":{"provider":"github","releaseType":"release"},"files":["out/**/*","package.json"],"win":{"target":"nsis"},"mac":{"target":"dmg"},"linux":{"target":"AppImage"}},"gitHead":"fdee2c56ab2155933e108a91e17531ada117b3ec","_id":"@alisharjeel/agentqa@0.1.8","_nodeVersion":"24.14.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-Pc6OC796SnvpWbFKbV9dkCo8kk0KN6PNpEh+bF/XrSb+RTEVqjeYhJCfw3Mshn9350NJEdUtV7q5IlisIIwbiQ==","shasum":"a64d382c0820a5112c5a1a71c34fb9b056fd18bd","tarball":"https://registry.npmjs.org/@alisharjeel/agentqa/-/agentqa-0.1.8.tgz","fileCount":74,"unpackedSize":14052873,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD3lf2+HDmunAR3gZB24dBx4RTmTJzsj25U5Pq8DNWEmQIhAMpB6+y8618BnVvmW2Q6jE8TQ1hFqtd3xG5Cmxwf9GX1"}]},"_npmUser":{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"},"directories":{},"maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agentqa_0.1.8_1779662859381_0.36621659321371713"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T01:18:27.944Z","modified":"2026-05-24T22:47:39.829Z","0.1.0":"2026-05-20T01:18:28.306Z","0.1.1":"2026-05-20T01:24:31.054Z","0.1.2":"2026-05-20T02:34:49.182Z","0.1.3":"2026-05-20T02:46:21.641Z","0.1.4":"2026-05-20T02:52:34.356Z","0.1.7":"2026-05-20T22:09:32.251Z","0.1.8":"2026-05-24T22:47:39.724Z"},"bugs":{"url":"https://github.com/AliSharjeell/AgentQA/issues"},"author":{"name":"AgentQA Team"},"homepage":"https://github.com/AliSharjeell/AgentQA#readme","repository":{"type":"git","url":"git+https://github.com/AliSharjeell/AgentQA.git"},"description":"AI-powered QA automation desktop app with live browser preview, task management, and AI-driven test execution using browser-use","maintainers":[{"name":"alisharjeel","email":"alisharjeelofficial@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"public/newmainpic.png\" alt=\"AgentQA\" width=\"800\" />\n</p>\n\n<p align=\"center\">\n  AI-powered QA testing tool that explores websites, fills forms, clicks buttons, and finds bugs — automatically. Available as a headless CLI for coding agents.\n</p>\n\n<p align=\"center\">\n  <img src=\"public/demo.gif\" alt=\"AgentQA Demo\" width=\"800\" />\n</p>\n\n---\n\n\n## Compatibility & Requirements\n\n### Supported Operating Systems\n- **Windows (10/11)**: CLI compatibility.\n- **macOS (Apple Silicon & Intel)**: CLI compatibility.\n- **Linux (Ubuntu, Debian, etc.)**: CLI compatibility (optimized for headless CI/CD).\n\n### Supported Web Applications\nAgentQA operates directly on the DOM, making it compatible with any website or single-page application (SPA), including:\n- **Frontend Frameworks**: React, Vue, Angular, Svelte, SolidJS, Next.js, Nuxt, Astro, and vanilla HTML/JS.\n- **Modern UI Elements**: Dynamic forms, multi-select dropdowns, modal windows, iframes, multi-page redirects, and asynchronous state updates.\n\n---\n\n## Quick Start\n\n### Prerequisites\n\n- **Node.js 20+** and **npm 10+**\n- **browser-harness** — `uv tool install git+https://github.com/browser-use/browser-harness`\n- An API key for **OpenAI** or **Anthropic**\n\n---\n\n### Installation & Setup\n\n#### Option A: Desktop GUI App (Pre-built Installers)\n\nIf you prefer to run AgentQA using the React/Electron graphical desktop app with a live visual browser preview:\n\n* Download the installer for your operating system from the [GitHub Releases Page](https://github.com/AliSharjeell/AgentQA/releases).\n  * **Windows**: `AgentQA Setup 0.1.7.exe`\n  * **macOS**: `AgentQA-0.1.7.dmg` (Apple Silicon & Intel)\n  * **Linux**: `AgentQA-0.1.7.AppImage` (Ubuntu, Debian, etc.)\n\n---\n\n#### Option B: CLI Installation (NPM Global)\n\nIf you are using AgentQA for coding agents (e.g., Claude Code, Cline), CI/CD pipelines, or command-line testing:\n\n```bash\n# 1. Install globally from npm\nnpm install -g @alisharjeel/agentqa\n\n# 2. Run the configuration wizard\nagentqa config\n\n# 3. Start testing immediately!\nagentqa https://saucedemo.com \"Login with standard_user/secret_sauce, add 2 items, checkout\" --verbose\n```\n\n---\n\n#### Option C: Running from Source (Development)\n\nIf you have cloned the repository and want to run or develop AgentQA locally:\n\n```bash\n# 1. Install dependencies\nnpm install\n\n# 2. Start the Desktop GUI App in development mode\nnpm run dev\n\n# 3. Or build the CLI entry point\nnpm run build:cli\n\n# 4. Link the package globally to test CLI modifications\nnpm link\n```\n\n---\n\n## CLI Usage\n\n<p align=\"center\">\n  <img src=\"public/cli.png\" alt=\"AgentQA CLI\" width=\"800\" />\n</p>\n\n```\nagentqa <URL> <PROMPT> [options]\nagentqa run <URL> <PROMPT> [options]\nagentqa config [options]\n```\n\n### Subcommands\n\n* **`run` (Default)**: Run QA tests. Can be omitted if positional URL and prompt are provided.\n* **`config`**: Setup credentials interactively or via CLI flags (e.g. `agentqa config --api-key sk-xx --provider anthropic --vision off`).\n\n### Options:\n* `--url`: Target URL to test (can be a positional argument)\n* `--prompt`: QA task description (can be a positional argument)\n* `--provider`: API provider: `openai` | `anthropic`\n* `--api-key`: API key override\n* `--model`: LLM model name override\n* `--base-url`: API base URL override\n* `--mode`: Testing mode: `text` | `vision` (default: `text`)\n* `--agent-mode`: Harness executor mode: `standard` | `browser-use` | `advanced` (default: `standard`)\n* `--allow-escalation`: Allow executor switch requests outside advanced mode\n* `--max-steps`: Maximum agent loop steps (default: `25`)\n* `--template`: Run a built-in QA template by id\n* `--output-dir`: Directory where `result.json`, `report.md`, `report.html`, screenshots, DOM snapshots, console logs, and network logs are written\n* `--verbose`: Print step-by-step progress to stderr\n* `--timeout`: Max seconds per step (default: `120`)\n* `--json`: Output structured JSON directly to stdout\n\n### Built-in QA Templates\n\nAgentQA includes demo/regression templates in the desktop app and CLI:\n\n| ID | Scenario |\n|---|---|\n| `full-form-fill` | RoboForm all-fields form with verified text/select values |\n| `login-negative` | SauceDemo invalid-login rejection and password redaction |\n| `ecommerce-add-to-cart` | LambdaTest iPhone search/add-to-cart verification |\n| `responsive-mobile-smoke` | Desktop/mobile navigation and CTA smoke check |\n| `accessibility-quick-check` | Basic title, heading, label, alt text, and keyboard checks |\n\n### Output Format\n\n**stdout** — structured JSON for agent and CI parsing:\n\n```json\n{\n  \"ok\": true,\n  \"summary\": \"Successfully logged in, added 2 items, completed checkout. No confirmed bugs found.\",\n  \"steps\": [\n    { \"instruction\": \"Open login page\", \"status\": \"done\", \"result\": \"Loaded https://saucedemo.com\" },\n    { \"instruction\": \"Enter credentials\", \"status\": \"done\", \"result\": \"Filled username and password\" },\n    { \"instruction\": \"Submit login\", \"status\": \"done\", \"result\": \"Now at /inventory.html\" },\n    { \"instruction\": \"Add products to cart\", \"status\": \"done\", \"result\": \"Added 2 items\" },\n    { \"instruction\": \"Complete checkout\", \"status\": \"done\", \"result\": \"Order confirmed\" }\n  ],\n  \"durationMs\": 14200,\n  \"url\": \"https://saucedemo.com\",\n  \"error\": null\n}\n```\n\n**Exit codes:** `0` = pass, `1` = fail.\n\n### Agent Integration Example\n\n```bash\n# Setup API key\nagentqa config --api-key sk-ant-xxx --provider anthropic\n\n# Pipe result to jq in a script\nresult=$(agentqa https://staging.myapp.com \"Test signup form\")\necho $result | jq '.ok'\n\n# Use in a CI script\nif agentqa https://staging.myapp.com \"Verify login and dashboard\"; then\n  echo \"QA passed\"\nelse\n  echo \"QA failed\"\nfi\n```\n\n---\n\n## AI Agent Skill (for Antigravity, Claude Code, Codex, Cline, etc.)\n\n<p align=\"center\">\n  <img src=\"public/cc.png\" alt=\"AgentQA in Claude Code\" width=\"800\" />\n</p>\n\nWe provide a built-in skill so that AI coding assistants can learn how to use the `agentqa` CLI directly within your codebase. This allows agents to autonomously verify their own code changes!\n\n### How Agents Use It\nBecause the skill is located in the `skills/agentqa-cli/` directory of the repository:\n- **Antigravity / Codex**: Automatically discovers and loads the skill from the workspace root.\n- **Claude Code**: Reads and adopts instructions from the local `skills/` directory and `AGENTS.md` automatically when running in this project.\n- **Other Agents**: If using an extension (like Cline or Roo Code), you can import the custom skill instructions from `skills/agentqa-cli/SKILL.md`.\n\n*(This teaches the agent how to run `agentqa` and how to interpret the JSON output).*\n\n### Installing Globally in Claude Code\n\nIf you want the `agentqa-cli` skill to be available to Claude Code globally across all your projects, copy the skill folder to Claude's global skills directory:\n\n* **Windows**:\n  ```powershell\n  xcopy /E /I skills\\agentqa-cli %USERPROFILE%\\.claude\\skills\\agentqa-cli\n  ```\n* **macOS / Linux**:\n  ```bash\n  cp -r skills/agentqa-cli ~/.claude/skills/agentqa-cli\n  ```\n\n### Fetching the Skill in Other Repositories\n\nIf you want to install or reference the AgentQA skill in another workspace, you can instruct your agent using local file paths or web URLs:\n\n* **Via File URI (Antigravity/Codex)**:\n  Provide the path using the `file://` scheme to point directly to the skill template:\n  `file:///C:/Users/alish/.claude/skills/agentqa-cli/SKILL.md`\n* **Via Web URL**:\n  Ask the agent to download the raw skill from GitHub:\n  > \"Please download the AgentQA CLI skill configuration from \\`https://raw.githubusercontent.com/AliSharjeell/AgentQA/master/skills/agentqa-cli/SKILL.md\\` and save it locally in my project at \\`skills/agentqa-cli/SKILL.md\\`. After downloading, read the skill guidelines to understand how to verify my code changes using the global \\`agentqa\\` command.\"\n\n---\n\n## Project Structure\n\n```\nsrc/\n├── core/                    # Shared engine (no Electron dependency)\n│   ├── api.ts               # OpenAI / Anthropic LLM callers\n│   ├── engine.ts            # Orchestrator: observe → LLM → act → retry\n│   ├── executor.ts          # Execution harness (standard / browser-use / advanced)\n│   ├── harness.ts           # browser-harness spawner + set_value preamble\n│   ├── prompt.ts            # LLM prompt template for browser automation\n│   └── settings.ts          # Load/save settings.json\n├── cli/                     # Headless CLI frontend\n│   └── index.ts             # Arg parser, runner, JSON output\n├── main/                    # Electron desktop app (main process)\n│   ├── index.ts             # Window, BrowserView, IPC registration\n│   └── db/\n│       └── qaTaskRepo.ts    # Task + report JSON storage\n├── preload/                 # Context bridge (renderer ↔ main)\n│   └── index.ts\n├── renderer/                # React frontend\n│   ├── index.html\n│   └── src/\n│       ├── main.tsx         # React entry point\n│       ├── App.tsx          # Sidebar nav + page router\n│       ├── styles.css       # Tailwind + design system\n│       └── pages/           # UI pages (Dashboard, Settings, etc.)\n├── shared/                  # Types shared across all targets\n│   └── types.ts\nscripts/\n├── build-cli.mjs            # esbuild bundler for CLI\n└── welcome.js               # Post-install welcome banner\nskills/\n└── agentqa-cli/             # Claude Code / agent skill for CLI integration\n```\n\n---\n\n## How It Works\n\n1. **Observe** — Scrapes the page DOM for interactive elements (buttons, inputs, links) with coordinates\n2. **Plan** — Sends the DOM observation + user prompt to an LLM (Claude/GPT) which generates a Python browser-harness script\n3. **Act** — Pipes the script to `browser-harness` which controls Chrome via CDP (fills forms, clicks buttons, navigates)\n4. **Retry** — If the script fails, retries up to 3 times with the error context\n5. **Report** — Returns structured results with pass/fail, step details, and a summary\n\n### Page Text Reading & Extraction\n\nAgentQA has full page reading and visual understanding capabilities:\n* **DOM Scraper (Text Mode)**: Automatically extracts and parses text contents, table headers, paragraph tags, placeholder text, values, and accessibility labels from the page. This is formatted into a clean text-based structural representation for the LLM.\n* **Visual Verification (Vision Mode)**: When configured in vision mode (`--mode vision`), the tool takes screenshot captures of the browser viewport at each execution step. This allows the LLM to inspect visual layouts, read rendered/stylized text, check imagery, and detect visual regression/bugs.\n\n### Human-Like Observable Typing\n\nTo make browser actions clear and observable in the live preview window:\n* **Progressive Typing**: Input fields are populated character-by-character with a slight dynamic typing delay (defaults to 30ms per character). This avoids instantaneous text snaps and lets developers watch inputs as they happen.\n* **Length-Based Scaling**: Typing speed dynamically scales for long inputs (e.g. descriptions, JSON text) to prevent blocking the test pipeline, capping the duration for any single text block at 1.5 seconds.\n\n### Key Design Decisions\n\n- **`set_value()` over `fill_input()`** — Uses JavaScript to set input values progressively (via prototype descriptor + event dispatch) instead of CDP key events, which avoids double-typing.\n- **No browser bundled** — Uses `browser-harness` which manages its own Chrome daemon. No Playwright browser download required.\n- **Shared engine** — `src/core/` has zero Electron imports.\n- **Step budget extension** — When the agent hits its step limit near completion, a secondary LLM can grant a bounded 1–15 step extension on high-confidence near-completion tasks.\n\n## What's New (v0.1.7)\n\n- **Hybrid executor mode** — Seamless switching between `standard` and `hybrid` execution modes mid-run, using a secondary LLM to decide when to switch.\n- **Batch harness actions** — Reduced LLM calls by batching multiple element actions into single script executions, improving throughput.\n- **Stabilized harness loop & fault reporting** — Improved retry logic and fault classification for more reliable step recovery.\n- **Bounded step budget extension** — Agent can request a small step extension when clearly near completion (approved once per run, confidence-gated).\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|---|---|\n| Desktop framework | Electron 34 |\n| Build tool | electron-vite 3 + esbuild (CLI) |\n| Frontend | React 18 + TypeScript |\n| Styling | Tailwind CSS 3 |\n| Icons | Lucide React |\n| Browser automation | browser-harness (CDP) |\n| AI | Anthropic Claude / OpenAI GPT |\n| Language | TypeScript 5 (ES2022) |\n\n---\n\n## Available Scripts\n\n```bash\nnpm run dev              # Start Electron app in development mode\nnpm run build            # Build full app (TypeScript check + Electron + CLI)\nnpm run build:cli        # Bundle CLI only to out/cli/index.js\nnpm run typecheck        # Full TypeScript check (all targets)\nnpm run typecheck:cli   # TypeScript check (CLI only)\nnpm run dist             # Build distributable installers (electron-builder)\nnpm run dist:win        # Build Windows installer only\nnpm start               # Preview built Electron app\n```\n\n---\n\n## Configuration\n\nSettings are stored in `%APPDATA%/agentqa/settings.json`:\n\n```json\n{\n  \"apiProvider\": \"anthropic\",\n  \"apiKey\": \"sk-ant-xxx\",\n  \"apiBaseUrl\": \"\",\n  \"model\": \"claude-sonnet-4-20250514\",\n  \"visionMode\": false\n}\n```\n\nThe CLI also accepts settings via command-line flags and environment variables. You can create a `.env` file or export them directly in your shell:\n\n```bash\nQA_API_PROVIDER=anthropic\nQA_API_KEY=sk-ant-xxx\nQA_API_MODEL=claude-3-5-sonnet-20241022\nQA_API_URL=https://api.anthropic.com\n```\n\n*Note: In Node.js 20+, you can load a `.env` file natively using `node --env-file=.env out/cli/index.js run ...`*\n\n---\n\n## QA Agent Rules\n\nThe AI agent follows these rules when testing:\n\n- Never report a bug unless verified twice after waiting, scrolling, and checking the correct page\n- If no bugs are found, say **\"No confirmed bugs found\"** — never invent issues\n- If navigation fails or URL becomes `chrome-error://chromewebdata`, mark as **infrastructure failure**, not a website bug\n- Use `set_value()` for all form inputs (React/Vue compatible)\n- Wrap all scripts in try/except with structured error output\n\n\n\n## Troubleshooting\n\n### \"Browser-harness could not be started\"\n\nInstall it: `uv tool install git+https://github.com/browser-use/browser-harness`\n\n### Double-typing in form fields\n\nThis was fixed by using `set_value()` (JavaScript-based) instead of `fill_input()` (CDP key events). If you see it, make sure you're on the latest build.\n\n### CLI returns \"No API key found\"\n\nPass `--api-key` or set `$QA_API_KEY`.\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}