- Remove shell:true from runner.ts (command injection vector closed) - Import cross-spawn instead of child_process.spawn; add windowsHide:true - Add src/runtime/resolve-claude.ts: CLAUDE_PATH env override, where/which PATH fallback, in-memory cache, clear error message on not-found - Add tests/unit/resolve-claude.test.ts: 5 Vitest tests covering env override, PATH fallback, multi-line output trimming, error case, and cache behaviour - Add cross-spawn + @types/cross-spawn to package.json; add vitest + test script
33 lines
778 B
JSON
33 lines
778 B
JSON
{
|
|
"name": "disclaw",
|
|
"version": "0.1.0",
|
|
"description": "Discord-bot-powered multi-agent workspace manager built on Claude Code",
|
|
"main": "dist/index.js",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "node dist/index.js",
|
|
"dev": "tsc && node dist/index.js",
|
|
"test": "vitest run"
|
|
},
|
|
"vitest": {
|
|
"include": ["tests/**/*.test.ts"],
|
|
"environment": "node"
|
|
},
|
|
"dependencies": {
|
|
"better-sqlite3": "^11.0.0",
|
|
"cross-spawn": "^7.0.6",
|
|
"discord.js": "^14.16.0",
|
|
"dotenv": "^16.4.0",
|
|
"yaml": "^2.6.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/better-sqlite3": "^7.6.0",
|
|
"@types/cross-spawn": "^6.0.6",
|
|
"@types/node": "^22.0.0",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^4.1.4"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
}
|
|
}
|