{"_id":"@davehardy20/pi-ast-grep-tools","name":"@davehardy20/pi-ast-grep-tools","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@davehardy20/pi-ast-grep-tools","version":"0.1.0","description":"Pi package for structural code search and replace using AST matching via ast-grep.","type":"module","keywords":["pi-package","pi-extension","ast-grep","code-search","code-replace"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/davehardy20/pi-ast-grep-tools.git"},"bugs":{"url":"https://github.com/davehardy20/pi-ast-grep-tools/issues"},"homepage":"https://github.com/davehardy20/pi-ast-grep-tools#readme","publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"dependencies":{"@ast-grep/napi":"^0.42.2"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*","typebox":"*"},"peerDependenciesMeta":{"@earendil-works/pi-coding-agent":{"optional":false},"typebox":{"optional":false}},"devDependencies":{"@earendil-works/pi-coding-agent":"^0.74.0","@types/node":"^24.7.2","typebox":"^1.1.24","typescript":"^5.9.3","vitest":"^3.2.4"},"pi":{"extensions":["./src/index.ts"]},"gitHead":"2497e1932ccf1874c8d264b957c25789f5fb1654","_id":"@davehardy20/pi-ast-grep-tools@0.1.0","_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-3DAQN+avSlKBxqtKVbjVffLkXplVcNM1WKM1kgg+TStg21zpJYZHTfZbbhEnT8TkYEi53KG+UyRS26RLnXUM7A==","shasum":"54bc5c5abd986bbc7520364505d559e9516dd587","tarball":"https://registry.npmjs.org/@davehardy20/pi-ast-grep-tools/-/pi-ast-grep-tools-0.1.0.tgz","fileCount":6,"unpackedSize":21477,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFPm9jYpIdcRYZiiHcPeE0VlZNAu2fkW2e/pKqVz2n0qAiEAro1AmGnpanbxN23qmLPUnaAXG0I2i7IzyPzkhU06EDg="}]},"_npmUser":{"name":"davehardy20","email":"dave.hardy@protonmail.com"},"directories":{},"maintainers":[{"name":"davehardy20","email":"dave.hardy@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-ast-grep-tools_0.1.0_1779016953096_0.9823926971006447"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-17T11:22:32.974Z","0.1.0":"2026-05-17T11:22:33.231Z","modified":"2026-05-17T11:22:33.498Z"},"maintainers":[{"name":"davehardy20","email":"dave.hardy@protonmail.com"}],"description":"Pi package for structural code search and replace using AST matching via ast-grep.","homepage":"https://github.com/davehardy20/pi-ast-grep-tools#readme","keywords":["pi-package","pi-extension","ast-grep","code-search","code-replace"],"repository":{"type":"git","url":"git+https://github.com/davehardy20/pi-ast-grep-tools.git"},"bugs":{"url":"https://github.com/davehardy20/pi-ast-grep-tools/issues"},"license":"MIT","readme":"# @davehardy20/pi-ast-grep-tools\n\nStructural code search and replace for Pi using AST matching via [ast-grep](https://ast-grep.github.io/).\n\n## What it adds\n\n- **`ast_grep_search`** tool — Find code patterns using AST matching. More precise than text search. Supports TypeScript, JavaScript, and TSX.\n- **`ast_grep_replace`** tool — Find and replace code patterns using AST matching. Safer than text replace because it respects syntax boundaries. Applies changes to files.\n- **`/ast-grep-status`** command — Show package name, version, source path, and supported languages.\n\n### Pattern syntax\n\nPattern syntax is language-specific AST pattern syntax:\n\n- `console.log($A)` matches any `console.log` call\n- `function $NAME() { }` matches empty function declarations\n- `$FUNC($$$ARGS)` matches any function call\n\nSee the [ast-grep pattern guide](https://ast-grep.github.io/guide/pattern-syntax.html) for full details.\n\n## Install\n\nFrom npm:\n\n```bash\npi install npm:@davehardy20/pi-ast-grep-tools\n```\n\nFrom git:\n\n```bash\npi install git:github.com/davehardy20/pi-ast-grep-tools\n```\n\nFrom a local checkout during development:\n\n```bash\npi install /Users/dave/tools/pi-ast-grep-tools\n```\n\nFor one run only:\n\n```bash\npi -e /Users/dave/tools/pi-ast-grep-tools\n```\n\n## Settings\n\nNo special settings required. The extension auto-detects the target language from file extensions. You can override the language explicitly with the `language` parameter.\n\nSupported languages: TypeScript, JavaScript, TSX.\n\n## Troubleshooting\n\nRun `/ast-grep-status` to confirm:\n\n- package name\n- package version\n- loaded source path\n\nIf commands appear twice, Pi may be loading both the package and the old local extension. Disable or remove the old local auto-discovered extension (`ast-grep-tools.ts` in `~/.pi/agent/extensions/`) before reload verification.\n\n## Update flow\n\n1. Update the package repo\n2. Push to GitHub\n3. Run `pi update --extensions` or reinstall the package\n4. Run `/reload`\n\n`/reload` alone does not fetch newer package commits.\n\n## Build and test\n\n```bash\nnpm run typecheck\nnpm run build\nnpm test\n```\n","readmeFilename":"README.md","_rev":"1-bf74f98eefd855a58db60195c815ce21"}