@optave/codegraph 3.4.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +22 -21
  2. package/dist/ast-analysis/rules/javascript.d.ts.map +1 -1
  3. package/dist/ast-analysis/rules/javascript.js +1 -0
  4. package/dist/ast-analysis/rules/javascript.js.map +1 -1
  5. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
  6. package/dist/ast-analysis/visitors/ast-store-visitor.js +103 -35
  7. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  8. package/dist/db/better-sqlite3.d.ts +3 -0
  9. package/dist/db/better-sqlite3.d.ts.map +1 -0
  10. package/dist/db/better-sqlite3.js +19 -0
  11. package/dist/db/better-sqlite3.js.map +1 -0
  12. package/dist/db/connection.d.ts +13 -2
  13. package/dist/db/connection.d.ts.map +1 -1
  14. package/dist/db/connection.js +76 -2
  15. package/dist/db/connection.js.map +1 -1
  16. package/dist/db/index.d.ts +2 -2
  17. package/dist/db/index.d.ts.map +1 -1
  18. package/dist/db/index.js +1 -1
  19. package/dist/db/index.js.map +1 -1
  20. package/dist/db/migrations.d.ts.map +1 -1
  21. package/dist/db/migrations.js +2 -0
  22. package/dist/db/migrations.js.map +1 -1
  23. package/dist/db/query-builder.d.ts +5 -5
  24. package/dist/db/query-builder.d.ts.map +1 -1
  25. package/dist/db/query-builder.js +20 -4
  26. package/dist/db/query-builder.js.map +1 -1
  27. package/dist/db/repository/index.d.ts +1 -0
  28. package/dist/db/repository/index.d.ts.map +1 -1
  29. package/dist/db/repository/index.js +1 -0
  30. package/dist/db/repository/index.js.map +1 -1
  31. package/dist/db/repository/native-repository.d.ts +58 -0
  32. package/dist/db/repository/native-repository.d.ts.map +1 -0
  33. package/dist/db/repository/native-repository.js +261 -0
  34. package/dist/db/repository/native-repository.js.map +1 -0
  35. package/dist/db/repository/nodes.d.ts +4 -4
  36. package/dist/db/repository/nodes.d.ts.map +1 -1
  37. package/dist/db/repository/nodes.js +6 -6
  38. package/dist/db/repository/nodes.js.map +1 -1
  39. package/dist/domain/graph/builder/context.d.ts +2 -1
  40. package/dist/domain/graph/builder/context.d.ts.map +1 -1
  41. package/dist/domain/graph/builder/context.js +1 -0
  42. package/dist/domain/graph/builder/context.js.map +1 -1
  43. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  44. package/dist/domain/graph/builder/pipeline.js +29 -7
  45. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  46. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  47. package/dist/domain/graph/builder/stages/build-edges.js +103 -15
  48. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  49. package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
  50. package/dist/domain/graph/builder/stages/build-structure.js +33 -5
  51. package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
  52. package/dist/domain/graph/builder/stages/collect-files.d.ts.map +1 -1
  53. package/dist/domain/graph/builder/stages/collect-files.js +71 -7
  54. package/dist/domain/graph/builder/stages/collect-files.js.map +1 -1
  55. package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
  56. package/dist/domain/graph/builder/stages/detect-changes.js +36 -14
  57. package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
  58. package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
  59. package/dist/domain/graph/builder/stages/finalize.js +43 -20
  60. package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
  61. package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
  62. package/dist/domain/graph/builder/stages/insert-nodes.js +104 -9
  63. package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
  64. package/dist/domain/parser.d.ts.map +1 -1
  65. package/dist/domain/parser.js +1 -0
  66. package/dist/domain/parser.js.map +1 -1
  67. package/dist/extractors/javascript.js +53 -38
  68. package/dist/extractors/javascript.js.map +1 -1
  69. package/dist/extractors/rust.js +2 -1
  70. package/dist/extractors/rust.js.map +1 -1
  71. package/dist/features/ast.d.ts +14 -1
  72. package/dist/features/ast.d.ts.map +1 -1
  73. package/dist/features/ast.js +38 -1
  74. package/dist/features/ast.js.map +1 -1
  75. package/dist/features/branch-compare.d.ts.map +1 -1
  76. package/dist/features/branch-compare.js +3 -1
  77. package/dist/features/branch-compare.js.map +1 -1
  78. package/dist/features/snapshot.d.ts.map +1 -1
  79. package/dist/features/snapshot.js +2 -1
  80. package/dist/features/snapshot.js.map +1 -1
  81. package/dist/mcp/server.d.ts.map +1 -1
  82. package/dist/mcp/server.js +2 -9
  83. package/dist/mcp/server.js.map +1 -1
  84. package/dist/types.d.ts +228 -0
  85. package/dist/types.d.ts.map +1 -1
  86. package/package.json +61 -11
  87. package/src/ast-analysis/rules/javascript.ts +1 -0
  88. package/src/ast-analysis/visitors/ast-store-visitor.ts +102 -33
  89. package/src/db/better-sqlite3.ts +20 -0
  90. package/src/db/connection.ts +94 -3
  91. package/src/db/index.ts +3 -1
  92. package/src/db/migrations.ts +2 -0
  93. package/src/db/query-builder.ts +30 -5
  94. package/src/db/repository/index.ts +1 -0
  95. package/src/db/repository/native-repository.ts +361 -0
  96. package/src/db/repository/nodes.ts +7 -3
  97. package/src/domain/graph/builder/context.ts +2 -0
  98. package/src/domain/graph/builder/pipeline.ts +30 -6
  99. package/src/domain/graph/builder/stages/build-edges.ts +117 -19
  100. package/src/domain/graph/builder/stages/build-structure.ts +47 -11
  101. package/src/domain/graph/builder/stages/collect-files.ts +84 -7
  102. package/src/domain/graph/builder/stages/detect-changes.ts +39 -21
  103. package/src/domain/graph/builder/stages/finalize.ts +49 -20
  104. package/src/domain/graph/builder/stages/insert-nodes.ts +129 -10
  105. package/src/domain/parser.ts +1 -0
  106. package/src/extractors/javascript.ts +54 -36
  107. package/src/extractors/rust.ts +2 -1
  108. package/src/features/ast.ts +66 -1
  109. package/src/features/branch-compare.ts +3 -1
  110. package/src/features/snapshot.ts +2 -1
  111. package/src/mcp/server.ts +2 -10
  112. package/src/types.ts +273 -0
package/README.md CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  <p align="center">
12
12
  <a href="https://www.npmjs.com/package/@optave/codegraph"><img src="https://img.shields.io/npm/v/@optave/codegraph?style=flat-square&logo=npm&logoColor=white&label=npm" alt="npm version" /></a>
13
- <a href="https://github.com/optave/codegraph/blob/main/LICENSE"><img src="https://img.shields.io/github/license/optave/codegraph?style=flat-square&logo=opensourceinitiative&logoColor=white" alt="Apache-2.0 License" /></a>
14
- <a href="https://github.com/optave/codegraph/actions"><img src="https://img.shields.io/github/actions/workflow/status/optave/codegraph/codegraph-impact.yml?style=flat-square&logo=githubactions&logoColor=white&label=CI" alt="CI" /></a>
15
- <img src="https://img.shields.io/badge/node-%3E%3D20-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node >= 20" />
13
+ <a href="https://github.com/optave/ops-codegraph-tool/blob/main/LICENSE"><img src="https://img.shields.io/github/license/optave/ops-codegraph-tool?style=flat-square&logo=opensourceinitiative&logoColor=white" alt="Apache-2.0 License" /></a>
14
+ <a href="https://github.com/optave/ops-codegraph-tool/actions"><img src="https://img.shields.io/github/actions/workflow/status/optave/ops-codegraph-tool/codegraph-impact.yml?style=flat-square&logo=githubactions&logoColor=white&label=CI" alt="CI" /></a>
15
+ <img src="https://img.shields.io/badge/node-%3E%3D22.6-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node >= 22.6" />
16
16
  </p>
17
17
 
18
18
  <p align="center">
@@ -156,11 +156,11 @@ codegraph deps src/index.ts # file-level import/export map
156
156
  Or install from source:
157
157
 
158
158
  ```bash
159
- git clone https://github.com/optave/codegraph.git
159
+ git clone https://github.com/optave/ops-codegraph-tool.git
160
160
  cd codegraph && npm install && npm link
161
161
  ```
162
162
 
163
- > **Dev builds:** Pre-release tarballs are attached to [GitHub Releases](https://github.com/optave/codegraph/releases). Install with `npm install -g <path-to-tarball>`. Note that `npm install -g <tarball-url>` does not work because npm cannot resolve optional platform-specific dependencies from a URL — download the `.tgz` first, then install from the local file.
163
+ > **Dev builds:** Pre-release tarballs are attached to [GitHub Releases](https://github.com/optave/ops-codegraph-tool/releases). Install with `npm install -g <path-to-tarball>`. Note that `npm install -g <tarball-url>` does not work because npm cannot resolve optional platform-specific dependencies from a URL — download the `.tgz` first, then install from the local file.
164
164
 
165
165
  ---
166
166
 
@@ -553,14 +553,14 @@ Self-measured on every release via CI ([build benchmarks](generated/benchmarks/B
553
553
 
554
554
  | Metric | Latest |
555
555
  |---|---|
556
- | Build speed (native) | **5.3 ms/file** |
557
- | Build speed (WASM) | **12.2 ms/file** |
556
+ | Build speed (native) | **5.7 ms/file** |
557
+ | Build speed (WASM) | **11.9 ms/file** |
558
558
  | Query time | **12ms** |
559
- | No-op rebuild (native) | **12ms** |
560
- | 1-file rebuild (native) | **432ms** |
561
- | Query: fn-deps | **1.7ms** |
562
- | Query: path | **1.6ms** |
563
- | ~50,000 files (est.) | **~265.0s build** |
559
+ | No-op rebuild (native) | **14ms** |
560
+ | 1-file rebuild (native) | **316ms** |
561
+ | Query: fn-deps | **1.9ms** |
562
+ | Query: path | **1.9ms** |
563
+ | ~50,000 files (est.) | **~285.0s build** |
564
564
 
565
565
  Metrics are normalized per file for cross-version comparability. Times above are for a full initial build — incremental rebuilds only re-parse changed files.
566
566
 
@@ -572,7 +572,7 @@ Only **3 runtime dependencies** — everything else is optional or a devDependen
572
572
 
573
573
  | Dependency | What it does | | |
574
574
  |---|---|---|---|
575
- | [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) | Fast, synchronous SQLite driver | ![GitHub stars](https://img.shields.io/github/stars/WiseLibs/better-sqlite3?style=flat-square&label=%E2%AD%90) | ![npm downloads](https://img.shields.io/npm/dw/better-sqlite3?style=flat-square&label=%F0%9F%93%A5%2Fwk) |
575
+ | [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) | SQLite driver (WASM engine; lazy-loaded, not used for native-engine reads) | ![GitHub stars](https://img.shields.io/github/stars/WiseLibs/better-sqlite3?style=flat-square&label=%E2%AD%90) | ![npm downloads](https://img.shields.io/npm/dw/better-sqlite3?style=flat-square&label=%F0%9F%93%A5%2Fwk) |
576
576
  | [commander](https://github.com/tj/commander.js) | CLI argument parsing | ![GitHub stars](https://img.shields.io/github/stars/tj/commander.js?style=flat-square&label=%E2%AD%90) | ![npm downloads](https://img.shields.io/npm/dw/commander?style=flat-square&label=%F0%9F%93%A5%2Fwk) |
577
577
  | [web-tree-sitter](https://github.com/tree-sitter/tree-sitter) | WASM tree-sitter bindings | ![GitHub stars](https://img.shields.io/github/stars/tree-sitter/tree-sitter?style=flat-square&label=%E2%AD%90) | ![npm downloads](https://img.shields.io/npm/dw/web-tree-sitter?style=flat-square&label=%F0%9F%93%A5%2Fwk) |
578
578
 
@@ -772,20 +772,21 @@ See **[ROADMAP.md](docs/roadmap/ROADMAP.md)** for the full development roadmap a
772
772
  5. ~~**Architectural Refactoring**~~ — **Complete** (v3.1.5) — unified AST analysis, composable MCP, domain errors, builder pipeline, graph model, qualified names, presentation layer, CLI composability
773
773
  6. ~~**Resolution Accuracy**~~ — **Complete** (v3.3.1) — type inference, receiver type tracking, dead role sub-categories, resolution benchmarks, `package.json` exports, monorepo workspace resolution
774
774
  7. ~~**TypeScript Migration**~~ — **Complete** (v3.4.0) — all 271 source files migrated from JS to TS, zero `.js` remaining
775
- 8. **Native Analysis Acceleration** — **In Progress** (7 of 8 complete) — JS-only build phases moved to Rust, sub-100ms 1-file rebuilds remaining
776
- 9. **Runtime & Extensibility** — event-driven pipeline, plugin system, query caching, pagination
777
- 10. **Intelligent Embeddings** — LLM-generated descriptions, enhanced embeddings, module summaries
778
- 11. **Natural Language Queries** — `codegraph ask` command, conversational sessions
779
- 12. **Expanded Language Support** — 8 new languages (11 19)
780
- 13. **GitHub Integration & CI** — reusable GitHub Action, LLM-enhanced PR review, SARIF output
781
- 14. **Visualization & Advanced** — web UI, dead code detection, monorepo, agentic search
775
+ 8. ~~**Native Analysis Acceleration**~~ — **Complete** (v3.5.0) — all build phases in Rust/rusqlite, sub-100ms incremental rebuilds, better-sqlite3 lazy-loaded as fallback only
776
+ 9. **Expanded Language Support** — 23 new languages in 4 batches (11 → 34)
777
+ 10. **Runtime & Extensibility** — event-driven pipeline, plugin system, query caching, pagination
778
+ 11. **Quality, Security & Technical Debt** — supply-chain security (SBOM, SLSA), CI coverage gates, timer cleanup, tech debt kill list
779
+ 12. **Intelligent Embeddings** — LLM-generated descriptions, enhanced embeddings, module summaries
780
+ 13. **Natural Language Queries** — `codegraph ask` command, conversational sessions
781
+ 14. **GitHub Integration & CI** — reusable GitHub Action, LLM-enhanced PR review, SARIF output
782
+ 15. **Advanced Features** — dead code detection, monorepo support, agentic search
782
783
 
783
784
  ## 🤝 Contributing
784
785
 
785
786
  Contributions are welcome! See **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full guide — setup, workflow, commit convention, testing, and architecture notes.
786
787
 
787
788
  ```bash
788
- git clone https://github.com/optave/codegraph.git
789
+ git clone https://github.com/optave/ops-codegraph-tool.git
789
790
  cd codegraph
790
791
  npm install
791
792
  npm test
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/ast-analysis/rules/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,UAAU,EAAE,eAuCxB,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,aAyGtB,CAAC;AAIF,eAAO,MAAM,GAAG,EAAE,cA0BhB,CAAC;AAmBH,eAAO,MAAM,QAAQ,EAAE,mBA2BrB,CAAC;AAIH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAO/C,CAAC"}
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/ast-analysis/rules/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,UAAU,EAAE,eAuCxB,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,aAyGtB,CAAC;AAIF,eAAO,MAAM,GAAG,EAAE,cA0BhB,CAAC;AAmBH,eAAO,MAAM,QAAQ,EAAE,mBA2BrB,CAAC;AAIH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAQ/C,CAAC"}
@@ -220,6 +220,7 @@ export const dataflow = makeDataflowRules({
220
220
  });
221
221
  // ─── AST Node Types ───────────────────────────────────────────────────────
222
222
  export const astTypes = {
223
+ call_expression: 'call',
223
224
  new_expression: 'new',
224
225
  throw_statement: 'throw',
225
226
  await_expression: 'await',
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/ast-analysis/rules/javascript.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE/D,6EAA6E;AAE7E,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,WAAW,EAAE,IAAI,GAAG,CAAC;QACnB,cAAc;QACd,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,cAAc;QACd,oBAAoB;KACrB,CAAC;IACF,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IACnC,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,EAAE,2BAA2B;IAC9C,YAAY,EAAE,IAAI,GAAG,CAAC;QACpB,cAAc;QACd,kBAAkB;QAClB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,cAAc;QACd,oBAAoB;KACrB,CAAC;IACF,aAAa,EAAE,IAAI,GAAG,CAAC;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,gBAAgB;QAChB,mBAAmB;QACnB,oBAAoB;QACpB,gCAAgC;KACjC,CAAC;IACF,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,KAAK;IACzB,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAEF,6EAA6E;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,iBAAiB,EAAE,IAAI,GAAG,CAAC;QACzB,aAAa;QACb,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,aAAa;QACb,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,aAAa;QACb,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,UAAU;QACV,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,wBAAwB;QACxB,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,KAAK;QACL,OAAO;QACP,SAAS;QACT,iCAAiC;QACjC,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,kCAAkC;QAClC,GAAG;QACH,GAAG;KACJ,CAAC;IACF,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,YAAY;QACZ,qBAAqB;QACrB,+BAA+B;QAC/B,uCAAuC;QACvC,QAAQ;QACR,iBAAiB;QACjB,eAAe;QACf,MAAM;QACN,OAAO;QACP,MAAM;QACN,WAAW;QACX,MAAM;QACN,OAAO;QACP,6BAA6B;KAC9B,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC;QACzB,iBAAiB;QACjB,sBAAsB;QACtB,gBAAgB;QAChB,uBAAuB;KACxB,CAAC;IACF,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;CAC/F,CAAC;AAEF,6EAA6E;AAE7E,MAAM,CAAC,MAAM,GAAG,GAAmB,YAAY,CAAC;IAC9C,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IACxD,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,kBAAkB;IAC9B,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,eAAe;IACxB,SAAS,EAAE,cAAc;IACzB,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,kBAAkB;IAC9B,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,iBAAiB;IAC5B,YAAY,EAAE,oBAAoB;IAClC,SAAS,EAAE,iBAAiB;IAC5B,WAAW,EAAE,mBAAmB;IAChC,aAAa,EAAE,IAAI,GAAG,CAAC;QACrB,sBAAsB;QACtB,qBAAqB;QACrB,gBAAgB;QAChB,mBAAmB;QACnB,oBAAoB;QACpB,gCAAgC;KACjC,CAAC;CACH,CAAC,CAAC;AAEH,6EAA6E;AAE7E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAwB,iBAAiB,CAAC;IAC7D,aAAa,EAAE,IAAI,GAAG,CAAC;QACrB,sBAAsB;QACtB,mBAAmB;QACnB,gBAAgB;QAChB,qBAAqB;QACrB,UAAU;KACX,CAAC;IACF,mBAAmB,EAAE,qBAAqB;IAC1C,kBAAkB,EAAE,uBAAuB;IAC3C,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACxE,gBAAgB,EAAE,oBAAoB;IACtC,aAAa,EAAE,cAAc;IAC7B,kBAAkB,EAAE,gBAAgB;IACpC,iBAAiB,EAAE,eAAe;IAClC,oBAAoB,EAAE,uCAAuC;IAC7D,eAAe,EAAE,cAAc;IAC/B,UAAU,EAAE,kBAAkB;IAC9B,iBAAiB,EAAE,qBAAqB;IACxC,cAAc,EAAE,uBAAuB;IACvC,QAAQ,EAAE,iBAAiB;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,mBAAmB;IAC/B,iBAAiB,EAAE,2BAA2B;IAC9C,SAAS,EAAE,kBAAkB;IAC7B,eAAe,EAAE,cAAc;CAChC,CAAC,CAAC;AAEH,6EAA6E;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAkC;IACrD,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,OAAO;IACxB,gBAAgB,EAAE,OAAO;IACzB,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,QAAQ;IACzB,KAAK,EAAE,OAAO;CACf,CAAC"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/ast-analysis/rules/javascript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast-store-visitor.d.ts","sourceRoot":"","sources":["../../../src/ast-analysis/visitors/ast-store-visitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAGV,OAAO,EAER,MAAM,gBAAgB,CAAC;AAuExB,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,IAAI,EAAE,UAAU,EAAE,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CA2ET"}
1
+ {"version":3,"file":"ast-store-visitor.d.ts","sourceRoot":"","sources":["../../../src/ast-analysis/visitors/ast-store-visitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAGV,OAAO,EAER,MAAM,gBAAgB,CAAC;AA+ExB,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,IAAI,EAAE,UAAU,EAAE,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAwIT"}
@@ -27,6 +27,14 @@ function extractExpressionText(node) {
27
27
  }
28
28
  return truncate(node.text);
29
29
  }
30
+ function extractCallName(node) {
31
+ for (const field of ['function', 'method', 'name']) {
32
+ const fn = node.childForFieldName(field);
33
+ if (fn)
34
+ return fn.text;
35
+ }
36
+ return node.text?.split('(')[0] || '?';
37
+ }
30
38
  function extractName(kind, node) {
31
39
  if (kind === 'throw') {
32
40
  for (let i = 0; i < node.childCount; i++) {
@@ -81,6 +89,95 @@ export function createAstStoreVisitor(astTypeMap, defs, relPath, nodeIdMap) {
81
89
  return null;
82
90
  return nodeIdMap.get(`${parentDef.name}|${parentDef.kind}|${parentDef.line}`) || null;
83
91
  }
92
+ /** Recursively walk a subtree collecting AST nodes — used for arguments-only traversal. */
93
+ function walkSubtree(node) {
94
+ if (!node)
95
+ return;
96
+ if (matched.has(node.id))
97
+ return;
98
+ const kind = astTypeMap[node.type];
99
+ if (kind === 'call') {
100
+ // Capture this call and recurse only into its arguments
101
+ collectNode(node, kind);
102
+ walkCallArguments(node);
103
+ return;
104
+ }
105
+ if (kind) {
106
+ collectNode(node, kind);
107
+ if (kind !== 'string' && kind !== 'regex')
108
+ return; // skipChildren for non-leaf kinds
109
+ }
110
+ for (let i = 0; i < node.childCount; i++) {
111
+ walkSubtree(node.child(i));
112
+ }
113
+ }
114
+ /**
115
+ * Recurse into only the arguments of a call node — mirrors the native engine's
116
+ * strategy that prevents double-counting nested calls in the function field
117
+ * (e.g. chained calls like `a().b()`).
118
+ */
119
+ function walkCallArguments(callNode) {
120
+ // Try field-based lookup first, fall back to kind-based matching
121
+ const argsNode = callNode.childForFieldName('arguments') ??
122
+ findChildByKind(callNode, ['arguments', 'argument_list', 'method_arguments']);
123
+ if (!argsNode)
124
+ return;
125
+ for (let i = 0; i < argsNode.childCount; i++) {
126
+ walkSubtree(argsNode.child(i));
127
+ }
128
+ }
129
+ function findChildByKind(node, kinds) {
130
+ for (let i = 0; i < node.childCount; i++) {
131
+ const child = node.child(i);
132
+ if (child && kinds.includes(child.type))
133
+ return child;
134
+ }
135
+ return null;
136
+ }
137
+ function collectNode(node, kind) {
138
+ if (matched.has(node.id))
139
+ return;
140
+ const line = node.startPosition.row + 1;
141
+ let name;
142
+ let text = null;
143
+ if (kind === 'call') {
144
+ name = extractCallName(node);
145
+ text = truncate(node.text);
146
+ }
147
+ else if (kind === 'new') {
148
+ name = extractNewName(node);
149
+ text = truncate(node.text);
150
+ }
151
+ else if (kind === 'throw') {
152
+ name = extractName('throw', node);
153
+ text = extractExpressionText(node);
154
+ }
155
+ else if (kind === 'await') {
156
+ name = extractName('await', node);
157
+ text = extractExpressionText(node);
158
+ }
159
+ else if (kind === 'string') {
160
+ const content = node.text?.replace(/^['"`]|['"`]$/g, '') || '';
161
+ if (content.length < 2)
162
+ return;
163
+ name = truncate(content, 100);
164
+ text = truncate(node.text);
165
+ }
166
+ else if (kind === 'regex') {
167
+ name = node.text || '?';
168
+ text = truncate(node.text);
169
+ }
170
+ rows.push({
171
+ file: relPath,
172
+ line,
173
+ kind,
174
+ name,
175
+ text,
176
+ receiver: null,
177
+ parentNodeId: resolveParentNodeId(line),
178
+ });
179
+ matched.add(node.id);
180
+ }
84
181
  return {
85
182
  name: 'ast-store',
86
183
  enterNode(node, _context) {
@@ -89,42 +186,13 @@ export function createAstStoreVisitor(astTypeMap, defs, relPath, nodeIdMap) {
89
186
  const kind = astTypeMap[node.type];
90
187
  if (!kind)
91
188
  return;
92
- const line = node.startPosition.row + 1;
93
- let name;
94
- let text = null;
95
- if (kind === 'new') {
96
- name = extractNewName(node);
97
- text = truncate(node.text);
98
- }
99
- else if (kind === 'throw') {
100
- name = extractName('throw', node);
101
- text = extractExpressionText(node);
102
- }
103
- else if (kind === 'await') {
104
- name = extractName('await', node);
105
- text = extractExpressionText(node);
106
- }
107
- else if (kind === 'string') {
108
- const content = node.text?.replace(/^['"`]|['"`]$/g, '') || '';
109
- if (content.length < 2)
110
- return;
111
- name = truncate(content, 100);
112
- text = truncate(node.text);
113
- }
114
- else if (kind === 'regex') {
115
- name = node.text || '?';
116
- text = truncate(node.text);
189
+ collectNode(node, kind);
190
+ if (kind === 'call') {
191
+ // Mirror native: skip full subtree, recurse only into arguments.
192
+ // Prevents double-counting chained calls like service.getUser().getName().
193
+ walkCallArguments(node);
194
+ return { skipChildren: true };
117
195
  }
118
- rows.push({
119
- file: relPath,
120
- line,
121
- kind,
122
- name,
123
- text,
124
- receiver: null,
125
- parentNodeId: resolveParentNodeId(line),
126
- });
127
- matched.add(node.id);
128
196
  if (kind !== 'string' && kind !== 'regex') {
129
197
  return { skipChildren: true };
130
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ast-store-visitor.js","sourceRoot":"","sources":["../../../src/ast-analysis/visitors/ast-store-visitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-store-visitor.js","sourceRoot":"","sources":["../../../src/ast-analysis/visitors/ast-store-visitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Return the `better-sqlite3` Database constructor, loading it on first call. */
2
+ export declare function getDatabase(): new (...args: any[]) => any;
3
+ //# sourceMappingURL=better-sqlite3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-sqlite3.d.ts","sourceRoot":"","sources":["../../src/db/better-sqlite3.ts"],"names":[],"mappings":"AAaA,kFAAkF;AAClF,wBAAgB,WAAW,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAKzD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Lazy-loaded better-sqlite3 constructor.
3
+ *
4
+ * Centralises the `createRequire` + cache pattern so every call site that
5
+ * needs a JS-side SQLite handle can `import { getDatabase } from '…/db/better-sqlite3.js'`
6
+ * instead of duplicating the boilerplate. The native engine path (NativeDatabase /
7
+ * rusqlite) never touches this module.
8
+ */
9
+ import { createRequire } from 'node:module';
10
+ const _require = createRequire(import.meta.url);
11
+ let _Database;
12
+ /** Return the `better-sqlite3` Database constructor, loading it on first call. */
13
+ export function getDatabase() {
14
+ if (!_Database) {
15
+ _Database = _require('better-sqlite3');
16
+ }
17
+ return _Database;
18
+ }
19
+ //# sourceMappingURL=better-sqlite3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-sqlite3.js","sourceRoot":"","sources":["../../src/db/better-sqlite3.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,IAAI,SAAc,CAAC;AAEnB,kFAAkF;AAClF,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { BetterSqlite3Database } from '../types.js';
1
+ import type { BetterSqlite3Database, NativeDatabase } from '../types.js';
2
2
  import { Repository } from './repository/base.js';
3
3
  /** DB instance with optional advisory lock path. */
4
4
  export type LockedDatabase = BetterSqlite3Database & {
@@ -34,6 +34,15 @@ export declare function flushDeferredClose(): void;
34
34
  * Call `flushDeferredClose()` before deleting the DB file.
35
35
  */
36
36
  export declare function closeDbDeferred(db: LockedDatabase): void;
37
+ /** A better-sqlite3 handle optionally paired with a NativeDatabase. */
38
+ export interface LockedDatabasePair {
39
+ db: LockedDatabase;
40
+ nativeDb?: NativeDatabase;
41
+ }
42
+ /** Close both handles: NativeDatabase first (fast), then better-sqlite3 (releases lock). */
43
+ export declare function closeDbPair(pair: LockedDatabasePair): void;
44
+ /** Close NativeDatabase immediately, defer better-sqlite3 WAL checkpoint. */
45
+ export declare function closeDbPairDeferred(pair: LockedDatabasePair): void;
37
46
  export declare function findDbPath(customPath?: string): string;
38
47
  /** Open a database in readonly mode, with a user-friendly error if the DB doesn't exist. */
39
48
  export declare function openReadonlyOrFail(customPath?: string): BetterSqlite3Database;
@@ -41,7 +50,9 @@ export declare function openReadonlyOrFail(customPath?: string): BetterSqlite3Da
41
50
  * Open a Repository from either an injected instance or a DB path.
42
51
  *
43
52
  * When `opts.repo` is a Repository instance, returns it directly (no DB opened).
44
- * Otherwise opens a readonly SQLite DB and wraps it in SqliteRepository.
53
+ * When the native engine is available, opens a NativeDatabase (rusqlite) and
54
+ * wraps it in NativeRepository. Otherwise falls back to better-sqlite3 via
55
+ * SqliteRepository.
45
56
  */
46
57
  export declare function openRepo(customDbPath?: string, opts?: {
47
58
  repo?: Repository;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAqBlD,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAK7E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8B5D;AAED,gDAAgD;AAChD,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA4DD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAWrD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAGhD;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CASzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAmBxD;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCtD;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,CA8B7E;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,UAAU,CAAA;CAAO,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAgBrC"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAsBlD,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAK7E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8B5D;AAED,gDAAgD;AAChD,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA4DD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAYrD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAGhD;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CASzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAmBxD;AAOD,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,cAAc,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAS1D;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CASlE;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAuCtD;AAED,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,CA+B7E;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,UAAU,CAAA;CAAO,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAkErC"}
@@ -2,10 +2,12 @@ import { execFileSync } from 'node:child_process';
2
2
  import fs from 'node:fs';
3
3
  import path from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
- import Database from 'better-sqlite3';
6
5
  import { debug, warn } from '../infrastructure/logger.js';
6
+ import { getNative, isNativeAvailable } from '../infrastructure/native.js';
7
7
  import { DbError } from '../shared/errors.js';
8
+ import { getDatabase } from './better-sqlite3.js';
8
9
  import { Repository } from './repository/base.js';
10
+ import { NativeRepository } from './repository/native-repository.js';
9
11
  import { SqliteRepository } from './repository/sqlite-repository.js';
10
12
  /** Lazy-loaded package version (read once from package.json). */
11
13
  let _packageVersion;
@@ -144,6 +146,7 @@ export function openDb(dbPath) {
144
146
  if (!fs.existsSync(dir))
145
147
  fs.mkdirSync(dir, { recursive: true });
146
148
  acquireAdvisoryLock(dbPath);
149
+ const Database = getDatabase();
147
150
  const db = new Database(dbPath);
148
151
  db.pragma('journal_mode = WAL');
149
152
  db.pragma('busy_timeout = 5000');
@@ -202,6 +205,30 @@ export function closeDbDeferred(db) {
202
205
  }
203
206
  });
204
207
  }
208
+ /** Close both handles: NativeDatabase first (fast), then better-sqlite3 (releases lock). */
209
+ export function closeDbPair(pair) {
210
+ if (pair.nativeDb) {
211
+ try {
212
+ pair.nativeDb.close();
213
+ }
214
+ catch {
215
+ /* ignore */
216
+ }
217
+ }
218
+ closeDb(pair.db);
219
+ }
220
+ /** Close NativeDatabase immediately, defer better-sqlite3 WAL checkpoint. */
221
+ export function closeDbPairDeferred(pair) {
222
+ if (pair.nativeDb) {
223
+ try {
224
+ pair.nativeDb.close();
225
+ }
226
+ catch {
227
+ /* ignore */
228
+ }
229
+ }
230
+ closeDbDeferred(pair.db);
231
+ }
205
232
  export function findDbPath(customPath) {
206
233
  if (customPath)
207
234
  return path.resolve(customPath);
@@ -254,6 +281,7 @@ export function openReadonlyOrFail(customPath) {
254
281
  if (!fs.existsSync(dbPath)) {
255
282
  throw new DbError(`No codegraph database found at ${dbPath}.\nRun "codegraph build" first to analyze your codebase.`, { file: dbPath });
256
283
  }
284
+ const Database = getDatabase();
257
285
  const db = new Database(dbPath, { readonly: true });
258
286
  // Warn once per process if the DB was built with a different codegraph version
259
287
  if (!_versionWarned) {
@@ -278,7 +306,9 @@ export function openReadonlyOrFail(customPath) {
278
306
  * Open a Repository from either an injected instance or a DB path.
279
307
  *
280
308
  * When `opts.repo` is a Repository instance, returns it directly (no DB opened).
281
- * Otherwise opens a readonly SQLite DB and wraps it in SqliteRepository.
309
+ * When the native engine is available, opens a NativeDatabase (rusqlite) and
310
+ * wraps it in NativeRepository. Otherwise falls back to better-sqlite3 via
311
+ * SqliteRepository.
282
312
  */
283
313
  export function openRepo(customDbPath, opts = {}) {
284
314
  if (opts.repo != null) {
@@ -287,6 +317,50 @@ export function openRepo(customDbPath, opts = {}) {
287
317
  }
288
318
  return { repo: opts.repo, close() { } };
289
319
  }
320
+ // Try native rusqlite path first (Phase 6.14)
321
+ if (isNativeAvailable()) {
322
+ try {
323
+ const dbPath = findDbPath(customDbPath);
324
+ if (!fs.existsSync(dbPath)) {
325
+ throw new DbError(`No codegraph database found at ${dbPath}.\nRun "codegraph build" first to analyze your codebase.`, { file: dbPath });
326
+ }
327
+ const native = getNative();
328
+ const ndb = native.NativeDatabase.openReadonly(dbPath);
329
+ try {
330
+ // Version check (same logic as openReadonlyOrFail)
331
+ if (!_versionWarned) {
332
+ try {
333
+ const buildVersion = ndb.getBuildMeta('codegraph_version');
334
+ const currentVersion = getPackageVersion();
335
+ if (buildVersion && currentVersion && buildVersion !== currentVersion) {
336
+ warn(`DB was built with codegraph v${buildVersion}, running v${currentVersion}. Consider: codegraph build --no-incremental`);
337
+ }
338
+ }
339
+ catch {
340
+ // build_meta table may not exist in older DBs
341
+ }
342
+ _versionWarned = true;
343
+ }
344
+ return {
345
+ repo: new NativeRepository(ndb),
346
+ close() {
347
+ ndb.close();
348
+ },
349
+ };
350
+ }
351
+ catch (innerErr) {
352
+ ndb.close();
353
+ throw innerErr;
354
+ }
355
+ }
356
+ catch (e) {
357
+ // Re-throw user-visible errors (e.g. DB not found) — only silently
358
+ // fall back for native-engine failures (e.g. incompatible native binary).
359
+ if (e instanceof DbError)
360
+ throw e;
361
+ debug(`openRepo: native path failed, falling back to better-sqlite3: ${e.message}`);
362
+ }
363
+ }
290
364
  const db = openReadonlyOrFail(customDbPath);
291
365
  return {
292
366
  repo: new SqliteRepository(db),
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export type { LockedDatabase } from './connection.js';
2
- export { closeDb, closeDbDeferred, findDbPath, findRepoRoot, flushDeferredClose, openDb, openReadonlyOrFail, openRepo, } from './connection.js';
1
+ export type { LockedDatabase, LockedDatabasePair } from './connection.js';
2
+ export { closeDb, closeDbDeferred, closeDbPair, closeDbPairDeferred, findDbPath, findRepoRoot, flushDeferredClose, openDb, openReadonlyOrFail, openRepo, } from './connection.js';
3
3
  export { getBuildMeta, initSchema, MIGRATIONS, setBuildMeta } from './migrations.js';
4
4
  export { fanInJoinSQL, fanOutJoinSQL, kindInClause, NodeQuery, testFilterSQL, } from './query-builder.js';
5
5
  export { bulkNodeIdsByFile, countCrossFileCallers, countEdges, countFiles, countNodes, deleteCfgForNode, findAllIncomingEdges, findAllOutgoingEdges, findCalleeNames, findCallees, findCallerNames, findCallers, findCrossFileCallTargets, findDistinctCallers, findFileNodes, findImplementors, findImportDependents, findImportSources, findImportTargets, findInterfaces, findIntraFileCallEdges, findNodeById, findNodeByQualifiedName, findNodeChildren, findNodesByFile, findNodesByScope, findNodesForTriage, findNodesWithFanIn, getCallableNodes, getCallEdges, getCfgBlocks, getCfgEdges, getClassHierarchy, getCoChangeMeta, getComplexityForNode, getEmbeddingCount, getEmbeddingMeta, getFileNodesAll, getFunctionNodeId, getImportEdges, getLineCountForNode, getMaxEndLineForFile, getNodeId, hasCfgTables, hasCoChanges, hasDataflowTable, hasEmbeddings, InMemoryRepository, iterateFunctionNodes, listFunctionNodes, purgeFileData, purgeFilesData, Repository, SqliteRepository, upsertCoChangeMeta, } from './repository/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EACL,OAAO,EACP,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
package/dist/db/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Barrel re-export — keeps all existing `import { ... } from '…/db/index.js'` working.
2
- export { closeDb, closeDbDeferred, findDbPath, findRepoRoot, flushDeferredClose, openDb, openReadonlyOrFail, openRepo, } from './connection.js';
2
+ export { closeDb, closeDbDeferred, closeDbPair, closeDbPairDeferred, findDbPath, findRepoRoot, flushDeferredClose, openDb, openReadonlyOrFail, openRepo, } from './connection.js';
3
3
  export { getBuildMeta, initSchema, MIGRATIONS, setBuildMeta } from './migrations.js';
4
4
  export { fanInJoinSQL, fanOutJoinSQL, kindInClause, NodeQuery, testFilterSQL, } from './query-builder.js';
5
5
  export { bulkNodeIdsByFile, countCrossFileCallers, countEdges, countFiles, countNodes, deleteCfgForNode, findAllIncomingEdges, findAllOutgoingEdges, findCalleeNames, findCallees, findCallerNames, findCallers, findCrossFileCallTargets, findDistinctCallers, findFileNodes, findImplementors, findImportDependents, findImportSources, findImportTargets, findInterfaces, findIntraFileCallEdges, findNodeById, findNodeByQualifiedName, findNodeChildren, findNodesByFile, findNodesByScope, findNodesForTriage, findNodesWithFanIn, getCallableNodes, getCallEdges, getCfgBlocks, getCfgEdges, getClassHierarchy, getCoChangeMeta, getComplexityForNode, getEmbeddingCount, getEmbeddingMeta, getFileNodesAll, getFunctionNodeId, getImportEdges, getLineCountForNode, getMaxEndLineForFile, getNodeId, hasCfgTables, hasCoChanges, hasDataflowTable, hasEmbeddings, InMemoryRepository, iterateFunctionNodes, listFunctionNodes, purgeFileData, purgeFilesData, Repository, SqliteRepository, upsertCoChangeMeta, } from './repository/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EACL,OAAO,EACP,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,kBAAkB,EAClB,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIzD,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,EAsPjC,CAAC;AAsBF,wBAAgB,YAAY,CAAC,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlF;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,qBAAqB,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACvC,IAAI,CAQN;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,qBAAqB,GAAG,IAAI,CAsD1D"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIzD,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAID,eAAO,MAAM,UAAU,EAAE,SAAS,EAsPjC,CAAC;AAsBF,wBAAgB,YAAY,CAAC,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlF;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,qBAAqB,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACvC,IAAI,CAQN;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,qBAAqB,GAAG,IAAI,CAsD1D"}
@@ -1,4 +1,6 @@
1
1
  import { debug } from '../infrastructure/logger.js';
2
+ // IMPORTANT: Migration DDL is mirrored in crates/codegraph-core/src/native_db.rs.
3
+ // Any changes here MUST be reflected there (and vice-versa).
2
4
  export const MIGRATIONS = [
3
5
  {
4
6
  version: 1,