* feat: scaffold Rust native engine with grep module (napi-rs)
Adds a Rust N-API addon architecture inspired by Oh My Pi's pi-natives.
The grep module wraps ripgrep's core crates (grep-regex, grep-searcher,
grep-matcher) and exposes `search()` and `grep()` to Node.js via napi-rs.
Includes:
- Cargo workspace at native/ with engine (cdylib) and grep (lib) crates
- Build script (native/scripts/build.js) producing platform-tagged .node files
- TypeScript wrapper package (@gsd/native) with types and loader
- 6 Rust unit tests + 9 Node.js integration tests (all passing)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: audit fixes for rust native engine PR
- Fix repository URL to gsd-build/gsd-2
- Remove dead add_custom_ignore_filename("") call
- Unify error model: search() now returns Result<> (throws) matching grep()
- Remove error field from NapiSearchResult and SearchResult types
- Use t.after() in integration tests for reliable temp dir cleanup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
87 lines
3 KiB
JSON
87 lines
3 KiB
JSON
{
|
|
"name": "gsd-pi",
|
|
"version": "2.9.0",
|
|
"description": "GSD — Get Shit Done coding agent",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/glittercowboy/gsd-pi.git"
|
|
},
|
|
"homepage": "https://github.com/glittercowboy/gsd-pi#readme",
|
|
"bugs": {
|
|
"url": "https://github.com/glittercowboy/gsd-pi/issues"
|
|
},
|
|
"type": "module",
|
|
"workspaces": [
|
|
"packages/*"
|
|
],
|
|
"bin": {
|
|
"gsd": "dist/loader.js",
|
|
"gsd-cli": "dist/loader.js"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"packages",
|
|
"pkg",
|
|
"src/resources",
|
|
"scripts/postinstall.js",
|
|
"package.json",
|
|
"README.md"
|
|
],
|
|
"piConfig": {
|
|
"name": "gsd",
|
|
"configDir": ".gsd"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.6.0"
|
|
},
|
|
"scripts": {
|
|
"build:pi-tui": "npm run build -w @gsd/pi-tui",
|
|
"build:pi-ai": "npm run build -w @gsd/pi-ai",
|
|
"build:pi-agent-core": "npm run build -w @gsd/pi-agent-core",
|
|
"build:pi-coding-agent": "npm run build -w @gsd/pi-coding-agent",
|
|
"build:pi": "npm run build:pi-tui && npm run build:pi-ai && npm run build:pi-agent-core && npm run build:pi-coding-agent",
|
|
"build": "npm run build:pi && tsc && npm run copy-themes",
|
|
"copy-themes": "node -e \"const{mkdirSync,cpSync}=require('fs');const{resolve}=require('path');const src=resolve(__dirname,'packages/pi-coding-agent/dist/modes/interactive/theme');mkdirSync('pkg/dist/modes/interactive/theme',{recursive:true});cpSync(src,'pkg/dist/modes/interactive/theme',{recursive:true})\"",
|
|
"test": "node --import ./src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test src/resources/extensions/gsd/tests/*.test.ts src/resources/extensions/gsd/tests/*.test.mjs src/tests/*.test.ts",
|
|
"test:browser-tools": "node --test src/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs src/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs",
|
|
"test:native": "node --test packages/native/src/__tests__/grep.test.mjs",
|
|
"build:native": "node native/scripts/build.js",
|
|
"build:native:dev": "node native/scripts/build.js --dev",
|
|
"dev": "tsc --watch",
|
|
"postinstall": "node scripts/postinstall.js",
|
|
"pi:install-global": "node scripts/install-pi-global.js",
|
|
"pi:uninstall-global": "node scripts/uninstall-pi-global.js",
|
|
"sync-pkg-version": "node scripts/sync-pkg-version.cjs",
|
|
"prepublishOnly": "npm run sync-pkg-version && npm run build"
|
|
},
|
|
"dependencies": {
|
|
"@clack/prompts": "^1.1.0",
|
|
"@gsd/pi-agent-core": "*",
|
|
"@gsd/pi-ai": "*",
|
|
"@gsd/pi-coding-agent": "*",
|
|
"@gsd/pi-tui": "*",
|
|
"picocolors": "^1.1.1",
|
|
"picomatch": "^4.0.3",
|
|
"playwright": "^1.58.2",
|
|
"sharp": "^0.34.5"
|
|
},
|
|
"bundleDependencies": [
|
|
"@gsd/pi-agent-core",
|
|
"@gsd/pi-ai",
|
|
"@gsd/pi-coding-agent",
|
|
"@gsd/pi-tui"
|
|
],
|
|
"devDependencies": {
|
|
"@types/node": "^22.0.0",
|
|
"@types/picomatch": "^4.0.2",
|
|
"jiti": "^2.6.1",
|
|
"typescript": "^5.4.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"fsevents": "~2.3.3"
|
|
},
|
|
"overrides": {
|
|
"gaxios": "7.1.4"
|
|
}
|
|
}
|