{"_id":"@erichll/pi-auto-review","_rev":"40-384e803e6eb316280c42c271498630cf","name":"@erichll/pi-auto-review","dist-tags":{"latest":"0.24.0"},"versions":{"0.1.1":{"name":"@erichll/pi-auto-review","version":"0.1.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.1.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"b48ee602f6d13c809b78ef62a764d247f88be1fb","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.1.1.tgz","fileCount":15,"integrity":"sha512-1jVVmpnXPlQSeWI8rGGRx3FQQfe5BIRm7kSOuuX2QF3qQeq9QyXx7uzNWyj5kxpqbK/o8LPIGwuK3AYKO0D3dA==","signatures":[{"sig":"MEQCIB3vJ1M2idtXrdv7oFyZmC97LYbNBmoLnYALdp8PmWd7AiAUjXnN7AsMwR8sgY8EkboxfBefZCr0wAd7yIHhjwI7fg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82486},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./landstrip":"./src/integrations/landstrip.ts"},"gitHead":"14f8d2f457f495bcf683e67b2d1cf53deef53f93","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.82.1","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.1.1_1785216624178_0.3147362028623588","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@erichll/pi-auto-review","version":"0.1.2","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.1.2","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"bcf49535c4606cb5dd4b5d80287f977d7336619d","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.1.2.tgz","fileCount":16,"integrity":"sha512-OXnMbC8gliYS3CfZSbSDhqw/QVze8hlBCf6ieN+BMAB1f3OjKJU/k0Krf7olrZ39IXdBgZExWRfdW1WksxnhTg==","signatures":[{"sig":"MEUCIQDuG3dCZHuXTjnyVi1WdbFsPBwdkp8xZfOsaamWoXfhIQIgKDCm/PGdv9ZgHAroZ5o7zxkjzwynppfp4K48sFI1q9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94426},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./landstrip":"./src/integrations/landstrip.ts"},"gitHead":"3ca41170d23938d12d9d2897c82dcc24d71434d7","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.82.1","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.1.2_1785230290001_0.635689597874527","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@erichll/pi-auto-review","version":"0.3.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.3.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"ec133488821d1add9739c81c23693fbd960616af","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.3.0.tgz","fileCount":16,"integrity":"sha512-KA1jfiO35hO+rupT+V5Ftb9lb9LjFtbD5o8fyQ+xoTI8c3zx54p06fKtPMU/7zKWeO3BIhWUsD7pvloinWovQA==","signatures":[{"sig":"MEUCIFF/RHsjbpfd+RpLAVtYvjAJ7hXA/tVecW8n8jgIWjaRAiEAo4YrJ4oMSMba/NmWqvS2qZL+SbgECq0qB+r6mHw1sCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94211},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"3ca41170d23938d12d9d2897c82dcc24d71434d7","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.82.1","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.3.0_1785233298606_0.9705953270539296","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@erichll/pi-auto-review","version":"0.3.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.3.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"cf01d1ac2a324462b7242f987f56041872129b8d","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.3.1.tgz","fileCount":17,"integrity":"sha512-3w5ReBXKCPk8w1/rIM5ej7sFR19dFu4V+yOM/LCV2VPe8587/wrzN1p4znd8ER9n22oxe5GetO8fcaVSLtMR6g==","signatures":[{"sig":"MEYCIQCI81jzqJvqUYEZ9EXnB87ZBqussT/D7GvXhbbNvXTWbgIhAMfuxVrVmK+nttRbilyXeFlKqJiQ89NpaxzGExtyc9LJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94621},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"91ddbff85b7547e74d8dd2409cefe641c500c48a","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.82.1","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.3.1_1785305247653_0.7377685342514544","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@erichll/pi-auto-review","version":"0.3.2","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.3.2","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"dbaf6baed2535a2de8dba338c074b90d8f0f1e7b","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.3.2.tgz","fileCount":17,"integrity":"sha512-ex+qghPINpXS7mfdTdfiFAaCI+tjEwlWAZ1VILF9uXHehv5FUuuZsQvybWpYtztp9q9PVBDVpYH3UHsO7M6aGA==","signatures":[{"sig":"MEUCIQCskQg2fx8+1HDlNHMcogpnFLPkKKOQruSBFgTn3wHEMgIgPsu520HNJYhVK/xnSSVM9J9caaXdRahdA1HBk6lkVf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104721},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"f3b92153058bf311537ca4b07ca35bbb254c56e3","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.82.1","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.82.1"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.3.2_1785328212817_0.5717756948406649","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@erichll/pi-auto-review","version":"0.3.3","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.3.3","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"eab3e70185e46040ac45dbfd7256d12c5943b769","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.3.3.tgz","fileCount":17,"integrity":"sha512-sRLoy0HBst3w7T3wp79ED7WRklOEWXJDalgZxvd7XI1ZypsSwrnZyRPKHjFkhqsd/Gy6ufkqTvtNUMQfTNt2kg==","signatures":[{"sig":"MEUCIFrQJYJjZWSxws/RoXBGD/Ggh1Z/r6+khh2T/fp1MJzOAiEAyzDhiYeoZsOPsc7W26ngr7JFZyCvF43L3teaRreldYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105028},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"10c8eeb8269ee478ff7383c7e6139301aa9665f9","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.83.0","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.3.3_1785992327620_0.22114294004245383","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@erichll/pi-auto-review","version":"0.3.4","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.3.4","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"67fc140c09d74650ca6258baef704fed66eafa24","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.3.4.tgz","fileCount":17,"integrity":"sha512-lsc9R/qFWM4cr8cxe5d6LcCYWFjJ7uuR0R+2liB+QGQpqCEuBVd8v/VaiFJxR8M/4tId1vLBEaGhWq/X3nZBPA==","signatures":[{"sig":"MEQCIAEX1/0FCNVnUpiDoShadBjSkDxcsNfLMnnP8YcYQ8HtAiAE8DSbPV1rJxA3L0uUlhfcKne2EdbLtO8IO6D1YBouVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108782},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"539fcf048fc6f3ac72ccb665f3ef742ff6af8b79","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.83.0","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.3.4_1786176473947_0.3233463261152374","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@erichll/pi-auto-review","version":"0.3.5","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.3.5","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"93b884f50d8561a55fd534385c9a24823cd35ad5","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.3.5.tgz","fileCount":17,"integrity":"sha512-hfgp04hzPhCPNhVricJDiys2XACrzB8psBEJTWa3AyV7ETRZzTrz1hB1a6u0RkbR4kcPWLWZvHX+Ah3oL750Iw==","signatures":[{"sig":"MEQCIBqWxlycMwP99sxic5x9Jp94p07kCjarA6JdZ/N69RWxAiAtDPVo3Mt5pBgRSue8Jpqt9CkTI18Sa8/L7uxGli4jew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109016},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"05c6609a64fd4d619b62501f87dab7efe82e5c61","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^22.15.3","@earendil-works/pi-ai":"0.83.0","@gotgenes/pi-permission-system":"24.0.0","@earendil-works/pi-coding-agent":"0.83.0"},"peerDependencies":{"@earendil-works/pi-ai":">=0.82.1","@gotgenes/pi-permission-system":">=23.0.0","@earendil-works/pi-coding-agent":">=0.82.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.3.5_1786587777533_0.6998195108020997","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@erichll/pi-auto-review","version":"0.4.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.4.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"b88c744738fb0563e9d5d424edb7a600d32d4e94","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.4.0.tgz","fileCount":17,"integrity":"sha512-fuv5oaZnE3PFA6apwsnIUFjwNTJy0ldiJkV0NTTsN/sgWzBNNKwNGX0koMxNMm+OR8iw0iSr6kVlgMqIkIDQ4w==","signatures":[{"sig":"MEYCIQDptHAxIY4lDA8Hb2zr7FERE67njXmLW7KB/J2rohS/3wIhAI2tcoK8RLhew/OZOMND4o/PfT3AL4wJj8PKxluOwzuJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118181},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"defe80e229d645e0e34aff7c1c41a53ad60ee97b","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.4.0_1787109972588_0.9749388694725971","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@erichll/pi-auto-review","version":"0.5.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.5.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"1adb2675b146c9edb00537847b83d8620c06b365","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.5.0.tgz","fileCount":17,"integrity":"sha512-c81jtn5LCDmrplV/YyDE+Pr+X1rnhdjkRml0R2FKEp+BYcS1V+3+CxLrChBzgwpZg48eJZiYHCpMM1+3V6HBuw==","signatures":[{"sig":"MEUCIB1e/dGvgWc9S2x3upDhh8cJjuVIPCgu81YLXmCzB4ooAiEA7cMb4ohfnuCYMHGSSMItEriYDN7jNYJChqjs2iwBI44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186377},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"1e766dfb6531e970a7edf03ec3f01d3a507d6d55","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.5.0_1787181366840_0.35273372499517475","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@erichll/pi-auto-review","version":"0.6.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.6.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"226b967ab415449cb242a53db803e48f1bfdfb73","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.6.0.tgz","fileCount":17,"integrity":"sha512-1AEHyABqhkL7t3CfU0HndV5omQFuV2AlryTwJa9l8DZ5koNSYVpBPITTYoE1Qx9jsWM48US9VnOElvSNnyJWPQ==","signatures":[{"sig":"MEUCIQC9HZIOSxSVnKN3qhR2c7C9gPebOw7Jir8BdblygisAmAIgfq5nMgMUs6yiNyw/SJq2LwVqj99X7eaJGsRuoHr9u3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180389},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"7e626e415d5af0946735c3532a9b45ebfc65776e","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.6.0_1787195263217_0.8538399074098706","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@erichll/pi-auto-review","version":"0.7.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.7.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"97d7858776a085edad50d038c802798714e20e0b","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.7.0.tgz","fileCount":17,"integrity":"sha512-95gbPoKv8k7/fbn2WWiK0SrVbkc5Is3JeI+SGaBfeFS+N4BDF582AOzf5ipjS+p4Fk+XpHj2aZrFHpLF501Dhg==","signatures":[{"sig":"MEUCIQC+kkzws8Yf6G5QjuRgSuYv5WQ4N5SzmtTw92LMX0o+VgIgNebw6IxeBdCgxb1znbri2Au8cm6M1+YU9A22It+Go7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182024},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"9bfa22affe1e93f8a0994ada01c499921c5a0f3e","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.7.0_1787279115613_0.05324124929036356","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@erichll/pi-auto-review","version":"0.8.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.8.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"26608a622dc44c85b5de914065fca51f6d4a139f","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.8.0.tgz","fileCount":17,"integrity":"sha512-g59HBmdxDxvb+Efa+sS5/tW0JRV2M0k5Ydit6j4YekfSbb50ppURq1KOuzCYqsIbMOB5RV6AgMFfxRsZ6VeUTg==","signatures":[{"sig":"MEYCIQCkF10cb7BcAzpNlCJRsTl/wpnu5UO0dkn0AeyRbLVi/wIhAO35oM6H2O353fwI8q4mKOuQwDQ1obBliVT4JF2r2CwU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197499},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"162b31afe205322c39679dc5b311cdb73e3cdbab","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^25.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.8.0_1787289189610_0.2699505911504769","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@erichll/pi-auto-review","version":"0.8.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.8.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"d628c0e290491f7729aaf0879cbeb422127a687d","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.8.1.tgz","fileCount":17,"integrity":"sha512-48Yg/w8pePEKTa3vzCUdLDR2iQNEsKbulSSvwS8XKpW0NmZVXGVBc1f/d9p7PIkvqCth9bpiwxWexcW841prZg==","signatures":[{"sig":"MEUCIQDGrstS01Boa25FWGB5GLVF29dVhx1IPcacArA0JQE9agIgBImSIc4gn3OgKKrOrLH2f0fJFtW20PNrduK03yxpxc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199432},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"0fed8ef1f51c50a197d446d02a159f2d0c34477c","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^26.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^26.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.8.1_1787314671095_0.8382919030778127","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@erichll/pi-auto-review","version":"0.8.2","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.8.2","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"34ee9cf0d44af3659f716273e4925ab15a467331","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.8.2.tgz","fileCount":17,"integrity":"sha512-TXZuC9uf3LKgXoohqNGexGTfjakhpxfpcOemIgsvRRbiuv//xc7DAuUjg+wKQwgNkAyiH8WwKH18bJHWBZj/ww==","signatures":[{"sig":"MEUCIBtsaZuTycaCPtJAuhbb2W6IkPN/+NdY0+KQZWbNq8ALAiEA+SVXjNPLq1RcI0sp7dfdJmmtI6vflkuYvJUn9iiTrAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211460},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"b3e9f973a164d2dcedb52ff1dc302b98ac1560af","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^26.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^26.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.8.2_1787320545781_0.0432033004508221","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@erichll/pi-auto-review","version":"0.9.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.9.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"3916ac4bf43ae9c0d8dac5a849b5cd4c17b70d7e","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.9.0.tgz","fileCount":17,"integrity":"sha512-2sjlQ2n6FNm6eTh4Oq7TBnXSXvXhihg+IWQzYbhr/gZgw2GL36fQ8ms5inqVlADlmCWT0f0GpCgZSL6YKTZdoA==","signatures":[{"sig":"MEQCIG2QizG9TMrjZ4/BC8LmVTanuJg+4FfMLbhIJiJ0Q55eAiAdPAPMgXrRXcJJe4K9pTGNNMrabtfisFf2biRTe/97Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226799},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"7d1451bdef3b719868037d143feb6f563b97d387","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.9.0_1787398750766_0.8775781636376243","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@erichll/pi-auto-review","version":"0.10.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.10.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"efa09882ab2ac357faaf466aba5bec28b19376de","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.10.0.tgz","fileCount":17,"integrity":"sha512-b9CetUZiT28aJ05SenMOpgYgbs0KpRTeJsW1n/B20762pWt+lFL/hbgHBHpiXz55haEdBVhMqrglghlhKS6nJA==","signatures":[{"sig":"MEYCIQCS/VeQGjnqQc6zB/mKjLQT2D6Qf0NFAzhP4lTVtgiDqgIhANBtVZWYPeEGx0dIQmJ6XtjvgJZ3wcuN7PRG4W+vGb4s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223006},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"60c405c3b1755939294ad001004df45c3bc62d07","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Model-backed boundary approval broker for Pi","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.10.0_1787409518884_0.6577217706678826","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@erichll/pi-auto-review","version":"0.11.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.11.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"396bd02a7ce5e05be049d3a62b42956d1fc41bed","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.11.0.tgz","fileCount":17,"integrity":"sha512-vKrMJ+1oInrp9mqg9ovZR2FRu7i+saYm9oNHApX9h5fOW/wuDpPiCXtN7o3Lf9lrBfxiljkr4hhNg8fxDyy7HQ==","signatures":[{"sig":"MEYCIQDoDURfaqvGHa0y08xl2UrD2JnTUbv0EWuR+DAAAM/RNgIhALDmRTYBcNRoC3O9zAKPOdObglUmeukgFIbidL/4l78p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225790},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"b480e1ec3af5c0c682b893d409df65734bba8f6c","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.11.0_1787547296240_0.803831766479788","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@erichll/pi-auto-review","version":"0.11.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.11.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"ae62a5eb1a80f74cd801d11cebd0fbfdd36b94b5","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.11.1.tgz","fileCount":17,"integrity":"sha512-FkUH1SyBQVdDPa833zGQsQTterwhiDH6pP7H3l+h+roQWBMahXccZ3NngmDgku4KS440gjZlgPlI18aWf5f2QQ==","signatures":[{"sig":"MEUCIEYsJ7h1v9DPDhvwnxAM/zzHa5kGQl1gEbMBZEMI0Y1OAiEAlVA5ur82fK8OYl2jiFRHZJXj9x/JHfEnejRZFoK1adg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226314},"type":"module","engines":{"node":">=22"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"ec07a5362be5814ef8113185da063f4cd397f5a4","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.11.1_1787634319266_0.127571575751948","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@erichll/pi-auto-review","version":"0.12.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.12.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"c19d5684375968c6f57ce128189785f0847f0863","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.12.0.tgz","fileCount":21,"integrity":"sha512-RAGfx5l/u4yYhaFjOSuX7wGu/zg/7BT8JbP1KEMKTqyk5KNZZI83aR6iPGyp+trMNdhwoAUSdv6i3LRx9pDcFQ==","signatures":[{"sig":"MEUCIA5IC5cEOsKzQn8NPn8hSa22lHGkbvEIGcCQI0NM0dqrAiEAobjf5qFgE2sB1WWzQfX38fFhSo9Uslq9FFDl2aqEnKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268058},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"2f17ceb981db08db4c4552ed951574821eb1b17e","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.12.0_1787808212800_0.7742434513007592","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@erichll/pi-auto-review","version":"0.13.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.13.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"dab19a79cf3ecc81a6594ed6e39c1d30edff9392","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.13.0.tgz","fileCount":22,"integrity":"sha512-x491dE5gBkK1KeSzj8W8SXut19afQEe8CPcB09bpQCoKjeAIuRa15IWuaDoTBmYXklyO9o/g8VkvXdXye8G/Uw==","signatures":[{"sig":"MEQCICalarylEW1m5+nLqOP9FE11o5utjFsCGMoPWSsiTR6LAiAd1s666EEhexe5w+hYm+ZOtqv84pG88iCW3FFNIjPtJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270272},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"363c53d1cb65a1d4a93839fc31d498da157daa91","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"27.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.13.0_1787885132173_0.9372768409365559","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@erichll/pi-auto-review","version":"0.14.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.14.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"02ea47cd0687f20b557008325c7bcdc063231fec","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.14.0.tgz","fileCount":22,"integrity":"sha512-0wEp0raqibjNjkw9ujZ/frxgJpJh0nO4uR7kg6AWMofrZRRbLuiqWu8i5UsYBF0rc9J7bxm6o0WmWhMSk7CbiQ==","signatures":[{"sig":"MEQCIBl/zhmgEFlhY8lM+yiS7bM4FfXx/0zTqeak/9I5XIaLAiAB+c55omBt7+zEUknz9wBhhX8kK5kasiNYGesn7DcISw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284334},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"a792a34900d95b6e5ffb2e4ebed4cc87e08728d9","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"27.1.0","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.1","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.14.0_1787893968845_0.8271248974110958","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@erichll/pi-auto-review","version":"0.15.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.15.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"543ab121667702f21e83bdb0c7bfc5557e34d7c7","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.15.0.tgz","fileCount":22,"integrity":"sha512-KfAei3anFiyzbPAKbGBFq1c86xK9VGJPKjXIEJSJV2v03BIYJkDaEuOqeUXQrKfQVs2Lc6n6zrD6u31ZPQtLbg==","signatures":[{"sig":"MEYCIQCj6e16cbhQ2ZiCn4lZikpeZPxZovIO+agwjryo8BgcygIhAJ0xePc7XV+l5daoqJRvGudcUBMY9b49RmZmGCh+ZyD6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297633},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"0c354d6c5d071cc2388fc767067d8c9ade16bbc9","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":"27.1.0","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":"^27.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.15.0_1788016811929_0.8904901661021809","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@erichll/pi-auto-review","version":"0.15.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.15.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"1c575a9034ad4734a08be57705755c5fa6de8a43","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.15.1.tgz","fileCount":22,"integrity":"sha512-flzNunYRBLwPNxj0MlGW4jM8p7QS2on3m4rqrJ28V04HlyaFcaa7Rcr5b7+vmneoaHG8dvf3ig2HgGE+BEuvYA==","signatures":[{"sig":"MEQCIBKywN6rF1qQie8Aa4dWop6IMTFV7gijls0xaEiZBHgdAiBLwZNCmX8CPdvc/XoqMNXtuhPbSeVdCzSpWoyMkh52ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299433},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"0c354d6c5d071cc2388fc767067d8c9ade16bbc9","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":"28.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":"^28.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.15.1_1788138263769_0.07723405254355908","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"@erichll/pi-auto-review","version":"0.15.2","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.15.2","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"51fbf2fa6c6dddf1b31ae1a095fe329911aa2e88","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.15.2.tgz","fileCount":22,"integrity":"sha512-Haz4ed79RYWAAeEe7SnGMst6PJfZtKiFDWnKXiBBD2Yp1UVairKUGklqyu4fVa8h5QIwG+mFflFQDb8n6D84VA==","signatures":[{"sig":"MEQCIDBVWQVxk7C0luY1cZRBKGXKFktvntfsIgWg0Ox3ZMZwAiAL1uOgx5NwCAIMhaAN7YuWCDDC1WHBqSU7A8PajabBEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282219},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"6acb1bc9f0a145e3ba7fe860183164fcc97c2014","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":"29.3.0","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":">=28.0.0 <30.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.15.2_1788320290271_0.4658841167672252","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"@erichll/pi-auto-review","version":"0.15.3","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.15.3","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"4c89d5789b7530570fa6f69091985a9722ff5ca8","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.15.3.tgz","fileCount":22,"integrity":"sha512-oCbOJa7aLLYJE55BrQuR9Pmf3jbwPPFibdhIDQ4tLhdAI16U+gLj46kg7ZEJVXa8JVp2V9CGXerbj31hyEcZ0Q==","signatures":[{"sig":"MEUCIQC2ojYmeC3d1SOv9fLjL0b9aLwp5nH9g7bFYsAK4BoWJQIgZFn+a58dxaVv5jPhxtlU7NbqxYfLCpASnrXQGmAyG5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285550},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"9d891435e6b3cf2938bbdda88a44ceb321e7e8cf","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":"31.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"peerDependencies":{"@earendil-works/pi-ai":"^0.84.4","@gotgenes/pi-permission-system":">=29.3.0 <32.0.0","@earendil-works/pi-coding-agent":"^0.84.4"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.15.3_1788405315897_0.2553935667217502","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@erichll/pi-auto-review","version":"0.16.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.16.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"c70ec556778f5759b07fe9aa99471bd3d7ffdfaa","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.16.0.tgz","fileCount":22,"integrity":"sha512-uX9hH6jSx/q8KBP2Bl2mtvyFcVkjoLd2egIOxoteEvbYbQEer3pYXQMKgybdP8WKRKxBBW36/x0AH9TTquNvew==","signatures":[{"sig":"MEQCIEIghiEuajUaFcV3rmBS3604xR2IUq+kLJ2sgRr1mmcIAiAIwaf80FRgcMUJuJ26HEEjsHLRLoxuL5WyFmV65a4OIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCcCrBR182czPzxJGqIr+J8CXxcW/r3+bmv6UOepZczkwIgOLGd0MsNjlaNjdceK7kAm2OIiDP4ymU9wX2dl1zEaz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285729},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"ed4ffc0f469078211e1d336f287430d763b2e54d","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-loader ./test/typescript-loader.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.85.0","@earendil-works/pi-server":"^0.85.0","@gotgenes/pi-permission-system":"31.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"^0.85.0","@gotgenes/pi-permission-system":">=29.3.0 <32.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.16.0_1788594338831_0.9000972238080802","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@erichll/pi-auto-review","version":"0.17.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.17.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"7d48a2b87bde70ef7f9b25dc7b19daf938c0e725","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.17.0.tgz","fileCount":32,"integrity":"sha512-s0iFP1/oGlNB8WXWNmv5Sc05ZSY7hi+/M+JTbQ34wvyTOKI+vlQJMs3l8+fzTFRoLMNyjbA4LXhurKfmvojqQQ==","signatures":[{"sig":"MEYCIQDaCrrdqCN1kbfekoubkVF42ymsSvNHsiEE6CsUMhw9zQIhAIEwpDy5p4mBK9m+PtQDAWmaHbkrU7nAn7x0quZM5B35","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC85ARNAHuzVxlauo3exOUgIQkTajxJkjZkC2UYQ22rUAIgJM1hXb7GMzPKzlc+Ea4swRKn36F6GY5sQEgh4Abudj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294501},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"ed4ffc0f469078211e1d336f287430d763b2e54d","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.85.0","@earendil-works/pi-server":"^0.85.0","@gotgenes/pi-permission-system":"31.1.1","@earendil-works/pi-coding-agent":"^0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"^0.85.0","@gotgenes/pi-permission-system":">=29.3.0 <32.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.17.0_1788620275871_0.18592482628911333","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@erichll/pi-auto-review","version":"0.18.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.18.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"8b3f58a29225b5e07e9afa8841676c0a9ca63866","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.18.0.tgz","fileCount":32,"integrity":"sha512-DsvaW/EBFr0rJCLSeXHvIq4T6/Zk+VFYr1myC2b0wattQ6PUSKuUfAuwqDcMT0lnnd0915yq9IMC6RvQdm0ksw==","signatures":[{"sig":"MEQCIF67BJb2o3EL3x5V3Hmb/Fackhev9sw2KkAJmAmnFXwsAiBPmo51/5upxy/mlXCO3/OIpK0yOqYnBd/ZWUZ3tUldQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFK6zbtzWK60PlgsVP9YmiI14PuktuP4aRYZN04Qz+QcAiBuxOdgjnUssloZRrECuTqxFdcwQry54w4pcX/Iv1nn9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296267},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"224f4bb5d314a74ff83dd69202b23bbc536c08d0","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.85.0","@earendil-works/pi-server":"^0.85.0","@gotgenes/pi-permission-system":"31.1.1","@earendil-works/pi-coding-agent":"^0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"^0.85.0","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.18.0_1789121120787_0.49860522145289154","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@erichll/pi-auto-review","version":"0.18.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.18.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"cfdab4cc3c84e129824b77ad508bf2542d7073f2","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.18.1.tgz","fileCount":32,"integrity":"sha512-cVhiZ/udx5TRP5g72CjUJ/ni/wruLX6gzJxtmXxXmsYtqZKKTyeKoQXLjsqtTh5fG8kOYTw3gGQ58YsPBjvBsQ==","signatures":[{"sig":"MEYCIQC7rQlgZWxzjWDOdnl51FNVOrVvGF02fYofsCTXRkBAwgIhAPcZN/M4hWXwpFBrtYWrKw56RVO3giQOrJwhAUuZ/buw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQClErNAseLmfDcPgvPWFaJxQ2eEPAoDPbY2r3Vtin989QIgIpVpPp4fdEHdP06UBSo3xcLn5HLZCPzcpPsQUrekp8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298227},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"0415163c66cc73217bc13df0b97e00fbeb0af6f2","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.85.0","@earendil-works/pi-server":"^0.85.0","@gotgenes/pi-permission-system":"31.1.1","@earendil-works/pi-coding-agent":"^0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"^0.85.0","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.18.1_1789133750963_0.5188018863761987","host":"s3://npm-registry-packages-npm-production"}},"0.18.2":{"name":"@erichll/pi-auto-review","version":"0.18.2","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.18.2","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"3ea4bfab6a4c5c09eefbe593353ed0f7eb4b3c1f","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.18.2.tgz","fileCount":32,"integrity":"sha512-EKeT6HVnmBsp8+QvP4jsiCbWOf7uB4FwoM3isTRBwUK+JCIvAhLHSLc/eUc19O6l4iTlqzX9y+DD7fCcoCCwsg==","signatures":[{"sig":"MEQCIBFyYf2ILQL1nF7AqHu1LeTQKLFCGoRIY9henbynG+i0AiAdY+122qVOZP6Z3Sntw8swgkCks+VCS/jXPzqe9xWPbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGfc5qRvlaEpXFNNaTQTuSUsDZo6vH0BckYa0G4pvrjpAiAvkrYWIxC6aXsYSuQ1xgn7L9BlRmlZOAknPvL8E/oQ9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299142},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"4bc13769d8dc1b580d684de06dd8ae26afe9a9d3","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.85.0","@earendil-works/pi-server":"^0.85.0","@gotgenes/pi-permission-system":"31.1.1","@earendil-works/pi-coding-agent":"^0.85.0"},"peerDependencies":{"@earendil-works/pi-ai":"^0.85.0","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.18.2_1789613456377_0.10270138393718731","host":"s3://npm-registry-packages-npm-production"}},"0.18.3":{"name":"@erichll/pi-auto-review","version":"0.18.3","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.18.3","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"d91ccd7646168a2c6e7df37696ecb42c1c54c972","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.18.3.tgz","fileCount":32,"integrity":"sha512-M5fhKn+vyWO5JPnXtqbmhH9g1jMqFinAQlDeheDzHcOyTkDo2AIBz+Ju5wIl62TMCBbZHg3iMfbPKtv4PBN/qA==","signatures":[{"sig":"MEUCIQDqbDN1aSm+hdBbltjVM13RmQtFAueIYzpGbWnsQ+hRewIgYF9M2TEEIdLV7LbyKbChe7lp5Ls6UmN1EBLMWFmCdII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHGgAIXasmNJVx71C+jVa9QLZED2tJJxfen1zgPuTheVAiEAw7+FXlOZ0MuNYK9lFEfVNpZ+av4X91GzwJY1Ei9QdNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301214},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"00f6994f5ca11db16e3630eb9bd5d89e1c12afa8","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-server":"^0.85.1","@gotgenes/pi-permission-system":"^33.0.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.85.0","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.85.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.18.3_1789860023236_0.07937674904072778","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@erichll/pi-auto-review","version":"0.19.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.19.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"f390b37fd0428867ddf6c26ec182c6f5c6ab6892","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.19.0.tgz","fileCount":32,"integrity":"sha512-H8Zn8ArmrHjoUMfMBWxfVGHDO2dy/rn9HlN7JYcD4N7gSyKF28esjv3oEf8bVCfaoqc/SBUGxFgvBvf78OnY3A==","signatures":[{"sig":"MEUCIElvDEuBRcUUZ0IK9uxHKN8JuaXy4bz9DyhXGrVtqVcvAiEA6e+xInIoe5isJQD3gUM8glYlwg+S8/GZSkYNt7ipBZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC7htudGiD9yu+YMWOdRBB8gGTO+0QBOsqeJfycVE50pAiA+N8OSyFgCl8B5zImn2M6CqEL+x1WsubVwMBR3fZhs5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302541},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"39b8d52a8b0cf5d96fb0fdc21336b597c6aac9a9","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.86.0","@earendil-works/pi-server":"^0.86.0","@gotgenes/pi-permission-system":"^33.0.1","@earendil-works/pi-coding-agent":"^0.86.0"},"peerDependencies":{"@earendil-works/pi-ai":"^0.86.0","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.86.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.19.0_1789867187881_0.3411141265641402","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@erichll/pi-auto-review","version":"0.20.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.20.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"3e4959765bb424c4a6b16bd4bc5cbf822690af02","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.20.0.tgz","fileCount":32,"integrity":"sha512-ctJlTZEpNQ5M/GcB2bsGCln430kk9S2Lxli0t9bfTOsC53HcnCJ4Prfni0rY2oFL9c6abxf6iBSlJSoP5QPwGQ==","signatures":[{"sig":"MEYCIQD1qDjSLT9qc4icXuA6JxSDCWjiGqZtGtNvzr68JSkFZgIhANRW+1xZGd9qUV+9q1cA4ZnZ74f4r35xR/GMkEXtZR3l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAtLElzsdHaZ/HWw7LHiSUisdV++hic8HpNnoaGuLAfJAiEAkDQ97PZGGpSKdpacJmWJuSeFVALvmztJd1hZKjWVxlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303390},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"b5b0e9b8fb67d19bf6609795749dc37173a4993d","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.2.0","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-server":"^0.87.1","@gotgenes/pi-permission-system":"^33.0.8","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.87.1","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.87.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.20.0_1790157600472_0.32606481170002444","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@erichll/pi-auto-review","version":"0.20.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.20.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"340e8cd370587fd9cdeec1887a3a2d232a828c1b","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.20.1.tgz","fileCount":32,"integrity":"sha512-lXLA6YGRXya9rVldNZoUNPRZgweh2yeRkpRSeygE1maj+Jihqehib0yb/qA+0pdIGXqG28omkueLFrNz4N+vzg==","signatures":[{"sig":"MEQCID5b09ddeZAWk5/9FLbn7punUTcbCw5CaajsOJBkDXRMAiBOOXv9lrm2olYDX3zj7j/K8EJGiKUxeuAGaPoQhhZuoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBq3HazkIMJpiV5s6ObUe3iB/9loYa7KAAoRbJFbvUl9AiEA/iI8hE9rvAdR11pEdm/sBZC6esMUNSxn1f1tC0ZeJ3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304401},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"c1c13e28c59eb189edc9c894eeb44117fa9e144d","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.6.2","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-server":"^0.87.1","@gotgenes/pi-permission-system":"^33.1.1","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.87.1","@gotgenes/pi-permission-system":">=30.0.0","@earendil-works/pi-coding-agent":"^0.87.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.20.1_1790248373014_0.7123422622571822","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@erichll/pi-auto-review","version":"0.21.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.21.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"1231cdc0ca7ca8cdc190d4467d0e23ba05c37410","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.21.0.tgz","fileCount":32,"integrity":"sha512-5J39aU/j04VmPXvnsipKV9BnK6gSSvMKaa7A1Yt+AFafL5MNk6Kitsd3Ta3X1pI6/f5aK0T4MdaFwHtTmm/08w==","signatures":[{"sig":"MEYCIQD/ocV0jBXZT9X2+vvo1tT655W2dBYP2ZaOcIR9BS8WwQIhAP6vkyskTdgGm4k0IHcpiXzjZyTFsntYKwjWKmcKqOZU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBT+Do4fIAtSL8O9SMyujJANIIwZ7gM4TZWp0+kS/HJ2AiEA7J426tX/BgIiNFnNKFqcUpI/pjku5OeEmfpB5gEuAuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305263},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"5eef23aa9640cf6672bdb7e8f0ff1833f7559688","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.6.2","@earendil-works/pi-ai":"^0.87.1","@earendil-works/pi-server":"^0.87.1","@gotgenes/pi-permission-system":"^34.0.0","@earendil-works/pi-coding-agent":"^0.87.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.87.1","@gotgenes/pi-permission-system":">=34.0.0","@earendil-works/pi-coding-agent":"^0.87.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.21.0_1790301541437_0.4472209597902854","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@erichll/pi-auto-review","version":"0.22.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.22.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"0ece08fb92ae017f7b415447e4a2b3408383acb8","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.22.0.tgz","fileCount":32,"integrity":"sha512-R/bJUgy4DFaAzI7iYGQ3OUTNKaZLF2E8PJa0LBlN0UNBKT8+qLYJ/5pZUjDYkxsBpl1UMdsw8KxrZt5tQdixeg==","signatures":[{"sig":"MEYCIQCa996SVIEJty02Su5f5d0hLXmHHGdqTrxKHXElKgmuSwIhAMqnVHTuiO8xqVlp31qaaTRDxSNTxMZYNCjbggRwU0uU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH9+e0ANZLQEFoKNS+ftP/8s0HXLJSV1JdSwnHF2qqWvAiBTrgfromksV/LRHT2AlZpUs23HNLurbOLCnauGRMcPBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306546},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"4e581b9590794b25bb9ef693d6329b05aac1f1f9","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.6.2","@earendil-works/pi-ai":"^0.99.1","@earendil-works/pi-server":"^0.99.1","@gotgenes/pi-permission-system":"^36.0.0","@earendil-works/pi-coding-agent":"^0.99.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.99.1","@gotgenes/pi-permission-system":">=36.0.0","@earendil-works/pi-coding-agent":"^0.99.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.22.0_1790732071151_0.4897612635490747","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"@erichll/pi-auto-review","version":"0.22.1","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.22.1","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"eb17b3efae2d759007dfe3e4e65f2bcce9e8434b","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.22.1.tgz","fileCount":33,"integrity":"sha512-yAnFL5SimhJziVwLFGBb920QP8q5eASqTEIYst2gUPXNKzOU15YLLGZdTKtvshUNPngyIcijS5ZU6qQ9KWPpUg==","signatures":[{"sig":"MEUCIAJ4RTSU50c1uL/KUI/4B7chms6eamqmmBaC5y3blgM6AiEA+iLnBTNKfKGSqWnz1swlqurcVjlxfTBB4u9mOJWGihU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBE47cDg0TEyJCaT3xwec/uKbNaF1NDx2QHv0Li/+F/uAiBJegh3YjDhUtkJIM6Hyixr4vKcXgHrogjC5tiCdsiT7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309025},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"9710a95f63340ff91cb2edc815bef4f3336fafd3","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.6.2","@earendil-works/pi-ai":"^0.99.1","@earendil-works/pi-server":"^0.99.1","@gotgenes/pi-permission-system":"^36.0.0","@earendil-works/pi-coding-agent":"^0.99.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.99.1","@gotgenes/pi-permission-system":">=36.0.0","@earendil-works/pi-coding-agent":"^0.99.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.22.1_1790825661023_0.3676968850308393","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@erichll/pi-auto-review","version":"0.23.0","keywords":["pi-package","pi-extension","pi","security","sandbox"],"license":"MIT","_id":"@erichll/pi-auto-review@0.23.0","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"a3b7fb85d2204a145560d36da00039e56095f5c4","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.23.0.tgz","fileCount":34,"integrity":"sha512-C3RnpeJbgqKVxc7AQaj/hkCs9NC1/03ZdChSNmaLO5SkfTFEMnsCJp7UhmcZC90mA+XcHLkwGJiulUdkk2E/Vg==","signatures":[{"sig":"MEQCIFg5y+u9a/WStfVQPa6ff85qtUftUAyULz8zzX5SQrUnAiBQIpFVR0y3STMWg2hmz235Nm72GkfHuxQmqNMsiOO07w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAx8cbgEgpAPrt9GNr/CoaIG5e3uEoSnS5UpwAg/AaNGAiEAvK4guS+wIPiQrPPriHOfCINI1vNH2B1wDLwIZcf8Ftw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338374},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"b59adc017d925307730aa362a648d1cf1a634a99","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.6.2","@earendil-works/pi-ai":"^0.99.1","@earendil-works/pi-server":"^0.99.1","@gotgenes/pi-permission-system":"^36.0.0","@earendil-works/pi-coding-agent":"^0.99.1"},"peerDependencies":{"@earendil-works/pi-ai":"^0.99.1","@gotgenes/pi-permission-system":">=36.0.0","@earendil-works/pi-coding-agent":"^0.99.1"},"_npmOperationalInternal":{"tmp":"tmp/pi-auto-review_0.23.0_1790913801429_0.8316149865386704","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"pi":{"extensions":["./src/index.ts"]},"_id":"@erichll/pi-auto-review@0.24.0","bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"dist":{"shasum":"21a8e70345512ecc7a3aeae7cd6fdbcf7cfc5345","tarball":"https://registry.npmjs.org/@erichll/pi-auto-review/-/pi-auto-review-0.24.0.tgz","fileCount":34,"integrity":"sha512-dmdZbRaGH0IAWcNA3aWXGFrx0PZdi8ZP7TiVRcNENkJdNtWUEHK8ONCKXlGRluaRfhXhqaIumsM9AKeiH51ZIg==","signatures":[{"sig":"MEUCIQD2Rs6Xp44an78bwb10/B6MlM79mB6hI0VzSfyulE1sJQIgGdnCcEuwhtiq0Qo+dml91fBJqrMweP/0FqBHRK1Jxcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD4HFO7IDkElx+E7YRdpg/pKfpQbUlEuGv+dFw94FtbsAIgPxCe4Z5oM6VaOVGgCPX0Yox+VhwsIiWXDfBx6RgA6Fg="}],"unpackedSize":339287},"name":"@erichll/pi-auto-review","type":"module","engines":{"node":">=22.13.0"},"exports":{".":"./src/index.ts","./broker":"./src/broker/index.ts","./sandbox":"./src/integrations/sandbox.ts"},"gitHead":"8532b3e220be6ad356d1f0fbb2bf8cfc272c9b81","license":"MIT","scripts":{"test":"node --disable-warning=ExperimentalWarning --experimental-transform-types --import ./test/register-external-ts.mjs --test test/*.test.ts","check":"tsc -p tsconfig.json --noEmit"},"version":"0.24.0","_npmUser":{"name":"erichll","email":"lzujing@gmail.com"},"homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","keywords":["pi-package","pi-extension","pi","security","sandbox"],"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"_npmVersion":"11.12.1","description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","directories":{},"maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.6.4","@earendil-works/pi-ai":"^1.0.0","@earendil-works/pi-server":"^1.0.0","@gotgenes/pi-permission-system":"^38.0.2","@earendil-works/pi-coding-agent":"^1.0.0"},"peerDependencies":{"@earendil-works/pi-ai":"^1.0.0","@gotgenes/pi-permission-system":">=36.0.0","@earendil-works/pi-coding-agent":"^1.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-auto-review_0.24.0_1790988634674_0.13157657836131897"}}},"time":{"created":"2026-07-28T05:30:23.995Z","modified":"2026-10-03T00:50:34.932Z","0.1.1":"2026-07-28T05:30:24.324Z","0.1.2":"2026-07-28T09:18:10.129Z","0.3.0":"2026-07-28T10:08:18.758Z","0.3.1":"2026-07-29T06:07:27.804Z","0.3.2":"2026-07-29T12:30:12.936Z","0.3.3":"2026-08-06T04:58:47.777Z","0.3.4":"2026-08-08T08:07:54.094Z","0.3.5":"2026-08-13T02:22:57.684Z","0.4.0":"2026-08-19T03:26:12.769Z","0.5.0":"2026-08-19T23:16:06.994Z","0.6.0":"2026-08-20T03:07:43.399Z","0.7.0":"2026-08-21T02:25:15.760Z","0.8.0":"2026-08-21T05:13:09.773Z","0.8.1":"2026-08-21T12:17:51.239Z","0.8.2":"2026-08-21T13:55:45.945Z","0.9.0":"2026-08-22T11:39:10.914Z","0.10.0":"2026-08-22T14:38:39.036Z","0.11.0":"2026-08-24T04:54:56.383Z","0.11.1":"2026-08-25T05:05:19.424Z","0.12.0":"2026-08-27T05:23:32.943Z","0.13.0":"2026-08-28T02:45:32.321Z","0.14.0":"2026-08-28T05:12:49.003Z","0.15.0":"2026-08-29T15:20:12.084Z","0.15.1":"2026-08-31T01:04:23.913Z","0.15.2":"2026-09-02T03:38:10.409Z","0.15.3":"2026-09-03T03:15:16.043Z","0.16.0":"2026-09-05T07:45:38.991Z","0.17.0":"2026-09-05T14:57:55.948Z","0.18.0":"2026-09-11T10:05:20.891Z","0.18.1":"2026-09-11T13:35:51.050Z","0.18.2":"2026-09-17T02:50:56.519Z","0.18.3":"2026-09-19T23:20:23.341Z","0.19.0":"2026-09-20T01:19:47.962Z","0.20.0":"2026-09-23T10:00:00.573Z","0.20.1":"2026-09-24T11:12:53.104Z","0.21.0":"2026-09-25T01:59:01.520Z","0.22.0":"2026-09-30T01:34:31.283Z","0.22.1":"2026-10-01T03:34:21.142Z","0.23.0":"2026-10-02T04:03:21.525Z","0.24.0":"2026-10-03T00:50:34.784Z"},"bugs":{"url":"https://github.com/erichll/pi-packages/issues"},"license":"MIT","homepage":"https://github.com/erichll/pi-packages/tree/main/packages/pi-auto-review","keywords":["pi-package","pi-extension","pi","security","sandbox"],"repository":{"url":"git+https://github.com/erichll/pi-packages.git","type":"git","directory":"packages/pi-auto-review"},"description":"Fail-closed, model-backed approval broker for Pi: deterministically hard-denies dangerous operations, reviews dangerous boundaries with a reviewer model, and issues one-shot expiring grants that OS sandbox adapters must consume before retrying.","maintainers":[{"name":"erichll","email":"lzujing@gmail.com"}],"readme":"# @erichll/pi-auto-review\n\nA fail-closed, model-backed boundary reviewer for the Pi coding agent.\n\nThe extension participates in `@gotgenes/pi-permission-system` as the\n`pi-auto-review` authorizer and exposes a process-local broker for OS sandbox\nadapters. It is an authorizer *inside* the permission system, so installing\nthat dependency is a hard prerequisite (see [Install and enable](#install-and-enable)). The npm package and reviewer model have separate names:\n\n- package: `@erichll/pi-auto-review`\n- authorizer: `pi-auto-review`\n- default reviewer model: `codex-auto-review`\n\n## Contents\n\n- [Install and enable](#install-and-enable)\n- [Security model](#security-model)\n- [Configuration](#configuration)\n  - [Deadlines and retries](#deadlines-and-retries)\n- [Operator feedback and exact retry](#operator-feedback-and-exact-retry)\n- [Boundary broker API](#boundary-broker-api)\n- [Reviewer context and token budgets](#reviewer-context-and-token-budgets)\n- [Sandbox integration](#sandbox-integration)\n- [Trust boundary](#trust-boundary)\n- [Permission policy audit](#permission-policy-audit)\n- [Telemetry](#telemetry)\n- [Real-model smoke test](#real-model-smoke-test)\n\n## Install and enable\n\n> **Prerequisite:** pi-auto-review is an authorizer inside\n> `@gotgenes/pi-permission-system`. Pi does not auto-install peer packages, so\n> install the permission system separately (once per machine) before this\n> extension. This release line requires Pi 1.0.0 or later and supports\n> permission-system 36.0.0 and later (development baseline validated against\n> permission-system 38.0.2):\n\nNode-based Pi requires Node.js 22.13.0 or newer. Permission auditing uses the\nhost runtime's built-in SQLite: `node:sqlite` on Node and `bun:sqlite` on Bun,\nincluding Bun-compiled Pi (verified with Bun 1.3.14). It does not require a\nSQLite CLI, system SQLite library, or npm SQLite package.\n\n```bash\npi install npm:@gotgenes/pi-permission-system\npi install npm:@erichll/pi-auto-review\n```\n\nInstall the package outside the agent-writable workspace (see\n[Trust boundary](#trust-boundary)):\n\nAdd it to the permission-system authorizer chain:\n\n```json\n{\n  \"authorizerChain\": [\"pi-auto-review\"]\n}\n```\n\nThe configured reviewer provider and model must also be registered in Pi.\n\n## Security model\n\nRequests pass through these controls in order:\n\n1. deterministic hard denies;\n2. bounded model review;\n3. the local permission terminal when required; and\n4. an exact, expiring, one-use grant for an external sandbox adapter.\n\nThe model cannot override hard denies or grant authority directly. External\nadapters must consume the exact grant before retrying an operation. Changing\nthe command, path, resolved path, destination, cwd, agent, or tool input\ninvalidates that grant.\n\nPermission-system downgrades authorizer allows on `path` and\n`external_directory` to `defer`. In an interactive TUI,\n`autoConfirmBoundedAllows` can bind the exact model allow to the immediately\nfollowing recognized permission dialog. The bridge is request-ID-bound,\nexpires after ten seconds, and is consumed once. Mode, component, request, or\nevent-order mismatches leave the original human dialog in place.\n\nPermission-system 31.x also projects paths named directly by `for`/`select`\nword lists and `case` subjects onto the existing `path` and\n`external_directory` surfaces. Those additional requests follow the same\nbounded review and one-shot auto-confirm rules; no new surface is implicitly\ntrusted.\n\nAutomatic review stops for the current turn after three consecutive denials or\nten denials in the last fifty reviews. An explicit denial tells the agent that\nautomatic policy denied the request (not a human click), not to rephrase or\ncircumvent the same action, and points to `/auto-review-approve` for an exact\nnon-critical reviewer retry or `/auto-review-break-glass` for a critical model\ndenial. Local deterministic hard denies never offer an override command.\n\nDeterministic hard denies cover recursive forced wipes of `/`, `~`, and\n`$HOME`. A named path under `/home/...` is reviewed by the model as high-risk,\nnot treated as a home-directory wipe.\n\nReview and authorization use the command that will actually execute, not only\nthe unit the matched rule names. When a wrapper (`sudo`, `env`, `xargs`,\n`bash -c`, `eval`, or an interpreter payload) hides the real program, the\npermission-system ask payload supplies the executed unit, the complete command,\nand the matched rule, and those facts are what get hashed, reviewed, and\nhard-denied. Hard denies check the complete command, outer unit, and executed\nunit independently. Structural rules mask inert shell literals without turning\nnamed paths into root/home targets, and follow nested shell payloads. Other\ninterpreter payloads and heredoc bodies are conservatively scanned as raw text;\ncredential rules also keep scanning raw text. When a command fact exceeds the\nreviewer bound (10 KiB), the ask defers to a human instead of being reviewed from\na truncated program.\n\nNested interpreter expansion is limited to 32 payloads and 32 KiB of cumulative\npayload text per command fact, across all recursion levels. Exceeding either\nbudget keeps the raw-command hard-deny checks and otherwise defers to a human\nwithout calling the model. A reviewer-retry override does not bypass this limit.\n\n## Configuration\n\nConfiguration is resolved in this order:\n\n1. package defaults in `src/config.json`;\n2. optional trusted user overlay at\n   `~/.pi/agent/extensions/pi-auto-review/config.json`; and\n3. optional project tighten-only settings at `.pi/pi-auto-review.json`.\n\nUse the user-global file for normal customization. It may set any legal key:\n\n```json\n{\n  \"model\": \"provider/reviewer-model\",\n  \"autoConfirmBoundedAllows\": [\"external_directory\", \"path\"]\n}\n```\n\nTo use the model currently selected in the Pi session, set the trusted\nuser-global config to:\n\n```json\n{\n  \"model\": \"current\"\n}\n```\n\nEach review reads the active session model, including its provider, so changing\nmodels during a session affects subsequent approval reviews. Retries within\none review use the same selected model. Reviewer reasoning, token limits, and\ntimeouts still come from this extension's configuration.\n\nThe reviewer makes a separate provider request without tools and uses Pi's\nauthentication resolution. If no session model is selected, authentication\nfails, or the provider cannot serve this auxiliary request, the existing\n`failureMode` applies (`\"deny\"` by default, or `\"defer\"` to the human terminal).\nThe default remains `\"codex-auto-review\"`; explicit model IDs and\n`\"provider/reviewer-model\"` values continue to select a dedicated reviewer.\nThe bare value `\"current\"` is reserved for this mode; use `\"provider/current\"`\nto select a model whose ID is literally `current`.\n\nFor a complete `@gotgenes/pi-permission-system` config that wires\n`pi-auto-review` into the authorizer chain — a copyable baseline covering\nread/write/edit, a read-only bash allowlist, MCP tool access, and a\n`path` deny block for secret and credential files — see\n[`examples/pi-permission-system.config.example.json`](examples/pi-permission-system.config.example.json).\n\nPermission-system 38.0.0 gates Pi's built-in MCP tools on the `mcp` surface, so\nthe example writes its `mcp__<server>__*` rules inside a `mcp` block instead of\nas top-level tool names. MCP rules are evaluated last-match-wins across the\ncandidates derived for one call: the tool name, its bare server, and `mcp_call`.\nA call the `mcp` block does not match falls through to the universal\n`\"*\": \"ask\"`, and any broad catch-all must be written before a narrower\noverride or last-match-wins shadows it. A bare server entry such as\n`\"atlassian\": \"allow\"` also matches the `mcp connect <server>` candidate list,\nso it auto-allows starting that server — prefer the `server_*` and `server:*`\nforms for tool calls.\n\nPackage defaults:\n\n```json\n{\n  \"model\": \"codex-auto-review\",\n  \"reasoning\": \"low\",\n  \"timeoutMs\": 90000,\n  \"maxTokens\": 256,\n  \"retries\": 2,\n  \"maxUserTranscriptTokens\": 1200,\n  \"maxToolTranscriptTokens\": 1200,\n  \"maxRelevantResultTokens\": 800,\n  \"maxReviewerInputTokens\": 8192,\n  \"breakGlassEnabled\": true,\n  \"failureMode\": \"deny\",\n  \"grantTtlMs\": 60000,\n  \"autoConfirmBoundedAllows\": [\"external_directory\", \"path\"],\n  \"policyAudit\": {\n    \"enabled\": true,\n    \"retentionDays\": 180\n  }\n}\n```\n\n`failureMode: \"deny\"` is the default. `\"defer\"` falls through to the human\nterminal. Set `autoConfirmBoundedAllows` to `[]` to keep every bounded allow\nmanual.\n\nProject configuration may only lower timeouts, token/evidence limits, retries,\nand grant TTL, set `failureMode` to `\"deny\"`, set `breakGlassEnabled` to\n`false`, or remove auto-confirmed surfaces. It cannot re-enable break glass,\nselect a model, raise a trusted limit, or weaken fail-closed behavior. Invalid\nconfiguration disables the reviewer for that session.\n\nThe trusted user config may set `policyAudit.enabled` and a retention of\n1–3,650 days. Project config may only set `enabled: false` or shorten the\ninherited retention; it cannot re-enable globally disabled collection or\nextend retention.\n\n### Deadlines and retries\n\n`timeoutMs` is one deadline shared by model resolution, authentication, model\nattempts, and retry delays. Each attempt receives only the remaining time.\nProvider-internal retries are disabled, and a review makes at most two actual\nmodel calls even when the public `retries` value is higher.\n\nValid decisions, output-length stops, timeouts, aborts, authentication/model/\nrequest errors, and unknown failures do not retry. Empty, non-JSON, or\nschema-invalid output and recognized connection, temporary 5xx, or 429\nfailures may retry once when the retry budget and deadline allow it. A\n`Retry-After` above five seconds or beyond the remaining deadline fails closed.\nFormat retries preserve the canonical request and selected evidence and append\nonly a fixed, budget-checked schema correction.\n\n## Operator feedback and exact retry\n\nInteractive sessions show the current permission check in a single widget\nabove the editor. Each check first shows its surface, compact target, and the\ndynamically configured reviewer model, then replaces that content in place\nwith the outcome, target and rationale, model, token usage, duration, and any\nextra call count. A new check replaces the previous result. Allowed and\nauto-confirmed results dismiss after eight seconds so they do not occupy the\neditor; denials, deferrals, and local-confirmation waits stay until the next\ncheck, a session change, or shutdown. Concurrent older checks cannot overwrite\nthe most recently started one.\n\nEvery request still has its own model call, verdict, grant, local confirmation,\nand audit record. No new review-result transcript entries are written. Existing\n`pi-auto-review` entries in historical sessions remain renderable. Non-TUI\nmodes retain best-effort notifications, and a failed TUI widget update falls\nback to the same notification path. UI delivery never changes the authorization\nresult.\n\nIn an interactive TUI, `/auto-review-approve` lists up to ten recent\nnon-critical model denials from the current session. Selecting one asks the\nagent to retry exactly that request. The old `/approve` command is not\nregistered.\nThe host-generated override:\n\n- binds the complete request hash;\n- expires after 60 seconds and is consumed once;\n- remains separate from untrusted user/tool evidence;\n- still goes through deterministic hard denies and model review; and\n- cannot be reissued while a previous authorization for it is pending, or\n  again after consumption until the same action is denied afresh (one approval\n  per denial).\n\nIt is authorization evidence, not a direct allow.\n\n`/auto-review-break-glass` is a separate, high-friction path for model denials\nwhose risk level is `critical`. It lists only critical model denials from the\nsame session made in the last five minutes. After showing the rationale,\nsurface, cwd, command or target summary, and request-hash fingerprint, it\nrequires an explicit confirmation and a random `BREAK-GLASS <CODE>` phrase\nwithin 60 seconds. Successful confirmation creates a 60-second, one-use\nauthorization bound to the complete request hash, session, and original\nrequest ID. The request hash deliberately excludes the per-attempt `id` and\n`toolCallId` fields: the exact retry is a brand-new model tool call issued in\na later turn, so retry-minted identifiers cannot participate in the match.\nThe exact retry reruns local hard-deny checks, then allows directly without\ncalling the reviewer and, for sandbox adapters, still issues the normal\none-shot grant. A break-glass allow resets the turn circuit breaker (a human\nre-authorized the scope), and break glass can be disabled in trusted or\nproject configuration with `breakGlassEnabled: false`.\n\n## Boundary broker API\n\nThe extension publishes a process-local service at:\n\n```ts\nSymbol.for(\"pi-auto-review:boundary-approval-broker\")\n```\n\nAdapters should use the exported helper:\n\n```ts\nimport {\n  getBoundaryBroker,\n  type BoundaryRequest,\n} from \"@erichll/pi-auto-review\";\n\nconst request: BoundaryRequest = {\n  id: \"sandbox-runtime-query-id\",\n  source: \"sandbox-runtime\",\n  surface: \"network\",\n  operation: \"connect\",\n  cwd: \"/workspace/project\",\n  command: \"npm install\",\n  destination: \"registry.npmjs.org:443\",\n};\n\nconst broker = getBoundaryBroker();\nconst decision = await broker?.review(request, {\n  sessionId: \"pi-session-id\",\n  scopeKey: \"pi-session-id:turn-id\",\n  issueGrant: true,\n});\n\n// A break-glass allow includes structured provenance:\n// decision.authorization = {\n//   kind: \"break-glass\",\n//   originalRequestId: \"...\",\n//   confirmedAt: 0,\n// };\n\nif (\n  decision?.kind === \"allow\" &&\n  decision.grant &&\n  broker?.consumeGrant(request, \"pi-session-id\", decision.grant.token)\n) {\n  // Retry this exact operation once inside the OS sandbox.\n}\n```\n\nGrants expire after `grantTtlMs` and cannot be reused.\n\n## Reviewer context and token budgets\n\nThe reviewer receives one compact canonical request plus bounded, explicitly\nuntrusted evidence. Selection is deterministic rather than semantic:\n\n- the latest raw user message is the authorization anchor;\n- older user messages require an exact request/tool/requester association or an\n  exact trusted retry;\n- tool calls require an exact tool-call ID, exact structured request fields, a\n  surface profile, or a security-combination classification; and\n- selected results stay paired with their producer and are limited to exact\n  results, deletion prechecks, Git push context, matching branch protection,\n  and Sandbox Runtime process evidence.\n\nUnrelated reads, directory listings, builds, tests, assistant prose, and old\ntask history are excluded. Compaction and branch summaries are labeled as\nnon-authorization context and are never injected as user intent. The host does\nnot rewrite a model allow from regex matches on user text, vague continuations,\nor a computed authorization ceiling; those judgments stay with the reviewer\nmodel. Hard denies still terminate before the model.\n\nThe current operation appears once as stable, key-sorted JSON. Duplicate exact\ntool-call arguments collapse to an ID/name/reason linkage shell, while fields\nnot represented by the request remain available as evidence. This compact\nreviewer representation does not affect request hashes, grants, overrides, or\naudit evidence.\n\n`maxReviewerInputTokens` covers the fixed policy, canonical request, override,\nevidence, omissions, JSON framing, and a 64-token provider-framing reserve. Its\nlegal range is 2,048–32,768. Because no matching tokenizer is bundled, the\n`conservative:utf8` estimator counts every UTF-8 byte as one token.\n\nWhen over budget, the host removes secondary reasons, older structured tool\nmatches, then optional producer/result units, re-estimating after each step. It\nnever silently removes the canonical request, exact override, latest user\nevidence, security-combination evidence, exact tool linkage, or a required\nsurface profile. If mandatory evidence does not fit, review fails closed before\ncalling the model. More than four security-combination candidates also fails\nclosed locally.\n\n## Sandbox integration\n\nThis package exposes the broker contract but does not intercept OS sandbox\nevents itself. Adapters translate a concrete boundary into a `BoundaryRequest`\nand consume the exact grant before allowing it.\n\nThis monorepo's `pi-sandbox` adapter uses Anthropic Sandbox Runtime. Filesystem\npolicy is static and fail-closed; unmatched public network destinations use the\nbroker for one connection. Each Bash command or built-in subagent session owns\nan independent Sandbox Runtime broker process. Adapter implementations should\nuse the package's `./sandbox` export and must not create broad permanent rules\nin `.pi/sandbox.json`.\n\n## Trust boundary\n\nProduction copies must live outside the agent-writable workspace. Pi installs\nuser npm and Git packages under `~/.pi/agent/npm/` and `~/.pi/agent/git/`.\nWorkspace-loaded copies are rejected unless local development explicitly opts\nin:\n\n```bash\nPI_AUTO_REVIEW_ALLOW_UNTRUSTED_DEV=1 pi --approve\n```\n\nWrites to the installed reviewer package, its user-global configuration,\nproject and global security configuration, and the global audit directory are\ndeterministically denied.\n\n## Permission policy audit\n\nThe extension observes terminal `permissions:decision` broadcasts and stores\nonly daily, redacted aggregates. Collection is enabled by default and retains\n180 days. It starts when this version first initializes successfully; no\npermission-system JSONL or RTK history is read or imported.\n\nBefore storage, Bash values become observed command templates such as\n`git status --short`, `cat *`, or `npm test * --token *`. URLs, paths,\nassignments, quoted values, and option values are replaced with `*`; safe bare\ncommand words remain in plaintext so the report can emit a matching rule.\nPaths used for path-surface statistics become only\n`workspace`, `temp`, `home`, `external`, `sensitive`, or `unknown`. Request IDs,\nproject locations, and matched-rule patterns are HMACed. Syntactically valid\ncustom tool names are also retained in plaintext; invalid names stay anonymous\nas `<custom-tool>`. The database never stores raw commands, raw paths,\nURLs, credentials, or non-Bash tool arguments and inputs. Because safe bare Bash\nwords are retained, command templates can contain non-secret filenames or\nproject-specific labels; inspect suggestions before copying them.\n\nData lives at\n`~/.pi/agent/extensions/pi-auto-review/policy-audit.sqlite`, beside an\nowner-only HMAC key. Node and Bun use the same database schema and key, so\nswitching runtimes preserves statistics and request deduplication.\nThe directory is mode `0700`; the key, database, WAL, and\nSHM are mode `0600`. Initialization, lock, write, or corruption failures disable\nauditing and warn once without changing any permission result. A corrupt\ndatabase is not deleted or rebuilt automatically. Disable new collection with:\n\n```json\n{\n  \"policyAudit\": { \"enabled\": false }\n}\n```\n\nRun `/auto-review-policy-audit` for a durable TUI report that is not sent to the\nLLM. Options are `--days 1..retention`, `--top 1..50`, `--min-count >=1`, and\n`--scope current|all`; defaults are `30`, `20`, `5`, and `current`.\n\nIn addition to the redacted statistics, the report proposes copyable\npermission-system fragments. `--scope current` targets\n`.pi/extensions/pi-permission-system/config.json`; `--scope all` targets\n`~/.pi/agent/extensions/pi-permission-system/config.json`. The extension never\nreads, edits, or rewrites either file. Merge suggested Bash patterns into the\nexisting `permission.bash` map and place the narrow allow entries after broader\nmatching ask entries, because permission-system uses last-match-wins.\n\nSuggestions are discovered entirely from observed audit data; there is no\nbuilt-in tool, executable, Git action, package-manager action, or read-only\ncommand catalog. Every valid observed permission surface and reliably templated\nBash command can qualify, including previously unknown tools and write\noperations. Environment prefixes, compound syntax, pipelines, redirection,\npath executables, and unreliable parsing block that Bash template. Forwarded\nrequests are statistics-only because the requester's cwd is not available. A\ncandidate needs at least `--min-count` successful ask-path approvals and no\ndenial, gate error, unavailable confirmation, blocked structural variant, or\nforwarded-only evidence in the selected window. Existing policy/infrastructure\nallows do not count as evidence of user friction. Repeated approval is evidence\nof user preference, not independent proof that a capability is safe.\n\nSchema v2 migrates v1 aggregates transactionally. Old totals remain visible,\n`collecting_since` is preserved, and `recommendations_since` records when safe\nrecommendation evidence began; pre-migration data cannot produce a suggestion.\n\nThe report is an extension-owned custom entry. It is deliberately not exposed\nas an Agent tool or packaged skill, so neither a tool schema nor skill metadata\nis added to the model context. Permission changes remain a separate, explicit\nuser operation.\n\n`PI_AUTO_REVIEW_AUDIT_FILE` remains a test/release observation sink. It is not\nan input to this audit and supplies no RTK token or parsing metrics.\n\n## Telemetry\n\nEvery actual model call emits an internal `review_attempt`; each approval emits\none `review_complete`. Events contain stable status/error classes, timings,\nusage counters, evidence metadata, and prompt-part counts. They do not contain\nprompt or response text, provider errors, credentials, headers, or URL query\nvalues. Usage is marked `unknown_provenance` when pi-ai cannot distinguish\nprovider counters from initialized values, and `unavailable` when absent.\n\n## Real-model smoke test\n\nFor a controlled real-model smoke test, load only the provider, reviewer,\nsandbox, and audit listener:\n\n```bash\nPI_AUTO_REVIEW_ALLOW_UNTRUSTED_DEV=1 \\\nPI_AUTO_REVIEW_SMOKE_AUDIT_PATH=/tmp/pi-auto-review-smoke-audit.jsonl \\\nPI_AUTO_REVIEW_BASELINE_ID=reviewer-check \\\nPI_AUTO_REVIEW_BASELINE_CACHE_STATE=cold \\\nPI_AUTO_REVIEW_BASELINE_RUN_ORDER=1 \\\nPI_AUTO_REVIEW_BASELINE_SAMPLE_SET=reviewer-v1 \\\nPI_AUTO_REVIEW_SMOKE_TRIGGER=baseline-v1 \\\npi --no-extensions --no-skills --no-prompt-templates --no-context-files \\\n  --no-builtin-tools --no-session --print \\\n  --extension /trusted/path/to/provider/extensions/index.ts \\\n  --extension ./packages/pi-auto-review/src/index.ts \\\n  --extension ./packages/pi-sandbox/src/index.ts \\\n  --extension ./scripts/real-model-smoke-audit.ts \\\n  --model provider/reviewer-model \\\n  \"Run the configured synthetic reviewer baseline sample, then reply done.\"\n```\n\nThe listener submits filesystem-write, network, delete, Git-push, and forwarded\nsubagent boundaries. No represented operation is executed; the main-agent\nrequest is aborted after the samples finish. `--no-builtin-tools` ensures Bash\ncomes from `pi-sandbox` rather than Pi's built-in implementation.\n","readmeFilename":"README.md"}