mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-11-10 08:27:27 +00:00
* fix: recover missed test scenarios Run the full core test inventory and retrieve identical callback bodies across setup contexts. Separate assertion evidence from context and retain conservative input, path and runtime provenance checks. Restore prepared test inputs and report missing runtime collection. Add the audited recall corpus and inventory regressions. * Address PR review feedback (#3743) Correct counted nouns in the inventory report, document fully skipped modules, and include unhandled runner errors in the incomplete-collection warning. * Address PR review feedback (#3743) Force-stage explicit temporary fixtures despite inherited Git ignores, and isolate recorded-file collection-error accounting in the inventory tests. * fix(review): simplify selection and guard mixed artifacts * feat(test): detect fixture consolidation opportunities Capture source inputs used by integration tests and compare fixture clones, executed blocks, and assertion subjects and values. Report partial overlaps with the unique checks and fixture spans that consolidation must preserve. Keep cross-language structural suggestions separate from observed equality. Use pinned jscpd with direct pair verification when longer representatives hide partial clones. Retain capture gaps and native/worker limitations. Validate with 1,245 detector regressions, 28 pipeline pair controls, and 12 manually labeled comparisons. Scan 30,698 core cases and find 3,111 opportunity groups; exclude the capture's 103 failed and 89 skipped cases. * Fix scenario-map review findings (#3743) Resolve assertion aliases by lexical binding and normalize duplicate static object keys. Capture fixture files through checked descriptors with bounded reads and guaranteed cleanup. * fix: address test duplicate audit false signals * refactor(test): reuse assertion binding analysis Reuse lexical bindings within each evidence extraction while retaining assertion-specific offsets and expansion limits. Deduplicate fixture coverage endpoints numerically without string conversion. Preserve complete assertion evidence across 29,286 static instances and weighted coverage across 10,000 generated interval cases. * Fix scenario-map review findings (#3743) Bind consolidation evidence to the assertion call accepted by the check extractor, so unsupported same-line calls cannot supply incorrect subjects or expectations. Keep source provenance private and serialized checks intact. Exercise omitted plugins alongside instrumented Vitest runs. * fix: retain input-shaped scenario controls (#3743) Compare assertion subject structure separately from exact input-bearing assertion keys, so changing literal inputs retains table-row and boundary classification. Preserve selectors, callee identity and regex values. Keep the control expectations unchanged. Add regressions for literal inputs, queried subjects and nested regex arguments; bump the fingerprint engine version so reclassified findings resurface. * test: give scenario cases unique titles Include the parameterized case index so repeated input expressions and truncated audit paths cannot collide in the CI execution inventory. * fix: scope assertion subjects to their bindings Prevent same-named declarations in different files or scopes from becoming exact assertion matches. Preserve same-binding consolidation and advance the fingerprint engine to version 5. * fix: raise full-suite planning heap budget The 30,953-case replay aborts at the default 4 GiB heap. Give only the Plan step 8 GiB and document the same local invocation. The identical four coverage slices complete in 4m34s at 8.2 GiB peak RSS, retaining all 116,409 candidate pairs. * fix: stream full-suite scenario reports The full inventory produces a 663 MiB report, exceeding V8's single-string limit. Write records incrementally and stream only required fields when reading baselines and publishing issue updates. Replay preserves all 116,398 pairs from 30,953 collected cases. The report remains partial when the trace run fails. * fix: preserve test lifecycles during capture Forced test repeats changed cache and file state. Capture ordinary runs, retain runnable siblings during tracing, and keep retry-bearing files inconclusive. Preserve failure details and mark failed captures partial. Use the original JSON serializer so test mocks cannot break fixture reads. * fix: limit trace capture to candidates Keep sibling tests in both passes for suite state, while recording only candidate task IDs. This prevents unrelated timing checks and large corpus tests from failing under tracing. * ci: budget full-suite trace collection * fix: address scenario-map feedback (#3743) --------- Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
179 lines
6 KiB
JSON
179 lines
6 KiB
JSON
{
|
|
"name": "gitnexus",
|
|
"version": "1.6.12",
|
|
"description": "Graph-powered code intelligence for AI agents. Index any codebase, query via MCP or CLI.",
|
|
"author": "Abhigyan Patwari",
|
|
"license": "PolyForm-Noncommercial-1.0.0",
|
|
"homepage": "https://github.com/abhigyanpatwari/GitNexus#readme",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/abhigyanpatwari/GitNexus.git",
|
|
"directory": "gitnexus"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/abhigyanpatwari/GitNexus/issues"
|
|
},
|
|
"keywords": [
|
|
"mcp",
|
|
"model-context-protocol",
|
|
"code-intelligence",
|
|
"knowledge-graph",
|
|
"cursor",
|
|
"claude",
|
|
"codex",
|
|
"ai-agent",
|
|
"gitnexus",
|
|
"static-analysis",
|
|
"codebase-indexing"
|
|
],
|
|
"type": "module",
|
|
"bin": {
|
|
"gitnexus": "dist/cli/index.js"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"prebuilds/bundled",
|
|
"hooks",
|
|
"scripts",
|
|
"skills",
|
|
"web",
|
|
"vendor/**/prebuilds/**",
|
|
"vendor/**/bindings/node/index.js",
|
|
"vendor/**/src/node-types.json",
|
|
"vendor/**/package.json",
|
|
"vendor/**/LICENSE",
|
|
"vendor/**/README.md",
|
|
"vendor/leiden/index.cjs",
|
|
"vendor/leiden/utils.cjs",
|
|
"vendor/lbug-fts/manifest.json",
|
|
"vendor/lbug-vector/manifest.json"
|
|
],
|
|
"scripts": {
|
|
"build": "node scripts/build.js",
|
|
"build:web": "node scripts/build.js --web",
|
|
"serve": "tsx src/cli/index.ts serve",
|
|
"dev": "tsx watch src/cli/index.ts",
|
|
"test": "vitest run",
|
|
"typecheck:tests": "tsc --noEmit -p tsconfig.test.json",
|
|
"test:unit": "vitest run test/unit",
|
|
"pretest:integration": "node scripts/build.js",
|
|
"test:integration": "vitest run test/integration",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:cross-platform": "tsx scripts/run-cross-platform.ts",
|
|
"test:benchmarks": "node --import tsx scripts/run-benchmarks.ts",
|
|
"test:dupes": "node --import tsx tools/test-dupes/test-dupes.ts",
|
|
"test:mutation:prepare": "node --import tsx tools/mutation/prepare/prepare.ts",
|
|
"test:mutation:run": "node --import tsx tools/mutation/driver/run-scope.ts",
|
|
"test:mutation:conformance": "node --import tsx tools/mutation/conformance/run-conformance.ts",
|
|
"test:mutation:classify": "node --import tsx tools/mutation/classify/classify.ts",
|
|
"test:mutation:fidelity": "node --import tsx tools/mutation/fidelity/fidelity.ts",
|
|
"test:mutation:oracle": "node --import tsx tools/mutation/oracle/compare.ts",
|
|
"test:mutation:oracle:command": "node --import tsx tools/mutation/oracle/command-run.ts",
|
|
"test:mutation:oracle:freeze": "node --import tsx tools/mutation/oracle/freeze.ts",
|
|
"test:mutation:bench": "node --import tsx tools/mutation/bench/oracle-cost.ts",
|
|
"test:mutation:controls": "node --import tsx tools/mutation/controls/run-controls.ts",
|
|
"test:scenario-map": "node --import tsx tools/scenario-map/scenario-map.ts",
|
|
"postinstall": "node scripts/prepare-tree-sitter-bundle.cjs && node scripts/build-tree-sitter-grammars.cjs",
|
|
"assert-publish-coverage": "node scripts/assert-publish-grammar-coverage.cjs",
|
|
"prepare": "node scripts/build.js",
|
|
"prepack": "node scripts/prepare-tree-sitter-bundle.cjs --for-publication && node scripts/assert-publish-grammar-coverage.cjs && node scripts/assert-publish-fts-coverage.cjs && node scripts/build.js --web && node scripts/assert-web-assets.mjs web",
|
|
"version": "node scripts/sync-plugin-manifests.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@ladybugdb/core": "0.21.1",
|
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
"@scarf/scarf": "^1.4.0",
|
|
"busboy": "^1.6.0",
|
|
"chokidar": "^5.0.0",
|
|
"cli-progress": "^3.12.0",
|
|
"commander": "^15.0.0",
|
|
"cors": "^2.8.5",
|
|
"express": "^5.2.1",
|
|
"express-rate-limit": "^8.4.1",
|
|
"fast-xml-parser": "^5.11.1",
|
|
"glob": "^13.0.6",
|
|
"graphology": "^0.26.0",
|
|
"graphology-indices": "^0.17.0",
|
|
"graphology-utils": "^2.3.0",
|
|
"graphql": "^17.0.2",
|
|
"ignore": "^7.0.5",
|
|
"js-yaml": "^5.0.0",
|
|
"jsonc-parser": "^3.3.1",
|
|
"mnemonist": "^0.40.3",
|
|
"node-addon-api": "^8.0.0",
|
|
"node-gyp-build": "^4.8.0",
|
|
"onnxruntime-common": "^1.26.0",
|
|
"pandemonium": "^2.4.0",
|
|
"pino": "^10.3.1",
|
|
"pino-pretty": "^13.1.3",
|
|
"proxy-addr": "^2.0.7",
|
|
"smol-toml": "^1.8.0",
|
|
"tree-sitter": "0.25.1",
|
|
"tree-sitter-c-sharp": "0.23.5",
|
|
"tree-sitter-cpp": "0.23.4",
|
|
"tree-sitter-go": "0.25.0",
|
|
"tree-sitter-java": "0.23.5",
|
|
"tree-sitter-javascript": "0.25.0",
|
|
"tree-sitter-php": "0.24.2",
|
|
"tree-sitter-python": "0.25.0",
|
|
"tree-sitter-ruby": "0.23.1",
|
|
"tree-sitter-rust": "0.24.0",
|
|
"tree-sitter-typescript": "0.23.2",
|
|
"uuid": "^14.0.0"
|
|
},
|
|
"gitnexusEmbeddingStack": {
|
|
"@huggingface/transformers": "^4.1.0",
|
|
"onnxruntime-node": "^1.24.0"
|
|
},
|
|
"trustedDependencies": [
|
|
"@ladybugdb/core",
|
|
"gitnexus",
|
|
"tree-sitter"
|
|
],
|
|
"devDependencies": {
|
|
"@babel/generator": "^8.0.0",
|
|
"@babel/parser": "^8.0.0",
|
|
"@babel/traverse": "^8.0.0",
|
|
"@babel/types": "^8.0.0",
|
|
"@mermaid-js/tiny": "12.2.0",
|
|
"@streamparser/json": "0.0.26",
|
|
"@stryker-mutator/api": "10.0.0",
|
|
"@stryker-mutator/core": "10.0.0",
|
|
"@types/busboy": "^1.5.4",
|
|
"@types/cli-progress": "^3.11.6",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/express": "^5.0.6",
|
|
"@types/node": "^26.0.0",
|
|
"@types/proxy-addr": "^2.0.3",
|
|
"@vitest/coverage-v8": "^5.0.0",
|
|
"gitnexus-shared": "file:../gitnexus-shared",
|
|
"jscpd": "5.4.2",
|
|
"jsdom": "30.1.3",
|
|
"tsx": "^4.0.0",
|
|
"typescript": "^7.0.2",
|
|
"vitest": "^5.0.0",
|
|
"vitest-shard-balancer": "0.1.0"
|
|
},
|
|
"overrides": {
|
|
"adm-zip": ">=0.6.0",
|
|
"sharp": ">=0.35.0",
|
|
"tree-sitter": "0.25.1"
|
|
},
|
|
"engines": {
|
|
"node": "^22.18.0 || >=24.11.0"
|
|
},
|
|
"bundleDependencies": [
|
|
"tree-sitter",
|
|
"tree-sitter-c-sharp",
|
|
"tree-sitter-cpp",
|
|
"tree-sitter-go",
|
|
"tree-sitter-java",
|
|
"tree-sitter-javascript",
|
|
"tree-sitter-php",
|
|
"tree-sitter-python",
|
|
"tree-sitter-ruby",
|
|
"tree-sitter-rust",
|
|
"tree-sitter-typescript"
|
|
]
|
|
}
|