{"_id":"@senad-d/guardme","_rev":"26-450430f63350cc22ad43853b3d1cdc38","name":"@senad-d/guardme","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@senad-d/guardme","version":"0.1.0","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.1.0","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"e183cda4d75107054050986ea008aafe58b7e6c4","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.1.0.tgz","fileCount":37,"integrity":"sha512-+EaQritfnk7fLI47EuBIuuhHaRiPs4byBa4qpg6ERI8GnzYqfw24o9uhIr99LstBQo0JI/ol3kQ5Tz8ug8vJDQ==","signatures":[{"sig":"MEUCIB05Q26fU8k7ymQDRfTTBghxMqC0jl64gCeDM4j2UxLYAiEA3NO3hRz9tRD9a4vMj2UC7ryMMq/F9+7P7fbDOpCMu9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503141},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"0fc0ee796323473bdead888bd7bff44195c066ca","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","postinstall":"node scripts/install-global-policy.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.1.0_1782313328677_0.7197584802369674","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@senad-d/guardme","version":"0.1.1","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.1.1","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"a1d643de5f2e948b7a640dd200248e9b1a2323cc","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.1.1.tgz","fileCount":37,"integrity":"sha512-/12uCJhRaqy0h39yTkp/MPkugdwhgwfYoA9DRxRz5Zn2nY7W+hLtvPkElpiBnl+Gs2Ed1ERFhRye2o7CF8n7OQ==","signatures":[{"sig":"MEYCIQCB51En3B8frAnfafbJYiUisvl8799Oe+bFQgJsF3Q3ggIhANzuyuye7T1+Qh5l8amZeUIMV7gYROSLRT8wAnoZlvqw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503141},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"62b983205a0a59214b5793f792b60148770587e6","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","postinstall":"node scripts/install-global-policy.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.1.1_1782314054034_0.5304242859118327","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@senad-d/guardme","version":"0.1.2","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.1.2","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"6bb8bc9cc3031a226dca7d8e90f5d0592e1623a0","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.1.2.tgz","fileCount":36,"integrity":"sha512-SnwExy6pEwlEu88t7WY8lSzYM4O92KXwCAAMWKaHKEIQUBJz9lSTu0zTvJkdPHgdJnOeKBkVKRgDUxnL3qAKrQ==","signatures":[{"sig":"MEUCIDytDG0sauNQIUltNVmNK5pKMjOnggFcWsHbt2kQwTVZAiEAgNmjc3RJGu/NfsiNKm4JTKxPA6i1sInDt1TTFoYCW4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501059},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4f93c4ae522efcf18c71328a3ddf6857ed5719e5","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.1.2_1782314534576_0.13169959343922177","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@senad-d/guardme","version":"0.1.3","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.1.3","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"c9dc16e2c5382443f4f48ea6d9df904373925fcb","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.1.3.tgz","fileCount":36,"integrity":"sha512-pl/v2zJa4QijCZUxI9sfd9MGanfjsZa+0cXyvY9eRYZ7EmMXmdafAxOz3TAzmYLdcfwK2QVGTO2P6gjUcL2xIA==","signatures":[{"sig":"MEUCIQC7Ez21LwfT0OxY07qibIAxtWYB+/xCa5zjLVvdpVysSAIgXEAqXL0d7f8lvFZ/kv9lqYWDiaT4YoNAJz5t4c4gefA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501547},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e83e1a35e60065dc1ed492a5fde520b3fd7c60ea","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.1.3_1782315747031_0.2505698162022476","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@senad-d/guardme","version":"0.1.4","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.1.4","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"d2ab4d11889b2f584dc21fd329da0fb131d9d1e1","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.1.4.tgz","fileCount":36,"integrity":"sha512-ujlfYqRKmZhrK8UAgqHlkW+N2cz+h8abazTKtdTTCUMiRSXXEjpGOUhuifYjdg0dq6kytDHoRsxgay5xe+pwpA==","signatures":[{"sig":"MEUCIFx+g+E/WSPvGB9W3R6TDm75SPKrC48q0ukE7Qrsu2uyAiEA9waiU9s2HHAjtmgRliFtRNobTBVXemWJLYQVY+HskoA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511492},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"459f33d04ded55d57b230b2608b2e4e89986c2be","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.1.4_1782324891792_0.9156925021178441","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@senad-d/guardme","version":"0.1.5","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.1.5","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"0857e801646d1d26d44da843056e2b78f16cb0f2","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.1.5.tgz","fileCount":36,"integrity":"sha512-hs6A5mbo+XZi4BOT1IQNuLPipVdlBNWSm/nCZ8zUKdx/NEisEqUnJ9enL9bSU3kF+LY2X9CBCJRyjIBUV3Xy8g==","signatures":[{"sig":"MEYCIQCZGKnwRIDKQjgE3+ykeqnxhjuh8cMwLSzSeWASJs6/iAIhAO/rENe6U+KAa9iFlPZoiwQ5JecTEP5HKc/gP0VCOhHp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511870},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"8c5ff192e44e39399bb39b75ba3133e76feda7bc","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.1.5_1782557547444_0.29575203209965584","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@senad-d/guardme","version":"0.2.0","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.0","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"3b01b4bfd7bbd3d70d2a8a3beaca39bde09a8a05","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.0.tgz","fileCount":36,"integrity":"sha512-oTtZYoNhVU6H4FfBN2PS1v7dc387tZcdOl/JU1HeED7FlgF8/aBZuM/I1ksd0Sh13xWx6b8N3qidW5VHu7oQVg==","signatures":[{"sig":"MEUCIQCxasE+DZZ2k9hy/bgmP5HCHhtPHnED/MsMhyCY98O2MwIgGi9RBYTmrnUg2WPSz18vLyafFu8hB6gfp9lLCtj0gmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565538},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"ae1ba05a123b32226fee16f2b8b1d0a5f1ce959f","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.12.1","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"26.0.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.0_1782989866269_0.7833885273348982","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@senad-d/guardme","version":"0.2.1","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.1","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"b907840f234cec2e1644ae20c996017814b7284e","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.1.tgz","fileCount":40,"integrity":"sha512-IJSX9YZIdIkS4lT6Cg7B3z2mUXaVCYmlr46erHdkaCGh/EmQGPl1vzsVlPrLxqqXpXdjoY3Rzn3SSCb4yoUs0A==","signatures":[{"sig":"MEYCIQCU4uppaBUEtvv+Q/wB+8+kSOIbKFL0R+m+c4Qp4WLkbwIhAMN9nEVC652tRH08Kl1+ruEaBvWMO8whhFquw1cos59Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561960},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"7acd55323a2c5e06bb8a9d5c03f63db1b190151a","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.3","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.1_1783159633934_0.33418388658858467","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@senad-d/guardme","version":"0.2.2","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.2","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"f4323b162a82d99327c3d6045e123fe77c8e9558","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.2.tgz","fileCount":40,"integrity":"sha512-8+ub2i/f/eUu+7CkmbkoIJP1P07GamMMwyeIEg8h3IOzpDQAdhAlfnWUq8ZSvA7dcRGtlH4LetNYb41j/VorRw==","signatures":[{"sig":"MEUCIB6dSTRs7Gwoxaj82VZUhd1IbASuKp+k/gTN7DtDrI0lAiEArwEuy5SQBFoZiMaIH6uNjwhSrC27p83YAPnf4GJhBYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":563331},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"628d6a6567f8fec7fbf4d9c3f795534da460213b","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.2_1784142742138_0.5469476962403677","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@senad-d/guardme","version":"0.2.3","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.3","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"f26d7300425657e509b8f2745935d6f4170a2682","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.3.tgz","fileCount":41,"integrity":"sha512-QxZdDllk4QFhhxDHp7ifSrnle/qEo5n7F/AHOWxg87WmAgN26lD+jaEfbqO7Ltz2/oPdO2ge15Hl5Hf2wl/UYQ==","signatures":[{"sig":"MEUCIQDl6kFpHiDohec3EVe3xSSPXSMMSnzUulaYqZ4jnFqalQIgBiT6FiTSWg+eipLyr2d928daKXKvf9J1L9ZaVpEtKAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574400},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"950c2249f70b594056f37ef7df3e9af0d3feb26e","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.3_1784965279585_0.17701993485963552","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@senad-d/guardme","version":"0.2.4","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.4","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"fccf4e149618b41fd92f0e3807468c354eb414e3","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.4.tgz","fileCount":41,"integrity":"sha512-NGVRHAR15Pvsv3hpaWfNSKZYPxJEq0DnK69D//XnG/oyxKyOSkY9SBesfPfxKyvDzbB+PkpNxAWGAEtDLjkfsQ==","signatures":[{"sig":"MEQCIG+Dj0p2LhAwPRNQzP3lHXYhUgVwXyvEcGg99tLTWOcdAiBJKIwgNEIoZL0ByLGemwhT39D2rFHAgNhtCtN+FnPZPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574400},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"eb006f8928171eebbec69c71a62ccd3f9f87fe04","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.80.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.4_1784965930362_0.6454810300746974","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@senad-d/guardme","version":"0.2.5","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.5","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"4156fc6a0bca94d9c80db2347f708a922d6ee30f","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.5.tgz","fileCount":41,"integrity":"sha512-hz5xtlN5ewkujKVY5tvMLxJIM+AOoZ3VscY8ZESQ1GQgPs6TANzezu1CTi6nWF2W2IcClWgdZSn7VbZsNN71gg==","signatures":[{"sig":"MEUCIQCU6+ghhbqT7TlnmWn6YkjdG/3ZunX2BjlrgNI5RlT19QIgKAqgFOsFYPa3OOaCIajMsRbmP+rGPO+V/BT3ID60OrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573946},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"fbba4d609c7786370fc5346d3849122d7e40d7ba","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.82.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.5_1785238541066_0.36795703694719806","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@senad-d/guardme","version":"0.2.6","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.6","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"a4d2d48499ae605a04d700efe55b57e93c572a30","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.6.tgz","fileCount":41,"integrity":"sha512-RG5KTrNXv8iS4X6LUwrSA6AGjRJYQyMm3p/Y5nho6CGN07Vwxg09LJlON816K8z6wNEYSeM/QF6ipcEu59eAMw==","signatures":[{"sig":"MEYCIQCgmAGmZgeBvsG2voN9USlwXWyBSOC6QkzQG4fnR7yUWQIhAJbIEOuC1VTzI30UGhQ3j9bE7AtFtVIqbmsZ/nvVTDAL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":580788},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"514acf96dc04b083c4bd1fca73d334a3ed97e1e5","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.6_1785787049171_0.4615030228156469","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@senad-d/guardme","version":"0.2.7","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.7","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"96d7545658e22fd94861fb37154e88c6b0b5e155","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.7.tgz","fileCount":41,"integrity":"sha512-V6wjTkuZ4nhhVv9MjVxYF0NUuPe6CFzGmkOY4rO7kfWlkcZhW4y65oX4tS4A1sKkzkG/Wh67EIE5M7JTOaoCEg==","signatures":[{"sig":"MEUCIGOz319D3MBLvDw4sf7UT1mWA/YyWHOMGG8eZZR6ER/GAiEA30yE7w4epH+ze+tSkEyo/bwivI4+ofd1XD1ANGQP6TY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":597871},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3e3ea1049427db2c1b0ca903d22a70029e96822b","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.7_1785967258587_0.2185211832475502","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@senad-d/guardme","version":"0.2.8","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.8","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"38b0f2f406d379a4d39848e6779997b3b50787e3","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.8.tgz","fileCount":41,"integrity":"sha512-NdNhvia2qt+dY+8x9Is2w7yv77nRhCDtc8BoL+okU+Vi5G2bQ7niXCER5aFaUeMc32oTk0xCPQuVXShgkR9DlA==","signatures":[{"sig":"MEUCIQCbG6FIZpHeuZKipXXZAkVvtzM0I9Juf9Bq1SxR+QtjMwIgVxIQmTnQxhxDaDWuYYgXR941CtYorWUUX03HQ9x4MEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":606643},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"6eb0d8886f68e1db0e3a54987fb683cf88e87c01","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.8_1787760084202_0.9350016716138176","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@senad-d/guardme","version":"0.2.9","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.9","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"709029f50be32a9bb1f02008e2d76ea469bd1d2f","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.9.tgz","fileCount":42,"integrity":"sha512-bd60X7QhZdWWT750vTa/mAF7aKth8ay5fC1+K3YXuJCPYTYLk6boLVBtoXuPlAQrU548FEYE6K+uKm7QqGG7Mg==","signatures":[{"sig":"MEQCIDe1EHgnfF1SAID8mQBDZ2kZSw90T//2+mJzSdwgzS7XAiB7oRMx9xbDm23Z50/8XFSifhifJ/UPp2YAKn8kZCD1Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGDkt2boeilFAKevOzlbFOZoCcNnjATwJ4j3UQqnu5A7AiAWszMMoM7bM+Sk5Rlf9oi6jchR0IMMC2yFAtR15dbGvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":639878},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"5ba2fa88dd9d765108d999548194c3e32f9bbc81","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.84.3"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.9_1788557153407_0.23997511601008958","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@senad-d/guardme","version":"0.2.10","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.10","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"5aa36487e02bbdf2173a02746c9bd2379669a079","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.10.tgz","fileCount":44,"integrity":"sha512-q7h9KmMfSSv0nrrGEGG9awt+DuZRS3M6R4XWsjTZr/9pbmlAxnFGPvyUyPmFh5tohOnRIaOcnBGbyJXjSHI98Q==","signatures":[{"sig":"MEUCIQCLzyB9vuA1tUlOy9PcfZGQCVCp2Z+2+djyqBoYawRg1AIgHndpY9StL3y4LF0VmTLkmGXakmhMQRMDBeczlLuU1uQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCxbM+sKgVan4oycNn81gq23dVmNY7RGFjmqONhBkEE7wIgeHEFNxjuHp7bDPX594uQv3QMrcHkxBXdrFWQEaudqyk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662552},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2995bfff501b333b44de2ed0948c8006b4f774db","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.84.3"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.10_1788597046524_0.9714368993708486","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@senad-d/guardme","version":"0.2.11","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.11","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"c7fadfba523924d750ed05e8eddc7adeeca760da","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.11.tgz","fileCount":44,"integrity":"sha512-Off3JUB4LUUVfAOYKe/T38i4qX4EGEA1TRC3lj/59It1GOt3r53zMkKYG9ZT4ankjNcL+9PkDIT4jhTBJXIehQ==","signatures":[{"sig":"MEYCIQD5gqLzy17eJKpwe3+fm0be2C/82ygcFzLX1i4iw6t/WwIhAJnkgkaGkx/15LLb6QzS8oWpWGDfw+pllk+Z+DUMTh5Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCo3apW/fnKwvElDN/LI+Vp9vSY+wiLBlolhln1O9Pj9AIgcTq1S2pfcJakLJd3tJtqYjIGeUDOHEpsAGPlSIflkNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662800},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"88f5ee8ea25e5a21f1ee0e246f463a8ee2aeb529","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.11_1789026601984_0.7549662657034424","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@senad-d/guardme","version":"0.2.12","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.12","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"db349aa826fb99fc73b437df4e0f8e7cdbd7ec2b","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.12.tgz","fileCount":44,"integrity":"sha512-vk1MgDTdmDO+oiePB5g9sA3jUY5P7CHhaXhkhhcvVu28zbmzDS5+E6Go+bjQenRHKB/mVMFXyXCjMqE0nvJxWA==","signatures":[{"sig":"MEUCIFVflyA7s5iaF9Q81GYecPiZN4hAbYras1JJNlcEP6ujAiEA0g2fD6JAYWA8+zB9F7ubB+J1/cV0WL8sQFnUWZQw46k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDS3n6evXPAWVlHSPhFOn+TDnxw2Ayx/STAIaMyhNOiVAiEAsnFJo5VpEB+B248eqQKOv3dgPBe10MdQl9lqrzmHyRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":663210},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"ce3f98f73675f9b893f8e22b74a08408ee0426b9","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.12_1789028390763_0.17002019199919483","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@senad-d/guardme","version":"0.2.13","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.13","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"fdd4b1eb01aa24dc40373a67abb0565a4d6048cc","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.13.tgz","fileCount":44,"integrity":"sha512-gElOGjZc6sb8Co/L8YQjyAVowSCsWze/RD7NmrH/s/MulD7d374uOhLur/1RrwfFJ416VPAGUqB+NVbswgphzg==","signatures":[{"sig":"MEYCIQCcaJXt6AD09XgAC0EqCdVpJYDbaUN5zOb0LBLI8/5GvQIhAIdxKESI1Zd0+Wjra7kI1SABV80kAO+cpac7qs/kyoI7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBbVeJyavVuv5CTOo5V531T9XRkFObDxdBZ+gdOudOSxAiAcSfQeHWzAmSugzUnhyelMv4NDhEJ7VSH/KKzn8OzmDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":669697},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"c14ad714fae7397642ec7d1cd42359aa072b85d7","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.13_1789035569780_0.6014172449783537","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@senad-d/guardme","version":"0.2.14","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.14","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"919cc0baf0a4ecedc33d432f4d6d12f9c55c35e9","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.14.tgz","fileCount":44,"integrity":"sha512-5duUuYXSvontpInmBXMuieU6YW2jkFTcvmMwfnAbrQCHr0sfcS3pW/1ZOFsR83YtfKLXrqEssy1tJPpwuvtLPA==","signatures":[{"sig":"MEUCIGNOfE0S0UeBLMPmK1XTUyxkF9gpTcbNtity76Av+wXEAiEA5qYPJnl/djIrYdVhc38mUaEL9zChM0Ur8jZ9bVWjPqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBHTz4XIDs0F9Ry1wu9IWdP0a4IORKYEnBIVolj4t7sOAiB7yXB5KSiRGvQ88mEOapQlJvk1Hbw+0pEt6m+e07Pp3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":672039},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"d042320e79dd86c6832bd2dda16da6819c6f1fe4","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.14_1789042345327_0.9015992402717934","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@senad-d/guardme","version":"0.2.15","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.15","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"8ab31258ad69ac29292b0dcc3f069831aaaf9d70","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.15.tgz","fileCount":44,"integrity":"sha512-hBl6fgMmneGsaGslRILIgYOVPK4EFPL03klTvUFcLjo+ShUOw/k57LF9pvEQVWXJ5b7BDLGDCCM7pTAcBpNYow==","signatures":[{"sig":"MEYCIQDGquma6XdIQ4ZQL11YBkb9iTwdGwp55PScahFw9+5UUwIhAOpGSIXVB2rajS6xgTsPS7wM4IeZ5oZeD2Rotx6ZVGnt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICugwQMXCJnctKy2Gq8KssuiMA/t3/PZR+TRcjK+UFX8AiAKS+V2n8CvnvZVBR5vj6/6dx4lx742f+vQywrLkj7kkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":690042},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"17698a1fa204910205de93474a797c35558734e0","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.15_1789048008632_0.549032757859369","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@senad-d/guardme","version":"0.2.16","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.16","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"949bcdfb3fb055036e1b4ddd84f57d02c7ca34ac","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.16.tgz","fileCount":45,"integrity":"sha512-Nni9T3w+WDap+vnQ4ezkdEIHiqIOAPMMjBvVajUJc8InDIdIOMUkn0Rlm1X0415MyDJupzZcaPhYuspmbXZGmA==","signatures":[{"sig":"MEUCIQD38u7jL7/xBN7AZbi6NSZf1atPlDyLu+D9nbJPJll56wIgWPO1DbrErKuKLi7+bl0ek2tT33DN21q+oYc/bCPux0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDd/vGjBk4bDu36cOt6tIrIftcBJUM+Hy9Ck1bnNsWwpAIgZ516wyd5s0z2RMbugtdudBUqgF3A+D0Ykt8jWmMvpRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":688276},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"be8b6dd3a9661a7a4ba0dcf071caaa8642f8dc0c","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.16_1789048825316_0.11434153287371074","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@senad-d/guardme","version":"0.2.17","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.17","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"16a0bd960707aadebdd2060b4cf371c3c6723095","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.17.tgz","fileCount":45,"integrity":"sha512-evZJM132BEYo22urjr045m3woS18xjwT+ONBweMp+l1mJp0ykvOeUlrlKcmII2mj1jYqT3tHxtvnl+uSaZIQrQ==","signatures":[{"sig":"MEYCIQDFERs5M9dGP7tEmvid2SCAx8L6zndGnml1uH8AfL5UMAIhAI2YpbjrL/wrM4trSQWcTReBzyKEUSSgwddZDQwW4tW/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE+A1yb8XyyszVj7BEa3NJtISQUbCUKfZBC/Ekys6G9oAiAMPtJYb7+pJeXS8GOgE99GMPC2o1M51f8FpTYJISo2dQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":692311},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9c91ed0f775a6ab92330583f62a0e7f7c8eb1eb0","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.17_1789052260754_0.24486508520842976","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@senad-d/guardme","version":"0.2.18","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","_id":"@senad-d/guardme@0.2.18","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"homepage":"https://github.com/senad-d/GuardMe#readme","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"dist":{"shasum":"f3fd5380358592275d5a930d991b772502fd4836","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.2.18.tgz","fileCount":46,"integrity":"sha512-0i/l7I8bx/a6cygY1jZGyfxFC+WbvP7FWxkbgdSiHqLMu640EIJdlG10IwMaCPldrBxzXmeHPiXWiHY/aBvVLA==","signatures":[{"sig":"MEUCIGlQEiI6TiC2WcO6SkoS6e27DGIZ3+CvNUAHJ+hmzvB9AiEA9nS1FUcNgUccQ2brAn3HqhzCt/LM/RUVmQAHjddrCQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDO2CqiiXe/CqpWRLp+O7LuT8a8b2B+Wm1ZayXLQtwCMAiB0sb4p928FQboq2IdE6Jz5M15fFii0778XoNHnGC31cg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.2.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":693780},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"90008a330636166a343cd93001bb79e14cf64032","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/guardme_0.2.18_1789057312688_0.8992490104294071","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"pi":{"image":"https://raw.githubusercontent.com/senad-d/GuardMe/main/img/demo.gif","extensions":["./src/extension.ts"]},"_id":"@senad-d/guardme@0.3.0","bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"dist":{"shasum":"9775251d7bfab45979760092efff1b7d539c76fd","tarball":"https://registry.npmjs.org/@senad-d/guardme/-/guardme-0.3.0.tgz","fileCount":46,"integrity":"sha512-VbSHfQpJcVg2Z2Oj3thwyNCetCg+jvHSGf8iXjR9YDD79GUHWuY+aqTXqtHoDsTTT6GvwaK6WePuBVOMrCNd8A==","signatures":[{"sig":"MEQCIBQGqPeDtTgDRm3NUUUy/r+vlNKv8mh8PO1g70diDqk2AiAZ5WKKWO3T8pxWyzwn/gHC+uqeT7uaKIbc4mrqzyYhnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDiGz/jNfvFJOAFSUzkgtzDKwOzXorh7Ew9A6Mkt7r3WAIgMPjWNXqnVRlIcMWgSB94Yp7yQjEnii04mp0tsJ8WqbY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@senad-d%2fguardme@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":697705},"name":"@senad-d/guardme","type":"module","author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"engines":{"node":">=22.19.0"},"gitHead":"cb08c9f214ff5c744a27caa1adbd73e51e3fcd47","license":"MIT","scripts":{"dev":"pi --no-extensions -e .","lint":"npm run typecheck && npm run check","test":"node --test test/*.test.mjs","check":"node --check scripts/check-package-contents.mjs","coverage":"node scripts/coverage.mjs","test:e2e":"npm run test:e2e:rpc && npm run test:e2e:tui","validate":"npm run typecheck && npm run test && npm run check && npm run check:pack","typecheck":"tsc --noEmit","check:pack":"node scripts/check-package-contents.mjs","format:check":"node scripts/check-format.mjs","pack:dry-run":"npm pack --dry-run --json","test:e2e:rpc":"node --test test/e2e/guardme-rpc.e2e.mjs","test:e2e:tui":"node --test test/e2e/guardme-tui-capture.e2e.mjs"},"version":"0.3.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c8df5ae2-e700-41b7-9637-51431252ab45"}},"homepage":"https://github.com/senad-d/GuardMe#readme","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"_npmVersion":"11.18.0","description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","directories":{},"maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.0.0","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/guardme_0.3.0_1789831664651_0.2085379092709294"}}},"time":{"created":"2026-06-24T15:02:08.269Z","modified":"2026-09-19T15:27:45.036Z","0.1.0":"2026-06-24T15:02:08.875Z","0.1.1":"2026-06-24T15:14:14.170Z","0.1.2":"2026-06-24T15:22:14.714Z","0.1.3":"2026-06-24T15:42:27.246Z","0.1.4":"2026-06-24T18:14:51.942Z","0.1.5":"2026-06-27T10:52:27.575Z","0.2.0":"2026-07-02T10:57:46.461Z","0.2.1":"2026-07-04T10:07:14.108Z","0.2.2":"2026-07-15T19:12:22.268Z","0.2.3":"2026-07-25T07:41:19.716Z","0.2.4":"2026-07-25T07:52:10.513Z","0.2.5":"2026-07-28T11:35:41.203Z","0.2.6":"2026-08-03T19:57:29.314Z","0.2.7":"2026-08-05T22:00:58.724Z","0.2.8":"2026-08-26T16:01:24.338Z","0.2.9":"2026-09-04T21:25:53.487Z","0.2.10":"2026-09-05T08:30:46.652Z","0.2.11":"2026-09-10T07:50:02.136Z","0.2.12":"2026-09-10T08:19:50.902Z","0.2.13":"2026-09-10T10:19:29.929Z","0.2.14":"2026-09-10T12:12:25.435Z","0.2.15":"2026-09-10T13:46:48.731Z","0.2.16":"2026-09-10T14:00:25.429Z","0.2.17":"2026-09-10T14:57:40.844Z","0.2.18":"2026-09-10T16:21:52.785Z","0.3.0":"2026-09-19T15:27:44.741Z"},"bugs":{"url":"https://github.com/senad-d/GuardMe/issues"},"author":{"name":"Senad Dizdarević","email":"112484166+senad-d@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/senad-d/GuardMe#readme","keywords":["pi-package","pi-extension","pi-coding-agent","guardme","llm-security","ai-safety","agent-safety","tool-guardrails","deny-first","iam-like-policy","access-control","policy-engine","approval-workflow","shell-security","filesystem-security","typescript"],"repository":{"url":"git+https://github.com/senad-d/GuardMe.git","type":"git"},"description":"Deny-first Pi guardrails that keep LLM shell and file access safe, transparent, and user-approved.","maintainers":[{"name":"senad-d","email":"senad.dizdarevic.ri@gmail.com"}],"readme":"<p align=\"center\">\n  <img alt=\"GuardMe logo\" src=\"img/icon.png\" width=\"128\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://pi.dev\"><img alt=\"pi package\" src=\"https://img.shields.io/badge/pi-package-6f42c1?style=flat-square\" /></a>\n  <a href=\"https://www.npmjs.com/package/@senad-d/guardme\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/%40senad-d%2Fguardme?style=flat-square\" /></a>\n  <a href=\"LICENSE\"><img alt=\"license\" src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" /></a>\n  <a align=\"center\" href=\"https://sonarcloud.io/summary/new_code?id=senad-d_GuardMe\"><img alt=\"Quality Gate Status\" src=\"https://sonarcloud.io/api/project_badges/measure?project=senad-d_GuardMe&metric=alert_status\" /></a>\n</p>\n\n<p align=\"center\">\n  IAM-like guardrails for <a href=\"https://pi.dev\">pi</a>.\n  <br />Protect shell and filesystem tool access with deny-first policy.\n</p>\n\n---\n\nGuardMe is a Pi extension for LLM tool-call safety. It checks Pi shell and filesystem tool calls before execution, merges global and project YAML policy, blocks hard-denied actions, and asks for approval when risky or policy-missing actions repeat.\n\n<table align=\"center\">\n  <tr>\n    <th>GuardMe demo</th>\n  </tr>\n  <tr>\n    <td align=\"center\">\n      <img src=\"img/demo.gif\" alt=\"GuardMe demo: review and approve guarded Pi tool access\" title=\"GuardMe demo\" width=\"760\">\n    </td>\n  </tr>\n</table>\n\n- **Deny-first:** deny rules and hard protections always win over allow rules.\n- **Shell-aware:** compound commands are evaluated by executable segment, including common wrappers and package-manager scripts.\n- **Filesystem-aware:** sensitive paths, `.git`, credentials, destructive moves/deletes, and unsafe generated file content are guarded.\n- **Approval-based:** first risky attempts are blocked with coaching; repeated attempts use a mode-aware, fail-closed approval flow.\n- **Pi-native:** install globally, project-locally, from git, or from a source checkout.\n- **Configurable:** use `/guardme`, `~/.pi/agent/guardme.yaml`, and `.pi/agent/guardme.yaml`.\n\n> **Security:** pi packages run with your full system permissions. GuardMe reduces accidental or model-requested access inside Pi sessions, but it is not an OS sandbox or privilege boundary. It can read/write GuardMe policy, settings, and state files under `~/.pi/agent/` and `.pi/agent/`. Read [`SECURITY.md`](SECURITY.md).\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n- [Installation](#installation)\n- [How GuardMe Works](#how-guardme-works)\n- [Policy and State Files](#policy-and-state-files)\n- [Configuration](#configuration)\n- [Commands](#commands)\n- [Approval Flow](#approval-flow)\n- [Troubleshooting](#troubleshooting)\n- [Diagnostics](#diagnostics)\n- [Update and Uninstall](#update-and-uninstall)\n- [Development](#development)\n- [Publishing](#publishing)\n- [License](#license)\n\n---\n\n## Quick Start\n\n```bash\npi install npm:@senad-d/guardme\n```\n\nStart pi and open GuardMe:\n\n```bash\npi\n```\n\n```text\n/guardme\n```\n\nUse the General pane to review status, the Insecure edits escape hatch, project trust, warnings, diagnostics, and setup actions. GuardMe is active by default when no project-local runtime setting disables it.\n\nTry it in a Pi session:\n\n1. Ask Pi to run a normal project command such as `pwd && ls -lh`.\n2. Ask Pi to run an unknown or risky command.\n3. GuardMe blocks the first matching risky attempt and adds model-facing safety guidance.\n4. Repeat the same action to trigger the approval flow when UI is available.\n\nIf the npm package is unavailable before a public release, use the source-checkout workflow below.\n\n---\n\n## Installation\n\n| Scope | Command | Notes |\n| --- | --- | --- |\n| Global | `pi install npm:@senad-d/guardme` | Loads in every trusted pi project. |\n| Project-local | `pi install npm:@senad-d/guardme -l` | Writes to `.pi/settings.json` in the current project. |\n| One run | `pi -e npm:@senad-d/guardme` | Try without changing settings. |\n| Git | `pi install git:github.com/senad-d/GuardMe@<tag>` | Pin a tag or commit. |\n| Local checkout | `pi --no-extensions -e .` | Develop or test this repository in isolation. |\n\nSource checkout:\n\n```bash\ngit clone https://github.com/senad-d/GuardMe.git guardme\ncd guardme\nnpm install\nnpm run validate\npi --no-extensions -e .\n```\n\nUse the checkout globally while developing:\n\n```bash\npi install /absolute/path/to/guardme\n```\n\nGuardMe has no npm install-time setup step. Missing policy files are valid: the extension applies built-in defaults at runtime. To create an editable starter policy, run `/guardme` and choose a global or project policy from Setup.\n\n---\n\n## How GuardMe Works\n\nGuardMe checks Pi LLM tool calls before they run:\n\n- shell commands through `bash`\n- file reads through `read`\n- file discovery/listing through `grep`, `find`, and `ls`\n- file writes/edits through `write` and `edit`\n- generated shell-like content before mutation\n- local script execution such as `./script.sh` or `bash script.sh`\n- package-manager scripts such as `npm test`, `npm run test`, `pnpm run build`, `yarn test`, and `bun run test`\n- deletes, renames, and moves detected from shell commands\n\nPolicy is deny-first, similar to AWS IAM: hard protections and deny rules always win. Shell commands are segment-aware and default-deny, so every executable segment in a `bash` command must match `allowCommands` or go through the warned-once approval path.\n\nDefaults include `shasum *` and `curl *`: direct checksums and ordinary curl requests are allowed after local file protections pass. GuardMe does not filter network traffic; another extension can own that policy. Quoted interpreter heredocs are inspected as stdin code rather than misread as shell commands. See [checksums, curl, and heredoc details](docs/POLICY.md#checksums-curl-and-heredocs) for conservative approval gates and static-analysis limits.\n\nExamples:\n\n- `pwd && ls -lh` can run when both `pwd *` and `ls *` are allowed.\n- `pwd && unknown-tool` is blocked as policy-missing.\n- `cat .env`, `cat /etc/passwd`, and `find . -delete` are blocked unless policy and approval rules permit the action.\n- Cloud CLIs such as `aws`, `az`, and `gcloud` are hard-denied, including common wrapper and package-runner forms.\n\nSee [`docs/POLICY.md`](docs/POLICY.md) for the full policy reference.\n\n---\n\n## Policy and State Files\n\n| Scope | Policy YAML | Generated state | Runtime settings |\n| --- | --- | --- | --- |\n| Global | `~/.pi/agent/guardme.yaml` | `~/.pi/agent/guardme-state.jsonl` | n/a |\n| Project local | `.pi/agent/guardme.yaml` | `.pi/agent/guardme-state.jsonl` | `.pi/agent/guardme-settings.json` |\n\nGlobal policy loads first. Project-local policy, runtime settings, and generated state load only after the project is trusted. Missing runtime settings mean GuardMe is active and Insecure edits is off. Turning GuardMe off from `/guardme` writes project-local settings and bypasses GuardMe enforcement for that trusted project until you turn it active again. Turning Insecure edits on writes the same project-local settings file and makes only `write`/`edit` skip proposed content/script scanning; path protections and deny rules still apply, and `bash`, reads, and discovery tools stay guarded.\n\nPolicy YAML also accepts `guardedTools`, a mapping from third-party tool names to the built-in contract GuardMe should use. For example, a PowerShell replacement and a read-tool alias can be protected with:\n\n```yaml\nguardedTools:\n  pwsh: bash\n  file_viewer: read\n```\n\nThe built-ins `bash`, `read`, `write`, `edit`, `grep`, `find`, and `ls` are always guarded and cannot be remapped. Global aliases load before aliases from trusted project policy; identical mappings are deduplicated, while a conflicting later mapping reports an error and leaves the earlier mapping effective. Untrusted project aliases are not loaded. Unknown third-party tools are not inferred and remain outside GuardMe enforcement until explicitly mapped. Inspect the effective built-ins and aliases in `/guardme diagnostics` or the Policies pane.\n\nPolicy YAML also accepts the validated top-level key `approvalMode: auto | interactive | agent | block`. Built-in `auto` is the safe default: only TUI sessions can request GuardMe approval UI. The explicit `agent` mode never opens an approval prompt in any run mode: GuardMe blocks the first attempt with a short agent-facing notification and automatically allows one identical retry in a later agent turn. Trusted project policy overrides global policy, and the process environment variable `GUARDME_APPROVAL_MODE` overrides both for managed child launches.\n\nYAML rule sections:\n\n- `allowPaths`\n- `denyPaths`\n- `zeroAccessPaths`\n- `readOnlyPaths`\n- `noDeletePaths`\n- `allowCommands`\n- `denyCommands`\n- `dangerousCommands`\n- `protectedCredentialPaths`\n\nGuardMe refuses unsafe policy/state paths such as symlinks, oversized files, or policy writes that would capture secret-like command values. New policy writes use owner-only file permissions.\n\n---\n\n## Configuration\n\nThe usual setup path is to run:\n\n```text\n/guardme\n```\n\nUse the in-session TUI to:\n\n- turn GuardMe `active` or `off` for the current project\n- turn **Insecure edits** on/off when you need `write`/`edit` to author scripts that contain otherwise blocked commands\n- review or enable Pi project trust\n- inspect warnings and diagnostics\n- review the resolved approval mode and effective guarded tool mappings in Policies\n- create starter global or project policy files\n- save approval decisions as project or global rules\n\nMinimal policy example:\n\n```yaml\nversion: 1\napprovalMode: auto\n\nallowCommands:\n  - pattern: \"pwd *\"\n    reason: \"Working-directory discovery\"\n  - pattern: \"ls *\"\n    reason: \"Project file listing after path protections pass\"\n  - pattern: \"npm run validate*\"\n    reason: \"Project validation\"\n\ndenyCommands:\n  - pattern: \"sudo *\"\n    reason: \"Privilege escalation is blocked\"\n  - pattern: \"sudoedit *\"\n    reason: \"Privilege escalation is blocked\"\n\ndangerousCommands:\n  - pattern: \"rm -rf *\"\n    reason: \"Recursive deletion requires approval\"\n\nzeroAccessPaths:\n  - pattern: \"~/.ssh/**\"\n    reason: \"SSH material is unavailable\"\n\nreadOnlyPaths:\n  - pattern: \"docs/**\"\n    reason: \"Documentation is read-only\"\n```\n\nCommon built-in protections include cloud CLIs, privilege escalation, disk formatting/raw disk operations, `.git` deletion, credential-like files, `.env` and non-template `.env.*` variants such as `.env.local`, environment dumps (`env`, `printenv`, inline `process.env`/`os.environ` reads), credential-printing subcommands (`gh auth token`, `git credential`), Pi's own `~/.pi/agent/auth.json`, SSH keys, unsafe generated script content, and destructive commands aimed at protected descendants. Broad content searches such as `rg` and `grep -r` are allowed even in repos containing `.env`; direct reads of protected files stay blocked, and searches that hunt for credential-like file names (for example `find -name '*secret*'`) are approval-gated. **Insecure edits** deliberately skips proposed content/script scanning only for `write` and `edit`; use it temporarily and remember that protected paths such as `.env` remain blocked. Note that package.json scripts written while Insecure edits is on can later run through allowed package-manager commands such as `npm test`, so turn it back off when you are done.\n\n---\n\n## Commands\n\n| Command | Description |\n| --- | --- |\n| `/guardme` | Open the GuardMe configuration TUI on the General pane. |\n| `/guardme help` | Show compact command usage. |\n\nThe General pane includes project active/off state, Pi project-trust controls, warning detail screens, diagnostic detail screens, policy setup, and rule views.\n\n---\n\n## Approval Flow\n\nFor dangerous-but-not-hard-forbidden actions and policy-missing shell/script commands:\n\n1. First matching attempt: GuardMe blocks the tool call, records a warned fingerprint, and gives the model safer-behavior guidance.\n2. Repeated matching attempt: GuardMe resolves `approvalMode` before touching any approval UI method.\n3. If interactive approval is unavailable, GuardMe returns an ordinary blocked tool result with bounded, redacted `WARNINGS & DECISIONS` guidance so the agent can continue safely.\n\nApproval modes:\n\n- `auto` (default): preserve TUI approval; RPC, JSON, print, and other non-interactive modes fail closed without an approval UI request.\n- `interactive`: allow approval UI when Pi exposes the relevant method, including RPC controllers that implement `extension_ui_request` / `extension_ui_response`.\n- `agent`: never show an approval prompt in any run mode (TUI included); block the first in-process attempt and same-turn duplicates with a short notification, then automatically allow-once only an identical fingerprint retried in a later agent turn.\n- `block`: never call an interactive GuardMe approval UI method.\n\nManaged child processes can explicitly opt into later-turn automatic approval:\n\n```bash\nGUARDME_APPROVAL_MODE=agent pi --mode json ...\n```\n\n`agent` approvals never save policy rules and are recorded as `automatic-decision` audit entries rather than user decisions. Dangerous actions are approved once per block/retry cycle, while an approved policy-missing command stays allowed for the rest of the session (each reuse is still audited). Hard denials, explicit command/path deny rules, protected credentials/paths, and outside-project denials are never eligible. Persisted warning state cannot skip the first in-process block, and duplicate calls in one assistant response cannot satisfy the later-turn requirement.\n\nPi exposes the current run mode but no reliable subagent marker, so GuardMe never auto-detects children or enables `agent` mode for them. Set `GUARDME_APPROVAL_MODE=agent` only in explicitly managed child processes. Use `GUARDME_APPROVAL_MODE=block` to force all children to fail closed, or `GUARDME_APPROVAL_MODE=interactive` only when an RPC controller explicitly completes the extension approval round trip. Invalid YAML or environment values report diagnostics and resolve safely to `block` for that source/override.\n\nInteractive approval choices:\n\n- Allow once\n- Deny once\n- Allow + save project rule\n- Deny + save project rule\n- Allow + save global rule\n- Deny + save global rule\n\nSaved decisions append narrow YAML rules, reload policy for the current session, and record redacted state. GuardMe refuses to save allow rules for hard-denied actions and refuses persistent command rules that contain secret-like values.\n\n---\n\n## Troubleshooting\n\n| Problem | Try |\n| --- | --- |\n| Expected command is blocked | Open `/guardme`, inspect the warning, then allow once or save a narrow project/global rule if appropriate. |\n| Approval prompt does not appear | `auto` prompts only in TUI, and `agent` never prompts anywhere — it blocks once and auto-allows an identical later-turn retry. Use `interactive` only for an RPC controller that handles the extension UI round trip. |\n| Project policy or settings are ignored | Trust the project from `/guardme` and reload/restart pi if needed. |\n| Cloud CLI is blocked | This is a hard protection. Run cloud commands outside Pi or use a separate, intentionally isolated workflow. |\n| A broad command allow still blocks | GuardMe evaluates every executable segment and protected path first; allow `ls *` cannot approve `ls && rm -rf build` or `cat .env`. `find -L` follows symlinks, so it needs an exact reviewed command allow or user approval even when `find *` is allowed. |\n| Saved rule is refused | GuardMe will not persist hard-denied actions or command rules containing secret-like values. Use allow once or add a sanitized rule manually. |\n| Need a starter policy file | Run `/guardme`, open Setup, and create global or project defaults. Missing files are okay because built-in defaults still apply. |\n\n---\n\n## Diagnostics\n\nUse `/guardme` to open warning and diagnostic detail screens. Diagnostics include policy load problems, unsafe symlink or size checks, skipped project-local resources, malformed YAML/state, refused policy writes, and other fail-closed conditions.\n\nValidation from a source checkout:\n\n```bash\nnpm run validate\n```\n\nUseful focused checks:\n\n```bash\nnpm run typecheck\nnpm run test\nnpm run check:pack\n```\n\nSee [`docs/VALIDATION.md`](docs/VALIDATION.md) for isolated and manual smoke scenarios.\n\n---\n\n## Update and Uninstall\n\n```bash\npi update --extensions                  # update installed pi packages\npi update npm:@senad-d/guardme          # update GuardMe only\npi remove npm:@senad-d/guardme          # remove global install\npi remove npm:@senad-d/guardme -l       # remove project-local install\n```\n\nRemoving the package does not automatically delete policy or state files under `~/.pi/agent/` or `.pi/agent/`. Review those files before deleting them manually.\n\n---\n\n## Development\n\n```bash\nnpm ci\nnpm run typecheck\nnpm run test\nnpm run check:pack\nnpm run validate\n```\n\nRun GuardMe from this checkout in an isolated Pi session:\n\n```bash\npi --no-extensions -e .\n```\n\nAdditional checks:\n\n```bash\nnpm run format:check\nnpm run test:e2e\n```\n\nImplementation references:\n\n- [`docs/PROJECT_DEFINITION_BRIEF.md`](docs/PROJECT_DEFINITION_BRIEF.md)\n- [`docs/POLICY.md`](docs/POLICY.md)\n- [`docs/VALIDATION.md`](docs/VALIDATION.md)\n- [`specs/spec-architecture.md`](specs/spec-architecture.md)\n- [`specs/spec-guidelines.md`](specs/spec-guidelines.md)\n- [`specs/spec-tasks.md`](specs/spec-tasks.md)\n\n---\n\n## Publishing\n\nGuardMe publishes to npm as `@senad-d/guardme`. You need an npm account with publish access to the `@senad-d` scope.\n\n```bash\nnpm login\nnpm whoami\nnode scripts/publish-npm.mjs\n```\n\nThe publish script requires a clean working tree, asks for the version number, runs validation, updates `package.json` and `package-lock.json` with `npm version <version>`, creates the `v<version>` git tag, publishes with `npm publish --access public`, and then offers to push the release commit and tag.\n\nRun it only from a clean working tree after updating `CHANGELOG.md`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}