{"_id":"@alexleekt/pi-pkg-guard","_rev":"2-afc875aee84da70fce9929a1f0b0f7ad","name":"@alexleekt/pi-pkg-guard","dist-tags":{"latest":"0.13.1"},"versions":{"0.13.0":{"name":"@alexleekt/pi-pkg-guard","version":"0.13.0","keywords":["pi-package","pi-extension","pi-coding-agent","package-manager","guardrails","npm","extensions"],"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","_id":"@alexleekt/pi-pkg-guard@0.13.0","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-pkg-guard#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"pi":{"extensions":["./extensions/index.ts"]},"dist":{"shasum":"ceabd3feca7dbc839a47849413054344fa3604b1","tarball":"https://registry.npmjs.org/@alexleekt/pi-pkg-guard/-/pi-pkg-guard-0.13.0.tgz","fileCount":22,"integrity":"sha512-TZYH+nh+TzcgaxejwMaxHwgXR9uOJ+iyziGxJCeJ/Ye5CHAmSnQ2VrnwglwCl0msBDCFvdEvZDvN2sS51cYRGw==","signatures":[{"sig":"MEUCIQD3q9KnZ0W7mtL8rnDM6/UBSUz4IFzRzwVKAhtebn2K+QIgUTHm3t5SpBTy6dI5O7yNqFvdXy7QKcUf5fZOYL60xks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200474},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4cfa449775b93e3c602c4cdf6eaca7b15995de15","scripts":{"test":"tsx --test test/**/*.test.ts"},"_npmUser":{"name":"alexleekt","email":"stratrix@gmail.com"},"repository":{"url":"git+https://github.com/alexleekt/pi-extensions.git","type":"git"},"_npmVersion":"11.13.0","description":"Guards against unregistered pi packages — installed via npm but not registered in pi's settings","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.0.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.0"},"peerDependencies":{"@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-pkg-guard_0.13.0_1778963642161_0.2974740627144219","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@alexleekt/pi-pkg-guard","version":"0.13.1","description":"Don't let orphaned packages clutter your agent. Guard against unregistered pi packages.","type":"module","license":"MIT","author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"repository":{"type":"git","url":"git+https://github.com/alexleekt/pi-extensions.git"},"homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-pkg-guard#readme","bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"keywords":["pi-package","pi-extension","pi","package-manager","guardrails","npm","extensions"],"scripts":{"typecheck":"tsc --noEmit","check":"tsc --noEmit","test":"tsx --test test/**/*.test.ts"},"devDependencies":{"@types/node":"^20.0.0","tsx":"^4.21.0","typescript":"^5.0.0"},"publishConfig":{"access":"public"},"pi":{"extensions":["./extensions/index.ts"]},"peerDependencies":{"@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*"},"engines":{"node":">=18.0.0"},"gitHead":"31d2e634af12a9494dcca66aebfde68803dd74ca","_id":"@alexleekt/pi-pkg-guard@0.13.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-h8xbBdI3Jjf0gSIdv5lqvJiCuCqyE2Bas4wLeRD6ow228xoSuXmwXfuO3HKoWfLISBkoPVFh7l8r3U/miy8LXg==","shasum":"0aa741b9f1eb616e88d5abc21285f3b8a20e9ebd","tarball":"https://registry.npmjs.org/@alexleekt/pi-pkg-guard/-/pi-pkg-guard-0.13.1.tgz","fileCount":5,"unpackedSize":87802,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexleekt%2fpi-pkg-guard@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBquIxsKWmZAHJh3kKcJiYRqfTKG1vmYEzxt1X3GS6bsAiEAr5pGdLDWHPcNSY2gk7dfBrh50Zir6QD7+soSb1tGLyk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:80c33563-0d54-4d26-b667-378829635ead"}},"directories":{},"maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-pkg-guard_0.13.1_1779859158899_0.9554539494065968"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-16T20:34:02.072Z","modified":"2026-05-27T05:19:19.358Z","0.13.0":"2026-05-16T20:34:02.359Z","0.13.1":"2026-05-27T05:19:19.068Z"},"bugs":{"url":"https://github.com/alexleekt/pi-extensions/issues"},"author":{"name":"Alex Lee","email":"657215+alexleekt@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/alexleekt/pi-extensions/tree/main/packages/pi-pkg-guard#readme","keywords":["pi-package","pi-extension","pi","package-manager","guardrails","npm","extensions"],"repository":{"type":"git","url":"git+https://github.com/alexleekt/pi-extensions.git"},"description":"Don't let orphaned packages clutter your agent. Guard against unregistered pi packages.","maintainers":[{"name":"alexleekt","email":"stratrix@gmail.com"}],"readme":"# @alexleekt/pi-pkg-guard\n\n[![npm](https://img.shields.io/npm/v/@alexleekt/pi-pkg-guard)](https://www.npmjs.com/package/@alexleekt/pi-pkg-guard)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n> Don't let orphaned packages clutter your agent.\n\nGuard against unregistered pi packages — installed via npm but not registered in pi's settings.\n\n---\n\n## Quick Start\n\n```bash\npi install npm:@alexleekt/pi-pkg-guard\n```\n\nThen in pi: `/package-guard`\n\n---\n\n## The Problem\n\n```bash\nnpm install -g pi-token-burden  # Installs to npm global\n# But pi doesn't know about it!\n```\n\n**pi-pkg-guard** detects, warns, and fixes this automatically.\n\nAn **unregistered package** is a pi extension installed via npm but not registered in pi's settings. This creates a mismatch where the package exists on your system, but pi can't use it.\n\n---\n\n## Features\n\n- **Startup check** — Warns if unregistered packages found\n- **npm guard** — Warns when you run `npm install -g pi-*`\n- **Scan & Register** — Find and register unregistered packages automatically\n- **Backup** — Save to local file + optional GitHub Gist (with versioned schema)\n- **Restore** — Selectively restore packages from backup with automatic legacy migration\n- **Schema Validation** — Strict backup validation with `$schema` field for future-proofing\n- **Multi-language** — English, Spanish, and more (ICU MessageFormat)\n\n---\n\n## Documentation\n\n📚 **[View Documentation](docs/README.md)** — Complete documentation index\n\n**Quick Links:**\n- [Getting Started](docs/user-guides/getting-started.md) — First time tutorial\n- [Installation](docs/user-guides/installation.md) — Install options\n- [Usage Guide](docs/user-guides/usage.md) — Complete feature guide\n- [Backup Strategies](docs/user-guides/backup-strategies.md) — Best practices for backups\n- [Multi-Machine Setup](docs/user-guides/multi-machine-setup.md) — Sync across devices\n- [Troubleshooting](docs/user-guides/troubleshooting.md) — Common issues & solutions\n\n**Reference:**\n- [Architecture](docs/reference/architecture.md) — Technical design\n- [API](docs/reference/api.md) — Extension API\n- [Security Model](docs/reference/security.md) — Security validations\n- [i18n Guide](docs/reference/i18n-guide.md) — Translation contributor guide\n\n**Development:**\n- [Contributing](docs/development/contributing.md) — Contributor guidelines\n- [Testing](docs/development/testing.md) — Test writing guide\n- [Release Process](docs/development/release-process.md) — Release workflow\n\n---\n\n## Quick Commands\n\n| Command | Action |\n|---------|--------|\n| `/package-guard` | Open interactive menu |\n| `/package-guard scan` | Scan and fix unregistered packages |\n| `/package-guard backup` | Save backup (local + Gist) |\n| `/package-guard restore` | Restore packages from backup |\n| `/package-guard config` | Open configuration settings |\n\n## In-Menu Navigation\n\nMenu items are numbered for quick selection:\n\n| # | Option |\n|---|--------|\n| 1 | Scan / Register |\n| 2 | Backup |\n| 3 | Restore |\n| 4 | Config |\n| 5 | Exit |\n\n## Passive Warnings\n\n**Startup:** `3 packages to register. Run /package-guard`\n\n**npm install:** `Use 'pi install npm:pi-foo' instead of 'npm install -g'`\n\n---\n\n## Development\n\n```bash\ngit clone https://github.com/alexleekt/pi-extensions.git\ncd packages/pi-pkg-guard\ncd pi-pkg-guard\nnpm install\n\njust test      # Run tests\njust check     # Run all checks\njust release   # Create release\n```\n\nSee [Contributing Guide](docs/development/contributing.md) for details.\n\n---\n\n## Release Process\n\nThis project uses **GitHub Actions with Trusted Publishing** (OIDC) for automated npm releases:\n\n```bash\njust release        # Auto-detects version from package.json\n```\n\nSee full details in [Release Process](docs/development/release-process.md).\n\n---\n\n## License\n\nMIT © Alex Lee\n","readmeFilename":"README.md"}