@optave/codegraph 3.8.1 → 3.9.1

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 (132) hide show
  1. package/README.md +12 -7
  2. package/dist/ast-analysis/engine.d.ts.map +1 -1
  3. package/dist/ast-analysis/engine.js +121 -48
  4. package/dist/ast-analysis/engine.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 +15 -18
  7. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  8. package/dist/ast-analysis/visitors/complexity-visitor.d.ts.map +1 -1
  9. package/dist/ast-analysis/visitors/complexity-visitor.js +50 -1
  10. package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
  11. package/dist/cli/commands/branch-compare.d.ts.map +1 -1
  12. package/dist/cli/commands/branch-compare.js +4 -0
  13. package/dist/cli/commands/branch-compare.js.map +1 -1
  14. package/dist/cli/commands/diff-impact.d.ts.map +1 -1
  15. package/dist/cli/commands/diff-impact.js +2 -1
  16. package/dist/cli/commands/diff-impact.js.map +1 -1
  17. package/dist/cli/commands/info.d.ts.map +1 -1
  18. package/dist/cli/commands/info.js +3 -2
  19. package/dist/cli/commands/info.js.map +1 -1
  20. package/dist/db/connection.d.ts +1 -0
  21. package/dist/db/connection.d.ts.map +1 -1
  22. package/dist/db/connection.js +22 -4
  23. package/dist/db/connection.js.map +1 -1
  24. package/dist/db/repository/base.d.ts +41 -0
  25. package/dist/db/repository/base.d.ts.map +1 -1
  26. package/dist/db/repository/base.js +22 -0
  27. package/dist/db/repository/base.js.map +1 -1
  28. package/dist/db/repository/index.d.ts +1 -0
  29. package/dist/db/repository/index.d.ts.map +1 -1
  30. package/dist/db/repository/index.js.map +1 -1
  31. package/dist/db/repository/native-repository.d.ts +8 -1
  32. package/dist/db/repository/native-repository.d.ts.map +1 -1
  33. package/dist/db/repository/native-repository.js +69 -1
  34. package/dist/db/repository/native-repository.js.map +1 -1
  35. package/dist/db/repository/sqlite-repository.d.ts +1 -0
  36. package/dist/db/repository/sqlite-repository.d.ts.map +1 -1
  37. package/dist/db/repository/sqlite-repository.js +25 -0
  38. package/dist/db/repository/sqlite-repository.js.map +1 -1
  39. package/dist/domain/analysis/dependencies.d.ts +1 -28
  40. package/dist/domain/analysis/dependencies.d.ts.map +1 -1
  41. package/dist/domain/analysis/dependencies.js +24 -8
  42. package/dist/domain/analysis/dependencies.js.map +1 -1
  43. package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
  44. package/dist/domain/graph/builder/incremental.js +18 -0
  45. package/dist/domain/graph/builder/incremental.js.map +1 -1
  46. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  47. package/dist/domain/graph/builder/pipeline.js +298 -206
  48. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  49. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  50. package/dist/domain/graph/builder/stages/build-edges.js +56 -3
  51. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  52. package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
  53. package/dist/domain/graph/builder/stages/resolve-imports.js +19 -23
  54. package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
  55. package/dist/domain/graph/watcher.d.ts.map +1 -1
  56. package/dist/domain/graph/watcher.js +99 -95
  57. package/dist/domain/graph/watcher.js.map +1 -1
  58. package/dist/domain/parser.d.ts +4 -0
  59. package/dist/domain/parser.d.ts.map +1 -1
  60. package/dist/domain/parser.js +130 -61
  61. package/dist/domain/parser.js.map +1 -1
  62. package/dist/domain/search/models.d.ts.map +1 -1
  63. package/dist/domain/search/models.js +7 -5
  64. package/dist/domain/search/models.js.map +1 -1
  65. package/dist/extractors/go.js +53 -35
  66. package/dist/extractors/go.js.map +1 -1
  67. package/dist/extractors/javascript.js +85 -36
  68. package/dist/extractors/javascript.js.map +1 -1
  69. package/dist/features/complexity.d.ts.map +1 -1
  70. package/dist/features/complexity.js +78 -58
  71. package/dist/features/complexity.js.map +1 -1
  72. package/dist/features/dataflow.d.ts.map +1 -1
  73. package/dist/features/dataflow.js +109 -118
  74. package/dist/features/dataflow.js.map +1 -1
  75. package/dist/features/structure.d.ts.map +1 -1
  76. package/dist/features/structure.js +147 -97
  77. package/dist/features/structure.js.map +1 -1
  78. package/dist/graph/algorithms/louvain.d.ts.map +1 -1
  79. package/dist/graph/algorithms/louvain.js +4 -2
  80. package/dist/graph/algorithms/louvain.js.map +1 -1
  81. package/dist/graph/classifiers/roles.d.ts +2 -0
  82. package/dist/graph/classifiers/roles.d.ts.map +1 -1
  83. package/dist/graph/classifiers/roles.js +13 -5
  84. package/dist/graph/classifiers/roles.js.map +1 -1
  85. package/dist/presentation/communities.d.ts.map +1 -1
  86. package/dist/presentation/communities.js +38 -34
  87. package/dist/presentation/communities.js.map +1 -1
  88. package/dist/presentation/manifesto.d.ts.map +1 -1
  89. package/dist/presentation/manifesto.js +31 -33
  90. package/dist/presentation/manifesto.js.map +1 -1
  91. package/dist/presentation/queries-cli/inspect.d.ts.map +1 -1
  92. package/dist/presentation/queries-cli/inspect.js +47 -46
  93. package/dist/presentation/queries-cli/inspect.js.map +1 -1
  94. package/dist/shared/file-utils.d.ts.map +1 -1
  95. package/dist/shared/file-utils.js +94 -72
  96. package/dist/shared/file-utils.js.map +1 -1
  97. package/dist/types.d.ts +83 -2
  98. package/dist/types.d.ts.map +1 -1
  99. package/grammars/tree-sitter-erlang.wasm +0 -0
  100. package/grammars/tree-sitter-gleam.wasm +0 -0
  101. package/package.json +9 -9
  102. package/src/ast-analysis/engine.ts +150 -55
  103. package/src/ast-analysis/visitors/ast-store-visitor.ts +19 -21
  104. package/src/ast-analysis/visitors/complexity-visitor.ts +55 -1
  105. package/src/cli/commands/branch-compare.ts +4 -0
  106. package/src/cli/commands/diff-impact.ts +2 -1
  107. package/src/cli/commands/info.ts +3 -2
  108. package/src/db/connection.ts +24 -5
  109. package/src/db/repository/base.ts +57 -0
  110. package/src/db/repository/index.ts +1 -0
  111. package/src/db/repository/native-repository.ts +92 -1
  112. package/src/db/repository/sqlite-repository.ts +26 -0
  113. package/src/domain/analysis/dependencies.ts +24 -6
  114. package/src/domain/graph/builder/incremental.ts +21 -0
  115. package/src/domain/graph/builder/pipeline.ts +396 -245
  116. package/src/domain/graph/builder/stages/build-edges.ts +53 -2
  117. package/src/domain/graph/builder/stages/resolve-imports.ts +20 -20
  118. package/src/domain/graph/watcher.ts +118 -98
  119. package/src/domain/parser.ts +131 -63
  120. package/src/domain/search/models.ts +11 -5
  121. package/src/extractors/go.ts +57 -32
  122. package/src/extractors/javascript.ts +88 -35
  123. package/src/features/complexity.ts +94 -58
  124. package/src/features/dataflow.ts +153 -132
  125. package/src/features/structure.ts +167 -95
  126. package/src/graph/algorithms/louvain.ts +5 -2
  127. package/src/graph/classifiers/roles.ts +14 -5
  128. package/src/presentation/communities.ts +44 -39
  129. package/src/presentation/manifesto.ts +35 -38
  130. package/src/presentation/queries-cli/inspect.ts +48 -46
  131. package/src/shared/file-utils.ts +116 -77
  132. package/src/types.ts +87 -1
@@ -111,7 +111,9 @@ function setupPipeline(ctx) {
111
111
  // Use NativeDatabase for schema init when native engine is available (Phase 6.13).
112
112
  // better-sqlite3 (ctx.db) is still always opened — needed for queries and stages
113
113
  // that haven't been migrated to rusqlite yet.
114
- const native = loadNative();
114
+ // Skip native DB entirely when user explicitly requested --engine wasm.
115
+ const enginePref = ctx.opts.engine || 'auto';
116
+ const native = enginePref !== 'wasm' ? loadNative() : null;
115
117
  if (native?.NativeDatabase) {
116
118
  try {
117
119
  ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
@@ -191,6 +193,8 @@ function closeNativeDb(ctx, label) {
191
193
  }
192
194
  /** Try to reopen the native connection for a given pipeline phase. */
193
195
  function reopenNativeDb(ctx, label) {
196
+ if ((ctx.opts.engine ?? 'auto') === 'wasm')
197
+ return;
194
198
  const native = loadNative();
195
199
  if (!native?.NativeDatabase)
196
200
  return;
@@ -223,6 +227,290 @@ function refreshJsDb(ctx) {
223
227
  }
224
228
  ctx.db = openDb(ctx.dbPath);
225
229
  }
230
+ // ── Native orchestrator helpers ───────────────────────────────────────
231
+ /** Determine whether the native orchestrator should be skipped. Returns a reason string, or null if it should run. */
232
+ function shouldSkipNativeOrchestrator(ctx) {
233
+ if (process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1')
234
+ return 'CODEGRAPH_FORCE_JS_PIPELINE=1';
235
+ if (ctx.forceFullRebuild)
236
+ return 'forceFullRebuild';
237
+ const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.10.0') < 0;
238
+ if (orchestratorBuggy)
239
+ return `buggy addon ${ctx.engineVersion}`;
240
+ if (ctx.engineName !== 'native')
241
+ return `engine=${ctx.engineName}`;
242
+ return null;
243
+ }
244
+ /** Checkpoint WAL through rusqlite, close nativeDb, and reopen better-sqlite3.
245
+ * Returns false if the DB reopen fails (caller should return partial result). */
246
+ function handoffWalAfterNativeBuild(ctx) {
247
+ closeNativeDb(ctx, 'post-native-build');
248
+ try {
249
+ ctx.db.close();
250
+ }
251
+ catch (e) {
252
+ debug(`handoffWal JS db close failed: ${toErrorMessage(e)}`);
253
+ }
254
+ try {
255
+ ctx.db = openDb(ctx.dbPath);
256
+ return true;
257
+ }
258
+ catch (reopenErr) {
259
+ warn(`Failed to reopen DB after native build: ${reopenErr.message}`);
260
+ return false;
261
+ }
262
+ }
263
+ /**
264
+ * Reconstruct fileSymbols from the DB after a native orchestrator build.
265
+ * When `scopeFiles` is provided, only loads those files (for analysis-only).
266
+ * When omitted, loads all files (needed for structure rebuilds).
267
+ */
268
+ function reconstructFileSymbolsFromDb(ctx, scopeFiles) {
269
+ let query = 'SELECT file, name, kind, line, end_line as endLine FROM nodes WHERE file IS NOT NULL';
270
+ const params = [];
271
+ if (scopeFiles && scopeFiles.length > 0) {
272
+ const placeholders = scopeFiles.map(() => '?').join(',');
273
+ query += ` AND file IN (${placeholders})`;
274
+ params.push(...scopeFiles);
275
+ }
276
+ query += ' ORDER BY file, line';
277
+ const rows = ctx.db.prepare(query).all(...params);
278
+ const fileSymbols = new Map();
279
+ for (const row of rows) {
280
+ let entry = fileSymbols.get(row.file);
281
+ if (!entry) {
282
+ entry = {
283
+ definitions: [],
284
+ calls: [],
285
+ imports: [],
286
+ classes: [],
287
+ exports: [],
288
+ typeMap: new Map(),
289
+ };
290
+ fileSymbols.set(row.file, entry);
291
+ }
292
+ entry.definitions.push({
293
+ name: row.name,
294
+ kind: row.kind,
295
+ line: row.line,
296
+ endLine: row.endLine ?? undefined,
297
+ });
298
+ }
299
+ // Populate import/export counts from DB edges so buildStructure
300
+ // computes correct import_count/export_count in node_metrics.
301
+ // The extractor arrays aren't persisted to the DB, so we derive
302
+ // counts from edge data instead (#804).
303
+ const importCountRows = ctx.db
304
+ .prepare(`SELECT n.file, COUNT(*) AS cnt
305
+ FROM edges e JOIN nodes n ON e.source_id = n.id
306
+ WHERE e.kind IN ('imports', 'imports-type', 'dynamic-imports')
307
+ AND n.file IS NOT NULL
308
+ GROUP BY n.file`)
309
+ .all();
310
+ for (const row of importCountRows) {
311
+ const entry = fileSymbols.get(row.file);
312
+ if (entry)
313
+ entry.imports = new Array(row.cnt);
314
+ }
315
+ const exportCountRows = ctx.db
316
+ .prepare(`SELECT n_tgt.file, COUNT(DISTINCT n_tgt.id) AS cnt
317
+ FROM edges e
318
+ JOIN nodes n_tgt ON e.target_id = n_tgt.id
319
+ JOIN nodes n_src ON e.source_id = n_src.id
320
+ WHERE e.kind IN ('imports', 'imports-type', 'reexports')
321
+ AND n_tgt.file IS NOT NULL
322
+ AND n_src.file != n_tgt.file
323
+ GROUP BY n_tgt.file`)
324
+ .all();
325
+ for (const row of exportCountRows) {
326
+ const entry = fileSymbols.get(row.file);
327
+ if (entry)
328
+ entry.exports = new Array(row.cnt);
329
+ }
330
+ return fileSymbols;
331
+ }
332
+ /**
333
+ * Run JS buildStructure() after native orchestrator to fill directory nodes + contains edges.
334
+ * For full builds, passes changedFiles=null (full rebuild).
335
+ * For incremental builds, passes the changed file list to scope the update.
336
+ */
337
+ async function runPostNativeStructure(ctx, allFileSymbols, isFullBuild, changedFiles) {
338
+ const structureStart = performance.now();
339
+ try {
340
+ const directories = new Set();
341
+ for (const relPath of allFileSymbols.keys()) {
342
+ const parts = relPath.split('/');
343
+ for (let i = 1; i < parts.length; i++) {
344
+ directories.add(parts.slice(0, i).join('/'));
345
+ }
346
+ }
347
+ const lineCountMap = new Map();
348
+ const cachedLineCounts = ctx.db
349
+ .prepare(`SELECT n.name AS file, m.line_count
350
+ FROM node_metrics m JOIN nodes n ON m.node_id = n.id
351
+ WHERE n.kind = 'file'`)
352
+ .all();
353
+ for (const row of cachedLineCounts) {
354
+ lineCountMap.set(row.file, row.line_count);
355
+ }
356
+ // Full builds need null (rebuild everything). Incremental builds pass the
357
+ // changed file list so buildStructure only updates those files' metrics
358
+ // and contains edges — matching the JS pipeline's medium-incremental path.
359
+ const changedFilePaths = isFullBuild || !changedFiles?.length ? null : changedFiles;
360
+ const { buildStructure: buildStructureFn } = (await import('../../../features/structure.js'));
361
+ buildStructureFn(ctx.db, allFileSymbols, ctx.rootDir, lineCountMap, directories, changedFilePaths);
362
+ debug(`Structure phase completed after native orchestrator${changedFilePaths ? ` (${changedFilePaths.length} files)` : ' (full)'}`);
363
+ }
364
+ catch (err) {
365
+ warn(`Structure phase failed after native build: ${toErrorMessage(err)}`);
366
+ }
367
+ return performance.now() - structureStart;
368
+ }
369
+ /** Run AST/complexity/CFG/dataflow analysis after native orchestrator. */
370
+ async function runPostNativeAnalysis(ctx, allFileSymbols, changedFiles) {
371
+ const timing = { astMs: 0, complexityMs: 0, cfgMs: 0, dataflowMs: 0 };
372
+ // Scope analysis fileSymbols to changed files only
373
+ let analysisFileSymbols;
374
+ if (changedFiles && changedFiles.length > 0) {
375
+ analysisFileSymbols = new Map();
376
+ for (const f of changedFiles) {
377
+ const entry = allFileSymbols.get(f);
378
+ if (entry)
379
+ analysisFileSymbols.set(f, entry);
380
+ }
381
+ }
382
+ else {
383
+ analysisFileSymbols = allFileSymbols;
384
+ }
385
+ // Reopen nativeDb for analysis features (suspend/resume WAL pattern).
386
+ const native = loadNative();
387
+ if (native?.NativeDatabase) {
388
+ try {
389
+ ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
390
+ if (ctx.engineOpts)
391
+ ctx.engineOpts.nativeDb = ctx.nativeDb;
392
+ }
393
+ catch {
394
+ ctx.nativeDb = undefined;
395
+ if (ctx.engineOpts)
396
+ ctx.engineOpts.nativeDb = undefined;
397
+ }
398
+ }
399
+ try {
400
+ const { runAnalyses: runAnalysesFn } = await import('../../../ast-analysis/engine.js');
401
+ const result = await runAnalysesFn(ctx.db, analysisFileSymbols, ctx.rootDir, ctx.opts, ctx.engineOpts);
402
+ timing.astMs = result.astMs ?? 0;
403
+ timing.complexityMs = result.complexityMs ?? 0;
404
+ timing.cfgMs = result.cfgMs ?? 0;
405
+ timing.dataflowMs = result.dataflowMs ?? 0;
406
+ }
407
+ catch (err) {
408
+ warn(`Analysis phases failed after native build: ${toErrorMessage(err)}`);
409
+ }
410
+ // Close nativeDb after analyses
411
+ if (ctx.nativeDb) {
412
+ try {
413
+ ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
414
+ }
415
+ catch {
416
+ /* ignore checkpoint errors */
417
+ }
418
+ try {
419
+ ctx.nativeDb.close();
420
+ }
421
+ catch {
422
+ /* ignore close errors */
423
+ }
424
+ ctx.nativeDb = undefined;
425
+ if (ctx.engineOpts)
426
+ ctx.engineOpts.nativeDb = undefined;
427
+ }
428
+ return timing;
429
+ }
430
+ /** Format timing result from native orchestrator phases + JS post-processing. */
431
+ function formatNativeTimingResult(p, structurePatchMs, analysisTiming) {
432
+ return {
433
+ phases: {
434
+ setupMs: +((p.setupMs ?? 0) + (p.collectMs ?? 0) + (p.detectMs ?? 0)).toFixed(1),
435
+ parseMs: +(p.parseMs ?? 0).toFixed(1),
436
+ insertMs: +(p.insertMs ?? 0).toFixed(1),
437
+ resolveMs: +(p.resolveMs ?? 0).toFixed(1),
438
+ edgesMs: +(p.edgesMs ?? 0).toFixed(1),
439
+ structureMs: +((p.structureMs ?? 0) + structurePatchMs).toFixed(1),
440
+ rolesMs: +(p.rolesMs ?? 0).toFixed(1),
441
+ astMs: +(analysisTiming.astMs ?? 0).toFixed(1),
442
+ complexityMs: +(analysisTiming.complexityMs ?? 0).toFixed(1),
443
+ cfgMs: +(analysisTiming.cfgMs ?? 0).toFixed(1),
444
+ dataflowMs: +(analysisTiming.dataflowMs ?? 0).toFixed(1),
445
+ finalizeMs: +(p.finalizeMs ?? 0).toFixed(1),
446
+ },
447
+ };
448
+ }
449
+ /** Try the native build orchestrator. Returns a BuildResult on success, undefined to fall through to JS pipeline. */
450
+ async function tryNativeOrchestrator(ctx) {
451
+ const skipReason = shouldSkipNativeOrchestrator(ctx);
452
+ if (skipReason) {
453
+ debug(`Skipping native orchestrator: ${skipReason}`);
454
+ return undefined;
455
+ }
456
+ if (!ctx.nativeDb?.buildGraph)
457
+ return undefined;
458
+ const resultJson = ctx.nativeDb.buildGraph(ctx.rootDir, JSON.stringify(ctx.config), JSON.stringify(ctx.aliases), JSON.stringify(ctx.opts));
459
+ const result = JSON.parse(resultJson);
460
+ if (result.earlyExit) {
461
+ info('No changes detected');
462
+ closeDbPair({ db: ctx.db, nativeDb: ctx.nativeDb });
463
+ return 'early-exit';
464
+ }
465
+ // Log incremental status to match JS pipeline output
466
+ const changed = result.changedCount ?? 0;
467
+ const removed = result.removedCount ?? 0;
468
+ if (!result.isFullBuild && (changed > 0 || removed > 0)) {
469
+ info(`Incremental: ${changed} changed, ${removed} removed`);
470
+ }
471
+ const p = result.phases;
472
+ // Sync build_meta so JS-side version/engine checks work on next build.
473
+ setBuildMeta(ctx.db, {
474
+ engine: ctx.engineName,
475
+ engine_version: ctx.engineVersion || '',
476
+ codegraph_version: CODEGRAPH_VERSION,
477
+ schema_version: String(ctx.schemaVersion),
478
+ built_at: new Date().toISOString(),
479
+ node_count: String(result.nodeCount ?? 0),
480
+ edge_count: String(result.edgeCount ?? 0),
481
+ });
482
+ info(`Native build orchestrator completed: ${result.nodeCount ?? 0} nodes, ${result.edgeCount ?? 0} edges, ${result.fileCount ?? 0} files`);
483
+ // ── Post-native structure + analysis ──────────────────────────────
484
+ let analysisTiming = { astMs: 0, complexityMs: 0, cfgMs: 0, dataflowMs: 0 };
485
+ let structurePatchMs = 0;
486
+ const needsAnalysis = ctx.opts.ast !== false ||
487
+ ctx.opts.complexity !== false ||
488
+ ctx.opts.cfg !== false ||
489
+ ctx.opts.dataflow !== false;
490
+ // Skip JS structure when the Rust pipeline's small-incremental fast path
491
+ // already handled it. For full builds and large incrementals where Rust
492
+ // skipped structure, we must run the JS fallback.
493
+ const needsStructure = !result.structureHandled;
494
+ if (needsAnalysis || needsStructure) {
495
+ if (!handoffWalAfterNativeBuild(ctx)) {
496
+ // DB reopen failed — return partial result
497
+ return formatNativeTimingResult(p, 0, analysisTiming);
498
+ }
499
+ // When structure was handled by Rust, we only need changed files for
500
+ // analysis — no need to load the entire graph from DB. When structure
501
+ // was NOT handled, we need all files to build the complete directory tree.
502
+ const scopeFiles = needsStructure ? undefined : result.changedFiles;
503
+ const fileSymbols = reconstructFileSymbolsFromDb(ctx, scopeFiles);
504
+ if (needsStructure) {
505
+ structurePatchMs = await runPostNativeStructure(ctx, fileSymbols, !!result.isFullBuild, result.structureScope ?? result.changedFiles);
506
+ }
507
+ if (needsAnalysis) {
508
+ analysisTiming = await runPostNativeAnalysis(ctx, fileSymbols, result.changedFiles);
509
+ }
510
+ }
511
+ closeDbPair({ db: ctx.db, nativeDb: ctx.nativeDb });
512
+ return formatNativeTimingResult(p, structurePatchMs, analysisTiming);
513
+ }
226
514
  // ── Pipeline stages execution ───────────────────────────────────────────
227
515
  async function runPipelineStages(ctx) {
228
516
  // Prevent dual-connection WAL corruption during pipeline stages: when both
@@ -292,212 +580,16 @@ export async function buildGraph(rootDir, opts = {}) {
292
580
  // When available, run the entire build pipeline in Rust with zero
293
581
  // napi crossings (eliminates WAL dual-connection dance). Falls back
294
582
  // to the JS pipeline on failure or when native is unavailable.
295
- //
296
- // Native addon 3.8.0 has a path bug: file_symbols keys are absolute
297
- // paths but known_files are relative, causing zero import/call edges.
298
- // Skip the orchestrator for affected versions (fixed in 3.9.0+).
299
- const orchestratorBuggy = !!ctx.engineVersion && semverCompare(ctx.engineVersion, '3.8.0') <= 0;
300
- const forceJs = process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1' ||
301
- ctx.forceFullRebuild ||
302
- orchestratorBuggy ||
303
- ctx.engineName !== 'native';
304
- if (forceJs) {
305
- const reason = process.env.CODEGRAPH_FORCE_JS_PIPELINE === '1'
306
- ? 'CODEGRAPH_FORCE_JS_PIPELINE=1'
307
- : ctx.forceFullRebuild
308
- ? 'forceFullRebuild'
309
- : orchestratorBuggy
310
- ? `buggy addon ${ctx.engineVersion}`
311
- : `engine=${ctx.engineName}`;
312
- debug(`Skipping native orchestrator: ${reason}`);
583
+ try {
584
+ const nativeResult = await tryNativeOrchestrator(ctx);
585
+ if (nativeResult === 'early-exit')
586
+ return;
587
+ if (nativeResult)
588
+ return nativeResult;
313
589
  }
314
- if (!forceJs && ctx.nativeDb?.buildGraph) {
315
- try {
316
- const resultJson = ctx.nativeDb.buildGraph(ctx.rootDir, JSON.stringify(ctx.config), JSON.stringify(ctx.aliases), JSON.stringify(opts));
317
- const result = JSON.parse(resultJson);
318
- if (result.earlyExit) {
319
- info('No changes detected');
320
- closeDbPair({ db: ctx.db, nativeDb: ctx.nativeDb });
321
- return;
322
- }
323
- // Log incremental status to match JS pipeline output
324
- const changed = result.changedCount ?? 0;
325
- const removed = result.removedCount ?? 0;
326
- if (!result.isFullBuild && (changed > 0 || removed > 0)) {
327
- info(`Incremental: ${changed} changed, ${removed} removed`);
328
- }
329
- // Map Rust timing fields to the JS BuildResult format.
330
- // Rust handles collect+detect+parse+insert+resolve+edges+structure+roles.
331
- const p = result.phases;
332
- // Sync build_meta so JS-side version/engine checks work on next build.
333
- // Note: the Rust orchestrator also writes codegraph_version (using
334
- // CARGO_PKG_VERSION). We intentionally overwrite it here with the npm
335
- // package version so that the JS-side "version changed → full rebuild"
336
- // detection (line ~97) compares against the authoritative JS version.
337
- // The two versions are kept in lockstep by the release process.
338
- setBuildMeta(ctx.db, {
339
- engine: ctx.engineName,
340
- engine_version: ctx.engineVersion || '',
341
- codegraph_version: CODEGRAPH_VERSION,
342
- schema_version: String(ctx.schemaVersion),
343
- built_at: new Date().toISOString(),
344
- node_count: String(result.nodeCount ?? 0),
345
- edge_count: String(result.edgeCount ?? 0),
346
- });
347
- info(`Native build orchestrator completed: ${result.nodeCount ?? 0} nodes, ${result.edgeCount ?? 0} edges, ${result.fileCount ?? 0} files`);
348
- // ── Run analysis phases (AST, complexity, CFG, dataflow) ──────
349
- // Not yet ported to Rust. After the native orchestrator finishes,
350
- // reconstruct a minimal fileSymbols map from the DB and run analyses
351
- // via the JS engine (native standalone functions + WASM fallback).
352
- let analysisTiming = { astMs: 0, complexityMs: 0, cfgMs: 0, dataflowMs: 0 };
353
- const needsAnalysis = opts.ast !== false ||
354
- opts.complexity !== false ||
355
- opts.cfg !== false ||
356
- opts.dataflow !== false;
357
- if (needsAnalysis) {
358
- // WAL handoff: checkpoint through rusqlite, close nativeDb,
359
- // reopen better-sqlite3 with a fresh page cache (#715, #736).
360
- try {
361
- ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
362
- }
363
- catch {
364
- /* ignore checkpoint errors */
365
- }
366
- try {
367
- ctx.nativeDb.close();
368
- }
369
- catch {
370
- /* ignore close errors */
371
- }
372
- ctx.nativeDb = undefined;
373
- try {
374
- ctx.db.close();
375
- }
376
- catch {
377
- /* ignore close errors */
378
- }
379
- ctx.db = null; // avoid closeDbPair operating on a stale handle
380
- try {
381
- ctx.db = openDb(ctx.dbPath);
382
- }
383
- catch (reopenErr) {
384
- warn(`Failed to reopen DB for analysis after native build: ${reopenErr.message}`);
385
- // Native build succeeded but we can't run analyses — return partial result
386
- return {
387
- phases: {
388
- setupMs: +((p.setupMs ?? 0) + (p.collectMs ?? 0) + (p.detectMs ?? 0)).toFixed(1),
389
- parseMs: +(p.parseMs ?? 0).toFixed(1),
390
- insertMs: +(p.insertMs ?? 0).toFixed(1),
391
- resolveMs: +(p.resolveMs ?? 0).toFixed(1),
392
- edgesMs: +(p.edgesMs ?? 0).toFixed(1),
393
- structureMs: +(p.structureMs ?? 0).toFixed(1),
394
- rolesMs: +(p.rolesMs ?? 0).toFixed(1),
395
- astMs: 0,
396
- complexityMs: 0,
397
- cfgMs: 0,
398
- dataflowMs: 0,
399
- finalizeMs: +(p.finalizeMs ?? 0).toFixed(1),
400
- },
401
- };
402
- }
403
- // Reconstruct minimal fileSymbols from DB for analysis visitors.
404
- // Each entry needs definitions with name/kind/line/endLine so the
405
- // engine can match complexity/CFG results to the right functions.
406
- // For incremental builds, scope to only the files that were parsed
407
- // in this cycle (matching the JS pipeline's behaviour in run-analyses.ts).
408
- const changedFiles = result.changedFiles;
409
- let query = 'SELECT file, name, kind, line, end_line as endLine FROM nodes WHERE file IS NOT NULL';
410
- const params = [];
411
- if (changedFiles && changedFiles.length > 0) {
412
- const placeholders = changedFiles.map(() => '?').join(',');
413
- query += ` AND file IN (${placeholders})`;
414
- params.push(...changedFiles);
415
- }
416
- query += ' ORDER BY file, line';
417
- const rows = ctx.db.prepare(query).all(...params);
418
- const fileSymbols = new Map();
419
- for (const row of rows) {
420
- let entry = fileSymbols.get(row.file);
421
- if (!entry) {
422
- entry = {
423
- definitions: [],
424
- calls: [],
425
- imports: [],
426
- classes: [],
427
- exports: [],
428
- typeMap: new Map(),
429
- };
430
- fileSymbols.set(row.file, entry);
431
- }
432
- entry.definitions.push({
433
- name: row.name,
434
- kind: row.kind,
435
- line: row.line,
436
- endLine: row.endLine ?? undefined,
437
- });
438
- }
439
- // Reopen nativeDb for analysis features (suspend/resume WAL pattern).
440
- const native = loadNative();
441
- if (native?.NativeDatabase) {
442
- try {
443
- ctx.nativeDb = native.NativeDatabase.openReadWrite(ctx.dbPath);
444
- if (ctx.engineOpts)
445
- ctx.engineOpts.nativeDb = ctx.nativeDb;
446
- }
447
- catch {
448
- ctx.nativeDb = undefined;
449
- if (ctx.engineOpts)
450
- ctx.engineOpts.nativeDb = undefined;
451
- }
452
- }
453
- try {
454
- const { runAnalyses: runAnalysesFn } = await import('../../../ast-analysis/engine.js');
455
- analysisTiming = await runAnalysesFn(ctx.db, fileSymbols, ctx.rootDir, opts, ctx.engineOpts);
456
- }
457
- catch (err) {
458
- warn(`Analysis phases failed after native build: ${toErrorMessage(err)}`);
459
- }
460
- // Close nativeDb after analyses
461
- if (ctx.nativeDb) {
462
- try {
463
- ctx.nativeDb.exec('PRAGMA wal_checkpoint(TRUNCATE)');
464
- }
465
- catch {
466
- /* ignore checkpoint errors */
467
- }
468
- try {
469
- ctx.nativeDb.close();
470
- }
471
- catch {
472
- /* ignore close errors */
473
- }
474
- ctx.nativeDb = undefined;
475
- if (ctx.engineOpts)
476
- ctx.engineOpts.nativeDb = undefined;
477
- }
478
- }
479
- closeDbPair({ db: ctx.db, nativeDb: ctx.nativeDb });
480
- return {
481
- phases: {
482
- setupMs: +((p.setupMs ?? 0) + (p.collectMs ?? 0) + (p.detectMs ?? 0)).toFixed(1),
483
- parseMs: +(p.parseMs ?? 0).toFixed(1),
484
- insertMs: +(p.insertMs ?? 0).toFixed(1),
485
- resolveMs: +(p.resolveMs ?? 0).toFixed(1),
486
- edgesMs: +(p.edgesMs ?? 0).toFixed(1),
487
- structureMs: +(p.structureMs ?? 0).toFixed(1),
488
- rolesMs: +(p.rolesMs ?? 0).toFixed(1),
489
- astMs: +(analysisTiming.astMs ?? 0).toFixed(1),
490
- complexityMs: +(analysisTiming.complexityMs ?? 0).toFixed(1),
491
- cfgMs: +(analysisTiming.cfgMs ?? 0).toFixed(1),
492
- dataflowMs: +(analysisTiming.dataflowMs ?? 0).toFixed(1),
493
- finalizeMs: +(p.finalizeMs ?? 0).toFixed(1),
494
- },
495
- };
496
- }
497
- catch (err) {
498
- warn(`Native build orchestrator failed, falling back to JS pipeline: ${toErrorMessage(err)}`);
499
- // Fall through to JS pipeline
500
- }
590
+ catch (err) {
591
+ warn(`Native build orchestrator failed, falling back to JS pipeline: ${toErrorMessage(err)}`);
592
+ // Fall through to JS pipeline
501
593
  }
502
594
  await runPipelineStages(ctx);
503
595
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/domain/graph/builder/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../src/domain/graph/builder/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-edges.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/build-edges.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA6qBrD,wBAAsB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FpE"}
1
+ {"version":3,"file":"build-edges.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/build-edges.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAguBrD,wBAAsB,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FpE"}