## Summary
Ripgrep is our preferred tool for file search. When users install via
`brew install codex`, it's automatically installed as a dependency. We
want to ensure that users running via an npm install also have this
tool! Microsoft has already solved this problem for VS Code - let's not
reinvent the wheel.
This approach of appending to the PATH directly might be a bit
heavy-handed, but feels reasonably robust to a variety of environment
concerns. Open to thoughts on better approaches here!
## Testing
- [x] confirmed this import approach works with `node -e "const { rgPath
} = require('@vscode/ripgrep'); require('child_process').spawn(rgPath,
['--version'], { stdio: 'inherit' })"`
- [x] Ran codex.js locally with `rg` uninstalled, asked it to run `which
rg`. Output below:
```
⚡ Ran command which rg; echo $?
⎿ /Users/dylan.hurd/code/dh--npm-rg/node_modules/@vscode/ripgrep/bin/rg
0
codex
Re-running to confirm the path and exit code.
- Path: `/Users/dylan.hurd/code/dh--npm-rg/node_modules/@vscode/ripgrep/bin/rg`
- Exit code: `0`
```
120 lines
4.0 KiB
JSON
120 lines
4.0 KiB
JSON
{
|
|
"name": "@openai/codex",
|
|
"version": "0.0.0-dev",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "@openai/codex",
|
|
"version": "0.0.0-dev",
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@vscode/ripgrep": "^1.15.14"
|
|
},
|
|
"bin": {
|
|
"codex": "bin/codex.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=20"
|
|
}
|
|
},
|
|
"node_modules/@vscode/ripgrep": {
|
|
"version": "1.15.14",
|
|
"resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.15.14.tgz",
|
|
"integrity": "sha512-/G1UJPYlm+trBWQ6cMO3sv6b8D1+G16WaJH1/DSqw32JOVlzgZbLkDxRyzIpTpv30AcYGMkCf5tUqGlW6HbDWw==",
|
|
"hasInstallScript": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"https-proxy-agent": "^7.0.2",
|
|
"proxy-from-env": "^1.1.0",
|
|
"yauzl": "^2.9.2"
|
|
}
|
|
},
|
|
"node_modules/agent-base": {
|
|
"version": "7.1.4",
|
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
|
|
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">= 14"
|
|
}
|
|
},
|
|
"node_modules/buffer-crc32": {
|
|
"version": "0.2.13",
|
|
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
|
"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": "*"
|
|
}
|
|
},
|
|
"node_modules/debug": {
|
|
"version": "4.4.1",
|
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
|
|
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"ms": "^2.1.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=6.0"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"supports-color": {
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
"node_modules/fd-slicer": {
|
|
"version": "1.1.0",
|
|
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
|
|
"integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"pend": "~1.2.0"
|
|
}
|
|
},
|
|
"node_modules/https-proxy-agent": {
|
|
"version": "7.0.6",
|
|
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
|
|
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"agent-base": "^7.1.2",
|
|
"debug": "4"
|
|
},
|
|
"engines": {
|
|
"node": ">= 14"
|
|
}
|
|
},
|
|
"node_modules/ms": {
|
|
"version": "2.1.3",
|
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/pend": {
|
|
"version": "1.2.0",
|
|
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
|
"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/proxy-from-env": {
|
|
"version": "1.1.0",
|
|
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
|
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/yauzl": {
|
|
"version": "2.10.0",
|
|
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
|
"integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"buffer-crc32": "~0.2.3",
|
|
"fd-slicer": "~1.1.0"
|
|
}
|
|
}
|
|
}
|
|
}
|