{"_id":"pi-sandbox","_rev":"30-ad72037922404b18127642929df9ec62","name":"pi-sandbox","dist-tags":{"latest":"0.6.8"},"versions":{"0.1.0":{"name":"pi-sandbox","version":"0.1.0","keywords":["pi-package"],"_id":"pi-sandbox@0.1.0","maintainers":[{"name":"carderne","email":"chris@rdrn.me"}],"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"ac59e67a04204848a312206417af833b3bec4d0c","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.1.0.tgz","fileCount":4,"integrity":"sha512-rnNyo5utMrZXs3fMKwSI8Q0HO+G9HcX4pCm3MislZvjITXotSHBL5vRgAXfbE8j3wAtzqkpkoFNde+2arfioeg==","signatures":[{"sig":"MEUCIQDZqvV6Ygimaxo63UuUUNXxJG+DeiIcN7ovcHn8nmyYQAIgZjbu38awpbZVVP8NObz66iAPE+Ib79IsDa4S/VEQ2a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30484},"type":"module","gitHead":"9572d04bacbfdeb4b1fd05565b07f406e401edda","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit"},"_npmUser":{"name":"carderne","email":"chris@rdrn.me"},"overrides":{"minimatch":">=10.2.1"},"_npmVersion":"11.6.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@anthropic-ai/sandbox-runtime":"^0.0.37"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.1.0_1771514359678_0.996555799161025","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"pi-sandbox","version":"0.1.6","keywords":["pi-package"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.1.6","maintainers":[{"name":"carderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"c0ae52e1054352d2d5d9641da90d05b8ea4ac67b","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.1.6.tgz","fileCount":7,"integrity":"sha512-4Cxuule6cg/f6HVGG9O+WUe629sKKDiPSXUdMhRgE42Y5h4ggf0vuK+qqpctvKJRH3YH0NnCCCx8Ek2extmPrA==","signatures":[{"sig":"MEYCIQCKcBgvCDTUwp41JLwgpmeCr/KqrQCB+a2GvT4kUQ1CeAIhANfPD02GeLyDiwvmDCD04qJJGvszEG7BZgBbvDsXuW47","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33019},"type":"module","gitHead":"26462945478b7410233008c627676f5468e4e21c","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.8.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.13.1","dependencies":{"@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.1.6_1771515803072_0.7923742988752296","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"pi-sandbox","version":"0.1.7","keywords":["pi-package"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.1.7","maintainers":[{"name":"carderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"bb138b3423f781fabdc87ed8bbe2168118549f3d","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.1.7.tgz","fileCount":7,"integrity":"sha512-SaROtWfeX1kewq/jvEaoEmFRiCDzSY4NINEyk0u0mLmdOZ8BZkQF8FNeDEDooTcgkSo5pdLGN6YqgQrWDB43Yg==","signatures":[{"sig":"MEYCIQCoNjInomoRdcG/kDE5z1VnSRrLV5Z/nMoZQBTeVwBJVQIhAJ8os02SlB77r1J0E5g3Fk48LgnGlrxiIrGiJzM4kWz1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33162},"type":"module","gitHead":"990b43c7946828cc9893be9ccee8bfcddd4d603f","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.8.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.13.1","dependencies":{"@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.1.7_1771516607571_0.4958344204621985","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"pi-sandbox","version":"0.1.8","keywords":["pi-package"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.1.8","maintainers":[{"name":"carderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"54c30fa4944968e97177b77b79c59d710cfff26a","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.1.8.tgz","fileCount":9,"integrity":"sha512-gVGH+CXqtlb1rKPioOmpMfK/rz9GvA7vOPDVddwc3VL1ljEyAEwLXHhAAZldfxYZUUIiEcJWagA2WBWOdDr7XA==","signatures":[{"sig":"MEUCIQD4yCOP0uMuMaIb9WYE+pd2bQBt9YoESb4sE1Wm1z/hzwIgeeGR8nuQen2B/eq61S81RYBpFMFIMSOJAqIzUBqhuIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1809659},"type":"module","gitHead":"881ac60e0cc4f8c4edc23b6d3bb780f5512dd595","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.8.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.13.1","dependencies":{"@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.1.8_1772448648208_0.21627606920900644","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"pi-sandbox","version":"0.1.9","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.1.9","maintainers":[{"name":"carderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"8441dca478bdb4672f354c9ed3ee460d61c832d9","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.1.9.tgz","fileCount":9,"integrity":"sha512-5ikgJ0+wBzM9i0HDmoj+bu/9W5wXUm10eWlsaZm1oL1u1ga/dKZg4ApBOuzJs+jkh0kk/jzkeYhgQxxpdcnpwA==","signatures":[{"sig":"MEQCICYF4ifzFhdbapz9KhRXIDpn3empYATMiB8jv1mYKrFIAiByKgI5B68ljwb6zWbZog8PW6CLhgkLq5Gl9jVfxeDfWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1809679},"type":"module","gitHead":"55e8a180946b5049181e25ab19d1d3fddb3c8662","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.8.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.13.1","dependencies":{"@anthropic-ai/sandbox-runtime":"^0.0.37"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.1.9_1772448809590_0.5965120039350462","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"pi-sandbox","version":"0.2.0","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.2.0","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"35114df956de6ef44efc64385639b25cf233cdb3","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.2.0.tgz","fileCount":9,"integrity":"sha512-pSBkQObR9YH3IkksAkH0cAC4/q9mOVy+yridN1CQ4G+iHfKYcipJ4nqJOh8MGZDQtNV7G3O3gRBxjK6Z0EN2aw==","signatures":[{"sig":"MEUCICWq69PRKlXEi1IXtyUFkZ5Z3KnZoLDUkNjy7Ozsb1YIAiEAokbuEzI5t7d5oDlI5/onDrVy9x9FNBdQM11zS2s+g+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1811174},"type":"module","gitHead":"9f8cd93f8f08295135d19130cf0b89cdccca1be9","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.9.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.40"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.2.0_1772975577533_0.018814681570113567","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"pi-sandbox","version":"0.2.1","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.2.1","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"686c3551b441ef09045848d5e1eac4ffc29cbefc","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.2.1.tgz","fileCount":9,"integrity":"sha512-zMGQAuzum1e5l/NHb9F8Ard5G9oleWy9oqBcYtAIDvKi81WgQZIynXHaK/cCTuoTOwuz/5NxyJhjJU4GREMb6g==","signatures":[{"sig":"MEUCICKSA7OuN9MV9JejkziD2yrE1gcTKgV+cYSAoaNlmu8dAiEA4h/uplftJw0Uifki+iIIi1FpMpd0bmyzRITfx/7GOOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1811198},"type":"module","gitHead":"2dca357548a67b1a23b8dd02c99b6598fd8a5a98","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.9.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.41"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.2.1_1772980975288_0.8647356878811465","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"pi-sandbox","version":"0.2.4","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.2.4","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"f57f37018d622da0abb59bd6bd655b91696f5c24","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.2.4.tgz","fileCount":9,"integrity":"sha512-Eb26qas4ykk7ucP/n3OgavhLToy3403rnNswz2JeDHv56cu2YWUqdDB0yQ1lrZsuLxvr/A114DlV1m4TBoaP4w==","signatures":[{"sig":"MEQCIFTGZsts9vnUSYHiiG3CDX1Mik1FzrIOuRk7buiCllLXAiBSej65Sx3uk8T3439IdA57+is4TqgDgi1E5itzeHhlDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1814210},"type":"module","gitHead":"24b5e943f5b00a301e390eed8a172db9c2e071f3","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.9.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.42"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.2.4_1773413438636_0.8000182183335438","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"pi-sandbox","version":"0.2.6","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.2.6","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"49610006523e204cec91ca1d78b2f70afea09fa7","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.2.6.tgz","fileCount":10,"integrity":"sha512-UfkmqBzcTL941hFEyQvKP6u2rIKAruhOv0Hk0oNQCSl1lK4VcMt5oWQW6bAGqcMkl64i0aFORWBvFhxZIEj3OA==","signatures":[{"sig":"MEUCIQDC8/e+zGH8xYUn5h1x8KSkxxfLw91ZNijvN/+h49zL3gIgcBAvdnONq1TtVAt1LLclRKuPm88HCAEKTM5cyIKudZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1818451},"type":"module","gitHead":"884e500c8ee02a672c065f9afdf6e8b393d48939","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.9.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.43"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"*"},"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.2.6_1773739698340_0.8231814729794436","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"pi-sandbox","version":"0.3.0","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.3.0","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a4d2b8e204c7a3d3a82c6a65231630db27ed1720","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.3.0.tgz","fileCount":10,"integrity":"sha512-KQhrGOwiNdkjIfzeZaVkry3s1xBbCNWX9CK/NA6Bpu/W7H4JOeAlVJkGH9caMAYd81impo2phfomoiUA3/vRVQ==","signatures":[{"sig":"MEYCIQCgdDEmvVulWUsZh4L5zBr/9EiGeIkZsw+2GOS4hG47FgIhAOSXa/mYsVhue8voSWN7lqLWH+EH8HQRXP1MqLpJ0ZHa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1818611},"type":"module","gitHead":"0be0426f05dcb48ddc469d59c63f7aa3a7b1c341","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.9.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.43"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.3.0_1774010732674_0.5887764170068941","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"pi-sandbox","version":"0.3.1","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.3.1","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"ed269a8cf760af75194e3fd00ec56168fe7164f8","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.3.1.tgz","fileCount":10,"integrity":"sha512-URtKNCErW57YTyWQHYdNiSCfQsOMGA3B3vDvLso6cl8PqbSR0IFzFN7pXIMoNCNVr8C1wfNCm8S1u7hjMOgzag==","signatures":[{"sig":"MEYCIQC/Bi/ddcW5zpGl65G7btsKCw/WNwx0c8pyuNw7MRvYOgIhAJEpxBZ+jQC8MdPqin0eYg72adsSpF8ZAfcHI5hFzVNL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1818519},"type":"module","gitHead":"ea0064359c39fe36dd228db2d3275362d7487ce8","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.11.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@carderne/sandbox-runtime":"^0.0.43"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.3.1_1777026445674_0.3052797258786346","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"pi-sandbox","version":"0.3.2","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.3.2","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"c141ee96f0f3d5392839ddfd222bd5fa64a136a0","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.3.2.tgz","fileCount":10,"integrity":"sha512-TRD/+ZGbt5kiu3OjmIHKOPpFQNxvlAH1PJdNWC0xc3AzoMxHOP29vSkdgSYxtM6MLXDp0f6QgJn5bQF/nDQZtA==","signatures":[{"sig":"MEYCIQDqr7FMdZ61TCE1PMPRTJ+tavCFqN2xu/rkhGLjrwHV1gIhAPNPG2wlh1bbYlBQps6oatDG2hOHJzW/nbh45ANgkV4O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1818567},"type":"module","gitHead":"ed2fee4ffeb79390b29518b562e159f856c575bd","scripts":{"fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.11.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@carderne/sandbox-runtime":"^0.0.43"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.33.0","oxlint":"^1.48.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.3.2_1777389483992_0.4074051707135644","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"pi-sandbox","version":"0.4.0","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.4.0","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"e128bc02384a33b6546e0d1475bb4d92ce16bee8","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.4.0.tgz","fileCount":11,"integrity":"sha512-1somVySX3tFjAXC9J7OVJNHYDrAkuCqOGUVaCAGR+zX77UbFmnGmuEmAEiTYbsO67O5AJIzWNNyEJN1p0XuZdA==","signatures":[{"sig":"MEUCIQC9IZwCSmhGVFZL+AmDk9Fe52qlpwb+NwRO/I8jZctQjQIgK1RD9Rjk5JIcJ2Z8fu+5xvF568ru9qftGQ574Z1gYlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1826109},"type":"module","gitHead":"f74de85ec0f49eca96bbc39a8e4ae87682747c2e","scripts":{"all":"npm run fmt && npm run lint && npm run check","fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.11.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@carderne/sandbox-runtime":"^0.0.43"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.61.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.4.0_1777456166500_0.4892637846953287","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"pi-sandbox","version":"0.4.1","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.4.1","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"115d6cdd9c4ed3460521c8210bba8167cf27c30f","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.4.1.tgz","fileCount":11,"integrity":"sha512-y5wLJpDYG4PEMFm0W2edagmN1hIVlWYrUR3Bl2HUgRyFi+QSsvpNK12+xVMCgAoSEcE6j0866xBWxcVs7Irhrg==","signatures":[{"sig":"MEUCIQCJbYzFQ5FtDQ0LxP85fyaMc/sV8NIr9fuggedCjawDuQIgcY4m9EVE4FXGQAOfxJK8rFu7ekQ2vCVJqaCktEG6kPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1826231},"type":"module","gitHead":"cd1e177fa28f6df967ee2502b1e3b99e5eb459d6","scripts":{"all":"npm run fmt && npm run lint && npm run check","fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.11.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@carderne/sandbox-runtime":"^0.0.49"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.71.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.71.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.4.1_1777815740855_0.9526984672990193","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"pi-sandbox","version":"0.4.2","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.4.2","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"68a4803cc7e0b2dff99f10213e5664c27bb3d3eb","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.4.2.tgz","fileCount":11,"integrity":"sha512-waIr4Cna3/5J7bt5q16LO5PyMT3LM9ltXLm6WZHGN+VuU+QfB+Z4Ynxn5lJYqPOOQ7JUcaWYbMqbp3+zli+Kbw==","signatures":[{"sig":"MEYCIQCbEKhzHRNOxisZaHtPwNqivsjTUPbssL2uxrgbli6BzQIhAK2JyAli/6+osmHKwrjoG3atSA0Y8mC6WtxDG3AAhnYR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1827011},"type":"module","gitHead":"e6122fea65259d484c6d90497963d8f81bbdce3e","scripts":{"all":"npm run fmt && npm run lint && npm run check","fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.11.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@carderne/sandbox-runtime":"^0.0.49"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.71.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.71.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.4.2_1777822950062_0.17506819909059845","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"pi-sandbox","version":"0.4.3","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.4.3","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"4f1a699254d06c71113ef5091fb93309d1c09e87","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.4.3.tgz","fileCount":11,"integrity":"sha512-sIIovvYwYm2/34HUKW9AUnnSKOFt8mn/m4uiGdgPY4/82iFp/nEBfkdEb2YQycvjjzeCmzlawFa9TEhq9lCtDg==","signatures":[{"sig":"MEUCIDXEaJBBV41hlEiYILfaxKZZnu/1dEHSKp9y0HjBk0bTAiEAqheL4/I2OeneRL5ltOyhK+b80aHuaFEjRkfrhZUD5iU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1827290},"type":"module","gitHead":"27198585452c4e4fca06a84ab2696bf2f757000f","scripts":{"all":"npm run fmt && npm run lint && npm run check","fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.11.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@carderne/sandbox-runtime":"^0.0.49"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@mariozechner/pi-coding-agent":"^0.71.0"},"peerDependencies":{"@mariozechner/pi-coding-agent":"^0.71.0"},"peerDependenciesMeta":{"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.4.3_1778141666026_0.6954273701627585","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"pi-sandbox","version":"0.4.4","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.4.4","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a4ac07b2d1677929c950e1a19ec4edbcadaa4a3e","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.4.4.tgz","fileCount":11,"integrity":"sha512-dQDip5dOK1E0I6GewLSE3j8qkGNbnBczekh/R10NGRL7H2x8GRtLUbGpFd0XOAD748KMwE+AnbhaySavPAtGCw==","signatures":[{"sig":"MEUCICEKzgXECX237bSa48fVVdkehUOkWC+ugwPAQkEP6CClAiEA9rA2nfFdo0tttS71O0g7U5lEvDHg78wNYR/AopthrKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1826960},"type":"module","gitHead":"4c994c90ef58c671af202e03110d4bee4642fc2d","scripts":{"all":"npm run fmt && npm run lint && npm run check","fmt":"oxfmt index.ts","lint":"oxlint index.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts","ci:lint":"npm run lint","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.49"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"^0.74.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.4.4_1784153006373_0.012855756619880365","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"pi-sandbox","version":"0.5.0","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.5.0","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"3e15793b44bb4e23ecb1f8cbbb857f248f264d08","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.5.0.tgz","fileCount":19,"integrity":"sha512-FvNdYSOy1VDMEsEqS3NvZZ3JQFqCg1I26BdaMFWauYluRjpXrYDZQGSA57jrVmUfgeVLiIehJVayB5OmLPwUHw==","signatures":[{"sig":"MEQCIHpG70wxfk7UZR/nWECUzN/3nM6Kid+vG51BzWkrS2FvAiByGyFRxQN4y6xyah5dAAckGOZMIlYNyJ27QVVRc7UuaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1822318},"type":"module","gitHead":"cb28987360e7e458c60c945ff66e90ef93d26b96","scripts":{"all":"npm run fmt && npm run lint && npm run check && npm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"npm run lint","ci:test":"npm test","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.66"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.5.0_1784290322194_0.12267339777244257","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"pi-sandbox","version":"0.5.1","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.5.1","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"86bf9fea618ae4f468a8df4324e3d981a9e1d746","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.5.1.tgz","fileCount":19,"integrity":"sha512-rP/LHjIbe/u/k66UnUEZuvwcufWld/ByJKXtTb5NBzBTSpIrSBiOpM+PlLi9w1jF4+mQp5oE4gl5/8zqL8nedA==","signatures":[{"sig":"MEYCIQCzUnPXwwwspvdqeBo0K8YBtk9ah9OK6IclSX770WNxBwIhALMqZGM8wSpvYRx5+UaA0e6OeEBcq9eBJsA8wMa2VBkb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1822972},"type":"module","gitHead":"3323223af5f893a36fef5bd47d7f2377552fdd98","scripts":{"all":"npm run fmt && npm run lint && npm run check && npm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"npm run lint","ci:test":"npm test","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.67"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.5.1_1784712779359_0.2858652677317308","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"pi-sandbox","version":"0.5.2","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.5.2","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"fc0cf6996ab073fbf7ca94fa4201146976348c39","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.5.2.tgz","fileCount":19,"integrity":"sha512-ZjjSqAiJe8W9CpQ5EKxahMzDIb+BpwzVyNDib/r6cxvVSudndaFqJwLqUrtrU3nn8dxdcDHlRTozRxqFzXBEsQ==","signatures":[{"sig":"MEUCIF0a7QM0SkYuUZRo6KxfzClBmJFUIS/OOGgUX6x2+qHlAiEAjrMq94ij9W4i0rmoFp7EbeQZ46E7ixoOgQrKZbKb2nA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1822972},"type":"module","gitHead":"3199b62780adff51acd5ee7ac8dd8c7398195be5","scripts":{"all":"npm run fmt && npm run lint && npm run check && npm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"npm run lint","ci:test":"npm test","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.68"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.5.2_1784722214161_0.08052041617408423","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"pi-sandbox","version":"0.6.0","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.0","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"478b9c102acc0c7b3afaa1c35c07ef6b6f4fc704","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.0.tgz","fileCount":19,"integrity":"sha512-Gjhd45jzWgJUc1H88oqZbq72syC9bw7dABIunlvwnS0pSYWbRmor2r8EzE+VNhtWTtHDp08SsN2kNmQGG4WD9Q==","signatures":[{"sig":"MEQCIDUMhkqmvsXa8rxxUK/dK++CQiEHHoCUNkz5z5t8ZzlDAiAnwoB3hQmu/B01nAtz+rTYfiDV1NrqSxmK5EWoGnWmwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1828798},"type":"module","gitHead":"c5335b6cc0cccdac3ea98f3467a30f6d26d7182b","scripts":{"all":"npm run fmt && npm run lint && npm run check && npm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"npm run lint","ci:test":"npm test","ci:check":"npm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"overrides":{"lodash-es":">=4.18.1","minimatch":">=10.2.1"},"repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.68"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.0_1784730364814_0.7404074335746722","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"pi-sandbox","version":"0.6.1","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.1","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"89ce2dc021f5d2a5e14f963d4690fbb1ada67210","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.1.tgz","fileCount":20,"integrity":"sha512-R0rTx37K51bhsv86Krtl3iSxpoFrFIs5fZwzFGzhOeERHWVVkl19FzMLJfzT5s1BXNd8ZSeojOqVbtEGjAzvOg==","signatures":[{"sig":"MEQCIBUqwDavzZP/7Wq7/Odcs4YbjGMWnTi6LJfQJM4lxThwAiB8T97DkcaIalK7qpSJY3Bjd5VdyAiw2W2JzDb9UW51ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1828966},"type":"module","_from":"file:pi-sandbox-0.6.1.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/c6f5e595a6b62240c050a7403596ce75/pi-sandbox-0.6.1.tgz","_integrity":"sha512-R0rTx37K51bhsv86Krtl3iSxpoFrFIs5fZwzFGzhOeERHWVVkl19FzMLJfzT5s1BXNd8ZSeojOqVbtEGjAzvOg==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.69"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.1_1784797671872_0.3542460381689392","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"pi-sandbox","version":"0.6.2","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.2","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a0c6cc578cc60e5af44ba9d1e44733e43a3482f3","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.2.tgz","fileCount":20,"integrity":"sha512-5CCpI7AVQiGFJK9Vg1xu+hcP/mfe1C2a7WrhUgLIMVwOLal373JnK9jgp9ZUmePC8xmD/V2q0eVh+nxWJeNSKA==","signatures":[{"sig":"MEUCIQCLbbnzjxesoctrIGbgYoeiWZvwCpEiKFwtFmy6eF2N6wIgZqk+0yG3RXR7Ul1CMsmMoGGIEQ2VTpMU03j7VTd7Atg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1835023},"type":"module","_from":"file:pi-sandbox-0.6.2.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/928f8168aa2b1e4f6bccd06ebba525c9/pi-sandbox-0.6.2.tgz","_integrity":"sha512-5CCpI7AVQiGFJK9Vg1xu+hcP/mfe1C2a7WrhUgLIMVwOLal373JnK9jgp9ZUmePC8xmD/V2q0eVh+nxWJeNSKA==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.69"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.2_1785503874616_0.2126229086805107","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"pi-sandbox","version":"0.6.3","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.3","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"bad1b5147ecb3d545dcea731d1d11a97e7348f19","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.3.tgz","fileCount":22,"integrity":"sha512-mIRGR6ZyfYP9p4H/KLrwzMe9d9ENY3xzAx0xvhCJB1gMBsvqwsKTlazTld9ThC+LbLLG6O7LiwXfeKk3pjLW6g==","signatures":[{"sig":"MEYCIQDw9FkW8L34Jd/4wxYFBl8zRH0zP+KYtZHFSYntz4hylQIhAI2IBd6b73SdvgZyEAYbJC92UX2KxXIdNQ0owahY9FGf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1843757},"type":"module","_from":"file:pi-sandbox-0.6.3.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/38ffacf323306be91eb84ffad77970bb/pi-sandbox-0.6.3.tgz","_integrity":"sha512-mIRGR6ZyfYP9p4H/KLrwzMe9d9ENY3xzAx0xvhCJB1gMBsvqwsKTlazTld9ThC+LbLLG6O7LiwXfeKk3pjLW6g==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.69"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.3_1786441588967_0.6120986599267899","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"pi-sandbox","version":"0.6.4","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.4","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"854a057a58c369e5c92509122e557b739797efb9","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.4.tgz","fileCount":22,"integrity":"sha512-0kn++HYKAxa6YSaoCZ8Igm2IDp9CX1VSW3k+6Y4xjVDBVjp4bJriMTnDbFRlXpF7VmkBh1h8aOMRTTbN+NDFbw==","signatures":[{"sig":"MEUCICYrI76yEiq5v1CdOIbVTXMU6T8E5C/ySS2uSDwQeUbgAiEA/QQAesbARh2kCoZq0H/9nx0jVZN7poFOYF98pV8sO8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1843757},"type":"module","_from":"file:pi-sandbox-0.6.4.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/855e9857ef4ec27c4e7280e0cca29bdf/pi-sandbox-0.6.4.tgz","_integrity":"sha512-0kn++HYKAxa6YSaoCZ8Igm2IDp9CX1VSW3k+6Y4xjVDBVjp4bJriMTnDbFRlXpF7VmkBh1h8aOMRTTbN+NDFbw==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.16.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.70"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.4_1786615257431_0.23930476104829834","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"pi-sandbox","version":"0.6.5","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.5","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"fb52cf2b5a4293e8ebd94090d157ccb0f14b49f8","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.5.tgz","fileCount":22,"integrity":"sha512-SMr+vIRTp0qixpz/UZIALnqn8C6UFQBAkFiFVLUHt4ZkL0suo1X1yp8iOv32SXD5Qk9M6mQbFTCOy1C4y4mtqA==","signatures":[{"sig":"MEUCIErizCMyd/v1t5OfzY7jV5i3QLxYVplWPIh6NsqKDccvAiEAn0LaUq586Fas4esYxyGsrVxoqug5P9ARtXUKYB50C2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1848563},"type":"module","_from":"file:pi-sandbox-0.6.5.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/b5fa7684ffe07302a7387f35cff6cc6f/pi-sandbox-0.6.5.tgz","_integrity":"sha512-SMr+vIRTp0qixpz/UZIALnqn8C6UFQBAkFiFVLUHt4ZkL0suo1X1yp8iOv32SXD5Qk9M6mQbFTCOy1C4y4mtqA==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.17.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.70"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.5_1786878244968_0.9180965757709763","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"pi-sandbox","version":"0.6.6","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.6","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"421874b0eeb4c5bdf057ee87bd5b3404a7e5aec1","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.6.tgz","fileCount":22,"integrity":"sha512-KHL+/JJ9eX0znStRLnZtzeSgp6MdM1gvg+aB8EQDlqZZuFn4n3vLDzW+1xR1M9aSa7C+mP6JMAG9MA05sRfeaQ==","signatures":[{"sig":"MEQCIBUsPIwWY65O1RKzSku51R3thyngNiLWwoOfOktLEEprAiBeWpdue5p0gUlK+1gKrEARSW+YSu85Mv3EjhBZXDc/Iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1857104},"type":"module","_from":"file:pi-sandbox-0.6.6.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/d028822848069f5fcdbd8704d9a11770/pi-sandbox-0.6.6.tgz","_integrity":"sha512-KHL+/JJ9eX0znStRLnZtzeSgp6MdM1gvg+aB8EQDlqZZuFn4n3vLDzW+1xR1M9aSa7C+mP6JMAG9MA05sRfeaQ==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.17.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.70"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.6_1788350834164_0.10785923552592624","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"pi-sandbox","version":"0.6.7","keywords":["pi-package","pi-extension"],"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","_id":"pi-sandbox@0.6.7","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"homepage":"https://github.com/carderne/pi-sandbox","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"a1e7befbdbefddc5e263f87130623cbca92cffdf","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.7.tgz","fileCount":23,"integrity":"sha512-TWYEZKCxn63zyz3LJ6PHjAWj5Q9Vx/MNc2bazCPFq8nkrGjYZpy1veq/gujKsFOxke1nesgrfkIwaPHKAp8SxQ==","signatures":[{"sig":"MEYCIQDCGpppS4K7zSl0d2SNQIq222TjohUJ3Mlwxzybv4tMmAIhAK/B6HyMkRtaqbi2RV1Z6ygdmWU3KA1MdmvslMOLYxmg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1860480},"type":"module","_from":"file:pi-sandbox-0.6.7.tgz","scripts":{"all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","test":"tsx --test test/**/*.test.ts","check":"tsc --noEmit","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:test":"pnpm test","ci:check":"pnpm run check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"_resolved":"/tmp/d7a358ab041ecd1514d32d645a18f1a8/pi-sandbox-0.6.7.tgz","_integrity":"sha512-TWYEZKCxn63zyz3LJ6PHjAWj5Q9Vx/MNc2bazCPFq8nkrGjYZpy1veq/gujKsFOxke1nesgrfkIwaPHKAp8SxQ==","repository":{"url":"git+https://github.com/carderne/pi-sandbox.git","type":"git"},"_npmVersion":"11.19.0","description":"OS-level sandboxing for pi with interactive permission prompts","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@carderne/sandbox-runtime":"^0.0.71"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","oxfmt":"^0.47.0","oxlint":"^1.62.0","typescript":"^5","@types/node":"^24","@earendil-works/pi-tui":"^0.80.0","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"^0.80.0"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-sandbox_0.6.7_1788794809026_0.6453710471176561","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"pi-sandbox","version":"0.6.8","description":"OS-level sandboxing for pi with interactive permission prompts","keywords":["pi-package","pi-extension"],"type":"module","pi":{"extensions":["./index.ts"]},"publishConfig":{"access":"public","provenance":true},"repository":{"type":"git","url":"git+https://github.com/carderne/pi-sandbox.git"},"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"homepage":"https://github.com/carderne/pi-sandbox","dependencies":{"@carderne/sandbox-runtime":"^0.0.72"},"peerDependencies":{"@earendil-works/pi-coding-agent":"^0.80.0","@earendil-works/pi-tui":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":true}},"devDependencies":{"@earendil-works/pi-coding-agent":"^0.80.0","@earendil-works/pi-tui":"^0.80.0","@types/node":"^24","oxfmt":"^0.47.0","oxlint":"^1.62.0","tsx":"^4.23.1","typescript":"^5"},"scripts":{"fmt":"oxfmt index.ts src test","lint":"oxlint index.ts src test","check":"tsc --noEmit","test":"tsx --test test/**/*.test.ts","all":"pnpm run fmt && pnpm run lint && pnpm run check && pnpm test","ci:fmt":"oxfmt --check index.ts src test","ci:lint":"pnpm run lint","ci:check":"pnpm run check","ci:test":"pnpm test"},"_id":"pi-sandbox@0.6.8","_integrity":"sha512-qvMtgxwdXyacv0atpBfpjMQxrlxCC8JJpLlgzXUGSIUZeCBEq/ZxonbQDKbSm1vuhKmXYxcPcHoMk9bK9ZLdHA==","_resolved":"/tmp/8dcb68e04bf3f2350b5eccbd4054268e/pi-sandbox-0.6.8.tgz","_from":"file:pi-sandbox-0.6.8.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-qvMtgxwdXyacv0atpBfpjMQxrlxCC8JJpLlgzXUGSIUZeCBEq/ZxonbQDKbSm1vuhKmXYxcPcHoMk9bK9ZLdHA==","shasum":"6a0711cb7717d3d98ef1d8ad463aefea53fad62d","tarball":"https://registry.npmjs.org/pi-sandbox/-/pi-sandbox-0.6.8.tgz","fileCount":24,"unpackedSize":1864795,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/pi-sandbox@0.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG+WiPicVEq2Dit7HPOSosdk9tSnWqMT1m2yHItlMojqAiArUx/viEjABVpuEGyIOn0RHWhQ8Wp+qUDD7XG8kCnIWA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:95df35eb-d48d-4dd8-b5d3-7b1bfb045f26"}},"directories":{},"maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-sandbox_0.6.8_1788858971724_0.3103499856026244"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-19T15:19:19.678Z","modified":"2026-09-08T09:16:12.255Z","0.1.0":"2026-02-19T15:19:19.813Z","0.1.6":"2026-02-19T15:43:23.268Z","0.1.7":"2026-02-19T15:56:47.755Z","0.1.8":"2026-03-02T10:50:48.449Z","0.1.9":"2026-03-02T10:53:29.803Z","0.2.0":"2026-03-08T13:12:57.763Z","0.2.1":"2026-03-08T14:42:55.559Z","0.2.4":"2026-03-13T14:50:38.835Z","0.2.6":"2026-03-17T09:28:18.534Z","0.3.0":"2026-03-20T12:45:32.923Z","0.3.1":"2026-04-24T10:27:25.878Z","0.3.2":"2026-04-28T15:18:04.342Z","0.4.0":"2026-04-29T09:49:26.689Z","0.4.1":"2026-05-03T13:42:21.041Z","0.4.2":"2026-05-03T15:42:30.291Z","0.4.3":"2026-05-07T08:14:26.222Z","0.4.4":"2026-07-15T22:03:26.591Z","0.5.0":"2026-07-17T12:12:02.408Z","0.5.1":"2026-07-22T09:32:59.547Z","0.5.2":"2026-07-22T12:10:14.362Z","0.6.0":"2026-07-22T14:26:05.007Z","0.6.1":"2026-07-23T09:07:52.080Z","0.6.2":"2026-07-31T13:17:54.818Z","0.6.3":"2026-08-11T09:46:29.188Z","0.6.4":"2026-08-13T10:00:57.664Z","0.6.5":"2026-08-16T11:04:05.143Z","0.6.6":"2026-09-02T12:07:14.374Z","0.6.7":"2026-09-07T15:26:49.221Z","0.6.8":"2026-09-08T09:16:11.899Z"},"bugs":{"url":"https://github.com/carderne/pi-sandbox/issues"},"author":{"name":"Chris Arderne","email":"chris@rdrn.me"},"license":"MIT","homepage":"https://github.com/carderne/pi-sandbox","keywords":["pi-package","pi-extension"],"repository":{"type":"git","url":"git+https://github.com/carderne/pi-sandbox.git"},"description":"OS-level sandboxing for pi with interactive permission prompts","maintainers":[{"name":"chrisarderne","email":"chris@rdrn.me"}],"readme":"# pi-sandbox\n\nSandbox for [pi](https://pi.dev/).\n\nSandboxes pi like this:\n- read/write/edit: direct control using allow/deny lists\n- bash: uses [`@carderne/sandbox-runtime`](https://www.npmjs.com/package/@carderne/sandbox-runtime) to control network and file system access\n\nWhen a blocked action is attempted, the user is\nprompted to allow it temporarily or permanently rather than silently failing.\n\n![demo](./demo/demo.gif)\n\n## Notes\nThere is an example config at [sandbox.json](./sandbox.json). It was quite a few things added to get this extension to work with [agent-browser](https://agent-browser.dev/) and other common tools.\n\nThese open significant security loopholes, so shouldn't be used in a sensitive context or when you don't need browser support.\n\nYou may need to trial and error to find additional things you need to allow.\n\n## Quickstart\n\n#### Prerequisites\n\n`pi-sandbox` delegates the OS-level bash sandbox to\n[`@carderne/sandbox-runtime`](https://www.npmjs.com/package/@carderne/sandbox-runtime),\npublished from the fork at <https://github.com/carderne/sandbox-runtime>,\nwhich is forked from Anthropic's\n[`anthropic-experimental/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime).\nThe sandbox runtime checks for [`ripgrep`](https://github.com/BurntSushi/ripgrep) (the\n`rg` binary) on **both macOS and Linux** at sandbox-init time. If `rg`\nis not on the `PATH` that pi was launched with, sandbox initialization\nfails with:\n\n```\nSandbox initialization failed: Sandbox dependencies not available: ripgrep (rg) not found\n```\n\nInstall ripgrep before enabling the extension:\n\n| Platform | Install |\n|---|---|\n| macOS (Homebrew) | `brew install ripgrep` |\n| macOS (MacPorts) | `sudo port install ripgrep` |\n| Linux (Debian/Ubuntu) | `sudo apt install ripgrep` |\n| Linux (Fedora/RHEL) | `sudo dnf install ripgrep` |\n| Linux (Arch) | `sudo pacman -S ripgrep` |\n| From source / other | <https://github.com/BurntSushi/ripgrep#installation> |\n\nIf `which rg` succeeds in your shell but pi still reports `rg not\nfound`, pi is being launched from a parent process whose `PATH` does\nnot include the directory containing `rg` (common when GUI launchers\ninherit a minimal non-login `PATH`). On macOS, `/opt/homebrew/bin` and\n`/usr/local/bin` are the usual culprits — make sure your launcher's\nenvironment includes whichever one your install uses.\n\n#### Install\n```bash\npi install npm:pi-sandbox\n```\n\n#### Configure\nAdd a config like this either to Pi's global agent directory (by default, `~/.pi/agent/sandbox.json`; respects `PI_CODING_AGENT_DIR`) or to `.pi/sandbox.json` (local).\nScalar settings in the local config take precedence over global settings. The\npath and domain arrays from both files are combined and deduplicated, so a\nproject can add permissions without repeating the global configuration. Built-in\ndefaults are used for an array only when neither file configures it.\n\nNote below that the order of precedence for filesystem read and write are opposite.\n\n```json\n{\n  \"enabled\": true,\n  \"sandboxUserShell\": false,       // Sandbox commands entered with `!`. Defaults to true\n  \"permissionPromptTimeoutSeconds\": 600, // Defaults to 10 minutes; 0 waits indefinitely\n  \"allowBrowserProcess\": true,     // If you want to use agent-browser or similar Chrome setup\n  \"network\": {\n    \"allowLocalBinding\": true,     // ditto\n    \"allowAllUnixSockets\": true,   // ditto\n    \"allowUnauthenticatedSocksProxy\": true, // Enables Git-over-SSH on macOS\n    \"allowedDomains\": [\"github.com\", \"*.github.com\"],\n    \"deniedDomains\": []\n  },\n  \"filesystem\": {\n    // For READS:\n    // - ANY read is prompted unless the path is in allowRead or allowWrite\n    // - Granting a prompt adds to allowRead, which overrides denyRead\n    // - denyRead is not a hard-block; it just marks regions as denied by default\n    \"denyRead\": [\"/Users\", \"/home\"],\n    \"allowRead\": [\".\", \"~/.config\", \"~/.local\", \"Library\"],\n\n    // For WRITES:\n    // - allowWrite also grants read access to the same paths\n    // - empty ALLOW means no write access at all\n    // - DENY takes precedence and is never prompted\n    \"allowWrite\": [\".\", \"/tmp\"],\n    \"denyWrite\": [\".env\", \".env.*\", \"*.pem\", \"*.key\"]\n  }\n}\n```\n\n#### Usage\n\n```\npi --no-sandbox                  disable sandboxing for the session\nAlt+S                            toggle sandboxing on/off for the session\n/sandbox                         show current configuration and session allowances\n/sandbox-enable                  enable the sandbox for this session\n/sandbox-disable                 disable the sandbox for this session\n/sandbox-allow domain <url>      prompt to add a domain to allowedDomains\n/sandbox-allow read <path>       prompt to add a path to allowRead\n/sandbox-allow write <path>      prompt to add a path to allowWrite\n```\n\n## What it does\n\n**Bash commands** are wrapped with `sandbox-exec` (macOS) or `bubblewrap`\n(Linux) to enforce network and filesystem restrictions at the OS level. Commands\nentered with `!` are sandboxed by default; set `sandboxUserShell` to `false` to\nleave those commands unsandboxed.\n\n**Read, write, and edit tool calls** are intercepted before execution and\nchecked against the same filesystem policy. The OS-level sandbox cannot cover\nthese tools because they run directly in the Node.js process rather than in a\nsubprocess.\n\nWhen a block is triggered, a prompt appears with four options. Permission prompts\nautomatically select **Abort (keep blocked)** after 10 minutes by default. Set\n`permissionPromptTimeoutSeconds` to a positive number to use a different timeout,\nor set it to `0` to wait indefinitely. A timeout never grants permission.\n\n- Abort (keep blocked)\n- Allow for this session only\n- Allow for this project — written to `.pi/sandbox.json`\n- Allow for all projects — written to Pi's global agent directory (by default, `~/.pi/agent/sandbox.json`; respects `PI_CODING_AGENT_DIR`)\n\n**Session allowances** are held in memory only. They are never written to disk\nand the agent has no way to read or modify them. They are reset when the\nextension reloads or pi restarts. Parent agents and subagents have separate\nsandbox managers and session allowances; shutting down one does not affect another.\n\nSaved project or global permission changes are not broadcast to other running\nsessions' sandbox managers. Restart affected sessions to apply grants or revocations\nconsistently.\n\n### What is prompted vs. hard-blocked\n\n| Rule | Behaviour |\n|------|-----------|\n| Domain not in `allowedDomains` | Prompted (bash and `!cmd`, unless `sandboxUserShell` is disabled) |\n| Path not in `allowRead` or `allowWrite` | Prompted (read tool); granting adds to `allowRead` |\n| Path not in `allowWrite` | Prompted (write/edit tools and bash write failures) |\n| Path in `denyWrite` | Hard-blocked, no prompt |\n| Domain in `deniedDomains` | Hard-blocked at OS level, no prompt |\n\nIf a path is added to `allowWrite` via a prompt but is also present in\n`denyWrite`, it remains blocked. A warning is shown explaining which config\nfiles to check.\n\n`allowedDomains` supports `*.example.com` wildcards. It also supports `\"*\"` to\nallow all domains; pi-sandbox shows a warning when this is configured because it\nremoves per-domain prompts and can be easy to add accidentally. `allowWrite` uses prefix\nmatching, so `.` covers the entire current working directory. Write access also\nimplies read access; paths do not need to be repeated in `allowRead`.\n\n`allowUnauthenticatedSocksProxy` is enabled by default on macOS so Git-over-SSH\nworks with the built-in `nc`. Domain filtering still applies, but another local process\nthat discovers the temporary proxy port can use it while the sandbox is running.\n\n> **⚠️ Read and write have different precedence rules:**\n>\n> - **Read:** Every read is prompted unless the path is in `allowRead` or `allowWrite`.\n>   `denyRead` is not a hard-block — it marks regions as denied by default, but\n>   granting a prompt adds the path to `allowRead`, overriding `denyRead`.\n> - **Write:** `denyWrite` takes precedence over `allowWrite` and is never\n>   prompted. A path in `denyWrite` is always blocked, even if it matches\n>   `allowWrite`.\n\nIf neither file configures an array, its built-in defaults apply (see above for\nthe defaults). Once an array is configured, only its combined global and local\nentries are used, so an explicit empty array disables that default.\n\nThe footer shows a lock indicator while the sandbox is active.\n\n## Ackowledgements\nBased on code from\n[badlogic/pi-mono](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/examples/extensions/sandbox/index.ts)\nby Mario Zechner, used under the\n[MIT License](https://github.com/badlogic/pi-mono/blob/main/LICENSE).\n","readmeFilename":"README.md"}