{"_id":"@brokkai/review-bot","_rev":"10-e7f95d24582e86889f3db8adbbc545a2","name":"@brokkai/review-bot","dist-tags":{"next":"0.1.0-rc.1","latest":"0.2.13"},"versions":{"0.1.0-rc.1":{"name":"@brokkai/review-bot","version":"0.1.0-rc.1","license":"Apache-2.0","_id":"@brokkai/review-bot@0.1.0-rc.1","maintainers":[{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"892bfcfa32436d4675a52854d7c0a038924a9dfa","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.1.0-rc.1.tgz","fileCount":6,"integrity":"sha512-GoKaruZUp2MgNjAOuGg/UTKslogwP13HT88s4VjABQ+ty39QBs1SHRkGdBpUSh6e3JMOFbgUM9sEAYUD6w3nYA==","signatures":[{"sig":"MEUCIQDrCSBE1yuZiCcs1oZNU+TUJJgHUcj6HshkGamHchjXPQIgJZ3HdTl5rel84Kv8RkNNK90QnCXB1hIVl1puQjWFKSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48756},"_from":"file:/tmp/review-bot-v0.1.0-rc.1/packages/npm/brokkai-review-bot-0.1.0-rc.1.tgz","engines":{"node":">=18"},"_npmUser":{"name":"foundev","email":"tech@foundev.pro"},"_resolved":"/tmp/review-bot-v0.1.0-rc.1/packages/npm/brokkai-review-bot-0.1.0-rc.1.tgz","_integrity":"sha512-GoKaruZUp2MgNjAOuGg/UTKslogwP13HT88s4VjABQ+ty39QBs1SHRkGdBpUSh6e3JMOFbgUM9sEAYUD6w3nYA==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.17.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.1.0-rc.1","@brokkai/review-bot-darwin-x64":"0.1.0-rc.1","@brokkai/review-bot-linux-arm64":"0.1.0-rc.1","@brokkai/review-bot-darwin-arm64":"0.1.0-rc.1"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.1.0-rc.1_1788942055723_0.10259368882176334","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@brokkai/review-bot","version":"0.1.0","license":"Apache-2.0","_id":"@brokkai/review-bot@0.1.0","maintainers":[{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"cb07aed45d95325ad1fbd3a178531eaf4729bf0e","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.1.0.tgz","fileCount":6,"integrity":"sha512-KEIPCSsxvG1sAqpih6ermpopFnLt665xynSzuGX0pn3Pz/xBZwTJ0l800OcpnS6W/lZB8mK9lH8AIR6J7dHfcQ==","signatures":[{"sig":"MEQCIFsjwNmi6xKM6Vg2QEgQouY5dGhraekr245si/tPHMszAiBO2KOs5DUoLCY/FsyB777av8I80u4cHq6DMIWi6ERmhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48731},"_from":"file:/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.1.0.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4cfd3c2-c601-41f8-b9aa-e7345eee1d12"}},"_resolved":"/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.1.0.tgz","_integrity":"sha512-KEIPCSsxvG1sAqpih6ermpopFnLt665xynSzuGX0pn3Pz/xBZwTJ0l800OcpnS6W/lZB8mK9lH8AIR6J7dHfcQ==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.1.0","@brokkai/review-bot-darwin-x64":"0.1.0","@brokkai/review-bot-linux-arm64":"0.1.0","@brokkai/review-bot-darwin-arm64":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.1.0_1788942454114_0.41806574818529296","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@brokkai/review-bot","version":"0.2.0","license":"Apache-2.0","_id":"@brokkai/review-bot@0.2.0","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"2934f4e55957e44e95b3504110c8ba6ad5bbdc46","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.0.tgz","fileCount":6,"integrity":"sha512-dVitGcEk/1tEz5PNdZkWNRZ8Yuw7Tw27E+/VDSbuJm7tJdBX1HYaGh5fHPJ/T8zxK4ez3NvzPLayG1XaWSnv7w==","signatures":[{"sig":"MEUCIA57CkJIvbOH9zq6VGHJBiSrFeG1oMu/offrXxIoQKDZAiEArkYGZRS+1ncO6dRLrxYKLqKIZM1ICF96p2Tug0pgIk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49914},"_from":"file:/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.0.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4cfd3c2-c601-41f8-b9aa-e7345eee1d12"}},"_resolved":"/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.0.tgz","_integrity":"sha512-dVitGcEk/1tEz5PNdZkWNRZ8Yuw7Tw27E+/VDSbuJm7tJdBX1HYaGh5fHPJ/T8zxK4ez3NvzPLayG1XaWSnv7w==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.0","@brokkai/review-bot-darwin-x64":"0.2.0","@brokkai/review-bot-linux-arm64":"0.2.0","@brokkai/review-bot-darwin-arm64":"0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.2.0_1789374663687_0.34415258098481405","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@brokkai/review-bot","version":"0.2.1","license":"Apache-2.0","_id":"@brokkai/review-bot@0.2.1","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"fbf8fea73630ae558c2e995e99c737584fd19b00","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.1.tgz","fileCount":6,"integrity":"sha512-TDu4g8IGUSkHl6dR6aweM+0Nuj63RyvyrTaWFBnwaQWY/inut1GznkxlSIw38YZJ4vxBYEPDfAehYw6KwhkAiw==","signatures":[{"sig":"MEQCIE2GgfWfAa+XdqIxAxo4Vco3rYSvseog9OsVLhdm+VF4AiAyQibNDimBHmZXVrwllWb86sftvf7mcAktvw8qiPy4Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49914},"_from":"file:/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.1.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4cfd3c2-c601-41f8-b9aa-e7345eee1d12"}},"_resolved":"/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.1.tgz","_integrity":"sha512-TDu4g8IGUSkHl6dR6aweM+0Nuj63RyvyrTaWFBnwaQWY/inut1GznkxlSIw38YZJ4vxBYEPDfAehYw6KwhkAiw==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.1","@brokkai/review-bot-darwin-x64":"0.2.1","@brokkai/review-bot-linux-arm64":"0.2.1","@brokkai/review-bot-darwin-arm64":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.2.1_1789376853076_0.3421605721882919","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@brokkai/review-bot","version":"0.2.2","license":"Apache-2.0","_id":"@brokkai/review-bot@0.2.2","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"af22ba0f3417d8c0b44736348583bc2278677a65","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.2.tgz","fileCount":6,"integrity":"sha512-jA5S623g23GMjy8819PsNk7Pu8sij+2lqIrT7usKeP+dl6+/41wXFPQmNiLVIn767QIHKBh6DWeF7uQmUEgReA==","signatures":[{"sig":"MEQCICAZ40ORMpvJkTpVUiSHoMl03NbxFHKQe2U4DQDqyOOJAiBq8OuJwNthT6AzqokxpVYDwNf/w2VbTg5goUL8FWK9XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCvo3PCoFqcUJDYtoGK79OJpOcXFL00m3EXE43UqnoCsAIgWcqbgeeiMqwd8AtMsbhGbWB8PFJCAKn3gxESR4NYB+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49914},"_from":"file:/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.2.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e4cfd3c2-c601-41f8-b9aa-e7345eee1d12"}},"_resolved":"/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.2.tgz","_integrity":"sha512-jA5S623g23GMjy8819PsNk7Pu8sij+2lqIrT7usKeP+dl6+/41wXFPQmNiLVIn767QIHKBh6DWeF7uQmUEgReA==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.2","@brokkai/review-bot-darwin-x64":"0.2.2","@brokkai/review-bot-linux-arm64":"0.2.2","@brokkai/review-bot-darwin-arm64":"0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.2.2_1789474508414_0.13197020432838613","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@brokkai/review-bot","version":"0.2.3","license":"Apache-2.0","_id":"@brokkai/review-bot@0.2.3","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"cd52870ad8a87f487ff12b40989b0c9fc125a0e6","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.3.tgz","fileCount":6,"integrity":"sha512-A4DxGw/UAvkZidP5Uyw6nb+eSZ5igmE9Bfz5lMeW3goi8iDe/sMO357WYVjy+4R157KGQ5fLwxxg9+yvNtE8dA==","signatures":[{"sig":"MEYCIQDCP5Vx32ERRA1fkMC1XOJuZ6DiYsqF0BSepphTOXQmgAIhAKUmHKm7fsKflt89RI5/JkyPclDNWxiyNrqJ/ddrmHvh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICxNW7LB+faYo0UPkPpisz9cS0nUUT7eaFKw8jpDcAcLAiB9wsVvviKgFbhHt7UeI+usBmVQyig8CXMKCqYu41JWMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50499},"_from":"file:/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.3.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5a7c4abf-a335-4a84-8ce4-d34096a24144"}},"_resolved":"/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.3.tgz","_integrity":"sha512-A4DxGw/UAvkZidP5Uyw6nb+eSZ5igmE9Bfz5lMeW3goi8iDe/sMO357WYVjy+4R157KGQ5fLwxxg9+yvNtE8dA==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.3","@brokkai/review-bot-darwin-x64":"0.2.3","@brokkai/review-bot-linux-arm64":"0.2.3","@brokkai/review-bot-darwin-arm64":"0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.2.3_1789745008701_0.899871799599953","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@brokkai/review-bot","version":"0.2.4","license":"Apache-2.0","_id":"@brokkai/review-bot@0.2.4","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/review-bot#readme","bugs":{"url":"https://github.com/BrokkAi/review-bot/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"38c9c70efe92424abe96478964f8c7cb6c0f422a","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.4.tgz","fileCount":6,"integrity":"sha512-ru3O68jeyqRkfesg3eBiq0nbMSoQbmgiTIPJjLAdNePc9RcoC0kbP6enSY+pCMfsQoV/8NNU0xtz5raFAYw1Yw==","signatures":[{"sig":"MEUCIQCSQejIojnJSaWFW7BIX0YmZ0HPvsQhiQ3id2qLLm5jqAIgFceT1P1xgwZnRXYhNYie46x7S24A4Gy22qSGtgh4tVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE9dHV/vPGN3CknU9aSOxor1ozjALG8aOJfR496yAbnYAiB/9CP6hMKhhzW0In9ztgGw1UgT4DvZs2OVQNsaOXvL0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50701},"_from":"file:/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.4.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5a7c4abf-a335-4a84-8ce4-d34096a24144"}},"_resolved":"/home/runner/work/review-bot/review-bot/dist/packages/npm/brokkai-review-bot-0.2.4.tgz","_integrity":"sha512-ru3O68jeyqRkfesg3eBiq0nbMSoQbmgiTIPJjLAdNePc9RcoC0kbP6enSY+pCMfsQoV/8NNU0xtz5raFAYw1Yw==","repository":{"url":"git+https://github.com/BrokkAi/review-bot.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.4","@brokkai/review-bot-darwin-x64":"0.2.4","@brokkai/review-bot-linux-arm64":"0.2.4","@brokkai/review-bot-darwin-arm64":"0.2.4"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.2.4_1789755294241_0.42130066721515647","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@brokkai/review-bot","version":"0.2.12","license":"Apache-2.0","_id":"@brokkai/review-bot@0.2.12","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"homepage":"https://github.com/BrokkAi/brokk-town#readme","bugs":{"url":"https://github.com/BrokkAi/brokk-town/issues"},"os":["linux","darwin"],"bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"dist":{"shasum":"683ee536ab8cef8510c07cf0ff9ce043a2800ce2","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.12.tgz","fileCount":6,"integrity":"sha512-xkFY9pI3EYwuS8Ta/ol4/vNmrCkjlNN6IMnQkHHMJOXUXm1cBpKvdKzfeagDCsTozaliKBbwuamCJXvLFv5Wvg==","signatures":[{"sig":"MEYCIQDLU0+300SjCuJxp9bH3JQRafCvIVMI9tNJn8wxFE75fgIhAOOlZw9fyhGkTf0zSHIELcWgQb1rsXkxvy6OBrKgm35K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCnIR8flzYloZEspfoJnqZJodWp48MEloG6dHxtGV7ifAIgEb8Ou1sTmigLFKWdPSmUq4BKlY78imcbuB+y2g0bphk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51664},"_from":"file:/home/runner/work/brokk-town/brokk-town/bots/review-bot/dist/release/packages/npm/brokkai-review-bot-0.2.12.tgz","engines":{"node":">=18"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e0712c25-9ae3-4b40-ba04-769152c2da7f"}},"_resolved":"/home/runner/work/brokk-town/brokk-town/bots/review-bot/dist/release/packages/npm/brokkai-review-bot-0.2.12.tgz","_integrity":"sha512-xkFY9pI3EYwuS8Ta/ol4/vNmrCkjlNN6IMnQkHHMJOXUXm1cBpKvdKzfeagDCsTozaliKBbwuamCJXvLFv5Wvg==","repository":{"url":"git+https://github.com/BrokkAi/brokk-town.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.12","@brokkai/review-bot-darwin-x64":"0.2.12","@brokkai/review-bot-linux-arm64":"0.2.12","@brokkai/review-bot-darwin-arm64":"0.2.12"},"_npmOperationalInternal":{"tmp":"tmp/review-bot_0.2.12_1790419111319_0.8455274072733019","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"os":["linux","darwin"],"_id":"@brokkai/review-bot@0.2.13","bin":{"brv":"bin/brv.cjs"},"cpu":["x64","arm64"],"bugs":{"url":"https://github.com/BrokkAi/brokk-town/issues"},"dist":{"shasum":"fc3d031a8a3690bdff6a349918139db0984fbda2","tarball":"https://registry.npmjs.org/@brokkai/review-bot/-/review-bot-0.2.13.tgz","fileCount":6,"integrity":"sha512-EzLMzxKjAeqFGXg7696JJlzNoDBbBfi6DcOGb49f850Q9t8D5jin2ucEehhEjTPghnwQahdfNZxlcMSdr01MXg==","signatures":[{"sig":"MEUCIAFcMsui5KCfCxXSwEo0T+W5qVT0imV0fWUi7mXZKRP5AiEAmeei9/Ttsx/QTpzi6iDnEPbZxOzfC4WpIcHpZYkGnIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCcG16TUbLahTz7h4Oxq+USDU4WjI6JtT4drhIqMuGBnwIgDQMNtazhClP00LEwCeRO2aORyWJ1JYw0cqe8Q/l6kcQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@brokkai%2freview-bot@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52704},"name":"@brokkai/review-bot","_from":"file:/home/runner/work/brokk-town/brokk-town/bots/review-bot/dist/release/packages/npm/brokkai-review-bot-0.2.13.tgz","engines":{"node":">=18"},"license":"Apache-2.0","version":"0.2.13","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e0712c25-9ae3-4b40-ba04-769152c2da7f"}},"homepage":"https://github.com/BrokkAi/brokk-town#readme","_resolved":"/home/runner/work/brokk-town/brokk-town/bots/review-bot/dist/release/packages/npm/brokkai-review-bot-0.2.13.tgz","_integrity":"sha512-EzLMzxKjAeqFGXg7696JJlzNoDBbBfi6DcOGb49f850Q9t8D5jin2ucEehhEjTPghnwQahdfNZxlcMSdr01MXg==","repository":{"url":"git+https://github.com/BrokkAi/brokk-town.git","type":"git"},"_npmVersion":"11.19.0","description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","directories":{},"maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"optionalDependencies":{"@brokkai/review-bot-linux-x64":"0.2.13","@brokkai/review-bot-darwin-x64":"0.2.13","@brokkai/review-bot-linux-arm64":"0.2.13","@brokkai/review-bot-darwin-arm64":"0.2.13"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/review-bot_0.2.13_1790443760554_0.08253362684008425"}}},"time":{"created":"2026-09-09T08:20:55.532Z","modified":"2026-09-26T17:29:20.967Z","0.1.0-rc.1":"2026-09-09T08:20:55.864Z","0.1.0":"2026-09-09T08:27:34.302Z","0.2.0":"2026-09-14T08:31:03.822Z","0.2.1":"2026-09-14T09:07:33.193Z","0.2.2":"2026-09-15T12:15:08.504Z","0.2.3":"2026-09-18T15:23:28.800Z","0.2.4":"2026-09-18T18:14:54.347Z","0.2.12":"2026-09-26T10:38:31.406Z","0.2.13":"2026-09-26T17:29:20.629Z"},"bugs":{"url":"https://github.com/BrokkAi/brokk-town/issues"},"license":"Apache-2.0","homepage":"https://github.com/BrokkAi/brokk-town#readme","repository":{"url":"git+https://github.com/BrokkAi/brokk-town.git","type":"git"},"description":"Brokk Review Bot: verified, non-blocking pull request reviews through Agent Client Protocol","maintainers":[{"name":"jbellis","email":"jbellis@gmail.com"},{"name":"bigslopdave","email":"david@brokk.ai"},{"name":"foundev","email":"tech@foundev.pro"}],"readme":"# Brokk Review Bot\n\nThis standalone project now lives in [`BrokkAi/brokk-town/bots/review-bot`](https://github.com/BrokkAi/brokk-town/tree/master/bots/review-bot). Build and test from this directory; see [RELEASING.md](RELEASING.md) for its independent suffix-tag releases.\n\nAn autonomous pull request reviewer in Go. **`brv`** watches GitHub PRs,\ninvestigates the exact change through Agent Client Protocol, independently\nverifies each finding, and posts a non-blocking review with inline comments\nand a summary. It never approves, requests changes, merges, or pushes fixes.\n\nThe bot uses the shared [acp-go](https://github.com/BrokkAi/acp-go) runner.\nIts CLI, terminal dashboard, private state, and release tooling follow\n[bug-bot](https://github.com/BrokkAi/bug-bot) and\n[issue-bot](https://github.com/BrokkAi/issue-bot).\n\n## Install and run\n\nRequires Linux or macOS, Git, authenticated GitHub CLI (`gh`), and an\nauthenticated ACP coding agent. Codex through `codex-acp` is the default. If the\nadapter is missing, the bot uses `npx --yes @agentclientprotocol/codex-acp`, which\nrequires Node.js and may download the adapter on first use. Explicit agent\ncommands are used as configured.\n\n```sh\nnpm install -g @brokkai/review-bot\ncd /path/to/repository\nbrv\n```\n\nYou can also install a native release without Node.js or a Go toolchain:\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/BrokkAi/review-bot/master/install.sh | sh\n```\n\nTo build from source, install Go 1.27.1 and run:\n\n```sh\ngo install github.com/BrokkAi/review-bot/cmd/brv@latest\ncd /path/to/repository\nbrv\n```\n\nFrom this source checkout, `make build` creates `bin/brv`.\nGo installs into `GOBIN`, or `$(go env GOPATH)/bin`; add it to your `PATH`.\n\n```sh\nbrv /path/to/repository\nbrv https://github.com/OWNER/REPO.git\nbrv --once --pr 123 --dry-run\nbrv --branch release/1.x --label ready --exclude-label no-review\nbrv --model YOUR_MODEL --effort high\nbrv --agent another-acp-agent --agent-arg=--stdio\nbrv status\nbrv retry --pr 123 --once\nbrv version\n```\n\nNo configuration file is needed. The bot detects `origin` and the remote's\ndefault branch, including when started from a subdirectory. `--pr` selects one\nPR but still respects the branch, draft, and label filters. Repeated `--label`\nflags require every named label; any `--exclude-label` match excludes a PR.\nLabels are compared without case sensitivity.\n\nBy default, each poll processes open, non-draft, unlocked PRs targeting the\ndefault branch, oldest first. Fork and bot-authored PRs are eligible. Polling\nstarts immediately and repeats every five minutes. `--once` processes the\neligible queue once and exits. It can post reviews; add `--dry-run` to inspect\nproposed review payloads without writing to GitHub. A dry run does not consume\nthe live review for that revision.\n\n## How reviews work\n\n1. Read PR metadata, existing discussion, inline comments, and review summaries.\n   Fetch the exact base and PR head through the target repository's PR refs.\n2. Inspect the complete merge-base-to-head diff and surrounding code in a\n   detached worktree owned by the bot's private bare repository.\n3. Ask the agent for concrete defects introduced by the PR: correctness,\n   security, data loss, or demonstrated performance regressions. Style,\n   speculative concerns, feature requests, and unrelated existing bugs are\n   excluded. The default maximum is ten findings, never a quota.\n4. Verify each candidate in a fresh agent session and worktree. Compare its\n   cause and triggering conditions against every discussion entry and findings\n   already accepted in this batch. Unsupported, uncertain, and duplicate\n   candidates are excluded.\n5. Validate source locations against both the local diff and GitHub's diff\n   patches. Verified findings without a valid inline anchor appear in the\n   summary with links to the exact source commit.\n6. Recheck PR eligibility, description, base/head commits, and discussion.\n   Submit one `COMMENT` review bound to the head SHA. A review with no new\n   verified findings reports coverage and limitations, not approval.\n\nNew head or base commits create a new review revision. Earlier reviews remain\nas history. Already reported, unchanged root causes are not repeated; a\nverified new regression after a fix can be reported with an explanation.\n\nTests and temporary reproductions may run in isolated worktrees. Tracked-source\nor commit changes invalidate the evidence. Each verification gets a fresh\nworktree, so it cannot rely on an investigator's local reproduction artifacts.\nThe default two-hour timeout covers the entire attempt, including verification.\n`--timeout`, `--attempts`, and `--max-findings` customize those limits.\n\nPublication and agent work use the caller's operating-system permissions.\nPrivate worktrees isolate Git state; they are not an OS sandbox. Review untrusted\nrepositories in an appropriately isolated environment. The agent is instructed\nto keep GitHub writes under daemon control; this is not a credential sandbox.\nThe authenticated GitHub account needs repository access and permission to\nwrite pull request reviews. Reviews are posted under that account and identify\nthemselves as automated.\n\n## Recovery and limits\n\nBefore posting, the bot saves the full payload, authenticated author, and a\nrevision marker. If a response is lost, it looks for that author's marked\nreview before doing anything else, even if the PR has since closed or changed.\nWhen the outcome remains uncertain, it retains the pending submission and\nrefuses to repost. Inspect GitHub and saved state; `retry` cannot clear an\nuncertain publication.\n\nConfirmed failures retry after fifteen minutes, up to three attempts by\ndefault. Failed or uncertain PRs do not prevent other PRs from being processed.\nAfter correcting a failure, stop the daemon and use `brv retry --pr NUMBER` to\nreset that PR's exhausted attempts. Agent setup failures do not spend attempts.\n\nOne daemon per repository across machines is the supported deployment model.\nLocal locks prevent simultaneous instances on one account, including instances\nwatching different branches. GitHub does not provide an atomic revision-check\nand review-creation operation: a PR can change immediately after the final\ncheck, but the review still identifies the exact commit it inspected.\n\nIncomplete GitHub pagination, unavailable exact refs, malformed agent output,\nchanged discussion, and oversized command output stop that attempt. Command\nstdout is bounded at 8 MiB. Very large PRs exceeding GitHub's changed-file\nlisting limit are rejected rather than partially reviewed. The bot does not\nwait for CI, respond conversationally to threads, resolve old comments, or run\nas a webhook service.\n\n## Terminal dashboard and state\n\nAn interactive terminal displays queue results, active PR and commit,\ninvestigation/verification/publication stages, model, effort, attempts, tools,\nand activity. The dashboard adapts to resized and narrow terminals.\n\n- `1`, `2`, `3` or `Tab`: overview, reviews, and activity.\n- Arrow keys or `j`/`k`: browse reviews or scroll activity.\n- `Enter`: inspect a review's findings, evidence, summary, and failures.\n- `Esc`: return; `Page Up`/`Page Down`, `g`/`G`: scroll details.\n- `q` or `Ctrl+C`: cancel work, save progress, and restore the terminal.\n\n`--plain` selects scrolling logs; `--json` selects structured logs. They are\nmutually exclusive. Redirected output, piped input, or `TERM=dumb` also select\nscrolling logs. `NO_COLOR` disables colors. Status, version, and help do not\nopen the dashboard.\n\nState defaults to `$XDG_STATE_HOME/review-bot` or `~/.local/state/review-bot`,\nwith separate repository/branch directories. Review payloads, findings, and\nhistory live in `state.json`; private ACP transcripts are in `sessions/`.\nNormal session cleanup removes temporary worktrees. A process killed without\ncleanup can leave a worktree in the bot's own workspace; subsequent attempts\nuse new worktrees. `status` prints saved state without launching an agent.\n\n## Brokk Town worker service\n\n`brv worker --socket PATH` serves one-shot PR review operations to Brokk\nTown over a private Unix-domain socket. The socket is mode `0600`; the endpoint is\nprivate to the local service, and the process exits after Town requests shutdown.\n\nWorker protocol v1 uses standard-library HTTP with JSON messages:\n\n- `GET /v1/initialize` returns the protocol range, bot identity, release version,\n  and capabilities. Town requires `exact-revision-review` as well as common `run` and\n  `progress` capabilities. `finding-severity` means the review result carries each\n  confirmed finding's P1, P2 or P3 rating under `severities`, which Town uses to\n  decide whether a second failed review closes the pull request.\n- `POST /v1/runs` accepts one strict JSON task and responds with contiguous\n  newline-delimited JSON events: `progress`, optional typed `result`,\n  and `error`, `canceled`, or `complete`.\n- `POST /v1/shutdown` asks the service to stop after the current stream.\n\nVersion and capability negotiation happen before work starts. Town does not read\nthis bot's private state files; issue and review outcomes are explicit protocol\nresults when applicable, while GitHub remains the durable source for receipts.\nThe schemas are independent of the Unix HTTP transport, allowing an authenticated\nTLS transport to be added later without changing worker semantics.\n\nThe additive `remote-agent-v1` capability accepts `remote_agent`, an absolute\npath to the parent's private Unix socket. Investigation and verification each\nPOST `{protocol: 1, head, prompt}` to `/v1/agent`, with inline repository context.\nThe context includes complete discussion and exact commits; the remote agent\nreads the full diff from its checkout. Prompts over 65,536 characters are refused\nbefore contacting the parent, without truncating review input.\nThe parent must return `{protocol: 1, head, text, evidence}` only after validating\nthe exact revision and retaining its execution evidence. Missing or mismatched\nevidence is a refusal; the bot never falls back to a local agent. The bot still\nowns semantic receipt validation and GitHub publication. Existing worker v1\nrequests continue to use their configured local agent.\n\nThe `dry-run` capability accepts `dry_run: true` in a worker request. It performs\nthe complete review without publishing or consuming the live review revision;\nits worker result cannot authorize a merge.\n\n## Optional configuration\n\n`brv --config /path/to/review-bot.json` loads an explicit JSON configuration;\npaths are relative to that file. Unknown keys are rejected. No config file is\nimplicitly loaded or created. See [review-bot.example.json](review-bot.example.json).\nCLI flags override corresponding file values. `--model` and `--effort` must be\nacknowledged by the agent; unsupported explicit choices fail visibly.\n\nThe optional `verify` array is an operator-supplied command run after each\nagent session in its worktree. It must succeed without changing tracked source.\nA custom `github.host` supports GitHub Enterprise instances exposing the same\nREST endpoints and PR Git refs; use `github.repo` when the clone remote is a\nlocal mirror.\n\n## Development and distribution\n\n```sh\nmake check build\npython3 -m unittest discover -s scripts -p '*_test.py'\nnode --test --test-isolation=none npm/brv.test.cjs\n```\n\nTests use temporary Git repositories, simulated GitHub APIs and agents, and\nterminal fixtures. They do not post live reviews. See\n[CONTRIBUTING.md](CONTRIBUTING.md) for development guidance.\n\nRelease tooling builds Linux/macOS amd64/arm64 archives and npm packages under\n`@brokkai/review-bot`. Tagged releases publish all four native archives and all\nfive npm packages from the same commit. npm publication uses GitHub Actions\ntrusted publishing with the `packages-publish` environment and no stored npm\ntoken. Release archives and packages include the license, notice, and dependency\nlicense report.\n\nSee [RELEASING.md](RELEASING.md) for release checks and trusted publisher setup.\n\n## License and community\n\nLicensed under [Apache-2.0](LICENSE). [NOTICE](NOTICE) identifies project\nattribution. [licenses/README.md](licenses/README.md) describes dependency\nterms and generated notices included in every package.\n\nFollow the [Code of Conduct](CODE_OF_CONDUCT.md). Report vulnerabilities\nprivately as described in [SECURITY.md](SECURITY.md).\n\n### Exact-revision worker recovery\n\nA PR may report a base commit older than the current target branch tip. The\nworker fetches that exact base commit and checks the pull head ref against the\nrequested head; it still rechecks GitHub revision and discussion before posting.\nWorker results include a `status` and failure `detail` when no complete review\nis available. Only a submitted review of the exact requested base/head supplies\nfindings. A stale result is not a clean review: refresh repository metadata and\nretry only after resolving the reported revision or eligibility problem.\n","readmeFilename":"README.md"}