* feat(mcp): line numbers in explore output + per-file cluster fixes Follow-up to #185. Three changes to codegraph_explore: 1. Source sections now carry cat -n style line-number prefixes (<num>\t<code>), so the agent can cite file:line straight from the payload instead of re-Reading the file just to recover a line number. Isolated A/B: the no-line-numbers arm spent 2 Reads + a grep to find a line number the line-numbered arm cited with zero follow-up calls. Payload cost ~3-5%. Toggle off with CODEGRAPH_EXPLORE_LINENUMS=0. 2. Per-file cluster selection now ranks clusters containing a query entry point ahead of dense declaration blocks. Density-only ranking buried the relevant methods (perform/didCreateURLRequest/task in Alamofire's Session.swift) under the top-of-file class header + property list. 3. Whole-file "envelope" nodes (a class/struct/etc. spanning >50% of the file) are excluded from clustering. The Session class spans ~1,400 lines; keeping it collapsed every method into one giant cluster that tail-trimmed down to just the class header, hiding the methods. Net vs the 0.7.10 baseline, line numbers on: Alamofire -60%, Excalidraw -32%, VS Code -12% per explore call. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(mcp): language-neutral omission markers in explore output The gap separator and the two tail-trim markers used C-style `//` comments, which aren't comments in Python, Ruby, etc. Switch to plain `... (gap) ...` / `... (trimmed) ...` so they read correctly inside any language's fenced source block. With line numbers on, the line-number jump already corroborates a gap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(mcp): language-neutral truncation marker in codegraph_context Sibling to the explore marker fix: codegraph_context's code-block truncation used a C-style `// ... truncated ...`. Switch to `... (truncated) ...` so it reads correctly in any language's fenced source block. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(release): bump version to 0.7.11 --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
60 lines
2.0 KiB
JSON
60 lines
2.0 KiB
JSON
{
|
|
"name": "@colbymchenry/codegraph",
|
|
"version": "0.7.11",
|
|
"description": "Supercharge Claude Code with semantic code intelligence. 94% fewer tool calls • 77% faster exploration • 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 && node -e \"require('fs').chmodSync('dist/bin/codegraph.js', 0o755)\"",
|
|
"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))\"",
|
|
"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"
|
|
],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@clack/prompts": "^1.3.0",
|
|
"commander": "^14.0.2",
|
|
"fast-string-width": "^3.0.2",
|
|
"fast-wrap-ansi": "^0.2.0",
|
|
"jsonc-parser": "^3.3.1",
|
|
"node-sqlite3-wasm": "^0.8.30",
|
|
"picomatch": "^4.0.3",
|
|
"sisteransi": "^1.0.5",
|
|
"tree-sitter-wasms": "^0.1.11",
|
|
"web-tree-sitter": "^0.25.3"
|
|
},
|
|
"devDependencies": {
|
|
"@types/better-sqlite3": "^7.6.0",
|
|
"@types/node": "^20.19.30",
|
|
"@types/picomatch": "^4.0.2",
|
|
"typescript": "^5.0.0",
|
|
"vitest": "^2.1.9"
|
|
},
|
|
"optionalDependencies": {
|
|
"better-sqlite3": "^11.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.0.0 <25.0.0"
|
|
}
|
|
}
|