@optave/codegraph 3.12.0 → 3.15.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.
- package/README.md +83 -46
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +38 -40
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/rules/b2.d.ts +7 -0
- package/dist/ast-analysis/rules/b2.d.ts.map +1 -0
- package/dist/ast-analysis/rules/b2.js +240 -0
- package/dist/ast-analysis/rules/b2.js.map +1 -0
- package/dist/ast-analysis/rules/b3.d.ts +6 -0
- package/dist/ast-analysis/rules/b3.d.ts.map +1 -0
- package/dist/ast-analysis/rules/b3.js +105 -0
- package/dist/ast-analysis/rules/b3.js.map +1 -0
- package/dist/ast-analysis/rules/b4.d.ts +9 -0
- package/dist/ast-analysis/rules/b4.d.ts.map +1 -0
- package/dist/ast-analysis/rules/b4.js +361 -0
- package/dist/ast-analysis/rules/b4.js.map +1 -0
- package/dist/ast-analysis/rules/b5.d.ts +4 -0
- package/dist/ast-analysis/rules/b5.d.ts.map +1 -0
- package/dist/ast-analysis/rules/b5.js +52 -0
- package/dist/ast-analysis/rules/b5.js.map +1 -0
- package/dist/ast-analysis/rules/c.d.ts +4 -0
- package/dist/ast-analysis/rules/c.d.ts.map +1 -0
- package/dist/ast-analysis/rules/c.js +143 -0
- package/dist/ast-analysis/rules/c.js.map +1 -0
- package/dist/ast-analysis/rules/index.d.ts.map +1 -1
- package/dist/ast-analysis/rules/index.js +34 -0
- package/dist/ast-analysis/rules/index.js.map +1 -1
- package/dist/ast-analysis/rules/javascript.d.ts.map +1 -1
- package/dist/ast-analysis/rules/javascript.js +3 -0
- package/dist/ast-analysis/rules/javascript.js.map +1 -1
- package/dist/ast-analysis/shared.d.ts.map +1 -1
- package/dist/ast-analysis/shared.js +2 -0
- package/dist/ast-analysis/shared.js.map +1 -1
- package/dist/ast-analysis/visitor-utils.d.ts +1 -0
- package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
- package/dist/ast-analysis/visitor-utils.js +5 -0
- package/dist/ast-analysis/visitor-utils.js.map +1 -1
- package/dist/ast-analysis/visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitor.js +60 -47
- package/dist/ast-analysis/visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/cfg-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/cfg-visitor.js +126 -76
- package/dist/ast-analysis/visitors/cfg-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/complexity-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/complexity-visitor.js +27 -15
- package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
- package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/dataflow-visitor.js +54 -21
- package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/audit.js +2 -1
- package/dist/cli/commands/audit.js.map +1 -1
- package/dist/cli/commands/batch.d.ts.map +1 -1
- package/dist/cli/commands/batch.js +1 -0
- package/dist/cli/commands/batch.js.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +6 -1
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +275 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/roles.d.ts.map +1 -1
- package/dist/cli/commands/roles.js +6 -1
- package/dist/cli/commands/roles.js.map +1 -1
- package/dist/cli/commands/triage.js +1 -1
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shared/options.d.ts +2 -1
- package/dist/cli/shared/options.d.ts.map +1 -1
- package/dist/cli/shared/options.js +11 -1
- package/dist/cli/shared/options.js.map +1 -1
- package/dist/cli/types.d.ts +2 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/db/better-sqlite3.d.ts +2 -1
- package/dist/db/better-sqlite3.d.ts.map +1 -1
- package/dist/db/better-sqlite3.js.map +1 -1
- package/dist/db/connection.d.ts +7 -1
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +20 -5
- package/dist/db/connection.js.map +1 -1
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +69 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/repository/build-stmts.d.ts.map +1 -1
- package/dist/db/repository/build-stmts.js +18 -0
- package/dist/db/repository/build-stmts.js.map +1 -1
- package/dist/db/repository/dataflow.d.ts +5 -0
- package/dist/db/repository/dataflow.d.ts.map +1 -1
- package/dist/db/repository/dataflow.js +14 -0
- package/dist/db/repository/dataflow.js.map +1 -1
- package/dist/db/repository/index.d.ts +1 -1
- package/dist/db/repository/index.d.ts.map +1 -1
- package/dist/db/repository/index.js +1 -1
- package/dist/db/repository/index.js.map +1 -1
- package/dist/db/repository/native-repository.d.ts.map +1 -1
- package/dist/db/repository/native-repository.js +47 -34
- package/dist/db/repository/native-repository.js.map +1 -1
- package/dist/domain/analysis/context.d.ts +2 -2
- package/dist/domain/analysis/dependencies.d.ts +2 -2
- package/dist/domain/analysis/diff-impact.d.ts +2 -2
- package/dist/domain/analysis/fn-impact.d.ts +3 -1
- package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
- package/dist/domain/analysis/fn-impact.js +4 -0
- package/dist/domain/analysis/fn-impact.js.map +1 -1
- package/dist/domain/analysis/implementations.d.ts +2 -2
- package/dist/domain/analysis/module-map.d.ts.map +1 -1
- package/dist/domain/analysis/module-map.js +32 -5
- package/dist/domain/analysis/module-map.js.map +1 -1
- package/dist/domain/analysis/roles.d.ts +7 -1
- package/dist/domain/analysis/roles.d.ts.map +1 -1
- package/dist/domain/analysis/roles.js +16 -0
- package/dist/domain/analysis/roles.js.map +1 -1
- package/dist/domain/analysis/symbol-lookup.d.ts +4 -4
- package/dist/domain/graph/builder/call-resolver.d.ts +29 -13
- package/dist/domain/graph/builder/call-resolver.d.ts.map +1 -1
- package/dist/domain/graph/builder/call-resolver.js +125 -205
- package/dist/domain/graph/builder/call-resolver.js.map +1 -1
- package/dist/domain/graph/builder/cha.d.ts +9 -1
- package/dist/domain/graph/builder/cha.d.ts.map +1 -1
- package/dist/domain/graph/builder/cha.js +17 -2
- package/dist/domain/graph/builder/cha.js.map +1 -1
- package/dist/domain/graph/builder/context.d.ts +1 -0
- package/dist/domain/graph/builder/context.d.ts.map +1 -1
- package/dist/domain/graph/builder/context.js.map +1 -1
- package/dist/domain/graph/builder/helpers.d.ts +24 -1
- package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
- package/dist/domain/graph/builder/helpers.js +174 -65
- package/dist/domain/graph/builder/helpers.js.map +1 -1
- package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
- package/dist/domain/graph/builder/incremental.js +166 -97
- package/dist/domain/graph/builder/incremental.js.map +1 -1
- package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
- package/dist/domain/graph/builder/pipeline.js +46 -5
- package/dist/domain/graph/builder/pipeline.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.d.ts +0 -2
- package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.js +554 -538
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.js +10 -7
- package/dist/domain/graph/builder/stages/collect-files.js.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/detect-changes.js +3 -2
- package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/finalize.js +4 -0
- package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
- package/dist/domain/graph/builder/stages/native-orchestrator.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/native-orchestrator.js +952 -343
- package/dist/domain/graph/builder/stages/native-orchestrator.js.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
- package/dist/domain/graph/resolver/points-to.d.ts.map +1 -1
- package/dist/domain/graph/resolver/points-to.js +105 -57
- package/dist/domain/graph/resolver/points-to.js.map +1 -1
- package/dist/domain/graph/resolver/strategy.d.ts +61 -0
- package/dist/domain/graph/resolver/strategy.d.ts.map +1 -0
- package/dist/domain/graph/resolver/strategy.js +222 -0
- package/dist/domain/graph/resolver/strategy.js.map +1 -0
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +16 -9
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts +16 -5
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +58 -17
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/queries.d.ts +1 -1
- package/dist/domain/queries.d.ts.map +1 -1
- package/dist/domain/queries.js +1 -1
- package/dist/domain/queries.js.map +1 -1
- package/dist/domain/wasm-worker-entry.js +13 -2
- package/dist/domain/wasm-worker-entry.js.map +1 -1
- package/dist/domain/wasm-worker-pool.d.ts.map +1 -1
- package/dist/domain/wasm-worker-pool.js +26 -5
- package/dist/domain/wasm-worker-pool.js.map +1 -1
- package/dist/domain/wasm-worker-protocol.d.ts +8 -0
- package/dist/domain/wasm-worker-protocol.d.ts.map +1 -1
- package/dist/extractors/cpp.d.ts.map +1 -1
- package/dist/extractors/cpp.js +42 -1
- package/dist/extractors/cpp.js.map +1 -1
- package/dist/extractors/cuda.d.ts.map +1 -1
- package/dist/extractors/cuda.js +42 -1
- package/dist/extractors/cuda.js.map +1 -1
- package/dist/extractors/dart.js +48 -3
- package/dist/extractors/dart.js.map +1 -1
- package/dist/extractors/groovy.js +62 -3
- package/dist/extractors/groovy.js.map +1 -1
- package/dist/extractors/helpers.d.ts +15 -2
- package/dist/extractors/helpers.d.ts.map +1 -1
- package/dist/extractors/helpers.js +45 -1
- package/dist/extractors/helpers.js.map +1 -1
- package/dist/extractors/java.d.ts.map +1 -1
- package/dist/extractors/java.js +85 -8
- package/dist/extractors/java.js.map +1 -1
- package/dist/extractors/javascript.d.ts.map +1 -1
- package/dist/extractors/javascript.js +686 -169
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/extractors/kotlin.js +58 -3
- package/dist/extractors/kotlin.js.map +1 -1
- package/dist/extractors/objc.js +25 -2
- package/dist/extractors/objc.js.map +1 -1
- package/dist/extractors/scala.js +62 -2
- package/dist/extractors/scala.js.map +1 -1
- package/dist/extractors/swift.js +52 -3
- package/dist/extractors/swift.js.map +1 -1
- package/dist/features/audit.js +26 -23
- package/dist/features/audit.js.map +1 -1
- package/dist/features/boundaries.d.ts.map +1 -1
- package/dist/features/boundaries.js +12 -9
- package/dist/features/boundaries.js.map +1 -1
- package/dist/features/cfg.d.ts.map +1 -1
- package/dist/features/cfg.js +25 -18
- package/dist/features/cfg.js.map +1 -1
- package/dist/features/check.d.ts.map +1 -1
- package/dist/features/check.js +18 -5
- package/dist/features/check.js.map +1 -1
- package/dist/features/communities.d.ts +4 -2
- package/dist/features/communities.d.ts.map +1 -1
- package/dist/features/communities.js +6 -4
- package/dist/features/communities.js.map +1 -1
- package/dist/features/dataflow.d.ts +60 -0
- package/dist/features/dataflow.d.ts.map +1 -1
- package/dist/features/dataflow.js +530 -6
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/manifesto.d.ts.map +1 -1
- package/dist/features/manifesto.js +59 -72
- package/dist/features/manifesto.js.map +1 -1
- package/dist/features/sequence.d.ts.map +1 -1
- package/dist/features/sequence.js +27 -22
- package/dist/features/sequence.js.map +1 -1
- package/dist/features/snapshot.d.ts.map +1 -1
- package/dist/features/snapshot.js +36 -28
- package/dist/features/snapshot.js.map +1 -1
- package/dist/features/structure-query.d.ts +1 -1
- package/dist/features/structure-query.d.ts.map +1 -1
- package/dist/features/structure-query.js +6 -6
- package/dist/features/structure-query.js.map +1 -1
- package/dist/features/structure.d.ts.map +1 -1
- package/dist/features/structure.js +150 -62
- package/dist/features/structure.js.map +1 -1
- package/dist/features/triage.d.ts.map +1 -1
- package/dist/features/triage.js +18 -11
- package/dist/features/triage.js.map +1 -1
- package/dist/graph/algorithms/bfs.d.ts +1 -1
- package/dist/graph/algorithms/bfs.d.ts.map +1 -1
- package/dist/graph/algorithms/bfs.js +14 -13
- package/dist/graph/algorithms/bfs.js.map +1 -1
- package/dist/graph/algorithms/tarjan.d.ts.map +1 -1
- package/dist/graph/algorithms/tarjan.js +5 -0
- package/dist/graph/algorithms/tarjan.js.map +1 -1
- package/dist/graph/builders/dependency.js +28 -22
- package/dist/graph/builders/dependency.js.map +1 -1
- package/dist/graph/classifiers/roles.d.ts +10 -1
- package/dist/graph/classifiers/roles.d.ts.map +1 -1
- package/dist/graph/classifiers/roles.js +60 -6
- package/dist/graph/classifiers/roles.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/config.d.ts +87 -4
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +424 -22
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/infrastructure/registry.d.ts +27 -7
- package/dist/infrastructure/registry.d.ts.map +1 -1
- package/dist/infrastructure/registry.js +79 -5
- package/dist/infrastructure/registry.js.map +1 -1
- package/dist/infrastructure/update-check.d.ts.map +1 -1
- package/dist/infrastructure/update-check.js +49 -31
- package/dist/infrastructure/update-check.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -10
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/ast-query.d.ts +1 -1
- package/dist/mcp/tools/ast-query.d.ts.map +1 -1
- package/dist/mcp/tools/audit.d.ts +1 -1
- package/dist/mcp/tools/audit.d.ts.map +1 -1
- package/dist/mcp/tools/batch-query.d.ts +1 -1
- package/dist/mcp/tools/batch-query.d.ts.map +1 -1
- package/dist/mcp/tools/branch-compare.d.ts +1 -1
- package/dist/mcp/tools/branch-compare.d.ts.map +1 -1
- package/dist/mcp/tools/brief.d.ts +1 -1
- package/dist/mcp/tools/brief.d.ts.map +1 -1
- package/dist/mcp/tools/cfg.d.ts +1 -1
- package/dist/mcp/tools/cfg.d.ts.map +1 -1
- package/dist/mcp/tools/check.d.ts +1 -1
- package/dist/mcp/tools/check.d.ts.map +1 -1
- package/dist/mcp/tools/co-changes.d.ts +1 -1
- package/dist/mcp/tools/co-changes.d.ts.map +1 -1
- package/dist/mcp/tools/code-owners.d.ts +1 -1
- package/dist/mcp/tools/code-owners.d.ts.map +1 -1
- package/dist/mcp/tools/communities.d.ts +1 -1
- package/dist/mcp/tools/communities.d.ts.map +1 -1
- package/dist/mcp/tools/complexity.d.ts +1 -1
- package/dist/mcp/tools/complexity.d.ts.map +1 -1
- package/dist/mcp/tools/context.d.ts +1 -1
- package/dist/mcp/tools/context.d.ts.map +1 -1
- package/dist/mcp/tools/dataflow.d.ts +1 -1
- package/dist/mcp/tools/dataflow.d.ts.map +1 -1
- package/dist/mcp/tools/diff-impact.d.ts +1 -1
- package/dist/mcp/tools/diff-impact.d.ts.map +1 -1
- package/dist/mcp/tools/execution-flow.d.ts +1 -1
- package/dist/mcp/tools/execution-flow.d.ts.map +1 -1
- package/dist/mcp/tools/export-graph.d.ts +1 -1
- package/dist/mcp/tools/export-graph.d.ts.map +1 -1
- package/dist/mcp/tools/file-deps.d.ts +1 -1
- package/dist/mcp/tools/file-deps.d.ts.map +1 -1
- package/dist/mcp/tools/file-exports.d.ts +1 -1
- package/dist/mcp/tools/file-exports.d.ts.map +1 -1
- package/dist/mcp/tools/find-cycles.d.ts +1 -1
- package/dist/mcp/tools/find-cycles.d.ts.map +1 -1
- package/dist/mcp/tools/fn-impact.d.ts +1 -1
- package/dist/mcp/tools/fn-impact.d.ts.map +1 -1
- package/dist/mcp/tools/impact-analysis.d.ts +1 -1
- package/dist/mcp/tools/impact-analysis.d.ts.map +1 -1
- package/dist/mcp/tools/implementations.d.ts +1 -1
- package/dist/mcp/tools/implementations.d.ts.map +1 -1
- package/dist/mcp/tools/index.d.ts +2 -5
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/interfaces.d.ts +1 -1
- package/dist/mcp/tools/interfaces.d.ts.map +1 -1
- package/dist/mcp/tools/list-functions.d.ts +1 -1
- package/dist/mcp/tools/list-functions.d.ts.map +1 -1
- package/dist/mcp/tools/list-repos.d.ts +1 -1
- package/dist/mcp/tools/list-repos.d.ts.map +1 -1
- package/dist/mcp/tools/module-map.d.ts +1 -1
- package/dist/mcp/tools/module-map.d.ts.map +1 -1
- package/dist/mcp/tools/node-roles.d.ts +1 -1
- package/dist/mcp/tools/node-roles.d.ts.map +1 -1
- package/dist/mcp/tools/path.d.ts +1 -1
- package/dist/mcp/tools/path.d.ts.map +1 -1
- package/dist/mcp/tools/query.d.ts +1 -1
- package/dist/mcp/tools/query.d.ts.map +1 -1
- package/dist/mcp/tools/semantic-search.d.ts +1 -1
- package/dist/mcp/tools/semantic-search.d.ts.map +1 -1
- package/dist/mcp/tools/sequence.d.ts +1 -1
- package/dist/mcp/tools/sequence.d.ts.map +1 -1
- package/dist/mcp/tools/structure.d.ts +1 -1
- package/dist/mcp/tools/structure.d.ts.map +1 -1
- package/dist/mcp/tools/symbol-children.d.ts +1 -1
- package/dist/mcp/tools/symbol-children.d.ts.map +1 -1
- package/dist/mcp/tools/triage.d.ts +1 -1
- package/dist/mcp/tools/triage.d.ts.map +1 -1
- package/dist/mcp/tools/where.d.ts +1 -1
- package/dist/mcp/tools/where.d.ts.map +1 -1
- package/dist/mcp/types.d.ts +19 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +6 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/presentation/queries-cli/index.d.ts +1 -1
- package/dist/presentation/queries-cli/index.d.ts.map +1 -1
- package/dist/presentation/queries-cli/index.js +1 -1
- package/dist/presentation/queries-cli/index.js.map +1 -1
- package/dist/presentation/queries-cli/overview.d.ts +1 -0
- package/dist/presentation/queries-cli/overview.d.ts.map +1 -1
- package/dist/presentation/queries-cli/overview.js +20 -1
- package/dist/presentation/queries-cli/overview.js.map +1 -1
- package/dist/presentation/queries-cli.d.ts +1 -1
- package/dist/presentation/queries-cli.d.ts.map +1 -1
- package/dist/presentation/queries-cli.js +1 -1
- package/dist/presentation/queries-cli.js.map +1 -1
- package/dist/presentation/structure.d.ts +1 -1
- package/dist/presentation/structure.d.ts.map +1 -1
- package/dist/presentation/structure.js +2 -2
- package/dist/presentation/structure.js.map +1 -1
- package/dist/presentation/viewer.d.ts.map +1 -1
- package/dist/presentation/viewer.js +45 -32
- package/dist/presentation/viewer.js.map +1 -1
- package/dist/shared/constants.d.ts +21 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +25 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/normalize.d.ts.map +1 -1
- package/dist/shared/normalize.js +12 -22
- package/dist/shared/normalize.js.map +1 -1
- package/dist/shared/paginate.d.ts +4 -17
- package/dist/shared/paginate.d.ts.map +1 -1
- package/dist/shared/paginate.js.map +1 -1
- package/dist/types.d.ts +113 -1
- package/dist/types.d.ts.map +1 -1
- package/grammars/tree-sitter-erlang.wasm +0 -0
- package/grammars/tree-sitter-gleam.wasm +0 -0
- package/package.json +7 -8
- package/src/ast-analysis/engine.ts +43 -63
- package/src/ast-analysis/rules/b2.ts +263 -0
- package/src/ast-analysis/rules/b3.ts +127 -0
- package/src/ast-analysis/rules/b4.ts +378 -0
- package/src/ast-analysis/rules/b5.ts +65 -0
- package/src/ast-analysis/rules/c.ts +157 -0
- package/src/ast-analysis/rules/index.ts +34 -0
- package/src/ast-analysis/rules/javascript.ts +3 -0
- package/src/ast-analysis/shared.ts +2 -0
- package/src/ast-analysis/visitor-utils.ts +5 -0
- package/src/ast-analysis/visitor.ts +82 -52
- package/src/ast-analysis/visitors/cfg-visitor.ts +198 -84
- package/src/ast-analysis/visitors/complexity-visitor.ts +44 -16
- package/src/ast-analysis/visitors/dataflow-visitor.ts +68 -29
- package/src/cli/commands/audit.ts +2 -1
- package/src/cli/commands/batch.ts +1 -0
- package/src/cli/commands/build.ts +6 -1
- package/src/cli/commands/config.ts +353 -0
- package/src/cli/commands/roles.ts +6 -1
- package/src/cli/commands/triage.ts +1 -1
- package/src/cli/index.ts +10 -0
- package/src/cli/shared/options.ts +11 -1
- package/src/cli/types.ts +2 -0
- package/src/db/better-sqlite3.ts +5 -4
- package/src/db/connection.ts +23 -5
- package/src/db/index.ts +1 -0
- package/src/db/migrations.ts +69 -1
- package/src/db/repository/build-stmts.ts +30 -0
- package/src/db/repository/dataflow.ts +16 -0
- package/src/db/repository/index.ts +1 -1
- package/src/db/repository/native-repository.ts +56 -40
- package/src/domain/analysis/fn-impact.ts +4 -0
- package/src/domain/analysis/module-map.ts +38 -6
- package/src/domain/analysis/roles.ts +23 -0
- package/src/domain/graph/builder/call-resolver.ts +156 -218
- package/src/domain/graph/builder/cha.ts +18 -1
- package/src/domain/graph/builder/context.ts +1 -0
- package/src/domain/graph/builder/helpers.ts +205 -67
- package/src/domain/graph/builder/incremental.ts +249 -119
- package/src/domain/graph/builder/pipeline.ts +59 -6
- package/src/domain/graph/builder/stages/build-edges.ts +783 -652
- package/src/domain/graph/builder/stages/collect-files.ts +12 -6
- package/src/domain/graph/builder/stages/detect-changes.ts +4 -2
- package/src/domain/graph/builder/stages/finalize.ts +4 -0
- package/src/domain/graph/builder/stages/native-orchestrator.ts +1214 -398
- package/src/domain/graph/builder/stages/resolve-imports.ts +1 -1
- package/src/domain/graph/resolver/points-to.ts +182 -59
- package/src/domain/graph/resolver/strategy.ts +265 -0
- package/src/domain/graph/watcher.ts +19 -9
- package/src/domain/parser.ts +57 -16
- package/src/domain/queries.ts +1 -1
- package/src/domain/wasm-worker-entry.ts +13 -2
- package/src/domain/wasm-worker-pool.ts +29 -4
- package/src/domain/wasm-worker-protocol.ts +5 -0
- package/src/extractors/cpp.ts +44 -1
- package/src/extractors/cuda.ts +44 -1
- package/src/extractors/dart.ts +48 -3
- package/src/extractors/groovy.ts +62 -2
- package/src/extractors/helpers.ts +48 -2
- package/src/extractors/java.ts +88 -8
- package/src/extractors/javascript.ts +693 -167
- package/src/extractors/kotlin.ts +57 -3
- package/src/extractors/objc.ts +25 -1
- package/src/extractors/scala.ts +63 -1
- package/src/extractors/swift.ts +46 -3
- package/src/features/audit.ts +43 -34
- package/src/features/boundaries.ts +17 -9
- package/src/features/cfg.ts +31 -22
- package/src/features/check.ts +21 -5
- package/src/features/communities.ts +28 -19
- package/src/features/dataflow.ts +755 -6
- package/src/features/manifesto.ts +76 -75
- package/src/features/sequence.ts +29 -23
- package/src/features/snapshot.ts +36 -25
- package/src/features/structure-query.ts +7 -7
- package/src/features/structure.ts +185 -55
- package/src/features/triage.ts +28 -15
- package/src/graph/algorithms/bfs.ts +13 -12
- package/src/graph/algorithms/tarjan.ts +5 -0
- package/src/graph/builders/dependency.ts +35 -23
- package/src/graph/classifiers/roles.ts +74 -7
- package/src/index.ts +5 -1
- package/src/infrastructure/config.ts +511 -23
- package/src/infrastructure/registry.ts +117 -12
- package/src/infrastructure/update-check.ts +55 -33
- package/src/mcp/server.ts +2 -8
- package/src/mcp/tools/ast-query.ts +1 -1
- package/src/mcp/tools/audit.ts +1 -1
- package/src/mcp/tools/batch-query.ts +1 -1
- package/src/mcp/tools/branch-compare.ts +1 -1
- package/src/mcp/tools/brief.ts +1 -1
- package/src/mcp/tools/cfg.ts +1 -1
- package/src/mcp/tools/check.ts +1 -1
- package/src/mcp/tools/co-changes.ts +1 -1
- package/src/mcp/tools/code-owners.ts +1 -1
- package/src/mcp/tools/communities.ts +1 -1
- package/src/mcp/tools/complexity.ts +1 -1
- package/src/mcp/tools/context.ts +1 -1
- package/src/mcp/tools/dataflow.ts +1 -1
- package/src/mcp/tools/diff-impact.ts +1 -1
- package/src/mcp/tools/execution-flow.ts +1 -1
- package/src/mcp/tools/export-graph.ts +1 -1
- package/src/mcp/tools/file-deps.ts +1 -1
- package/src/mcp/tools/file-exports.ts +1 -1
- package/src/mcp/tools/find-cycles.ts +1 -1
- package/src/mcp/tools/fn-impact.ts +1 -1
- package/src/mcp/tools/impact-analysis.ts +1 -1
- package/src/mcp/tools/implementations.ts +1 -1
- package/src/mcp/tools/index.ts +2 -5
- package/src/mcp/tools/interfaces.ts +1 -1
- package/src/mcp/tools/list-functions.ts +1 -1
- package/src/mcp/tools/list-repos.ts +1 -1
- package/src/mcp/tools/module-map.ts +1 -1
- package/src/mcp/tools/node-roles.ts +1 -1
- package/src/mcp/tools/path.ts +1 -1
- package/src/mcp/tools/query.ts +1 -1
- package/src/mcp/tools/semantic-search.ts +1 -1
- package/src/mcp/tools/sequence.ts +1 -1
- package/src/mcp/tools/structure.ts +1 -1
- package/src/mcp/tools/symbol-children.ts +1 -1
- package/src/mcp/tools/triage.ts +1 -1
- package/src/mcp/tools/where.ts +1 -1
- package/src/mcp/types.ts +21 -0
- package/src/presentation/queries-cli/index.ts +1 -1
- package/src/presentation/queries-cli/overview.ts +35 -1
- package/src/presentation/queries-cli.ts +1 -0
- package/src/presentation/structure.ts +3 -3
- package/src/presentation/viewer.ts +98 -87
- package/src/shared/constants.ts +26 -0
- package/src/shared/normalize.ts +13 -22
- package/src/shared/paginate.ts +4 -18
- package/src/types.ts +127 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call resolution strategy helpers — extracted from call-resolver.ts.
|
|
3
|
+
*
|
|
4
|
+
* `resolveByMethodOrGlobal` in call-resolver.ts dispatches to two sub-strategies:
|
|
5
|
+
* - resolveByReceiver — receiver is a concrete object/class (not this/self/super)
|
|
6
|
+
* - resolveByGlobal — bare call or this/self/super receiver
|
|
7
|
+
*
|
|
8
|
+
* Splitting them here keeps each strategy unit-testable and reduces call-resolver.ts
|
|
9
|
+
* cognitive complexity from 107 to a thin dispatcher.
|
|
10
|
+
*
|
|
11
|
+
* This file intentionally does NOT import from ../builder/call-resolver.ts to avoid
|
|
12
|
+
* a circular dependency. The StrategyLookup interface mirrors CallNodeLookup structurally
|
|
13
|
+
* (TypeScript structural typing ensures compatibility without an explicit import).
|
|
14
|
+
*/
|
|
15
|
+
import { computeConfidence } from '../resolve.js';
|
|
16
|
+
// ── Module-scoped language detection ─────────────────────────────────────────
|
|
17
|
+
/**
|
|
18
|
+
* Languages where bare `foo()` calls inside a class method are lexically scoped
|
|
19
|
+
* to the module, not the class — there is no implicit this/class binding.
|
|
20
|
+
* For these languages, the same-class fallback must not run for bare (no-receiver)
|
|
21
|
+
* calls that found no exact same-file match.
|
|
22
|
+
*/
|
|
23
|
+
const MODULE_SCOPED_BARE_CALL_EXTENSIONS = new Set([
|
|
24
|
+
'.js',
|
|
25
|
+
'.mjs',
|
|
26
|
+
'.cjs',
|
|
27
|
+
'.jsx',
|
|
28
|
+
'.ts',
|
|
29
|
+
'.tsx',
|
|
30
|
+
'.mts',
|
|
31
|
+
'.cts',
|
|
32
|
+
]);
|
|
33
|
+
export function isModuleScopedLanguage(relPath) {
|
|
34
|
+
const ext = relPath.slice(relPath.lastIndexOf('.'));
|
|
35
|
+
return MODULE_SCOPED_BARE_CALL_EXTENSIONS.has(ext);
|
|
36
|
+
}
|
|
37
|
+
// ── resolveByReceiver ─────────────────────────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Resolve a call site whose receiver is a concrete object reference
|
|
40
|
+
* (i.e. `receiver` is present and is NOT `this`, `self`, or `super`).
|
|
41
|
+
*
|
|
42
|
+
* Resolution cascade:
|
|
43
|
+
* 1. typeMap class-scoped lookup (`ClassName.prop` key) for `this.prop` receivers.
|
|
44
|
+
* 2. typeMap bare key, full-receiver key, callee-scoped rest-param key.
|
|
45
|
+
* 3. Inline `new Ctor()` heuristic for un-normalised receiver text.
|
|
46
|
+
* 4. Typed method lookup via `TypeName.methodName` in symbol DB.
|
|
47
|
+
* 5. Prototype alias: `Foo.prototype.bar = identifier` via typeMap.
|
|
48
|
+
* 6. Direct qualified method lookup: `ClassName.staticMethod()`.
|
|
49
|
+
* 7. Composite pts key: `obj.prop` → callback target function.
|
|
50
|
+
*/
|
|
51
|
+
export function resolveByReceiver(lookup, call, relPath, typeMap, callerName) {
|
|
52
|
+
// Strip "this." so `this.repo.method()` resolves via typeMap["repo"]
|
|
53
|
+
// (or the "this.repo" key seeded directly by the TSC property-declaration enricher).
|
|
54
|
+
const effectiveReceiver = call.receiver.startsWith('this.')
|
|
55
|
+
? call.receiver.slice('this.'.length)
|
|
56
|
+
: call.receiver;
|
|
57
|
+
// For this.prop receivers, prefer the class-scoped key (ClassName.prop) seeded by
|
|
58
|
+
// handlePropWriteTypeMap / handleFieldDefTypeMap — prevents false edges when multiple
|
|
59
|
+
// classes define the same property name (issues #1323, #1458).
|
|
60
|
+
// Class-scoped lookup runs first so bare fallback keys (confidence 0.6) don't shadow
|
|
61
|
+
// the correct per-class entry when callerName is available.
|
|
62
|
+
let typeEntry;
|
|
63
|
+
if (call.receiver.startsWith('this.') && callerName) {
|
|
64
|
+
const dotIdx = callerName.lastIndexOf('.');
|
|
65
|
+
if (dotIdx > -1) {
|
|
66
|
+
const callerClass = callerName.slice(0, dotIdx);
|
|
67
|
+
typeEntry = typeMap.get(`${callerClass}.${effectiveReceiver}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
typeEntry ??=
|
|
71
|
+
typeMap.get(effectiveReceiver) ??
|
|
72
|
+
typeMap.get(call.receiver) ??
|
|
73
|
+
// Phase 8.3f: callee-scoped rest-param key (`callee::restName`) to avoid
|
|
74
|
+
// same-name rest-binding collision across functions in the same file (#1358).
|
|
75
|
+
(callerName ? typeMap.get(`${callerName}::${effectiveReceiver}`) : undefined);
|
|
76
|
+
let typeName = typeEntry
|
|
77
|
+
? typeof typeEntry === 'string'
|
|
78
|
+
? typeEntry
|
|
79
|
+
: typeEntry.type
|
|
80
|
+
: null;
|
|
81
|
+
// Belt-and-suspenders fallback for inline new-expression receivers that
|
|
82
|
+
// extractReceiverName did not normalise (e.g. raw text leaked from an
|
|
83
|
+
// unhandled AST node type). extractReceiverName already handles the common
|
|
84
|
+
// `new_expression` / `parenthesized_expression(new_expression)` shapes by
|
|
85
|
+
// returning the constructor name directly, so this branch is exercised only
|
|
86
|
+
// by future node types or constructs that fall through to the raw-text path.
|
|
87
|
+
// The uppercase-initial restriction ([A-Z_$]) is a heuristic to distinguish
|
|
88
|
+
// constructors (PascalCase) from regular functions and avoids false positives
|
|
89
|
+
// on `(new xmlParser()).parse()` style calls.
|
|
90
|
+
if (!typeName && call.receiver) {
|
|
91
|
+
const m = /^\(?\s*new\s+([A-Z_$][A-Za-z0-9_$]*)/.exec(call.receiver);
|
|
92
|
+
if (m?.[1])
|
|
93
|
+
typeName = m[1];
|
|
94
|
+
}
|
|
95
|
+
if (typeName) {
|
|
96
|
+
const typed = lookup
|
|
97
|
+
.byName(`${typeName}.${call.name}`)
|
|
98
|
+
.filter((n) => n.kind === 'method' && computeConfidence(relPath, n.file, null) >= 0.5);
|
|
99
|
+
if (typed.length > 0)
|
|
100
|
+
return typed;
|
|
101
|
+
// Prototype alias: `Foo.prototype.bar = identifier` seeds typeMap['Foo.bar'] = { type: identifier }.
|
|
102
|
+
// Checked after the symbol-DB lookup so an actual method definition always wins.
|
|
103
|
+
const protoEntry = typeMap.get(`${typeName}.${call.name}`);
|
|
104
|
+
const protoTarget = protoEntry
|
|
105
|
+
? typeof protoEntry === 'string'
|
|
106
|
+
? protoEntry
|
|
107
|
+
: protoEntry.type
|
|
108
|
+
: null;
|
|
109
|
+
if (protoTarget) {
|
|
110
|
+
const resolved = lookup
|
|
111
|
+
.byName(protoTarget)
|
|
112
|
+
.filter((t) => computeConfidence(relPath, t.file, null) >= 0.5);
|
|
113
|
+
if (resolved.length > 0)
|
|
114
|
+
return resolved;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Direct qualified method lookup: ClassName.staticMethod() or ClassName.instanceMethod()
|
|
118
|
+
// when the receiver is a class name with no typeMap entry. Handles static method calls
|
|
119
|
+
// like `C6.staticMethod()` or `D.d()` where the receiver IS the class.
|
|
120
|
+
// Matches both 'method' and 'function' kinds to cover field-initializer synthetic defs.
|
|
121
|
+
if (!typeName) {
|
|
122
|
+
const qualifiedName = `${effectiveReceiver}.${call.name}`;
|
|
123
|
+
const direct = lookup
|
|
124
|
+
.byName(qualifiedName)
|
|
125
|
+
.filter((n) => (n.kind === 'method' || n.kind === 'function') &&
|
|
126
|
+
computeConfidence(relPath, n.file, null) >= 0.5);
|
|
127
|
+
if (direct.length > 0)
|
|
128
|
+
return direct;
|
|
129
|
+
}
|
|
130
|
+
// Phase 8.3d: composite pts key — `obj.prop = fn` seeds typeMap['obj.prop'] = { type: 'fn' }.
|
|
131
|
+
// When a call site references `obj.prop` as a callback, resolve directly to the target fn.
|
|
132
|
+
const compositeEntry = typeMap.get(`${call.receiver}.${call.name}`);
|
|
133
|
+
const ptsTarget = compositeEntry
|
|
134
|
+
? typeof compositeEntry === 'string'
|
|
135
|
+
? compositeEntry
|
|
136
|
+
: compositeEntry.type
|
|
137
|
+
: null;
|
|
138
|
+
if (ptsTarget) {
|
|
139
|
+
const resolved = lookup
|
|
140
|
+
.byName(ptsTarget)
|
|
141
|
+
.filter((t) => computeConfidence(relPath, t.file, null) >= 0.5);
|
|
142
|
+
if (resolved.length > 0)
|
|
143
|
+
return resolved;
|
|
144
|
+
}
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
// ── resolveByGlobal ───────────────────────────────────────────────────────────
|
|
148
|
+
/**
|
|
149
|
+
* Resolve a call site with no receiver, or whose receiver is `this`, `self`,
|
|
150
|
+
* or `super`.
|
|
151
|
+
*
|
|
152
|
+
* Resolution cascade:
|
|
153
|
+
* 1. Accessor this-dispatch via Object.defineProperty (Phase 8.3f).
|
|
154
|
+
* 2. Exact global name lookup with confidence filter.
|
|
155
|
+
* 3. Same-class sibling method fallback (C#/Java static siblings, this.method()).
|
|
156
|
+
*/
|
|
157
|
+
export function resolveByGlobal(lookup, call, relPath, typeMap, callerName) {
|
|
158
|
+
// Phase 8.3f: accessor this-dispatch via Object.defineProperty.
|
|
159
|
+
// When a plain function (no class prefix) is registered as a get/set accessor for `obj`
|
|
160
|
+
// via Object.defineProperty, typeMap seeds 'callerName:this' = 'obj'.
|
|
161
|
+
// We then resolve this.method() → typeMap['obj.method'] → the concrete definition.
|
|
162
|
+
// This runs before the broad exact-name lookup to avoid false positives from
|
|
163
|
+
// unrelated same-file definitions.
|
|
164
|
+
if (call.receiver === 'this' && callerName && !callerName.includes('.')) {
|
|
165
|
+
const accessorThisEntry = typeMap.get(`${callerName}:this`);
|
|
166
|
+
const objName = accessorThisEntry
|
|
167
|
+
? typeof accessorThisEntry === 'string'
|
|
168
|
+
? accessorThisEntry
|
|
169
|
+
: accessorThisEntry.type
|
|
170
|
+
: null;
|
|
171
|
+
if (objName) {
|
|
172
|
+
const objMethodEntry = typeMap.get(`${objName}.${call.name}`);
|
|
173
|
+
const targetFn = objMethodEntry
|
|
174
|
+
? typeof objMethodEntry === 'string'
|
|
175
|
+
? objMethodEntry
|
|
176
|
+
: objMethodEntry.type
|
|
177
|
+
: null;
|
|
178
|
+
if (targetFn) {
|
|
179
|
+
const resolved = lookup
|
|
180
|
+
.byName(targetFn)
|
|
181
|
+
.filter((t) => computeConfidence(relPath, t.file, null) >= 0.5);
|
|
182
|
+
if (resolved.length > 0)
|
|
183
|
+
return resolved;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const exact = lookup
|
|
188
|
+
.byName(call.name)
|
|
189
|
+
.filter((t) => computeConfidence(relPath, t.file, null) >= 0.5);
|
|
190
|
+
if (exact.length > 0)
|
|
191
|
+
return exact;
|
|
192
|
+
// Try same-class method lookup via callerName.
|
|
193
|
+
// e.g. `this.area()` inside `Shape.describe` → try `Shape.area`.
|
|
194
|
+
// Also covers no-receiver calls inside class methods, e.g. `IsValidEmail(x)` inside
|
|
195
|
+
// `Validators.ValidateUser` → try `Validators.IsValidEmail` (C#/Java static siblings).
|
|
196
|
+
// This seeds the initial edge that runChaPostPass later expands to subclass overrides.
|
|
197
|
+
//
|
|
198
|
+
// For JS/TS, bare (no-receiver) calls are module-scoped — there is no implicit class
|
|
199
|
+
// binding. Skip the same-class fallback for bare calls in those languages to prevent
|
|
200
|
+
// false positives (e.g. `flush()` inside `Processor.run` must not resolve to
|
|
201
|
+
// `Processor.flush`). this.method() calls are unaffected: they still reach the fallback
|
|
202
|
+
// because `call.receiver === 'this'` is truthy, not a bare call.
|
|
203
|
+
const isBareCall = !call.receiver;
|
|
204
|
+
if (callerName && !(isBareCall && isModuleScopedLanguage(relPath))) {
|
|
205
|
+
const dotIdx = callerName.lastIndexOf('.');
|
|
206
|
+
if (dotIdx > -1) {
|
|
207
|
+
// Extract only the segment immediately before the method name so that
|
|
208
|
+
// 'Namespace.ClassName.method' yields 'ClassName', not 'Namespace.ClassName'.
|
|
209
|
+
// Symbols are stored under their bare class name, not their qualified path.
|
|
210
|
+
const prevDot = callerName.lastIndexOf('.', dotIdx - 1);
|
|
211
|
+
const callerClass = callerName.slice(prevDot + 1, dotIdx);
|
|
212
|
+
const qualifiedName = `${callerClass}.${call.name}`;
|
|
213
|
+
const sameClass = lookup
|
|
214
|
+
.byName(qualifiedName)
|
|
215
|
+
.filter((t) => t.kind === 'method' && computeConfidence(relPath, t.file, null) >= 0.5);
|
|
216
|
+
if (sameClass.length > 0)
|
|
217
|
+
return sameClass;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return exact; // empty
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../../src/domain/graph/resolver/strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"AAoSA;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAK3C;AAqBD,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACrF,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { closeDb, getNodeId as getNodeIdQuery, initSchema, openDb } from '../../db/index.js';
|
|
4
|
+
import { loadConfig } from '../../infrastructure/config.js';
|
|
4
5
|
import { debug, info, warn } from '../../infrastructure/logger.js';
|
|
5
|
-
import { isSupportedFile, normalizePath
|
|
6
|
+
import { buildIgnoreSet, isSupportedFile, normalizePath } from '../../shared/constants.js';
|
|
6
7
|
import { DbError } from '../../shared/errors.js';
|
|
7
8
|
import { createParseTreeCache, getActiveEngine } from '../parser.js';
|
|
8
9
|
import { rebuildFile } from './builder/incremental.js';
|
|
9
10
|
import { appendChangeEvents, buildChangeEvent, diffSymbols } from './change-journal.js';
|
|
10
11
|
import { appendJournalEntriesAndStampHeader } from './journal.js';
|
|
11
|
-
function shouldIgnorePath(filePath) {
|
|
12
|
+
function shouldIgnorePath(filePath, ignoreSet) {
|
|
12
13
|
const parts = filePath.split(path.sep);
|
|
13
|
-
return parts.some((p) =>
|
|
14
|
+
return parts.some((p) => ignoreSet.has(p) || p.startsWith('.'));
|
|
14
15
|
}
|
|
15
16
|
/** Prepare all SQL statements needed by the watcher's incremental rebuild. */
|
|
16
17
|
function prepareWatcherStatements(db) {
|
|
@@ -103,7 +104,7 @@ function logRebuildResults(updates) {
|
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
/** Recursively collect tracked source files for stat-based polling. */
|
|
106
|
-
function collectTrackedFiles(dir, result) {
|
|
107
|
+
function collectTrackedFiles(dir, result, ignoreSet) {
|
|
107
108
|
let entries;
|
|
108
109
|
try {
|
|
109
110
|
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
@@ -113,11 +114,11 @@ function collectTrackedFiles(dir, result) {
|
|
|
113
114
|
return;
|
|
114
115
|
}
|
|
115
116
|
for (const entry of entries) {
|
|
116
|
-
if (
|
|
117
|
+
if (ignoreSet.has(entry.name) || entry.name.startsWith('.'))
|
|
117
118
|
continue;
|
|
118
119
|
const full = path.join(dir, entry.name);
|
|
119
120
|
if (entry.isDirectory()) {
|
|
120
|
-
collectTrackedFiles(full, result);
|
|
121
|
+
collectTrackedFiles(full, result, ignoreSet);
|
|
121
122
|
}
|
|
122
123
|
else if (isSupportedFile(entry.name)) {
|
|
123
124
|
result.push(full);
|
|
@@ -130,6 +131,11 @@ function setupWatcher(rootDir, opts) {
|
|
|
130
131
|
if (!fs.existsSync(dbPath)) {
|
|
131
132
|
throw new DbError('No graph.db found. Run `codegraph build` first.', { file: dbPath });
|
|
132
133
|
}
|
|
134
|
+
// Load repo config so ignoreDirs and ignoreAdditionalDirs are respected by
|
|
135
|
+
// the watcher the same way they are by collectFiles in the batch build path.
|
|
136
|
+
const config = loadConfig(rootDir);
|
|
137
|
+
const extraDirs = [...(config.ignoreDirs ?? []), ...(config.ignoreAdditionalDirs ?? [])];
|
|
138
|
+
const ignoreSet = buildIgnoreSet(extraDirs.length ? extraDirs : undefined);
|
|
133
139
|
const db = openDb(dbPath);
|
|
134
140
|
initSchema(db);
|
|
135
141
|
const engineOpts = {
|
|
@@ -153,6 +159,7 @@ function setupWatcher(rootDir, opts) {
|
|
|
153
159
|
pending: new Set(),
|
|
154
160
|
timer: null,
|
|
155
161
|
debounceMs: 300,
|
|
162
|
+
ignoreSet,
|
|
156
163
|
};
|
|
157
164
|
}
|
|
158
165
|
/** Schedule debounced processing of pending files. */
|
|
@@ -169,7 +176,7 @@ function scheduleDebouncedProcess(ctx) {
|
|
|
169
176
|
function startPollingWatcher(ctx, pollIntervalMs) {
|
|
170
177
|
const mtimeMap = new Map();
|
|
171
178
|
const initial = [];
|
|
172
|
-
collectTrackedFiles(ctx.rootDir, initial);
|
|
179
|
+
collectTrackedFiles(ctx.rootDir, initial, ctx.ignoreSet);
|
|
173
180
|
for (const f of initial) {
|
|
174
181
|
try {
|
|
175
182
|
mtimeMap.set(f, fs.statSync(f).mtimeMs);
|
|
@@ -181,7 +188,7 @@ function startPollingWatcher(ctx, pollIntervalMs) {
|
|
|
181
188
|
info(`Polling ${initial.length} tracked files every ${pollIntervalMs}ms`);
|
|
182
189
|
const pollTimer = setInterval(() => {
|
|
183
190
|
const current = [];
|
|
184
|
-
collectTrackedFiles(ctx.rootDir, current);
|
|
191
|
+
collectTrackedFiles(ctx.rootDir, current, ctx.ignoreSet);
|
|
185
192
|
const currentSet = new Set(current);
|
|
186
193
|
for (const f of current) {
|
|
187
194
|
try {
|
|
@@ -213,7 +220,7 @@ function startNativeWatcher(ctx) {
|
|
|
213
220
|
const watcher = fs.watch(ctx.rootDir, { recursive: true }, (_eventType, filename) => {
|
|
214
221
|
if (!filename)
|
|
215
222
|
return;
|
|
216
|
-
if (shouldIgnorePath(filename))
|
|
223
|
+
if (shouldIgnorePath(filename, ctx.ignoreSet))
|
|
217
224
|
return;
|
|
218
225
|
if (!isSupportedFile(filename))
|
|
219
226
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/domain/graph/watcher.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/parser.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare function getInstalledWasmExtensions(): Set<string>;
|
|
|
24
24
|
* Lowercase file extensions covered by the native Rust addon.
|
|
25
25
|
*
|
|
26
26
|
* Mirrors `LanguageKind::from_extension` in
|
|
27
|
-
* `crates/codegraph-core/src/
|
|
27
|
+
* `crates/codegraph-core/src/domain/parser.rs`. Used to classify why the
|
|
28
28
|
* native orchestrator dropped a file: extensions outside this set are a
|
|
29
29
|
* legitimate parser limit (no Rust extractor exists), while extensions inside
|
|
30
30
|
* it indicate a real native bug (parse/read/extract failure).
|
|
@@ -67,6 +67,18 @@ export declare function classifyNativeDrops(relPaths: Iterable<string>): NativeD
|
|
|
67
67
|
* Pure function — safe to unit-test independently.
|
|
68
68
|
*/
|
|
69
69
|
export declare function formatDropExtensionSummary(buckets: Map<string, string[]>): string;
|
|
70
|
+
/** Wrap bindingType into binding object for dataflow argFlows and mutations. */
|
|
71
|
+
/**
|
|
72
|
+
* Normalise a DataflowResult from the native Rust extractor to the VisitorArgFlow
|
|
73
|
+
* shape expected by the TypeScript dataflow analysis layer.
|
|
74
|
+
*
|
|
75
|
+
* The Rust `DataflowArgFlow` emits `bindingType: string | null` as a flat field.
|
|
76
|
+
* The TS analysis layer (`buildDataflowVerticesAndEdges`, `collectCallerStitchCandidates`)
|
|
77
|
+
* expects `binding: { type: string; index?: number }` on each argFlow/mutation entry.
|
|
78
|
+
* This normalisation must be applied whenever `extractDataflowAnalysis` is called
|
|
79
|
+
* outside the standard `patchNativeResult` pipeline.
|
|
80
|
+
*/
|
|
81
|
+
export declare function patchDataflowResult(dataflow: any): void;
|
|
70
82
|
/**
|
|
71
83
|
* Declarative registry of all supported languages.
|
|
72
84
|
* Adding a new language requires only a new entry here + its extractor function.
|
|
@@ -80,14 +92,13 @@ export declare function parseFileAuto(filePath: string, source: string, opts?: P
|
|
|
80
92
|
/**
|
|
81
93
|
* Backfill helper: small batches use the inline (main-thread) path; larger
|
|
82
94
|
* batches keep the worker-pool isolation against tree-sitter WASM crashes
|
|
83
|
-
* (#965).
|
|
84
|
-
* files in one or two languages).
|
|
95
|
+
* (#965). See INLINE_BACKFILL_THRESHOLD for threshold rationale.
|
|
85
96
|
*
|
|
86
97
|
* `opts.symbolsOnly` skips the AST/complexity/CFG/dataflow visitors in the
|
|
87
98
|
* worker (and their result serialization across the thread boundary) for
|
|
88
99
|
* callers that only consume definitions/calls/typeMap — the native
|
|
89
|
-
* orchestrator's
|
|
90
|
-
*
|
|
100
|
+
* orchestrator's this-dispatch post-pass. Callers that ingest the files into
|
|
101
|
+
* the DB (dropped-language backfill) must keep
|
|
91
102
|
* the default full analysis.
|
|
92
103
|
*/
|
|
93
104
|
export declare function parseFilesWasmForBackfill(filePaths: string[], rootDir: string, opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/domain/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,MAAM,EAAS,MAAM,iBAAiB,CAAC;AAI1D,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EAEf,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAqBrB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAgEhC,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/domain/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/parser.js
CHANGED
|
@@ -49,6 +49,7 @@ const COMMON_QUERY_PATTERNS = [
|
|
|
49
49
|
'(variable_declarator name: (identifier) @varfn_name value: (generator_function) @varfn_value)',
|
|
50
50
|
'(method_definition name: (property_identifier) @meth_name) @meth_node',
|
|
51
51
|
'(method_definition name: (private_property_identifier) @meth_name) @meth_node',
|
|
52
|
+
'(method_definition name: (computed_property_name) @meth_name) @meth_node',
|
|
52
53
|
'(import_statement source: (string) @imp_source) @imp_node',
|
|
53
54
|
'(export_statement) @exp_node',
|
|
54
55
|
'(call_expression function: (identifier) @callfn_name) @callfn_node',
|
|
@@ -111,7 +112,9 @@ async function doLoadLanguage(entry) {
|
|
|
111
112
|
file: entry.grammarFile,
|
|
112
113
|
cause: e,
|
|
113
114
|
});
|
|
114
|
-
|
|
115
|
+
const isEnoent = e.code === 'ENOENT';
|
|
116
|
+
const log = isEnoent ? debug : warn;
|
|
117
|
+
log(`${entry.id} parser failed to initialize: ${e.message}. ${entry.id} files will be skipped.`);
|
|
115
118
|
_cachedParsers.set(entry.id, null);
|
|
116
119
|
}
|
|
117
120
|
}
|
|
@@ -348,7 +351,7 @@ export function getInstalledWasmExtensions() {
|
|
|
348
351
|
* Lowercase file extensions covered by the native Rust addon.
|
|
349
352
|
*
|
|
350
353
|
* Mirrors `LanguageKind::from_extension` in
|
|
351
|
-
* `crates/codegraph-core/src/
|
|
354
|
+
* `crates/codegraph-core/src/domain/parser.rs`. Used to classify why the
|
|
352
355
|
* native orchestrator dropped a file: extensions outside this set are a
|
|
353
356
|
* legitimate parser limit (no Rust extractor exists), while extensions inside
|
|
354
357
|
* it indicate a real native bug (parse/read/extract failure).
|
|
@@ -573,7 +576,17 @@ function patchReturnTypeMap(r) {
|
|
|
573
576
|
r.returnTypeMap = map.size > 0 ? map : new Map();
|
|
574
577
|
}
|
|
575
578
|
/** Wrap bindingType into binding object for dataflow argFlows and mutations. */
|
|
576
|
-
|
|
579
|
+
/**
|
|
580
|
+
* Normalise a DataflowResult from the native Rust extractor to the VisitorArgFlow
|
|
581
|
+
* shape expected by the TypeScript dataflow analysis layer.
|
|
582
|
+
*
|
|
583
|
+
* The Rust `DataflowArgFlow` emits `bindingType: string | null` as a flat field.
|
|
584
|
+
* The TS analysis layer (`buildDataflowVerticesAndEdges`, `collectCallerStitchCandidates`)
|
|
585
|
+
* expects `binding: { type: string; index?: number }` on each argFlow/mutation entry.
|
|
586
|
+
* This normalisation must be applied whenever `extractDataflowAnalysis` is called
|
|
587
|
+
* outside the standard `patchNativeResult` pipeline.
|
|
588
|
+
*/
|
|
589
|
+
export function patchDataflowResult(dataflow) {
|
|
577
590
|
if (dataflow.argFlows) {
|
|
578
591
|
for (const f of dataflow.argFlows) {
|
|
579
592
|
f.binding = f.bindingType ? { type: f.bindingType } : null;
|
|
@@ -596,7 +609,7 @@ function patchNativeResult(r) {
|
|
|
596
609
|
patchTypeMap(r);
|
|
597
610
|
patchReturnTypeMap(r);
|
|
598
611
|
if (r.dataflow)
|
|
599
|
-
|
|
612
|
+
patchDataflowResult(r.dataflow);
|
|
600
613
|
return r;
|
|
601
614
|
}
|
|
602
615
|
/**
|
|
@@ -1021,12 +1034,25 @@ async function parseFilesWasm(filePaths, rootDir, analysis = FULL_ANALYSIS) {
|
|
|
1021
1034
|
/**
|
|
1022
1035
|
* Files at or below this count use the inline parse path (no worker spawn).
|
|
1023
1036
|
*
|
|
1024
|
-
*
|
|
1025
|
-
*
|
|
1026
|
-
*
|
|
1027
|
-
*
|
|
1037
|
+
* The worker pool exists for crash safety (#965): exotic (non-required) WASM
|
|
1038
|
+
* grammars can trigger uncatchable V8 fatal errors that would kill the main
|
|
1039
|
+
* process. Running them in a worker means only the worker dies; the pool
|
|
1040
|
+
* detects the exit, skips the file, respawns, and continues.
|
|
1041
|
+
*
|
|
1042
|
+
* JS/TS/TSX are required-tier grammars — they have never triggered the V8
|
|
1043
|
+
* fatal crash class and are safe to run inline. The primary hot caller
|
|
1044
|
+
* (this/super dispatch post-pass) exclusively handles JS/TS/TSX files and
|
|
1045
|
+
* measured ~55–64ms/file through the pool vs ~8–10ms/file inline (#1435);
|
|
1046
|
+
* IPC overhead scales linearly with file count, not amortised.
|
|
1047
|
+
*
|
|
1048
|
+
* The threshold is set high enough to keep typical this-dispatch batches
|
|
1049
|
+
* (≤ 18 files on the codegraph corpus) on the inline path, while still
|
|
1050
|
+
* routing truly large exotic-language drops (rare; typical HCL case is 4
|
|
1051
|
+
* files) through the pool for crash isolation. Exotic-language drops are
|
|
1052
|
+
* almost always well under this limit anyway, so they benefit from the
|
|
1053
|
+
* inline fast path too without meaningful crash risk increase.
|
|
1028
1054
|
*/
|
|
1029
|
-
const INLINE_BACKFILL_THRESHOLD =
|
|
1055
|
+
const INLINE_BACKFILL_THRESHOLD = 32;
|
|
1030
1056
|
/**
|
|
1031
1057
|
* Inline WASM parse (no worker) for small file batches.
|
|
1032
1058
|
*
|
|
@@ -1037,9 +1063,13 @@ const INLINE_BACKFILL_THRESHOLD = 16;
|
|
|
1037
1063
|
*
|
|
1038
1064
|
* Returns symbols with `_tree` set so `runAnalyses` can run AST/CFG/dataflow
|
|
1039
1065
|
* visitors via the unified walker (mirrors how WASM-engine results behaved
|
|
1040
|
-
* before the worker pool was introduced)
|
|
1066
|
+
* before the worker pool was introduced), unless `symbolsOnly` is true — in
|
|
1067
|
+
* that case `_tree` is not set, skipping all analysis visitor walks. Use
|
|
1068
|
+
* `symbolsOnly` when only definitions/calls/typeMap are needed (e.g. the
|
|
1069
|
+
* this/super dispatch post-pass) to avoid the analysis overhead on the inline
|
|
1070
|
+
* path, matching the optimization already applied to the worker-pool path.
|
|
1041
1071
|
*/
|
|
1042
|
-
async function parseFilesWasmInline(filePaths, rootDir) {
|
|
1072
|
+
async function parseFilesWasmInline(filePaths, rootDir, symbolsOnly = false) {
|
|
1043
1073
|
const result = new Map();
|
|
1044
1074
|
if (filePaths.length === 0)
|
|
1045
1075
|
return result;
|
|
@@ -1060,7 +1090,19 @@ async function parseFilesWasmInline(filePaths, rootDir) {
|
|
|
1060
1090
|
continue;
|
|
1061
1091
|
const relPath = path.relative(rootDir, filePath).split(path.sep).join('/');
|
|
1062
1092
|
const symbols = extracted.symbols;
|
|
1063
|
-
|
|
1093
|
+
// When symbolsOnly=true, skip setting _tree so runAnalyses does not run
|
|
1094
|
+
// AST/complexity/CFG/dataflow visitor walks — only definitions/calls/typeMap
|
|
1095
|
+
// are needed by callers like the this/super dispatch post-pass.
|
|
1096
|
+
if (!symbolsOnly) {
|
|
1097
|
+
symbols._tree = extracted.tree;
|
|
1098
|
+
}
|
|
1099
|
+
else if (typeof extracted.tree?.delete === 'function') {
|
|
1100
|
+
// Free the WASM-backed tree immediately — web-tree-sitter trees are backed
|
|
1101
|
+
// by WASM linear memory and require explicit disposal. When symbolsOnly is
|
|
1102
|
+
// true the tree is never stored anywhere, so we must delete it here to
|
|
1103
|
+
// avoid leaking WASM heap on every incremental rebuild.
|
|
1104
|
+
extracted.tree.delete();
|
|
1105
|
+
}
|
|
1064
1106
|
symbols._langId = extracted.langId;
|
|
1065
1107
|
result.set(relPath, symbols);
|
|
1066
1108
|
}
|
|
@@ -1069,19 +1111,18 @@ async function parseFilesWasmInline(filePaths, rootDir) {
|
|
|
1069
1111
|
/**
|
|
1070
1112
|
* Backfill helper: small batches use the inline (main-thread) path; larger
|
|
1071
1113
|
* batches keep the worker-pool isolation against tree-sitter WASM crashes
|
|
1072
|
-
* (#965).
|
|
1073
|
-
* files in one or two languages).
|
|
1114
|
+
* (#965). See INLINE_BACKFILL_THRESHOLD for threshold rationale.
|
|
1074
1115
|
*
|
|
1075
1116
|
* `opts.symbolsOnly` skips the AST/complexity/CFG/dataflow visitors in the
|
|
1076
1117
|
* worker (and their result serialization across the thread boundary) for
|
|
1077
1118
|
* callers that only consume definitions/calls/typeMap — the native
|
|
1078
|
-
* orchestrator's
|
|
1079
|
-
*
|
|
1119
|
+
* orchestrator's this-dispatch post-pass. Callers that ingest the files into
|
|
1120
|
+
* the DB (dropped-language backfill) must keep
|
|
1080
1121
|
* the default full analysis.
|
|
1081
1122
|
*/
|
|
1082
1123
|
export async function parseFilesWasmForBackfill(filePaths, rootDir, opts = {}) {
|
|
1083
1124
|
if (filePaths.length <= INLINE_BACKFILL_THRESHOLD) {
|
|
1084
|
-
return parseFilesWasmInline(filePaths, rootDir);
|
|
1125
|
+
return parseFilesWasmInline(filePaths, rootDir, opts.symbolsOnly);
|
|
1085
1126
|
}
|
|
1086
1127
|
return parseFilesWasm(filePaths, rootDir, opts.symbolsOnly ? EXTRACT_ONLY : FULL_ANALYSIS);
|
|
1087
1128
|
}
|