Adds `codegraph visualize` command that launches a localhost web UI for visually exploring code relationships. Users can ask natural language questions like "how does authentication work?" and see the relevant code flow rendered as an interactive graph. Key components: - Visualizer HTTP server (src/visualizer/server.ts) with REST API - Single-page frontend with Cytoscape.js graph + highlight.js code preview - Claude CLI integration for intelligent query interpretation - Dark theme, right-click context menus, keyboard shortcuts - Detail panel with source code, callers, callees, hierarchy Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
2.1 KiB
JSON
61 lines
2.1 KiB
JSON
{
|
|
"name": "@colbymchenry/codegraph",
|
|
"version": "0.6.5",
|
|
"description": "Supercharge Claude Code with semantic code intelligence. 30% fewer tokens, 25% fewer tool calls, 100% local.",
|
|
"main": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"bin": {
|
|
"codegraph": "./dist/bin/codegraph.js"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"scripts",
|
|
"README.md"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc && npm run copy-assets",
|
|
"postinstall": "node scripts/postinstall.js",
|
|
"preuninstall": "node dist/bin/uninstall.js",
|
|
"copy-assets": "node -e \"const fs=require('fs');fs.mkdirSync('dist/db',{recursive:true});fs.copyFileSync('src/db/schema.sql','dist/db/schema.sql');fs.mkdirSync('dist/extraction/wasm',{recursive:true});fs.readdirSync('src/extraction/wasm').filter(f=>f.endsWith('.wasm')).forEach(f=>fs.copyFileSync('src/extraction/wasm/'+f,'dist/extraction/wasm/'+f));fs.mkdirSync('dist/visualizer/public',{recursive:true});fs.copyFileSync('src/visualizer/public/index.html','dist/visualizer/public/index.html')\"",
|
|
"dev": "tsc --watch",
|
|
"cli": "npm run build && node dist/bin/codegraph.js",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:eval": "vitest run __tests__/evaluation/",
|
|
"eval": "npm run build && npx tsx __tests__/evaluation/runner.ts",
|
|
"clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\""
|
|
},
|
|
"keywords": [
|
|
"code-intelligence",
|
|
"knowledge-graph",
|
|
"static-analysis",
|
|
"semantic-search"
|
|
],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@xenova/transformers": "^2.17.0",
|
|
"commander": "^14.0.2",
|
|
"figlet": "^1.8.0",
|
|
"node-sqlite3-wasm": "^0.8.30",
|
|
"picomatch": "^4.0.3",
|
|
"tree-sitter-wasms": "^0.1.11",
|
|
"web-tree-sitter": "^0.25.3"
|
|
},
|
|
"devDependencies": {
|
|
"@types/better-sqlite3": "^7.6.0",
|
|
"@types/figlet": "^1.5.8",
|
|
"@types/node": "^20.19.30",
|
|
"@types/picomatch": "^4.0.2",
|
|
"typescript": "^5.0.0",
|
|
"vitest": "^2.1.9"
|
|
},
|
|
"optionalDependencies": {
|
|
"better-sqlite3": "^11.0.0",
|
|
"sqlite-vss": "^0.1.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
}
|
|
}
|