{"_id":"@d3ara1n/pi-access-denied","_rev":"17-5ed130289c75e1e767ea82b66229644a","name":"@d3ara1n/pi-access-denied","dist-tags":{"latest":"1.4.2"},"versions":{"0.1.0":{"name":"@d3ara1n/pi-access-denied","version":"0.1.0","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@0.1.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"70822b85559281d8199bff3a0bedad3cbc84de26","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-0.1.0.tgz","fileCount":6,"integrity":"sha512-Yjm1VlK93CgpRgS+GbQjv27rEju/LWWiMeETq2jkbN2xY4DWZEZwBNwrKBQfdGOtxpdscG9KUklAwyF+ZrZi0g==","signatures":[{"sig":"MEUCIQD4hI/0kMRQIvgd1fq0fhFTFO6B2w6x1Ct7LWRzxtAe5QIgYb4x6ltkOGwvmTRmHzLJUkk1KDLFXHw34/0erPfak6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25067},"main":"src/index.ts","gitHead":"fbfb03ee578a4fb54c0670daa2e04d9418a08e1b","_npmUser":{"name":"d3ara1n","email":"d3ara1n@outlook.com"},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.17.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes with per-session allow-deny memory","directories":{},"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_0.1.0_1782025529715_0.13750350710442794","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@d3ara1n/pi-access-denied","version":"0.2.0","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@0.2.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"43f41ea81a725a4cbe9071bdfdf3005af5aeb8cd","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-0.2.0.tgz","fileCount":6,"integrity":"sha512-e9iqnTnHmhdS6bhdt8csi1lv5VwLc2CdS7dtyN2ftg3KutqjXPQwUsUN4rt3h7Ndlly2BYlO1N0+gQ8kd5abng==","signatures":[{"sig":"MEUCIQC6rDcPNEjsiq7KclPsynFYd4VZ7/R05jWVES86hJ4zMgIgFlFm84k6qC+9Rbf7Fjdj6Bt1wckbP8zVFOpmkEGUVH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25939},"main":"src/index.ts","gitHead":"046acd41224e6a124d5b3dc284691dc55446263c","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes with per-session allow-deny memory","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_0.2.0_1782046872382_0.12564292680231492","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@d3ara1n/pi-access-denied","version":"0.3.0","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@0.3.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"5a02043782362cf4c62958b90f2405dee9d80192","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-0.3.0.tgz","fileCount":7,"integrity":"sha512-/MFpGEx/zaNRfsX6dfov5RWzVQk7jlo+QhCKD0Ktoan/FQ0W4TrnTAokiMp3ojvSE6fqHXjQlrpxE/ZepmdmHA==","signatures":[{"sig":"MEQCIBFrEy/0A/+qQg/p1X3RCQWBXWyU61yPrrBJVqx9xL8hAiBY8yX0u7gP2OwDjQ0ivSKmOt4pbQlyn621hQR0yNlJVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59699},"main":"src/index.ts","type":"module","gitHead":"1aaa5fcfc009fa91ade068ee39748759d4aff733","scripts":{"test":"node --test src/paths.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes with per-session allow-deny memory","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_0.3.0_1782271321339_0.559102964319165","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@d3ara1n/pi-access-denied","version":"0.3.1","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@0.3.1","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"1d5e169d02bbd0d1e22a60dec05ed06cbf713de1","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-0.3.1.tgz","fileCount":7,"integrity":"sha512-3iUUoO8itmrGIfePXu9WzNVcIw25/wd0U3HZ9O4+AGGrL7ZtKUr8+A6pN5d8pusZEBz1XzDZGGvggdzsnZLnrg==","signatures":[{"sig":"MEUCIQCAJxAuWwf+NK7ZnwZb2NvCtCxD2c4EuCtj38rqudMZTgIgGUWDjlGkpNtR/BGw0AH4xbhFrh3CpfC1kfzsJm0BqrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67241},"main":"src/index.ts","type":"module","gitHead":"9945f67a2d6f576bf3b257838a192d3d2e6cf854","scripts":{"test":"node --test src/paths.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes with per-session allow-deny memory","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_0.3.1_1782283417529_0.6102118697148733","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@d3ara1n/pi-access-denied","version":"0.3.2","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@0.3.2","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"fa3e08a060a337fde9cca236b41963c9e3aec317","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-0.3.2.tgz","fileCount":8,"integrity":"sha512-4LpEcFgJfY5U649Z1xt0i5V1/lPDzVTmFcLpRu6lZxl8IrG1Ygp9kDQbUBczRIWk9yVwmSmSNRxGeT/NDkC8Xg==","signatures":[{"sig":"MEYCIQD4RbK4HR+bHAPZVAT+om9S+FwpAnz3trUGl465Fa3a8QIhAJfZnao6KZ4wr4Zy3IJWjHLRaaVFL85e4J1eMwFBGBCZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83603},"main":"src/index.ts","type":"module","gitHead":"e6843a79166c8e42f7c2d335b0635a58243e293a","scripts":{"test":"node --test src/paths.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes with per-session allow-deny memory","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_0.3.2_1782315063452_0.07093053725022602","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@d3ara1n/pi-access-denied","version":"1.0.0","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.0.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"5a4ff1d756ff74269e1a19313ee6f8962d451c4d","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.0.0.tgz","fileCount":10,"integrity":"sha512-8CKRvZsf439HlEfopYjhXwHrGumZAnMNCHL1QjFh/P8rpI01/cHpBLIg6lbJNXCW12DEOhAFtTjcpVlxbOI9og==","signatures":[{"sig":"MEUCIQD6GQl1XQ5PCISGctjYCj/nFSL0Hi4oX32yTFxWMT2nNAIgFdnflPU5HmdnF1cZ5OqNbT4GFX51aXd4ai7jdwkCcJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113972},"main":"src/index.ts","type":"module","gitHead":"5bc3780316548d30c755e8e7c4d898522b658bfc","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.0.0_1782397684442_0.414639624090118","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@d3ara1n/pi-access-denied","version":"1.0.1","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.0.1","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"1008a18efb1ef02cde8c2263b26d598cabe180e4","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.0.1.tgz","fileCount":10,"integrity":"sha512-FhmFafC9qhTJZ38n3NT/1MCMUOcmRhsFYGgaFNRAqBlc2ZvbWKgEhvyC0u5lR+GTLqtjt7hiCqDMHQjsfbcG5w==","signatures":[{"sig":"MEUCIQDTY0WhREahL0/Kh7uVF+Az+j1UuTLtXJEiaFsJH1W01wIgPY+v735LqeTCn+2fj0VLQ/N+7/dgz858ZBpWn4CjjVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114901},"main":"src/index.ts","type":"module","gitHead":"457697ae66f57882fa6c6c805131c76aee5bc8cd","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.0.1_1782449428717_0.7400772232507995","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@d3ara1n/pi-access-denied","version":"1.0.2","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.0.2","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"626430d46a5068aa2a405fe479119029b9fc061c","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.0.2.tgz","fileCount":11,"integrity":"sha512-EZj2qWTwW9g2B5RgpMwQY/jQlKN0yUB5xNiGsP4ybP4Q1ZH02Yc4zvR5bb2BAC0/Tb6vOzJUUFAM7ha86veCQw==","signatures":[{"sig":"MEYCIQDkPMFY5D9lsO53MwCcq8tflOarzxelDWjyHKGVaNAF3QIhALU/KEWQfzsc+GjFZxU9Cdt9J+dKKMM+nd19W6OYIHb0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":697462},"main":"src/index.ts","type":"module","gitHead":"03181be16af994bcfd66db267bcb9ae381e3d7b2","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.13.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.17.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.0.2_1782657353360_0.2895172169278062","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@d3ara1n/pi-access-denied","version":"1.0.3","keywords":["pi-package","pi"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.0.3","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"19344a492fcc1b33fedbf821b0609a1fbda23027","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.0.3.tgz","fileCount":11,"integrity":"sha512-WnMq9MJNkBGNaQP0h96LgyB1kBDshnM/5ppJr/zLDpH/n1Vt3EdD41pr2cSyTDPSJ12P2fzj9izU/8QnL4mdGA==","signatures":[{"sig":"MEYCIQCj3vj7WInecpnAVFu3m4FQuFK/2pExkEUazczTofM4dAIhAN/INTXfcm/0q3l/y9Y23IXRkZcsh/rgd5luXvku3efB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":700324},"main":"src/index.ts","type":"module","gitHead":"043226e1c24d3c9498d6632657b71d7189a4d34c","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.16.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.0.3_1783661922153_0.9916390750639417","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@d3ara1n/pi-access-denied","version":"1.1.0","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.1.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"c7e98eca5b14e33d168f76cc64edf1ea03c55c24","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.1.0.tgz","fileCount":11,"integrity":"sha512-XyIrSbQxS17cfS7dV1hHLPKmzPO3i3Vc6Q6Qo+mxmE4mAnckfzSVtNSaSa9JidCT9bjhKMvrFKbf3AfScyFMbA==","signatures":[{"sig":"MEQCIHseSQ82CKbda9sQNLnf/EApWAsx0Vv9JUa7df5j0QT5AiB7QlIh3cRZi9KeU4k3ZKSAvRTYM1WQavUn0sBxm6g6/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":700134},"main":"src/index.ts","type":"module","gitHead":"d2abd6057fd35ca5680122352e99bfb6f87cf623","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.16.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.1.0_1783716889698_0.20940597949548856","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@d3ara1n/pi-access-denied","version":"1.1.1","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.1.1","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"c6368baeb9624a9f97f3f704d8acb9b79f56bc61","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.1.1.tgz","fileCount":12,"integrity":"sha512-pA/mRz1prYUJhOeyL1zcitLJxvCbRcqQGyAEkekdTbu+0R4OQxi1uZxOWEjl4kfoqG1KXLKgWeGoQzajh+c2XQ==","signatures":[{"sig":"MEQCIEgguG9LhuCt+LxpJh89M8fbbhrVMmUQgmjDVJv96XzrAiBlo23j740VP3fdY+8Qz+yhCeJUiLNmHjMuPUf1VXBDpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":708120},"main":"src/index.ts","type":"module","gitHead":"e3a0c08862ae691ba4e90d2de939dc6bd6fb3b14","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.16.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.1.1_1783873581984_0.1318371127797302","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@d3ara1n/pi-access-denied","version":"1.2.0","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.2.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"1963024b8c9a4b69c269d3adb1c6768bbefe890c","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.2.0.tgz","fileCount":14,"integrity":"sha512-6uMMkBOo4uFoC5tlg+RWE0jPxl70w9gNebvu7KT2v2th16GHNjz5NzlcyW12A+EbhSpNo+n2raBKX4vMNyfuWg==","signatures":[{"sig":"MEQCIB9QICGVMBxpwl75wH04a7MTDnF8mLpU/R0nujITpak2AiBNYuhnnJfUR4WMCwIds5aMlTDelhktsd1iRlwGBIhmvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":722850},"main":"src/index.ts","type":"module","gitHead":"bf842a18bb61ef40c7d1bf9b9f544dbbcb93fe07","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.16.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.18.0","dependencies":{"unbash":"^4.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.2.0_1785910924011_0.8041129081026317","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@d3ara1n/pi-access-denied","version":"1.3.0","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.3.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"2ffcdd1e9ed540acfe1ce262fb88ea7634a4bed3","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.3.0.tgz","fileCount":14,"integrity":"sha512-wlPk8xuL9hVr43enOqnpeuRw0zpbe8gmy2xs8/TK9almhgofJAg5SysyjHHejFVHBX8L4nNqSBkFtpnOkDYORA==","signatures":[{"sig":"MEUCIQCeAQJrliihlmkOtIqQzvTUAIm2Bp1XTmD81RQxOOi7HgIgAZMn3oztCN5fk/+310MeoaXBsZJ3FLb1gBC3M+H4U8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":728378},"main":"src/index.ts","type":"module","gitHead":"ab2a6bb30f43803458133f22af6801ae4cb271b4","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.16.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.18.0","dependencies":{"unbash":"^4.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.3.0_1786495486187_0.6643233178376569","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@d3ara1n/pi-access-denied","version":"1.3.1","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.3.1","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"04cd040cb544ac170ee2392d8746669d1671adee","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.3.1.tgz","fileCount":14,"integrity":"sha512-jVddmTvOvMssT83tuL5lWcinkF+hOPjgkY3TiRVEs9iKGkv+K5GpiLKbFXoX+3uegZk4n3kHSz3oSkOLjXpfPg==","signatures":[{"sig":"MEQCIDQlL6qfSwC9JVEval5kiW6MH03NPNYgRUyyt2MWQ2anAiBDkp2qiNEBMvtsAOLt22bNOBEce1V6mdCymppjWyvUnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":728218},"main":"src/index.ts","type":"module","gitHead":"72c821c34394f803917008a4c80354c7b90b578a","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.17.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.19.0","dependencies":{"unbash":"^4.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.3.1_1786705844901_0.3405453494958677","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@d3ara1n/pi-access-denied","version":"1.4.0","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.4.0","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"8696cd8aa23eda04d5f9bd11ddb3cb507dd87858","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.4.0.tgz","fileCount":14,"integrity":"sha512-O2+B3hYHKk2garUnMx7YRiSse6I32zdyOMm2EajAg3xK3w4Sw86qEd+4badgHjlxBwtL53cNVoZzRDshxxi6Wg==","signatures":[{"sig":"MEUCIHibLF7IFCHjBXik4VWqyPGvlqZ8T9638TG2AKC9jx+LAiEApZPNlfi1YvhzDBxezXgrNmhcuGlALjKLuoXWiNK/cw0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":733752},"main":"src/index.ts","type":"module","gitHead":"af387b4a82df7c9910a770a6265c59ab6e9f465d","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.17.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.19.0","dependencies":{"unbash":"^4.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.4.0_1787750233969_0.0768057475856776","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@d3ara1n/pi-access-denied","version":"1.4.1","keywords":["pi-package","pi","pi-extension"],"license":"MIT","_id":"@d3ara1n/pi-access-denied@1.4.1","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"homepage":"https://github.com/d3ara1n/pi-extensions/tree/main/packages/pi-access-denied#readme","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"dist":{"shasum":"67224f83455bde91292e03a632398c8e0e4c0e86","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.4.1.tgz","fileCount":14,"integrity":"sha512-JTcBn+quszKRHKFRgITcFcpQ1LiqheJBBJ/KMgJFnM3Tvsnp/1S5xJsWHntU5WtpclAAdtnZ16j4nQ+A+gdKww==","signatures":[{"sig":"MEYCIQCjOQfN/ZDx3Cw38+0tCDqpHWLV2I1sq35vp/+pBQIwMgIhAM1BjZz7pNYY9Eh8VtaZYsWlKe8zlT9w7Pvd123IMY0u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDmuocSoY/IbfEpjbCisTRtcM9ZbyLzV0p40+1/IfbSngIhAMIJeb+nJ1nZi3WE5IKg03fnfUbBMs27dK89YJHEcmN0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":734642},"main":"src/index.ts","type":"module","gitHead":"9c434399ecc4090b17a417beea601860d9d93eae","scripts":{"test":"node --test src/*.test.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.19.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"_nodeVersion":"24.20.0","dependencies":{"unbash":"^4.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-access-denied_1.4.1_1789971652253_0.24366408749042234","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"pi":{"image":"https://raw.githubusercontent.com/d3ara1n/pi-extensions/main/packages/pi-access-denied/preview.png","extensions":["./src/index.ts"]},"_id":"@d3ara1n/pi-access-denied@1.4.2","bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"dist":{"shasum":"0473afd4891c7faf16e523fe5ec47d05456c5d0d","tarball":"https://registry.npmjs.org/@d3ara1n/pi-access-denied/-/pi-access-denied-1.4.2.tgz","fileCount":16,"integrity":"sha512-xbv89I39hEVKoeXquwrBW0l7GoDRl6sVvjfhyQpk4B+Iz2pdw3Q3Yalm+ZDTJkAR3GavlS53yVIj3Hh82I3fxQ==","signatures":[{"sig":"MEUCIFiJw2v0+evsJMI/z+Ccp7FTTxAS4rM76OHvjLAi69N2AiEAqy/kD2lKNu7iAw0Veouc4YejIeUy7X9s5Vmi+pHDHiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCb/aaB/PRbsEX7Pq7bwnDDCFt+qg8RREynFZr1nvX85wIhAPG9Lybka98WMmN/E8Hnjhj6luuOsagBziiWMS2tMRR4"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@d3ara1n%2fpi-access-denied@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":753771},"main":"src/index.ts","name":"@d3ara1n/pi-access-denied","type":"module","gitHead":"952c805b3e18231d155987d7c7d03ec0017b809b","license":"MIT","scripts":{"test":"node --test src/*.test.ts"},"version":"1.4.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c3064fba-3fa5-4bbc-a79d-9d793dc65525"}},"homepage":"https://github.com/d3ara1n/pi-extensions/tree/main/packages/pi-access-denied#readme","keywords":["pi-package","pi","pi-extension"],"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"_npmVersion":"11.19.0","description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","directories":{},"maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"_nodeVersion":"24.21.0","dependencies":{"unbash":"^4.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-access-denied_1.4.2_1790877859811_0.49434116223848745"}}},"time":{"created":"2026-06-21T07:05:29.567Z","modified":"2026-10-01T18:04:20.229Z","0.1.0":"2026-06-21T07:05:29.836Z","0.2.0":"2026-06-21T13:01:12.580Z","0.3.0":"2026-06-24T03:22:01.479Z","0.3.1":"2026-06-24T06:43:37.671Z","0.3.2":"2026-06-24T15:31:03.597Z","1.0.0":"2026-06-25T14:28:04.637Z","1.0.1":"2026-06-26T04:50:28.885Z","1.0.2":"2026-06-28T14:35:53.562Z","1.0.3":"2026-07-10T05:38:42.336Z","1.1.0":"2026-07-10T20:54:49.962Z","1.1.1":"2026-07-12T16:26:22.205Z","1.2.0":"2026-08-05T06:22:04.196Z","1.3.0":"2026-08-12T00:44:46.388Z","1.3.1":"2026-08-14T11:10:45.116Z","1.4.0":"2026-08-26T13:17:14.129Z","1.4.1":"2026-09-21T06:20:52.398Z","1.4.2":"2026-10-01T18:04:19.933Z"},"bugs":{"url":"https://github.com/d3ara1n/pi-extensions/issues"},"license":"MIT","homepage":"https://github.com/d3ara1n/pi-extensions/tree/main/packages/pi-access-denied#readme","keywords":["pi-package","pi","pi-extension"],"repository":{"url":"git+https://github.com/d3ara1n/pi-extensions.git","type":"git","directory":"packages/pi-access-denied"},"description":"Sandbox write/edit/bash to the project dir — prompt / deny / allow modes, configurable deny-with-redirect rules, per-session allow-deny memory","maintainers":[{"name":"d3ara1n","email":"d3ara1n@outlook.com"}],"readme":"# pi-access-denied\n\n[![npm version](https://img.shields.io/npm/v/@d3ara1n/pi-access-denied)](https://www.npmjs.com/package/@d3ara1n/pi-access-denied) [![npm downloads](https://img.shields.io/npm/dm/@d3ara1n/pi-access-denied)](https://www.npmjs.com/package/@d3ara1n/pi-access-denied) [![license](https://img.shields.io/npm/l/@d3ara1n/pi-access-denied)](https://www.npmjs.com/package/@d3ara1n/pi-access-denied)\n\nKeep pi focused on your project. Review detected access to outside paths, remember locations you trust, and give the agent a reason when you block a path.\n\nFor example, you can catch a broad `find /`, allow a shared notes folder, or tell the agent where an old data directory moved. The extension checks `write`, `edit`, and common path expressions in `bash` commands.\n\nBash checks are best-effort. This is a behavior guard, not a security sandbox; use OS or container isolation when you need enforced filesystem boundaries.\n\n## Installation\n\n```bash\npi install npm:@d3ara1n/pi-access-denied\n```\n\nOr add to `~/.pi/agent/settings.json`:\n\n```jsonc\n{\n  \"extensions\": [\n    \"/absolute/path/to/pi-extensions/packages/pi-access-denied\"\n  ]\n}\n```\n\nRun `/reload` or restart pi after installation.\n\n## Dependencies\n\nNone.\n\n## Choose how outside paths are handled\n\nThe default mode is `prompt`. Your project directory and temporary locations are allowed by default; other detected paths need your decision.\n\n| Mode | When a detected path has no matching rule |\n|------|------------------------------------------|\n| `prompt` | Ask you before the tool call runs |\n| `deny` | Block the tool call without asking |\n| `allow` | Let the tool call run without asking |\n\nExplicit deny rules still apply in every mode, including `allow`.\n\n```text\n/access-denied prompt        # Ask about outside paths\n/access-denied deny          # Block outside paths\n/access-denied allow         # Allow outside paths without asking\n/access-denied:status        # Show the current mode and path rules\n/access-denied:reset         # Forget decisions remembered for this session\n```\n\n### Review a request\n\nThe terminal panel shows each path that needs a decision and the command that uses it. Choose an action for each path:\n\n| Action | Effect |\n|--------|--------|\n| **Allow** | Approve this call; the default selection |\n| **Always allow** | Allow this path and everything beneath it for this session |\n| **Deny** | Block this call |\n| **Always deny** | Block this path and everything beneath it for this session |\n\n**Denying any path blocks the entire tool call.** The extension does not run the approved pieces of a compound bash command separately. Any “always” choices you submitted are still remembered.\n\nWhen you deny a request, you can add a reason for the agent, such as “Use the export in the project instead.” The same reason applies to all denied paths in that request.\n\nUse `↑` / `↓` to select a path, `←` / `→` or `Tab` to change its action, and `Enter` to submit. `Esc` cancels the request; in the reason field, it returns to the path list.\n\nRemembered decisions clear on restart, `/reload`, `/new`, or `/resume`. Add lasting rules to your settings.\n\n## Save path rules\n\nAdd an `accessDenied` block to `~/.pi/agent/settings.json`, or to `.pi/settings.json` for one project:\n\n```json\n{\n  \"accessDenied\": {\n    \"mode\": \"prompt\",\n    \"allowedPaths\": [\"~/Documents/notes\"],\n    \"deniedPaths\": [\n      {\n        \"paths\": [\"~/.config/old-app/data\"],\n        \"reason\": \"Data moved to ~/Documents/exports; use that folder instead\"\n      },\n      { \"paths\": [\"/old/cache\"] }\n    ],\n    \"tools\": [\"write\", \"edit\", \"bash\"]\n  }\n}\n```\n\n- `allowedPaths` lets you work in additional locations without repeated prompts.\n- `deniedPaths` blocks detected access to listed locations. An optional `reason` tells the agent what to do instead.\n- `tools` selects which supported tools to check. The default is `write`, `edit`, and `bash`.\n- `mode` sets the starting mode. The default is `prompt`.\n\nA project's `accessDenied` block replaces the global block as a whole. Omitted fields use defaults, so include any global rules you also want in that project. Reload pi after changing settings.\n\n### When rules overlap\n\nThe rule for the most specific folder wins. For example, allowing `/data` and denying `/data/private` lets the agent use `/data/reports` while blocking `/data/private`.\n\nThis applies equally to default paths, settings, and remembered decisions. A more specific allow can override a broader deny. If allow and deny name the same path, deny wins.\n\n### Locations allowed by default\n\nThe extension allows your project directory, the system temporary directory, `/tmp`, and common process I/O paths such as `/dev/null`, `/dev/stdout`, and `/dev/fd/`. It also recognizes macOS's `/private/tmp` and Windows device names such as `NUL`.\n\nYour home directory, `/etc`, `/var`, and `/usr` are not generally allowed. Add any locations you need to `allowedPaths`. You can also override a default allow with a more specific deny rule.\n\n## What bash checks cover\n\nCommands such as `find /`, `cat /etc/config`, `rm ~/old-cache`, and `cat ../notes.txt` are checked. This includes read-only commands: the check concerns the location, not whether a command writes data.\n\nThe extension recognizes absolute paths, `~` and `$HOME` prefixes, and parent-directory references such as `../file` or `a/../b`. It also checks commands nested inside substitutions, pipelines, and shell groups. Ordinary relative arguments such as `src/app.ts` and `README.md` are generally left alone.\n\nReferences to another user's home, such as `~otheruser`, are kept in that form. You can use the same form in `allowedPaths` or `deniedPaths`.\n\nQuoted arguments are treated as data, so a path mentioned in a commit message does not trigger a prompt. `cd` is an exception: its argument is a directory, so `cd \"shared files\"` is checked too. Substitutions inside quotes still have their commands checked, as in `echo \"$(cat /etc/config)\"`.\n\n### Commands that change directory\n\nYou can use `cd` before another command. Recognized relative paths are resolved from the directory that command would use, while your project's allowed boundary stays the same.\n\nFor an initial directory of `/project`:\n\n| Command | Location checked for `../bbb` |\n|---------|------------------------------|\n| `cd aaa && cat ../bbb` | `/project/bbb` |\n| `cd aaa; cat ../bbb` | `/project/bbb` if cd succeeds; `/bbb` if it fails |\n| `cd aaa \\|\\| cat ../bbb` | `/bbb`, because cat runs only if cd fails |\n| `cd aaa & cat ../bbb` | `/bbb`, because the background cd does not change cat's directory |\n\n**Use `&&` when the next command should run only after a successful `cd`.** A semicolon or newline still runs the next command if `cd` fails, so both possible paths may need authorization. The extension does not execute `cd` or check that its destination exists before making this decision.\n\nConsecutive directory changes, quoted paths, `cd --`, `cd -L`, home-directory forms, and `cd -` are supported. `cd -` needs a previous directory established within the same call. Directory changes inside parentheses, substitutions, pipelines, or background commands stay local to those commands; `{ ...; }` groups share their shell's directory.\n\n### Limits to keep in mind\n\nSome paths cannot be determined from the command text:\n\n- **Dynamic paths:** general variables such as `$FILE` are skipped. After `cd \"$DEST\"` or `cd \"$(getdir)\"`, relative paths are skipped until a known directory is established; absolute paths remain checked.\n- **Quoted file arguments:** `cat '/etc/config'` is skipped, even though the unquoted form is checked. The quoted-path exception applies to `cd` destinations.\n- **Scripts and shell setup:** evaluated code, function calls, directory-stack commands, repeated directory changes in loops, aliases, and shell options can limit what is detected. Symlinks are not resolved.\n\nSimple assignments to `HOME`, `PWD`, and `OLDPWD` are followed for directory changes. A nonempty `CDPATH` makes directory lookup uncertain; use an explicit `./`, `../`, or absolute destination when you want a predictable path check.\n\nThese limits favor fewer interruptions during ordinary work. Approval is not a guarantee that every path a script might access has been checked.\n\n## Windows\n\nPi uses Git Bash on Windows. The extension recognizes both native drive paths (`C:\\Users\\me`) and Git Bash drive paths (`/c/Users/me`), and treats `/tmp` as temporary storage. Paths such as `/usr` and `/etc` depend on your Git Bash installation and may still need authorization.\n\n## Editors and non-interactive sessions\n\nIn RPC/ACP hosts, such as an editor connected through pi-acp, requests appear as a separate choice dialog for each path. The same four actions are available. Custom denial reasons are available only in the terminal panel; dismissing a dialog blocks the call.\n\nIn print/JSON mode there is no interactive response, so requests in `prompt` mode are blocked as dismissed. Set `mode` to `deny` to block outside paths without interaction, or `allow` to let them through. Explicit deny rules still apply.\n","readmeFilename":"README.md"}